APKLab
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.
Features
- 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
Getting Started
Open APK or Apktool project
- Open the Command Palette (Ctrl+Shift+P) ➜ APKLab: Open an APK

- Or Just open an existing Apktool project folder
Apply MITM patch
ReBuild and Sign APK
Install APK to device
Clean ApkTool frameworks dir
- Open the Command Palette (Ctrl+Shift+P) ➜ APKLab: Empty ApkTool Framework Dir
Requirements
- JDK 8+
Run
java -versionin your Shell, if not found, download from here.
- adb
Run
adb devicesin your Shell, if not found, check this guide.
- quark-engine >=21.01.6 (for malware analysis)
Run
quarkin your Shell, if not found, check official docs.
Extension Settings
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.zdir. 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(.jksor.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.
Known Issues
Contribution Guide
For bug reports, feature requests or simply discussing an idea, please open an issue here. PRs are always welcome.




!