一种获取基于安卓的终端设备的root权限的方法及系统的制作方法

xiaoxiao2020-10-23  10

一种获取基于安卓的终端设备的root权限的方法及系统的制作方法
【技术领域】
[0001]本发明涉及终端设备技术领域,尤其涉及一种获取基于安卓的终端设备的root权限的方法及系统。
【背景技术】
[0002]安卓(Android)是一种基于Linux的自由及开放源代码的操作系统,主要使用于终端设备,如智能手机和平板电脑。终端设备一般都是限制用户权限的,即分为用户权限和Root (根)权限;Root权限是系统权限的一种,与System(系统)权限可以理解为一个概念;Root权限为整个终端设备最高权限,可以启动或停止一个进程,删除或增加用户,增加或者禁用硬件等等。由于root权限如此强大,软件默认开启root权限会存在非常大的安全隐患;因此,出于安全考虑,也是Google的要求,出货的Android终端设备都使用发布模式编译,即去除了大部分的调试软件,并且使得调试桥adbd服务(Android Debug Bridge)不能以root权限运行,最大程度的保证了终端设备的安全,但是与此同时,也给终端设备的开发调试造成了不便;如,当用户或者开发人员发现终端设备的缺陷,但是却不能获取root权限,使得很多调试工作无法进行。在现有技术中,如果要获得root权限,需要联网到服务器且每次获取root权限都需要发送特定指令进行鉴权,影响终端设备的调试效率。
[0003]上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。

【发明内容】

