Release v1.4

This commit is contained in:
PizzaG 2026-09-15 21:22:01 -05:00
commit 93dca4deb3
10 changed files with 181 additions and 36 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

135
CHANGELOG.md Normal file → Executable file
View file

@ -1,3 +1,138 @@
## v1.4
- Added Windows EXE packaging support with a self-contained application build and installer workflow.
- Added Linux DEB packaging support with a standard desktop application entry.
- Added platform-specific settings.ini configuration for the Project_Working_Folders path, defaulting to the user's home directory on Linux.
- Added optional sudo password configuration through settings.ini.
- Added platform-aware updater handling for extracted 7z, Windows EXE, and Linux DEB installations.
- Added separate update metadata support for extracted.json, windows.json, and linux.json.
- Added Windows EXE and Linux DEB update installation handling.
- Added reusable Linux and Windows package builder scripts.
- Preserved the cleaned project source layout while retaining existing application and module functionality.
- Public Release v1.4
## v1.3
- Restored Linux ownership and writable permissions for `app_log.txt` when the toolkit runs elevated, preventing the desktop user from being left with a locked/root-owned log.
- Re-asserted log permissions safely during logging so the fix survives new or replaced log files.
- Preserved existing Linux working-folder permissions and behavior.
- Public Release v1.3
## v1.2.28
- Module 3: route non-terminal progress through the existing GTK progress bar.
- Module 3: strip ANSI colors/cursor control sequences and suppress terminal block-bar redraws in GUI output.
- Module 3: retain normal interactive terminal progress behavior on Linux.
- Module 3: keep harmless `tput: unknown terminal` diagnostics suppressed in GUI/non-terminal runs.
## v1.2.27
- Suppressed harmless Linux EROFS/EXT4 rebuilder `tput: unknown terminal "unknown"` diagnostics when launched from the GTK GUI, while preserving interactive terminal behavior.
## v1.2.26
- Removed the redundant Module 6 Operation dropdown; Unpack Image, Repack Image, and Cleanup buttons now directly select the operation.
- Fixed Windows Module 6 command construction so the complete GUI-safe command is passed to cmd.exe as one /c command string.
- Applied the corrected Windows invocation to unpack, repack, and cleanup.
## v1.2.24
- Fixed Module 6 Windows batch invocation so quoted Android Image Kitchen script paths are passed correctly through cmd.exe.
- Applied the corrected GUI-safe command invocation to unpack, repack, and cleanup operations.
## v1.2.23
- Fixed Module 5 Windows rebuild publishing when the selected output image is inside the staged working folder. The rebuilt image is now published only after the working folder is restored.
- Made Module 5 ownership restoration explicitly Linux-only; Windows no longer attempts Unix `os.chown()` handling.
## v1.2.21
- Module 5 Windows vendor_boot extraction now automatically installs/verifies the required native `lz4` Python module in the MSYS2 UCRT64 environment before running the extractor.
- Linux Module 5 behavior is unchanged.
## v1.2.20
- Fixed Windows Module 4 crash caused by Unix-only os.geteuid() ownership restoration.
- Added Module 4 subprocess/stage logging to app_log.txt.
- Clarified lpmake sparse-probe messages in the Module 4 output.
## v1.2.17
- Fixed Windows EROFS TAR rebuilding against an erofs-utils 1.8.x bug that can produce a bogus ~2 TiB image when TAR paths traverse intermediate symlinks. Intermediate symlink components are now resolved before the TAR is handed to mkfs.erofs.
- Added explicit EROFS TAR preparation statistics and clearer extraction-stage output.
- Added reliable application-wide session logging of module output and subprocess activity to app_log.txt.
## v1.2.14
- Windows Module 3 now reuses an existing non-empty working folder when it is verified to match the currently loaded image.
- Added source-image identity metadata for reliable matching, with backward-compatible inference for older Module 3 folders.
- Windows EROFS rebuild preparation now runs in the background worker, preventing the GTK interface from freezing while metadata and the PAX tar stream are generated.
- Preserved all Project_Working_Folders, including empty directories, in release archives.
## v1.2.13
- Windows Module 3 EROFS rebuild no longer invokes host/Cygwin SELinux label lookup.
- Windows EROFS rebuild now creates an erofs-utils-compatible PAX tar stream carrying Android uid/gid/mode, SELinux xattrs, and fs_config capabilities directly.
- This removes the recurring `selabel_lookup` `Error 22` failure on Windows while preserving Android filesystem metadata.
- Linux Module 3 behavior remains unchanged.
## v1.2.12
- Fixed Windows EROFS SELinux lookup failures caused by afsr `security.selinux` xattrs carrying their required trailing NUL byte into generated `file_contexts.txt`. The NUL is now stripped only when converting the xattr into the text-based Android SELinux context file.
- Preserved the original xattr metadata for EXT4/afsr use.
- Preserved all empty `Project_Working_Folders` directories in release archives.
## v1.2.11
- Fixed the remaining Windows EROFS SELinux lookup failure by passing `--mount-point` without a leading slash. erofs-utils constructs the SELinux lookup path as `/<mount-point>/<relative-path>`, so passing `/extracted_system` produced a double-slash path and libselinux returned `EINVAL`.
- Kept Android `file_contexts.txt` entries in image-relative/mount-point form and retained `.repack_info` isolation.
- Preserved all empty `Project_Working_Folders` directories in release archives.
## v1.2.10
- Fixed Windows EROFS SELinux context generation: mkfs.erofs already prepends `--mount-point` to image-relative paths before calling libselinux, so Windows rebuilds now pass the Android/image-relative `file_contexts.txt` unchanged instead of incorrectly prefixing it with the host working-directory path.
- Preserved `.repack_info` isolation and all empty `Project_Working_Folders` directories in release archives.
## v1.2.9
- Fixed Windows EROFS rebuild preparation to read `file_contexts.txt` from the temporary metadata copy after `.repack_info` is moved out of the source tree.
- Preserved the v1.2.8 SELinux path adaptation and `.repack_info` isolation fixes.
- Preserved all empty `Project_Working_Folders` directories in release archives.
## v1.2.8
- Fixed Windows EROFS SELinux context lookup by adapting Android file_contexts patterns to the Cygwin source-tree paths used by mkfs.erofs.
- Preserved the original Android file_contexts metadata for cross-format conversion; only the temporary mkfs input is path-adapted.
## v1.2.7
- Fixed Windows EROFS rebuilds failing on `.repack_info` shared-xattr/SELinux processing by keeping toolkit metadata outside the mkfs source tree during image creation.
- Preserved all Project_Working_Folders directories, including empty folders, in release archives.
## v1.2.4
- Windows Module 3 extraction now preserves a common cross-format metadata set so one working folder can be rebuilt as either EXT4 or EROFS.
- EROFS extraction captures `fs-config.txt` and `file_contexts.txt` from the native extract.erofs backend and derives afsr `fs_metadata.toml` from them.
- EXT4 extraction keeps afsr `fs_metadata.toml` and also generates Android `fs-config.txt` and `file_contexts.txt` for EROFS rebuilds.
- Windows rebuild now validates only the metadata required by the selected output filesystem.
- Module 3 metadata files under `.repack_info` are excluded from generated filesystem images.
- Sparse EXT4 images are converted with the bundled Windows `simg2img.exe` before afsr extraction.
- afsr is downloaded on first Windows EXT4 use and verified against the published SHA-256 release digest.
- Linux Module 3 implementation remains unchanged.
## v1.2.3
- Windows Module 3 EXT4 rebuild now uses the bundled `mke2fs.exe` plus a verified native Windows `e2fsdroid.exe` backend.
- The EXT4 backend preserves the existing `.repack_info/fs-config.txt` and `file_contexts.txt` metadata path used by Linux.
- `e2fsdroid.exe` and its required Cygwin runtime DLLs are fetched on demand and verified against their Git blob SHA-1 values before use.
- Linux Module 3 scripts were not modified.
## v1.2.2
- Module 3 Windows no longer requires WSL.
- Added native userspace EROFS extraction/rebuild using a verified Cygwin x86_64 EROFS tool bundle downloaded on first use.
- Windows EXT4 remains gated until the native Android metadata population backend is added; Linux EXT4 behavior is unchanged.
## v1.2 — 2026-09-12
- Device Tools Theme dropdown now receives the active theme color treatment, including hover/focus states.

