The ultimate Android RE experience right inside your VS Code.
APKLab seamlessly integrates the best open-source tools: Quark-Engine, Apktool, Jadx, uber-apk-signer, apk-mitm and more to the excellent VS Code so you can focus on app analysis and get it done without leaving the IDE.
- Decode all the resources from an APK
- Disassemble the APK to Dalvik bytecode aka Smali
- Decompile the APK to Java source
- Malware Analysis using Quark-Engine
- Initialize project directory as Git repo
- Analyze & Hack effectively with feature-rich VS Code
- Apply MITM patch for HTTPS inspection
- Build an APK from Smali and resources
- Rebuild an APK in Debug mode for dynamic analysis
- Sign the APK seamlessly during the build
- Install the APK directly from VS Code
- Support for Apktool-style projects (
apktool.yml
) - Support for most Apktool CLI arguments
- Android resource frameworks management (Coming soon!)
- Support for user-provided keystore for APK signing
- Download and configure missing dependencies
- Excellent Smali language support with Smalise
- Supports Linux, Windows, and Mac
-
Open the Command Palette (Ctrl+Shift+P) ➜ APKLab: Open an APK
-
Or Just open an existing Apktool project folder
- Open the Command Palette (Ctrl+Shift+P) ➜ APKLab: Empty ApkTool Framework Dir
-
JDK 8+
Run
java -version
in your Shell, if not found, download from here. -
adb
Run
adb devices
in your Shell, if not found, check this guide. -
quark-engine >=21.01.6 (for malware analysis)
Run
quark
in your Shell, if not found, check official docs.
Dependency Paths
-
apklab.apktoolPath
: Full Path ofapktool.jar
. If you want to use a different version of it, change it like:"apklab.apktoolPath": "/home/oozer/downloads/apktool_2.4.1.jar"
-
apklab.apkSignerPath
: Full Path ofuber-apk-signer.jar
. If you want to use a different version of it, change it like:"apklab.apkSignerPath": "/home/oozer/downloads/uber-apk-signer-1.1.0.jar"
-
apklab.jadxDirPath
: Full Path ofjadx-x.y.z
dir. If you want to use a different version of it, change it like:"apklab.jadxDirPath": "/home/oozer/downloads/jadx-1.1.0"
Keystore configuration
-
apklab.keystorePath
: Put the absolute path of your Java keystore(.jks
or.keystore
) file here."apklab.keystorePath": "/home/oozer/downloads/debug.keystore"
-
apklab.keystorePassword
: Put the password of your keystore here. -
apklab.keyAlias
: Put the alias of the used key in the keystore here. -
apklab.keyPassword
: Put the password of the used key in the keystore here.
Additional configuration
apklab.initProjectDirAsGit
: Initialize project output directory as Git repository.
For bug reports, feature requests or simply discussing an idea, please open an issue here. PRs are always welcome.
- Feimaomii for the awesome logo
- Aman Sharma for active contribution
- Niklas Higi for apk-mitm
- Shaun Dang, JunWei Song & KunYu Chen for Quark-Engine
- iBotPeaches, brutall and JesusFreke for Apktool & Smali
- patrickfav for uber-apk-signer
- skylot for Jadx
- Loyie King for Smalise