当前位置: 首页 > 知识库问答 >
问题:

什么是“Android:AllowBackup”?

高化
2023-03-14

自从新的ADT预览版本(第21版)以来,他们有了一个新的lint警告,告诉我清单文件上的下一件事(在应用程序标记中):

应该显式地将android:allowbackup设置为true或false(默认情况下为true,这可能会对应用程序的数据产生一些安全影响)

在官方网站上,他们写道:

几个新的检查:您必须明确决定应用程序是否允许备份,以及一个标签检查。有一个新的命令行标志用于设置库路径。编辑时对增量林特分析的许多改进。

这是什么警告?什么是备份功能,如何使用它?

还有,为什么警告告诉我它对安全有影响?禁用此功能的缺点和优点是什么?

清单的备份有两个概念:

  • “Android:AllowBackup”允许通过adb进行备份和还原,如下所示:

是否允许应用程序参与备份和还原基础结构。如果将此属性设置为false,则不会执行应用程序的备份或还原,即使是全系统备份,否则会导致通过ADB保存所有应用程序数据。此属性的默认值为true。

这被认为是一个安全问题,因为人们可以通过ADB备份您的应用程序,然后将您的应用程序的私人数据进入他们的PC。

然而,我认为这并不是一个问题,因为大多数用户不知道adb是什么,如果他们知道,他们也会知道如何根设备。ADB功能只有在设备启用了调试功能时才会起作用,而这需要用户启用它。

因此,只有将设备连接到PC并启用调试功能的用户才会受到影响。如果他们的PC上有一个使用ADB工具的恶意应用程序,这可能会有问题,因为该应用程序可以读取私有存储数据。

我认为Google应该在开发者类别中添加一个默认禁用的功能,允许通过ADB备份和恢复应用程序。

  • “Android:BackupAgent”允许使用云的备份和还原功能,如下所示:

实现应用程序的备份代理(BackupAgent的一个子类)的类的名称。属性值应该是完全限定的类名(例如,“com.example.project.MyBackupAgent”)。但是,作为速记,如果名称的第一个字符是句点(例如,“.MyBackupAgent”),则将其追加到元素中指定的包名称之后。没有默认值。必须指定名称。

这不是安全问题。

共有1个答案

葛俊
2023-03-14

对于此lint警告,以及所有其他lint警告,请注意,您可以得到比仅仅是一行错误消息中的内容更全面的解释;你不必在网上搜索更多的信息。

如果您是通过Eclipse使用lint,那么打开lint warnings视图,您可以在其中选择lint错误并看到更长的解释,或者在错误行上调用quick fix(Ctrl-1),其中一个建议是“Explain this issue”,它也会弹出一个更完整的解释。如果您不使用Eclipse,您可以从lint生成一个HTML报告(lint--html ),其中包括警告旁边的完整解释,或者您可以要求lint解释一个特定的问题。例如,与allowBackup相关的问题具有idallowBackup(显示在错误消息的末尾),因此更完整的解释是:

$ ./lint --show AllowBackup
AllowBackup
-----------
Summary: Ensure that allowBackup is explicitly set in the application's
manifest

Priority: 3 / 10
Severity: Warning
Category: Security

allowBackup属性确定应用程序的数据是否可以备份和还原,如本文所述。

默认情况下,此标志设置为true。当此标志设置为true时,用户可以使用ADB BackupADB Restore备份和还原应用程序数据。

这可能会对应用程序造成安全后果。ADB备份允许已启用USB调试的用户从设备复制应用程序数据。一旦备份,用户就可以读取所有应用程序数据。ADB Restore允许从用户指定的源创建应用程序数据。还原后,应用程序不应假定数据、文件权限和目录权限是由应用程序本身创建的。

设置allowbackup=“false”将应用程序从备份和还原中选择出来。

若要修复此警告,请确定应用程序是否应支持备份,并显式设置android:allowBackup=(truefalse)

单击此处了解更多信息

 类似资料:
  • 问题内容: 什么是selenium? 当您打开Selenium的官方页面时,您首先读到的是“什么是Selenium?”中的“ Selenium automates browser”。部分。“selenium的哪个部分适合我?”部分 下面提供了Selenium WebDriver和Selenium IDE之间的选择。由此,我推断出Selenium是一组工具,并且该集合包括IDE,WebDriver

  • 硒是什么? 当你打开Selenium的官方页面,首先看到的是“什么是Selenium”中的“Selenium自动浏览器”。节。“硒的哪一部分对我合适?”下面提供了Selenium WebDriver和Selenium IDE之间的选择。由此,我推断Selenium是一个工具集合,该集合包括IDE、WebDriver API(语言绑定)、网格、Selenium独立服务器、浏览器驱动程序。一个人必须下

  • 本文向大家介绍什么是事务?什么是锁?相关面试题,主要包含被问及什么是事务?什么是锁?时的应答技巧和注意事项,需要的朋友参考一下 答:事务就是被绑定在一起作为一个逻辑工作单元的SQL语句分组,如果任何一个语句操作失败那么整个操作就被失败,以后操作就会回滚到操作前状态,或者是上有个节点。为了确保要么执行,要么不执行,就可以使用事务。要将有组语句作为事务考虑,就需要通过ACID测试,即原子性,一致性,隔

  • 我在这里读到 写入共享引用类型<代码> 理解<代码> 在另一个地方,我阅读了以下代码: 结构人中的a是什么 名称的含义是什么: 如果想避免使用

  • 我几天前听说了Docker的事,想过去看看。 但事实上,我不知道这个“容器”的用途是什么? 什么是容器? 它能取代一个专门用于开发的虚拟机吗? 简单地说,在公司中使用Docker的目的是什么?主要的优势?

  • 本文向大家介绍什么是batch normalization,原理是什么?相关面试题,主要包含被问及什么是batch normalization,原理是什么?时的应答技巧和注意事项,需要的朋友参考一下 Batch Normalization就是在训练过程,每一层输入加一个标准化处理。 深度神经网络之所以复杂有一个原因就是由于在训练的过程中上一层参数的更新使得每一层的输入一直在改变。所以有个办法就是去