【发布时间】:2019-12-06 09:54:05
【问题描述】:
在某些 Android 设备(至少 Galaxy S7)中有一个奇怪的功能:它们会在重新安装应用程序时恢复数据(例如 SQLite 数据库)。这种行为会中断我的应用程序,因为数据应该在卸载期间被删除。
当手动卸载应用时,如何强制 Android 完全删除所有数据?
【问题讨论】:
-
在清单文件中使用
android:allowBackup="false"
标签: android
在某些 Android 设备(至少 Galaxy S7)中有一个奇怪的功能:它们会在重新安装应用程序时恢复数据(例如 SQLite 数据库)。这种行为会中断我的应用程序,因为数据应该在卸载期间被删除。
当手动卸载应用时,如何强制 Android 完全删除所有数据?
【问题讨论】:
android:allowBackup="false"
标签: android
对于您的问题,这很简单。只需将以下行添加到您应用的清单文件的 <application> 标记中。
android:allowBackup="false"
这使得卸载时不会保存应用的数据。
【讨论】:
您必须禁用来自 AndroidManifest.xml 的备份
android:allowBackup="false"
tools:replace="android:allowBackup"
注意:如果您使用任何使用android:allowBackup="true" 的第三方library,则会发生冲突并报错。要解决此问题和override 设置,您还必须添加tools:replace="android:allowBackup"。
【讨论】:
这是一个隐私问题。如果应用程序包含敏感数据,建议禁止用户备份应用程序。有权访问备份文件(即android:allowBackup="true"),即使在非 root 设备上也可以修改/读取应用程序的内容。
解决方案 - 在清单文件中使用 android:allowBackup="false"。
阅读这篇文章以了解更多信息:https://resources.infosecinstitute.com/android-hacking-security-part-15-hacking-android-apps-using-backup-techniques/
【讨论】: