爱子日志

Android应用程序权限

一、为什么Android总是事无巨细地告诉你应用索取的每一项权限?

相比Apple,Microsoft严格控制生态系统(从苹果给开发者的"App Store Guideline"可见一斑),只允许通过官方应用商店安装应用,并对每份上传进行仔细地审查而言,Android的开放就意味着,Google需要向用户提供一系列用于为自己负责的流程、工具。所以在安装应用前,Android总是要事无巨细地告诉你,应用肯需要控制什么权限。

同样,开发者也制作了一系列易用的工具,用以鉴别可疑的应用程序,或是控制权限。

Andoird哪里开放了?

在Android中,用户能自由从本地安装应用,自由地对SD卡进行操作,自由选择应用市场。

如果愿意放弃保修,用户还能轻易地实行root,解锁基带(baseband)。只有一些产品会严密地锁定bootloader(如摩托罗拉)。

最重要的是,因为ASOP(Android源代码开放计划)的存在,绝大部分的Android代码都是开源的,开发者可以由此对Android系统进行深入的修改,甚至可以自行编写一个符合Android规范的系统实例(如Cyanogen Mod)。正是因为ASOP,这篇文章才可能介绍多达5种原理不同的权限控制方法。


开放的风险

不考虑Symbian,Windows Phone 6.5(及以下)平台,那么几乎所有的智能手机病毒都是Android平台的,甚至官方Android Market也闹过几次乌龙。在国内水货横行的市场,情况更是火上浇油,不法业者可以在手机的ROM,甚至是bootloader中做好手脚,让用户有病无法医。

在Android中,用户可以允许系统安装来自"未知源"(也就是非Google官方的,或手机预置市场的)应用程序。于是,移动平台最重要的门神--数字签名就被绕过了。

出于Android的开放性,也有不允许"未知源"的反例:亚马逊的Kindle Fire平板使用了深度定制的Android,它只允许安装来自亚马逊官方商店的应用程序。