1# BoardConfigGsiCommon.mk
2#
3# Common compile-time definitions for GSI
4# Builds upon the mainline config.
5#
6# See device/generic/common/README.md for more details.
7#
8
9include build/make/target/board/BoardConfigMainlineCommon.mk
10
11TARGET_NO_KERNEL := true
12
13# This flag is set by mainline but isn't desired for GSI.
14BOARD_USES_SYSTEM_OTHER_ODEX :=
15
16# system.img is ext4/erofs and non-sparsed.
17GSI_FILE_SYSTEM_TYPE ?= ext4
18BOARD_SYSTEMIMAGE_FILE_SYSTEM_TYPE := $(GSI_FILE_SYSTEM_TYPE)
19TARGET_USERIMAGES_SPARSE_EXT_DISABLED := true
20TARGET_USERIMAGES_SPARSE_EROFS_DISABLED := true
21
22# Enable system_dlkm image for creating a symlink in GSI to support
23# the devices with system_dlkm partition
24BOARD_USES_SYSTEM_DLKMIMAGE := true
25BOARD_SYSTEM_DLKMIMAGE_FILE_SYSTEM_TYPE := ext4
26TARGET_COPY_OUT_SYSTEM_DLKM := system_dlkm
27
28# GSI also includes make_f2fs to support userdata parition in f2fs
29# for some devices
30TARGET_USERIMAGES_USE_F2FS := true
31
32# Enable dynamic system image size and reserved 64MB in it.
33BOARD_SYSTEMIMAGE_PARTITION_RESERVED_SIZE := 67108864
34
35# GSI forces product and system_ext packages to /system for now.
36TARGET_COPY_OUT_PRODUCT := system/product
37TARGET_COPY_OUT_SYSTEM_EXT := system/system_ext
38BOARD_PRODUCTIMAGE_FILE_SYSTEM_TYPE :=
39BOARD_SYSTEM_EXTIMAGE_FILE_SYSTEM_TYPE :=
40
41# Creates metadata partition mount point under root for
42# the devices with metadata parition
43BOARD_USES_METADATA_PARTITION := true
44
45# Android Verified Boot (AVB):
46#   Set the rollback index to zero, to prevent the device bootloader from
47#   updating the last seen rollback index in the tamper-evident storage.
48BOARD_AVB_ROLLBACK_INDEX := 0
49
50# The chained vbmeta settings for boot images.
51BOARD_AVB_BOOT_KEY_PATH := external/avb/test/data/testkey_rsa4096.pem
52BOARD_AVB_BOOT_ALGORITHM := SHA256_RSA4096
53BOARD_AVB_BOOT_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP)
54BOARD_AVB_BOOT_ROLLBACK_INDEX_LOCATION := 2
55
56# Enable AVB chained partition for system.
57# https://android.googlesource.com/platform/external/avb/+/master/README.md
58BOARD_AVB_SYSTEM_KEY_PATH := external/avb/test/data/testkey_rsa2048.pem
59BOARD_AVB_SYSTEM_ALGORITHM := SHA256_RSA2048
60BOARD_AVB_SYSTEM_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP)
61BOARD_AVB_SYSTEM_ROLLBACK_INDEX_LOCATION := 1
62
63# Using sha256 for dm-verity partitions. b/156162446
64BOARD_AVB_SYSTEM_ADD_HASHTREE_FOOTER_ARGS += --hash_algorithm sha256
65
66ifdef BUILDING_GSI
67# super.img spec for GSI targets
68BOARD_SUPER_PARTITION_SIZE := 3229614080
69BOARD_SUPER_PARTITION_GROUPS := gsi_dynamic_partitions
70BOARD_GSI_DYNAMIC_PARTITIONS_PARTITION_LIST := system
71BOARD_GSI_DYNAMIC_PARTITIONS_SIZE := 3221225472
72endif
73
74# TODO(b/123695868, b/146149698):
75#     This flag is set by mainline but isn't desired for GSI
76BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR :=
77
78# GSI specific System Properties
79ifneq (,$(filter userdebug eng,$(TARGET_BUILD_VARIANT)))
80TARGET_SYSTEM_EXT_PROP := build/make/target/board/gsi_system_ext.prop
81else
82TARGET_SYSTEM_EXT_PROP := build/make/target/board/gsi_system_ext_user.prop
83endif
84
85# Set this to create /cache mount point for non-A/B devices that mounts /cache.
86# The partition size doesn't matter, just to make build pass.
87BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE := ext4
88BOARD_CACHEIMAGE_PARTITION_SIZE := 16777216
89
90# Setup a vendor image to let PRODUCT_VENDOR_PROPERTIES does not affect GSI
91BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE := ext4
92