# # Copyright (C) 2016 The Android Open-Source 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 includes all definitions that apply to ALL marlin and sailfish devices # # Everything in this directory will become public ifeq ($(TARGET_PREBUILT_KERNEL),) LOCAL_KERNEL := device/google/marlin-kernel/Image.lz4-dtb else LOCAL_KERNEL := $(TARGET_PREBUILT_KERNEL) endif PRODUCT_SHIPPING_API_LEVEL := 25 PRODUCT_COPY_FILES += \ $(LOCAL_KERNEL):kernel DEVICE_PACKAGE_OVERLAYS += device/google/marlin/overlay PRODUCT_ENFORCE_RRO_TARGETS := \ framework-res # Input device files PRODUCT_COPY_FILES += \ device/google/marlin/gpio-keys.kl:$(TARGET_COPY_OUT_VENDOR)/usr/keylayout/gpio-keys.kl \ device/google/marlin/qpnp_pon.kl:$(TARGET_COPY_OUT_VENDOR)/usr/keylayout/qpnp_pon.kl \ device/google/marlin/uinput-fpc.kl:$(TARGET_COPY_OUT_VENDOR)/usr/keylayout/uinput-fpc.kl \ device/google/marlin/uinput-fpc.idc:$(TARGET_COPY_OUT_VENDOR)/usr/idc/uinput-fpc.idc \ device/google/marlin/synaptics_dsxv26.idc:$(TARGET_COPY_OUT_VENDOR)/usr/idc/synaptics_dsxv26.idc \ device/google/marlin/vr-virtual-touchpad-1.idc:$(TARGET_COPY_OUT_VENDOR)/usr/idc/vr-virtual-touchpad-1.idc # copy customized media_profiles and media_codecs xmls for msm8996 PRODUCT_COPY_FILES += \ device/google/marlin/media_profiles_V1_0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles_V1_0.xml \ device/google/marlin/media_codecs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs.xml \ device/google/marlin/media_codecs_performance.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_performance.xml # Override heap growth limit due to high display density on device PRODUCT_PROPERTY_OVERRIDES += \ dalvik.vm.heapgrowthlimit=256m \ ro.telephony.default_cdma_sub=0 $(call inherit-product, frameworks/native/build/phone-xhdpi-2048-dalvik-heap.mk) $(call inherit-product, device/google/marlin/common/common64.mk) #Android EGL implementation PRODUCT_PACKAGES += libGLES_android PRODUCT_PACKAGES += SSRestartDetector ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT))) PRODUCT_PACKAGES += TelephonyMonitor endif # graphics PRODUCT_PROPERTY_OVERRIDES += \ ro.opengles.version=196610 # HWUI common settings PRODUCT_PROPERTY_OVERRIDES += \ ro.hwui.gradient_cache_size=1 \ ro.hwui.drop_shadow_cache_size=6 \ ro.hwui.r_buffer_cache_size=8 \ ro.hwui.texture_cache_flushrate=0.4 \ ro.hwui.text_small_cache_width=1024 \ ro.hwui.text_small_cache_height=1024 \ ro.hwui.text_large_cache_width=2048 \ ro.hwui.text_large_cache_height=1024 # For android_filesystem_config.h PRODUCT_PACKAGES += fs_config_files \ fs_config_dirs # TextClassifier smart selection models files PRODUCT_PACKAGES += \ textclassifier.smartselection.bundle1 # Audio configuration USE_XML_AUDIO_POLICY_CONF := 1 PRODUCT_COPY_FILES += \ device/google/marlin/audio_output_policy.conf:$(TARGET_COPY_OUT_VENDOR)/etc/audio_output_policy.conf \ device/google/marlin/audio_effects.conf:$(TARGET_COPY_OUT_VENDOR)/etc/audio_effects.conf \ device/google/marlin/mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths.xml \ device/google/marlin/mixer_paths_tasha_t50.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_tasha_t50.xml \ device/google/marlin/aanc_tuning_mixer.txt:$(TARGET_COPY_OUT_VENDOR)/etc/aanc_tuning_mixer.txt \ device/google/marlin/sound_trigger_mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths.xml \ device/google/marlin/sound_trigger_mixer_paths_tasha_t50.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths_tasha_t50.xml \ device/google/marlin/sound_trigger_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_platform_info.xml \ device/google/marlin/audio_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info.xml \ device/google/marlin/audio_platform_info_tasha_t50.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info_tasha_t50.xml \ device/google/marlin/audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration.xml \ device/google/marlin/audio_policy_volumes_drc.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_volumes_drc.xml \ frameworks/av/services/audiopolicy/config/a2dp_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/a2dp_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/usb_audio_policy_configuration.xml \ frameworks/av/services/audiopolicy/config/default_volume_tables.xml:$(TARGET_COPY_OUT_VENDOR)/etc/default_volume_tables.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 PRODUCT_FULL_TREBLE_OVERRIDE := true PRODUCT_PACKAGES += \ android.hardware.audio@2.0-service \ android.hardware.bluetooth@1.0-service \ android.hardware.contexthub@1.0-service \ android.hardware.gnss@1.0-service \ android.hardware.drm@1.0-service \ android.hardware.light@2.0-service \ android.hardware.memtrack@1.0-service \ android.hardware.nfc@1.0-service \ android.hardware.power@1.0-service \ android.hardware.sensors@1.0-service \ android.hardware.thermal@1.0-service \ android.hardware.vr@1.0-service \ PRODUCT_PROPERTY_OVERRIDES += ro.hardware.power=marlin # RenderScript HAL PRODUCT_PACKAGES += \ android.hardware.renderscript@1.0-impl # Light HAL PRODUCT_PACKAGES += \ android.hardware.light@2.0-impl # Keymaster HAL PRODUCT_PACKAGES += \ android.hardware.keymaster@3.0-impl \ android.hardware.keymaster@3.0-service # Usb HAL PRODUCT_PACKAGES += \ android.hardware.usb@1.0-service.marlin # Audio effects PRODUCT_PACKAGES += \ libqcomvisualizer \ libqcomvoiceprocessing \ libqcomvoiceprocessingdescriptors \ libqcompostprocbundle PRODUCT_PACKAGES += \ sound_trigger.primary.msm8996 PRODUCT_PACKAGES += \ android.hardware.audio@2.0-impl \ android.hardware.audio.effect@2.0-impl \ android.hardware.soundtrigger@2.0-impl PRODUCT_PACKAGES += \ android.hardware.drm@1.0-impl PRODUCT_PACKAGES += \ netutils-wrapper-1.0 # set audio fluence, ns, aec property PRODUCT_PROPERTY_OVERRIDES += \ ro.qc.sdk.audio.fluencetype=fluencepro \ persist.audio.fluence.voicecall=true \ persist.audio.fluence.speaker=true \ persist.audio.fluence.voicecomm=true \ persist.audio.fluence.voicerec=false # WLAN driver configuration files PRODUCT_COPY_FILES += \ device/google/marlin/wpa_supplicant_overlay.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/wpa_supplicant_overlay.conf \ device/google/marlin/p2p_supplicant_overlay.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/p2p_supplicant_overlay.conf \ device/google/marlin/WCNSS_cfg.dat:$(TARGET_COPY_OUT_VENDOR)/firmware/wlan/qca_cld/WCNSS_cfg.dat \ device/google/marlin/WCNSS_qcom_cfg.ini:$(TARGET_COPY_OUT_VENDOR)/firmware/wlan/qca_cld/WCNSS_qcom_cfg.ini # MIDI feature PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.software.midi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.midi.xml # Audio low latency feature 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 # Pro audio feature PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.hardware.audio.pro.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.audio.pro.xml # Camera 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 # Dumpstate HAL PRODUCT_PACKAGES += \ android.hardware.dumpstate@1.0-service.marlin # Wi-Fi PRODUCT_PACKAGES += \ android.hardware.wifi@1.0-service \ libwpa_client \ hostapd \ wificond \ wifilogd \ wpa_supplicant \ wpa_supplicant.conf #ANT+ stack PRODUCT_PACKAGES += \ AntHalService \ libantradio \ antradio_app \ libvolumelistener # Sensor features 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.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.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.barometer.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.barometer.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.sensor.hifi_sensors.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.hifi_sensors.xml # VR features PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.hardware.vr.high_performance.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vr.high_performance.xml \ frameworks/native/data/etc/android.hardware.vr.headtracking-0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vr.headtracking.xml \ # For SPN display PRODUCT_COPY_FILES += \ device/google/marlin/spn-conf.xml:system/etc/spn-conf.xml # new gatekeeper HAL PRODUCT_PACKAGES += \ android.hardware.gatekeeper@1.0-impl \ android.hardware.gatekeeper@1.0-service # Common sensor packages TARGET_USES_NANOHUB_SENSORHAL := true NANOHUB_SENSORHAL_LID_STATE_ENABLED := true NANOHUB_SENSORHAL_SENSORLIST := $(LOCAL_PATH)/sensorhal/sensorlist.cpp NANOHUB_SENSORHAL_DIRECT_REPORT_ENABLED := true NANOHUB_SENSORHAL_DYNAMIC_SENSOR_EXT_ENABLED := true PRODUCT_PACKAGES += \ context_hub.default \ android.hardware.sensors@1.0-impl \ android.hardware.contexthub@1.0-impl \ PRODUCT_PACKAGES += \ nanoapp_cmd # sensor utilities (only for userdebug and eng builds) ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT))) PRODUCT_PACKAGES += \ nanotool \ sensortest endif PRODUCT_COPY_FILES += \ device/google/marlin/sec_config:$(TARGET_COPY_OUT_VENDOR)/etc/sec_config PRODUCT_SYSTEM_VERITY_PARTITION := /dev/block/platform/soc/624000.ufshc/by-name/system #FEATURE_OPENGLES_EXTENSION_PACK support string config file PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.hardware.opengles.aep.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.opengles.aep.xml # MSM IRQ Balancer configuration file PRODUCT_COPY_FILES += \ device/google/marlin/msm_irqbalance.conf:$(TARGET_COPY_OUT_VENDOR)/etc/msm_irqbalance.conf # init scripts PRODUCT_COPY_FILES += \ device/google/marlin/init.common.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/init.rc \ device/google/marlin/init.common.usb.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/init.usb.rc \ device/google/marlin/init.common.nanohub.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/init.nanohub.rc \ device/google/marlin/ueventd.common.rc:$(TARGET_COPY_OUT_VENDOR)/ueventd.rc \ device/google/marlin/init.radio.sh:$(TARGET_COPY_OUT_VENDOR)/bin/init.radio.sh \ device/google/marlin/init.power.sh:$(TARGET_COPY_OUT_VENDOR)/bin/init.power.sh \ device/google/marlin/init.mid.sh:$(TARGET_COPY_OUT_VENDOR)/bin/init.mid.sh \ device/google/marlin/init.foreground.sh:$(TARGET_COPY_OUT_VENDOR)/bin/init.foreground.sh \ device/google/marlin/init.qcom.devstart.sh:$(TARGET_COPY_OUT_VENDOR)/bin/init.qcom.devstart.sh # Reduce client buffer size for fast audio output tracks PRODUCT_PROPERTY_OVERRIDES += \ af.fast_track_multiplier=1 # Low latency audio buffer size in frames PRODUCT_PROPERTY_OVERRIDES += \ audio_hal.period_size=192 # Write Manufacturer & Model information in created media files. # IMPORTANT: ONLY SET THIS PROPERTY TO TRUE FOR PUBLIC DEVICES ifneq ($(filter aosp_sailfish% sailfish% aosp_marlin% marlin%, $(TARGET_PRODUCT)),) PRODUCT_PROPERTY_OVERRIDES += \ media.recorder.show_manufacturer_and_model=true else $(error "you must decide whether to write manufacturer and model information into created media files for this device. ONLY ENABLE IT FOR PUBLIC DEVICE.") endif #TARGET_PRODUCT PRODUCT_PROPERTY_OVERRIDES += \ persist.camera.gyro.android=4 \ persist.camera.tof.direct=1 \ persist.camera.tnr.preview=1 \ persist.camera.tnr.video=1 # Set bluetooth soc to rome PRODUCT_PROPERTY_OVERRIDES += \ qcom.bluetooth.soc=rome PRODUCT_PROPERTY_OVERRIDES += \ persist.cne.feature=1 \ persist.radio.data_ltd_sys_ind=1 \ persist.radio.is_wps_enabled=true \ persist.radio.RATE_ADAPT_ENABLE=1 \ persist.radio.ROTATION_ENABLE=1 \ persist.radio.sw_mbn_update=1 \ persist.radio.videopause.mode=1 \ persist.radio.VT_ENABLE=1 \ persist.radio.VT_HYBRID_ENABLE=1 \ persist.radio.data_con_rprt=true \ persist.rcs.supported=1 \ rild.libpath=/vendor/lib64/libril-qc-qmi-1.so PRODUCT_PROPERTY_OVERRIDES += \ persist.data.mode=concurrent # Enable SM log mechanism by default ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT))) PRODUCT_PROPERTY_OVERRIDES += \ persist.radio.smlog_switch=1 \ ro.radio.log_prefix="modem_log_" \ ro.radio.log_loc="/data/smlog_dump" endif # Disable snapshot feature PRODUCT_PROPERTY_OVERRIDES += \ persist.radio.snapshot_enabled=0 \ persist.radio.snapshot_timer=0 # IMS over WiFi PRODUCT_PROPERTY_OVERRIDES += \ persist.data.iwlan.enable=true # LTE, CDMA, GSM/WCDMA PRODUCT_PROPERTY_OVERRIDES += \ ro.telephony.default_network=10 \ telephony.lteOnCdmaDevice=1 PRODUCT_AAPT_CONFIG += xlarge large PRODUCT_CHARACTERISTICS := nosdcard # Enable camera EIS # eis.enable: enables electronic image stabilization # is_type: sets image stabilization type PRODUCT_PROPERTY_OVERRIDES += \ persist.camera.eis.enable=1 \ persist.camera.is_type=4 # Fingerprint HIDL implementation PRODUCT_PACKAGES += \ android.hardware.biometrics.fingerprint@2.1-service PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.hardware.fingerprint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.fingerprint.xml INIT_COMMON_DIAG_RC := $(TARGET_COPY_OUT_VENDOR)/etc/init/init.diag.rc # Modem debugger ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT))) PRODUCT_COPY_FILES += \ device/google/marlin/init.common.diag.rc.userdebug:$(INIT_COMMON_DIAG_RC) # Subsystem ramdump PRODUCT_PROPERTY_OVERRIDES += \ persist.sys.ssr.enable_ramdumps=1 else PRODUCT_COPY_FILES += \ device/google/marlin/init.common.diag.rc.user:$(INIT_COMMON_DIAG_RC) endif # Subsystem silent restart PRODUCT_PROPERTY_OVERRIDES += \ persist.sys.ssr.restart_level=venus,AR6320,slpi,modem,adsp PRODUCT_COPY_FILES += \ device/google/marlin/thermal-engine-marlin.conf:$(TARGET_COPY_OUT_VENDOR)/etc/thermal-engine.conf \ device/google/marlin/thermal-engine-marlin-vr.conf:$(TARGET_COPY_OUT_VENDOR)/etc/thermal-engine-vr.conf $(call inherit-product-if-exists, hardware/qcom/msm8996/msm8996.mk) $(call inherit-product-if-exists, vendor/qcom/gpu/msm8996/msm8996-gpu-vendor.mk) # TODO: # setup dm-verity configs. # PRODUCT_SYSTEM_VERITY_PARTITION := /dev/block/platform/soc/7464900.sdhci/by-name/system # $(call inherit-product, build/target/product/verity.mk) #Property of the BDA module path for loading BDA PRODUCT_PROPERTY_OVERRIDES += \ ro.bt.bdaddr_path=/sys/module/bdaddress/parameters/bdaddress # Needed for encryption PRODUCT_PACKAGES += \ keystore.msm8996 \ gatekeeper.msm8996 # Use the A/B updater. AB_OTA_UPDATER := true PRODUCT_PACKAGES += \ update_engine \ update_verifier # Enable update engine sideloading by including the static version of the # boot_control HAL and its dependencies. PRODUCT_STATIC_BOOT_CONTROL_HAL := \ bootctrl.msm8996 \ libgptutils \ libsparse PRODUCT_PACKAGES += \ update_engine_sideload # Tell the system to enable copying odexes from other partition. PRODUCT_PACKAGES += \ cppreopts.sh PRODUCT_PROPERTY_OVERRIDES += \ ro.cp_system_other_odex=1 # Script that copies preloads directory from system_other to data partition PRODUCT_COPY_FILES += \ device/google/marlin/preloads_copy.sh:system/bin/preloads_copy.sh PRODUCT_PACKAGES_DEBUG += \ update_engine_client # A/B updater updatable partitions list. Keep in sync with the partition list # with "_a" and "_b" variants in the device. Note that the vendor can add more # more partitions to this list for the bootloader and radio. AB_OTA_PARTITIONS += \ boot \ system # Bluetooth HAL PRODUCT_PACKAGES += \ libbt-vendor \ android.hardware.bluetooth@1.0-impl # NFC packages PRODUCT_PACKAGES += \ NfcNci \ Tag \ android.hardware.nfc@1.0-impl # Thermal HAL PRODUCT_PACKAGES += \ android.hardware.thermal@1.0-impl #GNSS HAL PRODUCT_PACKAGES += \ android.hardware.gnss@1.0-impl # Vibrator PRODUCT_PACKAGES += \ android.hardware.vibrator@1.0-service.marlin \ # VR PRODUCT_PACKAGES += \ android.hardware.vr@1.0-impl # Gralloc PRODUCT_PACKAGES += \ android.hardware.graphics.allocator@2.0-impl \ android.hardware.graphics.allocator@2.0-service \ android.hardware.graphics.mapper@2.0-impl # HW Composer PRODUCT_PACKAGES += \ android.hardware.graphics.composer@2.1-impl \ android.hardware.graphics.composer@2.1-service # Boot control PRODUCT_PACKAGES += \ android.hardware.boot@1.0-impl \ android.hardware.boot@1.0-service # Library used for VTS tests (only for userdebug and eng builds) ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT))) # Test HAL for hwbinder performance benchmark. PRODUCT_PACKAGES += \ android.hardware.tests.libhwbinder@1.0-impl # Test HAL for FMQ performance benchmark. PRODUCT_PACKAGES += \ android.hardware.tests.msgq@1.0-impl # For VTS profiling. PRODUCT_PACKAGES += \ libvts_profiling \ libvts_multidevice_proto endif # NFC/camera interaction workaround - DO NOT COPY TO NEW DEVICES PRODUCT_PROPERTY_OVERRIDES += \ ro.camera.notify_nfc=1 PRODUCT_COPY_FILES += \ device/google/marlin/nfc/libnfc-brcm.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libnfc-brcm.conf \ device/google/marlin/nfc/libpn551_fw.so:$(TARGET_COPY_OUT_VENDOR)/firmware/libpn551_fw.so # Bootloader HAL used for A/B updates. PRODUCT_PACKAGES += \ bootctrl.msm8996 PRODUCT_PACKAGES_DEBUG += \ bootctl # Storage: for factory reset protection feature PRODUCT_PROPERTY_OVERRIDES += \ ro.frp.pst=/dev/block/platform/soc/624000.ufshc/by-name/frp PRODUCT_PROPERTY_OVERRIDES += \ sdm.debug.disable_rotator_split=1 \ qdcm.only_pcc_for_trans=1 \ qdcm.diagonal_matrix_mode=1 # Enable low power video mode for 4K encode PRODUCT_PROPERTY_OVERRIDES += \ vidc.debug.perf.mode=2 # OEM Unlock reporting PRODUCT_DEFAULT_PROPERTY_OVERRIDES += \ ro.oem_unlock_supported=1 # Setup dm-verity configs PRODUCT_SYSTEM_VERITY_PARTITION := /dev/block/platform/soc/624000.ufshc/by-name/system PRODUCT_VENDOR_VERITY_PARTITION := /dev/block/platform/soc/624000.ufshc/by-name/vendor $(call inherit-product, build/target/product/verity.mk) # Partitions (listed in the file) to be wiped under recovery. TARGET_RECOVERY_WIPE := \ device/google/marlin/recovery.wipe.common # GPS configuration file PRODUCT_COPY_FILES += \ device/google/marlin/gps.conf:$(TARGET_COPY_OUT_VENDOR)/etc/gps.conf # Default permission grant exceptions PRODUCT_COPY_FILES += \ device/google/marlin/default-permissions.xml:$(TARGET_COPY_OUT_VENDOR)/etc/default-permissions/default-permissions.xml # A/B OTA dexopt package PRODUCT_PACKAGES += otapreopt_script # A/B OTA dexopt update_engine hookup AB_OTA_POSTINSTALL_CONFIG += \ RUN_POSTINSTALL_system=true \ POSTINSTALL_PATH_system=system/bin/otapreopt_script \ FILESYSTEM_TYPE_system=ext4 \ POSTINSTALL_OPTIONAL_system=true #Reduce cost of scrypt for FBE CE decryption PRODUCT_PROPERTY_OVERRIDES += \ ro.crypto.scrypt_params=13:3:1 # Set if a device image has the VTS coverage instrumentation. ifeq ($(NATIVE_COVERAGE),true) PRODUCT_PROPERTY_OVERRIDES += \ ro.vts.coverage=1 PRODUCT_SUPPORTS_VERITY_FEC := false endif # Add minidebug info to the system server to support diagnosing native crashes. ifneq (,$(filter user userdebug, $(TARGET_BUILD_VARIANT))) # System server and some of its services. # Note: we cannot use PRODUCT_SYSTEM_SERVER_JARS, as it has not been expanded at this point. $(call add-product-dex-preopt-module-config,services,--generate-mini-debug-info) $(call add-product-dex-preopt-module-config,wifi-service,--generate-mini-debug-info) endif # b/35633646 # Statically linked toybox for modprobe in recovery mode PRODUCT_PACKAGES += \ toybox_static ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT))) ifeq (,$(filter aosp_marlin aosp_sailfish, $(TARGET_PRODUCT))) PRODUCT_PACKAGES += \ NexusLogger endif # filter it out for aosp build endif # b/30349163 # Set Marlin/Sailfish default log size on userdebug/eng build to 1M ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT))) PRODUCT_PROPERTY_OVERRIDES += ro.logd.size=1M endif # b/32109329 # Workaround for audio glitches PRODUCT_PROPERTY_OVERRIDES += \ audio.adm.buffering.ms=3 # Vendor seccomp policy files for media components: PRODUCT_COPY_FILES += \ device/google/marlin/seccomp_policy/mediacodec.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/mediacodec.policy # whitelisted app PRODUCT_COPY_FILES += \ device/google/marlin/qti_whitelist.xml:system/etc/sysconfig/qti_whitelist.xml PRODUCT_PROPERTY_OVERRIDES += \ ro.vendor.vndk.version=26.1.0 \ PRODUCT_PACKAGES += \ android.hardware.renderscript@1.0.vndk-sp\ android.hardware.graphics.allocator@2.0.vndk-sp\ android.hardware.graphics.mapper@2.0.vndk-sp\ android.hardware.graphics.common@1.0.vndk-sp\ android.hidl.base@1.0.vndk-sp\ libhwbinder.vndk-sp\ libbase.vndk-sp\ libcutils.vndk-sp\ libhardware.vndk-sp\ libhidlbase.vndk-sp\ libhidltransport.vndk-sp\ libutils.vndk-sp\ libc++.vndk-sp\ libRS_internal.vndk-sp\ libRSDriver.vndk-sp\ libRSCpuRef.vndk-sp\ libbcinfo.vndk-sp\ libblas.vndk-sp\ libft2.vndk-sp\ libpng.vndk-sp\ libcompiler_rt.vndk-sp\ libbacktrace.vndk-sp\ libunwind.vndk-sp\ liblzma.vndk-sp\