It is a clone of the Termux version of PRoot with some additional adaptations for Android deployment.
-
In case of unbundled loader, relocation does not require to set
PROOT_LOADER
/PROOT_LOADER_32
variables and these variables can be relative to theproot
binary location and resolved as<proot_location>/$PROOT_LOADER
. Defaults are../libexec/proot/loader
/../libexec/proot/loader32
respectively. -
--tcsetsf2tcsets
option as long asTCSETSF
is forbidden in Android and substitution withTCSETS
can be an acceptable workaround.tcsetattr(TCSAFLUSH, ...)
=>tcsetattr(TCSANOW, ...)
in other words. -
--tcsetsf2tcsetsw
asTCSETSW
looks even better.tcsetattr(TCSAFLUSH, ...)
=>tcsetattr(TCSADRAIN, ...)
in other words. -
--mute-setxid
return0
for callssetuid()
setuid32()
setgid()
setgid32()
setreuid()
setreuid32()
setregid()
setregid32()
setresuid()
setresuid32()
setresgid()
setresgid32()
if they triggerSIGSYS
(Android related).
-
--bind-memfd=<pattern>
option as long as Android does not provide access to tmpfs for regular apps. It usesmemfd_create()
. Pattern acts like thefnmatch()
one with theFNM_PATHNAME
andFNM_EXTMATCH
flags. Experimental. Noopen_by_handle_at
syscall support yet. -
ANDROID_PRE5
make variable can be set in order to produce Android version < 5 (API < 21) compatible variant. -
Hardlinks:
- with broken meta info are not weird zombie files anymore. Now they are just dangling symlinks;
- prefix
.l2s.
=>.proot.l2s.
for non-UserLAnd builds.
-
Hidden files (
-H
option):- prefix changed:
.proot
=>.proot.
.
- prefix changed:
-
USERLAND variant meta file prefix changed:
.proot-meta-file.
=>.proot.meta-file.
.
"chfn: PAM: system error" (it seems, Debian and Ubuntu bootstraps for 32-bit architectures only are affected): proot-me/proot#174 (comment) and proot-me/proot#156