# # Copyright (C) 2021-2025 The LineageOS Project # # SPDX-License-Identifier: Apache-2.0 # # Add common definitions for Qualcomm $(call inherit-product, hardware/qcom-caf/common/common.mk) # AAPT PRODUCT_AAPT_CONFIG := normal PRODUCT_AAPT_PREF_CONFIG := xxhdpi # A/B $(call inherit-product, $(SRC_TARGET_DIR)/product/virtual_ab_ota/launch_with_vendor_ramdisk.mk) AB_OTA_POSTINSTALL_CONFIG += \ RUN_POSTINSTALL_system=true \ POSTINSTALL_PATH_system=system/bin/otapreopt_script \ FILESYSTEM_TYPE_system=ext4 \ POSTINSTALL_OPTIONAL_system=true AB_OTA_POSTINSTALL_CONFIG += \ RUN_POSTINSTALL_vendor=true \ POSTINSTALL_PATH_vendor=bin/checkpoint_gc \ FILESYSTEM_TYPE_vendor=erofs \ POSTINSTALL_OPTIONAL_vendor=true PRODUCT_PACKAGES += \ checkpoint_gc \ otapreopt_script # ANT+ PRODUCT_PACKAGES += \ AntHalService-Soong # Audio PRODUCT_PACKAGES += \ android.hardware.audio@6.0-impl \ android.hardware.audio.effect@6.0-impl \ android.hardware.audio.service \ android.hardware.bluetooth.audio-impl \ android.hardware.soundtrigger@2.3-impl \ audio.bluetooth.default \ audio.primary.holi \ audio.r_submix.default \ audio.usb.default \ audioadsprpcd \ liba2dpoffload \ libbatterylistener \ libcomprcapture \ libexthwplugin \ libhdmiedid \ libhfp \ libqcompostprocbundle \ libqcomvisualizer \ libqcomvoiceprocessing \ libsndmonitor \ libspkrprot \ libssrec \ libvolumelistener \ sound_trigger.primary.holi:32 AUDIO_HAL_DIR := hardware/qcom-caf/sm8350/audio PRODUCT_COPY_FILES += \ $(AUDIO_HAL_DIR)/configs/common/audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration.xml \ $(AUDIO_HAL_DIR)/configs/holi/audio_effects.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_effects.xml \ $(AUDIO_HAL_DIR)/configs/holi/audio_io_policy.conf:$(TARGET_COPY_OUT_VENDOR)/etc/audio_io_policy.conf \ $(AUDIO_HAL_DIR)/configs/holi/audio_platform_info_intcodec.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info_intcodec.xml \ $(AUDIO_HAL_DIR)/configs/holi/audio_tuning_mixer.txt:$(TARGET_COPY_OUT_VENDOR)/etc/audio_tuning_mixer.txt \ $(AUDIO_HAL_DIR)/configs/holi/sound_trigger_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_platform_info.xml \ $(LOCAL_PATH)/audio/audio_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info.xml \ $(LOCAL_PATH)/audio/audio_policy_configuration_a2dp_offload_disabled.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/audio_policy_configuration.xml \ $(LOCAL_PATH)/audio/bluetooth_hearing_aid_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_hearing_aid_audio_policy_configuration.xml \ $(LOCAL_PATH)/audio/mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths.xml \ $(LOCAL_PATH)/audio/sound_trigger_mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths.xml PRODUCT_COPY_FILES += \ frameworks/av/services/audiopolicy/config/audio_policy_volumes.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_holi/audio_policy_volumes.xml \ frameworks/av/services/audiopolicy/config/audio_policy_volumes.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_volumes.xml \ frameworks/av/services/audiopolicy/config/bluetooth_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_audio_policy_configuration.xml \ frameworks/av/services/audiopolicy/config/default_volume_tables.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_holi/default_volume_tables.xml \ frameworks/av/services/audiopolicy/config/default_volume_tables.xml:$(TARGET_COPY_OUT_VENDOR)/etc/default_volume_tables.xml \ frameworks/av/services/audiopolicy/config/r_submix_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_holi/r_submix_audio_policy_configuration.xml \ frameworks/av/services/audiopolicy/config/r_submix_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/r_submix_audio_policy_configuration.xml \ frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_holi/usb_audio_policy_configuration.xml \ frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/usb_audio_policy_configuration.xml PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.hardware.audio.low_latency.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.audio.low_latency.xml \ frameworks/native/data/etc/android.software.midi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.midi.xml # Bluetooth PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.hardware.bluetooth.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.bluetooth.xml \ frameworks/native/data/etc/android.hardware.bluetooth_le.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.bluetooth_le.xml # Boot animation TARGET_SCREEN_HEIGHT := 2400 TARGET_SCREEN_WIDTH := 1080 # Boot control PRODUCT_PACKAGES += \ android.hardware.boot-service.qti \ android.hardware.boot-service.qti.recovery # Camera PRODUCT_PACKAGES += \ android.hardware.camera.provider@2.4-impl \ android.hardware.camera.provider@2.4-service_64 PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.hardware.camera.flash-autofocus.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.flash-autofocus.xml \ frameworks/native/data/etc/android.hardware.camera.front.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.front.xml \ frameworks/native/data/etc/android.hardware.camera.full.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.full.xml \ frameworks/native/data/etc/android.hardware.camera.raw.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.raw.xml # Dalvik $(call inherit-product, frameworks/native/build/phone-xhdpi-4096-dalvik-heap.mk) # DebugFS PRODUCT_SET_DEBUGFS_RESTRICTIONS := true # Display PRODUCT_PACKAGES += \ android.hardware.graphics.mapper@3.0-impl-qti-display \ android.hardware.graphics.mapper@4.0-impl-qti-display \ init.qti.display_boot.sh \ vendor.qti.hardware.display.allocator-service \ vendor.qti.hardware.display.composer-service \ vendor.qti.hardware.memtrack-service PRODUCT_COPY_FILES += \ hardware/qcom-caf/sm8350/display/config/snapdragon_color_libs_config.xml:$(TARGET_COPY_OUT_VENDOR)/etc/snapdragon_color_libs_config.xml # Doze PRODUCT_PACKAGES += \ OplusDoze # DRM PRODUCT_PACKAGES += \ android.hardware.drm-service.clearkey \ wvmkiller # Fastboot PRODUCT_PACKAGES += \ android.hardware.fastboot@1.1-impl.custom \ fastbootd # Fingerprint PRODUCT_PACKAGES += \ android.hardware.biometrics.fingerprint@2.3-service.oplus PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.hardware.fingerprint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.fingerprint.xml # FM Radio PRODUCT_PACKAGES += \ FM2 \ qcom.fmradio # GPS PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.hardware.location.gps.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.location.gps.xml # Graphics PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.hardware.opengles.aep.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.opengles.aep.xml \ frameworks/native/data/etc/android.hardware.vulkan.compute-0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.compute-0.xml \ frameworks/native/data/etc/android.hardware.vulkan.level-1.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.level-1.xml \ frameworks/native/data/etc/android.hardware.vulkan.version-1_1.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.version-1_1.xml \ frameworks/native/data/etc/android.software.vulkan.deqp.level-2020-03-01.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.vulkan.deqp.level.xml # Health PRODUCT_PACKAGES += \ android.hardware.health-service.qti # Hotword enrollment PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/configs/privapp-permissions-hotword.xml:$(TARGET_COPY_OUT_PRODUCT)/etc/permissions/privapp-permissions-hotword.xml # Init PRODUCT_PACKAGES += \ fstab.qcom \ fstab.qcom.vendor_ramdisk \ init.class_main.sh \ init.oplus.rc \ init.qcom.early_boot.sh \ init.qcom.rc \ init.qcom.recovery.rc \ init.qcom.sh \ init.qcom.usb.rc \ init.qcom.usb.sh \ init.target.rc \ ueventd.oplus.rc \ ueventd.qcom.rc # IPACM PRODUCT_PACKAGES += \ ipacm \ IPACM_cfg.xml # Kernel PRODUCT_ENABLE_UFFD_GC := false # Lineage Health PRODUCT_PACKAGES += \ vendor.lineage.health-service.default # LiveDisplay PRODUCT_PACKAGES += \ vendor.lineage.livedisplay@2.1-service.oplus $(call soong_config_set,OPLUS_LINEAGE_LIVEDISPLAY_HAL,ENABLE_SE,false) # Media PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/media/media_codecs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs.xml \ $(LOCAL_PATH)/media/media_codecs_blair.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_blair.xml \ $(LOCAL_PATH)/media/media_codecs_blair_lite.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_blair_lite.xml \ $(LOCAL_PATH)/media/media_codecs_holi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_holi.xml \ $(LOCAL_PATH)/media/media_codecs_performance.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_performance.xml \ $(LOCAL_PATH)/media/media_codecs_performance_blair.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_performance_blair.xml \ $(LOCAL_PATH)/media/media_codecs_performance_blair_lite.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_performance_blair_lite.xml \ $(LOCAL_PATH)/media/media_codecs_performance_holi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_performance_holi.xml \ $(LOCAL_PATH)/media/media_profiles_holi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles_vendor.xml # NFC PRODUCT_PACKAGES += \ android.hardware.nfc-service.st \ com.android.nfc_extras \ nfc_nci.st21nfc.default \ Tag PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/nfc/libnfc-hal-st.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libnfc-hal-st.conf \ frameworks/native/data/etc/android.hardware.nfc.hce.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.hce.xml \ frameworks/native/data/etc/android.hardware.nfc.hcef.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.hcef.xml \ frameworks/native/data/etc/android.hardware.nfc.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.xml # Overlays $(call inherit-product, hardware/oplus/overlay/generic/generic.mk) $(call inherit-product, hardware/oplus/overlay/qssi/qssi.mk) DEVICE_PACKAGE_OVERLAYS += \ $(LOCAL_PATH)/overlay-lineage PRODUCT_ENFORCE_RRO_TARGETS := * PRODUCT_PACKAGES += \ CarrierConfigResCommon \ FrameworksResTarget \ OPlusFrameworksResTarget \ OPlusSettingsProviderResTarget \ OPlusSettingsResTarget \ OPlusSystemUIResTarget \ WifiResTarget # Partitions PRODUCT_PACKAGES += \ vendor_bt_firmware_mountpoint \ vendor_dsp_mountpoint \ vendor_firmware_mnt_mountpoint PRODUCT_USE_DYNAMIC_PARTITIONS := true # Perf PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/configs/task_profiles.json:$(TARGET_COPY_OUT_VENDOR)/etc/task_profiles.json # Power PRODUCT_PACKAGES += \ android.hardware.power-service-qti # QTI fwk-detect PRODUCT_PACKAGES += \ libvndfwk_detect_jni.qti.vendor # Needed by CNE app # Sensors PRODUCT_PACKAGES += \ android.hardware.sensors-service.multihal \ PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.hardware.sensor.accelerometer.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.accelerometer.xml \ frameworks/native/data/etc/android.hardware.sensor.barometer.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.barometer.xml \ frameworks/native/data/etc/android.hardware.sensor.compass.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.compass.xml \ frameworks/native/data/etc/android.hardware.sensor.gyroscope.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.gyroscope.xml \ frameworks/native/data/etc/android.hardware.sensor.hifi_sensors.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensors.hifi_sensors.xml \ frameworks/native/data/etc/android.hardware.sensor.light.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.light.xml \ frameworks/native/data/etc/android.hardware.sensor.proximity.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.proximity.xml \ frameworks/native/data/etc/android.hardware.sensor.stepcounter.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.stepcounter.xml \ frameworks/native/data/etc/android.hardware.sensor.stepdetector.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.stepdetector.xml # Shipping API BOARD_SHIPPING_API_LEVEL := 30 PRODUCT_SHIPPING_API_LEVEL := $(BOARD_SHIPPING_API_LEVEL) # Soong namespaces PRODUCT_SOONG_NAMESPACES += \ $(LOCAL_PATH) \ hardware/oplus # Storage $(call inherit-product, $(SRC_TARGET_DIR)/product/emulated_storage.mk) # Telephony PRODUCT_PACKAGES += \ extphonelib \ extphonelib-product \ extphonelib.xml \ extphonelib_product.xml \ ims-ext-common \ ims_ext_common.xml \ qti-telephony-hidl-wrapper \ qti-telephony-hidl-wrapper-prd \ qti_telephony_hidl_wrapper.xml \ qti_telephony_hidl_wrapper_prd.xml \ qti-telephony-utils \ qti-telephony-utils-prd \ qti_telephony_utils.xml \ qti_telephony_utils_prd.xml \ telephony-ext PRODUCT_BOOT_JARS += \ telephony-ext PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/configs/privapp-permissions-qti.xml:$(TARGET_COPY_OUT_SYSTEM_EXT)/etc/permissions/privapp-permissions-qti.xml PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.hardware.telephony.cdma.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.telephony.cdma.xml \ frameworks/native/data/etc/android.hardware.telephony.gsm.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.telephony.gsm.xml \ frameworks/native/data/etc/android.hardware.telephony.ims.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.telephony.ims.xml \ frameworks/native/data/etc/android.software.sip.voip.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.sip.voip.xml $(call inherit-product, hardware/oplus/oplus-fwk/oplus-fwk.mk) # Thermal PRODUCT_PACKAGES += \ android.hardware.thermal-service.qti # Touch PRODUCT_PACKAGES += \ vendor.lineage.touch@1.0-service.oplus PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.hardware.touchscreen.multitouch.jazzhand.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.touchscreen.multitouch.jazzhand.xml # Update engine PRODUCT_PACKAGES += \ update_engine \ update_engine_sideload \ update_verifier PRODUCT_PACKAGES_DEBUG += \ update_engine_client # USB PRODUCT_PACKAGES += \ android.hardware.usb-service.qti PRODUCT_SOONG_NAMESPACES += \ vendor/qcom/opensource/usb/etc PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.hardware.usb.accessory.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.usb.accessory.xml \ frameworks/native/data/etc/android.hardware.usb.host.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.usb.host.xml # Vendor service manager PRODUCT_PACKAGES += \ vndservicemanager # Verified Boot PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.software.verified_boot.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.verified_boot.xml # Vibrator PRODUCT_PACKAGES += \ vendor.qti.hardware.vibrator.service PRODUCT_COPY_FILES += \ vendor/qcom/opensource/vibrator/excluded-input-devices.xml:$(TARGET_COPY_OUT_VENDOR)/etc/excluded-input-devices.xml # WiFi PRODUCT_PACKAGES += \ android.hardware.wifi-service \ hostapd \ libwpa_client \ libwifi-hal-ctrl \ libwifi-hal-qcom \ wpa_supplicant \ wpa_supplicant.conf PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.hardware.wifi.aware.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.aware.xml \ frameworks/native/data/etc/android.hardware.wifi.direct.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.direct.xml \ frameworks/native/data/etc/android.hardware.wifi.passpoint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.passpoint.xml \ frameworks/native/data/etc/android.hardware.wifi.rtt.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.rtt.xml \ frameworks/native/data/etc/android.hardware.wifi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.xml \ frameworks/native/data/etc/android.software.ipsec_tunnels.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.ipsec_tunnels.xml # WiFi firmware symlinks PRODUCT_PACKAGES += \ firmware_wlan_mac.bin_symlink \ firmware_WCNSS_qcom_cfg.ini_symlink # Get non-open-source specific aspects $(call inherit-product, vendor/oneplus/dre/dre-vendor.mk)