mirror of
https://github.com/Droid-Deck/DroidDeck.git
synced 2026-11-11 02:51:10 +00:00
The runtime carries Termux's proot 5.1.107-70 as a prebuilt binary, built from termux/proot 4dba3afb (every file:line site in it matches that commit). The apk now builds that same commit with the NDK, with three patches ported from WinNative's feature/proot-enhancements, and prefers it over the runtime's copy: - Tracees are hashed by pid, so each ptrace stop finds its tracee without walking a list of every thread, and terminated tracees are swept only after a termination. - A clean absolute path three or more directories deep under the rootfs alone has its parent opened once and taken as canonical when the kernel's path for it is the one proot would build, instead of an lstat per component; the final component of a call that does not follow it is no longer lstat'ed. Extensions still see the parent's host path, and the f2fs workaround keeps the old walk. - A clone3 thread keeps its inherited flags when clone_args cannot be read. talloc is linked in statically from Samba's release tarball, so libproot.so needs only libc and libdl. On an x86_64 Android 15 emulator the same build ran a path and thread test suite with output identical to the unpatched commit (fake id, fake root, link2symlink, with and without seccomp), and a stat-heavy benchmark ran 25-27% faster, 31-36% with 1500 live threads.