exynos9610: Set broken dup rules
[GitHub/LineageOS/android_device_motorola_exynos9610-common.git] / BoardConfigCommon.mk
index 6054221eba6e287310cba8696d92fca327a7be95..cd69478e6cfb970509e55e25a859fa02a211f0d9 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2020 The LineageOS Project
+# Copyright (C) 2020-2021 The LineageOS Project
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 
 COMMON_PATH := device/motorola/exynos9610-common
 
-# Soong namespaces
-PRODUCT_SOONG_NAMESPACES += $(COMMON_PATH)
-
-# Include path
+## Include path
 TARGET_SPECIFIC_HEADER_PATH := $(COMMON_PATH)/include
 
-BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR := hardware/samsung_slsi/libbt/include
+## Inherit proprietary vendor configuartion
+include vendor/motorola/exynos9610-common/BoardConfigVendor.mk
 
-# Platform
-TARGET_BOARD_PLATFORM := exynos9610
-TARGET_SOC := exynos9610
-TARGET_BOOTLOADER_BOARD_NAME := exynos9610
+# BUILD_BROKEN_*
+BUILD_BROKEN_DUP_RULES := true
+BUILD_BROKEN_ELF_PREBUILT_PRODUCT_COPY_FILES := true
+
+## A/B
+AB_OTA_UPDATER := true
 
-# Architecture
+AB_OTA_PARTITIONS += \
+    boot \
+    dtbo \
+    system \
+    vbmeta \
+    vendor
+
+## Architecture
 TARGET_ARCH := arm64
 TARGET_ARCH_VARIANT := armv8-a
 TARGET_CPU_ABI := arm64-v8a
@@ -37,7 +44,7 @@ TARGET_CPU_ABI2 :=
 TARGET_CPU_VARIANT := generic
 TARGET_CPU_VARIANT_RUNTIME := cortex-a73
 
-# Secondary Architecture
+## Architecture (Secondary)
 TARGET_2ND_ARCH := arm
 TARGET_2ND_ARCH_VARIANT := armv8-a
 TARGET_2ND_CPU_ABI := armeabi-v7a
@@ -45,109 +52,121 @@ TARGET_2ND_CPU_ABI2 := armeabi
 TARGET_2ND_CPU_VARIANT := generic
 TARGET_2ND_CPU_VARIANT_RUNTIME := cortex-a53
 
-# Binder
-TARGET_USES_64_BIT_BINDER := true
+## Bluetooth
+BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR := $(COMMON_PATH)/bluetooth
+BOARD_HAVE_BLUETOOTH_SLSI := true
 
+## Boot Image
 # Extracted with libbootimg
-BOARD_KERNEL_CMDLINE := loop.max_part=7
+BOARD_BOOTIMG_HEADER_VERSION := 1
 BOARD_KERNEL_BASE := 0x10000000
+BOARD_KERNEL_CMDLINE := loop.max_part=7 androidboot.boot_devices=13520000.ufs
 BOARD_KERNEL_OFFSET := 0x00008000
+BOARD_KERNEL_PAGESIZE := 2048
 BOARD_RAMDISK_OFFSET := 0x00000000
-BOARD_TAGS_OFFSET := 0x00000000
 BOARD_SECOND_OFFSET := 0x00000000
-BOARD_KERNEL_PAGESIZE := 2048
-BOARD_BOOTIMG_HEADER_VERSION := 1
+BOARD_TAGS_OFFSET := 0x00000000
 
 BOARD_MKBOOTIMG_ARGS := --base $(BOARD_KERNEL_BASE) --pagesize $(BOARD_KERNEL_PAGESIZE) --kernel_offset $(BOARD_KERNEL_OFFSET) --second_offset $(BOARD_SECOND_OFFSET) --ramdisk_offset $(BOARD_RAMDISK_OFFSET) --tags_offset $(BOARD_TAGS_OFFSET) --header_version $(BOARD_BOOTIMG_HEADER_VERSION)
 
