Advanced Android Reverse-Engineering Workbench right inside your VS Code.
Forked from APKLab — extended with additional ADB tooling, configurable JVM heap sizing, root-bypass tooling, and more.
HexLab seamlessly integrates the best open-source tools: Apktool, Jadx, uber-apk-signer, apk-mitm and more to the excellent VS Code so you can focus on app analysis and never leave your IDE.
- Decode all the resources from an APK
- Disassemble the APK to Dalvik bytecode aka Smali
- Decompile the APK to Java source via Jadx
- Interactive Malware Analysis Report (via Quark-Engine)
- Initialize project dir as a Git repo
- Excellent Smali language support with Smalise
- Apply MITM patch for HTTPS inspection
- Patch common string-based root / emulator checks and exact MyID SDK detections in smali
- Build (and rebuild) 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 via ADB
- ADB: Uninstall app from connected device
- ADB: Launch app on connected device
- ADB: Stream Logcat filtered to your app
- Configurable JVM Max Heap Size for large APK decompilation
- Support for Apktool-style projects (
apktool.yml) - Support for most Apktool CLI arguments
- Support for user-provided keystore for APK signing
- Download and configure missing dependencies automatically
- Supports Linux, Windows, and macOS
-
JDK 11+
Run
java -versionin your shell. If not found, download from Adoptium. -
ADB (optional — for install / uninstall / launch / logcat)
Run
adb devicesin your shell. If not found, check this guide. -
quark-engine ≥21.01.6 (optional — for malware analysis)
Run
quarkin your shell. If not found, check official docs.
- Open the Command Palette (Ctrl+Shift+P) ➜ APKLab: Open an APK
- Or simply open an existing Apktool project folder
- Right-click on or inside
apktool.yml➜ APKLab: Prepare for HTTPS inspection
- Right-click on or inside
apktool.yml➜ APKLab: Patch APK for Root Bypass - Exact MyID SDK methods are patched when
uz/myid/android/sdk/capture/core/MyIdStoreis present - Common string-based detector constants such as
su,test-keys, emulator markers, shell-channel labels, and selected SELinux checks are mutated in app-side smali with rebuild validation support
- Right-click on or inside
apktool.yml➜ APKLab: Rebuild the APK
- Right-click on
.apkfile (indist/directory) ➜ APKLab: Install the APK
- Command Palette ➜ APKLab: ADB Uninstall App
- Command Palette ➜ APKLab: ADB Launch App
- Command Palette ➜ APKLab: ADB Stream Logcat
- Command Palette ➜ APKLab: Empty ApkTool Framework Dir
Dependency Paths
-
apklab.apktoolPath: Full path ofapktool.jar. Override to use a specific version:"apklab.apktoolPath": "/home/user/downloads/apktool_2.9.0.jar" -
apklab.apkSignerPath: Full path ofuber-apk-signer.jar."apklab.apkSignerPath": "/home/user/downloads/uber-apk-signer-1.3.0.jar" -
apklab.jadxDirPath: Full path ofjadx-x.y.zdirectory."apklab.jadxDirPath": "/home/user/downloads/jadx-1.4.7"On Linux and macOS, HexLab will automatically repair execute permissions for the bundled Jadx launcher scripts and run them through
bashwhen needed.
Keystore Configuration
apklab.keystorePath: Absolute path of your Java keystore (.jks/.keystore).apklab.keystorePassword: Password of your keystore.apklab.keyAlias: Alias of the used key in the keystore.apklab.keyPassword: Password of the used key.
Advanced Configuration
apklab.jvmHeapSize: JVM Max Heap Size for decompiling very large APKs (e.g.-Xmx4g). Leave blank for the JVM default.apklab.initProjectDirAsGit: Automatically initialize the project output directory as a Git repository.apklab.updateTools: Whether HexLab should check for tool updates on startup.apklab.rootBypassVerifyRebuild: Rebuild immediately after a root bypass patch to catch smali issues early.apklab.rootBypassScope: Root bypass scan scope.app-onlyfocuses on the app package,allscans all smali classes.apklab.rootBypassAdditionalPackages: Extra Java package prefixes to include in root bypass analysis.
Please open an issue at our GitHub repository.
Bug reports, feature requests, and PRs are always welcome. Open an issue here.
See CHANGELOG.md for the full release history.
HexLab is built on the shoulders of giants:
- APKLab by Surendrajat — the upstream project this fork is based on
- Feimaomii for the original logo
- Niklas Higi for apk-mitm
- Shaun Dang, JunWei Song & KunYu Chen for Quark-Engine
- iBotPeaches, brutall & JesusFreke for Apktool & Smali
- patrickfav for uber-apk-signer
- skylot for Jadx
- Loyie King for Smalise