Apktool v2.8.0 Released
Apktool v2.8.0 has been released! This release includes massive amounts of refactoring to the codebase to speed development on the never ending game of resource obfuscation.
Large changes you'll notice as a developer are:
- Remove
Androlib
forApkBuilder
andApkDecoder
- Extract aapt/aapt2 into
AaptInvoker
class - Refactored
ARSCDecoder
to support unified chunk loading - Refactored
AXmlResourceParser
to leverage same chunk loading - Smali is pulled from Google now instead of JesusFreke
Large changes you'll notice as an end user are:
- Support for Upside Down Cake & Vanilla Ice Cream (API 34+)
- Enhance decoder for common obfuscation techniques
- Relax aapt failures that succeed in aapt2
- Fix crashing on common Meta applications
Changes you'll notice as a frequent user of the GitHub project:
- Features are tracked in Discussions now instead of the bug tracker.
- A new documentation website launched.
- https://apktool.org is the new home for docs.
I'd like to thank all the contributors, but especially sv99 for their effort in giving the code base a serious facelift. That effort gave me enough of a drive to spend some serious time on Apktool over the last month to finalize this release. I went into further details about this release and Apktool in general in yesterday's blog post.
This release had 153 commits by 9 people and 1 robot
- Connor Tumbleson (iBotPeaches) - 122 commits
- sv99 - 9 commits
- Slava Volkov - 8 commits
- Dependabot (BOT) - 6 commits
- ArjunaKumarMohanta - 3 commits
- AARON - 1 commit
- Crimson - 1 commit
- Igor Eisberg - 1 commit
- Marc Miltenberger - 1 commit
- jason.liao - 1 commit
Changes since 2.7.0
- [#3041] Add SDK U (API 34) Preview Support
- [#3115] Add SDK V (API ?) Preview Support
- [#2976] Add CI testing for Java versions 18 & 19
- [#2978] Add support for parsing applications with config flag size > 8 (from 28).
- [#3070] Add support for running apktool via gradle. (Thanks sv99)
- [#2980] Add support for
0_resource_name_obfuscated
- [#3113] Add support for Upside Down Cake & Vanilla Ice Cream SDK Shorthand.
- Remove CI testing for Java versions: 9, 10, 12, 13, 14, 15 and 17.
- [#2998] Fix issue parsing empty
resources.asrc
. (Thanks IgorEisberg) - [#3008] Fix issue with larger
apktool.yml
files. - [#3030] Fix issue with parsing
XML_TYPE_OVERLAY
. - [#3071] Fix issue with aapt/aapt2 in edge cases waiting 15 seconds for output. (Thanks sv99)
- [#3104] Fix NPE when decoding namespace missing from string pool.
- [#2981] Fix preference order when bogus values fill spring pool instead preferring res table.
- [#1927, #2484] Fix assembly with aapt1 when duplicate bag items are detected.
- [#3133] Fix config flag support for 64 byte header, adding
localeNumberingSystem
. - [#3036] Fix issue crashing out when reading entries past chunk end.
- [#3088] Refactor
brut.androlib.err
tobrut.androlib.exceptions
for standard naming convention of Exceptions. (Thanks sv99) - [#3091] Refactor Build/Decode to work from common Config object. (Thanks sv99)
- [#3103] Refactor into
ApkBuilder
andApkDecoder
instead of genericAndrolib
. (Thanks sv99) - [#3105] Refactor new class
Framework
to lessen responsibility ofAndrolibResources
. (Thanks sv99) - [#3106] Refactor
ApkDecoder
to split methods forMetaInfo
towardsResTable
. (Thanks sv99) - [#3109] Refactor
ApkDecoder
to introduce common methods for manifest and resource operations. (Thanks sv99) - [#3114] Refactor Gradle workflow into its own to cut down on unrelated CI failures.
- [#3116] Refactor
*Decoders
to split child classes into own class files. - [#3124] Refactor classes to support new
ApkInvoker
class. (Thanks sv99) - [#3119] Upgrade
gradle/gradle-build-action
to2.5.1
. - [#3079] Upgrade away from deprecated SnakeYAML constructors. (Thanks MarcMil)
- [#3055] Upgrade codebase to use Java7 NIO library for IO. (Thanks sv99)
- [#3050] Upgrade to smali/baksmali 3.0.3 and move to Google fork of it.
- Upgrade to Gradle 8.2 (Thanks ArjunaKumarMohanta)
- Upgrade
commons-io
to2.13.0
from2.11.0
- Upgrade
guava
to32.0.1-jre
from31.0.1-jre
- Upgrade
proguard_gradle
to7.3.2
from7.3.0
- Upgrade
shadow
to8.0.0
from7.1.0
Notes
- Applications are becoming more and more difficult to build with aapt1, using the
--use-aapt2
flag during rebuild is a good test.
Download
- Apktool 2.8.0
aefd27becd2b97527c47e595bd22d8d2
(md5)b331323ebf325d63e13375a6147915f9dac048f0f1f86783806f925941748dbc
(sha256)- Rename to
apktool.jar
and follow the Instruction Guide if you need help.