# # Copyright (C) 2024 The Android Open Source Project # # SPDX-License-Identifier: Apache-2.0 # # Inherit from the proprietary version -include vendor/xiaomi/sky/BoardConfigVendor.mk DEVICE_PATH := device/xiaomi/sky KERNEL_PATH := $(DEVICE_PATH)-kernel # A/B AB_OTA_UPDATER := true AB_OTA_PARTITIONS += \ boot \ dtbo \ odm \ product \ recovery \ system \ system_ext \ vbmeta \ vbmeta_system \ vendor \ vendor_boot \ vendor_dlkm # Architecture TARGET_ARCH := arm64 TARGET_ARCH_VARIANT := armv8-2a-dotprod TARGET_CPU_ABI := arm64-v8a TARGET_CPU_VARIANT := cortex-a76 TARGET_CPU_VARIANT_RUNTIME := kryo300 # Audio $(call soong_config_set, android_hardware_audio, run_64bit, true) AUDIO_FEATURE_ENABLED_DLKM := true AUDIO_FEATURE_ENABLED_DTS_EAGLE := false AUDIO_FEATURE_ENABLED_GEF_SUPPORT := true AUDIO_FEATURE_ENABLED_HW_ACCELERATED_EFFECTS := false AUDIO_FEATURE_ENABLED_INSTANCE_ID := true AUDIO_FEATURE_ENABLED_LSM_HIDL := true AUDIO_FEATURE_ENABLED_PAL_HIDL := true AUDIO_FEATURE_ENABLED_PROXY_DEVICE := true TARGET_USES_QCOM_MM_AUDIO := true # Boot control SOONG_CONFIG_NAMESPACES += ufsbsg SOONG_CONFIG_ufsbsg += ufsframework SOONG_CONFIG_ufsbsg_ufsframework := bsg # Bootloader TARGET_BOOTLOADER_BOARD_NAME := sky TARGET_NO_BOOTLOADER := true TARGET_BOARD_INFO_FILE := $(DEVICE_PATH)/board-info.txt # Build BUILD_BROKEN_DUP_RULES := true BUILD_BROKEN_ELF_PREBUILT_PRODUCT_COPY_FILES := true BUILD_BROKEN_VENDOR_PROPERTY_NAMESPACE := true # Display TARGET_FORCE_HWC_FOR_VIRTUAL_DISPLAYS := true TARGET_GRALLOC_HANDLE_HAS_CUSTOM_CONTENT_MD_RESERVED_SIZE := false TARGET_GRALLOC_HANDLE_HAS_RESERVED_SIZE := true TARGET_USES_DISPLAY_RENDER_INTENTS := true TARGET_USES_GRALLOC4 := true TARGET_USES_HWC2 := true MAX_VIRTUAL_DISPLAY_DIMENSION := 4096 NUM_FRAMEBUFFER_SURFACE_BUFFERS := 3 # DRM TARGET_ENABLE_MEDIADRM_64 := true # DTB BOARD_USES_DT := true BOARD_PREBUILT_DTBIMAGE_DIR := $(KERNEL_PATH)/dtbs BOARD_PREBUILT_DTBOIMAGE := $(KERNEL_PATH)/dtbs/dtbo.img # Init TARGET_INIT_VENDOR_LIB := //$(DEVICE_PATH):libinit_sky TARGET_RECOVERY_DEVICE_MODULES := libinit_sky # Filesystem TARGET_FS_CONFIG_GEN := $(DEVICE_PATH)/configs/config.fs # FM BOARD_HAVE_QCOM_FM := true # Kernel BOARD_KERNEL_PAGESIZE := 4096 BOARD_KERNEL_BASE := 0x00000000 BOARD_KERNEL_CMDLINE := \ video=vfb:640x400,bpp=32,memsize=3072000 \ disable_dma32=on \ swinfo.fingerprint=$(LINEAGE_VERSION) \ mtdoops.fingerprint=$(LINEAGE_VERSION) BOARD_BOOTCONFIG := \ androidboot.hardware=qcom \ androidboot.memcg=1 \ androidboot.usbcontroller=a600000.dwc3 \ androidboot.init_fatal_reboot_target=recovery BOARD_BOOT_HEADER_VERSION := 4 BOARD_MKBOOTIMG_ARGS += --header_version $(BOARD_BOOT_HEADER_VERSION) BOARD_KERNEL_IMAGE_NAME := Image BOARD_RAMDISK_USE_LZ4 := true BOARD_INCLUDE_DTB_IN_BOOTIMG := true BOARD_USES_GENERIC_KERNEL_IMAGE := true # Kill lineage kernel build task while preserving kernel TARGET_NO_KERNEL_OVERRIDE := true # Workaround to make lineage's soong generator work TARGET_KERNEL_SOURCE := $(KERNEL_PATH)/kernel-headers # Kernel Binary TARGET_KERNEL_VERSION := 5.10 LOCAL_KERNEL := $(KERNEL_PATH)/Image PRODUCT_COPY_FILES += \ $(LOCAL_KERNEL):kernel # Kernel modules BOARD_VENDOR_RAMDISK_KERNEL_MODULES_LOAD := $(strip $(shell cat $(KERNEL_PATH)/vendor_ramdisk/modules.load)) BOARD_VENDOR_RAMDISK_KERNEL_MODULES := $(addprefix $(KERNEL_PATH)/vendor_ramdisk/, $(BOARD_VENDOR_RAMDISK_KERNEL_MODULES_LOAD)) BOARD_VENDOR_RAMDISK_KERNEL_MODULES_BLOCKLIST_FILE := $(KERNEL_PATH)/vendor_ramdisk/modules.blocklist # Also add recovery modules to vendor ramdisk BOARD_VENDOR_RAMDISK_RECOVERY_KERNEL_MODULES_LOAD := $(strip $(shell cat $(KERNEL_PATH)/vendor_ramdisk/modules.load.recovery)) RECOVERY_MODULES := $(addprefix $(KERNEL_PATH)/vendor_ramdisk/, $(BOARD_VENDOR_RAMDISK_RECOVERY_KERNEL_MODULES_LOAD)) # Prevent duplicated entries (to solve duplicated build rules problem) BOARD_VENDOR_RAMDISK_KERNEL_MODULES := $(sort $(BOARD_VENDOR_RAMDISK_KERNEL_MODULES) $(RECOVERY_MODULES)) # Vendor modules (installed to vendor_dlkm) BOARD_VENDOR_KERNEL_MODULES_LOAD := $(strip $(shell cat $(KERNEL_PATH)/vendor_dlkm/modules.load)) BOARD_VENDOR_KERNEL_MODULES := $(addprefix $(KERNEL_PATH)/vendor_dlkm/, $(BOARD_VENDOR_KERNEL_MODULES_LOAD)) BOARD_VENDOR_KERNEL_MODULES_BLOCKLIST_FILE := $(KERNEL_PATH)/vendor_dlkm/modules.blocklist # Lineage Health TARGET_HEALTH_CHARGING_CONTROL_CHARGING_PATH := /sys/class/qcom-battery/input_suspend TARGET_HEALTH_CHARGING_CONTROL_CHARGING_ENABLED := 0 TARGET_HEALTH_CHARGING_CONTROL_CHARGING_DISABLED := 1 TARGET_HEALTH_CHARGING_CONTROL_SUPPORTS_BYPASS := false # Malloc MALLOC_SVELTE := true # Metadata BOARD_USES_METADATA_PARTITION := true # OTA assert TARGET_OTA_ASSERT_DEVICE := sky, skyin # Partitions BOARD_FLASH_BLOCK_SIZE := 131072 # (BOARD_KERNEL_PAGESIZE * 64) BOARD_DTBOIMG_PARTITION_SIZE := 24117248 BOARD_BOOTIMAGE_PARTITION_SIZE := 100663296 BOARD_RECOVERYIMAGE_PARTITION_SIZE := 104857600 BOARD_VENDOR_BOOTIMAGE_PARTITION_SIZE := 100663296 BOARD_SUPER_PARTITION_SIZE := 6979321856 BOARD_SUPER_PARTITION_GROUPS := qti_dynamic_partitions BOARD_QTI_DYNAMIC_PARTITIONS_PARTITION_LIST := odm product system system_ext vendor vendor_dlkm BOARD_QTI_DYNAMIC_PARTITIONS_SIZE := 6975127552 BOARD_ODMIMAGE_FILE_SYSTEM_TYPE := ext4 BOARD_PRODUCTIMAGE_FILE_SYSTEM_TYPE := ext4 BOARD_SYSTEMIMAGE_FILE_SYSTEM_TYPE := ext4 BOARD_SYSTEM_EXTIMAGE_FILE_SYSTEM_TYPE := ext4 BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE := ext4 BOARD_VENDOR_DLKMIMAGE_FILE_SYSTEM_TYPE := ext4 TARGET_COPY_OUT_ODM := odm TARGET_COPY_OUT_PRODUCT := product TARGET_COPY_OUT_SYSTEM_EXT := system_ext TARGET_COPY_OUT_VENDOR := vendor TARGET_COPY_OUT_VENDOR_DLKM := vendor_dlkm # Platform TARGET_BOARD_PLATFORM := parrot BOARD_USES_QCOM_HARDWARE := true # Disable sparse on all filesystem images TARGET_USERIMAGES_SPARSE_EROFS_DISABLED := true TARGET_USERIMAGES_SPARSE_EXT_DISABLED := true TARGET_USERIMAGES_SPARSE_F2FS_DISABLED := true # Power TARGET_POWER_LIBPERFMGR_MODE_EXTENSION_LIB := //$(DEVICE_PATH):libperfmgr-ext-xiaomi # Properties TARGET_ODM_PROP += $(DEVICE_PATH)/configs/properties/odm.prop TARGET_PRODUCT_PROP += $(DEVICE_PATH)/configs/properties/product.prop TARGET_SYSTEM_PROP += $(DEVICE_PATH)/configs/properties/system.prop TARGET_SYSTEM_EXT_PROP += $(DEVICE_PATH)/configs/properties/system_ext.prop TARGET_VENDOR_PROP += $(DEVICE_PATH)/configs/properties/vendor.prop # Recovery TARGET_RECOVERY_PIXEL_FORMAT := "RGBX_8888" TARGET_RECOVERY_FSTAB := $(DEVICE_PATH)/rootdir/etc/fstab.default TARGET_USERIMAGES_USE_F2FS := true BOARD_USES_RECOVERY_AS_BOOT := false BOARD_EXCLUDE_KERNEL_FROM_RECOVERY_IMAGE := true # RIL ENABLE_VENDOR_RIL_SERVICE := true # Screen density TARGET_SCREEN_DENSITY := 440 # Security patch level VENDOR_SECURITY_PATCH := 2024-08-01 # Sepolicy include device/qcom/sepolicy_vndr/SEPolicy.mk include device/lineage/sepolicy/libperfmgr/sepolicy.mk SYSTEM_EXT_PRIVATE_SEPOLICY_DIRS += $(DEVICE_PATH)/sepolicy/private SYSTEM_EXT_PUBLIC_SEPOLICY_DIRS += $(DEVICE_PATH)/sepolicy/public BOARD_VENDOR_SEPOLICY_DIRS += $(DEVICE_PATH)/sepolicy/vendor # Vendor Boot PRODUCT_COPY_FILES += \ $(DEVICE_PATH)/rootdir/etc/fstab.default:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/first_stage_ramdisk/fstab.default # Verified Boot BOARD_AVB_ENABLE := true BOARD_AVB_MAKE_VBMETA_IMAGE_ARGS += --flags 3 BOARD_MOVE_GSI_AVB_KEYS_TO_VENDOR_BOOT := true BOARD_AVB_RECOVERY_KEY_PATH := external/avb/test/data/testkey_rsa4096.pem BOARD_AVB_RECOVERY_ALGORITHM := SHA256_RSA4096 BOARD_AVB_RECOVERY_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP) BOARD_AVB_RECOVERY_ROLLBACK_INDEX_LOCATION := 1 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 := 2 # VINTF DEVICE_MANIFEST_SKUS := ravelin DEVICE_MATRIX_FILE := $(DEVICE_PATH)/configs/vintf/compatibility_matrix.xml DEVICE_MANIFEST_RAVELIN_FILES := \ $(DEVICE_PATH)/configs/vintf/manifest_ravelin.xml DEVICE_FRAMEWORK_COMPATIBILITY_MATRIX_FILE := \ $(DEVICE_PATH)/configs/vintf/vendor_framework_compatibility_matrix.xml \ $(DEVICE_PATH)/configs/vintf/xiaomi_framework_compatibility_matrix.xml \ vendor/lineage/config/device_framework_matrix.xml ODM_MANIFEST_SKUS += hceese hcesim hcesim1 hcesim1ese hcesimese ODM_MANIFEST_HCEESE_FILES := $(DEVICE_PATH)/configs/vintf/manifest_hceese.xml ODM_MANIFEST_HCESIM_FILES := $(DEVICE_PATH)/configs/vintf/manifest_hcesim.xml ODM_MANIFEST_HCESIM1_FILES := $(DEVICE_PATH)/configs/vintf/manifest_hcesim1.xml ODM_MANIFEST_HCESIM1ESE_FILES := $(DEVICE_PATH)/configs/vintf/manifest_hcesim1ese.xml ODM_MANIFEST_HCESIMESE_FILES := $(DEVICE_PATH)/configs/vintf/manifest_hcesimese.xml # WiFi BOARD_WLAN_DEVICE := qcwcn BOARD_HOSTAPD_DRIVER := NL80211 BOARD_HOSTAPD_PRIVATE_LIB := lib_driver_cmd_$(BOARD_WLAN_DEVICE) BOARD_WPA_SUPPLICANT_DRIVER := NL80211 BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_$(BOARD_WLAN_DEVICE) CONFIG_ACS := true QC_WIFI_HIDL_FEATURE_DUAL_AP := true QC_WIFI_HIDL_FEATURE_DUAL_STA := true WIFI_DRIVER_STATE_CTRL_PARAM := "/dev/wlan" WIFI_DRIVER_STATE_OFF := "OFF" WIFI_DRIVER_STATE_ON := "ON" WIFI_HIDL_FEATURE_AWARE := true WIFI_HIDL_FEATURE_DUAL_INTERFACE := true WIFI_HIDL_UNIFIED_SUPPLICANT_SERVICE_RC_ENTRY := true WPA_SUPPLICANT_VERSION := VER_0_8_X