安卓应用程序永久获取Root权限的方法技术

技术编号:8452810 阅读:5421 留言:0更新日期:2013-03-21 13:28
本发明专利技术提供一种安卓应用程序永久获取Root权限的方法,将需要用到Root权限的操作进行编写,并编译成一可执行程序文件,将该文件包含在应用程序中,应用程序通过一次su程序授权,将文件拷贝到/system/bin的目录下,并修改其所有者和所属分组为root,并设置其suid标识位;如此,就能够使该文件每次执行都拥有Root权限,从而避免再次弹出授权框。由于需求的变动,该文件程序可能会需要升级,因此文件需要实现自我升级的功能,以避免更新时需要再次弹出授权框。本发明专利技术通过该文件以Root的身份执行各种操作,就算应用程序被重装、升级,也无需再进行重复的su程序授权操作,给用户的使用带来极大方便。

【技术实现步骤摘要】

本专利技术涉及安卓系统上的应用程序权限管理
,尤其涉及一种已经Root 的安卓手机上,。
技术介绍
安卓Android系统中,第三方应用程序是以临时用户的身份进行运行的,这就使得该应用程序的权限受限制,如应用程序要访问或者修改安卓系统文件时,就会因为权限不足而失败。现在有的安卓手机已经进行了 Root设置,该Root是Linux等类UNIX系统中的超级管理员用户帐户。对于Android手机,平常所说的Root,其实就是通过各种方法,将系统的SU程序文件拷贝到/system/bin目录下,并安装SuperUser授权管理,第三方应用程序可以通过su程序(su程序是权限管理文件)执行需要Root权限的操作。但已经Root 设置的手机,第三方应用程序就能直接拥有Root权限的操作吗?其实不然,Root的手机上,会在/system/bin目录下存放一个名为su程序的文件,并且安装有SuperUser (授权管理)应用程序。其他应用程序想要以Root权限执行,就必须通过su程序执行shell命令, 而此时,SuperUser就会弹出授权对话框,用户必须点击允许,命令才能成功被执行。点击允许时,如果没有选择“记住”选项,那么应用每次通过su程序执行shell命令时,都会弹出授权提醒的对话框。另外,如果应用程序升级了,那么就算之前已经记住允许操作了,再通过su程序执行shell命令时,也要重新通过su程序进行重复授权。另外弹出的授权提醒的对话框会带来如下问题对于用户在手机的一个界 面上操作手机上的第三方应用时,授权框的弹出并没有太大问题,因为此时用户肯定是看着手机在执行某些操作,用户能够及时的发现授权对话框弹出并确认,只是操作比较繁琐而已。但是,有些应用程序的操作界面并不再手机上,而是在PC机上,用户将手机连接到PC机,然后通过PC机来管理手机,此时,用户并不会去关注手机屏幕,如此,在授权对话框弹出时用户就不能及时发现并确认,而且会因为手机进入屏保,授权框无法显示,这样就导致授权失败。当然,用户在第一次授权时,可以勾选“记住”选项,下次就不用再授权,但是应用程序是会经常更新版本的,更新后,又得重新进行授权,给用户的使用带来极大不便。现有技术中提供了一种“Android平台下的应用程序动态权限管理方法”,见公开号为CN102289633A,公开日为2011. 12.21的中国专利,包括应用程序安装时动态选择保存自身系统权限表;安装后,用户通过人机接口动态选择修改所述系统权限表;访问需要权限的API时,Android平台根据该应用程序的系统权限表中的记录判断是否该API被禁用;当所述API被禁用时,该应用程序通过人机接口提示用户是否选择修改;若用户选择修改权限,Android平台允许该应用程序访问所述API,否则该应用程序退出访问。这种权限管理方法,用户能根据需要及个人经验随时修改应用程序的权限,从而能很大程度上防止应用程序的恶意访问资源,修改、窃取个人信息等危险行为。但该方法要是Android平台下的应用程序有更新时,该设置的权限管理将失效,还要重新进配置,操作麻烦。为了让审查人员更容易理解本专利技术这里需要指出的是I、Linux中,文件权限的问题文件权限每个Linux文件具有四种访问权限可读(r)、可写(W)、可执行(χ),无权限(-)。权限分类所有者,组成员,其他用户。每类的权限可以用字母表示,如rwxrwxr-x 表示即所有者及组成员拥有读、写、执行的权限,其他用户只拥有读和执行的权限(即 rwx ‘所有者’rwx ‘组成员’ r-χ ‘其他用户’)。数字表示法所谓数字表示法,是指将r、w 和χ分别用4、2、1来代表,没有授予权限(-)的则为0,然后把权限相加,如下文件权限为 rwxr-xr-x,转换为数字为(421) (401) (401 ),相加后表示为755。2、Linux用户及分组Linux是一个多任务多用户操作系统。多任务多个前台应用程序和后台服务程序宏观上的同时运行。多用户多个用户同时登录系统作业;为保证用户的私密性而建立的保护和限制机制。通常的多用户系统中都存在一个超级用户,例如Linux中的root用户,Windows系统中的administrator等,系统中可以存在若干个具有不同的权限分类等级的其他用户, 例如由超级用户建立的普通用户等,目前大多Linux发行版在安装时都要求建立一个普通用户,并使用该用户登陆。3、用户组可以对用户进行分组,一个用户组可包含多个用户,一个用户也可以同时属于多个分组。例如,有以下分组及用户分组groupl,包含用户 userl, user2分组group2,包含用户user2现在由groupl中的userl创建一个文件f,指定其权限为775,那么userl及user2 对文件f都有读、写、执行的权限,而group2中的user2则只有读和执行的权限4、系统中的标识位suid :suid 是 Set User ID 的意思如果一个文件被设置了 suid标识位,会表现在所有者的权限的可执行位上即可执行(X)的位置上,例如rwsr-xr-x表示suid和权限分类中的所有者的权限中可执行位被设置。数字表示法suid对应的数字为4,如rwsr-xr-x就表示为4755suid的作用让本来没有相应权限的用户运行这个程序时,可以访问他没有权限访问的资源(即让一些资源没有访问权限的有了访问权限)。例如,有用户userl和user2 ;现在由用户userl创建一个普通文件f,其权限为 rwxr-xr-x (755),并创建一个可执行文件r,且其权限为rwxr-xr-x (未设置suid),此时由user2运行程序r, r的有效用户id (euid)就是user2,由于user2对文件f没有写的权限,所以r程序也就无法修改文件f ;如果设置了文件f的suid,即权限改为rwsr-xr-x (4755),此时再由user2运行程序r,r的euid将被设置为其所有者的id,即userl,也就可以修改文件f 了。
技术实现思路
本专利技术要解决的技术问题,在于提供一种,其解决应用程序以Root身份执行命令时,SuperUser会多次弹出授权提醒的问题。本专利技术是这样实现的一种,包括如下步骤步骤I、将安卓应用程序中需要用到Root权限的操作通过C/C++语言进行编写,并编译成一安卓系统可执行程序文件,且所述可执行程序文件能实现自我升级功能和与安卓应用程序的通信的功能;将可执行程序文件打包在安卓应用程序中;步骤2、在安卓系统下判断/system/bin的目录下是否存在所述可执行程序文件, 否,则进入步骤3 ;是,则判断可执行程序文件是否需要升级,要升级,则安卓应用程序与该可执行程序文件建立通信,并调用自我升级功能,对该可执行程序文件进行升级处理,并转入步骤8 ;不升级,则直接进入步骤8 ;步骤3、安卓应用程序运行安卓系统的su程序对操作用户进行第一次授权;步骤4、将安卓系统的/system目录进行重挂载为可写状态;步骤5、将安卓系统的/system/bin目录的权限进行设置,以保证安卓应用程序对 /system/bin的目录拥有写的权限;步骤6、将所述可执行程序文件拷贝到所述/syste本文档来自技高网
...

