0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Purple Pi OH Android11 ROOT 方法

触觉智能 2023-08-04 08:40 次阅读

前言

为了让应用程序可以直接调用su执行系统命令和获取root权限,本文基于Purple Pi OH主板的Android SDK,介绍如果修改和编译一个root版本的Android11系统,以下为sdk源码修改方法。

Purple Pi OH作为一款兼容树莓派的开源主板,采用瑞芯微RK3566 (Cortex-A55) 四核64位超强CPU,主频最高达1.8 GHz,算力高达1Tops,支持INT8/INT16,支持TensorFlow/MXNet/PyTorch/Caffe框架,多路视频输出和输入,支持4K、H.265/H.264视频解码,接口丰富。

玩法丰富,支持OpenHarmony、Ubuntu、Debian、Android等多种系统,提供丰富开源资料

产品规格书:Purple Pi OH 产品手册

88afcecc-325f-11ee-bbcf-dac502259ad0.png88ed18cc-325f-11ee-bbcf-dac502259ad0.png

关闭selinux

device/rockchip/common/BoardConfig.mk

diff --git a/device/rockchip/common/BoardConfig.mkb/device/rockchip/common/BoardConfig.mk
indexe03c54f6a0..4fc6dc9868 100755
--- a/device/rockchip/common/BoardConfig.mk
+++ b/device/rockchip/common/BoardConfig.mk
@@ -59,7+59,7@@ 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

# Use the non-open-sourceparts, ifthey're present

注释用户组权限检测system/extras/su/su.cpp

diff --git a/system/extras/su/su.cpp b/system/extras/su/su.cpp
index 1a1ab6bf40..af3d2a68c7 100644
--- a/system/extras/su/su.cpp
+++ b/system/extras/su/su.cpp
@@ -80,8+80,8@@ voidextract_uidgids(constchar* uidgids, uid_t* uid, gid_t* gid, gid_t* gids, i
}

