APKLab - Android Reverse Engineering WorkBench for VS Code


APK Lab is the ultimate Android RE experience right inside your VS Code.

APKLab seamlessly integrates the best open-source tools: Apktool, Jadx, uber-apk-signer 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
  • Analyze & Hack effectively with feature-rich VS Code
  • 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

ReBuild and Sign APK

  • Right-Click on or inside apktool.yml file ➜ APKLab: Rebuild the APK

Install APK to device

  • Right-Click on .apk file (in dist directory) ➜ APKLab: Install the APK


  • 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.

  • Smalise (recommended)

    It makes working with smali files a breeze.

Extension Settings

Dependency Paths
  • apklab.apktoolPath: Full Path of apktool.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 of uber-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 of jadx-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.

Known Issues

Contribution Guide

For bug reports, feature requests or simply discussing an idea, please open an issue here. PRs are always welcome.



December 16, 2020


Hakin9 TEAM
Hakin9 is a monthly magazine dedicated to hacking and cybersecurity. In every edition, we try to focus on different approaches to show various techniques - defensive and offensive. This knowledge will help you understand how most popular attacks are performed and how to protect your data from them. Our tutorials, case studies and online courses will prepare you for the upcoming, potential threats in the cyber security world. We collaborate with many individuals and universities and public institutions, but also with companies such as Xento Systems, CATO Networks, EY, CIPHER Intelligence LAB, redBorder, TSG, and others.
Notify of

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Inline Feedbacks
View all comments
© HAKIN9 MEDIA SP. Z O.O. SP. K. 2023