Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Impressum BoardConfig.mk  Sprache: unbekannt

 
Haftungsausschluß.mk KontaktAbap {ABAP[52] Apollo[51] Postscript[51]}diese Dinge liegen außhalb unserer Verantwortung

# Copyright (C) 2026 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# Put here the common configurations between all SDV core targets:
# * sdv_core_arm64
# * sdv_core_cf

LOCAL_ANDROIDBOOT_HARDWARE := sdv

TARGET_KERNEL_USE ?= 6.6
TARGET_KERNEL_ARCH ?= $(TARGET_ARCH)
TARGET_KERNEL_PATH ?= kernel/prebuilts/$(TARGET_KERNEL_USE)/$(TARGET_KERNEL_ARCH)/kernel-$(TARGET_KERNEL_USE)
SYSTEM_DLKM_SRC ?= kernel/prebuilts/$(TARGET_KERNEL_USE)/$(TARGET_KERNEL_ARCH)
KERNEL_MODULES_PATH ?= \
    kernel/prebuilts/common-modules/virtual-device/$(TARGET_KERNEL_USE)/$(subst _,-,$(TARGET_KERNEL_ARCH))
PRODUCT_COPY_FILES += $(TARGET_KERNEL_PATH):kernel

# Usually, only modules installed to system_dlkm don't get stripped during
# build. Stripping kernel modules removes their signature, and unsigned modules
# are subject to additional restrictions on what symbols those modules can
# expose.
#
# Without setting this, virtio_pci_modern_dev.ko on arm64 fails to load due to
#
#   virtio_pci_modern_dev: exports protected symbol vp_modern_config_vector
#
# Which causes the device to boot-loop.
BOARD_DO_NOT_STRIP_VENDOR_RAMDISK_MODULES := true

# The list of modules strictly/only required either to reach second stage
# init, OR for recovery. Do not use this list to workaround second stage
# issues.
#
# Depending on the specific module, they may exist under $(KERNEL_MODULES_PATH)
# or $(SYSTEM_DLKM_SRC). virtio_blk.ko, virtio_console.ko, virtio_pci.ko,
# virtio_pci_modern_dev.ko and vmw_vsock_virtio_transport.ko were added to
# $(SYSTEM_DLKM_SRC) in May 2024, but remained in $(KERNEL_MODULES_PATH) until
# Nov 2024, so including both with $(wildcard) just causes a build error before
# the next prebuilts drop.
BOARD_VENDOR_RAMDISK_KERNEL_MODULES = \
    $(KERNEL_MODULES_PATH)/failover.ko \
    $(KERNEL_MODULES_PATH)/net_failover.ko \
    $(KERNEL_MODULES_PATH)/virtio-rng.ko \
    $(KERNEL_MODULES_PATH)/virtio_net.ko \

ifeq ($(TARGET_KERNEL_USE), 6.1)
EXTRA_KERNEL_MODULES_PATH := $(KERNEL_MODULES_PATH)
else
EXTRA_KERNEL_MODULES_PATH := $(SYSTEM_DLKM_SRC)
endif

BOARD_VENDOR_RAMDISK_KERNEL_MODULES += \
    $(EXTRA_KERNEL_MODULES_PATH)/virtio_blk.ko \
    $(EXTRA_KERNEL_MODULES_PATH)/virtio_console.ko \
    $(EXTRA_KERNEL_MODULES_PATH)/virtio_pci.ko \
    $(EXTRA_KERNEL_MODULES_PATH)/virtio_pci_legacy_dev.ko \
    $(EXTRA_KERNEL_MODULES_PATH)/virtio_pci_modern_dev.ko \
    $(EXTRA_KERNEL_MODULES_PATH)/vmw_vsock_virtio_transport.ko

# GKI >6.4 will have an required vmw_vsock_virtio_transport_common.ko and vsock.ko
BOARD_VENDOR_RAMDISK_KERNEL_MODULES += \
    $(wildcard $(KERNEL_MODULES_PATH)/vmw_vsock_virtio_transport_common.ko) \
    $(wildcard $(KERNEL_MODULES_PATH)/vsock.ko)

TARGET_NO_RECOVERY := true

BOARD_VENDOR_RAMDISK_KERNEL_MODULES_BLOCKLIST_FILE := \
    device/google/sdv/modules.blocklist

BOARD_VENDOR_RAMDISK_KERNEL_MODULES_OPTIONS_FILE := \
    device/google/cuttlefish/shared/config/first_stage_modules.options

TARGET_BOOTLOADER_BOARD_NAME := cutf

# FILE_SYSTEM_TYPE must be in sync with fstab.sdv
BOARD_SYSTEMIMAGE_FILE_SYSTEM_TYPE := erofs
BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE := erofs

# EROFS compression optimizations
# https://source.android.com/docs/core/architecture/kernel/erofs
BOARD_EROFS_PCLUSTER_SIZE := 262144

