MobiSuite is a cross-platform, multi-threaded GUI pipeline engine designed for mobile application security analysts, penetration testers, and reverse engineers. It replaces complex, repetitive command-line workflows with a streamlined, click-driven interface to automate the extraction, modification, assembly, signing, and deployment of Android (APK/APKS) and decrypted iOS (IPA) application binaries.
| Android Utilities | iOS Utilities |
|---|---|
![]() |
![]() |
| Bug Bounty Recon (Static Analysis) | Native Application Bypass (Frida + LSPosed) |
|---|---|
![]() |
![]() |
| Flutter Application Bypass (Auto Offset Detection) | Environment Settings (Tool Inventory) |
|---|---|
![]() |
![]() |
| Live Terminal Logs |
|---|
![]() |
MobiSuite bridges the gap between raw command-line tools and modern GUI accessibility. Behind the scenes, it manages an asynchronous execution environment that safely orchestrates industry-standard utilities, ensuring your GUI never freezes while performing heavy cryptographic or file-system tasks.
- Automated Reverse Engineering (Decompile & Rebuild):
Instantly unpackages Android APK structures down to readable Smali source code,
AndroidManifest.xmlfiles, and raw assets usingapktool. Once your security modifications are complete, the pipeline automatically rebuilds the directory back into an unsigned package. - Split APK Bundle Merging:
Modern Android apps are often delivered as fragmented App Bundles (
base.apk+ DPI/Language config splits). MobiSuite natively callsAPKEditorto seamlessly unify these multi-component architectures into a single standalone binary for frictionless static analysis. - Cryptographic Signing & Boundary Optimization:
No need to memorize keystore passwords or alignment bytes. The suite automatically handles package byte-alignment via
zipalignand applies certified debugging signatures usingapksignerso the operating system accepts your modified package. - Advanced Native ADB Installer Console (NEW):
Features a dedicated standalone console to sideload custom or rebuilt APKs directly to connected physical devices. It includes dynamic command presets for:
- Standard Installs (
-r) - Force Downgrades (
-d) to bypass version constraint conflicts. - Allow Test Apps (
-t) - Play Store Vending Spoofing (
pm install -i com.android.vending): Tricks the Android OS into believing the application was officially downloaded and licensed through the Google Play Store, effectively bypassing source-installation restrictions.
- Standard Installs (
- Decrypted iOS Storage Pulling & Smart Pathing (NEW):
Creates a secure SSH tunnel to remote jailbroken iOS devices to locate, pull, and automatically forge decrypted
.appcontainers into raw, distributable.ipabinaries.- String Sanitization Engine: Automatically strips problematic escaped shell slashes and handles spaces in remote folder names (e.g., smoothly resolving
Apple\ Store.app). - Windows Long-Path Bypass: Natively utilizes Windows Extended Paths (
\\?\) to safely bypass the strict 260-character Windows folder limit during deep recursive file system pulls, preventing crashes when saving to nested OneDrive or enterprise project folders.
- String Sanitization Engine: Automatically strips problematic escaped shell slashes and handles spaces in remote folder names (e.g., smoothly resolving
- Live Environmental Auditing: Actively monitors connected physical hardware via background ADB/SSH transport loops, tracking device IDs and IP endpoints dynamically on a unified bottom HUD.
- Bug Bounty Recon Toolkit (Static Analysis): A dedicated deck for mobile bug bounty and MobSF-style static workflows built on top of a decompiled apktool project. Extracts the manifest attack surface (exported components, dangerous permissions, deep links), mines the smali/res/assets tree for hardcoded URLs, IP addresses, leaked API keys/secrets, and MobSF-style code vulnerability patterns (weak crypto, insecure WebView config, broken TrustManager/HostnameVerifier, insecure randomness), analyzes the APK's signing certificate (v1/v2/v3/v4 scheme verification, signer DN, debug-cert detection) and file hashes (MD5/SHA1/SHA256), and matches discovered endpoints against a pasted bug bounty program scope list β then exports the whole thing as a Markdown report.
- Flutter Application Bypass (NEW):
Flutter apps bundle their own BoringSSL-based TLS stack inside
libflutter.so, so generic Java-layer SSL pinning bypasses do nothing against them. This tab extractslibflutter.so(arm64-v8a) straight from the APK, statically scans the ELF code segment for the certificate-verify function (viassl_client/ssl_serverstring-reference analysis, never a hardcoded offset), reports the result honestly asCONFIDENT,AMBIGUOUS, orNOT_FOUND, then generates and attaches a Frida script that hooks the resolved offset live β with real-time hook-hit-count confirmation so you know the bypass actually fired, not just that it loaded. - Native Application Bypass β Frida + Persistent LSPosed Module (NEW):
Two independent bypass approaches for native (Java/Kotlin) apps: a Frida-based live attach (curated SSL-pinning-bypass and root-detection-bypass scripts, or load your own custom
.jsfor bespoke logic β fast, but nothing survives an app restart or reboot), and a persistent LSPosed/Xposed module workflow (install a module APK you built separately, then enable and scope it directly to the target app by writing into LSPosed's ownmodules_config.dbviaadb+sqlite3β survives relaunches and reboots once the module is scoped). - Traffic Routing to Burp Suite (NEW):
Interception is now built directly into both bypass tabs. Route the whole device's port 80/443 traffic to Burp with one click (
adb reverse+ iptables NAT), or generate a standalone, UID-scoped.batscript that redirects only the selected app's traffic β safe to keep and re-run any time (including after a device reboot) without the GUI. Includes rule verification, per-app or all-app revert, a one-click force-restart of the target app (so it opens a fresh connection under a newly added redirect rule), and a live view of exactly which app(s) are currently being redirected.
- Supported OS: Kali Linux / Ubuntu, Windows 10/11, macOS
- Runtime Core: Python 3.10+
- Dependencies Node: Java Runtime Environment (JRE) / JDK 8+ (Required for binary assembly and signing tools)
MobiSuite maps and isolates the following industry-standard utility binaries into a dedicated localized directory structure:
| Binary Component | Purpose / Specification | Integration Layer |
|---|---|---|
adb |
Android Debug Bridge subsystem connection loop & package sideloading | Hardware HUD & Installer Console |
apktool.jar |
Decodes resources to nearly original form and rebuilds them | Step 1 & 2 Android Pipeline |
APKEditor.jar |
Merges split bundle architectures (base.apk + configurations) |
Step 0b Android Pipeline |
zipalign |
Provides crucial 4-byte boundary alignment optimizations for resources | Production Alignment Task |
apksigner.jar |
Signs APKs with v1, v2, v3, and v4 cryptographic validation schemes | Standalone & Mod Rebuild |
frida-server |
Runtime instrumentation daemon, version-matched to the local frida package and pushed to the device on demand (cached under tools/frida-server-cache/, not bundled) |
Flutter/Native Application Bypass Decks |
The following framework layers are validated and maintained automatically by the environment controller upon suite initialization:
customtkinterβ High-contrast premium UI rendering layer supporting scrollable window limits.paramikoβ Low-level SSHv2 protocol transport channel management.scpβ Secure Copy Protocol wrapper node for encrypted asset scraping and recursive network pulls.cryptographyβ Cryptographic primitives backingparamiko's SSH transport.pyinstallerβ Optional: lets you package the suite into a standalone executable.fridaβ Python bindings for runtime instrumentation (SSL pinning / root detection bypass / custom scripts, including the Flutter auto-offset bypass).
π In Kali Setup Guide
Step 1: Clone the Workspace In Kali with below cmd
git clone https://github.com/nileshkale12/MobiSuite-Mobile.git
Step 2: Navigate to below dir
cd MobiSuite-Mobile
Step 3: Install foundational platform tools
sudo apt update && sudo apt install default-jdk adb zipalign apksigner -y
Step 4: Initialize Python required dependencies
python3 -m pip install -r requirements.txt
Step 5: Give permission to the below file to run the tool
chmod +x Launch_Kali.sh
Step 6: Run the below command to launch the tool
./Launch_Kali.sh or python3 auto_apk_1.0.py
(Alternatively, run the suite directly using the interpreter: python3 auto_apk_1.0.py)
---
πͺ In Windows Setup Guide
Step 1: Ensure Prerequisites are Installed
Make sure your system has Python 3 and Java 17+ (JRE/JDK) installed and added to your system PATH. No Admin Access is required.
Step 2: Clone or download the Workspace
git clone https://github.com/nileshkale12/MobiSuite-Mobile.git
Step 3: Navigate to the below directory
cd MobiSuite-Mobile
Step 4: Initialize Python required dependencies Open your command prompt (cmd) inside the folder and run:
python -m pip install -r requirements.txt
Step 5: Run the below command to launch the tool
Double-click the Launch_Windows.bat file to boot the Control Center, or run it directly in the terminal:
Launch_Windows.bat or python3 auto_apk_1.0.py
MobiSuite divides its capabilities into logical workflows. Follow these operational guidelines to run assessments on Android and iOS applications successfully.
- What it does: Extracts installed apps directly from a physical Android device over USB.
- How to use it:
- Connect your Android device with USB Debugging enabled. Verify the status turns green (
π’ Connected) in the bottom HUD bar. - Click Scan USB Apps. The dropdown will populate with all third-party applications installed on the phone.
- Select your target app from the dropdown list and click Pull Targets Folder. Choose a folder on your computer to save the extracted packages.
- Connect your Android device with USB Debugging enabled. Verify the status turns green (
- What it does: Combines split APK chunks (common in modern Play Store apps) into a single standalone APK file.
- How to use it:
- If Step 0a extracted multiple files (like
base.apk,split_config.apk), click Select Chunks Folder and pick that extraction directory. - Click Merge via APKEditor. The engine will compile them into a unified binary named
[FolderName]_merged.apkand stage it as the active target.
- If Step 0a extracted multiple files (like
- What it does: Decompiles a single APK file into its component source files (Smali code, resources, images, layout XMLs).
- How to use it:
- Click Browse Target APK to manually load any APK, or let Step 0a/0b stage it automatically.
- Click Decompile. A new folder named
[AppName]_decompiledwill be created in the same directory. You can now open this folder in an external editor (like VS Code) to inspect code or modify security checks.
- What it does: Recompiles your modified project folder back into an optimized, fully signed, functional APK.
- How to use it:
- Click Select Modded Folder and choose your
_decompileddirectory (the tool verifies the presence ofapktool.yml). - Click Rebuild & Sign. The tool automatically triggers
apktool b, optimizes alignment withzipalign, and signs it using a built-in debug signature profile to output a functional*_MODDED.apk.
- Click Select Modded Folder and choose your
- What it does: Allows you to quickly optimize and cryptographically sign an existing unsigned APK without decompiling it first.
- How to use it:
- Click Browse Manual APK to select your raw unsigned application binary.
- Click Zipalign & Sign to instantly generate a standard, production-ready
*_SIGNED.apk.
- What it does: Sideloads any custom APK file onto your connected Android device with advanced parameters.
- How to use it:
- Click Select Custom APK to choose the file you want to push to the device.
- Select your desired deployment mode via the radio buttons:
- Standard Install (-r): Reinstalls/replaces the app while preserving its local data.
- Force Downgrade (-d): Bypasses version-checking blocks to force install an older package version over a newer one.
- Allow Test Apps (-t): Allows deployment of applications marked as test packages in their manifests.
- Play Store Fake (-i Vending): Deploys the package using a spoofed Google Play Store installation source configuration to bypass local application environment validation checks.
- (Optional) Modify the text in the Custom Flag Override entry field if you want to pass custom flags (e.g., adding a specific device signature handle).
- Click Push Package to Device to run the deployment thread.
- What it does: Formulates an encrypted communication bridge to your jailbroken iOS device.
- How to use it:
- Ensure your iOS device is on the same local network as your workstation.
- Input the phone's local network IP address, SSH Username (default:
root), and Password (default:alpine). - Click Scan App Bundles. The tool securely tunnels into the filesystem to audit decrypted binary spaces.
- What it does: Displays the tracked index of live apps pulled from the iOS device.
- How to use it:
- Select your targeted mobile application from the dropdown menu. The application profiles map exact sandboxed directories automatically, keeping text clear of confusing backslashes or layout formatting errors.
- What it does: Securely transfers decrypted iOS applications onto your desktop and compresses them safely into clean
.ipainstallation containers. - How to use it:
- Click Select Workpath Folder to choose where the file should save.
- Click Build Signed .ipa. MobiSuite safely processes folder path structures using long-path support strings to download the binary blocks natively via SCP and compresses the bundle into a deployable application package.
- What it does: Points the recon engine at an apktool-decompiled project (validated by the presence of
apktool.yml). - How to use it:
- Click Use Last Decompiled Output to automatically target whatever you just decompiled in the Android tab's Step 1, or click Select Decompiled Folder to manually browse to any existing
_decompiledproject directory.
- Click Use Last Decompiled Output to automatically target whatever you just decompiled in the Android tab's Step 1, or click Select Decompiled Folder to manually browse to any existing
- What it does: Runs
apksigner verify --print-certsagainst the active target APK to report v1/v2/v3/v4 signing scheme verification and the signer certificate's DN (flagging the well-known Android debug certificate as a warning), plus MD5/SHA1/SHA256 file hashes. - How to use it:
- Click Analyze Signature & Hashes (works on the currently loaded/pulled/merged APK β no decompiled folder required).
- What it does: Parses
AndroidManifest.xmlto surface what an attacker (or a bounty hunter) would look at first:debuggable/allowBackup/usesCleartextTrafficflags, dangerous permissions, explicitly exported activities/services/receivers/providers, components with an intent-filter but no explicitandroid:exported(flagged as an implicit-export warning), and deep link scheme/host/pathPrefix combinations. - How to use it:
- Click Extract Attack Surface. Results populate the structured findings box at the bottom of the tab.
- What it does: Walks the decompiled
smali/res/assetstree (skipping image-heavy resource folders and oversized files) and regex-mines it for hardcoded URLs, IP addresses, known secret formats (Google API keys, AWS access keys, Firebase database URLs, Slack tokens, JWTs, genericapi_key=/secret=/access_token=strings), and MobSF-style code vulnerability patterns: weak hashing (MD5/SHA-1), weak ciphers (DES/ECB), insecure PRNG (java.util.Random), risky WebView configuration (setJavaScriptEnabled,addJavascriptInterface, file-access flags), customX509TrustManager/HostnameVerifierimplementations (flagged for manual review), and external storage read/write. - How to use it:
- Click Scan Decompiled Source. Progress streams to the Live Terminal Logs tab; the deduplicated results populate the findings box.
- What it does: Cross-references every discovered URL's hostname against a bug bounty program's in-scope domain list, so you immediately know which endpoints found inside the app are actually worth pursuing.
- How to use it:
- Paste the program's in-scope domains into the text box, one per line β use
*.example.comto match a domain and all its subdomains, or a bare domain for an exact-host match. - Click Match Discovered URLs to Scope to split findings into in-scope vs. out-of-scope/informational.
- Paste the program's in-scope domains into the text box, one per line β use
- What it does: Writes the full structured findings (signature/hashes, manifest attack surface, endpoints/secrets/code vulnerabilities, scope match results) out as a Markdown file for your write-up.
- How to use it:
- Click Export Markdown Report and choose a save location.
Requires a rooted device or rooted emulator. Only use these features against apps you are authorized to test. This tab is for Flutter apps only β
libflutter.sobundles its own BoringSSL-based TLS stack, so the generic Android SSL-pinning bypass in the Native tab has nothing to hook here.Magisk users: having
su/Magisk installed is not enough on its own β ADB shell must be explicitly granted superuser access. Open the Magisk app on the device, go to Superuser settings, and make sure ADB/Shell requests are allowed (either set the policy to grant automatically, or approve the on-screen prompt the first timesuruns). Until this is done, "Detect Device Environment" will correctly reportsu DENIEDrather than silently failing.
- What it does: Lists installed third-party apps on the device, the same way the Android tab's ADB puller does.
- How to use it: Click Scan Installed Apps and select your target from the dropdown.
- What it does: Detects the connected device's CPU architecture, Android version, and root/
sustatus. Once root is confirmed, downloads thefrida-serverbuild matching your installedfridaPython version and the device's architecture, pushes it to/data/local/tmp/, and launches it as root. This tab owns the Deploy control β the Native Application Bypass tab just mirrors this same live status, since there's only onefrida-serverprocess on the phone. - How to use it: Click Detect Device Environment first β confirm root shows as granted β then click Deploy Frida Server.
- What it does: Gets the app's HTTPS/HTTP traffic flowing into Burp before you bypass pinning, so you can actually see requests once the hook fires. Enable Redirect (All Apps) routes the whole device's port 80/443 traffic via
adb reverse+ iptables NAT β quick for general recon. Generate Capture-Traffic Script (This App Only) instead writes a standalone, UID-scoped.batfile (saved underfrida_scripts/generated/) that redirects only the selected app β safe to re-run any time, including after a reboot, without the GUI open. - How to use it:
- Set your Burp Port (shared across both bypass tabs).
- Click Enable Redirect (All Apps), or click Generate Capture-Traffic Script (This App Only) and run the generated
.batdirectly incmd.exe. - In Burp: Proxy β Settings β add a listener on
127.0.0.1:<port>with Support invisible proxying enabled. - If nothing shows up in Burp, click Force-Restart Target App β a redirect rule only catches new connections, not ones the app already had open.
- Use Verify Rules / Show Active Capture Rules to confirm what's actually being redirected, and Revert (This App Only) or Revert (ALL Apps On This Port) to tear it down.
- What it does: Extracts
libflutter.so(arm64-v8a) from the target APK, statically locates the certificate-verify function by scanning forssl_client/ssl_serverstring references in the ELF code segment, and reports the result honestly:CONFIDENT(every candidate reference converged on one address),AMBIGUOUS(candidates disagree β best guess is used, verify at runtime), orNOT_FOUND. It then generates and attaches a Frida script that hooks the resolved offset and forces the verification result to succeed, streaming live hit counts so you can confirm the hook is actually firing. - How to use it:
- Click Run Auto Flutter SSL Bypass β it will prompt for the target's APK (or reuse the one already staged from the Android tab).
- Watch the Confidence / Offset / Hook Hits readouts and the diagnostics box below for extract β scan β attach progress.
Requires a rooted device or rooted emulator. Only use these features against apps you are authorized to test. This tab is for native (Java/Kotlin, non-Flutter) apps β use the Flutter Application Bypass tab instead for Flutter apps.
Two independent approaches are provided β use whichever matches your workflow, or both. Frida-Based Bypass is a live, in-process attach: fast for one-off testing, but nothing persists after the app restarts or the phone reboots. LSPosed Module Bypass installs a persistent Xposed/LSPosed module you built separately: survives relaunches, matching a real engagement workflow (build a dedicated module in Android Studio, then install + scope it here).
Same shared cards described in the Flutter tab above β pick your target app and route its traffic to Burp before running a bypass. The Frida server status shown here is read-only; deploy it from the Flutter Application Bypass tab.
- What it does: Attaches to (or spawns) the selected app via Frida and loads curated bypass scripts: SSL Pinning Bypass (hooks OkHttp
CertificatePinner, Android'sTrustManagerImpl, and WebView SSL error handling) and Root Detection Bypass (hooksFile.exists,Runtime.exec,PackageManager,Build.TAGS, andPATHchecks against common root/Magisk indicators). You can also Load Custom Script... to point at your own Frida.jsfile and run it standalone via Run Custom Script. - How to use it: Click Run SSL Pinning Bypass, Run Root Detection Bypass, Run Both, or load and run your own script. Script log output streams into the results console below. Click Detach when finished.
- What it does: Installs a pre-built LSPosed/Xposed module APK (you build this separately, e.g. in Android Studio), enables it, and scopes it to the target app by writing directly into LSPosed's own
modules_config.dbviaadb+sqlite3β the same mechanism the LSPosed Manager app itself uses. Requires LSPosed already active on the device (Zygisk/KernelSU-Next, etc.). - How to use it:
- Click Select Module APK, then Install Module APK.
- Open the LSPosed Manager app on the device once so it registers the new module.
- Enter the module's own package name (e.g.
com.example.app.cug) and click Enable + Scope to Target App. - Click Verify Scope to confirm the module is registered and scoped correctly.
- Reboot the device β LSPosed only applies scope changes on next boot. After reboot, relaunch the target app and confirm the module's own hook logs fire.
- Live Terminal Logs Tab: Open this dashboard tab at any time to inspect raw command-line stdout strings, active connection errors, sub-tool initialization lines, or script diagnostics.
- Environment Settings Tab: Check this screen to audit your local directory inventory setup status map. If an underlying binary component shows a red
π΄ MISSINGstatus badge, click Force System Sync & Repair to auto-download and repair the local repository environment block dependencies.






