目录
一、概述:
二 、修改文件
1、frameworks/base/core/jni/com_android_internal_os_Zygote.cpp
2、kernel-4.14/security/commoncap.c
3、system/core/libcutils/fs_config.cpp
4、system/extras/su/su.cpp
一、概述:
在系统开发过程中,有时需要通过命令行方式执行系统命令,即调用 getRuntime().exec()。大多数情况下,即使没有 root 权限,也能满足常规功能需求。
然而,部分命令对权限有严格要求——系统源码中针对特定指令设置了权限校验,必须拥有 root 权限方可执行。此时可通过 getRuntime().exec("su") 尝试获取 root 权限,但若设备未正确配置 root 环境,则会触发如下错误信息:
W/System.err: java.io.IOException: Cannot run program "su": error=13, Permission denied W/System.err: at java.lang.ProcessBuilder.start(ProcessBuilder.java:1050) W/System.err: at java.lang.Runtime.exec(Runtime.java:699) W/System.err: at java.lang.Runtime.exec(Runtime.java:529) W/System.err: at java.lang.Runtime.exec(Runtime.java:426)提示权限缺失。
下面针对如何在系统中配置root权限(su权限),做一个记录分享。
二 、修改文件
核心修改文件如下:
frameworks/base/core/jni/com_android_internal_os_Zygote.cppkernel-4.14/security/commoncap.csystem/core/libcutils/fs_config.cppsystem/extras/su/su.cpp