查看: 4306|回复: 16

[综合技术交流] 安卓权限管理

 关闭 [复制链接]

该用户从未签到

发表于 2014-8-25 02:31 | 显示全部楼层 |阅读模式
rt,一般我们有许多安卓app的权限好像搜狗输入法会监听通话,这些是安装时会显示的,但是一般都没什么人理,但是如果真的监听了你想吗?以下是几个软件控制权限
    方法一、App Shield(国内常见的名字:权限修改器)
      它是一个需要付费的Android应用,其原理是修改应用程序的apk安装包,删除其中AndroidManifest.xml文件内,用于声明权限的对应"Android.Permission.*"条目,然后再用一个公开的证书对安装包重新签名(需要允许"未知源"),这样一来,应用程序就不会向系统申请原先所需的权限。当应用运行至相应的流程时,系统将直接拒绝,从而达到用户控制权限的目的。

      对于已安装的应用,AppShield也会按照同样方法制作好apk安装包,然后让用户先卸载原始的应用,再安装调整过的应用。除了该应用数字签名外,用户可以随时通过执行同样的流程,将吊销的权限恢复。

      Apk文件的结构

      Android应用都是打包成以.apk扩展名结尾,实际上是zip的文件格式。

      一个合法的apk至少需要这些成分:

      根目录下的"AndroidManifest.xml"文件,用以向Android系统声明所需Android权限等运行应用所需的条件。

      根目录下的classes.dex(dex指Dalvik Exceptionable),应用(application)本身的可执行文件(Dalvik字节码) 。

      根目录下的res目录,包含应用的界面设定。(如果仅是一个后台执行的"service"对象,则不必需)

      Apk根目录下的META-INF目录也是必须的,它用以存放应用作者的公钥证书与应用的数字签名。

      当应用被安装后,这个apk文件会原封不动地移至设备的data/app目录下,实际运行的,则是Dalvik将其中Classes.dex进行编译后的Classes.odex(存放在Dalvik缓存中,刷机时的'cache wipe就是清除Dalvik的odex文件缓存')。

      优点:

      完全不需要Root,适用于所有版本的Android设备。不会损坏系统,可以吊销任意一项Android权限。

      问题:

      1,需要重新安装应用,该行为可能会丢失应用的配置、历史记录。

      2,执行权限吊销的应用的数字签名会被更改,无法直接更新。对于那些设计不良(没有意料到'不声明权限'情况的),或有额外自校验的应用,可能会无法运行。

      3,无法用于设备上的预装应用,除非制造商好心地将该应用设置为"可以删除"的状态。

      4,这个方法修改了apk包中的内容------尽管实际上AndroidManifest.xml和数字签名并不算是应用程序的本身,但修改它们可能引发著作权的问题。

      5,需要开启"未知源"。

      6,这是一个收费应用。

      方法二、CyanogenMod 7.1(及以上版本)

      Cyanogenmod是一款著名的第三方编写的开源Android ROM。

      CM7.1加入了控制权限的开关,官方的名称是"Permission Revoking",任何非系统/保护应用在安装后,可直接吊销任意一项权限,其效果等价于直接删除apk包中AndroidManifest.xml的对应条目,但不会引发自校验的问题。CM的权限工具的作用等同于AppShield,无非是在Android自身的权限系统中添加了一个开关。

      优点:

      免费,使用简便,可随时,任意地吊销、恢复非预装应用的任意一项权限;不存在数字签名的问题,因而不影响使用自校验的应用程序。

      问题:

      此功能仅在Cyanogen Mod 7.1及以上版本提供,无法用于其它rom。因为是由Android系统出面吊销权限,其实现原理与App Shield完全相同,同样的,应用程序会因为设计不良而出现崩溃。

      方法三、Permission Denied(本文使用的方法)

      这是可以吊销任意Android应用(注意,不当地吊销系统应用的权限可能会导致手机固件损坏,无法启动)的任意权限,对权限的修改在重启后生效。

      实现原理应该与Cyanogen Mod 7.1+完全相同,适用于任何已经Root的系统,因为一般的Android系统虽然事实上支持权限吊销,但没有像Cyanogen Mod那样放置接口,因此需要重启后才能应用权限配置。同样也有系统出面拒绝权限而导致的崩溃现象。


      优点:

      效果与Cyanogen Mod中的权限吊销效果一致,且可吊销系统应用的权限。同时提供了免费与收费版本,免费版并没有基本功能的缺失。适用于所有版本号不低于1.6的Android设备。

      问题:

      调整后的权限需要重启才能生效。设计不良的应用会崩溃。不恰当的权限修改会损坏系统,导致无法开机。

      方法四、PDroid

      PDroid实际上是一个Android内核补丁加上一个用于管理的外部应用。补丁需要在Recover环境中刷入系统,也可以由开发者自行移植入系统。该软件在Android ASOP 2.3.4代码基础上开发,仅适用于没有改动内核的Android 2.3系统,目前还未支持Android 4。

      为了避免Cyanogen Mod 7.1+权限吊销(Permission revoking)导致的崩溃问题,以及后台服务(如LBE,QQ手机管家等,PDroid的作者认为通过后台服务拦截权限并不是好办法),PDroid并不阻止应用程序声明权限,但会在其实际索取相关信息时,予以阻止。通俗地说,就是签署协议但不执行。在PDroid的用户界面,用户能随时精确地控制涉及隐私的各项权限。对于某些内容,除了阻止外,用户还可以伪造一个随机或指定的数据。

      可控制的内容包括:

      IMEI(可伪造)

      IMSI(可伪造)

      SIM卡序列号(可伪造)

      手机号码(可伪造)

      来,去电号码

      SIM卡信息

      当前蜂窝网络信息

      (以上七者均来自Android.Permission.READ_PHONE_STATE)

      GPS定位信息 (可伪造,来自Android.Permission.FINE_LOCATION)

      基站定位 (可伪造,来自Android.Permission.COARSE_LOCATION)

      系统自带浏览器的历史,书签(Android.Permission.BOOKMARKS)

      联系人 (android.permission.READ_CONTACTS)

      通话记录 (android.permission.READ_CONTACTS)

      系统日志 (android.permission.READ_LOGS)

      当前账户列表 (android.permission.GET_ACCOUNTS)

      当前账户的授权码 (android.permission.USE_CREDENTIALS)

      短信,彩信 (可能与这5个权限有关)

              android.permission.READ_SMS

              android.permission.RECEIVE_SMS

              android.permission.SEND_SMS

              android.permission.WRITE_SMS

              android.permission.RECEIVE_MMS

      日历 android.permission.READ_CALENDAR

      PDroid的内核补丁并不通用,每一个Rom都需要特定的补丁。开发者除了提供了几个特定机型下Cyanogen Mod,HTC Sense修改版ROM的专用补丁外,还推出了一个补丁生成工具(PDroid Patcher),用户可以给自己的ROM生成专用的内核补丁。使用该Patcher需要安装JDK(java Development Kit)。

      优点:

      PDroid避免了通过Android系统进行权限吊销的导致的潜在崩溃问题,也不需要后台服务。对隐私信息的控制是最精细的。尽管设备必须Root,但应用本身不需要Root权限。

      问题:

      安装过程是最繁琐,最不可靠的,容易导致ROM损坏,适用范围也小,需要用户有相当的技能(能安装JDK,会刷机)才可使用;只提供对隐私有关权限的控制,不提供网络访问,的控制。以这些为代价,它几乎没有其它缺点。

      方法五、LBE安全大师

      实际上最常用的是以LBE为代表的通过一个Root权限的后台服务来拦截相关行为的工具。除了LBE外,还有QQ手机管家等应用。这里以LBE安全大师为例介绍。

      LBE是国内一个叫"LBE安全小组"开发的工具,支持Android2.0~4.0。它的核心功能是像杀毒软件一般,通过一个需要Root权限的后台服务,劫持所有调用权限的行为,并放行用户许可的部分(其官方宣传为'API级别拦截')。它和PDroid一样几乎不会引发应用程序崩溃,它支持拦截几个涉及用户的关键权限(LBE手机管家3.1/3.2):

      读取短信 (android.permission.READ_CONTACTS)

      联系人记录 (android.permission.READ_CONTACTS)

      通话记录 (android.permission.READ_CONTACTS)

      定位 (Android.Permission.COARSE_LOCATION

            Android.Permission.FINE_LOCATION)

      手机识别码 (与Android.Permission.READ_PHONE_STATE有关)

      通话状态 (与Android.Permission.READ_PHONE_STATE有关)

      发送短信(具体原理不明,同样类似于禁止这五个权限

            android.permission.READ_SMS

            android.permission.RECEIVE_SMS

            android.permission.SEND_SMS

            android.permission.WRITE_SMS

            android.permission.RECEIVE_MMS)

      拨打电话 (android.permission.CALL_PHONE)

      通话监听 (android.permission.PROCESS_OUTGOING_CALLS)

      除此以外,LBE还可以分别控制应用在Wifi,手机网络的联网权限,其原理是依靠IPtables防火墙,而非通过Android的"Internet"权限。

      此外LBE手机管家还提供基于智能内容审查的短信拦截、来电归属地显示,以及禁用系统(保护)应用,进程管理,杀毒等功能。

      LBE提供两个版本,一个叫"LBE安全大师",是一个全面的手机管家类应用,更新比较频繁,另一个版本(LBE手机隐私卫士,LBE Security lite)仅提供权限方面的管理。

      考虑到主要市场在国内,LBE的发行策略看上去有些奇怪,它在Google的官方市场并不发行最新版。通常只能只能在LBE的官方网页,以及国内的应用市场获得最新版本。

      优点:

      使用非常简单,功能强大而全面,风险很小,可以控制系统应用。适用范围广,有很多替代产品。

