A tool for reverse engineering Android apk files
Go to file
Igor Eisberg 5c99919d94
Some checks are pending
Analyze / Analyze (push) Waiting to run
CI / analyze-mac-aapt (aapt2_64) (push) Waiting to run
CI / analyze-mac-aapt (aapt_64) (push) Waiting to run
CI / analyze-linux-aapt (aapt) (push) Waiting to run
CI / analyze-linux-aapt (aapt2) (push) Waiting to run
CI / analyze-linux-aapt (aapt2_64) (push) Waiting to run
CI / analyze-linux-aapt (aapt_64) (push) Waiting to run
CI / analyze-windows-aapt (aapt.exe) (push) Waiting to run
CI / analyze-windows-aapt (aapt2.exe) (push) Waiting to run
CI / analyze-windows-aapt (aapt2_64.exe) (push) Waiting to run
CI / analyze-windows-aapt (aapt_64.exe) (push) Waiting to run
CI / Build/Test (JDK ${{ matrix.java }}, ${{ matrix.os }}) (11, macOS-latest) (push) Blocked by required conditions
CI / Build/Test (JDK ${{ matrix.java }}, ${{ matrix.os }}) (11, ubuntu-latest) (push) Blocked by required conditions
CI / Build/Test (JDK ${{ matrix.java }}, ${{ matrix.os }}) (11, windows-latest) (push) Blocked by required conditions
CI / Build/Test (JDK ${{ matrix.java }}, ${{ matrix.os }}) (17, macOS-latest) (push) Blocked by required conditions
CI / Build/Test (JDK ${{ matrix.java }}, ${{ matrix.os }}) (17, ubuntu-latest) (push) Blocked by required conditions
CI / Build/Test (JDK ${{ matrix.java }}, ${{ matrix.os }}) (17, windows-latest) (push) Blocked by required conditions
CI / Build/Test (JDK ${{ matrix.java }}, ${{ matrix.os }}) (21, macOS-latest) (push) Blocked by required conditions
CI / Build/Test (JDK ${{ matrix.java }}, ${{ matrix.os }}) (21, ubuntu-latest) (push) Blocked by required conditions
CI / Build/Test (JDK ${{ matrix.java }}, ${{ matrix.os }}) (21, windows-latest) (push) Blocked by required conditions
CI / Build/Test (JDK ${{ matrix.java }}, ${{ matrix.os }}) (8, macOS-latest) (push) Blocked by required conditions
CI / Build/Test (JDK ${{ matrix.java }}, ${{ matrix.os }}) (8, ubuntu-latest) (push) Blocked by required conditions
CI / Build/Test (JDK ${{ matrix.java }}, ${{ matrix.os }}) (8, windows-latest) (push) Blocked by required conditions
CI / Build apktool.jar (push) Blocked by required conditions
new: featureFlags support for SDK 35 apps (#3706)
* new: featureFlags support for SDK 35 apps

This records all featureFlag attrs that were enabled when the APK was originally built.
This is now required by AAPT2 to pass these flags and their enabled/disabled state if
they are used in AndroidManifest.xml.
The flags are recorded to apktool.yml and can be configured, if so desired.
In normal usage, all flags should remain set to true (i.e. enabled).
Sample APK sourced from AOSP Android 15.

https://drive.google.com/file/d/1av7Ih7-YUXi73Hf0E3xlPv-V-nE_sXdt/view

* test: adapt testapp for featureFlag
2024-10-03 17:10:02 -04:00
.github build(deps): bump gradle/actions from 4.0.1 to 4.1.0 (#3692) 2024-09-16 06:03:20 -04:00
brut.apktool new: featureFlags support for SDK 35 apps (#3706) 2024-10-03 17:10:02 -04:00
brut.j.common Migrate to Gradle Kotlin DSL (#3249) 2023-08-05 06:28:31 -04:00
brut.j.dir refactor: ApkDecoder & ApkBuilder overhaul (#3699) 2024-10-03 06:52:59 -04:00
brut.j.util clean up tab intendation (#3707) 2024-10-03 13:58:44 -04:00
gradle build(deps): bump com.google.guava:guava from 33.3.0-jre to 33.3.1-jre (#3703) 2024-10-03 07:13:10 -04:00
scripts Add ability to automatically pick up latest apktool.jar version (#3683) 2024-09-06 06:30:56 -04:00
.editorconfig Add .editorconfig rules 2021-08-27 01:20:06 +08:00
.gitattributes fix: treat aapt binaries as binary 2021-08-28 14:34:13 -04:00
.gitignore build: ignore gradle.properties 2021-03-07 15:03:11 -05:00
.jitpack.yml feat: commit broken jitpack file to stop that service 2020-11-28 18:07:25 -05:00
build.gradle.kts build: start new dev cycle (2.10.1-SNAPSHOT) 2024-09-17 07:06:06 -04:00
CONTRIBUTORS.md Move to official Google smali fork (#3051) 2023-04-28 19:30:06 -04:00
gradlew feat: Upgrade gradle to v8.4 (#3376) 2023-10-08 14:59:26 -04:00
gradlew.bat feat: Upgrade gradle to v8.7 (#3595) 2024-05-14 06:35:21 -04:00
INTERNAL.md Refresh aapt2 binaries. (#3651) 2024-08-01 08:12:29 -04:00
LICENSE.md refactor: change license to markdown iteration (still apache2.0) 2021-09-01 07:33:02 -04:00
README.md readme: Improve link title and wording for (#3611) 2024-05-31 06:11:09 -04:00
ROADMAP.md docs: add note about dummy resources to roadmap 2022-09-20 07:24:55 -04:00
SECURITY.md build: add SECURITY.md 2019-07-14 08:09:21 -04:00
settings.gradle.kts build: migrate towards "libs.versions.toml" (#3353) 2023-10-01 06:08:47 -04:00

Apktool

This is the repository for Apktool. The website is on the Apktool docs branch.

CI Software License

Apktool is a tool for reverse engineering third-party, closed, binary, Android apps. It can decode resources to nearly original form and rebuild them after making some modifications; it makes it possible to debug smali code step-by-step. It also makes working with apps easier thanks to project-like file structure and automation of some repetitive tasks such as building apk, etc.

Apktool is NOT intended for piracy and other non-legal uses. It could be used for localizing and adding features, adding support for custom platforms, and other GOOD purposes. Just try to be fair with the authors of an app, that you use and probably like.

Support

Security Vulnerabilities

If you discover a security vulnerability within Apktool, please send an e-mail to Connor Tumbleson at connor.tumbleson(at)gmail.com. All security vulnerabilities will be promptly addressed.

Sponsors

Special thanks goes to the following sponsors:

Sourcetoad

Sourcetoad is an award-winning software and app development firm committed to the co-creation of technology solutions that solve complex business problems, delight users, and help our clients achieve their goals.

Emerge Tools

Emerge Tools is a suite of revolutionary products designed to supercharge mobile apps and the teams that build them.