A-Team-Android_Image_Toolkit/README.md
2026-09-15 21:22:01 -05:00

101 lines
4 KiB
Markdown
Executable file

# A-Team Android Image Toolkit
Cross-platform GTK3 Android image and device toolkit for Windows and Linux.
## Modules
1. **A-Team Sparse Chunk Converter** — sparse chunk -> raw `super.img`.
2. **A-Team Super Image Extractor** — `lpunpack` based dynamic partition extraction.
3. **A-Team EROFS / EXT4 Image Rebuilder** — supplied unpack/repack scripts (Linux-oriented).
4. **A-Team Super Image Creator** — dynamic `super.img` creator.
5. **A-Team Vendor Boot Extract / Rebuild** — vendor_boot ramdisk extraction/rebuild.
6. **A-Team Vbmeta Security Disabler** — supplied vbmeta flashing workflow.
7. **A-Team Android Image Kitchen** — supplied Windows/Linux image kitchen.
8. **A-Team Terminal** — command console with copyable output.
## Device controls
The main window exposes quick buttons for:
- `adb devices`
- `adb reboot`
- `adb reboot recovery`
- `adb reboot bootloader`
- `fastboot devices`
- `fastboot reboot`
- `fastboot reboot recovery`
- `fastboot oem unlock`
- `fastboot flashing unlock`
Unlock commands require confirmation because bootloader unlocking can erase user data.
## Project layout
- `src/` — application source (`core/` and `gui/`)
- `modules/` — toolkit modules and their bundled tools
- `scripts/` — launcher, Windows bootstrap, hidden launcher, and update helper
- `tools/` — bundled command-line tools; development helpers are under `tools/dev/`
- `config/` — Python dependency requirements
- `assets/` — application artwork
- `Project_Working_Folders/` — persistent per-module working directories
The root directory is intentionally kept for user-facing launchers, documentation, licensing, and project metadata.
## Platform Tools
The toolkit bundles the Android platform tools it needs in:
- Linux: `platform-tools/linux/`
- Windows: `platform-tools/windows/`
The GUI automatically selects the correct `adb` and `fastboot` for the host platform and falls back to PATH when a bundled executable is unavailable. No separate platform-tools setup step is required.
Official Android Platform-Tools information: https://developer.android.com/tools/releases/platform-tools
## GTK3 prerequisites
Linux typically needs GTK3 + PyGObject, for example on Debian/Ubuntu:
```bash
sudo apt install python3-gi gir1.2-gtk-3.0
```
Windows can use an existing Python distribution with GTK3/PyGObject. If `gi` is not available, the Windows launcher automatically prepares the MSYS2 UCRT64 GTK3/PyGObject runtime (using an existing MSYS2 installation or winget when available) and then launches the same application code. Linux behavior is unchanged.
## Launch
Linux:
```bash
./START_LINUX-A-Team-Android_Image_Toolkit.sh
```
Windows:
```bat
START_WINDOWS-A-Team-Android_Image_Toolkit.bat
```
The launcher and supporting bootstrap/update scripts live under `scripts/`; they are implementation details and normally do not need to be run directly. The application source lives under `src/` and is loaded from there by the launchers.
The architecture is module-first: each directory under `modules/` contains a manifest and `module.py`, so future A-Team packages can be added without changing the application shell.
## Magisk Boot Patcher
Module 08 presents the supplied A-Team Magisk 0.07 patcher through the same file/browse/options/log workflow used by the Super Image Creator. The supplied patcher binaries are Linux ELF and are therefore enabled on Linux; the original source is retained unchanged inside the module.
## Integrated updater
The Device Tools header includes **Check for Updates**. The updater reads `Updates/version.json` from the A-Team Git repository, compares the published `display` version with the installed toolkit version, and can download/install the referenced `.7z` package. An optional `sha256` field can be supplied in the JSON for archive verification before installation.
Expected update metadata fields:
```json
{
"version": "2",
"display": "1.3.1",
"file": "A-Team-Android_Image_Toolkit-v1.3.1.7z",
"changelog": "Release notes here",
"sha256": "optional sha256 hex digest"
}
```