# APKLAB | Android Reverse Engineering WorkBench For VS Code

**URL:** <https://onehack.st/t/apklab-android-reverse-engineering-workbench-for-vs-code/176779>\
**Category:** Tools & Scripts\
**Tags:** tools, freebies, tips-tricks\
**Created:** [March 27, 2021, 3:06pm UTC](https://onehack.st/t/apklab-android-reverse-engineering-workbench-for-vs-code/176779 "2021-03-27T15:06:32Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![PlayBoy83](https://onehack.st/user_avatar/onehack.st/playboy83/32/164314_2.png) [@PlayBoy83](https://onehack.st/u/PlayBoy83)\
**Post date:** [March 27, 2021, 3:06pm UTC](https://onehack.st/t/apklab-android-reverse-engineering-workbench-for-vs-code/176779/1 "2021-03-27T15:06:32Z")

</div>

![image](https://onehack.st/uploads/default/original/3X/6/d/6d1330de1e93d1c0b68f71ed215557b5eac679a8.png)

# APKLab

#### The ultimate Android RE experience right inside your [VS Code](https://code.visualstudio.com/).

APKLab seamlessly integrates the best open-source tools: [Quark-Engine](https://github.com/quark-engine/quark-engine), [Apktool](https://github.com/ibotpeaches/apktool/), [Jadx](https://github.com/skylot/jadx), [uber-apk-signer](https://github.com/patrickfav/uber-apk-signer), [apk-mitm](https://github.com/shroudedcode/apk-mitm/) and more to the excellent VS Code so you can focus on app analysis and get it done without leaving the IDE.

[![Version](https://camo.githubusercontent.com/3cf97f6feb9452bf666ed6351d41c23e2dc892a12f46e0264564f0a04600d875/68747470733a2f2f696d672e736869656c64732e696f2f76697375616c2d73747564696f2d6d61726b6574706c6163652f762f737572656e6472616a61742e61706b6c61623f636f6c6f723d663066306530266c6162656c436f6c6f723d343034373532) ](https://github.com/APKLab/APKLab)[![Download](https://camo.githubusercontent.com/52db6d970ccec82038396f92a7c64ba2e94fa66ed513a5a55a5904c16262665d/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f6c6162656c3d67657425323066726f6d266d6573736167653d6f70656e2d76737826636f6c6f723d363239266c6162656c436f6c6f723d343034373532) ](https://open-vsx.org/extension/Surendrajat/apklab)[![Installs](https://camo.githubusercontent.com/30c11d95892ca43062b1e1aa4ffe29742e15b3e3a5ed98ac37be9351e6e0a50a/68747470733a2f2f696d672e736869656c64732e696f2f76697375616c2d73747564696f2d6d61726b6574706c6163652f692f737572656e6472616a61742e61706b6c61623f6c6f676f3d76697375616c2d73747564696f2d636f6465266c6f676f436f6c6f723d626c7565266c6162656c436f6c6f723d34303437353226636f6c6f723d626c7565) ](https://marketplace.visualstudio.com/items?itemName=Surendrajat.apklab)[![CI](https://github.com/APKLab/APKLab/workflows/CI/badge.svg?branch=master&event=push)](https://github.com/APKLab/APKLab/actions?query=workflow%3A%22CI%22)

[![XDA Developers](https://camo.githubusercontent.com/6720f3bff9ae090995baa3660b3f91b258e925189d7ab10613a579a4fb584f7a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f584441253230466f72756d732d6666623f6c6f676f3d7864612d646576656c6f70657273) ](https://forum.xda-developers.com/t/4109409/)[![Telegram](https://camo.githubusercontent.com/9099303513a21b22aef2a2a49595906d07702ed16f8146b854d612a4acc344aa/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f74656c656772616d2d6566663f6c6f676f3d74656c656772616d) ](https://t.me/apklab_re)[![Matrix](https://camo.githubusercontent.com/5624bff6db179cecbe3a67819f5bbe212925e9c6dbc30f5d3816d1e462b82d7a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6d61747269782d6635666165663f6c6f676f3d6d6174726978266c6f676f436f6c6f723d626c61636b)](https://matrix.to/#/#apklab:matrix.org)

## 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**](https://github.com/LoyieKing/Smalise)
- Supports Linux, Windows, and Mac

## Getting Started

#### Open APK or Apktool project

- Open the Command Palette (Ctrl+Shift+P) ➜ APKLab: Open an APK[![decode.gif](https://github.com/APKLab/APKLab/raw/master/assets/decode.gif)](https://github.com/APKLab/APKLab/raw/master/assets/decode.gif)
- Or Just open an existing Apktool project folder

#### Apply MITM patch

- Right-Click on or inside `apktool.yml` file ➜ APKLab: Prepare for HTTPS inspection[![mitm.gif](https://github.com/APKLab/APKLab/raw/master/assets/mitm.gif)](https://github.com/APKLab/APKLab/raw/master/assets/mitm.gif)

#### ReBuild and Sign APK

- Right-Click on or inside `apktool.yml` file ➜ APKLab: Rebuild the APK[![rebuild.gif](https://github.com/APKLab/APKLab/raw/master/assets/rebuild.gif)](https://github.com/APKLab/APKLab/raw/master/assets/rebuild.gif)

#### Install APK to device

- Right-Click on `.apk` file (in `dist` directory) ➜ APKLab: Install the APK[![install.gif](https://github.com/APKLab/APKLab/raw/master/assets/install.gif)](https://github.com/APKLab/APKLab/raw/master/assets/install.gif)

#### Clean ApkTool frameworks dir

- Open the Command Palette (Ctrl+Shift+P) ➜ APKLab: Empty ApkTool Framework Dir

## Requirements

- **JDK 8+**

> Run **`java -version`** in your Shell, if not found, download from [here](https://adoptopenjdk.net/).

- **adb**

> Run **`adb devices`** in your Shell, if not found, check [this guide](https://www.xda-developers.com/install-adb-windows-macos-linux/).

- **quark-engine \>=21.01.6** (for malware analysis)

> Run **`quark`** in your Shell, if not found, check [official docs](https://github.com/quark-engine/quark-engine).

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

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](https://github.com/APKLab/APKLab/issues). PRs are always welcome.

## [Changelog](https://github.com/APKLab/APKLab/blob/master/CHANGELOG.md)

## GitHub:

> **[GitHub - APKLab/APKLab: Android Reverse-Engineering Workbench for VS Code](https://github.com/APKLab/APKLab)**
>
> Android Reverse-Engineering Workbench for VS Code