intmain(intargc, char** argv){
- uid_tcurrent_uid = getuid();
- if(current_uid != AID_ROOT && current_uid != AID_SHELL) error(1, 0, "not allowed");
+ //uid_t current_uid = getuid();
+ //if (current_uid != AID_ROOT && current_uid != AID_SHELL) error(1, 0, "not allowed");

// Handle -h and --help.
++argv;

给su文件默认授予root权限

system/core/libcutils/fs_config.cpp

diff --git a/system/core/libcutils/fs_config.cpp b/system/core/libcutils/fs_config.cpp
index 5805a4d19b..92e93e76ff 100644
--- a/system/core/libcutils/fs_config.cpp
+++ b/system/core/libcutils/fs_config.cpp
@@ -188,7+188,7@@ staticconststructfs_path_configandroid_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"},

// the following files have enhanced capabilities and ARE included
// in user builds.

frameworks/base/core/jni/com_android_internal_os_Zygote.cpp

diff --git a/frameworks/base/core/jni/com_android_internal_os_Zygote.cpp b/frameworks/base/core/jni/com_android_internal_os_Zygote.cpp
index 9eede83e21..d161e6fad3 100644
--- a/frameworks/base/core/jni/com_android_internal_os_Zygote.cpp
+++ b/frameworks/base/core/jni/com_android_internal_os_Zygote.cpp
@@ -656,7+656,7@@ staticvoidEnableKeepCapabilities(fail_fn_t fail_fn) {
}

staticvoidDropCapabilitiesBoundingSet(fail_fn_t fail_fn) {
- for(inti = 0; prctl(PR_CAPBSET_READ, i, 0, 0, 0) >= 0; i++) {;
+/* 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 "
@@ -665,7 +665,7 @@ static void DropCapabilitiesBoundingSet(fail_fn_t fail_fn) {
fail_fn(CREATE_ERROR("prctl(PR_CAPBSET_DROP, %d) failed: %s", i, strerror(errno)));
}
}
- }
+ }*/
}

kernel/security/commoncap.c

diff --git a/kernel/security/commoncap.c b/kernel/security/commoncap.c
index 876cfe01d9..ce87b1b780 100644
--- a/kernel/security/commoncap.c
+++ b/kernel/security/commoncap.c
@@ -1166,12+1166,12@@ intcap_task_setnice(struct task_struct *p, intnice)
staticintcap_prctl_drop(unsignedlongcap)
{
structcred*new;
-
+/*
if (!ns_capable(current_user_ns(), CAP_SETPCAP))
return -EPERM;
if (!cap_valid(cap))
return -EINVAL;
-
+*/
new= prepare_creds();
if(!new)
return-ENOMEM;

编译镜像

修改后需要重新编译内核和AOSP,Android编译需要选择rk3566_r-userdebug版本

sourcebuild/envsetup.sh
lunch rk3566_r-userdebug

检测验证root是否成功

可在应用程序中调用 /system/xbin/su来测试系统是否root成功

publicstaticvoidRootCommand() {
Process process = null;
try{
process = Runtime.getRuntime().exec("/system/xbin/su");
process.waitFor();
} catch(IOException | InterruptedException e) {
e.printStackTrace();
} finally{
if(process != null) {
process.destroy();
}
}
}

root的系统可正常执行,而非root的系统会提示没有权限

java.io.IOException: Cannot run program "/system/xbin/su": error=13, Permission denied

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Android
    +关注

    关注

    12

    文章

    3851

    浏览量

    125642
  • 主板
    +关注

    关注

    52

    文章

    1628

    浏览量

    68138
  • root
    +关注

    关注

    1

    文章

    82

    浏览量

    21236
收藏 人收藏

    评论

    相关推荐

    【触觉智能 Purple Pi OH 开发板体验】检测Android系统的完备性

    Purple Pi OH运行Android11,性能稳定,该有的硬件外设接口资源,检测均未发现异常。并能兼容安装第三方apk软件,如果能在功耗、散热性上再做优化,将会给RK3566带
    发表于 09-10 17:23

    RK Android11系统SD卡启动方法

    本文基于PurplePiOH3566主板,介绍Android11源码的修改,获得可从SD卡启动的Android11系统镜像。PurplePiOH作为一款兼容树莓派的开源主板,采用瑞芯微RK3566
    的头像 发表于 09-04 16:18 616次阅读
    RK <b class='flag-5'>Android11</b>系统SD卡启动<b class='flag-5'>方法</b>

    【触觉智能 Purple Pi OH 开发板体验】熟悉PurplePiOH及系统更新

    一、开箱上电检测 收到Purple Pi OH有段时间了,今有空来分享一下关于对该板卡的一些认知。该板卡集成Rockchip RK3566四核Cortex-A55处理器,主频最高1.8GHz
    发表于 09-03 18:52

    【触觉智能 Purple Pi OH 开发板体验】+ 两款Purple Pi的对比

    先前曾使用过Purple Pi,此次又见到了Purple Pi OH,就对这两款产品进行简单的对比。
    的头像 发表于 08-17 10:11 859次阅读
    【触觉智能 <b class='flag-5'>Purple</b> <b class='flag-5'>Pi</b> <b class='flag-5'>OH</b> 开发板体验】+ 两款<b class='flag-5'>Purple</b> <b class='flag-5'>Pi</b>的对比

    Purple Pi OH 开发板体验:应用开发的问题

    本文使用触觉智能 Purple Pi OH 开发板开发鸿蒙应用,遇到问题并解决一部分,目前codelab中的工程都可以在板卡上运行了,有些没有效果尚待差错。
    的头像 发表于 08-11 19:17 435次阅读
    <b class='flag-5'>Purple</b> <b class='flag-5'>Pi</b> <b class='flag-5'>OH</b> 开发板体验:应用开发的问题

    [触觉智能 Purple Pi OH开发板体验] 二.RK3566运行Android11

    给的已经很详细了。3.进入升级模式 Purple-Pi-OH主板升级模式有Loader和MaskRom两种,需要先进入到升级模式,才可以给主板烧写固件。进入Loader模式有硬件和软件两种方法
    发表于 08-07 08:26

    Purple Pi OH 开发板体验:固件开发+应用开发

    触觉智能 Purple Pi OH 开发板体验的开发环境,介绍了设备端和应用端的基本知识点
    的头像 发表于 08-04 10:52 545次阅读
    <b class='flag-5'>Purple</b> <b class='flag-5'>Pi</b> <b class='flag-5'>OH</b> 开发板体验:固件开发+应用开发

    【触觉智能 Purple Pi OH 开发板体验】+2、烧录debian固件体验

    厂家为Purple Pi OH 提供了多种系统。
    的头像 发表于 07-27 09:05 729次阅读
    【触觉智能 <b class='flag-5'>Purple</b> <b class='flag-5'>Pi</b> <b class='flag-5'>OH</b> 开发板体验】+2、烧录debian固件体验

    【触觉智能 Purple Pi OH 开发板体验】+ 熟悉PurplePiOH编译固件

    Purple Pi OH 开发板的鸿蒙使用体验。熟悉了软硬件环境,烧写固件。搭建了固件开发环境,但固件编译出现错误,期待共同解决问题。
    的头像 发表于 07-26 16:01 1142次阅读
    【触觉智能 <b class='flag-5'>Purple</b> <b class='flag-5'>Pi</b> <b class='flag-5'>OH</b> 开发板体验】+ 熟悉PurplePiOH编译固件

    【触觉智能 Purple Pi OH 开发板体验】+初识紫色派

    Purple Pi OH智能主板是一款配置有Rockchip RK3566四核Cortex-A55处理器的开发板,其主频最高可达1.8GHz,LPDDR4/LPDDR4X 默认2GB ,最可以支持8GB内存。
    的头像 发表于 07-25 08:57 860次阅读
    【触觉智能 <b class='flag-5'>Purple</b> <b class='flag-5'>Pi</b> <b class='flag-5'>OH</b> 开发板体验】+初识紫色派

    【触觉智能 Purple Pi OH 开发板体验】+1、开箱体验

    感谢eefans和厂家的板卡体验活动,有幸体验Purple Pi OH 开发板,对标树莓派4B的一款国产开发板!
    的头像 发表于 07-23 14:03 1240次阅读
    【触觉智能 <b class='flag-5'>Purple</b> <b class='flag-5'>Pi</b> <b class='flag-5'>OH</b> 开发板体验】+1、开箱体验

    Purple Pi OH Android11 ROOT方法

    为了让应用程序可以直接调用su执行系统命令和获取root权限,本文基于Purple Pi OH主板的Android SDK,介绍如果修改和编
    的头像 发表于 06-30 14:59 416次阅读
    <b class='flag-5'>Purple</b> <b class='flag-5'>Pi</b> <b class='flag-5'>OH</b> <b class='flag-5'>Android11</b> <b class='flag-5'>ROOT</b><b class='flag-5'>方法</b>

    Purple Pi OH Android11 ROOT方法

    为了让应用程序可以直接调用su执行系统命令和获取root权限,本文基于Purple Pi OH主板的Android SDK,介绍如果修改和编
    的头像 发表于 06-25 09:49 480次阅读
    <b class='flag-5'>Purple</b> <b class='flag-5'>Pi</b> <b class='flag-5'>OH</b> <b class='flag-5'>Android11</b> <b class='flag-5'>ROOT</b><b class='flag-5'>方法</b>

    免费试用:触觉智能 Purple Pi OH 开发板首发体验

    Purple Pi OH作为一款兼容树莓派的开源主板,采用瑞芯微RK3566 (Cortex-A55) 四核64位超强CPU,主频最高达1.8 GHz,算力高达1Tops,支持INT8/INT16
    的头像 发表于 06-15 08:35 440次阅读
    免费试用:触觉智能 <b class='flag-5'>Purple</b> <b class='flag-5'>Pi</b> <b class='flag-5'>OH</b> 开发板首发体验

    【免费试用】触觉智能 Purple Pi OH 开发板首发体验

    Purple Pi OH作为一款兼容树莓派的开源主板,采用瑞芯微RK3566 (Cortex-A55) 四核64位超强CPU,主频最高达1.8 GHz,算力高达1Tops,支持INT8/INT16
    的头像 发表于 05-30 09:15 627次阅读
    【免费试用】触觉智能 <b class='flag-5'>Purple</b> <b class='flag-5'>Pi</b> <b class='flag-5'>OH</b> 开发板首发体验