首页
社区
课程
招聘
如何有效地备份和恢复单个应用的文件,还在被allowBackup折腾吗
发表于: 2025-5-29 01:00 82

如何有效地备份和恢复单个应用的文件,还在被allowBackup折腾吗

2025-5-29 01:00
82

安卓系统内其实是有一套成熟的文件备份/恢复方案的,也即运行

1
2
3
adb backup -obb -shared -widgets {appname} -f back.ab
 
adb restore back.ab

或者在本机shell环境下执行

1
2
3
bu backup -obb -shared -widgets {appname} > back.ab
 
bu restore < back.ab

但是似乎在高版本下这套方案很少起作用了。原因即是AndroidManifest.xml文件里声明的

1
<application  ... android:allowBackup="false" ...>

会阻止自带的backup服务正常运行,谷歌也是出于对应用隐私服务的保护

那么这个到底是怎么工作的呢
归根结底,其实是BackupEligibilityRules类下两个函数的判定导致了这个行为差异

1
2
3
public boolean isAppBackupAllowed(ApplicationInfo app)
 
public boolean appIsEligibleForBackup(ApplicationInfo app)

实测在需要备份时,hook一下系统服务,对这两个函数临时取恒返回true,即可正常地备份与恢复数据。

体现为以下自带恢复备份的界面用时会明显长于不替换返回值
恢复界面

这是本逆向实验室在开发备份功能时归纳得到的两个判据入口,感兴趣的可以自己动手做实验试一下。


[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回