PCOS系统下载站:http://zhuangji.wang

签到天数: 1673 天

连续签到: 0 天

[LV.Master]伴坛终老IIII

发表于 2014-8-25 16:59 | 显示全部楼层
介绍得很祥实,谢谢分享。
PCOS系统下载站:http://zhuangji.wang

签到天数: 1260 天

连续签到: 0 天

[LV.10]以坛为家III

发表于 2014-8-29 11:58 | 显示全部楼层
很不错的一些内容。不过现在都是用软件带的功能
PCOS系统下载站:http://zhuangji.wang

签到天数: 203 天

连续签到: 0 天

[LV.7]常住居民III

发表于 2014-12-28 08:59 | 显示全部楼层
学习了,谢谢分享
PCOS系统下载站:http://zhuangji.wang

签到天数: 7 天

连续签到: 0 天

[LV.3]偶尔看看II

发表于 2014-12-29 09:22 | 显示全部楼层
你这是LEB推广吗?
PCOS系统下载站:http://zhuangji.wang

该用户从未签到

发表于 2014-12-29 10:08 | 显示全部楼层
楼主辛苦,学习下
PCOS系统下载站:http://zhuangji.wang

该用户从未签到

发表于 2015-1-19 19:13 | 显示全部楼层
学习下  谢谢楼主
PCOS系统下载站:http://zhuangji.wang

