Decorative image frame

在希沃安卓系统刷入Magisk的折腾日记

众所周知,学校教室的希沃seewo一体机采用的是“安卓套PC”的思路。我们班级的型号为FC70ED,下面就来分享一下我们在这个魔改过的安卓系统里安装Magisk的折腾历程。

魔改后的系统

希沃为了更好满足教学和办公需要,以及防止破解(比如我们现在正在做的事),把他们家的安卓系统做得十分特殊,具体表现如下:

  1. 无法通过开机组合键进入Recovery或FASTBOOT模式(或者是我没有发现)
    但可以通过adb reboot recovery进入Recovery,却居然无法通过adb reboot bootloader进入FASTBOOT,会卡在logo界面。进入自带的Recovery后可以发现这几乎就是一个安卓原生的Recovery,里边虽然有一个Reboot to Bootloader的选项,但是选择之后依然会卡在logo界面。
  2. 无法通过USB连接(或者是我没有发现)
    前置有Type-C接口和USB-A OTG接口,侧边也有一个USB-A OTG接口,但是我们无论如何都无法使用内置的PC模块通过USB连接上进行调试。
    最后,通过分析希沃的系统文件,我们发现可以通过adb connect 192.168.153.253连接无线调试。
  3. 无Ramdisk
    这也是很关键的一点,起初因我没有注意到无Ramdisk会给刷入Magisk带来多么大的影响,就导致走了许多弯路。
  4. 玩机资料匮乏
    由于设备应用场景的特殊性,网上没有相关玩机资料可查,更不会有什么第三方Recovery这样的强大工具。我们唯一的技术支持可能是希沃的官方客服,虽然一些问题他们也无可奉告。

但是也有一些“后门”:

  1. adb root可用
    固件为userdebug版本,这是我们成功刷入Magisk的关键。顺便提一下,adb remount也是可用的。估计是希沃留的后门。😀
  2. Bootloader未上锁
    没有BL锁,感谢希沃。😀

手动刷入Magisk

准备阶段

其实最有参考价值的便是Magisk官方文档,网上再多的教程也不如它来的权威、实用。

由于没有Ramdisk,所以我们只能修补Recovery并替换。 (有vbmeta分区) 当初我们因为没有看到这句话,导致折腾时间明显加长。😂

Magisk in Recovery

接下来我们会在希沃内置PC上进行操作,请确保你已知晓并做好如下准备:

  1. 开启USB调试
    你可以先通过连点版本号启用开发者选项,再在开发者选项中开启“USB调试”开关。

  2. IP地址设置正确
    要想通过希沃内置PC连接到安卓系统, 必须设置Windows中用于与安卓互通的Realtek网卡的IPv4地址为192.168.153.254、子网掩码为255.255.255.0,否则将无法连接。 值得注意的是,这在希沃出厂的Win10系统是已经配置好的,所以你大概率不需要再手动额外配置。但如果你重装了非希沃原厂映像(比如我全新安装了Windows 11),就必须手动设置这个IP地址。

  3. Platform-Tools添加到环境变量
    如果你不想将其添加到环境变量,请确保在adb.exe所在路径执行以下操作。

然后运行终端(或CMD)输入以下命令:

1
2
adb connect 192.168.153.253
adb devices

通过adb devices检查是否已正常连接,若未正常连接,你可以通过adb kill-server重启ADB后再试。 如果你尚未安装Magisk app,请在正常连接后通过adb install [Magisk APK路径]来安装。

修补并替换Recovery

继续执行:

1
2
adb root
adb shell

进入adb shell后,你可以输入whoami来确保此时已经在使用root权限执行命令。

接下来在adb shell中继续执行:

1
2
cd /dev
find -name recovery

查找命令返回的结果,可知Recovery挂载的路径:

1
2
3
./block/recovery
./block/platform/ffe07000.emmc/recovery
./block/platform/ffe07000.emmc/by-name/recovery

经过校验,这三个路径的Recovery是完全相同的。我们把其中一个复制到/sdcard目录下备用:

1
cp /dev/block/recovery /sdcard

现在回到安卓通道,修补Recovery映像:

  1. 打开Magisk app
  2. 点击Magisk卡片旁的“安装”
  3. 勾选“安装到Recovery”,然后下一步。
  4. 点击“选择并修补一个文件”,通过希沃自带的文件管理选择/sdcard/recovery,然后开始。
  5. 等待Magisk提示完成,你会得到/sdcard/Download/magisk_patched-[random_strings].img文件,这是修补后的Recovery,其中的[random_strings]是一个随机值。

现在再次回到PC终端的adb shell,继续执行:

