EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本文介绍RK3566/RK3568开发板Android11系统,编译ROOT权限固件的方法。触觉智能Purple Pi OH鸿蒙开发板演示,搭载了瑞芯微RK3566四核处理器,Laval鸿蒙社区推荐开发板,已适配全新OpenH ARMony5.0 Release系统,SDK源码全开放!
, D, V# U" e( |- ~" @2 q关闭Selinux s0 D4 h5 z# ^. {+ y# I @8 ]0 a5 Y
修改以下路径文件: adevice/rockchip/common/BoardConfig.mk
& r2 R) k. q1 r5 f修改代码如下: ' v7 W6 Q. \" s8 |6 b) F3 t X- ?9 Q
BOARD_BOOT_HEADER_VERSION ?= 2
' W7 }+ A- l+ V( y- I9 p3 e e# TBOARD_MKBOOTIMG_ARGS :=, S4 O* @: |/ u$ r( }% b$ r7 G7 g- b! E
BOARD_PREBUILT_DTBOIMAGE ?= $(TARGET_DEVICE_DIR)/dtbo.img! c' m9 c# F `, Q( [8 u
BOARD_ROCKCHIP_VIRTUAL_AB_ENABLE ?= false. I# i, Q9 z+ ]) v
-BOARD_SELINUX_ENFORCING ?= true8 d. B2 E4 _' t. v' d
+BOARD_SELINUX_ENFORCING ?= false4 x! c; G. M x" ]5 t9 N( a5 M
注意:"+"号为修改内容。
2 G' a5 m5 i3 P z$ W注释用户组权限检测修改以下路径文件:system/extras/su/su.cpp 修改代码如下: void extract_uidgids(const char* uidgids, uid_t* uid, gid_t*. }" @: F6 {/ T8 y" I
gid, gid_t* gids, i
7 C0 U% F5 Q1 B1 g}5 ?- @' n0 J8 k Y. o6 @
int main(int argc, char** argv) {
2 h/ ]- o' { b+ R% [- uid_t current_uid = getuid();, A* \; a2 y% P: X
- if (current_uid != AID_ROOT && current_uid != AID_SHELL) error(1, 0, "notallowed");- A- V; F; C$ r3 E; \
+ //uid_t current_uid = getuid();0 Z! [$ M6 r" t( }+ k3 c2 D" _2 b
+ //if (current_uid != AID_ROOT && current_uid != AID_SHELL) error(1, 0, "notallowed");- i. X) W U6 z
注意:"+"号为修改内容。 2 T0 b: x [! F, A
给su文件默认授予root权限修改以下路径文件:system/core/libcutils/fs_config.cpp 修改代码如下: 5 r, }$ e' O P: C+ Y) {
static const struct fs_path_config android_files[] = {( x3 v. G S: }9 d6 |+ I
// the following two files are INTENTIONALLY set-uid, but they
5 n d9 T% Q6 j2 w v- G) X// are NOT included on user builds.{ 06755, AID_ROOT, AID_ROOT, 0, "system/xbin/procmem" },
7 p" q: I7 A- ^9 B/ y: E- { 04750, AID_ROOT, AID_SHELL, 0, "system/xbin/su" },
& J, N! ^8 o ?+ { 06755, AID_ROOT, AID_SHELL, 0, "system/xbin/su" },8 }* Q! O" f* _6 D7 W" J
修改以下路径文件:5 z8 B0 D) b) t; T$ t9 z- W! S
frameworks/base/core/jni/com_android_internal_os_Zygote.cpp 修改代码如下: static void DropCapabilitiesBoundingSet(fail_fn_t fail_fn) {; u* u6 V. |; ^2 B
+/*
7 @% N9 a% @/ j. L3 b0 wfor (int i = 0; prctl(PR_CAPBSET_READ, i, 0, 0, 0) >= 0; i++) {;
. B v4 x6 X( x9 ]5 I% x6 r$ W3 q; q. q0 L: Q" B! R* F1 |$ g
if (prctl(PR_CAPBSET_DROP, i, 0, 0, 0) == -1) {
) W& V# P3 t) e* O% Zif (errno == EINVAL) { ' E/ J2 C* U% }6 z/ @& {
ALOGE("prctl(PR_CAPBSET_DROP) failed with EINVAL. Please verify 1 I5 Q: t3 ^+ A) v5 _0 {) d
8 b. t& b5 f5 ]6 ^# l; C
"your kernel is compiled with file capabilities support"); } else { g, O8 R0 L2 R7 _) b
fail_fn(CREATE_ERROR("prctl(PR_CAPBSET_DROP, %d) failed: %s", i, strerror(errno)));
V* |8 e) U( t) F" h A' N! h }
- v( U4 ]1 m5 I/ \' j } ! G4 d4 e& X4 t4 |* p
}5 G" s& C3 h- a" q( P
+ */
$ b( F g J; I, u7 F7 d }' g, Y Q+ n0 X* j8 x# P# n- h
修改以下路径文件:kernel/security/commoncap.c 修改代码如下: & W. U6 n2 i/ o
int cap_task_setnice(struct task_struct *p, int nice). G3 Q! S2 ^# o0 w/ B
static int cap_prctl_drop(unsigned long cap){
; q. z7 k/ D+ K8 O) I" h4 b struct cred *new;) }# L2 [3 \! w# X4 J( F
+/*
% l, B3 l; X% k$ l n( M if (!ns_capable(current_user_ns(), CAP_SETPCAP))
- U6 E/ T" Y* b6 T2 T8 \ return -EPERM;
- ]$ R. W! g$ l8 ^& x$ K if (!cap_valid(cap)) + V8 c) Q( M) g: f4 z( @" z
return -EINVAL;-+*/1 r* u1 u" X& i
new = prepare_creds();
; U. e6 M$ Z/ M注意:"+"号为修改内容。
6 M4 D' Q0 G5 ~: R源码编译并测试修改完上面三个步骤的文件后,即可在源码根目录下编译安卓源码:
9 U8 B' \: Y, f C- w# make -j4
3 J+ Z0 b [3 [下载Root Checker(ROOT检查工具),通过ADB命令或者U盘安装后,打开按照提示点击按钮检测ROOT,如图: ![]() 若ROOT成功则如图所示:
: w# e& q5 y \$ S& j![]()
, E, b( L) u! l% v& D. L2 f" H2 T l# Z- j! w% Y" k5 |5 Z4 F
产品简介
) n9 m7 R+ A: L作为开源鸿蒙OpenHarmony硬件方案的领跑者,触觉智能坚守开源共创精神,Purple Pi OH鸿蒙开发板源码全开放,持续为大家带来各种技术分享,产品具有以下优势:- 支持OpenHarmony/Andriod/Linux多操作系统,兼容树莓派排针;
- 瑞芯微RK3566芯片,四核A55处理器,主频1.8GHz,Mali G52-2EE GPU;
- 支持OpenGL/CL/Vulkan,8M ISP;
- 1T算力NPU,支持TensoRFlow/Caffe/MXNet/PyTorch等深度学习框架;
- 支持1 x 千兆以太网、3 x USB2.01 x USB3.0、3 x UART、2 x SPI2 x I2C、28 x GPIO、1 x MIPI DSI1 x MIPI CSI、1 x HDMI;
- 率先支持OpenHarmony5.0/4.1/4.0/3.2,开放SDK源代码、3D打印外壳;
- 活跃的开发者社区, 更多牛人在线互动与技术支持;
- 小尺寸高性价比SBC单板,只需249元;8 K7 P8 Q, H& o( f5 s% c, V
( R- p; B% M# J5 X/ j% v; F9 D4 z) S4 e6 t) H. c
4 O7 h0 k8 B9 R
|