多亲F21Pro转F22Pro:无法通过ADB备份恢复安卓应用数据求助
多亲F21 Pro到F22 Pro的ADB数据迁移解决方案
一、解决adb shell pm list packages | sort执行失败的问题
- 问题原因:部分Android版本内置shell不支持直接执行管道命令,或是ADB调试权限未完全授予
- 修复步骤:
- 在旧机重新开启「USB调试」,同时找到并开启「USB调试(安全设置)」(部分机型命名为「允许通过USB调试修改权限」)
- 断开并重新连接USB,在设备弹窗中勾选「始终允许这台计算机调试」并确认
- 先执行
adb shell pm list packages获取包列表,将输出复制到本地后再手动排序,避免使用管道命令
二、修复ADB备份文件过小、恢复无效的问题
未解锁且无root的设备,ADB默认仅能备份应用清单中标记android:allowBackup="true"的应用数据,多数游戏的存档因存储在私有目录或未开启备份权限,会导致备份不全、恢复后无效果。
方案1:指定包名精准备份允许备份的应用
- 用修复后的命令拿到需要迁移的应用包名(比如目标游戏的包名)
- 执行备份命令:
adb backup -f target_backup.ab -apk <目标包名1> <目标包名2> - 关键操作:执行命令后必须保持旧机屏幕点亮,手动点击屏幕上的「备份我的数据」按钮,等待备份完成(不要中途取消)
- 恢复时在新机执行:
adb restore target_backup.ab,同样需要在新机屏幕确认恢复操作
方案2:手动迁移游戏存档(针对不允许备份的游戏)
游戏存档大多存放在/sdcard/Android/data或/sdcard/Android/obb目录,可通过ADB直接导出导入:
- 找到游戏对应的包名,比如
com.tencent.tmgp.pubgmhd - 导出数据:
adb pull /sdcard/Android/data/com.tencent.tmgp.pubgmhd ./pubgm_data adb pull /sdcard/Android/obb/com.tencent.tmgp.pubgmhd ./pubgm_obb - 新机先安装对应游戏,关闭游戏进程后执行导入:
adb push ./pubgm_data /sdcard/Android/data/com.tencent.tmgp.pubgmhd adb push ./pubgm_obb /sdcard/Android/obb/com.tencent.tmgp.pubgmhd - 重启游戏即可读取原有存档
方案3:解决单个APK备份仅生成1KB文件的问题
- 先获取APK的实际安装路径:
adb shell pm path <目标包名>,输出类似package:/data/app/com.example.game-2/base.apk - 用ADB pull导出完整APK:
adb pull /data/app/com.example.game-2/base.apk ./target.apk - 安装到新机:
adb install ./target.apk
三、注意事项
- 确保两台设备的Android版本一致(多亲F21 Pro和F22 Pro均基于Android 11/12,符合要求)
- 备份/恢复过程中,设备屏幕需保持点亮,不要锁屏
- 若迁移后游戏仍无法读取存档,可尝试清除游戏数据后再次导入存档文件
内容的提问来源于stack exchange,提问作者Milán Vass
相关产品推荐
相关产品推荐

