可能是擎云 W510 下料太足外加散热设计有问题,让用户和妙妙牌都觉得自己亏了,从 W515 开始,妙妙牌选择用大号手机和机顶盒芯片拉皮成台式机给信创用户吃蔬菜棒。为了之后备查,本文主要记载这些大号手机启动链相关的内容,不感兴趣的朋友可以点出去了。
启动链及安全
- 芯片启动后内部 BootROM 会先加载 XLoader,训练内存并初始化电源管理,之后解密 secimg 格式的下一阶段引导器(ATF BL2),从下一阶段起所有阶段都在硬盘上,一旦损坏无法自行恢复。
- XLoader 根据 AOSP 的 boot_control 相同的逻辑拉起BL2,BL2 拉起 BL31
- BL31 初始化安全模块,初始化协处理器,并拉起 BL32 执行可信 OS 的初始化,之后加载假装成 Android 分区的百敖 UEFI
- 百敖 UEFI 正常加载 Grub 和下一阶段的操作系统内核。
简单来说,就是机器以 Android 的逻辑加载到 UEFI 之前,然后拿百敖的 UEFI 替换掉 Android 的系统继续启动。另外更新逻辑也没有使用正常的 UEFI Capsule Update,而是走检测特定分区下是否有更新文件,之后执行 UpdateFirmwareDxe 更新。
另外,这些机器的内核也是由 AOSP/ACK 内核修改而来,且华为的交付内容中部分资料以 .s 形式汇编给出,多方安全编译内核这一块。
机型差异
在 W515 平台上,虚拟化功能由 BL32 的 HHEE 虚拟机监视器提供,内核以 EL1 等级加载。W515x 之后的平台内核以 EL2 等级加载。此外,W515x以后的平台整个启动链中的所有组件,包含 EFI,均由安全模块加密,运行时即时解密读取(可能是怕被 Taszk 再打一次吧),EFI 内容可以通过关闭安全启动后拿 EFI App 扫内存提取残留的运行时资料恢复出一部分。
一些有意思的残留内容
- 鸿蒙初代机型的 UEFI 反倒相对信创线更为干净,Android 启动垫片更少(但是非常抽象的用 AndroidBootDxe 加载系统),且正确支持了 NVMe 启动(可能是因为鸿蒙机器芯片是重新投片制造的,信创线只配用手机废片),信创线只有大号机顶盒 W525 支持 NVMe 启动。
- 信创机型使用基带坏掉的手机芯片开发,部分甚至存在核心坏掉的情况(W515x 有各种 bin 过的版本,甚至还有6核版本)
- 同名芯片可能不一定是同一块(9000c 有两种实际芯片,分别基于 90A0 和 90B0,其中台式机两种都有,笔记本只有高配版,但是有切成 6 核的),经典你也是 920 环节。
- 这个 UEFI 和 m2 接口的 UFS 固体硬盘应该说都是恶意合规产物。
本文内容由实际硬件和固件分析获得,由于妙妙牌后期机型固件加密,信息可能不够准确,若您有更准确的信息欢迎斧正。