Add "flasher flash_vbmeta" support for heimdall devices (MR 1936)

This commit is contained in:
HenriDellal 2020-05-13 22:32:49 +03:00 committed by Oliver Smith
parent 40a328388d
commit 4e3a2d6923
No known key found for this signature in database
GPG Key ID: 5AE7F5513E0885CB
4 changed files with 13 additions and 3 deletions

View File

@ -322,6 +322,7 @@ deviceinfo_attributes = [
"flash_heimdall_partition_kernel",
"flash_heimdall_partition_initfs",
"flash_heimdall_partition_system",
"flash_heimdall_partition_vbmeta",
"flash_fastboot_partition_kernel",
"flash_fastboot_partition_system",
"flash_fastboot_partition_vbmeta",
@ -473,7 +474,7 @@ flashers = {
# Some Samsung devices need a 'boot.img' file, just like the one generated
# fastboot compatible devices. Example: s7562, n7100
"heimdall-bootimg": {
"depends": ["heimdall"],
"depends": ["heimdall", "avbtool"],
"actions": {
"list_devices": [["heimdall", "detect"]],
"flash_rootfs": [
@ -482,6 +483,12 @@ flashers = {
"flash_kernel": [
["heimdall_wait_for_device.sh"],
["heimdall", "flash", "--$PARTITION_KERNEL", "$BOOT/boot.img-$FLAVOR"]],
"flash_vbmeta": [
["avbtool", "make_vbmeta_image", "--flags", "2",
"--padding_size", "$FLASH_PAGESIZE",
"--output", "/vbmeta.img"],
["heimdall", "flash", "--$PARTITION_VBMETA", "/vbmeta.img"],
["rm", "-f", "/vbmeta.img"]]
},
},
"adb": {

View File

@ -37,6 +37,7 @@ def run(args, action, flavor=None):
raise RuntimeError("Your device does not have 'vbmeta' partition"
" specified; set"
" 'deviceinfo_flash_fastboot_partition_vbmeta'"
" or 'deviceinfo_flash_heimdall_partition_vbmeta'"
" in deviceinfo file. See also:"
" <https://wiki.postmarketos.org/wiki/"
"Deviceinfo_reference>")

View File

@ -16,7 +16,7 @@ def variables(args, flavor, method):
else:
_partition_kernel = args.deviceinfo["flash_heimdall_partition_kernel"] or "KERNEL"
_partition_system = args.deviceinfo["flash_heimdall_partition_system"] or "SYSTEM"
_partition_vbmeta = None
_partition_vbmeta = args.deviceinfo["flash_heimdall_partition_vbmeta"] or None
if "partition" in args and args.partition:
# Only one of operations is done at same time so it doesn't matter sharing the arg

View File

@ -438,7 +438,9 @@ def install_system_image(args):
" change the partition layout on your device.)")
# if current flasher supports vbmeta and partition is explicitly spcified in deviceinfo
if "flash_vbmeta" in flasher_actions and args.deviceinfo["flash_fastboot_partition_vbmeta"]:
if "flash_vbmeta" in flasher_actions and \
(args.deviceinfo["flash_fastboot_partition_vbmeta"] or
args.deviceinfo["flash_heimdall_partition_vbmeta"]):
logging.info("* pmbootstrap flasher flash_vbmeta")
logging.info(" Flashes vbmeta image with verification disabled flag.")