安卓系统如何授予应用程序root权限

来自:    更新日期:早些时候
如何使Android应用程序获得root权限~

  一般来说, Android 下的应用程序可以逗直接地得到的最大的权限为 system ,但是如果我们需要在程序中执行某些需要 root 权限的命令,如 ifconfig 等,就需要 root 权限了。按照 Simon 的文章中提到的,应用程序有以下两种办法临时获得 root 权限:
  1) 实现一个 init 实现一个 Service ,来帮助 Android 应用程序执行 root 权限的命令。
  2) 实现一个虚拟设备,这个设备帮助 Android 应用程序执行 root 权限的命令。
  
  第二种办法我这里没有尝试,暂时也不会。这里讲讲我在实现第一种办法的过程和遇到的一些问题。
  
  1. 将我们要执行的命令写成脚本,或者可执行程序。
  下面是我的脚本 ifconfig_test.sh :

  # ! /system/bin/sh
  ifconfig
  注意: 脚本的第一行必须为 # ! /system/bin/sh ,否则无法执行,通过 dmesg 可以查看到信息内容为 cannot execve ./ifconfig_test.sh: Exec format error
  
  也可以采用 C/C++ 编写需要执行的命令或者程序,并在编译 image 的时候编译成可执行程序。
  
  2. 在 init.rc 中注册 service
  Android 中的 service 需要在 init.rc 中注册, Init.rc 中定义的 Service 将会被 init 进程创建,这样将可以获得 root 权限。当得到相应的通知(通过属性设置)后, init 进程会启动该 service 。
  本文中注册的内容如下:

  service ifconfig_test /system/etc/ifconfig_test.sh
  oneshot
  disabled
  其中, oneshot 表示程序退出后不再重新启动, disabled 表示不在系统启动时启动。
  
  注意: 这里 service name 不能超过 16 个字符。我之前的 service name 由于定义的比较长, 18 个字符,设置属性通知 service 启动后查看 dmesg 可以看到提示: init: no such service 。查看 /system/core/init/parser.c 的源代码,在 parse_service->valid_name 函数中可以看到如下内容: if (strlen(name) > 16) { return 0; } ,证明 service 的名字的确不能超过 16 个字符。
  
  3. 将 Android 应用程序提升为 system 权限
  既然应用程序可以通过启动 service 获得 root 权限,那么岂不是很不安全。 Android 考虑到了这点,规定只有 system 权限的应用程序才能设置属性,通知 service 启动。关于提升 system 权限的文章网上已有很多,这里就不再细说,
  
  4. 在应用程序中添加属性设置代码
  前面已经提到,对于 Android 来说,应用程序通知 init 启动 service 是通过设置系统属性来完成的,具体为设置 System 系统属性 逗ctl.start地 为 逗ifconfig_test地 ,这样 Android 系统将会帮我们运行 ifconfig_test 这个 service 了。
  对该系统属性的设置有三种方法,分别对应三种不同的应用程序:
  1) Java 代码
  Android 在 Java 库中提供 System.getProperty 和 System.setProperty 方法, Java 程序可以通过他们来设置和获得属性。代码如下:
  SystemProperties.set("ctl.start", "ifconfig_test");
  上面的代码是通知 Android 执行 ifconfig_test service ,如果需要查询当前 service 执行的状态,如是否执行完毕,可以通过如下代码查询:
  ret = SystemProperties.get("init.svc. ifconfig_test ", "");
  if(ret != null && ret.equals("stopped"))
  {
  return true;
  }
  2) JNI 代码
  当编写 NDK 的程序时,可以使用 property_get 和 property_set 这两个 API 来获得和设置属性。使用这两个 API 必须要包含头文件 cutils/properties.h 和链接 libcutil 库。
  
  3) Shell 脚本
  Android 提供了命令行 setprop 和 getprop 来设置和获取属性,他们可以在脚本中被使用。
  
  由于我的程序是在 JNI 中调用脚本,脚本中又执行 ifconfig ,因此我将设置属性的部分放在了脚本中完成,代码如下:
  setprop ctl.start ifconfig_test
  
  #wait for the service until it stops
  ret=1
  while [ $ret -ne 0 ]
  do
  getprop | grep "$ENABLE_MAPPER_SRV" | grep stopped
  ret=$?
  done
  通过上面 4 个步骤, Android 应用程序就获得了 root 权限,更具体的说,是在执行我们需要执行的命令时临时获得了 root 权限。
  转载仅供参考,版权属于原作者。祝你愉快,满意请~~哦

  安卓的root权限是被动授予,只有在软件请求时才会提示。
  以rebooter软件为例。
  它的功能是执行重启命令,此命令只有系统用户和root用户能执行。
  因此开发者加入了一行请求root权限的代码,让它使用时向系统请求root权限。
  系统收到请求会通知授权管理软件,授权管理软件再弹框提示用户是否授予。
  如果一个软件的代码里没有请求root权限的这一行,那么无法主动为其授予root权限。

