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

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

3天内不再提示

Purple Pi OH Android11 ROOT方法

深圳触觉智能 来源:深圳触觉智能 作者:深圳触觉智能 2023-06-30 14:59 次阅读

为了让应用程序可以直接调用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等多种系统,提供丰富开源资料

poYBAGSefRmAE78BAATGkVe0sMQ177.png

pYYBAGSefSqAHXKgAAPta2JTsSw648.png

关闭selinux

device/rockchip/common/BoardConfig.mk

diff --git a/device/rockchip/common/BoardConfig.mkb/device/rockchip/common/BoardConfig.mkindexe03c54f6a0..4fc6dc9868 100755--- a/device/rockchip/common/BoardConfig.mk+++ b/device/rockchip/common/BoardConfig.mk@@ -59,7+59,7@@ BOARD_BOOT_HEADER_VERSION ?= 2BOARD_MKBOOTIMG_ARGS :=BOARD_PREBUILT_DTBOIMAGE ?= $(TARGET_DEVICE_DIR)/dtbo.imgBOARD_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.cppindex 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.cppindex 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.cppindex 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.cindex 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.shlunch 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

    文章

    3935

    浏览量

    127339
  • 主板
    +关注

    关注

    53

    文章

    1875

    浏览量

    70765
  • root
    +关注

    关注

    1

    文章

    86

    浏览量

    21388
  • Purple
    +关注

    关注

    0

    文章

    8

    浏览量

    237
收藏 人收藏

    评论

    相关推荐

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

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

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

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

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

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

    请问是否有关于Android11平台默认开放root权限的文档?

    请问是否有关于Android11 平台默认开放root权限的文档,我们需要用u盘手机替换ko文件
    发表于 04-17 08:21

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

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

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

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

    Purple Pi OH开源主板通过 OpenHarmony 兼容性测评

    Purple Pi OH Purple Pi OH作为一款兼容树莓派的开源主板,采用RK3566
    的头像 发表于 04-10 09:40 843次阅读
    <b class='flag-5'>Purple</b> <b class='flag-5'>Pi</b> <b class='flag-5'>OH</b>开源主板通过 OpenHarmony 兼容性测评

    Purple Pi OH Android11 ROOT方法

    为了让应用程序可以直接调用su执行系统命令和获取root权限,本文基于Purple Pi OH主板的Android SDK,介绍如果修改和编
    的头像 发表于 06-25 09:49 835次阅读
    <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 开发板体验的开发环境,介绍了设备端和应用端的基本知识点
    的头像 发表于 08-04 10:52 854次阅读
    <b class='flag-5'>Purple</b> <b class='flag-5'>Pi</b> <b class='flag-5'>OH</b> 开发板体验:固件开发+应用开发

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

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

    Purple Pi OH Android11 ROOT 方法

    前言为了让应用程序可以直接调用su执行系统命令和获取root权限,本文基于PurplePiOH主板的AndroidSDK,介绍如果修改和编译一个root版本的Android11系统,以
    的头像 发表于 08-04 08:40 1042次阅读
    <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的对比

    先前曾使用过Purple Pi,此次又见到了Purple Pi OH,就对这两款产品进行简单的对比。
    的头像 发表于 08-17 10:11 1627次阅读
    【触觉智能 <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>的对比

    瑞芯微RK3566鸿蒙开发板Android11修改第三方输入法为默认输入法

    本文适用于触觉智能所有支持Android11系统的开发板修改第三方输入法为默认输入法。本次使用的是触觉智能的Purple Pi OH鸿蒙开源主板,搭载了瑞芯微RK3566芯片,类树莓派
    的头像 发表于 09-24 09:43 427次阅读
    瑞芯微RK3566鸿蒙开发板<b class='flag-5'>Android11</b>修改第三方输入法为默认输入法

    瑞芯微RK3566/RK3568 Android11使用OTA升级固件方法,深圳触觉智能鸿蒙开发板演示,备战第九届华为ICT大赛

    本文介绍瑞芯微RK3566/RK3568在Android11系统OTA升级固件方法,使用触觉智能的Purple Pi OH鸿蒙开发板演示,搭
    的头像 发表于 10-12 11:57 461次阅读
    瑞芯微RK3566/RK3568 <b class='flag-5'>Android11</b>使用OTA升级固件<b class='flag-5'>方法</b>,深圳触觉智能鸿蒙开发板演示,备战第九届华为ICT大赛

    瑞芯微RK3566/RK3568 Android11下该如何默认屏蔽导航栏/状态栏?看这篇文章就懂了

    本文介绍瑞芯微RK3566/RK3568在Android11系统默认屏蔽导航栏/状态栏方法,触觉智能的Purple Pi OH鸿蒙开发板演示
    的头像 发表于 10-30 18:26 428次阅读
    瑞芯微RK3566/RK3568 <b class='flag-5'>Android11</b>下该如何默认屏蔽导航栏/状态栏?看这篇文章就懂了