The MPT (Mobile Pentest Toolkit) is a must-have solution for your android penetration testing workflow.
94
stars
215
commits
Python
primary language
May 15, 2026
updated
The MPT (Mobile Pentest Toolkit) is a must-have solution for your android penetration testing workflows. This tool allow you to automate security tasks and focus on security assessment without to know, where the tools are located and with parameters are required.

The following list contains all available tools:
Mobile Security Framework (MobSF)Runtime Mobile Security (RMS)Runtime Mobile Exploration ToolkitStatic code analysis for vulnerabilities and bugsDex to Java decompilerJava Decompiler, dex2jar requiredJava Decompiler Gui for ProcyonMulti-platform SQLite database managerexcellent logcat color scriptPID Cat (extended version)Bash script to dump, build and sign apkMemory dumping tool uring fridaAndroid Debug Bridge (adb)Android Asset Packaging ToolAndroid backup extractor, android:allowBackup="true" requiredsign an apk with the Android test certificateA tool for reverse engineering Android apk filesConvert the Dalvik Executable (.dex) file to jarscans an APK and an Android device for CVE-2017–13156Set Linux as router in one command. Able to provide Internet, or create WiFi hotspotApplication mirrors Android devices (video and audio) connected via USBThe mobile pentest toolkit (MPT) was presented on conference OWASP Bucharest AppSec 2018.
The option --setup [package-name] creates a new pentest folder for the specific package.

With the option --list-packages a full list of all installed applications are shown.
The list also contains the full path to the .apk and the data directory.

With the option --setup-no-root the configured application gets configured for non-rooted devices.
Some backup and debug options will be set and also a frida-gadget will be injected to explore the application without root context.

With the option --pidcat a colored logcat will be show for the specific application.

With the option --decompile the default decompiler get started with the configured application.

With the option --install-tools all necessary tools will be installed.

With the option --patch-gadget a frida gadget will be patched into the configured application.

With the option --screenshot a screenshot is taken of the curren screen of the connected device.

With the option --screen-copy the tool scrcpy will be started to mirror the screen of the connected device.

With the option --configure-burp the certificate of burpsuite will be copied to the device and the application will be configured to accept it.

