RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Purple Pi OH Android11 ROOT 方法

觸覺智能 ? 2023-08-04 08:40 ? 次閱讀

前言

為了讓應(yīng)用程序可以直接調(diào)用su執(zhí)行系統(tǒng)命令和獲取root權(quán)限,本文基于Purple Pi OH主板的Android SDK,介紹如果修改和編譯一個root版本的Android11系統(tǒng),以下為sdk源碼修改方法。

Purple Pi OH作為一款兼容樹莓派的開源主板,采用瑞芯微RK3566 (Cortex-A55) 四核64位超強(qiáng)CPU,主頻最高達(dá)1.8 GHz,算力高達(dá)1Tops,支持INT8/INT16,支持TensorFlow/MXNet/PyTorch/Caffe框架,多路視頻輸出和輸入,支持4K、H.265/H.264視頻解碼,接口豐富。

玩法豐富,支持OpenHarmony、Ubuntu、Debian、Android等多種系統(tǒng),提供豐富開源資料

產(chǎn)品規(guī)格書:Purple Pi OH 產(chǎn)品手冊

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

關(guān)閉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

注釋用戶組權(quán)限檢測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文件默認(rèn)授予root權(quán)限

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;

編譯鏡像

修改后需要重新編譯內(nèi)核和AOSP,Android編譯需要選擇rk3566_r-userdebug版本

sourcebuild/envsetup.sh
lunch rk3566_r-userdebug

檢測驗(yàn)證root是否成功

可在應(yīng)用程序中調(diào)用 /system/xbin/su來測試系統(tǒng)是否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的系統(tǒng)可正常執(zhí)行,而非root的系統(tǒng)會提示沒有權(quán)限

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • Android
    +關(guān)注

    關(guān)注

    12

    文章

    3935

    瀏覽量

    127339
  • 主板
    +關(guān)注

    關(guān)注

    53

    文章

    1875

    瀏覽量

    70764
  • root
    +關(guān)注

    關(guān)注

    1

    文章

    86

    瀏覽量

    21388