【技术保护点】
一种安卓应用程序永久获取Root权限的方法,其特征在于:包括如下步骤:步骤1、将安卓应用程序中需要用到Root权限的操作通过C/C++语言进行编写,并编译成一安卓系统可执行程序文件,且所述可执行程序文件能实现自我升级功能和与安卓应用程序的通信的功能;将可执行程序文件打包在安卓应用程序中;步骤2、在安卓系统下判断/system/bin的目录下是否存在所述可执行程序文件,否,则进入步骤3;是,则判断可执行程序文件是否需要升级,要升级,则安卓应用程序与该可执行程序文件建立通信,并调用自我升级功能,对该可执行程序文件进行升级处理,并转入步骤8;不升级,则直接进入步骤8;步骤3、安卓应用程序运行安卓系统的su程序对操作用户进行第一次授权;步骤4、将安卓系统的/system目录进行重挂载为可写状态;步骤5、将安卓系统的/system/bin目录的权限进行设置,以保证安卓应用程序对/system/bin的目录拥有写的权限;步骤6、将所述可执行程序文件拷贝到所述/system/bin的目录下,并修改该可执行程序文件权限分类的所有者和所属分组为Root;步骤7、设置可执行程序文件的suid标识位,设置suid标识位后,可执行程序文件就能以所有者的身份被安卓应用程序所执行,即拥有Root权限的操作;步骤8、安卓应用程序执行可执行程序文件并与其建立通信,此时安卓应用程序需要用到Root权限的操作只要通过可执行程序文件进行执行即可,无需通过安卓系统的su程序进行重复授权。...

【技术特征摘要】

【专利技术属性】
技术研发人员:张长安刘德建陈宏展罗上清潘运武
申请(专利权)人:福州博远无线网络科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1