https://github.com/qualcomm/fastboot.efi
https://github.com/qualcomm/fastboot.efi
Last synced: 6 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/qualcomm/fastboot.efi
- Owner: qualcomm
- License: bsd-3-clause-clear
- Created: 2025-05-03T02:47:40.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-10-30T08:46:18.000Z (8 months ago)
- Last Synced: 2025-10-30T10:28:09.662Z (8 months ago)
- Language: Rust
- Size: 72.3 KB
- Stars: 5
- Watchers: 0
- Forks: 4
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.txt
- Code of conduct: CODE-OF-CONDUCT.md
Awesome Lists containing this project
README
# Fastboot EFI application
*fastboot.efi* is an implementation of a subset of the fastboot protocol as a
standalone EFI application, for the purpose of enabling workflows using
*fastboot boot* for e.g. rapid kernel development in environments that doesn't
already provide fastboot support. It also has a more optimistic memory
allocation policy, allowing for booting large images.
*fastboot.efi* supports booting abootimg v2 and PE32+ (EFI) images.
Supported fastboot commands are **boot**, **continue**, and **reboot**.
## Building
Use *rustup* to install the aarch64-unknown-uefi target. Then build using:
```
cargo build --target aarch64-unknown-uefi
```
## Deploying
The resulting *fastboot.efi* can be loaded by normal means of loading EFI
applications, such as chainloading from systemd-boot/grub or placed as
*\EFI\boot\bootaa64.efi*.
### Generating disk image
To further simplify bootstrapping processes of a device for development
purposes, *fastboot.efi* can be packaged in an EFI System Partition (esp),
wrapped by a GPT header using the included repart.d configuration and the
following command:
```
systemd-repart fastboot-nvme-disk.img --empty=create --size=64M --definitions=repart.d --root=$PWD
```
or:
```
systemd-repart fastboot-ufs-disk.img --empty=create --size=512M --sector-size=4096 --definitions=repart.d --root=$PWD
```
This file can be written straight to a NVMe (or UFS) device, which upon booting
automatically enters fastboot mode.
*rawprogram-nvme.xml* and *rawprogram-ufs.xml* are included for convenient
application with common flash tools.
## *fastboot boot* an UKI (or other EFI application)
The standard *fastboot* host tool, will upon invoking *fastboot boot* wrap the
provided non-abootimg file in an abootimg format before downloading and booting
it on the device.
By using a "non-standard" *fastboot* host tool, that downloads the file
provided as is, *fastboot.efi* allows booting arbitrary EFI applications, such
as Unified Kernel Images (UKI).
## Contribute
With the goal of providing a convenient development environment for upstream
work, please do contribute to both implementation and documentation by opening
a Pull Request. Issues can be used to track issues with the implementation,
documentation, and device-specific issues.
See [CONTRIBUTING](CONTRIBUTING.md) for more information.
## License
Licensed under [BSD 3-Clause Clear License](LICENSE.txt).