刷入成功。首先说原因。个人猜测不能直接刷入recovery,而是需要先刷零。给大家科普一下,Linux中,/dev/zero是一个0设备,通过dd命令,我们可以给任何一个文件写入0。至于为什么要先写入0,这或许是因为刷入gerda recovery时,二进制文件会直接覆盖在原厂的recovery上,而gerda recovery应该要比原厂recovery小,所以在二进制末位处直接截断在原厂的recovery上,这就可能会带来一系列bug,比如无法正确计算哈希值。其实我还算走运,严重的甚至可能变砖。
以下是解决方案,此方案应穿插在上述教程里。
在刷入recovery之前,先要:
dd if=/dev/zero of=/dev/block/bootdevice/by-name/recovery
然后再刷入recovery。