{"id":15109595,"url":"https://github.com/apklab/apklab","last_synced_at":"2025-04-04T08:07:42.104Z","repository":{"id":37985143,"uuid":"262621320","full_name":"APKLab/APKLab","owner":"APKLab","description":"Android Reverse-Engineering Workbench for VS Code","archived":false,"fork":false,"pushed_at":"2024-05-07T19:49:45.000Z","size":7650,"stargazers_count":2676,"open_issues_count":32,"forks_count":246,"subscribers_count":47,"default_branch":"master","last_synced_at":"2024-10-29T15:40:28.955Z","etag":null,"topics":["android","apk-decompiler","apk-editor","apk-studio","apksigner","apktool","app-analyzer","bytecode","dalvik","https-inspection","jadx","malware-analysis","malware-detection","mitm","reverse-engineering","smali","smalidea","uber-apk-signer"],"latest_commit_sha":null,"homepage":"https://apklab.surendrajat.xyz","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/APKLab.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-05-09T17:18:38.000Z","updated_at":"2024-10-28T18:14:15.000Z","dependencies_parsed_at":"2024-05-07T20:42:44.232Z","dependency_job_id":"caa77da6-852c-40e7-bf86-ea7e9e4f0368","html_url":"https://github.com/APKLab/APKLab","commit_stats":null,"previous_names":["surendrajat/apklab"],"tags_count":22,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/APKLab%2FAPKLab","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/APKLab%2FAPKLab/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/APKLab%2FAPKLab/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/APKLab%2FAPKLab/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/APKLab","download_url":"https://codeload.github.com/APKLab/APKLab/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247142066,"owners_count":20890652,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","apk-decompiler","apk-editor","apk-studio","apksigner","apktool","app-analyzer","bytecode","dalvik","https-inspection","jadx","malware-analysis","malware-detection","mitm","reverse-engineering","smali","smalidea","uber-apk-signer"],"created_at":"2024-09-25T23:05:21.565Z","updated_at":"2025-04-04T08:07:42.068Z","avatar_url":"https://github.com/APKLab.png","language":"TypeScript","readme":"\u003ch1 align=\"center\"\u003e\n  \u003ca href=\"https://apklab.surendrajat.xyz\"\u003e\n    \u003cimg src=\"https://raw.githubusercontent.com/APKLab/apklab/master/assets/icon.png\" alt=\"APKLab\" height=\"96px\" width=\"100px\"\u003e\n  \u003c/a\u003e\n  \u003cbr\u003e\n  APKLab\n\u003c/h1\u003e\n\n\u003ch4 align=\"center\"\u003e\nThe ultimate Android RE experience right inside your \u003ca href=\"https://code.visualstudio.com/\"\u003eVS Code\u003c/a\u003e.\n\u003c/h4\u003e\n\n\u003cp align=\"center\"\u003e\nAPKLab seamlessly integrates the best open-source tools: \u003ca href='https://github.com/quark-engine/quark-engine'\u003eQuark-Engine\u003c/a\u003e, \u003ca href=\"https://github.com/ibotpeaches/apktool/\"\u003eApktool\u003c/a\u003e, \u003ca href=\"https://github.com/skylot/jadx\"\u003eJadx\u003c/a\u003e, \u003ca href=\"https://github.com/patrickfav/uber-apk-signer\"\u003euber-apk-signer\u003c/a\u003e, \u003ca href=\"https://github.com/shroudedcode/apk-mitm/\"\u003eapk-mitm\u003c/a\u003e and more to the excellent VS Code so you can focus on app analysis and get it done without leaving the IDE.\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://github.com/APKLab/APKLab\"\u003e\n        \u003cimg alt=\"Version\" src=\"https://img.shields.io/github/v/tag/APKLab/APKLab?label=latest\u0026color=f0f0e0\u0026labelColor=404752\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://open-vsx.org/extension/Surendrajat/apklab\"\u003e\n        \u003cimg alt=\"Download\" src=\"https://img.shields.io/static/v1?label=get%20from\u0026message=open-vsx\u0026color=629\u0026labelColor=404752\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://marketplace.visualstudio.com/items?itemName=Surendrajat.apklab\"\u003e\n        \u003cimg alt=\"Installs\" src=\"https://img.shields.io/visual-studio-marketplace/i/surendrajat.apklab?logo=visual-studio-code\u0026logoColor=blue\u0026labelColor=404752\u0026color=blue\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/APKLab/APKLab/actions?query=workflow%3A%22CI%22\"\u003e\n        \u003cimg alt=\"CI\" src=\"https://github.com/APKLab/APKLab/workflows/CI/badge.svg?branch=master\u0026event=push\"\u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://forum.xda-developers.com/t/4109409/\"\u003e\n        \u003cimg alt=\"XDA Developers\" src=\"https://img.shields.io/badge/XDA%20Forums-ffb?logo=xda-developers\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://t.me/apklab_re\"\u003e\n        \u003cimg alt=\"Telegram\" src=\"https://img.shields.io/badge/telegram-eff?logo=telegram\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://matrix.to/#/#apklab:matrix.org\"\u003e\n        \u003cimg alt=\"Matrix\" src=\"https://img.shields.io/badge/matrix-f5faef?logo=matrix\u0026logoColor=black\"\u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n\n## Features\n\n- Decode all the resources from an APK\n- Disassemble the APK to Dalvik bytecode aka Smali\n- Decompile the APK to Java source\n- Interactive Malware Analysis Report\n- Initialize Project dir as Git repo\n- Excellent Smali language support with [**Smalise**](https://github.com/LoyieKing/Smalise)\n- Analyze \u0026 Hack effectively with feature-rich VS Code\n- Apply MITM patch for HTTPS inspection\n- Build an APK from Smali and resources\n- Rebuild an APK in Debug mode for dynamic analysis\n- Sign the APK seamlessly during the build\n- Install the APK directly from VS Code\n- Support for Apktool-style projects (`apktool.yml`)\n- Support for most Apktool CLI arguments\n- Android resource frameworks management (Coming soon!)\n- Support for user-provided keystore for APK signing\n- Download and configure missing dependencies\n- Supports Linux, Windows, and Mac\n\n## Requirements\n\n- **JDK 8+**\n\n  \u003e Run **`java -version`** in your Shell, if not found, download from [here](https://adoptopenjdk.net/).\n\n- **quark-engine \u003e=21.01.6** (for malware analysis)\n\n  \u003e Run **`quark`** in your Shell, if not found, check [official docs](https://github.com/quark-engine/quark-engine).\n\n- **adb**\n  \u003e Run **`adb devices`** in your Shell, if not found, check [this guide](https://www.xda-developers.com/install-adb-windows-macos-linux/).\n\n## Getting Started\n\n#### Open APK or Apktool project\n\n- Open the Command Palette (\u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003eShift\u003c/kbd\u003e+\u003ckbd\u003eP\u003c/kbd\u003e) ➜ \u003ckbd\u003eAPKLab: Open an APK\u003c/kbd\u003e\n\n  ![decode.gif](https://github.com/APKLab/APKLab/raw/master/assets/decode.gif)\n\n- Or Just open an existing Apktool project folder\n\n#### Apply MITM patch\n\n- Right-Click on or inside `apktool.yml` file ➜ \u003ckbd\u003eAPKLab: Prepare for HTTPS inspection\u003c/kbd\u003e\n\n  ![mitm.gif](https://github.com/APKLab/APKLab/raw/master/assets/mitm.gif)\n\n#### ReBuild and Sign APK\n\n- Right-Click on or inside `apktool.yml` file ➜ \u003ckbd\u003eAPKLab: Rebuild the APK\u003c/kbd\u003e\n\n  ![rebuild.gif](https://github.com/APKLab/APKLab/raw/master/assets/rebuild.gif)\n\n#### Install APK to device\n\n- Right-Click on `.apk` file (in `dist` directory) ➜ \u003ckbd\u003eAPKLab: Install the APK\u003c/kbd\u003e\n\n  ![install.gif](https://github.com/APKLab/APKLab/raw/master/assets/install.gif)\n\n#### Clean ApkTool frameworks dir\n\n- Open the Command Palette (\u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003eShift\u003c/kbd\u003e+\u003ckbd\u003eP\u003c/kbd\u003e) ➜ \u003ckbd\u003eAPKLab: Empty ApkTool Framework Dir\u003c/kbd\u003e\n\n## Extension Settings\n\n\u003cdetails\u003e\n  \u003csummary\u003eDependency Paths\u003c/summary\u003e\n\n- **`apklab.apktoolPath`**: Full Path of `apktool.jar`. If you want to use a different version of it, change it like:\n\n  `\"apklab.apktoolPath\": \"/home/oozer/downloads/apktool_2.4.1.jar\"`\n\n- **`apklab.apkSignerPath`**: Full Path of `uber-apk-signer.jar`. If you want to use a different version of it, change it like:\n\n  `\"apklab.apkSignerPath\": \"/home/oozer/downloads/uber-apk-signer-1.1.0.jar\"`\n\n- **`apklab.jadxDirPath`**: Full Path of `jadx-x.y.z` dir. If you want to use a different version of it, change it like:\n\n  `\"apklab.jadxDirPath\": \"/home/oozer/downloads/jadx-1.1.0\"`\n\n\u003c/details\u003e\n\u003cdetails\u003e\n  \u003csummary\u003eKeystore configuration\u003c/summary\u003e\n\n- **`apklab.keystorePath`**: Put the absolute path of your **Java keystore**(`.jks` or `.keystore`) file here.\n\n  `\"apklab.keystorePath\": \"/home/oozer/downloads/debug.keystore\"`\n\n- **`apklab.keystorePassword`**: Put the **password** of your keystore here.\n\n- **`apklab.keyAlias`**: Put the **alias** of the used key in the keystore here.\n\n- **`apklab.keyPassword`**: Put the **password** of the used key in the keystore here.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eAdditional configuration\u003c/summary\u003e\n\n- **`apklab.initProjectDirAsGit`**: Initialize project output directory as **Git** repository.\n- **`apklab.updateTools`**: Whether APKLab should check for tools (for apklab, jadx...) update and show a notification.\n\n\u003c/details\u003e\n\n## Known Issues\n\nPlease check our [Bug tracker](https://github.com/APKLab/APKLab/issues) for known issues.\n\n## Contribution Guide\n\nFor bug reports, feature requests or simply discussing an idea, please open an issue [here](https://github.com/APKLab/APKLab/issues). PRs are always welcome.\n\n## [Changelog](https://github.com/APKLab/APKLab/blob/master/CHANGELOG.md)\n\n## Credits\n\n- [Feimaomii](https://github.com/Feimaomii) for the awesome logo\n- [Aman Sharma](https://github.com/amsharma44) for active contribution\n- [Niklas Higi](https://github.com/shroudedcode) for apk-mitm\n- [Shaun Dang](https://github.com/pulorsok), [JunWei Song](https://github.com/krnick) \u0026 [KunYu Chen](https://github.com/18z) for Quark-Engine\n- [iBotPeaches](https://github.com/iBotPeaches), [brutall](https://github.com/brutall) and [JesusFreke](https://github.com/JesusFreke) for Apktool \u0026 Smali\n- [patrickfav](https://github.com/patrickfav) for uber-apk-signer\n- [skylot](https://github.com/skylot) for Jadx\n- [Loyie King](https://github.com/LoyieKing) for Smalise\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapklab%2Fapklab","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fapklab%2Fapklab","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapklab%2Fapklab/lists"}