android新bug,解析app配置文件时出错


1. 下面这段manifest代码,你可以扔到你的某个activity中去,然后跑一下这个app,看看效果

<intent-filter>
                <action android:name="android.intent.action.VIEW"/>
                <data android:mimeType="*/*"/>
                <data android:host="*"/>
                <data android:scheme=""/>
            </intent-filter>

2.分析:

(1)你看到的现象应该是,android framework 停止运行,google+停止运行之类的。

(2)为什么呢?下面是无根据的推敲,尚未有心思看源码,但是经过试验,大概差不多吧。

首先mimeType,host这两个全局匹配,在加上一个scheme=“”,系统解析的时候肯定是没处理好,只要这三个条件并存,必定会解析出错。

出错的入口:通过上面三个data中任一个startActivity都会crash,使用packageManager使用以上任一data作为filter来queryIntent也会崩,实际上就是只要packageManager去读取存在这个filter的包的信息的时候,就会抛出Parcel解析异常,类型是空指针。


有兴趣的猿们可以去看看源码的实现,利用这个bug配合root权限可能会对手机上所有app的正常功能造成影响,所以赶紧给google提bug啊。

BTW,谁扒出了真正原因,麻烦给我分享一下哈。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。