Files
pmt-renovated/RELEASE-TYPES.md

66 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Release Types
This project provides four different release packages, each tailored for specific Android device architectures and usage preferences.
---
## The Four Release Files
| File Name | Architecture | Bitness | Library Type | Description |
|---------------------------|-----------------|---------|----------------|----------------------------------------------------------|
| `pmt-arm64-v8a.zip` | ARM64 (ARMv8-A) | 64-bit | Dynamic (.so) | For 64-bit devices, uses dynamic libraries. Requires accompanying `.so` files (`libhelper` and `libpartition_map`). |
| `pmt-static-arm64-v8a.zip`| ARM64 (ARMv8-A) | 64-bit | Static (.a) | Fully static build for 64-bit devices. No external dependencies. Great for general use and ADB environments. |
| `pmt-armeabi-v7a.zip` | ARM (ARMv7) | 32-bit | Dynamic (.so) | For 32-bit devices, uses dynamic libraries. Requires `.so` files (`libhelper` and `libpartition_map`). |
| `pmt-static-armeabi-v7a.zip`| ARM (ARMv7) | 32-bit | Static (.a) | Fully static build for 32-bit devices. No external dependencies. Great for general use and ADB environments. |
---
## Architecture & Bitness Explained
- **ARM64 (arm64-v8a)**:
This is a 64-bit architecture used by newer Android devices. It can handle larger amounts of memory and generally runs faster for heavy tasks.
- **ARM (armeabi-v7a)**:
This is a 32-bit architecture common on older or less powerful Android devices. It has some limitations compared to 64-bit but is still widely supported.
---
## Dynamic vs Static Libraries
The project relies on two helper libraries:
- **libhelper**
- **libpartition_map**
### Dynamic Versions (`.so` files)
- In the non-static (`pmt-arm64-v8a.zip` and `pmt-armeabi-v7a.zip`) packages, these libraries are **compiled as shared objects (`.so` files)**.
- This means that the main program (`pmt`) **depends on these libraries being present** on the device or alongside the executable to run correctly.
- If these libraries are missing, the program will fail to start.
- These builds are mostly for developers or users who want to customize or work closely with the libraries.
### Static Versions (`.a` files)
- The static packages (`pmt-static-arm64-v8a.zip` and `pmt-static-armeabi-v7a.zip`) **include these libraries inside the main executable** by linking them statically.
- This means the `pmt` binary is **completely self-contained** and **does not require any external `.so` files**.
- These versions are ideal for general users and especially convenient for ADB usage, where installing separate `.so` files might be cumbersome.
---
## Which Should You Use?
- If you want a hassle-free experience and dont want to worry about missing libraries, **choose the static version** matching your devices architecture.
- If you are a developer or want to experiment with the libraries separately, or save space by sharing `.so` files between multiple programs, the **dynamic version** is the way to go.
---
## Summary
| Release Type | Architecture | Dependencies | Best For |
|--------------|--------------|-----------------------|---------------------------|
| Static | 32-bit / 64-bit | None (fully standalone) | General users, ADB usage |
| Dynamic | 32-bit / 64-bit | Requires `.so` libs | Developers, advanced users |
---
If youre unsure which one to pick, try the **static version** first — it works out of the box on all supported devices.