Skip to content

Instantly share code, notes, and snippets.

@numbnet
Last active November 12, 2022 06:19
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/aa3972925911e5077e89f1477dd25bba to your computer and use it in GitHub Desktop.
Save numbnet/aa3972925911e5077e89f1477dd25bba to your computer and use it in GitHub Desktop.
TERMUX
# ============= .bashrc ============= #
##==================≠==================
## Aliases
##==================≠==================
alias ls="ls -a"
alias rm='rm -rf'
alias cp='cp -i'
alias mv='mv -i'
##==================≠==================
## Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
##==================≠==================
# ====BASH COMMANDS====
##==================≠==================
### 1.Отображение Даты и Времени
export HISTTIMEFORMAT="%Y%m%d %H:%M [$(whoami)@$(hostname -b)]# "
##==================≠==================
### 2.Увеличиваем размер и количество строк
export HISTSIZE=50000
export HISTFILESIZE=50000
##==================≠==================
### 3.Добавл Команд Bash в Файл с Историей
shopt -s histappend
##==================≠==================
### 4. Мгновенно Сохранять Историю
###* / == РАНЕЕ НЕ ЗАДАНА :
PROMPT_COMMAND='history -a'
###* / == РАНЕЕ ЗАДАНА :
#PROMPT_COMMAND='$PROMPT_COMMAND; history -a'
##==================≠==================
## 5. Контролируйте Bash History
### HISTCONTROL — список опций, разделенных двоеточиями.
export HISTCONTROL=ignorespace:erasedups
##==================≠==================
## 6. Игнорировать Определенные Команды
export HISTIGNORE="ls:ps:history" # Не сохранять команды ls, ps и history:
##==================≠==================
## 7. Исправление случайных ошибок.
shopt -s cdspell
##==================≠==================
## 8.все строки многостроч.,в одной записи
shopt -s cmdhist
##==================≠==================
## 9. Изменить Имя Файла с Историй Команд
export HISTFILE=~/.history_"$USER"
##==================≠==================
## Применить изменения в ~/.bashrc:
$ source ~/.bashrc
alias gs='git status '
alias ga='git add .'
alias gs='git commit -m "File edit or ... add new file" '
alias gb='git branch '
alias gps='git push '
alias gpu='git pull '
alias gs='git status '
alias gd='git diff '
alias gco='git checkout '
alias gk='gitk --all&'
alias gx='gitx --all'
alias got='git '
alias get='git '
alias gacpp='git status;git add .;git commit -m "Add file...";git push;git pull '
## NAME: .zshrc
## AVTOR: numbnet
## If you come from bash you might have to change your $PATH.
# export PATH=$HOME/bin:/usr/local/bin:$PATH
## Path to your oh-my-zsh installation.
export ZSH=$HOME/.oh-my-zsh
## Set name of the theme to load --- if set to "random", it will load a random theme each time oh-my-zsh is loaded, in which case, to know which specific one was loaded, run: echo $RANDOM_THEME
## See https://github.com/robbyrussell/oh-my-zsh/wiki/Themes
ZSH_THEME="agnoster"
plugins=(
git
web-search
zsh-completions
zsh-autosuggestions
zsh-syntax-highlighting
)
source $ZSH/oh-my-zsh.sh
## User configuration
autoload -U compinit && compinit
# export MANPATH="/usr/local/man:$MANPATH"
## You may need to manually set your language environment
## export LANG=en_US.UTF-8
## Preferred editor for local and remote sessions
## if [[ -n $SSH_CONNECTION ]]; then
## export EDITOR='vim'
## export EDITOR='nano'
## else
## export EDITOR='mvim'w
## fi
## Compilation flags
## export ARCHFLAGS="-arch x86_64"
## SSH PATH
# export SSH_KEY_PATH="~/.ssh/rsa_id"
## Set personal aliases, overriding those provided by oh-my-zsh libs, plugins, and themes. Aliases can be placed here, though oh-my-zsh users are encouraged to define aliases within the ZSH_CUSTOM folder. For a full list of active aliases, run.
zstyle ':completion:*' insert-tab false
## Автокомплит для первого символа
HISTFILE=~/.zhistory
### Число команд, сохраняемых в HISTFILE
SAVEHIST=500000
### Чucлo команд, coxpaняeмыx в сеансе
HISTSIZE=50000
DIRSTACKSIZE=20
#### Опции истории команд ####
## Добавляет в историю время выполнения команды.
setopt extended_history
alias history='fc -il 1'
alias ls='ls -a'
## История становится общей между всеми сессиями / терминалами.
setopt share_history
## Дополнение файла истрии
setopt APPEND_HISTORY
## Добавить команду в историю не после выполнения а перед
setopt INC_APPEND_HISTORY
## Игнopupoвaть вce пoвтopeнuя команд
setopt HIST_IGNORE_ALL_DUPS
## Удалять из файл истории пустые строки
setopt HIST_REDUCE_BLANKS
## команды «history» и «fc» в историю заноситься не будут
setopt HIST_NO_STORE
## если набрали путь к директории без комманды CD, то перейти
setopt AUTO_CD
## Сообщать при изменении статуса фонового задания
setopt NOTIFY
## Перемещение стрелочками по выбору
# setopt menucomplete
# zstyle ':completion:*' menu select=1 _complete _ignored _approximate
## Вести себя как в BASH
# setopt AUTO_MENU BASH_AUTO_LIST
## исправлять неверно набранные комманды
setopt CORRECT_ALL
## вопрос на автокоррекцию
SPROMPT='zsh: Заменить '\''%R'\'' на '\''%r'\'' ? [Yes/No/Abort/Edit] '
## Можно вводить комментарии начинающиеся с #.
setopt interactive_comments
autoload -U compinit promptinit
compinit
promptinit;
## Дополняем спрятанные .файлы:
_comp_options+=(globdots)
## экранируем спецсимволы в url, например &, ?, ~ и так далее
autoload -U url-quote-magic
zle -N self-insert url-quote-magic
## Включение поддержки выражений вроде «{1-3}» или «{a-d}» — они будут разворачиваться в «1 2 3» и «a b c d» соответственно
setopt BRACECCL
## После перехода в директорию вызываем ls.
function lcd() {cd "$1" && ls}
# =======END====== #
##============ ≠≠≠ ============
## Кастомизации Termux
kastom()
{
echo "======== Кастомизации Termux ========" | sleep 3
##==== 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 -y 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 -p "$XDG_TMP_HOME"; mkdir -p "$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
## Cleaning
rm -rf $XDG_CACHE_HOME/.zshrc.sh
}
##================= ≠≠≠ =================
##≠≠≠≠≠≠≠≠≠≠≠≠≠≠≠≠≠≠≠≠≠≠≠≠≠≠≠≠≠≠≠≠≠≠≠≠≠≠≠
while true; do
read -e -p "install kastom (y/n)? " rsn
case $rsn in
[Yy]*) ## Install Kastom Settings
kastom;
break
;;
[Nn]*) ## NO Install
break;
esac
done;
exit;
##================= INFPORMATION =================
## Теперь вам доступны такие команды как:
## google текст поиска. Открывает браузер с
## вашим запросом в google: lcd path/to/dir
## переходит в каталог и сразу показывает
## файлы == cd && ls;
## Чтоб поменять цвет: ~/.termux/colors.sh
## Чтоб поменять шрифт: ~/.termux/fonts.sh
##
##================================================
#### 1Etap.sh ####
# https://gist.githubusercontent.com/numbnet/16283d639aa316c8a1925c779dbd225c/raw/e44a093421e9988ffcfee7c43b2da95b5be98b57/1Etap.sh
# Кастомизации Termux
##############)
#*
TMPDIR=$PREFIX/tmp
XDG_CACHE_HOME=$HOME/.cache
XDG_TMP_HOME=$HOME/.tmp
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
#*
#######################
# Добавляем wget curl и др.
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
#**********×**********#
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
function mkhometmp {
if [[ ! -e $XDG_TMP_HOME ]];
then
# termux-setup-storage
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
}
function TermSetStor {
if [[ ! -e $TERM_STORAGE ]];
then
termux-setup-storage | sleep 10;
# mkdir
elif [[ ! -d $TERM_STORAGE ]];
then
echo "$TERM_STORAGE существует, это не каталог" 1>&2
fi
}
mkhometmp
TermSetStor
cd $XDG_CACHE_HOME
cat ".zshrc" > .zshrc.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
# Теперь вам доступны такие команды как: google текст поиска. Открывает браузер с вашим запросом в google: lcd path/to/dir ; переходит в каталог и сразу показывает файлы == cd && ls; Чтоб поменять цвет: ~/.termux/colors.sh Чтоб поменять шрифт: ~/.termux/fonts.sh
#!/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/sh
#==== RESTIC with CENTOS & RHATT ====#
##==================≠==================
yum install yum-plugin-copr -y
yum copr enable copart/restic -y
yum install restic -y
##==================≠==================
## or ADD NEW REPO
##==================≠==================
yum-config-manager --add-repo https://copr.fedorainfracloud.org/coprs/copart/restic/repo/epel-7/copart-restic-epel-7.repo
##==================≠==================
restic version
restic self-update
##==================≠==================
# restic generate --bash-completion /etc/bash_completion.d/restic
# writing bash completion file to /etc/bash_completion.d/restic
#!/bin/bash
######## backupCentos.sh ######
BDIR='/home/backup';
FDIR= '/';
EXCLUDE='{"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/home/backup/*","/media/*","/lost+found"}';
if [ -d $BDIR ]; then
echo "Folder exists"
cd /mnt && ln -s $BDIR;
else
mkdir $BDIR | echo 'Folder "$BDIR" is create';
fi
rsync -aAXv --delete-after --exclude=$EXCLUDE $FDIR $BDIR;
exit
#### Info ####
## For AutoBackup,save in /etc/cron.daily/backup
##link# curl --raw https://pastebin.com/raw/ddAdx23v > ~/backup.sh | chmod +x ~/backup.sh | cp -r ~/backup.sh /etc/cron.daily/backup | chmod +x /etc/cron.daily/backup;
##$ rsync -a --delete --quiet $FDIR $BDIR;
##$ rsync -aAXv --delete-after --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / /mnt/backup;
##$ rsync -aAXv --delete-after --exclude={"/boot/*","/etc/*","/lib/*","/media/*","/opt/*","/sbin/*","/sys/*","/usr/*","/bin/*","/dev/*","/home/*","/lib64/*","/mnt/*","/proc/*","/run/*","/srv/*","/tmp/*","/var/*"} / /home/backup;
#!/bin/bash
##============ ≠≠≠ ============
TITLE='Backing up Termux'
##============ ≠≠≠ ============
StoragePerm() {
termux-setup-storage # Storage permission is granted:
}
##============ ≠≠≠ ============
## 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
StoragePerm
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
}
##============ ≠≠≠ ============
BACKUPTermuxTAR() {
echo '## ==================================== ##'
echo '## == BACKUP TAR == ##'
echo '## ==================================== ##'
# Archiving sysroot and home directories is the simplest way to backup your data. You can install it using TAR.
pkg install tar -y
# 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.
## Go to Termux base directory:
cd ~/../
##============ ≠≠≠ ============
# Create Directory
TarREPO() {
BACKUP_TARFILE="termux-backup.tar.gz"
BACKUP_REPODIR="~/storage/shared/Directory/termux-backup-tar"
BACKUPTARREPO="$BACKUP_REPODIR/$BACKUP_TARFILE"
if [[ ! -e $BACKUP_REPODIR ]];
then
echo "$BACKUP_REPODIR NOT exists. Now create dir"
mkdir -p $BACKUP_REPODIR;
elif [[ ! -d $BACKUP_REPODIR ]];
then
echo "$BACKUP_REPODIR exists, but is not a dir!!!" 1>&2
echo "======== dir ========"
fi
}
TarREPO
## Backing up files:
tar -zcvf $BACKUPTARREPO 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() {
echo '## ==================================== ##'
echo '## == Restoring TAR == ##'
echo '## ==================================== ##'
# 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 ~/../
## Replace home directory with one from your backup:
rm -rf home
tar -zxvf $BACKUPTARREPO home
## The home directory isn't runtime-critical, no additional steps like closing/re-opening Termux required.
echo "#=== Sysroot (prefix) ===#"
## Go to Termux base directory:
cd ~/../
## 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 -y
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 $BACKUPTARREPO usr
## Now close Termux with the "exit" button from notification and open it again.
exit
}
##=============================
##============ ≠≠≠ ============
## MENU
MENU="
echo "******* -select- *******"
echo "**************************"
echo " 1) Backing up Termux - RESTIC"
echo " 2) Restoring Termux - RESTIC"
echo " 3) Backing up Termux - TAR"
echo " 4) Restoring Termux - TAR"
echo " *) EXIT "
echo "**************************"
"""
##============ ≠≠≠ ============
read n
case $n in
1)# Backing up Termux - RESTIC
echo "Backing up Termux - RESTIC" | sleep 3
StartBackup
;;
2)# Restoring Termux - RESTIC
echo "Restoring Termux - RESTIC" | sleep 3
StartRestoring
;;
3)# Backing up Termux - TAR
echo "Backing up Termux - TAR" | sleep 3
BACKUPTermuxTAR
;;
4)# Restoring Termux - TAR
echo "Restoring Termux - TAR" | sleep 3
RESTORETermux
;;
*)## EXIT
echo 'Select is ERROR. Scripts Exit.....' | sleep 3
exit
;;
esac
#!/bin/sh
##==================≠==================
#= ==Backing up Termux==
## ==BACKUP== ==RESTIC==
##==================≠==================
##==================≠==================
# Ensure that storage permission is granted:
termux-setup-storage
##==================≠==================
# Create Dir
cd $HOME
mkdir -p $HOME/storage/emulated
ln -s /storage/emulated/0 $HOME/storage/emulated/0
##==================≠==================
# create dir Repo RESTIC
RESTIC_REPOSITORY=$HOME/storage/shared/Directory/restic-repo
if [[ ! -e $RESTIC_REPOSITORY ]];
then
mkdir $RESTIC_REPOSITORY;
# environment variable permanently is put below statement in your script,
#if [[ ! -d "$VARNAME" ]]; then
# export VARNAME="$VARVALUE"
# echo 'export "$VARNAME"="$VARVALUE"' >> ~/.bashrc
#fi
TMPDIR=$PREFIX/tmp
XDG_CACHE_HOME=$HOME/.cache
RESTIC_CACHE_DIR=$PREFIX/var/cache
RESTIC_REPOSITORY=$HOME/storage/shared/Directory/restic-repo
export TMPDIR=$PREFIX/tmp
export XDG_CACHE_HOME=$HOME/.cache
export RESTIC_CACHE_DIR=$PREFIX/var/cache
echo 'export TMPDIR=$PREFIX/tmp' >> ~/.bashrc
echo 'export XDG_CACHE_HOME=$HOME/.cache' >> ~/.bashrc
echo 'export RESTIC_CACHE_DIR=$PREFIX/var/cache' >> ~/.bashrc
elif [[ ! -d $RESTIC_REPOSITORY ]];
then
echo "$RESTIC_REPOSITORY exists, but is not a dir" 1>&2
rm -rf $RESTIC_REPOSITORY && mkdir $RESTIC_REPOSITORY;
fi
# mkdir -p $HOME/storage/shared/Directory/restic-repo
##== Restic is a utility for doing incremental backups. It can work with both local and remote backups. Backed up data is encrypted and de-duplicated. This package is not available by default. Install it with the following command:
# echo "name pkg:" & read PKG;
WGET=`which wget 2> /dev/null`
BUSYBOX=`which busybox 2> /dev/null`
MICRO=`which miocro 2> /dev/null`
NANO=`which nano 2> /dev/null`
CURL=`which curl 2> /dev/null`
RESTIC=`which restic 2> /dev/null`
TAR=`which tar 2> /dev/null`
$PKG='wget busybox miocro nano curl restic tar';
if test "-$WGET-" = "--" || test "-$BUSYBOX-" = "--" || test "-$MICRO-" = "--" || test "-$NANO-" = "--" || test "-$CURL-" = "--" || test "-$RESTIC-" = "--"|| test "-$TAR-" = "--"
then
echo "You must install $PKG"
sleep 5;
apt install $PKG -y;
# exit 1
else
echo "$PKG is installed";
fi
# Notice: restic is for advanced users only.
# While it provides more features than tar, it is harder in use.
# Most people will use it in scripts rather than manually in the command line.
# Instructions here provided only as an example.
# restic -r /srv/restic-repo backup ~/work
##==================≠==================
## BACKUP
echo "#== START Backing up ==#"
# These steps will backup only sysroot (prefix) and not your home. The repository will be stored on shared storage.
##== Initialize local restic repository. You will be prompted for a password because encryption is enabled (no way to turn off). If the password is lost - your data will be locked forever.
##==================≠==================
## INIT
echo "## ====INIT==== ##"
restic init -r $RESTIC_REPOSITORY
sleep 5
##==================≠==================
## Backing up sysroot ($PREFIX):
echo "## ==Backup SYSROOT== ##"
restic backup -r $RESTIC_REPOSITORY --tag termux $PREFIX
##==================≠==================
## Backup ($HOME) directory in this way:
echo "##== Backing up ( $HOME ): "
sleep 5
restic backup -r $RESTIC_REPOSITORY --tag termux-home $HOME
##==================≠==================
## END EXIT
echo "#== END ==#"
sleep 5
exit
##==================≠==================
#== Restoring
##==================≠==================
# Same as with tar-based backups, restoring of sysroot is tricky. Following steps are applicable only for local backups:
##==================≠==================
##== Make sure that restic is available install restic
#$ pkg install restic
##==================≠==================
##== Ensure that storage permission is granted:
#$ termux-setup-storage
##==================≠==================
##Copy restic binary to $HOME. We are going to erase sysroot.
#$ cp $PREFIX/bin/restic $HOME/restic
##==================≠==================
##== 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
##== If everything is done right, you should now have a Termux restored from the backup. Close your Termux application and open it again.
##== Tip: if you do not want to enter a restic password or specify repository each time, you can set environment variables "RESTIC_PASSWORD" and "RESTIC_REPOSITORY".
#!/bin/sh
##==================≠==================
#== 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.
##==================≠==================
#== 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
# 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 ## * * * * * * * * * ##
## * * * * * * * * * #########
}
#!/data/data/com.termux/files/usr/bin/bash
##
## Backup and restore Termux ($HOME or $PREFIX) via restic. Written by @xeffyr.
## Dependencies: bash, busybox, grep, openssh (optional), restic
##
set -e -u
# Resetting Termux-specific variables to make sure
# that they are correct.
export HOME="/data/data/com.termux/files/home"
export PREFIX="/data/data/com.termux/files/usr"
# Default configuration.
PROCESS_HOME=false
RESTORE_MODE=false
SNAPSHOT_TO_RESTORE=latest
# Set tags used for backups.
: "${TERMUX_PREFIX_TAG:="termux"}"
: "${TERMUX_HOME_TAG:="termux-home"}"
# Lock terminal.
block_terminal() {
stty -echo -icanon time 0 min 0
stty intr undef quit undef susp undef
}
# Unlock terminal.
unblock_terminal() {
while read -r; do
true;
done
stty sane
}
perform_restore() {
local prefix_tmp_dir home_tmp_dir
if "$PROCESS_HOME"; then
echo "[*] Fetching data of snapshot '$SNAPSHOT_TO_RESTORE' with tag '$TERMUX_HOME_TAG'..." >&2
home_tmp_dir=$(mktemp -d -p "/data/data/com.termux/files" "restore.XXXXXXXX")
trap "rm -rf "$home_tmp_dir" > /dev/null 2>&1" INT QUIT EXIT
if ! restic restore --tag "$TERMUX_HOME_TAG" --target "$home_tmp_dir" "$SNAPSHOT_TO_RESTORE"; then
exit 1
fi
trap - INT QUIT EXIT
else
echo "[*] Fetching data of snapshot '$SNAPSHOT_TO_RESTORE' with tag '$TERMUX_PREFIX_TAG'..." >&2
prefix_tmp_dir=$(mktemp -d -p "/data/data/com.termux/files" "restore.XXXXXXXX")
trap "rm -rf "$prefix_tmp_dir" > /dev/null 2>&1" INT QUIT EXIT
if ! restic restore --tag "$TERMUX_PREFIX_TAG" --target "$prefix_tmp_dir" "$SNAPSHOT_TO_RESTORE"; then
exit 1
fi
trap - INT QUIT EXIT
fi
# Actual restoring is done in subshell since variables
# like PATH may be changed in some steps.
# Terminal is locked here so text input, ctrl-c
# or similar are not working here.
block_terminal
(
if "$PROCESS_HOME"; then
cd "/data/data/com.termux/files" > /dev/null 2>&1 || true
echo -n "[*] Removing old \$HOME... " >&2
chmod -R 700 "$HOME" > /dev/null 2>&1 || true
if rm -rf "$HOME" > /dev/null 2>&1; then
echo "ok" >&2
else
echo "fail" >&2
unblock_terminal
echo "[!] Something went wrong and your \$HOME is inconsistent now." >&2
exit 1
fi
echo -n "[*] Creating new \$HOME... " >&2
if mv "$home_tmp_dir/$HOME" "$HOME" > /dev/null 2>&1; then
echo "ok" >&2
else
echo "fail" >&2
unblock_terminal
echo "[!] Something went wrong and your \$HOME is inconsistent now." >&2
exit 1
fi
# Remove home restore directory.
rm -rf "$home_tmp_dir" > /dev/null 2>&1 || true
else
# Use failsafe environment.
export PATH="/system/bin:/system/xbin"
unset LD_PRELOAD LD_LIBRARY_PATH
hash -r
# Delete prefix.
echo -n "[*] Removing old \$PREFIX... " >&2
chmod -R 700 "$PREFIX" > /dev/null 2>&1 || true
if rm -rf "$PREFIX" > /dev/null 2>&1; then
echo "ok" >&2
else
echo "fail" >&2
echo "[!] Something went wrong and your \$PREFIX is broken now." >&2
exit 1
fi
# Move restored prefix to the correct location.
echo -n "[*] Creating new \$PREFIX... " >&2
if mv "$prefix_tmp_dir/$PREFIX" "$PREFIX" > /dev/null 2>&1; then
echo "ok" >&2
else
echo "fail" >&2
echo "[!] Something went wrong and your \$PREFIX is broken now." >&2
exit 1
fi
# Remove prefix restore directory.
rm -rf "$prefix_tmp_dir" > /dev/null 2>&1 || true
fi
)
unblock_terminal
echo "[*] Finished." >&2
}
perform_backup() {
if "$PROCESS_HOME"; then
echo "[*] Backing up Termux home..." >&2
if ! restic backup --tag termux-home \
--exclude="$HOME/.ICEauthority" \
--exclude="$HOME/.Xauthority" \
--exclude="$HOME/.cache" \
--exclude="$HOME/.cargo" \
--exclude="$HOME/.*_history" \
--exclude="$HOME/.lesshst" \
--exclude="$HOME/.tor/cached-*" \
--exclude="$HOME/.tor/diff" \
--exclude="$HOME/.tor/lock" \
--exclude="$HOME/.tor/state" \
--exclude="$HOME/.zhistory" \
--exclude="$HOME/.wget-hsts" \
--exclude="$HOME/storage" \
"$HOME"; then
return 1
fi
else
echo "[*] Backing up Termux prefix..." >&2
if ! restic backup --tag termux \
--exclude="$PREFIX/lib/python*/**/__pycache__" \
--exclude="$PREFIX/lib/python*/**/*.pyc" \
--exclude="$PREFIX/lib/python*/**/*.pyo" \
--exclude="$PREFIX/tmp/*" \
--exclude="$PREFIX/var/android/*" \
--exclude="$PREFIX/var/cache/apt/*" \
--exclude="$PREFIX/var/lib/apt/lists/*" \
--exclude="$PREFIX/var/lib/clamav/*" \
--exclude="$PREFIX/var/lib/nginx/client-body/*" \
--exclude="$PREFIX/var/lib/nginx/fastcgi/*" \
--exclude="$PREFIX/var/lib/nginx/proxy/*" \
--exclude="$PREFIX/var/lib/nginx/scgi/*" \
--exclude="$PREFIX/var/lib/nginx/uwsgi/*" \
--exclude="$PREFIX/var/lib/tor/cached-*" \
--exclude="$PREFIX/var/lib/tor/diff" \
--exclude="$PREFIX/var/lib/tor/lock" \
--exclude="$PREFIX/var/lib/tor/state" \
--exclude="$PREFIX/var/run/*.pid" \
--exclude="$PREFIX/var/run/*.sock" \
"$PREFIX"; then
exit 1
fi
fi
echo "[*] Finished." >&2
}
show_usage() {
{
echo
echo "Usage: termux-backup [OPTIONS]"
echo
echo "Termux backup/restore frontend for Restic."
echo
echo "Options:"
echo
echo " --home"
echo
echo " Backup or restore home directory"
echo " instead of prefix."
echo
echo " -r, --restore (snapshot)"
echo
echo " Enable restore mode. Will completely"
echo " overwrite files by ones from backup."
echo
echo " You can restore a specific snapshot if its"
echo " name (hash) was specified. If not, a latest"
echo " snapshot will be used."
echo
echo " -h, --help"
echo
echo " Show this help message."
echo
echo "Credentials are specified via environment"
echo "variables:"
echo
echo " RESTIC_REPOSITORY - backup repository location."
echo " RESTIC_PASSWORD - encryption password."
echo
echo "You can override tag names by these environment"
echo "variables:"
echo
echo " TERMUX_HOME_TAG - home backup tag."
echo " TERMUX_PREFIX_TAG - prefix backup tag."
echo
echo "Instead of specifying variables globally, you can"
echo "define them in script file '~/.restic_env'."
echo
} >&2
}
while (($# > 0)); do
case "$1" in
--home)
PROCESS_HOME=true
;;
-h|--help)
show_usage
exit 0
;;
-r|--restore)
RESTORE_MODE=true
if [ $# -gt 1 ] && [[ $2 != -* ]]; then
SNAPSHOT_TO_RESTORE=$2
shift 1
if ! grep -qP '^(?:[a-f0-9]{8,64}|latest)$' <(echo "$SNAPSHOT_TO_RESTORE"); then
{
echo "[!] Invalid snapshot ID specified."
echo
echo " Valid snapshot ID consist of 8-64 lowercase"
echo " letters from range [a-f] and numbers [0-9]."
echo
echo " If you specify snapshot ID as 'latest', then"
echo " latest snapshot will be used."
echo
} >&2
exit 1
fi
fi
;;
*)
if [[ $1 == -* ]]; then
echo "[!] Invalid option '$1'." >&2
else
echo "[!] Unexpected argument '$1'." >&2
fi
show_usage
exit 1
;;
esac
shift 1
done
if [ -z "$(command -v restic)" ]; then
echo "[!] Error: restic is not installed." >&2
exit 1
fi
if [ -r "$HOME/.restic_env" ]; then
. "$HOME/.restic_env"
fi
if [ -z "$RESTIC_REPOSITORY" ]; then
echo "[!] Error: variable 'RESTIC_REPOSITORY' is not set." >&2
exit 1
fi
if [ -z "$RESTIC_PASSWORD" ]; then
echo "[!] Error: variable 'RESTIC_PASSWORD' is not set." >&2
exit 1
fi
if "$RESTORE_MODE"; then
if "$PROCESS_HOME"; then
echo "[!] Restoring mode will overwrite all your data in \$HOME." >&2
else
echo "[!] Restoring mode will overwrite all your data in \$PREFIX." >&2
fi
read -re -p "[@] Do you want to proceed ? (YES/no): " CHOICE >&2
if [ "$CHOICE" != "YES" ]; then
echo "[!] Aboring restore." >&2
exit 1
fi
unset CHOICE
perform_restore
else
perform_backup
fi
#!/bin/bash
echo -n "Продолжить? (y/n) "
read item
case "$item" in
y|Y) echo "Ввели «y», продолжаем..."
;;
n|N) echo "Ввели «n», завершаем..."
exit 0
;;
*) echo "Ничего не ввели. Выполняем действие по умолчанию..."
;;
esac
## Обновляем репозитории командой
apt update;
##Устанавливаем программу командой
apt install coreutils;
#Termux хранит данные в собственном хранилище данных, т.е. папка $HOME находится внутри частной области Termux, как у обычного Android приложения. Удаление Termux вызовет потерю этих данных. Если вы собираетесь хранить там важные файлы, то используйте
termux-setup-storage
# чтобы обеспечить сохранение данных во внешнем хранилище (например на SD-карте).
#Итак, давайте создадим папку для нашего приложения и перейдем в этот каталог:
## Nano
#Устанавливаем nano командой
apt install nano
#2. Создадим файл app.js и откроем его в редакторе:
touch app.js #, nano app.js
#3. Напишем какой-нибудь простой NodeJS-код для проверки:
console.log(’Hello World!’);
#Чтобы выйти из nano, нужно нажать Ctrl+X, написать yes и нажать Enter.
##NodeJS
##Теперь самое время установить NodeJS. Сделать это очень просто:
apt install nodejs
#Теперь мы можем наконец запустить наш скрипт: node app.js
#Express
#Вместе с NodeJS нам доступен пакетный менеджер npm. Давайте воспользуемся им:
npm init
npm install express --save
cat >> app.js <<EOF
#Откроем app.js и напишем/скопи-пастим туда следующий код:
var express = require(’express’), app = express(),
port = Number(process.env.PORT || 8080);
app.get(’/’, function(req, res){
res.send(’Express is working’);
});
app.listen(port, function() {
console.log(’Listening on port ' + port); });
EOF
node app.js
## Это должно вывести в консоль номер порта по которому отвечает сервер. Если вы откроете 
http://localhost:8080/
##  в браузере, то увидите на странице следующий текст:
## Чтобы избежать перезагрузки сервера вручную каждый раз при изменении файла app.js мы можем установить nodemon. Nodemon — это утилита, которая будет отслеживать изменения в вашем коде и автоматически перезапустить сервер.
npm install nodemon --save-dev
## Теперь вы можете запустить сервер с помощью команды nodemon вместо node:
nodemon app.js
##============ ≠≠≠ ============
## Установка DarkFly в termux (tools 500+) Множество разных инструментов:
installDarkFly()
{
echo "======== Установка DarkFly ========" | sleep 3;
cd $HOME
pkg install python2 -y
pkg install git -y
pkg install php -y
git clone https://github.com/Ranginang67/DarkFly-Tool.git
cd DarkFly-Tool
chmod +x install.py
python2 install.py
}
##================= ≠≠≠ =================
while true; do
read -e -p "Установка DarkFly в termux (tools 500+) Множество разных инструментов (y/n)? " rsn
case $rsn in
[Yy]*) ## Install
installDarkFly;
break
;;
[Nn]*) ## NO Install
break;
esac
done;
exit;
##================= ≠≠≠ =================
while true; do
read -e -p "Меню установщика запускаем командой: DarkFly Запустить зараз (y/n)? " rsn
case $rsn in
[Yy]*) ## Install
DarkFly; break
;;
[Nn]*) ## NO Install
break;
esac
done;
exit
#!/bin/sh
### Инструкция по установке Java в termux
sleep 3
cd $HOME
apt update && apt upgrade
apt install git
git clone https://github.com/Hax4us/java
mv java/openjdk/java /data/data/com.termux/files/usr/bin
chmod +x /data/data/com.termux/files/home/java/openjdk/bin/java
exit /b
sleep 3
#####################################
# Установка Kali
sleep 3
cd $HOME
####### Для тех, у кого активировано su в Termux #######
#
sleep 3
cd $HOME
curl -LO https://raw.githubusercontent.com/Hax4us/Nethunter-In-Termux/master/kalinethunter
tsudo chmod +x kalinethunter
tsudo ./kalinethunter --insecure
#запускаем Kali:
tsudo startkali
wget https://http.kali.org/kali/pool/main/k/kali-archive-keyring/kali-archive-keyring_2018.1_all.deb
apt install ./kali-archive-keyring_2018.1_all.deb
apt-get update
apt-get install lxde-core lxde kali-defaults kali-root-login desktop-base
#Девятая команда удаляет старые пакеты, десятая команда чистит кэш:
apt-get autoremove
apt-get clean
apt-get install tightvncserver
#После этих команд выполните:
vncserver :1 -geometry 700x1400 -dpi 120
###############
## Только замените на своё разрешение экрана.
## потом введите пароль любой, нажмите enter и повтори пароль,
## потом нажми - Y/N Спрашивает нужен ли пароль для
## режима "просмотр" Y или N, решать Вам!
################
#Если ввели не верные значения, то:
vncserver -kill :1
#И снова введите, но уже с изменёнными значениями
vncserver :1 -geometry 720x1420 -dpi 120
#Включаем VNC:
#У меня установлена программа bVNC и выглядят настройки так
# Выхлоп:
#На всякий...
#Вход из под Termux:
tsudo startkali
#Запуск:
vncserver :1 -geometry YYYxQQQ -dpi NNN
#(Где YYY, QQQ, NNN - Ваши значения)
#Выключение:
vncserver -kill :1
#Выход в Termux:
logout
############
#### Для тех, у кого есть root права, но они не активированы в Termux ###
sleep 3
cd $HOME
pkg install tsu
tsudo
# И выполняем все перечисленные действия из спойлера - выше.
sleep 3
cd $HOME
curl -LO https://raw.githubusercontent.com/Hax4us/Nethunter-In-Termux/master/kalinethunter
tsudo chmod +x kalinethunter
tsudo ./kalinethunter --insecure
#запускаем Kali:
tsudo startkali
wget https://http.kali.org/kali/pool/main/k/kali-archive-keyring/kali-archive-keyring_2018.1_all.deb
apt install ./kali-archive-keyring_2018.1_all.deb
apt-get update
apt-get install lxde-core lxde kali-defaults kali-root-login desktop-base
#Девятая команда удаляет старые пакеты, десятая команда чистит кэш:
apt-get autoremove
apt-get clean
apt-get install tightvncserver
#После этих команд выполните:
vncserver :1 -geometry 700x1400 -dpi 120
###############
## Только замените на своё разрешение экрана.
## потом введите пароль любой, нажмите enter и повтори пароль,
## потом нажми - Y/N Спрашивает нужен ли пароль для
## режима "просмотр" Y или N, решать Вам!
################
#Если ввели не верные значения, то:
vncserver -kill :1
#И снова введите, но уже с изменёнными значениями
vncserver :1 -geometry 720x1420 -dpi 120
#Включаем VNC:
#У меня установлена программа bVNC и выглядят настройки так
# Выхлоп:
#На всякий...
#Вход из под Termux:
tsudo startkali
#Запуск:
vncserver :1 -geometry YYYxQQQ -dpi NNN
#(Где YYY, QQQ, NNN - Ваши значения)
#Выключение:
vncserver -kill :1
#Выход в Termux:
logout
#!/bin/sh
# Приступаем к кастомизации нашего termux, все действия
# выполняем под обычным пользователем не под root
sleep 3
cd $HOME
apt install zsh micro wget curl
sh -c "$(curl -fsSL https://github.com/Cabbagec/termux-ohmyzsh/raw/master/install.sh)"
git clone https://github.com/Bhai4You/Termux-Banner
cd Termux-Banner/zsh
chmod +x requirement.sh t-ban.sh
bash requirement.sh
bash t-ban.sh
chsh -s zsh
exit /b
### Установка metasploit в termux:
sleep 3
cd $HOME
pkg install unstable-repo
pkg install metasploit
#####################################
### Полный фарш на termux для Python:
sleep 3
cd $HOME
pkg install micro python python2
pip install bpython ipython
micro test.py
### Теперь начинаем прикручивать плюшки к shell zsh:
#################################
sleep 3
cd $HOME
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
wget https://pastebin.com/raw/yJpsDYKM
cat yJpsDYKM > .zshrc
### Установка Tmux-Bunch в termux:
sleep 3
cd $HOME
apt install axel
axel https://github.com/Hax4us/Tmux-Bunch/releases/download/v2.7/Tmux-Bunch-2.7.tar.gz
tar -xf Tmux-Bunch-2.7.tar.gz
cd Tmux-Bunch
bash setup
### Теперь запускаем из любого каталога
tmuxbunch
# Установить GIT на CentOS 7
sudo yum update -y
sudo yum groupinstall "Development Tools" -y
sudo yum install gettext-devel openssl-devel perl-CPAN perl-devel zlib-devel -y
curl -LJ0 https://github.com/git/git/archive/v2.29.2.tar.gz --output git.tar.gz
tar -zxf git.tar.gz
cd git-2.29.2
make configure
./configure --prefix=/usr/local
sudo make install
echo "====END===="
sleep 5
exit
#!/bin/sh instalPhyton.sh
echo "###### PHYTON START ######"
cd $HOME
PKGIN="pkg install -y"
$PKGIN python && pip list >> ~/appListPhyton.txt
$PKGIN build-essential
$PKGIN clang
$PKGIN make
$PKGIN pkg-confi
$PKGIN unstable-repo
$PKGIN electrum
pip install numpy
git clone https://github.com/matplotlib/matplotlib
cd matplotlib
sed 's@#enable_lto = True@enable_lto = False@g' setup.cfg.template > setup.cfg && pip install .
export CFLAGS="-Wno-deprecated-declarations -Wno-unreachable-code"
pip install pandas
echo "### Numpy and Scipy ###"
curl -LO https://its-pointless.github.io/setup-pointless-repo.sh && bash setup-pointless-repo.sh
$PKGIN numpy
$PKGIN scipy
echo "# ===OpenCV=== #"
$PKGIN build-essential cmake libjpeg-turbo libpng python
echo "# ==========|========== #"
LDFLAGS=" -llog -lpython3" cmake -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=$PREFIX -DBUILD_opencv_python3=on -DBUILD_opencv_python2=off -DWITH_QT=OFF -DWITH_GTK=OFF ..
make && make install
echo "### ins Tkinter ###"
$PKGIN python-tkinter
$PKGIN termux-exec ; find . -type f -not -path '*/\.*' -exec termux-fix-shebang "{}" \; python setup.py install
$PKGIN termux-exec -y; python setup.py install -y
echo "### END PHYTON INSTALLER ###"
#!/data/data/com.termux/files/usr/bin/sh
echo "installing Prequisities \n"
apt update && apt upgrade
apt install autoconf bison clang coreutils curl findutils git apr apr-util libffi-dev libgmp-dev libpcap-dev \
postgresql-dev readline-dev libsqlite-dev openssl-dev libtool libxml2-dev libxslt-dev ncurses-dev pkg-config \
postgresql-contrib wget make ruby-dev libgrpc-dev termux-tools ncurses-utils ncurses
echo "\n"
echo "cloning Metasploit framework\n"
git clone https://github.com/rapid7/metasploit-framework --depth 1
cd metasploit-framework
echo "\n"
echo "Installing bundler"
gem install bundler
echo "\n"
echo "Installing nokogiri\n"
gem install nokogiri -- --use-system-libraries
echo "\n"
echo "installing Network_interface"
cd $HOME
gem unpack network_interface
cd network_interface-0.0.1
sed 's|git ls-files|find -type f|' -i network_interface.gemspec
curl -L https://wiki.termux.com/images/6/6b/Netifaces.patch -o netifaces.patch
patch -p1 < netifaces.patch
echo "\n"
echo "Building gem\n"
gem build network_interface.gemspec
gem install network_interface-0.0.1.gem
cd ..
rm -r network_interface-0.0.1
echo "\n"
echo "Installing grpc"
sed 's|grpc (.*|grpc (1.4.1)|g' -i Gemfile.lock
gem unpack grpc -v 1.4.1
cd grpc-1.4.1
curl -LO https://raw.githubusercontent.com/grpc/grpc/v1.4.1/grpc.gemspec
curl -L https://wiki.termux.com/images/b/bf/Grpc_extconf.patch -o extconf.patch
patch -p1 < extconf.patch
gem build grpc.gemspec
gem install grpc-1.4.1.gem
cd ..
rm -r grpc-1.4.1
echo "\n"
echo "Installig gems\n"
cd $HOME/metasploit-framework
bundle install -j5
echo "\n"
echo "Performing shebang fix"
$PREFIX/bin/find -type f -executable -exec termux-fix-shebang \{\} \;
echo "\n"
echo "Metasploit Successfully installed"
echo
echo "Type ./msfconsole to start metasploit"
echo
cd $HOME/metasploit-framework
#!/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
#!/bin/bash
## Перед работай с termux выполняем команды.
pkg install root-repo -y
pkg install science-repo -y
pkg install x11-repo -y
pkg install game-repo -y
pkg install termux-apt-repo -y
pkg install unstable-repo -y
apt update -y && apt upgrade -y
pkg install curl nano wget git micro openssl openssl-dev ncurses-utils -y
## У кого есть root, выполняем:
pkg install tsu
## Эмуляция рут прав
pkg install fakeroot
fakeroot
## Фикс исправления прав если
## установили или обновились
## через tsu или tsudo
uid=$(id -u)
su -c chown -R $uid:$uid /data/data/com.termux/ && su -c restorecon -RF /data/data/com.termux
echo "**** -select- *****"
echo "*********************"
echo " 1) Кастомизация Termux"
echo " 2) Установка DarkFly (tools 500+) и Множество разных инструментов"
echo " 3) Установка metasploit"
echo " 4) Установка Tmux-Bunch"
echo " 5) Установка Tmux"
echo " 6) Полный фарш на для Python:"
echo " 7) Установка Kali"
echo " 8) Установка instainsane в termux/nethunter (Брут Instagram)"
echo " 9) Установка Java"
echo "*********************"
read n
case $n in
1) # кастомизация Termux
function kastomizationtermux {
sleep 3
cd $HOME
apt install zsh micro wget curl
sh -c "$(curl -fsSL https://github.com/Cabbagec/termux-ohmyzsh/raw/master/install.sh)"
git clone https://github.com/Bhai4You/Termux-Banner
cd Termux-Banner/zsh
chmod +x requirement.sh t-ban.sh
bash requirement.sh
bash t-ban.sh
chsh -s zsh
echo "#* Прикручиваем плюшки к shell zsh: *#"
sleep 5
cd $HOME
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
# Делаем резервную копию
cp .zshrc > .zshrc.backup.sh
# Идем на github и копируем:
cd $HOME && wget https://gist.githubusercontent.com/numbnet/16283d639aa316c8a1925c779dbd225c/raw/a88c5a72761d37089bd6d7d39ea32fe0f0ba4238/.zshrc.sh
# # Удалем все настройки которые по дефолту, чтоб быстрей удалить, выполните команду в termux
## echo "" > .zshrc
cat .zshrc.sh > .zshrc
# Теперь вставьте скопированные настройки в .zshrc
sleep 5
echo "# Открывает браузер с запросом в google: google текст поиска"
echo "# *** переходит в каталог и сразу показывает файлы == cd && ls ***: lcd ~/ "
echo" Чтоб поменять цвет: ~/.termux/colors.sh"
echo " Чтоб поменять шрифт: ~/.termux/fonts.sh"
echo "# ========END======== #"
sleep 5
}
kastomizationtermux
;;
2) # Установка DarkFly
sleep 5
pkg install python2 git php -y
git clone https://github.com/Ranginang67/DarkFly-Tool
cd DarkFly-Tool
chmod +x install.py
python2 install.py
echo "Меню установщика запускаем: DarkFly"
DarkFly
;;
3) # Установка metasploit в termux:
function installmetasplout {
sleep 5
cd $HOME
pkg install unstable-repo
pkg install metasploit
# Обновляем
apt update -y && apt upgarde -y
# Устанавливаем Wget :
apt install wget -y
# Скачиваем скрипт установки Metasploit-Framework:
wget https://gist.githubusercontent.com/numbnet/16283d639aa316c8a1925c779dbd225c/raw/e7d60e3720df67a7091a2c572dff1ea422a7fbf8/metasploit.sh
# Запуск скрипт установки:
chmod +x metasploit.sh
bash metasploit.sh
# Переходим в папку с установленным Metasploit:
cd metasploit-framework
# Запускаем msfconsole!:
./msfconsole
}
installmetasplout
;;
4) # Установка Tmux-Bunch в termux:
sleep 5
cd $HOME
apt install axel -y
# axel https://github.com/Hax4us/Tmux-Bunch/releases/download/v2.7/Tmux-Bunch-2.7.tar.gz
axel https://github.com/numbnet/Tmux_Bunch/releases/download/v2.7/Tmux-Bunch-2.7.tar.gz
tar -xf Tmux-Bunch-2.7.tar.gz
cd Tmux-Bunch
bash setup
# Теперь запускаем из любого каталога
tmuxbunch
# =========END========== #
;;
5) # Установка Tmux:
function installtmux {
cd $HOME
pkg install tmux -y
tmux
echo "# P.s: шпора по tmux:"
echo "#> https://habr.com/post/126996"
sleep 5
echo "# =========END========= #"
};
installtmux
;;
6) # Полный фарш на termux для Python:
function installpython {
sleep 5
cd $HOME
pkg install micro python python2 nano -y
pkg install python -y || pkg reinstall python -y
pkg install python2 -y || pkg reinstall python2 -y
echo hello > test.py
./test.py
echo "# =========END========= #"
}
installpython
;;
7) # Установка Kali
function installkali {
sleep 5
## у кого активировано su в Termux ##
cd $HOME
curl -LO https://raw.githubusercontent.com/Hax4us/Nethunter-In-Termux/master/kalinethunter
chmod +x kalinethunter # tsudo chmod +x kalinethunter
./kalinethunter --insecure # tsudo ./kalinethunter --insecure
#запускаем Kali:
startkali # tsudo startkali
# wget https://http.kali.org/kali/pool/main/k/kali-archive-keyring/kali-archive-keyring_2018.1_all.deb
# apt install ./kali-archive-keyring_2018.1_all.deb
wget https://http.kali.org/pool/main/k/kali-archive-keyring/kali-archive-keyring_2020.2_all.deb
apt install ./kali-archive-keyring_2020.2_all.deb
apt-get update
apt-get install lxde-core lxde kali-defaults kali-root-login desktop-base
# удаляет старые пакеты:
apt-get autoremove
# чистит кэш:
apt-get clean
apt-get install tightvncserver
#После этих команд выполните:
vncserver :1 -geometry 700x1400 -dpi 320
###############
## Только замените на своё разрешение экрана. потом введите пароль любой, нажмите enter и повтори пароль, потом нажми - Y/N Спрашивает нужен ли пароль для режима "просмотр" Y или N, решать Вам!
################
#Если ввели не верные значения, то:
# vncserver -kill :1
#И снова введите, но уже с изменёнными значениями
# vncserver :1 -geometry 720x1420 -dpi 120
#Включаем VNC:
# установлена bVNC и выглядят настройки так
#Вход из под Termux:
# startkali # tsudo startkali
#Запуск:
# vncserver :1 -geometry 240x320 -dpi
#(Где YYY, QQQ, NNN - Ваши значения)
#Выключение:
# vncserver -kill :1
#Выход в Termux:
# logout
# =========END========= #
}
installkali
;;
8) # Установка instainsane в termux/nethunter (Брут Instagram)
# Установить в termux kali
installkali
# В termuxe
startkali
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. И можем брутить с мобильного интернета.
9) # Java
apt update && apt upgrade
pkg install git wget -y
cd $HOME && git clone https://github.com/numbnet/Termux-Java-Install.git
cd ~/Termux-Java-Install && chmod +x *java*
bash installjava
## Remove
# cd ~/Termux-Java-Install && bash uninstall_java.sh
echo "==END install Java=="
;;
10)cd $HOME
echo "You chose Option $n"
;;
11)cd $HOME
echo "You chose Option $n"
;;
12)cd $HOME
echo "You chose Option $n"
;;
*)cd $HOME
echo "Exit"
;;
esac
#!/bin/sh startTERMUX.sh
#########################################
## START First install termux
#########################################
sleep 5
cd $HOME
apt update -y && apt upgrade -y
pkg install curl wget git micro openssl openssh ncurses-utils -y
function activateroot {
## Eсть root,но не активирован: ###
cd $HOME
pkg install tsu
tsudo
}
# Активация root
activateroot
# Эмуляция рут прав
pkg install fakeroot
fakeroot
# Исправлееия розрешения
uid=$(id -u)
su -c chown -R $uid:$uid /data/data/com.termux/ && su -c restorecon -RF /data/data/com.termux
################# -END- #################
#########################################
## Кастомизации termux
## выполняем под обычным пользователем
#########################################
sleep 5
cd $HOME
apt install zsh micro wget curl
sh -c "$(curl -fsSL https://github.com/Cabbagec/termux-ohmyzsh/raw/master/install.sh)"
git clone https://github.com/Bhai4You/Termux-Banner
cd Termux-Banner/zsh
chmod +x requirement.sh t-ban.sh
bash requirement.sh
bash t-ban.sh
chsh -s zsh
echo "Kastomization is end"
################# -END- #################
#########################################
## Прикручивать плюшки к shell zsh:
#########################################
sleep 5
cd $HOME
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
wget https://pastebin.com/raw/yJpsDYKM
cat yJpsDYKM > .zshrc
################# -END- #################
#########################################
## Установка DarkFly в termux(tools 500+)
## Множество разных инструментов:
#########################################
sleep 5
cd $HOME
pkg install -y python2 git php
git clone https://github.com/Ranginang67/DarkFly-Tool
cd DarkFly-Tool
chmod +x install.py
python2 install.py
echo "Меню установщика запускаем командой: DarkFly"
# DarkFly
#*********** -END- ***********#
#!/data/data/com.termux/files/usr/bin/bash
##
## Backup and restore Termux ($HOME or $PREFIX) via restic.
## Dependencies: bash, busybox, grep, openssh (optional), restic
##
set -e -u
# Resetting Termux-specific variables to make sure that they are correct.
export HOME="/data/data/com.termux/files/home"
export PREFIX="/data/data/com.termux/files/usr"
# Default configuration.
PROCESS_HOME=false
RESTORE_MODE=false
SNAPSHOT_TO_RESTORE=latest
# Set tags used for backups.
: "${TERMUX_PREFIX_TAG:="termux"}"
: "${TERMUX_HOME_TAG:="termux-home"}"
# Lock terminal.
block_terminal() {
stty -echo -icanon time 0 min 0
stty intr undef quit undef susp undef
}
# Unlock terminal.
unblock_terminal() {
while read -r; do
true;
done
stty sane
}
##======================
## restore
perform_restore() {
local prefix_tmp_dir home_tmp_dir
if "$PROCESS_HOME"; then
echo "[*] Fetching data of snapshot '$SNAPSHOT_TO_RESTORE' with tag '$TERMUX_HOME_TAG'..." >&2
home_tmp_dir=$(mktemp -d -p "/data/data/com.termux/files" "restore.XXXXXXXX")
trap "rm -rf "$home_tmp_dir" > /dev/null 2>&1" INT QUIT EXIT
if ! restic restore --tag "$TERMUX_HOME_TAG" --target "$home_tmp_dir" "$SNAPSHOT_TO_RESTORE"; then
exit 1
fi
trap - INT QUIT EXIT
else
echo "[*] Fetching data of snapshot '$SNAPSHOT_TO_RESTORE' with tag '$TERMUX_PREFIX_TAG'..." >&2
prefix_tmp_dir=$(mktemp -d -p "/data/data/com.termux/files" "restore.XXXXXXXX")
trap "rm -rf "$prefix_tmp_dir" > /dev/null 2>&1" INT QUIT EXIT
if ! restic restore --tag "$TERMUX_PREFIX_TAG" --target "$prefix_tmp_dir" "$SNAPSHOT_TO_RESTORE"; then
exit 1
fi
trap - INT QUIT EXIT
fi
# Actual restoring is done in subshell since variables
# like PATH may be changed in some steps.
# Terminal is locked here so text input, ctrl-c
# or similar are not working here.
block_terminal
(
if "$PROCESS_HOME"; then
cd "/data/data/com.termux/files" > /dev/null 2>&1 || true
echo -n "[*] Removing old \$HOME... " >&2
chmod -R 700 "$HOME" > /dev/null 2>&1 || true
if rm -rf "$HOME" > /dev/null 2>&1; then
echo "ok" >&2
else
echo "fail" >&2
unblock_terminal
echo "[!] Something went wrong and your \$HOME is inconsistent now." >&2
exit 1
fi
echo -n "[*] Creating new \$HOME... " >&2
if mv "$home_tmp_dir/$HOME" "$HOME" > /dev/null 2>&1; then
echo "ok" >&2
else
echo "fail" >&2
unblock_terminal
echo "[!] Something went wrong and your \$HOME is inconsistent now." >&2
exit 1
fi
# Remove home restore directory.
rm -rf "$home_tmp_dir" > /dev/null 2>&1 || true
else
# Use failsafe environment.
export PATH="/system/bin:/system/xbin"
unset LD_PRELOAD LD_LIBRARY_PATH
hash -r
# Delete prefix.
echo -n "[*] Removing old \$PREFIX... " >&2
chmod -R 700 "$PREFIX" > /dev/null 2>&1 || true
if rm -rf "$PREFIX" > /dev/null 2>&1; then
echo "ok" >&2
else
echo "fail" >&2
echo "[!] Something went wrong and your \$PREFIX is broken now." >&2
exit 1
fi
# Move restored prefix to the correct location.
echo -n "[*] Creating new \$PREFIX... " >&2
if mv "$prefix_tmp_dir/$PREFIX" "$PREFIX" > /dev/null 2>&1; then
echo "ok" >&2
else
echo "fail" >&2
echo "[!] Something went wrong and your \$PREFIX is broken now." >&2
exit 1
fi
# Remove prefix restore directory.
rm -rf "$prefix_tmp_dir" > /dev/null 2>&1 || true
fi
)
unblock_terminal
echo "[*] Finished." >&2
}
##=======================
##
perform_backup() {
if "$PROCESS_HOME"; then
echo "[*] Backing up Termux home..." >&2
if ! restic backup --tag termux-home \
--exclude="$HOME/.ICEauthority" \
--exclude="$HOME/.Xauthority" \
--exclude="$HOME/.cache" \
--exclude="$HOME/.cargo" \
--exclude="$HOME/.*_history" \
--exclude="$HOME/.lesshst" \
--exclude="$HOME/.tor/cached-*" \
--exclude="$HOME/.tor/diff" \
--exclude="$HOME/.tor/lock" \
--exclude="$HOME/.tor/state" \
--exclude="$HOME/.zhistory" \
--exclude="$HOME/.wget-hsts" \
--exclude="$HOME/storage" \
"$HOME"; then
return 1
fi
else
echo "[*] Backing up Termux prefix..." >&2
if ! restic backup --tag termux \
--exclude="$PREFIX/lib/python*/**/__pycache__" \
--exclude="$PREFIX/lib/python*/**/*.pyc" \
--exclude="$PREFIX/lib/python*/**/*.pyo" \
--exclude="$PREFIX/tmp/*" \
--exclude="$PREFIX/var/android/*" \
--exclude="$PREFIX/var/cache/apt/*" \
--exclude="$PREFIX/var/lib/apt/lists/*" \
--exclude="$PREFIX/var/lib/clamav/*" \
--exclude="$PREFIX/var/lib/nginx/client-body/*" \
--exclude="$PREFIX/var/lib/nginx/fastcgi/*" \
--exclude="$PREFIX/var/lib/nginx/proxy/*" \
--exclude="$PREFIX/var/lib/nginx/scgi/*" \
--exclude="$PREFIX/var/lib/nginx/uwsgi/*" \
--exclude="$PREFIX/var/lib/tor/cached-*" \
--exclude="$PREFIX/var/lib/tor/diff" \
--exclude="$PREFIX/var/lib/tor/lock" \
--exclude="$PREFIX/var/lib/tor/state" \
--exclude="$PREFIX/var/run/*.pid" \
--exclude="$PREFIX/var/run/*.sock" \
"$PREFIX"; then
exit 1
fi
fi
echo "[*] Finished." >&2
}
##===========================
##
show_usage() {
{
echo
echo "Usage: termux-backup [OPTIONS]"
echo
echo "Termux backup/restore frontend for Restic."
echo
echo "Options:"
echo
echo " --home"
echo
echo " Backup or restore home directory"
echo " instead of prefix."
echo
echo " -r, --restore (snapshot)"
echo
echo " Enable restore mode. Will completely"
echo " overwrite files by ones from backup."
echo
echo " You can restore a specific snapshot if its"
echo " name (hash) was specified. If not, a latest"
echo " snapshot will be used."
echo
echo " -h, --help"
echo
echo " Show this help message."
echo
echo "Credentials are specified via environment"
echo "variables:"
echo
echo " RESTIC_REPOSITORY - backup repository location."
echo " RESTIC_PASSWORD - encryption password."
echo
echo "You can override tag names by these environment"
echo "variables:"
echo
echo " TERMUX_HOME_TAG - home backup tag."
echo " TERMUX_PREFIX_TAG - prefix backup tag."
echo
echo "Instead of specifying variables globally, you can"
echo "define them in script file '~/.restic_env'."
echo
} >&2
}
while (($# > 0)); do
case "$1" in
--home)
PROCESS_HOME=true
;;
-h|--help)
show_usage
exit 0
;;
-r|--restore)
RESTORE_MODE=true
if [ $# -gt 1 ] && [[ $2 != -* ]]; then
SNAPSHOT_TO_RESTORE=$2
shift 1
if ! grep -qP '^(?:[a-f0-9]{8,64}|latest)$' <(echo "$SNAPSHOT_TO_RESTORE"); then
{
echo "[!] Invalid snapshot ID specified."
echo
echo " Valid snapshot ID consist of 8-64 lowercase"
echo " letters from range [a-f] and numbers [0-9]."
echo
echo " If you specify snapshot ID as 'latest', then"
echo " latest snapshot will be used."
echo
} >&2
exit 1
fi
fi
;;
*)
if [[ $1 == -* ]]; then
echo "[!] Invalid option '$1'." >&2
else
echo "[!] Unexpected argument '$1'." >&2
fi
show_usage
exit 1
;;
esac
shift 1
done
if [ -z "$(command -v restic)" ]; then
echo "[!] Error: restic is not installed." >&2
exit 1
fi
if [ -r "$HOME/.restic_env" ]; then
. "$HOME/.restic_env"
fi
if [ -z "$RESTIC_REPOSITORY" ]; then
echo "[!] Error: variable 'RESTIC_REPOSITORY' is not set." >&2
exit 1
fi
if [ -z "$RESTIC_PASSWORD" ]; then
echo "[!] Error: variable 'RESTIC_PASSWORD' is not set." >&2
exit 1
fi
if "$RESTORE_MODE"; then
if "$PROCESS_HOME"; then
echo "[!] Restoring mode will overwrite all your data in \$HOME." >&2
else
echo "[!] Restoring mode will overwrite all your data in \$PREFIX." >&2
fi
read -re -p "[@] Do you want to proceed ? (YES/no): " CHOICE >&2
if [ "$CHOICE" != "YES" ]; then
echo "[!] Aboring restore." >&2
exit 1
fi
unset CHOICE
perform_restore
else
perform_backup
fi
NAME="termux.properties.sh"
title="termux.properties"
mkdir -p ~/.termux
cat <<EOF > $HOME/.termux/$title
## Черный стиль интерфейса
use-black-ui = true
##============ ≠≠≠ ============
## Установка комбинаций клавиш для управления сессиями
## Создать новую сессию при помощи ctrl + t (Ум. громкость + t)
shortcut.create-session = ctrl + t
## Переключиться на следующую при помощи ctrl + 2
shortcut.next-session = ctrl + 2
## Переключится на предыдущую сессию при помощи ctrl + 1
shortcut.previous-session = ctrl + 1
## Переименовать текущую сессию при помощи ctrl + n
shortcut.rename-session = ctrl + n
##============ ≠≠≠ ============
## Поведение символа гудка
# Вибрация (default).
bell-character=vibrate
# Звук.
bell-character=beep
# Игнорировать.
bell-character=ignore
##============ ≠≠≠ ============
## Поведение кнопки "назад"
# Послать Escape.
back-key=escape
# Убрать клавиатуру или выйти из приложения.
back-key=back
EOF
termux-reload-settings
Перед работай с termux выполняем команды:
apt update && apt upgrade -y
pkg install curl wget git micro openssl openssl-dev ncurses-utils -y
У кого есть root, выполняем:
pkg install tsu
Эмуляция рут прав
pkg install fakeroot
fakeroot
Фикс исправления прав, если установили или обновились через tsu или tsudo
uid=$(id -u)
su -c chown -R $uid:$uid /data/data/com.termux/ && su -c restorecon -RF /data/data/com.termux
 # 
Кастомизации Termux
Приступаем к кастомизации нашего termux, все действия выполняем под обычным пользователем не под root
Все шаги выполняем по порядку:
1)
apt install zsh micro wget curl
2)
sh -c "$(curl -fsSL https://github.com/Cabbagec/termux-ohmyzsh/raw/master/install.sh)"
3)
git clone https://github.com/Bhai4You/Termux-Banner
4)
cd Termux-Banner/zsh
5)
chmod +x requirement.sh t-ban.sh
6)
bash requirement.sh
7)
bash t-ban.sh
После последнего действия необходимо прописать свой никнейм или же любое слово которое будет под самим изображением
Затем прописывайте то что будет написанно с верху маленьким шрифтом.
8)
chsh -s zsh
Открываем новую сессию, и наблюдаем новые изменения.
 # 
На этом внешняя кастомизация закончена.
Теперь начинаем прикручивать плюшки к shell zsh:
1)
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
2)
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
3) Идем на пасту то есть сюда https://pastebin.com/qjqJ8E5q
и копируем настройки
4) В termux вводим
cd $HOME && micro .zshrc
5) Удалем все настройки которые по дефолту, чтоб быстрей удалить, выполните команду в termux
"" > .zshrc
Или
echo "" > .zshrc
Таким образом мы разом очистим файл с конфигами.
6) Теперь вставьте скопированные настройки в .zshrc и нажмите ctrl + s и ctrl + q (Всё мы сохранили и вышли)
Теперь вам доступны такие команды как:
google текст поиска
Открывает браузер с вашим запросом в google
lcd path/to/dir
переходит в каталог и сразу показывает файлы == cd && ls
Чтоб поменять цвет
~/.termux/colors.sh
Чтоб поменять шрифт
~/.termux/fonts.sh
Ну вот и всё готово, теперь открываем новую сессию и пользуемся... Удачи!
 # 
Установка instainsane в termux/nethunter (Брут Instagram)
Установка instainsane в termux/nethunter (брут Instagram):
1) Установить в termux kali
2) В termuxe
startkali
3)
git clone https://github.com/thelinuxchoice/instainsane
4)
cd instainsane
5)
chmod +x instainsane.sh install.sh
6)
./install.sh
7) Теперь запускаем
./instainsane.sh
P.s. Брут работает только через WiFi, но есть способ обхода и теперь можно брутить с мобильного интернета, правда не всегда успешно коннектиться.
Ну а теперь сам метод:
1) Скачиваем Orbot (tor для мобилы)
2) Запускаем Orbot, снизу нажимаем шестеренку, выбираем termux, возвращаемся назад, нажимаем луковицу, ждём подключения и затем уже нажимаем VPN.
3) Вот и все теперь весь трафик termuxa будет проходить через Tor. И можем брутить с мобильного интернета.
 # 
Установка DarkFly (tools 500+)
Установка DarkFly в termux (tools 500+)
Множество разных инструментов:
1)
pkg install python2
2)
pkg install git
3)
pkg install php
4)
git clone https://github.com/Ranginang67/DarkFly-Tool
5)
cd DarkFly-Tool
6)
chmod +x install.py
7)
python2 install.py
8) Меню установщика запускаем командой
DarkFly
 # 
Установка metasploit в Termux
Установка metasploit в termux:
pkg install unstable-repo && pkg install metasploit
 # 
Установка Tmux-Bunch в termux (аналог apktool)
Установка Tmux-Bunch в termux:
1)
cd $HOME
2)
apt install axel
3)
axel https://github.com/Hax4us/Tmux-Bunch/releases/download/v2.7/Tmux-Bunch-2.7.tar.gz
4)
tar -xf Tmux-Bunch-2.7.tar.gz
5)
cd Tmux-Bunch
6)
bash setup
7) Теперь запускаем из любого каталога
tmuxbunch
P.s. Во время установки могут появляться не значительные ошибки, просто не обращаем внимание на них.
 # 
Установка Tmux (менеджер терминалов, работа в нескольких окнах одновременно)
Установка Tmux:
1)
pkg install tmux -y
2)
tmux
P.s: шпора по tmux:
https://habr.com/post/126996/
 # 
Всё для работы с Python
Полный фарш на termux для Python:
pkg install micro python python2
pip install bpython ipython
micro test.py
И начинаем кодить.
Предупреждение!
Установка долгая!
 # 
Установка Kali
 # 
Для тех, у кого активировано su в Termux
1)
curl -LO https://raw.githubusercontent.com/Hax4us/Nethunter-In-Termux/master/kalinethunter
2)
tsudo chmod +x kalinethunter
3)
tsudo ./kalinethunter --insecure
4) запускаем Kali:
tsudo startkali
5)
wget https://http.kali.org/kali/pool/main/k/kali-archive-keyring/kali-archive-keyring_2018.1_all.deb
6)
apt install ./kali-archive-keyring_2018.1_all.deb
7)
apt-get update
8)
apt-get install lxde-core lxde kali-defaults kali-root-login desktop-base
Девятая команда удаляет старые пакеты, десятая команда чистит кэш:
9)
apt-get autoremove
10)
apt-get clean
11)
apt-get install tightvncserver
12) После этих команд выполните:
vncserver :1 -geometry 700x1400 -dpi 120
Только замените на своё разрешение экрана.
13) потом введите пароль любой, нажмите enter и повтори пароль, потом нажми - Y/N
Спрашивает нужен ли пароль для режима "просмотр"
Y или N, решать Вам!
Зы:
Если ввели не верные значения, то:
vncserver -kill :1
И снова введите, но уже с изменёнными значениями
vncserver :1 -geometry 720x1420 -dpi 120
14) Включаем VNC:
У меня установлена программа bVNC и выглядят настройки так
 # 
Выхлоп:
 # 
15) На всякий...
Вход из под Termux:
tsudo startkali
Запуск:
vncserver :1 -geometry YYYxQQQ -dpi NNN
(Где YYY, QQQ, NNN - Ваши значения)
Выключение:
vncserver -kill :1
Выход в Termux:
logout
 # 
Для тех, у кого есть root права, но они не активированы в Termux
1)
pkg install tsu
2)
tsudo
И выполняем все перечисленные действия из спойлера - выше.
 # 
Скрины
 # 
Java в termux
Инструкция по установке Java в termux
apt update && apt upgrade
apt install git
git clone https://github.com/Hax4us/java
mv java/openjdk/java /data/data/com.termux/files/usr/bin
chmod +x /data/data/com.termux/files/home/java/openjdk/bin/java
На Андроиде 9 могут быть проблемы (пробуйте)
#!/bin/bash
cd $HOME
apt update && apt install wget && wget https://github.com/numbnet/Termux-ADB/raw/master/InstallTools.sh && bash InstallTools.sh
##============ ≠≠≠ ============
## Установка Tmux:
installtmux()
{
echo "======== Установка Tmux ========" | sleep 3;
cd $HOME
pkg install tmux -y
tmux
}
##================= ≠≠≠ =================
while true; do
read -e -p "install kastom (y/n)? " rsn
case $rsn in
[Yy]*) ## Install Kastom Settings
installtmux;
break
;;
[Nn]*) ## NO Install
break;
esac
done;
exit;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment