Created
February 23, 2025 13:17
-
-
Save lucasfernandodev/b194d22b54c24e82724eaa9e6a830151 to your computer and use it in GitHub Desktop.
Script to start chroot linux
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/data/data/com.termux/files/usr/bin/sh | |
termux-wake-lock | |
killall -9 virgl_test_server virgl_test_server_android | |
pkill -f com.termux.x11; | |
## Start Termux X11 | |
am start --user 0 -n com.termux.x11/com.termux.x11.MainActivity >> $HOME/chroot.log 2>&1 & | |
su -c "setenforce 0"; | |
su -c "chown $USER /data/local/tmp/debian/tmp" | |
export XDG_RUNTIME_DIR=/data/local/tmp/debian/tmp | |
export CLASSPATH=$(/system/bin/pm path com.termux.x11 | cut -d: -f2) | |
export XKB_CONFIG_ROOT=/data/local/tmp/debian/usr/share/X11/xkb; | |
/system/bin/app_process / com.termux.x11.CmdEntryPoint :0 >> $HOME/chroot.log 2>&1 & | |
sleep 2 | |
# Start Pulse Audio of Termux | |
pulseaudio --start --exit-idle-time=-1 | |
pacmd load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1 | |
# Start virgl server | |
#virgl_test_server_android >> $HOME/chroot.log 2>&1 &MESA_NO_ERROR=1 MESA_GL_VERSION_OVERRIDE=4.5COMPAT MESA_LOADER_DRIVER_OVERRIDE=zink GALLIUM_DRIVER=zink ZINK_DESCRIPTORS=lazy virgl_test_server --use-egl-surfaceless --use-gles & | |
MESA_NO_ERROR=1 MESA_GL_VERSION_OVERRIDE=4.5COMPAT MESA_LOADER_DRIVER_OVERRIDE=zink GALLIUM_DRIVER=zink ZINK_DESCRIPTORS=lazy virgl_test_server --use-egl-surfaceless --use-gles >> $HOME/chroot.log 2>&1 & | |
su -c "sh /data/local/tmp/start_debian.sh" >> $HOME/chroot.log 2>&1 & | |
echo 'Iniciando debian' |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#script que deveria iniciar o supervisord e exportar as variaveis globais. | |
- As variaveis de ambiente devem setar o usuário; | |
- o supervisord deve iniciar os processos: barrier-client, sshd, xfce4. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
# The path of Ubuntu rootfs | |
UBUNTUPATH="/data/local/tmp/debian" | |
chmod -R 777 /data/data/com.termux/files/usr/tmp | |
busybox mount --bind /data/data/com.termux/files/usr/tmp $UBUNTUPATH/tmp | |
busybox mount --make-slave $UBUNTUPATH/tmp | |
# Fix setuid issue | |
busybox mount -o remount,dev,suid /data | |
busybox mount --rbind /dev $UBUNTUPATH/dev | |
#busybox mount -t devpts devpts $UBUNTUPATH/dev/pts | |
busybox mount --make-rslave $UBUNTUPATH/dev | |
busybox mount --rbind /sys $UBUNTUPATH/sys | |
busybox mount --make-rslave $UBUNTUPATH/sys | |
busybox mount --rbind /proc $UBUNTUPATH/proc | |
busybox mount --make-rslave $UBUNTUPATH/proc | |
# /dev/shm for Electron apps | |
mkdir -p /dev/shm | |
busybox mount -t tmpfs -o size=256M tmpfs $UBUNTUPATH/dev/shm | |
#busybox mount -t tmpfs -o size=256M tmpfs $UBUNTUPATH/run | |
busybox mount -t tmpfs -o size=256M tmpfs $UBUNTUPATH/run/user/6000 | |
chmod 777 $UBUNTUPATH/dev/null | |
# Mount sdcard | |
#busybox mount --rbind /sdcard $UBUNTUPATH/sdcard | |
umount() | |
{ | |
sync | |
sleep 1 | |
busybox umount $UBUNTUPATH/dev/pts && echo "Desmontando /dev/pts" | |
busybox umount -l $UBUNTUPATH/dev/shm && echo 'Desmontando /dev/shm' | |
#busybox umount -l $UBUNTUPATH/dev/pts && echo 'Desmonstando /dev/etc' | |
sleep 3 | |
busybox umount -l $UBUNTUPATH/dev && echo 'Desmontando /dev' | |
sleep 3 | |
busybox umount -l $UBUNTUPATH/proc && echo 'Desmontando /proc' | |
busybox umount -l $UBUNTUPATH/sys && echo 'Desmontando /sys' | |
busybox umount -l $UBUNTUPATH/tmp && echo 'Desmontando /tmp' | |
#busybox umount -l $UBUNTUPATH/sdcard && echo 'Desmontando /sdcard' | |
} | |
on_chroot_exit() | |
{ | |
pkill -f com.termux.x11; | |
am broadcast -a com.termux.x11.ACTION_STOP -p com.termux.x11 >/dev/null 2>&1 && echo 'Fechando aplicativo termux-x11'; | |
umount; | |
echo 'Chroot finalizado com sucesso' | |
} | |
#chmod 777 $UBUNTUPATH/dev/null | |
#chmod 777 /dev/fuse || true | |
busybox chroot $UBUNTUPATH /bin/su - root -c "/usr/bin/initialize.sh" & | |
PID="$!" | |
sleep 5 | |
while true; do | |
# Comando para pegar o PID do supervisord, ignorando o próprio comando pgrep | |
PIDS=$(su -c 'pgrep -af supervisord | grep -v "pgrep" | awk "{print $1}"') | |
# Verifica se PIDS contém um número (PID) | |
if [ -n "$PIDS" ]; then | |
# echo "Processo supervisord encontrado com PID: $PIDS" | |
# Adicione aqui qualquer ação desejada, como matar o processo: | |
# sudo kill -9 $PIDS | |
sleep 2 # Aguarda 2 segundos antes de verificar novamente | |
else | |
echo "Nenhum processo supervisord encontrado. Saindo..." | |
break # Sai do loop quando o processo não for encontrado | |
fi | |
done | |
pkill -9 "$PID" | |
on_chroot_exit | |
# Umount everything after exiting the shell. Because the graphical environment will be installed later, they are commented. If you do not want to install a graphics environment, uncomment the following commands. | |
#busybox umount $UBUNTUPATH/dev/shm | |
#busybox umount $UBUNTUPATH/dev/pts | |
#busybox umount $UBUNTUPATH/dev | |
#busybox umount $UBUNTUPATH/proc | |
#busybox umount $UBUNTUPATH/sys | |
#busybox umount $UBUNTUPATH/sdcard |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment