Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Major dependency/build fixes #21

Open
wants to merge 8 commits into
base: main
Choose a base branch
from
Open

Conversation

Blaumeise03
Copy link
Contributor

The current version of this repo does not properly extract the staticdata, because the script decompilation does not work. The main problems are caused by neox-tools because the script_redirect plugin was missing and some dependencies have introduced breaking changes/are incompatible with Python 3.11.

The first dependency that was, as far as I can tell, missing, is unnpk. I am not sure why it is missing, especially because unnpk contains .py files with the same names as neox-tools. So I am not sure if unnpk is really required, but the script_redirect.py file is trying to load it without sucess.

Going further, it seems like that the uncompyle6 submodule is not working properly. I don't know exactly why, but I have replaced it with the pip package which seems to be working normaly. This requires an update of neox-tools (refer to the pull request).

The next problem was xdis, a dependency of uncompyle6. It does not support Python 3.11, so I have adjusted the installation instructions for Python 3.10. Also xdis has an hardcoded list of available Python versions, but the latest version are missing. I have added an check and hotfix script that is able to insert the installed Python version into xdis. This does only work for Python 3.10.xx, older versions have to be inserted manually (there are instructions available). This is a very hacky solution, because the script edits the packaged directly. But because the decompilation is a separate process, it is the only solution (adding the version during runtime does not work).

Because I know that neox-tools is also used for other games, I tried to fix everything in this repo so I don't introduce any breaking changes to neox-tools. Only some slight modifications were required to ensure the pip version of uncompyle6 gets used if available.
This pull request does not work until the pull request in neox-tools gets approved: xforce/neox-tools#19

I also have updated the Dockerfile to fix these problems. This include the change from alpine:edge to python:3.10-alpine because the latest version of alpine only has Python 3.11 available. I also added unnpk to the cargo-build section, so it gets build and copied into the final image. This does also include some new dependencies that are required to build unnpk.

I have added detailed installation instructions, both for the manual installation, as well as for the docker build. This does also include a list of the specific packaged and dependency versions. Should some packages introduce breaking changes in the future, these lists can be used to build a functional version of eve-echoes-tools.

Blaumeise03 and others added 6 commits October 1, 2023 17:22
There were problems with uncompyle6 and xdis. Replaced the uncompyle6 submodule with the pip packaged. (This is a change in neox-tools and requires the correct version).
Updated the docker file according to the new install procedure. Because python 3.11 is unsupported, the image has been switched from "alpine:edge" to "python:3.10-alpine".
Added docker_fix_xdis.py which automatically applies the hotfix described in INSTALLATION.md.
Added unnpk to the cargo-build section and the required dependencies to build it.
Updated the README.md file with instructions on how to correctly build the docker image.
Removed unnpk from .gitmodules because it does not work, it is required to manually clone it (updated the installation instructions accordingly).
Blaumeise03 and others added 2 commits October 2, 2023 16:45
Can now extract data from an android backup .tar archive instead of a xapk file.
@xforce
Copy link
Owner

xforce commented Jan 31, 2024

Hey there, apologies for the late reply to all of this.
Been a bit out of the loop, dealing with the loss of my mom and some other life stuff.

Haven't gone over all of it, but initial comments regarding the script_redirect.
That's not shipped or directly linked due to legal concerns.

I had NetEase threaten to sue me because of this tool, and after consulting with my lawyer made adjustments according to current EU laws. As such, the script that contains the decryption/decryption key cannot be included or linked directly.

I'll try to go over the other things mentioned in this PR some time this week.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants