发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的获取临时Root权限的方法及装置。
依据本发明的一个方面,提供了一种获取临时Root权限的方法,包括:
在移动设备侧向云端服务器发送下载用于获取临时Root权限的可执行程序文件的下载请求;
在所述移动设备侧从所述云端服务器下载所述可执行程序文件;
在所述移动设备侧运行所述可执行程序文件,通过所述可执行程序文件将当前用户的ID级别修改为预设级别,以获取临时Root权限;
在所述移动设备侧判断所述移动设备是否重新启动;
如果判断到所述移动设备重新启动,则在所述移动设备侧还原当前用户的ID级别为非Root级别,以取消当前用户的临时Root权限。
可选地,在移动设备侧向云端服务器发送下载用于获取临时Root权限的可执行程序文件的下载请求的步骤之前,所述方法还包括:
在移动设备侧判断所述移动设备是否支持临时Root权限;
如果所述移动设备支持临时Root权限,则执行在移动设备侧向云端服务器发送下载用于获取临时Root权限的可执行程序文件的下载请求的步骤。
可选地,所述在移动设备侧判断所述移动设备是否支持临时Root权限的步骤包括:
在所述移动设备侧获取所述移动设备的描述信息;
根据所述移动设备的描述信息以及支持临时Root权限的白名单,判断所述移动设备是否支持临时Root权限。
可选地,在确定当前用户具有临时Root权限之后,所述方法还包括:
利用移动设备的临时Root权限执行指定指令,修改操作***的文件目录属性,使得修改后的操作***的文件目录属性为可读,其中,该文件目录用于存储该移动设备的***应用文件;
读取文件目录下存储的***应用文件,并根据读取的***应用的文件对每个***应用分配标识,所述标识包括:可卸载、谨慎卸载和不可卸载。
可选地,所述临时Root权限的操作至少包括以下任意一种:备份***、修改***的内部程序、将应用程序安装到SD卡上、获取文件目录、静默安装应用程序、卸载应用程序、以及卸载***预装应用程序。
依据本发明的另一个方面,还提供一种获取临时Root权限的方法,包括:
在计算设备侧建立与移动设备的连接,并获取所述移动设备的描述信息;
所述计算设备根据移动设备的描述信息,向云端服务器发送下载可执行程序文件的下载请求;
在所述计算设备侧从云端服务器中下载所述可执行程序文件;
在所述计算设备侧将所述可执行程序文件发送至所述移动设备,并在所述移动设备上运行可执行程序文件,通过可执行程序文件将当前用户的ID级别修改为预设级别,以获取临时Root权限;
在所述计算设备侧判断移动设备是否重新启动;
如果判断到所述移动设备重新启动,在所述计算设备侧将移动设备上的当前用户的ID级别恢复为非Root级别,以取消当前用户的临时Root权限。
可选地,在向云端服务器发送下载可执行程序文件的下载请求的步骤之前,所述方法还包括:
在计算设备侧判断所述移动设备是否支持临时Root权限;
如果所述移动设备支持临时Root权限,则执行向云端服务器发送下载可执行程序文件的下载请求的步骤。
可选地,所述在计算设备侧判断所述移动设备是否支持临时Root权限的步骤包括:
根据所述移动设备的描述信息以及支持临时Root权限的白名单,判断所述移动设备是否支持临时Root权限。
可选地,在确定当前用户具有临时Root权限之后,所述方法还包括:
利用移动设备的临时Root权限执行指定指令,修改操作***的文件目录属性,使得修改后的操作***的文件目录属性为可读,其中,该文件目录用于存储该移动设备的***应用文件;
读取移动设备的操作***的文件目录下存储的***应用文件,并根据读取的***应用的文件对每个***应用分配标识,所述标识包括:可卸载、谨慎卸载和不可卸载。
依据本发明的另一个方面,还提供了一种获取临时Root权限的装置,包括:
下载请求模块,用于向云端服务器发送下载用于获取临时Root权限的可执行程序文件的下载请求;
下载模块,用于从所述云端服务器下载所述可执行程序文件;
获取Root权限模块,用于运行所述可执行程序文件,通过所述可执行程序文件将当前用户的ID级别修改为预设级别,以获取临时Root权限;
重启判断模块,用于在所述移动设备侧判断所述移动设备是否重新启动;
取消Root权限模块,用于如果判断到所述移动设备重新启动,则在所述移动设备侧还原当前用户的ID级别为非Root级别,以取消当前用户的临时Root权限。
可选地,所述装置还包括:
支持判断模块,用于在移动设备侧判断所述移动设备是否支持临时Root权限;如果所述移动设备支持临时Root权限,则触发所述下载请求模块。
可选地,所述支持判断模块包括:
描述信息获取单元,用于获取所述移动设备的描述信息;
支持判断单元,用于根据所述移动设备的描述信息以及支持临时Root权限的白名单,判断所述移动设备是否支持临时Root权限。
可选地,所述装置还包括:
修改模块,用于利用移动设备的临时Root权限执行指定指令,修改操作***的文件目录属性,使得修改后的操作***的文件目录属性为可读,其中,该文件目录用于存储该移动设备的***应用文件;
标识分配模块,用于读取文件目录下存储的***应用文件,并根据读取的***应用的文件对每个***应用分配标识,所述标识包括:可卸载、谨慎卸载和不可卸载。
可选地,所述临时Root权限的操作至少包括以下任意一种:备份***、修改***的内部程序、将应用程序安装到SD卡上、获取文件目录、静默安装应用程序、卸载应用程序、以及卸载***预装应用程序。
依据本发明的又一个方面,还提供了一种获取临时Root权限的装置,包括:
连接模块,用于在计算设备侧建立与移动设备的连接,并获取所述移动设备的描述信息;
下载请求模块,用于在所述计算设备侧根据移动设备的描述信息,向云端服务器发送下载可执行程序文件的下载请求;
下载模块,用于在所述计算设备侧从云端服务器中下载所述可执行程序文件;
获取Root权限模块,用于在所述计算设备侧将所述可执行程序文件发送至所述移动设备,并在所述移动设备上运行可执行程序文件,通过可执行程序文件将当前用户的ID级别修改为预设级别,以获取临时Root权限;
重启判断模块,用于在所述计算设备侧判断移动设备是否重新启动;
取消Root权限模块,用于如果判断到所述移动设备重新启动,在所述计算设备侧将移动设备上的当前用户的ID级别恢复为非Root级别,以取消当前用户的临时Root权限。
可选地,所述装置还包括:
支持判断模块,用于在计算设备侧判断所述移动设备是否支持临时Root权限,如果所述移动设备支持临时Root权限,则触发所述下载请求模块。
可选地,所述支持判断模块进一步用于根据所述移动设备的描述信息以及支持临时Root权限的白名单,判断所述移动设备是否支持临时Root权限。
可选地,所述装置还包括:
修改模块,用于利用移动设备的临时Root权限执行指定指令,修改操作***的文件目录属性,使得修改后的操作***的文件目录属性为可读,其中,该文件目录用于存储该移动设备的***应用文件;
标识模块,用于读取移动设备的操作***的文件目录下存储的***应用文件,并根据读取的***应用的文件对每个***应用分配标识,所述标识包括:可卸载、谨慎卸载和不可卸载。
由上述技术方案可知,本发明的实施例具有如下有益效果:通过获取临时Root权限,使得可以通过Root的身份执行各种操作,例如可以卸载***预装,可以静默删除应用、静默安装升级应用,无需再进行重复的su程序授权操作,避免SuperUser会多次弹出授权提醒的问题,给用户的使用带来极大的方便。
而且,获取临时Root权限是指暂时性的获取Root权限,临时Root和永久Root权限的区别是,临时Root权限在移动设备重新启动后,临时Root权限会自动消失,相对比较安全。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
Root权限是指Unix类操作***(包括Linux)的***管理员权限,类似于Windows***中的Administrator。Root权限可以访问和修改用户的移动设备中几乎所有的文件(Android***文件及用户文件,不包括ROM)。虽然Root权限给用户带来了不少便捷,但是危害随之而来。因为Root权限是***中唯一的超级管理员,具有等同于操作***的权限,所以如果用Root权限进行了错误操作后果是十分危险的,会导致***完全无法使用,而且大部分厂商对于Root了的移动设备,不予以保修。因此,有必要合理地控制Root权限,以及在当前用户获取了Root权限之后,还可以去除当前用户的Root权限,以保证用户对移动设备的正常使用。
实施例一
如图1所示,为本发明的实施例一中获取临时Root权限的方法的流程图,该方法100包括:
步骤S101、在移动设备侧向云端服务器发送下载可执行程序文件的下载请求。
在本发明的实施例中,将安卓应用程序中需要用到Root权限的操作通过C/C++语言进行编写,并编译成安卓***可执行程序文件,该可执行程序文件可用于修改当前用户的ID级别,以使得当前用户获取临时Root权限。当然可以理解的是,在本发明的实施例中并不限定该可执行程序文件的具体实现方式。
可选地,该下载请求中包括移动设备的描述信息,例如描述信息包括移动设备的型号或者移动设备IMEI(International Mobile Equipment Identity,国际移动设备身份码)。其中移动设备的型号的表现形式为:三星Galaxy S、索尼爱立信X10、HTC Hero、或Huawei8120等,当然也并不限于此。
在本发明的实施例中,临时Root权限是指暂时性的Root权限,临时Root权限和永久Root权限的区别是,临时Root权限在移动设备重新启动后,临时Root权限会自动消失。而实际上,用户在临时Root权限下的操作权限与在永久Root权限下的操作权限相同,例如临时Root权限的操作至少包括以下任意一种:备份***、修改***的内部程序、将应用程序安装到SD卡上、获取文件目录、静默安装应用程序、卸载应用程序、以及卸载***预装应用程序。
步骤S103、在移动设备侧从云端服务器下载可执行程序文件。
具体地,在云端服务器中存储有与移动设备的描述信息对应的可执行程序文件,云端服务器接收到下载请求之后,云端服务器可以根据下载请求中的移动设备的描述信息匹配得到可执行程序文件,由云端服务器向移动设备返回可执行程序文件,实现移动设备从云端服务器下载该可执行程序文件。移动设备将下载的可执行程序文件存储至临时目录,例如/data/local/tem的目录下,并修改该可执行程序文件权限分类的所有者和所属分组为Root,例如通过chmod命令修改该可执行程序文件权限分类的所有者和所属分组为Root,当然也并不限于此。
步骤S105、在移动设备侧运行可执行程序文件,通过可执行程序文件将当前用户的ID级别修改为预设级别。
预设级别相当于Root级别,预设级别的权限相当于超级用户(SuperUser)的权限。如果当前用户的ID级别为预设级别时,该用户具有临时Root权限。,例如通过将当前用户的ID属性修改为0,使得当前用户的ID级别修改为预设级别,用户的ID=0就代表已经获取到最高权限,即当前用户已经获取临时Root权限。
步骤S107、如果当前用户的ID级别为预设级别时,确定当前用户已经成功获取临时Root权限。
在本发明的一个实施例中,可以通过如下方式来判断当前用户是否已经获取了临时Root权限,例如通过adb shell id的命令,获取当前用户的ID级别,如果ID=0,表示当前用户已经获取临时Root权限,通常,Root就是获取移动设备***的最高使用权限,用户的ID=0就代表已经获取到最高权限,即当前用户已经获取临时Root权限。
步骤S109、在移动设备侧判断移动设备是否重新启动,若是,进入步骤S111;否则,回到步骤S109。
具体地,移动设备的安卓操作***可以通过PowerManager中的接口来判断移动设备是否重新启动,当然判断方式也并不限于此。
步骤S111、在移动设备侧还原当前用户的ID级别为非Root级别,以取消当前用户的临时Root权限。
也就是,还原当前用户的ID。具体地,若判断到移动设备重新启动后,在移动设备侧将当前用户的ID级别由预设级别恢复到非Root级别,在用户的ID级别为非Root级别时,例如ID=1,而不是ID=0的情形,该用户不具有超级用户的权限,该用户的操作会受到安卓操作***的限制。
可选地,在实施例一中,在确定当前用户具有临时Root权限之后,进入步骤S113。在步骤S113中,利用移动设备的临时Root权限执行指定指令,修改操作***的文件目录属性,使得修改后的操作***的文件目录属性为可读,其中,该文件目录用于存储该移动设备的***应用文件。
可选地,本实施例中提及的指定指令可以为su mount remount命令,文件目录的路径可以是/data/system/app。
以安卓***为例,具体的可执行如下指令:
shell:su-c mount-o remount rw/system/app/system/app
其中,上述命令利用的是adb的shell命令,shell命令里用su(高权限启动,例如root权限)来将目标路径(/system/app)加mount-0remount命令,以将/syatem/app设为rw(可读写)状态。
path可以自定:比如/data/local
然后rw换成ro就变成只读状态
通过该步骤对于临时Root权限的获取,即使用户不存在对于***的临时Root权限,也可以完成对***应用的卸载。
需要说明的是,在使用linux内核的安卓***中,文件目录的属性可包括:可读、可写、可执行三种。在本实施例中,至少要将文件目录的属性设置为可读,才能将***应用文件从文件目录中读出,并输出给用户。
相应地,也可同时将操作***的文件目录同时设置为具有可读写、可读性且可执行的属性,也符合本发明对于文件目录的属性的要求。
在将操作***的文件目录属性修改为可读之后,继续进入步骤S115。在步骤S115中,读取文件目录下存储的***应用文件,并根据读取的***应用的文件对每个***应用分配标识。
本实施例在进入步骤S115时,首先可以通过守护进程从移动设备端读取文件目录下存储的***应用文件,之后,将所读取的***应用文件传到云端服务器做一次过滤,即可以向云端服务器发送携带有***应用的信息的网络查询请求,以查询所述***应用的信息所指示的***应用是否允许卸载。云端服务器会根据查询指示来查询每个***应用是否允许卸载,以对每个***应用分配标识,具体可以包括如下三个标识:可卸载、谨慎卸载、不可卸载。
其中,上述标识是云端服务器提供给移动设备的一个接口返回字段,这个字段和应用包名关联,比如返回com.qihoo.mobile:0、com.qihoo.mobile:1、或者com.qihoo.mobile:2。这个标识的意义是移动设备和云端服务器预先协商好的。其中,当标识com.qihoo.mobile:为0、1、2时分别说明这个包是不可卸载、可卸载、谨慎卸载。
在本发明的实施例中,当前用户获取了临时Root权限后,可以对移动设备中安装的恶意软件(例如牛皮癣软件)进行卸载处理,该恶意软件通常具有以下特点:1、恶意占用***内存,导致本来不充裕的移动设备的内存变小;2、恶意软件在后台启动,占用***cpu资源,影响移动设备运行速度;3、恶意软件的权限较高,很容易有流氓行为,例如吸费,后台联网下载,窃取用户隐私等。针对上述恶意软件,云端服务器会向移动设备返回该恶意软件的标识为可卸载,由于当前用户具有临时Root权限,使得用户可以彻底将移动设备中的恶意软件卸载掉,避免恶意软件占用***内存、占用***资源、以及恶意软件的流氓行为。
在本发明的实施例中,当前用户获取临时Root权限,使得该当前用户可以通过Root的身份执行各种操作,就算应用程序被重装、升级,也无需再进行重复的su程序授权操作,避免SuperUser会多次弹出授权提醒的问题,给用户的使用带来极大的方便。而且获取临时Root权限是指暂时性的获取Root权限,临时Root权限和永久Root权限的区别是,临时Root权限在移动设备重新启动后,临时Root权限会自动消失,相对比较安全。
实施例二
如图2所示,为本发明的实施例二中获取临时Root权限的方法的流程图,该方法200包括:
步骤S201、判断移动设备是否支持临时Root权限,如果移动设备支持临时Root权限,则进入步骤S203;否则,进入步骤S219,在步骤S219中,提示移动设备不支持临时Root权限。
可选地,根据移动设备的描述信息来判断该移动设备是否支持临时Root权限,例如移动设备的描述信息包括:移动设备的型号或者移动设备的IMEI。具体步骤包括:
步骤S2011、获取移动设备的移动设备型号或移动设备的IMEI;
步骤S2013、根据移动设备的移动设备型号或移动设备的IMEI,以及支持临时Root权限的白名单,判断移动设备是否支持临时Root权限。
在本发明的实施例中,支持临时Root权限的白名单中记录了支持临时Root权限的移动设备的型号或者移动设备的IMEI等信息,因此,在步骤S2013中,如果判断出获取的移动设备的型号或移动设备的IMEI记录在该白名单中,则说明该移动设备支持临时Root权限。
在一种可能的实施方式中,在终端设备侧判断移动设备是否支持临时Root权限,支持临时Root权限的白名单保存在终端设备侧。
在另一种可能的实时方式中,在云端服务器侧判断移动设备是否支持临时Root权限,支持临时Root权限的白名单保存在云端服务器。
步骤S203、在移动设备侧向云端服务器发送下载可执行程序文件的下载请求。
在本发明的实施例中,将安卓应用程序中需要用到Root权限的操作通过C/C++语言进行编写,并编译成安卓***可执行程序文件,该可执行程序文件可用于修改当前用户的ID级别,以使得当前用户获取临时Root权限。当然可以理解的是,在本发明的实施例中并不限定该可执行程序文件的具体实现方式。
步骤S205、在移动设备侧从云端服务器下载可执行程序文件。
具体地,在云端服务器中存储有与移动设备的描述信息对应的可执行程序文件,云端服务器接收到下载请求之后,云端服务器可以根据下载请求中的移动设备的描述信息匹配得到可执行程序文件,由云端服务器向移动设备返回可执行程序文件,实现移动设备从云端服务器下载该可执行程序文件。移动设备将下载的可执行程序文件存储至/system/bin的目录下,并修改该可执行程序文件权限分类的所有者和所属分组为Root。
步骤S207、在移动设备侧运行可执行程序文件,通过可执行程序文件将当前用户的ID级别修改为预设级别。移动设备
具体地,预设级别相当于Root级别,预设级别的权限相当于超级用户(SuperUser)的权限。如果当前用户的ID级别为预设级别时,该用户具有临时Root权限。
在本发明的实施例中,临时Root权限是指暂时性的Root权限,临时Root权限和永久Root权限的区别是,临时Root权限在移动设备重新启动后,临时Root权限会自动消失。临时Root权限的操作至少包括以下任意一种:获取文件目录、静默安装应用程序、卸载应用程序、以及卸载***预装应用程序。
步骤S209、如果当前用户的ID级别为预设级别时,确定当前用户已经成功获取临时Root权限。
在本发明的一个实施例中,可以通过如下方式来判断当前用户是否已经获取了临时Root权限,例如通过adb shell id的命令,获取当前用户的ID级别,如果ID=0,表示当前用户已经获取临时Root权限,通常,Root就是获取移动设备***的最高使用权限,用户的ID=0就代表已经获取到最高权限,即当前用户已经获取临时Root权限。
步骤S211、在移动设备侧判断移动设备是否重新启动,若是,进入步骤S213;否则,回到步骤SS211。
具体地,移动设备的安卓操作***可以通过PowerManager来判断移动设备是否重新启动,当然也并不限于此。
步骤S213、在移动设备侧还原当前用户的ID级别为非Root级别,以取消当前用户的临时Root权限。
具体地,若判断到移动设备重新启动后,在移动设备侧将当前用户的ID级别由预设级别恢复到非Root级别,在用户的ID级别为非Root级别时,例如ID=1,而不是ID=0的情形,该用户不具有超级用户的权限,该用户的操作会受到安卓操作***的限制。
可选地,在实施例二中,在确定当前用户具有临时Root权限之后,进入步骤S215。在步骤S215中,利用移动设备的临时Root权限执行指定指令,修改操作***的文件目录属性,使得修改后的操作***的文件目录属性为可读,其中,该文件目录用于存储该移动设备的***应用文件。
可选地,本实施例中提及的指定指令可以为su mount remount命令,文件目录的路径可以是/data/system/app。
以安卓***为例,具体的可执行如下指令:
shell:su-c mount-o remount rw/system/app/system/app
其中,上述命令利用的是adb的shell命令,shell命令里用su(高权限启动,例如root权限)来将目标路径(/system/app)加mount-0remount命令,以将/syatem/app设为rw(可读写)状态。
path可以自定:比如/data/local
然后rw换成ro就变成只读状态
通过该步骤对于root权限的获取,即使用户不存在对于***的临时Rroot权限,也可以完成对***应用的卸载。
需要说明的是,在使用linux内核的安卓***中,文件目录的属性可包括:可读、可写、可执行三种。在本实施例中,至少要将文件目录的属性设置为可读,才能将***应用文件从文件目录中读出,并输出给用户。
相应地,也可同时将操作***的文件目录同时设置为具有可读写、可读性且可执行的属性,也符合本发明对于文件目录的属性的要求。
在将操作***的文件目录属性修改为可读之后,继续进入步骤S217。在步骤S217中,读取文件目录下存储的***应用文件,并根据读取的***应用的文件对每个***应用分配标识。
本实施例在进入步骤S217时,首先可以通过守护进程从移动设备端读取文件目录下存储的***应用文件,之后,将所读取的***应用文件传到云端服务器做一次过滤,即可以向云端服务器发送携带有***应用的信息的网络查询请求,以查询所述***应用的信息所指示的***应用是否允许卸载。云端服务器会根据查询指示来查询每个***应用是否允许卸载,以对每个***应用分配标识,具体可以包括如下三个标识:可卸载、谨慎卸载、不可卸载。
其中,上述标识是云端服务器提供给移动设备的一个接口返回字段,这个字段和应用包名关联,比如返回com.qihoo.mobile:0、com.qihoo.mobile:1、或者com.qihoo.mobile:2。这个标识的意义是移动设备和云端服务器预先协商好的。其中,当标识com.qihoo.mobile:为0、1、2时分别说明这个包是不可卸载、可卸载、谨慎卸载。
在本发明的实施例中,当前用户获取了临时Root权限后,可以对移动设备中安装的恶意软件(例如牛皮癣软件)进行卸载处理,该恶意软件通常具有以下特点:1、恶意占用***内存,导致本来不充裕的移动设备的内存变小;2、恶意软件在后台启动,占用***cpu资源,影响移动设备运行速度;3、恶意软件的权限较高,很容易有流氓行为,例如吸费,后台联网下载,窃取用户隐私等。针对上述恶意软件,云端服务器会向移动设备返回该恶意软件的标识为可卸载,由于当前用户具有临时Root权限,使得用户可以彻底将移动设备中的恶意软件卸载掉,避免恶意软件占用***内存、占用***资源、以及恶意软件的流氓行为。
在本发明的实施例中,当前用户获取临时Root权限,使得该当前用户可以通过Root的身份执行各种操作,就算应用程序被重装、升级,也无需再进行重复的su程序授权操作,避免SuperUser会多次弹出授权提醒的问题,给用户的使用带来极大的方便。而且获取临时Root权限是指暂时性的获取Root权限,和永久Root权限的区别是,临时Root权限在移动设备重新启动后,临时Root权限会自动消失,相对比较安全。
实施例三
在本发明的实施例一和实施例二中,移动设备直接与云端服务器建立连接,并从云端服务器中下载用于获取临时Root权限的可执行程序文件。而在本发明的实施例三中,移动设备可以通过计算设备与云端服务器建立连接,由计算设备从云端服务器下载可执行程序文件。
如图3所示,为本发明的实施例三中获取临时Root权限的方法的流程图,应用于计算设备侧,该方法300包括:
步骤S301、计算设备与移动设备建立连接,并获取移动设备的描述信息。
在具体实现中,移动设备可以通过数据线或者无线(如无线网路通信技术WIFI)等形式连接到计算设备中,在移动设备连接至计算设备后,可以通过监控程序(如360tray.exe)监控移动设备和计算设备的连通情况。其中,所述计算设备是一种能够按照程序运行,自动、高速处理海量数据的智能电子设备,如台式电脑、笔记本电脑等;所述移动设备是一种可以在移动中使用的计算设备,如手机。可选地,移动设备的描述信息包括:移动设备的型号或者移动设备的IMEI。
步骤S303、计算设备根据移动设备的描述信息,向云端服务器发送下载可执行程序文件的下载请求;
可选地,在实施例三中,在向云端服务器发送下载可执行程序文件的下载请求的步骤之前,所述方法300中的步骤S303还包括:在计算设备侧判断所述移动设备是否支持临时Root权限;如果所述移动设备支持临时Root权限,则执行向云端服务器发送下载可执行程序文件的下载请求的步骤。
可选地,所述在计算设备侧判断所述移动设备是否支持临时Root权限的步骤包括:根据所述移动设备的描述信息以及支持临时Root权限的白名单,判断所述移动设备是否支持临时Root权限。在本发明的实施例中,支持临时Root权限的白名单中记录了支持临时Root权限的移动设备的型号或者移动设备的IMEI等信息。
步骤S305、计算设备从云端服务器中下载该可执行程序文件;
步骤S307、计算设备将该可执行程序文件发送至移动设备,并在该移动设备上运行可执行程序文件,通过可执行程序文件将当前用户的ID级别修改为预设级别。如果当前用户的ID级别为预设级别时,确定已经成功获取临时Root权限。
步骤S309、在计算设备侧判断移动设备是否重新启动,若是,进入步骤S311;否则,回到步骤S309。
步骤S311、在计算设备侧还原当前用户的ID级别为非Root级别,以取消当前用户的临时Root权限。
可选地,在实施例三中,在确定当前用户具有临时Root权限之后,进入步骤S313。在步骤S313中,在计算设备侧利用移动设备的临时Root权限执行指定指令,修改操作***的文件目录属性,使得修改后的操作***的文件目录属性为可读,其中,该文件目录用于存储该移动设备的***应用文件。
可选地,本实施例中提及的指定指令可以为su mount remount命令,文件目录的路径可以是/data/system/app。
以安卓***为例,具体的可执行如下指令:
shell:su-c mount-o remount rw/system/app/system/app
其中,上述命令利用的是adb的shell命令,shell命令里用su(高权限启动,例如root权限)来将目标路径(/system/app)加mount-0remount命令,以将/syatem/app设为rw(可读写)状态。
path可以自定:比如/data/local
然后rw换成ro就变成只读状态
通过该步骤对于临时Root权限的获取,即使用户不存在对于***的临时Root权限,也可以完成对***应用的卸载。
需要说明的是,在使用linux内核的安卓***中,文件目录的属性可包括:可读、可写、可执行三种。在本实施例中,至少要将文件目录的属性设置为可读,才能将***应用文件从文件目录中读出,并输出给用户。
相应地,也可同时将操作***的文件目录同时设置为具有可读写、可读性且可执行的属性,也符合本发明对于文件目录的属性的要求。
在将操作***的文件目录属性修改为可读之后,继续进入步骤S315。在步骤S315中,在计算设备侧读取移动设备的操作***的文件目录下存储的***应用文件,并根据读取的***应用的文件对每个***应用分配标识。
本实施例在进入步骤S315时,首先可以通过守护进程从移动设备端读取文件目录下存储的***应用文件,之后,将所读取的***应用文件传到云端服务器做一次过滤,即可以向云端服务器发送携带有***应用的信息的网络查询请求,以查询所述***应用的信息所指示的***应用是否允许卸载。云端服务器会根据查询指示来查询每个***应用是否允许卸载,以对每个***应用分配标识,具体可以包括如下三个标识:可卸载、谨慎卸载、不可卸载。
其中,上述标识是云端服务器提供给移动设备的一个接口返回字段,这个字段和应用包名关联,比如返回com.qihoo.mobile:0、com.qihoo.mobile:1、或者com.qihoo.mobile:2。这个标识的意义是移动设备和云端服务器预先协商好的。其中,当标识com.qihoo.mobile:为0、1、2时分别说明这个包是不可卸载、可卸载、谨慎卸载。
实施例四
如图4所示,为本发明的实施例四中获取临时Root权限的装置的框图,该装置400包括:
下载请求模块401,用于向云端服务器发送下载用于获取临时Root权限的可执行程序文件的下载请求;
下载模块403,用于从所述云端服务器下载所述可执行程序文件;
获取Root权限模块405,用于运行所述可执行程序文件,通过所述可执行程序文件将当前用户的ID级别修改为预设级别,以获取临时Root权限;
重启判断模块407,用于在所述移动设备侧判断所述移动设备是否重新启动;
取消Root权限模块409,用于如果判断到所述移动设备重新启动,则在所述移动设备侧还原当前用户的ID级别为非Root级别,以取消当前用户的临时Root权限。
可选地,装置400还包括:
支持判断模块,用于在移动设备侧判断所述移动设备是否支持临时Root权限;如果所述移动设备支持临时Root权限,则触发所述下载请求模块。
可选地,所述支持判断模块包括:
描述信息获取单元,用于获取所述移动设备的描述信息;
支持判断单元,用于根据所述移动设备的描述信息以及支持临时Root权限的白名单,判断所述移动设备是否支持临时Root权限。
可选地,所述装置400还包括:
修改模块,用于利用移动设备的临时Root权限执行指定指令,修改操作***的文件目录属性,使得修改后的操作***的文件目录属性为可读,其中,该文件目录用于存储该移动设备的***应用文件;
标识分配模块,用于读取文件目录下存储的***应用文件,并根据读取的***应用的文件对每个***应用分配标识,所述标识包括:可卸载、谨慎卸载和不可卸载。
可选地,所述临时Root权限的操作至少包括以下任意一种:备份***、修改***的内部程序、将应用程序安装到SD卡上、获取文件目录、静默安装应用程序、卸载应用程序、以及卸载***预装应用程序。
实施例五
如图5所示,为本发明的实施例五中获取临时Root权限的装置的框图,该装置500包括:
连接模块501,用于在计算设备侧建立与移动设备的连接,并获取所述移动设备的描述信息;
下载请求模块503,用于在所述计算设备侧根据移动设备的描述信息,向云端服务器发送下载可执行程序文件的下载请求;
下载模块505,用于在所述计算设备侧从云端服务器中下载所述可执行程序文件;
获取Root权限模块507,用于在所述计算设备侧将所述可执行程序文件发送至所述移动设备,并在所述移动设备上运行可执行程序文件,通过可执行程序文件将当前用户的ID级别修改为预设级别,以获取临时Root权限;
重启判断模块509,用于在所述计算设备侧判断移动设备是否重新启动;
取消Root权限模块511,用于如果判断到所述移动设备重新启动,在所述计算设备侧将移动设备上的当前用户的ID级别恢复为非Root级别,以取消当前用户的临时Root权限。
可选地,所述装置500还包括:
支持判断模块,用于在计算设备侧判断所述移动设备是否支持临时Root权限,如果所述移动设备支持临时Root权限,则触发所述下载请求模块。
可选地,所述支持判断模块进一步用于根据所述移动设备的描述信息以及支持临时Root权限的白名单,判断所述移动设备是否支持临时Root权限。
可选地,所述装置500还包括:
修改模块,用于利用移动设备的临时Root权限执行指定指令,修改操作***的文件目录属性,使得修改后的操作***的文件目录属性为可读,其中,该文件目录用于存储该移动设备的***应用文件;
标识模块,用于读取移动设备的操作***的文件目录下存储的***应用文件,并根据读取的***应用的文件对每个***应用分配标识,所述标识包括:可卸载、谨慎卸载和不可卸载。
由上述技术方案可知,本发明的实施例具有如下有益效果:通过获取临时Root权限,使得可以通过Root的身份执行各种操作,就算应用程序被重装、升级,也无需再进行重复的su程序授权操作,避免SuperUser会多次弹出授权提醒的问题,给用户的使用带来极大的方便。
而且,获取临时Root权限是指暂时性的获取Root权限,临时Root和永久Root权限的区别是,临时Root权限在移动设备重新启动后,临时Root权限会自动消失,相对比较安全。
在此提供的算法和显示不与任何特定计算机、虚拟***或者其它设备固有相关。各种通用***也可以与基于在此的示教一起使用。根据上面的描述,构造这类***所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干设备的单元权利要求中,这些设备中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明还公开了A1、一种获取临时Root权限的方法,包括:
在移动设备侧向云端服务器发送下载可执行程序文件的下载请求;
在所述移动设备侧从所述云端服务器下载所述可执行程序文件;
在所述移动设备侧运行所述可执行程序文件,通过所述可执行程序文件将当前用户的ID级别修改为预设级别,以获取临时Root权限;
在所述移动设备侧判断所述移动设备是否重新启动;
如果判断到所述移动设备重新启动,则在所述移动设备侧还原当前用户的ID级别为非Root级别,以取消当前用户的临时Root权限。
A2、根据A1所述的方法,其中,在移动设备侧向云端服务器发送下载可执行程序文件的下载请求的步骤之前,所述方法还包括:
在移动设备侧判断所述移动设备是否支持临时Root权限;
如果所述移动设备支持临时Root权限,则执行在移动设备侧向云端服务器发送下载可执行程序文件的下载请求的步骤。
A3、根据A2所述的方法,其中,所述在移动设备侧判断所述移动设备是否支持临时Root权限的步骤包括:
在所述移动设备侧获取所述移动设备的描述信息;
根据所述移动设备的描述信息以及支持临时Root权限的白名单,判断所述移动设备是否支持临时Root权限。
A4、根据A1所述的方法,在确定当前用户具有临时Root权限之后,所述方法还包括:
利用移动设备的临时Root权限执行指定指令,修改操作***的文件目录属性,使得修改后的操作***的文件目录属性为可读,其中,该文件目录用于存储该移动设备的***应用文件;
读取文件目录下存储的***应用文件,并根据读取的***应用的文件对每个***应用分配标识,所述标识包括:可卸载、谨慎卸载和不可卸载。
A5、根据A1所述的方法,其中,所述临时Root权限的操作至少包括以下任意一种:备份***、修改***的内部程序、将应用程序安装到SD卡上、获取文件目录、静默安装应用程序、卸载应用程序、以及卸载***预装应用程序。
B6、一种获取临时Root权限的方法,包括:
在计算设备侧建立与移动设备的连接,并获取所述移动设备的描述信息;
所述计算设备根据移动设备的描述信息,向云端服务器发送下载可执行程序文件的下载请求;
在所述计算设备侧从云端服务器中下载所述可执行程序文件;
在所述计算设备侧将所述可执行程序文件发送至所述移动设备,并在所述移动设备上运行可执行程序文件,通过可执行程序文件将当前用户的ID级别修改为预设级别,以获取临时Root权限;
在所述计算设备侧判断移动设备是否重新启动;
如果判断到所述移动设备重新启动,在所述计算设备侧将移动设备上的当前用户的ID级别恢复为非Root级别,以取消当前用户的临时Root权限。
B7、根据B6所述的方法,其中,在向云端服务器发送下载可执行程序文件的下载请求的步骤之前,所述方法还包括:
在计算设备侧判断所述移动设备是否支持临时Root权限;
如果所述移动设备支持临时Root权限,则执行向云端服务器发送下载可执行程序文件的下载请求的步骤。
B8、根据B7所述的方法,其中,所述在计算设备侧判断所述移动设备是否支持临时Root权限的步骤包括:
根据所述移动设备的描述信息以及支持临时Root权限的白名单,判断所述移动设备是否支持临时Root权限。
B9、根据B6所述的方法,在确定当前用户具有临时Root权限之后,所述方法还包括:
利用移动设备的临时Root权限执行指定指令,修改操作***的文件目录属性,使得修改后的操作***的文件目录属性为可读,其中,该文件目录用于存储该移动设备的***应用文件;
读取移动设备的操作***的文件目录下存储的***应用文件,并根据读取的***应用的文件对每个***应用分配标识,所述标识包括:可卸载、谨慎卸载和不可卸载。
C10、一种获取临时Root权限的装置,包括:
下载请求模块,用于向云端服务器发送下载可执行程序文件的下载请求;
下载模块,用于从所述云端服务器下载所述可执行程序文件;
获取Root权限模块,用于运行所述可执行程序文件,通过所述可执行程序文件将当前用户的ID级别修改为预设级别,以获取临时Root权限;
重启判断模块,用于在所述移动设备侧判断所述移动设备是否重新启动;
取消Root权限模块,用于如果判断到所述移动设备重新启动,则在所述移动设备侧还原当前用户的ID级别为非Root级别,以取消当前用户的临时Root权限。
C11、根据C10所述的装置,其中,所述装置还包括:
支持判断模块,用于在移动设备侧判断所述移动设备是否支持临时Root权限;如果所述移动设备支持临时Root权限,则触发所述下载请求模块。
C12、根据C11所述的装置,其中,所述支持判断模块包括:
描述信息获取单元,用于获取所述移动设备的描述信息;
支持判断单元,用于根据所述移动设备的描述信息以及支持临时Root权限的白名单,判断所述移动设备是否支持临时Root权限。
C13、根据C10所述的装置,所述装置还包括:
修改模块,用于利用移动设备的临时Root权限执行指定指令,修改操作***的文件目录属性,使得修改后的操作***的文件目录属性为可读,其中,该文件目录用于存储该移动设备的***应用文件;
标识分配模块,用于读取文件目录下存储的***应用文件,并根据读取的***应用的文件对每个***应用分配标识,所述标识包括:可卸载、谨慎卸载和不可卸载。
C14、根据C10所述的装置,其中,所述临时Root权限的操作至少包括以下任意一种:备份***、修改***的内部程序、将应用程序安装到SD卡上、获取文件目录、静默安装应用程序、卸载应用程序、以及卸载***预装应用程序。
D15、一种获取临时Root权限的装置,包括:
连接模块,用于在计算设备侧建立与移动设备的连接,并获取所述移动设备的描述信息;
下载请求模块,用于在所述计算设备侧根据移动设备的描述信息,向云端服务器发送下载可执行程序文件的下载请求;
下载模块,用于在所述计算设备侧从云端服务器中下载所述可执行程序文件;
获取Root权限模块,用于在所述计算设备侧将所述可执行程序文件发送至所述移动设备,并在所述移动设备上运行可执行程序文件,通过可执行程序文件将当前用户的ID级别修改为预设级别,以获取临时Root权限;
重启判断模块,用于在所述计算设备侧判断移动设备是否重新启动;
取消Root权限模块,用于如果判断到所述移动设备重新启动,在所述计算设备侧将移动设备上的当前用户的ID级别恢复为非Root级别,以取消当前用户的临时Root权限。
D16、根据D15所述的装置,其中,所述装置还包括:
支持判断模块,用于在计算设备侧判断所述移动设备是否支持临时Root权限,如果所述移动设备支持临时Root权限,则触发所述下载请求模块。
D17、根据D16所述的装置,其中,所述支持判断模块进一步用于根据所述移动设备的描述信息以及支持临时Root权限的白名单,判断所述移动设备是否支持临时Root权限。
D18、根据D15所述的装置,所述装置还包括:
修改模块,用于利用移动设备的临时Root权限执行指定指令,修改操作***的文件目录属性,使得修改后的操作***的文件目录属性为可读,其中,该文件目录用于存储该移动设备的***应用文件;
标识模块,用于读取移动设备的操作***的文件目录下存储的***应用文件,并根据读取的***应用的文件对每个***应用分配标识,所述标识包括:可卸载、谨慎卸载和不可卸载。