allowBackup
简介
允备份系统和用户数据否并引Android安全性问题。
谷歌2010发布Android 2.2 Froyo(冻酸奶)系统,引系统备份功能,允用户备份系统应用和第三方apk安装包及应用数据以便刷机或数据丢失后恢复应用。
第三方应用开发者需在应用AndroidManifest.xml配allowBackup(默true)来设应用数据能备份或恢复否。true则应用数据可在手机未获ROOT时通adb调试工具备份和恢复,这即允许恶意攻击者在接触用户手机情况下于短时内启动手机USB调试窃取那些受到AllowBackup漏洞影响的应用的数据,致用户隐私泄露甚至财产损失。
提示
android:allowBackup="true"
时AndroidStudio提如下:
Warning:(25, 6) On SDK version 23 and up, your app data will be automatically backed up and restored on app install. Consider adding the attribute `android:fullBackupContent` to specify an `@xml` resource which configures which files to backup. More info: https://developer.android.com/training/backup/autosyncapi.html
译文
警告:(25,6)在SDKVersion 23和更高版本上,应用程序数据将在应用程序安装上自动备份和恢复。考虑添属性‘android:Fulbackupcontent’以指定一`@xml‘资源,该资源配置哪些文件要备份。更多信息:https://developer.android.com/training/backup/autosyncapi.html。
设置
方式一
android:allowBackup=“false”
方式二
android:fullBackupContent
指明备份数据规则,Android 6.0引入,配合Auto Backup for Apps用。如下:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.my.appexample">
...
<app ...
android:fullBackupContent="@xml/mybackupscheme">
</app>
...
</manifest>
示例代码中android:fullBackupContent
指定一XML文件。文件名mybackupscheme.xml,位于应用开发项目res/xml/目录。此配置文件包括备份哪些文件的规则。如代码仅将一特定数据库文件排除备份外,所有其它文件均予以备份。
<?xml version="1.0" encoding="utf-8"?>
<full-backup-content>
<exclude domain="database" path="device_info.db"/>
<full-backup-content>
检测
引申
fullBackupOnly
指明Auto Backup for Apps功能可用时开启它否。true时Android 6.0+手机应用将执行Auto Backup for Apps功能。之前Android版中,你应用将自动忽略该标识并切换成Key/Value Backups。
uses-feature
简介
定义APP用硬软件功能(系统可选功能列表Features Reference)。标签描述APP所依赖硬软件功能,不负责向系统请求权限。uses-feature更像过滤器,google play据此过滤设备。用户于uses-feature声明用相机时google play对无相机设备不显该APP;用户同设uses-feature之android:required
为false时google play仍对无相机设备显该APP。
<uses-feature
android:name="string"
android:required=["true" | "false"]
android:glEsVersion="integer" />
- android:name
APP所定功能名称。 - android:required
ture表该功能对APP必须,某设备无该功能时google play对该设备隐该APP;false表该功能对APP非必需,即某设备无该功能时google play仍对该设备显该APP。 - android:glEsVersion
指定openGL ES版本号,仅针对open GL功能。
示例
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-feature android:name="android.hardware.camera.flash" />
主题
做微信开发回调页避屏闪用主题:
android:theme="@android:style/Theme.NoDisplay"