一种应用软件获取Android系统root权限的方法和系统与流程

文档序号:16671008发布日期:2019-01-18 23:34阅读:449来源:国知局
一种应用软件获取Android系统root权限的方法和系统与流程

本发明属于应用权限领域,尤其涉及一种应用软件获取android系统root权限的方法和系统。



背景技术:

android系统是一款基于linux内核的开放源代码移动操作系统。root是linux系统中的超级用户,它拥有整个linux系统的最高权限。获取root权限之后,可以进行启动或停止进程、删除或增加用户、使用或禁用系统硬件等操作,因此,root存在极大的安全隐患,android终端厂商在终端出厂时通常会默认关闭root权限。

安全检测公司需要获取用于检测恶意样本的测试终端的root权限,以便对检出的恶意样本进行扫描、监控、禁用、卸载等操作。目前,测试终端主要采用第三方团队开发的工具获取root权限:1、利用二进制可执行文件su执行root操作;2、利用superuser.apk对应用进行授权管理。

由于上述root工具相关的文件及存放路径已经暴露,一旦出现利用系统漏洞提取root权限的恶意样本,会将su、superuser.apk等可执行文件删除,测试终端就无法获取root权限,进而无法禁用并卸载恶意样本,使得整个检测系统无法正常运行。另外,第三方root工具允许所有应用获取root权限,存在安全隐患。



技术实现要素:

本发明实施例的目的在于提供一种应用软件获取android系统root权限的方法和系统,以解决现有root工具存在的问题。

本发明实施例是这样实现的,一种应用软件获取android系统root权限的方法,所述方法,包括:

修改android系统rom包的boot.img参数,使得仅adb具有root权限;

建立应用软件与android系统的通信连接;

应用软件向所述adb发送root请求;

解析获取的所述root请求中的请求消息,并根据所述请求消息为对应的应用软件执行root操作。

本发明实施例的另一目的在于提供一种应用软件获取android系统root权限的系统,所述系统,包括:

boot.img参数修改单元,用于修改android系统rom包的boot.img参数,使得仅adb具有root权限;

通信单元,用于建立应用软件与android系统的通信连接;

root请求发送单元,用于由应用软件向所述adb发送root请求;

root单元,用于通过解析获取所述root请求中的请求消息,并根据所述请求消息为对应的应用软件执行root操作。

本发明实施例,通过修改boot.img使android系统的adb具有root权限,在建立应用软件与android系统的通信连接后应用软件向所述adb发送了root请求,系统解析获取的所述root请求中的请求消息,并根据所述请求消息为对应的应用软件执行root操作,也就实现了应用软件获取root权限的目的。本发明的android系统中只有adb具有root权限,应用软件的root需要经过adb的审核才可实现,避免了恶意样本利用系统漏洞提取root权限的情况,降低了android系统中su文件、superuser.apk被删除的可能,提高了安全性。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明一示例性实施例示出的一种应用软件获取android系统root权限的方法的流程图;

图2是本发明另一示例性实施例示出的一种应用软件获取android系统root权限的方法的流程图;

图3为本发明一示例性实施例示出的一种应用软件获取android系统root权限的系统的结构图;

图4为本发明另一示例性实施例示出的一种应用软件获取android系统root权限的系统的结构图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。

实施例一

如图1所示为本发明一示例性实施例示出的一种应用软件获取android系统root权限的方法的流程图,所述方法包括以下步骤:

步骤s101,修改android系统rom包的boot.img参数,使得仅adb具有root权限。

具体的,修改android系统rom包的boot.img参数,以开启所述android系统rom包的adbdebug模式,使得仅adb具有root权限。

在本发明实施例中,debug模式即调试模式,具有debug模式的adb拥有对android系统进行调试的权限。android系统是根据android系统rom运行的,因此通过修改android系统rom包中的boot.img参数,即可使android系统rom包开启adbdebug模式,使得仅adb具有root权限。

图2所示了在一些实施例中,所述修改android系统rom包的boot.img参数,使adb具有root权限的具体步骤,包括:

步骤s201,通过boot.img解析工具对所述android系统rom包中的boot.img文件进行解析,获取default.prop文件。

在本发明实施例中,boot.img文件是android手机启动时必须加载的文件,boot.img文件解析工具是一款专门用于解析boot.img文件的工具,通过指令“mkbootboot.imgout”对android系统rom包中的boot.img文件进行解析,通过解析获取default.prop文件。

步骤s202,对所述default.prop文件中的参数进行修改,所述修改包括但不限于:ro.secure参数、ro.debuggable参数、ro.adb.secure参数。

在本发明实施例中,default.prop文件中的ro.secure参数、ro.debuggable参数、ro.adb.secure参数是与adb相关的参数,通过对ro.secure参数、ro.debuggable参数、ro.adb.secure参数的修改,可以开启adbdebug模式。

步骤s203,将经过修改的default.prop文件打包到所述boot.img文件,并将所述经过打包的boot.img文件刷入所述android系统rom包。

在本发明实施例中,经过修改的default.prop文件并不能直接使android系统rom包开启adbdebug模式,因此需要将经过修改的default.prop文件打包到boot.img文件中,通过指令“mkbootoutnewboot.img”将经过打包的boot.img文件刷入android系统rom包中。

步骤s102,建立应用软件与android系统的通信连接。

建立应用软件与android系统的通信的方法较多,在本实施例中优选如下方式:

在android系统中导入socket通信工具,并通过所述adb开启socketserver进程;在应用软件中建立socketclient。

在本发明实施例中,socket通信是两个程序之间进行双向通信的通信方式,android系统内部通过socket通信即可实现两个程序之间数据的传递,在开启socket通信之后,通过adb开启socketserver进程,adb就可以接收作为socketclient的应用程序发送的数据。也即应用软件通过socket通信将所述应用软件的root请求发送到adb。