该用户从未签到

发表于 2015-2-2 09:12 | 显示全部楼层
很实在的介绍  谢谢楼主啦
PCOS系统下载站:http://zhuangji.wang

该用户从未签到

发表于 2015-2-9 16:27 | 显示全部楼层
真的很强大!  学习了!
PCOS系统下载站:http://zhuangji.wang

该用户从未签到

发表于 2015-2-9 16:27 | 显示全部楼层
真的很强大!  学习了!
PCOS系统下载站:http://zhuangji.wang

该用户从未签到

发表于 2015-2-10 20:38 | 显示全部楼层
很不错的,嘘唏学习
PCOS系统下载站:http://zhuangji.wang

签到天数: 1 天

连续签到: 1 天

[LV.1]初来乍到

发表于 2015-2-27 19:38 | 显示全部楼层
有些时候用不到权限 啊。我手机一切正常,不需要权限的地方。
PCOS系统下载站:http://zhuangji.wang

签到天数: 98 天

连续签到: 0 天

[LV.6]常住居民II

发表于 2015-2-28 08:05 | 显示全部楼层
学习了。谢谢。
PCOS系统下载站:http://zhuangji.wang

该用户从未签到

发表于 2015-2-28 08:58 | 显示全部楼层
这个要好好学习,安卓最可恶的就是这权限限制,好像手机不是自己的
PCOS系统下载站:http://zhuangji.wang

该用户从未签到

发表于 2015-2-28 20:41 | 显示全部楼层
知识贴,学习下
PCOS系统下载站:http://zhuangji.wang

本版积分规则