From fd4e3cf04799e4cc965d81b5335325a7b3a440b0 Mon Sep 17 00:00:00 2001 From: YZBruh Date: Sun, 10 Aug 2025 20:31:08 +0300 Subject: [PATCH] Add RELEASE-TYPES.md for explanating release files. --- RELEASE-TYPES.md | 65 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 RELEASE-TYPES.md diff --git a/RELEASE-TYPES.md b/RELEASE-TYPES.md new file mode 100644 index 0000000..69d2f7f --- /dev/null +++ b/RELEASE-TYPES.md @@ -0,0 +1,65 @@ +# 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 don’t want to worry about missing libraries, **choose the static version** matching your device’s 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 you’re unsure which one to pick, try the **static version** first — it works out of the box on all supported devices.