├── LICENSE ├── README.md ├── auto-install.sh ├── install-sudo.sh └── sudo /LICENSE: -------------------------------------------------------------------------------- 1 | This is free and unencumbered software released into the public domain. 2 | 3 | Anyone is free to copy, modify, publish, use, compile, sell, or 4 | distribute this software, either in source code form or as a compiled 5 | binary, for any purpose, commercial or non-commercial, and by any 6 | means. 7 | 8 | In jurisdictions that recognize copyright laws, the author or authors 9 | of this software dedicate any and all copyright interest in the 10 | software to the public domain. We make this dedication for the benefit 11 | of the public at large and to the detriment of our heirs and 12 | successors. We intend this dedication to be an overt act of 13 | relinquishment in perpetuity of all present and future rights to this 14 | software under copyright law. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR 20 | OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 21 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 | OTHER DEALINGS IN THE SOFTWARE. 23 | 24 | For more information, please refer to 25 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Termux-sudo 2 | 3 | > Automatic script for installing sudo in your TERMUX. 4 | 5 | ## Installation 6 | 7 | AUTOMATIC INSTALLATON: 8 | 9 | ```sh 10 | 11 | apt-get install wget -y 12 | 13 | wget -O - https://raw.githubusercontent.com/ASHWIN990/Termux-sudo/master/auto-install.sh | bash 14 | 15 | ``` 16 | 17 | ROOTED ANDROID: 18 | 19 | ```sh 20 | apt-get update 21 | apt-get upgrade -y 22 | apt-get install git 23 | git clone https://www.github.com/ASHWIN990/Termux-sudo.git 24 | cd Termux-sudo 25 | chmod +x install-sudo.sh 26 | ./install-sudo.sh 27 | 28 | ``` 29 | -------------------------------------------------------------------------------- /auto-install.sh: -------------------------------------------------------------------------------- 1 | echo -e "\e[1;91mINSTALLING SUDO IN TERMUX\e[0m" 2 | 3 | apt-get update 4 | 5 | apt-get upgrade -y 6 | 7 | apt-get install git 8 | 9 | apt-get install ncurses-utils -y 10 | 11 | git clone https://github.com/ASHWIN990/Termux-sudo.git 12 | 13 | cd Termux-sudo 14 | 15 | cat sudo > /data/data/com.termux/files/usr/bin/sudo 16 | 17 | chmod 700 /data/data/com.termux/files/usr/bin/sudo 18 | 19 | sleep 3s 20 | 21 | clear 22 | 23 | cd .. 24 | 25 | mv Termux-sudo/ .Temux-sudo 26 | 27 | echo -e "\e[1;91mTO USE JUST DO \e[1;91m sudo su \e[0m" 28 | -------------------------------------------------------------------------------- /install-sudo.sh: -------------------------------------------------------------------------------- 1 | echo -e "\e[1;91mINSTALLING THE SUDO IN YOUR TERMUX\e[0m" 2 | 3 | pkg install ncurses-utils -y 4 | 5 | cat sudo > /data/data/com.termux/files/usr/bin/sudo 6 | 7 | chmod 700 /data/data/com.termux/files/usr/bin/sudo 8 | 9 | sleep 3s 10 | 11 | clear 12 | 13 | echo -e "\e[1;91mTO USE JUST DO \e[1;91m sudo su \e[0m" 14 | -------------------------------------------------------------------------------- /sudo: -------------------------------------------------------------------------------- 1 | #!/data/data/com.termux/files/usr/bin/bash 2 | 3 | #set colored=true to turn on colored error messages 4 | #set colored=false to turn off colored error messages 5 | colored=true 6 | 7 | #red=1 green=2 yellow=3 8 | color() { 9 | if [ $colored == "true" ]; then 10 | echo "$(tput setaf $1)${*:2}$(tput sgr0)" 11 | else 12 | echo "${*:2}" 13 | fi 14 | } 15 | 16 | show_usage() { 17 | echo -e "\n`color 3 Usage:`\n" 18 | echo 'sudo su [-]' 19 | echo -e " `color 2 Drop to root shell`\n" 20 | echo 'sudo []' 21 | echo -e " `color 2 Run command as root with optional arguments`\n" 22 | exit 23 | } 24 | 25 | SYSBIN=/system/bin 26 | SYSXBIN=/system/xbin 27 | BB=$SYSXBIN/busybox 28 | PRE=/data/data/com.termux/files 29 | ROOT_HOME=$PRE/home/.suroot 30 | BINPRE=$PRE/usr/bin 31 | LDLP="export LD_LIBRARY_PATH=$PRE/usr/lib" 32 | CMDLINE="PATH=$PATH:$SYSXBIN:$SYSBIN;$LDLP;HOME=$ROOT_HOME;cd $PWD" 33 | 34 | if [ -x /magisk/.core/bin/su ]; then 35 | SU=/magisk/.core/bin/su 36 | elif [ -x /sbin/su ]; then 37 | SU=/sbin/su 38 | elif [ -x $SYSXBIN/su ]; then 39 | SU=$SYSXBIN/su 40 | elif [ -x /su/bin/su ]; then 41 | SU=/su/bin/su 42 | else 43 | echo -e "\n`color 1 su` executable not found" 44 | echo -e "`color 1 sudo` requires `color 1 su`\n" 45 | exit 46 | fi 47 | 48 | if [ ! -d $ROOT_HOME ]; then 49 | if [ -x $BB ] && [ $($BB --list | grep -w mount) == "mount" ]; then 50 | MOUNTEX="$BB mount" 51 | elif [ -x $SYSBIN/mount ]; then 52 | MOUNTEX="$SYSBIN/mount" 53 | else 54 | echo -e "\nCannot find `color 1 mount` executable" 55 | echo -e "`color 2 Unable to setup sudo`\n" 56 | exit 57 | fi 58 | MOUNT_RW="$MOUNTEX -o rw,remount,rw /system" 59 | MOUNT_RO="$MOUNTEX -o ro,remount,ro /system" 60 | if [ -x "/sbin/magisk" ]; then 61 | unset LD_LIBRARY_PATH 62 | $SU -c "$CMDLINE;$MOUNT_RW" 63 | $SU -c "$CMDLINE;mkdir $ROOT_HOME" 64 | $SU -c "$CMDLINE;chmod 700 $ROOT_HOME" 65 | BASHRC="'PS1=\"# \"\nexport TERM=$TERM\n$LDLP\nexport PATH=$PATH:$SYSXBIN:$SYSBIN'" 66 | $SU -c "$CMDLINE;echo -e $BASHRC > $ROOT_HOME/.bashrc" 67 | $SU -c "$CMDLINE;chmod 700 $ROOT_HOME/.bashrc" 68 | $SU -c "$CMDLINE;$MOUNT_RO" 69 | else 70 | $SU -c "$MOUNT_RW" 71 | $SU -c "mkdir $ROOT_HOME" 72 | $SU -c "chmod 700 $ROOT_HOME" 73 | BASHRC="'PS1=\"# \"\nexport TERM=$TERM\n$LDLP\nexport PATH=$PATH:$SYSXBIN:$SYSBIN'" 74 | $SU -c "echo -e $BASHRC > $ROOT_HOME/.bashrc" 75 | $SU -c "chmod 700 $ROOT_HOME/.bashrc" 76 | $SU -c "$MOUNT_RO" 77 | fi 78 | fi 79 | 80 | ARGS=$(printf '%q ' "$@") 81 | 82 | if [ -z "$*" ]; then 83 | show_usage 84 | elif [ $1 == "su" ]; then 85 | CMDLINE="$CMDLINE;$BINPRE/bash" 86 | elif [ -x "$BINPRE/$1" ]; then 87 | CMDLINE="$CMDLINE;$BINPRE/$ARGS" 88 | elif [ -x $SYSBIN/$1 ] || [ -x $SYSXBIN/$1 ] || [ -x $1 ]; then 89 | CMDLINE="$CMDLINE;$ARGS" 90 | else 91 | echo -e "\nCommand `color 1 $1` not found" 92 | echo -e "`color 2 Check your spelling and try again`\n" 93 | fi 94 | 95 | pre_env_chk=`$SU --help|grep -e --preserve-environment` 96 | 97 | if [ -x "/sbin/magisk" ]; then 98 | unset LD_LIBRARY_PATH 99 | fi 100 | 101 | if [ -n "$pre_env_chk" ]; then 102 | $SU --preserve-environment -c "$CMDLINE" 103 | else 104 | $SU -c "$CMDLINE" 105 | fi 106 | 107 | # Reset echo 108 | stty sane 109 | --------------------------------------------------------------------------------