如何修改 boot.img 来加入 su ? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
galaxy
V2EX    Android

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

  •  
  •   galaxy 2018-08-17 18:24:00 +08:00 18190 次点击
    这是一个创建于 2686 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我想通过 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

    第 1 条附言    2018-08-17 19:30:41 +08:00
    现在的状态是,能修改`default.prop`加入`ro.secure=0`,加载后`adb root`正常。

    进一步获得 Root 的 shell 要怎么做?
    第 2 条附言    2018-08-17 19:35:23 +08:00
    话说,system.img 是不带驱动的吧?

    是不是说,我编译一份官方 aarch64 的 Android 6.0.1,然后只刷 system.img ,拿到的就是可用的原版系统?
    第 3 条附言    2018-08-19 19:50:48 +08:00

    关于boot.img,mkbootimg的源码短,改多几个755的目录很容易。

    但SELinux那边,光改文本的配置文件没用,内核启动参数添加selinux=0没用。

    mount -o loop xxx.ext4 /system/bin结果死活mount不上。

    然后我就不知道怎么办了。

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

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

    fastboot boot recovery.img

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

    manager 的 patch 功能是不是必须联网呀?我之前担心出问题,一直没插卡也没配 wifi。
    skylancer
        13
    skylancer  
       2018-08-21 09:55:15 +08:00
    @ysc3839 不行,我试过了,单独安装 apk 根本无法使用,我都是拿另一台手机手动打打 patch
    skylancer
        15
    skylancer  
       2018-08-21 10:31:38 +08:00
    @ysc3839 就是那台机器不行
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4062 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 05:31 PVG 13:31 LAX 21:31 JFK 00:31
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86