BoardConfig.mk 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233
  1. #
  2. # Copyright (C) 2025 The Android Open Source Project
  3. # Copyright (C) 2025 The TWRP Open Source Project
  4. #
  5. # SPDX-License-Identifier: Apache-2.0
  6. #
  7. # Building with minimal manifest
  8. DEVICE_PATH := device/samsung/dm2q
  9. ALLOW_MISSING_DEPENDENCIES := true
  10. # Rules
  11. BUILD_BROKEN_DUP_RULES := true
  12. BUILD_BROKEN_ELF_PREBUILT_PRODUCT_COPY_FILES := true
  13. BUILD_BROKEN_NINJA_USES_ENV_VARS += RTIC_MPGEN
  14. BUILD_BROKEN_PLUGIN_VALIDATION := soong-libaosprecovery_defaults soong-libguitwrp_defaults soong-libminuitwrp_defaults soong-vold_defaults
  15. # Architecture
  16. TARGET_ARCH := arm64
  17. TARGET_ARCH_VARIANT := armv8-2a
  18. TARGET_CPU_ABI := arm64-v8a
  19. TARGET_CPU_ABI2 :=
  20. TARGET_CPU_VARIANT := generic
  21. TARGET_CPU_VARIANT_RUNTIME := kryo300
  22. TARGET_2ND_ARCH := arm
  23. TARGET_2ND_ARCH_VARIANT := armv8-2a
  24. TARGET_2ND_CPU_ABI := armeabi-v7a
  25. TARGET_2ND_CPU_ABI2 := armeabi
  26. TARGET_2ND_CPU_VARIANT := generic
  27. TARGET_2ND_CPU_VARIANT_RUNTIME := cortex-a75
  28. ENABLE_CPUSETS := true
  29. ENABLE_SCHEDBOOST := true
  30. # Bootloader
  31. BOARD_VENDOR := samsung
  32. TARGET_SOC := kalama
  33. TARGET_BOOTLOADER_BOARD_NAME := $(TARGET_SOC)
  34. TARGET_BOARD_PLATFORM := $(TARGET_SOC)
  35. QCOM_BOARD_PLATFORMS := $(TARGET_SOC)
  36. TARGET_NO_BOOTLOADER := true
  37. TARGET_NO_RADIOIMAGE := true
  38. TARGET_USES_UEFI := true
  39. # Display
  40. TARGET_USES_VULKAN := true
  41. # Platform
  42. BOARD_USES_QCOM_HARDWARE := true
  43. TARGET_BOARD_PLATFORM_GPU := qcom-adreno740
  44. # Kernel
  45. TARGET_PREBUILT_KERNEL := $(DEVICE_PATH)/prebuilt/Image.gz
  46. TARGET_PREBUILT_DTB := $(DEVICE_PATH)/prebuilt/dtb
  47. BOARD_PREBUILT_DTBOIMAGE := $(DEVICE_PATH)/prebuilt/recovery_dtbo
  48. BOARD_INCLUDE_RECOVERY_DTBO := true
  49. TARGET_KERNEL_ARCH := arm64
  50. # Boot
  51. BOARD_BOOT_HEADER_VERSION := 2
  52. BOARD_KERNEL_BASE := 0x00000000
  53. BOARD_KERNEL_CMDLINE := video=vfb:640x400,bpp=32,memsize=3072000 printk.devkmsg=on firmware_class.path=/vendor/firmware_mnt/image bootconfig androidboot.hardware=qcom androidboot.memcg=1 androidboot.usbcontroller=a600000.dwc3 loop.max_part=7 androidboot.selinux=permissive
  54. BOARD_KERNEL_IMAGE_NAME := Image
  55. BOARD_KERNEL_PAGESIZE := 4096
  56. BOARD_KERNEL_OFFSET := 0x00008000
  57. BOARD_RAMDISK_OFFSET := 0x02000000
  58. BOARD_KERNEL_SECOND_OFFSET := 0x00000000
  59. BOARD_KERNEL_TAGS_OFFSET := 0x01e00000
  60. BOARD_DTB_OFFSET := 0x01f00000
  61. BOARD_MKBOOTIMG_ARGS += --header_version $(BOARD_BOOT_HEADER_VERSION)
  62. BOARD_MKBOOTIMG_ARGS += --ramdisk_offset $(BOARD_RAMDISK_OFFSET)
  63. BOARD_MKBOOTIMG_ARGS += --tags_offset $(BOARD_KERNEL_TAGS_OFFSET)
  64. BOARD_MKBOOTIMG_ARGS += --dtb $(TARGET_PREBUILT_DTB) --board "SRPVH05C005"
  65. BOARD_CUSTOM_BOOTIMG_MK := $(DEVICE_PATH)/mkboot/bootimg.mk
  66. # Verified Boot
  67. BOARD_AVB_ENABLE := true
  68. # Partitions
  69. BOARD_PROPERTY_OVERRIDES_SPLIT_ENABLED := true
  70. # Recovery
  71. BOARD_HAS_LARGE_FILESYSTEM := true
  72. BOARD_HAS_NO_SELECT_BUTTON := true
  73. RECOVERY_SDCARD_ON_DATA := true
  74. TARGET_RECOVERY_QCOM_RTC_FIX := true
  75. TARGET_RECOVERY_PIXEL_FORMAT := "RGBX_8888"
  76. TW_INCLUDE_FASTBOOTD := true
  77. # Partitions
  78. BOARD_FLASH_BLOCK_SIZE := 262144
  79. BOARD_BOOTIMAGE_PARTITION_SIZE := 109051904
  80. BOARD_RECOVERYIMAGE_PARTITION_SIZE := 109051904
  81. # Dynamic Partitions
  82. BOARD_SUPER_PARTITION_SIZE := 12664700928
  83. BOARD_SUPER_PARTITION_GROUPS := samsung_dynamic_partitions
  84. BOARD_SAMSUNG_DYNAMIC_PARTITIONS_SIZE := 12664700928
  85. BOARD_SAMSUNG_DYNAMIC_PARTITIONS_PARTITION_LIST := system vendor system_ext vendor_dlkm product odm
  86. # System as root
  87. BOARD_ROOT_EXTRA_FOLDERS := \
  88. cache \
  89. carrier \
  90. data_mirror \
  91. efs \
  92. linkerconfig \
  93. odm_dlkm \
  94. oem \
  95. optics \
  96. postinstall \
  97. prism \
  98. second_stage_resources \
  99. spu \
  100. system_ext \
  101. vendor_dlkm
  102. BOARD_SUPPRESS_SECURE_ERASE := true
  103. # File systems
  104. TARGET_USERIMAGES_USE_EXT4 := true
  105. TARGET_USERIMAGES_USE_F2FS := true
  106. # Workaround for error copying vendor files to recovery ramdisk
  107. BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE := erofs
  108. BOARD_SYSTEMIMAGE_FILE_SYSTEM_TYPE := erofs
  109. BOARD_USERDATAIMAGE_FILE_SYSTEM_TYPE := f2fs
  110. TARGET_COPY_OUT_VENDOR := vendor
  111. TARGET_USERIMAGES_USE_EXT4 := true
  112. TARGET_USERIMAGES_USE_F2FS := true
  113. # A/B
  114. AB_OTA_UPDATER := false
  115. # Android Verified Boot
  116. BOARD_AVB_ENABLE := true
  117. BOARD_AVB_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP)
  118. BOARD_AVB_RECOVERY_KEY_PATH := external/avb/test/data/testkey_rsa4096.pem
  119. BOARD_AVB_RECOVERY_ALGORITHM := SHA256_RSA4096
  120. BOARD_AVB_RECOVERY_ROLLBACK_INDEX := 1
  121. BOARD_AVB_RECOVERY_ROLLBACK_INDEX_LOCATION := 1
  122. BOARD_AVB_MAKE_VBMETA_IMAGE_ARGS += --flag 2
  123. TARGET_RECOVERY_FSTAB := $(DEVICE_PATH)/recovery/root/system/etc/recovery.fstab
  124. # Extras
  125. TARGET_SYSTEM_PROP += $(DEVICE_PATH)/system.prop
  126. # Crypto
  127. PLATFORM_SECURITY_PATCH := 2029-12-31
  128. VENDOR_SECURITY_PATCH := 2029-12-31
  129. PLATFORM_VERSION := 99.87.36
  130. TW_INCLUDE_CRYPTO := false
  131. TW_INCLUDE_CRYPTO_FBE := false
  132. BOARD_USES_QCOM_FBE_DECRYPTION := false
  133. TW_INCLUDE_FBE_METADATA_DECRYPT := false
  134. BOARD_USES_METADATA_PARTITION := true
  135. TW_USE_FSCRYPT_POLICY := 2
  136. # VNDK Treble
  137. BOARD_VNDK_VERSION := current
  138. # Use LZ4 Ramdisk compression
  139. BOARD_RAMDISK_USE_LZ4 := true
  140. # PRODUCT_COPY_FILES directives.
  141. BUILD_BROKEN_ELF_PREBUILT_PRODUCT_COPY_FILES := true
  142. TW_LOAD_VENDOR_MODULES := "qcom_wdt_core.ko gh_virt_wdt.ko qcom_cpu_vendor_hooks.ko clk-rpmh.ko gcc-kalama.ko icc-rpmh.ko camcc-kalama.ko qcom_ipcc.ko qcom-pdc.ko thermal_minidump.ko qcom_tsens.ko rpmh-regulator.ko bwmon.ko qcom-cpufreq-hw.ko sched-walt.ko thermal_pause.ko cpu_hotplug.ko clk-dummy.ko clk-qcom.ko cmd-db.ko cqhci.ko crypto-qti-common.ko crypto-qti-hwkm.ko dcc_v2.ko dcvs_fp.ko dispcc-kalama.ko tcsrcc-kalama.ko videocc-kalama.ko gdsc-regulator.ko gh_arm_drv.ko gh_ctrl.ko gh_dbl.ko gh_msgq.ko gh_rm_drv.ko gunyah.ko mdt_loader.ko hwkm.ko icc-bcm-voter.ko iommu-logger.ko llcc-qcom.ko mem-hooks.ko mem_buf_dev.ko mem_buf_msgq.ko mem_buf.ko memory_dump_v2.ko minidump.ko msm_dma_iommu_mapping.ko pinctrl-kalama.ko qnoc-kalama.ko nvmem_qcom-spmi-sdam.ko phy-qcom-ufs.ko phy-qcom-ufs-qmp-v4-kalama.ko phy-qcom-ufs-qrbtc-sdm845.ko pinctrl-msm.ko pinctrl-somc.ko proxy-consumer.ko qcom-dcvs.ko qcom-dload-mode.ko qcom_dma_heaps.ko qcom_hwspinlock.ko debug_symbol.ko qcom_logbuf_vh.ko qcom_iommu_util.ko qcom_llcc_pmu.ko qcom-pmu-lib.ko pmu_vendor.ko pmu_scmi.ko qcom-spmi-pmic.ko spmi-pmic-arb.ko qcom-reboot-reason.ko qcom_rpmh.ko qcom-scm.ko qnoc-qos.ko qrtr.ko regmap-spmi.ko rtc-pm8xxx.ko secure_buffer.ko smem.ko socinfo.ko stub-regulator.ko qcom_aoss.ko msm_qmp.ko tmecom-intf.ko ufs_qcom.ko ufshcd-crypto-qti.ko arm_smmu.ko sdhci-msm.ko qcom_rimps.ko c1dcvs_vendor.ko c1dcvs_scmi.ko bcl_pmic5.ko nvme-core.ko nvme.ko wakeup_irq_debug.ko msm_sysstats.ko msm_show_resume_irq.ko mhi.ko mhi_cntrl_qcom.ko mhi_dev_uci.ko mhi_dev_netdev.ko mhi_dev_dtr.ko mhi_dev_satellite.ko phy-qcom-ufs-qmp-v4-waipio.ko phy-qcom-ufs-qmp-v4.ko phy-qcom-ufs-qmp-v4-khaje.ko pinctrl-spmi-gpio.ko pinctrl-spmi-mpp.ko pinctrl-somc-pmic.ko pwm-qti-lpg.ko pci-msm-drv.ko debugcc-kalama.ko gpucc-kalama.ko bam_dma.ko msm_gpi.ko pdr_interface.ko qmi_helpers.ko heap_mem_ext_v01.ko msm_memshare.ko smp2p.ko smp2p_sleepstate.ko qsee_ipc_irq_bridge.ko glink_probe.ko glink_pkt.ko pmic_glink.ko altmode-glink.ko soc_sleep_stats.ko cdsprm.ko sysmon_subsystem_stats.ko subsystem_sleep_stats.ko adsp_sleepmon.ko eud.ko microdump_collector.ko llcc_perfmon.ko cdsp-loader.ko pmic-pon-log.ko boot_stats.ko rq_stats.ko core_hang_detect.ko usb_bam.ko memlat.ko memlat_scmi.ko qcom_ramdump.ko panel_event_notifier.ko dmesg_dumper.ko sys_pm_vx.ko qdss_bridge.ko fsa4480-i2c.ko msm_show_epoch.ko gh_tlmm_vm_mem_access.ko sps_drv.ko spss_utils.ko spcom.ko msm_performance.ko qcom_va_minidump.ko qbt_handler.ko hung_task_enh.ko qti-fixed-regulator.ko qti-ocp-notifier.ko hvc_gunyah.ko msm_geni_serial.ko frpc-adsprpc.ko rdbg.ko lt9611uxc.ko qseecom_proxy.ko sg.ko spi-msm-geni.ko smsc.ko smsc75xx.ko smsc95xx.ko msm_sharedmem.ko phy-generic.ko phy-qcom-emu.ko phy-msm-ssusb-qmp.ko phy-msm-snps-eusb2.ko phy-msm-m31-eusb2.ko dwc3-msm.ko ehset.ko usb_f_cdev.ko usb_f_ccid.ko usb_f_qdss.ko usb_f_gsi.ko usb_f_diag.ko ucsi_glink.ko usbmon.ko repeater.ko repeater-qti-pmic-eusb2.ko repeater-i2c-eusb2.ko redriver.ko pm8941-pwrkey.ko i2c-msm-geni.ko i3c-master-msm-geni.ko qcom_ipc_lite.ko synx-driver.ko qcom-pon.ko reboot-mode.ko qti_battery_charger.ko qcom-spmi-temp-alarm.ko bcl_soc.ko cpu_voltage_cooling.ko ddr_cdev.ko max31760_fan.ko msm_lmh_dcvs.ko policy_engine.ko qti_qmi_cdev.ko qti_qmi_sensor_v2.ko qti_cpufreq_cdev.ko qti_devfreq_cdev.ko qti_userspace_cdev.ko sdpm_clk.ko qcom_edac.ko qcom_lpm.ko mmc_log_probes.ko leds-qti-flash.ko leds-qti-tri-led.ko memlat_vendor.ko ipa_fmwk.ko qcom_pil_info.ko rproc_qcom_common.ko qcom_q6v5.ko qcom_q6v5_pas.ko qcom_spss.ko qcom_esoc.ko qcom_sysmon.ko qcom_glink.ko qcom_glink_smem.ko qcom_glink_spss.ko qcom_smd.ko gh_irq_lend.ko gh_mem_notifier.ko qcom-spmi-adc5-gen3.ko qcom-vadc-common.ko nvmem_qfprom.ko slimbus.ko slim-qcom-ngd-ctrl.ko stm_core.ko stm_p_basic.ko stm_p_ost.ko stm_console.ko stm_ftrace.ko snd-usb-audio-qmi.ko snd-soc-hdmi-codec.ko cfg80211.ko mac80211.ko qrtr-smd.ko qrtr-mhi.ko qrtr-gunyah.ko qca_cld3_kiwi_v2.ko cnss2.ko cnss_plat_ipc_qmi_svc.ko wlan_firmware_service.ko cnss_nl.ko cnss_prealloc.ko cnss_utils.ko q6_notifier_dlkm.ko spf_core_dlkm.ko audpkt_ion_dlkm.ko gpr_dlkm.ko audio_pkt_dlkm.ko q6_dlkm.ko adsp_loader_dlkm.ko audio_prm_dlkm.ko q6_pdr_dlkm.ko pinctrl_lpi_dlkm.ko swr_dlkm.ko swr_ctrl_dlkm.ko snd_event_dlkm.ko wcd_core_dlkm.ko mbhc_dlkm.ko wcd9xxx_dlkm.ko stub_dlkm.ko machine_dlkm.ko swr_dmic_dlkm.ko swr_haptics_dlkm.ko hdmi_dlkm.ko lpass_cdc_wsa2_macro_dlkm.ko lpass_cdc_wsa_macro_dlkm.ko lpass_cdc_va_macro_dlkm.ko lpass_cdc_rx_macro_dlkm.ko lpass_cdc_tx_macro_dlkm.ko lpass_cdc_dlkm.ko wsa884x_dlkm.ko wsa883x_dlkm.ko wcd938x_dlkm.ko wcd938x_slave_dlkm.ko tz_log_dlkm.ko qcedev-mod_dlkm.ko qcrypto-msm_dlkm.ko qce50_dlkm.ko hdcp_qseecom_dlkm.ko qrng_dlkm.ko smcinvoke_dlkm.ko cirrus_wm_adsp.ko cirrus_cs35l45.ko somc_battchg_ext.ko et603-int.ko cirrus_cs40l2x.ko cirrus_cs40l2x_codec.ko lxs_touchscreen.ko btpower.ko bt_fm_slim.ko radio-i2c-rtc6226-qca.ko gsim.ko ipam.ko ipanetm.ko rndisipam.ko ipa_clientsm.ko rmnet_core.ko rmnet_ctl.ko rmnet_offload.ko rmnet_perf_tether.ko rmnet_perf.ko rmnet_shs.ko rmnet_aps.ko rmnet_sch.ko rmnet_wlan.ko msm_drm.ko msm-eva.ko msm_ext_display.ko sync_fence.ko msm_hw_fence.ko msm-mmrm.ko nxp-nci.ko msm_video.ko slg51000-regulator.ko msm_kgsl.ko"
  143. TW_LOAD_VENDOR_BOOT_MODULES := true
  144. TW_LOAD_VENDOR_MODULES_EXCLUDE_GKI := true
  145. # TWRP specific build flags
  146. TW_THEME := portrait_hdpi
  147. TW_DEVICE_VERSION := 0_EduardoA3677
  148. TW_FRAMERATE := 120
  149. TW_MAX_BRIGHTNESS := 510
  150. TW_DEFAULT_BRIGHTNESS := 255
  151. TW_BRIGHTNESS_PATH := "/sys/class/backlight/panel0-backlight/brightness"
  152. TW_CUSTOM_CPU_TEMP_PATH := /sys/class/thermal/thermal_zone50/temp
  153. TARGET_USE_CUSTOM_LUN_FILE_PATH := /config/usb_gadget/g1/functions/mass_storage.0/lun.%d/file
  154. TW_SCREEN_BLANK_ON_BOOT := true
  155. TW_EXCLUDE_APEX := true
  156. TW_INCLUDE_NTFS_3G := true
  157. TARGET_USES_MKE2FS := true
  158. TW_EXCLUDE_DEFAULT_USB_INIT := true
  159. TW_NO_HAPTICS := true
  160. TW_USE_NEW_MINADBD := true
  161. TW_INPUT_BLACKLIST := "hbtp_vm"
  162. TW_EXCLUDE_DEFAULT_USB_INIT := true
  163. TW_USE_TOOLBOX := true
  164. TARGET_USES_MKE2FS := true
  165. TW_NO_LEGACY_PROPS := true
  166. TW_NO_BIND_SYSTEM := true
  167. TW_USE_MODEL_HARDWARE_ID_FOR_DEVICE_ID := true
  168. TW_EXTRA_LANGUAGES := true
  169. TW_BACKUP_EXCLUSIONS := /data/fonts
  170. # Magisk
  171. TW_INCLUDE_REPACKTOOLS := true
  172. TW_INCLUDE_LIBRESETPROP := true
  173. TW_INCLUDE_RESETPROP := true
  174. TW_INCLUDE_FB2PNG := true
  175. TW_INCLUDE_NTFS_3G := true
  176. TW_INCLUDE_LIBRESETPROP := true
  177. # Download mode
  178. TW_NO_REBOOT_BOOTLOADER := true
  179. TW_HAS_DOWNLOAD_MODE := true
  180. # Logd
  181. TARGET_USES_LOGD := true
  182. TWRP_INCLUDE_LOGCAT := true
  183. TARGET_RECOVERY_DEVICE_MODULES += debuggerd
  184. RECOVERY_BINARY_SOURCE_FILES += $(TARGET_OUT_EXECUTABLES)/debuggerd
  185. TARGET_RECOVERY_DEVICE_MODULES += strace
  186. RECOVERY_BINARY_SOURCE_FILES += $(TARGET_OUT_EXECUTABLES)/strace
  187. # Fastbootd
  188. TW_INCLUDE_FASTBOOTD := true
  189. # F2FS
  190. TW_ENABLE_FS_COMPRESSION := true
  191. # Super Image Tools
  192. TW_INCLUDE_LPDUMP := true
  193. TW_INCLUDE_LPTOOLS := true
  194. # Statusbar icons flags
  195. TW_STATUS_ICONS_ALIGN := center