From 7e0a1527c80d1d2b1735f0013604d843555842ef Mon Sep 17 00:00:00 2001 From: GL513 Date: Mon, 22 Nov 2021 09:42:18 -0500 Subject: [PATCH] Update ubuntu.sh --- Scripts/Installer/Ubuntu/ubuntu.sh | 148 ++++++++++++++++++++--------- 1 file changed, 103 insertions(+), 45 deletions(-) diff --git a/Scripts/Installer/Ubuntu/ubuntu.sh b/Scripts/Installer/Ubuntu/ubuntu.sh index a5b3c88..527c8e3 100644 --- a/Scripts/Installer/Ubuntu/ubuntu.sh +++ b/Scripts/Installer/Ubuntu/ubuntu.sh @@ -1,50 +1,81 @@ +# From ubuntu-in-termux by MDF Gaming +# https://github.com/MFDGaming/ubuntu-in-termux/blob/master/ubuntu.sh + #!/data/data/com.termux/files/usr/bin/bash -folder=ubuntu-fs -if [ -d "$folder" ]; then - first=1 - echo "skipping downloading" + +time1="$( date +"%r" )" + +install1 () { +directory=ubuntu-fs +UBUNTU_VERSION=21.04 +if [ -d "$directory" ];then +first=1 +printf "\x1b[38;5;214m[${time1}]\e[0m \x1b[38;5;227m[WARNING]:\e[0m \x1b[38;5;87m Skipping the download and the extraction\n" +elif [ -z "$(command -v proot)" ];then +printf "\x1b[38;5;214m[${time1}]\e[0m \x1b[38;5;203m[ERROR]:\e[0m \x1b[38;5;87m Please install proot.\n" +printf "\e[0m" +exit 1 +elif [ -z "$(command -v wget)" ];then +printf "\x1b[38;5;214m[${time1}]\e[0m \x1b[38;5;203m[ERROR]:\e[0m \x1b[38;5;87m Please install wget.\n" +printf "\e[0m" +exit 1 fi -tarball="ubuntu-rootfs.tar.xz" if [ "$first" != 1 ];then - if [ ! -f $tarball ]; then - echo "Download Rootfs, this may take a while base on your internet speed." - case `dpkg --print-architecture` in - aarch64) - archurl="arm64" ;; - arm) - archurl="armhf" ;; - amd64) - archurl="amd64" ;; - x86_64) - archurl="amd64" ;; - i*86) - archurl="i386" ;; - x86) - archurl="i386" ;; - *) - echo "unknown architecture"; exit 1 ;; - esac - wget "https://raw.githubusercontent.com/EXALAB/AnLinux-Resources/master/Rootfs/Ubuntu/${archurl}/ubuntu-rootfs-${archurl}.tar.xz" -O $tarball - fi - cur=`pwd` - mkdir -p "$folder" - cd "$folder" - echo "Decompressing Rootfs, please be patient." - proot --link2symlink tar -xJf ${cur}/${tarball}||: - cd "$cur" +if [ -f "ubuntu.tar.gz" ];then +rm -rf ubuntu.tar.gz +fi +if [ ! -f "ubuntu.tar.gz" ];then +printf "\x1b[38;5;214m[${time1}]\e[0m \x1b[38;5;83m[Installer thread/INFO]:\e[0m \x1b[38;5;87m Downloading the ubuntu rootfs, please wait...\n" +ARCHITECTURE=$(dpkg --print-architecture) +case "$ARCHITECTURE" in +aarch64) ARCHITECTURE=arm64;; +arm) ARCHITECTURE=armhf;; +amd64|x86_64) ARCHITECTURE=amd64;; +*) +printf "\x1b[38;5;214m[${time1}]\e[0m \x1b[38;5;203m[ERROR]:\e[0m \x1b[38;5;87m Unknown architecture :- $ARCHITECTURE" +exit 1 +;; + +esac + +wget http://cdimage.ubuntu.com/ubuntu-base/releases/${UBUNTU_VERSION}/release/ubuntu-base-${UBUNTU_VERSION}-base-${ARCHITECTURE}.tar.gz -q -O ubuntu.tar.gz +printf "\x1b[38;5;214m[${time1}]\e[0m \x1b[38;5;83m[Installer thread/INFO]:\e[0m \x1b[38;5;87m Download complete!\n" + +fi + +cur=`pwd` +mkdir -p $directory +cd $directory +printf "\x1b[38;5;214m[${time1}]\e[0m \x1b[38;5;83m[Installer thread/INFO]:\e[0m \x1b[38;5;87m Decompressing the ubuntu rootfs, please wait...\n" +tar -zxf $cur/ubuntu.tar.gz --exclude='dev'||: +printf "\x1b[38;5;214m[${time1}]\e[0m \x1b[38;5;83m[Installer thread/INFO]:\e[0m \x1b[38;5;87m The ubuntu rootfs have been successfully decompressed!\n" +printf "\x1b[38;5;214m[${time1}]\e[0m \x1b[38;5;83m[Installer thread/INFO]:\e[0m \x1b[38;5;87m Fixing the resolv.conf, so that you have access to the internet\n" +printf "nameserver 8.8.8.8\nnameserver 8.8.4.4\n" > etc/resolv.conf +stubs=() +stubs+=('usr/bin/groups') +for f in ${stubs[@]};do +printf "\x1b[38;5;214m[${time1}]\e[0m \x1b[38;5;83m[Installer thread/INFO]:\e[0m \x1b[38;5;87m Writing stubs, please wait...\n" +echo -e "#!/bin/sh\nexit" > "$f" +done +printf "\x1b[38;5;214m[${time1}]\e[0m \x1b[38;5;83m[Installer thread/INFO]:\e[0m \x1b[38;5;87m Successfully wrote stubs!\n" +cd $cur + fi + mkdir -p ubuntu-binds -bin=start-ubuntu.sh -echo "writing launch script" +bin=startubuntu.sh +printf "\x1b[38;5;214m[${time1}]\e[0m \x1b[38;5;83m[Installer thread/INFO]:\e[0m \x1b[38;5;87m Creating the start script, please wait...\n" cat > $bin <<- EOM #!/bin/bash cd \$(dirname \$0) ## unset LD_PRELOAD in case termux-exec is installed unset LD_PRELOAD command="proot" +## uncomment following line if you are having FATAL: kernel too old message. +#command+=" -k 4.14.81" command+=" --link2symlink" command+=" -0" -command+=" -r $folder" +command+=" -r $directory" if [ -n "\$(ls -A ubuntu-binds)" ]; then for f in ubuntu-binds/* ;do . \$f @@ -52,11 +83,13 @@ if [ -n "\$(ls -A ubuntu-binds)" ]; then fi command+=" -b /dev" command+=" -b /proc" -command+=" -b ubuntu-fs/root:/dev/shm" -## uncomment the following line to have access to the home directory of termux -#command+=" -b /data/data/com.termux/files/home:/root" -## uncomment the following line to mount /sdcard directly to / -#command+=" -b /sdcard" +command+=" -b /sys" +command+=" -b ubuntu-fs/tmp:/dev/shm" +command+=" -b /data/data/com.termux" +command+=" -b /:/host-rootfs" +command+=" -b /sdcard" +command+=" -b /storage" +command+=" -b /mnt" command+=" -w /root" command+=" /usr/bin/env -i" command+=" HOME=/root" @@ -71,11 +104,36 @@ else \$command -c "\$com" fi EOM - -echo "fixing shebang of $bin" +printf "\x1b[38;5;214m[${time1}]\e[0m \x1b[38;5;83m[Installer thread/INFO]:\e[0m \x1b[38;5;87m The start script has been successfully created!\n" +printf "\x1b[38;5;214m[${time1}]\e[0m \x1b[38;5;83m[Installer thread/INFO]:\e[0m \x1b[38;5;87m Fixing shebang of startubuntu.sh, please wait...\n" termux-fix-shebang $bin -echo "making $bin executable" +printf "\x1b[38;5;214m[${time1}]\e[0m \x1b[38;5;83m[Installer thread/INFO]:\e[0m \x1b[38;5;87m Successfully fixed shebang of startubuntu.sh! \n" +printf "\x1b[38;5;214m[${time1}]\e[0m \x1b[38;5;83m[Installer thread/INFO]:\e[0m \x1b[38;5;87m Making startubuntu.sh executable please wait...\n" chmod +x $bin -echo "removing image for some space" -rm $tarball -echo "You can now launch Ubuntu with the ./${bin} script" +printf "\x1b[38;5;214m[${time1}]\e[0m \x1b[38;5;83m[Installer thread/INFO]:\e[0m \x1b[38;5;87m Successfully made startubuntu.sh executable\n" +printf "\x1b[38;5;214m[${time1}]\e[0m \x1b[38;5;83m[Installer thread/INFO]:\e[0m \x1b[38;5;87m Cleaning up please wait...\n" +rm ubuntu.tar.gz -rf +printf "\x1b[38;5;214m[${time1}]\e[0m \x1b[38;5;83m[Installer thread/INFO]:\e[0m \x1b[38;5;87m Successfully cleaned up!\n" +printf "\x1b[38;5;214m[${time1}]\e[0m \x1b[38;5;83m[Installer thread/INFO]:\e[0m \x1b[38;5;87m The installation has been completed! You can now launch Ubuntu with ./startubuntu.sh\n" +printf "\e[0m" + +} +if [ "$1" = "-y" ];then +install1 +elif [ "$1" = "" ];then +printf "\x1b[38;5;214m[${time1}]\e[0m \x1b[38;5;127m[QUESTION]:\e[0m \x1b[38;5;87m Do you want to install ubuntu-in-termux? [Y/n] " + +read cmd1 +if [ "$cmd1" = "y" ];then +install1 +elif [ "$cmd1" = "Y" ];then +install1 +else +printf "\x1b[38;5;214m[${time1}]\e[0m \x1b[38;5;203m[ERROR]:\e[0m \x1b[38;5;87m Installation aborted.\n" +printf "\e[0m" +exit +fi +else +printf "\x1b[38;5;214m[${time1}]\e[0m \x1b[38;5;203m[ERROR]:\e[0m \x1b[38;5;87m Installation aborted.\n" +printf "\e[0m" +fi