CN106506445A - 一种apk权限管理方法、装置和系统 - Google Patents
一种apk权限管理方法、装置和系统 Download PDFInfo
- Publication number
- CN106506445A CN106506445A CN201610839150.0A CN201610839150A CN106506445A CN 106506445 A CN106506445 A CN 106506445A CN 201610839150 A CN201610839150 A CN 201610839150A CN 106506445 A CN106506445 A CN 106506445A
- Authority
- CN
- China
- Prior art keywords
- apk
- hal layer
- authority information
- obtaining
- hal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1073—Registration or de-registration
Abstract
本发明公开了一种APK权限管理方法、装置和系统,该方法包括:为Android系统增加Hal层管理模块,所述Hal层管理模块用于获取APK注册的申请权限信息并基于申请权限信息控制APK对Hal层接口的访问。该装置执行对应方法。该系统为能实现对应方法的系统。本发明通过增加一个Hal层管理模块,获取APK的申请的访问权限,通过监视进程获取APK的访问操作,基于申请的访问权限判断并处理访问操作,能够在Hal层上实现对APK的监控,防止APK越过framework层进行访问,能够增加Android系统的防护能力。
Description
技术领域
本发明涉及一种APK权限管理方法、装置和系统,属于Android系统领域。
背景技术
Framework层,是Android架构中非常重要的一层,起着“承上启下”的作用,同时它也负责对apk的行为进行控制,apk在AndroidManifest.xml中申请相关的控制权限,framework负责在apk执行对应操作时,检查其是否已经申请了该权限。Hal层,是主要由C/C++编写,编译成so库,主要是对设备操作的相关接口的封装,应用可以通过调用so中的接口来控制设备。
目前Android上,对应用权限进行检查和控制,都由framework完成,如果绕开了framework直接调用hal层的接口,就无法检查应用的权限,导致无法控制应用的行为,具有很大的风险。
例如某个apk,它在AndroidManifest.xml中申请了某权限例如<uses-permissionandroid:name="android.permission.CLOUDPOS_CONTACTLESS_CARD"/>,apk先调用他们自己用C写的so库,这个so库里面使用dlopen调用系统hal层提供的so,起到操作某设备功能,这样就完全绕开了framework层,无法判断其是否申请了对应的权限,这样会对系统的安全造成潜在的威胁。
发明内容
为了解决上述问题,本发明通过提供一种APK权限管理方法、装置和系统。
本发明采用的技术方案一方面为一种APK权限管理方法,为Android系统增加Hal层管理模块,所述Hal层管理模块用于获取APK注册的申请权限信息并基于申请权限信息控制APK对Hal层接口的访问。
优选地,所述Hal层管理模块获取APK注册的申请权限信息的步骤包括:S1、基于getpid函数获取APK的进程号;S2、读取cmdline文件以获取APK的包名;S3、解析packages.xml文件以获取APK申请的访问权限,标记其为申请权限信息。
优选地,所述Hal层管理模块包括若干接口,所述接口用于基于getpid函数获取APK的进程号,用于读取cmdline文件以获取APK的包名,还用于解析packages.xml文件以获取APK申请的访问权限,标记其为申请权限信息。
优选地,所述接口基于C语言实现。
本发明采用的技术方案另一方面为一种APK权限管理装置,该装置用于为Android系统增加Hal层管理模块,所述Hal层管理模块用于获取APK注册的申请权限信息并基于申请权限信息控制APK对Hal层接口的访问。
优选地,所述Hal层管理模块获取APK注册的申请权限信息的步骤包括:S1、基于getpid函数获取APK的进程号;S2、读取cmdline文件以获取APK的包名;S3、解析packages.xml文件以获取APK申请的访问权限,标记其为申请权限信息。
优选地,所述Hal层管理模块包括若干接口,所述接口用于基于getpid函数获取APK的进程号,用于读取cmdline文件以获取APK的包名,还用于解析packages.xml文件以获取APK申请的访问权限,标记其为申请权限信息。
优选地,所述接口基于C语言实现。
本发明采用的技术方案另一方面为一种Android系统,所述系统包括Hal层管理模块,所述Hal层管理模块用于获取APK注册的申请权限信息并基于申请权限信息控制APK对Hal层接口的访问。
本发明的有益效果为通过增加一个Hal层管理模块,获取APK的申请的访问权限,通过监视进程获取APK的访问操作,基于申请的访问权限判断并处理访问操作,能够在Hal层上实现对APK的监控,防止APK越过framework层进行访问,能够增加Android系统的防护能力。
附图说明
图1所示为基于本发明实施例的获取APK注册的申请权限信息的流程图;
图2所示为基于本发明实施例的一种Android系统的示意图。
具体实施方式
以下结合实施例对本发明进行说明。
基于发明的实施例,一种APK权限管理方法,为Android系统增加Hal层管理模块,所述Hal层管理模块用于获取APK注册的申请权限信息并基于申请权限信息控制APK对Hal层接口的访问。
通过在Android系统里面附加一个新的模块(Hal层管理模块),对APK的相关进程进行监控,防止其避过framework层而直接调用Hal层的接口,由于正常的APK在启动的时候会登入其申请的权限(一般存储在AndroidManifest.xml文件中),因此Hal层管理模块会通过读取记载着正式的申请的权限的文件,获取该APK的申请的权限,同时基于该申请的权限的信息控制APK对Hal层接口的访问,即正式登陆过的权限会让其执行,没有申请的权限则认为其非法并禁止其执行。
如图1所示流程图,所述Hal层管理模块获取APK注册的申请权限信息的步骤包括:S1、基于getpid函数获取APK的进程号;S2、读取cmdline文件以获取APK的包名;S3、解析packages.xml文件以获取APK申请的访问权限,标记其为申请权限信息。
所有安装的apk申请的权限,最后会统一注册到/data/system/packages.xml;基于getpid函数获得APK的进程号(首先,Hal层管理模块实时接收到访问Hal层的进程的信息,区别出那些是APK发出的进程,通过getpid函数追溯属于APK的进程的来源,即对应的APK的进程号);有了进程号之后,通过读取 /proc/(pid)/cmdline文件以获取当前APK的包名;知道包名之后,解析/data/system/packages.xml查询到对应包名位置,就可以解析出apk申请了哪些权限,标记这些信息为申请权限信息。
所述Hal层管理模块包括若干接口,所述接口用于基于getpid函数获取APK的进程号,用于读取cmdline文件以获取APK的包名,还用于解析packages.xml文件以获取APK申请的访问权限,标记其为申请权限信息。
Hal层管理模块主要的结构为一套接口,可以供Hal层实用,通过这一套接口,实现上述的用于基于getpid函数获取APK的进程号,用于读取cmdline文件以获取APK的包名,还用于解析packages.xml文件以获取APK申请的访问权限,标记其为申请权限信息等功能。
所述接口基于C语言实现。
接口的编写语言主要为C语言。
基于本发明的实施例,一种APK权限管理装置,该装置用于为Android系统增加Hal层管理模块,所述Hal层管理模块用于获取APK注册的申请权限信息并基于申请权限信息控制APK对Hal层接口的访问。
所述Hal层管理模块获取APK注册的申请权限信息的步骤包括:S1、基于getpid函数获取APK的进程号;S2、读取cmdline文件以获取APK的包名;S3、解析packages.xml文件以获取APK申请的访问权限,标记其为申请权限信息。
所述Hal层管理模块包括若干接口,所述接口用于基于getpid函数获取APK的进程号,用于读取cmdline文件以获取APK的包名,还用于解析packages.xml文件以获取APK申请的访问权限,标记其为申请权限信息。
所述接口基于C语言实现。
基于本发明的实施例,一种Android系统,其特征在于,所述系统包括Hal层管理模块,所述Hal层管理模块用于获取APK注册的申请权限信息并基于申请权限信息控制APK对Hal层接口的访问。
该Android系统相较一般的系统,多了用于增加系统安全性的Hal层管理模块,该Hal层管理模块的作用与上述实施例的Hal层管理模块一致,能够提高Android系统的安全性。
如图2所述的一种Android系统的示意图,首先,APK启动的时候,在AndroidManifest.xml中申请权限,同时调用APK自己写的SO库,然后这个SO库里面会使用dlopen函数调用系统Hal层提供的SO库,起到操作设备的目的(即执行相关的操作),而本系统能在这个阶段,通过对比APK的操作和其在AndroidManifest.xml中申请的权限(是否存在),判断是否进行了正式的申请,如果其操作符合其申请的权限,则允许其继续执行操作,否则不允许操作。
以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,都应属于本发明的保护范围。在本发明的保护范围内其技术方案和/或实施方式可以有各种不同的修改和变化。
Claims (9)
1.一种APK权限管理方法,其特征在于,为Android系统增加Hal层管理模块,所述Hal层管理模块用于获取APK注册的申请权限信息并基于申请权限信息控制APK对Hal层接口的访问。
2.根据权利要求1所述的一种APK权限管理方法,其特征在于,所述Hal层管理模块获取APK注册的申请权限信息的步骤包括:
S1、基于getpid函数获取APK的进程号;
S2、读取cmdline文件以获取APK的包名;
S3、解析packages.xml文件以获取APK申请的访问权限,标记其为申请权限信息。
3.根据权利要求2所述的一种APK权限管理方法,其特征在于,所述Hal层管理模块包括若干接口,所述接口用于基于getpid函数获取APK的进程号,用于读取cmdline文件以获取APK的包名,还用于解析packages.xml文件以获取APK申请的访问权限,标记其为申请权限信息。
4.根据权利要求3所述的一种APK权限管理方法,其特征在于,所述接口基于C语言实现。
5.一种APK权限管理装置,其特征在于,该装置用于为Android系统增加Hal层管理模块,所述Hal层管理模块用于获取APK注册的申请权限信息并基于申请权限信息控制APK对Hal层接口的访问。
6.根据权利要求5所述的一种APK权限管理装置,其特征在于,所述Hal层管理模块获取APK注册的申请权限信息的步骤包括:
S1、基于getpid函数获取APK的进程号;
S2、读取cmdline文件以获取APK的包名;
S3、解析packages.xml文件以获取APK申请的访问权限,标记其为申请权限信息。
7.根据权利要求6所述的一种APK权限管理装置,其特征在于,所述Hal层管理模块包括若干接口,所述接口用于基于getpid函数获取APK的进程号,用于读取cmdline文件以获取APK的包名,还用于解析packages.xml文件以获取APK申请的访问权限,标记其为申请权限信息。
8.根据权利要求7所述的一种APK权限管理装置,其特征在于,所述接口基于C语言实现。
9.一种Android系统,其特征在于,所述系统包括Hal层管理模块,所述Hal层管理模块用于获取APK注册的申请权限信息并基于申请权限信息控制APK对Hal层接口的访问。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610839150.0A CN106506445A (zh) | 2016-09-21 | 2016-09-21 | 一种apk权限管理方法、装置和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610839150.0A CN106506445A (zh) | 2016-09-21 | 2016-09-21 | 一种apk权限管理方法、装置和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106506445A true CN106506445A (zh) | 2017-03-15 |
Family
ID=58290887
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610839150.0A Pending CN106506445A (zh) | 2016-09-21 | 2016-09-21 | 一种apk权限管理方法、装置和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106506445A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108563564A (zh) * | 2018-04-02 | 2018-09-21 | 上海畅联智融通讯科技有限公司 | 终端人机接口测试方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103077018A (zh) * | 2012-12-27 | 2013-05-01 | 广州英码信息科技有限公司 | 一种基于安卓系统的设备接口的控制方法及系统 |
CN104038821A (zh) * | 2014-06-09 | 2014-09-10 | 四川长虹电器股份有限公司 | 统一收集Android电视各功能模块故障信息的方法 |
CN104794374A (zh) * | 2015-04-16 | 2015-07-22 | 香港中文大学深圳研究院 | 一种用于安卓系统的应用权限管理方法和装置 |
US20160132665A1 (en) * | 2011-07-13 | 2016-05-12 | Salesforce.Com, Inc. | Mechanism for facilitating management of data in an on-demand services environment |
CN106027365A (zh) * | 2016-04-29 | 2016-10-12 | 乐视控股(北京)有限公司 | 一种信息交互的方法及装置 |
CN106055983A (zh) * | 2016-07-27 | 2016-10-26 | 北京鼎源科技有限公司 | 一种基于IDA通信的Android应用反调试方法 |
-
2016
- 2016-09-21 CN CN201610839150.0A patent/CN106506445A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160132665A1 (en) * | 2011-07-13 | 2016-05-12 | Salesforce.Com, Inc. | Mechanism for facilitating management of data in an on-demand services environment |
CN103077018A (zh) * | 2012-12-27 | 2013-05-01 | 广州英码信息科技有限公司 | 一种基于安卓系统的设备接口的控制方法及系统 |
CN104038821A (zh) * | 2014-06-09 | 2014-09-10 | 四川长虹电器股份有限公司 | 统一收集Android电视各功能模块故障信息的方法 |
CN104794374A (zh) * | 2015-04-16 | 2015-07-22 | 香港中文大学深圳研究院 | 一种用于安卓系统的应用权限管理方法和装置 |
CN106027365A (zh) * | 2016-04-29 | 2016-10-12 | 乐视控股(北京)有限公司 | 一种信息交互的方法及装置 |
CN106055983A (zh) * | 2016-07-27 | 2016-10-26 | 北京鼎源科技有限公司 | 一种基于IDA通信的Android应用反调试方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108563564A (zh) * | 2018-04-02 | 2018-09-21 | 上海畅联智融通讯科技有限公司 | 终端人机接口测试方法及系统 |
CN108563564B (zh) * | 2018-04-02 | 2021-06-18 | 上海畅联智融通讯科技有限公司 | 终端人机接口测试方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9141801B2 (en) | Apparatus and method for analyzing permission of application for mobile devices and detecting risk | |
CN105354488B (zh) | 一种应用安装方法、相关装置及应用安装系统 | |
CN103744686B (zh) | 智能终端中应用安装的控制方法和系统 | |
CN106775716A (zh) | 一种基于度量机制的可信plc启动方法 | |
CN108574709B (zh) | 跨域操作的实现方法和装置 | |
CN102622311A (zh) | Usb移动存储设备访问控制方法、装置及系统 | |
CN107016282B (zh) | 一种信息处理方法及装置 | |
CN113794569B (zh) | 基于区块链的物资盘点数据提供方法、装置及系统 | |
CN104199654A (zh) | 开放平台的调用方法及装置 | |
WO2016033966A1 (zh) | 应用数据的保护方法及装置 | |
DE112020000792T5 (de) | Durch grafikverarbeitungseinheit beschleunigte vertrauenswürdige ausführungsumgebung | |
CN107517124A (zh) | 基于tcp协议远程配置版本管理软件svn权限的方法及装置 | |
CN104508676B (zh) | 虚拟机中的强制保护控制 | |
CN104156660A (zh) | 一种基于运行环境状态的Android权限细粒度访问控制方法 | |
CN102902911A (zh) | 一种在Java虚拟机中安全运行第三方代码的方法 | |
CN103902884A (zh) | 虚拟机数据保护系统和方法 | |
CN105049445A (zh) | 一种访问控制方法及独立式访问控制器 | |
CN109992489B (zh) | 一种用于监控用户设备中应用的执行行为的方法与设备 | |
CN105337995A (zh) | 一种智能卡快速个人化方法及系统 | |
CN104951707A (zh) | 基于Android平台的敏感资源访问控制策略系统 | |
CN106506445A (zh) | 一种apk权限管理方法、装置和系统 | |
CN108229115A (zh) | 一种鉴权方法及装置 | |
CN104462898B (zh) | 基于Android系统的目标文件保护方法及装置 | |
CN104021074A (zh) | PhoneGap框架的应用程序的漏洞检测方法及装置 | |
EP3286682A1 (en) | Method of managing applications in a secure element when updating the operating system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170315 |