注意:请将[random_strings]替换为实际的值!

1
2
3
4
cp /sdcard/Download/magisk_patched-[random_strings].img /sdcard/recovery.img
dd if=/sdcard/recovery.img of=/dev/block/recovery
dd if=/sdcard/recovery.img of=/dev/block/platform/ffe07000.emmc/recovery
dd if=/sdcard/recovery.img of=/dev/block/platform/ffe07000.emmc/by-name/recovery

至此,我们已经完成了Recovery的修补和替换。如果此时执行adb reboot recovery,设备并不会进入自带的Recovery,而是稍等片刻后再次出现开机动画。回到安卓通道,打开Magisk app,你会发现Magisk已经成功安装了。

修补并替换Boot

如果只修补并替换Recovery,那么在下一次安卓完全重启后,Recovery会回滚成设备自带的Recovery。如果在这之后再执行adb reboot recovery,设备就会进入自带的Recovery,自然不会启用Magisk。所以我们还需要修补并替换Boot映像,操作与上文的修补并替换Recovery大同小异。

继续在adb shell中执行:

1
2
cd /dev
find -name boot

查找命令返回的结果,可知Boot挂载的路径:

1
2
3
./block/boot
./block/platform/ffe07000.emmc/boot
./block/platform/ffe07000.emmc/by-name/boot

经过校验,这三个路径的Boot是完全相同的。我们把其中一个复制到/sdcard目录下备用:

1
cp /dev/block/boot /sdcard

现在回到安卓通道,修补Boot映像:

  1. 打开Magisk app
  2. 点击Magisk卡片旁的“安装”
  3. 勾选“安装到Recovery”,然后下一步。
  4. 点击“选择并修补一个文件”,通过希沃自带的文件管理选择/sdcard/boot,然后开始。
  5. 等待Magisk提示完成,你会得到/sdcard/Download/magisk_patched-[random_strings].img文件,这是修补后的Boot,其中的[random_strings]是一个随机值。

现在再次回到PC终端的adb shell,继续执行:

注意:请将[random_strings]替换为实际的值!

1
2
3
4
5
6
cp /sdcard/Download/magisk_patched-[random_strings].img /sdcard/boot.img
dd if=/sdcard/boot.img of=/dev/block/boot
dd if=/sdcard/boot.img of=/dev/block/platform/ffe07000.emmc/boot
dd if=/sdcard/boot.img of=/dev/block/platform/ffe07000.emmc/by-name/boot
sync
exit

至此,我们已经完成了Boot的修补和替换。最后再执行:

1
adb reboot recovery

这时设备并不会进入自带的Recovery,而是稍等片刻后再次出现开机动画,并且安卓完全重启后Recovery也不会回滚。回到安卓通道,打开Magisk app,你会发现Magisk已经成功安装了。Enjoy! 😊🎉

注意:以后每次需要使用Magisk时,都必须先执行adb reboot recovery才可启用Magisk。

便捷刷入Magisk

不想手动输入繁杂的命令?我写了一个程序帮助在此机型上快速刷入Magisk!

EasyMagisk for seewoFC70ED

当前最新版本:1.2 (2023/12/8)

下载链接: 蓝奏云[密码7530] GitHub

警告:

  1. 本程序为 seewo FC70ED 机型专用,请在希沃内置PC下运行本程序,非同款机型请慎重使用!
  2. 请仔细阅读并严格按照本程序的提示进行操作!

注意:

  1. 请将 Platform-Tools 添加到环境变量,或将adb.exeAdbWinApi.dll置于程序目录中
  2. 请设置 Windows 中用于与安卓互通的 Realtek 网卡的 IPv4 地址为192.168.153.254、子网掩码为255.255.255.0
  3. 请开启安卓的USB调试开关
  4. 请将 Magisk APK 安装包置于程序目录中并重命名为Magisk.apk,以便自动安装。

写在最后

本文于2023/12/8第3次修正。

有一点需要重视的是,当应用请求超级用户权限时,因为希沃自带侧边栏的遮挡,需要手动在Magisk设置中关闭“点按劫持保护”。如果你使用LSPosed和希沃自带桌面,你会发现希沃自带桌面也不支持添加LSPosed寄生器快捷方式,需要手动安装LSPosed Manager,模块运行正常。这一款安卓不支持运行64位软件。

另外我这里有从希沃官方获取到的这台型号的安卓固件和Windows镜像,以及安卓通过Windows联网的软件,有需要的小伙伴可以联系我。

Credits

Thank seewo.

Thank topjohnwu for providing Magisk.

Thank lostnc for providing Android的adb指令单刷boot、apk的方法.