• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#
2# Copyright 2017 The Android Open-Source Project
3#
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8#      http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15#
16
17#
18# Common BoardConfig for all supported architectures.
19#
20
21# TODO(b/170639028): Back up TARGET_NO_BOOTLOADER
22__TARGET_NO_BOOTLOADER := $(TARGET_NO_BOOTLOADER)
23include build/make/target/board/BoardConfigMainlineCommon.mk
24TARGET_NO_BOOTLOADER := $(__TARGET_NO_BOOTLOADER)
25
26TARGET_BOOTLOADER_BOARD_NAME := cutf
27
28BOARD_SYSTEMIMAGE_FILE_SYSTEM_TYPE := $(TARGET_RO_FILE_SYSTEM_TYPE)
29
30# Boot partition size: 32M
31# This is only used for OTA update packages. The image size on disk
32# will not change (as is it not a filesystem.)
33BOARD_BOOTIMAGE_PARTITION_SIZE := 67108864
34ifdef TARGET_DEDICATED_RECOVERY
35BOARD_RECOVERYIMAGE_PARTITION_SIZE := 67108864
36endif
37BOARD_VENDOR_BOOTIMAGE_PARTITION_SIZE := 67108864
38
39# Build a separate vendor.img partition
40BOARD_USES_VENDORIMAGE := true
41BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE := $(TARGET_RO_FILE_SYSTEM_TYPE)
42
43BOARD_USES_METADATA_PARTITION := true
44
45# Build a separate product.img partition
46BOARD_USES_PRODUCTIMAGE := true
47BOARD_PRODUCTIMAGE_FILE_SYSTEM_TYPE := $(TARGET_RO_FILE_SYSTEM_TYPE)
48
49# Build a separate system_ext.img partition
50BOARD_USES_SYSTEM_EXTIMAGE := true
51BOARD_SYSTEM_EXTIMAGE_FILE_SYSTEM_TYPE := $(TARGET_RO_FILE_SYSTEM_TYPE)
52TARGET_COPY_OUT_SYSTEM_EXT := system_ext
53
54# Build a separate odm.img partition
55BOARD_USES_ODMIMAGE := true
56BOARD_ODMIMAGE_FILE_SYSTEM_TYPE := $(TARGET_RO_FILE_SYSTEM_TYPE)
57TARGET_COPY_OUT_ODM := odm
58
59# Build a separate vendor_dlkm partition
60BOARD_USES_VENDOR_DLKMIMAGE := true
61BOARD_VENDOR_DLKMIMAGE_FILE_SYSTEM_TYPE := ext4
62TARGET_COPY_OUT_VENDOR_DLKM := vendor_dlkm
63
64# Build a separate odm_dlkm partition
65BOARD_USES_ODM_DLKMIMAGE := true
66BOARD_ODM_DLKMIMAGE_FILE_SYSTEM_TYPE := ext4
67TARGET_COPY_OUT_ODM_DLKM := odm_dlkm
68
69# FIXME: Remove this once we generate the vbmeta digest correctly
70BOARD_AVB_MAKE_VBMETA_IMAGE_ARGS += --flag 2
71
72# Enable chained vbmeta for system image mixing
73BOARD_AVB_VBMETA_SYSTEM := product system system_ext
74BOARD_AVB_VBMETA_SYSTEM_KEY_PATH := external/avb/test/data/testkey_rsa2048.pem
75BOARD_AVB_VBMETA_SYSTEM_ALGORITHM := SHA256_RSA2048
76BOARD_AVB_VBMETA_SYSTEM_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP)
77BOARD_AVB_VBMETA_SYSTEM_ROLLBACK_INDEX_LOCATION := 1
78
79# Enable chained vbmeta for boot images
80BOARD_AVB_BOOT_KEY_PATH := external/avb/test/data/testkey_rsa2048.pem
81BOARD_AVB_BOOT_ALGORITHM := SHA256_RSA2048
82BOARD_AVB_BOOT_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP)
83BOARD_AVB_BOOT_ROLLBACK_INDEX_LOCATION := 2
84
85# Using sha256 for dm-verity partitions. b/178983355
86# system, system_other, product.
87TARGET_AVB_SYSTEM_HASHTREE_ALGORITHM ?= sha256
88TARGET_AVB_SYSTEM_OTHER_HASHTREE_ALGORITHM ?= sha256
89TARGET_AVB_PRODUCT_HASHTREE_ALGORITHM ?= sha256
90# Using blake2b-256 for system_ext. This give us move coverage of the
91# algorithms as we otherwise don't have a device using blake2b-256.
92TARGET_AVB_SYSTEM_EXT_HASHTREE_ALGORITHM ?= blake2b-256
93
94BOARD_AVB_SYSTEM_ADD_HASHTREE_FOOTER_ARGS += --hash_algorithm $(TARGET_AVB_SYSTEM_HASHTREE_ALGORITHM)
95BOARD_AVB_SYSTEM_OTHER_ADD_HASHTREE_FOOTER_ARGS += --hash_algorithm $(TARGET_AVB_SYSTEM_OTHER_HASHTREE_ALGORITHM)
96BOARD_AVB_SYSTEM_EXT_ADD_HASHTREE_FOOTER_ARGS += --hash_algorithm $(TARGET_AVB_SYSTEM_EXT_HASHTREE_ALGORITHM)
97BOARD_AVB_PRODUCT_ADD_HASHTREE_FOOTER_ARGS += --hash_algorithm $(TARGET_AVB_PRODUCT_HASHTREE_ALGORITHM)
98
99# vendor and odm.
100BOARD_AVB_VENDOR_ADD_HASHTREE_FOOTER_ARGS += --hash_algorithm sha256
101BOARD_AVB_ODM_ADD_HASHTREE_FOOTER_ARGS += --hash_algorithm sha256
102
103# vendor_dlkm and odm_dlkm.
104BOARD_AVB_VENDOR_DLKM_ADD_HASHTREE_FOOTER_ARGS += --hash_algorithm sha256
105BOARD_AVB_ODM_DLKM_ADD_HASHTREE_FOOTER_ARGS += --hash_algorithm sha256
106
107BOARD_USES_GENERIC_AUDIO := false
108USE_CAMERA_STUB := true
109
110# Hardware composer configuration
111TARGET_USES_HWC2 := true
112
113# The compiler will occasionally generate movaps, etc.
114BOARD_MALLOC_ALIGNMENT := 16
115
116# Disable sparse on all filesystem images
117TARGET_USERIMAGES_SPARSE_EROFS_DISABLED := true
118TARGET_USERIMAGES_SPARSE_EXT_DISABLED := true
119TARGET_USERIMAGES_SPARSE_F2FS_DISABLED := true
120
121# Make the userdata partition 6G to accommodate ASAN and CTS
122BOARD_USERDATAIMAGE_PARTITION_SIZE := $(TARGET_USERDATAIMAGE_PARTITION_SIZE)
123BOARD_USERDATAIMAGE_FILE_SYSTEM_TYPE := $(TARGET_USERDATAIMAGE_FILE_SYSTEM_TYPE)
124TARGET_USERIMAGES_USE_F2FS := true
125
126BOARD_GPU_DRIVERS := virgl
127
128# Enable goldfish's encoder.
129# TODO(b/113617962) Remove this if we decide to use
130# device/generic/opengl-transport to generate the encoder
131BUILD_EMULATOR_OPENGL_DRIVER := true
132BUILD_EMULATOR_OPENGL := true
133
134# Minimum size of the final bootable disk image: 10G
135# GCE will pad disk images out to 10G. Our disk images should be at least as
136# big to avoid warnings about partition table oddities.
137BOARD_DISK_IMAGE_MINIMUM_SIZE := 10737418240
138
139BOARD_BOOTIMAGE_MAX_SIZE := 8388608
140BOARD_SYSLOADER_MAX_SIZE := 7340032
141# TODO(san): See if we can get rid of this.
142BOARD_FLASH_BLOCK_SIZE := 512
143
144USE_OPENGL_RENDERER := true
145
146# Wifi.
147BOARD_WLAN_DEVICE           := wlan0
148BOARD_HOSTAPD_DRIVER        := NL80211
149BOARD_WPA_SUPPLICANT_DRIVER := NL80211
150BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_simulated_cf
151WPA_SUPPLICANT_VERSION      := VER_0_8_X
152WIFI_DRIVER_FW_PATH_PARAM   := "/dev/null"
153WIFI_DRIVER_FW_PATH_STA     := "/dev/null"
154WIFI_DRIVER_FW_PATH_AP      := "/dev/null"
155
156# vendor sepolicy
157BOARD_VENDOR_SEPOLICY_DIRS += device/google/cuttlefish/shared/sepolicy/vendor
158BOARD_VENDOR_SEPOLICY_DIRS += device/google/cuttlefish/shared/sepolicy/vendor/google
159
160BOARD_SEPOLICY_DIRS += system/bt/vendor_libs/linux/sepolicy
161
162# Avoid multiple includes of sepolicy already included by Pixel experience.
163ifneq ($(filter aosp_% %_auto %_go_phone trout_% %_tv,$(PRODUCT_NAME)),)
164
165SYSTEM_EXT_PRIVATE_SEPOLICY_DIRS += hardware/google/pixel-sepolicy/flipendo
166
167endif
168
169# product sepolicy, allow other layers to append
170PRODUCT_PRIVATE_SEPOLICY_DIRS += device/google/cuttlefish/shared/sepolicy/product/private
171# PRODUCT_PUBLIC_SEPOLICY_DIRS += device/google/cuttlefish/shared/sepolicy/product/public
172# system_ext sepolicy
173SYSTEM_EXT_PRIVATE_SEPOLICY_DIRS += device/google/cuttlefish/shared/sepolicy/system_ext/private
174# SYSTEM_EXT_PUBLIC_SEPOLICY_DIRS += device/google/cuttlefish/shared/sepolicy/system_ext/public
175
176STAGEFRIGHT_AVCENC_CFLAGS := -DANDROID_GCE
177
178INIT_BOOTCHART := true
179
180# Settings for dhcpcd-6.8.2.
181DHCPCD_USE_IPV6 := no
182DHCPCD_USE_DBUS := no
183DHCPCD_USE_SCRIPT := yes
184
185
186TARGET_RECOVERY_PIXEL_FORMAT := ABGR_8888
187TARGET_RECOVERY_UI_LIB := librecovery_ui_cuttlefish
188TARGET_RECOVERY_FSTAB ?= device/google/cuttlefish/shared/config/fstab.f2fs
189
190BOARD_SUPER_PARTITION_SIZE := 7516192768  # 7GiB
191BOARD_SUPER_PARTITION_GROUPS := google_system_dynamic_partitions google_vendor_dynamic_partitions
192BOARD_GOOGLE_SYSTEM_DYNAMIC_PARTITIONS_PARTITION_LIST := product system system_ext
193BOARD_GOOGLE_SYSTEM_DYNAMIC_PARTITIONS_SIZE := 5771362304  # 5.375GiB
194BOARD_GOOGLE_VENDOR_DYNAMIC_PARTITIONS_PARTITION_LIST := odm vendor vendor_dlkm odm_dlkm
195# 1404MiB, reserve 4MiB for dynamic partition metadata
196BOARD_GOOGLE_VENDOR_DYNAMIC_PARTITIONS_SIZE := 1472200704
197BOARD_BUILD_SUPER_IMAGE_BY_DEFAULT := true
198BOARD_SUPER_IMAGE_IN_UPDATE_PACKAGE := true
199TARGET_RELEASETOOLS_EXTENSIONS := device/google/cuttlefish/shared
200
201# Generate a partial ota update package for partitions in vbmeta_system
202BOARD_PARTIAL_OTA_UPDATE_PARTITIONS_LIST := product system system_ext vbmeta_system
203
204BOARD_BOOTLOADER_IN_UPDATE_PACKAGE := true
205BOARD_RAMDISK_USE_LZ4 := true
206
207# To see full logs from init, disable ratelimiting.
208# The default is 5 messages per second amortized, with a burst of up to 10.
209BOARD_KERNEL_CMDLINE += printk.devkmsg=on
210BOARD_KERNEL_CMDLINE += firmware_class.path=/vendor/etc/
211
212BOARD_KERNEL_CMDLINE += init=/init
213BOARD_BOOTCONFIG += androidboot.hardware=cutf_cvm
214
215# TODO(b/179489292): Remove once kfence is enabled everywhere
216BOARD_KERNEL_CMDLINE += kfence.sample_interval=500
217
218BOARD_KERNEL_CMDLINE += loop.max_part=7
219
220# TODO(b/182417593): Move all of these module options to modules.options
221# TODO(b/176860479): Remove once goldfish and cuttlefish share a wifi implementation
222BOARD_BOOTCONFIG += kernel.mac80211_hwsim.radios=0
223# TODO(b/175151042): Remove once we are using virtio-snd on cuttlefish
224BOARD_BOOTCONFIG += kernel.snd-hda-intel.enable=0
225# Reduce slab size usage from virtio vsock to reduce slab fragmentation
226BOARD_BOOTCONFIG += \
227    kernel.vmw_vsock_virtio_transport_common.virtio_transport_max_vsock_pkt_buf_size=16384
228
229ifeq ($(TARGET_USERDATAIMAGE_FILE_SYSTEM_TYPE),f2fs)
230BOARD_BOOTCONFIG += androidboot.fstab_suffix=f2fs
231endif
232
233ifeq ($(TARGET_USERDATAIMAGE_FILE_SYSTEM_TYPE),ext4)
234BOARD_BOOTCONFIG += androidboot.fstab_suffix=ext4
235endif
236
237BOARD_INCLUDE_DTB_IN_BOOTIMG := true
238BOARD_BOOT_HEADER_VERSION := 4
239BOARD_MKBOOTIMG_ARGS += --header_version $(BOARD_BOOT_HEADER_VERSION)
240PRODUCT_COPY_FILES += \
241    device/google/cuttlefish/dtb.img:dtb.img \
242    device/google/cuttlefish/required_images:required_images \
243
244BOARD_BUILD_SYSTEM_ROOT_IMAGE := false
245
246# Cuttlefish doesn't support ramdump feature yet, exclude the ramdump debug tool.
247EXCLUDE_BUILD_RAMDUMP_UPLOADER_DEBUG_TOOL := true
248
249# GKI-related variables.
250BOARD_USES_GENERIC_KERNEL_IMAGE := true
251ifdef TARGET_DEDICATED_RECOVERY
252  BOARD_EXCLUDE_KERNEL_FROM_RECOVERY_IMAGE := true
253else
254  BOARD_MOVE_RECOVERY_RESOURCES_TO_VENDOR_BOOT := true
255endif
256BOARD_MOVE_GSI_AVB_KEYS_TO_VENDOR_BOOT := true
257
258# TARGET_KERNEL_USE is defined in kernel.mk, if not defined in the environment variable.
259# Keep in sync with GKI APEX in device.mk
260ifneq (,$(TARGET_KERNEL_USE))
261  ifneq (,$(filter 5.4, $(TARGET_KERNEL_USE)))
262    BOARD_KERNEL_MODULE_INTERFACE_VERSIONS := 5.4-android12-0
263  else
264    BOARD_KERNEL_MODULE_INTERFACE_VERSIONS := $(TARGET_KERNEL_USE)-android12-unstable
265  endif
266endif
267
268BOARD_GENERIC_RAMDISK_KERNEL_MODULES_LOAD := dm-user.ko
269
270BOARD_HAVE_BLUETOOTH := true
271