From fe5380bb2e4f653bbfed7a600429b81c0db7e2c8 Mon Sep 17 00:00:00 2001 From: RohitKushvaha01 Date: Fri, 22 Aug 2025 10:10:38 +0530 Subject: [PATCH] fix: terminal issues --- src/plugins/terminal/scripts/init-sandbox.sh | 56 +++++++++++++++++++- 1 file changed, 54 insertions(+), 2 deletions(-) diff --git a/src/plugins/terminal/scripts/init-sandbox.sh b/src/plugins/terminal/scripts/init-sandbox.sh index 111dc2b0c..3f491f47d 100644 --- a/src/plugins/terminal/scripts/init-sandbox.sh +++ b/src/plugins/terminal/scripts/init-sandbox.sh @@ -1,7 +1,10 @@ export LD_LIBRARY_PATH=$PREFIX -export PROOT_TMP_DIR=$PREFIX/tmp mkdir -p "$PREFIX/tmp" +mkdir -p "$PREFIX/alpine/tmp" +mkdir -p "$PREFIX/public" + +export PROOT_TMP_DIR=$PREFIX/tmp if [ "$FDROID" = "true" ]; then @@ -34,5 +37,54 @@ else 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 --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 "$@" +$PROOT $ARGS /bin/sh $PREFIX/init-alpine.sh "$@"