-BOARD_KERNEL_SEPARATED_DTBO  := true
-BOARD_DTBO_CFG := $(COMMON_PATH)/configs/dtboimg.cfg
+## Bootloader
 TARGET_BOOTLOADER_IS_2ND := true
 
-# Kernel
-TARGET_KERNEL_ARCH := arm64
-TARGET_KERNEL_HEADER_ARCH := arm64
-TARGET_KERNEL_CLANG_COMPILE := true
-TARGET_KERNEL_SOURCE := kernel/motorola/exynos9610
+## Display
+TARGET_SCREEN_DENSITY := 420
+
+## DTBO
+BOARD_DTBO_CFG := $(COMMON_PATH)/configs/dtboimg.cfg
+BOARD_KERNEL_SEPARATED_DTBO  := true
+
+## Filesystem
+BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE := ext4
+TARGET_COPY_OUT_VENDOR := vendor
+TARGET_FS_CONFIG_GEN += $(COMMON_PATH)/config.fs
+TARGET_USERIMAGES_USE_EXT4 := true
+TARGET_USERIMAGES_USE_F2FS := true
+
+## FM Radio
+BOARD_HAVE_SLSI_FM := true
+
+## Kernel
 BOARD_KERNEL_IMAGE_NAME := Image
+TARGET_KERNEL_CLANG_VERSION := r416183b
+TARGET_KERNEL_CLANG_PATH := $(abspath .)/prebuilts/clang/kernel/$(HOST_PREBUILT_TAG)/clang-$(TARGET_KERNEL_CLANG_VERSION)
+TARGET_KERNEL_LLVM_BINUTILS := false
+TARGET_KERNEL_SOURCE := kernel/motorola/exynos9610
 
-# partitions
+## Lineage Health
+TARGET_HEALTH_CHARGING_CONTROL_CHARGING_ENABLED := 0
+TARGET_HEALTH_CHARGING_CONTROL_CHARGING_DISABLED := 1
+TARGET_HEALTH_CHARGING_CONTROL_SUPPORTS_BYPASS := false
+TARGET_HEALTH_CHARGING_CONTROL_SUPPORTS_TOGGLE := true
+TARGET_HEALTH_CHARGING_CONTROL_SUPPORTS_DEADLINE := false
+
+## Manifest
+DEVICE_MANIFEST_FILE := $(COMMON_PATH)/manifest.xml
+
+## Partitions
 BOARD_BOOTIMAGE_PARTITION_SIZE := 67108864
-BOARD_SYSTEMIMAGE_PARTITION_SIZE := 3221225472
-BOARD_VENDORIMAGE_PARTITION_SIZE := 805306368
-BOARD_USERDATAIMAGE_PARTITION_SIZE := 118974455808
 BOARD_DTBOIMG_PARTITION_SIZE := 1048576
-BOARD_BUILD_SYSTEM_ROOT_IMAGE := true
 BOARD_FLASH_BLOCK_SIZE := 131072 # (BOARD_KERNEL_PAGESIZE * 64)
-TARGET_USES_MKE2FS := true
+BOARD_SYSTEMIMAGE_PARTITION_SIZE := 3221225472
+BOARD_USERDATAIMAGE_PARTITION_SIZE := 118974455808
 BOARD_USES_METADATA_PARTITION := true
-BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE := ext4
-TARGET_COPY_OUT_VENDOR := vendor
+BOARD_VENDORIMAGE_PARTITION_SIZE := 805306368
 
-# RIL
-ENABLE_VENDOR_RIL_SERVICE := true
+## Platform
+TARGET_BOARD_PLATFORM := exynos9610
+TARGET_BOOTLOADER_BOARD_NAME := exynos9610
+TARGET_SOC := exynos9610
 
-# Recovery
+## Properties
+BOARD_PROPERTY_OVERRIDES_SPLIT_ENABLED := true
+TARGET_PRODUCT_PROP += $(COMMON_PATH)/product.prop
+TARGET_SYSTEM_PROP += $(COMMON_PATH)/system.prop
+TARGET_VENDOR_PROP += $(COMMON_PATH)/vendor.prop
+
+## Recovery
 BOARD_USES_RECOVERY_AS_BOOT := true
 TARGET_NO_RECOVERY := true
 TARGET_RECOVERY_FSTAB := $(COMMON_PATH)/recovery.fstab
 TARGET_RECOVERY_PIXEL_FORMAT := "ABGR_8888"