# Disable sparse on all filesystem images
# This will prevent sparsing of super.img
TARGET_USERIMAGES_SPARSE_EROFS_DISABLED ?= true
TARGET_USERIMAGES_SPARSE_EXT_DISABLED ?= true
TARGET_USERIMAGES_SPARSE_F2FS_DISABLED ?= true

BOARD_BOOTIMAGE_PARTITION_SIZE := 67108864
BOARD_INIT_BOOT_IMAGE_PARTITION_SIZE := 8388608
BOARD_VENDOR_BOOTIMAGE_PARTITION_SIZE := 67108864

BOARD_AVB_ENABLE := true
BOARD_AVB_ALGORITHM := SHA256_RSA4096
BOARD_AVB_KEY_PATH := external/avb/test/data/testkey_rsa4096.pem

BOARD_AVB_VBMETA_SYSTEM := system system_ext product
BOARD_AVB_VBMETA_SYSTEM_KEY_PATH := external/avb/test/data/testkey_rsa4096.pem
BOARD_AVB_VBMETA_SYSTEM_ALGORITHM := SHA256_RSA4096
BOARD_AVB_VBMETA_SYSTEM_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP)
BOARD_AVB_VBMETA_SYSTEM_ROLLBACK_INDEX_LOCATION := 1

BOARD_AVB_BOOT_KEY_PATH := external/avb/test/data/testkey_rsa4096.pem
BOARD_AVB_BOOT_ALGORITHM := SHA256_RSA4096
BOARD_AVB_BOOT_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP)
BOARD_AVB_BOOT_ROLLBACK_INDEX_LOCATION := 2

BOARD_AVB_INIT_BOOT_KEY_PATH := external/avb/test/data/testkey_rsa4096.pem
BOARD_AVB_INIT_BOOT_ALGORITHM := SHA256_RSA4096
BOARD_AVB_INIT_BOOT_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP)
BOARD_AVB_INIT_BOOT_ROLLBACK_INDEX_LOCATION := 3

BOARD_AVB_SYSTEM_ADD_HASHTREE_FOOTER_ARGS += --hash_algorithm sha256

BOARD_AVB_VENDOR_ADD_HASHTREE_FOOTER_ARGS += --hash_algorithm sha256
BOARD_AVB_VENDOR_DLKM_ADD_HASHTREE_FOOTER_ARGS += --hash_algorithm sha256

BOARD_MALLOC_ALIGNMENT := 16

BOARD_USES_GENERIC_KERNEL_IMAGE := true

PRODUCT_COPY_FILES += \
    device/google/cuttlefish/dtb.img:dtb.img \
    device/google/cuttlefish/required_images:required_images \

BOARD_BOOTLOADER_IN_UPDATE_PACKAGE := true
BOARD_RAMDISK_USE_LZ4 := true

BOARD_KERNEL_CMDLINE += printk.devkmsg=on
BOARD_KERNEL_CMDLINE += audit=1
BOARD_KERNEL_CMDLINE += panic=-1
BOARD_KERNEL_CMDLINE += 8250.nr_uarts=1
BOARD_KERNEL_CMDLINE += cma=0
BOARD_KERNEL_CMDLINE += firmware_class.path=/vendor/etc/
BOARD_KERNEL_CMDLINE += loop.max_part=7
BOARD_KERNEL_CMDLINE += init=/init
BOARD_BOOTCONFIG += androidboot.hardware=$(LOCAL_ANDROIDBOOT_HARDWARE)
BOARD_BOOTCONFIG += \
    androidboot.init_rc=$(LOCAL_ANDROIDBOOT_INIT_RC)
# TODO(b/398294139): Restore the value to 16KiB after the issue is resolved.
BOARD_BOOTCONFIG += \
    kernel.vmw_vsock_virtio_transport_common.virtio_transport_max_vsock_pkt_buf_size=4096
BOARD_BOOTCONFIG += \
    androidboot.microdroid.debuggable=1 \
    androidboot.adb.enabled=1

BOARD_BOOTCONFIG += \
    androidboot.sdv.telemetry.enabled=1

ifdef SDV_RPC_INTERFACE
BOARD_BOOTCONFIG += \
  androidboot.sdv.rpc.interface=$(SDV_RPC_INTERFACE)
endif

BOARD_INCLUDE_DTB_IN_BOOTIMG := true
BOARD_BOOT_HEADER_VERSION := 4
BOARD_MKBOOTIMG_ARGS += --header_version $(BOARD_BOOT_HEADER_VERSION)
BOARD_INIT_BOOT_HEADER_VERSION := 4
BOARD_MKBOOTIMG_INIT_ARGS += --header_version $(BOARD_INIT_BOOT_HEADER_VERSION)

BOARD_GOOGLE_SYSTEM_DYNAMIC_PARTITIONS_PARTITION_LIST := system vendor system_ext product vendor_dlkm
# reserve 512+256+256MiB for dynamic partition metadata
BOARD_GOOGLE_SYSTEM_DYNAMIC_PARTITIONS_SIZE := 1073741824

