fwupd/plugins/android-boot
Richard Hughes c4b7f42e43 Only compress one version of the builtin-quirks
Saving the quirks in the GResource section worked well, but it made the build
system very complicated and also meant the .data section was duplicated in
both `fwupd` and `fwupdtool` -- negating a lot of the hard-fought savings.

Simplify this feature so that we just `cat` all the quirk files together, then
gzip them into a single file. This means that at startup fwupd only needs to
check the mtime of one file, and weirdly it's actually faster to load a smaller
compressed file from disk that it is to load multiple uncompressed files.
2022-09-27 12:44:04 +01:00
..
android-boot.quirk plugins: android-boot: new plugin 2022-09-05 17:59:11 +01:00
fu-android-boot-device.c android-boot: set default version format 2022-09-25 10:53:14 +01:00
fu-android-boot-device.h plugins: android-boot: new plugin 2022-09-05 17:59:11 +01:00
fu-plugin-android-boot.c plugins: android-boot: new plugin 2022-09-05 17:59:11 +01:00
meson.build Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
README.md plugins: android-boot: new plugin 2022-09-05 17:59:11 +01:00

Android Bootloaders

Introduction

This plugin is used to update hardware that use partitions to store their firmware on.

Firmware Format

The daemon will decompress the cabinet archive and extract a firmware blob as a Raw Disk File in the IMG format. The firmware blob will be flashed to the partition. Fastboot devices are similar but are flashed in fastboot mode using an external device. This plugin is similar but can be used to flash from the device itself rather than external device.

This plugin supports the following protocol ID:

  • com.google.android_boot

GUID Generation

The GUID is generated by combining the partition UUID of the block device, its label and optionally boot slot when using an Android A/B partitioning scheme, e.g.

  • DRIVE\UUID_c49183ed-aaec-9bf5-760a-66330fbcffc1&LABEL_label&SLOT_a
  • DRIVE\UUID_c49183ed-aaec-9bf5-760a-66330fbcffc1&LABEL_label
  • DRIVE\UUID_c49183ed-aaec-9bf5-760a-66330fbcffc1

Update Behavior

The block device is erased in chunks, written and then read back to verify.

Quirk Use

This plugin uses the following plugin-specific quirk:

AndroidBootVersionProperty

Property to parse from /proc/cmdline to retrieve the bootloader version.

Since: 1.8.5

AndroidBootPartitionMaxSize

Maximum size the firmware may use of a partition.

Since: 1.8.5

Vendor ID Security

The vendor ID is set through the android-boot.quirk file.

External Interface Access

This plugin requires read/write access to /dev/block.