Android 12 行为变更,对应用产生的影响,2021腾讯Android面试题精选

本文探讨了Android 12中针对PendingIntent的安全性变更,adb备份限制及其对应用安全的影响。Android 12要求开发者明确指定PendingIntent的可变性以防止恶意篡改,并限制了adb备份命令以保护私有应用数据。同时,建议开发者使用工具检查应用安全漏洞,确保应用在发布时遵循最佳安全实践。
摘要由CSDN通过智能技术生成

因为添加了 intent-filter 所以 android:exported 的属性的默认值为 true,因此可以接受来自其他 App 的访问,进而造成了上述问题(通过 Twicca App 将存储在 SD 卡上的图片或电影上传到 Twicca 用户的 Twitter 账户上的社交网络上),而解决方案有两个:

  • 方案一:添加 android:exported="false" 属性
  • 方案二: Twicca App 没有使用方式一,而是检查调用者的包名是否与自身的包名相同

public void onCreate(Bundle arg5) {
super.onCreate(arg5);

ComponentName v0 = this.getCallingActivity();
if(v0 == null) {
this.finish();
} else if(!jp.r246.twicca.equals(v0.getPackageName())) {
this.finish();
} else {
this.a = this.getIntent().getData();
if(this.a == null) {
this.finish();
}

}
}
}

这种方案也是可行的,因为在一台设备上,不可能会出现两个包名相同的应用,更多详细的信息可以前往查看 Restrict access to sensitive activities

这仅仅是关于 activity 的安全漏洞的其中一个,在不同的场景下利用这些漏洞做的事情也可能不一样。当然还有 servicereceiver 组件也都是一样,存在安全性问题。

指定 PendingIntent 的可变性

在 Android 12 中创建 PendingIntent 的时候,需要显示的声明是否可变,请分别使用 PendingIntent.FLAG_MUTABLEPendingIntent.FLAG_IMMUTABLE 标志,如果您的应用试图在不设置任何可变标志的情况下创建 PendingIntent 对象,系统会抛出 IllegalArgumentException 异常,错误日志如下所示:

PACKAGE_NAME: Targeting S+ (version 10000 and above) requires t

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值