# # SPDX-FileCopyrightText: 2022-2025 The LineageOS Project # SPDX-License-Identifier: Apache-2.0 # # Installs gsi keys into ramdisk, to boot a developer GSI with verified boot. $(call inherit-product, $(SRC_TARGET_DIR)/product/developer_gsi_keys.mk) # Setup dalvik vm configs PRODUCT_VENDOR_PROPERTIES += \ dalvik.vm.heapstartsize?=16m \ dalvik.vm.heapgrowthlimit?=384m \ dalvik.vm.heapsize?=512m \ dalvik.vm.heaptargetutilization?=0.75 \ dalvik.vm.heapminfree?=512k \ dalvik.vm.heapmaxfree?=8m # Add common definitions for Qualcomm $(call inherit-product, hardware/qcom-caf/common/common.mk) # Get non-open-source specific aspects $(call inherit-product, vendor/nothing/Spacewar/Spacewar-vendor.mk) # Overlays DEVICE_PACKAGE_OVERLAYS += \ $(LOCAL_PATH)/overlay \ $(LOCAL_PATH)/overlay-lineage PRODUCT_PACKAGES += \ NcmTetheringOverlay PRODUCT_ENFORCE_RRO_TARGETS := * # Logging SPAMMY_LOG_TAGS := \ MiStcImpl \ SDM \ SDM-histogram \ SRE \ WifiHAL \ cnss-daemon \ libcitsensorservice@2.0-impl \ libsensor-displayalgo \ libsensor-parseRGB \ libsensor-ssccalapi \ sensors \ vendor.qti.hardware.display.composer-service \ vendor.xiaomi.sensor.citsensorservice@2.0-service ifneq ($(TARGET_BUILD_VARIANT),eng) PRODUCT_VENDOR_PROPERTIES += \ $(foreach tag,$(SPAMMY_LOG_TAGS),log.tag.$(tag)=E) endif # Soong namespaces PRODUCT_SOONG_NAMESPACES += \ $(LOCAL_PATH) \ hardware/nothing \ vendor/qcom/opensource/usb/etc # 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 # Boot animation TARGET_SCREEN_HEIGHT := 2400 TARGET_SCREEN_WIDTH := 1080 # Shipping API level PRODUCT_SHIPPING_API_LEVEL := 31 # Paranoid Glyph PRODUCT_PACKAGES += \ ParanoidGlyphPhone1 \ GlyphAdapter # Partitions PRODUCT_USE_DYNAMIC_PARTITIONS := true # Partitions PRODUCT_PACKAGES += \ vendor_bt_firmware_mountpoint \ vendor_dsp_mountpoint \ vendor_firmware_mnt_mountpoint # Permissions 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.hardware.audio.pro.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.audio.pro.xml \ frameworks/native/data/etc/android.hardware.bluetooth_le.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.bluetooth_le.xml \ frameworks/native/data/etc/android.hardware.bluetooth.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.bluetooth.xml \ 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 \ frameworks/native/data/etc/android.hardware.fingerprint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.fingerprint.xml \ frameworks/native/data/etc/android.hardware.location.gps.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.location.gps.xml \ 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 \ 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.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.hardware.touchscreen.multitouch.jazzhand.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.touchscreen.multitouch.jazzhand.xml \ 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 \ 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.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_tunnel_migration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.ipsec_tunnel_migration.xml \ frameworks/native/data/etc/android.software.ipsec_tunnels.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.ipsec_tunnels.xml \ frameworks/native/data/etc/android.software.midi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.midi.xml \ frameworks/native/data/etc/android.software.opengles.deqp.level-2020-03-01.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.opengles.deqp.level.xml \ frameworks/native/data/etc/android.software.sip.voip.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.sip.voip.xml \ frameworks/native/data/etc/android.software.verified_boot.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.verified_boot.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 \ frameworks/native/data/etc/com.nxp.mifare.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/com.nxp.mifare.xml \ frameworks/native/data/etc/com.android.nfc_extras.xml:$(TARGET_COPY_OUT_ODM)/etc/permissions/com.android.nfc_extras.xml PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.hardware.sensor.accelerometer.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/sku_yupik/android.hardware.sensor.accelerometer.xml \ frameworks/native/data/etc/android.hardware.sensor.compass.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/sku_yupik/android.hardware.sensor.compass.xml \ frameworks/native/data/etc/android.hardware.sensor.gyroscope.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/sku_yupik/android.hardware.sensor.gyroscope.xml \ frameworks/native/data/etc/android.hardware.sensor.light.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/sku_yupik/android.hardware.sensor.light.xml \ frameworks/native/data/etc/android.hardware.sensor.proximity.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/sku_yupik/android.hardware.sensor.proximity.xml \ frameworks/native/data/etc/android.hardware.sensor.stepcounter.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/sku_yupik/android.hardware.sensor.stepcounter.xml \ frameworks/native/data/etc/android.hardware.sensor.stepdetector.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/sku_yupik/android.hardware.sensor.stepdetector.xml # 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.r_submix.default \ audio.usb.default \ audioadsprpcd \ libaudiopreprocessing \ libbundlewrapper \ libdownmix \ libdynproc \ libeffectproxy \ libldnhncr \ libqcompostprocbundle \ libqcomvisualizer \ libqcomvoiceprocessing \ libreverbwrapper \ libtinycompress \ libvisualizer \ libvolumelistener \ sound_trigger.primary.lahaina PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/configs/audio/audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/audio_policy_configuration.xml \ $(LOCAL_PATH)/configs/audio/audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_yupik/audio_policy_configuration.xml \ $(LOCAL_PATH)/configs/audio/audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_yupik_qssi/audio_policy_configuration.xml \ $(LOCAL_PATH)/configs/audio/audio_policy_configuration_a2dp_offload_disabled.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration_a2dp_offload_disabled.xml \ $(LOCAL_PATH)/configs/audio/mixer_paths_yupikqrd.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_yupik/mixer_paths_yupikqrd.xml \ $(LOCAL_PATH)/configs/audio/audio_effects.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_yupik/audio_effects.xml \ $(LOCAL_PATH)/configs/audio/audio_effects.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_effects.xml PRODUCT_COPY_FILES += \ 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/default_volume_tables.xml \ frameworks/av/services/audiopolicy/config/r_submix_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/r_submix_audio_policy_configuration.xml $(call soong_config_set_bool,android_hardware_audio,skip_speaker_layout_channel_mask_field,true) # 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 \ libcamera_metadata_shim \ vendor.qti.hardware.camera.device@1.0.vendor \ libutilscallstack.vendor:64 \ vendor.qti.hardware.camera.postproc@1.0.vendor $(call soong_config_set_bool,camera,override_format_from_reserved,true) PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/configs/public.libraries.system_ext.txt:$(TARGET_COPY_OUT_SYSTEM_EXT)/etc/public.libraries.txt $(call soong_config_set,camera,override_format_from_reserved,true) # Display PRODUCT_PACKAGES += \ android.hardware.graphics.mapper@3.0-impl-qti-display \ android.hardware.graphics.mapper@4.0-impl-qti-display \ vendor.qti.hardware.display.allocator-service \ vendor.qti.hardware.display.composer-service \ vendor.qti.hardware.memtrack-service PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/configs/displayconfig/display_id_4630946480328692354.xml:$(TARGET_COPY_OUT_VENDOR)/etc/displayconfig/display_id_4630946480328692354.xml # DRM PRODUCT_PACKAGES += \ android.hardware.drm-service.clearkey # Fastboot PRODUCT_PACKAGES += \ fastbootd # Fingerprint PRODUCT_PACKAGES += \ android.hardware.biometrics.fingerprint@2.3-service.nothing \ libudfpshandler $(call soong_config_set,surfaceflinger,udfps_lib,//hardware/nothing:libudfps_extension.nothing) # Health PRODUCT_PACKAGES += \ android.hardware.health-service.qti # libwpa_client PRODUCT_PACKAGES += \ libwpa_client # HotwordEnrollement PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/configs/permissions/privapp-permissions-hotword.xml:$(TARGET_COPY_OUT_PRODUCT)/etc/permissions/privapp-permissions-hotword.xml # Init scripts PRODUCT_PACKAGES += \ fstab.default \ fstab.default.vendor_ramdisk \ init.class_main.sh \ init.kernel.post_boot.sh \ init.Spacewar.perf.rc \ init.qcom.rc \ init.qcom.sh \ init.qcom.usb.rc \ init.qcom.usb.sh \ init.qti.display_boot.rc \ init.qti.display_boot.sh \ init.qti.kernel.rc \ init.qti.kernel.sh \ init.recovery.qcom.rc \ init.target.rc \ ueventd.qcom.rc # IPACM PRODUCT_PACKAGES += \ ipacm \ IPACM_cfg.xml # Kernel PRODUCT_ENABLE_UFFD_GC := true PRODUCT_SET_DEBUGFS_RESTRICTIONS := true # Lights PRODUCT_PACKAGES += \ android.hardware.light-service.lineage # Lineage Health PRODUCT_PACKAGES += \ vendor.lineage.health-service.default $(call soong_config_set,lineage_health,charging_control_charging_path,/sys/class/qcom-battery/charging_enabled) # Media PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/configs/media/media_codecs_performance_yupik_v1.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_performance_yupik_v1.xml \ $(LOCAL_PATH)/configs/media/media_codecs_yupik_v1.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_yupik_v1.xml \ $(LOCAL_PATH)/configs/media/media_profiles_V1_0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles_V1_0.xml \ $(LOCAL_PATH)/configs/media/media_profiles_vendor.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles_vendor.xml \ $(LOCAL_PATH)/configs/media/media_profiles_yupik_v1.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles_yupik_v1.xml \ $(LOCAL_PATH)/configs/media/media_profiles.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles.xml $(call soong_config_set_bool,stagefright,target_disable_thumbnail_block_model,true) # Native libraries whitelist PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/configs/public.libraries.txt:$(TARGET_COPY_OUT_VENDOR)/etc/public.libraries.txt # Neural Networks PRODUCT_PACKAGES += \ android.hardware.neuralnetworks@1.3.vendor # NFC PRODUCT_PACKAGES += \ android.hardware.nfc-service.nxp \ android.hardware.nfc@1.2.vendor \ com.android.nfc_extras \ Tag # Nt-fwk $(call inherit-product, hardware/nothing/nt-fwk/nt-fwk.mk) # IRQ balance config PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/configs/msm_irqbalance.conf:$(TARGET_COPY_OUT_VENDOR)/etc/msm_irqbalance.conf # Power PRODUCT_PACKAGES += \ android.hardware.power-service-qti # PowerShare PRODUCT_PACKAGES += \ vendor.lineage.powershare-service.default $(call soong_config_set,lineage_powershare,powershare_path,/sys/class/qcom-battery/wireless_boost_en) # QTI PRODUCT_PACKAGES += \ libvndfwk_detect_jni.qti.vendor # Needed by CNE app # RIL PRODUCT_PACKAGES += \ android.hardware.radio.config-V1-ndk.vendor \ android.hardware.radio.data-V1-ndk.vendor \ android.hardware.radio.messaging-V1-ndk.vendor \ android.hardware.radio.modem-V1-ndk.vendor \ android.hardware.radio.network-V1-ndk.vendor \ android.hardware.radio.sim-V1-ndk.vendor \ android.hardware.radio.voice-V1-ndk.vendor \ android.hardware.radio-V1-ndk.vendor # Sensors PRODUCT_PACKAGES += \ android.hardware.sensors-service.multihal \ sensors.nothing PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/configs/sensors/hals.conf:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/hals.conf # Telephony PRODUCT_PACKAGES += \ CarrierConfigOverlay \ 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 # 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 \ android.hardware.usb.gadget-service.qti \ usb_compositions.conf # Vendor service manager PRODUCT_PACKAGES += \ vndservicemanager # Vibrator PRODUCT_PACKAGES += \ android.hardware.vibrator.service.spacewar 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 \ android.hardware.wifi.hostapd@1.0.vendor \ hostapd \ libwifi-hal-ctrl \ libwifi-hal-qcom \ wpa_supplicant \ wpa_supplicant.conf PRODUCT_PACKAGES += \ WifiResCommon PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/configs/wifi/wpa_supplicant_overlay.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/wpa_supplicant_overlay.conf \ $(LOCAL_PATH)/configs/wifi/p2p_supplicant_overlay.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/p2p_supplicant_overlay.conf \ $(LOCAL_PATH)/configs/wifi/WCNSS_qcom_cfg.ini:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/qca6750/WCNSS_qcom_cfg.ini # WiFi firmware symlinks PRODUCT_PACKAGES += \ firmware_WCNSS_qcom_cfg.ini_symlink # WiFi Display PRODUCT_PACKAGES += \ libwfdaac_vendor