mirror of
https://github.com/chenxiaolong/avbroot.git
synced 2026-07-03 14:05:11 +02:00
3a3582ce4c
This commit replaces the previous approach of patching real OTAs with patching mock OTAs. The motivation for this change is to make it possible to test the system partition otacerts.zip patching without needing to download huge files. Adding the system image to the stripped OTAs would increase the file size by an order of magnitude. The mock OTAs are generated from a set of profiles defined in e2e.toml. The four included profiles are meant to mimic the OTAs used for testing before: * pixel_v4_gki ~= cheetah * pixel_v4_non_gki ~= bluejay * pixel_v3 ~= bramble * pixel_v2 ~= sunfish There is no equivalent profile for ossi because newer OnePlus devices no longer support custom signing keys properly. The mock OTAs are perfectly valid, structure and signature-wise. They just don't include any real partition data where possible. They are initially signed with a different set of keys to ensure that the changes made by the patching process are actually visible. With how small the mock OTAs are, testing every profile only takes about two seconds. Thus, the Github Actions workflow was adjusted to just run e2e in the same job as the build. Signed-off-by: Andrew Gunnerson <accounts+github@chiller3.com>
149 lines
3.9 KiB
TOML
149 lines
3.9 KiB
TOML
# Metadata used when generating OTAs. These values don't affect behavior at all.
|
|
[ota_info]
|
|
# Make sure generated OTAs aren't flashable on real devices.
|
|
device = "avbroot_fake_device"
|
|
fingerprint = "avbroot/avbroot_fake_device:14/UQ1A.240101.000/12345678:user/release-keys"
|
|
build_number = "UQ1A.240101.000"
|
|
incremental_version = "12345678"
|
|
android_version = "14"
|
|
sdk_version = "34"
|
|
security_patch_level = "2024-01-01"
|
|
|
|
# Google Pixel 7 Pro
|
|
# What's unique: init_boot (boot v4) + vendor_boot (vendor v4)
|
|
|
|
[profile.pixel_v4_gki.partitions.boot]
|
|
avb.signed = true
|
|
data.type = "boot"
|
|
data.version = "v4"
|
|
data.kernel = true
|
|
|
|
[profile.pixel_v4_gki.partitions.init_boot]
|
|
avb.signed = true
|
|
data.type = "boot"
|
|
data.version = "v4"
|
|
data.ramdisks = ["init"]
|
|
|
|
[profile.pixel_v4_gki.partitions.system]
|
|
avb.signed = false
|
|
data.type = "dm_verity"
|
|
data.content = "system_otacerts"
|
|
|
|
[profile.pixel_v4_gki.partitions.vbmeta]
|
|
avb.signed = true
|
|
data.type = "vbmeta"
|
|
data.deps = ["boot", "init_boot", "vendor_boot", "vbmeta_system"]
|
|
|
|
[profile.pixel_v4_gki.partitions.vbmeta_system]
|
|
avb.signed = true
|
|
data.type = "vbmeta"
|
|
data.deps = ["system"]
|
|
|
|
[profile.pixel_v4_gki.partitions.vendor_boot]
|
|
avb.signed = false
|
|
data.type = "boot"
|
|
data.version = "vendor_v4"
|
|
data.ramdisks = ["otacerts"]
|
|
|
|
[profile.pixel_v4_gki.hashes]
|
|
original = "f9477a35e3b60a495e49431c61e3897f11775f453a6a9897ead568357c963618"
|
|
patched = "eb045799a514300727357a5ec471f9b04b276991daf4fd72f17f840b2a7dd1b8"
|
|
|
|
# Google Pixel 6a
|
|
# What's unique: boot (boot v4, no ramdisk) + vendor_boot (vendor v4, 2 ramdisks)
|
|
|
|
[profile.pixel_v4_non_gki.partitions.boot]
|
|
avb.signed = true
|
|
data.type = "boot"
|
|
data.version = "v4"
|
|
data.kernel = true
|
|
|
|
[profile.pixel_v4_non_gki.partitions.system]
|
|
avb.signed = false
|
|
data.type = "dm_verity"
|
|
data.content = "system_otacerts"
|
|
|
|
[profile.pixel_v4_non_gki.partitions.vbmeta]
|
|
avb.signed = true
|
|
data.type = "vbmeta"
|
|
data.deps = ["boot", "vendor_boot", "vbmeta_system"]
|
|
|
|
[profile.pixel_v4_non_gki.partitions.vbmeta_system]
|
|
avb.signed = true
|
|
data.type = "vbmeta"
|
|
data.deps = ["system"]
|
|
|
|
[profile.pixel_v4_non_gki.partitions.vendor_boot]
|
|
avb.signed = false
|
|
data.type = "boot"
|
|
data.version = "vendor_v4"
|
|
data.ramdisks = ["init_and_otacerts", "dlkm"]
|
|
|
|
[profile.pixel_v4_non_gki.hashes]
|
|
original = "021b4510bc244f5f686fbff89eb2058ec9c96a2949c2fe8caa7750a78d593225"
|
|
patched = "5d1a36e2eb18d9d905ab397d4eaf2d7e7c94da6e7573afe3d4e4367841171fe3"
|
|
|
|
# Google Pixel 4a 5G
|
|
# What's unique: boot (boot v3) + vendor_boot (vendor v3)
|
|
|
|
[profile.pixel_v3.partitions.boot]
|
|
avb.signed = true
|
|
data.type = "boot"
|
|
data.version = "v3"
|
|
data.kernel = true
|
|
data.ramdisks = ["init"]
|
|
|
|
[profile.pixel_v3.partitions.system]
|
|
avb.signed = false
|
|
data.type = "dm_verity"
|
|
data.content = "system_otacerts"
|
|
|
|
[profile.pixel_v3.partitions.vbmeta]
|
|
avb.signed = true
|
|
data.type = "vbmeta"
|
|
data.deps = ["boot", "vendor_boot", "vbmeta_system"]
|
|
|
|
[profile.pixel_v3.partitions.vbmeta_system]
|
|
avb.signed = true
|
|
data.type = "vbmeta"
|
|
data.deps = ["system"]
|
|
|
|
[profile.pixel_v3.partitions.vendor_boot]
|
|
avb.signed = false
|
|
data.type = "boot"
|
|
data.version = "vendor_v3"
|
|
data.ramdisks = ["otacerts"]
|
|
|
|
[profile.pixel_v3.hashes]
|
|
original = "12221a69ff32e137d5f19b61f576fc6b33f0973c4a81da7722c640554ff4bc4e"
|
|
patched = "e2049c6eba6990fc5ce30130af470c134a5ccc42947dcdd398f737fbca7ae44a"
|
|
|
|
# Google Pixel 4a
|
|
# What's unique: boot (boot v2)
|
|
|
|
[profile.pixel_v2.partitions.boot]
|
|
avb.signed = false
|
|
data.type = "boot"
|
|
data.version = "v2"
|
|
data.kernel = true
|
|
data.ramdisks = ["init_and_otacerts"]
|
|
|
|
[profile.pixel_v2.partitions.system]
|
|
avb.signed = false
|
|
data.type = "dm_verity"
|
|
data.content = "system_otacerts"
|
|
|
|
[profile.pixel_v2.partitions.vbmeta]
|
|
avb.signed = true
|
|
data.type = "vbmeta"
|
|
data.deps = ["boot", "vbmeta_system"]
|
|
|
|
[profile.pixel_v2.partitions.vbmeta_system]
|
|
avb.signed = true
|
|
data.type = "vbmeta"
|
|
data.deps = ["system"]
|
|
|
|
[profile.pixel_v2.hashes]
|
|
original = "8b38d2d999b5b6e240e894f669e9e2643b3764c108d53bb7b02447da725e7c18"
|
|
patched = "16f56e3d02c08bb646d8d0694ce77a6edb02a613bbcff14b10ead4a448c3dc00"
|