原先写的简直不能看。遂花了写时间认真重写了下。首发于我的个人博客,欢迎前来坐坐:https://blog.pokon548.ink/posts/2020/07/15/%E5%9C%A8%E6%B2%A1%E6%9C%89-twrp-%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%E6%95%91-magisk-%E5%8D%A1%E7%A0%96/。相信我,你会喜欢我博客的夜晚眼睛友好主题的
~
不过其实改写的文章更符合这个标题:在只有 ADB 能用的 Android 10+ TWRP 下救 Magisk 卡开机。但是好像已经改不了了?
原本我以为一加是一个适合刷机的牌子。现在看来我错了,一个不恰当的 Magisk 模块就能要了我的命(
不过有一说一,这也不能全怪一加。由于自 Android 10 开始,Google 向AOSP 引入了动态分区机制,导致所有依赖于TWRP 刷机的机油们都不好过。至于具体原因,可以看 TWRP 官方的说明:点这儿。
简而言之,就是 TWRP 还没有找到能在 Recovery 阶段解读动态分区机制的办法。现有的 TWRP 原版解读不了动态分区上的所有逻辑分区。分区都动不了,刷机也就无从谈起。
不过还好,我们还有倒数第二重利器:Fastboot。虽然 Google 搞事把分区整个重写了一遍,但总不能把自家车门也焊死了吧。而Fastboot 也是这篇文章,以及现在给使用了动态分区机制的机子刷机的主要思路。官方对改写的 Fastboot 协议(fastbootd)解释在此:点我
拯救砖头,刻不容缓(不是
在尝试了一阵子之后,我逐渐发现了一件事:TWRP 下虽然几乎所有功能残废,但是!有一个功能还是能用 — ADB。
你也许会说:唉几乎所有分区都废掉了,系统都炸穿了,要它何用?但别着急嘛。我只是说几乎所有分区都废掉了,可没说所有分区都废掉了。
比如说,我们打开半残 TWRP 的终端,输入这个指令:ls /dev/block/by-name/*。你会惊奇的发现:块设备居然还能列得出来。哎!原来dev分区还是好的。那,这又有什么作用呢?如果你精通 Unix 系的其中一哲学,你很快就会知道我为啥要想到这个。不过不知道也没关系,在这里现学现用也不见得是件坏事: