diff --git a/tools/Device_List b/tools/Device_List index 67f6761..7c78d45 100644 --- a/tools/Device_List +++ b/tools/Device_List @@ -374,7 +374,7 @@ "2409BRN2CC" "Redmi 14C 國行版" "2409BRN2CA" "Redmi 14C 國際版" "2409BRN2CI" "Redmi 14C 印度版" -"2409BRN2CL" "Redmi 14C 拉美版 / 日本版" +"2409BRN2CL" "Redmi 14C 拉美版 / 日韓版" "2409BRN2CY" "Redmi 14C 國際版 (NFC)" "2411DRN47C" "Redmi 14R 5G" "2014018" "紅米 Note 聯通 3G 標準版" @@ -449,7 +449,7 @@ "A001XM" "Redmi Note 9T 5G 日本版 (SoftBank)" "M2007J17C" "Redmi Note 9 Pro 5G 國行版" "M2003J6A1G" "Redmi Note 9S 國際版" -"M2003J6A1R" "Redmi Note 9S 日本版 / Redmi Note 9S 韓國版" +"M2003J6A1R" "Redmi Note 9S 日韓版" "M2003J6A1I" "Redmi Note 9 Pro 印度版" "M2003J6B1I" "Redmi Note 9 Pro Max 印度版" "M2003J6B2G" "Redmi Note 9 Pro 國際版" @@ -585,7 +585,9 @@ "23117RK66C" "Redmi K70 Pro" "2311DRK48C" "Redmi K70E" "2407FRK8EC" "Redmi K70 至尊版" -"24117RK2CC" "Redmi K80" +"24117RK2CC" "REDMI K80" +"24122RKC7C" "REDMI K80 Pro" +"24127RK2CC" "REDMI K80 Pro 冠軍版" "2016020" "紅米 Pro 標準版" "2016021" "紅米 Pro 高配版 / 尊享版" "M1803E6E" "紅米 S2 全網通版" @@ -614,6 +616,7 @@ "24048RN6CI" "Redmi A3x 印度版" "24044RN32L" "Redmi A3x 拉美版" "2409BRN2CG" "Redmi A3 Pro 國際版" +"24116RNC1I" "Redmi A4 5G 印度版" "22081283C" "Redmi Pad 國行版" "22081283G" "Redmi Pad 國際版" "23073RPBFC" "Redmi Pad SE 國行版" @@ -623,7 +626,7 @@ "2405CRPFDC" "Redmi Pad Pro Wi-Fi 國行版" "2405CRPFDG" "Redmi Pad Pro Wi-Fi 國際版" "2405CRPFDI" "Redmi Pad Pro Wi-Fi 印度版" -"2405CRPFDL" "Redmi Pad Pro Wi-Fi 拉美版" +"2405CRPFDL" "Redmi Pad Pro Wi-Fi 拉美版 / 韓國版" "24074RPD2C" "Redmi Pad Pro 5G 國行版" "24074RPD2G" "Redmi Pad Pro 5G 國際版" "24074RPD2I" "Redmi Pad Pro 5G 印度版" @@ -662,6 +665,10 @@ "2311DRK48G" "POCO X6 Pro 5G 國際版" "2311DRK48I" "POCO X6 Pro 5G 印度版" "2312FRAFDI" "POCO X6 Neo 印度版" +"24095PCADG" "POCO X7 國際版" +"24095PCADI" "POCO X7 印度版" +"2412DPC0AG" "POCO X7 Pro 國際版" +"2412DPC0AI" "POCO X7 Pro 印度版" "M2004J19PI" "POCO M2 印度版" "M2003J6CI" "POCO M2 Pro 印度版" "M2010J19CG" "POCO M3 國際版" @@ -701,6 +708,7 @@ "2310FPCA4I" "POCO C65 印度版" "2410FPCC5G" "POCO C75 國際版" "2410FPCC5I" "POCO C75 印度版" +"24116PCC1I" "POCO C75 5G 印度版" "2405CPCFBG" "POCO Pad Wi-Fi 國際版" "24074PCD2I" "POCO Pad 5G 印度版" "FYJ01QP" "小米米家翻譯機" @@ -2228,7 +2236,7 @@ "NX616J" "nubia X" "NX612J" "nubia V18" "NX651J" "nubia Play" -"NX724J" "nubia Flip" +"NX724J" "nubia Flip 5G / nubia Flip 5G S" "NX302J" "nubia 小牛" "NX513J" "nubia My 布拉格 全網通版" "NX513H" "nubia My 布拉格 雙 4G 版" @@ -2241,9 +2249,20 @@ "NX301J" "nubia N5" "nubia 8150N" "nubia Neo 5G" "Z2352N" "nubia Neo 2 5G" +"Z2461" "nubia Neo 3" +"Z2465N" "nubia Neo 3 GT 5G" "Z2353" "nubia Music" -"Z6255CA" "nubia Blade A72" +"Z2460" "nubia Music 2" +"Z2455" "nubia Focus" +"Z2462N" "nubia Focus 2 5G" +"Z2463N" "nubia Focus 2 Ultra 5G" +"Z6255CA" "nubia A75" "nubia 8550" "nubia V50 Vita" +"Z2356" "nubia V60" +"Z2350" "nubia V60 Design" +"Z2459" "nubia V70" +"Z2458" "nubia V70 Design" +"Z2467" "nubia V70 Max" "LPD-20W" "nubia Pad 3D" "NP02J" "nubia Pad 3D II" "NX609J" "紅魔電競遊戲手機" @@ -2478,6 +2497,7 @@ "RMX3700" "真我 GT Neo5 SE" "RMX3852" "真我 GT Neo6" "RMX3850" "真我 GT Neo6 SE" +"RMX5060" "真我 Neo7" "RMX1971" "真我 Q" "RMX2117" "真我 Q2 5G" "RMX2173" "真我 Q2 Pro 5G" @@ -2527,6 +2547,7 @@ "RMX3781" "真我 V50s" "RMX3995" "真我 V60" "RMX3996" "真我 V60s" +"RMX3953" "真我 V60 Pro" "RMP2108" "真我平板 X" "CPH1861" "realme 1" "RMX1805" "realme 2" @@ -2602,6 +2623,7 @@ "RMX3709" "realme GT 3 240W" "RMX3851" "realme GT 6" "RMX3853" "realme GT 6T" +"RMX5011" "realme GT 7 Pro" "RMX1946" "realme C2" "RMX2022" "realme C3 Global" "RMX2027" "realme C3 India" @@ -2636,6 +2658,7 @@ "RMX3997" "realme C65 5G" "RMX3890" "realme C67" "RMX3782" "realme C67 5G" +"RMX3941" "realme C75" "RMX3834" "realme Note 50" "RMX1833" "realme U1" "RMX3870" "realme P1 5G" @@ -3187,6 +3210,8 @@ "PJJ110" "OPPO Reno11 Pro" "PJV110" "OPPO Reno12" "PJW110" "OPPO Reno12 Pro" +"PKM110" "OPPO Reno13" +"PKK110" "OPPO Reno13 Pro" "PCLM10" "OPPO Reno Ace" "PDHM00" "OPPO Ace2" "PACM00" "OPPO R15 全網通版" @@ -3281,6 +3306,7 @@ "OPD2102" "OPPO Pad Air" "OPD2201" "OPPO Pad 2" "OPD2301" "OPPO Pad Air2" +"OPD2405" "OPPO Pad 3" "OPD2401" "OPPO Pad 3 Pro" "OB19B1" "OPPO Band 標準版 / 名偵探柯南限定版" "OB19B3" "OPPO Band NFC 版" diff --git a/tools/busybox b/tools/busybox index 9a8246d..2fd8bcf 100644 Binary files a/tools/busybox and b/tools/busybox differ diff --git a/tools/classes.dex b/tools/classes.dex index 524039f..96d9d98 100644 Binary files a/tools/classes.dex and b/tools/classes.dex differ diff --git a/tools/tools.sh b/tools/tools.sh index d054935..7993e79 100644 --- a/tools/tools.sh +++ b/tools/tools.sh @@ -10,7 +10,7 @@ MODDIR_NAME="${MODDIR##*/}" tools_path="$MODDIR/tools" Compression_rate=9 script="${0##*/}" -backup_version="202411251952" +backup_version="202412011445" [[ $SHELL = *mt* ]] && echo "請勿使用MT管理器拓展包環境執行,請更換系統環境" && exit 2 update_backup_settings_conf() { echo "#0關閉音量鍵選擇 (如選項未設置,則強制使用音量鍵選擇) @@ -27,6 +27,10 @@ background_execution="${background_execution:-0}" #1簡體中文 0繁體中文 Shell_LANG="$Shell_LANG" +#備份開始後偽裝亮屏 +#1開啟 0關閉 +setDisplayPowerMode="${setDisplayPowerMode:-0}" + #自定義備份文件輸出位置 支持相對路徑(留空則默認當前路徑) Output_path=\""$Output_path"\" @@ -150,6 +154,10 @@ Lo="${Lo:-0}" 1終端有可能完全無顯示,但是log會持續刷新,可直接完全關閉終端 background_execution="${background_execution:-0}" +#恢復開始後偽裝亮屏 +#1開啟 0關閉 +setDisplayPowerMode="${setDisplayPowerMode:-0}" + #腳本語言設置 為空自動針對當前系統語言環境自動翻譯 #1簡體中文 0繁體中文 Shell_LANG="$Shell_LANG" @@ -331,11 +339,11 @@ while read -r file expected_hash; do break fi done <<< "$(cat </dev/null - am force-stop --user "$user" "$name2" &>/dev/null - am kill "$name2" &>/dev/null - echoRgb "殺死$name1進程" - fi - fi + if [[ $(dumpsys activity processes | grep "packageList" | cut -d '{' -f2 | cut -d '}' -f1 | egrep -w "^$name2$" | sed -n '1p') = $name2 ]]; then + pkill -9 -f "$name2$|$name2[:/_]" + killall -9 "$name2" &>/dev/null + am force-stop --user "$user" "$name2" &>/dev/null + am kill "$name2" &>/dev/null + echoRgb "殺死$name1進程" + fi fi } Backup_apk() { @@ -1130,7 +1138,7 @@ Backup_apk() { Backup_ssaid() { Ssaid="$(jq -r '.[] | select(.Ssaid != null).Ssaid' "$app_details")" ssaid="$(get_ssaid "$name2")" - echoRgb "SSAID:$ssaid" + [[ $ssaid != null ]] && echoRgb "SSAID:$ssaid" if [[ $ssaid != null && $ssaid != $Ssaid ]]; then echoRgb "$Ssaid>$ssaid" SSAID_apk="$(echo "$name1 \"$name2\"")" @@ -1164,7 +1172,7 @@ Backup_data() { data|obb) ;; *) data_path="$2" - if [[ $1 != storage-isolation && $1 != thanox ]]; then + if [[ $1 != storage-isolation && $1 != thanox && $1 != NoActive ]]; then Compression_method1="$Compression_method" Compression_method=tar fi @@ -1213,8 +1221,8 @@ Backup_data() { ;; *) case $Compression_method in - tar | Tar | TAR) tar --checkpoint-action="ttyout=%T\r" --exclude="Backup_"* --exclude="${data_path##*/}/cache" --exclude="${data_path##*/}/QQS" --exclude="${data_path##*/}"/.* --warning=no-file-changed -cpf "$Backup_folder/$1.tar" -C "${data_path%/*}" "${data_path##*/}" ;; - zstd | Zstd | ZSTD) tar --checkpoint-action="ttyout=%T\r" --exclude="Backup_"* --exclude="${data_path##*/}/cache" --exclude="${data_path##*/}/QQS" --exclude="${data_path##*/}"/.* --warning=no-file-changed -cpf - -C "${data_path%/*}" "${data_path##*/}" | zstd --ultra -3 -T0 -q --priority=rt >"$Backup_folder/$1.tar.zst" ;; + tar | Tar | TAR) tar --checkpoint-action="ttyout=%T\r" --exclude="Backup_"* --exclude="${data_path##*/}/cache" --exclude="${data_path##*/}/QQ" --exclude="${data_path##*/}/Telegram" --exclude="${data_path##*/}"/.* --warning=no-file-changed -cpf "$Backup_folder/$1.tar" -C "${data_path%/*}" "${data_path##*/}" ;; + zstd | Zstd | ZSTD) tar --checkpoint-action="ttyout=%T\r" --exclude="Backup_"* --exclude="${data_path##*/}/cache" --exclude="${data_path##*/}/QQ" --exclude="${data_path##*/}/Telegram" --exclude="${data_path##*/}"/.* --warning=no-file-changed -cpf - -C "${data_path%/*}" "${data_path##*/}" | zstd --ultra -3 -T0 -q --priority=rt >"$Backup_folder/$1.tar.zst" ;; esac ;; esac @@ -1290,7 +1298,8 @@ Release_data() { fi ;; data) FILE_PATH="$path/data" Selinux_state="$(LS "$FILE_PATH" | awk 'NF>1{print $1}' | sed -e "s/system_data_file/app_data_file/g" 2>/dev/null)" ;; obb) FILE_PATH="$path/obb" Selinux_state="$(LS "$FILE_PATH" | awk 'NF>1{print $1}' | sed -e "s/system_data_file/app_data_file/g" 2>/dev/null)";; - thanox) FILE_PATH="/data/system" && find "/data/system" -name "thanos*" -maxdepth 1 -type d -exec rm -rf {} \; 2>/dev/null ;; + thanox) FILE_PATH="/data/system" && find "/data/system" -name "thanos"* -maxdepth 1 -type d -exec rm -rf {} \; 2>/dev/null ;; + NoActive) FILE_PATH="/data/system" && find "/data/system" -name "NoActive_"* -maxdepth 1 -type d -exec rm -rf {} \; 2>/dev/null ;; storage-isolation) FILE_PATH="/data/adb" ;; *) if [[ $A != "" ]]; then @@ -1369,9 +1378,13 @@ Release_data() { fi ;; thanox) - restorecon -RF "$(find "/data/system" -name "thanos*" -maxdepth 1 -type d 2>/dev/null)/" 2>/dev/null + restorecon -RF "$(find "/data/system" -name "thanos"* -maxdepth 1 -type d 2>/dev/null)/" 2>/dev/null echo_log "selinux上下文設置" && echoRgb "警告 thanox配置恢復後務必重啟\n -否則不生效" "0" ;; + NoActive) + restorecon -RF "$(find "/data/system" -name "NoActive_"* -maxdepth 1 -type d 2>/dev/null)/" 2>/dev/null + echo_log "selinux上下文設置" + ;; storage-isolation) restorecon -RF "/data/adb/storage-isolation/" 2>/dev/null echo_log "selinux上下文設置" @@ -1647,11 +1660,19 @@ Set_screen_pause_seconds () { settings put system screen_off_timeout 1800000 echo_log "設置無操作息屏時間30分鐘" fi + [[ $setDisplayPowerMode = true ]] && { + setDisplay 0 + echo_log "設置螢幕狀態false" + } elif [[ $1 = off ]]; then if [[ $Get_dark_screen_seconds != "" ]]; then settings put system screen_off_timeout "$Get_dark_screen_seconds" echo_log "設置無操作息屏時間為$Get_dark_screen_seconds" fi + [[ $setDisplayPowerMode = true ]] && { + setDisplay 2 + echo_log "設置螢幕狀態true" + } fi } restore_permissions () { @@ -1743,6 +1764,10 @@ backup) echoRgb "全部應用備份結束後是否備份自定義目錄\n -音量上備份,音量下不備份" "2" get_version "備份" "不備份" && backup_media="$branch" } + [[ $setDisplayPowerMode != "" ]] && isBoolean "$setDisplayPowerMode" "setDisplayPowerMode" && setDisplayPowerMode="$nsx" || { + echoRgb "應用備份開始後關閉螢幕\n -音量上關閉,音量下不關閉" "2" + get_version "關閉" "不關閉" && setDisplayPowerMode="$branch" + } [[ $Background_apps_ignore != "" ]] && isBoolean "$Background_apps_ignore" "Background_apps_ignore" && Background_apps_ignore="$nsx" || { echoRgb "存在進程忽略備份\n -音量上忽略,音量下備份" "2" get_version "忽略" "備份" && Background_apps_ignore="$branch" @@ -1772,6 +1797,10 @@ backup) echoRgb "全部應用備份結束後是否備份自定義目錄\n -音量上備份,音量下不備份" "2" get_version "備份" "不備份" && backup_media="$branch" } || isBoolean "$backup_media" "backup_media" && backup_media="$nsx" + [[ $setDisplayPowerMode = "" ]] && { + echoRgb "應用備份開始後關閉螢幕\n -音量上關閉,音量下不關閉" "2" + get_version "關閉" "不關閉" && setDisplayPowerMode="$branch" + } [[ $Background_apps_ignore = "" ]] && { echoRgb "存在進程忽略備份\n -音量上忽略,音量下備份" "2" get_version "忽略" "備份" && Background_apps_ignore="$branch" @@ -1806,6 +1835,11 @@ backup) } || { isBoolean "$backup_media" "backup_media" && backup_media="$nsx" } + [[ $setDisplayPowerMode = "" ]] && { + Enter_options "應用備份開始後關閉螢幕\n -輸入1關閉,0不關閉" "關閉" "不關閉" && isBoolean "$parameter" "setDisplayPowerMode" && setDisplayPowerMode="$nsx" + } || { + isBoolean "$backup_media" "backup_media" && backup_media="$nsx" + } [[ $Background_apps_ignore = "" ]] && { Enter_options "存在進程忽略備份\n -輸入1不備份,0備份" "忽略" "備份" && isBoolean "$parameter" "Background_apps_ignore" && Background_apps_ignore="$nsx" } || { @@ -2010,7 +2044,8 @@ backup) Backup_data "user_de" } } - [[ $name2 = github.tornaco.android.thanos ]] && Backup_data "thanox" "$(find "/data/system" -name "thanos*" -maxdepth 1 -type d 2>/dev/null)" + [[ $name2 = github.tornaco.android.thanos ]] && Backup_data "thanox" "$(find "/data/system" -name "thanos"* -maxdepth 1 -type d 2>/dev/null)" + [[ $name2 = cn.myflv.noactive ]] && Backup_data "NoActive" "$(find "/data/system" -name "NoActive_"* -maxdepth 1 -type d 2>/dev/null)" [[ $name2 = moe.shizuku.redirectstorage ]] && Backup_data "storage-isolation" "/data/adb/storage-isolation" fi fi @@ -2136,6 +2171,10 @@ Restore|Restore2) echoRgb "選擇應用恢復模式\n -音量上僅恢復未安裝,下全恢復" get_version "恢復未安裝" "全恢復" && recovery_mode="$branch" } + [[ $setDisplayPowerMode != "" ]] && isBoolean "$setDisplayPowerMode" "setDisplayPowerMode" && setDisplayPowerMode="$nsx" || { + echoRgb "應用恢復時關閉螢幕\n -音量上關閉,下不關閉" + get_version "關閉" "不關閉" && setDisplayPowerMode="$branch" + } Get_user="$(echo "$MODDIR" | rev | cut -d '/' -f1 | cut -d '_' -f1 | rev | egrep -o '[0-9]+')" if [[ $Get_user != $user ]]; then echoRgb "檢測當前用戶$user與恢復資料夾用戶:$Get_user不同,音量上繼續恢復,下不恢復並離開腳本" @@ -2160,6 +2199,8 @@ Restore|Restore2) 1) echoRgb "選擇應用恢復模式\n -音量上僅恢復未安裝,下全恢復" get_version "恢復未安裝" "全恢復" && recovery_mode="$branch" + echoRgb "應用恢復時關閉螢幕\n -音量上關閉,下不關閉" + get_version "關閉" "不關閉" && setDisplayPowerMode="$branch" Get_user="$(echo "$MODDIR" | rev | cut -d '/' -f1 | cut -d '_' -f1 | rev | egrep -o '[0-9]+')" if [[ $Get_user != $user ]]; then echoRgb "檢測當前用戶$user與恢復資料夾用戶:$Get_user不同,音量上繼續恢復,下不恢復並離開腳本" @@ -2177,6 +2218,11 @@ Restore|Restore2) } || { isBoolean "$recovery_mode" "recovery_mode" && recovery_mode="$nsx" } + [[ $setDisplayPowerMode = "" ]] && { + Enter_options "應用恢復時關閉螢幕\n -輸入1關閉,0不關閉" "關閉" "不關閉" && isBoolean "$parameter" "setDisplayPowerMode" && setDisplayPowerMode="$nsx" + } || { + isBoolean "$recovery_mode" "recovery_mode" && recovery_mode="$nsx" + } Get_user="$(echo "$MODDIR" | rev | cut -d '/' -f1 | cut -d '_' -f1 | rev | egrep -o '[0-9]+')" [[ $Get_user != $user ]] && { [[ $recovery_mode2 = "" ]] && { @@ -2420,7 +2466,7 @@ Restore3) starttime1="$(date -u "+%s")" A=1 B="$(egrep -v '#|#' "$txt" 2>/dev/null | awk 'NF != 0 { count++ } END { print count }')" - Set_screen_pause_seconds off + Set_screen_pause_seconds on [[ $B = "" ]] && echoRgb "mediaList.txt壓縮包名為空或是被注釋了\n -請執行\"重新生成應用列表.sh\"獲取列表再來恢復" "0" && exit 1 echo "$script">"$TMPDIR/scriptTMP" { @@ -2491,7 +2537,7 @@ Getlist) Apk_info="$(echo "$(echo "$Apk_info" | awk '$3 != "system" {print $1, $2}')\n$Pre_installed_apps")" [[ $Apk_info = "" ]] && { echoRgb "appinfo輸出失敗,請截圖畫面回報作者" "0" - exit 2 ; } || Apk_info="$(echo "$Apk_info" | sed 's/Xposed: //g')" && Apk_info2="$(echo "$Apk_info" | awk '{print $2}')" + exit 2 ; } || Apk_info2="$(echo "$Apk_info" | awk '{print $2}')" Apk_Quantity="$(echo "$Apk_info" | wc -l)" LR="1" echoRgb "列出第三方應用......." "2" diff --git a/tools/zstd b/tools/zstd index e462f7b..e3086d8 100644 Binary files a/tools/zstd and b/tools/zstd differ