and*_*per 252 android adt compiler-warnings android-lint android-backup-service
自从新的ADT预览版本(版本21)以来,它们有一个新的lint警告,它告诉我清单文件(在应用程序标记中)的下一件事:
应该明确地将android:allowBackup设置为true或false(默认情况下为true,这可能会对应用程序的数据产生一些安全隐患)
在官方网站上,他们写道:
一些新检查:您必须明确决定您的应用是否允许备份和标签检查.有一个新的命令行标志用于设置库路径.编辑时增量lint分析的许多改进.
这警告是什么?什么是备份功能,以及如何使用它?
另外,为什么警告告诉我它有安全隐患?禁用此功能有哪些缺点和优点?
清单有两种备份概念:
是否允许应用程序参与备份和还原基础结构.如果此属性设置为false,则不会执行应用程序的备份或还原,即使是全系统备份也会导致所有应用程序数据都通过adb保存.此属性的默认值为true.
这被认为是一个安全问题,因为人们可以通过ADB备份您的应用,然后将您应用的私人数据导入他们的PC.
但是,我认为这不是一个问题,因为大多数用户不知道什么是adb,如果他们这样做,他们也会知道如何根设备.ADB功能仅在设备启用了调试功能时才有效,这需要用户启用它.
因此,只有将其设备连接到PC并启用调试功能的用户才会受到影响.如果他们的PC上有使用ADB工具的恶意应用程序,这可能会有问题,因为应用程序可以读取私有存储数据.
我认为Google应该在开发人员类别中添加默认禁用的功能,以允许通过ADB备份和恢复应用.
实现应用程序备份代理的类的名称,BackupAgent的子类.属性值应该是完全限定的类名(例如"com.example.project.MyBackupAgent").但是,作为简写,如果名称的第一个字符是句点(例如,".MyBackupAgent"),则它将附加到元素中指定的包名称.没有默认值.必须指定名称.
这不是安全问题.
Tor*_*bye 135
对于此lint警告以及所有其他lint警告,请注意您可以获得更全面的解释,而不仅仅是单行错误消息中的内容; 您无需在网上搜索更多信息.
如果您通过Eclipse使用lint,请打开lint警告视图,在那里您可以选择lint错误并查看更长的解释,或者在错误行上调用quickfix(Ctrl-1),其中一个建议是"Explain"这个问题",这也将提供更全面的解释.如果您不使用Eclipse,则可以从lint(lint --html <filename>)生成HTML报告,其中包括警告旁边的完整说明,或者您可以要求lint解释特定问题.例如,与allowBackup相关的问题具有id"AllowBackup"(显示在错误消息的末尾),因此更全面的解释是:
$ ./lint --show AllowBackup
AllowBackup
-----------
Summary: Ensure that allowBackup is explicitly set in the application's
manifest
Priority: 3 / 10
Severity: Warning
Category: Security
Run Code Online (Sandbox Code Playgroud)
allowBackup属性确定是否可以备份和还原应用程序的数据.这里记录在案.
By default, this flag is set to true. When this flag is set to true,
application data can be backed up and restored by the user using adb backup
and adb restore.
This may have security consequences for an application. adb backup allows
users who have enabled USB debugging to copy application data off of the
device. Once backed up, all application data can be read by the user. adb
restore allows creation of application data from a source specified by the
user. Following a restore, applications should not assume that the data, file
permissions, and directory permissions were created by the application
itself.
Setting `allowBackup="false"` opts an application out of both backup and
restore.
To fix this warning, decide whether your application should support backup,
and explicitly set `android:allowBackup=(true|false)`"
Run Code Online (Sandbox Code Playgroud)
点击这里获取更多信息
Igo*_*sky 24
以下是这种意义上的备份真正意味着:
Android的备份服务允许您将持久性应用程序数据复制到远程"云"存储,以便为应用程序数据和设置提供还原点.如果用户执行恢复出厂设置或转换为新的Android设备,则系统会在重新安装应用程序时自动恢复备份数据.这样,您的用户无需重现以前的数据或应用程序设置.
〜来自http://developer.android.com/guide/topics/data/backup.html
您可以在此处以开发人员的身份注册此备份服务:https: //developer.android.com/google/backup/signup.html
可以备份的数据类型是文件,数据库,sharedPreferences,缓存和lib.这些通常存储在设备的/data/data/[com.myapp]目录中,该目录是读保护的,除非您具有root权限,否则无法访问.
更新:您可以在BackupManager的api doc:BackupManager上看到此标志
这没有明确提到,但基于以下文档,我认为应用程序需要声明并实现BackupAgent才能使数据备份正常工作,即使在allowBackup设置为true的情况下(这是默认值).
http://developer.android.com/reference/android/R.attr.html#allowBackup http://developer.android.com/reference/android/app/backup/BackupManager.html http://developer.android. COM /引导/主题/数据/ backup.html
| 归档时间: |
|
| 查看次数: |
126837 次 |
| 最近记录: |