Skip to content

Instantly share code, notes, and snippets.

@numbnet
Last active November 12, 2022 06:17
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save numbnet/0f6e213a131a761be61e3063dd47e602 to your computer and use it in GitHub Desktop.
Save numbnet/0f6e213a131a761be61e3063dd47e602 to your computer and use it in GitHub Desktop.
TERMUX Moduls
#!/bin/bash
# https://gist.githubusercontent.com/numbnet/16283d639aa316c8a1925c779dbd225c/raw/e44a093421e9988ffcfee7c43b2da95b5be98b57/1Etap.sh
kastom() {
TITLE = ""
SUBTITLE = "Кастомизации Termux"
NIK.NAME = "NUMBNET"
LastNAME
##================ ≠≠≠ ================
## Variable:
DATA = $(date +%Y%m%d_%H%M%S);
TMPDIR = $PREFIX/tmp;
XDG_TMP_HOME = $HOME/.tmp;
XDG_CACHE_HOME = $HOME/.cache;
RESTIC_CACHE_DIR = $PREFIX/var/cache
TERM_STORAGE = $HOME/storage/shared
export XDG_TMP_HOME = $HOME/.tmp
export TMPDIR = $PREFIX/tmp
export XDG_CACHE_HOME = $HOME/.cache
export RESTIC_CACHE_DIR = $PREFIX/var/cache
export TERM_STORAGE = $HOME/storage/shared
echo 'export XDG_TMP_HOME=$HOME/.tmp' >> ~/.bashrc
echo 'export TMPDIR=$PREFIX/tmp' >> ~/.bashrc
echo 'export XDG_CACHE_HOME=$HOME/.cache' >> ~/.bashrc
echo 'export RESTIC_CACHE_DIR=$PREFIX/var/cache' >> ~/.bashrc
echo 'export TERM_STORAGE=$HOME/storage/shared' >> ~/.bashrc
##====
WGET=`which wget 2 > /dev/null`
ZSH=`which zsh 2 > /dev/null`
MICRO=`which micro 2 > /dev/null`
NANO=`which nano 2 > /dev/null`
CURL=`which curl 2 > /dev/null`
if test "-$WGET-" = "--" || test "-$ZSH-" = "--" || test "-$MICRO-" = "--" || test "-$NANO-" = "--" || test "-$CURL-" = "--"
then
echo "You must install wget apt install wget zsh micro curl nano.";
pkg install zsh micro wget curl;
fi
##=============================================
sh -c "$(curl -fsSL https://github.com/numbnet/termux-ohmyzsh/raw/master/install.sh)"
git clone https://github.com/numbnet/Termux-Banner.git
cd Termux-Banner/zsh
chmod +x requirement.sh requirement.sh t-ban.sh
bash requirement.sh
bash t-ban.sh
# Открываем новую сессию, и наблюдаем новые изменения. внешняя кастомизация закончена
chsh -s zsh
##=============================================
## Install ZSH
echo "Плюшки к shell zsh:"
sleep 5
git clone https://github.com/numbnet/zsh-autosuggestions.git $ {
ZSH_CUSTOM:-~/.oh-my-zsh/custom
}/plugins/zsh-autosuggestions
git clone https://github.com/numbnet/zsh-syntax-highlighting.git $ {
ZSH_CUSTOM:-~/.oh-my-zsh/custom
}/plugins/zsh-syntax-highlighting
git clone https://github.com/numbnet/zsh-completions.git $ {
ZSH_CUSTOM:-~/.oh-my-zsh/custom
}/plugins/zsh-completions
##=============================================
# create dir
if [[!-e $XDG_TMP_HOME]];
then
mkdir $XDG_TMP_HOME
mkdir $XDG_CACHE_HOME
elif [[!-d $XDG_TMP_HOME]]; then
echo "==== $XDG_TMP_HOME exists, but is not a dir ====" 1 > &2
fi
##=============================================
##
if [[!-e $TERM_STORAGE]];
then
termux-setup-storage | sleep 5;
# mkdir
elif [[!-d $TERM_STORAGE]];
then
echo "$TERM_STORAGE существует, это не каталог" 1 > &2
rm -rf "$TERM_STORAGE" | mkdir "$TERM_STORAGE"
fi
##=============================================
## Settings ZHRC
cd $XDG_CACHE_HOME
cat ".zshrc" > .zshrc."$DATA".bac
rm -rf .zshrc.sh
wget https://gist.githubusercontent.com/numbnet/16283d639aa316c8a1925c779dbd225c/raw/a88c5a72761d37089bd6d7d39ea32fe0f0ba4238/.zshrc.sh
cat $XDG_CACHE_HOME/.zshrc.sh > ~/.zshrc
rm -rf $XDG_CACHE_HOME/.zshrc.sh
exit 1
##=============================================
## ======= INFPORMATION ==========
## Теперь вам доступны такие команды как: google текст поиска. Открывает браузер с вашим запросом в google: lcd path/to/dir ;
## переходит в каталог и сразу показывает файлы == cd && ls;
## Чтоб поменять цвет: ~/.termux/colors.sh Чтоб поменять шрифт: ~/.termux/fonts.sh
##
##================ ≠≠≠≠ =================
}
while true; do
read -e -p "install kastom (y/n)? " rsn
case $rsn in
[Yy]*) kastom ;;
[Nn]*) break;
esac
done
##============ ≠≠≠ ============##
## install instainsane в termux/nethunter:
InsInstainsane() {
# Установить в termux kali
## В termuxe
startkali
cd $HOME
git clone https://github.com/thelinuxchoice/instainsane
cd instainsane
chmod +x instainsane.sh install.sh
./install.sh
## Теперь запускаем
./instainsane.sh
# P.s. Брут работает только через WiFi, но есть способ обхода и теперь можно брутить с мобильного интернета, правда не всегда успешно коннектиться.
#Ну а теперь сам метод:
#1) Скачиваем Orbot (tor для мобилы)
# 2) Запускаем Orbot, снизу нажимаем шестеренку, выбираем termux, возвращаемся назад, нажимаем луковицу, ждём подключения и затем уже нажимаем VPN.
# 3) Вот и все теперь весь трафик termuxa будет проходить через Tor. И можем
брутить с мобильного интернета.
}
##============ ≠≠≠ ============
## Termux-ADB
## Install ADB & FastBoot Tools in Termux!
## For devices with ARM or ARM64 processors only!
## Install Silent installation:
apt update > /dev/null 2>&1 && apt --assume-yes install wget > /dev/null 2>&1 && wget https://github.com/MasterDevX/Termux-ADB/raw/master/InstallTools.sh -q && bash InstallTools.sh
##======================≠=======
## Common installation:
#apt update && apt install wget && wget https://github.com/MasterDevX/Termux-ADB/raw/master/InstallTools.sh && bash InstallTools.sh
## uninstall Silent uninstallation:
## Copy and paste the following command in Termux to silently remove Tools:
#apt update > /dev/null 2>&1 && apt --assume-yes install wget > /dev/null 2>&1 && wget https://github.com/MasterDevX/Termux-ADB/raw/master/RemoveTools.sh -q && bash RemoveTools.sh
## Common uninstallation:
## Copy and paste the following command in Termux to remove Tools with logs output:
#apt update && apt install wget && wget https://github.com/MasterDevX/Termux-ADB/raw/master/RemoveTools.sh && bash RemoveTools.sh
#!/bin/bash
# Storage permission is granted:
termux-setup-storage
##============ ≠≠≠ ============
## create dir Repo RESTIC
VarRESTIC() {
RESTIC_REPOSITORY=$HOME/storage/shared/Directory/restic-repo
TMPDIR=$PREFIX/tmp
XDG_CACHE_HOME=$HOME/.cache
XDG_TMP_HOME=$HOME/.tmp
RESTIC_CACHE_DIR=$PREFIX/var/cache
export TMPDIR=$PREFIX/tmp
export XDG_CACHE_HOME=$HOME/.cache
export XDG_TMP_HOME=$HOME/.tmp
export RESTIC_CACHE_DIR=$PREFIX/var/cache
echo 'export TMPDIR=$PREFIX/tmp' >> ~/.bashrc
echo 'export XDG_CACHE_HOME=$HOME/.cache' >> ~/.bashrc
echo 'export XDG_TMP_HOME=$HOME/.tmp' >> ~/.bashrc
echo 'export RESTIC_CACHE_DIR=$PREFIX/var/cache' >> ~/.bashrc
}
##============ ≠≠≠ ============
## Create Directory
ResticRepo() {
if [[ ! -e $RESTIC_REPOSITORY ]];
then
echo "$RESTIC_REPOSITORY NOT exists. Now create dir"
mkdir $RESTIC_REPOSITORY | VarRESTIC
elif [[ ! -d $RESTIC_REPOSITORY ]];
then
echo "$RESTIC_REPOSITORY exists, but is not a dir!!!" 1>&2
echo "======== dir ========"
# rm -rf $RESTIC_REPOSITORY
# mkdir -p $RESTIC_REPOSITORY
fi
}
##============ ≠≠≠ ============
## instsall Restic
InstallRESTIC() {
PKG=restic;
PKG1=tar busybox;
RESTIC=`which restic 2> /dev/null`
TAR=`which tar 2> /dev/null`
BUSYBOX=`which busybox 2> /dev/null`
if test "-$RESTIC-" = "--" || test "-$BUSYBOX-" = "--" || test "-$TAR-" = "--"
then
echo "You must install $PKG $PKG1"
while true; do
read -e -p "Install $PKG $PKG1 (y/n)? " rsn
case $rsn in
[Yy]* ) pkg install $PKG $PKG1 -y;;
[Nn]* ) exit;
esac
done
else
echo "$PKG $PKG2 is installed";
fi
}
##============ ≠≠≠ ============
## Backing up
StartBackup() {
echo '## ==================================== ##'
echo '## == BACKUP RESTIC == ##'
echo '## ==================================== ##'
VarRESTIC
ResticRepo
InstallRESTIC
## START Initialize local restic repository
restic init -r $RESTIC_REPOSITORY
## Backing up sysroot ( $PREFIX ):
echo "============ Backing ( $PREFIX ) ============" | sleep 3
restic backup -r $RESTIC_REPOSITORY --tag termux $PREFIX
## Backing up sysroot ( $HOME ):
echo "============ Backing ( $HOME ) ============" | sleep 3
restic backup -r $RESTIC_REPOSITORY --tag termux-home $HOME
}
##============ ≠≠≠ ============
## Restoring Termux with Restic
StartRestoring() {
echo '## ==================================== ##'
echo '## == Restoring RESTIC == ##'
echo '## ==================================== ##'
VarRESTIC
InstallRESTIC
## Copy restic binary to $HOME. We are going to erase sysroot.
mkdir -p $HOME/restic
#tar czvf $HOME/restic/UsrBinRestic.tar.gz $PREFIX/bin/restic
( cd $PREFIX/bin/restic; tar cf - . ) | ( cd $HOME/restic; tar xf - )
## Erase sysroot. All packages will be deleted.
rm -rf $PREFIX
## Restore sysroot from latest snapshot:
unset LD_PRELOAD
$HOME/restic restore -r $RESTIC_REPOSITORY --tag termux --target / latest
}
#!/bin/bash
echo "******* -select- *******"
echo "**************************"
echo " 1) = Sel 1"
echo " 2) = Sel 2"
echo " 3) = Sel 3"
echo " 4) = Sel 4"
echo " *) = EXIT "
echo "**************************"
read n
case $n in
1)# Sel 1
echo " Select 1" | sleep 3
;;
2)# Sel 2
echo " Select 2" | sleep 3
;;
3)# Sel 3
echo " Select 3" | sleep 3
;;
4)# Sel 4
echo " Select 4" | sleep 3
;;
*)##
echo 'ERROR Select. Exit.....'
sleep 5
exit
;;
esac
BACKUPTermux() {
## * * * * * * * * * ##
#== Backing up Termux ==#
## * * * * * * * * * ##
# On this page, you will find some methods of backing up and restoring your Termux installation. It is highly recommended to understand what commands listed here do before copy-pasting them. Misunderstanding the purpose of each step may irrecoverably damage your data, if that happened to you - do not complain.
## * * * * * * * * * ##
## ==BACKUP== ==TAR== ##
## ####################
# Archiving sysroot and home directories is the simplest way to backup your data. You can install it using TAR.
#$ pkg install tar
#== START ==#
#== Backing up ==#
# In this example, a backup of both home and sysroot will be shown. The resulting archive will be stored on your shared storage (/sdcard) and compressed with gzip.
## Ensure that storage permission is granted:
#$ termux-setup-storage
## Go to Termux base directory:
#$ cd /data/data/com.termux/files
# 2.2 Create Dir
#$ mkdir -p /sdcard/Directory/termux-backup-tar
## Backing up files:
#$ tar -zcvf /sdcard/Directory/termux-backup-tar/termux-backup.tar.gz home usr
# Backup should be finished without any error. There shouldn't be any permission denials unless the user abused root permissions. Warnings about sockets are okay.
# Warning: never store your backups in Termux private directories. Their paths may look like:
# /data/data/com.termux # - private Termux directory on internal storage
# /sdcard/Android/data/com.termux # - private Termux directory on shared storage
# /storage/XXXX-XXXX/Android/data/com.termux # -private Termux directory on external storage, XXXX-XXXX is the UUID of your micro-sd card.
# ${HOME}/storage/external-1 # - alias for Termux private directory on your micro-sd.
# Once you clear Termux data from settings, these directories will be erased too. Unconditionally.
}
RESTORETermux() {
## * * * * * * * * * ##
#== Restoring ==#
## * * * * * * * * * ##
# Instructions for home directory and usr (sysroot or prefix) are separate, though if you did backup in the way shown above, these directories are stored in the same archive. There also will be assumed you have granted access to shared storage and your archive is stored at /sdcard/Directory/termux-backup-tar/termux-backup.tar.gz . By following these instructions all your Termux files will be overwritten with ones from back up.
#== Home directory ==#
## Go to Termux base directory:
#$ cd /data/data/com.termux/files
## Replace home directory with one from your backup:
#$rm -rf home
#$ tar -zxvf /sdcard/Directory/termux-backup-tar/termux-backup.tar.gz home
## The home directory isn't runtime-critical, no additional steps like closing/re-opening Termux required.
#=== Sysroot (prefix) ===#
## Go to Termux base directory:
#$ cd /data/data/com.termux/files
## Copy busybox binary in the way shown here. You can't use any other archiver binary here as only busybox doesn't have dependencies which will gone in next step.
#$ pkg install busybox
#$ cp ./usr/bin/busybox ./tar
## Erase sysroot. At this point, all packages will be deleted.
#$ rm -rf usr
## Restore sysroot from backup:
#$ unset LD_PRELOAD
#$ ./tar -zxvf /sdcard/termux-backup.tar.gz usr
## Now close Termux with the "exit" button from notification and open it again.
#$ exit
########### END ## * * * * * * * * * ##
## * * * * * * * * * #########
}
#!/bin/bash
ver="v1.0.0"
title="SELECT"
title_full="$title $ver"
NAMEFILE = SELECT.sh
##============ ≠≠≠ ============
#для рабты с цветами
normal="\033[0m"
green="\033[32m"
red="\033[1;31m"
blue="\033[1;34m"
black="\033[40m"
textcolor=$green
bgcolor=$black
## Color
color() {
case "$1" in
normal|default)
sed -i -e 's/^textcolor=.*/textcolor=$normal/' -e 's/^bgcolor=.*/bgcolor=$normal/' $NAMEFILE #меняем переменную в самом скрипте
textcolor=$normal #меняем переменную в текущей сессии
bgcolor=$normal #меняем переменную в текущей сессии
chosen=0 #выходим из терминала в главное меню
;;
green)
sed -i -e 's/^textcolor=.*/textcolor=$green/' -e 's/^bgcolor=.*/bgcolor=$black/' $NAMEFILE #меняем переменную в самом скрипте
textcolor=$green #меняем переменную в текущей сессии
bgcolor=$black #меняем переменную в текущей сессии
chosen=0 #выходим из терминала в главное меню
;;
blue)
sed -i -e 's/^textcolor=.*/textcolor=$blue/' -e 's/^bgcolor=.*/bgcolor=$black/' $NAMEFILE #меняем переменную в самом скрипте
textcolor=$blue #меняем переменную в текущей сессии
bgcolor=$black #меняем переменную в текущей сессии
chosen=0 #выходим из терминала в главное меню
;;
red)
sed -i -e 's/^textcolor=.*/textcolor=$red/' -e 's/^bgcolor=.*/bgcolor=$black/' $NAMEFILE #меняем переменную в самом скрипте
textcolor=$red #меняем переменную в текущей сессии
bgcolor=$black #меняем переменную в текущей сессии
chosen=0 #выходим из терминала в главное меню
;;
*)echo "цвет указан неверно. Поддерживается только green, blue, red и default/normal"
;;
esac
}
my_clear() { echo -e "$textcolor$bgcolor";clear;}
#функция, которая запрашивает только один символ
myread() { temp=""; while [ -z "$temp" ] #защита от пустых значений
do
read -n 1 temp
done
eval $1=$temp
echo
}
#функция, которая запрашивает только да или нет
myread_yn() {
temp=""
while [[ "$temp" != "y" && "$temp" != "Y" && "$temp" != "n" && "$temp" != "N" ]] #запрашиваем значение, пока не будет "y" или "n"
do
echo -n "y/n: "
read -n 1 temp
echo
done
eval $1=$temp
}
#функция, которая запрашивает только цифру
myread_dig() {
temp=""
counter=0
while [[ "$temp" != "0" && "$temp" != "1" && "$temp" != "2" && "$temp" != "3" && "$temp" != "4" && "$temp" != "5" && "$temp" != "6" && "$temp" != "7" && "$temp" != "8" && "$temp" != "9" ]] #запрашиваем значение, пока не будет цифра
do
if [ $counter -ne 0 ]; then echo -n "Неправильный выбор. Ведите цифру: "; fi
let "counter=$counter+1"
read -n 1 temp
echo
done
eval $1=$temp
}
##============ ≠≠≠ ============
#функция установки с проверкой не установлен ли уже пакет
myinstall() {
if [ -z `rpm -qa $1` ]; then
yum -y install $1
else
echo "Пакет $1 уже установлен"
br
fi
}
title() { my_clear;echo "$title";}
menu() { my_clear;echo "$menu";echo "Выберите пункт меню:";}
wait() { echo "Нажмите любую клавишу, чтобы продолжить..."; read -s -n 1;}
br() { echo "";}
updatescript() { wget $updpath/$filename -r -N -nd --no-check-certificate; chmod 777 $filename;}
##============ ≠≠≠ ============
#Функция проверки установленного приложения, exist возвращает true если установлена и false, если нет.
installed() {
if [ "$2" == "force" ]; then exist=`rpm -qa $1` #добавили возможности форсированно использовать длинный вариант проверки
else #если нет ключа force, используем старый двойной вариант
exist=`whereis $1 | awk {'print $2'}` #вариант быстрый, но не всегда эффективный
if [ -z $exist ]
then #будем использовать оба варианта
exist=`rpm -qa $1` #вариант медленнее, но эффективнее
fi
fi
if [ -n "$exist" ]
then
exist=true
else
exist=false
fi
}
menu="
┌─────────────────────────────────────────────┐
│ $title $ver$space│
├───┬─────────────────────────────────────────┤
│ 1 │ Информация о системе │
├───┼─────────────────────────────────────────┤
│ 2 │ Работа с ОС │
├───┼─────────────────────────────────────────┤
│ 3 │ Установить панель управления хостингом │
├───┼─────────────────────────────────────────┤
│ 4 │ Установка и настройка VPN-сервера │
├───┼─────────────────────────────────────────┤
│ 5 │ Работа с Proxy │
├───┼─────────────────────────────────────────┤
│ 6 │ Работа с файлами и программами │
├───┼─────────────────────────────────────────┤
│ 7 │ Очистка системы │
├───┼─────────────────────────────────────────┤
│ 8 │ Терминал │
├───┼─────────────────────────────────────────┤
│ 9 │ Обновить │
├───┼─────────────────────────────────────────┤
│ 0 │ Выход │
└───┴─────────────────────────────────────────┘
"
menu1="
● Работа скрипта :
└─● Выполнение ТЕСТА № $pick:
│ ┌───┬────────────────────────┐
├─┤ 1 │ Test 1 │
│ ├───┼────────────────────────┤
├─┤ 2 │ Test 2 │
│ ├───┼────────────────────────┤
├─┤ 3 │ Test 3 │
│ ├───┼────────────────────────┤
├─┤ 4 │ Test 4 │
│ ├───┼────────────────────────┤
├─┤ 5 │ Test 5 │
│ ├───┼────────────────────────┤
├─┤ 6 │ Test 6 │
│ ├───┼────────────────────────┤
├─┤ 7 │ Test 7 │
│ ├───┼────────────────────────┤
├─┤ 8 │ Test 8 │
│ ├───┼────────────────────────┤
├─┤ 9 │ Test 9 │
│ ├───┼────────────────────────┤
└─┤ 0 │ Выйти на уровень вверх │
└───┴────────────────────────┘
"
##============ ≠≠≠ ============
#Интерфейс
##============ ≠≠≠ ============
repeat=true
chosen=0
chosen2=0
while [ "$repeat" = "true" ] #выводим меню, пока не надо выйти
do
#пошёл вывод
if [ $chosen -eq 0 ]; then #выводим меню, только если ещё никуда не заходили
menu
myread_dig pick
else
pick=$chosen
fi
case "$pick" in
1) #Информация о системе
chosen=1
my_clear
echo "$title"
echo "$menu1"
myread_dig pick
case "$pick" in
1|2|3|4|5|6|7|8|9)echo "Select $pick";br;wait;;
0)chosen=0;;
*)echo "Неправильный выбор";wait;;
esac
;;
2) #Работа с ОС
chosen=2
my_clear
if [ $chosen2 -eq 0 ]; then #выводим меню, только если ещё никуда не заходили
echo "$title"
echo "$menu1"
myread_dig pick
else
pick=$chosen2
fi
case "$pick" in
1|2|3|4|5|6|7|8|9)echo "Select $pick";br;wait;;
0)chosen=0;;
*)echo "Неправильный выбор";wait;;
esac
;;
3) #Установить панель управления хостингом
chosen=3
my_clear
echo "$title"
echo "$menu1"
myread_dig pick
case "$pick" in
1|2|3|4|5|6|7|8|9)echo "Select $pick";br;wait;;
0)chosen=0;;
*)echo "Неправильный выбор";wait;;
esac
;;
4) #Установка и настройка VPN-сервера
chosen=4
my_clear
echo "$title"
echo "$menu1"
myread_dig pick
case "$pick" in
1|2|3|4|5|6|7|8|9)echo "Select $pick";br;wait;;
0)chosen=0;;
*)echo "Неправильный выбор";wait;;
esac
;;
5) #Работа с Proxy
chosen=5
my_clear
echo "$title"
echo "$menu1"
myread_dig pick
case "$pick" in
1|2|3|4|5|6|7|8|9)echo "Select $pick";br;wait;;
0)chosen=0;;
*)echo "Неправильный выбор";wait;;
esac
;;
6) #Работа с файлами и программами
chosen=6
my_clear
echo "$title"
echo "$menu1"
myread_dig pick
case "$pick" in
1|2|3|4|5|6|7|8|9)echo "Select $pick";br;wait;;
0)chosen=0;;
*)echo "Неправильный выбор";wait;;
esac
;;
7) #Очистка системы
chosen=7
my_clear
echo "$title"
echo "$menu1"
myread_dig pick
case "$pick" in
1|2|3|4|5|6|7|8|9)echo "Select $pick";br;wait;;
0)chosen=0;;
*)echo "Неправильный выбор";wait;;
esac
;;
8) #терминал
chosen=8
my_clear
echo "$title"
echo "$menu1"
myread_dig pick
case "$pick" in
1|2|3|4|5|6|7|8|9)echo "Select $pick";br;wait;;
0)chosen=0;;
*)echo "Неправильный выбор";wait;;
esac
;;
9) #Обновить Breeze Easy Shell
chosen=9
my_clear
echo "$title"
echo "$menu1"
myread_dig pick
case "$pick" in
1|2|3|4|5|6|7|8|9)echo "Select $pick";br;wait;;
0)chosen=0;;
*)echo "Неправильный выбор";wait;;
esac
;;
0)
repeat=false
;;
*)
echo "Неправильный выбор."
wait
;;
esac
done
echo "Скрипт ожидаемо завершил свою работу."
echo -e "$normal"
clear
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment