logo
关于我们

技术分享

技术分享 不关 Android 云备份坑了开发和测试!

不关 Android 云备份坑了开发和测试!

2021-06-01

一、序

之前水群的时候,有个群友在小米手机上,碰到个很奇怪的现象。

在 SP 中持久化的数据,App 卸载重装之后,又被还原了。还原就还原吧,其实也不是什么大事,但是还原的并不是最后一次使用的数据,而是之前不知道什么时候使用的数据,这就变成问题了。

举个例子:这个手机用 A 账户登录了,在 SP 中存储了我们登录的信息,例如 uid、Token 之类的数据,客户端通过这些数据去判断是否登录,也就是说有这些数据可以证明这个用户是有效的登录用户。然后卸载重装,再用 B 账户登录,莫名其妙的再下次启动时,又变回 A 账户了。并且再卸载再重装,还原的还是 A 账户,你说巧不巧?

这个问题的现场,是出现在小米 6x 手机上,系统是 Android 8.0.1。

接下来就是分析这个问题的原因。

二、被还原是谁的锅?

2.1 什么原因?

现象也说了,App 数据被恢复到之前的某个状态了,那肯定不存在“卸载残留”一说,并且也在卸载后查看了应用数据存储的目录,确实已经被清理掉了。

那么猜想应该是被系统备份后还原了,尝试修改 android:allowBackup 属性。

不关 Android 云备份坑了开发和测试!

经过试验也验证了这个猜想,确实是被系统备份了,并且在下次安装时还原了。

2.2 什么是 allowBackup?

那么,allowBackup 是干什么的呢?

从名字就可以看出,这其实是一个备份功能。在 Android API level 8 开始引入的系统级备份和恢复功能。

可以通过在清单文件中设置 android:allowBackup 属性,来为其标记开关。在允许备份后,可以通过 adb 命令 adb backup 和 adb restore 来将应用数据进行备份和恢复。该属性默认值为 true。

利用备份功能,我们可以在格式化手机、换机前,将当前手机的很多信息备份一份,之后再进行还原,这其实是为了方便用户的功能。

早期这个属性争议挺大,很重要的一个问题是安全隐患。利用备份功能,可以在 A 手机上对某个 App 进行备份,然后在 B 手机上进行还原。

也就是说,如果 App 本身没有对手机做限制,同时开启了 allowBackup,有人拿到你的手机后,可以将手机上一些 App 备份后再换一台手机还原,这当然是存在一定的安全隐患了。

例如最近比较火的灵魂社交 Soul,allowBackup 就是开启状态。

不关 Android 云备份坑了开发和测试!

试想一下,有人拿到我们的手机,将其数据备份后是不是就可以知道我们在与谁的聊天呢?有个懂技术的对象好可怕呀!

我并没有用过 Soul,也没有尝试备份,不确定 Soul 对登录设备有没有判断。

虽说存在隐患,但是大部分情况下还是安全的。因为当我们使用 adb backup 命令备份的时候,是会要求输入密码的。

假如密码已经被泄露了,那就根本不存在安全隐患的问题,因为钥匙就在别人哪儿,锁等于形同虚设。

2.3 自动备份

是不是我们不主动触发备份,就不存在问题呢?并不是。

在安装了 Google Play 服务的手机上,开启备份并且在设置中开启自动备份后,是可以定时自动备份的。

不关 Android 云备份坑了开发和测试!

国内的一些厂商,也会在自己的 ROM 中实现备份功能,例如前文提到的小米的 MIUI。

这就引发了备份的数据不可控的问题。在我们开发时,频繁卸载、安装,可能就会在某个时刻恢复到之前备份的数据,这并不是我们想看到的。

遇到这个问题,在清单文件中,关闭备份就好了。

三、小结时刻

一切都是自动备份的锅,没特殊需求,在发布的 App 上,建议显式关闭 allowBackup 属性。

这个服务对开发者是一个黑盒子,它具体什么时机,做了什么,并不是我们开发者可控的,所以索性直接关掉就好了。而且在不同的设备上表现不一致,本身也不是我们想要的功能。

重要的数据应该在线上存储,而不重要的数据,丢了也就丢了。卸载重新安装这种场景,丢一些数据应该是可以接受的。

简单总结一下本文的内容:

  1. android:allowBackup 属性用于标识是否开启备份数据功能。

  2. 备份和恢复可以通过 adb 命令主动触发。

  3. 当开启云备份时,系统服务(已实现的系统)可能会定期自动备份 App 数据。

  4. 系统备份实现机制不透明,建议上线 App 前将这个属性关闭。

  5. 虽说是云备份,但断网并不能阻止系统服务恢复备份,应该有缓存(在小米手机上已验证)。

云祺备份软件,云祺容灾备份系统,虚拟机备份,数据库备份,文件备份,实时备份,勒索软件,美国,图书馆
  • 标签:
  • 其他

您可能感兴趣的新闻 换一批

现在下载,可享30天免费试用

立即下载