1# 2# Copyright 2022 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# FIXME: Split up and merge back in with shared/BoardConfig.mk 18 19TARGET_KERNEL_USE ?= 6.1 20TARGET_KERNEL_ARCH ?= $(TARGET_ARCH) 21TARGET_KERNEL_PATH ?= kernel/prebuilts/$(TARGET_KERNEL_USE)/$(TARGET_KERNEL_ARCH)/kernel-$(TARGET_KERNEL_USE) 22KERNEL_MODULES_PATH ?= \ 23 kernel/prebuilts/common-modules/virtual-device/$(TARGET_KERNEL_USE)/$(subst _,-,$(TARGET_KERNEL_ARCH)) 24PRODUCT_COPY_FILES += $(TARGET_KERNEL_PATH):kernel 25 26SYSTEM_DLKM_SRC ?= kernel/prebuilts/$(TARGET_KERNEL_USE)/$(TARGET_KERNEL_ARCH) 27 28# The list of modules strictly/only required either to reach second stage 29# init, OR for recovery. Do not use this list to workaround second stage 30# issues. 31RAMDISK_KERNEL_MODULES := \ 32 failover.ko \ 33 net_failover.ko \ 34 virtio_net.ko \ 35 virtio-rng.ko \ 36 37BOARD_VENDOR_RAMDISK_KERNEL_MODULES := \ 38 $(patsubst %,$(KERNEL_MODULES_PATH)/%,$(RAMDISK_KERNEL_MODULES)) 39 40# GKI >5.15 will have and require virtio_pci_legacy_dev.ko 41BOARD_VENDOR_RAMDISK_KERNEL_MODULES += $(wildcard $(KERNEL_MODULES_PATH)/virtio_pci_legacy_dev.ko) 42# GKI >6.4 will have an required vmw_vsock_virtio_transport_common.ko and vsock.ko 43BOARD_VENDOR_RAMDISK_KERNEL_MODULES += \ 44 $(wildcard $(KERNEL_MODULES_PATH)/vmw_vsock_virtio_transport_common.ko) \ 45 $(wildcard $(KERNEL_MODULES_PATH)/vsock.ko) 46 47BOARD_VENDOR_RAMDISK_KERNEL_MODULES += $(SYSTEM_DLKM_SRC)/virtio_blk.ko 48BOARD_VENDOR_RAMDISK_KERNEL_MODULES += $(SYSTEM_DLKM_SRC)/virtio_console.ko 49BOARD_VENDOR_RAMDISK_KERNEL_MODULES += $(SYSTEM_DLKM_SRC)/virtio_pci.ko 50BOARD_VENDOR_RAMDISK_KERNEL_MODULES += $(SYSTEM_DLKM_SRC)/virtio_pci_modern_dev.ko 51BOARD_VENDOR_RAMDISK_KERNEL_MODULES += $(SYSTEM_DLKM_SRC)/vmw_vsock_virtio_transport.ko 52 53TARGET_NO_RECOVERY := true 54 55BOARD_VENDOR_RAMDISK_KERNEL_MODULES_BLOCKLIST_FILE := \ 56 device/google/cuttlefish/shared/modules.blocklist 57 58BOARD_VENDOR_RAMDISK_KERNEL_MODULES_OPTIONS_FILE := \ 59 device/google/cuttlefish/shared/config/first_stage_modules.options 60 61TARGET_BOOTLOADER_BOARD_NAME := cutf 62 63BOARD_SYSTEMIMAGE_FILE_SYSTEM_TYPE := ext4 64BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE := ext4 65 66# Disable sparse on all filesystem images 67# This will prevent sparsing of super.img 68TARGET_USERIMAGES_SPARSE_EROFS_DISABLED ?= true 69TARGET_USERIMAGES_SPARSE_EXT_DISABLED ?= true 70TARGET_USERIMAGES_SPARSE_F2FS_DISABLED ?= true 71 72# FIXME: Not needed for minidroid, but needs fixes to CF assembler 73BOARD_USERDATAIMAGE_PARTITION_SIZE := 67108864 74BOARD_USERDATAIMAGE_FILE_SYSTEM_TYPE := ext4 75TARGET_USERIMAGES_USE_EXT4 := true 76 77BOARD_BOOTIMAGE_PARTITION_SIZE := 67108864 78BOARD_INIT_BOOT_IMAGE_PARTITION_SIZE := 8388608 79BOARD_VENDOR_BOOTIMAGE_PARTITION_SIZE := 67108864 80 81BOARD_AVB_ENABLE := true 82BOARD_AVB_ALGORITHM := SHA256_RSA4096 83BOARD_AVB_KEY_PATH := external/avb/test/data/testkey_rsa4096.pem 84 85BOARD_AVB_VBMETA_SYSTEM := system 86BOARD_AVB_VBMETA_SYSTEM_KEY_PATH := external/avb/test/data/testkey_rsa4096.pem 87BOARD_AVB_VBMETA_SYSTEM_ALGORITHM := SHA256_RSA4096 88BOARD_AVB_VBMETA_SYSTEM_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP) 89BOARD_AVB_VBMETA_SYSTEM_ROLLBACK_INDEX_LOCATION := 1 90 91BOARD_AVB_BOOT_KEY_PATH := external/avb/test/data/testkey_rsa4096.pem 92BOARD_AVB_BOOT_ALGORITHM := SHA256_RSA4096 93BOARD_AVB_BOOT_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP) 94BOARD_AVB_BOOT_ROLLBACK_INDEX_LOCATION := 2 95 96BOARD_AVB_INIT_BOOT_KEY_PATH := external/avb/test/data/testkey_rsa4096.pem 97BOARD_AVB_INIT_BOOT_ALGORITHM := SHA256_RSA4096 98BOARD_AVB_INIT_BOOT_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP) 99BOARD_AVB_INIT_BOOT_ROLLBACK_INDEX_LOCATION := 3 100 101TARGET_AVB_SYSTEM_HASHTREE_ALGORITHM ?= sha256 102BOARD_AVB_SYSTEM_ADD_HASHTREE_FOOTER_ARGS += --hash_algorithm $(TARGET_AVB_SYSTEM_HASHTREE_ALGORITHM) 103 104BOARD_MALLOC_ALIGNMENT := 16 105 106BOARD_USES_GENERIC_KERNEL_IMAGE := true 107 108PRODUCT_COPY_FILES += \ 109 device/google/cuttlefish/dtb.img:dtb.img \ 110 device/google/cuttlefish/required_images:required_images \ 111 112BOARD_BOOTLOADER_IN_UPDATE_PACKAGE := true 113BOARD_RAMDISK_USE_LZ4 := true 114 115# Default to minidroid, if not set. 116LOCAL_ANDROIDBOOT_HARDWARE ?= minidroid 117# Default to minidroid's primary init .rc, if not set. 118LOCAL_ANDROIDBOOT_INIT_RC ?= /system/etc/init/hw/init.minidroid.rc 119 120BOARD_KERNEL_CMDLINE += printk.devkmsg=on 121BOARD_KERNEL_CMDLINE += audit=1 122BOARD_KERNEL_CMDLINE += panic=-1 123BOARD_KERNEL_CMDLINE += 8250.nr_uarts=1 124BOARD_KERNEL_CMDLINE += cma=0 125BOARD_KERNEL_CMDLINE += firmware_class.path=/vendor/etc/ 126BOARD_KERNEL_CMDLINE += loop.max_part=7 127BOARD_KERNEL_CMDLINE += init=/init 128BOARD_BOOTCONFIG += androidboot.hardware=$(LOCAL_ANDROIDBOOT_HARDWARE) 129BOARD_BOOTCONFIG += \ 130 androidboot.init_rc=$(LOCAL_ANDROIDBOOT_INIT_RC) 131BOARD_BOOTCONFIG += \ 132 kernel.vmw_vsock_virtio_transport_common.virtio_transport_max_vsock_pkt_buf_size=16384 133BOARD_BOOTCONFIG += \ 134 androidboot.microdroid.debuggable=1 \ 135 androidboot.adb.enabled=1 136 137BOARD_INCLUDE_DTB_IN_BOOTIMG := true 138BOARD_BOOT_HEADER_VERSION := 4 139BOARD_MKBOOTIMG_ARGS += --header_version $(BOARD_BOOT_HEADER_VERSION) 140BOARD_INIT_BOOT_HEADER_VERSION := 4 141BOARD_MKBOOTIMG_INIT_ARGS += --header_version $(BOARD_INIT_BOOT_HEADER_VERSION) 142 143BOARD_GOOGLE_SYSTEM_DYNAMIC_PARTITIONS_PARTITION_LIST := system vendor 144# reserve 256MiB for dynamic partition metadata 145BOARD_GOOGLE_SYSTEM_DYNAMIC_PARTITIONS_SIZE := 268435456 146 147# 1MiB bigger than twice the dynamic partition to make build happy... 148BOARD_SUPER_PARTITION_SIZE := 537919488 149BOARD_SUPER_PARTITION_GROUPS := google_system_dynamic_partitions 150BOARD_BUILD_SUPER_IMAGE_BY_DEFAULT := true 151BOARD_SUPER_IMAGE_IN_UPDATE_PACKAGE := true 152 153TARGET_SKIP_OTA_PACKAGE := true 154TARGET_SKIP_OTATOOLS_PACKAGE := true 155 156BOARD_VENDOR_SEPOLICY_DIRS += device/google/cuttlefish/shared/sepolicy/vendor/seriallogging 157