获取root可以在手机安全中心中开启,这里以步步高s6手机为例,具体步骤如下: 

1、首先,打开系统桌面“安全中心”应用APP,进入安全中心主页面。

2、进入安全中心页面之后,在主页面中,点击页面右下角“应用管理”菜单选项。

3、进入应用管理页面之后,点击页面右上角“权限”菜单按钮,进入权限管理页面。

4、在权限管理页面中,点击页面底部“开启Root权限”菜单按钮。

5、在打开的页面中下载完安装包,安装完成获得ROOT权限。



工具/原料:华为mate 8手机一台。

方法/步骤:

1、首先,在手机上下载并安装超级Root大师的APP软件,再打开该软件,点击开始Root的按钮。

2、然后,等待Root成功后,点击管理我的手机的按钮。

3、接着,在管理我的手机的界面点击Root权限管理的图标选项。

4、之后,在Root权限管理的界面点击某一程序(这里以QQ为例)后面的询问图标。

5、最后,在新的转换界面勾选QQ后面的允许即可。



如果在安卓优化大师那里显示你的手机已经获得root权限,但仍然无法授予软件最高权限的情况下,那就说明你的手机未能成功获取root权限。首先,删除原本的root(用kingroot软件删除),然后百度搜索安机网一键root工具再进行一次root冲刷,如果成功,一键root工具会自动安装一个SuperSu的软件到你的手机上,这个就是用来授予软件最高权限的工具,若不成功,那就只能重新刷一个带root的rom了,只能说你的原版rom被厂家限制了破除root权限的功能,所以只能重刷一个rom才能解除这一限制。希望能帮到你,祝你新年快乐!∩▽∩…

ROOT大师方法/步骤:

1,下载ROOT大师或者刷机大师(刷机大师集成ROOT大师),

2,打开“Root.exe”,

3,将手机连接电脑,打开“usb调试模式”,确保手机成功连接ROOT大师,

4,点击“立即ROOT”等待大师 ROOT,

5,片刻的等待,手机就ROOT成功了,

6, 若一次不成功可以多尝试几次成功。

通过第三方软件获得Root权限,可以访问和修改手机操作系统里几乎所有的文件,但这样操作有可能影响手机的稳定性,出现死机、重启等人为性故障。另外获取权限后一般对存储器和CPU等主板上主要部件引起不良。Root属于修改操作系统软件,按照条例不属于包修范围。三星为了提升顾客满意度,对Root顾客提供免费升级固件服务,如果Root已影响到手机硬件需要更换主板,则需要收取主板费用。若您的机器Root后需将机器恢复到原来的系统版本,请将机器送到三星服务中心,由售后工程师帮助检查处理。自行将设备恢复出厂设置是无法取消Root权限的。


安卓系统如何授予应用程序root权限视频

