From 9afc0d534919b3ead51b4ee00b360b9f4a4914dc Mon Sep 17 00:00:00 2001 From: Bowgo Tsai Date: Thu, 27 Jul 2017 21:22:14 +0800 Subject: [PATCH] treble_common.mk: add the vbmeta.img to disable verification AVB should be disabled for Treble VTS. Otherwise, OEM devices cannot boot the generic system.img provided by Google. Bug: 64055917 Test: Compiles and boot a device with the vbmeta.img Change-Id: I0eaae7beebc8b901d0b4766c2cdc34a27ad02b59 --- core/Makefile | 8 ++++++++ target/product/treble_common.mk | 10 ++++++++++ 2 files changed, 18 insertions(+) diff --git a/core/Makefile b/core/Makefile index af3c4cb9d..966c1349f 100644 --- a/core/Makefile +++ b/core/Makefile @@ -2013,6 +2013,14 @@ $(INSTALLED_VBMETAIMAGE_TARGET): $(AVBTOOL) $(INSTALLED_BOOTIMAGE_TARGET) $(INST vbmetaimage-nodeps: $(build-vbmetaimage-target) +else ifeq (true,$(BOARD_BUILD_DISABLED_VBMETAIMAGE)) +BUILT_DISABLED_VBMETAIMAGE := $(PRODUCT_OUT)/vbmeta.img + +INSTALLED_VBMETAIMAGE_TARGET := $(BUILT_DISABLED_VBMETAIMAGE) +$(INSTALLED_VBMETAIMAGE_TARGET): $(AVBTOOL) + $(hide) $(AVBTOOL) make_vbmeta_image \ + --flag 2 --padding_size 4096 --output $@ + endif # BOARD_AVB_ENABLE # ----------------------------------------------------------------- diff --git a/target/product/treble_common.mk b/target/product/treble_common.mk index 52e244161..52af7ea95 100644 --- a/target/product/treble_common.mk +++ b/target/product/treble_common.mk @@ -214,3 +214,13 @@ PRODUCT_PACKAGES += \ # Android O. PRODUCT_PACKAGES += \ netutils-wrapper-1.0 + +# Android Verified Boot (AVB): +# Builds a special vbmeta.img that disables AVB verification. +# Otherwise, AVB will prevent the device from booting the generic system.img. +# Also checks that BOARD_AVB_ENABLE is not set, to prevent adding verity +# metadata into system.img. +ifeq ($(BOARD_AVB_ENABLE),true) +$(error BOARD_AVB_ENABLE cannot be set for Treble GSI) +endif +BOARD_BUILD_DISABLED_VBMETAIMAGE := true