论文部分内容阅读
Android是当下最流行的移动平台操作系统之一,它有着比较完善的安全管理机制,它继承了Linux内核的安全的机制以及有一套有本身特色的安全机制,但是,它还是存在着一定的安全缺陷。Android采用“All-Or-None”的的应用程序权限授权模式,用户必须同意程序所申请的全部权限,否则应用程序则无法安装成功,同时,程序安装成功后,用户无法对程序申请的权限进行编辑,用户无法根据自己的需求动态定制程序的权限授权。针对以上问题,本文设计并实现了这样的一个模型,基于Android平台的应用程序管理模型(简称为应用程序管理模型),在这个模型中,程序安装成功后,用户即可对程序申请的全部权限进行编辑,可以取消对程序权限的授权,也可以重新恢复已被取消授权的权限。并且这些操作都是动态、实时有效的,编辑成功后无须其他任何操作,比如重启系统等等就可以生效的。在应用程序管理模型中,程序在运行时,调用到某个权限,如果这个权限没有被用户取消授权,则系统会调用原有的检查机制,如果这个权限被用户取消授权了,那么系统则会拒绝权限的申请或者返回已经设定好的模拟信息,这里只有当被取消的权限为读取手机状态、读取通讯录信息、读取短信、彩信信息这几个权限的时候才会返回设定好的模拟信息,其它权限则会直接拒绝权限的申请。为了实现这个模型,对原有系统做出了几点扩展,主要包括,应用层的权限编辑器,架构层的权限标示库、权限检查器、模拟信息提供器以及添加了一个读写权限标示库的权限。应用层的权限编辑器是用户用来编辑应用程序权限的唯一窗口,权限标示库是系统来存储程序权限信息的地方,权限检查器是整个模型的核心所在,通过修改Android原有的权限检查机制,让系统在进行权限审核的时候调用新添加的检查器,模拟信息提供器用于返回系统设定好的模拟信息,添加了一个读写权限标示库的权限则可以让权限编辑器在不需要获得Root权限的情况下即可读写权限标示库的内容。最后,通过在开发板上部署本文实现的模型并从Google Play上选取了手机信息查看精灵、微信、QQ同步助手作为测试样本,验证了应用程序管理模型的可行性。