115 lines
3.9 KiB
Markdown
Executable File
115 lines
3.9 KiB
Markdown
Executable File
## Partition Manager (pmt)
|
|
|
|
[](https://github.com/ShawkTeam/pmt/actions/workflows/check_commits.yml)
|
|
|
|
This binary, written in C, is for writing/reading and formatting on Android partitions.
|
|
|
|
#### Presented arguments (options)
|
|
|
|
```
|
|
Usage: pmt backup PARTITION [OUTPUT] [OPTIONS]...
|
|
or: pmt flash PARTITION FILE [OPTIONS]...
|
|
or: pmt format PARTITION FILE_SYSTEM[ext/2/3/4] [OPTIONS]...
|
|
|
|
Options:
|
|
-l, --logical It is meant to determine whether the target partition is logical.
|
|
-c, --context It is meant to specify a custom /dev context. Only classic partitions (default: /dev/block/by-name).
|
|
-p, --list List partitions.
|
|
-s, --silent Information and warning messages are silenced in normal work.
|
|
-f, --force Force mode. Some things are ignored.
|
|
-S, --set-lang Set current language.
|
|
-v, --version See version.
|
|
--help See this help message.
|
|
|
|
Examples:
|
|
pmt backup boot_a -c /dev/block/platform/bootdevice/by-name
|
|
pmt flash boot_a /sdcard/twrp/boot.img -c /dev/block/platform/bootdevice/by-name
|
|
pmt format system_a ext4 --logical
|
|
pmt -c /dev/block/platform/bootdevice/by-name --list
|
|
|
|
Report bugs to <t.me/ShawkTeam | Topics | pmt>
|
|
```
|
|
|
|
#### Some notes
|
|
|
|
- pmt supports multiple languages. [See languages.](https://github.com/ShawkTeam/pmt/blob/2.7.0/LANGUAGES.md)
|
|
- [Add language.](https://github.com/ShawkTeam/pmt/blob/2.7.0/ADD-LANGUAGES.md)
|
|
- Feel free to ask any questions you want.
|
|
- Packages are available in publications.
|
|
- If the logical partition flag is not used, a classic partition is tried to be processing by default.
|
|
- [Click to see special version changes.](https://github.com/ShawkTeam/pmt/blob/2.7.0/CHANGELOG.md)
|
|
- We are always open to your suggestions and support (developing)!
|
|
|
|
### How is it built?
|
|
Make or Android NDK is required to build.
|
|
|
|
##### Build with NDK
|
|
- [Download Android NDK](https://developer.android.com/ndk/downloads) and extract the NDK package.
|
|
- Clone this repository. And get access to it.
|
|
```
|
|
git clone https://github.com/ShawkTeam/pmt -b 2.7.0
|
|
cd pmt
|
|
```
|
|
- Set the NDK working directory variable.
|
|
```
|
|
make gen-ndk-makefiles
|
|
# If you fail the audit, etc., use FORCE_GEN.
|
|
# Example:
|
|
make gen-ndk-makefiles FORCE_GEN=true
|
|
|
|
# Required by Android NDK
|
|
export NDK_PROJECT_PATH="${PWD}"
|
|
```
|
|
- Go to the NDK directory and start the build
|
|
```
|
|
# Required for creating clang version information and directory access
|
|
export NDK_ROOT_DIR="${PWD}"
|
|
cd "${NDK_PROJECT_PATH}" \
|
|
&& bash build/bash/gen-header \
|
|
&& cd "${NDK_ROOT_DIR}"
|
|
|
|
# Start build
|
|
./ndk-build
|
|
```
|
|
- The output files will be inside the `pmt` folder. Binaries are available in two architectures within the `libs` folder. `arm64-v8a` (64-bit) and `armeabi-v7a` (32-bit).
|
|
```
|
|
pmt/
|
|
|
|
|
________________|________________
|
|
| | | |
|
|
jni/ build/ obj/ libs/
|
|
|
|
|
__________|__________
|
|
| |
|
|
arm64-v8a/ armeabi-v7a/
|
|
| |
|
|
pmt pmt
|
|
```
|
|
|
|
##### Build with Makefiles
|
|
|
|
```
|
|
make
|
|
|
|
# To specify clang, just use CC=<clang> next to the command (and same logic in AR)
|
|
# Example:
|
|
make CC=${PWD}/../toolchain/bin/clang-18
|
|
make AR=${PWD}/../toolchain/bin/ar
|
|
make CC=${PWD}/../toolchain/bin/clang-18 AR=${PWD}/../toolchain/bin/ar
|
|
|
|
# Use termux :D
|
|
```
|
|
- For the make installable debian package:
|
|
|
|
```
|
|
make deb <ARCH_NUM>
|
|
|
|
# Examples
|
|
make deb FOR_THIS=64
|
|
make deb FOR_THIS=32
|
|
```
|
|
|
|
### Notes
|
|
If you want to change something, take a look at the configuration. You can change him.
|
|
it is located in the `build/config` folder. His name is `env.mk`. I gave the information in the file. You can ask more.
|