proot: Add termux-chroot utility script

This commit is contained in:
Fredrik Fornwall 2016-03-21 21:39:26 -04:00
parent dcad05c5aa
commit 5a979ce687
2 changed files with 47 additions and 0 deletions

View File

@ -16,4 +16,6 @@ termux_step_make_install () {
mkdir -p $TERMUX_PREFIX/share/man/man1
cp $TERMUX_PKG_SRCDIR/doc/proot/man.1 $TERMUX_PREFIX/share/man/man1/proot.1
cp $TERMUX_PKG_BUILDER_DIR/termux-chroot $TERMUX_PREFIX/bin/
}

View File

@ -0,0 +1,45 @@
#!/bin/sh
if [ $# != 0 ]; then
echo "termux-chroot: Setup a chroot to mimic a normal Linux file system"
echo ""
echo "Execute without arguments to run a chroot with traditional file system"
echo "hierarchy (having e.g. the folders /bin, /etc and /usr) within Termux."
exit
fi
# For the /system/bin/linker(64) to be found:
ARGS="-b /system:/system"
# Bind $PREFIX so Termux programs expecting
# to find e.g. configurations files there work.
ARGS="$ARGS -b $PREFIX/..:$PREFIX/.."
# Mimic traditional Linux file system hierarchy - /usr:
ARGS="$ARGS -b $PREFIX:/usr"
# Mimic traditional Linux file system hierarchy - other Termux dirs:
for f in bin etc lib share tmp var; do
ARGS="$ARGS -b $PREFIX/$f:/$f"
done
# Mimic traditional Linux file system hierarchy- system dirs:
for f in dev proc; do
ARGS="$ARGS -b /$f:/$f"
done
# Set /home as current directory:
ARGS="$ARGS --cwd=/home"
# Root of the file system:
ARGS="$ARGS -r $PREFIX/.."
# Program to execute:
PROGRAM=/bin/bash
if [ -x $HOME/.termux/shell ]; then
PROGRAM=`readlink -f $HOME/.termux/shell`
fi
ARGS="$ARGS $PROGRAM -l"
export HOME=/home
$PREFIX/bin/proot $ARGS