Ramblings of a Tampa engineer

Apktool v2.2.1 has been released! This is a compatibility release for Android Nougat, in addition to bringing support for wiping the framework directory.

Android Nougat brought three interesting things.

  1. aapt2. The 2nd iteration (rewrite) of the aapt binary. We leverage aapt a lot during the build procedure. The choice of whether moving to aapt2 will be a requirement or not is still being researched.

  2. Signature Scheme v2. Nougat also launched a new signing mechanism vs the old JAR signing which was easily breakable. This means modifying applications that use the v2 signature and retaining the original signature is no longer possible. This invalidates the -c option.

  3. Moving to 64bit binaries for aapt. This excludes the need for ia32-libs. I don't think anyone is running 32 bit systems anymore, but noted anyway.

An additional command was added to help clear framework files. As frameworks moved locations in v2.2.0 the ability to find them in the file system became more difficult. While the move was for a good reason (to prevent cluttering $HOME), it made management of the frameworks difficult. The command apktool empty-framework-dir will dump all framework files. The full usage can be seen below.

usage: apktool [-q|--quiet OR -v|--verbose] empty-framework-dir [options]
 -f,--force              Force delete destination directory.
 -p,--frame-path <dir>   Stores framework files into <dir>.

This release had 15 commits by 4 people.

  • Connor Tumbleson (iBotPeaches) - 12 commits
  • amorris13 - 1 commit
  • benjamin-promon - 1 commit
  • jamestut - 1 commit

Changes since v2.2.0

  • [#1223] Android Nougat - 7.0 Support
  • [#1243] Fixed issue with missing attributes (using Android Nougat Final Preview Sdk).
  • [#1317] Fixed issue with new value type 8 - TYPE_DYNAMIC_ATTRIBUTE.
  • [#1324] Gracefully handle APKs with additional data after TYPE chunks. (Thanks jamestut)
  • [#1313] Pass minSdkVersion to smali to correctly trigger edge cases where proper API needs to set. (Thanks benjamin-promon)
  • [#901] Added empty-framework-dir command to cleanup framework directory to ease upgrades.
  • [#1332] Handle applications that trick apktool with unknown header type. (Thanks xpirt)

Notes

With the talk of Android 7.1 quickly approaching, version 2.2.2 will follow with bug fixes and compatibility.

Download

You’ve successfully subscribed to Connor Tumbleson
Welcome back! You’ve successfully signed in.
Great! You’ve successfully signed up.
Success! Your email is updated.
Your link has expired
Success! Check your email for magic link to sign-in.