@@ -8,9 +8,9 @@ shell_language="zh-TW"
8
8
MODDIR=" $MODDIR "
9
9
MODDIR_NAME=" ${MODDIR##*/ } "
10
10
tools_path=" $MODDIR /tools"
11
- Compression_rate=3
11
+ Compression_rate=9
12
12
script=" ${0##*/ } "
13
- backup_version=" V15.9.4 "
13
+ backup_version=" V15.9.5 "
14
14
[[ $SHELL = * mt* ]] && echo " 請勿使用MT管理器拓展包環境執行,請更換系統環境" && exit 2
15
15
update_backup_settings_conf () {
16
16
echo " #0關閉音量鍵選擇 (如選項未設置,則強制使用音量鍵選擇)
@@ -528,9 +528,8 @@ Enter_options() {
528
528
add_entry () {
529
529
app_name=" $1 "
530
530
package_name=" $2 "
531
- output=" $3 "
532
531
# 檢查是否已經存在同樣的應用名稱
533
- if [[ $( echo " $3 " | grep -o " $app_name " ) != " " ]]; then
532
+ if [[ $( echo " $3 " | awk ' {print $1} ' | grep -w " ^ $app_name $ " ) != " " ]]; then
534
533
# 如果應用名稱存在但包名不同,則需要添加數字後綴
535
534
count=1
536
535
new_app_name=" ${app_name} _${count} "
@@ -986,47 +985,44 @@ backup_path() {
986
985
}
987
986
Calculate_size () {
988
987
# 計算出備份大小跟差異性
989
- filesizee=" $( du -s " $1 " | awk ' {print $1}' ) "
990
- if [[ $( expr " $filesize " \> " $filesizee " ) -eq 0 ]]; then
991
- NJK=" 增加"
992
- dsize=" $(( $((filesizee - filesize)) / 1024))"
988
+ filesizee=" $( find " $1 " -type f -exec stat -c%s {} + | awk ' {s+=$1} END {print s}' ) "
989
+ if [[ $( echo " $filesizee > $filesize " | bc) -eq 1 ]]; then
990
+ NJL=" 本次備份增加 $( size " $( echo " scale=2; $filesizee - $filesize " | bc) " ) "
991
+ elif [[ $( echo " $filesizee < $filesize " | bc) -eq 1 ]]; then
992
+ NJL=" 本次備份減少 $( size " $( echo " scale=2; $filesize - $filesizee " | bc) " ) "
993
993
else
994
- NJK=" 減少"
995
- dsize=" $(( $((filesize- filesizee)) / 1024))"
994
+ NJL=" 文件大小未改變"
996
995
fi
997
996
echoRgb " 備份資料夾路徑↓↓↓\n -$1 "
998
- echoRgb " 備份資料夾總體大小$( du -ksh " $1 " | awk ' {print $1}' ) "
999
- if [[ $dsize -gt 0 ]]; then
1000
- if [[ $(( dsize / 1000 )) -gt 0 ]]; then
1001
- NJL=" 本次備份$NJK : $(( dsize / 1000 )) gb"
1002
- else
1003
- NJL=" 本次備份$NJK : ${dsize} mb"
1004
- fi
1005
- else
1006
- NJL=" 本次備份$NJK : $(( $((filesizee - filesize)) * 1000 / 1024))kb"
1007
- fi
997
+ echoRgb " 備份資料夾總體大小$( size " $filesizee " ) "
1008
998
echoRgb " $NJL "
1009
999
}
1010
1000
size () {
1001
+ unset get_size
1011
1002
varr=" $( echo " $1 " | bc 2> /dev/null) "
1012
1003
if [[ $varr != $1 ]]; then
1013
1004
b_size=" $( ls -l " $1 " 2> /dev/null | awk ' {print $5}' ) "
1014
1005
else
1015
1006
b_size=" $1 "
1016
1007
fi
1017
- k_size=" $( awk ' BEGIN{printf "%.2f\n", "' $b_size ' "/' 1024' }' ) "
1018
- m_size=" $( awk ' BEGIN{printf "%.2f\n", "' $k_size ' "/' 1024' }' ) "
1019
- if [[ $( expr " $m_size " \> 1) -eq 0 ]]; then
1020
- echo " ${k_size} KB"
1008
+ if [[ $b_size -eq 0 ]]; then
1009
+ get_size=" 0 bytes"
1010
+ elif [[ $( echo " $b_size < 1024" | bc) -eq 1 ]]; then
1011
+ get_size=" ${b_size} bytes"
1012
+ elif [[ $( echo " $b_size < 1048576" | bc) -eq 1 ]]; then
1013
+ get_size=" $( echo " scale=2; $b_size / 1024" | bc) KB"
1014
+ elif [[ $( echo " $b_size < 1073741824" | bc) -eq 1 ]]; then
1015
+ get_size=" $( echo " scale=2; $b_size / 1048576" | bc) MB"
1021
1016
else
1022
- [[ $( echo " $m_size " | cut -d ' . ' -f1 ) -lt 1024 ]] && echo " ${m_size} MB " || echo " $( awk ' BEGIN{printf "%.2f\n", " ' $m_size ' "/ ' 1024 ' } ' ) GB"
1017
+ get_size= " $( echo " scale=2; $b_size / 1073741824 " | bc ) GB"
1023
1018
fi
1019
+ echo " $get_size "
1024
1020
}
1025
1021
# 分區佔用信息
1026
1022
partition_info () {
1027
- Occupation_status=" $( df " ${1%/* } " | sed -n ' s|% /.*|%|p' | awk ' {print $(NF-1)}' ) "
1023
+ Occupation_status=" $( df -B1 " ${1%/* } " | sed -n ' s|% /.*|%|p' | awk ' {print $(NF-1)}' ) "
1028
1024
echo " -$2 字節:$Filesize 剩餘字節:$Occupation_status "
1029
- [[ $Filesize -gt $ Occupation_status ]] && echoRgb " $2 備份大小將超出rom可用大小" " 0" && exit 2
1025
+ [[ $Filesize != " " ]] && [[ $( echo " $Filesize > $ Occupation_status" | bc ) -eq 1 ]] && echoRgb " $2 備份大小將超出rom可用大小" " 0" && exit 2
1030
1026
Occupation_status=" $( df -h " ${Backup%/* } " | sed -n ' s|% /.*|%|p' | awk ' {print $(NF-1),$(NF)}' ) "
1031
1027
}
1032
1028
kill_app () {
@@ -1071,7 +1067,8 @@ Backup_apk() {
1071
1067
echoRgb " 版本:$apk_version2 "
1072
1068
fi
1073
1069
unset Filesize
1074
- Filesize=" $( du -s " $apk_path2 " | awk ' {print $1}' ) "
1070
+ Filesize=" $( find " $apk_path2 " -type f -exec stat -c%s {} + | awk ' {s+=$1} END {print s}' ) "
1071
+ # Filesize="$(du -s "$apk_path2" | awk '{print $1}')"
1075
1072
partition_info " $Backup " " $name1 apk"
1076
1073
# 備份apk
1077
1074
echoRgb " $1 "
@@ -1082,7 +1079,7 @@ Backup_apk() {
1082
1079
cd " $apk_path2 "
1083
1080
case $Compression_method in
1084
1081
tar | TAR | Tar) tar --checkpoint-action=" ttyout=%T\r" -cf " $Backup_folder /apk.tar" * .apk ;;
1085
- zstd | Zstd | ZSTD) tar --checkpoint-action=" ttyout=%T\r" -cf - * .apk | zstd --ultra -" $Compression_rate " -T0 -q --priority=rt > " $Backup_folder /apk.tar.zst" ;;
1082
+ zstd | Zstd | ZSTD) tar --checkpoint-action=" ttyout=%T\r" -cf - * .apk | zstd --ultra -3 -T0 -q --priority=rt > " $Backup_folder /apk.tar.zst" ;;
1086
1083
esac
1087
1084
)
1088
1085
echo_log " 備份$apk_number 個Apk" " SpeedBackup" " $name1 "
@@ -1162,7 +1159,6 @@ Backup_data() {
1162
1159
case $1 in
1163
1160
user) data_path=" $path2 /$name2 " ;;
1164
1161
data) ;;
1165
- obb) ;;
1166
1162
* )
1167
1163
data_path=" $2 "
1168
1164
if [[ $1 != storage-isolation && $1 != thanox ]]; then
@@ -1175,44 +1171,42 @@ Backup_data() {
1175
1171
esac
1176
1172
if [[ -d $data_path ]]; then
1177
1173
unset Filesize m_size k_size get_size ssaid Get_Permissions result Permissions
1178
- Filesize=" $( du -s " $data_path " | awk ' {print $1 }' ) "
1174
+ Filesize=" $( find " $data_path " -type f -exec stat -c%s {} + | awk ' {s+=$1} END {print s }' ) "
1179
1175
if [[ $Size != $Filesize ]]; then
1180
- k_size=" $( awk ' BEGIN{printf "%.2f\n", "' $Filesize ' "' * 1024' /' 1024' }' ) "
1181
- m_size=" $( awk ' BEGIN{printf "%.2f\n", "' $k_size ' "/' 1024' }' ) "
1182
- if [[ $( expr " $m_size " \> 1) -eq 0 ]]; then
1183
- get_size=" $( awk ' BEGIN{printf "%.2f\n", "' $k_size ' "/' 1024' }' ) KB"
1184
- else
1185
- [[ $( echo " $m_size " | cut -d ' .' -f1) -lt 1000 ]] && get_size=" ${m_size} MB" || get_size=" $( awk ' BEGIN{printf "%.2f\n", "' $m_size ' "/' 1024' }' ) GB"
1186
- fi
1187
1176
case $1 in
1188
1177
user)
1189
1178
Backup_ssaid
1190
1179
Backup_Permissions ;;
1191
1180
esac
1192
1181
# 停止應用
1193
1182
case $1 in
1194
- user|data|obb ) kill_app ;;
1183
+ user|data) kill_app ;;
1195
1184
esac
1196
1185
partition_info " $Backup " " $1 "
1197
- echoRgb " 備份$1 數據( $get_size )"
1186
+ echoRgb " 備份$1 數據$( size " $Filesize " ) "
1198
1187
case $1 in
1199
1188
user)
1200
1189
case $Compression_method in
1201
1190
tar | Tar | TAR) tar --checkpoint-action=" ttyout=%T\r" --exclude=" ${data_path##*/ } /.ota" --exclude=" ${data_path##*/ } /cache" --exclude=" ${data_path##*/ } /lib" --exclude=" ${data_path##*/ } /code_cache" --exclude=" ${data_path##*/ } /no_backup" --warning=no-file-changed -cpf " $Backup_folder /$1 .tar" -C " ${data_path%/* } " " ${data_path##*/ } " 2> /dev/null ;;
1202
- zstd | Zstd | ZSTD) tar --checkpoint-action=" ttyout=%T\r" --exclude=" ${data_path##*/ } /.ota" --exclude=" ${data_path##*/ } /cache" --exclude=" ${data_path##*/ } /lib" --exclude=" ${data_path##*/ } /code_cache" --exclude=" ${data_path##*/ } /no_backup" --warning=no-file-changed -cpf - -C " ${data_path%/* } " " ${data_path##*/ } " | zstd --ultra -" $Compression_rate " -T0 -q --priority=rt > " $Backup_folder /$1 .tar.zst" 2> /dev/null ;;
1191
+ zstd | Zstd | ZSTD) tar --checkpoint-action=" ttyout=%T\r" --exclude=" ${data_path##*/ } /.ota" --exclude=" ${data_path##*/ } /cache" --exclude=" ${data_path##*/ } /lib" --exclude=" ${data_path##*/ } /code_cache" --exclude=" ${data_path##*/ } /no_backup" --warning=no-file-changed -cpf - -C " ${data_path%/* } " " ${data_path##*/ } " | zstd --ultra -3 -T0 -q --priority=rt > " $Backup_folder /$1 .tar.zst" 2> /dev/null ;;
1203
1192
esac
1204
1193
;;
1205
1194
* )
1206
1195
case $Compression_method in
1207
1196
tar | Tar | TAR) tar --checkpoint-action=" ttyout=%T\r" --exclude=" Backup_" * --exclude=" ${data_path##*/ } /cache" --exclude=" ${data_path##*/ } " /.* --warning=no-file-changed -cpf " $Backup_folder /$1 .tar" -C " ${data_path%/* } " " ${data_path##*/ } " ;;
1208
- zstd | Zstd | ZSTD) tar --checkpoint-action=" ttyout=%T\r" --exclude=" Backup_" * --exclude=" ${data_path##*/ } /cache" --exclude=" ${data_path##*/ } " /.* --warning=no-file-changed -cpf - -C " ${data_path%/* } " " ${data_path##*/ } " | zstd --ultra -" $Compression_rate " -T0 -q --priority=rt > " $Backup_folder /$1 .tar.zst" ;;
1197
+ zstd | Zstd | ZSTD) tar --checkpoint-action=" ttyout=%T\r" --exclude=" Backup_" * --exclude=" ${data_path##*/ } /cache" --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" ;;
1209
1198
esac
1210
1199
;;
1211
1200
esac
1212
1201
echo_log " 備份$1 數據" " 備份" " $name1 "
1213
1202
if [[ $result = 0 ]]; then
1214
1203
Validation_file " $Backup_folder /$1 .tar" *
1215
1204
if [[ $result = 0 ]]; then
1205
+ if [[ ! $Filesize -eq 0 ]]; then
1206
+ size2=" $( stat -c %s " $Backup_folder /$1 .tar" * ) "
1207
+ rate=" $( echo " scale=2; (1 - ($size2 / $Filesize )) * 100" | bc) "
1208
+ echoRgb " 壓縮率${rate} % 大小$( size " $size2 " ) "
1209
+ fi
1216
1210
[[ ${Backup_folder##*/ } = Media ]] && [[ $( sed -e ' /^$/d' " $mediatxt " | grep -w " ${REPLY##*/ } .tar$" | head -1) = " " ]] && echo " $FILE_NAME " >> " $mediatxt "
1217
1211
if [[ $zsize != " " ]]; then
1218
1212
extra_content=" {
@@ -1237,7 +1231,7 @@ Backup_data() {
1237
1231
[[ $Compression_method1 != " " ]] && Compression_method=" $Compression_method1 "
1238
1232
unset Compression_method1
1239
1233
else
1240
- echoRgb " $1 數據無發生變化 跳過備份" " 2"
1234
+ [[ $Size != " " ]] && echoRgb " $1 數據無發生變化 跳過備份" " 2"
1241
1235
fi
1242
1236
else
1243
1237
[[ -f $data_path ]] && echoRgb " $1 是一個文件 不支持備份" " 0" || echoRgb " $1 數據不存在跳過備份" " 2"
@@ -1263,7 +1257,6 @@ Release_data() {
1263
1257
echoRgb " $X 不存在 無法恢復$FILE_NAME2 數據" " 0"
1264
1258
fi ;;
1265
1259
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) " ;;
1266
- 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) " ;;
1267
1260
thanox) FILE_PATH=" /data/system" && find " /data/system" -name " thanos*" -maxdepth 1 -type d -exec rm -rf {} \; 2> /dev/null ;;
1268
1261
storage-isolation) FILE_PATH=" /data/adb" ;;
1269
1262
* )
@@ -1282,7 +1275,7 @@ Release_data() {
1282
1275
echoRgb " $tar_path 名稱似乎有誤" " 0"
1283
1276
fi ;;
1284
1277
esac
1285
- echoRgb " 恢復$FILE_NAME2 數據 釋放$( size " $( awk ' BEGIN{printf "%.2f\n", " ' $ Size' "* ' 1024 ' } ' ) " ) " " 3"
1278
+ echoRgb " 恢復$FILE_NAME2 數據 釋放$( size " $Size " ) " " 3"
1286
1279
if [[ $FILE_PATH != " " ]]; then
1287
1280
[[ ${MODDIR_NAME##*/ } != Media ]] && rm -rf " $FILE_PATH /$name2 "
1288
1281
case ${FILE_NAME##* .} in
@@ -1295,7 +1288,7 @@ Release_data() {
1295
1288
echo_log " 解壓縮${FILE_NAME##* .} " " 恢復" " $name1 "
1296
1289
if [[ $result = 0 ]]; then
1297
1290
case $FILE_NAME2 in
1298
- user|data|obb )
1291
+ user|data)
1299
1292
if [[ $G = " " ]]; then
1300
1293
if [[ $( get_uid " $name2 " 2> /dev/null) != " " ]]; then
1301
1294
G=" $( get_uid " $name2 " 2> /dev/null) "
@@ -1323,9 +1316,6 @@ Release_data() {
1323
1316
echo_log " 設置用戶組:$( ls -ld " $X " | awk ' {print $3,$4}' ) ,shell in :$uid " " 恢復" " $name1 "
1324
1317
chcon -hR " $Selinux_state " " $X /" 2> /dev/null
1325
1318
echo_log " selinux上下文設置" " 恢復" " $name1 "
1326
- elif [[ $FILE_NAME2 = data || $FILE_NAME2 = obb ]]; then
1327
- chown -hR " $uid " " $FILE_PATH /$name2 /"
1328
- chcon -hR " $Selinux_state " " $FILE_PATH /$name2 /" 2> /dev/null
1329
1319
fi
1330
1320
else
1331
1321
echoRgb " 路徑$X 不存在" " 0"
@@ -1432,7 +1422,7 @@ get_name(){
1432
1422
find " $MODDIR " -maxdepth 2 -name " apk.*" -type f 2> /dev/null | sort | while read ; do
1433
1423
Folder=" ${REPLY%/* } "
1434
1424
[[ $rgb_a -ge 229 ]] && rgb_a=118
1435
- unset PackageName NAME DUMPAPK ChineseName apk_version Ssaid dataSize obbSize userSize
1425
+ unset PackageName NAME DUMPAPK ChineseName apk_version Ssaid dataSize userSize
1436
1426
if [[ -f $Folder /app_details.json ]]; then
1437
1427
ChineseName=" $( jq -r ' to_entries[] | select(.key != null).key' " $Folder /app_details.json" | head -n 1) "
1438
1428
PackageName=" $( jq -r ' .[] | select(.PackageName != null).PackageName' " $Folder /app_details.json" ) "
@@ -1453,9 +1443,6 @@ get_name(){
1453
1443
\" data\" : {
1454
1444
\" Size\" : \" $dataSize \"
1455
1445
},
1456
- \" obb\" : {
1457
- \" Size\" : \" $obbSize \"
1458
- },
1459
1446
\" user\" : {
1460
1447
\" Size\" : \" $userSize \"
1461
1448
}
@@ -1803,13 +1790,25 @@ backup)
1803
1790
[[ $Apk_info = " " ]] && echoRgb " Apk_info變量為空" " 0" && exit
1804
1791
[[ $backup_mode = " " ]] && {
1805
1792
echoRgb " 檢查備份列表中是否存在已經卸載應用" " 3"
1793
+ echoRgb " 檢查備份列表中已經更新應用" " 3"
1806
1794
while read -r ; do
1807
1795
if [[ $( echo " $REPLY " | sed -E ' s/^[ \t]*//; /^[ \t]*[##!]/d' ) != " " ]]; then
1808
1796
app=($REPLY $REPLY )
1809
1797
if [[ ${app[1]} != " " && ${app[2]} != " " ]]; then
1810
1798
if [[ $( echo " $Apk_info " | egrep -o " ${app[1]} " ) != " " ]]; then
1811
1799
[[ $Tmplist = " " ]] && Tmplist=' #不需要備份的應用請在開頭使用#注釋 比如:#酷安 com.coolapk.market(忽略安裝包和數據)\n#不需要備份數據的應用請在開頭使用!注釋 比如:!酷安 com.coolapk.market(僅忽略數據)'
1812
1800
Tmplist=" $Tmplist \n$REPLY "
1801
+ if [[ $Update_backup != " " ]]; then
1802
+ Backup_folder=" $Backup /${app[2]} "
1803
+ app_details=" $Backup_folder /app_details.json"
1804
+ if [[ -d $Backup_folder ]]; then
1805
+ apk_version=" $( jq -r ' .[] | select(.apk_version != null).apk_version' " $app_details " ) "
1806
+ apk_version2=" $( pm list packages --show-versioncode --user " $user " " ${app[1]} " 2> /dev/null | cut -f3 -d ' :' | head -n 1) "
1807
+ [[ $apk_version != $apk_version2 ]] && {
1808
+ [[ $Tmplist2 = " " ]] && Tmplist2=" $REPLY " || Tmplist2=" $Tmplist2 \n$REPLY "
1809
+ }
1810
+ fi
1811
+ fi
1813
1812
else
1814
1813
echoRgb " $REPLY 不存在系統,從列表中刪除" " 0"
1815
1814
fi
@@ -1820,6 +1819,14 @@ backup)
1820
1819
done < " $txt "
1821
1820
}
1822
1821
[[ $Tmplist != " " ]] && echo " $Tmplist " | sed -e ' /^$/d' | sort> " $txt "
1822
+ if [[ $Tmplist2 != " " ]]; then
1823
+ if [[ $Update_backup != " " ]]; then
1824
+ cat " $txt " > " ${txt%/* } /txt2"
1825
+ echo " $Tmplist2 " | sed -e ' /^$/d' | sort> " $txt "
1826
+ fi
1827
+ else
1828
+ [[ $Update_backup != " " ]] && echoRgb " 應用目前無更新" " 0" && exit 0
1829
+ fi
1823
1830
r=" $( egrep -v ' #|#' " $txt " 2> /dev/null | awk ' NF != 0 { count++ } END { print count }' ) "
1824
1831
[[ $backup_mode != " " ]] && r=1
1825
1832
[[ $r = " " && $backup_mode = " " ]] && echoRgb " $MODDIR_NAME /appList.txt是空的或是包名被注釋備份個鬼\n -檢查是否注釋亦或者執行$MODDIR_NAME /生成應用列表.sh" " 0" && exit 1
@@ -1850,7 +1857,7 @@ backup)
1850
1857
fi
1851
1858
done
1852
1859
fi
1853
- filesize=" $( du -s " $Backup " | awk ' {print $1 }' ) "
1860
+ filesize=" $( find " $Backup " -type f -exec stat -c%s {} + | awk ' {s+=$1} END {print s }' ) "
1854
1861
Quantity=0
1855
1862
# 開始循環$txt內的資料進行備份
1856
1863
# 記錄開始時間
@@ -1934,8 +1941,6 @@ backup)
1934
1941
if [[ $name2 != * mt* ]]; then
1935
1942
# 備份data數據
1936
1943
Backup_data " data"
1937
- # 備份obb數據
1938
- Backup_data " obb"
1939
1944
else
1940
1945
echoRgb " $name1 無法備份" " 0"
1941
1946
fi
@@ -1984,6 +1989,7 @@ backup)
1984
1989
echoRgb " \n -已更新的apk=\" $osn \" \n -已新增的備份=\" $osk \" \n -apk版本號無變化=\" $osj \" \n -下列為版本號已變更的應用\n$update_apk2 \n -新增的備份....\n$add_app2 \n -包含SSAID的應用\n$SSAID_apk2 " " 3"
1985
1990
echo " $( sort " $txt2 " | sed -e ' /^$/d' ) " > " $txt2 "
1986
1991
notification --tag=" 101" --title=" App備份" --text=" app備份完成 $( endtime 1 " 應用備份" " 3" ) "
1992
+ [[ -e ${txt%/* } /txt2 ]] && cat " ${txt%/* } /txt2" > " $txt " && rm -rf " ${txt%/* } /txt2"
1987
1993
if [[ $backup_media = true && $backup_mode = " " ]]; then
1988
1994
A=1
1989
1995
B=" $( echo " $Custom_path " | egrep -v ' #|#' | awk ' NF != 0 { count++ } END { print count }' ) "
@@ -2212,6 +2218,7 @@ Restore|Restore2)
2212
2218
else
2213
2219
ChineseName=" $( jq -r ' to_entries[] | select(.key != null).key' " $app_details " | head -n 1) "
2214
2220
PackageName=" $( jq -r ' .[] | select(.PackageName != null).PackageName' " $app_details " ) "
2221
+ apk_version=" $( jq -r ' .[] | select(.apk_version != null).apk_version' " $app_details " ) "
2215
2222
fi
2216
2223
name1=" $ChineseName "
2217
2224
[[ $name1 = " " ]] && name1=" ${Backup_folder##*/ } "
@@ -2256,6 +2263,7 @@ Restore|Restore2)
2256
2263
Backup_folder=" $MODDIR /$name1 "
2257
2264
if [[ -f " $Backup_folder /app_details.json" ]]; then
2258
2265
app_details=" $Backup_folder /app_details.json"
2266
+ apk_version=" $( jq -r ' .[] | select(.apk_version != null).apk_version' " $app_details " ) "
2259
2267
else
2260
2268
echoRgb " $Backup_folder /app_details.json不存在" " 0"
2261
2269
fi
@@ -2587,7 +2595,7 @@ backup_media)
2587
2595
[[ ! -f $Backup /restore_settings.conf ]] && update_Restore_settings_conf> " $Backup /restore_settings.conf"
2588
2596
app_details=" $Backup_folder /app_details.json"
2589
2597
[[ ! -f $app_details ]] && echo " {\n}" > " $app_details "
2590
- filesize=" $( du -s " $Backup_folder " | awk ' {print $1 }' ) "
2598
+ filesize=" $( find " $Backup_folder " -type f -exec stat -c%s {} + | awk ' {s+=$1} END {print s }' ) "
2591
2599
mediatxt=" $Backup /mediaList.txt"
2592
2600
[[ ! -f $mediatxt ]] && echo " #不需要恢復的資料夾請在開頭使用#注釋 比如:#Download" > " $mediatxt "
2593
2601
echo " $script " > " $TMPDIR /scriptTMP"
0 commit comments