Ramblings of a Tampa engineer

Apktool v2.12.0 has been released! This is the last feature release in Apktool 2 adding support for API 36 (Baklava), fixing shared library support and micro optimizations around the codebase. Igor Eisberg has once again led the majority of development with this release working on many exciting changes.

The cat n' mouse game we play with ApkEditor never ends and this release takes a few more steps to defend against ApkEditor's "protect mode" which is designed to prevent disassembly.

Igor went on the journey to begin the deprecation of aapt1. Not wanting to lose a decade of test coverage we migrated all tests over to aapt2 and looked what was broken. If the test failure was because of a more restrictive aapt2 we marked that test for removal. If that test pointed a flaw in Apktool or something else - it was resolved.

This was why shared library support was finally fixed in aapt2. With a new CLI parameter to drive dynamic libraries you can ensure shared libraries are assigned with proper package ids on build.

-l, --lib <package>:<location>

https://apktool.org/docs/cli-parameters

A bit of refactoring occurred to prepare for Apktool 3 which is already underway. As mentioned many times before this upcoming release will remove aapt1 entirely. We've seen AOSP over the past year no longer port changes to aapt1 so it marks our time to remove it to reduce our codebase complexity.

https://apktool.org/docs/3.x/unreleased

Our documentation site has been adjusted to support versioned documentation so we can keep Apktool 2 and 3 separated. Docusaurus made this very easy so I applaud that software for being amazing to use. In order to finalize automated releases in the future we've moved the documentation out of a branch on the main repository to a new "apktool.org" repository.

All focus is now on Apktool 3.


Sponsors

I launched GitHub Sponsors to help provide another alternative for folks showing appreciation. I want to remind folks of two companies that continue to hold a monthly donation for the project.

  • Emerge Tools came online to sponsor the tool.
  • Sourcetoad (self employer) additionally joined to sponsor (as well as a few other projects).

This release had 27 commits by 3 people & 1 robot.

  • 12 - Dependabot (Robot)
  • 9 - Connor Tumbleson (iBotPeaches)
  • 5 - Igor Eisberg
  • 1 - vbfox

Changes since 2.11.1

  • [#3857] Add support for API 36 (Baklava).
  • [#3865] Add -l/--lib to specify shared libraries. (Thanks IgorEisberg)
  • [#3865] Fix support of shared libraries, parsing pkgId instead of guessing. (Thanks IgorEisberg)
  • [#3826] Fix escaping of CDATA like strings. (Thanks vbfox)
  • [#3849] Fix redundant flags in flag attrs. (Thanks IgorEisberg)
  • [#3838] Fix crash from ApkEditor "protect" mode.
  • [#3865] Change all tests to use aapt2 to phase out aapt1. (Thanks IgorEisberg)
  • [#3835] Upgrade gradle/actions to 4.3.1.
  • [#3846] Upgrade commons-io to 2.19.0.
  • [#3844] Upgrade commons-text to 1.13.1.
  • [#3836, #3845, #3852] Upgrade google/guava to 33.4.7-jre.
  • [#3884, #3897] Upgrade xmlunit to 2.10.3.

Notes

  • This is the last feature release with aapt1 support. The next major release (v3) will remove aapt1.

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.