收藏 人收藏

    評論

    相關(guān)推薦

    Android11修改攝像頭前后置方法,觸覺智能RK3568開發(fā)板演示

    本文介紹在Android11系統(tǒng)下,修改攝像頭前后置屬性的方法。使用觸覺智能EVB3568鴻蒙開發(fā)板演示,搭載瑞芯微RK3568,四核A55處理器,主頻2.0Ghz,1T算力NPU;支持
    的頭像 發(fā)表于 11-28 18:40 ?123次閱讀
    <b class='flag-5'>Android11</b>修改攝像頭前后置<b class='flag-5'>方法</b>,觸覺智能RK3568開發(fā)板演示

    Android11修改攝像頭前后置方法,觸覺智能RK3568開發(fā)板演示

    本文介紹在Android11系統(tǒng)下,修改攝像頭前后置屬性的方法。使用觸覺智能EVB3568鴻蒙開發(fā)板演示,搭載瑞芯微RK3568,四核A55處理器,主頻2.0Ghz,1T算力NPU;支持OpenHarmony5.0及Linux、Andr
    的頭像 發(fā)表于 11-28 15:25 ?71次閱讀
    <b class='flag-5'>Android11</b>修改攝像頭前后置<b class='flag-5'>方法</b>,觸覺智能RK3568開發(fā)板演示

    OpenHarmony屬性信息怎么修改?觸覺智能RK3566鴻蒙開發(fā)板來演示

    本文介紹開源鴻蒙OpenHarmony系統(tǒng)下,修改產(chǎn)品屬性信息的方法,觸覺智能Purple Pi OH鴻蒙開發(fā)板演示,已適配全新OpenHarmony5.0 Release系統(tǒng)!
    的頭像 發(fā)表于 11-27 09:31 ?144次閱讀
    OpenHarmony屬性信息怎么修改?觸覺智能RK3566鴻蒙開發(fā)板來演示

    如何在開源鴻蒙OpenHarmony開啟SELinux模式?RK3566鴻蒙開發(fā)板演示

    本文介紹開源鴻蒙OpenHarmony系統(tǒng)下,開啟/關(guān)閉SELinux權(quán)限的方法,觸覺智能Purple Pi OH鴻蒙開發(fā)板演示,已適配全新OpenHarmony5.0 Release
    的頭像 發(fā)表于 11-18 19:03 ?308次閱讀
    如何在開源鴻蒙OpenHarmony開啟SELinux模式?RK3566鴻蒙開發(fā)板演示

    OpenHamrony4.0去除鎖屏是一種什么體驗(yàn)?觸覺智能給你支支招

    本文介紹開源鴻蒙OpenHarmony 4.0系統(tǒng)下,去除鎖屏開機(jī)后直接進(jìn)入界面的方法,觸覺智能Purple Pi OH鴻蒙開發(fā)板演示,已適配全新OpenHarmony5.0 Rele
    的頭像 發(fā)表于 11-13 10:37 ?240次閱讀
    OpenHamrony4.0去除鎖屏是一種什么體驗(yàn)?觸覺智能給你支支招

    瑞芯微RK3566/RK3568 Android11下該如何默認(rèn)屏蔽導(dǎo)航欄/狀態(tài)欄?看這篇文章就懂了

    本文介紹瑞芯微RK3566/RK3568在Android11系統(tǒng)默認(rèn)屏蔽導(dǎo)航欄/狀態(tài)欄方法,觸覺智能的Purple Pi OH鴻蒙開發(fā)板演示
    的頭像 發(fā)表于 10-30 18:26 ?427次閱讀
    瑞芯微RK3566/RK3568 <b class='flag-5'>Android11</b>下該如何默認(rèn)屏蔽導(dǎo)航欄/狀態(tài)欄?看這篇文章就懂了

    觸覺智能Purple Pi OH鴻蒙開發(fā)板成功適配OpenHarmony5.0 Release,開啟新征程

    觸覺智能Purple Pi OH鴻蒙開發(fā)板,成功適配OpenHarmony5.0 Release版本!為大家?guī)鞳penHarmony5.0特性講解!關(guān)注觸覺智能,為大家?guī)砀郞penHarmony5.0功能體驗(yàn)介紹!
    的頭像 發(fā)表于 10-25 10:51 ?382次閱讀
    觸覺智能<b class='flag-5'>Purple</b> <b class='flag-5'>Pi</b> <b class='flag-5'>OH</b>鴻蒙開發(fā)板成功適配OpenHarmony5.0 Release,開啟新征程

    瑞芯微RK3566/RK3568 Android11使用OTA升級固件方法,深圳觸覺智能鴻蒙開發(fā)板演示,備戰(zhàn)第九屆華為ICT大賽

    本文介紹瑞芯微RK3566/RK3568在Android11系統(tǒng)OTA升級固件方法,使用觸覺智能的Purple Pi OH鴻蒙開發(fā)板演示,搭
    的頭像 發(fā)表于 10-12 11:57 ?461次閱讀
    瑞芯微RK3566/RK3568 <b class='flag-5'>Android11</b>使用OTA升級固件<b class='flag-5'>方法</b>,深圳觸覺智能鴻蒙開發(fā)板演示,備戰(zhàn)第九屆華為ICT大賽

    瑞芯微RK3566鴻蒙開發(fā)板Android11修改第三方輸入法為默認(rèn)輸入法

    本文適用于觸覺智能所有支持Android11系統(tǒng)的開發(fā)板修改第三方輸入法為默認(rèn)輸入法。本次使用的是觸覺智能的Purple Pi OH鴻蒙開源主板,搭載了瑞芯微RK3566芯片,類樹莓派
    的頭像 發(fā)表于 09-24 09:43 ?426次閱讀
    瑞芯微RK3566鴻蒙開發(fā)板<b class='flag-5'>Android11</b>修改第三方輸入法為默認(rèn)輸入法

    瑞芯微RK3566鴻蒙開發(fā)板Ubuntu虛擬機(jī)環(huán)境搭建教程,觸覺智能Purple Pi OH主板

    本文適用于Ubuntu虛擬機(jī)環(huán)境搭建教程學(xué)習(xí),設(shè)備為觸覺智能開發(fā)的瑞芯微RK3566開發(fā)板,型號Purple Pi OH。是Laval官方社區(qū)主薦的一款鴻蒙開發(fā)主板。支持Openharmony、安卓
    的頭像 發(fā)表于 09-08 18:25 ?971次閱讀
    瑞芯微RK3566鴻蒙開發(fā)板Ubuntu虛擬機(jī)環(huán)境搭建教程,觸覺智能<b class='flag-5'>Purple</b> <b class='flag-5'>Pi</b> <b class='flag-5'>OH</b>主板

    瑞芯微RK3566鴻蒙開發(fā)板Ubuntu虛擬機(jī)環(huán)境搭建教程,觸覺智能Purple Pi OH主板

    本文適用于Ubuntu虛擬機(jī)環(huán)境搭建教程學(xué)習(xí),設(shè)備為觸覺智能開發(fā)的瑞芯微RK3566開發(fā)板,型號Purple Pi OH。是華為Laval官方社區(qū)主薦的一款鴻蒙開發(fā)主板。支持Openharmony、安卓
    的頭像 發(fā)表于 09-05 17:47 ?335次閱讀
    瑞芯微RK3566鴻蒙開發(fā)板Ubuntu虛擬機(jī)環(huán)境搭建教程,觸覺智能<b class='flag-5'>Purple</b> <b class='flag-5'>Pi</b> <b class='flag-5'>OH</b>主板

    Purple Pi OHAndroid11下測試WiFi和LAN的TCP和UDP傳輸速率

    開源鴻蒙硬件方案領(lǐng)跑者觸覺智能本文適用于在PurplePiOH在Andriod11下如何測試WiFi和LAN的TCP和UDP傳輸速率。觸覺智能的PurplePiOH鴻蒙開源主板,是華為Laval官方
    的頭像 發(fā)表于 07-16 08:33 ?549次閱讀
    <b class='flag-5'>Purple</b> <b class='flag-5'>Pi</b> <b class='flag-5'>OH</b>在<b class='flag-5'>Android11</b>下測試WiFi和LAN的TCP和UDP傳輸速率

    Purple Pi OH 更改SDK的編譯選項(xiàng)

    黨,極客,工程師,極大降低了開源鴻蒙開發(fā)者的入門門檻,具有以下幾點(diǎn)優(yōu)勢:支持開源鴻蒙/Linux/Andriod11/麒麟,兼容樹莓派;四核A55,最高1.8G主
    的頭像 發(fā)表于 07-06 08:33 ?292次閱讀
    <b class='flag-5'>Purple</b> <b class='flag-5'>Pi</b> <b class='flag-5'>OH</b> 更改SDK的編譯選項(xiàng)

    Purple Pi OH又開外掛!帶你搭建編譯環(huán)境及編譯Android 11固件

    01介紹今天的文章主題是分享與探討關(guān)于PurplePiOH開發(fā)板Android開發(fā)之搭建編譯環(huán)境及編譯Android固件。如果你是剛開始接觸嵌入式Linux開發(fā),也許你會非常疑惑?為什么同樣是ARM
    的頭像 發(fā)表于 05-22 08:32 ?1165次閱讀
    <b class='flag-5'>Purple</b> <b class='flag-5'>Pi</b> <b class='flag-5'>OH</b>又開外掛!帶你搭建編譯環(huán)境及編譯<b class='flag-5'>Android</b> <b class='flag-5'>11</b>固件

    適合大學(xué)生的鴻蒙開發(fā)板-Purple Pi OH之安裝Docker

    介紹本文基于purple-pi-oh系列主板演示Linux系統(tǒng)安裝Docker,方法適用于RK3566全系列產(chǎn)品。本教程將指導(dǎo)你在基于RK3566的LInux系統(tǒng)上安裝Docker。Docker是一
    的頭像 發(fā)表于 05-10 08:32 ?584次閱讀
    適合大學(xué)生的鴻蒙開發(fā)板-<b class='flag-5'>Purple</b> <b class='flag-5'>Pi</b> <b class='flag-5'>OH</b>之安裝Docker
    RM新时代网站-首页