Releases: coderredlab/proroot
Releases · coderredlab/proroot
v1.0.9
v1.0.9
Static procfs virtualization update for Android app-process static ELF workloads.
Highlights
- Adds a dedicated static procfs virtualization layer in
libproroot-bridge.sofor static ELF payloads. - Covers
/proc/self/*,/proc/<pid>/*,/proc/.../task/<tid>/*, and/proc/thread-self/*across common path, metadata, and fd surfaces. - Splits trampoline procfs logic into
src/trampoline_procfs.c,src/trampoline_procfs.h, andsrc/trampoline_shared.h. - Adds a dedicated
android-smoketest/scripts/static-procfs-smoke.shregression suite and wires it into the full smoke flow. - Adds committed static procfs smoke cases under
tests/static_procfs_cases/. - Improves procfs precision for
comm,status,stat,statx,fdinfo, and mount path rewriting. - Updates
libproroot-runtime.soandlibproroot-bridge.so.
Smoke tested
android-smoketest/scripts/full-smoke.shandroid-smoketest/scripts/static-procfs-smoke.shPROC_SELF_SMOKE_OKPROC_PID_SMOKE_OKPROC_TASK_THREAD_SMOKE_OKPROC_FDINFO_SMOKE_OKPROC_FDINFO_PRECISION_OKPROC_AUXV_SMOKE_OKPROC_COMM_SMOKE_OKPROC_STATUS_PRECISION_OKPROC_PID_STATUS_PRECISION_OKPROC_STAT_SMOKE_OKPROC_STATX_PRECISION_OKPROC_MOUNTS_SMOKE_OKPROC_THREAD_SELF_SMOKE_OKPROC_TASK_META_SMOKE_OK
SHA-256
59b3e3e6fe40643796e14ed8b65fe3ad16ddb99e95e76fd3063cac3862785c11 arm64-v8a/libproroot.so
667e656df24e0216c2da1db9e26a388d32c2d6e913379ebed74acef6aed274ae arm64-v8a/libproroot-runtime.so
f60d08e24a0da9254bfecd8f0e9f4667a68cc7f561bb4865a169acfd4eec8435 arm64-v8a/libproroot-bridge.so
2d9b48db9a49122f809f01c5bdc1d0cb40a5cbb51ca4f2b30f428f5f13829e4e arm64-v8a/libldlinux.so
v1.0.8
v1.0.8
Static Codex binary compatibility update for Android app-process Ubuntu workloads.
Highlights
- Fixes static ELF mmap-loader
AT_PHDRcalculation for non-PIE binaries such as the Codex CLI native arm64 binary. - Corrects the trampoline SIGSYS ucontext layout used before entering static ELF payloads.
- Adds static-ELF path translation through a focused seccomp/SIGSYS bridge for common absolute-path syscalls.
- Reduces noisy fallback SIGSYS logging unless
PROROOT_VERBOSE=1is enabled. - Adds Codex CLI install/version coverage to the app-process full-smoke suite.
- Updates
libproroot-runtime.soandlibproroot-bridge.so.
Smoke tested
pm clear com.coderred.proroot.smoketestfollowed by app-private rootfs asset extraction.- Apt bootstrap from the rootfs-only asset:
curl,git,python3,ca-certificates, and NodeSourcenodejs. node --version->v22.22.2.npm --version->10.9.7.python3 --version->Python 3.12.3.git --version->git version 2.43.0.- Filesystem smoke: symlink/readlink, fake chown/chmod, tar create/extract.
- Node
child_process.execFileSync("/bin/true")repeated 30 times. npm install openclaw.openclaw --version->OpenClaw 2026.4.9 (0512059).npm install @openai/codex.codex --version->codex-cli 0.118.0.codex login --device-authreaches the device-code URL flow.npm install playwright.- Full Chromium runtime dependency install through apt.
npx playwright install chromium.- Playwright Chromium screenshot of
https://www.naver.com/.
SHA-256
59b3e3e6fe40643796e14ed8b65fe3ad16ddb99e95e76fd3063cac3862785c11 arm64-v8a/libproroot.so
f3f3e8237a110e45af1abdb33f2d3a5ec45366122bcef5bfe2c1a9735f6e093e arm64-v8a/libproroot-runtime.so
21743b59d86deb6bd1b78028b417ede335aafe9d93db94f3fa59268d6846bc62 arm64-v8a/libproroot-bridge.so
2d9b48db9a49122f809f01c5bdc1d0cb40a5cbb51ca4f2b30f428f5f13829e4e arm64-v8a/libldlinux.so
v1.0.7
v1.0.7
Apt/package-manager compatibility update for Android app-process Ubuntu workloads.
Highlights
- Removes the smoke-test
system-tools-arm64.tar.gz.bindependency so fresh app-process tests bootstrap tools through apt. - Fixes raw syscall relative path translation for
AT_FDCWDcallers, including OpenSSL/certificate rehash paths. - Improves
--link2symlinkhardlink emulation by reporting syntheticst_nlink/stx_nlinkfor package-manager lock files. - Adds rootfs-based
LD_LIBRARY_PATHdiscovery fromld.so.conf,ld.so.conf.d, and library directory layout for child exec resolution. - Keeps systemd package helpers on the real execution path; only the existing
ldconfigcompatibility shim remains. - Adds fresh full-smoke automation with
pm clear, apt bootstrap, OpenClaw install, Playwright Chromium install, and complex-site screenshot capture. - Updates
libproroot.soandlibproroot-runtime.so.
Smoke tested
pm clear com.coderred.proroot.smoketestfollowed by app-private rootfs asset extraction.- Apt bootstrap from the rootfs-only asset:
curl,git,python3,ca-certificates, and NodeSourcenodejs. node --version->v22.22.2.npm --version->10.9.7.python3 --version->Python 3.12.3.git --version->git version 2.43.0.- Filesystem smoke: symlink/readlink, fake chown/chmod, tar create/extract.
- Node
child_process.execFileSync("/bin/true")repeated 30 times. npm install openclaw.openclaw --version->OpenClaw 2026.4.9 (0512059).npm install playwright.- Full Chromium runtime dependency install through apt.
npx playwright install chromium.- Playwright Chromium screenshot of
https://www.naver.com/.
SHA-256
59b3e3e6fe40643796e14ed8b65fe3ad16ddb99e95e76fd3063cac3862785c11 arm64-v8a/libproroot.so
9e283674e0a55abb20e48e2323234028b06ea0d0c86b2bad1713d1723aeb0c8f arm64-v8a/libproroot-runtime.so
ee3af3bc080118556f8131b5494db8b9b91a7f843ae1671cba74b88d6107edbe arm64-v8a/libproroot-bridge.so
2d9b48db9a49122f809f01c5bdc1d0cb40a5cbb51ca4f2b30f428f5f13829e4e arm64-v8a/libldlinux.so
v1.0.6
v1.0.6
App-process smoke coverage update for Android rootless glibc workloads.
Highlights
- Improves app-process seccomp handling through the static trampoline.
- Expands raw syscall and fake root coverage for apt/dpkg/npm-heavy workloads.
- Fixes
-winitial working directory behavior. - Adds support for app-writable
PROROOT_TMP_DIRruntime config placement. - Improves
/proc/self/exehandling for child re-exec paths. - Updates
libproroot.so,libproroot-runtime.so, andlibproroot-bridge.so.
Smoke tested
- NodeSource apt setup and
apt-get install -y nodejs. node --version->v22.22.2.npm --version->10.9.7.python3 --version->Python 3.12.3.git ls-remote https://github.com/git/git.git HEAD.npm install openclaw.openclaw --version->OpenClaw 2026.4.9 (0512059).npm install playwright.npx playwright install chromium.- Playwright Chromium navigation and screenshot of
https://www.naver.com.
SHA-256
3f4c99296d2e8941376699e8cfe7052fe075d049137cc982699c9d6d411855f3 arm64-v8a/libproroot.so
3b090fa854785beab521325efb1cf95cf3be94dc78f1a6f0df81b9803f03aebe arm64-v8a/libproroot-runtime.so
ee3af3bc080118556f8131b5494db8b9b91a7f843ae1671cba74b88d6107edbe arm64-v8a/libproroot-bridge.so
2d9b48db9a49122f809f01c5bdc1d0cb40a5cbb51ca4f2b30f428f5f13829e4e arm64-v8a/libldlinux.so
v1.0.5 — nostdlib trampoline
v1.0.5
Nostdlib trampoline update for stricter Android seccomp environments.
Highlights
- Rewrites the trampoline with
-nostdlibfor zero bionic/libc dependency. - Installs the
SIGSYShandler through raw syscall in_startbefore libc or dynamic-loader code runs. - Uses raw
svc #0syscalls and inlined utility routines inside the trampoline. - Improves startup compatibility on devices with strict Android seccomp policies.
Smoke tested
- Trampoline startup before libc initialization.
- SIGSYS handling for strict Android seccomp policies.
- Child exec path through the static bridge.
SHA-256
No binary assets are attached to this GitHub Release.
v1.0.4
v1.0.4
Filesystem wrapper compatibility update for Playwright and runtime tools.
Highlights
- Hooks
mkdtempandmkstempfor correct path translation. - Fixes Playwright snapshot
EACCESfailures caused by temp-directory path handling. - Hooks
statfs,statfs64,statvfs, andstatvfs64. - Fixes incorrect
dfoutput inside proroot. - Keeps
TMPDIR=/tmpbehavior compatible with tsx and Playwright workloads.
Smoke tested
- Playwright snapshot temp path creation.
df/statfs-style filesystem queries inside proroot.TMPDIR=/tmptemp-file workflows.
SHA-256
No binary assets are attached to this GitHub Release.
v1.0.3
v1.0.3
Shebang, PATH, and temp-directory compatibility update.
Highlights
- Fixes shebang handling by passing the optional argument to the interpreter with kernel-like behavior.
- Sets the rootfs
PATHfor/usr/bin/envcommand resolution. - Sets
TMPDIR=/tmpto avoid Android cache directory permission issues. - Enables complex shebangs such as
#!/usr/bin/env -S npx tsx.
Smoke tested
/usr/bin/env -Sshebang execution.- Rootfs command lookup through
PATH. - Temporary file creation through
/tmp.
SHA-256
No binary assets are attached to this GitHub Release.
v1.0.2
v1.0.2
Static ELF execution fix for Android rootless workloads.
Highlights
- Fixes static ELF binary segfaults, including Go-style
ET_EXECbinaries. - Relocates the trampoline to a high address to avoid memory mapping conflicts with
ET_EXECprograms.
Smoke tested
- Static ELF execution path.
- Child trampoline startup path.
SHA-256
No binary assets are attached to this GitHub Release.
v1.0.1
v1.0.1
Child exec and interpreter compatibility fixes for early app-process workloads.
Highlights
- Fixes child
execvewrapping through the rootfsld.sopath. - Ensures
PROROOT_LINKER_PATHandPROROOT_LIB_PATHare propagated to child exec paths. - Fixes
env -Sshebang option parsing. - Skips
ld.sowrapping for static ELF binaries such as esbuild and Go binaries. - Restricts patch-count logging to
PROROOT_VERBOSE.
Smoke tested
- Child
execvethrough the glibc dynamic linker. - Complex shebangs using
/usr/bin/env -S. - Static ELF execution paths.
SHA-256
c6ba9d8d30c458e08416227ceb549fa01fcf770abe9f219acd329296c9205ebc arm64-v8a/libproroot.so
587bf1d2643893527c5c385c98ef8423a91910cd9046a89b4ef39e7a1b9dfa9f arm64-v8a/libproroot-runtime.so
95bcd5d812d54987eadac4f40a285785e97f1553951b47fdb55a2fcf1aa37c04 arm64-v8a/libproroot-bridge.so
2d9b48db9a49122f809f01c5bdc1d0cb40a5cbb51ca4f2b30f428f5f13829e4e arm64-v8a/libldlinux.so
v1.0.0
proroot v1.0.0 — Rootless Linux Runtime for Android
Drop-in proot replacement with zero ptrace overhead.
Files (arm64-v8a)
| File | Description |
|---|---|
libproroot.so |
Launcher |
libproroot-runtime.so |
LD_PRELOAD runtime |
libproroot-bridge.so |
Child exec trampoline |
libldlinux.so |
glibc dynamic linker (LGPL-2.1) |
Tested with
- Node.js 24, Python 3.12, Git 2.43
- Chromium headless_shell 131 (Playwright)
Place all 4 files in jniLibs/arm64-v8a/.