bugfix
This commit is contained in:
@@ -932,7 +932,7 @@ Backup_apk() {
|
|||||||
#創建APP備份文件夾
|
#創建APP備份文件夾
|
||||||
[[ ! -d $Backup_folder ]] && mkdir -p "$Backup_folder"
|
[[ ! -d $Backup_folder ]] && mkdir -p "$Backup_folder"
|
||||||
[[ ! -f $app_details ]] && echo "{\n}">"$app_details"
|
[[ ! -f $app_details ]] && echo "{\n}">"$app_details"
|
||||||
apk_version="$(jq -r '.[] | select(.apk_version != null) | .apk_version' "$app_details")"
|
apk_version="$(jq -r '.[] | select(.apk_version != null).apk_version' "$app_details")"
|
||||||
apk_version2="$(pm list packages --show-versioncode --user "$user" "$name2" 2>/dev/null | cut -f3 -d ':' | head -n 1)"
|
apk_version2="$(pm list packages --show-versioncode --user "$user" "$name2" 2>/dev/null | cut -f3 -d ':' | head -n 1)"
|
||||||
apk_version3="$(dumpsys package "$name2" 2>/dev/null | awk '/versionName=/{print $1}' | cut -f2 -d '=' | head -1)"
|
apk_version3="$(dumpsys package "$name2" 2>/dev/null | awk '/versionName=/{print $1}' | cut -f2 -d '=' | head -1)"
|
||||||
if [[ $apk_version = $apk_version2 ]]; then
|
if [[ $apk_version = $apk_version2 ]]; then
|
||||||
@@ -1011,7 +1011,7 @@ Backup_data() {
|
|||||||
data_path="$path/$1/$name2"
|
data_path="$path/$1/$name2"
|
||||||
MODDIR_NAME="${data_path%/*}"
|
MODDIR_NAME="${data_path%/*}"
|
||||||
MODDIR_NAME="${MODDIR_NAME##*/}"
|
MODDIR_NAME="${MODDIR_NAME##*/}"
|
||||||
[[ -f $app_details ]] && Size="$(jq --arg entry "$1" '.[$entry].Size | tostring | gsub("\""; "") | tonumber' "$app_details" 2>/dev/null)"
|
[[ -f $app_details ]] && Size="$(jq -r --arg entry "$1" '.[$entry] | select(.Size != null).Size' "$app_details" 2>/dev/null)"
|
||||||
case $1 in
|
case $1 in
|
||||||
user) data_path="$path2/$name2" ;;
|
user) data_path="$path2/$name2" ;;
|
||||||
data) ;;
|
data) ;;
|
||||||
@@ -1027,7 +1027,7 @@ Backup_data() {
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
if [[ -d $data_path ]]; then
|
if [[ -d $data_path ]]; then
|
||||||
unset Filesize m_size k_size get_size ssaid Get_Permissions
|
unset Filesize m_size k_size get_size ssaid Get_Permissions result
|
||||||
Filesize="$(du -s "$data_path" | awk '{print $1}')"
|
Filesize="$(du -s "$data_path" | awk '{print $1}')"
|
||||||
k_size="$(awk 'BEGIN{printf "%.2f\n", "'$Filesize'"'*1024'/'1024'}')"
|
k_size="$(awk 'BEGIN{printf "%.2f\n", "'$Filesize'"'*1024'/'1024'}')"
|
||||||
m_size="$(awk 'BEGIN{printf "%.2f\n", "'$k_size'"/'1024'}')"
|
m_size="$(awk 'BEGIN{printf "%.2f\n", "'$k_size'"/'1024'}')"
|
||||||
@@ -1038,13 +1038,16 @@ Backup_data() {
|
|||||||
fi
|
fi
|
||||||
case $1 in
|
case $1 in
|
||||||
user)
|
user)
|
||||||
Ssaid="$(jq -r '.[] | select(.Ssaid != null) | .Ssaid' "$app_details")"
|
Ssaid="$(jq -r '.[] | select(.Ssaid != null).Ssaid' "$app_details")"
|
||||||
ssaid="$(get_ssaid "$name2")"
|
ssaid="$(get_ssaid "$name2")"
|
||||||
|
echoRgb "SSAID:$(get_ssaid "$name2")"
|
||||||
if [[ $ssaid != null && $ssaid != $Ssaid ]]; then
|
if [[ $ssaid != null && $ssaid != $Ssaid ]]; then
|
||||||
SSAID_apk="$(echo "$name1 \"$name2\"")"
|
SSAID_apk="$(echo "$name1 \"$name2\"")"
|
||||||
SSAID_apk2="$(echo "$SSAID_apk\n$SSAID_apk2")"
|
SSAID_apk2="$(echo "$SSAID_apk\n$SSAID_apk2")"
|
||||||
|
jq -c --arg entry "$name1" --arg new_value "$ssaid" '.[$entry].Ssaid |= $new_value' "$app_details" > temp.json && mv temp.json "$app_details"
|
||||||
echo_log "備份ssaid"
|
echo_log "備份ssaid"
|
||||||
fi
|
fi
|
||||||
|
[[ $ssaid = null ]] && ssaid=
|
||||||
Get_Permissions="$(get_Permissions "$name2")"
|
Get_Permissions="$(get_Permissions "$name2")"
|
||||||
if [[ $Get_Permissions != "" ]]; then
|
if [[ $Get_Permissions != "" ]]; then
|
||||||
if [[ $Permissions = "" ]]; then
|
if [[ $Permissions = "" ]]; then
|
||||||
@@ -1126,7 +1129,7 @@ Release_data() {
|
|||||||
case ${FILE_NAME##*.} in
|
case ${FILE_NAME##*.} in
|
||||||
zst | tar)
|
zst | tar)
|
||||||
unset FILE_PATH Size Selinux_state
|
unset FILE_PATH Size Selinux_state
|
||||||
[[ -f $app_details ]] && Size="$(jq --arg entry "$FILE_NAME2" '.[$entry].Size | tostring | gsub("\""; "") | tonumber' "$app_details" 2>/dev/null)"
|
[[ -f $app_details ]] && Size="$(jq -r --arg entry "$FILE_NAME2" '.[$entry] | select(.Size != null).Size' "$app_details" 2>/dev/null)"
|
||||||
case $FILE_NAME2 in
|
case $FILE_NAME2 in
|
||||||
user)
|
user)
|
||||||
if [[ -d $X ]]; then
|
if [[ -d $X ]]; then
|
||||||
@@ -1142,7 +1145,7 @@ Release_data() {
|
|||||||
*)
|
*)
|
||||||
if [[ $A != "" ]]; then
|
if [[ $A != "" ]]; then
|
||||||
if [[ ${MODDIR_NAME##*/} = Media ]]; then
|
if [[ ${MODDIR_NAME##*/} = Media ]]; then
|
||||||
FILE_PATH="$(jq -r --arg entry "${FILE_NAME2}" 'select(.[$entry].path != null) | .[$entry].path' "$app_details")"
|
FILE_PATH="$(jq -r --arg entry "${FILE_NAME2}" 'select(.[$entry].path != null).path | .[$entry].path' "$app_details")"
|
||||||
if [[ $FILE_PATH = "" ]]; then
|
if [[ $FILE_PATH = "" ]]; then
|
||||||
echoRgb "路徑獲取失敗" "0"
|
echoRgb "路徑獲取失敗" "0"
|
||||||
else
|
else
|
||||||
@@ -1296,8 +1299,8 @@ get_name(){
|
|||||||
[[ $rgb_a -ge 229 ]] && rgb_a=118
|
[[ $rgb_a -ge 229 ]] && rgb_a=118
|
||||||
unset PackageName NAME DUMPAPK ChineseName versionName apk_version Ssaid dataSize obbSize userSize
|
unset PackageName NAME DUMPAPK ChineseName versionName apk_version Ssaid dataSize obbSize userSize
|
||||||
if [[ -f $Folder/app_details.json ]]; then
|
if [[ -f $Folder/app_details.json ]]; then
|
||||||
ChineseName="$(jq -r 'to_entries[] | select(.key != null) | .key' "$Folder/app_details.json" | head -n 1)"
|
ChineseName="$(jq -r 'to_entries[] | select(.key != null).key' "$Folder/app_details.json" | head -n 1)"
|
||||||
PackageName="$(jq -r '.[] | select(.PackageName != null) | .PackageName' "$Folder/app_details.json")"
|
PackageName="$(jq -r '.[] | select(.PackageName != null).PackageName' "$Folder/app_details.json")"
|
||||||
else
|
else
|
||||||
if [[ -f $Folder/app_details ]]; then
|
if [[ -f $Folder/app_details ]]; then
|
||||||
. "$Folder/app_details" &>/dev/null
|
. "$Folder/app_details" &>/dev/null
|
||||||
@@ -1612,8 +1615,8 @@ backup)
|
|||||||
name1="$(grep -v "#" "$txt" 2>/dev/null | sed -e '/^$/d' | sed -n "${i}p" | awk '{print $1}')"
|
name1="$(grep -v "#" "$txt" 2>/dev/null | sed -e '/^$/d' | sed -n "${i}p" | awk '{print $1}')"
|
||||||
name2="$(grep -v "#" "$txt" 2>/dev/null | sed -e '/^$/d' | sed -n "${i}p" | awk '{print $2}')"
|
name2="$(grep -v "#" "$txt" 2>/dev/null | sed -e '/^$/d' | sed -n "${i}p" | awk '{print $2}')"
|
||||||
else
|
else
|
||||||
ChineseName="$(jq -r 'to_entries[] | select(.key != null) | .key' "${0%/*}/app_details.json" | head -n 1)"
|
ChineseName="$(jq -r 'to_entries[] | select(.key != null).key' "${0%/*}/app_details.json" | head -n 1)"
|
||||||
PackageName="$(jq -r '.[] | select(.PackageName != null) | .PackageName' "${0%/*}/app_details.json")"
|
PackageName="$(jq -r '.[] | select(.PackageName != null).PackageName' "${0%/*}/app_details.json")"
|
||||||
name1="$ChineseName"
|
name1="$ChineseName"
|
||||||
name2="$PackageName"
|
name2="$PackageName"
|
||||||
fi
|
fi
|
||||||
@@ -1646,7 +1649,7 @@ backup)
|
|||||||
app_Permissions="$Backup_folder/Permissions"
|
app_Permissions="$Backup_folder/Permissions"
|
||||||
if [[ -f $app_details ]]; then
|
if [[ -f $app_details ]]; then
|
||||||
[[ -f $app_Permissions ]] && . "$app_Permissions"
|
[[ -f $app_Permissions ]] && . "$app_Permissions"
|
||||||
PackageName="$(jq -r '.[] | select(.PackageName != null) | .PackageName' "$app_details")"
|
PackageName="$(jq -r '.[] | select(.PackageName != null).PackageName' "$app_details")"
|
||||||
if [[ $PackageName != $name2 ]]; then
|
if [[ $PackageName != $name2 ]]; then
|
||||||
unset Backup_folder ChineseName PackageName nobackup No_backupdata result apk_version versionName apk_version2 apk_version3 zsize zmediapath Size data_path Ssaid ssaid Permissions
|
unset Backup_folder ChineseName PackageName nobackup No_backupdata result apk_version versionName apk_version2 apk_version3 zsize zmediapath Size data_path Ssaid ssaid Permissions
|
||||||
Backup_folder="$Backup/${name1}[${name2}]"
|
Backup_folder="$Backup/${name1}[${name2}]"
|
||||||
@@ -1868,8 +1871,8 @@ Restore|Restore2)
|
|||||||
if [[ ! -f $app_details ]]; then
|
if [[ ! -f $app_details ]]; then
|
||||||
echoRgb "$app_details遺失,無法獲取包名" "0" && exit 1
|
echoRgb "$app_details遺失,無法獲取包名" "0" && exit 1
|
||||||
else
|
else
|
||||||
ChineseName="$(jq -r 'to_entries[] | select(.key != null) | .key' "$app_details" | head -n 1)"
|
ChineseName="$(jq -r 'to_entries[] | select(.key != null).key' "$app_details" | head -n 1)"
|
||||||
PackageName="$(jq -r '.[] | select(.PackageName != null) | .PackageName' "$app_details")"
|
PackageName="$(jq -r '.[] | select(.PackageName != null).PackageName' "$app_details")"
|
||||||
[[ -f $app_Permissions ]] && . "$app_Permissions" &>/dev/null
|
[[ -f $app_Permissions ]] && . "$app_Permissions" &>/dev/null
|
||||||
fi
|
fi
|
||||||
name1="$ChineseName"
|
name1="$ChineseName"
|
||||||
@@ -1927,7 +1930,7 @@ Restore|Restore2)
|
|||||||
unset G
|
unset G
|
||||||
Set_service
|
Set_service
|
||||||
restore_permissions
|
restore_permissions
|
||||||
Ssaid="$(jq -r '.[] | select(.Ssaid != null) | .Ssaid' "$app_details")"
|
Ssaid="$(jq -r '.[] | select(.Ssaid != null).Ssaid' "$app_details")"
|
||||||
if [[ $Ssaid != "" ]]; then
|
if [[ $Ssaid != "" ]]; then
|
||||||
if [[ $(get_ssaid "$name2") != $Ssaid ]]; then
|
if [[ $(get_ssaid "$name2") != $Ssaid ]]; then
|
||||||
set_ssaid "$name2" "$Ssaid"
|
set_ssaid "$name2" "$Ssaid"
|
||||||
|
|||||||
Reference in New Issue
Block a user