anbox/scripts/launch-abox.sh
2016-06-14 11:34:17 +02:00

60 lines
1.3 KiB
Bash
Executable file

#!/bin/bash
set -e
set -x
basepath=/home/phablet/android-box
rootfs=$basepath/rootfs
rootfs_overrides=$basepath/overrides
ramdisk=$basepath/ramdisk.img
systemdisk=$basepath/system.img
init_cmd="/init"
if [ "$1" = "shell" ] ; then
init_cmd=/system/bin/sh
fi
if [ -d $rootfs ] ; then
sudo umount --recursive $rootfs || true
rm -rf $rootfs
fi
mkdir -p $rootfs
sudo mount -t tmpfs none $rootfs
(cd $rootfs ; cat $ramdisk | gzip -d | cpio -i)
mkdir -p $rootfs/dev/pts
sudo mount -o ro,loop $systemdisk $rootfs/system
if [ -d "$rootfs_overrides" ] ; then
for f in `ls $rootfs_overrides` ; do
if [ "$f" = "system" ] ; then
for f2 in `find $rootfs_overrides/system -type f` ; do
real_path=`echo $f2 | sed -e s:$rootfs_overrides::g`
sudo mount -o bind $f2 $rootfs/$real_path
done
else
cp $rootfs_overrides/$f $rootfs
fi
done
fi
/home/phablet/bwrap \
--ro-bind $rootfs / \
--bind /home/phablet/android-box/iptables-wrapper /system/bin/iptables \
--bind /home/phablet/android-box/iptables-wrapper /system/bin/ip6tables \
--dev /dev \
--proc /proc \
--tmpfs /data \
--unshare-user \
--unshare-ipc \
--unshare-pid \
--unshare-net \
--unshare-uts \
--uid 0 \
--gid 0 \
--setenv PATH /system/bin:/system/sbin:/system/xbin \
--chdir / \
$init_cmd
sudo umount --recursive $rootfs
rm -rf $rootfs