如何修改 boot.img 来加入 su ?

2018-08-17 18:24:00 +08:00
 galaxy

我想通过 sideload 的 bootloader 来 root 手机,现在的问题是 system.img 里面没有 su,toybox 也是去掉 su 的版本。

我现在已经通过修改 ramdisk 来加入文件,但由于 SELinux 设置,加进去的文件即使是 755,还是不能执行。

今天尝试了mount -o loop xxx.img /system/bin,发现始终没法挂在,无论是 rc 里面加mount ext4 /bin.img /system/bin ro loop还是fstab.qcom里面加/bin.img /system/bin loop,ro wait都不行。 [可能是 rc 那加错位置了]

有熟悉 SELinux 或者 init 的人么?麻烦帮忙看看怎么加。

控制了 bootloader 还搞不定就太郁闷了呀……

文件在 https://github.com/galaxy001/SugarY9

10576 次点击
所在节点    Android
15 条回复
iwtbauh
2018-08-17 18:35:54 +08:00
不能的,从 Android 4 的某个版本开始,zygote 使用 PR_CAPBSET_DROP drop 掉了 setuid,因此你放 su 进去是没有用的。你要么自己编译一个修补后的 aosp 用,要么用守护进程通信的方式( su 只是一个前端)。
ysc3839
2018-08-17 18:43:37 +08:00
直接用 Magisk 不就好了吗?
galaxy
2018-08-17 19:32:26 +08:00
@ysc3839 Magisk 需要用 Recovery 安装,我目前的 Recovery.img 有证书验证,不知道怎么修改才能去掉。
rrfeng
2018-08-17 19:35:07 +08:00
@galaxy magisk 不需要 recovery

安装 magisk app
下载对应系统 ROM 的 boot.img ,adb push 到手机里
magisk 里选择 install -> patch boot.img -> 选刚才 push 的 boot.img
patch 好了之后 adb 拖下来,flashboot flash boot
galaxy
2018-08-17 19:42:06 +08:00
@rrfenghttps://github.com/topjohnwu/Magisk/releases,只有 manager 的 apk,安装后会提示未安装 Magisk,没有其他功能。
Tyanboot
2018-08-17 20:54:06 +08:00
@galaxy 所以你需要用 manager patch 一个 boot.img 然后刷。不过话说回来既然有签名验证,你是怎么刷进修改后的 boot.img
ReVanTis
2018-08-17 21:48:34 +08:00
@Tyanboot 一般这种是适用于没有人 port twrp,也没有 boot 签名的机器,和 lz 的情况类似,可以自己修改 kernel 但没有 recovery
我的疑问是为什么 recovery 有签名认证而 boot 没有…
Tyanboot
2018-08-17 21:57:56 +08:00
@ReVanTis 大概是厂商忘了吧。不过我记得 rec 的结构和 boot 是一样的,都是一个内核+一个 RamDisk
ysc3839
2018-08-17 22:32:31 +08:00
gam2046
2018-08-18 10:02:36 +08:00
recovery 有签名验证,随便找一个第三方可用的 recovery,然后设备进入 bootloader。输入命令:

fastboot boot recovery.img

以 ramdisk 形式直接运行这个第三方的 recovery 即可。你原来官方的 recovery 还在。
liuyanjun0826
2018-08-19 16:58:37 +08:00
绝对是 Recovery 的问题,我也有类似的情况
galaxy
2018-08-19 19:41:37 +08:00
bootloader 可用用命令解锁,然后手机会提示需要 reset,然后就解锁了,可以 fastboot boot xx.img 。

manager 的 patch 功能是不是必须联网呀?我之前担心出问题,一直没插卡也没配 wifi。
skylancer
2018-08-21 09:55:15 +08:00
@ysc3839 不行,我试过了,单独安装 apk 根本无法使用,我都是拿另一台手机手动打打 patch
ysc3839
2018-08-21 10:18:45 +08:00
skylancer
2018-08-21 10:31:38 +08:00
@ysc3839 就是那台机器不行

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/480824

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX