v2.3.0: Java virtual environment via app_process, SELinux bypass for build tools

This commit is contained in:
admin
2026-05-20 12:28:24 +04:00
Unverified
parent 71a26e259d
commit f86a5added
10 changed files with 417 additions and 87 deletions

View File

@@ -631,6 +631,20 @@ data: [DONE]
## Changelog
### v2.3.0 (2026-05-20)
- **Java Virtual Environment** — `ecj.jar` (3.2MB) and `apksigner.jar` (1.1MB) bundled as APK assets, extracted at runtime
- **app_process Wrappers** — wrapper scripts use `/system/bin/app_process` to run JARs (bypasses SELinux `execve` restrictions entirely)
- **d8.jar Runtime Download** — downloads DEX compiler (~18MB) from Google build-tools at first use
- **installAapt2 Plugin** — `BootstrapPlugin.installAapt2()` downloads aapt2 + aapt + dependencies from Termux repo, extracts to `$TOOLS`
- **extractAsset/downloadFile Plugins** — new `BootstrapPlugin` methods for APK asset extraction and URL file downloads
- **Smart Tool Detection** — `toolsReady()` and `checkDevEnvironment()` check both Termux native tools and Java virtual tools
- **BUILD_SCRIPT Updated** — uses `sh "$TOOLS/bin/ecj"` etc., `#!/system/bin/sh` shebang, `$TOOLS/share/android.jar` fallback paths
- **LD_LIBRARY_PATH** — `$TOOLS/lib` added for aapt2 shared library resolution
- Architecture: Java tools never need execute permission (read-only JARs), aapt2 downloaded on demand
### v2.2.5 (2026-05-19)
- Shebang Patching, Proot from APK nativeLib, Termux RUN_COMMAND integration, F-Droid fallback, 3-Strategy Install
### v2.2.4 (2026-05-19)
- **Bundled PRoot** — proot binary (v5.1.107) included in APK as native library with executable SELinux label
- **Auto-Proot Install** — `ShellPlugin.refreshShell()` copies proot + loader from APK's `nativeLibraryDir` to `$PREFIX/bin/` and `$PREFIX/libexec/proot/` on first use