Apktool v2.2.0 Released

Apktool v2.2.0 has been released! This version brings a lot of fixes for old bug reports and tweaks how frameworks are stored.

Apktool has been historically creating framework files in $HOME/apktool/framework. As of v2.2.0 this has been changed to

  • unix - $HOME/.local/share/apktool
  • windows - $HOME/AppData/Local/apktool
  • mac - $HOME/Library/apktool

These paths resemble where applications store files per operating system. For some systems this is a hidden directory. The reason for this change was that Apktool creating a top level home directory folder wasn't exactly proper.

Additionally, a lot of fixes have been made for Dexguard built applications. Recompilation with these applications is still not possible due to #885.

If you'd like to clean up the old directory where frameworks were stored. Commands for this can be found in the Migration Instructions from 2.1.1 to 2.2.0.

This release had 22 commits by 3 people.

  • Connor Tumbleson (iBotPeaches) - 20 commits
  • Anthony Morris (amorris) - 1 commit
  • Pierre-Hugues HUSSON (phhusson) - 1 commit

Changes since v2.1.1

  • Updated smali/baksmali to v2.1.3
    • [#1269] Fixed upstream issue where debug comment indexes can cause out of bounds exception.
  • Adjust mac and unix scripts to force UTF8 file encoding.
  • [#972] Fixed issue with hex values being truncated in AndroidManifest.xml.
  • [#894] Fixed issue with APKs that have duplicate value names by creating dummy names.
  • [#745] Fixed issue with APKs where parent reference in styles.xml is not found.
  • [#1277] Default framework changed on Windows & Unix to prevent visible top level home directories.
  • [#1258] Fixed issue where extensions would be different cases.
  • [#1264] Fixed issue with APKs that had no versionCode / versionName properties.
  • [#1270] Fixed issue with improper decoding of @empty value. (Thanks phusson)
  • [#1244] Fixed issue with improper compression with files with multiple extensions.
  • [#1185] Fixed issue with overflow for applications that have absurdly large TypeSpec indexes.
  • [#1166] Replaced public domain LittleEndianReader for Google's Guava LittleEndianDataInputStream (Apache2). (Thanks amorris)
  • [#1097] Fixed public resource reference error when using references in android:scheme in AndroidManifest.xml.


As the release of Android Nougat is near, Apktool 2.2.1 will quickly follow to patch any needed changes. The rumored new aapt binary (aapt2) may present itself with the release, which may delay the release of Apktool.