1# Dauntless 2BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/dauntless/sepolicy 3ifneq ($(wildcard vendor/google_nos),) 4PRODUCT_SOONG_NAMESPACES += vendor/google_nos/init/dauntless 5 6PRODUCT_PACKAGES += \ 7 citadeld \ 8 citadel_updater \ 9 android.hardware.weaver-service.citadel \ 10 android.hardware.authsecret-service.citadel \ 11 android.hardware.oemlock-service.citadel \ 12 init_citadel \ 13 android.hardware.strongbox_keystore.xml \ 14 android.hardware.security.keymint-service.citadel \ 15 dump_gsc.sh 16 17# USERDEBUG ONLY: Install test packages 18PRODUCT_PACKAGES_DEBUG += citadel_integration_tests \ 19 pwntest \ 20 nugget_targeted_tests \ 21 CitadelProvision \ 22 nugget_aidl_test_weaver 23 24# Assign default value for RELEASE_GOOGLE_DAUNTLESS_DIR if no trunk flags support 25RELEASE_GOOGLE_DAUNTLESS_DIR ?= vendor/google_nos/prebuilts/dauntless 26 27# The production Dauntless firmware will be of flavors evt and d3m2. 28# There are also several flavors of pre-release chips. Each flavor 29# (production and pre-release) requires the firmware to be signed differently. 30DAUNTLESS_FIRMWARE_SIZE := 1048576 31 32# The nearly-production Dauntless chips are "proto1.1" 33ifneq (,$(wildcard $(RELEASE_GOOGLE_DAUNTLESS_DIR)/proto11.ec.bin)) 34ifneq ($(DAUNTLESS_FIRMWARE_SIZE), $(shell stat -c "%s" $(RELEASE_GOOGLE_DAUNTLESS_DIR)/proto11.ec.bin)) 35$(error GSC firmware size check fail) 36endif 37PRODUCT_COPY_FILES += \ 38 $(RELEASE_GOOGLE_DAUNTLESS_DIR)/proto11.ec.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/dauntless/proto11.ec.bin 39$(call dist-for-goals,droid,$(RELEASE_GOOGLE_DAUNTLESS_DIR)/proto11.ec.bin) 40else 41$(error GSC firmware not found in $(RELEASE_GOOGLE_DAUNTLESS_DIR)) 42endif 43 44# The production Dauntless chips are "evt" 45ifneq (,$(wildcard $(RELEASE_GOOGLE_DAUNTLESS_DIR)/evt.ec.bin)) 46ifneq ($(DAUNTLESS_FIRMWARE_SIZE), $(shell stat -c "%s" $(RELEASE_GOOGLE_DAUNTLESS_DIR)/evt.ec.bin)) 47$(error GSC firmware size check fail) 48endif 49PRODUCT_COPY_FILES += \ 50 $(RELEASE_GOOGLE_DAUNTLESS_DIR)/evt.ec.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/dauntless/evt.ec.bin 51$(call dist-for-goals,droid,$(RELEASE_GOOGLE_DAUNTLESS_DIR)/evt.ec.bin) 52else 53$(error GSC firmware not found in $(RELEASE_GOOGLE_DAUNTLESS_DIR)) 54endif 55 56# New 2023 production Dauntless chips are "d3m2" 57ifneq (,$(wildcard $(RELEASE_GOOGLE_DAUNTLESS_DIR)/d3m2.ec.bin)) 58ifneq ($(DAUNTLESS_FIRMWARE_SIZE), $(shell stat -c "%s" $(RELEASE_GOOGLE_DAUNTLESS_DIR)/d3m2.ec.bin)) 59$(error GSC firmware size check fail) 60endif 61PRODUCT_COPY_FILES += \ 62 $(RELEASE_GOOGLE_DAUNTLESS_DIR)/d3m2.ec.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/dauntless/d3m2.ec.bin 63$(call dist-for-goals,droid,$(RELEASE_GOOGLE_DAUNTLESS_DIR)/d3m2.ec.bin) 64else 65$(error GSC firmware not found in $(RELEASE_GOOGLE_DAUNTLESS_DIR)) 66endif 67 68# Intermediate image artifacts are published, but aren't included in /vendor/firmware/dauntless 69# in PRODUCT_COPY_FILES 70# This is because intermediate images aren't needed on user devices, but the published artifact 71# is useful for flashstation purposes. 72 73# proto11 chips need an intermediate image prior to upgrading to newever versions of the firmware 74ifneq (,$(wildcard vendor/google_nos/prebuilts/dauntless/intermediate_images/proto11_intermediate.ec.bin)) 75ifneq ($(DAUNTLESS_FIRMWARE_SIZE), $(shell stat -c "%s" vendor/google_nos/prebuilts/dauntless/intermediate_images/proto11_intermediate.ec.bin)) 76$(error GSC firmware size check fail) 77endif 78$(call dist-for-goals,droid,vendor/google_nos/prebuilts/dauntless/intermediate_images/proto11_intermediate.ec.bin) 79endif 80# evt chips need an intermediate image prior to upgrading to newever versions of the firmware 81ifneq (,$(wildcard vendor/google_nos/prebuilts/dauntless/intermediate_images/evt_intermediate.ec.bin)) 82ifneq ($(DAUNTLESS_FIRMWARE_SIZE), $(shell stat -c "%s" vendor/google_nos/prebuilts/dauntless/intermediate_images/evt_intermediate.ec.bin)) 83$(error GSC firmware size check fail) 84endif 85$(call dist-for-goals,droid,vendor/google_nos/prebuilts/dauntless/intermediate_images/evt_intermediate.ec.bin) 86endif 87# d3m2 chips need an intermediate image prior to upgrading to newever versions of the firmware 88ifneq (,$(wildcard vendor/google_nos/prebuilts/dauntless/intermediate_images/d3m2_intermediate.ec.bin)) 89ifneq ($(DAUNTLESS_FIRMWARE_SIZE), $(shell stat -c "%s" vendor/google_nos/prebuilts/dauntless/intermediate_images/d3m2_intermediate.ec.bin)) 90$(error GSC firmware size check fail) 91endif 92$(call dist-for-goals,droid,vendor/google_nos/prebuilts/dauntless/intermediate_images/d3m2_intermediate.ec.bin) 93endif 94 95endif # $(wildcard vendor/google_nos) 96