0
LICENSE Normal file → Executable file
View file

56
README.md Normal file → Executable file
View file

@ -29,16 +29,28 @@ The main window exposes quick buttons for:
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 is wired for Google's official Android SDK Platform-Tools (`adb` and `fastboot`). The current development environment could not retrieve the binary archives directly, so the release contains bootstrap scripts rather than redistributing Google binaries:
The toolkit bundles the Android platform tools it needs in:
- Linux: `./setup-platform-tools-linux.sh`
- Windows: `setup-platform-tools-windows.bat`
- Linux: `platform-tools/linux/`
- Windows: `platform-tools/windows/`
The scripts download the official packages from Google's current Platform-Tools endpoint and place only `adb` and `fastboot` into `platform-tools/linux` or `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 release page: https://developer.android.com/tools/releases/platform-tools
Official Android Platform-Tools information: https://developer.android.com/tools/releases/platform-tools
## GTK3 prerequisites
@ -55,42 +67,22 @@ Windows can use an existing Python distribution with GTK3/PyGObject. If `gi` is
Linux:
```bash
./run-linux.sh
./START_LINUX-A-Team-Android_Image_Toolkit.sh
```
Windows:
```bat
launcher.bat
START_WINDOWS-A-Team-Android_Image_Toolkit.bat
```
The architecture is module-first: each directory under `modules/` contains a manifest and `module.py`, so future A-Team packages can be dropped in without changing the application shell.
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.
## Device controls
The main window provides ADB and Fastboot controls, including ADB sideload and Fastboot getvar all. ADB Logcat writes timestamped text files into the root `Logcat/` directory and can be stopped from the same control.
Place the supplied platform binaries at `platform-tools/windows/adb.exe`, `platform-tools/windows/fastboot.exe`, `platform-tools/linux/adb`, and `platform-tools/linux/fastboot`. The application also falls back to PATH when a bundled executable is absent.
Module 8 is the A-Team Magisk Boot Patcher. The terminal is Module 9.
## Bundled platform tools
Android SDK Platform-Tools are bundled in `platform-tools/windows` and `platform-tools/linux` from the supplied archives. The GUI automatically selects the correct `adb` and `fastboot` for the host platform; no separate Platform Tools setup button is required.
The Device Tools panel is collapsible and contains ADB/Fastboot actions, ADB sideload ZIP selection, and Logcat capture to the root `Logcat/` folder.
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 now 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.
## v0.5.4 UI
- Device Tools now uses the A-Team/Android cyber-tech banner as the dropdown background.
- Device command hit targets are overlaid on the artwork, so the visible controls remain real GTK actions.
- Device Tools themes: A-Team Green (Default), A-Team Blue, A-Team Purple, A-Team Orange, A-Team Cyan, A-Team Red, and A-Team Pink.
- Header and module sidebar styling updated to match the A-Team visual concept.
- Fixed ADB/Fastboot command execution so the executable name is not passed twice.
- ADB sideload and Logcat controls are kept inside the banner layout and remain clickable.
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
@ -101,8 +93,8 @@ Expected update metadata fields:
```json
{
"version": "2",
"display": "1.2",
"file": "A-Team-Android_Image_Toolkit-v1.2.7z",
"display": "1.3.1",
"file": "A-Team-Android_Image_Toolkit-v1.3.1.7z",
"changelog": "Release notes here",
"sha256": "optional sha256 hex digest"
}

6
Updates/extracted.json Executable file
View file

@ -0,0 +1,6 @@
{
"version": "4",
"display": "1.4",
"file": "A-Team-Android_Image_Toolkit-v1.4.7z",
"changelog": "Added Windows EXE packaging support with a self-contained application build and installer workflow, Added Linux DEB packaging support with a standard desktop application entry, Added platform-specific settings.ini configuration for the Project_Working_Folders path, defaulting to the user's home directory on Linux, Added optional sudo password configuration through settings.ini, Added platform-aware updater handling for extracted 7z, Windows EXE, and Linux DEB installations, Added separate update metadata support for extracted.json, windows.json, and linux.json, Added Windows EXE and Linux DEB update installation handling, Added reusable Linux and Windows package builder scripts, Preserved the cleaned project source layout while retaining existing application and module functionality, Public Release v1.4"
}

6
Updates/linux.json Executable file
View file

@ -0,0 +1,6 @@
{
"version": "4",
"display": "1.4",
"file": "A-Team-Android_Image_Toolkit-v1.4.deb",
"changelog": "Added Windows EXE packaging support with a self-contained application build and installer workflow, Added Linux DEB packaging support with a standard desktop application entry, Added platform-specific settings.ini configuration for the Project_Working_Folders path, defaulting to the user's home directory on Linux, Added optional sudo password configuration through settings.ini, Added platform-aware updater handling for extracted 7z, Windows EXE, and Linux DEB installations, Added separate update metadata support for extracted.json, windows.json, and linux.json, Added Windows EXE and Linux DEB update installation handling, Added reusable Linux and Windows package builder scripts, Preserved the cleaned project source layout while retaining existing application and module functionality, Public Release v1.4"
}

View file

@ -1,6 +1,6 @@
{
"version": "3",
"display": "1.3",
"file": "A-Team-Android_Image_Toolkit-v1.3.7z",
"changelog": "Restored Linux ownership and writable permissions for `app_log.txt` when the toolkit runs elevated, Re-asserted log permissions safely during logging so the fix survives new or replaced log files, Preserved existing Linux working-folder permissions and behavior, Public Release v1.3"
"version": "4",
"display": "1.4",
"file": "A-Team-Android_Image_Toolkit-v1.4.7z",
"changelog": "Added Windows EXE packaging support with a self-contained application build and installer workflow, Added Linux DEB packaging support with a standard desktop application entry, Added platform-specific settings.ini configuration for the Project_Working_Folders path, defaulting to the user's home directory on Linux, Added optional sudo password configuration through settings.ini, Added platform-aware updater handling for extracted 7z, Windows EXE, and Linux DEB installations, Added separate update metadata support for extracted.json, windows.json, and linux.json, Added Windows EXE and Linux DEB update installation handling, Added reusable Linux and Windows package builder scripts, Preserved the cleaned project source layout while retaining existing application and module functionality, Public Release v1.4"
}

6
Updates/windows.json Executable file
View file

@ -0,0 +1,6 @@
{
"version": "4",
"display": "1.4",
"file": "A-Team-Android_Image_Toolkit-v1.4.exe",
"changelog": "Added Windows EXE packaging support with a self-contained application build and installer workflow, Added Linux DEB packaging support with a standard desktop application entry, Added platform-specific settings.ini configuration for the Project_Working_Folders path, defaulting to the user's home directory on Linux, Added optional sudo password configuration through settings.ini, Added platform-aware updater handling for extracted 7z, Windows EXE, and Linux DEB installations, Added separate update metadata support for extracted.json, windows.json, and linux.json, Added Windows EXE and Linux DEB update installation handling, Added reusable Linux and Windows package builder scripts, Preserved the cleaned project source layout while retaining existing application and module functionality, Public Release v1.4"
}