Skip to content

Commit fe77346

Browse files
fix: terminal issues (#1537)
1 parent bd53f91 commit fe77346

File tree

1 file changed

+54
-2
lines changed

1 file changed

+54
-2
lines changed

src/plugins/terminal/scripts/init-sandbox.sh

Lines changed: 54 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
export LD_LIBRARY_PATH=$PREFIX
2-
export PROOT_TMP_DIR=$PREFIX/tmp
32

43
mkdir -p "$PREFIX/tmp"
4+
mkdir -p "$PREFIX/alpine/tmp"
5+
mkdir -p "$PREFIX/public"
6+
7+
export PROOT_TMP_DIR=$PREFIX/tmp
58

69
if [ "$FDROID" = "true" ]; then
710

@@ -34,5 +37,54 @@ else
3437
export PROOT="$NATIVE_DIR/libproot-xed.so"
3538
fi
3639

40+
ARGS="--kill-on-exit"
41+
42+
for system_mnt in /apex /odm /product /system /system_ext /vendor \
43+
/linkerconfig/ld.config.txt \
44+
/linkerconfig/com.android.art/ld.config.txt \
45+
/plat_property_contexts /property_contexts; do
46+
47+
if [ -e "$system_mnt" ]; then
48+
system_mnt=$(realpath "$system_mnt")
49+
ARGS="$ARGS -b ${system_mnt}"
50+
fi
51+
done
52+
unset system_mnt
53+
54+
ARGS="$ARGS -b /sdcard"
55+
ARGS="$ARGS -b /storage"
56+
ARGS="$ARGS -b /dev"
57+
ARGS="$ARGS -b /data"
58+
ARGS="$ARGS -b /dev/urandom:/dev/random"
59+
ARGS="$ARGS -b /proc"
60+
ARGS="$ARGS -b /sys"
61+
ARGS="$ARGS -b $PREFIX"
62+
ARGS="$ARGS -b $PREFIX/public:/public"
63+
ARGS="$ARGS -b $PREFIX/alpine/tmp:/dev/shm"
64+
65+
66+
if [ -e "/proc/self/fd" ]; then
67+
ARGS="$ARGS -b /proc/self/fd:/dev/fd"
68+
fi
69+
70+
if [ -e "/proc/self/fd/0" ]; then
71+
ARGS="$ARGS -b /proc/self/fd/0:/dev/stdin"
72+
fi
73+
74+
if [ -e "/proc/self/fd/1" ]; then
75+
ARGS="$ARGS -b /proc/self/fd/1:/dev/stdout"
76+
fi
77+
78+
if [ -e "/proc/self/fd/2" ]; then
79+
ARGS="$ARGS -b /proc/self/fd/2:/dev/stderr"
80+
fi
81+
82+
83+
ARGS="$ARGS -r $PREFIX/alpine"
84+
ARGS="$ARGS -0"
85+
ARGS="$ARGS --link2symlink"
86+
ARGS="$ARGS --sysvipc"
87+
ARGS="$ARGS -L"
88+
3789

38-
$PROOT --link2symlink -L --sysvipc --kill-on-exit -b $PREFIX:$PREFIX -b /data:/data -b /system:/system -b /vendor:/vendor -b /sdcard:/sdcard -b /storage:/storage -b $PREFIX/public:/public -S $PREFIX/alpine /bin/sh $PREFIX/init-alpine.sh "$@"
90+
$PROOT $ARGS /bin/sh $PREFIX/init-alpine.sh "$@"

0 commit comments

Comments
 (0)