Backup_script 数据备份脚本
Stars Download Release License Channel
概述
创作该脚本是为了使用户能够更加完整地备份/恢复应用数据。支持设备必须符合以下条件:Android 8+ 及 arm64 架构。
由于本人是台湾人,所以发布的版本为繁体版(针对中国大陆系统,脚本会自动将自身翻译为简体中文)。
优势
- 数据完整:在更换系统之后,原有的数据全部保留,无需重新登陆或者下载额外数据包。
- 支持备份 SSAID:可完美备份 LINE 等应用。
- 支持备份应用权限:可备份运行时权限与 Ops 权限。
- 易操作:简单几步即可备份应用完整数据!
- 限制少:不限制机型,可跨安卓版本。
- 功能强:可备份恢复 Split APK。
- 算法多:目前支持的压缩算法有 tar(默认)和 zstd。
- 速度快:即使使用 zstd 压缩算法,速率依旧快速(对比钛备份、Swift Backup)。
- 脚本自带 Tools 完整性校验与压缩包校验。
如何使用
请认真阅读以下说明,以减少不必要的问题。
推荐工具:MT 管理器。若使用 Termux,则请勿使用 tsu。
!!!以下操作皆须 ROOT 权限!!!
首先将下载 github下载地址 到的脚本解压到任意目录后,可以看到以下目录结构。
警告! 不论备份或是恢复都必须保证tools
目录的存在与完整性,否则脚本失效或是二进制调用失败。脚本结构与说明:
backup_script.zip
│
├── tools
│ ├── Device_List
│ ├── bc
│ ├── busybox
│ ├── classes.dex
│ ├── cmd
│ ├── jq
│ ├── find
│ ├── keycheck
│ ├── soc.json
│ ├── tar
│ ├── tools.sh
│ ├── zip
│ └── zstd
├── backup_settings.conf <--- 脚本默认行为设置
└── start.sh <--- 执行脚本- 然后执行
start.sh
脚本,使用音量键选择 “生成应用列表”。等待脚本输出提示结束,此时会在当前目录生成一个appList.txt
,这就是你当前安装的所有第三方应用(脚本会屏蔽预装应用,可于backup_settings.conf
设置需要备份的包名)。 - 现在打开生成的
appList.txt
,根据里面的提示操作后保存,这样你就设置好了需要备份的软件。 - 最后找到
backup_settings.conf
打开后根据提示设置并保存,再执行start.sh
,使用音量键选择 “备份应用”。备份结束后会在当前目录生成一个以Backup_压缩算法名
命名的文件夹,里面就是你的软件备份。 - 将这个文件夹整个保存到其他位置,刷完机后复制回手机,直接执行
Backup_压缩算法名/start.sh
即可恢复备份的所有数据。 - 恢复时,同样道理,里面也有个
appList.txt
,使用方法跟第 3 步骤一样,不需要还原的应用条目删除即可。 另外,进入备份好的文件夹,找到单独应用的文件夹,里面有
backup.sh
和recover.sh
可以用于单独备份与恢复该应用。重要提示:
- 脚本执行过程中请留意红色字眼提示有无任何错误。
- 使用恢复脚本时,留意恢复结束后是否提示应用存在 SSAID。假设提示存在 SSAID,请在恢复后立刻重启设备以便套用 SSAID。
假设恢复 SSAID 后立刻打开应用,会导致 SSAID 套用失败,因为 Android 会产生一个新的 SSAID,这会导致应用卡白屏或是提示需要重新登录。SSAID 是判断应用是否换过环境与设备的依据之一,保持一致可以减少诸如提示异地登录或需要重新登录验证的情况。
附加说明:如何恢复
- 找到恢复文件夹内的
appList.txt
打开,编辑列表(删除不想恢复的应用条目),保存退出。 找到
start.sh
,授予 ROOT 权限,使用音量键选择 “恢复备份”,然后等待脚本结束即可。关于
start.sh
的其他功能:- “重新生成应用列表”功能:可用于刷新
appList.txt
内的列表。使用时机为当你删除列表内的任何应用备份时,或者是恢复备份提示列表错误时。 “终止脚本”功能:用于突然想要终止脚本或是意外操作时使用。因为脚本无须后台的特性不能使用常规手段终止,故此另外写了一个终止功能。
关于如何更新脚本?
目前有三种更新方法:
- 手动更新:将下载的备份脚本 ZIP 压缩包(不解压缩)直接放到脚本任意目录(不包括
tools
目录内)的任意地方,然后执行任何脚本即可,脚本将提示更新。 - 自动检测更新:此备份的任何脚本在执行时均会联网检测脚本版本,当有更新时会自行提示与下载,根据脚本提示操作即可(需要在
backup_settings.conf
中设置update=1
时生效)。脚本联网仅作为检查更新用途,无任何非法操作。 下载目录检测:将下载的压缩包(不解压缩)直接放在
/storage/emulated/0/Download
目录下,脚本会自动检测更新,并按照提示操作即可。关于反馈
如果使用过程中出现问题,请携带截图并详细说明问题,通过以下渠道反馈:
- 酷安:@落叶凄凉TEL
- QQ 群:976613477 (很少上,尽量来 TG)
Telegram: https://t.me/yawasau_script
答疑
问:一个 Shell 脚本内为什么有 dex?
答: dex 用来实现脚本难以实现的功能。目前 SSAID 备份恢复、备份恢复运行时权限与 Ops 权限、下载与访问 GitHub API 来检查脚本更新、列出用户应用名称与包名、繁体转简体均为 dex 的功能实现。感谢 Android-DataBackup by XayahSuSuSu。
常见问题
Q1:批量备份大量提示失败怎么办?
A1: 退出脚本,删除/data/backup_tools
目录,再重新备份一次。Q2:批量恢复大量提示失败怎么办?
A2: 退出脚本,按照上面同样操作。如果还是错误,请通过反馈渠道建立 issue,帮你排除错误。Q3:微信/QQ 能不能完美备份 & 恢复数据?
A3: 不能保证,有的人说不能,有的人说能,所以备份时会有提示。建议用你信赖的备份软件针对微信/QQ 再备份一次,以防丢失重要数据。Q4:为什么部分应用备份很久?例如王者荣耀、PUBG、原神、微信、QQ。
A4: 因为连同样软件的数据包(如 OBB 文件等)都一起备份了,例如原神数据包可能超过 9GB,当然需要较长时间,恢复时也是同理,还需要解压缩数据包。Q5:脚本每次备份都是全新备份吗?
A5: 脚本备份时会比对上次备份文件的大小,如果有差异就备份,反之则忽略备份以节省时间。铭谢贡献
感谢以下各位的贡献与支持:
- 臭批老k (kmou424):提供部分与验证函数思路
- 屑老方 (雄氏老方):提供自动更新脚本方案
- 胖子老陈 (雨季骚年)
XayahSuSuSu (XayahSuSuSu):提供 App 支持, dex 支持
评论 (0)