软录 · 2023年6月27日

app请求root权限|Android的一个APP需要获取root权限如何实现比较好

① 如何使Android应用程序获得root权限

一般来说, Android 下的应用程序可以逗直接地得到的最大的权限为 system ,但是如果我们需要在程序中执行某些需要 root 权限的命令,如 ifconfig 等,就需要 root 权限了。按照 Simon 的文章中提到的,应用程序有以下两种办法临时获得 root 权限:1) 实现一个 init 实现一个 Service ,来帮助 Android 应用程序执行 root 权限的命令。2) 实现一个虚拟设备,这个设备帮助 Android 应用程序执行 root 权限的命令。第二种办法我这里没有尝试,暂时也不会。这里讲讲我在实现第一种办法的过程和遇到的一些问题。1. 将我们要执行的命令写成脚本,或者可执行程序。下面是我的脚本 ifconfig_test.sh :# ! /system/bin/shifconfig注意: 脚本的第一行必须为 # ! /system/bin/sh ,否则无法执行,通过 dmesg 可以查看到信息内容为 cannot execve ./ifconfig_test.sh: Exec format error也可以采用 C/C++ 编写需要执行的命令或者程序,并在编译 image 的时候编译成可执行程序。2. 在 init.rc 中注册 serviceAndroid 中的 service 需要在 init.rc 中注册, Init.rc 中定义的 Service 将会被 init 进程创建,这样将可以获得 root 权限。当得到相应的通知(通过属性设置)后, init 进程会启动该 service 。本文中注册的内容如下:service ifconfig_test /system/etc/ifconfig_test.shoneshotdisabled其中, 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 stopsret=1while [ $ret -ne 0 ]dogetprop | grep "$ENABLE_MAPPER_SRV" | grep stoppedret=$?done通过上面 4 个步骤, Android 应用程序就获得了 root 权限,更具体的说,是在执行我们需要执行的命令时临时获得了 root 权限。转载仅供参考,版权属于原作者。祝你愉快,满意请~~哦

② 求助.如何手动给某个APP授予ROOT权限

按我说的试试打开腾讯手机管家首页,滑到最下面找到高级工具——键root或净化师,就可以管理软件权限了

③ 怎么给手机软件获取ROOT权限

给手机软件获取ROOT权限步骤:

1、首先要安装一个ROOT大师,用这个来给手机软件获取ROOT权限。

2、打开ROOT大师,把手机连接到USB上,等待USB连接成功。

④ 请教如何提升app的权限,root权限

方法如下:方法一:1、在手机的应用中心搜索一键ROOT工具。2、挑选后进行下载。3、下载安装完毕后运行软件,点击一键获取ROOT。方法二:1、数据线连接电脑。2、下载root工具,然后等待软件识别手机。3、然后点击获取ROOT,工具一般会提供多种方法。4、工具会自动进行获取,按照提示进行即可。注意:虽然获取权限后可以自己进行各种操作,但是极易造成手机性能上的缺陷或系统上的不稳定,同时失去保修的机会,建议不要获取ROOT权限。

⑤ 如何主动授予app root权限

可以去魅族官方论坛 这款手机开发root权限 好像是这样的

⑥ Android的一个APP需要获取root权限,如何实现比较好

你没有嘛?印象中的g3通常都有这个root权限的。如果没有,直接去下版载欧洲的权ruu,并做金卡后再直接刷机。刷机成功后有rootroot完成后,再直接去下载安桌网里的那个getroot.apk安装,安装成功后再刷改版固件刷机完成后你就有root权限不过另一个你完全没需要的root权限的ruu也是有的就是2.1固件发布了。你不知道吗?ruu_hero_htc_asia_hk_wwe_3.34.721.1_r_radio_63.18.55.06p_6.35.15.14_release_signed.exe你搜索这个就有了。即可下载并刷机刷完后,你一般的软件都不需要权限。别给自己折腾

⑦ 为什么会出现应用经常申请使用root权限我每次都点同意,但是过一会又申请使用

您好!根据您的描述,您手机成功获得权限时,所有已下载的App都要各自申请Root权限,否则不能自启及後台运作!每App只会申请一次。您发现不停有App申请使用权限,原因是因为您有新下载的Apps,或有Apps未处理权限。放心, 选 no都可以的!选了便不会再pop up。真是一劳永逸的。希望这能帮到您 !!