-TARGET_USERIMAGES_USE_EXT4 := true
-TARGET_USERIMAGES_USE_F2FS := true
-TARGET_USES_MKE2FS := true
 
-# Security
-VENDOR_SECURITY_PATCH := 2021-04-01
+## RIL
+ENABLE_VENDOR_RIL_SERVICE := true
+
+## Security
+VENDOR_SECURITY_PATCH := 2022-05-01
 
-# Verified Boot
+## SELinux
+BOARD_SEPOLICY_TEE_FLAVOR := mobicore
+include device/lineage/sepolicy/exynos/sepolicy.mk
+include device/samsung_slsi/sepolicy/sepolicy.mk
+
+PRODUCT_PRIVATE_SEPOLICY_DIRS += $(COMMON_PATH)/sepolicy/private
+BOARD_VENDOR_SEPOLICY_DIRS += $(COMMON_PATH)/sepolicy/vendor
+
+## Soong Namespace
+PRODUCT_SOONG_NAMESPACES += $(COMMON_PATH)
+
+## Treble
+BOARD_VNDK_VERSION := current
+
+## Verified Boot
 BOARD_AVB_ENABLE := true
-BOARD_AVB_MAKE_VBMETA_IMAGE_ARGS += --set_hashtree_disabled_flag
-BOARD_AVB_MAKE_VBMETA_IMAGE_ARGS += --flags 2
+BOARD_AVB_MAKE_VBMETA_IMAGE_ARGS += --flags 3
+BOARD_AVB_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP)
 
-# WIFI
+## Wi-Fi
 BOARD_WLAN_DEVICE                := slsi
-WPA_SUPPLICANT_VERSION           := VER_0_8_X
 BOARD_WPA_SUPPLICANT_DRIVER      := NL80211
 BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_slsi
 BOARD_HOSTAPD_DRIVER             := NL80211
 BOARD_HOSTAPD_PRIVATE_LIB        := lib_driver_cmd_slsi
-WIFI_HIDL_FEATURE_AWARE          := true
 WIFI_HIDL_FEATURE_DUAL_INTERFACE := true
-
-BOARD_HAVE_BLUETOOTH_SLSI := true
+WPA_SUPPLICANT_VERSION           := VER_0_8_X
 
 PRODUCT_CFI_INCLUDE_PATHS += hardware/samsung_slsi/scsc_wifibt/wpa_supplicant_lib
 
-# Properties
-BOARD_PROPERTY_OVERRIDES_SPLIT_ENABLED := true
-
-# Treble
-BOARD_VNDK_VERSION := current
-
-# Audio
-USE_XML_AUDIO_POLICY_CONF := 1
-
-# sepolicy
-BOARD_SEPOLICY_TEE_FLAVOR := mobicore
-include device/samsung_slsi/sepolicy/sepolicy.mk
-
-BOARD_PLAT_PRIVATE_SEPOLICY_DIR := $(COMMON_PATH)/sepolicy/private
-
-# Properties
-TARGET_SYSTEM_PROP += $(COMMON_PATH)/system.prop
-TARGET_VENDOR_PROP += $(COMMON_PATH)/vendor.prop
-
-# FMRadio
-BOARD_HAVE_SLSI_FM := true
-
-# Filesystem
-TARGET_FS_CONFIG_GEN += $(COMMON_PATH)/config.fs
-
-# Manifest
-DEVICE_MANIFEST_FILE := $(COMMON_PATH)/manifest.xml
-
-# Display
-TARGET_SCREEN_DENSITY := 480
-
-# Inherit from the proprietary version
--include vendor/motorola/exynos9610-common/BoardConfigVendor.mk
+## BSP (Must be included last)
+include hardware/samsung_slsi-linaro/config/BoardConfig9610.mk