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
Very slow performance of AndroidLib.decodeManifestWithResources #1489
Comments
This is because of the larger and larger framework files Apktool has to decode. Perhaps we can re-engineer the storage of these framework files into a format more suitable for apktool to process. |
We had been using 2.1.1 and it has been working like a charm for the same fat apk. Once we upgrade 2.2.0 or above we see the slow performance. Did something drastically change between those versions w.r.t the storage architecture? |
2.2.0 gained the Nougat framework which was huge in size in comparison to 2.1.1 |
Back to the redesign of storage architecture, if you have plans, let me know if i could be of help. Thanks for this oss library. Its very helpful. |
I've been thinking, we read the framework file (but store the framework file prior to decode) based on tags, etc. So decodes have to decode the framework file and then the internal framework of the apk in question. This is proving to take longer and longer. However, we are reading the file for one reason - the resources. I might research the best flat file format for Java to parse and read, since at the end of the day we might be able to get away with a simple k/v store of resourceId -> resourceName (with some additional type data) |
Moving all the speed/memory enhancement tickets together. The first report was #1396 so closing this one in favor of that one. |
While closed. This change: b45054e has greatly helped in the speed execution.
|
- Android O Final Dev Preview support (iBotPeaches/Apktool#1520) - SnakeYAML 1.1.8 Android Support (iBotPeaches/Apktool#591) - Fix issue with APKs taking longer than usual to parse resources (iBotPeaches/Apktool#1489) - Fix issue with internal binaries not accessible in a Spring boot environment. (iBotPeaches/Apktool#1543) - Fix issues with rebuilding applications originally built with aapt2. (iBotPeaches/Apktool#1520) - Patch aapt to support the $ character in resource filenames. (iBotPeaches/Apktool#1532) - Fix issue where apktool was holding locks onto files during execution. (iBotPeaches/Apktool#1561) - Fix issue with APKs that last resource in pool is INVALID_TYPE_CONFIG. (iBotPeaches/Apktool#1534) - Fix issue with APKs that are including malformed characters to break parser. (iBotPeaches/Apktool#1564) - Only exit with 0 error code during version commands. - Enforce license header on all source files. - [Security] Prevent malicous directory traversal with unknown files. - [Security] Prevent XXE vulnerability when given a malicious AndroidManifest.xml - Upgrade to gradle 4.0.
- Android O Final Dev Preview support (iBotPeaches/Apktool#1520) - SnakeYAML 1.1.8 Android Support (iBotPeaches/Apktool#591) - Fix issue with APKs taking longer than usual to parse resources (iBotPeaches/Apktool#1489) - Fix issue with internal binaries not accessible in a Spring boot environment. (iBotPeaches/Apktool#1543) - Fix issues with rebuilding applications originally built with aapt2. (iBotPeaches/Apktool#1520) - Patch aapt to support the $ character in resource filenames. (iBotPeaches/Apktool#1532) - Fix issue where apktool was holding locks onto files during execution. (iBotPeaches/Apktool#1561) - Fix issue with APKs that last resource in pool is INVALID_TYPE_CONFIG. (iBotPeaches/Apktool#1534) - Fix issue with APKs that are including malformed characters to break parser. (iBotPeaches/Apktool#1564) - Only exit with 0 error code during version commands. - Enforce license header on all source files. - [Security] Prevent malicous directory traversal with unknown files. - [Security] Prevent XXE vulnerability when given a malicious AndroidManifest.xml - Upgrade to gradle 4.0.
- Android O Final Dev Preview support (iBotPeaches/Apktool#1520) - SnakeYAML 1.1.8 Android Support (iBotPeaches/Apktool#591) - Fix issue with APKs taking longer than usual to parse resources (iBotPeaches/Apktool#1489) - Fix issue with internal binaries not accessible in a Spring boot environment. (iBotPeaches/Apktool#1543) - Fix issues with rebuilding applications originally built with aapt2. (iBotPeaches/Apktool#1520) - Patch aapt to support the $ character in resource filenames. (iBotPeaches/Apktool#1532) - Fix issue where apktool was holding locks onto files during execution. (iBotPeaches/Apktool#1561) - Fix issue with APKs that last resource in pool is INVALID_TYPE_CONFIG. (iBotPeaches/Apktool#1534) - Fix issue with APKs that are including malformed characters to break parser. (iBotPeaches/Apktool#1564) - Only exit with 0 error code during version commands. - Enforce license header on all source files. - [Security] Prevent malicous directory traversal with unknown files. - [Security] Prevent XXE vulnerability when given a malicious AndroidManifest.xml - Upgrade to gradle 4.0.
Information
apktool -version
) - 2.2.0 and aboveStacktrace/Logcat
Steps to Reproduce
Frameworks
If this APK is from an OEM ROM (Samsung, HTC, LG). Please attach framework files
(
.apks
that live in/system/framework
or/system/priv-app
)APK
If this APK can be freely shared, please upload/attach a link to it.
Questions to ask before submission
apktool d
,apktool b
without changing anything? yes even cmdline is slow but its much more slower within jvmThe text was updated successfully, but these errors were encountered: