16 Commits

Author SHA1 Message Date
Yawasau
bf58f2f7b2 bugfix 2025-07-06 17:35:19 +08:00
Yawasau
6fb9d0314b bugfix 2025-05-01 20:19:36 +08:00
Yawasau
705f2b67e6 bugfix 2025-04-26 16:32:18 +08:00
Yawasau
c7dd741657 bugfix 2025-04-26 16:07:55 +08:00
Yawasau
c016118af6 bugfix 2025-04-26 00:23:48 +08:00
Yawasau
307db2ae1d bugfix 2025-04-24 15:28:28 +08:00
Yawasau
6248e2262e bugfix 2025-01-19 20:33:20 +08:00
Yawasau
979b828cd9 bugfix 2025-01-11 22:21:10 +08:00
Yawasau
a8c26d334c bugfix 2024-12-28 22:57:47 +08:00
Yawasau
e979cf54d2 bugfix 2024-12-08 18:16:57 +08:00
Yawasau
b5de2d1725 bugfix 2024-12-01 13:46:32 +08:00
YAWAsau
1aa4e0f440 Update README.md 2024-11-30 11:44:29 +08:00
YAWAsau
8896743c06 Update README.md 2024-11-30 11:43:22 +08:00
Yawasau
e5aaa88e91 bugfix 2024-11-25 20:00:42 +08:00
Yawasau
b0997eb88a bugfix 2024-11-24 22:21:41 +08:00
Yawasau
bc1f62a036 bugfix 2024-11-24 17:51:38 +08:00
15 changed files with 3061 additions and 905 deletions

View File

@@ -18,12 +18,14 @@
- 數據完整:在更換系統之後,原有的數據全部保留,無需重新登陸或者下載額外數據包。
- 支援備份SSAID 可完美備份LINE
- 支援備份應用權限 可備份運行時權限與ops權限
- 易操作:簡單几步即可備份應用完整數據!
- 限制少:不限制機型,可跨安桌版本。
- 功能強:可備份恢復`split apk`
- 算法多:目前支持的壓縮算法有 `tar(默認)` `lz4` `zstd`
- 速度快:即使使用`zstd`壓縮算法速率依舊快速(對比鈦備份 swift
- 算法多:目前支持的壓縮算法有 `tar(默認)`
- `zstd`
- 速度快:即使使用`zstd`壓縮算法速率依舊快速(對比鈦備份 swift backup
- 腳本自帶tools完整性效驗與壓縮包效驗
## 如何使用
`請認真閱讀以下說明,以減少不必要的問題`
@@ -39,6 +41,9 @@
4. 最後找到`backup_settings.conf`打開後根據提示設置保存,再打開`備份應用.sh`,等候備份結束完成後會在當前目錄生成一個以`Backup_壓縮算法名`命名的資料夾,裡面就是你的軟件備份。把這個資料夾整個保持到其他位置,刷完機后複製回手機,直接在資料夾裡找到`恢復備份.sh`即可恢復備份的所有數據,同樣道理,裡面也有個`appList.txt`使用方法跟第3步驟一樣不需要還原的刪除即可另外進去備份好的資料夾找到單獨應用資料夾有個 Backup腳本 and restore腳本可以單獨備份與恢復腳本。
5. 腳本執行過程中請留意紅色字眼提示有無任何錯誤並且使用恢復腳本時留意恢復結束後是否提示應用存在ssaid假設提示存在ssaid請在恢復後立刻重啟已便套用ssaid,假設恢復ssaid後立刻打開應用會導致ssaid套用失敗因為Android會產生一個新的saaid如此會導致應用卡白屏或是提示需要登錄ssaid是判斷應用是否換過環境與設備的判斷之一保持一致可以減少諸如提示異地登錄或是需要重新登入驗證的方法。
##### 附加說明:如何恢復 以下是關於恢復資料夾內的文件說明?
1. 找到恢復資料夾內的appList.txt打開 編輯列表 保存退出
@@ -47,13 +52,13 @@
3. 重新生成應用列表.sh可用於刷新appList.txt內的列表 使用時機為當你刪除列表內的任何應用備份時,抑或者是恢復備份.sh提示列表錯誤時
4. 終止腳本.sh用於突然想要終止腳本或是意外操時使用 同理備份資料夾也有一個,因為腳本無須後台特性不能使用常規手段終結,故此另外寫了一個腳本終止
4. 終止腳本.sh用於突然想要終止腳本或是意外操時使用 同理備份資料夾也有一個,因為腳本無須後台特性不能使用常規手段終結,故此另外寫了一個腳本終止
# 關於如何更新腳本?
- 目前有三種更新方法,有下列方式
- 1.手動將下載的備份腳本zip不解壓縮直接放到腳本任意目錄(不包括tools目錄內)的任意地方執行任何腳本即可更新,腳本將提示
- 2.此備份的任何腳本在執行時均會聯網檢測腳本版本,當更新時會自己提示與下載,根據腳本提示操作的即可
- 2.此備份的任何腳本在執行時均會聯網檢測腳本版本,當更新時會自己提示與下載,根據腳本提示操作的即可(conf update=1時生效),腳本聯網僅作為檢查更新用途,無任何非法操作亦或是下發格機
- 3.將下載的壓縮包不解壓縮直接放在/storage/emulated/0/Download腳本自動檢測更新並按照提示操作即可
- 4.在QQ群內下載的腳本不解壓縮腳本會自己檢測更新
@@ -61,7 +66,11 @@
- 如果使用過程中出現問題,請攜帶截圖並詳細說明問題,建立 [issues](https://github.com/YAWAsau/backup_script/issues)。
- 酷安 @[落葉淒涼TEL](http://www.coolapk.com/u/2277637)
- QQ組 976613477
- TG https://t.me/backup_script
- TG https://t.me/yawasau_script
## 答疑
- 一個shell腳本內為什麼有dex?
- dex用來實現腳本難以實現的目的目前saaid備份恢復備份恢復運行時權限與ops權限下載與訪問GitHub api來檢查腳本更新列出使用者應用名稱與包名繁體轉簡體均為dex的功能感謝[Android-DataBackup](https://github.com/XayahSuSuSu/Android-DataBackup) by [XayahSuSuSu](https://github.com/XayahSuSuSu)
## 常見問題
@@ -87,7 +96,7 @@ A5;腳本備份時會比對上次備份時的備份SIZE大小 如果有差異就
## 銘謝貢獻
- 臭批老k([kmou424](https://github.com/kmou424)):提供部分與驗證函數思路
- 屑老方([雄氏老方](http://www.coolapk.com/u/665894)):提供自動更新腳本方案
- 依心所言&情非得已c提供appinfo替代aapt作為更高效的dump包名
- 胖子老陳(雨季騷年)
- XayahSuSuSu([XayahSuSuSu](https://github.com/XayahSuSuSu))提供App支持
- XayahSuSuSu([XayahSuSuSu](https://github.com/XayahSuSuSu))提供App支持,dex支持
`文檔編輯Petit-Abba, YuKongA`

View File

@@ -12,6 +12,10 @@ background_execution=0
#1簡體中文 0繁體中文
Shell_LANG=
#備份開始後偽裝亮屏
#1開啟 0關閉
setDisplayPowerMode=0
#自定義備份文件輸出位置 支持相對路徑(留空則默認當前路徑)
Output_path=""
@@ -22,6 +26,12 @@ list_location=""
#1開啟 0關閉
update=1
#自動更新的cdn節點針對國內用戶使用無牆或是使用VPN請設置0
#0 直鏈下載
#1 https://ghfast.top
#2 https://shrill-pond-3e81.hunsh.workers.dev
cdn=1
#自定義屏蔽外部掛載點 例OTG 虛擬SD等 多個掛載點請使用 | 區隔
#屏蔽後不會提示音量鍵選擇不影響Output_path指定外置存儲位置
mount_point="rannki|0000-1"
@@ -35,9 +45,9 @@ user=0
#此外設置0時將同時忽略appList.txt的!與任何黑名單設置(包括黑名單列表)
Backup_Mode=1
#執行生成應用列表.sh時輸出用於recovery救援的卡刷包
#執行start.sh時輸出用於recovery救援的卡刷包
#1輸出 0不輸出
recovery_flash=1
recovery_flash=0
#是否備份使用者數據 (1備份 0不備份 留空強制選擇)
Backup_user_data=1
@@ -52,15 +62,12 @@ backup_media=0
#存在進程忽略備份(1忽略0備份)
Background_apps_ignore=0
#假設你遇到列表輸出異常問題請將此設為1
debug_list=0
#添加自定義備份路徑 例Download DCIM等文件夾 請使用絕對路徑,請勿刪除""
Custom_path="
/storage/emulated/0/Pictures/
/storage/emulated/0/Download/
/storage/emulated/0/Music
/storage/emulated/0/DCIM/
#/storage/emulated/0/Pictures/
#/storage/emulated/0/Download/
#/storage/emulated/0/Music
#/storage/emulated/0/DCIM/
/data/adb
"

9
start.sh Normal file
View File

@@ -0,0 +1,9 @@
#!/system/bin/sh
if [ -f "${0%/*}/tools/tools.sh" ]; then
MODDIR="${0%/*}"
conf_path="${0%/*}/backup_settings.conf"
[ ! -f "${0%/*}/backup_settings.conf" ] && . "${0%/*}/tools/tools.sh"
else
echo "${0%/*}/tools/tools.sh遺失"
fi
. "${0%/*}/tools/tools.sh" | tee "${0%/*}/log.txt"

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

BIN
tools/cmd Normal file

Binary file not shown.

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@@ -1,18 +0,0 @@
[ "$(echo "${0%/*}" | grep -o 'bin.mt.plus/temp')" != "" ] && echo "你媽沒告訴你腳本要解壓縮嗎?傻逼玩兒" && exit 2
if [ -f "${0%/*}/tools/tools.sh" ]; then
MODDIR="${0%/*}"
operate="backup"
conf_path="${0%/*}/backup_settings.conf"
Update_backup="1"
[ ! -f "${0%/*}/backup_settings.conf" ] && . "${0%/*}/tools/tools.sh"
case $(grep -o 'background_execution=.*' "$conf_path" | awk -F '=' '{print $2}') in
0)
. "${0%/*}/tools/tools.sh" | tee "${0%/*}/log.txt" ;;
1)
{
. "${0%/*}/tools/tools.sh" | tee "${0%/*}/log.txt"
} & ;;
esac
else
echo "${0%/*}/tools/tools.sh遺失"
fi

View File

@@ -1,18 +0,0 @@
[ "$(echo "${0%/*}" | grep -o 'bin.mt.plus/temp')" != "" ] && echo "你媽沒告訴你腳本要解壓縮嗎?傻逼玩兒" && exit 2
if [ -f "${0%/*}/tools/tools.sh" ]; then
MODDIR="${0%/*}"
operate="backup"
conf_path="${0%/*}/backup_settings.conf"
Update_backup=""
[ ! -f "${0%/*}/backup_settings.conf" ] && . "${0%/*}/tools/tools.sh"
case $(grep -o 'background_execution=.*' "$conf_path" | awk -F '=' '{print $2}') in
0)
. "${0%/*}/tools/tools.sh" | tee "${0%/*}/log.txt" ;;
1)
{
. "${0%/*}/tools/tools.sh" | tee "${0%/*}/log.txt"
} & ;;
esac
else
echo "${0%/*}/tools/tools.sh遺失"
fi

View File

@@ -1,18 +0,0 @@
[ "$(echo "${0%/*}" | grep -o 'bin.mt.plus/temp')" != "" ] && echo "你媽沒告訴你腳本要解壓縮嗎?傻逼玩兒" && exit 2
if [ -f "${0%/*}/tools/tools.sh" ]; then
MODDIR="${0%/*}"
operate="backup_media"
conf_path="${0%/*}/backup_settings.conf"
Update_backup=""
[ ! -f "${0%/*}/backup_settings.conf" ] && . "${0%/*}/tools/tools.sh"
case $(grep -o 'background_execution=.*' "$conf_path" | awk -F '=' '{print $2}') in
0)
. "${0%/*}/tools/tools.sh" | tee "${0%/*}/log.txt" ;;
1)
{
. "${0%/*}/tools/tools.sh" | tee "${0%/*}/log.txt"
} & ;;
esac
else
echo "${0%/*}/tools/tools.sh遺失"
fi

View File

@@ -1,18 +0,0 @@
[ "$(echo "${0%/*}" | grep -o 'bin.mt.plus/temp')" != "" ] && echo "你媽沒告訴你腳本要解壓縮嗎?傻逼玩兒" && exit 2
if [ -f "${0%/*}/tools/tools.sh" ]; then
MODDIR="${0%/*}"
operate="Getlist"
conf_path="${0%/*}/backup_settings.conf"
Update_backup=""
[ ! -f "${0%/*}/backup_settings.conf" ] && . "${0%/*}/tools/tools.sh"
case $(grep -o 'background_execution=.*' "$conf_path" | awk -F '=' '{print $2}') in
0)
. "${0%/*}/tools/tools.sh" | tee "${0%/*}/log.txt" ;;
1)
{
. "${0%/*}/tools/tools.sh" | tee "${0%/*}/log.txt"
} & ;;
esac
else
echo "${0%/*}/tools/tools.sh遺失"
fi

View File

@@ -1,12 +0,0 @@
if [ -f "${0%/*}/tools/tools.sh" ]; then
MODDIR="${0%/*}"
operate="kill_script"
conf_path="${0%/*}/backup_settings.conf"
. "$MODDIR/tools/tools.sh"
echoRgb "等待腳本停止中,請稍後....."
kill_Serve && echoRgb "腳本終止"
exit
else
[[ $(echo "${0%/*}" | grep -o 'bin.mt.plus/temp') != "" ]] && echo "你媽沒告訴你腳本要解壓縮嗎?傻逼玩兒" && exit 2
echo "${0%/*}/tools/tools.sh遺失"
fi