"); //-->
关闭selinux
修改此文件("+"号为修改内容)
device/rockchip/common/BoardConfig.mk
BOARD_BOOT_HEADER_VERSION ?= 2
BOARD_MKBOOTIMG_ARGS :=
BOARD_PREBUILT_DTBOIMAGE ?= $(TARGET_DEVICE_DIR)/dtbo.img
BOARD_ROCKCHIP_VIRTUAL_AB_ENABLE ?= false
-BOARD_SELINUX_ENFORCING ?= true
+BOARD_SELINUX_ENFORCING ?= false
注释用户组权限检测
修改此文件("+"号为修改内容)
system/extras/su/su.cpp
void extract_uidgids(const char* uidgids, uid_t* uid, gid_t*
gid, gid_t* gids, i
}
int main(int argc, char** argv) {
- uid_t current_uid = getuid();
- if (current_uid != AID_ROOT && current_uid != AID_SHELL) error(1, 0, "notallowed");
+ //uid_t current_uid = getuid();
+ //if (current_uid != AID_ROOT && current_uid != AID_SHELL) error(1, 0, "notallowed");
给su文件默认授予root权限
修改此文件("+"号为修改内容)
system/core/libcutils/fs_config.cpp
static const struct fs_path_config android_dirs[] = {
{ 00751, AID_ROOT, AID_SHELL, 0, "system/bin" },
{ 00755, AID_ROOT, AID_ROOT, 0, "system/etc/ppp" },
{ 00755, AID_ROOT, AID_SHELL, 0, "system/vendor" },
- { 00750, AID_ROOT, AID_SHELL, 0, "system/xbin" },
+ { 00755, AID_ROOT, AID_SHELL, 0, "system/xbin" },
{ 00751, AID_ROOT, AID_SHELL, 0, "system/apex/*/bin" },
{ 00751, AID_ROOT, AID_SHELL, 0, "system_ext/bin" },
{ 00751, AID_ROOT, AID_SHELL, 0, "system_ext/apex/*/bin" },
static const struct fs_path_config android_files[] = {
// the following two files are INTENTIONALLY set-uid, but they
// are NOT included on user builds.
{ 06755, AID_ROOT, AID_ROOT, 0, "system/xbin/procmem" },
- { 04750, AID_ROOT, AID_SHELL, 0, "system/xbin/su" },
+ { 06755, AID_ROOT, AID_SHELL, 0, "system/xbin/su" },
然后修改此文件("+"号为修改内容)
frameworks/base/core/jni/com_android_internal_os_Zygote.cpp
static void DropCapabilitiesBoundingSet(fail_fn_t fail_fn) {
+/*
for (int i = 0; prctl(PR_CAPBSET_READ, i, 0, 0, 0) >= 0; i++) {;
if (prctl(PR_CAPBSET_DROP, i, 0, 0, 0) == -1) {
if (errno == EINVAL) {
ALOGE("prctl(PR_CAPBSET_DROP) failed with EINVAL. Please verify "
"your kernel is compiled with file capabilities support");
} else {
fail_fn(CREATE_ERROR("prctl(PR_CAPBSET_DROP, %d) failed: %s", i, strerror(errno)));
}
}
}
+ */
}
最后修改此文件("+"号为修改内容)
kernel-5.10/security/commoncap.c
int cap_task_setnice(struct task_struct *p, int nice)
static int cap_prctl_drop(unsigned long cap)
{
struct cred *new;
+/*
if (!ns_capable(current_user_ns(), CAP_SETPCAP))
return -EPERM;
if (!cap_valid(cap))
return -EINVAL;
-
+*/
new = prepare_creds();
源码编译并验证固件是否ROOT
修改完上面三个步骤的文件后,重新编译内核和安卓源码,执行以下命令:
# make -j4下载RootChecker测试APK软件包(自行下载),可通过ADB命令或者U盘安装,安装后按照提示点击按钮检查root。root成功如图:
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
米尔出席2025安路科技FPGA技术沙龙
SL811HS开发板原理图.rar
嵌入式Linux图形界面开发 下
12路1080P高清视频流,米尔RK3576开发板重塑视频处理极限
Gemini 开始全球推广到 Android Auto 平台
拆解:树莓派5 8 GB AI 套件
AT91RM9200网络问题
【免费讲座】龙芯CPU技术与Android手机开发专题
基于Android平台的手机的存储器优化
51单片机开发板
当6 TOPS不再是极限:米尔RK3576 + Hailo-8,让高帧率摄像头真正“实时”
NEC MCU 78F0513D开发板使用教程
Linux shell学习笔记[1]
AN2131开发板原理图.rar
在重大反垄断裁决中,谷歌可以保留 Chrome 和 Android,但仍面临较轻的处罚
CY7C68013开发板原理图.rar
GWEVB_XC蓝牙设备开发板
单片机开发板
谷歌将验证 Android 开发者在 Play 商店之外分发应用程序
Android移植OMAP3530成功
Badge USB OCD 与 78F0513D 使用演示视频
Mira2TV智能电视棒
ARM嵌入式系统开发板三星S3C44B0X的完整Protel电路图.rar
HDMI Dongle解决方案
嵌入式Linux图形界面开发 上
6TOPS算力驱动30亿参数LLM,米尔RK3576部署端侧多模态多轮对话
Android系统成功移植到S3C6400/6410开发板,有图片
谷歌将开源Android Automotive OS SDV平台
莱迪思联手英伟达推出 Sensor Bridge 方案 加速边缘 AI 产品落地
基于SC8810的1GHz TD-SCDMA智能手机