10 KiB
Partition Manager Tool (PMT)
Partition Manager Tool is a powerful command-line utility for Android devices, designed to perform various operations on partitions quickly, reliably, and efficiently.
This is the renovated version of PMT, rewritten in C++ for improved performance, stability, and usability compared to its older variant.
It supports asynchronous operations, allowing multiple partitions to be processed in parallel, and includes safety measures to prevent a single error from breaking the entire operation batch.
Features
- Backup partitions to files (with optional permissions fix for non-root access).
- Flash image files directly to partitions.
- Erase partitions by filling them with zero bytes.
- Get partition sizes in various units.
- Display partition information in plain text or JSON format.
- Retrieve real paths and symbolic link paths of partitions.
- Identify file system or image types by checking magic numbers.
- Reboot the device into different modes.
Usage
Don't forget to check out how to use it with ADB!
pmt [OPTIONS] [SUBCOMMAND]
Global Options
| Option | Long Option | Description |
|---|---|---|
-h |
--help |
Print basic help message and exit. |
--help-all |
Print full help message and exit. | |
-S |
--search-path TEXT |
Set the partition search path. |
-L |
--log-file TEXT |
Set log file path. |
-f |
--force |
Force the process to be executed even if checks fail. |
-l |
--logical |
Specify that the target partition is dynamic. |
-q |
--quiet |
Suppress output. |
-V |
--verbose |
Enable detailed logs during execution. |
-v |
--version |
Print version and exit. |
Example usages for global options:
pmt [SUBCOMMAND ...] --quiet
pmt [SUBCOMMAND ...] -S /dev/block/platform/bootdevice/by-name
pmt [SUBCOMMAND ...] [GLOBAL OPTIONS ...]
Subcommands
1. backup
Backup partitions to files. General syntax:
pmt backup partition(s) [output(s)] [OPTIONS]
Options:
-b,--buffer-size SIZE→ Set buffer size (in bytes) for read/write operations.-O,--output-directory DIR→ Specify an output directory for backups.
Notes:
- Partition names are separated by commas.
- If custom output names are provided, they must match the number of partitions.
- Automatically adjusts permissions so backup files can be read/written without root.
Example usages:
pmt backup boot
pmt backup boot boot_backup.img
pmt backup boot,recovery,vendor
pmt backup boot
pmt backup boot,recovery -O /sdcard
pmt backup system,vendor --buffer-size=8192 # '=' is not mandatory
2. flash
Flash an image or multiple images to partitions. general syntax:
pmt flash partition(s) image(s) [OPTIONS]
Options:
-b,--buffer-size SIZE→ Set buffer size (in bytes).-I,--image-directory DIR→ Directory containing image files.
Notes:
-
Multiple partitions and images are separated by commas.
-
Example usages:
pmt flash boot boot_backup.img
pmt flash boot,recovery /sdcard/backups/boot_backup.img,/sdcard/backups/recovery_backup.img
pmt flash boot boot_backup.img,recovery_backup.img -I /sdcard/backups
pmt flash system,vendor system_backup.img,vendor_backup.img -I /sdcard/backups --buffer-size=8192
3. erase
Fill partition(s) with zero bytes (like dd if=/dev/zero of=/dev/block/by-name/<partition>). General syntax:
pmt erase partition(s) [OPTIONS]
Options:
-b,--buffer-size SIZE→ Set buffer size.
Example usages (DO NOT USE FOR TRYING!!!):
pmt erase boot
pmt erase nvdata,nvram
pmt erase system,vendor --buffer-size=8192
4. sizeof
Show the size of partition(s). General syntax:
pmt sizeof partition(s) [OPTIONS]
Options:
--as-byte→ Show size in bytes.--as-kilobyte→ Show size in KB.--as-megabyte→ Show size in MB (default).--as-gigabyte→ Show size in GB.--only-size→ Output only the numeric value (no partition name).
Example usages:
pmt sizeof boot - Example output: boot: 64MB
pmt sizeof boot --as-byte - Example output: 64
pmt sizeof boot --as-<write type here> --only-size - Example output (for --as-kilobyte): 98304
5. info
Show partition name, size, and dynamic status. General syntax:
pmt info partition(s) [OPTIONS]
Options:
-J,--json→ Output in JSON format.--json-partition-name NAME→ Custom JSON key for partition name.--json-size-name NAME→ Custom JSON key for size.--json-logical-name NAME→ Custom JSON key for dynamic status.
Example usages:
pmt info boot - Example output: partition=boot size=100663296 isLogical=false
pmt info boot -J - Example output: {"name": "boot", "size": 100663296, "isLogical": false}
pmt info boot -J --json-partition-name=partitionName - Example output: {"partitionName": "boot", "size": 100663296, "isLogical": false}
6. real-path
Show the absolute block device path for each partition. General syntax:
pmt real-path partition(s) [OPTIONS]
Example usages:
pmt real-path boot - Example output: /dev/block/sda25
7. real-linkpath
Show the symbolic link path for each partition (e.g., /dev/block/by-name/boot). General syntax:
pmt real-link-path partition(s) [OPTIONS]
8. type
Check magic numbers to determine file system or other types of partition(s) or image(s). General syntax:
pmt type partition(s) [OPTIONS]
Options:
-b,--buffer-size SIZE→ Set buffer size.--only-check-android-magics→ Check only Android-related magic numbers.--only-check-filesystem-magic→ Check only file system magic numbers.
Example usages:
pmt type boot - Example output: boot contains Android Boot Image magic (0x2144494F52444241)
pmt type vendor_boot.img - Example output: vendor_boot.img contains Android Vendor Boot Image magic (0x544F4F4252444E56)
9. reboot
Reboot the device. Default reboot target is normal. If you are using it via ADB terminal, you DO NOT need root to use this feature. General syntax:
pmt reboot [rebootTarget] [OPTIONS]
Example usages:
pmt reboot
pmt reboot recovery
pmt reboot download
Additional Notes
- Comma-separated inputs: All commands (except
reboot) require multiple inputs to be separated by commas. - Asynchronous execution: For
backup,flash, anderase, each partition is processed in a separate thread for maximum speed. - Error isolation: A failure in processing one partition will not cancel the others. Only for
backup,flashanderasefunctions. - Automatic diagnostics: By default, whether a partition is dynamic or regular is determined automatically. With global options, you only specify precision.
- Root access: Root access is required if operations are to be performed on partitions.
Extra Note: Comma Usage
In Partition Manager Tool, whenever you provide multiple partitions, multiple image files, or multiple output file names, they must be separated by commas (,), without spaces.
✅ Correct:
pmt backup boot,recovery
pmt flash boot,recovery boot.img,recovery.img
❌ Incorrect:
pmt backup boot recovery
pmt flash boot recovery boot.img recovery.img
The number of items must match when providing both input and output lists.
For example, if you specify 3 partitions, you must also provide 3 output file names.
This rule applies to all commands except reboot, since reboot only takes one optional argument.
Using pmt-static via ADB
This guide will show you how to use the static version of Partition Manager Tool (pmt-static) on your Android device through ADB.
It’s written for beginners — no advanced knowledge needed.
📦 Why Static Version?
The static build of PMT contains everything it needs inside one single file.
This means you can run it directly on your Android device without installing extra libraries.
Perfect for quick tasks via ADB.
📋 Requirements
- ADB installed on your computer
(Part of the Android SDK Platform Tools — Download here) - USB Debugging enabled on your phone
(Settings → Developer options → Enable USB debugging) - Your phone connected via USB and recognized by ADB
🚀 Step-by-Step Usage
1️⃣ Get the Correct Binary
Download the pmt-static file that matches your device’s architecture:
pmt-static-arm64-v8a→ For 64-bit devicespmt-static-armeabi-v7a→ For 32-bit devices
Unzip the downloaded .zip file — you should now have a pmt binary.
2️⃣ Push the Binary to Your Device
Use ADB to copy the pmt file to your phone’s temporary folder:
# Rename for more easily usage
mv pmt_static pmt
adb push pmt /data/local/tmp/pmt
3️⃣ Open an ADB Shell
Access your device shell:
adb shell
4️⃣ Change to the Directory
Move into the temporary directory where pmt is stored:
cd /data/local/tmp
5️⃣ Give Execute Permission
Allow the binary to be executed:
chmod 755 pmt
6️⃣ Run PMT
You can now run PMT directly from this directory:
# Open root terminal
su
./pmt --help
Example — Back up the boot partition:
./pmt backup boot
💡 Tips
Commands must be run from /data/local/tmp unless you move pmt elsewhere.
The /data/local/tmp folder is cleared when you reboot your device.
Static builds are completely standalone — no missing library issues.
License
Partition Manager Tool is licensed under the Apache 2.0 License.
Copyright © YZBruh.
Bug Reports
Please submit issues at:
https://github.com/ShawkTeam/pmt-renovated/issues