找回密码
 注册
关于网站域名变更的通知
查看: 287|回复: 1
打印 上一主题 下一主题

RK3562编译Android13 ROOT固件教程

[复制链接]

该用户从未签到

跳转到指定楼层
1#
 楼主| 发表于 2025-1-8 00:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x

9 Y9 E9 ]$ v. K) r6 j0 V关闭selinux+ O5 Q. P8 k  I) ]% H6 J3 u4 V
修改此文件("+"号为修改内容)0 T+ M9 I+ [8 d$ Z$ K, ^+ A

( x  t, d/ m$ g, n5 Bdevice/rockchip/common/BoardConfig.mk- G- q( v% D4 V- M5 f5 z
BOARD_BOOT_HEADER_VERSION ?= 2
% K& t* [6 t4 Y$ A; `- I' j) ?BOARD_MKBOOTIMG_ARGS :=' z! j2 {! P9 x& s' P, W- a
BOARD_PREBUILT_DTBOIMAGE ?= $(TARGET_DEVICE_DIR)/dtbo.img
  Y9 q& y# G! y! Y5 L( O1 lBOARD_ROCKCHIP_VIRTUAL_AB_ENABLE ?= false
0 t6 z- S# K3 |! I* `5 T-BOARD_SELINUX_ENFORCING ?= true
) u7 \% f$ Z0 m1 ^: l5 z+BOARD_SELINUX_ENFORCING ?= false/ G  `0 w  p3 }9 p7 s- _0 x

( e0 c- v0 e+ b4 y9 K6 w8 \, j5 b3 @! o( C
9 t, H2 o/ N; r- n# e, d& F
注释用户组权限检测2 [) N/ a8 o+ I1 D# J2 U, ?2 u
修改此文件("+"号为修改内容), _  {* \' n3 X# q  h7 e

2 b  G* E  o  U( a! T$ Qsystem/extras/su/su.cpp' j: D* C: P1 A  C, \& Z2 m

" W* g$ M8 {" {5 W' g# ?void extract_uidgids(const char* uidgids, uid_t* uid, gid_t*
" w# \, v' l! q/ q7 N! S, ?gid, gid_t* gids, i
; y% A: R- y; K5 j1 q}
8 i. X( E" X) n0 C8 ^, q. vint main(int argc, char** argv) {9 \7 ?$ j6 X" h0 {' ]* |+ P7 v9 M- |
- uid_t current_uid = getuid();4 H8 ~$ E' W. Z7 {; c' Q8 y; s
- if (current_uid != AID_ROOT && current_uid != AID_SHELL) error(1, 0, "notallowed");
4 k% k9 f% t2 M, c' `9 ^- v+ //uid_t current_uid = getuid();
+ Q* {! y4 Q+ Y+ //if (current_uid != AID_ROOT && current_uid != AID_SHELL) error(1, 0, "notallowed");
; Q+ |0 X2 V2 j% ~3 g  p* e/ n1 I5 e, N& l- u1 z

* i) s8 {) ?( I7 n6 o2 j( D0 }  @
给su文件默认授予root权限
% n8 K. V- t$ M" s) j1 f修改此文件("+"号为修改内容)6 c) W* F; v# X6 {# R
system/core/libcutils/fs_config.cpp8 ~' L. ^2 R: |0 T  }1 t5 F7 q
9 F4 [& Y4 ]# `
static const struct fs_path_config android_dirs[] = {
$ W$ G( I; d: b9 I6 Q6 L; s9 f3 ?     { 00751, AID_ROOT,         AID_SHELL,        0, "system/bin" },3 |9 Z: R, U. F9 Y3 m4 o' }/ w
     { 00755, AID_ROOT,         AID_ROOT,         0, "system/etc/ppp" },
1 }9 P- `2 o6 r7 O1 U7 b     { 00755, AID_ROOT,         AID_SHELL,        0, "system/vendor" },4 g- H8 ^1 N  W- Y
-    { 00750, AID_ROOT,         AID_SHELL,        0, "system/xbin" },
7 \/ d7 u, X. H- u6 T+    { 00755, AID_ROOT,         AID_SHELL,        0, "system/xbin" },
- y7 i4 N2 n9 ]     { 00751, AID_ROOT,         AID_SHELL,        0, "system/apex/*/bin" },
# i/ y  W# u- ?% I9 y     { 00751, AID_ROOT,         AID_SHELL,        0, "system_ext/bin" },
3 v1 X; M* w/ c6 [4 i     { 00751, AID_ROOT,         AID_SHELL,        0, "system_ext/apex/*/bin" },) P9 B2 M2 R! E6 o, G7 `- e
static const struct fs_path_config android_files[] = {
& A- M: p4 ~/ w+ w' I( w     // the following two files are INTENTIONALLY set-uid, but they# Z! i$ X' q3 o
     // are NOT included on user builds.
  a  R* v$ `  V. R     { 06755, AID_ROOT,      AID_ROOT,      0, "system/xbin/procmem" },2 I2 a  ?4 ^# c" Q, B/ _: o  l9 @
-    { 04750, AID_ROOT,      AID_SHELL,     0, "system/xbin/su" },
) |/ [8 |: a& |% C+    { 06755, AID_ROOT,      AID_SHELL,     0, "system/xbin/su" },# U! E% r" q$ }$ ]
然后修改此文件("+"号为修改内容)* M; d2 C4 j& n) G7 d4 p6 n7 z
frameworks/base/core/jni/com_android_internal_os_Zygote.cpp5 K1 ]( @' ?2 _' T6 J1 l
static void DropCapabilitiesBoundingSet(fail_fn_t fail_fn) {: }; K: X4 S+ l; S4 v& F) H
+/*8 z( @- Q4 K1 a, ~
  for (int i = 0; prctl(PR_CAPBSET_READ, i, 0, 0, 0) >= 0; i++) {;
: \" N) c5 s3 q- ]8 M" z    if (prctl(PR_CAPBSET_DROP, i, 0, 0, 0) == -1) {
5 k/ m+ \: W6 v0 Z8 h      if (errno == EINVAL) {
/ t0 T- M" G* Y5 b8 l5 G$ ]5 W        ALOGE("prctl(PR_CAPBSET_DROP) failed with EINVAL. Please verify "
# G  d- F/ u0 U# d/ C% R- w. M              "your kernel is compiled with file capabilities support");* ?9 l5 K) g3 f1 l* B
      } else {, [  b7 H  _- _$ G
        fail_fn(CREATE_ERROR("prctl(PR_CAPBSET_DROP, %d) failed: %s", i, strerror(errno)));
1 J. i' a" }) u9 }6 @) R* x6 l      }  b2 e: T+ o# T! |/ E! ~/ [2 p
    }: ^9 o3 {  ~- M! z9 o
  }5 H  ~" w1 E3 ~% |; R
+ */
- s5 H+ H1 y2 r}
& L& _* S* D7 B- S- {最后修改此文件("+"号为修改内容)
) l: y' \+ W. g- ]8 O- H8 \" z' Kkernel-5.10/security/commoncap.c
& b9 B  F/ h7 |int cap_task_setnice(struct task_struct *p, int nice). Y2 ^7 j. R; d/ K9 A# F/ N
static int cap_prctl_drop(unsigned long cap)& c$ ?. D* G) M  n. S" T4 ~
{. H( W+ g# \$ [% N* X
    struct cred *new;
! v. ^; s' a9 x* P, S# V+/*
+ A) K1 e+ q7 t2 x* T1 Q  h    if (!ns_capable(current_user_ns(), CAP_SETPCAP))
" n  \8 P/ @# \5 x6 ^) F* O4 X: b    return -EPERM;
% R: m6 q1 ^5 E2 M- a( R    if (!cap_valid(cap))
' m2 U8 t$ R- _: D    return -EINVAL;9 j( e: w% d4 _$ D1 W6 d, o( x
-& \. X7 g" ]& a1 {
+*/
6 q0 r0 h) ?" f' K- J9 m$ s( Vnew = prepare_creds();  |. \  d7 E1 z, A$ g% a) M$ D
! S; K2 c: \' t& p
+ K' ~+ u: a% {

5 ?' y' U9 C3 p' S( Y源码编译并验证固件是否ROOT, m2 O  Q5 R+ N# H; m
修改完上面三个步骤的文件后,重新编译内核和安卓源码,执行以下命令:) g) u# Y5 w- @- N7 ?# }$ [2 G
# make -j4
6 U7 B% }  v7 P) q: e! y下载RootChecker测试APK软件包(自行下载),可通过ADB命令或者U盘安装,安装后按照提示点击按钮检查root。
6 ~5 ^+ M8 `4 |* F: V) ]* n1 g  B  X$ ~, I, \) r. ?
root成功如图:

* k$ L1 L. e: [- U5 h' `- N$ }
$ v% {& j! g; A7 V6 M

该用户从未签到

2#
发表于 2025-1-8 15:49 | 只看该作者
程序写的很规范
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-7-18 15:56 , Processed in 0.109375 second(s), 24 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表