魔神至尊
原帖由 @ngw39 于 2017-5-27 15:49 发表 安卓从头到尾就是如何设计一个不安全系统的教科书。从体系架构,到生态系统。从应用层,一直到kernel。 安卓从架构上,谷歌只管到HAL层。安卓操作系统本身的设计都是基于HAL抽象层之上。 HAL层之下的设计,性能优化,全部丢给手机厂商。谷歌完全是不管的,包括kernel。Linux kernel出现某个公开的漏洞,你的手机制造商不提供更新,那么这个漏洞在你手机上永远不会被修复。(这个部分包括电源管理,图形,音频,WIFI,蓝牙,相机等等。每台手机都需要重新适配,小米6和红米4是不能通用的) HAL往上的东西就没关系了吗?别忘了安卓是个开源操作系统(对手机厂商来说,用户拿到手的最终设备不是)。之上的Android runtime,native C/C++库也是可以瞎几把改的(阿里云OS)。 接着app里用java调用的部分,以及各种UI相关的部分,activity,service,content provider,notification,etc。手机厂商做的UI定制大部分在这里(也有一部分在应用层里),它们不会合并到Android主干代码里,而且是闭源的。所以谷歌每次更新安卓,手机厂商都要花大量的时间人力来重新开发他们的定制UI。 再是应用层,谷歌当初为了抢开发进度拉java的开发人员,搞个虚拟机跑java字节码。前期很长时间都是dalvik虚拟机运行app时卡粗翔。后来为了补这个篓子弄个ART,把java字节码放到用户的手机上编译,安装应用额外消耗电池和CPU时间(表现为更新应用速度慢手机贼烫),性能问题都说烂了。再就是应用程序的分发,APK把字节码打包在classes.dex里,可以轻易地反编译回smali中间代码以及可读的java代码,代码安全性没有保证,还可以修改之后再重新编译打包回APK。这也是很多黑产的来源。iOS App那边分发的都是编译好的二进制代码,逆向工程的难度不在一个数量级上。再就是应用的商店审核,都说烂了。 假如当初Windows Mobile赢了的话,现在手机市场会好的多。我就不明白怎么会有技术人员会喜欢安卓。
查看详细资料
TOP