修改Vivo Y31S的recovery,使之支持adb

最近root了Y31S,想顺便让recovery也支持root权限的adb,遂尝试进行一波修改。
这个坑是22年10月开始的,但是被连不上usb这个问题困扰了很久,最后终于在24年7月解决了,属实不容易。

首先下载官方升级包,在firmware-update目录下找到recovery.img。接下来的解包、修改、打包的工作均在Linux虚拟机下进行。

解包recovery.img:

mkdir recovery; cd recovery; mkdir unpack
cd unpack; magiskboot unpack ../../recovery.img

此时会在unpack目录下生成一个kernel文件和一个ramdisk.cpio文件。

提取prop.default和init.recovery.platform.rc两个文件:

cd ../
/data/adb/magisk/magiskboot cpio unpack/ramdisk.cpio "extract prop.default prop.default" "extract init.recovery.platform.rc init.recovery.platform.rc"

编辑其中的prop.default文件,将ro.secure和ro.adb.secure的值改为0,将ro.debuggable的值改为1,persist.sys.usb.config的值改为adb。
到这一步,虽然能够开启adb了,但是recovery下连不上usb,所以还需要开启usb。从手机里面提取/vendor/lib/modules/vivo-fuel_summary.ko,并修改init.recovery.platform.rc文件,在“insmod /vendor/lib/modules/vivo-chg-cms.ko”这一行的上面添加一行“insmod /vendor/lib/modules/vivo-fuel_summary.ko”。

然后重新打包。

magiskboot cpio unpack/ramdisk.cpio "add 0600 prop.default prop.default" "add 0644 init.recovery.platform.rc init.recovery.platform.rc" "add 0644 vendor/lib/modules/vivo-fuel_summary.ko vivo-fuel_summary.ko"
cd unpack
magiskboot repack ../../recovery.img ../new_recovery.img

最后重新刷入:

fastboot flash recovery new_recovery.img
fastboot reboot recovery

现在应该能在recovery下通过usb连接adb了。

Ref:
[1] https://forum.xda-developers.com/t/how-to-change-files-in-the-boot-image-using-magisk.4495645/

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注