From 2b44dae045d468dd3ba1a873ce166859bbb07934 Mon Sep 17 00:00:00 2001 From: YAWAsau <229953100a@gmail.com> Date: Fri, 26 Nov 2021 21:00:35 +0800 Subject: [PATCH] bug fix --- tools/bin/bin.sh | 155 ++--------------------------------------------- tools/bin/update | 150 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 156 insertions(+), 149 deletions(-) create mode 100644 tools/bin/update diff --git a/tools/bin/bin.sh b/tools/bin/bin.sh index 2706d9b..537242c 100644 --- a/tools/bin/bin.sh +++ b/tools/bin/bin.sh @@ -18,7 +18,7 @@ if [[ -d $(magisk --path 2>/dev/null) ]]; then else echo "Magisk busybox Path does not exist" fi ; export PATH="$PATH" -backup_version="V12.3" +backup_version="V12.2" #設置二進制命令目錄位置 [[ $bin_path = "" ]] && echo "未正確指定bin.sh位置" && exit 2 #bin_path="${bin_path/'/storage/emulated/'/'/data/media/'}" @@ -30,6 +30,7 @@ busybox2="$bin_path/busybox" #排除自身 exclude=" busybox_path +update bin.sh" if [[ ! -d $filepath ]]; then mkdir -p "$filepath" @@ -157,152 +158,8 @@ echo_log() { echoRgb "$1失敗,過世了" "0" ; Print "$1失敗,過世了" ; result=1 fi } -LANG="$(getprop "persist.sys.locale")" -if [[ $LANG != "" ]]; then - case $LANG in - *-TW|*-tw) - echoRgb "系統語系:繁體中文" - Language="https://api.github.com/repos/YAWAsau/backup_script/releases/latest" ;; - *-CN|*-cn) - echoRgb "系統語系:簡體中文" - Language="https://api.github.com/repos/Petit-Abba/backup_script_zh-CN/releases/latest" ;; - * ) - echoRgb "$LANG不支持 默認簡體中文" "0" - Language="https://api.github.com/repos/Petit-Abba/backup_script_zh-CN/releases/latest" ;; - esac +if [[ -f $bin_path/update ]]; then + . "$bin_path/update" else - echoRgb "獲取系統語系失敗 默認簡體中文" "0" - Language="https://api.github.com/repos/Petit-Abba/backup_script_zh-CN/releases/latest" -fi -down -s -L "$Language" 2>/dev/null >"$bin_path/json" -Open_apps="$(appinfo -o ands -ta c)" -bn=147 -echoRgb "\n --------------歡迎使用⚡️🤟🐂纸備份--------------\n -當前腳本執行路徑:$MODDIR\n -busybox路徑:$(which busybox)\n -busybox版本:$(busybox | head -1 | awk '{print $2}')\n -appinfo版本:$(appinfo --version)\n -腳本版本:$backup_version\n -設備架構$abi\n -品牌:$(getprop ro.product.brand)\n -設備代號:$(getprop ro.product.device)\n -型號:$(getprop ro.product.model)\n -Android版本:$(getprop ro.build.version.release)\n -SDK:$(getprop ro.build.version.sdk)\n -終端:$Open_apps" -bn=195 -if [[ $script != "" && $(pgrep -f "$script" | grep -v grep | wc -l) -ge 2 ]]; then - echoRgb "檢測到進程殘留,請重新執行腳本 已銷毀進程" "0" - pgrep -f "$script" | grep -v grep | while read i; do - [[ $i != "" ]] && kill -9 " $i" >/dev/null - done -fi -if [[ $(pm path ice.message) = "" ]]; then - echoRgb "未安裝toast 開始安裝" "0" - cp -r "${bin_path%/*}/apk"/*.apk "$TMPDIR" && pm install --user 0 -r "$TMPDIR"/*.apk &>/dev/null && rm -rf "$TMPDIR"/* - [[ $? = 0 ]] && echoRgb "安裝toast成功" "1" || echoRgb "安裝toast失敗" "0" -fi -zippath="$(find "$MODDIR" -maxdepth 1 -name "*.zip" -type f)" -#sed -r -n 's/.*"browser_download_url": *"(.*)".*/\1/p' -#sed -r -n 's/.*"browser_download_url": *"(.*-linux64\..*\.so\.bz2)".*/\1/p' -if [[ -f $bin_path/json && $(cat "$bin_path/json") != "" ]]; then - tag="$(cat "$bin_path/json" | jq -r '.tag_name')" - download="$(cat "$bin_path/json" | sed -r -n 's/.*"browser_download_url": *"(.*.zip)".*/\1/p')" - if [[ $tag != "" ]]; then - if [[ $backup_version != $tag ]]; then - echoRgb "發現新版本 從GitHub更新 版本:$tag\n -更新日誌:\n$(cat "$bin_path/json" | jq -r '.body')" - down -s -L -o "$MODDIR/$tag.zip" "https://gh.api.99988866.xyz/$download" - echo_log "下載${download##*/}" - if [[ $result = 0 ]]; then - zippath="$(find "$MODDIR" -maxdepth 1 -name "*.zip" -type f)" - GitHub="true" - else - echoRgb "請手動將備份腳本壓縮包放置在\n -$MODDIR後再次執行腳本進行更新" "0" - fi - else - echoRgb "本地版本:$backup_version 線上版本:$tag 版本一致無須更新" - fi - fi - rm -rf "$bin_path/json" -else - echoRgb "更新獲取失敗" "0" -fi -if [[ $zippath != "" ]]; then - case $(echo "$zippath" | wc -l) in - 1) - [[ $GitHub != true ]] && echoRgb "從$zippath更新" - if [[ $(unzip -l "$zippath" | awk '{print $4}' | grep -oE "^backup_settings.conf$") = "" ]]; then - echoRgb "${zippath##*/}並非指定的備份zip,請刪除後重新放置\n -何謂更新zip? 就是GitHub release頁面下載的zip" "0" - else - cp -r "$tools_path" "$TMPDIR" && rm -rf "$tools_path" - find "$MODDIR" -maxdepth 3 -name "*.sh" -type f -exec rm -rf {} \; - unzip -o "$zippath" -d "$MODDIR" - echo_log "解壓縮${zippath##*/}" - if [[ $result = 0 ]]; then - case $MODDIR in - *Backup_*) - if [[ -f $MODDIR/app_details ]]; then - mv "$MODDIR/tools" "${MODDIR%/*}" - echoRgb "更新當前${MODDIR##*/}目錄下恢復相關腳本+外部tools目錄" - cp -r "$tools_path/script/Get_DirName" "${MODDIR%/*}/掃描資料夾名.sh" - cp -r "$tools_path/script/restore" "${MODDIR%/*}/還原備份.sh" - [[ -d ${MODDIR%/}/媒體 ]] && cp -r "$tools_path/script/restore3" "${MODDIR%/*}/媒體/恢復多媒體數據.sh" - . "$MODDIR/app_details" - if [[ $PackageName != "" ]]; then - cp -r "$tools_path/script/restore2" "$MODDIR/還原備份.sh" - else - cp -r "$tools_path/script/restore3" "${MODDIR%/*}/媒體/恢復多媒體數據.sh" - fi - if [[ -d ${MODDIR%/*/*}/tools && -f ${MODDIR%/*/*}/備份應用.sh ]]; then - echoRgb "更新${MODDIR%/*/*}/tools與備份相關腳本" - rm -rf "${MODDIR%/*/*}/tools" - find "${MODDIR%/*/*}" -maxdepth 1 -name "*.sh" -type f -exec rm -rf {} \; - mv "$MODDIR/backup_settings.conf" "$MODDIR/備份應用.sh" "$MODDIR/生成應用列表.sh" "${MODDIR%/*/*}" - cp -r "$tools_path" "${MODDIR%/*/*}" - fi - else - echoRgb "更新當前${MODDIR##*/}目錄下恢復相關腳本+tools目錄" - cp -r "$tools_path/script/Get_DirName" "$MODDIR/掃描資料夾名.sh" - cp -r "$tools_path/script/restore" "$MODDIR/還原備份.sh" - [[ -d $MODDIR/媒體 ]] && cp -r "$tools_path/script/restore3" "$MODDIR/媒體/恢復多媒體數據.sh" - find "$MODDIR" -maxdepth 1 -type d | sort | while read; do - if [[ -f $REPLY/app_details ]]; then - unset PackageName - . "$REPLY/app_details" - [[ $PackageName != "" ]] && cp -r "$tools_path/script/restore2" "$REPLY/還原備份.sh" - fi - done - if [[ -d ${MODDIR%/*}/tools && -f ${MODDIR%/*}/備份應用.sh ]]; then - echoRgb "更新${MODDIR%/*}/tools與備份相關腳本" - rm -rf "${MODDIR%/*}/tools" - find "${MODDIR%/*}" -maxdepth 1 -name "*.sh" -type f -exec rm -rf {} \; - mv "$MODDIR/backup_settings.conf" "$MODDIR/備份應用.sh" "$MODDIR/生成應用列表.sh" "${MODDIR%/*}" - cp -r "$tools_path" "${MODDIR%/*}" - fi - fi - rm -rf "$tools_path/script" "$MODDIR/backup_settings.conf" "$MODDIR/備份應用.sh" "$MODDIR/生成應用列表.sh" ;; - *) - if [[ $(find "$MODDIR" -maxdepth 1 -name "Backup_*" -type d) != "" ]]; then - find "$MODDIR" -maxdepth 1 -name "Backup_*" -type d | while read backup_path; do - if [[ -d $backup_path && $backup_path != $MODDIR ]]; then - echoRgb "更新當前目錄下備份相關腳本&tools目錄+${backup_path##*/}內tools目錄+恢復腳本+tools" - cp -r "$tools_path" "$backup_path" && rm -rf "$backup_path/tools/bin/zip" "$backup_path/tools/script" - cp -r "$tools_path/script/restore" "$backup_path/還原備份.sh" - cp -r "$tools_path/script/Get_DirName" "$backup_path/掃描資料夾名.sh" - [[ -d $backup_path/媒體 ]] && cp -r "$tools_path/script/restore3" "$backup_path/媒體/恢復多媒體數據.sh" - find "$MODDIR" -maxdepth 2 -type d | sort | while read; do - if [[ -f $REPLY/app_details ]]; then - unset PackageName - . "$REPLY/app_details" - [[ $PackageName != "" ]] && cp -r "$tools_path/script/restore2" "$REPLY/還原備份.sh" - fi - done - fi - done - else - echoRgb "更新當前${MODDIR##*/}目錄下備份相關腳本+tools目錄" - fi ;; - esac - else - cp -r "$TMPDIR/tools" "$MODDIR" - fi - rm -rf "$TMPDIR"/* - find "$MODDIR" -maxdepth 1 -name "*.zip" -type f -exec rm -rf {} \; - echoRgb "更新完成 請重新執行腳本" "2" && exit - fi ;; - *) - echoRgb "錯誤 請刪除當前目錄多餘zip\n -保留一個最新的數據備份.zip\n -下列為當前目錄zip\n$zippath" "0" && exit 1 ;; - esac -fi -#down -s -L "https://magisk-modules-repo.github.io/submission/modules.json" | jq -r '.modules[] | {id,prop_url,zip_url}' -#down -s -L "https://magisk-modules-repo.github.io/submission/modules.json" | jq -r '.modules[].zip_url' | egrep -w "riru_lsposed|busybox-ndk|riru_storage_redirect|riru-core|HideNavBar" | while read; do -# down -s -L -o "$MODDIR/${REPLY##*/}" "$REPLY" -#done \ No newline at end of file + echoRgb "更新腳本遺失 無法自動檢查更新" "0" +fi \ No newline at end of file diff --git a/tools/bin/update b/tools/bin/update new file mode 100644 index 0000000..ec4a969 --- /dev/null +++ b/tools/bin/update @@ -0,0 +1,150 @@ +[ "$bin_path" = "" ] && echo "未指定bin_path" && exit +LANG="$(getprop "persist.sys.locale")" +if [[ $LANG != "" ]]; then + case $LANG in + *-TW|*-tw) + echoRgb "系統語系:繁體中文" + Language="https://api.github.com/repos/YAWAsau/backup_script/releases/latest" ;; + *-CN|*-cn) + echoRgb "系統語系:簡體中文" + Language="https://api.github.com/repos/Petit-Abba/backup_script_zh-CN/releases/latest" ;; + * ) + echoRgb "$LANG不支持 默認簡體中文" "0" + Language="https://api.github.com/repos/Petit-Abba/backup_script_zh-CN/releases/latest" ;; + esac +else + echoRgb "獲取系統語系失敗 默認簡體中文" "0" + Language="https://api.github.com/repos/Petit-Abba/backup_script_zh-CN/releases/latest" +fi +down -s -L "$Language" 2>/dev/null >"$bin_path/json" +Open_apps="$(appinfo -o ands -ta c)" +bn=147 +echoRgb "\n --------------歡迎使用⚡️🤟🐂纸備份--------------\n -當前腳本執行路徑:$MODDIR\n -busybox路徑:$(which busybox)\n -busybox版本:$(busybox | head -1 | awk '{print $2}')\n -appinfo版本:$(appinfo --version)\n -腳本版本:$backup_version\n -設備架構$abi\n -品牌:$(getprop ro.product.brand)\n -設備代號:$(getprop ro.product.device)\n -型號:$(getprop ro.product.model)\n -Android版本:$(getprop ro.build.version.release)\n -SDK:$(getprop ro.build.version.sdk)\n -終端:$Open_apps" +bn=195 +if [[ $script != "" && $(pgrep -f "$script" | grep -v grep | wc -l) -ge 2 ]]; then + echoRgb "檢測到進程殘留,請重新執行腳本 已銷毀進程" "0" + pgrep -f "$script" | grep -v grep | while read i; do + [[ $i != "" ]] && kill -9 " $i" >/dev/null + done +fi +if [[ $(pm path ice.message) = "" ]]; then + echoRgb "未安裝toast 開始安裝" "0" + cp -r "${bin_path%/*}/apk"/*.apk "$TMPDIR" && pm install --user 0 -r "$TMPDIR"/*.apk &>/dev/null && rm -rf "$TMPDIR"/* + [[ $? = 0 ]] && echoRgb "安裝toast成功" "1" || echoRgb "安裝toast失敗" "0" +fi +zippath="$(find "$MODDIR" -maxdepth 1 -name "*.zip" -type f)" +#sed -r -n 's/.*"browser_download_url": *"(.*)".*/\1/p' +#sed -r -n 's/.*"browser_download_url": *"(.*-linux64\..*\.so\.bz2)".*/\1/p' +if [[ -f $bin_path/json && $(cat "$bin_path/json") != "" ]]; then + tag="$(cat "$bin_path/json" | jq -r '.tag_name')" + download="$(cat "$bin_path/json" | sed -r -n 's/.*"browser_download_url": *"(.*.zip)".*/\1/p')" + if [[ $tag != "" ]]; then + if [[ $backup_version != $tag ]]; then + echoRgb "發現新版本 從GitHub更新 版本:$tag\n -更新日誌:\n$(cat "$bin_path/json" | jq -r '.body')" + down -s -L -o "$MODDIR/$tag.zip" "https://gh.api.99988866.xyz/$download" + echo_log "下載${download##*/}" + if [[ $result = 0 ]]; then + zippath="$(find "$MODDIR" -maxdepth 1 -name "*.zip" -type f)" + GitHub="true" + else + echoRgb "請手動將備份腳本壓縮包放置在\n -$MODDIR後再次執行腳本進行更新" "0" + fi + else + echoRgb "本地版本:$backup_version 線上版本:$tag 版本一致無須更新" + fi + fi + rm -rf "$bin_path/json" +else + echoRgb "更新獲取失敗" "0" +fi +if [[ $zippath != "" ]]; then + case $(echo "$zippath" | wc -l) in + 1) + [[ $GitHub != true ]] && echoRgb "從$zippath更新" + if [[ $(unzip -l "$zippath" | awk '{print $4}' | grep -oE "^backup_settings.conf$") = "" ]]; then + echoRgb "${zippath##*/}並非指定的備份zip,請刪除後重新放置\n -何謂更新zip? 就是GitHub release頁面下載的zip" "0" + else + cp -r "$tools_path" "$TMPDIR" && rm -rf "$tools_path" + find "$MODDIR" -maxdepth 3 -name "*.sh" -type f -exec rm -rf {} \; + unzip -o "$zippath" -d "$MODDIR" + echo_log "解壓縮${zippath##*/}" + if [[ $result = 0 ]]; then + case $MODDIR in + *Backup_*) + if [[ -f $MODDIR/app_details ]]; then + mv "$MODDIR/tools" "${MODDIR%/*}" + echoRgb "更新當前${MODDIR##*/}目錄下恢復相關腳本+外部tools目錄" + cp -r "$tools_path/script/Get_DirName" "${MODDIR%/*}/掃描資料夾名.sh" + cp -r "$tools_path/script/restore" "${MODDIR%/*}/還原備份.sh" + [[ -d ${MODDIR%/}/媒體 ]] && cp -r "$tools_path/script/restore3" "${MODDIR%/*}/媒體/恢復多媒體數據.sh" + . "$MODDIR/app_details" + if [[ $PackageName != "" ]]; then + cp -r "$tools_path/script/restore2" "$MODDIR/還原備份.sh" + else + cp -r "$tools_path/script/restore3" "${MODDIR%/*}/媒體/恢復多媒體數據.sh" + fi + if [[ -d ${MODDIR%/*/*}/tools && -f ${MODDIR%/*/*}/備份應用.sh ]]; then + echoRgb "更新${MODDIR%/*/*}/tools與備份相關腳本" + rm -rf "${MODDIR%/*/*}/tools" + find "${MODDIR%/*/*}" -maxdepth 1 -name "*.sh" -type f -exec rm -rf {} \; + mv "$MODDIR/backup_settings.conf" "$MODDIR/備份應用.sh" "$MODDIR/生成應用列表.sh" "${MODDIR%/*/*}" + cp -r "$tools_path" "${MODDIR%/*/*}" + fi + else + echoRgb "更新當前${MODDIR##*/}目錄下恢復相關腳本+tools目錄" + cp -r "$tools_path/script/Get_DirName" "$MODDIR/掃描資料夾名.sh" + cp -r "$tools_path/script/restore" "$MODDIR/還原備份.sh" + [[ -d $MODDIR/媒體 ]] && cp -r "$tools_path/script/restore3" "$MODDIR/媒體/恢復多媒體數據.sh" + find "$MODDIR" -maxdepth 1 -type d | sort | while read; do + if [[ -f $REPLY/app_details ]]; then + unset PackageName + . "$REPLY/app_details" + [[ $PackageName != "" ]] && cp -r "$tools_path/script/restore2" "$REPLY/還原備份.sh" + fi + done + if [[ -d ${MODDIR%/*}/tools && -f ${MODDIR%/*}/備份應用.sh ]]; then + echoRgb "更新${MODDIR%/*}/tools與備份相關腳本" + rm -rf "${MODDIR%/*}/tools" + find "${MODDIR%/*}" -maxdepth 1 -name "*.sh" -type f -exec rm -rf {} \; + mv "$MODDIR/backup_settings.conf" "$MODDIR/備份應用.sh" "$MODDIR/生成應用列表.sh" "${MODDIR%/*}" + cp -r "$tools_path" "${MODDIR%/*}" + fi + fi + rm -rf "$tools_path/script" "$MODDIR/backup_settings.conf" "$MODDIR/備份應用.sh" "$MODDIR/生成應用列表.sh" ;; + *) + if [[ $(find "$MODDIR" -maxdepth 1 -name "Backup_*" -type d) != "" ]]; then + find "$MODDIR" -maxdepth 1 -name "Backup_*" -type d | while read backup_path; do + if [[ -d $backup_path && $backup_path != $MODDIR ]]; then + echoRgb "更新當前目錄下備份相關腳本&tools目錄+${backup_path##*/}內tools目錄+恢復腳本+tools" + cp -r "$tools_path" "$backup_path" && rm -rf "$backup_path/tools/bin/zip" "$backup_path/tools/script" + cp -r "$tools_path/script/restore" "$backup_path/還原備份.sh" + cp -r "$tools_path/script/Get_DirName" "$backup_path/掃描資料夾名.sh" + [[ -d $backup_path/媒體 ]] && cp -r "$tools_path/script/restore3" "$backup_path/媒體/恢復多媒體數據.sh" + find "$MODDIR" -maxdepth 2 -type d | sort | while read; do + if [[ -f $REPLY/app_details ]]; then + unset PackageName + . "$REPLY/app_details" + [[ $PackageName != "" ]] && cp -r "$tools_path/script/restore2" "$REPLY/還原備份.sh" + fi + done + fi + done + else + echoRgb "更新當前${MODDIR##*/}目錄下備份相關腳本+tools目錄" + fi ;; + esac + else + cp -r "$TMPDIR/tools" "$MODDIR" + fi + rm -rf "$TMPDIR"/* + find "$MODDIR" -maxdepth 1 -name "*.zip" -type f -exec rm -rf {} \; + echoRgb "更新完成 請重新執行腳本" "2" && exit + fi ;; + *) + echoRgb "錯誤 請刪除當前目錄多餘zip\n -保留一個最新的數據備份.zip\n -下列為當前目錄zip\n$zippath" "0" && exit 1 ;; + esac +fi +#down -s -L "https://magisk-modules-repo.github.io/submission/modules.json" | jq -r '.modules[] | {id,prop_url,zip_url}' +#down -s -L "https://magisk-modules-repo.github.io/submission/modules.json" | jq -r '.modules[].zip_url' | egrep -w "riru_lsposed|busybox-ndk|riru_storage_redirect|riru-core|HideNavBar" | while read; do +# down -s -L -o "$MODDIR/${REPLY##*/}" "$REPLY" +#done \ No newline at end of file