pipx install mptsec
# alternative way install from a public repository
pipx install git+https://github.com/ByteSnipers/mobile-pentest-toolkit --include-deps
# Python (pip)
python3 -m pip install --user pipx
# Debian/Ubuntu/Kali
sudo apt update
sudo apt install python-pipx
# Fedora/Red Hat
sudo dnf install pipx
# Arch Linux/Black Arch
sudo pacman -S python-pipx
# openSUSE
sudo zypper install python-pipx
The pipx ensurepath command is used to ensure that the directory containing pipx's installed binaries is included in your system's PATH environment variable.
pipx ensurepath
pip install mptsec
If pip install mptsec fails, you can isolate the installation using a virtual environment (venv) to avoid system-level conflicts.
python3 -m venv venv
source venv/bin/activate
pip install mptsec
pipx install git+https://github.com/ByteSnipers/mobile-pentest-toolkit --include-deps --force
mpt --update
pipx uninstall mptsec
pip uninstall mptsec
The default directory of the config file is in ~/.mpt/settings.json.
Everytime the tool is launched, it will check if the config file exists.
If not, it will create the default one and ask's for the installation folder for the tools.
The settings.json needs the following options:
| Option | Value |
|---|---|
| access-point | IP-Address which is used to create an hotspot which is connected to the internet and which is usable for burp proxy. |
| app | Path to the .apk file to test. |
| application-label | Human readable label of the application. |
| install-dir | Path to install necessary tools into it. |
| package-name | The package name of the mobile app, like com.example.app. |
| pentest-dir | The path to the directory where the tests will be executed. |
| proxy | ----- |
| proxy.host | IP-Address or hostname of the proxy (e.g. BurpSuite). |
| proxy.port | Port of the proxy. |
You can set this alias to quickly and easily navigate to your project directory based on the configuration in the settings.json file. Here’s how you can do it:
.bashrc or .zshrcRun the following command to add the alias to your .bashrc file:
echo '\n# mpt alias\nalias pentest-dir="cd $(cat /home/$USER/.mpt/settings.json | grep pentest-dir | awk -F'\''\\"'\'' '\''{print $4}'\'') && ls -l"' >> ~/.bashrc
You can also add a new alias manually to your .bashrc file:
alias pentest-dir="cd $(cat /home/$USER/.mpt/settings.json | grep pentest-dir | awk -F'\"' '{print $4}') && ls -l"
After adding the alias, reload your .bashrc file to make it immediately available or open a new terminal window
source ~/.bashrc
:warning: You need to install Oh My ZSH
:warning: The command line options has not been updated for a while and does not match with the latest version. PRs are welcome
cp -r mpt/mpt-zsh-plugin/ ~/.oh-my-zsh/plugins/mpt
Enable MPT plugin in .zshrc by adding the fooling line plugins=(mpt)
mpt --install-tools
mpt --setup <apk-file>
mpt.py <command> [options]
options:
-h, --help show this help message and exit
--update Update MPT to the latest version
Pentest:
Configure and manage current pentest
--setup [APK] Setup pentest environment
--config Show current pentest config
Frida:
Run frida server and execute frida scripts
-f, --frida Run frida server on the device
-fs, --frida-select-version
Run frida server on the device (select frida version)
-s [package-name], --ssl-pinning [package-name]
Disable SSL Pinning (<package name> optional)
-r [package-name], --root-detection [package-name]
Disable Root Detection (<package name> optional)
Application:
Perform app related tasks
-l [all], --list-packages [all]
Show all installed packages (use option 'all' to display system apps)
-p [package-name], --pidcat [package-name]
Show colored logcat for a specific application (<package name> optional)
-st, --screenshot Take a screenshot from device screen
-sc, --screen-copy Mirrors Android device screen connected via USB to host (scrcpy)
-D, --fridump Dump application memory
-b [package-name], --backup [package-name]
Backup an android application (<package name> optional)
-d [decompiler], --decompile [decompiler]
Start java decompiler for source code analysis (<decompiler> optional): jadx(default), jd-gui, luyten
-dp, --dump [package-name]
Dump an android application (<package name> optional)
-dg, --debug-enable [package-name]
Enable debug- and backup-flag in android application (<package name> optional)
-pg, --patch-gadget [package-name]
Patch frida gadget into android application without root (<package name> optional)
-psa, --pack-sign-apk [package-name]
Pack modified dump, zipalin it and sign it (<package name> optional)
-1, --setup-no-root [package-name]
Setup .apk for non root device (-dp, -dg, -pg, -psa) (<package name> optional)
Tools:
Install and run pentest tools on your host
-tl, --tool-list Show all supported tools
-t tool [tool ...], --tool tool [tool ...]
Run selected tool with <arguments> (use option 'list' to display all tools)
-i, --install-tools Install pentesting tools on local system in a separate environment
-a, --adb-run Start adb server with root to avoid a lot of issues using adb
Proxy and WiFi:
Manage proxy on device and WiFi settings locally
-ps, --proxy-status Check WiFi proxy status
-pe [host:port], --proxy-enable [host:port]
Set proxy for WiFi connection on your device (optional <host:port>), if not set loads proxy settings from configuration file
-pd, --proxy-disable Disable WiFi proxy
-ap, --access-point Create an Hotspot which connected to internet and can be used for Burp proxy
-bc, --configure-burp [package-name]
Embed burp proxy cert to network config for automatic trust (<package name> optional)
You want to contribute? Awesome! Every Single help is appreciated!
Before you start, please check the following points:
Python
73.9%
JavaScript
26.1%
The MPT (Mobile Pentest Toolkit) is a must-have solution for your android penetration testing workflow.
94
stars
215
commits
Python
primary language
May 15, 2026
updated
The MPT (Mobile Pentest Toolkit) is a must-have solution for your android penetration testing workflows. This tool allow you to automate security tasks and focus on security assessment without to know, where the tools are located and with parameters are required.

The following list contains all available tools:
Mobile Security Framework (MobSF)Runtime Mobile Security (RMS)Runtime Mobile Exploration ToolkitStatic code analysis for vulnerabilities and bugsDex to Java decompilerJava Decompiler, dex2jar requiredJava Decompiler Gui for ProcyonMulti-platform SQLite database managerexcellent logcat color scriptPID Cat (extended version)Bash script to dump, build and sign apkMemory dumping tool uring fridaAndroid Debug Bridge (adb)Android Asset Packaging ToolAndroid backup extractor, android:allowBackup="true" requiredsign an apk with the Android test certificateA tool for reverse engineering Android apk filesConvert the Dalvik Executable (.dex) file to jarscans an APK and an Android device for CVE-2017–13156Set Linux as router in one command. Able to provide Internet, or create WiFi hotspotApplication mirrors Android devices (video and audio) connected via USBThe mobile pentest toolkit (MPT) was presented on conference OWASP Bucharest AppSec 2018.
The option --setup [package-name] creates a new pentest folder for the specific package.

With the option --list-packages a full list of all installed applications are shown.
The list also contains the full path to the .apk and the data directory.

With the option --setup-no-root the configured application gets configured for non-rooted devices.
Some backup and debug options will be set and also a frida-gadget will be injected to explore the application without root context.

With the option --pidcat a colored logcat will be show for the specific application.

With the option --decompile the default decompiler get started with the configured application.

With the option --install-tools all necessary tools will be installed.

With the option --patch-gadget a frida gadget will be patched into the configured application.

With the option --screenshot a screenshot is taken of the curren screen of the connected device.

With the option --screen-copy the tool scrcpy will be started to mirror the screen of the connected device.

With the option --configure-burp the certificate of burpsuite will be copied to the device and the application will be configured to accept it.

pipx install mptsec
# alternative way install from a public repository
pipx install git+https://github.com/ByteSnipers/mobile-pentest-toolkit --include-deps
# Python (pip)
python3 -m pip install --user pipx
# Debian/Ubuntu/Kali
sudo apt update
sudo apt install python-pipx
# Fedora/Red Hat
sudo dnf install pipx
# Arch Linux/Black Arch
sudo pacman -S python-pipx
# openSUSE
sudo zypper install python-pipx
The pipx ensurepath command is used to ensure that the directory containing pipx's installed binaries is included in your system's PATH environment variable.
pipx ensurepath
pip install mptsec
If pip install mptsec fails, you can isolate the installation using a virtual environment (venv) to avoid system-level conflicts.
python3 -m venv venv
source venv/bin/activate
pip install mptsec
pipx install git+https://github.com/ByteSnipers/mobile-pentest-toolkit --include-deps --force
mpt --update
pipx uninstall mptsec
pip uninstall mptsec
The default directory of the config file is in ~/.mpt/settings.json.
Everytime the tool is launched, it will check if the config file exists.
If not, it will create the default one and ask's for the installation folder for the tools.
The settings.json needs the following options:
| Option | Value |
|---|---|
| access-point | IP-Address which is used to create an hotspot which is connected to the internet and which is usable for burp proxy. |
| app | Path to the .apk file to test. |
| application-label | Human readable label of the application. |
| install-dir | Path to install necessary tools into it. |
| package-name | The package name of the mobile app, like com.example.app. |
| pentest-dir | The path to the directory where the tests will be executed. |
| proxy | ----- |
| proxy.host | IP-Address or hostname of the proxy (e.g. BurpSuite). |
| proxy.port | Port of the proxy. |
You can set this alias to quickly and easily navigate to your project directory based on the configuration in the settings.json file. Here’s how you can do it:
.bashrc or .zshrcRun the following command to add the alias to your .bashrc file:
echo '\n# mpt alias\nalias pentest-dir="cd $(cat /home/$USER/.mpt/settings.json | grep pentest-dir | awk -F'\''\\"'\'' '\''{print $4}'\'') && ls -l"' >> ~/.bashrc
You can also add a new alias manually to your .bashrc file:
alias pentest-dir="cd $(cat /home/$USER/.mpt/settings.json | grep pentest-dir | awk -F'\"' '{print $4}') && ls -l"
After adding the alias, reload your .bashrc file to make it immediately available or open a new terminal window
source ~/.bashrc
:warning: You need to install Oh My ZSH
:warning: The command line options has not been updated for a while and does not match with the latest version. PRs are welcome
cp -r mpt/mpt-zsh-plugin/ ~/.oh-my-zsh/plugins/mpt
Enable MPT plugin in .zshrc by adding the fooling line plugins=(mpt)
mpt --install-tools
mpt --setup <apk-file>
mpt.py <command> [options]
options:
-h, --help show this help message and exit
--update Update MPT to the latest version
Pentest:
Configure and manage current pentest
--setup [APK] Setup pentest environment
--config Show current pentest config
Frida:
Run frida server and execute frida scripts
-f, --frida Run frida server on the device
-fs, --frida-select-version
Run frida server on the device (select frida version)
-s [package-name], --ssl-pinning [package-name]
Disable SSL Pinning (<package name> optional)
-r [package-name], --root-detection [package-name]
Disable Root Detection (<package name> optional)
Application:
Perform app related tasks
-l [all], --list-packages [all]
Show all installed packages (use option 'all' to display system apps)
-p [package-name], --pidcat [package-name]
Show colored logcat for a specific application (<package name> optional)
-st, --screenshot Take a screenshot from device screen
-sc, --screen-copy Mirrors Android device screen connected via USB to host (scrcpy)
-D, --fridump Dump application memory
-b [package-name], --backup [package-name]
Backup an android application (<package name> optional)
-d [decompiler], --decompile [decompiler]
Start java decompiler for source code analysis (<decompiler> optional): jadx(default), jd-gui, luyten
-dp, --dump [package-name]
Dump an android application (<package name> optional)
-dg, --debug-enable [package-name]
Enable debug- and backup-flag in android application (<package name> optional)
-pg, --patch-gadget [package-name]
Patch frida gadget into android application without root (<package name> optional)
-psa, --pack-sign-apk [package-name]
Pack modified dump, zipalin it and sign it (<package name> optional)
-1, --setup-no-root [package-name]
Setup .apk for non root device (-dp, -dg, -pg, -psa) (<package name> optional)
Tools:
Install and run pentest tools on your host
-tl, --tool-list Show all supported tools
-t tool [tool ...], --tool tool [tool ...]
Run selected tool with <arguments> (use option 'list' to display all tools)
-i, --install-tools Install pentesting tools on local system in a separate environment
-a, --adb-run Start adb server with root to avoid a lot of issues using adb
Proxy and WiFi:
Manage proxy on device and WiFi settings locally
-ps, --proxy-status Check WiFi proxy status
-pe [host:port], --proxy-enable [host:port]
Set proxy for WiFi connection on your device (optional <host:port>), if not set loads proxy settings from configuration file
-pd, --proxy-disable Disable WiFi proxy
-ap, --access-point Create an Hotspot which connected to internet and can be used for Burp proxy
-bc, --configure-burp [package-name]
Embed burp proxy cert to network config for automatic trust (<package name> optional)
You want to contribute? Awesome! Every Single help is appreciated!
Before you start, please check the following points:
Python
73.9%
JavaScript
26.1%