导入socket通信工具可以为基于安卓自动化测试框架androiduiautomator(安卓自动化测试框架),在本实施例中可以将预设的基于安卓自动化测试框架androiduiautomator的工具导入到所述android系统rom包。

在本发明实施例中,基于androiduiautomator的工具中集成了androidsocket通信机制,因此将该工具导入到android系统rom包中即可开启socket通信。

步骤s103,应用软件向所述adb发送root请求;

在应用软件与系统建立了通信后后,即可向所述adb发送root请求。

步骤s104,通过解析获取所述root请求中的请求消息,并根据所述请求消息为对应的应用软件执行root操作。

在本发明实施例中,adb解析应用软件发送的root请求,从该root请求中获取请求消息,根据该请求消息为对应的应用软件进行root,从而实现为单个软件提供root权限。

其中,所述请求消息的格式为:包名@命令。如:com.android.test@ls/data/system。

本发明实施例,在建立应用软件与android系统的通信连接后应用软件向所述adb发送了root请求,系统解析获取的所述root请求中的请求消息,并根据所述请求消息为对应的应用软件执行root操作,也就实现了应用软件获取root权限的目的。本发明的android系统中只有adb具有root权限,应用软件的root需要经过adb的审核才可实现,避免了恶意样本利用系统漏洞提取root权限的情况,降低了android系统中su文件、superuser.apk被删除的可能,提高了安全性。

如图3所示为本发明一示例性实施例示出的一种应用软件获取android系统root权限的系统的结构图,所述系统包括:

boot.img参数修改单元301,用于修改android系统rom包的boot.img参数,以开启所述android系统rom包的adbdebug模式,使得仅adb具有root权限。

在本发明实施例中,debug模式即调试模式,具有debug模式的adb拥有对android系统进行调试的权限,通过调试,adb可以使任意应用软件拥有root权限。android系统是根据android系统rom运行的,因此通过修改android系统rom包中的boot.img参数,即可使android系统rom包中的adb具有debug模式。

如图4所示为本发明另一示例性实施例示出的一种应用软件获取android系统root权限的系统的结构图,所述boot.img参数修改单元301,包括:

default.prop文件获取子单元401,用于通过boot.img解析工具对所述android系统rom包中的boot.img文件进行解析,获取default.prop文件。

在本发明实施例中,boot.img文件是android手机启动时必须加载的文件,boot.img文件解析工具是一款专门用于解析boot.img文件的工具,通过指令“mkbootboot.imgout”对android系统rom包中的boot.img文件进行解析,通过解析获取default.prop文件。

参数修改子单元402,用于对所述default.prop文件中的参数进行修改,所述修改包括:ro.secure参数、ro.debuggable参数、ro.adb.secure参数。

在本发明实施例中,default.prop文件中的ro.secure参数、ro.debuggable参数、ro.adb.secure参数是与adb相关的参数,通过对ro.secure参数、ro.debuggable参数、ro.adb.secure参数的修改,可以开启adbdebug模式。

刷入子单元403,用于将经过修改的default.prop文件打包到所述boot.img文件,并将所述经过打包的boot.img文件刷入所述android系统rom包。

在本发明实施例中,经过修改的default.prop文件并不能直接使android系统rom包中的adb具有debug模式,因此需要将经过修改的default.prop文件打包到boot.img文件中,通过指令“mkbootoutnewboot.img”将经过打包的boot.img文件刷入android系统rom包中。

通信单元302,用于建立应用软件与android系统的通信连接。

在本实施例中,通信单元可以包括第一子单元、第二子单元,其中:

第一子单元,用于向android系统导入socket通信工具,并通过所述adb开启socketserver进程。

比如将预设的基于安卓自动化测试框架androiduiautomator的工具导入到所述android系统rom包。在本发明实施例中,基于androiduiautomator(安卓自动化测试框架)的工具中集成了androidsocket通信机制,因此将该工具导入到android系统rom包中即可开启socket通信。

在本发明实施例中,socket通信是两个程序之间进行双向通信的通信方式,android系统内部通过socket通信即可实现两个程序之间数据的传递,在开启socket通信之后,通过adb开启socketserver进程,adb就可以接收作为socketclient的程序发送的数据。

第二子单元,用于在所述应用软件的中建立socketclient。

root请求发送单元303,用于由应用软件向所述adb发送root请求。

在本发明实施例中,socket通信使android系统中的两个程序可以进行相互通信,因此在应用软件中建立socketclient后,便可通过socket通信将root请求发送到作为socketserver的adb了。

root单元304,用于通过解析获取所述root请求中的请求消息,并根据所述请求消息为对应的应用软件执行root操作。

在本发明实施例中,adb解析应用软件发送的root请求,从该root请求中获取请求消息,根据该请求消息为对应的应用软件进行root,从而实现为单个软件提供root权限。

其中,所述请求消息的格式为:包名@命令。如:com.android.test@ls/data/system。

本发明实施例,在建立应用软件与android系统的通信连接后应用软件向所述adb发送了root请求,系统解析获取的所述root请求中的请求消息,并根据所述请求消息为对应的应用软件执行root操作,也就实现了应用软件获取root权限的目的。本发明的android系统中只有adb具有root权限,应用软件的root需要经过adb的审核才可实现,避免了恶意样本利用系统漏洞提取root权限的情况,降低了android系统中su文件、superuser.apk被删除的可能,提高了安全性。

本领域普通技术人员可以理解为上述实施例所包括的各个单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

本领域普通技术人员还可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以在存储于一计算机可读取存储介质中,所述的存储介质,包括:rom/ram、磁盘、光盘等。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1