-
-
如何有效地备份和恢复单个应用的文件,还在被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,即可正常地备份与恢复数据。
体现为以下自带恢复备份的界面用时会明显长于不替换返回值
这是本逆向实验室在开发备份功能时归纳得到的两个判据入口,感兴趣的可以自己动手做实验试一下。
赞赏
他的文章
赞赏
雪币:
留言: