在更换Android手机,或者刷机。怎么将原有数据迁移到新的数据上呢
比如:

  • 微信的聊天记录
  • 收集的文档
  • 珍藏的视频
  • 镜头下的美好时光
  • 连接过的WIFI

在以往,更喜欢用刷机助手这类的工具实现这样的功能。但是近几年,随着用户的刷机需求减少。导致这些商业公司接连倒闭。

于是不得不寻找其他更好用的方法。在热心酷友的建议下,接触了钛备份

钛备份

需要ROOT权限,可以备份应用数据。但是因为备份文件是存储在当前手机上的,也就是说,在手机存储容量不够的情况下,不能使用该方案。而且那个红绿配色,不忍直视。

ADB-backup

不需要ROOT权限,在PC上备份数据。可以通过USB/WIFI操作。还算是比较方便。

缺点

不能完整备份
如果应用的描述文件(AndroidManifest.xml)中,设置了android:allowBackup="false"。那么,就无法通过该命令备份该APP。例如:微信

备份命令

命令说明

1
2
3
4
5
6
7
adb backup [-system|nosystem] -all [-apk|-noapk] [-shared|-noshared] -f <ab包储存位置> <应用包名>
// [-system|nosystem] 是否包含系统应用,默认为-system,一般备份全部应用时才用到
// -all 带有此参数会备份所有应用
// [-apk|-noapk] 备份数据的同时是否备份apk,默认为-noapk
// [-shared|-noshared] 是否备份设备内置存储或SD卡的内容,比如音乐、图片和视频,默认为-noshared
// -f <ab包储存位置> 选择备份的文件存放在哪里,可根据喜好自行替换
// <应用包名> 备份单个应用需要知道包名

命令示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// 一句命令全部备份,还原步骤同上
adb backup -apk -shared -all -f D:\backup.ab

// 不备份系统应用,换新机时可以用
adb backup -apk -nosystem -shared -all -f D:\backup.ab

// 不备份系统应用和内置存储媒体等内容
adb backup -apk -nosystem -noshared -all -f D:\backup.ab

// 备份全部用户应用数据,但不备份apk
adb backup -noapk -nosystem -noshared -all -f D:\backup.ab

// 还原
adb restore D:\backup.ab

若不懂ADB这些,可以看详细操作步骤。使用adb免root迁移应用数据

查看已备份文件

** 非必要操作

由于AndroidBackUp程序用的是自有格式,所以需要一定处理才能解压出来原始数据。

** 注意MIUI系统的备份文件,会添加上自己搞的文件头。导致不兼容。因此需要WinHEX等16进制编辑工具,将不兼容的文件头删掉。参考文章

1
2
3
// 将备份文件进行转码
java -jar abe.jar unpack note3.ab note3.rar
// 解压即可看到原始的文件信息

TWRP

钛备份一样,需要ROOT权限(没有ROOT权限,恐怕你也刷不了twrp recovery)。
进入recovery界面

优点

  • 可以选择要备份的分区
  • 可以备份到手机或者电脑

缺点

不能跨机型、跨版本

备份到手机

在手机端的 TWRP recovery 中指定对应的操作即可。为了防止刷机时候被误删掉,最好复制一份到电脑。

备份到电脑

1
2
3
adb backup --twrp [分区]  -f 备份的本地文件名
# 示例
adb backup --twrp boot data -f D:\backup.ab

从电脑还原

1
adb restore backup.ab

文中下载资源

abe.jar
github上的abe.jar
TWRP