-
Notifications
You must be signed in to change notification settings - Fork 949
Expand file tree
/
Copy pathinit-sandbox.sh
More file actions
90 lines (66 loc) · 1.99 KB
/
init-sandbox.sh
File metadata and controls
90 lines (66 loc) · 1.99 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
export LD_LIBRARY_PATH=$PREFIX
mkdir -p "$PREFIX/tmp"
mkdir -p "$PREFIX/alpine/tmp"
mkdir -p "$PREFIX/public"
export PROOT_TMP_DIR=$PREFIX/tmp
if [ "$FDROID" = "true" ]; then
if [ -f "$PREFIX/libproot.so" ]; then
export PROOT_LOADER="$PREFIX/libproot.so"
fi
if [ -f "$PREFIX/libproot32.so" ]; then
export PROOT_LOADER32="$PREFIX/libproot32.so"
fi
export PROOT="$PREFIX/libproot-xed.so"
chmod +x $PREFIX/*
else
if [ -f "$NATIVE_DIR/libproot.so" ]; then
export PROOT_LOADER="$NATIVE_DIR/libproot.so"
fi
if [ -f "$NATIVE_DIR/libproot32.so" ]; then
export PROOT_LOADER32="$NATIVE_DIR/libproot32.so"
fi
if [ -e "$PREFIX/libtalloc.so.2" ] || [ -L "$PREFIX/libtalloc.so.2" ]; then
rm "$PREFIX/libtalloc.so.2"
fi
ln -s "$NATIVE_DIR/libtalloc.so" "$PREFIX/libtalloc.so.2"
export PROOT="$NATIVE_DIR/libproot-xed.so"
fi
ARGS="--kill-on-exit"
for system_mnt in /apex /odm /product /system /system_ext /vendor \
/linkerconfig/ld.config.txt \
/linkerconfig/com.android.art/ld.config.txt \
/plat_property_contexts /property_contexts; do
if [ -e "$system_mnt" ]; then
system_mnt=$(realpath "$system_mnt")
ARGS="$ARGS -b ${system_mnt}"
fi
done
unset system_mnt
ARGS="$ARGS -b /sdcard"
ARGS="$ARGS -b /storage"
ARGS="$ARGS -b /dev"
ARGS="$ARGS -b /data"
ARGS="$ARGS -b /dev/urandom:/dev/random"
ARGS="$ARGS -b /proc"
ARGS="$ARGS -b /sys"
ARGS="$ARGS -b $PREFIX"
ARGS="$ARGS -b $PREFIX/public:/public"
ARGS="$ARGS -b $PREFIX/alpine/tmp:/dev/shm"
if [ -e "/proc/self/fd" ]; then
ARGS="$ARGS -b /proc/self/fd:/dev/fd"
fi
if [ -e "/proc/self/fd/0" ]; then
ARGS="$ARGS -b /proc/self/fd/0:/dev/stdin"
fi
if [ -e "/proc/self/fd/1" ]; then
ARGS="$ARGS -b /proc/self/fd/1:/dev/stdout"
fi
if [ -e "/proc/self/fd/2" ]; then
ARGS="$ARGS -b /proc/self/fd/2:/dev/stderr"
fi
ARGS="$ARGS -r $PREFIX/alpine"
ARGS="$ARGS -0"
ARGS="$ARGS --link2symlink"
ARGS="$ARGS --sysvipc"
ARGS="$ARGS -L"
$PROOT $ARGS /bin/sh $PREFIX/init-alpine.sh "$@"