[0004]本发明的主要目的在于提供一种获取基于安卓的终端设备的root权限的方法及系统,旨在解决的现有技术中需要联网到服务器获取root权限,过程复杂,影响终端设备的调试效率。
[0005]为实现上述目的,本发明提供一种获取基于安卓的终端设备的root权限的方法,该方法包括:
[0006]开机启动终端设备;
[0007]检测所述终端设备的存储器中是否存储有设定的标识性文件,所述设定的标识性文件用于触发启动root权限;
[0008]若所述终端设备的存储器中存储有标识性文件,以root权限运行调试桥adbd服务。
[0009]优选地,所述若所述终端设备上存储有标识性文件,以root权限运行调试桥adbd服务的步骤包括:
[0010]若所述终端设备的存储器中存储有设定的标识性文件,则将安卓系统属性sys.adb.debug的值设置为I ;
[0011]以root权限启动所述终端设备的adbd服务;
[0012]判断所述安卓系统属性sys.adb.debug的值是否为I ;
[0013]若所述安卓系统属性sys.adb.debug的值为1,则以root权限继续运行adbd服务。
[0014]优选地,所述设定的标识性文件为debug, prop文件。
[0015]优选地,所述开机启动终端设备的步骤之前,该方法还包括:
[0016]在所述终端设备的存储器中创建设定的标识性文件。
[0017]优选地,所述若所述终端设备的存储器中存储有设定的标识性文件,以root权限运行调试桥adbd服务的步骤之后,该方法还包括:
[0018]删除所述设定的标识性文件。
[0019]此外,为实现上述目的,本发明还提供一种获取基于安卓的终端设备的root权限的系统,该系统包括:
[0020]开机模块,用于开机启动终端设备;
[0021]检测模块,用于检测所述终端设备的存储器中是否存储有设定的标识性文件,所述设定的标识性文件用于触发启动root权限;
[0022]处理模块,用于在所述终端设备的存储器中存储有设定的标识性文件时,以root权限运行调试桥adbd服务。
[0023]优选地,所述处理模块包括:
[0024]设置单元,用于在所述终端设备的存储器中存储有设定的标识性文件时,将安卓系统属性sys.adb.debug的值设置为I ;
[0025]第一启动单元,用于在将安卓系统属性sys.adb.debug的值设置为I后,以root权限启动所述终端设备的adbd服务;
[0026]判断单元,用于在所述第一启动单元以root权限启动所述终端设备的adbd服务后,判断所述安卓系统属性sys.adb.debug的值是否为I ;
[0027]处理单元,用于在所述判断单元的判断结果为所述安卓系统属性sys.adb.debug的值为I时,以root权限继续运行adbd服务。
[0028]优选地,所述设定的标识性文件为debug, prop文件。
[0029]优选地,该系统还包括:
[0030]创建模块,用于在所述终端设备的存储器中创建设定的标识性文件。
[0031]优选地,该系统还包括:
[0032]删除模块,用于删除所述设定的标识性文件。
[0033]采用本发明的获取基于安卓的终端设备的root权限的方法及系统,通过检测终端设备的存储器中是否存储有设定的标识性文件,若终端设备的存储器中存储有设定的标识性文件,以root权限运行adbd服务;可快速的获取root权限,提高调试效率。
【附图说明】
[0034]图1为本发明获取基于安卓的终端设备的root权限的方法的第一实施例的流程示意图;
[0035]图2为图1中步骤S30的详细流程示意图;
[0036]图3为本发明获取基于安卓的终端设备的root权限的方法的第二实施例的流程示意图;
[0037]图4为本发明获取基于安卓的终端设备的root权限的方法的第三实施例的流程示意图;
[0038]图5为本发明获取基于安卓的终端设备的root权限的系统的第一实施例的结构示意图;
[0039]图6为图5中处理模块的详细结构示意图;
[0040]图7为本发明获取基于安卓的终端设备的root权限的系统的第二实施例的结构示意图;
[0041]图8为本发明获取基于安卓的终端设备的root权限的系统的第三实施例的结构示意图。
[0042]本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
【具体实施方式】
[0043]应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0044]本发明提供一种获取基于安卓的终端设备的root权限的方法。
[0045]参照图1,图1为本发明获取基于安卓的终端设备的root权限的方法的第一实施例流程示意图,该方法包括:
[0046]S10、开机启动终端设备。
[0047]终端设备上电后,开机启动终端设备。该终端设备为智能手机、平板电脑等。
[0048]S20、检测该终端设备的存储器中是否存储有设定的标识性文件,该设定的标识性文件用于触发启动root权限;若该终端设备的存储器中存储有设定的标识性文件,则执行步骤S30。
[0049]在该步骤中,通过嵌入到安卓系统中的设定的标识性文件检测服务adb-check检测该终端设备的存储器是否存储有设定的标识性文件,该设定的标识性文件检测服务adb-check可嵌入到init进程中。init进程是内核启动的第一个用户级进程。在该步骤中,检测该终端设备的存储器中是否存储有设定的标识性文件的的检测程序以root权限运行。若该终端设备上未存储有设定的标识性文件,则直接退出获取root权限的流程,以普通权限启动adbd服务。
[0050]该设定的标识性文件为debug, prop文件,在一个实施例中,该设定的标识性文件debug, prop文件可以为一个空文件。
[0051]该存储器可以为终端设备的内置存储器,也可以是外置存储器。
[0052]S30、以root权限运行调试桥adbd服务。
[0053]在该步骤中,获取root权限,以root权限运行adbd服务。以root权限运行adbd服务后,adb客户端连接到该终端设备时,也可以获得root权限。
[0054]当在终端设备的存储器中存储有设定的标识性文件时,该终端设备在关机后重启时,仍然可以获得root权限,以root权限运行adbd服务。
[0055]采用本发明的方案,在需要获取root权限时,只要检测该终端设备的存储器中是否存储有设定的标识性文件即可,如果终端设备的存储器中存储有设定的标识性文件,则以root权限启动adbd服务器,如果终端设备的存储器中没有存储设定的标识性文件,则该终端设备正常开机,以普通权限(用户权限)运行adbd服务;上述技术方案,可快速为adbd服务获取root权限,提高调试效率。
[0056]进一步的,该步骤S30包括:
[0057]S31、将安卓系统属性sys.adb.debug的值设置为I。
[0058]S32、以root权限启动该终端设备的adbd服务。
[0059]S33、判断该安卓系统属性sys.adb.debug的值是否为1,若该安卓系统属性sys.adb.debug的值为1,则执行步骤S34。
[0060]在该步骤中,判断该安卓系统属性sys.adb.debug的值是否为1,如果为1,则说明该adbd服务可以继续以root权限运行,如果不为1,则需要降为普通权限运行adbd服务,即禁止继续以root权限运行adbd服务。
[0061 ] 可以通过修改adbd服务源码,使得adbd服务在启动时,如果检测到系统属性sys.adb.debug的值为I时则以root权限运行adbd服务,具体可以修改/system/core/adb/adb.c 中的 static int shouId_drop_privileges()函数,先检测系统属性 sys.adb.debug的值,若为1,则使adbd服务以root权限运行,若为O则不做任何处理。
[0062]S34、以root权限继续运行adbd服务。
[0063]在该步骤中,abdb服务继续以root权限运行,adb客户端连接到该终端设备时,可以获得root权限,给调试带来了极大的方便。
[0064]参照图3,图3为本发明获取基于安卓的终端设备的root权限的方法的第二实施例。
[0065]基于上述获取基于安卓的终端设备的root权限的方法的第一实施例,在步骤SlO之前,该方法还包括:
[0066]S40、在该终端设备的存储器中创建设定的标识性文件。
[0067]在该步骤中,预先在终端设备的存储器中创建设定的标识性文件,该设定的标识性文件为debug, prop文件,在一个实施例中,该设定的标识性文件为debug, prop文件可以为一个空文件。该存储器可为内置存储器或外置存储器。通 过在该终端设备的存储器中创建设定的标识性文件,可在后续为调试工具adbd服务器获取root权限时,只要检测到该设定的标识性文件,则可快速获取root权限。
[0068]参照图4,图4为本发明获取基于安卓的终端设备的root权限的方法的第三实施例。
[0069]基于上述获取基于安卓的终端设备的root权限的方法的第一实施例,在步骤S30之后,该方法还包括:
[0070]S50、删除该设定的标识性文件。
[0071]在该步骤中,删除该设定的标识性文件,则该终端设备再次启动时,可恢复到普通权限(用户权限)运行,即恢复到adbd服务器获取root权限前的状态。通过该步骤可方便的解除终端设备的adbd服务的root权限。
[0072]本发明还提供一种获取基于安卓的终端设备的root权限的系统。
[0073]参照图5,图5为本发明获取基于安卓的终端设备的root权限的系统的第一实施例的结构示意图,该系统包括:
[0074]开机模块10,用于开机启动终端设备;
[0075]检测模块20,用于检测该终端设备的存储器40中是否存储有设定的标识性文件,该设定的标识性文件用于触发启动root权限;
[0076]处理模块30,用于在该终端设备的存储器40中存储有设定的标识性文件时,以root权限运行调试桥adbd服务。
[0077]终端设备上电后,该开机模块10启动终端设备。该终端设备为智能手机、平板电脑等。
[0078]该检测模块20通过嵌入到安卓系统中的设定的标识性文件检测服务adb-check检测该终端设备的存储器40是否存储有设定的标识性文件,该设定的标识性文件检测服务adb-check可嵌入到init进程中。init进程是内核启动的第一个用户级进程。该检测模块20检测该终端设备的存储器40中是否存储有设定的标识性文件的的检测程序以root权限运行。若该终端设备上未存储有设定的标识性文件,则直接退出获取root权限的流程,以普通权限启动adbd服务。
[0079]该设定的标识性文件为debug, prop文件,在一个实施例中,该设定的标识性文件debug, prop文件可以为一个空文件。
[0080]该存储器40可以为终端设备的内置存储器,也可以是外置存储器。
[0081]该处理模块30获取root权限,以root权限运行adbd服务。以root权限运行adbd服务后,adb客户端连接到该终端设备时,也可以获得root权限。
[0082]当在终端设备的存储器40中存储有设定的标识性文件时,该终端设备在关机后重启时,仍然可以获得root权限,以root权限运行adbd服务。
[0083]采用本发明的方案,在需要获取root权限时,只要通过检测模块20检测该终端设备的存储器40中是否存储有设定的标识性文件即可,如果检测结果为终端设备的存储器40中存储有设定的标识性文件,则处理模块30以root权限启动adbd服务器,如果检测结果为终端设备的存储器40中没有存储设定的标识性文件,则该终端设备正常开机,以普通权限(用户权限)运行adbd服务;上述技术方案,可快速为adbd服务获取root权限,提高调试效率。
[0084]进一步的,如图6所示,该处理模块30包括:
[0085]设置单元31,用于在该终端设备的存储器40中存储有设定的标识性文件时,将安卓系统属性sys.adb.debug的值设置为I ;
[0086]第一启动单元32,用于在将安卓系统属性sys.adb.debug的值设置为I后,以root权限启动该终端设备的adbd服务;
[0087]判断单元33,用于在该第一启动单元32以root权限启动该终端设备的adbd服务后,判断该安卓系统属性sys.adb.debug的值是否为I ;
[0088]处理单元34,用于在该判断单元33的判断结果为该安卓系统属性sys.adb.debug的值为I时,以root权限继续运行adbd服务。
[0089]该判断单元33判断该安卓系统属性sys.adb.debug的值是否为1,如果为1,则说明该adbd服务可以继续以root权限运行,如果不为1,则需要降为普通权限运行adbd服务,即禁止继续以root权限运行adbd服务。
[0090]可以通过修改adbd服务源码,使得adbd服务在启动时,如果检测到系统属性sys.adb.debug的值为I时则以root权限运行adbd服务,具体可以修改/system/core/adb/adb.c 中的 static int shou I d_dr op_pr ivileges()函数,先检测系统属性 sys.adb.debug的值,若为1,则使adbd服务以10t权限运行,若为O则不做任何处理。
[0091]在该判断单元33的判断结果为该安卓系统属性sys.adb.debug的值为I时,该abdb服务继续以root权限运行,adb客户端连接到该终端设备时,可以获得root权限,给调试带来了极大的方便。
[0092]参照图7,图7为本发明获取基于安卓的终端设备的root权限的系统的第二实施例的结构示意图。
[0093]基于上述获取基于安卓的终端设备的root权限的系统的第一实施例,该系统还包括:
[0094]创建模块50,用于在该终端设备的存储器40中创建设定的标识性文件。
[0095]用户可通过该创建模块50预先在终端设备的存储器40中创建设定的标识性文件,该设定的标识性文件为debug, prop文件,在一个实施例中,该设定的标识性文件为debug, prop文件可以为一个空文件。该存储器40可为内置存储器40或外置存储器40。通过在该终端设备的存储器40中创建设定的标识性文件,可在后续为调试工具adbd服务器获取root权限时,只要检测到该设定的标识性文件,则可快速获取root权限。
[0096]参照图8,图8为本发明获取基于安卓的终端设备的root权限的系统的第三实施例的结构示意图。
[0097]基于上述获取基于安卓的终端设备的root权限的系统的第一实施例,该系统还包括:
[0098]删除模块60,用于删除该设定的标识性文件。
[0099]用户可通过该删除模块60删除该设定的标识性文件,则该终端设备再次启动时,由于检测模块20检测不到设定的标识性文件,则可恢复到普通权限(用户权限)运行,即恢复到adbd服务器获取root权限前的状态。通过该删除模块60可方便的解除终端设备的adbd服务的root权限。
[0100]以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
【主权项】
1.一种获取基于安卓的终端设备的root权限的方法,其特征在于,该方法包括: 开机启动终?而设备; 检测所述终端设备的存储器中是否存储有设定的标识性文件,所述设定的标识性文件用于触发启动root权限; 若所述终端设备的存储器中存储有标识性文件,以root权限运行调试桥adbd服务。2.如权利要求1所述的获取基于安卓的终端设备的root权限的方法,其特征在于,所述若所述终端设备的存储器中存储有标识性文件,以root权限运行调试桥adbd服务的步骤包括: 若所述终端设备的存储器中存储有标识性文件,则将安卓系统属性sys.adb.debug的值设置为I ; 以root权限启动所述终端设备的adbd服务; 判断所述安卓系统属性sys.adb.debug的值是否为I ; 若所述安卓系统属性sys.adb.debug的值为1,则以root权限继续运行adbd服务。3.如权利要求2所述的获取基于安卓的终端设备的root权限的方法,其特征在于,所述设定的标识性文件为debug, prop文件。4.如权利要求1所述的获取基于安卓的终端设备的root权限的方法,其特征在于,所述开机启动终端设备的步骤之前,该方法还包括: 在所述终端设备的存储器中创建设定的标识性文件。5.如权利要求1所述的获取基于安卓的终端设备的root权限的方法,其特征在于,所述若所述终端设备的存储器中存储有设定的标识性文件,以root权限运行调试桥adbd服务的步骤之后,该方法还包括: 删除所述设定的标识性文件。6.一种获取基于安卓的终端设备的root权限的系统,其特征在于,该系统包括: 开机模块,用于开机启动终端设备; 检测模块,用于检测所述终端设备的存储器中是否存储有设定的标识性文件; 处理模块,用于在所述终端设备的存储器中存储有设定的标识性文件时,以root权限运行调试桥adbd服务。7.如权利要求6所述的获取基于安卓的终端设备的root权限的系统,其特征在于,所述处理模块包括: 设置单元,用于在所述终端设备的存储器中存储有设定的标识性文件时,将安卓系统属性sys.adb.debug的值设置为I ; 第一启动单元,用于在将安卓系统属性sys.adb.debug的值设置为I后,以root权限启动所述终端设备的adbd服务; 判断单元,用于在所述第一启动单元以root权限启动所述终端设备的adbd服务后,判断所述安卓系统属性sys.adb.debug的值是否为I ; 处理单元,用于在所述判断单元的判断结果为所述安卓系统属性sys.adb.debug的值为I时,以root权限继续运行adbd服务。8.如权利要求6所述的获取基于安卓的终端设备的root权限的系统,其特征在于,所述设定的标识性文件为debug, prop文件。9.如权利要求6所述的获取基于安卓的终端设备的root权限的系统,其特征在于,该系统还包括: 创建模块,用于在所述终端设备的存储器中创建设定的标识性文件。10.如权利要求6所述的获取基于安卓的终端设备的root权限的系统,其特征在于,该系统还包括: 删除模块,用于删除所述设定的标识性文件。
【专利摘要】本发明公开了一种获取基于安卓的终端设备的root权限的方法,该方法包括:开机启动终端设备;检测所述终端设备的存储器中是否存储有设定的标识性文件,所述设定的标识性文件用于触发启动root权限;若所述终端设备的存储器中存储有标识性文件,以root权限运行调试桥adbd服务。本发明还公开了一种获取基于安卓的终端设备的root权限的系统。本发明的技术方案,可快速的获取root权限,提高调试效率。
【IPC分类】G06F9/44, G06F9/445
【公开号】CN104881283
【申请号】CN201510260180
【发明人】何鹏
【申请人】深圳市创维电器科技有限公司
【公开日】2015年9月2日
【申请日】2015年5月20日
转载请注明原文地址:https://www.famiwei.com/read-8138792.html

最新回复(0)