# # Copyright (C) 2016 The CyanogenMod Project # Copyright (C) 2017-2023 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. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # This file sets variables that control the way modules are built # thorughout the system. It should not be used to conditionally # disable makefiles (the proper mechanism to control what gets # included in a build is to use PRODUCT_PACKAGES in a product # definition file). # $(call inherit-product, $(SRC_TARGET_DIR)/product/product_launched_with_m.mk) # Add common definitions for Qualcomm $(call inherit-product, hardware/qcom-caf/common/common.mk) # Get non-open-source specific aspects $(call inherit-product, vendor/zuk/msm8996-common/msm8996-common-vendor.mk) # Setup dalvik vm configs $(call inherit-product, frameworks/native/build/phone-xhdpi-4096-dalvik-heap.mk) PRODUCT_OTA_ENFORCE_VINTF_KERNEL_REQUIREMENTS := true # Overlays DEVICE_PACKAGE_OVERLAYS += \ $(LOCAL_PATH)/overlay \ $(LOCAL_PATH)/overlay-lineage PRODUCT_ENFORCE_RRO_TARGETS := * PRODUCT_ENFORCE_RRO_EXCLUDED_OVERLAYS += \ $(LOCAL_PATH)/overlay-lineage/packages/apps/LineageParts \ $(LOCAL_PATH)/overlay/packages/apps/CarrierConfig # Screen density PRODUCT_AAPT_CONFIG := normal PRODUCT_AAPT_PREF_CONFIG := xxhdpi # Boot animation TARGET_SCREEN_HEIGHT := 1920 TARGET_SCREEN_WIDTH := 1080 TARGET_BOOTANIMATION_HALF_RES := true # Soong namespaces PRODUCT_SOONG_NAMESPACES += device/zuk/msm8996-common # 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.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 \ 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.opengles.aep.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.opengles.aep.xml \ 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.sensor.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 \ 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.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.software.ipsec_tunnels.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.ipsec_tunnels.xml \ frameworks/native/data/etc/android.hardware.vulkan.compute-0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.compute.xml \ frameworks/native/data/etc/android.hardware.vulkan.level-0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.level.xml \ frameworks/native/data/etc/android.hardware.vulkan.version-1_0_3.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.version.xml \ frameworks/native/data/etc/android.hardware.wifi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.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.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.vulkan.deqp.level-2020-03-01.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.vulkan.deqp.level.xml PRODUCT_CHARACTERISTICS := nosdcard # Vendor properties -include $(LOCAL_PATH)/vendor_prop.mk # Additional native libraries PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/configs/public.libraries.txt:$(TARGET_COPY_OUT_VENDOR)/etc/public.libraries.txt # ANT+ PRODUCT_PACKAGES += \ AntHalService # Audio PRODUCT_PACKAGES += \ android.hardware.audio@6.0-impl:32 \ android.hardware.audio.effect@6.0-impl:32 \ android.hardware.audio.service \ audio.primary.msm8996 \ audio.r_submix.default \ audio.usb.default \ libaudio-resampler \ libaudioroute \ libqcompostprocbundle \ libqcomvisualizer \ libqcomvoiceprocessing \ libvolumelistener PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/audio/audio_effects.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_effects.xml \ $(LOCAL_PATH)/audio/audio_output_policy.conf:$(TARGET_COPY_OUT_VENDOR)/etc/audio_output_policy.conf \ $(LOCAL_PATH)/audio/audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration.xml \ $(LOCAL_PATH)/audio/listen_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/listen_platform_info.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 \ frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/usb_audio_policy_configuration.xml # Bluetooth PRODUCT_PACKAGES += \ android.hardware.bluetooth@1.0.vendor \ android.hardware.bluetooth@1.0 \ android.hardware.bluetooth.audio-impl \ audio.bluetooth.default # Camera PRODUCT_PACKAGES += \ android.hardware.camera.device@3.4:64 \ android.hardware.camera.provider@2.4-impl:32 \ android.hardware.camera.provider@2.4-service \ android.hardware.camera.provider@2.5:64 \ camera.msm8996 \ libion.vendor \ libgui_vendor \ libstdc++_vendor # Common init scripts PRODUCT_PACKAGES += \ init.bt.sh \ init.msm.usb.configfs.rc \ init.qcom.rc \ init.qcom.sh \ init.qcom.power.rc \ init.qcom.usb.rc \ init.recovery.qcom.rc \ init.wlan.sh \ ueventd.qcom.rc # ConfigPanel #PRODUCT_PACKAGES += \ # ConfigPanel # Display PRODUCT_PACKAGES += \ android.hardware.graphics.allocator@2.0-impl:64 \ android.hardware.graphics.allocator@2.0-service \ android.hardware.graphics.composer@2.1-service \ android.hardware.graphics.mapper@2.0-impl \ android.hardware.memtrack@1.0-impl \ android.hardware.memtrack@1.0-service \ vendor.display.config@1.1 \ gralloc.msm8996 \ hwcomposer.msm8996 \ memtrack.msm8996 \ libhwc2on1adapter \ libtinyxml \ libvulkan PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/configs/calib.cfg:$(TARGET_COPY_OUT_VENDOR)/etc/calib.cfg # Doze mode #PRODUCT_PACKAGES += \ # ZukDoze # DPM PRODUCT_PACKAGES += \ libcutils_shim # Shims PRODUCT_PACKAGES += \ libbase_shim \ libhidlbase_shim # DRM PRODUCT_PACKAGES += \ android.hardware.drm@1.2.vendor # fwk-detect PRODUCT_PACKAGES += \ libqti_vndfwk_detect.vendor # Gatekeeper PRODUCT_PACKAGES += \ android.hardware.gatekeeper@1.0-impl:64 \ android.hardware.gatekeeper@1.0-service # GPS / Location PRODUCT_PACKAGES += \ android.hardware.gnss@2.0-impl-qti \ android.hardware.gnss@2.0-service-qti \ android.hardware.gnss@1.1.vendor \ libcurl \ libgnss \ libgnsspps \ libsensorndkbridge \ libwifi-hal-ctrl PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/configs/gps//flp.conf:$(TARGET_COPY_OUT_VENDOR)/etc/flp.conf \ $(LOCAL_PATH)/configs/gps/gps.conf:$(TARGET_COPY_OUT_VENDOR)/etc/gps.conf \ $(LOCAL_PATH)/configs/gps/izat.conf:$(TARGET_COPY_OUT_VENDOR)/etc/izat.conf \ $(LOCAL_PATH)/configs/gps/lowi.conf:$(TARGET_COPY_OUT_VENDOR)/etc/lowi.conf \ $(LOCAL_PATH)/configs/gps/sap.conf:$(TARGET_COPY_OUT_VENDOR)/etc/sap.conf \ $(LOCAL_PATH)/configs/gps/xtwifi.conf:$(TARGET_COPY_OUT_VENDOR)/etc/xtwifi.conf # Healthd PRODUCT_PACKAGES += \ android.hardware.health-service.qti \ android.hardware.health-service.qti_recovery # HIDL PRODUCT_PACKAGES += \ android.hidl.allocator@1.0.vendor \ android.hidl.base@1.0 \ android.hidl.base@1.0.vendor \ android.hidl.manager@1.0 \ android.hidl.manager@1.0.vendor \ android.hidl.memory@1.0.vendor \ libhidlmemory.vendor \ libhidltransport \ libhwbinder \ libhidltransport.vendor \ libhwbinder.vendor # IMS PRODUCT_PACKAGES += \ ims-ext-common # Input PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/keylayout/fpc1020tp.kl:$(TARGET_COPY_OUT_VENDOR)/usr/keylayout/fpc1020tp.kl \ $(LOCAL_PATH)/keylayout/goodix-ts.kl:$(TARGET_COPY_OUT_VENDOR)/usr/keylayout/goodix-ts.kl \ $(LOCAL_PATH)/keylayout/gpio-keys.kl:$(TARGET_COPY_OUT_VENDOR)/usr/keylayout/gpio-keys.kl \ $(LOCAL_PATH)/keylayout/synaptics_dsx.kl:$(TARGET_COPY_OUT_VENDOR)/usr/keylayout/synaptics_dsx.kl \ $(LOCAL_PATH)/keylayout/msm8996-tasha-mtp-snd-card_Button_Jack.kl:$(TARGET_COPY_OUT_VENDOR)/usr/keylayout/msm8996-tasha-mtp-snd-card_Button_Jack.kl \ $(LOCAL_PATH)/keylayout/qpnp_pon.kl:$(TARGET_COPY_OUT_VENDOR)/usr/keylayout/qpnp_pon.kl # IPA Manager PRODUCT_PACKAGES += \ ipacm \ IPACM_cfg.xml # IPC router config PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/configs/sec_config:$(TARGET_COPY_OUT_VENDOR)/etc/sec_config # Keymaster PRODUCT_PACKAGES += \ android.hardware.keymaster@3.0-impl:64 \ android.hardware.keymaster@3.0-service # Lights #PRODUCT_PACKAGES += \ # android.hardware.light-service.zuk # LiveDisplay PRODUCT_PACKAGES += \ vendor.lineage.livedisplay@2.0-service-sdm # Media PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/configs/media_codecs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs.xml \ $(LOCAL_PATH)/configs/media_codecs_performance.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_performance.xml \ $(LOCAL_PATH)/configs/media_profiles_V1_0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles_V1_0.xml PRODUCT_COPY_FILES += \ frameworks/av/media/libstagefright/data/media_codecs_google_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_audio.xml \ frameworks/av/media/libstagefright/data/media_codecs_google_telephony.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_telephony.xml \ frameworks/av/media/libstagefright/data/media_codecs_google_video.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_video.xml # Net PRODUCT_PACKAGES += \ android.system.net.netd@1.0 \ android.system.net.netd@1.1.vendor \ libandroid_net # OMX PRODUCT_PACKAGES += \ libOmxAacEnc \ libOmxAmrEnc \ libOmxCore \ libOmxEvrcEnc \ libOmxG711Enc \ libOmxQcelp13Enc \ libOmxVdec \ libOmxVenc \ libstagefrighthw \ libmm-omxcore # Power PRODUCT_PACKAGES += \ android.hardware.power-service-qti \ vendor.qti.hardware.perf@1.0.vendor \ vendor.qti.hardware.perf@1.0 PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/configs/powerhint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/powerhint.xml PRODUCT_COPY_FILES += \ system/core/libprocessgroup/profiles/cgroups_28.json:$(TARGET_COPY_OUT_VENDOR)/etc/cgroups.json \ system/core/libprocessgroup/profiles/task_profiles_28.json:$(TARGET_COPY_OUT_VENDOR)/etc/task_profiles.json # Protobuf PRODUCT_PACKAGES += \ libprotobuf-cpp-full-vendorcompat \ libprotobuf-cpp-lite-vendorcompat # QCOM PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/configs/qti_whitelist.xml:$(TARGET_COPY_OUT_SYSTEM)/etc/sysconfig/qti_whitelist.xml \ $(LOCAL_PATH)/permissions/system_ext-privapp-permissions-qti.xml:$(TARGET_COPY_OUT_SYSTEM_EXT)/etc/permissions/privapp-permissions-qti.xml \ $(LOCAL_PATH)/permissions/system-privapp-permissions-qti.xml:$(TARGET_COPY_OUT_SYSTEM)/etc/permissions/privapp-permissions-qti.xml # QMI PRODUCT_PACKAGES += \ libjson # RIL PRODUCT_PACKAGES += \ android.hardware.radio@1.4 \ android.hardware.radio@1.4.vendor \ android.hardware.radio.config@1.2 \ android.hardware.radio.deprecated@1.0.vendor \ android.hardware.secure_element@1.0.vendor \ librmnetctl \ libnetutils.vendor \ libsqlite.vendor # Seccomp policy PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/seccomp_policy/mediacodec-seccomp.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/mediacodec.policy # Sensors PRODUCT_PACKAGES += \ android.frameworks.sensorservice@1.0.vendor \ android.hardware.sensors@1.0-impl:64 \ android.hardware.sensors@1.0-service \ libpower.vendor # Telephony PRODUCT_PACKAGES += \ ims-ext-common \ ims_ext_common.xml \ qti-telephony-hidl-wrapper \ qti_telephony_hidl_wrapper.xml \ qti-telephony-utils \ qti_telephony_utils.xml \ telephony-ext PRODUCT_BOOT_JARS += \ telephony-ext # Tethering PRODUCT_PACKAGES += \ TetheringConfigOverlay # Touch HAL PRODUCT_PACKAGES += \ vendor.lineage.touch@1.0-service.zuk_8996 # USB PRODUCT_PACKAGES += \ android.hardware.usb@1.3-service.basic # Verity # PRODUCT_SYSTEM_VERITY_PARTITION=/dev/block/bootdevice/by-name/system # PRODUCT_VENDOR_VERITY_PARTITION=/dev/block/bootdevice/by-name/factory # $(call inherit-product, build/target/product/verity.mk) PRODUCT_COPY_FILES += \ prebuilts/vndk/v29/arm64/arch-arm64-armv8-a/shared/vndk-sp/libcutils.so:$(TARGET_COPY_OUT_SYSTEM_EXT)/lib64/libcutils-v29.so \ prebuilts/vndk/v32/arm64/arch-arm64-armv8-a/shared/vndk-sp/libhidlbase.so:$(TARGET_COPY_OUT_SYSTEM)/lib64/libhidlbase-v32.so \ prebuilts/vndk/v32/arm64/arch-arm64-armv8-a/shared/vndk-sp/libhidlbase.so:$(TARGET_COPY_OUT_SYSTEM_EXT)/lib64/libhidlbase-v32.so \ prebuilts/vndk/v32/arm64/arch-arm64-armv8-a/shared/vndk-sp/libhidlbase.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libhidlbase-v32.so \ prebuilts/vndk/v33/arm64/arch-arm64-armv8-a/shared/vndk-sp/libutils.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libutils-v33.so # WiFi PRODUCT_PACKAGES += \ android.hardware.wifi@1.0-service.legacy \ libwpa_client \ hostapd \ WifiOverlay \ wpa_supplicant \ wpa_supplicant.conf # Configstore PRODUCT_PACKAGES += \ disable_configstore PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/wifi/p2p_supplicant_overlay.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/p2p_supplicant_overlay.conf \ $(LOCAL_PATH)/wifi/wpa_supplicant_overlay.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/wpa_supplicant_overlay.conf PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/wifi/WCNSS_cfg.dat:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/WCNSS_cfg.dat \ $(LOCAL_PATH)/wifi/WCNSS_qcom_cfg.ini:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/WCNSS_qcom_cfg.ini # Fingerprint PRODUCT_PACKAGES += \ android.hardware.biometrics.fingerprint@2.1-service \ ZukPocketMode # Thermal PRODUCT_PACKAGES += \ android.hardware.thermal@1.0-impl \ android.hardware.thermal@1.0-service \ thermal.msm8996 PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/configs/thermal-engine.conf:$(TARGET_COPY_OUT_VENDOR)/etc/thermal-engine.conf