相关评论:
  • 13233286549安卓系统的手机一键root后,可以使用需要root的软件。。。可用了一段时 ...
    苏的显root后的手机基本都会给你装一个权限管理,权限管理没问题的话就是那个程序问题,重启解决

  • 13233286549...的预装应用。是不是这些应用还保存,现在已有ro
    苏的显目前只要是安卓系统都是可以ROOT,其中部分ROM屏蔽了ROOT,所以不能直接ROOT,但是可以直接刷机,比如MI2,而中兴手机也有不用ROOT的,,,他的权限是自动打开的,,,所有很方便,但是不是所有机型都是这样。。。你可以手机连接电脑,安装甜椒,自动获取驱动连接后,选择ROOT破解,即可,,,重启后,如果已经...

  • 13233286549手机没有ROOT怎么办 嫌弃 预装软件垃圾 没用 使用 卓大师 安全大师 百度...
    苏的显你好,很多的手机在买来的时候都是会自带很多无用的软件,手机需要获得ROOT权限就可以将它们进行删除,我使用的是应用宝功能,将手机直接连接到电脑上的应用宝,使用工具箱内的众多软件进行操作,应用宝目前是针对安卓用户群体开发的一款多功能软件,可以方便的为你管理手机中的设置或软件,还支持一键ROOT、...

  • 13233286549Android app操作 安卓 系统中 的 system 中的文件 需要在 AndroidMan...
    苏的显在 Android 中,如果要使用系统限制的权限(比如 android.permission.WRITE_SECURE_SETTINGS),我们需要把程序安装到 \/system\/app\/ 下。下面以 SecureSetting.apk 为例,演示这个操作。需要准备一台已经获得 Root 权限的手机。1、通过 USB 连接手机和电脑。2、使用 adb 控制手机。源码打印?1. $ adb ...

  • 13233286549为什么现在安卓手机ROOT后不能通过RE修改build.prop里的手机型号。只能...
    苏的显、“装载文件系统”,如图所示。4返回文件浏览界面,然后点击“向上”进入到系统“\/system\/”路径下,然后找到此目录下的“build.prop”,点击它,在打开的窗体中选择“ES文本编辑器”或其他可以编辑文本文档的程序。5找到“ro.product.model=...”这一行,“=”号后面的即你的手机型号,...

  • 13233286549华为荣耀3C在线升级显示系统已被修改是不是就是root了?手机里有一个...
    苏的显授权管理都有的话那肯定是已经root了 可以用这个来移除root的 不过这个也要看你root之后有没有修改过系统了 要是有卸载过一些预装软件什么的话可能也会升级不了的 你升级之后如果还是想要权限的话 可以用电脑版的应用宝软件来获取 先在电脑端安装打开软件,再打开手机设置-开发人员选项-USB调试 用数据...

  • 13233286549虚拟机vm里面安装安卓系统,如何root呢?
    苏的显安卓SDK:首先yaffs2img浏览器打开,\\platforms\\android-2.3.3_r02-windows\\images\\system.img 导出build.prop文件,用记事本打开,在ro.config.nocheckin=yes前加#,改好后导入覆盖。解压附件,su和busybox导入到\/system\/bin文件夹,右键修改权限为4755。Superuser.apk导入到\/system\/app文件夹,右键...

  • 13233286549ro o t有什么弊端?
    苏的显那么一个程序就可以删除、修改、读取等等的很多权限(当然要看这个软件的作用,很多正常软件也不会这样),现在安卓系统下的病毒越来越多了,大家root也多了,中毒也就很容易了,还有就是如果是新手,容易删除一些系统程序、文件等,导致系统无法正常运行的,这些都是root后的危害或者弊端 ...

  • 13233286549本人使用note3. n9005安卓4.3系统。前几天看同学用葫芦侠改后缀我就...
    苏的显回答:你到底现在需要解决什么问题?

  • 13233286549安卓手机如何更换其他系统
    苏的显1.手机必须是ROOT过的,随后找到RE文件管理器;2.进入RE管理器后挂在属性为【读写】;3.接着在\/system文件夹下找到build.prop文件,长触击选择【以文本编辑方式打开】;4.找到ro.build.model,把相应的手机机型更改为所需要的型号;5.同样的道理,通过更改ro.build.version、ro.build.name、ro.build...

  • 相关主题精彩

    版权声明:本网站为非赢利性站点,内容来自于网络投稿和网络,若有相关事宜,请联系管理员

    Copyright © 喜物网