Fastboot.efi 测试

本文最后更新于 2025年8月19日 下午

Fastboot.efi 测试

fastboot.efi是qualcomm最近开源的一个在uefi的fastboot实现。本文编译并配置ABL2ESP在QRD720上面对其进行测试。

编译

  • 环境: Linux
  • 工具:rustup/cargo
    该程序同样采用rust编写,构建步骤同上一篇ABL2ESP
  1. 安装工具链
    国内安装工具链的时候推荐配置镜像源
    1
    2
    3
    4
    5
    # USTC Mirror
    export RUSTUP_DIST_SERVER=https://mirrors.ustc.edu.cn/rust-static
    export RUSTUP_UPDATE_ROOT=https://mirrors.ustc.edu.cn/rust-static/rustup
    # Install ARM64 Toolchain
    rustup target add aarch64-unknown-uefi
  2. 拉代码
    1
    2
    git clone https://github.com/qualcomm/fastboot.efi fastboot --depth=1
    cd fastboot
  3. 构建
    1
    cargo build --target aarch64-unknown-uefi

构建完成之后,可以在当前目录下找到./target/aarch64-unknown-uefi/debug/fastboot.efi的可执行文件,将该文件复制到/efi/boot/fastboot.efi,同时在grub.cfg添加menuentry。

1
2
3
4
menuentry "Linux Loader" {
set gfxpayload=keep
chainloader /EFI/BOOT/LinuxLoader.efi
}

测试

虽然README.md里面已经说了支持哪些东西,不过既然是自己玩还是都试试。
看起来不太能启动二进制格式的内核,只支持efi格式的内核。
启动二进制内核
aboot必须是v2格式:
启动v0 boot
不支持fastboot getvar,也正常。
测试getvar all
最后测试一下把小太阳的simpleinit塞到boot里面能不能启动
测试启动EFI Application

结语

貌似功能还不是很完善,比如只支持aboot v2,许多fastboot命令都不支持,也不支持启动raw内核,也没有图形界面。
要是之后高通狠心一下用这个替代掉abl就好了,这样就可以直接在fastboot启动任意efi application了,相比类似Project Aloha那种重新运行一遍uefi,直接运行一个efi application补全驱动去加载windows会更方便一些,不用patch一大堆驱动和引入一堆device-specific的内容。


Fastboot.efi 测试
https://kancy.life/2025/08/19/Fastboot_efi/
作者
Kancy Joe
发布于
2025年8月19日
许可协议