zoukankan      html  css  js  c++  java
  • AndroidManifest设置android:allowBackup="false"报错

    概述

    设置android:allowBackup="false"的必要性

    Android API Level 8及其以上Android系统提供了为应用程序数据的备份和恢复功能,此功能的开关决定于该应用程序中AndroidManifest.xml文件中的allowBackup属性值[1] ,其属性值默认是true。当allowBackup标志为true时,用户即可通过adb backup和adb restore来进行对应用数据的备份和恢复,这可能会带来一定的安全风险。

    Android属性allowBackup安全风险源于adb backup容许任何一个能够打开USB 调试开关的人从Android手机中复制应用数据到外设,一旦应用数据被备份之后,所有应用数据都可被用户读取;adb restore容许用户指定一个恢复的数据来源(即备份的应用数据)来恢复应用程序数据的创建。因此,当一个应用数据被备份之后,用户即可在其他Android手机或模拟器上安装同一个应用,以及通过恢复该备份的应用数据到该设备上,在该设备上打开该应用即可恢复到被备份的应用程序的状态。

    尤其是通讯录应用,一旦应用程序支持备份和恢复功能,攻击者即可通过adb backup和adb restore进行恢复新安装的同一个应用来查看聊天记录等信息;对于支付金融类应用,攻击者可通过此来进行恶意支付、盗取存款等;因此为了安全起见,开发者务必将allowBackup标志值设置为false来关闭应用程序的备份和恢复功能,以免造成信息泄露和财产损失。

    设置android:allowBackup="false"出错的情况

    一般是引用的第三方开源库的AndroidManifest.xml文件设置android:allowBackup="true"了,导致两者不统一,由于第三方库大多是通过api、implementation方式引用的,无法修改其AndroidManifest.xml文件。

    解决方案

    在自己项目的AndroidManifest.xml中<application>标签中添加tools:replace="android:allowBackup"。

    <?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="ccccccc"
        >
    
        <!--设置android:allowBackup="false",保证安全
            https://blog.csdn.net/qq_31387043/article/details/51452782
            https://blog.csdn.net/bgc525725278/article/details/71171241-->
        <application
            android:name=".MyApplication"
            android:allowBackup="false"
            tools:replace="android:allowBackup"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:roundIcon="@mipmap/ic_launcher_round"
            android:supportsRtl="true"
            android:theme="@style/TranslucentTheme">
    
    
        </application>
    
    </manifest>

    同理:

    同样的还有tools:replace="android:icon, android:theme,android:allowBackup" 

    参考资料

    Android中allowBackup属性的含义和危险性实例讲解

    AndroidManifest 合并出错 tools:replace="android:allowBackup"

  • 相关阅读:
    使用Jquery 来AJAX操作!
    血细胞形态异常的临床意义
    骨髓细胞检查
    保护眼睛的颜色
    php的一些技巧
    播放ASF文件无声音
    不被其他网站载入框架之内
    如何判断一个页面加载所耗费的时间
    教大家如何洗葡萄,很好吃哦!
    急性粒细胞白血病部分分化型AMLM2
  • 原文地址:https://www.cnblogs.com/whycxb/p/10096182.html
Copyright © 2011-2022 走看看