由于升级到 Android 12 时遇到的问题,使得 TWRP 变得无法解密 /data 分区。为了继续使用 borgbackup
在 TWRP 中对 /data 进行备份,我们需要一个替代方案来满足以下条件:
- 解密的 /data 分区
- 不包含任何正在修改 /data 的活动进程(最好使其只读)
- 有 shell 访问权限
- 拥有一个可写入的根文件系统,以便可以创建子目录并挂载 tmpfs 文件系统
方案一:使用 TWRP 系统更新 3.7.0 及以上版本进行加密分区支持
- 升级 TWRP
- 升级到 TWRP 版本 3.7.0 或更高。从 TWRP 官网 可以下载最新的更新补丁。
- 使用 USB 数据线将手机连接到电脑,并按照 TWRP 指导的步骤进行固件刷写。
方案二:部分关机进入恢复模式(recovery runlevel)
- 尝试进入恢复模式
- 通过长按电源按钮和音量减小键的方式来启动设备,看是否能够直接进入恢复模式。如果上述方法不成功,则可以手动触发:
sh
adb shell su -c "svc power partial-restart" 这应该会将设备部分关机到一个类似于 TWRP 的状态。
挂载只读 /data 分区
进入恢复模式后,尝试将
/data
卷以只读方式挂载:
sh
mount -o remount,ro /dev/block/mmcblk0p29 /data确认成功
- 执行成功后,检查是否有对
mount: '/dev/block/mmcblk0p29'->'/data': Device or resource busy
的错误出现。如果未发生资源繁忙的错误,则说明/data
已经成功挂载为只读。
方案三:使用第三方备份应用
- 下载并安装 Balti Migrate
- 通过以下链接或在 Play 商店中找到相关软件,以确保设备满足兼容性要求:
https://play.google.com/store/apps/details?id=balti.migrate 安装完应用后,参考官方文档或教程进行数据备份操作。
验证是否为原子备份
核查 Balti Migrate 的实际工作方法及机制。可以尝试在不同设备上使用该工具,确定其能否满足所有要求条件之一。
挂载 tmpfs 文件系统并开始备份
sh
mount -o remount,rw /data /mnt/data_backup
mount -t tmpfs tmpfs /mnt/tmpfs
cp -R /mnt/data_backup/* /mnt/tmpfs/
通过上述手段,用户理论上能实现针对当前特殊配置环境下的有效数据备份行为。需要注意的是,在不同硬件和软件组合下可能需要进行相应地调整。
正文完