CN106650408B - 一种用于判断安卓***是否具有root权限的方法和*** - Google Patents
一种用于判断安卓***是否具有root权限的方法和*** Download PDFInfo
- Publication number
- CN106650408B CN106650408B CN201611131044.3A CN201611131044A CN106650408B CN 106650408 B CN106650408 B CN 106650408B CN 201611131044 A CN201611131044 A CN 201611131044A CN 106650408 B CN106650408 B CN 106650408B
- Authority
- CN
- China
- Prior art keywords
- file
- path
- root
- storage interface
- environment variable
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及应用交互领域,公开了一种用于判断安卓***是否具有root权限的方法,包括步骤S1:获取安卓***PATH环境变量的路径;步骤S2:遍历PATH环境变量路径下的文件,判断PATH环境变量路径下的文件中是否含有su文件,若有,则表明***具有root权限,若没有,则表明***没有root权限;步骤S3:将步骤S2的判断结果存于数据存储接口的文件中,当再次需要判断***是否具有root权限时,直接读取数据存储接口文件中的root权限判断结果。本发明还公开了一种用于判断安卓***是否具有root权限的***,本发明能够有效提高***root权限的判定效率。
Description
技术领域
本发明涉及应用交互领域,具体涉及一种用于判断安卓***是否具有root权限的方法和一种用于判断安卓***是否具有root权限的***。
背景技术
对于运行于安卓***上的软件,在运行的过程中,经常会对***的root权限环境进行判断,若***具有root权限,则运行于***上的软件获取root权限后能够开启一些新的特性,从而提升用户对软件或***的使用体验。root权限为***权限的一种,获得root权限,相当于获得***的最高权限。
对于***是否具有root权限,常规的判断方法是通过执行su命令的成功与否,来判断***是否具有root权限,在执行su命令时,会弹窗告知用户***是否具有root权限和某软件正在进行***root权限的查询,su命令用于变更***使用者身份,su命令的执行以及弹窗程序的运行,极大地增加了***内存消耗,且判断结果往往不够准确。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种用于判断安卓***是否具有root权限的方法和一种用于判断安卓***是否具有root权限的***,能够有效提高***root权限的判定效率。
为达到以上目的,本发明采取的技术方案是:包括:
步骤S1:获取***PATH环境变量的路径;
步骤S2:遍历PATH环境变量路径下的文件,判断PATH环境变量路径下的文件中是否含有su文件,若有,则表明***具有root权限,若没有,则表明***没有root权限;
步骤S3:将步骤S2的判断结果存于数据存储接口的文件中,当再次需要判断***是否具有root权限时,直接读取数据存储接口文件中的root权限判断结果。
在上述技术方案的基础上,所述su文件为用于变更***使用者身份的可执行文件。
在上述技术方案的基础上,步骤S1具体为:
S1.1:获取PATH环境变量的路径信息,所述路径信息为一包括多个路径的字符串;
S1.2:拆分路径信息,得到PATH环境变量的所有路径。
在上述技术方案的基础上,步骤S2中,使用grep命令判断PATH环境变量路径下的文件中是否含有su文件。
在上述技术方案的基础上,若在PATH环境变量路径下的文件中找到su文件,则grep命令返回值为su文件的路径;若在PATH环境变量路径下的文件中没有找到su文件,则grep命令返回值为空。
在上述技术方案的基础上,所述数据存储接口为SharedPreferences存储接口。
在上述技术方案的基础上,判断结果存于数据存储接口的步骤为:
S3.1:获取安卓***的SharedPreferences存储接口;
S3.2:调用SharedPreferences存储接口的编辑接口;
S3.3:将判断结果储存至编辑接口中,编辑接口将判断结果提交至SharedPreferences存储接口的文件中。
本发明还提供一种用于判断安卓***是否具有root权限的***,包括:
获取模块,其用于获取PATH环境变量路径下的文件;
判断模块,其用于判断PATH环境变量路径下的文件中是否含有su文件;
存储模块,其用于将判断模块的判断结果存于数据存储接口的文件中。
在上述技术方案的基础上,所述存储模块还用于当再次需要判断***是否具有root权限时,直接读取数据存储接口文件中的判断结果。
在上述技术方案的基础上,所述su文件为用于变更***使用者身份的可执行文件。
与现有技术相比,本发明一种用于判断安卓***是否具有root权限的方法的优点在于:
(1)通过查找su文件的方式来判断***是否具有root权限,相较于执行su文件判断***是否具有root权限的方式,避免弹窗,同时减少***功耗。
(2)针对su文件为可执行文件的特性,仅在PATH环境变量路径下的文件中进行su文件的查找,缩小查找范围,提高***root权限的判断速度和效率。
(3)将***是否具有root权限的判断结果存于数据存储接口文件中,当有软件再次进行***是否具有root权限的查询和判断时,直接读取数据存储接口文件中的判断结果,告知软件***是否具有root权限,提高了查询效率。
本发明一种用于判断安卓***是否具有root权限的***的优点在于:仅首次进行***是否具有root权限的判断时,通过查找su文件的方式进行***root权限的判断,并将判断结果存储于数据存储接口的文件中,当再次需要进行***是否具有root权限的判断时,通过读取数据存储接口文件中的判断结果便可知道***是否具有root权限,极大地提高了判定速度,同时减少了***因root权限判定而产生的功耗。
附图说明
图1为本发明一种用于判断安卓***是否具有root权限的方法的流程图。
具体实施方式
以下结合附图对本发明作进一步详细说明。
参见图1所示,本发明提供一种用于判断安卓***是否具有root权限的方法,通过查找***中是否含有su文件,从而快速而高效的对安卓***的***是否具有root权限进行判断。su文件为一种可执行文件,通过执行su文件,能够变更***使用者身份,一般情况下,若***具有root权限,通过执行su文件,即su命令,获得***的root权限,用户或软件则会拥有***最高的使用权限。
本发明用于判断安卓***是否具有root权限的方法包括:
步骤S1:获取安卓***PATH环境变量的路径。安卓***是基于linux***的,故安卓***底层相关操作和linux***完全一样,linux***是一种支持多用户、多任务、多线程和多CPU的操作***,在linux***中,环境变量主要提供linux***运行的一些公用变量,环境变量中有一PATH环境变量,PATH环境变量表示当前查找可执行文件的路径信息,即只有在PATH环境变量路径下的文件中可执行文件才能够被linux***识别和运行,同理,安卓***的PATH环境变量路径下的文件中可执行文件才能够被***识别和运行,基于此,本发明将su文件的查找范围限于PATH环境变量的路径下,从而缩短su文件的查找范围,减少查找时间。
对于PATH环境变量的路径的获取,包括:
S1.1:获取PATH环境变量的路径信息,路径信息为一包括多个路径的字符串。PATH环境变量的路径信息通过调用echo$PATH命令进行获取,获取到的为一包括多个路径的字符串,如下:
/bin:/sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin
S1.2:拆分路径信息,得到PATH环境变量的所有路径。对于包括多个路径的字符串,每个路径间均通过冒号进行分隔,此时调用split(“:”)函数对字符串进行拆分,split(“:”)函数返回拆分字符串后形成的一个数组,数组中每一个元素即对应一个路径。
步骤S2:遍历PATH环境变量路径下的文件,判断PATH环境变量路径下的文件中是否含有su文件,若有,则表明***具有root权限,若没有,则表明***没有root权限。对于PATH环境变量所有路径下的所有文件均会进行遍历,以查找判断是否含有su文件。linux***中常使用grep命令进行查找操作,grep命令是一种强大的文本搜索工具,同理,在本发明的安卓***中,也使用grep命令来查找后判断PATH环境变量路径下的文件中是否含有su文件,grep命令的使用代码为:
Grep filename
若在PATH环境变量路径下的文件找到su文件,则grep命令返回值为su文件的路径,即表明***具有root权限,su文件的路径为找到su文件的PATH环境变量路径下文件的路径;若在PATH环境变量路径下的文件中没有找到su文件,则grep命令返回值为空,即表明***没有root权限。
步骤S3:将步骤S2的判断结果存于数据存储接口的文件中,当再次需要判断***是否具有root权限时,直接读取数据存储接口文件中关于***是否具有root权限的判断结果。本实施例中,数据存储接口为SharedPreferences存储接口,SharedPreferences存储接口是安卓***中的一个轻量级储存类。后续,当再次需要判断***是否具有root权限时,会直接读取SharedPreferences数据存储接口的文件,SharedPreferences数据存储接口会将判断结果直接返回,得到***是否具有root权限的判断结果,避免再次查找su文件重新进行是否具有root权限的判断,减少等待时间以及***功耗。
判断结果存于数据存储接口的步骤包括:
S3.1:获取安卓***的SharedPreferences存储接口,通过PreferenceManager.getDefaultSharedPreferences(Context)函数便能够获取到***的SharedPreferences存储接口;
S3.2:调用SharedPreferences存储接口的编辑接口,编辑接口通过SharedPreferences存储接口的edit()函数调用;
S3.3:将判断结果储存至编辑接口中,编辑接口调用将判断结果提交至SharedPreferences存储接口的文件中,具体的,调用编辑接口的putString函数将判断结果储存至编辑接口中,putString函数的功能为存储,对于判断结果的提交,通过安卓***提供的commit函数将判断结果提交至SharedPreferences存储接口的文件中。若判断结果为***具有root权限,则SharedPreferences存储接口文件中存储的数据为true,若判断结果为***不具有root权限,则SharedPreferences存储接口文件中存储的数据为false。
本发明还提供一种基于上述方法的用于判断安卓***是否具有root权限的***,包括获取模块、判断模块和存储模块。
获取模块用于获取PATH环境变量路径下的文件;判断模块用于判断PATH环境变量路径下的文件中是否含有su文件,若含有su文件,则表明***具有root权限,若不含有su文件,则表明***没有root权限,su文件为用于变更***使用者身份的可执行文件;存储模块用于将判断模块的判断结果存于数据存储接口的文件中,存储模块还用于当再次需要判断***是否具有root权限时,直接读取数据存储接口文件中的判断结果。
仅首次进行***是否具有root权限的判断时,通过查找su文件的方式进行***root权限的判断,并将判断结果存储于数据存储接口的文件中,当再次需要进行***是否具有root权限的判断时,通过读取数据存储接口文件中的判断结果便可知道***是否具有root权限,极大地提高了判定速度,同时减少了***因root权限判定而产生的功耗。
本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
Claims (7)
1.一种用于判断安卓***是否具有root权限的方法,其特征在于,包括:
步骤S1:获取安卓***PATH环境变量的路径;
步骤S2:遍历PATH环境变量路径下的文件,判断PATH环境变量路径下的文件中是否含有su文件,若有,则表明***具有root权限,若没有,则表明***没有root权限;
步骤S3:将步骤S2的判断结果存于数据存储接口的文件中,当再次需要判断***是否具有root权限时,直接读取数据存储接口文件中的root权限判断结果,所述数据存储接口为SharedPreferences存储接口;
所述su文件为用于变更***使用者身份的可执行文件。
2.如权利要求1所述的一种用于判断安卓***是否具有root权限的方法,其特征在于,步骤S1具体为:
S1.1:获取PATH环境变量的路径信息,所述路径信息为一包括多个路径的字符串;
S1.2:拆分路径信息,得到PATH环境变量的所有路径。
3.如权利要求1所述的一种用于判断安卓***是否具有root权限的方法,其特征在于:步骤S2中,使用grep命令判断PATH环境变量路径下的文件中是否含有su文件。
4.如权利要求3所述的一种用于判断安卓***是否具有root权限的方法,其特征在于:若在PATH环境变量路径下的文件中找到su文件,则grep命令返回值为su文件的路径;若在PATH环境变量路径下的文件中没有找到su文件,则grep命令返回值为空。
5.如权利要求1所述的一种用于判断安卓***是否具有root权限的方法,其特征在于,判断结果存于数据存储接口的步骤为:
S3.1:获取安卓***的SharedPreferences存储接口;
S3.2:调用SharedPreferences存储接口的编辑接口;
S3.3:将判断结果储存至编辑接口中,编辑接口将判断结果提交至SharedPreferences存储接口的文件中。
6.一种基于权利要求1所述方法的用于判断安卓***是否具有root权限的***,其特征在于,包括:
获取模块,其用于获取PATH环境变量路径下的文件;
判断模块,其用于判断PATH环境变量路径下的文件中是否含有su文件;
存储模块,其用于将判断模块的判断结果存于数据存储接口的文件中;
所述su文件为用于变更***使用者身份的可执行文件。
7.如权利要求6所述的一种用于判断安卓***是否具有root权限的***,其特征在于:所述存储模块还用于当再次需要判断***是否具有root权限时,直接读取数据存储接口文件中的判断结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611131044.3A CN106650408B (zh) | 2016-12-09 | 2016-12-09 | 一种用于判断安卓***是否具有root权限的方法和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611131044.3A CN106650408B (zh) | 2016-12-09 | 2016-12-09 | 一种用于判断安卓***是否具有root权限的方法和*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106650408A CN106650408A (zh) | 2017-05-10 |
CN106650408B true CN106650408B (zh) | 2020-08-04 |
Family
ID=58825804
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611131044.3A Active CN106650408B (zh) | 2016-12-09 | 2016-12-09 | 一种用于判断安卓***是否具有root权限的方法和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106650408B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108595214A (zh) * | 2018-04-11 | 2018-09-28 | 北京海杭通讯科技有限公司 | 安卓user版本在SELinux强制模式下获取root特权的方法及*** |
CN108959860B (zh) * | 2018-07-20 | 2020-11-17 | 厦门市美亚柏科信息股份有限公司 | 一种检测Android***是否被破解和破解记录获取方法 |
CN111125743B (zh) * | 2018-10-31 | 2022-02-08 | 上海哔哩哔哩科技有限公司 | 权限管理方法、***、计算机设备及计算机可读存储介质 |
CN110378106B (zh) * | 2019-07-23 | 2021-08-03 | 北京智游网安科技有限公司 | 一种root检测方法、智能终端及存储介质 |
CN110472381B (zh) * | 2019-07-31 | 2021-05-25 | 广州微算互联信息技术有限公司 | 基于安卓***的root权限隐藏方法、***及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102981835A (zh) * | 2012-11-02 | 2013-03-20 | 福州博远无线网络科技有限公司 | 安卓应用程序永久获取Root权限的方法 |
CN103714287A (zh) * | 2013-12-25 | 2014-04-09 | 北京奇虎科技有限公司 | 一种获取临时Root权限的方法及装置 |
CN104506639A (zh) * | 2014-12-29 | 2015-04-08 | 北京奇虎科技有限公司 | 一种获取Root权限的方法及装置 |
CN104881283A (zh) * | 2015-05-20 | 2015-09-02 | 深圳市创维电器科技有限公司 | 一种获取基于安卓的终端设备的root权限的方法及*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101819525B (zh) * | 2009-02-27 | 2013-11-27 | 国际商业机器公司 | 用于查找***中应用的配置文件的方法和设备 |
-
2016
- 2016-12-09 CN CN201611131044.3A patent/CN106650408B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102981835A (zh) * | 2012-11-02 | 2013-03-20 | 福州博远无线网络科技有限公司 | 安卓应用程序永久获取Root权限的方法 |
CN103714287A (zh) * | 2013-12-25 | 2014-04-09 | 北京奇虎科技有限公司 | 一种获取临时Root权限的方法及装置 |
CN104506639A (zh) * | 2014-12-29 | 2015-04-08 | 北京奇虎科技有限公司 | 一种获取Root权限的方法及装置 |
CN104881283A (zh) * | 2015-05-20 | 2015-09-02 | 深圳市创维电器科技有限公司 | 一种获取基于安卓的终端设备的root权限的方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN106650408A (zh) | 2017-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106650408B (zh) | 一种用于判断安卓***是否具有root权限的方法和*** | |
CN107247808B (zh) | 一种分布式NewSQL数据库***及图片数据查询方法 | |
US8510316B2 (en) | Database processing system and method | |
CN110321344B (zh) | 关联数据的信息查询方法、装置、计算机设备及存储介质 | |
US8090745B2 (en) | K-nearest neighbor search method, k-nearest neighbor search program, and k-nearest neighbor search device | |
CN109804363B (zh) | 使用通过示例的格式修改的连接 | |
KR101191172B1 (ko) | 이미지 데이터베이스의 이미지들을 관리하는 방법, 장치 및 컴퓨터 판독 가능한 기록 매체 | |
CN102902573B (zh) | 一种基于共享资源的任务的处理方法及装置 | |
KR20170023022A (ko) | 코드 추천 기법 | |
CN110222238B (zh) | 字符串与识别符双向映射的查询方法和*** | |
CN108228799B (zh) | 对象索引信息的存储方法及装置 | |
US10423616B2 (en) | Using local memory nodes of a multicore machine to process a search query | |
CN104216992A (zh) | 一种信息处理方法及装置 | |
CN107480260B (zh) | 大数据实时分析方法、装置、计算设备及计算机存储介质 | |
US20180165333A1 (en) | Big data calculation method and system | |
CN105069063A (zh) | 图片搜索方法及装置 | |
US8914377B2 (en) | Methods for prefix indexing | |
KR102415962B1 (ko) | 스토리지 시스템 및 그것의 동작 방법 | |
CN104035822A (zh) | 一种低开销的高效内存去冗余方法及*** | |
US9164978B2 (en) | Identifying objects within a multidimensional array | |
CN105022794A (zh) | 一种快速搜索所需文章内容的方法及装置 | |
CN112698866B (zh) | 一种基于Git的代码行生命周期追溯方法及电子装置 | |
An et al. | Using index in the mapreduce framework | |
CN108038253B (zh) | 一种日志查询的处理方法及装置 | |
CN110008030A (zh) | 一种元数据访问的方法、***及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |