首页
社区
课程
招聘
[原创] Android系统启动与Magisk原理
发表于: 2023-2-1 21:17 63773

[原创] Android系统启动与Magisk原理

2023-2-1 21:17
63773

冰与火的战歌:Windows内核攻防实战高级班!从零到实战,融合AI与Windows内核攻防全技术栈,打造具备自动化能力的内核开发高手。

最后于 2024-8-27 16:23 被飞翔的猫咪编辑 ,原因:
收藏
点赞 ・65
打赏
分享
打赏 + 55.00雪花
打赏次数 2 雪花 + 55.00
 
赞赏  orz1ruo   +5.00 2023/02/06 精品文章~
赞赏  virjar   +50.00 2023/02/02
最新回复 (38)
雪    币: 6747
活跃值: (11957)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2 楼
优秀文章,学习下
2023-2-2 09:38
0
雪    币: 1719
活跃值: (215957)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
3 楼
tql
2023-2-2 10:03
0
雪    币: 182
活跃值: (4005)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
4 楼
tql
2023-2-2 10:34
0
雪    币: 2641
活跃值: (4271)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
5 楼
tql
2023-2-2 10:53
0
雪    币: 3421
活跃值: (12739)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6 楼
期待着大佬把面具直接移植到AOSP中
2023-2-2 11:05
0
雪    币: 2722
活跃值: (4292)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
7 楼
tql
2023-2-2 12:09
0
雪    币: 26388
活跃值: (9320)
能力值: (RANK:445 )
在线值:
发帖
回帖
粉丝
8 楼
tql
2023-2-2 12:31
0
雪    币: 12457
活跃值: (10020)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
9 楼
tql
2023-2-2 12:51
0
雪    币: 2046
活跃值: (9679)
能力值: ( LV11,RANK:180 )
在线值:
发帖
回帖
粉丝
10 楼
内容十分hardcore ,没几个月我是真的学不会. 
2023-2-2 13:59
0
雪    币: 7308
活跃值: (9484)
能力值: ( LV12,RANK:240 )
在线值:
发帖
回帖
粉丝
11 楼
爱吃菠菜 内容十分hardcore ,没几个月我是真的学不会. [em_56]
其实就是里边牵扯的内容比较多,深度倒不是太深
2023-2-2 14:28
1
雪    币: 2230
活跃值: (5398)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12 楼
tql
2023-2-2 17:23
0
雪    币: 5414
活跃值: (6232)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
13 楼
感谢分享!
2023-2-2 18:15
0
雪    币: 1109
活跃值: (3996)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
14 楼
真棒。刚好有台 ARM 服务器在吃灰,我看看怎么把 magisk 塞进 cuttlefish 云手机镜像里。
2023-2-2 18:16
0
雪    币: 758
活跃值: (5687)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
15 楼
大佬司还招人,吗
2023-2-3 10:58
1
雪    币: 1714
活跃值: (849)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16 楼
Patch DTB 部分 “回想一下如果设置了skip_initramfs代表着Method B启动方式中进入到正常系统而不是recovery,不会从boot.img中的ramdisk启动,magisk也就无法启动了” 
这句话不对,加这个 patch 的原因是三星部分机型不支持 SAR 但是 cmdline 里却有这个参数,正常启动的时候内核会直接忽略,但是 Magisk 会因为有这个参数而判断这台设备是 Legacy SAR,进入 Legacy SAR 流程导致手机无法启动。这里 Patch 的本质是『不让 magisk 自己看到错误的参数』,而不是『阻止设备挂载 /system 到 /』。参见 deaK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6@1L8%4m8B7L8$3S2F1N6%4g2Q4x3V1k6y4j5h3N6A6M7$3E0Q4x3V1k6H3N6h3I4D9i4K6u0r3y4o6M7^5z5l9`.`.

2023-2-3 11:35
2
雪    币: 1714
活跃值: (849)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17 楼
“selinux刚出现的时候selinuxfs是会被内核挂载并且加入sysfs中的,不过android8和android 9的selinuxfs由init进程来挂载”
这句话我也觉得有问题,我印象里所有设备的 selinuxfs 都由 init 挂载,但是老的设备只支持单个 sepolicy,直接 patch /sepolicy 就行;新一点的设备开始支持 split policy,sepolicy 由多个 cil 文件组成,这种情况才需要 hijack_sepolicy
代码里专门注释说这里是 android 8-9 only的原因在于:老设备不走这个逻辑;10+ 以上 init 一定是 Two Stage,selinuxfs 在 init first stage 挂载,magisk 等 first stage 跑完之后再去 hijack 所以不会遇到问题;而 Android 8-9 可能是 rootfs 也可能是 Single Stage Init 的 SAR,这两种情况 hijack_sepolicy 会比 init 先跑,init 没机会 mount selinuxfs。
2023-2-3 11:48
2
雪    币: 7308
活跃值: (9484)
能力值: ( LV12,RANK:240 )
在线值:
发帖
回帖
粉丝
18 楼
残页 Patch DTB 部分 “回想一下如果设置了skip_initramfs代表着Method B启动方式中进入到正常系统而不是recovery,不会从boot.img中的ramdisk启动,magis ...
patch dtb的部分你说的对,看来和patch kernel还不是一个目的,这种手机太少了,例外情况本来不打算说太多的
2023-2-3 13:32
1
雪    币: 7308
活跃值: (9484)
能力值: ( LV12,RANK:240 )
在线值:
发帖
回帖
粉丝
19 楼
残页 “selinux刚出现的时候selinuxfs是会被内核挂载并且加入sysfs中的,不过android8和android 9的selinuxfs由init进程来挂载” 这句话我也觉得有问题,我印象里 ...
android 7.1.2的selinuxfs挂载竟然隐藏在selinux_android_load_policy()里,老哥靠谱,有空我改一下
2023-2-3 13:42
1
雪    币: 1714
活跃值: (849)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20 楼
嗯,另外“如果长按则进入magisk系统,否则进入到原来的recovery系统” 这里写反了,长按进原来的 recovery 否则进入带 magisk 的系统 才对
另外不是所有 Type 3 设备都只能修补 recovery,我记得小米全部 Type 3 手机都能直接修补 boot.img
2023-2-3 14:48
1
雪    币: 2922
活跃值: (13249)
能力值: ( LV9,RANK:181 )
在线值:
发帖
回帖
粉丝
21 楼
tql,码上后面学习。
2023-2-3 15:37
0
雪    币: 986
活跃值: (6952)
能力值: ( LV7,RANK:115 )
在线值:
发帖
回帖
粉丝
22 楼
学习,膜拜
2023-2-3 19:23
0
雪    币: 510
活跃值: (2162)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23 楼
学习,膜拜
2023-2-4 13:58
0
雪    币: 228
活跃值: (1382)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24 楼
这深度,广度,叹为观止,膜拜
2023-2-4 18:06
0
雪    币: 8439
活跃值: (6369)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25 楼
太干,难啃
2023-2-4 21:32
0
游客
登录 | 注册 方可回帖
返回