# rust incremental builds can use more space, add 30MiB more
ifeq ($(SOONG_RUSTC_INCREMENTAL),true)
  BOARD_GOOGLE_SYSTEM_DYNAMIC_PARTITIONS_SIZE := \
    $(shell expr $(BOARD_GOOGLE_SYSTEM_DYNAMIC_PARTITIONS_SIZE) + 31457280)
endif

# coverage builds use more space, add 270MiB more
ifeq ($(CLANG_COVERAGE),true)
  BOARD_GOOGLE_SYSTEM_DYNAMIC_PARTITIONS_SIZE := \
    $(shell expr $(BOARD_GOOGLE_SYSTEM_DYNAMIC_PARTITIONS_SIZE) + 283115520)
endif

# performance build requires more space for pubsub functionality, add 512MiB more
ifeq ($(SDV_CORE_PERF_IMAGE),true)
  BOARD_GOOGLE_SYSTEM_DYNAMIC_PARTITIONS_SIZE := \
    $(shell expr $(BOARD_GOOGLE_SYSTEM_DYNAMIC_PARTITIONS_SIZE) + 536870912)
endif

# The super partition is sized to 2*dynamic partition size + overhead.
# Double dynamic partition accounts for A/B slots for updates.
# Overhead is 4 MiB as recommended in
# https://source.android.com/docs/core/ota/dynamic_partitions/implement#dyanimic-partitions-sizing
BOARD_SUPER_PARTITION_SIZE := \
  $(shell expr 2 \* $(BOARD_GOOGLE_SYSTEM_DYNAMIC_PARTITIONS_SIZE) + 4 \* 1024 \* 1024)

BOARD_SUPER_PARTITION_GROUPS := google_system_dynamic_partitions
BOARD_BUILD_SUPER_IMAGE_BY_DEFAULT := true
BOARD_SUPER_IMAGE_IN_UPDATE_PACKAGE := true

BOARD_VENDOR_SEPOLICY_DIRS += device/google/cuttlefish/shared/sepolicy/vendor/seriallogging

BOARD_SEPOLICY_DIRS += device/google/sdv/sdv_base/sepolicy/vendor
BOARD_SEPOLICY_DIRS += device/google/sdv/sdv_core_base/sepolicy/vendor/

BOARD_USES_SYSTEM_EXTIMAGE := true
BOARD_SYSTEM_EXTIMAGE_FILE_SYSTEM_TYPE := erofs
TARGET_COPY_OUT_SYSTEM_EXT := system_ext

BOARD_AVB_SYSTEM_EXT_ADD_HASHTREE_FOOTER_ARGS += --hash_algorithm sha256

BOARD_USES_PRODUCTIMAGE := true
BOARD_PRODUCTIMAGE_FILE_SYSTEM_TYPE := erofs
TARGET_COPY_OUT_PRODUCT := product

BOARD_AVB_PRODUCT_ADD_HASHTREE_FOOTER_ARGS += --hash_algorithm sha256

# 100 MiB is the minimum free space in userdata partition for checkpoint creation.
# ~175MiB of free space is required in userdata partition to upload system updates.
# A total of ~275MB of free space is needed.
BOARD_USERDATAIMAGE_PARTITION_SIZE := 996147200 # 950 MiB
BOARD_USERDATAIMAGE_FILE_SYSTEM_TYPE := f2fs
TARGET_USERIMAGES_USE_F2FS := true

# The /metadata partition is required for metadata encryption
BOARD_USES_METADATA_PARTITION := true

# Vendor DLKM partition
# https://source.android.com/docs/core/architecture/partitions/vendor-odm-dlkm-partition
BOARD_USES_VENDOR_DLKMIMAGE := true
BOARD_VENDOR_DLKMIMAGE_FILE_SYSTEM_TYPE := erofs
TARGET_COPY_OUT_VENDOR_DLKM := vendor_dlkm

# Add VLAN support (provided by 8021q module)
TARGET_KERNEL_MODULES_PATH ?= kernel/prebuilts/$(TARGET_KERNEL_USE)/$(TARGET_KERNEL_ARCH)
BOARD_VENDOR_RAMDISK_KERNEL_MODULES += $(TARGET_KERNEL_MODULES_PATH)/8021q.ko

# HOST_OUT is empty, so we cannot use it. See $(warning HOST_OUT is $(HOST_OUT)).
host_out_dir := $(OUT_DIR)/host/linux-x86

# A/B update support
AB_OTA_UPDATER := true
AB_OTA_PARTITIONS := \
  boot \
  init_boot \
  vendor_boot \
  system \
  system_ext \
  product \
  vbmeta_system \
  vendor \
  vbmeta \
  vendor_dlkm \

# Have SD Agent on SDV read ACL file mappings from Service Bundle Registry
$(call soong_config_set,sdv_authz,acl_provider_type,sdv_acl_provider)

[Seitenstruktur0.15Drucken]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Open Source Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Statistik
#Sources=1127926
#Domains=2039723