Avicii: Alphadroid Bringup

This commit is contained in:
2023-07-25 12:05:25 +05:30
commit 66e8665bcc
100 changed files with 29362 additions and 0 deletions

2
Android.bp Normal file
View File

@@ -0,0 +1,2 @@
soong_namespace {
}

95
Android.mk Normal file
View File

@@ -0,0 +1,95 @@
#
# Copyright (C) 2018 The LineageOS Project
#
# SPDX-License-Identifier: Apache-2.0
#
LOCAL_PATH := $(call my-dir)
ifneq ($(filter avicii,$(TARGET_DEVICE)),)
include $(call all-makefiles-under,$(LOCAL_PATH))
include $(CLEAR_VARS)
# A/B builds require us to create the mount points at compile time.
# Just creating it for all cases since it does not hurt.
FIRMWARE_MOUNT_POINT := $(TARGET_OUT_VENDOR)/firmware_mnt
$(FIRMWARE_MOUNT_POINT): $(LOCAL_INSTALLED_MODULE)
@echo "Creating $(FIRMWARE_MOUNT_POINT)"
@mkdir -p $(TARGET_OUT_VENDOR)/firmware_mnt
BT_FIRMWARE_MOUNT_POINT := $(TARGET_OUT_VENDOR)/bt_firmware
$(BT_FIRMWARE_MOUNT_POINT): $(LOCAL_INSTALLED_MODULE)
@echo "Creating $(BT_FIRMWARE_MOUNT_POINT)"
@mkdir -p $(TARGET_OUT_VENDOR)/bt_firmware
DSP_MOUNT_POINT := $(TARGET_OUT_VENDOR)/dsp
$(DSP_MOUNT_POINT): $(LOCAL_INSTALLED_MODULE)
@echo "Creating $(DSP_MOUNT_POINT)"
@mkdir -p $(TARGET_OUT_VENDOR)/dsp
ALL_DEFAULT_INSTALLED_MODULES += $(FIRMWARE_MOUNT_POINT) $(BT_FIRMWARE_MOUNT_POINT) $(DSP_MOUNT_POINT)
ACDBDATA_SYMLINKS := $(TARGET_OUT_ODM)/etc/acdbdata
$(ACDBDATA_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@echo "Creating acdbdata symlinks: $@"
@mkdir -p $@
$(hide) ln -sf /vendor/etc/acdbdata/adsp_avs_config.acdb $@/adsp_avs_config.acdb
RFS_MSM_ADSP_SYMLINKS := $(TARGET_OUT_VENDOR)/rfs/msm/adsp/
$(RFS_MSM_ADSP_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@echo "Creating RFS MSM ADSP folder structure: $@"
@rm -rf $@/*
@mkdir -p $(dir $@)/readonly/vendor
$(hide) ln -sf /data/vendor/tombstones/rfs/lpass $@/ramdumps
$(hide) ln -sf /mnt/vendor/persist/rfs/msm/adsp $@/readwrite
$(hide) ln -sf /mnt/vendor/persist/rfs/shared $@/shared
$(hide) ln -sf /mnt/vendor/persist/hlos_rfs/shared $@/hlos
$(hide) ln -sf /vendor/firmware_mnt $@/readonly/firmware
$(hide) ln -sf /vendor/firmware $@/readonly/vendor/firmware
RFS_MSM_CDSP_SYMLINKS := $(TARGET_OUT_VENDOR)/rfs/msm/cdsp/
$(RFS_MSM_CDSP_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@echo "Creating RFS MSM CDSP folder structure: $@"
@rm -rf $@/*
@mkdir -p $(dir $@)/readonly/vendor
$(hide) ln -sf /data/vendor/tombstones/rfs/cdsp $@/ramdumps
$(hide) ln -sf /mnt/vendor/persist/rfs/msm/cdsp $@/readwrite
$(hide) ln -sf /mnt/vendor/persist/rfs/shared $@/shared
$(hide) ln -sf /mnt/vendor/persist/hlos_rfs/shared $@/hlos
$(hide) ln -sf /vendor/firmware_mnt $@/readonly/firmware
$(hide) ln -sf /vendor/firmware $@/readonly/vendor/firmware
RFS_MSM_MPSS_SYMLINKS := $(TARGET_OUT_VENDOR)/rfs/msm/mpss/
$(RFS_MSM_MPSS_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@echo "Creating RFS MSM MPSS folder structure: $@"
@rm -rf $@/*
@mkdir -p $(dir $@)/readonly/vendor
$(hide) ln -sf /data/vendor/tombstones/rfs/modem $@/ramdumps
$(hide) ln -sf /mnt/vendor/persist/rfs/msm/mpss $@/readwrite
$(hide) ln -sf /mnt/vendor/persist/rfs/shared $@/shared
$(hide) ln -sf /mnt/vendor/persist/hlos_rfs/shared $@/hlos
$(hide) ln -sf /vendor/firmware_mnt $@/readonly/firmware
$(hide) ln -sf /vendor/firmware $@/readonly/vendor/firmware
RFS_MSM_SLPI_SYMLINKS := $(TARGET_OUT_VENDOR)/rfs/msm/slpi/
$(RFS_MSM_SLPI_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@echo "Creating RFS MSM SLPI folder structure: $@"
@rm -rf $@/*
@mkdir -p $(dir $@)/readonly/vendor
$(hide) ln -sf /data/vendor/tombstones/rfs/slpi $@/ramdumps
$(hide) ln -sf /mnt/vendor/persist/rfs/msm/slpi $@/readwrite
$(hide) ln -sf /mnt/vendor/persist/rfs/shared $@/shared
$(hide) ln -sf /mnt/vendor/persist/hlos_rfs/shared $@/hlos
$(hide) ln -sf /vendor/firmware_mnt $@/readonly/firmware
$(hide) ln -sf /vendor/firmware $@/readonly/vendor/firmware
WIFI_FIRMWARE_SYMLINKS := $(TARGET_OUT_VENDOR)/firmware/wlan/qca_cld
$(WIFI_FIRMWARE_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@echo "Creating wifi firmware symlinks: $@"
@mkdir -p $@
$(hide) ln -sf /vendor/etc/wifi/WCNSS_qcom_cfg.ini $@/WCNSS_qcom_cfg.ini
$(hide) ln -sf /mnt/vendor/persist/wlan_mac.bin $@/wlan_mac.bin
ALL_DEFAULT_INSTALLED_MODULES += $(ACDBDATA_SYMLINKS) $(RFS_MSM_ADSP_SYMLINKS) $(RFS_MSM_CDSP_SYMLINKS) $(RFS_MSM_MPSS_SYMLINKS) $(RFS_MSM_SLPI_SYMLINKS) $(WIFI_FIRMWARE_SYMLINKS)
endif

23
AndroidProducts.mk Normal file
View File

@@ -0,0 +1,23 @@
#
# Copyright (C) 2018-2019 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.
#
PRODUCT_MAKEFILES := \
$(LOCAL_DIR)/lineage_avicii.mk
COMMON_LUNCH_CHOICES := \
lineage_avicii-eng \
lineage_avicii-user \
lineage_avicii-userdebug

212
BoardConfig.mk Normal file
View File

@@ -0,0 +1,212 @@
# Copyright (C) 2018 The LineageOS Project
#
# SPDX-License-Identifier: Apache-2.0
#
BUILD_BROKEN_DUP_RULES := true
BUILD_BROKEN_ELF_PREBUILT_PRODUCT_COPY_FILES := true
DEVICE_PATH := device/oneplus/avicii
# A/B
AB_OTA_UPDATER := true
AB_OTA_PARTITIONS += \
boot \
dtbo \
odm \
product \
recovery \
system \
system_ext \
vbmeta \
vbmeta_system \
vendor
# ANT+
BOARD_ANT_WIRELESS_DEVICE := "qualcomm-hidl"
# Architecture
TARGET_ARCH := arm64
TARGET_ARCH_VARIANT := armv8-a
TARGET_CPU_ABI := arm64-v8a
TARGET_CPU_VARIANT := generic
TARGET_CPU_VARIANT_RUNTIME := kryo385
TARGET_2ND_ARCH := arm
TARGET_2ND_ARCH_VARIANT := armv8-a
TARGET_2ND_CPU_ABI := armeabi-v7a
TARGET_2ND_CPU_ABI2 := armeabi
TARGET_2ND_CPU_VARIANT := generic
TARGET_2ND_CPU_VARIANT_RUNTIME := kryo385
# Audio
AUDIO_FEATURE_ENABLED_DLKM := true
AUDIO_FEATURE_ENABLED_EXT_AMPLIFIER := true
AUDIO_FEATURE_ENABLED_EXTENDED_COMPRESS_FORMAT := true
AUDIO_FEATURE_ENABLED_GEF_SUPPORT := true
AUDIO_FEATURE_ENABLED_HW_ACCELERATED_EFFECTS := false
AUDIO_FEATURE_ENABLED_INSTANCE_ID := true
AUDIO_FEATURE_ENABLED_PROXY_DEVICE := true
AUDIO_FEATURE_ENABLED_SSR := true
AUDIO_FEATURE_ENABLED_SVA_MULTI_STAGE := true
BOARD_SUPPORTS_SOUND_TRIGGER := true
BOARD_USES_ALSA_AUDIO := true
# Bootloader
TARGET_BOOTLOADER_BOARD_NAME := lito
# Bluetooth
BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR := $(DEVICE_PATH)/bluetooth/include
# Properties
TARGET_ODM_PROP += $(DEVICE_PATH)/odm.prop
TARGET_PRODUCT_PROP += $(DEVICE_PATH)/product.prop
TARGET_SYSTEM_EXT_PROP += $(DEVICE_PATH)/system_ext.prop
TARGET_VENDOR_PROP += $(DEVICE_PATH)/vendor.prop
# Display
TARGET_SCREEN_DENSITY := 440
TARGET_USES_COLOR_METADATA := true
TARGET_USES_DISPLAY_RENDER_INTENTS := true
TARGET_USES_DRM_PP := true
TARGET_USES_GRALLOC1 := true
TARGET_USES_GRALLOC4 := true
TARGET_USES_HWC2 := true
TARGET_USES_ION := true
TARGET_USES_QCOM_DISPLAY_BSP := true
TARGET_USES_QTI_MAPPER_2_0 := true
TARGET_USES_QTI_MAPPER_EXTENSIONS_1_1 := true
# Filesystem
TARGET_FS_CONFIG_GEN := $(DEVICE_PATH)/config.fs
# Fingerprint
TARGET_SURFACEFLINGER_UDFPS_LIB := //hardware/oplus:libudfps_extension.oplus
# HIDL
DEVICE_FRAMEWORK_COMPATIBILITY_MATRIX_FILE := \
$(DEVICE_PATH)/device_framework_matrix.xml \
hardware/qcom-caf/common/vendor_framework_compatibility_matrix.xml \
vendor/lineage/config/device_framework_matrix.xml
DEVICE_MATRIX_FILE := $(DEVICE_PATH)/compatibility_matrix.xml
DEVICE_MANIFEST_FILE := $(DEVICE_PATH)/manifest.xml
ODM_MANIFEST_FILES := $(DEVICE_PATH)/manifest_odm.xml
# Init
TARGET_INIT_VENDOR_LIB := //$(DEVICE_PATH):libinit_oplus
# Kernel
BOARD_BOOT_HEADER_VERSION := 2
BOARD_KERNEL_BASE := 0x00000000
BOARD_KERNEL_CMDLINE := \
androidboot.console=ttyMSM0 \
androidboot.hardware=qcom \
androidboot.memcg=1 \
androidboot.usbcontroller=a600000.dwc3 \
cgroup.memory=nokmem,nosocket \
loop.max_part=7 \
lpm_levels.sleep_disabled=1 \
msm_rtb.filter=0x237 \
reboot=panic_warm \
service_locator.enable=1 \
swiotlb=2048
BOARD_KERNEL_IMAGE_NAME := Image
BOARD_KERNEL_PAGESIZE := 4096
BOARD_KERNEL_SEPARATED_DTBO := true
BOARD_MKBOOTIMG_ARGS += --header_version $(BOARD_BOOT_HEADER_VERSION)
BOARD_RAMDISK_USE_LZ4 := true
TARGET_KERNEL_ADDITIONAL_FLAGS := BRAND_SHOW_FLAG=oneplus
TARGET_KERNEL_SOURCE := kernel/oneplus/sm7250
TARGET_KERNEL_CONFIG := vendor/lito-perf_defconfig
# Platform
BOARD_USES_QCOM_HARDWARE := true
TARGET_BOARD_PLATFORM := lito
# Metadata
BOARD_USES_METADATA_PARTITION := true
# Partitions
BOARD_BOOTIMAGE_PARTITION_SIZE := 100663296
BOARD_DTBOIMG_PARTITION_SIZE := 25165824
BOARD_RECOVERYIMAGE_PARTITION_SIZE := 100663296
BOARD_USERDATAIMAGE_PARTITION_SIZE := 236009631744
ifneq ($(WITH_GMS),true)
BOARD_PRODUCTIMAGE_EXTFS_INODE_COUNT := -1
BOARD_PRODUCTIMAGE_PARTITION_RESERVED_SIZE := 614400000
BOARD_SYSTEMIMAGE_EXTFS_INODE_COUNT := -1
BOARD_SYSTEMIMAGE_PARTITION_RESERVED_SIZE := 92160000
BOARD_SYSTEM_EXTIMAGE_EXTFS_INODE_COUNT := -1
BOARD_SYSTEM_EXTIMAGE_PARTITION_RESERVED_SIZE := 92160000
endif
BOARD_ODMIMAGE_FILE_SYSTEM_TYPE := ext4
BOARD_PRODUCTIMAGE_FILE_SYSTEM_TYPE := ext4
BOARD_SYSTEM_EXTIMAGE_FILE_SYSTEM_TYPE := ext4
BOARD_SYSTEMIMAGE_FILE_SYSTEM_TYPE := ext4
BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE := ext4
BOARD_ONEPLUS_DYNAMIC_PARTITIONS_PARTITION_LIST := odm product system system_ext vendor
BOARD_ONEPLUS_DYNAMIC_PARTITIONS_SIZE := 7511998464
BOARD_SUPER_PARTITION_GROUPS := oneplus_dynamic_partitions
BOARD_SUPER_PARTITION_SIZE := 15032385536
BOARD_FLASH_BLOCK_SIZE := 262144 # (BOARD_KERNEL_PAGESIZE * 64)
TARGET_COPY_OUT_ODM := odm
TARGET_COPY_OUT_PRODUCT := product
TARGET_COPY_OUT_SYSTEM_EXT := system_ext
TARGET_COPY_OUT_VENDOR := vendor
# Power
TARGET_TAP_TO_WAKE_NODE := "/proc/touchpanel/double_tap_enable"
# Recovery
BOARD_INCLUDE_DTB_IN_BOOTIMG := true
BOARD_INCLUDE_RECOVERY_DTBO := true
TARGET_RECOVERY_FSTAB := $(DEVICE_PATH)/init/fstab.qcom
TARGET_RECOVERY_PIXEL_FORMAT := RGBX_8888
TARGET_RECOVERY_UI_MARGIN_HEIGHT := 103
TARGET_USERIMAGES_USE_EXT4 := true
TARGET_USERIMAGES_USE_F2FS := true
# RIL
ENABLE_VENDOR_RIL_SERVICE := true
# Security
VENDOR_SECURITY_PATCH := 2023-03-05
# SEPolicy
include device/qcom/sepolicy_vndr-legacy-um/SEPolicy.mk
include hardware/oplus/sepolicy/qti/SEPolicy.mk
# Touch
SOONG_CONFIG_NAMESPACES += OPLUS_LINEAGE_TOUCH_HAL
SOONG_CONFIG_OPLUS_LINEAGE_TOUCH_HAL := INCLUDE_DIR
SOONG_CONFIG_OPLUS_LINEAGE_TOUCH_HAL_INCLUDE_DIR := $(DEVICE_PATH)/touch/include
# Verified Boot
BOARD_AVB_ENABLE := true
BOARD_AVB_MAKE_VBMETA_IMAGE_ARGS += --set_hashtree_disabled_flag
BOARD_AVB_MAKE_VBMETA_IMAGE_ARGS += --flags 2
BOARD_AVB_VBMETA_SYSTEM := system system_ext product
BOARD_AVB_VBMETA_SYSTEM_KEY_PATH := external/avb/test/data/testkey_rsa4096.pem
BOARD_AVB_VBMETA_SYSTEM_ALGORITHM := SHA256_RSA4096
BOARD_AVB_VBMETA_SYSTEM_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP)
BOARD_AVB_VBMETA_SYSTEM_ROLLBACK_INDEX_LOCATION := 1
# WiFi
BOARD_WLAN_DEVICE := qcwcn
BOARD_HOSTAPD_DRIVER := NL80211
BOARD_HOSTAPD_PRIVATE_LIB := lib_driver_cmd_$(BOARD_WLAN_DEVICE)
BOARD_WPA_SUPPLICANT_DRIVER := $(BOARD_HOSTAPD_DRIVER)
BOARD_WPA_SUPPLICANT_PRIVATE_LIB := $(BOARD_HOSTAPD_PRIVATE_LIB)
BOARD_WPA_SUPPLICANT_PRIVATE_LIB_EVENT := "ON"
CONFIG_IEEE80211AX := true
WIFI_DRIVER_STATE_CTRL_PARAM := "/dev/wlan"
WIFI_DRIVER_STATE_OFF := "OFF"
WIFI_DRIVER_STATE_ON := "ON"
WIFI_HIDL_FEATURE_DUAL_INTERFACE := true
WIFI_HIDL_UNIFIED_SUPPLICANT_SERVICE_RC_ENTRY := true
WPA_SUPPLICANT_VERSION := VER_0_8_X
# Include the proprietary files BoardConfig.
include vendor/oneplus/avicii/BoardConfigVendor.mk

42
README.md Normal file
View File

@@ -0,0 +1,42 @@
Copyright (C) 2021 The Aosp Extended Project
Copyright (C) 2023 The crDroid Project
Device configuration for the OnePlus Nord (avicii)
==================================================
The OnePlus Nord (codenamed _"avicii"_) is a mid-range smartphone from OnePlus Technology Co., Ltd. launched in 2020.
## Device specifications
Basic | Spec Sheet
-------:|:-------------------------
Chipset | Qualcomm® Snapdragon™ 765G 5G mobile platform
CPU Clock Speed | Up to 2.4 GHz
CPU Cores | Qualcomm® Kryo™ 475 CPU (Octa-core)
CPU Architecture | 64-bit
GPU | Qualcomm® Adreno™ 620 GPU
GPU API Support | OpenCL™ 2.0 FP, OpenGL® ES 3.2, Vulkan® 1.1, DirectX® 12
AIE CPU |Qualcomm® Kryo™ 475 CPU
AIE GPU | Qualcomm® Adreno™ 620 GPU
DSP Technology | Qualcomm® Hexagon™ Tensor Accelerator
Memory | 6GB/8GB/12GB LPDDR4X
Memory Speed | 2133MHz
Memory Type | 2x16bit
Storage | 64GB/128GB/256GB UFS2.1
Display | 2400x1080 pixels 408ppi
Display Size | 16.36 centimeters (6.44 inches)
NFC | Supported
Bluetooth | 5.0
Battery | 4115 mAh (non-removable)
Rear Camera | 48+8+5+2 MP (Main, Wide, Depth & Macro)
Rear Camera Sensor | Sony IMX586
Front Camera | 32+8 MP (Main & Wide)
Front Camera Sensor | Sony IMX616
Shipped Android Version | 10.0
## Device picture
![OnePlus Nord](https://www.droid-life.com/wp-content/uploads/2020/07/OnePlus-Nord-Colors.jpg "OnePlus Nord")
[OnePlus Nord Official Website ](https://www.oneplus.in/nord) &
[Chipset Source](https://www.qualcomm.com/products/snapdragon-765g-5g-mobile-platform)

116
audio/audio_effects.xml Normal file
View File

@@ -0,0 +1,116 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--- Copyright (c) 2018-2019, The Linux Foundation. All rights reserved. -->
<!--- -->
<!--- Redistribution and use in source and binary forms, with or without -->
<!--- modification, are permitted provided that the following conditions are -->
<!--- met: -->
<!--- * Redistributions of source code must retain the above copyright -->
<!--- notice, this list of conditions and the following disclaimer. -->
<!--- * Redistributions in binary form must reproduce the above -->
<!--- copyright notice, this list of conditions and the following -->
<!--- disclaimer in the documentation and/or other materials provided -->
<!--- with the distribution. -->
<!--- * Neither the name of The Linux Foundation nor the names of its -->
<!--- contributors may be used to endorse or promote products derived -->
<!--- from this software without specific prior written permission. -->
<!--- -->
<!--- THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED -->
<!--- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -->
<!--- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT -->
<!--- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS -->
<!--- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -->
<!--- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -->
<!--- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -->
<!--- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -->
<!--- WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE -->
<!--- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
<!--- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
<audio_effects_conf version="2.0" xmlns="http://schemas.android.com/audio/audio_effects_conf/v2_0">
<libraries>
<library name="bundle" path="libbundlewrapper.so"/>
<library name="reverb" path="libreverbwrapper.so"/>
<library name="visualizer_sw" path="libvisualizer.so"/>
<library name="visualizer_hw" path="libqcomvisualizer.so"/>
<library name="downmix" path="libdownmix.so"/>
<library name="loudness_enhancer" path="libldnhncr.so"/>
<library name="dynamics_processing" path="libdynproc.so"/>
<library name="proxy" path="libeffectproxy.so"/>
<library name="offload_bundle" path="libqcompostprocbundle.so"/>
<library name="audio_pre_processing" path="libqcomvoiceprocessing.so"/>
<library name="volume_listener" path="libvolumelistener.so"/>
<library name="audiosphere" path="libasphere.so"/>
<library name="shoebox" path="libshoebox.so"/>
</libraries>
<effects>
<effectProxy name="bassboost" library="proxy" uuid="14804144-a5ee-4d24-aa88-0002a5d5c51b">
<libsw library="bundle" uuid="8631f300-72e2-11df-b57e-0002a5d5c51b"/>
<libhw library="offload_bundle" uuid="2c4a8c24-1581-487f-94f6-0002a5d5c51b"/>
</effectProxy>
<effectProxy name="virtualizer" library="proxy" uuid="d3467faa-acc7-4d34-acaf-0002a5d5c51b">
<libsw library="bundle" uuid="1d4033c0-8557-11df-9f2d-0002a5d5c51b"/>
<libhw library="offload_bundle" uuid="509a4498-561a-4bea-b3b1-0002a5d5c51b"/>
</effectProxy>
<effectProxy name="equalizer" library="proxy" uuid="c8e70ecd-48ca-456e-8a4f-0002a5d5c51b">
<libsw library="bundle" uuid="ce772f20-847d-11df-bb17-0002a5d5c51b"/>
<libhw library="offload_bundle" uuid="a0dac280-401c-11e3-9379-0002a5d5c51b"/>
</effectProxy>
<effect name="volume" library="bundle" uuid="119341a0-8469-11df-81f9-0002a5d5c51b"/>
<effectProxy name="reverb_env_aux" library="proxy" uuid="48404ac9-d202-4ccc-bf84-0002a5d5c51b">
<libsw library="reverb" uuid="4a387fc0-8ab3-11df-8bad-0002a5d5c51b"/>
<libhw library="offload_bundle" uuid="79a18026-18fd-4185-8233-0002a5d5c51b"/>
</effectProxy>
<effectProxy name="reverb_env_ins" library="proxy" uuid="b707403a-a1c1-4291-9573-0002a5d5c51b">
<libsw library="reverb" uuid="c7a511a0-a3bb-11df-860e-0002a5d5c51b"/>
<libhw library="offload_bundle" uuid="eb64ea04-973b-43d2-8f5e-0002a5d5c51b"/>
</effectProxy>
<effectProxy name="reverb_pre_aux" library="proxy" uuid="1b78f587-6d1c-422e-8b84-0002a5d5c51b">
<libsw library="reverb" uuid="f29a1400-a3bb-11df-8ddc-0002a5d5c51b"/>
<libhw library="offload_bundle" uuid="6987be09-b142-4b41-9056-0002a5d5c51b"/>
</effectProxy>
<effectProxy name="reverb_pre_ins" library="proxy" uuid="f3e178d2-ebcb-408e-8357-0002a5d5c51b">
<libsw library="reverb" uuid="172cdf00-a3bc-11df-a72f-0002a5d5c51b"/>
<libhw library="offload_bundle" uuid="aa2bebf6-47cf-4613-9bca-0002a5d5c51b"/>
</effectProxy>
<effectProxy name="visualizer" library="proxy" uuid="1d0a1a53-7d5d-48f2-8e71-27fbd10d842c">
<libsw library="visualizer_sw" uuid="d069d9e0-8329-11df-9168-0002a5d5c51b"/>
<libhw library="visualizer_hw" uuid="7a8044a0-1a71-11e3-a184-0002a5d5c51b"/>
</effectProxy>
<effect name="downmix" library="downmix" uuid="93f04452-e4fe-41cc-91f9-e475b6d1d69f"/>
<effect name="hw_acc" library="offload_bundle" uuid="7d1580bd-297f-4683-9239-e475b6d1d69f"/>
<effect name="loudness_enhancer" library="loudness_enhancer" uuid="fa415329-2034-4bea-b5dc-5b381c8d1e2c"/>
<effect name="dynamics_processing" library="dynamics_processing" uuid="e0e6539b-1781-7261-676f-6d7573696340"/>
<effect name="aec" library="audio_pre_processing" uuid="0f8d0d2a-59e5-45fe-b6e4-248c8a799109"/>
<effect name="ns" library="audio_pre_processing" uuid="1d97bb0b-9e2f-4403-9ae3-58c2554306f8"/>
<effect name="music_helper" library="volume_listener" uuid="08b8b058-0590-11e5-ac71-0025b32654a0"/>
<effect name="ring_helper" library="volume_listener" uuid="0956df94-0590-11e5-bdbe-0025b32654a0"/>
<effect name="alarm_helper" library="volume_listener" uuid="09f303e2-0590-11e5-8fdb-0025b32654a0"/>
<effect name="voice_helper" library="volume_listener" uuid="0ace5c08-0590-11e5-ae9e-0025b32654a0"/>
<effect name="notification_helper" library="volume_listener" uuid="0b776dde-0590-11e5-81ba-0025b32654a0"/>
<effect name="audiosphere" library="audiosphere" uuid="184e62ab-2d19-4364-9d1b-c0a40733866c"/>
<effect name="shoebox" library="shoebox" uuid="1eab784c-1a36-4b2a-b7fc-e34c44cab89e"/>
</effects>
<postprocess>
<stream type="music">
<apply effect="music_helper"/>
</stream>
<stream type="ring">
<apply effect="ring_helper"/>
</stream>
<stream type="alarm">
<apply effect="alarm_helper"/>
</stream>
<stream type="voice_call">
<apply effect="voice_helper"/>
</stream>
<stream type="notification">
<apply effect="notification_helper"/>
</stream>
</postprocess>
<preprocess>
<stream type="voice_communication">
<apply effect="aec"/>
<apply effect="ns"/>
</stream>
</preprocess>
</audio_effects_conf>

183
audio/audio_io_policy.conf Normal file
View File

@@ -0,0 +1,183 @@
# List of profiles for the output device session where stream is routed.
# A stream opened with the inputs attributes which match the "flags" and
# "formats" as specified in the profile is routed to a device at
# sample rate specified under "sampling_rates" and bit width under
# "bit_width" and the topology extracted from the acdb data against
# the "app_type".
#
# the flags and formats are specified using the strings corresponding to
# enums in audio.h and audio_policy.h. They are concatenated with "|"
# without space or "\n".
# the flags and formats should match the ones in "audio_policy.conf"
outputs {
default {
flags AUDIO_OUTPUT_FLAG_PRIMARY
formats AUDIO_FORMAT_PCM_16_BIT
sampling_rates 48000
bit_width 16
app_type 69937
}
#ifdef OPLUS_FEATURE_PLAYBACK_24BIT
#Chunyu.Xie@MULTIMEDIA.AUDIODRIVER.HAL, 2021/07/15, add for support playback with 24bits
default_24 {
flags AUDIO_OUTPUT_FLAG_PRIMARY
formats AUDIO_FORMAT_PCM_24_BIT_PACKED
sampling_rates 48000
bit_width 24
app_type 69937
}
#endif /* OPLUS_FEATURE_PLAYBACK_24BIT */
proaudio {
flags AUDIO_OUTPUT_FLAG_FAST|AUDIO_OUTPUT_FLAG_RAW
formats AUDIO_FORMAT_PCM_16_BIT
sampling_rates 48000
bit_width 16
app_type 69943
}
voip_rx {
flags AUDIO_OUTPUT_FLAG_VOIP_RX|AUDIO_OUTPUT_FLAG_DIRECT
formats AUDIO_FORMAT_PCM_16_BIT
sampling_rates 8000|16000|32000|48000
bit_width 16
app_type 69946
}
deep_buffer {
flags AUDIO_OUTPUT_FLAG_DEEP_BUFFER
formats AUDIO_FORMAT_PCM_16_BIT
sampling_rates 48000
bit_width 16
app_type 69936
}
#ifdef OPLUS_FEATURE_PLAYBACK_24BIT
#Chunyu.Xie@MULTIMEDIA.AUDIODRIVER.HAL, 2021/07/15, add for support playback with 24bits
deep_buffer_24 {
flags AUDIO_OUTPUT_FLAG_DEEP_BUFFER
formats AUDIO_FORMAT_PCM_24_BIT_PACKED
sampling_rates 48000
bit_width 24
app_type 69936
}
#endif /* OPLUS_FEATURE_PLAYBACK_24BIT */
direct_pcm_16 {
flags AUDIO_OUTPUT_FLAG_DIRECT
formats AUDIO_FORMAT_PCM_16_BIT|AUDIO_FORMAT_PCM_24_BIT_PACKED|AUDIO_FORMAT_PCM_8_24_BIT|AUDIO_FORMAT_PCM_32_BIT
sampling_rates 44100|48000|88200|96000|176400|192000
bit_width 16
app_type 69936
}
direct_pcm_24 {
flags AUDIO_OUTPUT_FLAG_DIRECT
formats AUDIO_FORMAT_PCM_24_BIT_PACKED|AUDIO_FORMAT_PCM_8_24_BIT|AUDIO_FORMAT_PCM_32_BIT
sampling_rates 44100|48000|88200|96000|176400|192000|352800|384000
bit_width 24
app_type 69940
}
direct_pcm_32 {
flags AUDIO_OUTPUT_FLAG_DIRECT
formats AUDIO_FORMAT_PCM_32_BIT
sampling_rates 44100|48000|88200|96000|176400|192000|352800|384000
bit_width 32
app_type 69942
}
compress_passthrough {
flags AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD|AUDIO_OUTPUT_FLAG_NON_BLOCKING|AUDIO_OUTPUT_FLAG_COMPRESS_PASSTHROUGH
formats AUDIO_FORMAT_DTS|AUDIO_FORMAT_DTS_HD|AUDIO_FORMAT_DSD
sampling_rates 32000|44100|48000|88200|96000|176400|192000|352800
bit_width 16
app_type 69941
}
compress_offload_16 {
flags AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD|AUDIO_OUTPUT_FLAG_NON_BLOCKING
formats AUDIO_FORMAT_MP3|AUDIO_FORMAT_PCM_16_BIT_OFFLOAD|AUDIO_FORMAT_PCM_24_BIT_OFFLOAD|AUDIO_FORMAT_FLAC|AUDIO_FORMAT_ALAC|AUDIO_FORMAT_APE|AUDIO_FORMAT_AAC_LC|AUDIO_FORMAT_AAC_HE_V1|AUDIO_FORMAT_AAC_HE_V2|AUDIO_FORMAT_WMA|AUDIO_FORMAT_WMA_PRO|AUDIO_FORMAT_VORBIS|AUDIO_FORMAT_AAC_ADTS_LC|AUDIO_FORMAT_AAC_ADTS_HE_V1|AUDIO_FORMAT_AAC_ADTS_HE_V2
sampling_rates 44100|48000|88200|96000|176400|192000
bit_width 16
app_type 69936
}
compress_offload_24 {
flags AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD|AUDIO_OUTPUT_FLAG_NON_BLOCKING
formats AUDIO_FORMAT_PCM_24_BIT_OFFLOAD|AUDIO_FORMAT_FLAC|AUDIO_FORMAT_ALAC|AUDIO_FORMAT_APE|AUDIO_FORMAT_VORBIS|AUDIO_FORMAT_WMA|AUDIO_FORMAT_WMA_PRO
sampling_rates 44100|48000|88200|96000|176400|192000
bit_width 24
app_type 69940
}
}
inputs {
record_16bit {
formats AUDIO_FORMAT_PCM_16_BIT
#ifndef OPLUS_BUG_COMPATIBILITY
#//Yongpei.Yao@MULTIMEDIA.AUDIODRIVER.HAL.1825796, 2020/04/13, Modify for not support rate
# sampling_rates 8000|16000|32000|44100|48000|88200|96000|176400|192000
#else
sampling_rates 8000|16000|32000|48000
#endif /* OPLUS_BUG_COMPATIBILITY */
bit_width 16
app_type 69938
}
record_24bit {
formats AUDIO_FORMAT_PCM_24_BIT_PACKED|AUDIO_FORMAT_PCM_24_BIT
#ifndef OPLUS_BUG_COMPATIBILITY
#//Yongpei.Yao@MULTIMEDIA.AUDIODRIVER.HAL.1825796, 2020/04/13, Modify for not support rate
# sampling_rates 44100|48000|88200|96000|176400|192000
#else
sampling_rates 48000|88200|96000|176400|192000
#endif /* OPLUS_BUG_COMPATIBILITY */
bit_width 24
app_type 69948
}
record_32bit {
formats AUDIO_FORMAT_PCM_32_BIT|AUDIO_FORMAT_PCM_FLOAT
#ifndef OPLUS_BUG_COMPATIBILITY
#//Yongpei.Yao@MULTIMEDIA.AUDIODRIVER.HAL.1825796, 2020/04/13, Modify for not support rate
# sampling_rates 44100|48000|88200|96000|176400|192000
#else
sampling_rates 48000|88200|96000|176400|192000
#endif /* OPLUS_BUG_COMPATIBILITY */
bit_width 32
app_type 69949
}
#ifdef OPLUS_ARCH_EXTENDS
#//Nan.Zhong@MULTIMEDIA.AUDIODRIVER.HAL, 2020/08/27, Add for support rate for record_compress
record_compress_16 {
flags AUDIO_INPUT_FLAG_COMPRESS
formats AUDIO_FORMAT_PCM_16_BIT
sampling_rates 8000|16000|32000|48000
bit_width 16
app_type 69938
}
record_compress_24 {
flags AUDIO_INPUT_FLAG_COMPRESS
formats AUDIO_FORMAT_PCM_24_BIT_PACKED|AUDIO_FORMAT_PCM_24_BIT
sampling_rates 48000|88200|96000|176400|192000
bit_width 24
app_type 69948
}
record_compress_32 {
flags AUDIO_INPUT_FLAG_COMPRESS
formats AUDIO_FORMAT_PCM_32_BIT|AUDIO_FORMAT_PCM_FLOAT
sampling_rates 48000|88200|96000|176400|192000
bit_width 32
app_type 69949
}
#endif /* OPLUS_ARCH_EXTENDS */
#//RiCheng.Wang@MULTIMEDIA.AUDIODRIVER.HAL.1825796, 2020/09/27, Modify for #CR2762808 audio record voip low latency
voip_tx {
flags AUDIO_INPUT_FLAG_VOIP_TX
formats AUDIO_FORMAT_PCM_16_BIT
sampling_rates 8000|16000|32000|48000
bit_width 16
app_type 69946
}
low_latency_voip_tx {
flags AUDIO_INPUT_FLAG_FAST|AUDIO_INPUT_FLAG_VOIP_TX
formats AUDIO_FORMAT_PCM_16_BIT
sampling_rates 48000
bit_width 16
app_type 69946
}
#endif/* OPLUS_ARCH_EXTENDS */
}

View File

@@ -0,0 +1,628 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Copyright (c) 2014, 2016-2019, The Linux Foundation. All rights reserved. -->
<!-- -->
<!-- Redistribution and use in source and binary forms, with or without -->
<!-- modification, are permitted provided that the following conditions are -->
<!-- met: -->
<!-- * Redistributions of source code must retain the above copyright -->
<!-- notice, this list of conditions and the following disclaimer. -->
<!-- * Redistributions in binary form must reproduce the above -->
<!-- copyright notice, this list of conditions and the following -->
<!-- disclaimer in the documentation and/or other materials provided -->
<!-- with the distribution. -->
<!-- * Neither the name of The Linux Foundation nor the names of its -->
<!-- contributors may be used to endorse or promote products derived -->
<!-- from this software without specific prior written permission. -->
<!-- -->
<!-- THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED -->
<!-- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -->
<!-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT -->
<!-- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS -->
<!-- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -->
<!-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -->
<!-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -->
<!-- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -->
<!-- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
<!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
<audio_platform_info>
<bit_width_configs>
<device name="SND_DEVICE_OUT_SPEAKER" bit_width="24"/>
</bit_width_configs>
<interface_names>
<device name="AUDIO_DEVICE_IN_BUILTIN_MIC" interface="TX_CDC_DMA_TX_3" codec_type="internal"/>
<device name="AUDIO_DEVICE_IN_BACK_MIC" interface="TX_CDC_DMA_TX_3" codec_type="internal"/>
</interface_names>
<pcm_ids>
<usecase name="USECASE_AUDIO_PLAYBACK_LOW_LATENCY" type="out" id="9"/>
<usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD" type="out" id="7"/>
<usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD2" type="out" id="11"/>
<usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD3" type="out" id="12"/>
<usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD4" type="out" id="24"/>
<usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD5" type="out" id="25"/>
<usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD6" type="out" id="26"/>
<usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD7" type="out" id="27"/>
<usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD8" type="out" id="28"/>
<usecase name="USECASE_VOICEMMODE1_CALL" type="in" id="2"/>
<usecase name="USECASE_VOICEMMODE1_CALL" type="out" id="2"/>
<usecase name="USECASE_VOICEMMODE2_CALL" type="in" id="15"/>
<usecase name="USECASE_VOICEMMODE2_CALL" type="out" id="15"/>
<usecase name="USECASE_VOWLAN_CALL" type="in" id="-1"/>
<usecase name="USECASE_VOWLAN_CALL" type="out" id="-1"/>
<usecase name="USECASE_AUDIO_PLAYBACK_FM" type="out" id="30"/>
<usecase name="USECASE_AUDIO_PLAYBACK_FM" type="in" id="37"/>
<usecase name="USECASE_AUDIO_SPKR_CALIB_RX" type="out" id="30"/>
<usecase name="USECASE_AUDIO_SPKR_CALIB_TX" type="in" id="39"/>
<usecase name="USECASE_AUDIO_PLAYBACK_AFE_PROXY" type="out" id="5"/>
<usecase name="USECASE_AUDIO_RECORD_AFE_PROXY" type="in" id="6"/>
<usecase name="USECASE_AUDIO_RECORD_LOW_LATENCY" type="in" id="13" />
<usecase name="USECASE_AUDIO_PLAYBACK_ULL" type="out" id="13" />
<usecase name="USECASE_AUDIO_PLAYBACK_SILENCE" type="out" id="23" />
<usecase name="USECASE_AUDIO_PLAYBACK_VOIP" type="out" id="12" />
<usecase name="USECASE_AUDIO_RECORD_VOIP" type="in" id="12" />
<usecase name="USECASE_AUDIO_HFP_SCO" type="in" id="12" />
<usecase name="USECASE_AUDIO_HFP_SCO_WB" type="in" id="12" />
<usecase name="USECASE_AUDIO_PLAYBACK_MMAP" type="out" id="29" />
<usecase name="USECASE_AUDIO_RECORD_MMAP" type="in" id="29" />
<usecase name="USECASE_AUDIO_A2DP_ABR_FEEDBACK" type="in" id="35" />
<usecase name="USECASE_AUDIO_A2DP_ABR_FEEDBACK" type="out" id="35" />
<usecase name="USECASE_INCALL_MUSIC_UPLINK" type="out" id="23" />
<usecase name="USECASE_INCALL_MUSIC_UPLINK2" type="out" id="23" />
<usecase name="USECASE_AUDIO_RECORD_COMPRESS2" type="in" id="36" />
<usecase name="USECASE_INCALL_REC_UPLINK" type="in" id="23" />
<usecase name="USECASE_INCALL_REC_DOWNLINK" type="in" id="23" />
<usecase name="USECASE_INCALL_REC_UPLINK_AND_DOWNLINK" type="in" id="23" />
<!--Jianfeng.Qiu@MULTIMEDIA.AUDIODRIVER.feature.1234017, 2017/04/05, Add for ktv loopback-->
<usecase name="USECASE_AUDIO_OPLUS_KTV" type="in" id="33" />
<usecase name="USECASE_AUDIO_OPLUS_KTV" type="out" id="33" />
<usecase name="USECASE_AUDIO_OPLUS_KTV_USB_HS" type="in" id="33" />
<usecase name="USECASE_AUDIO_OPLUS_KTV_USB_HS" type="out" id="33" />
<!--Jianfeng.Qiu@MULTIMEDIA.AUDIODRIVER.feature.1234017, 2017/04/05, Add for ktv loopback end-->
</pcm_ids>
<config_params>
<!-- In the below value string, the value indicates default mono -->
<!-- speaker. It can be set to either left or right -->
<param key="mono_speaker" value="left"/>
<!-- In the below value string, first parameter indicates size -->
<!-- followed by perf lock options -->
<param key="perf_lock_opts" value="4, 0x40400000, 0x1, 0x40C00000, 0x1"/>
<param key="spkr_1_tz_name" value="wsatz.13"/>
<param key="spkr_2_tz_name" value="wsatz.14"/>
<param key="true_32_bit" value="true"/>
<param key="native_audio_mode" value="false"/>
<param key="hfp_pcm_dev_id" value="39"/>
<param key="input_mic_max_count" value="4"/>
<!-- In the below value string, the value indicates sidetone gain in dB -->
<param key="usb_sidetone_gain" value="35"/>
<!--#Jianfeng.Qiu@MULTIMEDIA.AUDIODRIVER.HAL, 2019/08/22, Add for oplus config-->
<param key="oplus_mic_count" value="2"/>
<param key="oplus_speaker_id" value="1"/>
<param key="oplus_multi_record" value="true"/>
<param key="SPK_VI_HOSTLESS" value="Primary MI2S_TX Hostless Capture"/>
<param key="PHONE_MIC_LOOPBACK" value="TX3_CDC_DMA Hostless"/>
<param key="HEADSET_MIC_LOOPBACK" value="TX4_CDC_DMA Hostless"/>
<!--#Yongzhi.Zhang@PSW.MM.AudioDriver.HAL.413701, 2020/09/22, add for old audiovoice scence-->
<param key="use_audiovoice_scence" value="false"/>
<!--#Jianfeng.Qiu@MULTIMEDIA.AUDIODRIVER.HAL, 2019/08/22, Add for oplus config end-->
<!--#Le.Li@MULTIMEDIA.AUDIODRIVER.FM, 2020/10/30, Add for FM support conifg begin -->
<param key="oplus_fm_support" value="1"/>
<!--#Le.Li@MULTIMEDIA.AUDIODRIVER.FM, 2020/10/30, Add for FM support conifg end -->
<!--#Nan.Zhong@MULTIMEDIA.AUDIODRIVER.HAL, 2020/11/13, Add for tty mode-->
<param key="oplus_tty_support" value="0"/>
<!--#Nan.Zhong@MULTIMEDIA.AUDIODRIVER.HAL, 2020/11/13, Add for tty mode end-->
<!--vikas.babanin@MM.AUDIODRIVER.AUDIOPARAMS.OPLUS_FEATURE_SWITCH_MIC, 2021/11/22, Add for camcorder switch mic -->
<param key="camcorder_switch_mic" value="true"/>
<!--vikas.babani@MM.AUDIODRIVER.AUDIOPARAMS.OPLUS_FEATURE_SWITCH_MIC, 2020/11/22, Add for camcorder switch end -->
<param key="use_audiovoice_scence_v2" value="true"/>
<!--Vanakalla.Laxman@@MULTIMEDIA.AUDIODRIVER , Add param for using acdb_id 42 for call recording on speaker for 20801 & 20804 ALM#3354063 -->
<param key="diff_acdb_callrecording" value="true"/>
</config_params>
<acdb_ids>
<device name="SND_DEVICE_OUT_SPEAKER" acdb_id="15"/>
<device name="SND_DEVICE_OUT_SPEAKER_REVERSE" acdb_id="15"/>
<device name="SND_DEVICE_OUT_SPEAKER_PROTECTED" acdb_id="124"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_PROTECTED" acdb_id="101"/>
<device name="SND_DEVICE_OUT_SPEAKER_PROTECTED_VBAT" acdb_id="124"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_PROTECTED_VBAT" acdb_id="101"/>
<device name="SND_DEVICE_IN_CAPTURE_VI_FEEDBACK" acdb_id="102"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_2_PROTECTED" acdb_id="150"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_2_PROTECTED_VBAT" acdb_id="150"/>
<device name="SND_DEVICE_IN_CAPTURE_VI_FEEDBACK_MONO_1" acdb_id="151"/>
<device name="SND_DEVICE_IN_CAPTURE_VI_FEEDBACK_MONO_2" acdb_id="152"/>
<device name="SND_DEVICE_OUT_SPEAKER_EXTERNAL_1" acdb_id="14"/>
<device name="SND_DEVICE_OUT_SPEAKER_EXTERNAL_2" acdb_id="14"/>
<device name="SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES_EXTERNAL_1" acdb_id="10"/>
<device name="SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES_EXTERNAL_2" acdb_id="10"/>
<!-- VikasBabani@MULTIMEDIA.AUDIODRIVER.HAL, 2021/11/30, Make acdb_id for bt-a2dp & usb-headset same as R start-->
<device name="SND_DEVICE_OUT_SPEAKER_AND_USB_HEADSET" acdb_id="45"/>
<device name="SND_DEVICE_OUT_BT_A2DP" acdb_id="10"/>
<device name="SND_DEVICE_OUT_VOICE_USB_HEADPHONES" acdb_id="45"/>
<device name="SND_DEVICE_OUT_USB_HEADSET" acdb_id="10"/>
<device name="SND_DEVICE_OUT_USB_HEADPHONES" acdb_id="10"/>
<device name="SND_DEVICE_OUT_VOICE_USB_HEADPHONES" acdb_id="10"/>
<!-- VikasBabani@MULTIMEDIA.AUDIODRIVER.HAL, 2021/11/30, Make acdb_id for bt-a2dp & usb-headset same as R start-->
<device name="SND_DEVICE_IN_UNPROCESSED_MIC" acdb_id="143"/>
<device name="SND_DEVICE_IN_UNPROCESSED_STEREO_MIC" acdb_id="144"/>
<device name="SND_DEVICE_IN_UNPROCESSED_THREE_MIC" acdb_id="145"/>
<device name="SND_DEVICE_IN_UNPROCESSED_QUAD_MIC" acdb_id="146"/>
<device name="SND_DEVICE_IN_UNPROCESSED_HEADSET_MIC" acdb_id="147"/>
<device name="SND_DEVICE_IN_HANDSET_GENERIC_QMIC" acdb_id="157"/>
<!--#Jianfeng.Qiu@MULTIMEDIA.AUDIODRIVER.HAL, 2017/09/22, Add for oplus config-->
<device name="SND_DEVICE_IN_UNPROCESSED_USB_HEADSET_MIC" acdb_id="133"/>
<device name="SND_DEVICE_OUT_MMI_SPEAKER_PLAYBACK" acdb_id="99"/>
<device name="SND_DEVICE_OUT_MMI_LEFT_SPEAKER_PLAYBACK" acdb_id="124"/>
<device name="SND_DEVICE_OUT_MMI_RECEIVER_PLAYBACK" acdb_id="30"/>
<device name="SND_DEVICE_OUT_ENGINNER_RECIVER_TEST" acdb_id="30"/>
<device name="SND_DEVICE_IN_MAIN_MIC_RECORD" acdb_id="34"/>
<device name="SND_DEVICE_IN_SEC_MIC_RECORD" acdb_id="34"/>
<device name="SND_DEVICE_IN_ANC_MIC_RECORD" acdb_id="104"/>
<device name="SND_DEVICE_IN_MMI_MIC_RECORD" acdb_id="144"/>
<device name="SND_DEVICE_IN_MMI_ANC_MIC_RECORD" acdb_id="144"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER" acdb_id="15"/>
<!--#ifdef OPLUS_ARCH_EXTENDS-->
<!--#Isha.Padiyar@MULTIMEDIA.AUDIODRIVER.HAL, 2021/12/10, Add for voip call scenario-->
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_STEREO" acdb_id="14"/>
<!--#endif OPLUS_ARCH_EXTENDS-->
<device name="SND_DEVICE_OUT_VOICE_HEADPHONES" acdb_id="10"/>
<device name="SND_DEVICE_OUT_VOICE_HEADSET" acdb_id="10"/>
<device name="SND_DEVICE_IN_HEADSET_MIC" acdb_id="23"/>
<device name="SND_DEVICE_IN_VOICE_REC_HEADSET_MIC" acdb_id="23"/>
<!--#Jianfeng.Qiu@MULTIMEDIA.AUDIODRIVER.HAL, 2017/09/22, Add for oplus config end-->
<!--Jianfeng.Qiu@MULTIMEDIA.AUDIODRIVER.feature.1234017, 2017/04/05, Add for ktv loopback-->
<device name="SND_DEVICE_IN_HEADSET_MIC_KTV" acdb_id="98"/>
<device name="SND_DEVICE_IN_USB_HEADSET_MIC_KTV" acdb_id="98"/>
<!--Jianfeng.Qiu@MULTIMEDIA.AUDIODRIVER.feature.1234017, 2017/04/05, Add for ktv loopback end-->
<!--Jianfeng.Qiu@MULTIMEDIA.AUDIODRIVER.feature.1446118, 2018/06/25, Add for record scence optimization-->
<device name="SND_DEVICE_IN_HANDSET_MIC_INTERVIEW" acdb_id="5"/>
<device name="SND_DEVICE_IN_HANDSET_MIC_CONFERENCE" acdb_id="105"/>
<!--Jianfeng.Qiu@MULTIMEDIA.AUDIODRIVER.feature.1446118, 2018/06/25, Add for record scence optimization end-->
<!--Jianfeng.Qiu@MULTIMEDIA.AUDIODRIVER.HAL.1065630, 2018/03/31, Add for odm1 video record-->
<device name="SND_DEVICE_IN_HANDSET_MIC_VIDEO_ODM1" acdb_id="113"/>
<!--Jianfeng.Qiu@MULTIMEDIA.AUDIODRIVER.HAL.1065630, 2018/03/31, Add for odm1 video record end-->
<!--Isha.Padiyar@MULTIMEDIA.AUDIODRIVER.HAL, 2022/01/07, Add for voice recording switch left and right channels-->
<device name="SND_DEVICE_IN_HANDSET_DMIC_STEREO_SWITCH" acdb_id="11"/>
<!--Isha.Padiyar@MULTIMEDIA.AUDIODRIVER.HAL, 2022/01/07, Add for voice recording switch left and right channels end-->
<!--Isha.Padiyar@MULTIMEDIA.AUDIODRIVER.HAL, 2022/01/07, Add for Video recording switch left and right channels Start-->
<device name="SND_DEVICE_IN_HANDSET_DMIC_STEREO" acdb_id="35"/>
<!--Isha.Padiyar@MULTIMEDIA.AUDIODRIVER.HAL, 2022/01/07, Add for Video recording switch left and right channels end-->
<!--Jianfeng.Qiu@MULTIMEDIA.AUDIODRIVER.feature.1611397, 2019/04/17, Add for VoiceScence-->
<device name="SND_DEVICE_IN_HANDSET_MIC_VOICE_RECORD_ODM1" acdb_id="116"/>
<device name="SND_DEVICE_IN_HANDSET_MIC_VOICE_RECORD_WEIXIN" acdb_id="116"/>
<device name="SND_DEVICE_IN_HEADSET_MIC_VOICE_RECORD_ODM1" acdb_id="23"/>
<device name="SND_DEVICE_IN_HANDSET_MIC_VOICE_COMMUNICATION_ODM1" acdb_id="41"/>
<device name="SND_DEVICE_IN_SPEAKER_MIC_VOICE_COMMUNICATION_ODM1" acdb_id="43"/>
<device name="SND_DEVICE_IN_HEADSET_MIC_VOICE_COMMUNICATION_ODM1" acdb_id="23"/>
<device name="SND_DEVICE_IN_SPEAKER_MIC_VOICE_RECORD_TMGP" acdb_id="192"/>
<device name="SND_DEVICE_IN_HEADSET_MIC_VOICE_RECORD_TMGP" acdb_id="23"/>
<device name="SND_DEVICE_IN_SPEAKER_MIC_VOICE_RECORD_EFFECT" acdb_id="192"/>
<device name="SND_DEVICE_IN_HEADSET_MIC_VOICE_RECORD_EFFECT" acdb_id="23"/>
<device name="SND_DEVICE_IN_HANDSET_MIC_KARAOKE" acdb_id="25"/>
<device name="SND_DEVICE_IN_HEADPHONES_KARAOKE" acdb_id="114"/>
<device name="SND_DEVICE_IN_SPEAKER_MIC_VOICE_RECORD_GAME" acdb_id="43"/>
<device name="SND_DEVICE_IN_CAMCORDER_SELFIE" acdb_id="112"/>
<device name="SND_DEVICE_OUT_HANDSET_VOICE_PLAYBACK" acdb_id="7"/>
<device name="SND_DEVICE_OUT_SPEAKER_VOICE_PLAYBACK" acdb_id="15"/>
<device name="SND_DEVICE_OUT_HEADPHONES_VOICE_PLAYBACK" acdb_id="10"/>
<device name="SND_DEVICE_OUT_HANDSET_COMMUNICATION_PLAYBACK" acdb_id="7"/>
<device name="SND_DEVICE_OUT_SPEAKER_COMMUNICATION_PLAYBACK" acdb_id="14"/>
<device name="SND_DEVICE_OUT_HEADPHONES_COMMUNICATION_PLAYBACK" acdb_id="10"/>
<device name="SND_DEVICE_OUT_SPEAKER_VOICE_PLAYBACK_TMGP" acdb_id="190"/>
<device name="SND_DEVICE_OUT_HEADPHONES_VOICE_PLAYBACK_TMGP" acdb_id="10"/>
<device name="SND_DEVICE_OUT_SPEAKER_AUDIO_PLAYBACK_TMGP" acdb_id="15"/>
<device name="SND_DEVICE_OUT_HEADPHONES_AUDIO_PLAYBACK_TMGP" acdb_id="10"/>
<device name="SND_DEVICE_OUT_SPEAKER_AUDIO_PLAYBACK_EFFECT" acdb_id="15"/>
<device name="SND_DEVICE_OUT_HEADPHONES_AUDIO_PLAYBACK_EFFECT" acdb_id="10"/>
<device name="SND_DEVICE_OUT_BT_A2DP_AUDIO_PLAYBACK_EFFECT" acdb_id="20"/>
<device name="SND_DEVICE_OUT_SPEAKER_VOICE_PLAYBACK_EFFECT" acdb_id="190"/>
<device name="SND_DEVICE_OUT_HEADPHONES_VOICE_PLAYBACK_EFFECT" acdb_id="10"/>
<!--Jianfeng.Qiu@MULTIMEDIA.AUDIODRIVER.feature.1611397, 2019/04/17, Add for VoiceScence end-->
<!-- Kaijia.Lin@MULTIMEDIA.AUDIODRIVER.HAL, 2019/10/12, Add for dummy dev START -->
<device name="SND_DEVICE_OUT_DUMMY" acdb_id="15"/>
<!-- Kaijia.Lin@MULTIMEDIA.AUDIODRIVER.HAL, 2019/10/12, Add for dummy dev END -->
<!--#Isha.Padiyar@MULTIMEDIA.AUDIODRIVER.HAL, 2022/1/6, Add for voice message scenario START-->
<device name="SND_DEVICE_IN_HANDSET_MIC" acdb_id="4"/>
<!--#Isha.Padiyar@MULTIMEDIA.AUDIODRIVER.HAL, 2022/1/6, Add for voice message scenario END -->
<!--Yongzhi.Zhang@MULTIMEDIA.AUDIODRIVER.HAL, 2020/08/31, Add for force acdb id START -->
<!-- record 1MIC device force using acdb id 35 -->
<!-- and with the modification of mixer_paths, the items of record 1MIC device will also change to the ones of 2MIC device -->
<device name="SND_DEVICE_IN_SPEAKER_MIC" acdb_id="35"/>
<!-- voice MIC device force using acdb id 41 and 43 -->
<device name="SND_DEVICE_IN_VOICE_SPEAKER_MIC" acdb_id="43"/>
<device name="SND_DEVICE_IN_HANDSET_TMIC" acdb_id="41"/>
<device name="SND_DEVICE_IN_VOICE_SPEAKER_TMIC" acdb_id="43"/>
<!-- VOIP MIC device force using acdb id, 108 and 114 for 1MIC, 111 and 117 for 2MIC, 156 and 160 for 3MIC -->
<device name="SND_DEVICE_IN_HANDSET_MIC_AEC" acdb_id="108"/>
<device name="SND_DEVICE_IN_HANDSET_MIC_NS" acdb_id="108"/>
<device name="SND_DEVICE_IN_SPEAKER_MIC_AEC" acdb_id="114"/>
<device name="SND_DEVICE_IN_SPEAKER_MIC_NS" acdb_id="114"/>
<device name="SND_DEVICE_IN_HANDSET_DMIC_AEC" acdb_id="111"/>
<device name="SND_DEVICE_IN_HANDSET_DMIC_NS" acdb_id="111"/>
<device name="SND_DEVICE_IN_SPEAKER_DMIC_AEC" acdb_id="117"/>
<device name="SND_DEVICE_IN_SPEAKER_DMIC_NS" acdb_id="117"/>
<device name="SND_DEVICE_IN_HANDSET_TMIC_AEC" acdb_id="156"/>
<device name="SND_DEVICE_IN_HANDSET_TMIC_NS" acdb_id="156"/>
<device name="SND_DEVICE_IN_SPEAKER_TMIC_AEC" acdb_id="160"/>
<device name="SND_DEVICE_IN_SPEAKER_TMIC_NS" acdb_id="160"/>
<!-- Voice Recognition device force using acdb id, 107 for 1MIC, 109 for 2MIC, 125 for 3MIC(default) -->
<device name="SND_DEVICE_IN_VOICE_REC_MIC" acdb_id="107"/>
<device name="SND_DEVICE_IN_VOICE_REC_MIC_AEC" acdb_id="107"/>
<device name="SND_DEVICE_IN_VOICE_REC_MIC_AEC_NS" acdb_id="107"/>
<!--Isha.Padiyar@MULTIMEDIA.AUDIODRIVER.HAL, 2022/01/1, Add for Smule app record START -->
<device name="SND_DEVICE_IN_VOICE_REC_DMIC_STEREO" acdb_id="34"/>
<!--Isha.Padiyar@MULTIMEDIA.AUDIODRIVER.HAL, 2022/01/11, Add for Smule app record END -->
<!--Vikas.Babani@MULTIMEDIA.AUDIODRIVER.HAL, 2022/05/04, Add for Voice recognition CTS failure START -->
<device name="SND_DEVICE_IN_VOICE_REC_DMIC_FLUENCE" acdb_id="41"/>
<device name="SND_DEVICE_IN_VOICE_RECOG_USB_HEADSET_MIC" acdb_id="133"/>
<!--Vikas.Babani@MULTIMEDIA.AUDIODRIVER.HAL, 2022/05/04, Add for Voice recognition CTS failure END -->
<!-- VOIP speaker device force using acdb id 15 which have a different AFE from the acdb id of playback speaker -->
<device name="SND_DEVICE_OUT_VOIP_SPEAKER" acdb_id="15"/>
<!--Yongzhi.Zhang@MULTIMEDIA.AUDIODRIVER.HAL, 2020/08/31, Add for force acdb id END -->
<device name="SND_DEVICE_IN_HANDSET_DMIC_AEC_NS" acdb_id="41"/>
<device name="SND_DEVICE_IN_SPEAKER_DMIC_AEC_NS" acdb_id="43"/>
<!--Vikas.Babani@MULTIMEDIA.AUDIODRIVER.HAL, 2021/12/31, add for HAC start-->
<device name="SND_DEVICE_OUT_VOICE_HAC_HANDSET" acdb_id="103"/>
<device name="SND_DEVICE_IN_VOICE_HAC_HANDSET_DMIC" acdb_id="105"/>
<device name="SND_DEVICE_IN_VOICE_HEARING_AID" acdb_id="11"/>
<!--Vikas.Babani@MULTIMEDIA.AUDIODRIVER.HAL, 2021/12/31, add for HAC end-->
<!--Vikas.Babani@MULTIMEDIA.AUDIODRIVER.FEATURE, 2022/04/10, Add special input device for qcom qva -->
<device name="SND_DEVICE_IN_QVA_UNPROCESS_MIC" acdb_id="143"/>
<!--Vikas.Babani@MULTIMEDIA.AUDIODRIVER.FEATURE, 2022/04/10, Add special input device for qcom qva END -->
</acdb_ids>
<backend_names>
<device name="SND_DEVICE_OUT_HEADPHONES" backend="headphones" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_HEADPHONES_44_1" backend="headphones-44.1" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_BT_SCO_WB" backend="bt-sco-wb" interface="SLIMBUS_7_RX"/>
<device name="SND_DEVICE_OUT_BT_SCO" backend="bt-sco" interface="SLIMBUS_7_RX"/>
<device name="SND_DEVICE_OUT_BT_A2DP" backend="bt-a2dp" interface="SLIMBUS_7_RX"/>
<device name="SND_DEVICE_OUT_LINE" backend="headphones" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_ANC_HEADSET" backend="headphones" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES" backend="speaker-and-headphones" interface="PRI_MI2S_RX-and-RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_SPEAKER_AND_LINE" backend="speaker-and-headphones" interface="PRI_MI2S_RX-and-RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_SPEAKER_AND_ANC_HEADSET" backend="speaker-and-headphones" interface="PRI_MI2S_RX-and-RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_HEADPHONES" backend="headphones" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_HEADSET" backend="headset" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_ANC_HEADSET" backend="headphones" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_LINE" backend="headphones" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_TTY_FULL_HEADPHONES" backend="headphones" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_TTY_VCO_HEADPHONES" backend="headphones" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_HANDSET" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_SPEAKER" backend="speaker" interface="PRI_MI2S_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_EXTERNAL_1" backend="speaker" interface="PRI_MI2S_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_EXTERNAL_2" backend="speaker" interface="PRI_MI2S_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_REVERSE" backend="speaker" interface="PRI_MI2S_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_VBAT" backend="speaker" interface="PRI_MI2S_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES_EXTERNAL_1" interface="PRI_MI2S_RX-and-RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES_EXTERNAL_2" interface="PRI_MI2S_RX-and-RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_HANDSET" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_IN_HANDSET_GENERIC_QMIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER" backend="speaker" interface="PRI_MI2S_RX"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_STEREO" backend="speaker" interface="PRI_MI2S_RX"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_VBAT" backend="speaker" interface="PRI_MI2S_RX"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_2" backend="speaker" interface="PRI_MI2S_RX"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_2_VBAT" backend="speaker" interface="PRI_MI2S_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_AND_HDMI" interface="PRI_MI2S_RX-and-HDMI"/>
<device name="SND_DEVICE_OUT_SPEAKER_AND_DISPLAY_PORT" interface="PRI_MI2S_RX-and-DISPLAY_PORT"/>
<device name="SND_DEVICE_OUT_SPEAKER_AND_BT_A2DP" interface="PRI_MI2S_RX-and-SLIMBUS_7_RX"/>
<device name="SND_DEVICE_OUT_VOICE_TTY_HCO_HANDSET" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_ANC_FB_HEADSET" backend="headphones" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_ANC_FB_HEADSET" backend="headphones" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_ANC_HANDSET" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_SPEAKER_PROTECTED" backend="speaker" interface="PRI_MI2S_RX"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_PROTECTED" backend="speaker" interface="PRI_MI2S_RX"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_2_PROTECTED" backend="speaker" interface="PRI_MI2S_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_PROTECTED_VBAT" backend="speaker" interface="PRI_MI2S_RX"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_PROTECTED_VBAT" backend="speaker" interface="PRI_MI2S_RX"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_2_PROTECTED_VBAT" backend="speaker" interface="PRI_MI2S_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_WSA" backend="speaker" interface="PRI_MI2S_RX"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_WSA" backend="speaker" interface="PRI_MI2S_RX"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_2_WSA" backend="speaker" interface="PRI_MI2S_RX"/>
<device name="SND_DEVICE_IN_HANDSET_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HANDSET_MIC_EXTERNAL" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HANDSET_MIC_AEC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HANDSET_MIC_NS" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HANDSET_MIC_AEC_NS" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HANDSET_DMIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HANDSET_DMIC_AEC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HANDSET_DMIC_NS" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HANDSET_DMIC_AEC_NS" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_SPEAKER_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_SPEAKER_MIC_AEC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_SPEAKER_MIC_NS" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_SPEAKER_MIC_AEC_NS" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_SPEAKER_DMIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_SPEAKER_DMIC_AEC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_SPEAKER_DMIC_NS" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_SPEAKER_DMIC_AEC_NS" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HEADSET_MIC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
<device name="SND_DEVICE_IN_HEADSET_MIC_FLUENCE" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
<device name="SND_DEVICE_IN_VOICE_HEADSET_MIC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
<device name="SND_DEVICE_IN_VOICE_TTY_FULL_HEADSET_MIC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
<device name="SND_DEVICE_IN_VOICE_TTY_HCO_HEADSET_MIC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
<device name="SND_DEVICE_IN_UNPROCESSED_HEADSET_MIC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
<device name="SND_DEVICE_IN_VOICE_REC_HEADSET_MIC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
<device name="SND_DEVICE_IN_HEADSET_MIC_AEC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
<device name="SND_DEVICE_IN_VOICE_SPEAKER_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HDMI_MIC" interface="HDMI"/>
<device name="SND_DEVICE_IN_BT_SCO_MIC" interface="SLIMBUS_7_TX"/>
<device name="SND_DEVICE_IN_BT_SCO_MIC_NREC" interface="SLIMBUS_7_TX"/>
<device name="SND_DEVICE_IN_BT_SCO_MIC_WB" interface="SLIMBUS_7_TX"/>
<device name="SND_DEVICE_IN_BT_SCO_MIC_WB_NREC" interface="SLIMBUS_7_TX"/>
<device name="SND_DEVICE_IN_CAMCORDER_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_VOICE_DMIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_VOICE_SPEAKER_DMIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_VOICE_SPEAKER_QMIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_VOICE_TTY_FULL_HEADSET_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_VOICE_TTY_VCO_HANDSET_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_VOICE_TTY_HCO_HEADSET_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_VOICE_REC_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_VOICE_REC_MIC_NS" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_VOICE_REC_DMIC_STEREO" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_VOICE_REC_DMIC_FLUENCE" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_AANC_HANDSET_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_QUAD_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HANDSET_DMIC_STEREO" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_SPEAKER_DMIC_STEREO" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_CAPTURE_VI_FEEDBACK" interface="PRI_MI2S_TX"/>
<device name="SND_DEVICE_IN_CAPTURE_VI_FEEDBACK_MONO_1" interface="PRI_MI2S_TX"/>
<device name="SND_DEVICE_IN_CAPTURE_VI_FEEDBACK_MONO_2" interface="PRI_MI2S_TX"/>
<device name="SND_DEVICE_IN_VOICE_SPEAKER_DMIC_BROADSIDE" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_SPEAKER_DMIC_BROADSIDE" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_SPEAKER_DMIC_AEC_BROADSIDE" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_SPEAKER_DMIC_NS_BROADSIDE" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_SPEAKER_DMIC_AEC_NS_BROADSIDE" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_VOICE_FLUENCE_DMIC_AANC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HANDSET_QMIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_SPEAKER_QMIC_AEC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_SPEAKER_QMIC_NS" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_SPEAKER_QMIC_AEC_NS" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_THREE_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HANDSET_TMIC_FLUENCE_PRO" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HANDSET_TMIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HANDSET_TMIC_AEC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HANDSET_TMIC_NS" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HANDSET_TMIC_AEC_NS" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_VOICE_REC_TMIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_UNPROCESSED_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_UNPROCESSED_STEREO_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_UNPROCESSED_THREE_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_UNPROCESSED_QUAD_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_UNPROCESSED_HEADSET_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_AND_VOICE_HEADPHONES" backend="speaker-and-headphones" interface="PRI_MI2S_RX-and-RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_AND_VOICE_ANC_HEADSET" backend="speaker-and-headphones" interface="PRI_MI2S_RX-and-RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_SPEAKER_AND_BT_SCO" backend="speaker-and-bt-sco" interface="PRI_MI2S_RX-and-SLIMBUS_7_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_AND_BT_SCO_WB" backend="speaker-and-bt-sco-wb" interface="PRI_MI2S_RX-and-SLIMBUS_7_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_AND_USB_HEADSET" backend="speaker-and-usb-headphones" interface="PRI_MI2S_RX-and-USB_AUDIO_RX"/>
<!--#Jianfeng.Qiu@MULTIMEDIA.AUDIODRIVER.HAL, 2017/09/22, Add for oplus config-->
<device name="SND_DEVICE_IN_UNPROCESSED_USB_HEADSET_MIC" interface="USB_AUDIO_TX"/>
<device name="SND_DEVICE_OUT_MMI_SPEAKER_PLAYBACK" backend="speaker" interface="PRI_MI2S_RX"/>
<device name="SND_DEVICE_OUT_MMI_LEFT_SPEAKER_PLAYBACK" backend="speaker" interface="PRI_MI2S_RX"/>
<device name="SND_DEVICE_OUT_MMI_RECEIVER_PLAYBACK" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_ENGINNER_RECIVER_TEST" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_IN_MAIN_MIC_RECORD" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_SEC_MIC_RECORD" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_ANC_MIC_RECORD" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_MMI_MIC_RECORD" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_MMI_ANC_MIC_RECORD" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_OUT_SPEAKER_SAFE" backend="speaker" interface="PRI_MI2S_RX"/>
<!--#Jianfeng.Qiu@MULTIMEDIA.AUDIODRIVER.HAL, 2017/09/22, Add for oplus config end-->
<!--Jianfeng.Qiu@MULTIMEDIA.AUDIODRIVER.feature.1234017, 2017/04/05, Add for ktv loopback-->
<device name="SND_DEVICE_IN_HEADSET_MIC_KTV" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
<device name="SND_DEVICE_IN_USB_HEADSET_MIC_KTV" backend="usb-headset-mic" interface="USB_AUDIO_TX"/>
<!--Jianfeng.Qiu@MULTIMEDIA.AUDIODRIVER.feature.1234017, 2017/04/05, Add for ktv loopback end-->
<!--Jianfeng.Qiu@MULTIMEDIA.AUDIODRIVER.feature.1446118, 2018/06/25, Add for record scence optimization-->
<device name="SND_DEVICE_IN_HANDSET_MIC_INTERVIEW" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HANDSET_MIC_CONFERENCE" interface="TX_CDC_DMA_TX_3"/>
<!--Jianfeng.Qiu@MULTIMEDIA.AUDIODRIVER.feature.1446118, 2018/06/25, Add for record scence optimization end-->
<!--Jianfeng.Qiu@MULTIMEDIA.AUDIODRIVER.HAL.1065630, 2018/03/31, Add for odm1 video record-->
<device name="SND_DEVICE_IN_HANDSET_MIC_VIDEO_ODM1" interface="TX_CDC_DMA_TX_3"/>
<!--Jianfeng.Qiu@MULTIMEDIA.AUDIODRIVER.HAL.1065630, 2018/03/31, Add for odm1 video record end-->
<!--Nan.Zhong@MULTIMEDIA.AUDIODRIVER.HAL, 2020/03/24, Add for Video recording switch left and right channels-->
<device name="SND_DEVICE_IN_HANDSET_DMIC_STEREO_SWITCH" interface="TX_CDC_DMA_TX_3"/>
<!--Nan.Zhong@MULTIMEDIA.AUDIODRIVER.HAL, 2020/03/24, Add for Video recording switch left and right channels end-->
<!--Jianfeng.Qiu@MULTIMEDIA.AUDIODRIVER.feature.1611397, 2019/04/17, Add for VoiceScence-->
<device name="SND_DEVICE_IN_HANDSET_MIC_VOICE_RECORD_ODM1" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HANDSET_MIC_VOICE_RECORD_WEIXIN" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HEADSET_MIC_VOICE_RECORD_ODM1" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
<device name="SND_DEVICE_IN_HANDSET_MIC_VOICE_COMMUNICATION_ODM1" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_SPEAKER_MIC_VOICE_COMMUNICATION_ODM1" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HEADSET_MIC_VOICE_COMMUNICATION_ODM1" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
<device name="SND_DEVICE_IN_SPEAKER_MIC_VOICE_RECORD_TMGP" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HEADSET_MIC_VOICE_RECORD_TMGP" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
<device name="SND_DEVICE_IN_SPEAKER_MIC_VOICE_RECORD_EFFECT" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HEADSET_MIC_VOICE_RECORD_EFFECT" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
<device name="SND_DEVICE_OUT_HANDSET_VOICE_PLAYBACK" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_SPEAKER_VOICE_PLAYBACK" backend="speaker" interface="PRI_MI2S_RX"/>
<device name="SND_DEVICE_OUT_HEADPHONES_VOICE_PLAYBACK" backend="headphones" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_HANDSET_COMMUNICATION_PLAYBACK" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_SPEAKER_COMMUNICATION_PLAYBACK" backend="speaker" interface="PRI_MI2S_RX"/>
<device name="SND_DEVICE_OUT_HEADPHONES_COMMUNICATION_PLAYBACK" backend="headphones" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_SPEAKER_VOICE_PLAYBACK_TMGP" backend="speaker" interface="PRI_MI2S_RX"/>
<device name="SND_DEVICE_OUT_HEADPHONES_VOICE_PLAYBACK_TMGP" backend="headphones" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_SPEAKER_AUDIO_PLAYBACK_TMGP" backend="speaker" interface="PRI_MI2S_RX"/>
<device name="SND_DEVICE_OUT_HEADPHONES_AUDIO_PLAYBACK_TMGP" backend="headphones" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_SPEAKER_AUDIO_PLAYBACK_EFFECT" backend="speaker" interface="PRI_MI2S_RX"/>
<device name="SND_DEVICE_OUT_HEADPHONES_AUDIO_PLAYBACK_EFFECT" backend="headphones" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_BT_A2DP_AUDIO_PLAYBACK_EFFECT" backend="bt-a2dp" interface="SLIMBUS_7_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_VOICE_PLAYBACK_EFFECT" backend="speaker" interface="PRI_MI2S_RX"/>
<device name="SND_DEVICE_OUT_HEADPHONES_VOICE_PLAYBACK_EFFECT" backend="headphones" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_IN_HANDSET_MIC_KARAOKE" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HEADPHONES_KARAOKE" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_SPEAKER_MIC_VOICE_RECORD_GAME" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_CAMCORDER_SELFIE" interface="TX_CDC_DMA_TX_3"/>
<!--Jianfeng.Qiu@PSW.MM.AudioDriver.feature.1611397, 2019/04/17, Add for VoiceScence end-->
<!-- Kaijia.Lin@PSW.MM.AudioDriver.HAL, 2019/10/12, Add for dummy dev START -->
<device name="SND_DEVICE_OUT_DUMMY" backend="dummy" interface="AFE_PCM_RX"/>
<!-- Kaijia.Lin@MULTIMEDIA.AUDIODRIVER.HAL, 2019/10/12, Add for dummy dev END -->
<!--Yongzhi.Zhang@MULTIMEDIA.AUDIODRIVER.HAL, 2020/08/31, Add for force acdb id -->
<!-- VOIP speaker device force using acdb id 14 which have a different AFE from the acdb id of playback speaker -->
<device name="SND_DEVICE_OUT_VOIP_SPEAKER" backend="speaker" interface="PRI_MI2S_RX"/>
<!--Yongzhi.Zhang@MULTIMEDIA.AUDIODRIVER.HAL, 2020/08/31, Add for force acdb id END -->
<!--Vikas.Babani@MULTIMEDIA.AUDIODRIVER.HAL, 2021/12/31, add for HAC start-->
<device name="SND_DEVICE_IN_VOICE_HAC_HANDSET_DMIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_OUT_VOICE_HAC_HANDSET" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_IN_VOICE_HEARING_AID" interface="TX_CDC_DMA_TX_3"/>
<!-- Vikas.Babani@MULTIMEDIA.AUDIODRIVER.HAL, 2021/12/31, add for HAC end-->
<!--Vikas.Babani@MULTIMEDIA.AUDIODRIVER.FEATURE, 2022/04/10, Add special input device for qcom qva -->
<device name="SND_DEVICE_IN_QVA_UNPROCESS_MIC" interface="TX_CDC_DMA_TX_3"/>
<!--Vikas.Babani@MULTIMEDIA.AUDIODRIVER.FEATURE, 2022/04/10, Add special input device for qcom qva END -->
</backend_names>
<!-- below values are for ref purpose to OEM, doesn't contain actual hardware info on MTP -->
<microphone_characteristics>
<microphone valid_mask="31" device_id="builtin_mic_1" type="AUDIO_DEVICE_IN_BUILTIN_MIC" address="bottom" location="AUDIO_MICROPHONE_LOCATION_MAINBODY"
group="0" index_in_the_group="0" directionality="AUDIO_MICROPHONE_DIRECTIONALITY_OMNI" num_frequency_responses="93"
frequencies="100.00 106.00 112.00 118.00 125.00 132.00 140.00 150.00 160.00 170.00 180.00 190.00 200.00 212.00 224.00 236.00 250.00 265.00 280.00 300.00 315.00 335.00 355.00 375.00 400.00 425.00 450.00 475.00 500.00 530.00 560.00 600.00 630.00 670.00 710.00 750.00 800.00 850.00 900.00 950.00 1000.00 1060.00 1120.00 1180.00 1250.00 1320.00 1400.00 1500.00 1600.00 1700.00 1800.00 1900.00 2000.00 2120.00 2240.00 2360.00 2500.00 2650.00 2800.00 3000.00 3150.00 3350.00 3550.00 3750.00 4000.00 4250.00 4500.00 4750.00 5000.00 5300.00 5600.00 6000.00 6300.00 6700.00 7100.00 7500.00 8000.00 8500.00 9000.00 9500.00 10000.00 10600.00 11200.00 11800.00 12500.00 13200.00 14000.00 15000.00 16000.00 17000.00 18000.00 19000.00 20000.00"
responses="-0.78 -0.71 -0.64 -0.60 -0.55 -0.50 -0.47 -0.42 -0.39 -0.36 -0.34 -0.33 -0.32 -0.29 -0.28 -0.28 -0.27 -0.25 -0.25 -0.24 -0.23 -0.23 -0.22 -0.22 -0.19 -0.17 -0.15 -0.15 -0.14 -0.14 -0.12 -0.11 -0.10 -0.10 -0.08 -0.07 -0.07 -0.04 -0.03 -0.01 0.00 0.04 0.06 0.07 0.08 0.13 0.09 0.14 0.19 0.23 0.28 0.29 0.31 0.37 0.88 0.86 0.77 0.78 0.84 0.86 1.05 1.12 1.18 1.25 1.43 1.66 1.83 2.02 2.23 2.59 2.84 3.35 4.01 6.82 6.62 6.42 7.30 8.23 7.54 12.68 13.76 18.69 19.68 20.90 23.70 25.10 21.65 16.18 18.84 25.44 23.48 23.22 24.89"
sensitivity="-37.0" max_spl="132.5" min_spl="28.5" orientation="0.0 0.0 1.0" geometric_location="0.0269 0.0058 0.0079" />
<microphone valid_mask="31" device_id="builtin_mic_2" type="AUDIO_DEVICE_IN_BACK_MIC" address="back" location="AUDIO_MICROPHONE_LOCATION_MAINBODY"
group="0" index_in_the_group="1" directionality="AUDIO_MICROPHONE_DIRECTIONALITY_OMNI" num_frequency_responses="92"
frequencies="106.00 112.00 118.00 125.00 132.00 140.00 150.00 160.00 170.00 180.00 190.00 200.00 212.00 224.00 236.00 250.00 265.00 280.00 300.00 315.00 335.00 355.00 375.00 400.00 425.00 450.00 475.00 500.00 530.00 560.00 600.00 630.00 670.00 710.00 750.00 800.00 850.00 900.00 950.00 1000.00 1060.00 1120.00 1180.00 1250.00 1320.00 1400.00 1500.00 1600.00 1700.00 1800.00 1900.00 2000.00 2120.00 2240.00 2360.00 2500.00 2650.00 2800.00 3000.00 3150.00 3350.00 3550.00 3750.00 4000.00 4250.00 4500.00 4750.00 5000.00 5300.00 5600.00 6000.00 6300.00 6700.00 7100.00 7500.00 8000.00 8500.00 9000.00 9500.00 10000.00 10600.00 11200.00 11800.00 12500.00 13200.00 14000.00 15000.00 16000.00 17000.00 18000.00 19000.00 20000.00"
responses="-0.75 -0.74 -0.69 -0.65 -0.62 -0.61 -0.56 -0.53 -0.50 -0.47 -0.43 -0.40 -0.37 -0.36 -0.33 -0.30 -0.28 -0.25 -0.24 -0.24 -0.24 -0.25 -0.24 -0.12 -0.10 -0.08 -0.09 -0.07 -0.07 -0.06 -0.06 -0.06 -0.05 -0.04 -0.05 -0.04 -0.01 0.02 0.02 0.00 0.02 0.03 0.07 0.10 0.10 0.13 0.01 0.01 0.10 0.11 0.19 0.24 0.38 0.46 0.26 0.27 0.43 0.76 0.75 1.09 1.09 0.94 1.06 1.21 1.47 1.45 1.36 2.07 2.85 2.90 3.85 4.65 5.84 5.46 6.15 7.50 8.30 10.62 12.70 16.65 20.95 25.41 26.32 20.20 16.60 11.24 7.85 7.62 20.19 7.32 2.87 5.18"
sensitivity="-37.0" max_spl="132.5" min_spl="28.5" orientation="0.0 1.0 0.0" geometric_location="0.0546 0.1456 0.00415" />
<microphone valid_mask="31" device_id="builtin_mic_3" type="AUDIO_DEVICE_IN_BUILTIN_MIC" address="top" location="AUDIO_MICROPHONE_LOCATION_MAINBODY"
group="0" index_in_the_group="2" directionality="AUDIO_MICROPHONE_DIRECTIONALITY_OMNI" num_frequency_responses="92"
frequencies="100.00 106.00 112.00 118.00 125.00 132.00 140.00 150.00 160.00 170.00 180.00 190.00 200.00 212.00 224.00 236.00 250.00 265.00 280.00 300.00 315.00 335.00 355.00 375.00 400.00 425.00 450.00 475.00 500.00 530.00 560.00 600.00 630.00 670.00 710.00 750.00 800.00 850.00 900.00 950.00 1000.00 1060.00 1120.00 1180.00 1250.00 1320.00 1400.00 1500.00 1600.00 1700.00 1800.00 1900.00 2000.00 2120.00 2240.00 2360.00 2500.00 2650.00 2800.00 3000.00 3150.00 3350.00 3550.00 3750.00 4000.00 4250.00 4500.00 4750.00 5000.00 5300.00 5600.00 6000.00 6300.00 6700.00 7100.00 7500.00 8000.00 8500.00 9000.00 9500.00 10000.00 10600.00 11200.00 11800.00 12500.00 13200.00 14000.00 15000.00 16000.00 17000.00 18000.00 19000.00"
responses="-9.24 -9.31 -9.39 -9.45 -9.46 -9.47 -9.50 -9.52 -9.51 -9.52 -9.51 -9.50 -9.49 -9.47 -9.48 -9.49 -9.48 -9.50 -9.51 -9.53 -9.55 -9.59 -9.63 -9.67 -9.58 -9.57 -9.65 -9.68 -9.71 -9.75 -9.79 -9.84 -9.87 -9.87 -9.90 -9.90 -9.91 -9.97 -10.01 -10.05 -9.85 -9.93 -9.94 -9.98 -10.04 -10.12 -10.28 -10.25 -10.01 -9.86 -9.81 -9.82 -9.61 -9.46 -8.27 -8.42 -8.98 -8.99 -8.82 -9.21 -8.92 -8.97 -9.30 -9.44 -9.52 -9.28 -9.09 -8.81 -7.02 -5.72 -5.30 -7.26 -8.39 -12.28 -8.23 -6.99 -5.52 -4.87 -3.82 -6.09 0.00 -2.15 -0.26 1.48 5.22 10.92 6.41 9.55 12.96 3.35 22.00 19.75"
sensitivity="-37.0" max_spl="132.5" min_spl="28.5" orientation="0.0 0.0 1.0" geometric_location="0.0274 0.14065 0.0079" />
</microphone_characteristics>
<snd_devices>
<input_snd_device>
<input_snd_device_mic_mapping>
<snd_dev in_snd_device="SND_DEVICE_IN_CAMCORDER_MIC">
<mic_info mic_device_id="builtin_mic_1"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
<mic_info mic_device_id="builtin_mic_2"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
<mic_info mic_device_id="builtin_mic_3"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
</snd_dev>
<snd_dev in_snd_device="SND_DEVICE_IN_VOICE_REC_MIC_AEC_NS">
<mic_info mic_device_id="builtin_mic_1"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
</snd_dev>
<snd_dev in_snd_device="SND_DEVICE_IN_VOICE_REC_MIC_AEC">
<mic_info mic_device_id="builtin_mic_1"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
</snd_dev>
<snd_dev in_snd_device="SND_DEVICE_IN_VOICE_REC_MIC_NS">
<mic_info mic_device_id="builtin_mic_1"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
</snd_dev>
<snd_dev in_snd_device="SND_DEVICE_IN_VOICE_REC_MIC">
<mic_info mic_device_id="builtin_mic_1"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
</snd_dev>
<snd_dev in_snd_device="SND_DEVICE_IN_HANDSET_MIC">
<mic_info mic_device_id="builtin_mic_1"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
</snd_dev>
<snd_dev in_snd_device="SND_DEVICE_IN_VOICE_DMIC">
<mic_info mic_device_id="builtin_mic_1"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
<mic_info mic_device_id="builtin_mic_2"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
</snd_dev>
<snd_dev in_snd_device="SND_DEVICE_IN_VOICE_DMIC_TMUS">
<mic_info mic_device_id="builtin_mic_1"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
<mic_info mic_device_id="builtin_mic_2"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
</snd_dev>
<snd_dev in_snd_device="SND_DEVICE_IN_VOICE_SPEAKER_DMIC">
<mic_info mic_device_id="builtin_mic_1"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
<mic_info mic_device_id="builtin_mic_2"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
<mic_info mic_device_id="builtin_mic_3"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
</snd_dev>
<snd_dev in_snd_device="SND_DEVICE_IN_HANDSET_DMIC_AEC_NS">
<mic_info mic_device_id="builtin_mic_1"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
<mic_info mic_device_id="builtin_mic_2"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
</snd_dev>
<snd_dev in_snd_device="SND_DEVICE_IN_HANDSET_DMIC_AEC">
<mic_info mic_device_id="builtin_mic_1"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
<mic_info mic_device_id="builtin_mic_2"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
</snd_dev>
<snd_dev in_snd_device="SND_DEVICE_IN_HANDSET_DMIC_NS">
<mic_info mic_device_id="builtin_mic_1"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
<mic_info mic_device_id="builtin_mic_2"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
</snd_dev>
<snd_dev in_snd_device="SND_DEVICE_IN_HANDSET_DMIC">
<mic_info mic_device_id="builtin_mic_1"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
<mic_info mic_device_id="builtin_mic_2"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
</snd_dev>
<snd_dev in_snd_device="SND_DEVICE_IN_SPEAKER_DMIC_AEC_NS">
<mic_info mic_device_id="builtin_mic_1"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
<mic_info mic_device_id="builtin_mic_2"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
<mic_info mic_device_id="builtin_mic_3"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
</snd_dev>
<snd_dev in_snd_device="SND_DEVICE_IN_SPEAKER_DMIC_AEC">
<mic_info mic_device_id="builtin_mic_1"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
<mic_info mic_device_id="builtin_mic_2"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
<mic_info mic_device_id="builtin_mic_3"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
</snd_dev>
<snd_dev in_snd_device="SND_DEVICE_IN_SPEAKER_DMIC_NS">
<mic_info mic_device_id="builtin_mic_1"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
<mic_info mic_device_id="builtin_mic_2"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
<mic_info mic_device_id="builtin_mic_3"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
</snd_dev>
<snd_dev in_snd_device="SND_DEVICE_IN_SPEAKER_MIC">
<mic_info mic_device_id="builtin_mic_1"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
<mic_info mic_device_id="builtin_mic_2"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
<mic_info mic_device_id="builtin_mic_3"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
</snd_dev>
<snd_dev in_snd_device="SND_DEVICE_IN_UNPROCESSED_MIC">
<mic_info mic_device_id="builtin_mic_1"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_DIRECT"/>
</snd_dev>
<snd_dev in_snd_device="SND_DEVICE_IN_UNPROCESSED_STEREO_MIC">
<mic_info mic_device_id="builtin_mic_1"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_DIRECT AUDIO_MICROPHONE_CHANNEL_MAPPING_UNUSED"/>
<mic_info mic_device_id="builtin_mic_2"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_UNUSED AUDIO_MICROPHONE_CHANNEL_MAPPING_DIRECT"/>
</snd_dev>
<snd_dev in_snd_device="SND_DEVICE_IN_UNPROCESSED_THREE_MIC">
<mic_info mic_device_id="builtin_mic_1"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_DIRECT AUDIO_MICROPHONE_CHANNEL_MAPPING_UNUSED AUDIO_MICROPHONE_CHANNEL_MAPPING_UNUSED"/>
<mic_info mic_device_id="builtin_mic_2"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_UNUSED AUDIO_MICROPHONE_CHANNEL_MAPPING_DIRECT AUDIO_MICROPHONE_CHANNEL_MAPPING_UNUSED"/>
<mic_info mic_device_id="builtin_mic_3"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_UNUSED AUDIO_MICROPHONE_CHANNEL_MAPPING_UNUSED AUDIO_MICROPHONE_CHANNEL_MAPPING_DIRECT"/>
</snd_dev>
<snd_dev in_snd_device="SND_DEVICE_IN_HANDSET_DMIC_STEREO">
<mic_info mic_device_id="builtin_mic_1"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED AUDIO_MICROPHONE_CHANNEL_MAPPING_UNUSED"/>
<mic_info mic_device_id="builtin_mic_2"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_UNUSED AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
</snd_dev>
<snd_dev in_snd_device="SND_DEVICE_IN_SPEAKER_DMIC_STEREO">
<mic_info mic_device_id="builtin_mic_1"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
<mic_info mic_device_id="builtin_mic_2"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
<mic_info mic_device_id="builtin_mic_3"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
</snd_dev>
</input_snd_device_mic_mapping>
</input_snd_device>
</snd_devices>
</audio_platform_info>

View File

@@ -0,0 +1,414 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- Copyright (c) 2016-2021, The Linux Foundation. All rights reserved
Not a Contribution.
-->
<!-- Copyright (C) 2015 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.
-->
<!--
Changes from Qualcomm Innovation Center are provided under the following license:
Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted (subject to the limitations in the
disclaimer below) provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
* Neither the name of Qualcomm Innovation Center, Inc. nor the names of its
contributors may be used to endorse or promote products derived
from this software without specific prior written permission.
NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-->
<audioPolicyConfiguration version="1.0" xmlns:xi="http://www.w3.org/2001/XInclude">
<!-- version section contains a “version” tag in the form “major.minor” e.g version=”1.0” -->
<!-- Global configuration Decalaration -->
<globalConfiguration speaker_drc_enabled="true" call_screen_mode_supported="true"/>
<!-- Modules section:
There is one section per audio HW module present on the platform.
Each module section will contains two mandatory tags for audio HAL “halVersion” and “name”.
The module names are the same as in current .conf file:
“primary”, “A2DP”, “remote_submix”, “USB”
Each module will contain the following sections:
“devicePorts”: a list of device descriptors for all input and output devices accessible via this
module.
This contains both permanently attached devices and removable devices.
“mixPorts”: listing all output and input streams exposed by the audio HAL
“routes”: list of possible connections between input and output devices or between stream and
devices.
"route": is defined by an attribute:
-"type": <mux|mix> means all sources are mutual exclusive (mux) or can be mixed (mix)
-"sink": the sink involved in this route
-"sources": all the sources than can be connected to the sink via vis route
“attachedDevices”: permanently attached devices.
The attachedDevices section is a list of devices names. The names correspond to device names
defined in <devicePorts> section.
“defaultOutputDevice”: device to be used by default when no policy rule applies
-->
<modules>
<!-- Primary Audio HAL -->
<module name="primary" halVersion="2.0">
<attachedDevices>
<item>Earpiece</item>
<item>Speaker</item>
<item>Telephony Tx</item>
<item>Built-In Mic</item>
<item>Built-In Back Mic</item>
<item>Telephony Rx</item>
</attachedDevices>
<defaultOutputDevice>Speaker</defaultOutputDevice>
<mixPorts>
<mixPort name="primary output" role="source" flags="AUDIO_OUTPUT_FLAG_FAST|AUDIO_OUTPUT_FLAG_PRIMARY">
<profile name="" format="AUDIO_FORMAT_PCM_24_BIT_PACKED"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
<mixPort name="deep_buffer" role="source"
flags="AUDIO_OUTPUT_FLAG_DEEP_BUFFER">
<profile name="" format="AUDIO_FORMAT_PCM_24_BIT_PACKED"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
<mixPort name="mmap_no_irq_out" role="source" flags="AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_MMAP_NOIRQ">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
<mixPort name="hifi_playback" role="source" />
<mixPort name="compress_passthrough" role="source"
flags="AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD|AUDIO_OUTPUT_FLAG_NON_BLOCKING">
<profile name="" format="dynamic"
samplingRates="dynamic" channelMasks="dynamic"/>
</mixPort>
<mixPort name="direct_pcm" role="source"
flags="AUDIO_OUTPUT_FLAG_DIRECT">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000,128000,176400,192000"
channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_2POINT1,AUDIO_CHANNEL_OUT_QUAD,AUDIO_CHANNEL_OUT_PENTA,AUDIO_CHANNEL_OUT_5POINT1,AUDIO_CHANNEL_OUT_6POINT1,AUDIO_CHANNEL_OUT_7POINT1"/>
<profile name="" format="AUDIO_FORMAT_PCM_8_24_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000,128000,176400,192000,352800,384000"
channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_2POINT1,AUDIO_CHANNEL_OUT_QUAD,AUDIO_CHANNEL_OUT_PENTA,AUDIO_CHANNEL_OUT_5POINT1,AUDIO_CHANNEL_OUT_6POINT1,AUDIO_CHANNEL_OUT_7POINT1"/>
<profile name="" format="AUDIO_FORMAT_PCM_24_BIT_PACKED"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000,128000,176400,192000,352800,384000"
channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_2POINT1,AUDIO_CHANNEL_OUT_QUAD,AUDIO_CHANNEL_OUT_PENTA,AUDIO_CHANNEL_OUT_5POINT1,AUDIO_CHANNEL_OUT_6POINT1,AUDIO_CHANNEL_OUT_7POINT1"/>
<profile name="" format="AUDIO_FORMAT_PCM_32_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000,128000,176400,192000,352800,384000"
channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_2POINT1,AUDIO_CHANNEL_OUT_QUAD,AUDIO_CHANNEL_OUT_PENTA,AUDIO_CHANNEL_OUT_5POINT1,AUDIO_CHANNEL_OUT_6POINT1,AUDIO_CHANNEL_OUT_7POINT1"/>
</mixPort>
<mixPort name="compressed_offload" role="source"
flags="AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD|AUDIO_OUTPUT_FLAG_NON_BLOCKING">
<profile name="" format="AUDIO_FORMAT_MP3"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_FLAC"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000,128000,176400,192000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_ALAC"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000,128000,176400,192000"
channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_2POINT1,AUDIO_CHANNEL_OUT_QUAD,AUDIO_CHANNEL_OUT_PENTA,AUDIO_CHANNEL_OUT_5POINT1,AUDIO_CHANNEL_OUT_6POINT1,AUDIO_CHANNEL_OUT_7POINT1"/>
<profile name="" format="AUDIO_FORMAT_APE"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000,128000,176400,192000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_AAC_LC"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_AAC_HE_V1"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_AAC_HE_V2"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_DTS"
samplingRates="32000,44100,48000"
channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_2POINT1,AUDIO_CHANNEL_OUT_QUAD,AUDIO_CHANNEL_OUT_PENTA,AUDIO_CHANNEL_OUT_5POINT1"/>
<profile name="" format="AUDIO_FORMAT_DTS_HD"
samplingRates="32000,44100,48000,64000,88200,96000,128000,176400,192000"
channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_2POINT1,AUDIO_CHANNEL_OUT_QUAD,AUDIO_CHANNEL_OUT_PENTA,AUDIO_CHANNEL_OUT_5POINT1,AUDIO_CHANNEL_OUT_6POINT1,AUDIO_CHANNEL_OUT_7POINT1"/>
<profile name="" format="AUDIO_FORMAT_WMA"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_2POINT1,AUDIO_CHANNEL_OUT_QUAD,AUDIO_CHANNEL_OUT_PENTA,AUDIO_CHANNEL_OUT_5POINT1,AUDIO_CHANNEL_OUT_6POINT1,AUDIO_CHANNEL_OUT_7POINT1"/>
<profile name="" format="AUDIO_FORMAT_WMA_PRO"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000"
channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_2POINT1,AUDIO_CHANNEL_OUT_QUAD,AUDIO_CHANNEL_OUT_PENTA,AUDIO_CHANNEL_OUT_5POINT1,AUDIO_CHANNEL_OUT_6POINT1,AUDIO_CHANNEL_OUT_7POINT1"/>
<profile name="" format="AUDIO_FORMAT_AAC_ADTS_LC"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_AAC_ADTS_HE_V1"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_AAC_ADTS_HE_V2"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
</mixPort>
<mixPort name="voice_tx" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000,48000" channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
<mixPort name="voip_rx" role="source"
flags="AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_VOIP_RX">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000,32000,48000" channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
<mixPort name="incall_music_uplink" role="source"
flags="AUDIO_OUTPUT_FLAG_INCALL_MUSIC">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000,48000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
<mixPort name="primary input" role="sink" maxOpenCount="2" maxActiveCount="2">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK"/>
</mixPort>
<mixPort name="voip_tx" role="sink"
flags="AUDIO_INPUT_FLAG_VOIP_TX">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000,32000,48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
</mixPort>
<mixPort name="usb_surround_sound" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,88200,96000,176400,192000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK,AUDIO_CHANNEL_INDEX_MASK_3,AUDIO_CHANNEL_INDEX_MASK_4,AUDIO_CHANNEL_IN_5POINT1,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
<profile name="" format="AUDIO_FORMAT_PCM_32_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,88200,96000,176400,192000"
channelMasks="AUDIO_CHANNEL_IN_5POINT1,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
<profile name="" format="AUDIO_FORMAT_PCM_FLOAT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,88200,96000,176400,192000"
channelMasks="AUDIO_CHANNEL_IN_5POINT1,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
</mixPort>
<mixPort name="record_24" role="sink" maxOpenCount="2" maxActiveCount="2">
<profile name="" format="AUDIO_FORMAT_PCM_24_BIT_PACKED"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,96000,192000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK,AUDIO_CHANNEL_INDEX_MASK_3,AUDIO_CHANNEL_INDEX_MASK_4"/>
<profile name="" format="AUDIO_FORMAT_PCM_8_24_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,96000,192000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK,AUDIO_CHANNEL_INDEX_MASK_3,AUDIO_CHANNEL_INDEX_MASK_4"/>
<profile name="" format="AUDIO_FORMAT_PCM_FLOAT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,96000,192000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK,AUDIO_CHANNEL_INDEX_MASK_3,AUDIO_CHANNEL_INDEX_MASK_4"/>
</mixPort>
<mixPort name="voice_rx" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000,48000" channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO"/>
</mixPort>
<mixPort name="mmap_no_irq_in" role="sink" flags="AUDIO_INPUT_FLAG_MMAP_NOIRQ">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK,AUDIO_CHANNEL_INDEX_MASK_3"/>
</mixPort>
<mixPort name="hifi_input" role="sink" />
<mixPort name="fast input" role="sink"
flags="AUDIO_INPUT_FLAG_FAST">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK"/>
</mixPort>
<mixPort name="quad mic" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000"
channelMasks="AUDIO_CHANNEL_INDEX_MASK_4"/>
</mixPort>
</mixPorts>
<devicePorts>
<!-- Output devices declaration, i.e. Sink DEVICE PORT -->
<devicePort tagName="Earpiece" type="AUDIO_DEVICE_OUT_EARPIECE" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
</devicePort>
<devicePort tagName="Speaker" role="sink" type="AUDIO_DEVICE_OUT_SPEAKER" address="">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
<devicePort tagName="Wired Headset" type="AUDIO_DEVICE_OUT_WIRED_HEADSET" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
<devicePort tagName="Wired Headphones" type="AUDIO_DEVICE_OUT_WIRED_HEADPHONE" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
<devicePort tagName="Line" type="AUDIO_DEVICE_OUT_LINE" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
<devicePort tagName="BT SCO" type="AUDIO_DEVICE_OUT_BLUETOOTH_SCO" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000" channelMasks="AUDIO_CHANNEL_OUT_MONO"/>
</devicePort>
<devicePort tagName="BT SCO Headset" type="AUDIO_DEVICE_OUT_BLUETOOTH_SCO_HEADSET" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000" channelMasks="AUDIO_CHANNEL_OUT_MONO"/>
</devicePort>
<devicePort tagName="BT SCO Car Kit" type="AUDIO_DEVICE_OUT_BLUETOOTH_SCO_CARKIT" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000" channelMasks="AUDIO_CHANNEL_OUT_MONO"/>
</devicePort>
<devicePort tagName="Telephony Tx" type="AUDIO_DEVICE_OUT_TELEPHONY_TX" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000" channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
<devicePort tagName="HDMI" type="AUDIO_DEVICE_OUT_AUX_DIGITAL" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000" channelMasks="dynamic"/>
</devicePort>
<devicePort tagName="Proxy" type="AUDIO_DEVICE_OUT_PROXY" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000" channelMasks="dynamic"/>
</devicePort>
<devicePort tagName="USB Device Out" type="AUDIO_DEVICE_OUT_USB_DEVICE" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="44100,48000,64000,88200,96000,128000,176400,192000" channelMasks="dynamic"/>
</devicePort>
<devicePort tagName="USB Headset Out" type="AUDIO_DEVICE_OUT_USB_HEADSET" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="44100,48000,64000,88200,96000,128000,176400,192000" channelMasks="dynamic"/>
</devicePort>
<!-- Input devices declaration, i.e. Source DEVICE PORT -->
<devicePort tagName="Built-In Mic" type="AUDIO_DEVICE_IN_BUILTIN_MIC" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK"/>
</devicePort>
<devicePort tagName="Built-In Back Mic" type="AUDIO_DEVICE_IN_BACK_MIC" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK"/>
</devicePort>
<devicePort tagName="Wired Headset Mic" type="AUDIO_DEVICE_IN_WIRED_HEADSET" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK"/>
</devicePort>
<devicePort tagName="BT SCO Headset Mic" type="AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
</devicePort>
<devicePort tagName="Telephony Rx" type="AUDIO_DEVICE_IN_TELEPHONY_RX" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000,48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
</devicePort>
<devicePort tagName="USB Device In" type="AUDIO_DEVICE_IN_USB_DEVICE" role="source">
</devicePort>
<devicePort tagName="USB Headset In" type="AUDIO_DEVICE_IN_USB_HEADSET" role="source">
</devicePort>
</devicePorts>
<!-- route declaration, i.e. list all available sources for a given sink -->
<routes>
<route type="mix" sink="Earpiece"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out"/>
<route type="mix" sink="Speaker"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out"/>
<route type="mix" sink="Wired Headset"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out"/>
<route type="mix" sink="Wired Headphones"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out"/>
<route type="mix" sink="Line"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out"/>
<route type="mix" sink="HDMI"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,compress_passthrough,voip_rx"/>
<route type="mix" sink="Proxy"
sources="primary output,deep_buffer,direct_pcm,compressed_offload"/>
<route type="mix" sink="BT SCO"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
<route type="mix" sink="BT SCO Headset"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
<route type="mix" sink="BT SCO Car Kit"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
<route type="mix" sink="USB Device Out"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out,hifi_playback"/>
<route type="mix" sink="USB Headset Out"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out,hifi_playback"/>
<route type="mix" sink="Telephony Tx"
sources="voice_tx,incall_music_uplink"/>
<route type="mix" sink="voice_rx"
sources="Telephony Rx"/>
<route type="mix" sink="primary input"
sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic,BT SCO Headset Mic,Telephony Rx"/>
<route type="mix" sink="usb_surround_sound"
sources="USB Device In,USB Headset In"/>
<route type="mix" sink="voip_tx"
sources="Built-In Mic,Built-In Back Mic,BT SCO Headset Mic,USB Device In,USB Headset In,Wired Headset Mic"/>
<route type="mix" sink="record_24"
sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic,BT SCO Headset Mic"/>
<route type="mix" sink="mmap_no_irq_in"
sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic,USB Device In,USB Headset In"/>
<route type="mix" sink="hifi_input" sources="USB Device In,USB Headset In" />
<route type="mix" sink="fast input"
sources="Built-In Mic,Built-In Back Mic,BT SCO Headset Mic,USB Device In,USB Headset In,Wired Headset Mic"/>
<route type="mix" sink="quad mic"
sources="Built-In Mic,Built-In Back Mic,BT SCO Headset Mic,USB Device In,USB Headset In,Wired Headset Mic"/>
</routes>
</module>
<!-- A2DP Input Audio HAL -->
<xi:include href="/vendor/etc/a2dp_in_audio_policy_configuration.xml"/>
<!-- Usb Audio HAL -->
<module name="usb" halVersion="2.0">
<mixPorts>
<mixPort name="usb_accessory output" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="44100" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
</mixPorts>
<devicePorts>
<devicePort tagName="USB Host Out" type="AUDIO_DEVICE_OUT_USB_ACCESSORY" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="44100" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
</devicePorts>
<routes>
<route type="mix" sink="USB Host Out"
sources="usb_accessory output"/>
</routes>
</module>
<!-- Remote Submix Audio HAL -->
<xi:include href="/vendor/etc/r_submix_audio_policy_configuration.xml"/>
<!-- Bluetooth Audio HAL -->
<xi:include href="/vendor/etc/bluetooth_audio_policy_configuration.xml"/>
</modules>
<!-- End of Modules section -->
<!-- Volume section -->
<xi:include href="/vendor/etc/audio_policy_volumes.xml"/>
<xi:include href="/vendor/etc/default_volume_tables.xml"/>
<!-- End of Volume section -->
</audioPolicyConfiguration>

View File

@@ -0,0 +1,417 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- Copyright (c) 2016-2021, The Linux Foundation. All rights reserved
Not a Contribution.
-->
<!-- Copyright (C) 2015 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.
-->
<!--
Changes from Qualcomm Innovation Center are provided under the following license:
Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted (subject to the limitations in the
disclaimer below) provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
* Neither the name of Qualcomm Innovation Center, Inc. nor the names of its
contributors may be used to endorse or promote products derived
from this software without specific prior written permission.
NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-->
<audioPolicyConfiguration version="1.0" xmlns:xi="http://www.w3.org/2001/XInclude">
<!-- version section contains a “version” tag in the form “major.minor” e.g version=”1.0” -->
<!-- Global configuration Decalaration -->
<globalConfiguration speaker_drc_enabled="true" call_screen_mode_supported="true"/>
<!-- Modules section:
There is one section per audio HW module present on the platform.
Each module section will contains two mandatory tags for audio HAL “halVersion” and “name”.
The module names are the same as in current .conf file:
“primary”, “A2DP”, “remote_submix”, “USB”
Each module will contain the following sections:
“devicePorts”: a list of device descriptors for all input and output devices accessible via this
module.
This contains both permanently attached devices and removable devices.
“mixPorts”: listing all output and input streams exposed by the audio HAL
“routes”: list of possible connections between input and output devices or between stream and
devices.
"route": is defined by an attribute:
-"type": <mux|mix> means all sources are mutual exclusive (mux) or can be mixed (mix)
-"sink": the sink involved in this route
-"sources": all the sources than can be connected to the sink via vis route
“attachedDevices”: permanently attached devices.
The attachedDevices section is a list of devices names. The names correspond to device names
defined in <devicePorts> section.
“defaultOutputDevice”: device to be used by default when no policy rule applies
-->
<modules>
<!-- Primary Audio HAL -->
<module name="primary" halVersion="2.0">
<attachedDevices>
<item>Earpiece</item>
<item>Speaker</item>
<item>Telephony Tx</item>
<item>Built-In Mic</item>
<item>Built-In Back Mic</item>
<item>Telephony Rx</item>
</attachedDevices>
<defaultOutputDevice>Speaker</defaultOutputDevice>
<mixPorts>
<mixPort name="primary output" role="source" flags="AUDIO_OUTPUT_FLAG_FAST|AUDIO_OUTPUT_FLAG_PRIMARY">
<profile name="" format="AUDIO_FORMAT_PCM_24_BIT_PACKED"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
<mixPort name="deep_buffer" role="source"
flags="AUDIO_OUTPUT_FLAG_DEEP_BUFFER">
<profile name="" format="AUDIO_FORMAT_PCM_24_BIT_PACKED"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
<mixPort name="mmap_no_irq_out" role="source" flags="AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_MMAP_NOIRQ">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
<mixPort name="hifi_playback" role="source" />
<mixPort name="compress_passthrough" role="source"
flags="AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD|AUDIO_OUTPUT_FLAG_NON_BLOCKING">
</mixPort>
<mixPort name="direct_pcm" role="source"
flags="AUDIO_OUTPUT_FLAG_DIRECT">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000,128000,176400,192000"
channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_2POINT1,AUDIO_CHANNEL_OUT_QUAD,AUDIO_CHANNEL_OUT_PENTA,AUDIO_CHANNEL_OUT_5POINT1,AUDIO_CHANNEL_OUT_6POINT1,AUDIO_CHANNEL_OUT_7POINT1"/>
<profile name="" format="AUDIO_FORMAT_PCM_8_24_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000,128000,176400,192000,352800,384000"
channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_2POINT1,AUDIO_CHANNEL_OUT_QUAD,AUDIO_CHANNEL_OUT_PENTA,AUDIO_CHANNEL_OUT_5POINT1,AUDIO_CHANNEL_OUT_6POINT1,AUDIO_CHANNEL_OUT_7POINT1"/>
<profile name="" format="AUDIO_FORMAT_PCM_24_BIT_PACKED"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000,128000,176400,192000,352800,384000"
channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_2POINT1,AUDIO_CHANNEL_OUT_QUAD,AUDIO_CHANNEL_OUT_PENTA,AUDIO_CHANNEL_OUT_5POINT1,AUDIO_CHANNEL_OUT_6POINT1,AUDIO_CHANNEL_OUT_7POINT1"/>
<profile name="" format="AUDIO_FORMAT_PCM_32_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000,128000,176400,192000,352800,384000"
channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_2POINT1,AUDIO_CHANNEL_OUT_QUAD,AUDIO_CHANNEL_OUT_PENTA,AUDIO_CHANNEL_OUT_5POINT1,AUDIO_CHANNEL_OUT_6POINT1,AUDIO_CHANNEL_OUT_7POINT1"/>
</mixPort>
<mixPort name="compressed_offload" role="source"
flags="AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD|AUDIO_OUTPUT_FLAG_NON_BLOCKING">
<profile name="" format="AUDIO_FORMAT_MP3"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_FLAC"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000,128000,176400,192000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_ALAC"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000,128000,176400,192000"
channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_2POINT1,AUDIO_CHANNEL_OUT_QUAD,AUDIO_CHANNEL_OUT_PENTA,AUDIO_CHANNEL_OUT_5POINT1,AUDIO_CHANNEL_OUT_6POINT1,AUDIO_CHANNEL_OUT_7POINT1"/>
<profile name="" format="AUDIO_FORMAT_APE"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000,128000,176400,192000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_AAC_LC"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_AAC_HE_V1"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_AAC_HE_V2"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_DTS"
samplingRates="32000,44100,48000"
channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_2POINT1,AUDIO_CHANNEL_OUT_QUAD,AUDIO_CHANNEL_OUT_PENTA,AUDIO_CHANNEL_OUT_5POINT1"/>
<profile name="" format="AUDIO_FORMAT_DTS_HD"
samplingRates="32000,44100,48000,64000,88200,96000,128000,176400,192000"
channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_2POINT1,AUDIO_CHANNEL_OUT_QUAD,AUDIO_CHANNEL_OUT_PENTA,AUDIO_CHANNEL_OUT_5POINT1,AUDIO_CHANNEL_OUT_6POINT1,AUDIO_CHANNEL_OUT_7POINT1"/>
<profile name="" format="AUDIO_FORMAT_WMA"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_2POINT1,AUDIO_CHANNEL_OUT_QUAD,AUDIO_CHANNEL_OUT_PENTA,AUDIO_CHANNEL_OUT_5POINT1,AUDIO_CHANNEL_OUT_6POINT1,AUDIO_CHANNEL_OUT_7POINT1"/>
<profile name="" format="AUDIO_FORMAT_WMA_PRO"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000"
channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_2POINT1,AUDIO_CHANNEL_OUT_QUAD,AUDIO_CHANNEL_OUT_PENTA,AUDIO_CHANNEL_OUT_5POINT1,AUDIO_CHANNEL_OUT_6POINT1,AUDIO_CHANNEL_OUT_7POINT1"/>
<profile name="" format="AUDIO_FORMAT_AAC_ADTS_LC"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_AAC_ADTS_HE_V1"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_AAC_ADTS_HE_V2"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
</mixPort>
<mixPort name="voice_tx" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000,48000" channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
<mixPort name="voip_rx" role="source"
flags="AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_VOIP_RX">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000,32000,48000" channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
<mixPort name="incall_music_uplink" role="source"
flags="AUDIO_OUTPUT_FLAG_INCALL_MUSIC">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000,48000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
<mixPort name="primary input" role="sink" maxOpenCount="2" maxActiveCount="2">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK"/>
</mixPort>
<mixPort name="voip_tx" role="sink"
flags="AUDIO_INPUT_FLAG_VOIP_TX">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000,32000,48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
</mixPort>
<mixPort name="usb_surround_sound" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,88200,96000,176400,192000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK,AUDIO_CHANNEL_INDEX_MASK_3,AUDIO_CHANNEL_INDEX_MASK_4,AUDIO_CHANNEL_IN_5POINT1,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
<profile name="" format="AUDIO_FORMAT_PCM_32_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,88200,96000,176400,192000"
channelMasks="AUDIO_CHANNEL_IN_5POINT1,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
<profile name="" format="AUDIO_FORMAT_PCM_FLOAT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,88200,96000,176400,192000"
channelMasks="AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_INDEX_MASK_2,AUDIO_CHANNEL_IN_5POINT1,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
</mixPort>
<mixPort name="record_24" role="sink" maxOpenCount="2" maxActiveCount="2">
<profile name="" format="AUDIO_FORMAT_PCM_24_BIT_PACKED"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,96000,192000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK,AUDIO_CHANNEL_INDEX_MASK_3,AUDIO_CHANNEL_INDEX_MASK_4"/>
<profile name="" format="AUDIO_FORMAT_PCM_8_24_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,96000,192000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK,AUDIO_CHANNEL_INDEX_MASK_3,AUDIO_CHANNEL_INDEX_MASK_4"/>
<profile name="" format="AUDIO_FORMAT_PCM_FLOAT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,96000,192000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK,AUDIO_CHANNEL_INDEX_MASK_3,AUDIO_CHANNEL_INDEX_MASK_4"/>
</mixPort>
<mixPort name="voice_rx" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000,48000" channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO"/>
</mixPort>
<mixPort name="mmap_no_irq_in" role="sink" flags="AUDIO_INPUT_FLAG_MMAP_NOIRQ">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK,AUDIO_CHANNEL_INDEX_MASK_3"/>
</mixPort>
<mixPort name="hifi_input" role="sink" />
<mixPort name="fast input" role="sink"
flags="AUDIO_INPUT_FLAG_FAST">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK"/>
</mixPort>
<mixPort name="quad mic" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000"
channelMasks="AUDIO_CHANNEL_INDEX_MASK_4"/>
</mixPort>
</mixPorts>
<devicePorts>
<!-- Output devices declaration, i.e. Sink DEVICE PORT -->
<devicePort tagName="Earpiece" type="AUDIO_DEVICE_OUT_EARPIECE" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_MONO"/>
</devicePort>
<devicePort tagName="Speaker" role="sink" type="AUDIO_DEVICE_OUT_SPEAKER" address="">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
<devicePort tagName="Wired Headset" type="AUDIO_DEVICE_OUT_WIRED_HEADSET" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
<devicePort tagName="Wired Headphones" type="AUDIO_DEVICE_OUT_WIRED_HEADPHONE" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
<devicePort tagName="Line" type="AUDIO_DEVICE_OUT_LINE" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
<devicePort tagName="BT SCO" type="AUDIO_DEVICE_OUT_BLUETOOTH_SCO" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000" channelMasks="AUDIO_CHANNEL_OUT_MONO"/>
</devicePort>
<devicePort tagName="BT SCO Headset" type="AUDIO_DEVICE_OUT_BLUETOOTH_SCO_HEADSET" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000" channelMasks="AUDIO_CHANNEL_OUT_MONO"/>
</devicePort>
<devicePort tagName="BT SCO Car Kit" type="AUDIO_DEVICE_OUT_BLUETOOTH_SCO_CARKIT" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000" channelMasks="AUDIO_CHANNEL_OUT_MONO"/>
</devicePort>
<devicePort tagName="Telephony Tx" type="AUDIO_DEVICE_OUT_TELEPHONY_TX" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000" channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
<devicePort tagName="HDMI" type="AUDIO_DEVICE_OUT_AUX_DIGITAL" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000"/>
</devicePort>
<devicePort tagName="Proxy" type="AUDIO_DEVICE_OUT_PROXY" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000"/>
</devicePort>
<devicePort tagName="USB Device Out" type="AUDIO_DEVICE_OUT_USB_DEVICE" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="44100,48000,64000,88200,96000,128000,176400,192000"/>
</devicePort>
<devicePort tagName="USB Headset Out" type="AUDIO_DEVICE_OUT_USB_HEADSET" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="44100,48000,64000,88200,96000,128000,176400,192000"/>
</devicePort>
<!-- Input devices declaration, i.e. Source DEVICE PORT -->
<devicePort tagName="Built-In Mic" type="AUDIO_DEVICE_IN_BUILTIN_MIC" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK"/>
</devicePort>
<devicePort tagName="Built-In Back Mic" type="AUDIO_DEVICE_IN_BACK_MIC" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK"/>
</devicePort>
<devicePort tagName="Wired Headset Mic" type="AUDIO_DEVICE_IN_WIRED_HEADSET" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK"/>
</devicePort>
<devicePort tagName="BT SCO Headset Mic" type="AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
</devicePort>
<devicePort tagName="Telephony Rx" type="AUDIO_DEVICE_IN_TELEPHONY_RX" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000,48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
</devicePort>
<devicePort tagName="USB Device In" type="AUDIO_DEVICE_IN_USB_DEVICE" role="source">
</devicePort>
<devicePort tagName="USB Headset In" type="AUDIO_DEVICE_IN_USB_HEADSET" role="source">
</devicePort>
</devicePorts>
<!-- route declaration, i.e. list all available sources for a given sink -->
<routes>
<route type="mix" sink="Earpiece"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out"/>
<route type="mix" sink="Speaker"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out"/>
<route type="mix" sink="Wired Headset"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out"/>
<route type="mix" sink="Wired Headphones"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out"/>
<route type="mix" sink="Line"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out"/>
<route type="mix" sink="HDMI"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,compress_passthrough,voip_rx"/>
<route type="mix" sink="Proxy"
sources="primary output,deep_buffer,direct_pcm,compressed_offload"/>
<route type="mix" sink="BT SCO"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
<route type="mix" sink="BT SCO Headset"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
<route type="mix" sink="BT SCO Car Kit"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
<route type="mix" sink="USB Device Out"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out,hifi_playback"/>
<route type="mix" sink="USB Headset Out"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out,hifi_playback"/>
<route type="mix" sink="Telephony Tx"
sources="voice_tx,incall_music_uplink"/>
<route type="mix" sink="voice_rx"
sources="Telephony Rx"/>
<route type="mix" sink="primary input"
sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic,BT SCO Headset Mic,Telephony Rx"/>
<route type="mix" sink="usb_surround_sound"
sources="USB Device In,USB Headset In"/>
<route type="mix" sink="voip_tx"
sources="Built-In Mic,Built-In Back Mic,BT SCO Headset Mic,USB Device In,USB Headset In,Wired Headset Mic"/>
<route type="mix" sink="record_24"
sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic,BT SCO Headset Mic"/>
<route type="mix" sink="mmap_no_irq_in"
sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic,USB Device In,USB Headset In"/>
<route type="mix" sink="hifi_input" sources="USB Device In,USB Headset In" />
<route type="mix" sink="fast input"
sources="Built-In Mic,Built-In Back Mic,BT SCO Headset Mic,USB Device In,USB Headset In,Wired Headset Mic"/>
<route type="mix" sink="quad mic"
sources="Built-In Mic,Built-In Back Mic,BT SCO Headset Mic,USB Device In,USB Headset In,Wired Headset Mic"/>
</routes>
</module>
<!-- A2DP Input Audio HAL -->
<xi:include href="/vendor/etc/a2dp_in_audio_policy_configuration.xml"/>
<!-- Usb Audio HAL -->
<module name="usb" halVersion="2.0">
<mixPorts>
<mixPort name="usb_accessory output" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="44100" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
</mixPorts>
<devicePorts>
<devicePort tagName="USB Host Out" type="AUDIO_DEVICE_OUT_USB_ACCESSORY" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="44100" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
</devicePorts>
<routes>
<route type="mix" sink="USB Host Out"
sources="usb_accessory output"/>
</routes>
</module>
<!-- Remote Submix Audio HAL -->
<xi:include href="/vendor/etc/r_submix_audio_policy_configuration.xml"/>
<!-- Bluetooth Audio HAL -->
<xi:include href="/vendor/etc/bluetooth_audio_policy_configuration.xml"/>
</modules>
<!-- End of Modules section -->
<!-- Volume section -->
<xi:include href="/vendor/etc/audio_policy_volumes.xml"/>
<xi:include href="/vendor/etc/default_volume_tables.xml"/>
<!-- End of Volume section -->
</audioPolicyConfiguration>

View File

@@ -0,0 +1,38 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright (c) 2020 The Linux Foundation. All rights reserved.
Not a contribution.
-->
<!-- Copyright (C) 2018 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.
-->
<!-- Bluetooth Audio HAL Audio Policy Configuration file -->
<module name="bluetooth" halVersion="2.0">
<mixPorts>
<!-- Hearing AIDs Audio Ports -->
<mixPort name="hearing aid output" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="24000,16000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
</mixPorts>
<devicePorts>
<!-- Hearing AIDs Audio Ports -->
<devicePort tagName="BT Hearing Aid Out" type="AUDIO_DEVICE_OUT_HEARING_AID" role="sink"/>
</devicePorts>
<routes>
<route type="mix" sink="BT Hearing Aid Out"
sources="hearing aid output"/>
</routes>
</module>

4702
audio/mixer_paths.xml Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,337 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--- Copyright (c) 2014-2019, The Linux Foundation. All rights reserved. -->
<!--- -->
<!--- Redistribution and use in source and binary forms, with or without -->
<!--- modification, are permitted provided that the following conditions are -->
<!--- met: -->
<!--- * Redistributions of source code must retain the above copyright -->
<!--- notice, this list of conditions and the following disclaimer. -->
<!--- * Redistributions in binary form must reproduce the above -->
<!--- copyright notice, this list of conditions and the following -->
<!--- disclaimer in the documentation and/or other materials provided -->
<!--- with the distribution. -->
<!--- * Neither the name of The Linux Foundation nor the names of its -->
<!--- contributors may be used to endorse or promote products derived -->
<!--- from this software without specific prior written permission. -->
<!--- -->
<!--- THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED -->
<!--- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -->
<!--- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT -->
<!--- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS -->
<!--- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -->
<!--- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -->
<!--- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -->
<!--- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -->
<!--- WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE -->
<!--- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
<!--- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
<mixer>
<!-- These are the initial mixer settings -->
<ctl name="LSM1 Mixer VA_CDC_DMA_TX_0" value="0" />
<ctl name="LSM2 Mixer VA_CDC_DMA_TX_0" value="0" />
<ctl name="LSM3 Mixer VA_CDC_DMA_TX_0" value="0" />
<ctl name="LSM4 Mixer VA_CDC_DMA_TX_0" value="0" />
<ctl name="LSM5 Mixer VA_CDC_DMA_TX_0" value="0" />
<ctl name="LSM6 Mixer VA_CDC_DMA_TX_0" value="0" />
<ctl name="LSM7 Mixer VA_CDC_DMA_TX_0" value="0" />
<ctl name="LSM8 Mixer VA_CDC_DMA_TX_0" value="0" />
<ctl name="LSM1 Port" value="None" />
<ctl name="LSM2 Port" value="None" />
<ctl name="LSM3 Port" value="None" />
<ctl name="LSM4 Port" value="None" />
<ctl name="LSM5 Port" value="None" />
<ctl name="LSM6 Port" value="None" />
<ctl name="LSM7 Port" value="None" />
<ctl name="LSM8 Port" value="None" />
<ctl name="VA_CDC_DMA_TX_0 Channels" value="One" />
<ctl name="VA_AIF1_CAP Mixer DEC0" value="0" />
<ctl name="VA_AIF1_CAP Mixer DEC1" value="0" />
<ctl name="VA_AIF1_CAP Mixer DEC2" value="0" />
<ctl name="VA_AIF1_CAP Mixer DEC3" value="0" />
<ctl name="VA_AIF1_CAP Mixer DEC4" value="0" />
<ctl name="VA_AIF1_CAP Mixer DEC5" value="0" />
<ctl name="VA_AIF1_CAP Mixer DEC6" value="0" />
<ctl name="VA_AIF1_CAP Mixer DEC7" value="0" />
<ctl name="VA DEC0 MUX" value="MSM_DMIC" />
<ctl name="VA DEC1 MUX" value="MSM_DMIC" />
<ctl name="VA DEC2 MUX" value="MSM_DMIC" />
<ctl name="VA DEC3 MUX" value="MSM_DMIC" />
<ctl name="VA DEC4 MUX" value="MSM_DMIC" />
<ctl name="VA DEC5 MUX" value="MSM_DMIC" />
<ctl name="VA DEC6 MUX" value="MSM_DMIC" />
<ctl name="VA DEC7 MUX" value="MSM_DMIC" />
<ctl name="VA DMIC MUX0" value="ZERO" />
<ctl name="VA DMIC MUX1" value="ZERO" />
<ctl name="VA DMIC MUX2" value="ZERO" />
<ctl name="VA DMIC MUX3" value="ZERO" />
<ctl name="VA DMIC MUX4" value="ZERO" />
<ctl name="VA DMIC MUX5" value="ZERO" />
<ctl name="VA DMIC MUX6" value="ZERO" />
<ctl name="VA DMIC MUX7" value="ZERO" />
<ctl name="VA SMIC MUX0" value="ZERO" />
<ctl name="VA SMIC MUX1" value="ZERO" />
<ctl name="VA SMIC MUX2" value="ZERO" />
<ctl name="VA SMIC MUX3" value="ZERO" />
<ctl name="VA SMIC MUX4" value="ZERO" />
<ctl name="VA SMIC MUX5" value="ZERO" />
<ctl name="VA SMIC MUX6" value="ZERO" />
<ctl name="VA SMIC MUX7" value="ZERO" />
<ctl name="AUDIO_REF_EC_UL1 MUX" value="None"/>
<ctl name="EC Reference Channels" value="Zero"/>
<ctl name="EC Reference Bit Format" value="0"/>
<ctl name="EC Reference SampleRate" value="0"/>
<ctl name="ADC2_MIXER Switch" value="0" />
<ctl name="LPI Enable" value="0" />
<ctl name="ADC2 Volume" value="12" />
<ctl name="ADC4_MIXER Switch" value="0" />
<ctl name="VA_DEC0 Volume" value="84" />
<ctl name="VA_DEC1 Volume" value="84" />
<!--#ifdef OPLUS_ARCH_EXTENDS-->
<!--xiong.hu@PSW.MM.AudioDriver.HAL 2021/09/14 initial for code check -->
<ctl name="ADC2 MUX" value="INP2" />
<ctl name="ADC4 Volume" value="12" />
<ctl name="ADC4 MUX" value="INP5" />
<!--#endif /* OPLUS_ARCH_EXTENDS */-->
<!--- OPLUS_FEATURE_MIC_VA_MIC_CLK_SWITCH -->
<ctl name="VA_mic_clk" value="0P6MHZ" />
<!--- OPLUS_FEATURE_MIC_VA_MIC_CLK_SWITCH -->
<path name="listen-voice-wakeup-1">
<ctl name="LSM1 Mixer VA_CDC_DMA_TX_0" value="1" />
</path>
<path name="listen-voice-wakeup-2">
<ctl name="LSM2 Mixer VA_CDC_DMA_TX_0" value="1" />
</path>
<path name="listen-voice-wakeup-3">
<ctl name="LSM3 Mixer VA_CDC_DMA_TX_0" value="1" />
</path>
<path name="listen-voice-wakeup-4">
<ctl name="LSM4 Mixer VA_CDC_DMA_TX_0" value="1" />
</path>
<path name="listen-voice-wakeup-5">
<ctl name="LSM5 Mixer VA_CDC_DMA_TX_0" value="1" />
</path>
<path name="listen-voice-wakeup-6">
<ctl name="LSM6 Mixer VA_CDC_DMA_TX_0" value="1" />
</path>
<path name="listen-voice-wakeup-7">
<ctl name="LSM7 Mixer VA_CDC_DMA_TX_0" value="1" />
</path>
<path name="listen-voice-wakeup-8">
<ctl name="LSM8 Mixer VA_CDC_DMA_TX_0" value="1" />
</path>
<path name="listen-voice-wakeup-1 preproc">
<path name="listen-voice-wakeup-1" />
</path>
<path name="listen-voice-wakeup-2 preproc">
<path name="listen-voice-wakeup-2" />
</path>
<path name="listen-voice-wakeup-3 preproc">
<path name="listen-voice-wakeup-3" />
</path>
<path name="listen-voice-wakeup-4 preproc">
<path name="listen-voice-wakeup-4" />
</path>
<path name="listen-voice-wakeup-5 preproc">
<path name="listen-voice-wakeup-5" />
</path>
<path name="listen-voice-wakeup-6 preproc">
<path name="listen-voice-wakeup-6" />
</path>
<path name="listen-voice-wakeup-7 preproc">
<path name="listen-voice-wakeup-7" />
</path>
<path name="listen-voice-wakeup-8 preproc">
<path name="listen-voice-wakeup-8" />
</path>
<path name="listen-voice-wakeup-1 port">
<ctl name="LSM1 Port" value="VA_CDC_DMA_TX_0" />
<ctl name="LPI Enable" value="1" />
</path>
<path name="listen-voice-wakeup-2 port">
<ctl name="LSM2 Port" value="VA_CDC_DMA_TX_0" />
<ctl name="LPI Enable" value="1" />
</path>
<path name="listen-voice-wakeup-3 port">
<ctl name="LSM3 Port" value="VA_CDC_DMA_TX_0" />
<ctl name="LPI Enable" value="1" />
</path>
<path name="listen-voice-wakeup-4 port">
<ctl name="LSM4 Port" value="VA_CDC_DMA_TX_0" />
<ctl name="LPI Enable" value="1" />
</path>
<path name="listen-voice-wakeup-5 port">
<ctl name="LSM5 Port" value="VA_CDC_DMA_TX_0" />
<ctl name="LPI Enable" value="1" />
</path>
<path name="listen-voice-wakeup-6 port">
<ctl name="LSM6 Port" value="VA_CDC_DMA_TX_0" />
<ctl name="LPI Enable" value="1" />
</path>
<path name="listen-voice-wakeup-7 port">
<ctl name="LSM7 Port" value="VA_CDC_DMA_TX_0" />
<ctl name="LPI Enable" value="1" />
</path>
<path name="listen-voice-wakeup-8 port">
<ctl name="LSM8 Port" value="VA_CDC_DMA_TX_0" />
<ctl name="LPI Enable" value="1" />
</path>
<path name="listen-voice-wakeup-1 preproc port">
<ctl name="LSM1 Port" value="ADM_LSM_TX" />
<ctl name="LPI Enable" value="0" />
</path>
<path name="listen-voice-wakeup-2 preproc port">
<ctl name="LSM2 Port" value="ADM_LSM_TX" />
<ctl name="LPI Enable" value="1" />
</path>
<path name="listen-voice-wakeup-3 preproc port">
<ctl name="LSM3 Port" value="ADM_LSM_TX" />
<ctl name="LPI Enable" value="0" />
</path>
<path name="listen-voice-wakeup-4 preproc port">
<ctl name="LSM4 Port" value="ADM_LSM_TX" />
<ctl name="LPI Enable" value="0" />
</path>
<path name="listen-voice-wakeup-5 preproc port">
<ctl name="LSM5 Port" value="ADM_LSM_TX" />
<ctl name="LPI Enable" value="0" />
</path>
<path name="listen-voice-wakeup-6 preproc port">
<ctl name="LSM6 Port" value="ADM_LSM_TX" />
<ctl name="LPI Enable" value="0" />
</path>
<path name="listen-voice-wakeup-7 preproc port">
<ctl name="LSM7 Port" value="ADM_LSM_TX" />
<ctl name="LPI Enable" value="0" />
</path>
<path name="listen-voice-wakeup-8 preproc port">
<ctl name="LSM8 Port" value="ADM_LSM_TX" />
<ctl name="LPI Enable" value="0" />
</path>
<path name="listen-ape-handset-mic">
<ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
<ctl name="VA DEC0 MUX" value="MSM_DMIC" />
<ctl name="VA DMIC MUX0" value="DMIC1" />
</path>
<path name="listen-ape-handset-mic-preproc">
<path name="listen-ape-handset-mic" />
</path>
<path name="listen-ape-handset-dmic-2P4mhz">
<ctl name="VA_mic_clk" value="2P4MHZ" />
<ctl name="VA_CDC_DMA_TX_0 Channels" value="Two" />
<ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
<ctl name="VA_AIF1_CAP Mixer DEC1" value="1" />
<ctl name="VA DEC0 MUX" value="MSM_DMIC" />
<ctl name="VA DEC1 MUX" value="MSM_DMIC" />
<ctl name="VA DMIC MUX0" value="DMIC3" />
<ctl name="VA DMIC MUX1" value="DMIC1" />
<ctl name="VA_DEC0 Volume" value="92" />
<ctl name="VA_DEC1 Volume" value="92" />
</path>
<path name="listen-ape-handset-dmic">
<ctl name="VA_mic_clk" value="0P6MHZ" />
<ctl name="VA_CDC_DMA_TX_0 Channels" value="Two" />
<ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
<ctl name="VA_AIF1_CAP Mixer DEC2" value="1" />
<ctl name="VA DEC0 MUX" value="MSM_DMIC" />
<ctl name="VA DEC2 MUX" value="MSM_DMIC" />
<ctl name="VA DMIC MUX2" value="DMIC1" />
<ctl name="VA DMIC MUX0" value="DMIC3" />
</path>
<path name="listen-ape-handset-tmic">
<ctl name="VA_CDC_DMA_TX_0 Channels" value="Three" />
<ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
<ctl name="VA_AIF1_CAP Mixer DEC1" value="1" />
<ctl name="VA_AIF1_CAP Mixer DEC2" value="1" />
<ctl name="VA DEC0 MUX" value="MSM_DMIC" />
<ctl name="VA DEC1 MUX" value="MSM_DMIC" />
<ctl name="VA DEC2 MUX" value="MSM_DMIC" />
<ctl name="VA DMIC MUX0" value="DMIC4" />
<ctl name="VA DMIC MUX1" value="DMIC0" />
<ctl name="VA DMIC MUX2" value="DMIC1" />
</path>
<path name="listen-ape-handset-qmic">
<ctl name="VA_CDC_DMA_TX_0 Channels" value="Four" />
<ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
<ctl name="VA_AIF1_CAP Mixer DEC1" value="1" />
<ctl name="VA_AIF1_CAP Mixer DEC2" value="1" />
<ctl name="VA_AIF1_CAP Mixer DEC3" value="1" />
<ctl name="VA DEC0 MUX" value="MSM_DMIC" />
<ctl name="VA DEC1 MUX" value="MSM_DMIC" />
<ctl name="VA DEC2 MUX" value="MSM_DMIC" />
<ctl name="VA DEC3 MUX" value="MSM_DMIC" />
<ctl name="VA DMIC MUX0" value="DMIC4" />
<ctl name="VA DMIC MUX1" value="DMIC0" />
<ctl name="VA DMIC MUX2" value="DMIC1" />
<ctl name="VA DMIC MUX3" value="DMIC2" />
</path>
<path name="listen-ape-headset-mic">
<ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
<ctl name="VA DEC0 MUX" value="SWR_MIC" />
<ctl name="VA SMIC MUX0" value="ADC1" />
<ctl name="ADC2 Volume" value="12" />
<ctl name="ADC2_MIXER Switch" value="1" />
<ctl name="ADC2 MUX" value="INP2" />
</path>
<path name="echo-reference">
<ctl name="AUDIO_REF_EC_UL1 MUX" value="PRI_MI2S_RX"/>
<ctl name="EC Reference Channels" value="Two"/>
<ctl name="EC Reference Bit Format" value="S16_LE"/>
<ctl name="EC Reference SampleRate" value="48000"/>
</path>
<path name="echo-reference headset">
<ctl name="AUDIO_REF_EC_UL1 MUX" value="SEC_MI2S_RX"/>
<ctl name="EC Reference Channels" value="One"/>
<ctl name="EC Reference Bit Format" value="S16_LE"/>
<ctl name="EC Reference SampleRate" value="48000"/>
</path>
<path name="echo-reference a2dp">
<ctl name="AUDIO_REF_EC_UL1 MUX" value="SLIM_7_RX"/>
<ctl name="EC Reference Channels" value="Two"/>
<ctl name="EC Reference Bit Format" value="S16_LE"/>
<ctl name="EC Reference SampleRate" value="48000"/>
</path>
</mixer>

View File

@@ -0,0 +1,382 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--- Copyright (c) 2013-2020, The Linux Foundation. All rights reserved. -->
<!--- -->
<!--- Redistribution and use in source and binary forms, with or without -->
<!--- modification, are permitted provided that the following conditions are -->
<!--- met: -->
<!--- * Redistributions of source code must retain the above copyright -->
<!--- notice, this list of conditions and the following disclaimer. -->
<!--- * Redistributions in binary form must reproduce the above -->
<!--- copyright notice, this list of conditions and the following -->
<!--- disclaimer in the documentation and/or other materials provided -->
<!--- with the distribution. -->
<!--- * Neither the name of The Linux Foundation nor the names of its -->
<!--- contributors may be used to endorse or promote products derived -->
<!--- from this software without specific prior written permission. -->
<!--- -->
<!--- THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED -->
<!--- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -->
<!--- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT -->
<!--- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS -->
<!--- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -->
<!--- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -->
<!--- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -->
<!--- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -->
<!--- WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE -->
<!--- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
<!--- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
<sound_trigger_platform_info>
<param version="0x0105" /> <!-- this must be the first param -->
<!--- Version History: -->
<!--- 0x0101: Legacy version. -->
<!--- 0x0102: Includes acdb_ids param with the gcs_usecase tag. This matches -->
<!--- the gcs_usecase with the acdb device that uses it. -->
<!--- 0x0103: app_type and in_channels added to <lsm usecase> and out_channels -->
<!--- added to <adm_config> -->
<!--- 0x0104: instance id support for both WDSP<CPE> and ADSP lsm usecases -->
<!--- 0x0105: Select <lsm_usecase> based on capture device -->
<common_config>
<param implementer_version="0x0101" />
<param max_ape_sessions="8" />
<param enable_failure_detection="false" />
<param support_device_switch="false" />
<param transit_to_non_lpi_on_battery_charging="true" />
<!-- Below backend params must match with port used in mixer path file -->
<!-- param used to configure backend sample rate, format and channels -->
<param backend_port_name="VA_CDC_DMA_TX_0" />
<!-- Param used to match and obtain device backend index -->
<param backend_dai_name="VA_CDC_DMA_TX_0" />
<!-- Param used to indicate if SVA has dedicated SLIM ports -->
<!--Hu.Xiong@MULTIMEDIA.AUDIODRIVER.HAL, 2020/09/28, close Snapdragon Voice Activation path -->
<param dedicated_sva_path="false" />
<param dedicated_headset_path="false" />
<param platform_lpi_enable="true" />
<param enable_debug_dumps="false" />
<param support_non_lpi_without_ec="false" />
<param va_mic_clk_switch="true"/>
<param sva_transparent_disabled="true" />
</common_config>
<acdb_ids>
<param DEVICE_HANDSET_MIC_APE="100" />
<param DEVICE_HANDSET_MIC_PP_APE="135" />
<param DEVICE_HANDSET_DMIC_APE="149" />
<param DEVICE_HANDSET_DMIC_LPI_APE="179" />
<param DEVICE_HANDSET_TMIC_APE="157" />
<param DEVICE_HANDSET_TMIC_LPI_APE="180" />
<param DEVICE_HANDSET_QMIC_APE="137" />
<param DEVICE_HANDSET_QMIC_LPI_APE="181" />
<param DEVICE_HEADSET_MIC_APE="141" />
<param DEVICE_HEADSET_MIC_APE_LPI="182" />
</acdb_ids>
<!-- Multiple sound_model_config tags can be listed, each with unique -->
<!-- vendor_uuid. The below tag represents QTI SVA engine sound model -->
<!-- configuration. ISV must use their own unique vendor_uuid. -->
<!-- QTI SVA -->
<sound_model_config>
<param vendor_uuid="68ab2d40-e860-11e3-95ef-0002a5d5c51b" />
<param execution_type="ADSP" />
<param merge_first_stage_sound_models="false" />
<param max_ape_phrases="20" />
<param max_ape_users="10" />
<!-- Profile specific data which the algorithm can support -->
<param sample_rate="16000" />
<param bit_width="16" />
<param out_channels="1"/> <!-- Module output channels -->
<param dam_token_id="1"/>
<arm_ss_usecase>
<!-- Options are "KEYWORD_DETECTION", "USER_VERIFICATION", "CUSTOM_DETECTION" -->
<param sm_detection_type= "KEYWORD_DETECTION" />
<param sm_id="0x2" />
<param module_lib="libcapiv2svacnn.so"/>
<param sample_rate="16000"/>
<param bit_wdith="16"/>
<param channel_count="1"/>
</arm_ss_usecase>
<arm_ss_usecase>
<param sm_detection_type= "USER_VERIFICATION" />
<param sm_id="0x4" />
<param module_lib="libcapiv2vop.so"/>
<param sample_rate="16000"/>
<param bit_wdith="16"/>
<param channel_count="1"/>
</arm_ss_usecase>
<arm_ss_usecase>
<param sm_detection_type= "KEYWORD_DETECTION" />
<param sm_id="0x8" />
<param module_lib="libcapiv2svarnn.so"/>
<param sample_rate="16000"/>
<param bit_wdith="16"/>
<param channel_count="1"/>
</arm_ss_usecase>
<!-- Module and param ids with which the algorithm is integrated
in non-graphite firmware (note these must come after gcs params)
Extends flexibility to have different ids based on execution type.
valid execution_type values: "WDSP" "ADSP" -->
<lsm_usecase>
<param capture_device="HANDSET" />
<!-- adm_cfg_profile should match with the one defined under adm_config -->
<!-- Set it to NONE if LSM directly connects to AFE -->
<param adm_cfg_profile="FFECNS" />
<!-- fluence_type: "FLUENCE_MIC", "FLUENCE_DMIC", "FLUENCE_TMIC" -->
<!-- "FLUENCE_QMIC". Param value is valid when adm_cfg_profile -->
<!-- is FFECNS -->
<param fluence_type="FLUENCE_DMIC" />
<param execution_mode="ADSP" />
<!-- lpi_mode: "NON_LPI_BARGE_IN", "NON_LPI", "LPI" -->
<!-- NON_LPI_BARGE_IN: Default non-LPI mode type. lsm_usecase -->
<!-- must be present with this mode type to handle barge-in. -->
<!-- NON_LPI: If another lsm_usecase is present with this mode -->
<!-- type, it will be used for non-LPI non-barge-in usecases. -->
<!-- If not present, NON_LPI_BARGE_IN mode type will be used. -->
<!-- LPI: This mode type will be used for LPI usecases. -->
<param lpi_mode="NON_LPI_BARGE_IN" />
<param app_type="2" /> <!-- app type used in ACDB -->
<param in_channels="1"/> <!-- Module input channels -->
<param load_sound_model_ids="0x00012C1C, 0x0, 0x00012C14" />
<param unload_sound_model_ids="0x00012C1C, 0x0, 0x00012C15" />
<param confidence_levels_ids="0x00012C1C, 0x0, 0x00012C07" />
<param operation_mode_ids="0x00012C1C, 0x0, 0x00012C02" />
<param polling_enable_ids="0x00012C1C, 0x0, 0x00012C1B" />
<param custom_config_ids="0x00012C1C, 0x0, 0x00012C20" />
<param det_event_type_ids="0x00012C1C, 0x0, 0x00012C2C" />
<param lab_dam_cfg_ids="0x00012C08, 0x0, 0x000102C4" />
</lsm_usecase>
<lsm_usecase>
<param capture_device="HANDSET" />
<!-- adm_cfg_profile should match with the one defined under adm_config -->
<!-- Set it to NONE if LSM directly connects to AFE -->
<param adm_cfg_profile="FFECNS" />
<!-- fluence_type: "FLUENCE_MIC", "FLUENCE_DMIC", "FLUENCE_TMIC" -->
<!-- "FLUENCE_QMIC". Param value is valid when adm_cfg_profile -->
<!-- is FFECNS -->
<param fluence_type="FLUENCE_DMIC" />
<param execution_mode="ADSP" />
<!-- lpi_mode: "NON_LPI_BARGE_IN", "NON_LPI", "LPI" -->
<!-- NON_LPI_BARGE_IN: Default non-LPI mode type. lsm_usecase -->
<!-- must be present with this mode type to handle barge-in. -->
<!-- NON_LPI: If another lsm_usecase is present with this mode -->
<!-- type, it will be used for non-LPI non-barge-in usecases. -->
<!-- If not present, NON_LPI_BARGE_IN mode type will be used. -->
<!-- LPI: This mode type will be used for LPI usecases. -->
<param lpi_mode="LPI" />
<param app_type="2" /> <!-- app type used in ACDB -->
<param in_channels="1"/> <!-- Module input channels -->
<param load_sound_model_ids="0x00012C1C, 0x0, 0x00012C14" />
<param unload_sound_model_ids="0x00012C1C, 0x0, 0x00012C15" />
<param confidence_levels_ids="0x00012C1C, 0x0, 0x00012C07" />
<param operation_mode_ids="0x00012C1C, 0x0, 0x00012C02" />
<param polling_enable_ids="0x00012C1C, 0x0, 0x00012C1B" />
<param custom_config_ids="0x00012C1C, 0x0, 0x00012C20" />
<param det_event_type_ids="0x00012C1C, 0x0, 0x00012C2C" />
<param lab_dam_cfg_ids="0x00012C08, 0x0, 0x000102C4" />
</lsm_usecase>
<lsm_usecase>
<param capture_device="HEADSET" />
<param adm_cfg_profile="FFECNS" />
<param fluence_type="FLUENCE_MIC" />
<param execution_mode="ADSP" />
<param app_type="2" /> <!-- app type used in ACDB -->
<param in_channels="1"/> <!-- Module input channels -->
<param load_sound_model_ids="0x00012C1C, 0x0, 0x00012C14" />
<param unload_sound_model_ids="0x00012C1C, 0x0, 0x00012C15" />
<param confidence_levels_ids="0x00012C1C, 0x0, 0x00012C07" />
<param operation_mode_ids="0x00012C1C, 0x0, 0x00012C02" />
<param polling_enable_ids="0x00012C1C, 0x0, 0x00012C1B" />
<param custom_config_ids="0x00012C1C, 0x0, 0x00012C20" />
<param det_event_type_ids="0x00012C1C, 0x0, 0x00012C2C" />
<param lab_dam_cfg_ids="0x00012C08, 0x0, 0x000102C4" />
</lsm_usecase>
<!-- format: "ADPCM_packet" or "PCM_packet" !-->
<!-- transfer_mode: "FTRT" or "RT" -->
<!-- kw_duration is in milli seconds. It is valid only for FTRT
transfer mode -->
<param capture_keyword="PCM_packet, RT, 2000" />
<param client_capture_read_delay="2000" />
<param concurrent_voice_call="false" />
<param concurrent_voip_call="false" />
</sound_model_config>
<!-- QTI Music Detection !-->
<sound_model_config>
<param vendor_uuid="876c1b46-9d4d-40cc-a4fd-4d5ec7a80e47" />
<param execution_type="ADSP" />
<param max_ape_phrases="1" />
<param max_ape_users="1" />
<!-- Profile specific data which the algorithm can support -->
<param sample_rate="16000" />
<param bit_width="16" />
<param out_channels="1"/> <!-- Module output channels -->
<!-- Module and param ids with which the algorithm is integrated
in non-graphite firmware (note these must come after gcs params)
Extends flexibility to have different ids based on execution type.
valid execution_type values: only "ADSP" -->
<lsm_usecase>
<param capture_device="HANDSET" />
<!-- adm_cfg_profile should match with the one defined under adm_config -->
<!-- Set it to NONE if LSM directly connects to AFE -->
<param adm_cfg_profile="DEFAULT" />
<!-- fluence_type: "FLUENCE_MIC", "FLUENCE_DMIC", "FLUENCE_TMIC" -->
<!-- "FLUENCE_QMIC". Param value is valid when adm_cfg_profile -->
<!-- is FFECNS -->
<param fluence_type="NONE" />
<param execution_mode="ADSP" />
<param app_type="4" /> <!-- app type for MD used in ACDB -->
<param in_channels="1"/> <!-- Module input channels -->
<param load_sound_model_ids="0x00012C22, 0x0, 0x00012C14" />
<param unload_sound_model_ids="0x00012C22, 0x0, 0x00012C15" />
<param confidence_levels_ids="0x00012C22, 0x0, 0x00012C07" />
<param det_event_type_ids="0x00012C22, 0x0, 0x00012C2C" />
<param custom_config_ids="0x00012C22, 0x0, 0x00012C30" />
</lsm_usecase>
<lsm_usecase>
<param capture_device="HEADSET" />
<param adm_cfg_profile="DEFAULT" />
<param fluence_type="NONE" />
<param execution_mode="ADSP" />
<param app_type="4" /> <!-- app type for MD used in ACDB -->
<param in_channels="1"/> <!-- Module input channels -->
<param load_sound_model_ids="0x00012C22, 0x0, 0x00012C14" />
<param unload_sound_model_ids="0x00012C22, 0x0, 0x00012C15" />
<param confidence_levels_ids="0x00012C22, 0x0, 0x00012C07" />
<param det_event_type_ids="0x00012C22, 0x0, 0x00012C2C" />
<param custom_config_ids="0x00012C22, 0x0, 0x00012C30" />
</lsm_usecase>
<!-- format: "ADPCM_packet" or "PCM_packet" !-->
<!-- transfer_mode: "FTRT" or "RT" -->
<!-- kw_duration is in milli seconds. It is valid only for FTRT
transfer mode -->
<param capture_keyword="PCM_packet, FTRT, 1500" />
<param client_capture_read_delay="2000" />
</sound_model_config>
<!-- Google Hotword -->
<sound_model_config>
<param vendor_uuid="7038ddc8-30f2-11e6-b0ac-40a8f03d3f15" />
<param get_module_version="true" />
<param execution_type="ADSP" />
<param max_ape_phrases="1" />
<param max_ape_users="1" />
<!-- Profile specific data which the algorithm can support -->
<param sample_rate="16000" />
<param bit_width="16" />
<param out_channels="1"/> <!-- Module output channels -->
<lsm_usecase>
<param capture_device="HANDSET" />
<!-- adm_cfg_profile should match with the one defined under adm_config -->
<!-- Set it to NONE if LSM directly connects to AFE -->
<param adm_cfg_profile="DEFAULT" />
<!-- fluence_type: "FLUENCE_MIC", "FLUENCE_DMIC", "FLUENCE_TMIC" -->
<!-- "FLUENCE_QMIC". Param value is valid when adm_cfg_profile -->
<!-- is FFECNS -->
<param fluence_type="NONE" />
<param execution_mode="ADSP" />
<param app_type="3" /> <!-- app type used in ACDB -->
<param in_channels="1"/> <!-- Module input channels -->
<param load_sound_model_ids="0x18000001, 0x0, 0x00012C14" />
<param unload_sound_model_ids="0x18000001, 0x0, 0x00012C15" />
<param confidence_levels_ids="0x18000001, 0x0, 0x00012C07" />
<param operation_mode_ids="0x18000001, 0x0, 0x00012C02" />
<param polling_enable_ids="0x18000001, 0x0, 0x00012C1B" />
<param custom_config_ids="0x18000001, 0x0, 0x00012C20" />
<param version_ids="0x18000001, 0x0, 0x18000101" />
</lsm_usecase>
<lsm_usecase>
<param capture_device="HEADSET" />
<param adm_cfg_profile="DEFAULT" />
<param fluence_type="NONE" />
<param execution_mode="ADSP" />
<param app_type="3" /> <!-- app type used in ACDB -->
<param in_channels="1"/> <!-- Module input channels -->
<param load_sound_model_ids="0x18000001, 0x0, 0x00012C14" />
<param unload_sound_model_ids="0x18000001, 0x0, 0x00012C15" />
<param confidence_levels_ids="0x18000001, 0x0, 0x00012C07" />
<param operation_mode_ids="0x18000001, 0x0, 0x00012C02" />
<param polling_enable_ids="0x18000001, 0x0, 0x00012C1B" />
<param custom_config_ids="0x18000001, 0x0, 0x00012C20" />
<param version_ids="0x18000001, 0x0, 0x18000101" />
</lsm_usecase>
<!-- format: "ADPCM_packet" or "PCM_packet" !-->
<!-- transfer_mode: "FTRT" or "RT" -->
<!-- kw_duration is in milli seconds. It is valid only for FTRT
transfer mode -->
<param capture_keyword="PCM_raw, FTRT, 2000" />
<param client_capture_read_delay="2000" />
</sound_model_config>
<!-- Google Music Detection -->
<sound_model_config>
<param vendor_uuid="9f6ad62a-1f0b-11e7-87c5-40a8f03d3f15" />
<param execution_type="ADSP" />
<param max_ape_phrases="1" />
<param max_ape_users="1" />
<!-- Profile specific data which the algorithm can support -->
<param sample_rate="16000" />
<param bit_width="16" />
<param out_channels="1"/> <!-- Module output channels -->
<lsm_usecase>
<param capture_device="HANDSET" />
<!-- adm_cfg_profile should match with the one defined under adm_config -->
<!-- Set it to NONE if LSM directly connects to AFE -->
<param adm_cfg_profile="DEFAULT" />
<!-- fluence_type: "FLUENCE_MIC", "FLUENCE_DMIC", "FLUENCE_TMIC" -->
<!-- "FLUENCE_QMIC". Param value is valid when adm_cfg_profile -->
<!-- is FFECNS -->
<param fluence_type="NONE" />
<param execution_mode="ADSP" />
<param app_type="3" /> <!-- app type used in ACDB -->
<param in_channels="1"/> <!-- Module input channels -->
<param load_sound_model_ids="0x18000001, 0x0, 0x00012C14" />
<param unload_sound_model_ids="0x18000001, 0x0, 0x00012C15" />
<param confidence_levels_ids="0x18000001, 0x0, 0x00012C07" />
<param operation_mode_ids="0x18000001, 0x0, 0x00012C02" />
<param polling_enable_ids="0x18000001, 0x0, 0x00012C1B" />
<param custom_config_ids="0x18000001, 0x0, 0x00012C20" />
</lsm_usecase>
<lsm_usecase>
<param capture_device="HEADSET" />
<param adm_cfg_profile="DEFAULT" />
<param fluence_type="NONE" />
<param execution_mode="ADSP" />
<param app_type="3" /> <!-- app type used in ACDB -->
<param in_channels="1"/> <!-- Module input channels -->
<param load_sound_model_ids="0x18000001, 0x0, 0x00012C14" />
<param unload_sound_model_ids="0x18000001, 0x0, 0x00012C15" />
<param confidence_levels_ids="0x18000001, 0x0, 0x00012C07" />
<param operation_mode_ids="0x18000001, 0x0, 0x00012C02" />
<param polling_enable_ids="0x18000001, 0x0, 0x00012C1B" />
<param custom_config_ids="0x18000001, 0x0, 0x00012C20" />
</lsm_usecase>
<!-- format: "ADPCM_packet" or "PCM_packet" !-->
<!-- transfer_mode: "FTRT" or "RT" -->
<!-- kw_duration is in milli seconds. It is valid only for FTRT
transfer mode -->
<param capture_keyword="PCM_raw, FTRT, 5000" />
<param client_capture_read_delay="2000" />
</sound_model_config>
<!-- Multiple adm_config tags can be listed, each with unique profile name. -->
<!-- app_type to match corresponding value from ACDB -->
<adm_config>
<param adm_cfg_profile="FFECNS" />
<param app_type="69947" />
<param sample_rate="16000" />
<param bit_width="16" />
<param out_channels="1"/>
</adm_config>
<adm_config>
<param adm_cfg_profile="DEFAULT" />
<param app_type="69938" />
<param sample_rate="16000" />
<param bit_width="16" />
<param out_channels="1"/>
</adm_config>
</sound_trigger_platform_info>

View File

@@ -0,0 +1,31 @@
/*
* Copyright (c) 2013, The Linux Foundation. All rights reserved.
* Not a Contribution, Apache license notifications and license are retained
* for attribution purposes only.
*
* Copyright (C) 2012 The Android Open Source Project
* Copyright (C) 2018 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.
*/
#ifndef _BDROID_BUILDCFG_H
#define _BDROID_BUILDCFG_H
// Disables read remote device feature
#define MAX_ACL_CONNECTIONS 16
#define MAX_L2CAP_CHANNELS 16
#define BLE_VND_INCLUDED TRUE
/* Increasing SEPs to 12 from 6 to support SHO/MCast i.e. two streams per codec */
#define AVDT_NUM_SEPS 12
#endif

109
compatibility_matrix.xml Normal file
View File

@@ -0,0 +1,109 @@
<!-- Copyright (c) 2017, The Linux Foundation. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
* Neither the name of The Linux Foundation nor the names of its
contributors may be used to endorse or promote products derived
from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-->
<compatibility-matrix version="2.0" type="device">
<hal format="hidl" optional="false">
<name>android.frameworks.schedulerservice</name>
<version>1.0</version>
<interface>
<name>ISchedulingPolicyService</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="false">
<name>android.frameworks.sensorservice</name>
<version>1.0</version>
<interface>
<name>ISensorManager</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="false">
<name>android.hidl.allocator</name>
<version>1.0</version>
<interface>
<name>IAllocator</name>
<instance>ashmem</instance>
</interface>
</hal>
<hal format="hidl" optional="false">
<name>android.hidl.manager</name>
<version>1.0</version>
<interface>
<name>IServiceManager</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="false">
<name>android.hidl.memory</name>
<version>1.0</version>
<interface>
<name>IMapper</name>
<instance>ashmem</instance>
</interface>
</hal>
<hal format="hidl" optional="false">
<name>android.hidl.token</name>
<version>1.0</version>
<interface>
<name>ITokenManager</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="false">
<name>android.system.wifi.keystore</name>
<version>1.0</version>
<interface>
<name>IKeystore</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.qccsyshal</name>
<version>1.0</version>
<interface>
<name>IQccsyshal</name>
<instance>qccsyshal</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.sigma_miracast</name>
<version>1.0</version>
<interface>
<name>Isigma_miracast</name>
<instance>sigmahal</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.wifi.keystore</name>
<version>1.0</version>
<interface>
<name>IKeystoreExt</name>
<instance>default</instance>
</interface>
</hal>
</compatibility-matrix>

236
config.fs Normal file
View File

@@ -0,0 +1,236 @@
[AID_VENDOR_QTI_DIAG]
value:2901
[AID_VENDOR_QDSS]
value:2902
[AID_VENDOR_RFS]
value:2903
[AID_VENDOR_RFS_SHARED]
value:2904
[AID_VENDOR_ADPL_ODL]
value:2905
[AID_VENDOR_QRTR]
value:2906
[AID_VENDOR_THERMAL]
value:2907
[AID_VENDOR_FASTRPC]
value:2908
[AID_VENDOR_QTR]
value:2909
[AID_VENDOR_LAUNCHER]
value:2988
[AID_VENDOR_SAURES]
value:2989
[bt_firmware/]
mode: 0771
user: AID_SYSTEM
group: AID_SYSTEM
caps: 0
[dsp/]
mode: 0771
user: AID_MEDIA
group: AID_MEDIA
caps: 0
[firmware/]
mode: 0771
user: AID_SYSTEM
group: AID_SYSTEM
caps: 0
[firmware/image/*]
mode: 0771
user: AID_SYSTEM
group: AID_SYSTEM
caps: 0
[persist/]
mode: 0771
user: AID_SYSTEM
group: AID_SYSTEM
caps: 0
[system/bin/cnss-daemon]
mode: 0755
user: AID_BLUETOOTH
group: AID_BLUETOOTH
caps: NET_BIND_SERVICE
[system/bin/pd-mapper]
mode: 0755
user: AID_SYSTEM
group: AID_SYSTEM
caps: NET_BIND_SERVICE
[system/bin/pm-service]
mode: 0755
user: AID_SYSTEM
group: AID_SYSTEM
caps: NET_BIND_SERVICE
[system/vendor/bin/cnd]
mode: 0755
user: AID_SYSTEM
group: AID_SYSTEM
caps: NET_BIND_SERVICE NET_ADMIN BLOCK_SUSPEND
[system/vendor/bin/hw/android.hardware.bluetooth@1.0-service-qti]
mode: 0755
user: AID_SYSTEM
group: AID_SYSTEM
caps: NET_ADMIN BLOCK_SUSPEND
[system/vendor/bin/hw/android.hardware.bluetooth@1.0-service-qti-lazy]
mode: 0755
user: AID_SYSTEM
group: AID_SYSTEM
caps: NET_ADMIN BLOCK_SUSPEND
[system/vendor/bin/ims_rtp_daemon]
mode: 0755
user: AID_RADIO
group: AID_RADIO
caps: NET_BIND_SERVICE
[system/vendor/bin/imsdatadaemon]
mode: 0755
user: AID_RADIO
group: AID_RADIO
caps: NET_BIND_SERVICE
[system/vendor/bin/imsrcsd]
mode: 0755
user: AID_RADIO
group: AID_RADIO
caps: NET_BIND_SERVICE WAKE_ALARM BLOCK_SUSPEND
[system/vendor/bin/loc_launcher]
mode: 0755
user: AID_GPS
group: AID_GPS
caps: SETGID SETUID
[system/vendor/bin/pd-mapper]
mode: 0755
user: AID_SYSTEM
group: AID_SYSTEM
caps: NET_BIND_SERVICE
[system/vendor/bin/pm-service]
mode: 0755
user: AID_SYSTEM
group: AID_SYSTEM
caps: NET_BIND_SERVICE
[system/vendor/bin/slim_daemon]
mode: 0755
user: AID_GPS
group: AID_GPS
caps: NET_BIND_SERVICE
[system/vendor/bin/wcnss_filter]
mode: 0755
user: AID_BLUETOOTH
group: AID_BLUETOOTH
caps: BLOCK_SUSPEND
[vendor/bin/cnd]
mode: 0755
user: AID_SYSTEM
group: AID_SYSTEM
caps: NET_BIND_SERVICE NET_ADMIN BLOCK_SUSPEND
[vendor/bin/hw/android.hardware.bluetooth@1.0-service-qti]
mode: 0755
user: AID_BLUETOOTH
group: AID_BLUETOOTH
caps: NET_ADMIN BLOCK_SUSPEND
[vendor/bin/hw/android.hardware.bluetooth@1.0-service-qti-lazy]
mode: 0755
user: AID_BLUETOOTH
group: AID_BLUETOOTH
caps: NET_ADMIN BLOCK_SUSPEND
[vendor/bin/ims_rtp_daemon]
mode: 0755
user: AID_RADIO
group: AID_RADIO
caps: NET_BIND_SERVICE
[vendor/bin/imsdaemon]
mode: 0755
user: AID_RADIO
group: AID_RADIO
caps: NET_BIND_SERVICE WAKE_ALARM BLOCK_SUSPEND
[vendor/bin/imsdatadaemon]
mode: 0755
user: AID_RADIO
group: AID_RADIO
caps: NET_BIND_SERVICE
[vendor/bin/imsrcsd]
mode: 0755
user: AID_RADIO
group: AID_RADIO
caps: NET_BIND_SERVICE WAKE_ALARM BLOCK_SUSPEND
[vendor/bin/loc_launcher]
mode: 0755
user: AID_GPS
group: AID_GPS
caps: SETGID SETUID
[vendor/bin/pd-mapper]
mode: 0755
user: AID_SYSTEM
group: AID_SYSTEM
caps: NET_BIND_SERVICE
[vendor/bin/pm-service]
mode: 0755
user: AID_SYSTEM
group: AID_SYSTEM
caps: NET_BIND_SERVICE
[vendor/bin/sensors.qti]
mode: 0755
user: AID_SYSTEM
group: AID_SYSTEM
caps: NET_BIND_SERVICE
[vendor/bin/slim_daemon]
mode: 0755
user: AID_GPS
group: AID_GPS
caps: NET_BIND_SERVICE
[vendor/bin/wcnss_filter]
mode: 0755
user: AID_BLUETOOTH
group: AID_BLUETOOTH
caps: BLOCK_SUSPEND
[vendor/bin/xtwifi-client]
mode: 0755
user: AID_GPS
group: AID_GPS
caps: NET_BIND_SERVICE WAKE_ALARM BLOCK_SUSPEND
[vendor/firmware_mnt/image/*]
mode: 0771
user: AID_SYSTEM
group: AID_SYSTEM
caps: 0

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<permissions>
<!-- Feature for Google Dialer Call Recording -->
<feature name="com.google.android.apps.dialer.call_recording_audio" />
</permissions>

354
configs/gps.conf Normal file
View File

@@ -0,0 +1,354 @@
#Version check for XTRA
#DISABLE = 0
#AUTO = 1
#XTRA2 = 2
#XTRA3 = 3
XTRA_VERSION_CHECK=0
#ODM
# Error Estimate
# _SET = 1
# _CLEAR = 0
ERR_ESTIMATE=0
#NTP server
NTP_SERVER=time.izatcloud.net
#XTRA CA path
XTRA_CA_PATH=/usr/lib/ssl-1.1/certs
# DEBUG LEVELS: 0 - none, 1 - Error, 2 - Warning, 3 - Info
# 4 - Debug, 5 - Verbose
# If DEBUG_LEVEL is commented, Android's logging levels will be used
#ifndef OPLUS_BUG_DEBUG
#LinHuaqiu@CONNECTIVITY.GPS.LOCATION.LOG.1065783, 2017/11/04, Add for gps log control
#DEBUG_LEVEL = 3
#else /* OPLUS_BUG_DEBUG */
DEBUG_LEVEL = 2
#endif /* OPLUS_BUG_DEBUG */
# Intermediate position report, 1=enable, 0=disable
INTERMEDIATE_POS=0
# supl version 1.0
SUPL_VER=0x10000
# Emergency SUPL, 1=enable, 0=disable
#SUPL_ES=1
#Choose PDN for Emergency SUPL
#1 - Use emergency PDN
#0 - Use regular SUPL PDN for Emergency SUPL
#USE_EMERGENCY_PDN_FOR_EMERGENCY_SUPL=0
#SUPL_MODE is a bit mask set in config.xml per carrier by default.
#If it is uncommented here, this value will overwrite the value from
#config.xml.
#MSA=0X2
#MSB=0X1
#SUPL_MODE=
# GPS Capabilities bit mask
# SCHEDULING = 0x01
# MSB = 0x02
# MSA = 0x04
# ON_DEMAND_TIME = 0x10
# default = ON_DEMAND_TIME | MSA | MSB | SCHEDULING
CAPABILITIES=0x17
# Accuracy threshold for intermediate positions
# less accurate positions are ignored, 0 for passing all positions
# ACCURACY_THRES=5000
################################
##### AGPS server settings #####
################################
# FOR SUPL SUPPORT, set the following
# SUPL_HOST=supl.host.com or IP
# SUPL_PORT=1234
# FOR MO SUPL SUPPORT, set the following
# MO_SUPL_HOST=supl.host.com or IP
# MO_SUPL_PORT=1234
# FOR C2K PDE SUPPORT, set the following
# C2K_HOST=c2k.pde.com or IP
# C2K_PORT=1234
# Bitmask of slots that are available
# for write/install to, where 1s indicate writable,
# and the default value is 0 where no slots
# are writable. For example, AGPS_CERT_WRITABLE_MASK
# of b1000001010 makes 3 slots available
# and the remaining 7 slots unwritable.
#AGPS_CERT_WRITABLE_MASK=0
####################################
# LTE Positioning Profile Settings
####################################
# 0: Enable RRLP on LTE(Default)
# 1: Enable LPP_User_Plane on LTE
# 2: Enable LPP_Control_Plane
# 3: Enable both LPP_User_Plane and LPP_Control_Plane
LPP_PROFILE = 3
####################################
#Datum Type
####################################
# 0: WGS-84
# 1: PZ-90
DATUM_TYPE = 0
################################
# EXTRA SETTINGS
################################
# NMEA provider (1=Modem Processor, 0=Application Processor)
NMEA_PROVIDER=0
# Customized NMEA GGA fix quality that can be used to tell
# whether SENSOR contributed to the fix.
#
# When this configuration item is not enabled (set to any value that is not 1),
# GGA fix quality conforms to NMEA standard spec as below:
# PPP/DGNSS/SBAS correction fix w/ or w/o sensor: 2
# RTK fixed fix w/ or w/o sensor: 4
# RTK float fix w/ or w/o sensor: 5
# SPE fix w/ or w/o sensor: 1
# Sensor dead reckoning fix: 6
#
# When this configuration is enabled (set to 1), GGA fix quality
# will be output as below:
# PPP fix w/o sensor: 59, w/ sensor: 69
# DGNSS/SBAS correction fix w/o sensor: 2, w/ sensor: 62
# RTK fixed fix w/o sensor: 4, w/ sensor: 64
# RTK float fix w/o sensor: 5, w/ sensor: 65,
# SPE fix w/o sensor: 1, and w/ sensor: 61
# Sensor dead reckoning fix: 6
#
# any value that is not 1 - disabled
# 1 - enabled
CUSTOM_NMEA_GGA_FIX_QUALITY_ENABLED = 0
################################
# NMEA Reporting Rate Config, valid only when NMEA_PROVIDER is set to "0"
################################
# NMEA Reporting Rate
# Set it to "1HZ" for 1Hz NMEA Reporting
# Set it to "NHZ" for NHz NMEA Reporting
#Default : NHZ (overridden by position update rate if set to lower rates)
NMEA_REPORT_RATE=NHZ
# Mark if it is a SGLTE target (1=SGLTE, 0=nonSGLTE)
SGLTE_TARGET=0
##################################################
# Select Positioning Protocol on A-GLONASS system
##################################################
# 0x1: RRC CPlane
# 0x2: RRLP UPlane
# 0x4: LLP Uplane
A_GLONASS_POS_PROTOCOL_SELECT = 0
##################################################
# Select technology for LPPe Control Plane
##################################################
# 0x1: DBH for LPPe CP
# 0x2: WLAN AP Measurements for LPPe CP
# 0x4: SRN AP measurement for CP
# 0x8: Sensor Barometer Measurement LPPe CP
#LPPE_CP_TECHNOLOGY = 0
##################################################
# Select technology for LPPe User Plane
##################################################
# 0x1: DBH for LPPe UP
# 0x2: WLAN AP Measurements for LPPe UP
# 0x4: SRN AP measurement for UP
# 0x8: Sensor Barometer Measurement LPPe UP
#LPPE_UP_TECHNOLOGY = 0
##################################################
# AGPS_CONFIG_INJECT
##################################################
# enable/disable injection of AGPS configurations:
# SUPL_VER
# SUPL_HOST
# SUPL_PORT
# MO_SUPL_HOST
# MO_SUPL_PORT
# C2K_HOST
# C2K_PORT
# LPP_PROFILE
# A_GLONASS_POS_PROTOCOL_SELECT
# 0: disable
# 1: enable
AGPS_CONFIG_INJECT = 1
##################################################
# GNSS settings for automotive use cases
# Configurations in following section are
# specific to automotive use cases, others
# please do not change, keep the default values
##################################################
# AP Coarse Timestamp Uncertainty
##################################################
# default : 10
# AP time stamp uncertainty, until GNSS receiver
# is able to acquire better timing information
AP_TIMESTAMP_UNCERTAINTY = 10
#####################################
# DR_SYNC Pulse Availability
#####################################
# 0 : DR_SYNC pulse not available (default)
# 1 : DR_SYNC pulse available
# This configuration enables the driver to make use
# of PPS events generated by DR_SYNC pulse
# Standard Linux PPS driver needs to be enabled
DR_SYNC_ENABLED = 0
#####################################
# PPS Device name
#####################################
PPS_DEVICENAME = /dev/pps0
#####################################
# Ignore PPS at Startup and after long outage
#####################################
IGNORE_PPS_PULSE_COUNT = 1
#####################################
# Long GNSS RF outage in seconds
#####################################
GNSS_OUTAGE_DURATION = 10
#####################################
# AP Clock Accuracy
#####################################
# Quality of APPS processor clock (in PPM).
# Value specified is used for calculation of
# APPS time stamp uncertainty
AP_CLOCK_PPM = 100
#####################################
# MAX ms difference to detect missing pulse
#####################################
# Specifies time threshold in ms to validate any missing PPS pulses
MISSING_PULSE_TIME_DELTA = 900
#####################################
# Propagation time uncertainty
#####################################
# This settings enables time uncertainty propagation
# logic incase of missing PPS pulse
PROPAGATION_TIME_UNCERTAINTY = 1
#######################################
# APN / IP Type Configuration
# APN and IP Type to use for setting
# up WWAN call.
# Use below values for IP Type:
# v4 = 4
# v6 = 6
# v4v6 = 10
#######################################
# INTERNET_APN = abc.xyz
# INTERNET_IP_TYPE = 4
# SUPL_APN = abc.xyz
# SUPL_IP_TYPE = 4
#####################################
# Modem type
#####################################
# This setting configures modem type
# (external=0 or internal=1)
# comment out the next line to vote
# for the first modem in the list
MODEM_TYPE = 1
##################################################
# CONSTRAINED TIME UNCERTAINTY MODE
##################################################
# 0 : disabled (default)
# 1 : enabled
# This setting enables GPS engine to keep its time
# uncertainty below the specified constraint
#CONSTRAINED_TIME_UNCERTAINTY_ENABLED = 0
# If constrained time uncertainty mode is enabled,
# this setting specifies the time uncertainty
# threshold that gps engine need to maintain.
# In unit of milli-seconds.
# Default is 0.0 meaning that modem default value
# of time uncertainty threshold will be used.
#CONSTRAINED_TIME_UNCERTAINTY_THRESHOLD = 0.0
# If constrained time uncertainty mode is enabled,
# this setting specifies the power budget that
# gps engine is allowed to spend to maintain the time
# uncertainty.
# Default is 0 meaning that GPS engine is not constained
# by power budget and can spend as much power as needed.
# In unit of 0.1 milli watt second.
#CONSTRAINED_TIME_UNCERTAINTY_ENERGY_BUDGET = 0
##################################################
# POSITION ASSISTED CLOCK ESTIMATOR
##################################################
# 0 : disabled (default)
# 1 : enabled
# This setting enables GPS engine to estimate clock
# bias and drift when the signal from at least 1
# SV is available and the UEs position is known by
# other position engines.
#POSITION_ASSISTED_CLOCK_ESTIMATOR_ENABLED = 0
#####################################
# proxyAppPackageName
#####################################
# This is a string that is sent to the framework
# in nfwNotifyCb callback
PROXY_APP_PACKAGE_NAME = com.google.android.carrierlocation
#####################################
# CP_MTLR_ES
#####################################
# CP MTLR ES, 1=enable, 0=disable
CP_MTLR_ES=0
##################################################
# GNSS_DEPLOYMENT
##################################################
# 0 : Enable QTI GNSS (default)
# 1 : Enable QCSR SS5
# This setting use to select between QTI GNSS
# and QCSR SS5 hardware receiver.
# By default QTI GNSS receiver is enabled.
# GNSS_DEPLOYMENT = 0
##################################################
## LOG BUFFER CONFIGURATION
##################################################
#LOG_BUFFER_ENABLED, 1=enable, 0=disable
#*_LEVEL_TIME_DEPTH, maximum time depth of level *
#in log buffer, unit is second
#*_LEVEL_MAX_CAPACITY, maximum numbers of level *
#log print sentences in log buffer
LOG_BUFFER_ENABLED = 0
E_LEVEL_TIME_DEPTH = 600
E_LEVEL_MAX_CAPACITY = 50
W_LEVEL_TIME_DEPTH = 500
W_LEVEL_MAX_CAPACITY = 100
I_LEVEL_TIME_DEPTH = 400
I_LEVEL_MAX_CAPACITY = 200
D_LEVEL_TIME_DEPTH = 30
D_LEVEL_MAX_CAPACITY = 300
V_LEVEL_TIME_DEPTH = 200
V_LEVEL_MAX_CAPACITY = 400
##################################################
# Allow buffer diag log packets when diag memory allocation
# fails during boot up time.
##################################################
BUFFER_DIAG_LOGGING = 1

2
configs/hals.conf Normal file
View File

@@ -0,0 +1,2 @@
sensors.ssc.so
sensors.oplus.so

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<permissions>
<privapp-permissions package="com.android.hotwordenrollment.okgoogle">
<permission name="android.permission.KEYPHRASE_ENROLLMENT_APPLICATION"/>
<permission name="android.permission.INTERACT_ACROSS_USERS"/>
</privapp-permissions>
<privapp-permissions package="com.android.hotwordenrollment.xgoogle">
<permission name="android.permission.KEYPHRASE_ENROLLMENT_APPLICATION"/>
<permission name="android.permission.INTERACT_ACROSS_USERS"/>
</privapp-permissions>
</permissions>

797
configs/thermal-engine.conf Normal file
View File

@@ -0,0 +1,797 @@
# SENSOR : ALIAS
debug
#Conf file: /vendor/etc/thermal-engine.conf
[Q6-CX-TJ-MONITOR]
#algo_type monitor
sampling 1000
sensor q6-hvx-usr
thresholds 100000
thresholds_clr 95000
actions camera+camcorder
action_info 10+10
Thermal Zones
[THERMAL_ZONE_0]
algo_type user_space
sensor modem-lte-sub6-pa1
polling_delay 0
passive_delay 0
set_temp 125000
clr_temp 124000
[THERMAL_ZONE_1]
algo_type user_space
sensor modem-lte-sub6-pa2
polling_delay 0
passive_delay 0
set_temp 125000
clr_temp 124000
[THERMAL_ZONE_2]
algo_type user_space
sensor modem-mmw0-usr
polling_delay 0
passive_delay 0
set_temp 125000
clr_temp 124000
[THERMAL_ZONE_3]
algo_type user_space
sensor modem-mmw1-usr
polling_delay 0
passive_delay 0
set_temp 125000
clr_temp 124000
[THERMAL_ZONE_4]
algo_type user_space
sensor modem-mmw2-usr
polling_delay 0
passive_delay 0
set_temp 125000
clr_temp 124000
[THERMAL_ZONE_5]
algo_type user_space
sensor modem-mmw3-usr
polling_delay 0
passive_delay 0
set_temp 125000
clr_temp 124000
[THERMAL_ZONE_6]
algo_type user_space
sensor modem-skin-usr
polling_delay 0
passive_delay 0
set_temp 125000
clr_temp 124000
[THERMAL_ZONE_7]
algo_type user_space
sensor modem-wifi-usr
polling_delay 0
passive_delay 0
set_temp 125000
clr_temp 124000
[THERMAL_ZONE_8]
algo_type user_space
sensor modem-ambient-usr
polling_delay 0
passive_delay 0
set_temp 125000
clr_temp 124000
[THERMAL_ZONE_9]
algo_type user_space
sensor modem-0-usr
polling_delay 0
passive_delay 0
set_temp 125000
clr_temp 124000
[THERMAL_ZONE_10]
algo_type user_space
sensor modem-1-usr
polling_delay 0
passive_delay 0
set_temp 125000
clr_temp 124000
[THERMAL_ZONE_11]
algo_type user_space
sensor modem-streamer-usr
polling_delay 0
passive_delay 0
set_temp 125000
clr_temp 124000
[THERMAL_ZONE_12]
algo_type user_space
sensor modem-mmw0-mod-usr
polling_delay 0
passive_delay 0
set_temp 125000
clr_temp 124000
[THERMAL_ZONE_13]
algo_type user_space
sensor modem-mmw1-mod-usr
polling_delay 0
passive_delay 0
set_temp 125000
clr_temp 124000
[THERMAL_ZONE_14]
algo_type user_space
sensor modem-mmw2-mod-usr
polling_delay 0
passive_delay 0
set_temp 125000
clr_temp 124000
[THERMAL_ZONE_15]
algo_type user_space
sensor modem-mmw3-mod-usr
polling_delay 0
passive_delay 0
set_temp 125000
clr_temp 124000
[THERMAL_ZONE_16]
algo_type user_space
sensor aoss0-usr
polling_delay 0
passive_delay 0
set_temp 125000 115000
clr_temp 124000 114000
[THERMAL_ZONE_17]
algo_type user_space
sensor cpu-0-0-usr
polling_delay 0
passive_delay 0
set_temp 125000 95000
clr_temp 124000 94000
[THERMAL_ZONE_18]
algo_type user_space
sensor cpu-0-1-usr
polling_delay 0
passive_delay 0
set_temp 125000 95000
clr_temp 124000 94000
[THERMAL_ZONE_19]
algo_type user_space
sensor cpu-0-2-usr
polling_delay 0
passive_delay 0
set_temp 125000 95000
clr_temp 124000 94000
[THERMAL_ZONE_20]
algo_type user_space
sensor cpu-0-3-usr
polling_delay 0
passive_delay 0
set_temp 125000 95000
clr_temp 124000 94000
[THERMAL_ZONE_21]
algo_type user_space
sensor cpu-0-4-usr
polling_delay 0
passive_delay 0
set_temp 125000 95000
clr_temp 124000 94000
[THERMAL_ZONE_22]
algo_type user_space
sensor cpu-0-5-usr
polling_delay 0
passive_delay 0
set_temp 125000 95000
clr_temp 124000 94000
[THERMAL_ZONE_23]
algo_type user_space
sensor cpuss-0-usr
polling_delay 0
passive_delay 0
set_temp 125000 115000
clr_temp 124000 114000
[THERMAL_ZONE_24]
algo_type user_space
sensor cpuss-1-usr
polling_delay 0
passive_delay 0
set_temp 125000 115000
clr_temp 124000 114000
[THERMAL_ZONE_25]
algo_type user_space
sensor cpu-1-0-usr
polling_delay 0
passive_delay 0
set_temp 125000 95000
clr_temp 124000 94000
[THERMAL_ZONE_26]
algo_type user_space
sensor cpu-1-1-usr
polling_delay 0
passive_delay 0
set_temp 125000 115000
clr_temp 124000 114000
[THERMAL_ZONE_27]
algo_type user_space
sensor cpu-1-2-usr
polling_delay 0
passive_delay 0
set_temp 125000 95000
clr_temp 124000 94000
[THERMAL_ZONE_28]
algo_type user_space
sensor cpu-1-3-usr
polling_delay 0
passive_delay 0
set_temp 125000 115000
clr_temp 124000 114000
[THERMAL_ZONE_29]
algo_type user_space
sensor gpuss-0-usr
polling_delay 0
passive_delay 0
set_temp 125000 95000
clr_temp 124000 94000
[THERMAL_ZONE_30]
algo_type user_space
sensor gpuss-1-usr
polling_delay 0
passive_delay 0
set_temp 125000 115000
clr_temp 124000 114000
[THERMAL_ZONE_31]
algo_type low_limits_floor
sensor min-temp-0-lowf
polling_delay 0
passive_delay 0
set_temp 5000
clr_temp 10000
device cx
upper_limit 00
lower_limit 00
[THERMAL_ZONE_32]
algo_type low_limits_cap
sensor min-temp-0-lowc
polling_delay 0
passive_delay 0
set_temp 5000
clr_temp 10000
device lmh-cpu-vdd0+lmh-cpu-vdd1
upper_limit 01+01
lower_limit 01+01
[THERMAL_ZONE_33]
algo_type user_space
sensor aoss-1-usr
polling_delay 0
passive_delay 0
set_temp 125000 115000
clr_temp 124000 114000
[THERMAL_ZONE_34]
algo_type user_space
sensor cwlan-usr
polling_delay 0
passive_delay 0
set_temp 125000 115000
clr_temp 124000 114000
[THERMAL_ZONE_35]
algo_type user_space
sensor video-usr
polling_delay 0
passive_delay 0
set_temp 125000 115000
clr_temp 124000 114000
[THERMAL_ZONE_36]
algo_type user_space
sensor ddr-usr
polling_delay 0
passive_delay 0
set_temp 125000 115000
clr_temp 124000 114000
[THERMAL_ZONE_37]
algo_type user_space
sensor q6-hvx-usr
polling_delay 0
passive_delay 0
set_temp 100000 115000
clr_temp 99000 114000
[THERMAL_ZONE_38]
algo_type user_space
sensor cmpss-usr
polling_delay 0
passive_delay 0
set_temp 125000 115000
clr_temp 124000 114000
[THERMAL_ZONE_39]
algo_type user_space
sensor npu-usr
polling_delay 0
passive_delay 0
set_temp 125000 115000
clr_temp 124000 114000
[THERMAL_ZONE_40]
algo_type user_space
sensor camera-usr
polling_delay 0
passive_delay 0
set_temp 125000 115000
clr_temp 124000 114000
[THERMAL_ZONE_41]
algo_type user_space
sensor mdm-vec-usr
polling_delay 0
passive_delay 0
set_temp 125000 115000
clr_temp 124000 114000
[THERMAL_ZONE_42]
algo_type user_space
sensor mdm-scl-usr
polling_delay 0
passive_delay 0
set_temp 125000 115000
clr_temp 124000 114000
[THERMAL_ZONE_43]
algo_type user_space
sensor mdm-core-0-usr
polling_delay 0
passive_delay 0
set_temp 125000 115000
clr_temp 124000 114000
[THERMAL_ZONE_44]
algo_type user_space
sensor mdm-core-1-usr
polling_delay 0
passive_delay 0
set_temp 125000 115000
clr_temp 124000 114000
[THERMAL_ZONE_45]
algo_type step_wise
sensor gpuss-max-step
polling_delay 100
passive_delay 10
set_temp 95000
clr_temp 95000
device gpu
upper_limit 03
lower_limit 00
[THERMAL_ZONE_46]
algo_type step_wise
sensor cpu-0-max-step
polling_delay 0
passive_delay 0
set_temp 120000
clr_temp 120000
[THERMAL_ZONE_47]
algo_type step_wise
sensor cpu-1-max-step
polling_delay 0
passive_delay 0
set_temp 120000
clr_temp 120000
[THERMAL_ZONE_48]
algo_type step_wise
sensor cpu-0-0-step
polling_delay 0
passive_delay 0
set_temp 110000
clr_temp 100000
device cpu-isolate0
upper_limit 01
lower_limit 01
[THERMAL_ZONE_49]
algo_type step_wise
sensor cpu-0-1-step
polling_delay 0
passive_delay 0
set_temp 110000
clr_temp 100000
device cpu-isolate1
upper_limit 01
lower_limit 01
[THERMAL_ZONE_50]
algo_type step_wise
sensor cpu-0-2-step
polling_delay 0
passive_delay 0
set_temp 110000
clr_temp 100000
device cpu-isolate2
upper_limit 01
lower_limit 01
[THERMAL_ZONE_51]
algo_type step_wise
sensor cpu-0-3-step
polling_delay 0
passive_delay 0
set_temp 110000
clr_temp 100000
device cpu-isolate3
upper_limit 01
lower_limit 01
[THERMAL_ZONE_52]
algo_type step_wise
sensor cpu-0-4-step
polling_delay 0
passive_delay 0
set_temp 110000
clr_temp 100000
device cpu-isolate4
upper_limit 01
lower_limit 01
[THERMAL_ZONE_53]
algo_type step_wise
sensor cpu-0-5-step
polling_delay 0
passive_delay 0
set_temp 110000
clr_temp 100000
device cpu-isolate5
upper_limit 01
lower_limit 01
[THERMAL_ZONE_54]
algo_type step_wise
sensor cpu-1-0-step
polling_delay 0
passive_delay 0
set_temp 110000
clr_temp 100000
device cpu-isolate6
upper_limit 01
lower_limit 01
[THERMAL_ZONE_55]
algo_type step_wise
sensor cpu-1-1-step
polling_delay 0
passive_delay 0
set_temp 110000
clr_temp 100000
device cpu-isolate7
upper_limit 01
lower_limit 01
[THERMAL_ZONE_56]
algo_type step_wise
sensor cpu-1-2-step
polling_delay 0
passive_delay 0
set_temp 110000
clr_temp 100000
device cpu-isolate6
upper_limit 01
lower_limit 01
[THERMAL_ZONE_57]
algo_type step_wise
sensor cpu-1-3-step
polling_delay 0
passive_delay 0
set_temp 110000
clr_temp 100000
device cpu-isolate7
upper_limit 01
lower_limit 01
[THERMAL_ZONE_58]
algo_type step_wise
sensor q6-hvx-step
polling_delay 0
passive_delay 0
set_temp 100000
clr_temp 95000
device gpu+npu+cdsp+modem_pa+modem_tj
upper_limit 02+05+03+03+03
lower_limit 02+05+03+03+03
[THERMAL_ZONE_59]
algo_type low_limits_floor
sensor min-temp-1-lowf
polling_delay 0
passive_delay 0
set_temp 5000
clr_temp 10000
device cx
upper_limit 00
lower_limit 00
[THERMAL_ZONE_60]
algo_type low_limits_cap
sensor min-temp-1-lowc
polling_delay 0
passive_delay 0
set_temp 5000
clr_temp 10000
device lmh-cpu-vdd0+lmh-cpu-vdd1
upper_limit 01+01
lower_limit 01+01
[THERMAL_ZONE_61]
algo_type step_wise
sensor npu-step
polling_delay 0
passive_delay 10
set_temp 95000
clr_temp 95000
device npu
upper_limit 05
lower_limit 00
[THERMAL_ZONE_62]
algo_type step_wise
sensor mdm-vec-step
polling_delay 0
passive_delay 0
set_temp 95000 105000 115000
clr_temp 80000 90000 100000
device modem_tj modem_tj modem_tj
upper_limit 01 02 03
lower_limit 01 02 03
[THERMAL_ZONE_63]
algo_type step_wise
sensor mdm-scl-step
polling_delay 0
passive_delay 0
set_temp 95000 105000 115000
clr_temp 80000 90000 100000
device modem_tj modem_tj modem_tj
upper_limit 01 02 03
lower_limit 01 02 03
[THERMAL_ZONE_64]
algo_type step_wise
sensor mdm-core-0-step
polling_delay 0
passive_delay 0
set_temp 95000 105000 115000
clr_temp 80000 90000 100000
device modem_tj modem_tj modem_tj
upper_limit 01 02 03
lower_limit 01 02 03
[THERMAL_ZONE_65]
algo_type step_wise
sensor mdm-core-1-step
polling_delay 0
passive_delay 0
set_temp 95000 105000 115000
clr_temp 80000 90000 100000
device modem_tj modem_tj modem_tj
upper_limit 01 02 03
lower_limit 01 02 03
[THERMAL_ZONE_66]
algo_type step_wise
sensor pm8150_tz
polling_delay 0
passive_delay 100
set_temp 95000 115000 145000
clr_temp 95000 115000 145000
device cpu0+cpu6+cpu7 cpu-isolate1+cpu-isolate2+cpu-isolate5+cpu-isolate3+cpu-isolate6+cpu-isolate7+cpu-isolate4
upper_limit 08+07+07 01+01+01+01+01+01+01
lower_limit 08+07+07 01+01+01+01+01+01+01
[THERMAL_ZONE_67]
algo_type step_wise
sensor pm7250b-tz
polling_delay 0
passive_delay 100
set_temp 95000 115000 145000
clr_temp 95000 115000 145000
device battery battery
upper_limit 09 10
lower_limit 09 10
[THERMAL_ZONE_68]
algo_type step_wise
sensor pm7250b-ibat-lvl0
polling_delay 0
passive_delay 0
set_temp 5500
clr_temp 5300
[THERMAL_ZONE_69]
algo_type step_wise
sensor pm7250b-ibat-lvl1
polling_delay 0
passive_delay 0
set_temp 6000
clr_temp 5800
[THERMAL_ZONE_70]
algo_type low_limits_cap
sensor pm7250b-vbat-lvl0
polling_delay 0
passive_delay 0
set_temp 2989
clr_temp 3189
[THERMAL_ZONE_71]
algo_type low_limits_cap
sensor pm7250b-vbat-lvl1
polling_delay 0
passive_delay 0
set_temp 2800
clr_temp 3000
[THERMAL_ZONE_72]
algo_type low_limits_cap
sensor pm7250b-vbat-lvl2
polling_delay 0
passive_delay 0
set_temp 2600
clr_temp 2800
[THERMAL_ZONE_73]
algo_type step_wise
sensor pm7250b-bcl-lvl0
polling_delay 0
passive_delay 100
set_temp 1
clr_temp 0
device cpu-isolate6+cpu-isolate7
upper_limit 01+01
lower_limit 01+01
[THERMAL_ZONE_74]
algo_type step_wise
sensor pm7250b-bcl-lvl1
polling_delay 0
passive_delay 100
set_temp 1
clr_temp 0
device cpu-isolate6+cpu-isolate7
upper_limit 01+01
lower_limit 01+01
[THERMAL_ZONE_75]
algo_type step_wise
sensor pm7250b-bcl-lvl2
polling_delay 0
passive_delay 100
set_temp 1
clr_temp 0
device cpu-isolate6+cpu-isolate7
upper_limit 01+01
lower_limit 01+01
[THERMAL_ZONE_76]
algo_type low_limits_cap
sensor soc
polling_delay 0
passive_delay 5000
set_temp 5 15
clr_temp 5 15
device cpu-isolate6+cpu-isolate7
upper_limit 01+01
lower_limit 01+01
[THERMAL_ZONE_77]
algo_type step_wise
sensor pm8150l_tz
polling_delay 0
passive_delay 100
set_temp 95000 115000 145000
clr_temp 95000 115000 145000
[THERMAL_ZONE_78]
algo_type low_limits_cap
sensor pm8150l-vph-lvl0
polling_delay 0
passive_delay 0
set_temp 2989
clr_temp 3189
[THERMAL_ZONE_79]
algo_type low_limits_cap
sensor pm8150l-vph-lvl1
polling_delay 0
passive_delay 0
set_temp 2750
clr_temp 2950
[THERMAL_ZONE_80]
algo_type low_limits_cap
sensor pm8150l-vph-lvl2
polling_delay 0
passive_delay 0
set_temp 2500
clr_temp 2700
[THERMAL_ZONE_81]
algo_type step_wise
sensor pm8150l-bcl-lvl0
polling_delay 0
passive_delay 100
set_temp 1
clr_temp 0
device cpu-isolate6+cpu-isolate7
upper_limit 01+01
lower_limit 01+01
[THERMAL_ZONE_82]
algo_type step_wise
sensor pm8150l-bcl-lvl1
polling_delay 0
passive_delay 100
set_temp 1
clr_temp 0
device cpu-isolate6+cpu-isolate7
upper_limit 01+01
lower_limit 01+01
[THERMAL_ZONE_83]
algo_type step_wise
sensor pm8150l-bcl-lvl2
polling_delay 0
passive_delay 100
set_temp 1
clr_temp 0
device cpu-isolate6+cpu-isolate7
upper_limit 01+01
lower_limit 01+01
[THERMAL_ZONE_84]
algo_type step_wise
sensor skin-therm
polling_delay 0
passive_delay 0
set_temp 46000 48000 50000 52000
clr_temp 44000 46000 48000 50000
device cpu6+cpu7 cpu6+cpu7+gpu cpu0+cpu-isolate5+cpu-isolate6+cpu-isolate7+cpu-isolate4 cpu0
upper_limit 03+04 04+05+01 05+01+01+01+01 06
lower_limit 03+04 04+05+01 05+01+01+01+01 06
[THERMAL_ZONE_85]
algo_type user_space
sensor charger-therm-usr
polling_delay 0
passive_delay 0
set_temp 125000
clr_temp 124000
[THERMAL_ZONE_86]
algo_type user_space
sensor usb-tem2-therm-usr
polling_delay 0
passive_delay 0
set_temp 125000
clr_temp 124000
[THERMAL_ZONE_87]
algo_type user_space
sensor usb-tem1-therm-usr
polling_delay 0
passive_delay 0
set_temp 125000
clr_temp 124000
[THERMAL_ZONE_88]
algo_type user_space
sensor mmw-pa2-usr
polling_delay 0
passive_delay 0
set_temp 125000
clr_temp 124000
[THERMAL_ZONE_89]
algo_type user_space
sensor camera-therm-usr
polling_delay 0
passive_delay 0
set_temp 125000
clr_temp 124000
[THERMAL_ZONE_90]
algo_type user_space
sensor xo-therm-usr
polling_delay 0
passive_delay 0
set_temp 125000
clr_temp 124000
[THERMAL_ZONE_91]
algo_type user_space
sensor pa-therm1-usr
polling_delay 0
passive_delay 0
set_temp 125000
clr_temp 124000
[THERMAL_ZONE_92]
algo_type user_space
sensor mmw-pa3-usr
polling_delay 0
passive_delay 0
set_temp 125000
clr_temp 124000
[THERMAL_ZONE_93]
algo_type user_space
sensor pa-therm2-usr
polling_delay 0
passive_delay 0
set_temp 125000
clr_temp 124000
[THERMAL_ZONE_94]
algo_type step_wise
sensor msm-therm
polling_delay 0
passive_delay 0
set_temp 55000 57000
clr_temp 53000 55000
device cpu6+cpu7 cpu0+gpu
upper_limit 02+01 04+02
lower_limit 02+01 04+02
[THERMAL_ZONE_95]
algo_type user_space
sensor mmw-pa1-usr
polling_delay 0
passive_delay 0
set_temp 125000
clr_temp 124000
[THERMAL_ZONE_96]
algo_type user_space
sensor mmw-pa4-usr
polling_delay 0
passive_delay 0
set_temp 125000
clr_temp 124000
[Error_THERMAL_ZONE_97]
[Error_THERMAL_ZONE_98]
[Error_THERMAL_ZONE_99]

501
device.mk Normal file
View File

@@ -0,0 +1,501 @@
#
# Copyright (C) 2018 The LineageOS Project
#
# SPDX-License-Identifier: Apache-2.0
#
# A/B
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=ext4 \
POSTINSTALL_OPTIONAL_vendor=true
PRODUCT_PACKAGES += \
checkpoint_gc \
otapreopt_script
# ANT+
PRODUCT_PACKAGES += \
AntHalService-Soong \
com.dsi.ant@1.0.vendor
# Alert slider
PRODUCT_PACKAGES += \
KeyHandler \
tri-state-key-calibrate
# APEX
$(call inherit-product, $(SRC_TARGET_DIR)/product/updatable_apex.mk)
# Atrace
PRODUCT_PACKAGES += \
android.hardware.atrace@1.0-service
# Audio
PRODUCT_PACKAGES += \
android.hardware.audio@6.0-impl \
android.hardware.audio.effect@6.0-impl \
android.hardware.audio.service \
android.hardware.bluetooth.audio@2.0-impl \
android.hardware.soundtrigger@2.3-impl \
audio.bluetooth.default \
audio.r_submix.default \
audio.usb.default \
liba2dpoffload \
libbatterylistener \
libcomprcapture \
libexthwplugin \
libhdmiedid \
libhfp \
libqcompostprocbundle \
libqcomvisualizer \
libqcomvoiceprocessing \
libsndmonitor \
libspkrprot \
libvolumelistener
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/audio/audio_effects.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_effects.xml \
$(LOCAL_PATH)/audio/audio_platform_info.xml:$(TARGET_COPY_OUT_ODM)/etc/audio_platform_info.xml \
$(LOCAL_PATH)/audio/audio_io_policy.conf:$(TARGET_COPY_OUT_VENDOR)/etc/audio_io_policy.conf \
$(LOCAL_PATH)/audio/audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration.xml \
$(LOCAL_PATH)/audio/audio_policy_configuration_a2dp_offload_disabled.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration_a2dp_offload_disabled.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_ODM)/etc/mixer_paths.xml \
$(LOCAL_PATH)/audio/sound_trigger_mixer_paths.xml:$(TARGET_COPY_OUT_ODM)/etc/sound_trigger_mixer_paths.xml \
$(LOCAL_PATH)/audio/sound_trigger_platform_info.xml:$(TARGET_COPY_OUT_ODM)/etc/sound_trigger_platform_info.xml
PRODUCT_COPY_FILES += \
frameworks/av/services/audiopolicy/config/a2dp_in_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/a2dp_in_audio_policy_configuration.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/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
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.software.midi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.midi.xml
# Authsecret
PRODUCT_PACKAGES += \
android.hardware.authsecret@1.0.vendor
# Boot animation
TARGET_SCREEN_HEIGHT := 2400
TARGET_SCREEN_WIDTH := 1080
# Bluetooth
PRODUCT_PACKAGES += \
android.hardware.bluetooth@1.0.vendor \
vendor.qti.hardware.bluetooth_audio@2.1.vendor \
vendor.qti.hardware.btconfigstore@1.0.vendor \
vendor.qti.hardware.btconfigstore@2.0.vendor
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
# Blur
TARGET_ENABLE_BLUR := true
# Boot control
PRODUCT_PACKAGES += \
android.hardware.boot@1.1-impl-qti \
android.hardware.boot@1.1-impl-qti.recovery \
android.hardware.boot@1.1-service
# 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.postproc@1.0.vendor
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
# Call recording for Google Dialer
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/com.google.android.apps.dialer.call_recording_audio.features.xml:$(TARGET_COPY_OUT_PRODUCT)/etc/permissions/com.google.android.apps.dialer.call_recording_audio.features.xml
# Configstore
PRODUCT_PACKAGES += \
disable_configstore
# Dalvik
$(call inherit-product, frameworks/native/build/phone-xhdpi-6144-dalvik-heap.mk)
# Device ID attestation
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.software.device_id_attestation.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.device_id_attestation.xml
# Display
PRODUCT_PACKAGES += \
android.hardware.graphics.mapper@3.0-impl-qti-display \
android.hardware.graphics.mapper@4.0-impl-qti-display \
android.hardware.memtrack@1.0-impl \
android.hardware.memtrack@1.0-service \
gralloc.lito \
libdisplayconfig.qti \
libdisplayconfig.system.qti \
libqdMetaData \
libqdMetaData.system \
libsdmcore \
libsdmutils \
libtinyxml \
libvulkan \
memtrack.lito \
vendor.display.config@1.9.vendor \
vendor.display.config@2.0 \
vendor.display.config@2.0.vendor \
vendor.qti.hardware.display.allocator-service \
vendor.qti.hardware.display.composer-service \
vendor.qti.hardware.display.mapper@1.1.vendor \
vendor.qti.hardware.display.mapper@2.0.vendor \
vendor.qti.hardware.display.mapper@3.0.vendor \
vendor.qti.hardware.display.mapper@4.0.vendor
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
# DRM
PRODUCT_PACKAGES += \
android.hardware.drm@1.3.vendor \
android.hardware.drm-service.clearkey
# fastbootd
PRODUCT_PACKAGES += \
android.hardware.fastboot@1.1-impl.custom \
fastbootd
# Fingerprint
PRODUCT_PACKAGES += \
android.hardware.biometrics.fingerprint@2.3-service.oplus \
libshims_fingerprint.oplus
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.fingerprint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.fingerprint.xml
# Freeform Multiwindow
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.software.freeform_window_management.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.freeform_window_management.xml
# Gatekeeper
PRODUCT_PACKAGES += \
android.hardware.gatekeeper@1.0.vendor
# GPS
PRODUCT_PACKAGES += \
android.hardware.gnss.measurement_corrections@1.1.vendor \
android.hardware.gnss.visibility_control@1.0.vendor \
android.hardware.gnss@2.1.vendor
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/gps.conf:$(TARGET_COPY_OUT_ODM)/etc/gps.conf
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.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
# Health
PRODUCT_PACKAGES += \
android.hardware.health@2.1-impl \
android.hardware.health@2.1-service
# HIDL
PRODUCT_PACKAGES += \
libhidltransport.vendor \
libhwbinder.vendor
# Hotword enrollment
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/privapp-permissions-hotword.xml:$(TARGET_COPY_OUT_PRODUCT)/etc/permissions/privapp-permissions-hotword.xml
# IPACM
PRODUCT_PACKAGES += \
ipacm \
IPACM_cfg.xml
# Init
PRODUCT_PACKAGES += \
fstab.qcom \
fstab.qcom.ramdisk \
init.class_main.sh \
init.oplus.hw.rc \
init.oplus.hw.rc.recovery \
init.oplus.rc \
init.qcom.early_boot.sh \
init.qcom.post_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
# Keymaster
PRODUCT_PACKAGES += \
android.hardware.keymaster@4.1.vendor
# LiveDisplay
PRODUCT_PACKAGES += \
vendor.lineage.livedisplay@2.1-service.oplus
# Media
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_c2.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_c2.xml \
frameworks/av/media/libstagefright/data/media_codecs_google_c2_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_c2_audio.xml \
frameworks/av/media/libstagefright/data/media_codecs_google_c2_video.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_c2_video.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 \
frameworks/av/media/libstagefright/data/media_codecs_google_video_le.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_video_le.xml
PRODUCT_PACKAGES += \
libavservices_minijail \
libavservices_minijail.vendor
# Net
PRODUCT_PACKAGES += \
android.system.net.netd@1.1.vendor
# Neural networks
PRODUCT_PACKAGES += \
android.hardware.neuralnetworks@1.3.vendor
# NFC
PRODUCT_PACKAGES += \
android.hardware.nfc@1.2-service \
com.android.nfc_extras \
NfcNci \
Tag
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.nfc.ese.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.ese.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.uicc.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.uicc.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.se.omapi.ese.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.se.omapi.ese.xml \
frameworks/native/data/etc/android.hardware.se.omapi.uicc.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.se.omapi.uicc.xml \
frameworks/native/data/etc/com.android.nfc_extras.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/com.android.nfc_extras.xml
# OMX
PRODUCT_PACKAGES += \
init.qti.media.sh \
libOmxAacEnc \
libOmxAmrEnc \
libOmxCore \
libOmxEvrcEnc \
libOmxG711Enc \
libOmxQcelp13Enc \
libOmxVdec \
libOmxVenc \
libstagefrighthw
# Overlays
$(call inherit-product, hardware/oplus/overlay/qssi/qssi.mk)
DEVICE_PACKAGE_OVERLAYS += \
$(LOCAL_PATH)/overlay-lineage
PRODUCT_ENFORCE_RRO_TARGETS := *
PRODUCT_PACKAGES += \
CarrierConfigResCommon \
FrameworksResTarget \
OPlusFrameworksResCommon \
OPlusFrameworksResTarget \
OPlusSettingsProviderResTarget \
OPlusSettingsResCommon \
OPlusSystemUIResCommon \
OPlusSystemUIResTarget \
WifiResTarget
# Override OTA assert
TARGET_OTA_ASSERT_DEVICE := avicii,OnePlusNord,Nord
# Partitions
PRODUCT_USE_DYNAMIC_PARTITIONS := true
# Power
PRODUCT_PACKAGES += \
android.hardware.power-service-qti \
android.hardware.power@1.2.vendor \
vendor.qti.hardware.perf@2.2.vendor
# QMI
PRODUCT_PACKAGES += \
libjson \
libqti_vndfwk_detect.vendor \
libvndfwk_detect_jni.qti.vendor
# RIL
PRODUCT_PACKAGES += \
android.hardware.radio@1.5.vendor \
android.hardware.radio.config@1.2.vendor \
android.hardware.radio.deprecated@1.0.vendor \
android.hardware.secure_element@1.2.vendor \
libprotobuf-cpp-full \
librmnetctl
# Seccomp policy
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/seccomp/mediacodec.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/mediacodec.policy
# Sensors
PRODUCT_PACKAGES += \
android.hardware.sensors@2.0-service.multihal \
libsensorndkbridge \
sensors.oplus
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/hals.conf:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/hals.conf
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_ODM)/etc/permissions/sku_11/android.hardware.sensor.barometer.xml \
frameworks/native/data/etc/android.hardware.sensor.barometer.xml:$(TARGET_COPY_OUT_ODM)/etc/permissions/sku_9/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.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
PRODUCT_SHIPPING_API_LEVEL := 29
# Soong namespaces
PRODUCT_SOONG_NAMESPACES += \
$(LOCAL_PATH) \
hardware/oplus
# Quick Tap
TARGET_SUPPORTS_QUICK_TAP := true
# 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 += \
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
# Thermal
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/thermal-engine.conf:$(TARGET_COPY_OUT_VENDOR)/etc/thermal-engine.conf
# Touch
PRODUCT_PACKAGES += \
vendor.lineage.touch@1.0-service.oplus
# Update engine
PRODUCT_PACKAGES += \
update_engine \
update_engine_sideload \
update_verifier
PRODUCT_PACKAGES_DEBUG += \
update_engine_client
# USB
PRODUCT_PACKAGES += \
android.hardware.usb@1.3-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
TARGET_HAS_UDFPS := true
# 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.oplus
PRODUCT_COPY_FILES += \
vendor/qcom/opensource/vibrator/excluded-input-devices.xml:$(TARGET_COPY_OUT_VENDOR)/etc/excluded-input-devices.xml
# VNDK
PRODUCT_USE_PRODUCT_VNDK_OVERRIDE := true
# WiFi
PRODUCT_PACKAGES += \
android.hardware.wifi@1.0-service \
hostapd \
libwpa_client \
libwifi-hal-ctrl \
libwifi-hal-qcom \
vendor.qti.hardware.wifi.hostapd@1.2.vendor \
vendor.qti.hardware.wifi.supplicant@2.1.vendor \
wpa_supplicant \
wpa_supplicant.conf
PRODUCT_COPY_FILES += \
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.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 Display
PRODUCT_PACKAGES += \
libnl \
libwfdaac_vendor
PRODUCT_BOOT_JARS += \
WfdCommon
# Inherit from the proprietary files makefile.
$(call inherit-product, vendor/oneplus/avicii/avicii-vendor.mk)

503
device.mk.save Normal file
View File

@@ -0,0 +1,503 @@
#
# Copyright (C) 2018 The LineageOS Project
#
# SPDX-License-Identifier: Apache-2.0
#
# A/B
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=ext4 \
POSTINSTALL_OPTIONAL_vendor=true
PRODUCT_PACKAGES += \
checkpoint_gc \
otapreopt_script
# ANT+
PRODUCT_PACKAGES += \
AntHalService-Soong \
com.dsi.ant@1.0.vendor
# Alert slider
PRODUCT_PACKAGES += \
KeyHandler \
tri-state-key-calibrate
# APEX
$(call inherit-product, $(SRC_TARGET_DIR)/product/updatable_apex.mk)
# Atrace
PRODUCT_PACKAGES += \
android.hardware.atrace@1.0-service
# Audio
PRODUCT_PACKAGES += \
android.hardware.audio@6.0-impl \
android.hardware.audio.effect@6.0-impl \
android.hardware.audio.service \
android.hardware.bluetooth.audio@2.0-impl \
android.hardware.soundtrigger@2.3-impl \
audio.bluetooth.default \
audio.r_submix.default \
audio.usb.default \
liba2dpoffload \
libbatterylistener \
libcomprcapture \
libexthwplugin \
libhdmiedid \
libhfp \
libqcompostprocbundle \
libqcomvisualizer \
libqcomvoiceprocessing \
libsndmonitor \
libspkrprot \
libvolumelistener
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/audio/audio_effects.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_effects.xml \
$(LOCAL_PATH)/audio/audio_platform_info.xml:$(TARGET_COPY_OUT_ODM)/etc/audio_platform_info.xml \
$(LOCAL_PATH)/audio/audio_io_policy.conf:$(TARGET_COPY_OUT_VENDOR)/etc/audio_io_policy.conf \
$(LOCAL_PATH)/audio/audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration.xml \
$(LOCAL_PATH)/audio/audio_policy_configuration_a2dp_offload_disabled.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration_a2dp_offload_disabled.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_ODM)/etc/mixer_paths.xml \
$(LOCAL_PATH)/audio/sound_trigger_mixer_paths.xml:$(TARGET_COPY_OUT_ODM)/etc/sound_trigger_mixer_paths.xml \
$(LOCAL_PATH)/audio/sound_trigger_platform_info.xml:$(TARGET_COPY_OUT_ODM)/etc/sound_trigger_platform_info.xml
PRODUCT_COPY_FILES += \
frameworks/av/services/audiopolicy/config/a2dp_in_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/a2dp_in_audio_policy_configuration.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/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
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.software.midi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.midi.xml
# Authsecret
PRODUCT_PACKAGES += \
android.hardware.authsecret@1.0.vendor
# Boot animation
TARGET_SCREEN_HEIGHT := 2400
TARGET_SCREEN_WIDTH := 1080
# Bluetooth
PRODUCT_PACKAGES += \
android.hardware.bluetooth@1.0.vendor \
vendor.qti.hardware.bluetooth_audio@2.1.vendor \
vendor.qti.hardware.btconfigstore@1.0.vendor \
vendor.qti.hardware.btconfigstore@2.0.vendor
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
# Blur
TARGET_ENABLE_BLUR := true
# Boot control
PRODUCT_PACKAGES += \
android.hardware.boot@1.1-impl-qti \
android.hardware.boot@1.1-impl-qti.recovery \
android.hardware.boot@1.1-service
# 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.postproc@1.0.vendor
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
# # Call recording for Google Dialer
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/com.google.android.apps.dialer.call_recording_audio.features.xml:$(TARGET_COPY_OUT_PRODUCT)/etc/permissions/com.google.android.apps.dialer.call_recording_audio.features.xml
# Configstore
PRODUCT_PACKAGES += \
disable_configstore
# Dalvik
$(call inherit-product, frameworks/native/build/phone-xhdpi-6144-dalvik-heap.mk)
# Device ID attestation
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.software.device_id_attestation.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.device_id_attestation.xml
# Display
PRODUCT_PACKAGES += \
android.hardware.graphics.mapper@3.0-impl-qti-display \
android.hardware.graphics.mapper@4.0-impl-qti-display \
android.hardware.memtrack@1.0-impl \
android.hardware.memtrack@1.0-service \
gralloc.lito \
libdisplayconfig.qti \
libdisplayconfig.system.qti \
libqdMetaData \
libqdMetaData.system \
libsdmcore \
libsdmutils \
libtinyxml \
libvulkan \
memtrack.lito \
vendor.display.config@1.9.vendor \
vendor.display.config@2.0 \
vendor.display.config@2.0.vendor \
vendor.qti.hardware.display.allocator-service \
vendor.qti.hardware.display.composer-service \
vendor.qti.hardware.display.mapper@1.1.vendor \
vendor.qti.hardware.display.mapper@2.0.vendor \
vendor.qti.hardware.display.mapper@3.0.vendor \
vendor.qti.hardware.display.mapper@4.0.vendor
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
# DRM
PRODUCT_PACKAGES += \
android.hardware.drm@1.3.vendor \
android.hardware.drm-service.clearkey
# fastbootd
PRODUCT_PACKAGES += \
android.hardware.fastboot@1.1-impl.custom \
fastbootd
# Fingerprint
PRODUCT_PACKAGES += \
android.hardware.biometrics.fingerprint@2.3-service.oplus \
libshims_fingerprint.oplus
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.fingerprint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.fingerprint.xml
# Freeform Multiwindow
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.software.freeform_window_management.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.freeform_window_management.xml
# Gatekeeper
PRODUCT_PACKAGES += \
android.hardware.gatekeeper@1.0.vendor
# GPS
PRODUCT_PACKAGES += \
android.hardware.gnss.measurement_corrections@1.1.vendor \
android.hardware.gnss.visibility_control@1.0.vendor \
android.hardware.gnss@2.1.vendor
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/gps.conf:$(TARGET_COPY_OUT_ODM)/etc/gps.conf
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.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
# Health
PRODUCT_PACKAGES += \
android.hardware.health@2.1-impl \
android.hardware.health@2.1-service
# HIDL
PRODUCT_PACKAGES += \
libhidltransport.vendor \
libhwbinder.vendor
# Hotword enrollment
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/privapp-permissions-hotword.xml:$(TARGET_COPY_OUT_PRODUCT)/etc/permissions/privapp-permissions-hotword.xml
# IPACM
PRODUCT_PACKAGES += \
ipacm \
IPACM_cfg.xml
# Init
PRODUCT_PACKAGES += \
fstab.qcom \
fstab.qcom.ramdisk \
init.class_main.sh \
init.oplus.hw.rc \
init.oplus.hw.rc.recovery \
init.oplus.rc \
init.qcom.early_boot.sh \
init.qcom.post_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
# Keymaster
PRODUCT_PACKAGES += \
android.hardware.keymaster@4.1.vendor
# LiveDisplay
PRODUCT_PACKAGES += \
vendor.lineage.livedisplay@2.1-service.oplus
# Media
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_c2.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_c2.xml \
frameworks/av/media/libstagefright/data/media_codecs_google_c2_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_c2_audio.xml \
frameworks/av/media/libstagefright/data/media_codecs_google_c2_video.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_c2_video.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 \
frameworks/av/media/libstagefright/data/media_codecs_google_video_le.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_video_le.xml
PRODUCT_PACKAGES += \
libavservices_minijail \
libavservices_minijail.vendor
# Net
PRODUCT_PACKAGES += \
android.system.net.netd@1.1.vendor
# Neural networks
PRODUCT_PACKAGES += \
android.hardware.neuralnetworks@1.3.vendor
# NFC
PRODUCT_PACKAGES += \
android.hardware.nfc@1.2-service \
com.android.nfc_extras \
NfcNci \
Tag
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.nfc.ese.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.ese.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.uicc.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.uicc.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.se.omapi.ese.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.se.omapi.ese.xml \
frameworks/native/data/etc/android.hardware.se.omapi.uicc.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.se.omapi.uicc.xml \
frameworks/native/data/etc/com.android.nfc_extras.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/com.android.nfc_extras.xml
# OMX
PRODUCT_PACKAGES += \
init.qti.media.sh \
libOmxAacEnc \
libOmxAmrEnc \
libOmxCore \
libOmxEvrcEnc \
libOmxG711Enc \
libOmxQcelp13Enc \
libOmxVdec \
libOmxVenc \
libstagefrighthw
# Overlays
$(call inherit-product, hardware/oplus/overlay/qssi/qssi.mk)
DEVICE_PACKAGE_OVERLAYS += \
$(LOCAL_PATH)/overlay-lineage
PRODUCT_ENFORCE_RRO_TARGETS := *
PRODUCT_PACKAGES += \
CarrierConfigResCommon \
FrameworksResTarget \
OPlusFrameworksResCommon \
OPlusFrameworksResTarget \
OPlusSettingsProviderResTarget \
OPlusSettingsResCommon \
OPlusSystemUIResCommon \
OPlusSystemUIResTarget \
WifiResTarget
# Override OTA assert
TARGET_OTA_ASSERT_DEVICE := avicii,OnePlusNord,Nord
# Partitions
PRODUCT_USE_DYNAMIC_PARTITIONS := true
# Power
PRODUCT_PACKAGES += \
android.hardware.power-service-qti \
android.hardware.power@1.2.vendor \
vendor.qti.hardware.perf@2.2.vendor
# QMI
PRODUCT_PACKAGES += \
libjson \
libqti_vndfwk_detect.vendor \
libvndfwk_detect_jni.qti.vendor
# RIL
PRODUCT_PACKAGES += \
android.hardware.radio@1.5.vendor \
android.hardware.radio.config@1.2.vendor \
android.hardware.radio.deprecated@1.0.vendor \
android.hardware.secure_element@1.2.vendor \
libprotobuf-cpp-full \
librmnetctl
# Seccomp policy
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/seccomp/mediacodec.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/mediacodec.policy
# Call recording for Google Dialer
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/com.google.android.apps.dialer.call_recording_audio.features.xml:$(TARGET_COPY_OUT_PRODUCT)/etc/permissions/com.google.android.apps.dialer.call_recording_audio.features.xml
# Sensors
PRODUCT_PACKAGES += \
android.hardware.sensors@2.0-service.multihal \
libsensorndkbridge \
sensors.oplus
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/hals.conf:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/hals.conf
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_ODM)/etc/permissions/sku_11/android.hardware.sensor.barometer.xml \
frameworks/native/data/etc/android.hardware.sensor.barometer.xml:$(TARGET_COPY_OUT_ODM)/etc/permissions/sku_9/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.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
PRODUCT_SHIPPING_API_LEVEL := 29
# Soong namespaces
PRODUCT_SOONG_NAMESPACES += \
$(LOCAL_PATH) \
hardware/oplus
# Quick Tap
TARGET_SUPPORTS_QUICK_TAP := true
# 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 += \
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
# Thermal
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/thermal-engine.conf:$(TARGET_COPY_OUT_VENDOR)/etc/thermal-engine.conf
# Touch
PRODUCT_PACKAGES += \
vendor.lineage.touch@1.0-service.oplus
# Update engine
PRODUCT_PACKAGES += \
update_engine \
update_engine_sideload \
update_verifier
PRODUCT_PACKAGES_DEBUG += \
update_engine_client
# USB
PRODUCT_PACKAGES += \
android.hardware.usb@1.3-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
TARGET_HAS_UDFPS := true
# 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.oplus
PRODUCT_COPY_FILES += \
vendor/qcom/opensource/vibrator/excluded-input-devices.xml:$(TARGET_COPY_OUT_VENDOR)/etc/excluded-input-devices.xml
# VNDK
PRODUCT_USE_PRODUCT_VNDK_OVERRIDE := true
# WiFi
PRODUCT_PACKAGES += \
android.hardware.wifi@1.0-service \
hostapd \
libwpa_client \
libwifi-hal-ctrl \
libwifi-hal-qcom \
vendor.qti.hardware.wifi.hostapd@1.2.vendor \
vendor.qti.hardware.wifi.supplicant@2.1.vendor \
wpa_supplicant \
wpa_supplicant.conf
PRODUCT_COPY_FILES += \
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.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 Display
PRODUCT_PACKAGES += \
libnl \
libwfdaac_vendor
PRODUCT_BOOT_JARS += \
WfdCommon
# Inherit from the proprietary files makefile.
$(call inherit-product, vendor/oneplus/avicii/avicii-vendor.mk)

457
device_framework_matrix.xml Normal file
View File

@@ -0,0 +1,457 @@
<compatibility-matrix version="4.0" type="framework">
<hal format="hidl" optional="true">
<name>android.hardware.biometrics.fingerprint</name>
<version>2.3</version>
<interface>
<name>IBiometricsFingerprint</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.dolby_v3_6.hardware.dms360</name>
<version>2.0</version>
<interface>
<name>IDms</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.nxp.eventprocessor</name>
<version>1.0</version>
<interface>
<name>INxpEseEvtProcessor</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.nxp.nxpnfc</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>INxpNfc</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.nxp.uwb</name>
<version>1.0</version>
<interface>
<name>IUwb</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.nxpnq330.nxpese</name>
<version>1.0</version>
<interface>
<name>INxpEse</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.oneplus.faceunlock.hal</name>
<version>1.0</version>
<interface>
<name>IFaceUnlockNativeService</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.oneplus.faceunlock.hal</name>
<version>2.0</version>
<interface>
<name>IFaceUnlockNativeService</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.oplus.hardware.appradio</name>
<version>1.0</version>
<interface>
<name>IOplusAppRadio</name>
<instance>oplus_app_slot1</instance>
<instance>oplus_app_slot2</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.oplus.hardware.binderstats</name>
<version>1.0</version>
<interface>
<name>IBinderStats</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.oplus.hardware.biometrics.fingerprint</name>
<version>2.1</version>
<interface>
<name>IBiometricsFingerprint</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.oplus.hardware.biometrics.fingerprintpay</name>
<version>1.0</version>
<interface>
<name>IFingerprintPay</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.oplus.hardware.bluetooth_audio_extend</name>
<version>2.1</version>
<interface>
<name>IBluetoothAudioProvidersFactory</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.oplus.hardware.cameraMDM</name>
<version>1.0</version>
<interface>
<name>IOPlusCameraMDM</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.oplus.hardware.cammidasservice</name>
<version>1.0</version>
<interface>
<name>IMIDASService</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.oplus.hardware.charger</name>
<version>1.0</version>
<interface>
<name>ICharger</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.oplus.hardware.cryptoeng</name>
<version>1.0</version>
<interface>
<name>ICryptoeng</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.oplus.hardware.displaypanelfeature</name>
<version>1.0</version>
<interface>
<name>IDisplayPanelFeature</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.oplus.hardware.eid</name>
<version>1.0</version>
<interface>
<name>IEidDevice</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.oplus.hardware.engcamera</name>
<version>1.0</version>
<interface>
<name>IEngCamera</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.oplus.hardware.engineer</name>
<version>1.0</version>
<interface>
<name>IEngineer</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.oplus.hardware.esim</name>
<version>1.0</version>
<interface>
<name>IOplusEsim</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.oplus.hardware.extcamera</name>
<version>1.0</version>
<interface>
<name>IExtCamera</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.oplus.hardware.felica</name>
<version>1.0</version>
<interface>
<name>IFelicaDevice</name>
<instance>oplusStor1</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.oplus.hardware.fido.fidoca</name>
<version>1.0</version>
<interface>
<name>IFidoDaemon</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.oplus.hardware.gameopt</name>
<version>1.0</version>
<interface>
<name>IGameOptHalService</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.oplus.hardware.handlefactory</name>
<version>1.0</version>
<interface>
<name>IHandleFactory</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.oplus.hardware.ims</name>
<version>1.0</version>
<interface>
<name>IOplusImsRadio</name>
<instance>oplusimsradio0</instance>
<instance>oplusimsradio1</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.oplus.hardware.lmvibrator</name>
<version>1.0</version>
<interface>
<name>ILinearMotorVibrator</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.oplus.hardware.midasdev</name>
<version>1.0</version>
<interface>
<name>IMidasDev</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.oplus.hardware.misc</name>
<version>1.0</version>
<interface>
<name>IOplusMisc</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.oplus.hardware.mmdisplayfeature</name>
<version>1.0</version>
<interface>
<name>IMMDisplayFeature</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.oplus.hardware.nfc</name>
<version>1.0</version>
<interface>
<name>IOplusNfc</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.oplus.hardware.oplusSensor</name>
<version>1.0</version>
<interface>
<name>ISensorFeature</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.oplus.hardware.orms.ormsHalService</name>
<version>1.0</version>
<interface>
<name>IOrmsHalService</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.oplus.hardware.performance</name>
<version>1.0</version>
<interface>
<name>IPerformance</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.oplus.hardware.power.powermonitor</name>
<version>1.0</version>
<interface>
<name>IPowerMonitor</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.oplus.hardware.radio</name>
<version>1.0-1</version>
<interface>
<name>IOplusRadio</name>
<instance>oplus_slot1</instance>
<instance>oplus_slot2</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.oplus.hardware.rpmh</name>
<version>2.0</version>
<interface>
<name>IRpmh</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.oplus.hardware.stability.oplus_project</name>
<version>1.0</version>
<interface>
<name>IOplusProject</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.oplus.hardware.stability.oplus_project</name>
<version>1.0</version>
<interface>
<name>IOplusProject</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.oplus.hardware.subsys</name>
<version>1.0</version>
<interface>
<name>ISubsys</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.oplus.hardware.subsys_radio</name>
<version>1.0</version>
<interface>
<name>ISubsysRadio</name>
<instance>slot1</instance>
<instance>slot2</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.oplus.hardware.thermalmntcfg</name>
<version>1.0</version>
<interface>
<name>IThermalMntCfg</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.oplus.hardware.touch</name>
<version>1.0</version>
<interface>
<name>IOplusTouch</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.oplus.hardware.transfer</name>
<version>1.0</version>
<interface>
<name>ITransfer</name>
<instance>ATMWiFiHidlServer</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.oplus.hardware.transmessage</name>
<version>1.0</version>
<interface>
<name>ITransmessge</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.oplus.hardware.ufsplus</name>
<version>1.0</version>
<interface>
<name>IUfsplus</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.oplus.hardware.wifi</name>
<version>1.1</version>
<interface>
<name>IOplusWifiService</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.oplus.hardware.wifi.hostapd</name>
<version>1.0</version>
<interface>
<name>IOplusHostapd</name>
<instance>default</instance>
<instance>wigighostapd</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.oplus.hardware.wifi.hostapd</name>
<version>1.0</version>
<interface>
<name>IOplusHostapd</name>
<instance>default</instance>
<instance>wigighostapd</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.oplus.hardware.wifi.supplicant</name>
<version>2.0</version>
<interface>
<name>IOplusSupplicant</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.oplus.hardware.wifi.supplicant</name>
<version>2.0</version>
<interface>
<name>IOplusSupplicant</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.pixelworks.hardware.display</name>
<version>1.1</version>
<interface>
<name>IIris</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.pixelworks.hardware.feature</name>
<version>1.0</version>
<interface>
<name>IIrisFeature</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.camera.cameraextension</name>
<version>1.0</version>
<interface>
<name>ICameraExtensionService</name>
<instance>cameraextensionservice</instance>
</interface>
</hal>
</compatibility-matrix>

104
extract-files.sh Executable file
View File

@@ -0,0 +1,104 @@
#!/bin/bash
#
# Copyright (C) 2016 The CyanogenMod Project
# Copyright (C) 2017-2020 The LineageOS Project
#
# SPDX-License-Identifier: Apache-2.0
#
set -e
DEVICE=avicii
VENDOR=oneplus
# Load extract_utils and do some sanity checks
MY_DIR="${BASH_SOURCE%/*}"
if [[ ! -d "${MY_DIR}" ]]; then MY_DIR="${PWD}"; fi
ANDROID_ROOT="${MY_DIR}/../../.."
HELPER="${ANDROID_ROOT}/tools/extract-utils/extract_utils.sh"
if [ ! -f "${HELPER}" ]; then
echo "Unable to find helper script at ${HELPER}"
exit 1
fi
source "${HELPER}"
# Default to sanitizing the vendor folder before extraction
CLEAN_VENDOR=true
KANG=
SECTION=
while [ "${#}" -gt 0 ]; do
case "${1}" in
--only-caf )
ONLY_CAF=true
CLEAN_VENDOR=false
;;
-n | --no-cleanup )
CLEAN_VENDOR=false
;;
-k | --kang )
KANG="--kang"
;;
-s | --section )
SECTION="${3}"; shift
CLEAN_VENDOR=false
;;
* )
SRC="${1}"
;;
esac
shift
done
if [ -z "${SRC}" ]; then
SRC="adb"
fi
function blob_fixup() {
case "${1}" in
odm/bin/hw/vendor.oplus.hardware.biometrics.fingerprint@2.1-service)
grep -q libshims_fingerprint.oplus.so "${2}" || "${PATCHELF}" --add-needed libshims_fingerprint.oplus.so "${2}"
;;
odm/etc/vintf/manifest/manifest_oplus_fingerprint.xml)
sed -ni "/android.hardware.biometrics.fingerprint/{x;s/hal format/hal override=\"true\" format/;x};x;1!p;\${x;p}" "${2}"
;;
product/etc/sysconfig/com.android.hotwordenrollment.common.util.xml)
sed -i "s/\/my_product/\/product/" "${2}"
;;
system_ext/lib64/libwfdnative.so)
sed -i "s/android.hidl.base@1.0.so/libhidlbase.so\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00/" "${2}"
;;
vendor/etc/libnfc-nxp.conf)
sed -i "/NXP_NFC_DEV_NODE/ s/pn553/nq-nci/" "${2}"
;;
vendor/lib64/hw/com.qti.chi.override.so)
grep -q libcamera_metadata_shim.so "${2}" || "${PATCHELF}" --add-needed libcamera_metadata_shim.so "${2}"
sed -i "s/com.oem.autotest/\x00om.oem.autotest/" "${2}"
;;
vendor/lib64/sensors.ssc.so)
sed -i "s/qti.sensor.wise_light/android.sensor.light\x00/" "${2}"
"${SIGSCAN}" -p "F1 E9 D3 84 52 49 3F A0 72" -P "F1 A9 00 80 52 09 00 A0 72" -f "${2}"
;;
vendor/lib64/vendor.qti.hardware.camera.postproc@1.0-service-impl.so)
"${SIGSCAN}" -p "1F 0A 00 94" -P "1F 20 03 D5" -f "${2}"
;;
esac
}
# Initialize the helper
if [ -z "${ONLY_CAF}" ]; then
setup_vendor "${DEVICE}" "${VENDOR}" "${ANDROID_ROOT}" false "${CLEAN_VENDOR}"
extract "${MY_DIR}/proprietary-files.txt" "${SRC}" "${KANG}" --section "${SECTION}"
fi
if [ ! -z "${ONLY_CAF}" ]; then
setup_vendor "${DEVICE}" "${VENDOR}" "${ANDROID_ROOT}" true "${CLEAN_VENDOR}"
extract "${MY_DIR}/proprietary-files-caf.txt" "${SRC}" "${KANG}" --section "${SECTION}"
fi
"${MY_DIR}/setup-makefiles.sh"

92
init/Android.bp Normal file
View File

@@ -0,0 +1,92 @@
//
// Copyright (C) 2022 The LineageOS Project
// SPDX-License-Identifier: Apache-2.0
//
cc_library_static {
name: "libinit_oplus",
recovery_available: true,
shared_libs: ["libbase"],
srcs: ["init_oplus.cpp"],
}
prebuilt_etc {
name: "fstab.qcom",
src: "fstab.qcom",
vendor: true,
ramdisk_available: true,
}
prebuilt_etc {
name: "init.qcom.rc",
src: "init.qcom.rc",
sub_dir: "init/hw",
vendor: true,
}
prebuilt_etc {
name: "init.oplus.hw.rc",
src: "init.oplus.hw.rc",
sub_dir: "init",
device_specific: true,
recovery_available: true,
}
prebuilt_etc {
name: "init.oplus.rc",
src: "init.oplus.rc",
sub_dir: "init",
device_specific: true,
}
prebuilt_etc {
name: "init.qcom.recovery.rc",
src: "init.qcom.recovery.rc",
sub_dir: "init",
recovery: true,
}
prebuilt_etc {
name: "init.target.rc",
src: "init.target.rc",
sub_dir: "init/hw",
vendor: true,
}
prebuilt_etc {
name: "ueventd.oplus.rc",
filename: "ueventd.rc",
src: "ueventd.oplus.rc",
device_specific: true,
}
prebuilt_etc {
name: "ueventd.qcom.rc",
filename: "ueventd.rc",
src: "ueventd.qcom.rc",
vendor: true,
}
sh_binary {
name: "init.class_main.sh",
src: "init.class_main.sh",
vendor: true,
}
sh_binary {
name: "init.qcom.early_boot.sh",
src: "init.qcom.early_boot.sh",
vendor: true,
}
sh_binary {
name: "init.qcom.post_boot.sh",
src: "init.qcom.post_boot.sh",
vendor: true,
}
sh_binary {
name: "init.qcom.sh",
src: "init.qcom.sh",
vendor: true,
}

48
init/fstab.qcom Normal file
View File

@@ -0,0 +1,48 @@
# Copyright (c) 2018, The Linux Foundation. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following
# disclaimer in the documentation and/or other materials provided
# with the distribution.
# * Neither the name of The Linux Foundation nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# Android fstab file.
# The filesystem that contains the filesystem checker binary (typically /system) cannot
# specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK
#<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
system /system ext4 ro,barrier=1 wait,slotselect,avb=vbmeta_system,logical,first_stage_mount,avb_keys=/avb/q-gsi.avbpubkey:/avb/r-gsi.avbpubkey:/avb/s-gsi.avbpubkey
system_ext /system_ext ext4 ro,barrier=1 wait,slotselect,avb=vbmeta_system,logical,first_stage_mount
product /product ext4 ro,barrier=1,discard wait,slotselect,avb=vbmeta_system,logical,first_stage_mount
vendor /vendor ext4 ro,barrier=1,discard wait,slotselect,avb,logical,first_stage_mount
odm /odm ext4 ro,barrier=1,discard wait,slotselect,avb,logical,first_stage_mount
/dev/block/by-name/metadata /metadata ext4 noatime,nosuid,nodev,discard wait,check,formattable,first_stage_mount
# Add fs_mgr flag - sysfs_path=/sys/devices/platform/soc/xxxx.[ufshc|sdhci] to userdata entry, based on UFS|eMMC device.
/dev/block/bootdevice/by-name/userdata /data f2fs noatime,nosuid,nodev,discard,reserve_root=32768,resgid=1065,fsync_mode=nobarrier,inlinecrypt latemount,wait,check,formattable,quota,reservedsize=128M,fileencryption=aes-256-xts:aes-256-cts:v2+inlinecrypt_optimized+wrappedkey_v0,metadata_encryption=aes-256-xts:wrappedkey_v0,keydirectory=/metadata/vold/metadata_encryption,checkpoint=fs
/dev/block/bootdevice/by-name/persist /mnt/vendor/persist ext4 noatime,nosuid,nodev,barrier=1 wait
/dev/block/bootdevice/by-name/misc /misc emmc defaults defaults
/devices/platform/soc/8804000.sdhci/mmc_host* /storage/sdcard1 vfat nosuid,nodev wait,voldmanaged=sdcard1:auto,encryptable=footer
/devices/platform/soc/1da4000.ufshc_card/host* /storage/sdcard1 vfat nosuid,nodev wait,voldmanaged=sdcard1:auto,encryptable=footer
/devices/platform/soc/a600000.ssusb/a600000.dwc3/xhci-hcd.*.auto* /storage/usbotg vfat nosuid,nodev wait,voldmanaged=usbotg:auto
/dev/block/bootdevice/by-name/modem /vendor/firmware_mnt vfat ro,shortname=lower,uid=1000,gid=1000,dmask=227,fmask=337,context=u:object_r:firmware_file:s0 wait,slotselect
/dev/block/bootdevice/by-name/dsp /vendor/dsp ext4 ro,nosuid,nodev,barrier=1 wait,slotselect
/dev/block/bootdevice/by-name/bluetooth /vendor/bt_firmware vfat ro,shortname=lower,uid=1002,gid=3002,dmask=227,fmask=337,context=u:object_r:bt_firmware_file:s0 wait,slotselect

155
init/init.class_main.sh Executable file
View File

@@ -0,0 +1,155 @@
#! /vendor/bin/sh
# Copyright (c) 2013-2014, 2019 The Linux Foundation. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of The Linux Foundation nor
# the names of its contributors may be used to endorse or promote
# products derived from this software without specific prior written
# permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
#
# start ril-daemon only for targets on which radio is present
#
baseband=`getprop ro.baseband`
sgltecsfb=`getprop persist.vendor.radio.sglte_csfb`
datamode=`getprop persist.vendor.data.mode`
low_ram=`getprop ro.config.low_ram`
qcrild_status=true
case "$baseband" in
"apq" | "sda" | "qcs" )
setprop ro.vendor.radio.noril yes
stop vendor.ril-daemon
stop vendor.qcrild
esac
case "$baseband" in
"msm" | "csfb" | "svlte2a" | "mdm" | "mdm2" | "sglte" | "sglte2" | "dsda2" | "unknown" | "dsda3" | "sdm" | "sdx" | "sm6")
# For older modem packages launch ril-daemon.
if [ -f /vendor/firmware_mnt/verinfo/ver_info.txt ]; then
modem=`cat /vendor/firmware_mnt/verinfo/ver_info.txt |
sed -n 's/^[^:]*modem[^:]*:[[:blank:]]*//p' |
sed 's/.*MPSS.\(.*\)/\1/g' | cut -d \. -f 1`
if [ "$modem" = "AT" ]; then
version=`cat /vendor/firmware_mnt/verinfo/ver_info.txt |
sed -n 's/^[^:]*modem[^:]*:[[:blank:]]*//p' |
sed 's/.*AT.\(.*\)/\1/g' | cut -d \- -f 1`
if [ ! -z $version ]; then
if [ "$version" \< "3.1" ]; then
qcrild_status=false
fi
fi
elif [ "$modem" = "TA" ]; then
version=`cat /vendor/firmware_mnt/verinfo/ver_info.txt |
sed -n 's/^[^:]*modem[^:]*:[[:blank:]]*//p' |
sed 's/.*TA.\(.*\)/\1/g' | cut -d \- -f 1`
if [ ! -z $version ]; then
if [ "$version" \< "3.0" ]; then
qcrild_status=false
fi
fi
elif [ "$modem" = "JO" ]; then
version=`cat /vendor/firmware_mnt/verinfo/ver_info.txt |
sed -n 's/^[^:]*modem[^:]*:[[:blank:]]*//p' |
sed 's/.*JO.\(.*\)/\1/g' | cut -d \- -f 1`
if [ ! -z $version ]; then
if [ "$version" \< "3.2" ]; then
qcrild_status=false
fi
fi
elif [ "$modem" = "TH" ]; then
qcrild_status=false
fi
fi
if [ "$qcrild_status" = "true" ]; then
# Make sure both rild, qcrild are not running at same time.
# This is possible with vanilla aosp system image.
stop vendor.ril-daemon
start vendor.qcrild
else
start vendor.ril-daemon
fi
case "$baseband" in
"svlte2a" | "csfb")
start qmiproxy
;;
"sglte" | "sglte2" )
if [ "x$sgltecsfb" != "xtrue" ]; then
start qmiproxy
else
setprop persist.vendor.radio.voice.modem.index 0
fi
;;
esac
multisim=`getprop persist.radio.multisim.config`
if [ "$multisim" = "dsds" ] || [ "$multisim" = "dsda" ]; then
if [ "$qcrild_status" = "true" ]; then
start vendor.qcrild2
else
start vendor.ril-daemon2
fi
elif [ "$multisim" = "tsts" ]; then
if [ "$qcrild_status" = "true" ]; then
start vendor.qcrild2
start vendor.qcrild3
else
start vendor.ril-daemon2
start vendor.ril-daemon3
fi
fi
case "$datamode" in
"tethered")
start vendor.dataqti
if [ "$low_ram" != "true" ]; then
start vendor.dataadpl
fi
;;
"concurrent")
start vendor.dataqti
if [ "$low_ram" != "true" ]; then
start vendor.dataadpl
fi
;;
*)
;;
esac
esac
#
# Allow persistent faking of bms
# User needs to set fake bms charge in persist.vendor.bms.fake_batt_capacity
#
fake_batt_capacity=`getprop persist.vendor.bms.fake_batt_capacity`
case "$fake_batt_capacity" in
"") ;; #Do nothing here
* )
echo "$fake_batt_capacity" > /sys/class/power_supply/battery/capacity
;;
esac

8
init/init.oplus.hw.rc Normal file
View File

@@ -0,0 +1,8 @@
#
# Copyright (C) 2022 The LineageOS Project
#
# SPDX-License-Identifier: Apache-2.0
#
on property:ro.boot.rf_version=13
setprop ro.boot.hardware.revision "IN"

126
init/init.oplus.rc Normal file
View File

@@ -0,0 +1,126 @@
#
# Copyright (C) 2022 The LineageOS Project
#
# SPDX-License-Identifier: Apache-2.0
#
on init
# Charger
write /proc/fastchg_fw_update 1
write /proc/ui_soc_decimal 1
on fs
# Update touchpanel firmware in case we ship newer firmware in /odm
write /proc/touchpanel/tp_fw_update 0
on early-boot
# SSR
write /sys/bus/msm_subsys/devices/subsys0/restart_level RELATED
write /sys/bus/msm_subsys/devices/subsys1/restart_level RELATED
write /sys/bus/msm_subsys/devices/subsys2/restart_level RELATED
write /sys/bus/msm_subsys/devices/subsys3/restart_level RELATED
write /sys/bus/msm_subsys/devices/subsys4/restart_level RELATED
write /sys/bus/msm_subsys/devices/subsys5/restart_level RELATED
write /sys/bus/msm_subsys/devices/subsys6/restart_level RELATED
write /sys/bus/msm_subsys/devices/subsys7/restart_level RELATED
write /sys/bus/msm_subsys/devices/subsys8/restart_level RELATED
write /sys/bus/msm_subsys/devices/subsys9/restart_level RELATED
write /sys/bus/msm_subsys/devices/subsys10/restart_level RELATED
write /sys/bus/msm_subsys/devices/subsys11/restart_level RELATED
on boot
# Battery
chown system system /sys/devices/virtual/oplus_chg/battery/mmi_charging_enable
# Display
chown system system /dev/oplus_display
chown system system /sys/kernel/oplus_display/dimlayer_bl_en
chown system system /sys/kernel/oplus_display/dynamic_osc_clock
chown system system /sys/kernel/oplus_display/hbm
chown system system /sys/kernel/oplus_display/notify_fppress
chown system system /sys/kernel/oplus_display/panel_serial_number
# Sensors
chown system system /sys/devices/platform/soc/soc:sensor_fb/adsp_notify
# TOF
chown cameraserver cameraserver /dev/stmvl53l1_ranging
on property:ro.boot.prjname=*
# Display
setprop ro.separate.soft ${ro.boot.prjname}
on property:sys.boot_completed=1
# Display
copy /vendor/etc/Oppo_QC_LTM_Commercial_2020_01_03.pfm /mnt/vendor/persist/data/pfm/licenses/1000-1000-no-exp-958228818.pfm
chown system system /mnt/vendor/persist/data/pfm/licenses/1000-1000-no-exp-958228818.pfm
on property:sys.usb.config=adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idVendor 0x22D9
write /config/usb_gadget/g1/idProduct 0x2769
on property:sys.usb.config=mass_storage && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idProduct 0x2768
write /config/usb_gadget/g1/idVendor 0x22D9
on property:sys.usb.config=mtp && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idVendor 0x22D9
write /config/usb_gadget/g1/idProduct 0x2764
on property:sys.usb.config=mtp,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idVendor 0x22D9
write /config/usb_gadget/g1/idProduct 0x2765
on property:sys.usb.config=ptp && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idVendor 0x22D9
write /config/usb_gadget/g1/idProduct 0x2771
on property:sys.usb.config=ptp,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idVendor 0x22D9
write /config/usb_gadget/g1/idProduct 0x2772
on property:sys.usb.config=rndis,none && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idVendor 0x22D9
write /config/usb_gadget/g1/idProduct 0x276A
on property:sys.usb.config=rndis,serial_cdev,diag && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idVendor 0x22D9
write /config/usb_gadget/g1/idProduct 0x2783
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=diag,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idVendor 0x22D9
write /config/usb_gadget/g1/idProduct 0x276C
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=diag,diag_mdm,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idVendor 0x22D9
write /config/usb_gadget/g1/idProduct 0x276E
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=mass_storage,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idVendor 0x22D9
write /config/usb_gadget/g1/idProduct 0x2767
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=rndis,diag,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idVendor 0x22D9
write /config/usb_gadget/g1/idProduct 0x2775
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=rndis,none,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idVendor 0x22D9
write /config/usb_gadget/g1/idProduct 0x2766
service oplus-sh /odm/bin/init.oplus.sh
user root
group root
oneshot
service oplus_sensor_fb /odm/bin/oplus_sensor_fb
user system
group system
class late_start
oneshot
service vl53l1_daemon_main /odm/bin/vl53l1_daemon_main
class late_start
user root
group root
socket vl53l1_daemon stream 660 root system

552
init/init.qcom.early_boot.sh Executable file
View File

@@ -0,0 +1,552 @@
#! /vendor/bin/sh
# Copyright (c) 2012-2013,2016,2018-2021 The Linux Foundation. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of The Linux Foundation nor
# the names of its contributors may be used to endorse or promote
# products derived from this software without specific prior written
# permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
export PATH=/vendor/bin
# Set platform variables
if [ -f /sys/devices/soc0/hw_platform ]; then
soc_hwplatform=`cat /sys/devices/soc0/hw_platform` 2> /dev/null
else
soc_hwplatform=`cat /sys/devices/system/soc/soc0/hw_platform` 2> /dev/null
fi
if [ -f /sys/devices/soc0/soc_id ]; then
soc_hwid=`cat /sys/devices/soc0/soc_id` 2> /dev/null
else
soc_hwid=`cat /sys/devices/system/soc/soc0/id` 2> /dev/null
fi
if [ -f /sys/devices/soc0/platform_version ]; then
soc_hwver=`cat /sys/devices/soc0/platform_version` 2> /dev/null
else
soc_hwver=`cat /sys/devices/system/soc/soc0/platform_version` 2> /dev/null
fi
if [ -f /sys/class/drm/card0-DSI-1/modes ]; then
echo "detect" > /sys/class/drm/card0-DSI-1/status
mode_file=/sys/class/drm/card0-DSI-1/modes
while read line; do
fb_width=${line%%x*};
break;
done < $mode_file
elif [ -f /sys/class/graphics/fb0/virtual_size ]; then
res=`cat /sys/class/graphics/fb0/virtual_size` 2> /dev/null
fb_width=${res%,*}
fi
log -t BOOT -p i "MSM target '$1', SoC '$soc_hwplatform', HwID '$soc_hwid', SoC ver '$soc_hwver'"
#For drm based display driver
vbfile=/sys/module/drm/parameters/vblankoffdelay
if [ -w $vbfile ]; then
echo -1 > $vbfile
else
log -t DRM_BOOT -p w "file: '$vbfile' or perms doesn't exist"
fi
function set_density_by_fb() {
#put default density based on width
if [ -z $fb_width ]; then
setprop vendor.display.lcd_density 320
else
if [ $fb_width -ge 1600 ]; then
setprop vendor.display.lcd_density 640
elif [ $fb_width -ge 1440 ]; then
setprop vendor.display.lcd_density 560
elif [ $fb_width -ge 1080 ]; then
setprop vendor.display.lcd_density 480
elif [ $fb_width -ge 720 ]; then
setprop vendor.display.lcd_density 320 #for 720X1280 resolution
elif [ $fb_width -ge 480 ]; then
setprop vendor.display.lcd_density 240 #for 480X854 QRD resolution
else
setprop vendor.display.lcd_density 160
fi
fi
}
target=`getprop ro.board.platform`
case "$target" in
"msm7630_surf" | "msm7630_1x" | "msm7630_fusion")
case "$soc_hwplatform" in
"FFA" | "SVLTE_FFA")
# linking to surf_keypad_qwerty.kcm.bin instead of surf_keypad_numeric.kcm.bin so that
# the UI keyboard works fine.
ln -s /system/usr/keychars/surf_keypad_qwerty.kcm.bin /system/usr/keychars/surf_keypad.kcm.bin
;;
"Fluid")
setprop vendor.display.lcd_density 240
setprop qcom.bt.dev_power_class 2
;;
*)
ln -s /system/usr/keychars/surf_keypad_qwerty.kcm.bin /system/usr/keychars/surf_keypad.kcm.bin
;;
esac
;;
"sm6150")
case "$soc_hwplatform" in
"ADP")
setprop vendor.display.lcd_density 160
;;
esac
case "$soc_hwid" in
365|366)
sku_ver=`cat /sys/devices/platform/soc/aa00000.qcom,vidc1/sku_version` 2> /dev/null
setprop vendor.media.target.version 1
if [ $sku_ver -eq 1 ]; then
setprop vendor.media.target.version 2
fi
;;
355|369|377|384)
setprop vendor.chre.enabled 0
;;
*)
esac
;;
"msm8660")
case "$soc_hwplatform" in
"Fluid")
setprop vendor.display.lcd_density 240
;;
"Dragon")
setprop ro.sound.alsa "WM8903"
;;
esac
;;
"msm8960")
# lcd density is write-once. Hence the separate switch case
case "$soc_hwplatform" in
"Liquid")
if [ "$soc_hwver" == "196608" ]; then # version 0x30000 is 3D sku
setprop ro.sf.hwrotation 90
fi
setprop vendor.display.lcd_density 160
;;
"MTP")
setprop vendor.display.lcd_density 240
;;
*)
case "$soc_hwid" in
"109")
setprop vendor.display.lcd_density 160
;;
*)
setprop vendor.display.lcd_density 240
;;
esac
;;
esac
#Set up composition type based on the target
case "$soc_hwid" in
87)
#8960
setprop debug.composition.type dyn
;;
153|154|155|156|157|138)
#8064 V2 PRIME | 8930AB | 8630AB | 8230AB | 8030AB | 8960AB
setprop debug.composition.type c2d
;;
*)
esac
;;
"msm8974")
case "$soc_hwplatform" in
"Liquid")
setprop vendor.display.lcd_density 160
# Liquid do not have hardware navigation keys, so enable
# Android sw navigation bar
setprop ro.hw.nav_keys 0
;;
"Dragon")
setprop vendor.display.lcd_density 240
;;
*)
setprop vendor.display.lcd_density 320
;;
esac
;;
"msm8226")
case "$soc_hwplatform" in
*)
setprop vendor.display.lcd_density 320
;;
esac
;;
"msm8610" | "apq8084" | "mpq8092")
case "$soc_hwplatform" in
*)
setprop vendor.display.lcd_density 240
;;
esac
;;
"apq8084")
case "$soc_hwplatform" in
"Liquid")
setprop vendor.display.lcd_density 320
# Liquid do not have hardware navigation keys, so enable
# Android sw navigation bar
setprop ro.hw.nav_keys 0
;;
"SBC")
setprop vendor.display.lcd_density 200
# SBC do not have hardware navigation keys, so enable
# Android sw navigation bar
setprop qemu.hw.mainkeys 0
;;
*)
setprop vendor.display.lcd_density 480
;;
esac
;;
"msm8996")
case "$soc_hwplatform" in
"Dragon")
setprop vendor.display.lcd_density 240
setprop qemu.hw.mainkeys 0
;;
"ADP")
setprop vendor.display.lcd_density 160
setprop qemu.hw.mainkeys 0
;;
"SBC")
setprop vendor.display.lcd_density 240
setprop qemu.hw.mainkeys 0
;;
*)
setprop vendor.display.lcd_density 560
;;
esac
;;
"msm8937" | "msm8940")
# Set vendor.opengles.version based on chip id.
# MSM8937 and MSM8940 variants supports OpenGLES 3.1
# 196608 is decimal for 0x30000 to report version 3.0
# 196609 is decimal for 0x30001 to report version 3.1
# 196610 is decimal for 0x30002 to report version 3.2
case "$soc_hwid" in
294|295|296|297|298|313|353|354|363|364)
# Disable adsprpcd_sensorspd daemon
setprop vendor.fastrpc.disable.adsprpcd_sensorspd.daemon 1
setprop vendor.opengles.version 196610
if [ $soc_hwid = 354 ]
then
setprop vendor.media.target.version 1
log -t BOOT -p i "SDM429 early_boot prop set for: HwID '$soc_hwid'"
fi
;;
303|307|308|309|320|386|436)
# Vulkan is not supported for 8917 variants
setprop vendor.opengles.version 196608
setprop persist.graphics.vulkan.disable true
setprop vendor.gralloc.disable_ahardware_buffer 1
# Disable adsprpcd_sensorspd daemon
setprop vendor.fastrpc.disable.adsprpcd_sensorspd.daemon 1
;;
*)
setprop vendor.opengles.version 196608
;;
esac
;;
"msm8909")
case "$soc_hwplatform" in
*)
setprop persist.graphics.vulkan.disable true
;;
esac
;;
"msm8998" | "apq8098_latv")
case "$soc_hwplatform" in
*)
setprop vendor.display.lcd_density 560
;;
esac
;;
"sdm845")
case "$soc_hwplatform" in
*)
if [ $fb_width -le 1600 ]; then
setprop vendor.display.lcd_density 560
else
setprop vendor.display.lcd_density 640
fi
;;
esac
;;
"msmnile")
case "$soc_hwplatform" in
*)
if [ $fb_width -le 1600 ]; then
setprop vendor.display.lcd_density 560
else
setprop vendor.display.lcd_density 640
fi
;;
esac
;;
"kona")
case "$soc_hwplatform" in
*)
setprop vendor.media.target_variant "_kona"
if [ $fb_width -le 1600 ]; then
setprop vendor.display.lcd_density 560
else
setprop vendor.display.lcd_density 640
fi
;;
esac
;;
"lito")
case "$soc_hwid" in
400|440)
sku_ver=`cat /sys/devices/platform/soc/aa00000.qcom,vidc1/sku_version` 2> /dev/null
if [ $sku_ver -eq 1 ]; then
setprop vendor.media.target.version 1
fi
;;
434|459)
sku_ver=`cat /sys/devices/platform/soc/aa00000.qcom,vidc1/sku_version` 2> /dev/null
setprop vendor.media.target.version 2
if [ $sku_ver -eq 1 ]; then
setprop vendor.media.target.version 3
fi
;;
476)
# Fraser soc_id 476
setprop vendor.display.enable_qsync_idle 1
;;
esac
;;
"bengal")
case "$soc_hwid" in
441|473)
# 441 is for scuba and 473 for scuba iot qcm
setprop vendor.fastrpc.disable.cdsprpcd.daemon 1
setprop vendor.media.target.version 2
setprop vendor.gralloc.disable_ubwc 1
setprop vendor.display.enhance_idle_time 1
setprop vendor.netflix.bsp_rev ""
# 196609 is decimal for 0x30001 to report version 3.1
setprop vendor.opengles.version 196609
sku_ver=`cat /sys/devices/platform/soc/5a00000.qcom,vidc1/sku_version` 2> /dev/null
if [ $sku_ver -eq 1 ]; then
setprop vendor.media.target.version 3
fi
;;
471|474)
# 471 is for scuba APQ and 474 for scuba iot qcs
setprop vendor.fastrpc.disable.cdsprpcd.daemon 1
setprop vendor.gralloc.disable_ubwc 1
setprop vendor.display.enhance_idle_time 1
setprop vendor.netflix.bsp_rev ""
;;
518)
;;
esac
;;
"sdm710" | "msmpeafowl")
case "$soc_hwplatform" in
*)
if [ $fb_width -le 1600 ]; then
setprop vendor.display.lcd_density 560
else
setprop vendor.display.lcd_density 640
fi
sku_ver=`cat /sys/devices/platform/soc/aa00000.qcom,vidc1/sku_version` 2> /dev/null
if [ $sku_ver -eq 1 ]; then
setprop vendor.media.target.version 1
fi
;;
esac
;;
"msm8953")
cap_ver = 1
if [ -e "/sys/devices/platform/soc/1d00000.qcom,vidc/capability_version" ]; then
cap_ver=`cat /sys/devices/platform/soc/1d00000.qcom,vidc/capability_version` 2> /dev/null
else
cap_ver=`cat /sys/devices/soc/1d00000.qcom,vidc/capability_version` 2> /dev/null
fi
if [ $cap_ver -eq 1 ]; then
setprop vendor.media.target.version 1
fi
;;
#Set property to differentiate SDM660 & SDM455
#SOC ID for SDM455 is 385
"sdm660")
case "$soc_hwplatform" in
*)
if [ $fb_width -le 1600 ]; then
setprop vendor.display.lcd_density 560
else
setprop vendor.display.lcd_density 640
fi
if [ $soc_hwid -eq 385 ]; then
setprop vendor.media.target.version 1
fi
;;
esac
;;
"holi")
setprop vendor.media.target_variant "_holi"
;;
esac
case "$target" in
"msm8937")
case "$soc_hwid" in
386|354|353|303)
# enable qrtr-ns service for kernel 4.14 or above
KernelVersionStr=`cat /proc/sys/kernel/osrelease`
KernelVersionS=${KernelVersionStr:2:2}
KernelVersionA=${KernelVersionStr:0:1}
KernelVersionB=${KernelVersionS%.*}
if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 14 ]; then
setprop init.svc.vendor.qrtrns.enable 1
fi
;;
esac
;;
esac
baseband=`getprop ro.baseband`
#enable atfwd daemon all targets except sda, apq, qcs
case "$baseband" in
"apq" | "sda" | "qcs" )
setprop persist.vendor.radio.atfwd.start false;;
*)
setprop persist.vendor.radio.atfwd.start true;;
esac
#set default lcd density
#Since lcd density has read only
#property, it will not overwrite previous set
#property if any target is setting forcefully.
set_density_by_fb
# set Lilliput LCD density for ADP
product=`getprop ro.build.product`
case "$product" in
"msmnile_au")
setprop vendor.display.lcd_density 160
echo 902400000 > /sys/class/devfreq/soc:qcom,cpu0-cpu-l3-lat/min_freq
echo 1612800000 > /sys/class/devfreq/soc:qcom,cpu0-cpu-l3-lat/max_freq
echo 902400000 > /sys/class/devfreq/soc:qcom,cpu4-cpu-l3-lat/min_freq
echo 1612800000 > /sys/class/devfreq/soc:qcom,cpu4-cpu-l3-lat/max_freq
;;
*)
;;
esac
case "$product" in
"sm6150_au")
setprop vendor.display.lcd_density 160
;;
*)
;;
esac
case "$product" in
"sdmshrike_au")
setprop vendor.display.lcd_density 160
;;
*)
;;
esac
case "$product" in
"msmnile_gvmq")
setprop vendor.display.lcd_density 160
;;
*)
;;
esac
case "$product" in
"msmnile_gvmgh")
setprop vendor.display.lcd_density 160
;;
*)
;;
esac
# Setup display nodes & permissions
# HDMI can be fb1 or fb2
# Loop through the sysfs nodes and determine
# the HDMI(dtv panel)
function set_perms() {
#Usage set_perms <filename> <ownership> <permission>
chown -h $2 $1
chmod $3 $1
}
# check for the type of driver FB or DRM
fb_driver=/sys/class/graphics/fb0
if [ -e "$fb_driver" ]
then
# check for mdp caps
file=/sys/class/graphics/fb0/mdp/caps
if [ -f "$file" ]
then
setprop vendor.gralloc.disable_ubwc 1
cat $file | while read line; do
case "$line" in
*"ubwc"*)
setprop vendor.gralloc.enable_fb_ubwc 1
setprop vendor.gralloc.disable_ubwc 0
esac
done
fi
else
set_perms /sys/devices/virtual/hdcp/msm_hdcp/min_level_change system.graphics 0660
fi
# allow system_graphics group to access pmic secure_mode node
set_perms /sys/class/lcd_bias/secure_mode system.graphics 0660
set_perms /sys/class/leds/wled/secure_mode system.graphics 0660
boot_reason=`cat /proc/sys/kernel/boot_reason`
reboot_reason=`getprop ro.boot.alarmboot`
if [ "$boot_reason" = "3" ] || [ "$reboot_reason" = "true" ]; then
setprop ro.vendor.alarm_boot true
else
setprop ro.vendor.alarm_boot false
fi
# copy GPU frequencies to vendor property
if [ -f /sys/class/kgsl/kgsl-3d0/gpu_available_frequencies ]; then
gpu_freq=`cat /sys/class/kgsl/kgsl-3d0/gpu_available_frequencies` 2> /dev/null
setprop vendor.gpu.available_frequencies "$gpu_freq"
fi

6269
init/init.qcom.post_boot.sh Executable file

File diff suppressed because it is too large Load Diff

920
init/init.qcom.rc Normal file
View File

@@ -0,0 +1,920 @@
# Copyright (c) 2009-2012, 2014-2020, The Linux Foundation. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of The Linux Foundation nor
# the names of its contributors may be used to endorse or promote
# products derived from this software without specific prior written
# permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
import /vendor/etc/init/hw/init.qti.ufs.rc
import /vendor/etc/init/hw/init.qcom.usb.rc
import /vendor/etc/init/hw/init.qcom.test.rc
import /vendor/etc/init/hw/init.target.rc
import /vendor/etc/init/hw/init.qcom.factory.rc
on early-init
mount debugfs debugfs /sys/kernel/debug
chmod 0755 /sys/kernel/debug
mount tracefs tracefs /sys/kernel/tracing
chmod 0755 /sys/kernel/tracing
# create symlink for vendor mount points
symlink /vendor/firmware_mnt /firmware
symlink /vendor/bt_firmware /bt_firmware
symlink /vendor/dsp /dsp
# Change ownership of hw_recovery related nodes
chown system graphics /sys/kernel/debug/dri/0/debug/dump
chown system graphics /sys/kernel/debug/dri/0/debug/recovery_reg
chown system graphics /sys/kernel/debug/dri/0/debug/recovery_dbgbus
chown system graphics /sys/kernel/debug/dri/0/debug/recovery_vbif_dbgbus
chown system graphics /sys/kernel/debug/dri/0/debug/recovery_dsi_dbgbus
# Change ownership of sysfs power control node
chown system graphics /sys/class/drm/card0/device/power/control
# Change ownership of sw_sync node
chown system graphics /sys/kernel/debug/sync/sw_sync
chmod 0666 /sys/kernel/debug/sync/sw_sync
#Disable UFS clock scaling
write /sys/bus/platform/devices/1d84000.ufshc/clkscale_enable 0
chown root system /dev/kmsg
chmod 0620 /dev/kmsg
# Load WIGIG platform driver
exec u:r:vendor_modprobe:s0 -- /vendor/bin/modprobe -a -d /vendor/lib/modules msm_11ad_proxy
on init
# Support legacy paths
symlink /sdcard /mnt/sdcard
symlink /sdcard /storage/sdcard0
# Create cgroup mount point for memory
mkdir /sys/fs/cgroup/memory/bg 0750 root system
write /sys/fs/cgroup/memory/bg/memory.swappiness 140
write /sys/fs/cgroup/memory/bg/memory.move_charge_at_immigrate 1
chown root system /sys/fs/cgroup/memory/bg/tasks
write /sys/kernel/icnss/wpss_boot 1
chmod 0660 /sys/fs/cgroup/memory/bg/tasks
on post-fs
chmod 0755 /sys/kernel/debug/tracing
on early-boot
# set RLIMIT_MEMLOCK to 64MB
setrlimit 8 67108864 67108864
# Allow subsystem (modem etc) debugging
write /sys/kernel/boot_adsp/boot 1
write /sys/kernel/boot_cdsp/boot 1
write /sys/devices/virtual/npu/msm_npu/boot 1
write /sys/devices/virtual/cvp/cvp/boot 1
exec u:r:vendor_qti_init_shell:s0 -- /vendor/bin/init.qcom.early_boot.sh
exec u:r:vendor_qti_init_shell:s0 -- /vendor/bin/init.qti.can.sh
setprop ro.sf.lcd_density ${vendor.display.lcd_density}
chown system system /mnt/vendor/persist/data/pfm/licenses
chmod 0775 /mnt/vendor/persist/data/pfm/licenses
chown system system /mnt/vendor/persist/data/pfm/licenses/store_0
chmod 0664 /mnt/vendor/persist/data/pfm/licenses/store_0
chown system system /mnt/vendor/persist/data/pfm/licenses/store_1
chmod 0664 /mnt/vendor/persist/data/pfm/licenses/store_1
chown system system /mnt/vendor/persist/data/pfm/licenses/store_2
chmod 0664 /mnt/vendor/persist/data/pfm/licenses/store_2
chown system system /mnt/vendor/persist/data/pfm/licenses/store_3
chmod 0664 /mnt/vendor/persist/data/pfm/licenses/store_3
chown system system /mnt/vendor/persist/data/pfm/licenses/store_4
chmod 0664 /mnt/vendor/persist/data/pfm/licenses/store_4
on boot
chown bluetooth bluetooth /sys/module/bluetooth_power/parameters/power
chown bluetooth net_bt /sys/class/rfkill/rfkill0/type
chown bluetooth net_bt /sys/class/rfkill/rfkill0/state
chown bluetooth bluetooth /proc/bluetooth/sleep/proto
chown bluetooth bluetooth /sys/module/hci_uart/parameters/ath_lpm
chown bluetooth bluetooth /sys/module/hci_uart/parameters/ath_btwrite
chown system system /sys/module/sco/parameters/disable_esco
chown bluetooth bluetooth /sys/module/hci_smd/parameters/hcismd_set
chown system system /sys/module/msm_core/parameters/polling_interval
chown system system /sys/module/msm_core/parameters/disabled
chown system system /sys/kernel/debug/msm_core/enable
chown system system /sys/kernel/debug/msm_core/ptable
chown system system /sys/kernel/boot_slpi/ssr
chown system system /sys/module/radio_iris_transport/parameters/fmsmd_set
chmod 0660 /sys/module/bluetooth_power/parameters/power
chmod 0660 /sys/module/hci_smd/parameters/hcismd_set
chmod 0660 /sys/module/radio_iris_transport/parameters/fmsmd_set
chmod 0660 /sys/class/rfkill/rfkill0/state
chmod 0660 /proc/bluetooth/sleep/proto
chown bluetooth net_bt /dev/ttyHS0
chmod 0660 /sys/module/hci_uart/parameters/ath_lpm
chmod 0660 /sys/module/hci_uart/parameters/ath_btwrite
chmod 0660 /dev/ttyHS0
chown bluetooth bluetooth /sys/devices/platform/msm_serial_hs.0/clock
chmod 0660 /sys/devices/platform/msm_serial_hs.0/clock
chmod 0660 /dev/ttyHS2
chown bluetooth bluetooth /dev/ttyHS2
chown bluetooth net_bt /sys/class/rfkill/rfkill0/device/extldo
chmod 0660 /sys/class/rfkill/rfkill0/device/extldo
# This location is used by QCRIL to host UNIX domain
# socket files used for internal IPC within QCRIL
# modules
mkdir /dev/socket/qmux_radio 0770 radio radio
chmod 2770 /dev/socket/qmux_radio
mkdir /persist/drm 0770 system system
mkdir /persist/bluetooth 0770 bluetooth bluetooth
mkdir /persist/misc 0770 system system
mkdir /persist/alarm 0770 system system
mkdir /mnt/vendor/persist/time 0770 system system
mkdir /mnt/vendor/persist/secnvm 0770 system system
mkdir /mnt/vendor/persist/iar_db 0770 system system
mkdir /mnt/vendor/spunvm 0770 system system
#Create WIGIG socket area
mkdir /dev/socket/wigig 0770 wifi wifi
setprop wifi.interface wlan0
setprop ro.telephony.call_ring.multiple false
#Remove SUID bit for iproute2 ip tool
chmod 0755 /system/bin/ip
chmod 0444 /sys/devices/platform/msm_hsusb/gadget/usb_state
setprop net.tcp.2g_init_rwnd 10
# To prevent out of order acknowledgements from making
# connection tracking to treat them as not belonging to
# the connection they belong to.
# Otherwise, a weird issue happens in which some long
# connections on high-throughput links get dropped when
# an ack packet comes out of order
write /proc/sys/net/netfilter/nf_conntrack_tcp_be_liberal 1
# Set the console loglevel to < KERN_WARN
# Set the default message loglevel to KERN_INFO
write /proc/sys/kernel/printk "4 6 1 7"
# Allow access for CCID command/response timeout configuration
chown system system /sys/module/ccid_bridge/parameters/bulk_msg_timeout
# bond0 used by FST Manager
chown wifi wifi /sys/class/net/bond0/bonding/queue_id
# Allow access to emmc dload sysfs node
chown root system /sys/kernel/dload/emmc_dload
chmod 0660 /sys/kernel/dload/emmc_dload
chown root system /dev/block/bootdevice/by-name/ramdump
chmod 0660 /dev/block/bootdevice/by-name/ramdump
chown root system /sys/kernel/dload/dload_mode
chmod 0660 /sys/kernel/dload/dload_mode
chown system system /sys/class/backlight/panel0-backlight/brightness
chown system system /sys/class/backlight/panel0-backlight/max_brightness
chown system system /sys/class/backlight/panel1-backlight/brightness
chown system system /sys/class/backlight/panel1-backlight/max_brightness
# Allow access to sensors device attributes
chown system system /sys/class/sensors/MPU6050-accel/enable
chown system system /sys/class/sensors/MPU6050-accel/poll_delay
chown system system /sys/class/sensors/MPU6050-gyro/enable
chown system system /sys/class/sensors/MPU6050-gyro/poll_delay
chown system system /sys/class/sensors/apds9930-light/enable
chown system system /sys/class/sensors/apds9930-light/poll_delay
chown system system /sys/class/sensors/apds9930-proximity/enable
chown system system /sys/class/sensors/apds9930-proximity/poll_delay
# Create directory used for display
# for backward compatibility
mkdir /persist/display 0770 system graphics
mkdir /mnt/vendor/persist/display 0770 system graphics
# Create vpp directory
mkdir /mnt/vendor/persist/vpp 0770 media media
# Create hvdcp_opti directory
mkdir /mnt/vendor/persist/hvdcp_opti 0770 root system
# limit discard size to 128MB in order to avoid long IO latency
write /sys/block/sda/queue/discard_max_bytes 134217728
# msm specific files that need to be created on /data
on post-fs-data
mkdir /data/vendor/misc 01771 system system
# Create directory used for dump collection
mkdir /data/vendor/ssrdump 0770 root system
# Create directory used by display clients
mkdir /data/vendor/display 0770 system graphics
# Change lm related dirs
mkdir /data/vendor/lm 0700 root root
# Create directory used by powermodule
mkdir /data/vendor/pwr 0700 root root
# Create directory used by media clients
mkdir /data/vendor/media 0770 mediacodec media
# Create /data/vendor/tzstorage directory for SFS listener
mkdir /data/vendor/tzstorage 0770 system system
# Create directory for apps access via QTEEConnector
mkdir /data/vendor/qtee 0770 system system
#Create folder of camera
mkdir /data/vendor/camera 0770 camera camera
#Create directory for tftp
mkdir /data/vendor/tombstones 0771 system system
mkdir /data/vendor/tombstones/rfs 0771 system system
mkdir /data/vendor/ramdump 0771 root system
mkdir /data/vendor/bluetooth 0770 bluetooth bluetooth
mkdir /data/vendor/ramdump/bluetooth 0770 bluetooth bluetooth
# Create the directories used by the Wireless subsystem
mkdir /data/vendor/wifi 0770 wifi wifi
mkdir /data/vendor/wifi/sockets 0770 wifi wifi
mkdir /data/vendor/wifi/hostapd 0770 wifi wifi
mkdir /data/vendor/wifi/hostapd/ctrl 0770 wifi wifi
mkdir /data/vendor/wifi/wpa_supplicant 0770 wifi wifi
mkdir /data/vendor/wifi/wigig_hostapd 0770 wifi wifi
mkdir /data/vendor/wifi/wpa 0770 wifi wifi
mkdir /data/vendor/wifi/wpa/sockets 0770 wifi wifi
# Create the directories used by WiGig Sensing
mkdir /data/vendor/sensing 0770 system wifi
# Create the directories used by CnE subsystem
mkdir /data/vendor/connectivity 0771 radio radio
chown radio radio /data/vendor/connectivity
# Create directory used by audio subsystem
mkdir /data/vendor/audio 0770 audio audio
# Create directory for audio delta files
mkdir /data/vendor/audio/acdbdata 0770 media audio
mkdir /data/vendor/audio/acdbdata/delta 0770 media audio
# Create directory for radio
mkdir /data/vendor/radio 0770 system radio
rm /data/vendor/radio/shmbus
# Create directory for modem_config
mkdir /data/vendor/modem_config 0570 radio root
# Mounting of persist is moved to 'on emmc-fs' and 'on fs' sections
# We chown/chmod /persist again so because mount is run as root + defaults
chown root system /persist
chmod 0771 /persist
chown system system /persist/WCNSS_qcom_wlan_nv.bin
chmod 0664 /sys/devices/platform/msm_sdcc.1/polling
chmod 0664 /sys/devices/platform/msm_sdcc.2/polling
chmod 0664 /sys/devices/platform/msm_sdcc.3/polling
chmod 0664 /sys/devices/platform/msm_sdcc.4/polling
# Chown polling nodes as needed from UI running on system server
chown system system /sys/devices/platform/msm_sdcc.1/polling
chown system system /sys/devices/platform/msm_sdcc.2/polling
chown system system /sys/devices/platform/msm_sdcc.3/polling
chown system system /sys/devices/platform/msm_sdcc.4/polling
#Create the symlink to qcn wpa_supplicant folder for ar6000 wpa_supplicant
#symlink /data/misc/wifi/wpa_supplicant /data/system/wpa_supplicant
#Create directories for Location services
mkdir /data/vendor/location 0770 gps gps
mkdir /data/vendor/location/mq 0770 gps gps
mkdir /data/vendor/location/xtwifi 0770 gps gps
mkdir /dev/socket/location 0770 gps gps
mkdir /dev/socket/location/mq 0770 gps gps
mkdir /dev/socket/location/xtra 0770 gps gps
mkdir /dev/socket/location/dgnss 0770 gps gps
#Create directories for wifihal services
mkdir /dev/socket/wifihal 0770 wifi wifi
chmod 2770 /dev/socket/wifihal
# Create /data/time folder for time-services
mkdir /data/vendor/time/ 0700 system system
setprop vold.post_fs_data_done 1
#Create a folder for SRS to be able to create a usercfg file
#mkdir /data/data/media 0770 media media
#Create FM dir for patchdownloader
mkdir /data/vendor/fm 0770 system system
chmod 0770 /data/vendor/fm
#Create PERFD deamon related dirs
mkdir /data/vendor/perfd 0770 root system
chmod 2770 /data/vendor/perfd
rm /data/vendor/perfd/default_values
mkdir /data/vendor/secure_element 0777 system system
#Create IOP deamon related dirs
mkdir /data/vendor/iop 0700 root system
# Mark the copy complete flag to not completed
write /data/vendor/radio/copy_complete 0
chown radio radio /data/vendor/radio/copy_complete
chmod 0660 /data/vendor/radio/copy_complete
# copy prebuilt qcril.db files always
copy /vendor/radio/qcril_database/qcril.db /data/vendor/radio/qcril_prebuilt.db
chown radio radio /data/vendor/radio/qcril_prebuilt.db
chmod 0660 /data/vendor/radio/qcril_prebuilt.db
copy /vendor/radio/qcril_database/qcrilNr.db /data/vendor/radio/qcrilNr_prebuilt.db
copy /vendor/etc/qcril_database/qcrilNr.db /data/vendor/radio/qcrilNr_prebuilt.db
chown radio radio /data/vendor/radio/qcrilNr_prebuilt.db
chmod 0660 /data/vendor/radio/qcrilNr_prebuilt.db
# File flags for prebuilt ril db file
write /data/vendor/radio/prebuilt_db_support 1
chown radio radio /data/vendor/radio/prebuilt_db_support
chmod 0400 /data/vendor/radio/prebuilt_db_support
write /data/vendor/radio/db_check_done 0
chown radio radio /data/vendor/radio/db_check_done
chmod 0660 /data/vendor/radio/db_check_done
# qti-logkit data
mkdir /data/vendor/qti-logkit/ 0771 system system
mkdir /data/vendor/qti-logkit/shared-privileged/ 2770 system system
mkdir /data/vendor/qti-logkit/shared-public/ 2770 system diag
mkdir /data/vendor/qti-logkit/socket-privileged/ 2770 system system
mkdir /data/vendor/qti-logkit/socket-public/ 2750 system diag
mkdir /data/vendor/qti-logkit/logdata/ 2750 system shell
#Create SWAP related dirs
mkdir /data/vendor/swap 0770 root system
chmod 2770 /data/vendor/swap
# set aggressive read ahead for dm-0 and dm-1 during boot up
write /sys/block/dm-0/queue/read_ahead_kb 2048
write /sys/block/dm-1/queue/read_ahead_kb 2048
write /sys/block/dm-2/queue/read_ahead_kb 2048
# Create vpp directory
mkdir /data/vendor/vpp 0770 media media
#Create dir for TUI
mkdir /data/vendor/tui 0700 system drmrpc
service nqnfcinfo /system/vendor/bin/nqnfcinfo
class late_start
group nfc
user system
oneshot
service iop /system/vendor/bin/iop
class main
user root
group root
disabled
socket iop seqpacket 0666 root system
service qcomsysd /system/vendor/bin/qcom-system-daemon
class main
user root
group root diag oem_2901
disabled
on property:persist.vendor.qcomsysd.enabled=1
enable qcomsysd
on property:persist.vendor.qcomsysd.enabled=0
stop qcomsysd
service vendor.ssr_setup /system/vendor/bin/ssr_setup
oneshot
disabled
service vendor.ss_ramdump /system/vendor/bin/subsystem_ramdump
class main
user system
group system
ioprio rt 4
disabled
on property:ro.vendor.iocgrp.config=1
mkdir /dev/blkio
mount cgroup none /dev/blkio blkio
chown system system /dev/blkio
chown system system /dev/blkio/tasks
chmod 0664 /dev/blkio/tasks
mkdir /dev/blkio/bg 0755 system system
chown system system /dev/blkio/bg/tasks
chmod 0664 /dev/blkio/bg/tasks
write /dev/blkio/blkio.weight 1000
write /dev/blkio/bg/blkio.weight 100
on property:persist.sys.ssr.enable_debug=*
write /sys/module/subsystem_restart/parameters/enable_debug ${persist.sys.ssr.enable_debug}
on property:persist.sys.mba_boot_timeout=*
write /sys/module/pil_msa/parameters/pbl_mba_boot_timeout_ms ${persist.sys.mba_boot_timeout}
on property:persist.sys.modem_auth_timeout=*
write /sys/module/pil_msa/parameters/modem_auth_timeout_ms ${persist.sys.modem_auth_timeout}
on property:persist.sys.pil_proxy_timeout=*
write /sys/module/peripheral_loader/parameters/proxy_timeout_ms ${persist.sys.pil_proxy_timeout}
on property:persist.vendor.ssr.restart_level=*
start vendor.ssr_setup
on property:persist.vendor.ssr.enable_ramdumps=1
write /sys/module/subsystem_restart/parameters/enable_ramdumps 1
mkdir /data/vendor/ramdump_ssr 770 system system
start vendor.ss_ramdump
on property:persist.vendor.ssr.enable_ramdumps=0
write /sys/module/subsystem_restart/parameters/enable_ramdumps 0
on property:persist.vendor.sys.rawdump_copy=1
write /sys/kernel/dload/emmc_dload 1
on property:persist.vendor.sys.rawdump_copy=0
write /sys/kernel/dload/emmc_dload 0
on property:sys.boot_completed=1
write /dev/kmsg "Boot completed "
#Enable UFS clock scaling back
write /sys/bus/platform/devices/1d84000.ufshc/clkscale_enable 1
#Reset read ahead for dm-0 and dm-1 to 512kb
write /sys/block/dm-0/queue/read_ahead_kb 512
write /sys/block/dm-1/queue/read_ahead_kb 512
#WDSP FW boot sysfs node used by STHAL
chown media audio /sys/kernel/wdsp0/boot
chown media audio /sys/kernel/wcd_cpe0/fw_name
#Reinit lmkd to reconfigure lmkd properties
setprop lmkd.reinit 1
on property:persist.vendor.radio.atfwd.start=false
stop vendor.atfwd
on property:vendor.radio.atfwd.start=false
stop vendor.atfwd
# corefile limit
on property:persist.debug.trace=1
mkdir /data/core 0777 root root
write /proc/sys/kernel/core_pattern "/data/core/%E.%p.%e"
on property:vendor.media.target.version=*
setprop vendor.sys.media.target.version ${vendor.media.target.version}
on property:vendor.netflix.bsp_rev=*
setprop ro.netflix.bsp_rev ${vendor.netflix.bsp_rev}
on property:vendor.media.target_variant=*
setprop ro.media.xml_variant.codecs ${vendor.media.target_variant}
setprop ro.media.xml_variant.codecs_performance ${vendor.media.target_variant}
service qcom-c_core-sh /vendor/bin/init.qcom.class_core.sh
class core
user root
oneshot
service qcom-c_main-sh /vendor/bin/init.class_main.sh
class main
user root
group root system
oneshot
on property:vold.decrypt=trigger_restart_framework
start qcom-c_main-sh
start wcnss-service
service vendor.qrtr-ns /vendor/bin/qrtr-ns -f
class core
user vendor_qrtr
group vendor_qrtr
capabilities NET_BIND_SERVICE
service irsc_util /vendor/bin/irsc_util "/vendor/etc/sec_config"
class core
user root
oneshot
service qmiproxy /system/bin/qmiproxy
class main
user radio
group radio diag
disabled
service vendor.wigig_supplicant /vendor/bin/hw/wpa_supplicant \
-iwigig0 -Dnl80211 -c/data/vendor/wifi/wigig_supplicant.conf \
-m/data/vendor/wifi/wigig_p2p_supplicant.conf \
-O/data/vendor/wifi/wigig_sockets -dd \
-e/data/vendor/wifi/wigig_entropy.bin -g@android:wigig/wpa_wigig0 \
-S wigigsvc
# we will start as root and wpa_supplicant will switch to user wifi
# after setting up the capabilities required for WEXT
# user wifi
# group wifi inet keystore
class main
socket wigig/wpa_wigig0 dgram 660 wifi wifi
disabled
oneshot
# Data Migration
service vendor.move_wifi_data /system/bin/move_wifi_data.sh
class main
user wifi
group wifi
disabled
oneshot
service wigignpt /vendor/bin/wigignpt
interface vendor.qti.hardware.wigig.netperftuner@1.0::INetPerfTuner default
class hal
socket wigig/wigignpt stream 660 system wifi
user system
group wifi
capabilities NET_ADMIN
disabled
on property:persist.vendor.wigig.npt.enable=1
start wigignpt
service vendor.sensingdaemon /vendor/bin/sensingdaemon
class hal
socket wigig/sensingdaemon stream 660 system wifi
user system
group wifi
disabled
service dhcpcd_wlan0 /system/bin/dhcpcd -ABKLG
class late_start
disabled
oneshot
service dhcpcd_bond0 /system/bin/dhcpcd -ABKLG
class late_start
disabled
oneshot
service dhcpcd_p2p /system/bin/dhcpcd -ABKLG
class late_start
disabled
oneshot
service dhcpcd_wigig0 /system/bin/dhcpcd -ABKLG
class late_start
disabled
oneshot
service iprenew_wlan0 /system/bin/dhcpcd -n
class late_start
disabled
oneshot
service iprenew_bond0 /system/bin/dhcpcd -n
class late_start
disabled
oneshot
service iprenew_p2p /system/bin/dhcpcd -n
class late_start
disabled
oneshot
service iprenew_wigig0 /system/bin/dhcpcd -n
class late_start
disabled
oneshot
service ptt_socket_app /system/vendor/bin/ptt_socket_app -d
class main
user wifi
group wifi system inet net_admin
capabilities NET_ADMIN
oneshot
service ptt_ffbm /system/vendor/bin/ptt_socket_app -f -d
user root
group root
disabled
oneshot
service wifi_ftmd /system/vendor/bin/wifi_ftmd
user system
group system inet net_admin
socket wififtmd_server dgram 0660 system system
disabled
oneshot
on property:vendor.wifi.ftmd.load=true
insmod /system/lib/modules/pronto/pronto_wlan.ko con_mode=5
service cnss-daemon /system/vendor/bin/cnss-daemon -n -l
class late_start
user system
group system inet net_admin wifi
capabilities NET_ADMIN
on property:sys.shutdown.requested=*
write /sys/kernel/shutdown_wlan/shutdown 1
stop cnss-daemon
service dhcpcd_bt-pan /system/bin/dhcpcd -BKLG
class late_start
disabled
oneshot
service iprenew_bt-pan /system/bin/dhcpcd -n
class late_start
disabled
oneshot
service ssgqmigd /vendor/bin/ssgqmigd
class late_start
user radio
group radio gps system
socket ssgqmig seqpacket 0660 radio inet
service mlid /vendor/bin/mlid
class late_start
user gps
group gps
socket mlid stream 0666 gps gps
service loc_launcher /system/vendor/bin/loc_launcher
class late_start
user gps
group gps
service qcom-sh /vendor/bin/init.qcom.sh
class late_start
user root
group root system radio
oneshot
# Remove since is deprecated but throws AVC denial.
# service crashdata-sh /vendor/bin/init.qcom.crashdata.sh
# class late_start
# user root
# oneshot
service qcom-post-boot /vendor/bin/init.qcom.post_boot.sh
class late_start
user root
group root system wakelock graphics
disabled
oneshot
service wifi-sdio-on /vendor/bin/init.qcom.sdio.sh
class late_start
group wifi inet
disabled
oneshot
service wifi-crda /vendor/bin/init.crda.sh
class late_start
user root
disabled
oneshot
on property:sys.boot_completed=1
start qcom-post-boot
on property:ro.vendor.ril.mbn_copy_completed=1
write /data/vendor/radio/copy_complete 1
service qvop-daemon /vendor/bin/qvop-daemon
class late_start
user system
group system drmrpc
service vendor.atfwd /vendor/bin/ATFWD-daemon
class late_start
user system
group system radio
service hostapd_fst /vendor/bin/hw/hostapd -dd -g /data/vendor/wifi/hostapd/global
class main
capabilities NET_ADMIN NET_RAW
user wifi
group wifi
disabled
oneshot
service battery_monitor /system/bin/battery_monitor
user system
group system
disabled
service vendor.ril-daemon2 /vendor/bin/hw/rild -c 2
class main
user radio
disabled
group radio cache inet misc audio sdcard_r sdcard_rw diag oem_2901 log
capabilities BLOCK_SUSPEND NET_ADMIN NET_RAW
service vendor.ril-daemon3 /vendor/bin/hw/rild -c 3
class main
user radio
disabled
group radio cache inet misc audio sdcard_r sdcard_rw diag oem_2901 log
capabilities BLOCK_SUSPEND NET_ADMIN NET_RAW
service profiler_daemon /system/bin/profiler_daemon
class late_start
user root
group root
disabled
service charger /system/bin/charger
class charger
user system
group system graphics input
capabilities SYS_BOOT
seclabel u:r:charger:s0
service vendor.ssr_diag /system/vendor/bin/ssr_diag
class late_start
user system
group system
disabled
service diag_mdlog_start /system/vendor/bin/diag_mdlog
class late_start
user shell
group system oem_2901 sdcard_rw sdcard_r media_rw
disabled
oneshot
service diag_mdlog_stop /system/vendor/bin/diag_mdlog -k
class late_start
user shell
group system oem_2901 sdcard_rw sdcard_r media_rw
disabled
oneshot
service qlogd /system/xbin/qlogd
socket qlogd stream 0662 system system
class main
disabled
on property:persist.sys.qlogd=1
start qlogd
on property:persist.sys.qlogd=0
stop qlogd
service vm_bms /vendor/bin/vm_bms
user root
group root
disabled
service vendor.msm_irqbalance /vendor/bin/msm_irqbalance -f /system/vendor/etc/msm_irqbalance.conf
class core
user root
group root
disabled
service vendor.msm_irqbal_lb /vendor/bin/msm_irqbalance -f /system/vendor/etc/msm_irqbalance_little_big.conf
class core
user root
group root
disabled
service vendor.msm_irqbl_sdm630 /vendor/bin/msm_irqbalance -f /system/vendor/etc/msm_irqbalance_sdm630.conf
class core
user root
group root
disabled
# service for USERDEBUG
service vendor.LKCore-dbg /vendor/bin/LKCore
class late_start
oneshot
disabled
user root
group root system log diag net_raw
# service for USER
service vendor.LKCore-rel /vendor/bin/LKCore
class late_start
oneshot
disabled
user system
group system log diag
service qseeproxydaemon /system/vendor/bin/qseeproxydaemon
class late_start
user system
group system
service esepmdaemon /system/vendor/bin/esepmdaemon
class core
user system
group nfc
on charger
setprop persist.sys.usb.config mass_storage
start qcom-post-boot
#add poweroffhandler
service poweroffhandler /system/vendor/bin/poweroffhandler
class core
user media
group graphics audio
disabled
oneshot
service time_daemon /vendor/bin/time_daemon
class main
user system
group system
capabilities SYS_TIME
# Set vendor-ril lib path based on Meta version
on property:vendor.rild.libpath=*
setprop rild.libpath ${vendor.rild.libpath}
on property:ro.vendor.radio.noril=*
setprop ro.radio.noril ${ro.vendor.radio.noril}
service vendor.power_off_alarm /vendor/bin/power_off_alarm
class core
group system
disabled
oneshot
service vendor.hbtp /vendor/bin/hbtp_daemon
class main
user system
group system
capabilities SYS_NICE
disabled
service chre /vendor/bin/chre
class late_start
user system
group system
socket chre seqpacket 0660 root system
shutdown critical
on property:vendor.chre.enabled=0
stop chre
service bugreport /system/bin/dumpstate -d -p -B -z -o /data/user_de/0/com.android.shell/files/bugreports/bugreport
class main
disabled
oneshot
keycodes 114 115 116
#Set GPU Opengles version
on property:vendor.opengles.version=*
setprop ro.opengles.version ${vendor.opengles.version}
#Set gpu available frequencies property
on property:vendor.gpu.available_frequencies=*
setprop ro.vendor.gpu.available_frequencies ${vendor.gpu.available_frequencies}
service vendor.audio-hal /vendor/bin/hw/android.hardware.audio.service
override
class hal
user audioserver
# media gid needed for /dev/fm (radio) and for /data/misc/media (tee)
group audio camera drmrpc inet media mediadrm net_bt net_bt_admin net_bw_acct oem_2901 wakelock
capabilities BLOCK_SUSPEND
ioprio rt 4
writepid /dev/cpuset/foreground/tasks /dev/stune/foreground/tasks
onrestart restart audioserver
on property:sys.boot_completed=1
# Restrict permissions to socket file
# to hide Magisk & co.
chmod 440 /proc/net/unix

View File

@@ -0,0 +1,46 @@
# Copyright (c) 2017-2018,2020 The Linux Foundation. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of The Linux Foundation nor
# the names of its contributors may be used to endorse or promote
# products derived from this software without specific prior written
# permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
on init
write /sys/class/backlight/panel0-backlight/brightness 200
setprop sys.usb.configfs 1
on property:ro.boot.usbcontroller=*
setprop sys.usb.controller ${ro.boot.usbcontroller}
write /sys/class/udc/${ro.boot.usbcontroller}/device/../mode peripheral
on fs
wait /dev/block/platform/soc/${ro.boot.bootdevice}
symlink /dev/block/platform/soc/${ro.boot.bootdevice} /dev/block/bootdevice
# Load ADSP firmware for PMIC
mkdir /firmware
mount vfat /dev/block/bootdevice/by-name/modem${ro.boot.slot_suffix} /firmware ro context=u:object_r:firmware_file:s0
on property:dev.mnt.blk.firmware=*
write /sys/kernel/boot_adsp/boot 1
wait /sys/class/power_supply/battery

465
init/init.qcom.sh Executable file
View File

@@ -0,0 +1,465 @@
#! /vendor/bin/sh
# Copyright (c) 2009-2016, The Linux Foundation. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of The Linux Foundation nor
# the names of its contributors may be used to endorse or promote
# products derived from this software without specific prior written
# permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
target=`getprop ro.board.platform`
low_ram=`getprop ro.config.low_ram`
if [ -f /sys/devices/soc0/soc_id ]; then
platformid=`cat /sys/devices/soc0/soc_id`
else
platformid=`cat /sys/devices/system/soc/soc0/id`
fi
start_battery_monitor()
{
if ls /sys/bus/spmi/devices/qpnp-bms-*/fcc_data ; then
chown -h root.system /sys/module/pm8921_bms/parameters/*
chown -h root.system /sys/module/qpnp_bms/parameters/*
chown -h root.system /sys/bus/spmi/devices/qpnp-bms-*/fcc_data
chown -h root.system /sys/bus/spmi/devices/qpnp-bms-*/fcc_temp
chown -h root.system /sys/bus/spmi/devices/qpnp-bms-*/fcc_chgcyl
chmod 0660 /sys/module/qpnp_bms/parameters/*
chmod 0660 /sys/module/pm8921_bms/parameters/*
mkdir -p /data/bms
chown -h root.system /data/bms
chmod 0770 /data/bms
start battery_monitor
fi
}
start_charger_monitor()
{
if ls /sys/module/qpnp_charger/parameters/charger_monitor; then
chown -h root.system /sys/module/qpnp_charger/parameters/*
chown -h root.system /sys/class/power_supply/battery/input_current_max
chown -h root.system /sys/class/power_supply/battery/input_current_trim
chown -h root.system /sys/class/power_supply/battery/input_current_settled
chown -h root.system /sys/class/power_supply/battery/voltage_min
chmod 0664 /sys/class/power_supply/battery/input_current_max
chmod 0664 /sys/class/power_supply/battery/input_current_trim
chmod 0664 /sys/class/power_supply/battery/input_current_settled
chmod 0664 /sys/class/power_supply/battery/voltage_min
chmod 0664 /sys/module/qpnp_charger/parameters/charger_monitor
start charger_monitor
fi
}
start_vm_bms()
{
if [ -e /dev/vm_bms ]; then
chown -h root.system /sys/class/power_supply/bms/current_now
chown -h root.system /sys/class/power_supply/bms/voltage_ocv
chmod 0664 /sys/class/power_supply/bms/current_now
chmod 0664 /sys/class/power_supply/bms/voltage_ocv
start vm_bms
fi
}
start_msm_irqbalance_8939()
{
if [ -f /vendor/bin/msm_irqbalance ]; then
case "$platformid" in
"239" | "293" | "294" | "295" | "304" | "338" | "313" | "353" | "354")
start vendor.msm_irqbalance;;
"349" | "350" )
start vendor.msm_irqbal_lb;;
esac
fi
}
start_msm_irqbalance_msmnile()
{
if [ -f /vendor/bin/msm_irqbalance ]; then
start vendor.msm_irqbalance
fi
}
start_msm_irqbalance_kona()
{
if [ -f /vendor/bin/msm_irqbalance ]; then
start vendor.msm_irqbalance
fi
}
start_msm_irqbalance_lito()
{
if [ -f /vendor/bin/msm_irqbalance ]; then
start vendor.msm_irqbalance
fi
}
start_msm_irqbalance_atoll()
{
if [ -f /vendor/bin/msm_irqbalance ]; then
start vendor.msm_irqbalance
fi
}
start_msm_irqbalance660()
{
if [ -f /vendor/bin/msm_irqbalance ]; then
case "$platformid" in
"317" | "321" | "324" | "325" | "326" | "336" | "345" | "346" | "360" | "393")
start vendor.msm_irqbalance;;
"318" | "327" | "385")
start vendor.msm_irqbl_sdm630;;
esac
fi
}
start_msm_irqbalance()
{
if [ -f /vendor/bin/msm_irqbalance ]; then
start vendor.msm_irqbalance
fi
}
baseband=`getprop ro.baseband`
echo 1 > /proc/sys/net/ipv6/conf/default/accept_ra_defrtr
case "$baseband" in
"svlte2a")
start bridgemgrd
;;
esac
case "$target" in
"msm7630_surf" | "msm7630_1x" | "msm7630_fusion")
if [ -f /sys/devices/soc0/hw_platform ]; then
value=`cat /sys/devices/soc0/hw_platform`
else
value=`cat /sys/devices/system/soc/soc0/hw_platform`
fi
case "$value" in
"Fluid")
start profiler_daemon;;
esac
;;
"msm8660" )
if [ -f /sys/devices/soc0/hw_platform ]; then
platformvalue=`cat /sys/devices/soc0/hw_platform`
else
platformvalue=`cat /sys/devices/system/soc/soc0/hw_platform`
fi
case "$platformvalue" in
"Fluid")
start profiler_daemon;;
esac
;;
"msm8960")
case "$baseband" in
"msm")
start_battery_monitor;;
esac
if [ -f /sys/devices/soc0/hw_platform ]; then
platformvalue=`cat /sys/devices/soc0/hw_platform`
else
platformvalue=`cat /sys/devices/system/soc/soc0/hw_platform`
fi
case "$platformvalue" in
"Fluid")
start profiler_daemon;;
"Liquid")
start profiler_daemon;;
esac
;;
"msm8974")
platformvalue=`cat /sys/devices/soc0/hw_platform`
case "$platformvalue" in
"Fluid")
start profiler_daemon;;
"Liquid")
start profiler_daemon;;
esac
case "$baseband" in
"msm")
start_battery_monitor
;;
esac
start_charger_monitor
;;
"sdm660")
if [ -f /sys/devices/soc0/soc_id ]; then
soc_id=`cat /sys/devices/soc0/soc_id`
else
soc_id=`cat /sys/devices/system/soc/soc0/id`
fi
if [ -f /sys/devices/soc0/hw_platform ]; then
hw_platform=`cat /sys/devices/soc0/hw_platform`
else
hw_platform=`cat /sys/devices/system/soc/soc0/hw_platform`
fi
case "$soc_id" in
"317" | "324" | "325" | "326" | "318" | "327" )
case "$hw_platform" in
"Surf")
setprop qemu.hw.mainkeys 0
;;
"MTP")
setprop qemu.hw.mainkeys 0
;;
"RCM")
setprop qemu.hw.mainkeys 0
;;
"QRD")
setprop qemu.hw.mainkeys 0
;;
esac
;;
esac
start_msm_irqbalance660
;;
"apq8084")
platformvalue=`cat /sys/devices/soc0/hw_platform`
case "$platformvalue" in
"Fluid")
start profiler_daemon;;
"Liquid")
start profiler_daemon;;
esac
;;
"msm8226")
start_charger_monitor
;;
"msm8610")
start_charger_monitor
;;
"msm8916")
start_vm_bms
start_msm_irqbalance_8939
if [ -f /sys/devices/soc0/soc_id ]; then
soc_id=`cat /sys/devices/soc0/soc_id`
else
soc_id=`cat /sys/devices/system/soc/soc0/id`
fi
if [ -f /sys/devices/soc0/platform_subtype_id ]; then
platform_subtype_id=`cat /sys/devices/soc0/platform_subtype_id`
fi
if [ -f /sys/devices/soc0/hw_platform ]; then
hw_platform=`cat /sys/devices/soc0/hw_platform`
fi
case "$soc_id" in
"239")
case "$hw_platform" in
"Surf")
case "$platform_subtype_id" in
"1")
setprop qemu.hw.mainkeys 0
;;
esac
;;
"MTP")
case "$platform_subtype_id" in
"3")
setprop qemu.hw.mainkeys 0
;;
esac
;;
esac
;;
esac
;;
"msm8994" | "msm8992" | "msm8998" | "apq8098_latv" | "sdm845" | "sdm710" | "qcs605" | "sm6150" | "trinket" | "bengal")
start_msm_irqbalance
;;
"msm8996")
if [ -f /sys/devices/soc0/hw_platform ]; then
hw_platform=`cat /sys/devices/soc0/hw_platform`
fi
case "$hw_platform" in
"MTP" | "CDP")
#Loop through the sysfs nodes and determine the correct sysfs to change the permission and ownership.
for count in 0 1 2 3 4 5 6 7 8 9 10
do
dir="/sys/devices/soc/75ba000.i2c/i2c-12/12-0020/input/input"$count
if [ -d "$dir" ]; then
chmod 0660 $dir/secure_touch_enable
chmod 0440 $dir/secure_touch
chown system.drmrpc $dir/secure_touch_enable
chown system.drmrpc $dir/secure_touch
break
fi
done
;;
esac
;;
"msm8909")
start_vm_bms
;;
"msmnile")
start_msm_irqbalance_msmnile
;;
"kona")
start_msm_irqbalance_kona
;;
"lito")
start_msm_irqbalance_lito
;;
"atoll")
start_msm_irqbalance_atoll
;;
"msm8937")
start_msm_irqbalance_8939
if [ -f /sys/devices/soc0/soc_id ]; then
soc_id=`cat /sys/devices/soc0/soc_id`
else
soc_id=`cat /sys/devices/system/soc/soc0/id`
fi
if [ -f /sys/devices/soc0/hw_platform ]; then
hw_platform=`cat /sys/devices/soc0/hw_platform`
else
hw_platform=`cat /sys/devices/system/soc/soc0/hw_platform`
fi
if [ "$low_ram" != "true" ]; then
case "$soc_id" in
"294" | "295" | "303" | "307" | "308" | "309" | "313" | "320" | "353" | "354" | "363" | "364")
case "$hw_platform" in
"Surf")
setprop qemu.hw.mainkeys 0
;;
"MTP")
setprop qemu.hw.mainkeys 0
;;
"RCM")
setprop qemu.hw.mainkeys 0
;;
"QRD")
setprop qemu.hw.mainkeys 0
;;
esac
;;
esac
fi
;;
"msm8953")
start_msm_irqbalance_8939
if [ -f /sys/devices/soc0/soc_id ]; then
soc_id=`cat /sys/devices/soc0/soc_id`
else
soc_id=`cat /sys/devices/system/soc/soc0/id`
fi
if [ -f /sys/devices/soc0/hw_platform ]; then
hw_platform=`cat /sys/devices/soc0/hw_platform`
else
hw_platform=`cat /sys/devices/system/soc/soc0/hw_platform`
fi
case "$soc_id" in
"293" | "304" | "338" | "351" | "349" | "350" )
case "$hw_platform" in
"Surf")
setprop qemu.hw.mainkeys 0
;;
"MTP")
setprop qemu.hw.mainkeys 0
;;
"RCM")
setprop qemu.hw.mainkeys 0
;;
"QRD")
setprop qemu.hw.mainkeys 0
;;
esac
;;
esac
;;
"sdm710")
if [ -f /sys/devices/soc0/soc_id ]; then
soc_id=`cat /sys/devices/soc0/soc_id`
else
soc_id=`cat /sys/devices/system/soc/soc0/id`
fi
if [ -f /sys/devices/soc0/hw_platform ]; then
hw_platform=`cat /sys/devices/soc0/hw_platform`
else
hw_platform=`cat /sys/devices/system/soc/soc0/hw_platform`
fi
case "$soc_id" in
"336" | "337" | "347" | "360" | "393" )
case "$hw_platform" in
"Surf")
setprop qemu.hw.mainkeys 0
;;
"MTP")
setprop qemu.hw.mainkeys 0
;;
"RCM")
setprop qemu.hw.mainkeys 0
;;
"QRD")
setprop qemu.hw.mainkeys 0
;;
esac
;;
esac
;;
esac
#
# Make modem config folder and copy firmware config to that folder for RIL
#
if [ -f /data/vendor/modem_config/ver_info.txt ]; then
prev_version_info=`cat /data/vendor/modem_config/ver_info.txt`
else
prev_version_info=""
fi
cur_version_info=`cat /vendor/firmware_mnt/verinfo/ver_info.txt`
if [ ! -f /vendor/firmware_mnt/verinfo/ver_info.txt -o "$prev_version_info" != "$cur_version_info" ]; then
# add W for group recursively before delete
chmod g+w -R /data/vendor/modem_config/*
rm -rf /data/vendor/modem_config/*
# preserve the read only mode for all subdir and files
cp --preserve=m -dr /vendor/firmware_mnt/image/modem_pr/mcfg/configs/* /data/vendor/modem_config
cp --preserve=m -d /vendor/firmware_mnt/verinfo/ver_info.txt /data/vendor/modem_config/
cp --preserve=m -d /vendor/firmware_mnt/image/modem_pr/mbn_ota.txt /data/vendor/modem_config/
# the group must be root, otherwise this script could not add "W" for group recursively
chown -hR radio.root /data/vendor/modem_config/*
fi
chmod g-w /data/vendor/modem_config
setprop ro.vendor.ril.mbn_copy_completed 1
#check build variant for printk logging
#current default minimum boot-time-default
buildvariant=`getprop ro.build.type`
case "$buildvariant" in
"userdebug" | "eng")
#set default loglevel to KERN_INFO
echo "4 6 1 7" > /proc/sys/kernel/printk
;;
*)
#set default loglevel to KERN_WARNING
echo "4 4 1 4" > /proc/sys/kernel/printk
;;
esac

164
init/init.target.rc Normal file
View File

@@ -0,0 +1,164 @@
# Copyright (c) 2018-2020, The Linux Foundation. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following
# disclaimer in the documentation and/or other materials provided
# with the distribution.
# * Neither the name of The Linux Foundation nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
#
on early-init
exec u:r:vendor_modprobe:s0 -- /vendor/bin/modprobe -a -d /vendor/lib/modules audio_q6_pdr audio_q6_notifier audio_snd_event audio_apr audio_adsp_loader audio_q6 audio_native audio_usf audio_pinctrl_lpi audio_swr audio_platform audio_hdmi audio_stub audio_wcd_core audio_wsa881x audio_wsa883x audio_bolero_cdc audio_wsa_macro audio_va_macro audio_rx_macro audio_tx_macro audio_wcd938x audio_wcd938x_slave audio_wcd937x audio_wcd937x_slave audio_machine_lito
write /proc/sys/kernel/sched_boost 1
exec u:r:vendor_qti_init_shell:s0 -- /vendor/bin/init.qti.early_init.sh
setprop ro.soc.model ${ro.vendor.qti.soc_model}
on init
write /dev/stune/foreground/schedtune.sched_boost_no_override 1
write /dev/stune/top-app/schedtune.sched_boost_no_override 1
write /dev/stune/schedtune.colocate 0
write /dev/stune/background/schedtune.colocate 0
write /dev/stune/system-background/schedtune.colocate 0
write /dev/stune/foreground/schedtune.colocate 0
write /dev/stune/top-app/schedtune.colocate 1
#Moving to init as this is needed for qseecomd
wait /dev/block/platform/soc/${ro.boot.bootdevice}
symlink /dev/block/platform/soc/${ro.boot.bootdevice} /dev/block/bootdevice
start vendor.qseecomd
start keymaster-4-0
on early-fs
start vold
on fs
start hwservicemanager
mount_all /vendor/etc/fstab.qcom --early
chown root system /mnt/vendor/persist
chmod 0771 /mnt/vendor/persist
restorecon_recursive /mnt/vendor/persist
mkdir /mnt/vendor/persist/data 0700 system system
on post-fs
# set RLIMIT_MEMLOCK to 64MB
setrlimit 8 67108864 67108864
on late-fs
wait_for_prop hwservicemanager.ready true
exec_start wait_for_keymaster
mount_all /vendor/etc/fstab.qcom --late
on post-fs-data
mkdir /vendor/data/tombstones 0771 system system
on early-boot
start vendor.sensors
on boot
write /dev/cpuset/audio-app/cpus 1-2
# Add a cpuset for the camera daemon
# We want all cores for camera
mkdir /dev/cpuset/camera-daemon
write /dev/cpuset/camera-daemon/cpus 0-7
write /dev/cpuset/camera-daemon/mems 0
chown cameraserver cameraserver /dev/cpuset/camera-daemon
chown cameraserver cameraserver /dev/cpuset/camera-daemon/tasks
chmod 0660 /dev/cpuset/camera-daemon/tasks
#USB controller configuration
setprop vendor.usb.rndis.func.name "gsi"
setprop vendor.usb.rmnet.func.name "gsi"
setprop vendor.usb.rmnet.inst.name "rmnet"
setprop vendor.usb.dpl.inst.name "dpl"
setprop vendor.usb.qdss.inst.name "qdss_mdm"
setprop vendor.usb.controller a600000.dwc3
#Load WLAN driver
insmod /vendor/lib/modules/qca_cld3_wlan.ko
on property:vendor.display.lcd_density=560
setprop dalvik.vm.heapgrowthlimit 256m
on property:vendor.display.lcd_density=640
setprop dalvik.vm.heapgrowthlimit 512m
on boot && property:persist.vendor.usb.controller.default=*
setprop vendor.usb.controller ${persist.vendor.usb.controller.default}
on property:vendor.usb.controller=*
setprop sys.usb.controller ${vendor.usb.controller}
on charger
start vendor.power_off_alarm
setprop vendor.usb.controller a600000.dwc3
setprop sys.usb.configfs 1
#pd-mapper
service vendor.pd_mapper /vendor/bin/pd-mapper
class core
user system
group system
#Peripheral manager
service vendor.per_mgr /vendor/bin/pm-service
class core
user system
group system
ioprio rt 4
service vendor.per_proxy /vendor/bin/pm-proxy
class core
user system
group system
disabled
service vendor.mdm_helper /vendor/bin/mdm_helper
class core
group system wakelock
disabled
service vendor.mdm_launcher /vendor/bin/sh /vendor/bin/init.mdm.sh
class core
oneshot
on property:init.svc.vendor.per_mgr=running
start vendor.per_proxy
on property:sys.shutdown.requested=*
stop vendor.per_proxy
on property:vold.decrypt=trigger_restart_framework
start vendor.cnss_diag
service vendor.cnss_diag /system/vendor/bin/cnss_diag -q -f -t HELIUM
class main
user system
group system wifi inet sdcard_rw media_rw diag
oneshot
service dcvs-sh /vendor/bin/init.qti.dcvs.sh
class late_start
user root
group root system
disabled
oneshot
on property:vendor.dcvs.prop=1
start dcvs-sh

49
init/init_oplus.cpp Normal file
View File

@@ -0,0 +1,49 @@
/*
* Copyright (C) 2022 The LineageOS Project
* SPDX-License-Identifier: Apache-2.0
*/
#include <android-base/logging.h>
#include <android-base/properties.h>
#define _REALLY_INCLUDE_SYS__SYSTEM_PROPERTIES_H_
#include <sys/_system_properties.h>
using android::base::GetProperty;
/*
* SetProperty does not allow updating read only properties and as a result
* does not work for our use case. Write "OverrideProperty" to do practically
* the same thing as "SetProperty" without this restriction.
*/
void OverrideProperty(const char* name, const char* value) {
size_t valuelen = strlen(value);
prop_info* pi = (prop_info*)__system_property_find(name);
if (pi != nullptr) {
__system_property_update(pi, value, valuelen);
} else {
__system_property_add(name, strlen(name), value, valuelen);
}
}
/*
* Only for read-only properties. Properties that can be wrote to more
* than once should be set in a typical init script (e.g. init.oplus.hw.rc)
* after the original property has been set.
*/
void vendor_load_properties() {
auto device = GetProperty("ro.product.product.device", "");
auto rf_version = std::stoi(GetProperty("ro.boot.rf_version", "0"));
switch (rf_version) {
case 13: // IN
OverrideProperty("ro.product.product.model", "AC2001");
break;
case 14: // EU/GLO
OverrideProperty("ro.product.product.model", "AC2003");
break;
default:
LOG(ERROR) << "Unexpected RF version: " << rf_version;
}
}

11
init/ueventd.oplus.rc Normal file
View File

@@ -0,0 +1,11 @@
#
# Copyright (C) 2022 The LineageOS Project
#
# SPDX-License-Identifier: Apache-2.0
#
# Reserve
/dev/block/bootdevice/by-name/oplusreserve1 0660 root system
# WiFi
firmware_directories /odm/etc/wifi/

479
init/ueventd.qcom.rc Normal file
View File

@@ -0,0 +1,479 @@
# Copyright (c) 2012-2015, 2017-2020, The Linux Foundation. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of The Linux Foundation nor
# the names of its contributors may be used to endorse or promote
# products derived from this software without specific prior written
# permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
# Firmware directory Path
# Below macro will be read by uevent and path will
# be added to search path for firmware loading
firmware_directories /vendor/firmware_mnt/image/
# the DIAG device node is not world writable/readable.
/dev/diag 0660 system oem_2901
/dev/mhi_*_pipe_4 0660 system system
/dev/genlock 0666 system system
/dev/wlan 0660 wifi wifi
/dev/kgsl 0666 system system
/dev/kgsl-3d0 0666 system system
/dev/kgsl-2d0 0666 root root
/dev/kgsl-2d1 0666 root root
/dev/ion 0664 system system
/dev/membuf 0664 system system
/dev/rtc0 0660 system system
/dev/smd0 0660 system system
/dev/smd4 0660 system system
/dev/smd_cxm_qmi 0640 radio radio
/dev/smd5 0660 system system
/dev/smd6 0660 system system
/dev/smd7 0660 bluetooth bluetooth
/dev/ccid_bridge 0660 system system
/dev/ipa 0660 radio radio
/dev/wwan_ioctl 0660 radio radio
/dev/ipaNatTable 0660 radio radio
/dev/rmnet_ctrl 0660 usb usb
/dev/dpl_ctrl 0660 usb usb
/dev/ipa_odl_ctl 0660 radio radio
/dev/ipa_adpl 0660 system oem_2905
/dev/synx_device 0660 root camera
/dev/hab 0666 system system
/dev/hgsl 0666 system system
/dev/iio:device* 0664 system system
#permissions for UFS RPMB BSG device node
/dev/0:0:0:49476 0600 system system
#permissions for CSVT
/dev/smd11 0660 radio radio
#permsissions for BT/FM
/dev/smd2 0660 bluetooth bluetooth
/dev/smd3 0660 bluetooth bluetooth
/dev/btpower 0660 bluetooth system
/dev/btfmslim 0660 bluetooth system
#permissions for pta
/dev/pta 0660 system system
/dev/radio0 0640 system system
/dev/rfcomm0 0660 bluetooth bluetooth
/dev/ttyUSB0 0660 bluetooth bluetooth
/dev/smdcntl0 0640 radio radio
/dev/smdcntl1 0640 radio radio
/dev/smdcntl2 0640 radio radio
/dev/smdcntl3 0640 radio radio
/dev/smdcntl4 0640 radio radio
/dev/smdcntl5 0640 radio radio
/dev/smdcntl6 0640 radio radio
/dev/smdcntl7 0640 radio radio
/dev/smdcntl8 0640 radio radio
/dev/smdcnt_rev0 0640 radio radio
/dev/smdcnt_rev1 0640 radio radio
/dev/smdcnt_rev2 0640 radio radio
/dev/smdcnt_rev3 0640 radio radio
/dev/smdcnt_rev4 0640 radio radio
/dev/smdcnt_rev5 0640 radio radio
/dev/smdcnt_rev6 0640 radio radio
/dev/smdcnt_rev7 0640 radio radio
/dev/smdcnt_rev8 0640 radio radio
/dev/smuxctl32 0640 radio radio
/dev/sdioctl0 0640 radio radio
/dev/sdioctl1 0640 radio radio
/dev/sdioctl2 0640 radio radio
/dev/sdioctl3 0640 radio radio
/dev/sdioctl4 0640 radio radio
/dev/sdioctl5 0640 radio radio
/dev/sdioctl6 0640 radio radio
/dev/sdioctl7 0640 radio radio
/dev/sdioctl8 0640 radio radio
/dev/rmnet_mux_ctrl 0640 radio radio
/dev/hsicctl0 0640 radio radio
/dev/hsicctl1 0640 radio radio
/dev/hsicctl2 0640 radio radio
/dev/hsicctl3 0640 radio radio
/dev/hsicctl4 0640 radio radio
/dev/hsicctl5 0640 radio radio
/dev/hsicctl6 0640 radio radio
/dev/hsicctl7 0640 radio radio
/dev/hsicctl8 0640 radio radio
/dev/hsicctl9 0640 radio radio
/dev/hsicctl10 0640 radio radio
/dev/hsicctl11 0640 radio radio
/dev/hsicctl12 0640 radio radio
/dev/hsicctl13 0640 radio radio
/dev/hsicctl14 0640 radio radio
/dev/hsicctl15 0640 radio radio
/dev/hsicctl16 0640 radio radio
/dev/mhi_*_pipe_14 0640 radio radio
/dev/mhi_*_pipe_16 0640 radio radio
/dev/mhi_*_pipe_32 0640 radio radio
/dev/at_usb0 0640 radio radio
/dev/at_mdm0 0640 radio radio
/dev/video* 0660 system camera
/dev/cvp* 0660 system camera
/dev/media* 0660 system camera
/dev/v4l-subdev* 0660 system camera
/dev/qseecom 0660 system drmrpc
/dev/qce 0660 system drmrpc
/dev/smcinvoke 0660 system drmrpc
/dev/qsee_ipc_irq_spss 0660 system drmrpc
/dev/seemplog 0660 system system
/dev/pft 0660 system drmrpc
/dev/spcom 0660 system system
/dev/spss_utils 0660 system system
/dev/sp_kernel 0660 system system
/dev/sp_nvm 0660 system system
/dev/sp_ssr 0660 system system
/dev/sp_keymaster 0660 system system
/dev/sp_keymaster_ssr 0660 system system
/dev/sec_nvm_* 0660 system system
/dev/cryptoapp 0660 system system
/dev/spdaemon_ssr 0660 system system
/dev/spu_hal_ssr 0660 system system
/dev/iuicc* 0660 system system
/dev/gemini0 0660 system camera
/dev/jpeg0 0660 system camera
/dev/jpeg1 0660 system camera
/dev/jpeg2 0660 system camera
/dev/jpeg3 0660 system camera
/dev/adsprpc-smd 0664 system system
/dev/adsprpc-smd-secure 0644 system system
/dev/system_health_monitor 0644 radio system
/dev/mdss_rotator 0664 system system
#QDSS
/dev/byte-cntr 0660 system oem_2902
/dev/mhi_qdss 0660 system oem_2902
/sys/class/qdss_bridge/mhi_qdss mode 0660 system oem_2902
#qg
/dev/qg 0660 system system
/dev/qg_battery 0660 system system
#qvr
/dev/qvr_external_sensor_ioctl 0660 system system
/dev/bus/usb/* 0660 root usb
/dev/hidraw* 0660 root usb
# wlan
/dev/wcnss_wlan 0660 system system
/dev/wcnss_ctrl 0660 system system
/sys/devices/soc/a000000.qcom,wcnss-wlan/net/wlan0/queues/rx-* rps_cpus 0660 system system
/sys/devices/soc/a000000.qcom,wcnss-wlan/net/p2p0/queues/rx-* rps_cpus 0660 system system
/sys/devices/platform/soc/*.qcom,icnss/net/wlan*/queues/rx-* rps_cpus 0660 system system
/sys/devices/platform/soc/1c00000.qcom,pcie/pci0000:00/0000:00:00.0/0000:01:00.0/net/wlan*/queues/rx-* rps_cpus 0660 system system
/sys/devices/platform/soc/17a10040.qcom,wcn6750/net/wlan*/queues/rx-* rps_cpus 0660 system system
/dev/spidev0.0 0660 system audio
/dev/i2c-7 0660 system audio
/dev/msm_camera/* 0660 system camera
/dev/gemini/ 0660 system camera
/dev/mercury0 0660 system camera
/dev/msm_vidc_reg 0660 system audio
/dev/msm_vidc_dec 0660 system audio
/dev/msm_vidc_dec_sec 0660 system audio
/dev/msm_vidc_enc 0660 system audio
/dev/msm_rotator 0660 system system
/dev/hw_random 0600 root root
/dev/sdsprpc-smd 0660 system system
#permissions for audio
/dev/wcd_dsp0_control 0660 system audio
/dev/wcd-dsp-glink 0660 system audio
/dev/audio_slimslave 0660 system audio
/dev/msm_qcelp 0660 system audio
/dev/msm_evrc 0660 system audio
/dev/msm_wma 0660 system audio
/dev/msm_wmapro 0660 system audio
/dev/msm_alac 0660 system audio
/dev/msm_ape 0660 system audio
/dev/msm_amrnb 0660 system audio
/dev/msm_amrwb 0660 system audio
/dev/msm_amrwbplus 0660 system audio
/dev/msm_aac 0660 system audio
/dev/msm_multi_aac 0660 system audio
/dev/msm_aac_in 0660 system audio
/dev/msm_qcelp_in 0660 system audio
/dev/msm_evrc_in 0660 system audio
/dev/msm_amrnb_in 0660 system audio
/dev/msm_amrwb_in 0660 system audio
/dev/msm_a2dp_in 0660 system audio
/dev/msm_ac3 0660 system audio
/dev/msm_audio_cal 0660 system audio
/dev/msm_hweffects 0660 system audio
/dev/msm_cad 0660 system audio
/dev/msm_fm 0660 system audio
/dev/msm_mvs 0660 system audio
/dev/msm_pcm_lp_dec 0660 system audio
/dev/msm_preproc_ctl 0660 system audio
/dev/msm_rtac 0660 system audio
/dev/msm_voicememo 0660 system audio
/dev/ttyHSL1 0660 system system
/dev/ttyHS1 0660 system system
/dev/mdm 0660 system radio
/sys/devices/virtual/smdpkt/smdcntl* open_timeout 0664 radio radio
/dev/sdio_tty_ciq_00 0660 system system
/dev/tty_sdio_00 0660 system system
/dev/ttyGS0 0660 system system
/dev/i2c-5 0660 media media
/dev/avtimer 0660 system audio
/dev/spidev2.0 0660 system audio
/dev/spidev22.0 0660 system audio
/dev/spidev10.0 0660 system audio
# DVB devices
/dev/dvb/adapter0/demux* 0440 media media
/dev/dvb/adapter0/dvr* 0660 media media
/dev/dvb/adapter0/video* 0660 media media
# Broadcast devices
/dev/tsc_mux0 0660 media media
/dev/tsc_ci0 0660 media media
# sensors
/dev/sensors 0660 system system
/sys/devices/i2c-12/12-* pollrate_ms 0664 system system
/sys/devices/f9925000.i2c/i2c-0/0-* enable 0660 input system
/sys/devices/f9925000.i2c/i2c-0/0-* poll_delay 0660 input system
/sys/devices/soc.0/78b6000.i2c/i2c-0/0-* enable 0660 input system
/sys/devices/soc.0/78b6000.i2c/i2c-0/0-* poll_delay 0660 input system
/sys/devices/soc.0/78b6000.i2c/i2c-0/0-* enable_wakeup 0660 input system
/sys/devices/soc.0/78b6000.i2c/i2c-0/0-* max_latency 0660 input system
/sys/devices/soc.0/78b6000.i2c/i2c-0/0-* flush 0660 input system
/sys/devices/soc.0/78b6000.i2c/i2c-0/0-* calibrate 0660 input system
/sys/devices/soc.0/78b5000.i2c/i2c-1/1-* enable 0660 input system
/sys/devices/soc.0/78b5000.i2c/i2c-1/1-* poll_delay 0660 input system
/sys/devices/soc.0/78b5000.i2c/i2c-1/1-* enable_wakeup 0660 input system
/sys/devices/soc.0/78b5000.i2c/i2c-1/1-* max_latency 0660 input system
/sys/devices/soc.0/78b5000.i2c/i2c-1/1-* flush 0660 input system
/sys/devices/soc.0/78b5000.i2c/i2c-1/1-* calibrate 0660 input system
/sys/devices/virtual/optical_sensors/proximity ps_adc 0660 input system
/sys/devices/virtual/optical_sensors/proximity ps_poll_delay 0660 input system
/sys/devices/virtual/optical_sensors/lightsensor ls_auto 0660 input system
/sys/devices/virtual/optical_sensors/lightsensor ls_poll_delay 0660 input system
/sys/devices/virtual/input/input* poll 0660 input system
/sys/devices/virtual/input/input* pollrate_ms 0660 input system
/sys/devices/soc/78b7000.i2c/i2c-3/3-0020/input/input* secure_touch 0440 system drmrpc
/sys/devices/soc/78b7000.i2c/i2c-3/3-0020/input/input* secure_touch_enable 0660 system drmrpc
/sys/devices/soc/78b7000.i2c/i2c-3/3-0038/input/input* secure_touch 0440 system drmrpc
/sys/devices/soc/78b7000.i2c/i2c-3/3-0038/input/input* secure_touch_enable 0660 system drmrpc
/sys/devices/soc/78b7000.i2c/i2c-3/3-004b/input/input* secure_touch 0440 system drmrpc
/sys/devices/soc/78b7000.i2c/i2c-3/3-004b/input/input* secure_touch_enable 0660 system drmrpc
/sys/devices/soc/c179000.i2c/i2c-5/5-0020/input/input* secure_touch 0440 system drmrpc
/sys/devices/soc/c179000.i2c/i2c-5/5-0020/input/input* secure_touch_enable 0660 system drmrpc
/sys/devices/platform/soc/a98000.i2c/i2c-2/2-0020/input/input* secure_touch 0440 system drmrpc
/sys/devices/platform/soc/a98000.i2c/i2c-2/2-0020/input/input* secure_touch_enable 0660 system drmrpc
/sys/devices/platform/soc/a84000.i2c/i2c-2/2-0020/input/input* secure_touch 0440 system drmrpc
/sys/devices/platform/soc/a84000.i2c/i2c-2/2-0020/input/input* secure_touch_enable 0660 system drmrpc
# GNSS Device premissions
/dev/gnss_sirf 0660 gps gps
# laser sensor access
/sys/devices/virtual/input/input* enable_ps_sensor 0660 system input
/sys/devices/virtual/input/input* set_delay_ms 0660 system input
/sys/devices/virtual/input/input* do_flush 0660 system input
# vm_bms
/dev/vm_bms 0660 system system
/dev/battery_data 0660 system system
# wlan
/dev/wcnss_wlan 0660 system system
/dev/wcnss_ctrl 0660 system system
/sys/devices/soc/600000.qcom,pcie/pci0000:00/0000:00:00.0/0000:01:00.0/net/wlan0/queues/rx-* rps_cpus 0660 system system
/sys/devices/soc/600000.qcom,pcie/pci0000:00/0000:00:00.0/0000:01:00.0/net/p2p0/queues/rx-* rps_cpus 0660 system system
# wigig
/sys/bus/pci/drivers/wil6210* 0000:01:00.0/wil6210/fst_link_loss 0660 wifi wifi
/sys/bus/pci/drivers/wil6210* 0000:01:00.0/wil6210/thermal_throttling 0660 system system
/sys/bus/pci/drivers/wil6210* 0000:01:00.0/wil6210/snr_thresh 0660 wifi wifi
/sys/bus/pci/drivers/wil6210* 0000:01:00.0/net/wigig0/queues/rx-0/rps_cpus 0660 system system
/sys/bus/pci/drivers/wil6210* 0000:01:00.0/net/wigig0/gro_flush_timeout 0660 system system
/sys/devices/virtual/net/bond0 queues/rx-0/rps_cpus 0660 system system
#nfc permissions
/dev/nfc-nci 0660 nfc nfc
/dev/nq-nci 0660 nfc nfc
/dev/assd 0660 nfc nfc
# UIO devices
/dev/uio0 0660 system system
/dev/uio1 0660 system system
/dev/uio2 0660 system system
# SSR devices
/dev/subsys_* 0640 system system
# Ultrasound device
/dev/usf1 0660 system system
# Ramdump devices
/dev/ramdump* 0640 system system
# Fingerprint device
/dev/qbt* 0660 system system
/sys/class/fts/touch_aoi aoi_set 0660 root system
/sys/class/fts/touch_aoi power_set 0660 root system
#ImproveTouch device
/dev/hbtp_input 0660 system system
/dev/hbtp_vm 0660 system system
# Add device block for FRP
/dev/block/platform/soc/7824900.sdhci/by-name/config 0600 system system
/dev/block/platform/soc/7464900.sdhci/by-name/frp 0600 system system
/dev/block/platform/soc/624000.ufshc/by-name/frp 0600 system system
/dev/block/platform/soc/1da4000.ufshc/by-name/frp 0600 system system
/dev/block/platform/soc/c0c4000.sdhci/by-name/frp 0600 system system
/dev/block/platform/soc/1d84000.ufshc/by-name/frp 0600 system system
/dev/block/platform/soc/7c4000.sdhci/by-name/frp 0600 system system
/dev/block/platform/soc/4744000.sdhci/by-name/frp 0600 system system
/dev/block/platform/soc/4804000.ufshc/by-name/frp 0600 system system
# This is temporary while using SD card for initial bring-up
/dev/block/platform/soc/8804000.sdhci/by-name/frp 0600 system system
# Kmsg device
/dev/kmsg 0620 root system
# LED class devices
/sys/class/leds/red delay_on 0640 system system
/sys/class/leds/red delay_off 0640 system system
/sys/class/leds/red breath 0640 system system
/sys/class/leds/red trigger 0640 system system
/sys/class/leds/green delay_on 0640 system system
/sys/class/leds/green delay_off 0640 system system
/sys/class/leds/green breath 0640 system system
/sys/class/leds/green trigger 0640 system system
/sys/class/leds/blue delay_on 0640 system system
/sys/class/leds/blue delay_off 0640 system system
/sys/class/leds/blue breath 0640 system system
/sys/class/leds/blue trigger 0640 system system
# NPU device
/dev/msm_npu 0644 system system
# USB role switch
/sys/class/dual_role_usb/* data_role 0660 system system
/sys/class/dual_role_usb/* power_role 0660 system system
/sys/class/dual_role_usb/* mode 0660 system system
#Memory Offline
/sys/devices/system/memory/memory* state 0660 system system
/sys/devices/virtual/hdcp/msm_hdcp min_level_change 0664 system graphics
# sys-fs display
/sys/class/graphics/fb* hpd 0664 system graphics
/sys/class/graphics/fb* res_info 0664 system graphics
/sys/class/graphics/fb* vendor_name 0664 system graphics
/sys/class/graphics/fb* product_description 0664 system graphics
/sys/class/graphics/fb* video_mode 0664 system graphics
/sys/class/graphics/fb* format_3d 0664 system graphics
/sys/class/graphics/fb* s3d_mode 0664 system graphics
/sys/class/graphics/fb* dynamic_fps 0664 system graphics
/sys/class/graphics/fb* msm_fb_dfps_mode 0664 system graphics
/sys/class/graphics/fb* hdr_stream 0664 system graphics
/sys/class/graphics/fb* cec/enable 0664 system graphics
/sys/class/graphics/fb* cec/logical_addr 0664 system graphics
/sys/class/graphics/fb* cec/rd_msg 0664 system graphics
/sys/class/graphics/fb* pa 0664 system graphics
/sys/class/graphics/fb* cec/wr_msg 0600 system graphics
/sys/class/graphics/fb* hdcp/tp 0664 system graphics
/sys/class/graphics/fb* hdcp2p2/min_level_change 0660 system graphics
/sys/class/graphics/fb* hdmi_audio_cb 0600 audioserver audio
/sys/class/graphics/fb* lineptr_value 0664 system graphics
/sys/class/graphics/fb* msm_fb_persist_mode 0664 system graphics
/sys/class/graphics/fb0 idle_time 0664 system graphics
/sys/class/graphics/fb0 dynamic_fps 0664 system graphics
/sys/class/graphics/fb0 dyn_pu 0664 system graphics
/sys/class/graphics/fb0 modes 0664 system graphics
/sys/class/graphics/fb0 mode 0664 system graphics
/sys/class/graphics/fb0 msm_cmd_autorefresh_en 0664 system graphics
/sys/devices/platform/soc/ae00000.qcom,mdss_mdp power/control 0664 system graphics
#asm330 sensor
#common sensors files
/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* buffer/enable 0664 system system
/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* buffer/length 0664 system system
/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* buffer/watermark 0664 system system
/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* discharded_samples 0664 system system
/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* current_timestamp_clock 0664 system system
/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* hwfifo_flush 0664 system system
/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* hwfifo_watermark 0664 system system
/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* hwfifo_watermark_max 0664 system system
/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* mount_matrix 0664 system system
/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* name 0664 system system
/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* sampling_frequency 0664 system system
/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* sampling_frequency_available 0664 system system
/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_timestamp_en 0664 system system
/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_timestamp_index 0664 system system
/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_timestamp_type 0664 system system
# standard iio accel attributes
/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* in_accel_scale_available 0664 system system
/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* in_accel_x_raw 0664 system system
/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* in_accel_x_scale 0664 system system
/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* in_accel_y_raw 0664 system system
/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* in_accel_y_scale 0664 system system
/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* in_accel_z_raw 0664 system system
/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* in_accel_z_scale 0664 system system
/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_accel_x_en 0664 system system
/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_accel_x_index 0664 system system
/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_accel_x_type 0664 system system
/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_accel_y_en 0664 system system
/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_accel_y_index 0664 system system
/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_accel_y_type 0664 system system
/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_accel_z_en 0664 system system
/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_accel_z_index 0664 system system
/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_accel_z_type 0664 system system
# standard iio gyro attributes
/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* in_anglvel_scale_available 0664 system system
/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* in_anglvel_x_raw 0664 system system
/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* in_anglvel_x_scale 0664 system system
/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* in_anglvel_y_raw 0664 system system
/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* in_anglvel_y_scale 0664 system system
/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* in_anglvel_z_raw 0664 system system
/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* in_anglvel_z_scale 0664 system system
/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_anglvel_x_en 0664 system system
/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_anglvel_x_index 0664 system system
/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_anglvel_x_type 0664 system system
/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_anglvel_y_en 0664 system system
/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_anglvel_y_index 0664 system system
/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_anglvel_y_type 0664 system system
/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_anglvel_z_en 0664 system system
/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_anglvel_z_index 0664 system system
/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_anglvel_z_type 0664 system system
# standard iio temp attributes
/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* in_temp_offset 0664 system system
/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* in_temp_raw 0664 system system
/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* in_temp_scale 0664 system system
/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* in_temp_scale_available 0664 system system

53
lineage_avicii.mk Normal file
View File

@@ -0,0 +1,53 @@
#
# Copyright (C) 2018 The LineageOS Project
#
# SPDX-License-Identifier: Apache-2.0
#
# Inherit from those products. Most specific first.
$(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit.mk)
$(call inherit-product, $(SRC_TARGET_DIR)/product/full_base_telephony.mk)
# Inherit from avicii device
$(call inherit-product, device/oneplus/avicii/device.mk)
# Inherit some common Lineage stuff.
$(call inherit-product, vendor/lineage/config/common_full_phone.mk)
# AlphaDroid Build Type & Maintainer stuff.
ALPHA_MAINTAINER := PSavarMattas
ALPHA_BUILD_TYPE := UNOFFICIAL
# Gapps Build Details.
WITH_GAPPS := false
TARGET_GAPPS_ARCH := arm64
TARGET_SUPPORTS_CALL_RECORDING := true
TARGET_SUPPORTS_GOOGLE_RECORDER := false
TARGET_INCLUDE_STOCK_ARCORE := false
TARGET_INCLUDE_LIVE_WALLPAPERS := false
# Custom stuff.
TARGET_BOOT_ANIMATION_RES := 1080
TARGET_USE_PIXEL_LAUNCHER := false
TARGET_FACE_UNLOCK_SUPPORTED := true
TARGET_SUPPORTS_QUICK_TAP := true
TARGET_ENABLE_BLUR := true
PRODUCT_NAME := lineage_avicii
PRODUCT_DEVICE := avicii
PRODUCT_MANUFACTURER := OnePlus
PRODUCT_BRAND := OnePlus
PRODUCT_MODEL := AC2003
CUSTOM_DEVICE := Nord
PRODUCT_SYSTEM_NAME := Nord
PRODUCT_SYSTEM_DEVICE := Nord
PRODUCT_GMS_CLIENTID_BASE := android-oneplus
PRODUCT_BUILD_PROP_OVERRIDES += \
PRIVATE_BUILD_DESC="Nord-user 12 RKQ1.211119.001 Q.202301091130 release-keys" \
TARGET_DEVICE=$(PRODUCT_SYSTEM_DEVICE) \
TARGET_PRODUCT=$(PRODUCT_SYSTEM_NAME)
BUILD_FINGERPRINT := OnePlus/Nord_IND/Nord:12/RKQ1.211119.001/Q.202301091130:user/release-keys

577
manifest.xml Normal file
View File

@@ -0,0 +1,577 @@
<manifest version="2.0" type="device" target-level="5">
<hal format="hidl">
<name>android.hardware.audio</name>
<transport>hwbinder</transport>
<version>6.0</version>
<interface>
<name>IDevicesFactory</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.audio.effect</name>
<transport>hwbinder</transport>
<version>6.0</version>
<interface>
<name>IEffectsFactory</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.bluetooth</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IBluetoothHci</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.bluetooth.audio</name>
<transport>hwbinder</transport>
<version>2.0</version>
<interface>
<name>IBluetoothAudioProvidersFactory</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.camera.provider</name>
<transport>hwbinder</transport>
<version>2.4</version>
<interface>
<name>ICameraProvider</name>
<instance>legacy/0</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.drm</name>
<transport>hwbinder</transport>
<fqname>@1.3::ICryptoFactory/wfdhdcp</fqname>
<fqname>@1.3::IDrmFactory/wfdhdcp</fqname>
</hal>
<hal format="hidl">
<name>android.hardware.gatekeeper</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IGatekeeper</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.keymaster</name>
<transport>hwbinder</transport>
<version>4.1</version>
<interface>
<name>IKeymasterDevice</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.media.omx</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IOmx</name>
<instance>default</instance>
</interface>
<interface>
<name>IOmxStore</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.memtrack</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IMemtrack</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.nfc</name>
<transport>hwbinder</transport>
<version>1.2</version>
<interface>
<name>INfc</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.radio</name>
<transport>hwbinder</transport>
<fqname>@1.2::ISap/slot1</fqname>
<fqname>@1.2::ISap/slot2</fqname>
<fqname>@1.5::IRadio/slot1</fqname>
<fqname>@1.5::IRadio/slot2</fqname>
</hal>
<hal format="hidl">
<name>android.hardware.radio.config</name>
<transport>hwbinder</transport>
<version>1.1</version>
<interface>
<name>IRadioConfig</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.soundtrigger</name>
<transport>hwbinder</transport>
<version>2.3</version>
<interface>
<name>ISoundTriggerHw</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.tetheroffload.config</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IOffloadConfig</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.tetheroffload.control</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IOffloadControl</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>com.dsi.ant</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IAnt</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>com.qualcomm.qti.dpm.api</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IdpmQmi</name>
<instance>dpmQmiService</instance>
</interface>
</hal>
<hal format="hidl">
<name>com.qualcomm.qti.imscmservice</name>
<transport>hwbinder</transport>
<version>2.2</version>
<interface>
<name>IImsCmService</name>
<instance>qti.ims.connectionmanagerservice</instance>
</interface>
</hal>
<hal format="hidl">
<name>com.qualcomm.qti.uceservice</name>
<transport>hwbinder</transport>
<version>2.3</version>
<interface>
<name>IUceService</name>
<instance>com.qualcomm.qti.uceservice</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.nxp.nxpnfc</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>INxpNfc</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.data.factory</name>
<transport>hwbinder</transport>
<version>2.3</version>
<interface>
<name>IFactory</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.alarm</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IAlarm</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.bluetooth_audio</name>
<transport>hwbinder</transport>
<version>2.0</version>
<interface>
<name>IBluetoothAudioProvidersFactory</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.bluetooth_sar</name>
<transport>hwbinder</transport>
<version>1.1</version>
<interface>
<name>IBluetoothSar</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.btconfigstore</name>
<transport>hwbinder</transport>
<version>2.0</version>
<interface>
<name>IBTConfigStore</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.cacert</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IService</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.camera.postproc</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IPostProcService</name>
<instance>camerapostprocservice</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.capabilityconfigstore</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>ICapabilityConfigStore</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.data.connection</name>
<transport>hwbinder</transport>
<version>1.1</version>
<interface>
<name>IDataConnection</name>
<instance>slot1</instance>
<instance>slot2</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.data.iwlan</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IIWlan</name>
<instance>slot1</instance>
<instance>slot2</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.data.latency</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>ILinkLatency</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.dsp</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IDspService</name>
<instance>dspservice</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.embmssl</name>
<transport>hwbinder</transport>
<version>1.1</version>
<interface>
<name>IEmbms</name>
<instance>embmsslServer0</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.factory</name>
<transport>hwbinder</transport>
<version>1.1</version>
<interface>
<name>IFactory</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.fm</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IFmHci</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.fstman</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IFstManager</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.mwqemadapter</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IMwqemAdapter</name>
<instance>MwqemAdapter</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.perf</name>
<transport>hwbinder</transport>
<version>2.2</version>
<interface>
<name>IPerf</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.qccvndhal</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IQccvndhal</name>
<instance>qccvndhal</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.qseecom</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IQSEECom</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.qteeconnector</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IAppConnector</name>
<instance>default</instance>
</interface>
<interface>
<name>IGPAppConnector</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.radio.am</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IQcRilAudio</name>
<instance>slot1</instance>
<instance>slot2</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.radio.ims</name>
<transport>hwbinder</transport>
<version>1.7</version>
<interface>
<name>IImsRadio</name>
<instance>imsradio0</instance>
<instance>imsradio1</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.radio.internal.deviceinfo</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IDeviceInfo</name>
<instance>deviceinfo</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.radio.qcrilhook</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IQtiOemHook</name>
<instance>oemhook0</instance>
<instance>oemhook1</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.radio.qtiradio</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IQtiRadio</name>
<instance>slot1</instance>
<instance>slot2</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.radio.qtiradio</name>
<transport>hwbinder</transport>
<version>2.4</version>
<interface>
<name>IQtiRadio</name>
<instance>slot1</instance>
<instance>slot2</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.radio.uim</name>
<transport>hwbinder</transport>
<version>1.2</version>
<interface>
<name>IUim</name>
<instance>Uim0</instance>
<instance>Uim1</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.radio.uim_remote_client</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IUimRemoteServiceClient</name>
<instance>uimRemoteClient0</instance>
<instance>uimRemoteClient1</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.radio.uim_remote_server</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IUimRemoteServiceServer</name>
<instance>uimRemoteServer0</instance>
<instance>uimRemoteServer1</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.sensorscalibrate</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>ISensorsCalibrate</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.soter</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>ISoter</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.wifi.wifilearner</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IWifiStats</name>
<instance>wifiStats</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.wifidisplaysession</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IWifiDisplaySession</name>
<instance>wifidisplaysession</instance>
</interface>
<interface>
<name>IWifiDisplaySessionAudioTrack</name>
<instance>wifidisplaysessionaudiotrack</instance>
</interface>
<interface>
<name>IWifiDisplaySessionImageTrack</name>
<instance>wifidisplaysessionimagetrack</instance>
</interface>
<interface>
<name>IWifiDisplaySessionVideoTrack</name>
<instance>wifidisplaysessionvideotrack</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.wigig.netperftuner</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>INetPerfTuner</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.wigig.supptunnel</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>ISuppTunnelProvider</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.ims.callinfo</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IService</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.ims.factory</name>
<transport>hwbinder</transport>
<version>1.1</version>
<interface>
<name>IImsFactory</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.imsrtpservice</name>
<transport>hwbinder</transport>
<version>3.0</version>
<interface>
<name>IRTPService</name>
<instance>imsrtpservice</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.qspmhal</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IQspmhal</name>
<instance>default</instance>
</interface>
</hal>
</manifest>

15
manifest_odm.xml Normal file
View File

@@ -0,0 +1,15 @@
<manifest version="2.0" type="device">
<hal format="hidl" override="true">
<name>vendor.lineage.touch</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IHighTouchPollingRate</name>
<instance>default</instance>
</interface>
<interface>
<name>ITouchscreenGesture</name>
<instance>default</instance>
</interface>
</hal>
</manifest>

6
odm.prop Normal file
View File

@@ -0,0 +1,6 @@
# Audio
ro.audio.monitorRotation=true
ro.config.media_vol_steps=30
ro.config.vc_call_vol_steps=9
ro.vendor.audio.sdk.fluencetype=fluence
ro.vendor.qti.va_odm.support=1

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2022 The LineageOS Project
SPDX-License-Identifier: Apache-2.0
-->
<resources>
<!-- Threshold in micro watts below which a charger is rated as "slow"; 1A @ 5V -->
<integer name="config_chargingSlowlyThreshold">1500</integer>
<!-- Threshold in micro watts above which a charger is rated as "fast"; 1.5A @ 5V -->
<integer name="config_chargingFastThreshold">2500</integer>
</resources>

View File

@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2022 The LineageOS Project
SPDX-License-Identifier: Apache-2.0
-->
<resources>
<!-- Color of the UDFPS Pressed view -->
<color name="config_udfpsColor">#ccccac</color>
<!-- Allow devices override audio panel location to the left side -->
<bool name="config_audioPanelOnLeftSide">true</bool>
<!-- FPSInfoService FPS node file path -->
<string name="config_fpsInfoSysNode" translatable="false">/sys/class/drm/sde-crtc-0/measured_fps</string>
<!-- The CPU temperature divider, if needed -->
<integer name="config_cpuTempDivider" translatable="false">1000</integer>
<!-- Should we vibrate on an icon animation of the shelf. This should only be active if the
vibrator is capable of subtle vibrations -->
<bool name="config_vibrateOnIconAnimation">true</bool>
<!-- Charging info current divider, if needed -->
<integer name="config_currentInfoDivider" translatable="false">1</integer>
</resources>

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2021-2022 The LineageOS Project
SPDX-License-Identifier: Apache-2.0
-->
<resources>
<!-- Sensor types -->
<string name="pickup_sensor_type">android.sensor.tilt_detector</string>
<!-- Sensor trigger values -->
<item name="pickup_sensor_value" format="float" type="dimen">0.0</item>
</resources>

View File

@@ -0,0 +1,81 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2015-2016 The CyanogenMod Project
2017-2021 The LineageOS Project
SPDX-License-Identifier: Apache-2.0
-->
<resources>
<!-- Default value for proximity check on screen wake
NOTE ! - Enable for devices that have a fast response proximity sensor (ideally < 300ms)-->
<bool name="config_proximityCheckOnWake">true</bool>
<bool name="config_proximityCheckOnWakeEnabledByDefault">true</bool>
<!-- Paths to the libraries that contain device specific key handlers -->
<string-array name="config_deviceKeyHandlerLibs" translatable="false">
<item>/system_ext/app/KeyHandler/KeyHandler.apk</item>
<item>/system_ext/priv-app/LineageParts/LineageParts.apk</item>
</string-array>
<!-- Names of the key handler classes -->
<string-array name="config_deviceKeyHandlerClasses" translatable="false">
<item>org.lineageos.settings.device.KeyHandler</item>
<item>org.lineageos.lineageparts.gestures.KeyHandler</item>
</string-array>
<!-- Hardware keys present on the device, stored as a bit field.
This integer should equal the sum of the corresponding value for each
of the following keys present:
1 - Home
2 - Back
4 - Menu
8 - Assistant (search)
16 - App switch
32 - Camera
64 - Volume rocker
For example, a device with Home, Back and Menu keys would set this
config to 7. -->
<integer name="config_deviceHardwareKeys">64</integer>
<!-- Hardware keys present on the device with the ability to wake, stored as a bit field.
This integer should equal the sum of the corresponding value for each
of the following keys present:
1 - Home
2 - Back
4 - Menu
8 - Assistant (search)
16 - App switch
32 - Camera
64 - Volume rocker
For example, a device with Home, Back and Menu keys would set this
config to 7. -->
<integer name="config_deviceHardwareWakeKeys">64</integer>
<!-- Whether device has screen with higher aspect ratio -->
<bool name="config_haveHigherAspectRatioScreen">true</bool>
<!-- The list of package IDs that are not allowed to use aux cameras. -->
<string-array name="config_cameraAuxPackageExcludeList" translatable="false">
<item>org.telegram.messenger</item>
<item>org.thunderdog.challegram</item>
<item>us.zoom.videomeetings</item>
</string-array>
<!-- Whether devices suports in-display fingerprint when screen is off -->
<bool name="config_supportsScreenOffUdfps">true</bool>
<!-- The list of package IDs that are allowed to skip camera high frame rate checks. -->
<string-array name="config_cameraHFRPrivAppList" translatable="false">
<item>com.android.camera</item>
<item>org.lineageos.aperture</item>
</string-array>
<!-- Defines the actions shown in advanced reboot submenu -->
<string-array name="config_restartActionsList">
<item>restart</item>
<item>restart_systemui</item>
<item>restart_recovery</item>
<item>restart_bootloader</item>
<item>restart_fastboot</item>
</string-array>
</resources>

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2014-2015 The CyanogenMod Project
2019-2021 The LineageOS Project
SPDX-License-Identifier: Apache-2.0
-->
<resources>
<!-- Default for LineageSettings.Secure.VOLUME_PANEL_ON_LEFT -->
<bool name="def_volume_panel_on_left">true</bool>
</resources>

View File

@@ -0,0 +1,53 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
SPDX-FileCopyrightText: 2022 The LineageOS Project
SPDX-License-Identifier: Apache-2.0
-->
<resources>
<!-- Enable auxiliary cameras selector. -->
<bool name="config_enableAuxCameras">true</bool>
<!-- List of ID of auxiliary cameras that must be ignored by the app. -->
<string-array name="config_ignoredAuxCameraIds">
<item>3</item>
<item>4</item>
</string-array>
<!-- List of ID of camera devices that doesn't advertise
REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE yet are
able to produce a JPEG or a YUV stream. The camera IDs specified
here won't be excluded by CameraX. Please be sure to test all
modes exposed by the app with those cameras. -->
<string-array name="config_backwardCompatibleCameraIds">
<item>2</item>
<item>5</item>
</string-array>
<!-- An array of triplets made of (camera ID, qualities, framerates).
These video modes will be added to the available
quality/framerate combinations of a camera device.
Make sure the device is able to handle those configurations
and maintain a stable framerate at any condition.
Note that you can't add video qualities that aren't
exposed by the camera, only new framerates.
Valid values of resolution are:
- "sd" (480p)
- "hd" (720p)
- "fhd" (1080p)
- "uhd" (2160p)
Valid values of framerate are:
- "24"
- "30"
- "60"
- "120"
Example:
<string-array name="config_additionalVideoConfigurations">
<item>0</item> <item>sd|hd|fhd</item> <item>60|120</item>
<item>1</item> <item>sd|hd|fhd</item> <item>60</item>
</string-array>
-->
<string-array name="config_additionalVideoConfigurations">
<item>0</item> <item>sd|hd|fhd|uhd</item> <item>60</item>
<item>1</item> <item>sd|hd|fhd</item> <item>60</item>
</string-array>
</resources>

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (C) 2016 The CyanogenMod Project
SPDX-License-Identifier: Apache-2.0
-->
<resources>
<bool name="call_recording_enabled">true</bool>
<integer name="call_recording_audio_source">4</integer>
</resources>

View File

@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2022 The LineageOS Project
SPDX-License-Identifier: Apache-2.0
-->
<resources>
<!-- Defines the location of the fingerprint sensor on the device
0 = back
1 = front
2 = left side
3 = right side
-->
<integer name="config_fingerprintSensorLocation">1</integer>
<!-- Max network scan search time in seconds -->
<integer name="config_network_scan_helper_max_search_time_sec">254</integer>
<string name="pickup_sensor" translatable="false">android.sensor.tilt_detector</string>
<!-- Sensor trigger values -->
<item name="pickup_sensor_value" format="float" type="dimen">0.0</item>
<!-- Whether to show peak refresh rate in display settings -->
<bool name="config_show_peak_refresh_rate_switch">true</bool>
<!-- Whether to show min refresh rate in display settings -->
<bool name="config_show_min_refresh_rate_switch">true</bool>
</resources>

View File

@@ -0,0 +1,10 @@
//
// Copyright (C) 2022 The LineageOS Project
// SPDX-License-Identifier: Apache-2.0
//
runtime_resource_overlay {
name: "CarrierConfigResCommon",
aaptflags: ["--keep-raw-values"],
product_specific: true,
}

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2022 The LineageOS Project
SPDX-License-Identifier: Apache-2.0
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.carrierconfig.overlay.common">
<overlay
android:isStatic="true"
android:priority="200"
android:targetPackage="com.android.carrierconfig" />
</manifest>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,9 @@
//
// Copyright (C) 2022 The LineageOS Project
// SPDX-License-Identifier: Apache-2.0
//
runtime_resource_overlay {
name: "FrameworksResTarget",
vendor: true,
}

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2022 The LineageOS Project
SPDX-License-Identifier: Apache-2.0
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="android.overlay.target">
<overlay
android:isStatic="true"
android:priority="250"
android:targetPackage="android" />
</manifest>

View File

@@ -0,0 +1,162 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2022 The Linux Foundation
SPDX-License-Identifier: BSD-3-Clause
-->
<resources>
<!-- Control whether the always on display mode is available. This should only be enabled on
devices where the display has been tuned to be power efficient in DOZE and/or DOZE_SUSPEND
states. -->
<bool name="config_dozeAlwaysOnDisplayAvailable">true</bool>
<!-- Whether a software navigation bar should be shown. NOTE: in the future this may be
autodetected from the Configuration. -->
<bool name="config_showNavigationBar">true</bool>
<!-- When true use the linux /dev/input/event subsystem to detect the switch changes
on the headphone/microphone jack. When false use the older uevent framework. -->
<bool name="config_useDevInputEventForAudioJack">true</bool>
<!-- Telephony qualified networks service package name to bind to by default. -->
<string name="config_qualified_networks_service_package" translatable="false">vendor.qti.iwlan</string>
<!-- IWLAN data service package name to bind to by default. If none is specified in an overlay, an
empty string is passed in -->
<string name="config_wlan_data_service_package" translatable="false">vendor.qti.iwlan</string>
<!-- IWLAN network service package name to bind to by default. If none is specified in an overlay, an
empty string is passed in -->
<string name="config_wlan_network_service_package" translatable="false">vendor.qti.iwlan</string>
<!-- Default files to pin via Pinner Service -->
<string-array name="config_defaultPinnerServiceFiles">
<item>/system/framework/arm64/boot-framework.oat</item>
<item>/system/framework/arm/boot-framework.oat</item>
<item>/apex/com.android.art/javalib/arm64/boot-core-libart.oat</item>
<item>/apex/com.android.art/javalib/arm/boot-core-libart.oat</item>
<item>/apex/com.android.art/javalib/arm64/boot-okhttp.oat</item>
<item>/apex/com.android.art/javalib/arm/boot-okhttp.oat</item>
<item>/apex/com.android.art/javalib/arm64/boot.vdex</item>
<item>/apex/com.android.art/javalib/arm/boot.vdex</item>
<item>/apex/com.android.art/javalib/arm64/boot-core-libart.vdex</item>
<item>/apex/com.android.art/javalib/arm/boot-core-libart.vdex</item>
<item>/apex/com.android.art/javalib/arm64/boot-core-libart.art</item>
<item>/apex/com.android.art/javalib/arm/boot-core-libart.art</item>
<item>/system/framework/framework-res.apk</item>
<item>/system/lib64/libhwui.so</item>
<item>/system/lib/libhwui.so</item>
<item>/system/framework/boot-framework.vdex</item>
<item>/system/framework/oat/arm64/services.vdex</item>
<item>/system/framework/oat/arm64/services.odex</item>
<item>/apex/com.android.art/javalib/arm64/boot.oat</item>
<item>/apex/com.android.art/javalib/arm/boot.oat</item>
<item>/system/framework/telephony-common.jar</item>
<item>/system/framework/arm64/boot-telephony-common.art</item>
<item>/system/lib64/libsurfaceflinger.so</item>
<item>/apex/com.android.art/javalib/core-oj.jar</item>
<item>/apex/com.android.art/javalib/core-libart.jar</item>
</string-array>
<!-- List of biometric sensors on the device, in decreasing strength. Consumed by AuthService
when registering authenticators with BiometricService. Format must be ID:Modality:Strength,
where: IDs are unique per device, Modality as defined in BiometricAuthenticator.java,
and Strength as defined in Authenticators.java -->
<string-array name="config_biometric_sensors" translatable="false" >
<item>0:2:15</item>
</string-array>
<!-- Whether the device enable the standalone (SA) mode of 5G NR.-->
<bool name="config_telephony5gStandalone">true</bool>
<!-- Whether the device enable the non-standalone (NSA) mode of 5G NR.-->
<bool name="config_telephony5gNonStandalone">true</bool>
<!-- The default journal mode to use use when Write-Ahead Logging is not active.
Choices are: OFF, DELETE, TRUNCATE, PERSIST and MEMORY.
PERSIST may improve performance by reducing how often journal blocks are
reallocated (compared to truncation) resulting in better data block locality
and less churn of the storage media.
The PERSIST mode results in data persisting in the journal beyond the life of
a transaction, so it interacts poorly with SECURE_DELETE. -->
<string name="db_default_journal_mode" translatable="false">MEMORY</string>
<!-- The database synchronization mode when using the default journal mode.
FULL is safest and preserves durability at the cost of extra fsyncs.
NORMAL also preserves durability in non-WAL modes and uses checksums to ensure
integrity although there is a small chance that an error might go unnoticed.
Choices are: FULL, NORMAL, OFF. -->
<string name="db_default_sync_mode" translatable="false">OFF</string>
<!-- The database synchronization mode when using Write-Ahead Logging.
From https://www.sqlite.org/pragma.html#pragma_synchronous:
WAL mode is safe from corruption with synchronous=NORMAL, and probably DELETE mode is safe
too on modern filesystems. WAL mode is always consistent with synchronous=NORMAL, but WAL
mode does lose durability. A transaction committed in WAL mode with
synchronous=NORMAL might roll back following a power loss or system crash.
Transactions are durable across application crashes regardless of the synchronous setting
or journal mode. The synchronous=NORMAL setting is a good choice for most applications
running in WAL mode.
Choices are: FULL, NORMAL, OFF. -->
<string name="db_wal_sync_mode" translatable="false">OFF</string>
<!-- Whether device has physical tri state switch -->
<bool name="config_hasAlertSlider">true</bool>
<!-- The location of the devices physical tri state switch
0: Left side
1: Right side -->
<integer name="config_alertSliderLocation">1</integer>
<!-- Whether doze feature is enabled by default in settings -->
<bool name="config_doze_enabled_by_default">true</bool>
<!-- Power Management: Specifies whether to decouple the auto-suspend state of the
device from the display on/off state.
When false, autosuspend_disable() will be called before the display is turned on
and autosuspend_enable() will be called after the display is turned off.
This mode provides best compatibility for devices using legacy power management
features such as early suspend / late resume.
When true, autosuspend_display() and autosuspend_enable() will be called
independently of whether the display is being turned on or off. This mode
enables the power manager to suspend the application processor while the
display is on.
This resource should be set to "true" when a doze component has been specified
to maximize power savings but not all devices support it.
Refer to autosuspend.h for details.
-->
<bool name="config_powerDecoupleAutoSuspendModeFromDisplay">true</bool>
<!-- Power Management: Specifies whether to decouple the interactive state of the
device from the display on/off state.
When false, setInteractive(..., true) will be called before the display is turned on
and setInteractive(..., false) will be called after the display is turned off.
This mode provides best compatibility for devices that expect the interactive
state to be tied to the display state.
When true, setInteractive(...) will be called independently of whether the display
is being turned on or off. This mode enables the power manager to reduce
clocks and disable the touch controller while the display is on.
This resource should be set to "true" when a doze component has been specified
to maximize power savings but not all devices support it.
Refer to power.h for details.
-->
<bool name="config_powerDecoupleInteractiveModeFromDisplay">true</bool>
<!-- If this is true, the screen will come on when you unplug usb/power/whatever. -->
<bool name="config_unplugTurnsOnScreen">true</bool>
<!-- Whether device supports sensor based doze customizations -->
<bool name="config_dozePulsePickup">true</bool>
<bool name="config_dozePulseTilt">true</bool>
<bool name="config_dozePulseProximity">true</bool>
<bool name="config_deviceHaveWakeUpProximity">true</bool>
<!-- The maximum range of gamma adjustment possible using the screen
auto-brightness adjustment setting. -->
<fraction name="config_autoBrightnessAdjustmentMaxGamma">150%</fraction>
<!-- Flag indicating whether notification and ringtone volumes
are controlled together (aliasing is true) or not. -->
<bool name="config_alias_ring_notif_stream_types">false</bool>
</resources>

View File

@@ -0,0 +1,9 @@
//
// Copyright (C) 2022 The LineageOS Project
// SPDX-License-Identifier: Apache-2.0
//
runtime_resource_overlay {
name: "OPlusFrameworksResCommon",
device_specific: true,
}

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2022 The LineageOS Project
SPDX-License-Identifier: Apache-2.0
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="android.overlay.oplus">
<overlay
android:isStatic="true"
android:priority="300"
android:targetPackage="android" />
</manifest>

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2022 The LineageOS Project
SPDX-License-Identifier: Apache-2.0
-->
<resources>
<!-- MMS user agent string -->
<string name="config_mms_user_agent" translatable="false">odopg1917</string>
<!-- MMS user agent prolfile url -->
<string name="config_mms_user_agent_profile_url" translatable="false">http://uaprof.vtext.com/oneplus/odopg1917/odopg1917.xml</string>
</resources>

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2022 The LineageOS Project
SPDX-License-Identifier: Apache-2.0
-->
<resources>
<!-- MMS user agent string -->
<string name="config_mms_user_agent" translatable="false">odopg1917</string>
<!-- MMS user agent prolfile url -->
<string name="config_mms_user_agent_profile_url" translatable="false">http://uaprof.vtext.com/oneplus/odopg1917/odopg1917.xml</string>
</resources>

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2022 The LineageOS Project
SPDX-License-Identifier: Apache-2.0
-->
<resources>
<!-- MMS user agent string -->
<string name="config_mms_user_agent" translatable="false">odopg1917</string>
<!-- MMS user agent prolfile url -->
<string name="config_mms_user_agent_profile_url" translatable="false">http://uaprof.vtext.com/oneplus/odopg1917/odopg1917.xml</string>
</resources>

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2022 The LineageOS Project
SPDX-License-Identifier: Apache-2.0
-->
<resources>
<!-- MMS user agent string -->
<string name="config_mms_user_agent" translatable="false">odopg1917</string>
<!-- MMS user agent prolfile url -->
<string name="config_mms_user_agent_profile_url" translatable="false">http://uaprof.vtext.com/oneplus/odopg1917/odopg1917.xml</string>
</resources>

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2022 The LineageOS Project
SPDX-License-Identifier: Apache-2.0
-->
<resources>
<!-- MMS user agent string -->
<string name="config_mms_user_agent" translatable="false">odopg1917</string>
<!-- MMS user agent prolfile url -->
<string name="config_mms_user_agent_profile_url" translatable="false">http://uaprof.vtext.com/oneplus/odopg1917/odopg1917.xml</string>
</resources>

View File

@@ -0,0 +1,179 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2022 The LineageOS Project
SPDX-License-Identifier: Apache-2.0
-->
<resources>
<!-- Indicate whether closing the lid causes the device to go to sleep and opening
it causes the device to wake up.
The default is false. -->
<bool name="config_lidControlsSleep">true</bool>
<!-- True if home app should be pinned via Pinner Service -->
<bool name="config_pinnerHomeApp">true</bool>
<!-- Indicate whether to allow the device to suspend when the screen is off
due to the proximity sensor. This resource should only be set to true
if the sensor HAL correctly handles the proximity sensor as a wake-up source.
Otherwise, the device may fail to wake out of suspend reliably.
The default is false. -->
<bool name="config_suspendWhenScreenOffDueToProximity">true</bool>
<!-- Whether device supports double tap to wake -->
<bool name="config_supportDoubleTapWake">true</bool>
<!-- True if the device supports Sustained Performance Mode-->
<bool name="config_sustainedPerformanceModeSupported">true</bool>
<!-- Vibrator pattern for feedback about a long screen/key press -->
<integer-array name="config_longPressVibePattern">
<item>0</item>
<item>10</item>
</integer-array>
<!-- Vibrator pattern for feedback about touching a virtual key -->
<integer-array name="config_virtualKeyVibePattern">
<item>0</item>
<item>10</item>
</integer-array>
<!-- Vibrator pattern for a very short but reliable vibration for soft keyboard tap -->
<integer-array name="config_keyboardTapVibePattern">
<item>10</item>
</integer-array>
<!-- Indicate available ColorDisplayManager.COLOR_MODE_xxx. -->
<integer-array name="config_availableColorModes">
<item>0</item>
<item>256</item>
<item>258</item>
<item>259</item>
</integer-array>
<!-- Default list of files pinned by the Pinner Service -->
<string-array translatable="false" name="config_defaultPinnerServiceFiles">
<item>"/apex/com.android.art/javalib/core-oj.jar"</item>
<item>"/apex/com.android.art/javalib/core-libart.jar"</item>
<item>"/system/bin/surfaceflinger"</item>
<item>"/system/framework/ext.jar"</item>
<item>"/system/framework/framework.jar"</item>
<item>"/system/framework/services.jar"</item>
<item>"/system/lib/libEGL.so"</item>
<item>"/system/lib/libGLESv1_CM.so"</item>
<item>"/system/lib/libGLESv2.so"</item>
<item>"/system/lib/libGLESv3.so"</item>
<item>"/system/lib/libgui.so"</item>
<item>"/system/lib/libhwui.so"</item>
<item>"/system/lib/libui.so"</item>
<item>"/system/lib/libvulkan.so"</item>
<item>"/system/lib64/libEGL.so"</item>
<item>"/system/lib64/libGLESv1_CM.so"</item>
<item>"/system/lib64/libGLESv2.so"</item>
<item>"/system/lib64/libGLESv3.so"</item>
<item>"/system/lib64/libgui.so"</item>
<item>"/system/lib64/libhwui.so"</item>
<item>"/system/lib64/libui.so"</item>
<item>"/system/lib64/libvulkan.so"</item>
<item>"/system_ext/priv-app/SystemUI/SystemUI.apk"</item>
<item>"/vendor/lib/egl/eglSubDriverAndroid.so"</item>
<item>"/vendor/lib/egl/libEGL_adreno.so"</item>
<item>"/vendor/lib/egl/libGLESv1_CM_adreno.so"</item>
<item>"/vendor/lib/egl/libGLESv2_adreno.so"</item>
<item>"/vendor/lib/hw/vulkan.adreno.so"</item>
<item>"/vendor/lib/libCB.so"</item>
<item>"/vendor/lib/libOpenCL.so"</item>
<item>"/vendor/lib/libadreno_utils.so"</item>
<item>"/vendor/lib/libgpudataproducer.so"</item>
<item>"/vendor/lib/libgsl.so"</item>
<item>"/vendor/lib/libllvm-glnext.so"</item>
<item>"/vendor/lib/libllvm-qcom.so"</item>
<item>"/vendor/lib64/libcamxexternalformatutils.so"</item>
<item>"/vendor/lib64/libipebpsstriping.so"</item>
<item>"/vendor/lib64/egl/eglSubDriverAndroid.so"</item>
<item>"/vendor/lib64/egl/libEGL_adreno.so"</item>
<item>"/vendor/lib64/egl/libGLESv1_CM_adreno.so"</item>
<item>"/vendor/lib64/egl/libGLESv2_adreno.so"</item>
<item>"/vendor/lib64/hw/vulkan.adreno.so"</item>
<item>"/vendor/lib64/libCB.so"</item>
<item>"/vendor/lib64/libOpenCL.so"</item>
<item>"/vendor/lib64/libadreno_utils.so"</item>
<item>"/vendor/lib64/libgpudataproducer.so"</item>
<item>"/vendor/lib64/libgsl.so"</item>
<item>"/vendor/lib64/libllvm-glnext.so"</item>
<item>"/vendor/lib64/libllvm-qcom.so"</item>
</string-array>
<!-- Screen brightness used to dim the screen while dozing in a very low power state.
May be less than the minimum allowed brightness setting
that can be set by the user. -->
<integer name="config_screenBrightnessDoze">17</integer>
<!-- Control whether the always on display mode is enabled by default. This value will be used
during initialization when the setting is still null. -->
<bool name="config_dozeAlwaysOnEnabled">false</bool>
<!-- Type of the udfps long press sensor. Empty if long press is not supported. -->
<string name="config_dozeUdfpsLongPressSensorType" translatable="false">org.lineageos.sensor.udfps</string>
<!-- Flag specifying whether WFC over IMS should be available for carrier: independent of
carrier provisioning. If false: hard disabled. If true: then depends on carrier
provisioning, availability etc -->
<bool name="config_carrier_wfc_ims_available">true</bool>
<!-- Whether the new Auto Selection Network UI should be shown -->
<bool name="config_enableNewAutoSelectNetworkUI">true</bool>
<!-- Safe headphone volume index. When music stream volume is below this index
the SPL on headphone output is compliant to EN 60950 requirements for portable music
players. -->
<integer name="config_safe_media_volume_index">18</integer>
<!-- Safe USB headset gain. This value is used to ensure that the SPL on the USB
headset output is compliant to EN 60950 requirements for portable music players. -->
<integer name="config_safe_media_volume_usb_mB">-1650</integer>
<!-- Power Management: Specifies whether to decouple the auto-suspend state of the
device from the display on/off state.
When false, autosuspend_disable() will be called before the display is turned on
and autosuspend_enable() will be called after the display is turned off.
This mode provides best compatibility for devices using legacy power management
features such as early suspend / late resume.
When true, autosuspend_display() and autosuspend_enable() will be called
independently of whether the display is being turned on or off. This mode
enables the power manager to suspend the application processor while the
display is on.
This resource should be set to "true" when a doze component has been specified
to maximize power savings but not all devices support it.
Refer to autosuspend.h for details.
-->
<bool name="config_powerDecoupleAutoSuspendModeFromDisplay">true</bool>
<!-- Enables or disables haptic effect when the text insertion/selection handle is moved
manually by the user. Off by default, since the expected haptic feedback may not be
available on some devices. -->
<bool name="config_enableHapticTextHandle">true</bool>
<!-- Whether device has warp charging support -->
<bool name="config_hasWarpCharger">true</bool>
<!-- Path to warp charging status file -->
<string name="config_WarpChargerStatusPath">/sys/devices/virtual/oplus_chg/battery/voocchg_ing</string>
<!-- Whether devices suports in-display fingerprint when screen is off -->
<bool name="config_supportScreenOffUdfps">true</bool>
<!-- If true, the display will be shifted around in ambient mode. -->
<bool name="config_enableBurnInProtection">true</bool>
<!-- Smart charging -->
<bool name="config_smartChargingAvailable">true</bool>
<string name="config_smartChargingSysfsNode" translatable="false">/sys/devices/virtual/oplus_chg/battery/mmi_charging_enable</string>
<string name="config_smartChargingSuspendValue" translatable="false">0</string>
<string name="config_smartChargingResumeValue" translatable="false">1</string>
</resources>

View File

@@ -0,0 +1,9 @@
//
// Copyright (C) 2022 The LineageOS Project
// SPDX-License-Identifier: Apache-2.0
//
runtime_resource_overlay {
name: "OPlusFrameworksResTarget",
device_specific: true,
}

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2022 The LineageOS Project
SPDX-License-Identifier: Apache-2.0
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="android.overlay.oplus.target">
<overlay
android:isStatic="true"
android:priority="350"
android:targetPackage="android" />
</manifest>

View File

@@ -0,0 +1,379 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2022 The LineageOS Project
SPDX-License-Identifier: Apache-2.0
-->
<resources>
<!-- Flag indicating whether the we should enable the automatic brightness in Settings.
Software implementation will be used if config_hardware_auto_brightness_available is not set -->
<bool name="config_automatic_brightness_available">true</bool>
<!-- Array of hysteresis constraint values for brightening, represented as tenths of a
percent. The length of this array is assumed to be one greater than
config_ambientThresholdLevels. The brightening threshold is calculated as
lux * (1.0f + CONSTRAINT_VALUE). When the current lux is higher than this threshold,
the screen brightness is recalculated. See the config_ambientThresholdLevels
description for how the constraint value is chosen. -->
<integer-array name="config_ambientBrighteningThresholds">
<item>100</item>
</integer-array>
<!-- Array of hysteresis constraint values for darkening, represented as tenths of a
percent. The length of this array is assumed to be one greater than
config_ambientThresholdLevels. The darkening threshold is calculated as
lux * (1.0f - CONSTRAINT_VALUE). When the current lux is lower than this threshold,
the screen brightness is recalculated. See the config_ambientThresholdLevels
description for how the constraint value is chosen. -->
<integer-array name="config_ambientDarkeningThresholds">
<item>200</item>
</integer-array>
<!-- Array of hysteresis constraint values for brightening, represented as tenths of a
percent. The length of this array is assumed to be one greater than
config_screenThresholdLevels. The brightening threshold is calculated as
screenBrightness * (1.0f + CONSTRAINT_VALUE). When the new screen brightness is higher
than this threshold, it is applied. See the config_screenThresholdLevels description for
how the constraint value is chosen. -->
<integer-array name="config_screenBrighteningThresholds">
<item>100</item>
</integer-array>
<!-- Array of light sensor lux values to define our levels for auto backlight brightness support.
The N entries of this array define N + 1 control points as follows:
(1-based arrays)
Point 1: (0, value[1]): lux <= 0
Point 2: (level[1], value[2]): 0 < lux <= level[1]
Point 3: (level[2], value[3]): level[2] < lux <= level[3]
...
Point N+1: (level[N], value[N+1]): level[N] < lux
The control points must be strictly increasing. Each control point
corresponds to an entry in the brightness backlight values arrays.
For example, if lux == level[1] (first element of the levels array)
then the brightness will be determined by value[2] (second element
of the brightness values array).
Spline interpolation is used to determine the auto-brightness
backlight values for lux levels between these control points.
Must be overridden in platform specific overlays -->
<integer-array name="config_autoBrightnessLevels">
<item>1</item>
<item>4</item>
<item>12</item>
<item>20</item>
<item>28</item>
<item>47</item>
<item>63</item>
<item>86</item>
<item>150</item>
<item>160</item>
<item>220</item>
<item>270</item>
<item>360</item>
<item>420</item>
<item>510</item>
<item>620</item>
<item>1000</item>
<item>2000</item>
<item>3100</item>
<item>5000</item>
<item>8000</item>
<item>12000</item>
</integer-array>
<!-- Array of desired screen brightness in nits corresponding to the lux values
in the config_autoBrightnessLevels array. As with config_screenBrightnessMinimumNits and
config_screenBrightnessMaximumNits, the display brightness is defined as the measured
brightness of an all-white image.
If this is defined then:
- config_autoBrightnessLcdBacklightValues should not be defined
- config_screenBrightnessNits must be defined
- config_screenBrightnessBacklight must be defined
This array should have size one greater than the size of the config_autoBrightnessLevels
array. The brightness values must be non-negative and non-decreasing. This must be
overridden in platform specific overlays -->
<array name="config_autoBrightnessDisplayValuesNits">
<item>2.0487</item>
<item>4.8394</item>
<item>17.2619</item>
<item>39.2619</item>
<item>50.671</item>
<item>72.95</item>
<item>80.46</item>
<item>84.38</item>
<item>89.51</item>
<item>100.34</item>
<item>102.21</item>
<item>109.48</item>
<item>114.19</item>
<item>123.86</item>
<item>129.18</item>
<item>138.07</item>
<item>145.62</item>
<item>168.84</item>
<item>234.9</item>
<item>291</item>
<item>370</item>
<item>492</item>
<item>580</item>
</array>
<!-- An array of floats describing the screen brightness in nits corresponding to the backlight
values in the config_screenBrightnessBacklight array. On OLED displays these values
should be measured with an all white image while the display is in the fully on state.
Note that this value should *not* reflect the maximum brightness value for any high
brightness modes but only the maximum brightness value obtainable in a sustainable manner.
This array should be equal in size to config_screenBrightnessBacklight -->
<array name="config_screenBrightnessNits">
<item>0</item>
<item>7.4682</item>
<item>15.0705</item>
<item>23.3737</item>
<item>31.2438</item>
<item>39.556</item>
<item>47.8227</item>
<item>56.0794</item>
<item>63.6139</item>
<item>71.5684</item>
<item>79.4638</item>
<item>86.8793</item>
<item>95.0577</item>
<item>103.0389</item>
<item>110.3256</item>
<item>116.746</item>
<item>124.7228</item>
<item>132.68</item>
<item>140.816</item>
<item>148.471</item>
<item>156.752</item>
<item>164.2611</item>
<item>171.5288</item>
<item>179.0178</item>
<item>186.723</item>
<item>193.96</item>
<item>201.9487</item>
<item>210.1148</item>
<item>217.832</item>
<item>224.691</item>
<item>232.942</item>
<item>237.811</item>
<item>245.177</item>
<item>253.304</item>
<item>261.06</item>
<item>269.164</item>
<item>276.811</item>
<item>283.647</item>
<item>291.413</item>
<item>299.125</item>
<item>306.583</item>
<item>314.72</item>
<item>324.95</item>
<item>333.416</item>
<item>341.499</item>
<item>349.777</item>
<item>360.449</item>
<item>369.452</item>
<item>378.102</item>
<item>387.462</item>
<item>395.925</item>
<item>405.191</item>
<item>415.583</item>
<item>423.5969</item>
<item>431.942</item>
<item>443.721</item>
<item>451.548</item>
<item>460.075</item>
<item>471.569</item>
<item>479.598</item>
<item>488.626</item>
<item>496.3005</item>
<item>506.5896</item>
<item>518.187</item>
<item>529.5164</item>
</array>
<!-- An array describing the screen's backlight values corresponding to the brightness
values in the config_screenBrightnessNits array.
This array should be equal in size to config_screenBrightnessBacklight. -->
<integer-array name="config_screenBrightnessBacklight">
<item>0</item>
<item>4</item>
<item>8</item>
<item>12</item>
<item>16</item>
<item>20</item>
<item>24</item>
<item>28</item>
<item>32</item>
<item>36</item>
<item>40</item>
<item>44</item>
<item>48</item>
<item>52</item>
<item>56</item>
<item>60</item>
<item>64</item>
<item>68</item>
<item>72</item>
<item>76</item>
<item>80</item>
<item>84</item>
<item>88</item>
<item>92</item>
<item>96</item>
<item>100</item>
<item>104</item>
<item>108</item>
<item>112</item>
<item>116</item>
<item>120</item>
<item>123</item>
<item>127</item>
<item>131</item>
<item>135</item>
<item>139</item>
<item>143</item>
<item>147</item>
<item>151</item>
<item>155</item>
<item>159</item>
<item>163</item>
<item>167</item>
<item>171</item>
<item>175</item>
<item>179</item>
<item>183</item>
<item>187</item>
<item>191</item>
<item>195</item>
<item>199</item>
<item>203</item>
<item>207</item>
<item>211</item>
<item>215</item>
<item>219</item>
<item>223</item>
<item>227</item>
<item>231</item>
<item>235</item>
<item>239</item>
<item>243</item>
<item>246</item>
<item>251</item>
<item>255</item>
</integer-array>
<!-- Screen brightness used to dim the screen when the user activity
timeout expires. May be less than the minimum allowed brightness setting
that can be set by the user. -->
<integer name="config_screenBrightnessDim">6</integer>
<!-- Default screen brightness setting set.
-2 is invalid so setting will resort to int value specified above.
Must be in the range specified by minimum and maximum. -->
<item type="dimen" name="config_screenBrightnessSettingDefaultFloat">0.1535</item>
<!-- Maximum screen brightness allowed by the power manager.
-2 is invalid so setting will resort to int value specified above.
Set this to 1.0 for maximum brightness range.
The user is forbidden from setting the brightness above this level. -->
<item type="dimen" name="config_screenBrightnessSettingMaximumFloat">1.0</item>
<!-- Minimum screen brightness setting allowed by power manager.
-2 is invalid so setting will resort to int value specified above.
Set this to 0.0 to allow screen to go to minimal brightness.
The user is forbidden from setting the brightness below this level. -->
<item type="dimen" name="config_screenBrightnessSettingMinimumFloat">0.008304836</item>
<!-- Stability requirements in milliseconds for accepting a new brightness level. This is used
for debouncing the light sensor. Different constants are used to debounce the light sensor
when adapting to brighter or darker environments. This parameter controls how quickly
brightness changes occur in response to an observed change in light level that exceeds the
hysteresis threshold. -->
<integer name="config_autoBrightnessBrighteningLightDebounce">1500</integer>
<integer name="config_autoBrightnessDarkeningLightDebounce">1500</integer>
<!-- Light sensor event rate in milliseconds for automatic brightness control. -->
<integer name="config_autoBrightnessLightSensorRate">300</integer>
<!-- The bounding path of the cutout region of the main built-in display.
Must either be empty if there is no cutout region, or a string that is parsable by
{@link android.util.PathParser}.
The path is assumed to be specified in display coordinates with pixel units and in
the display's native orientation, with the origin of the coordinate system at the
center top of the display.
To facilitate writing device-independent emulation overlays, the marker `@dp` can be
appended after the path string to interpret coordinates in dp instead of px units.
Note that a physical cutout should be configured in pixels for the best results.
-->
<string translatable="false" name="config_mainBuiltInDisplayCutout">
M -436.5 33
L -319.5 33
A 38.5 38.5 0 0 1 -281 71.5
L -281 71.5
A 38.5 38.5 0 0 1 -319.5 110
L -436.5 110
A 38.5 38.5 0 0 1 -475 71.5
L -475 71.5
A 38.5 38.5 0 0 1 -436.5 33
Z
M -475 0
L -283 0
Z
M -540 0
L -540 113
Z
</string>
<!-- Like config_mainBuiltInDisplayCutout, but this path is used to report the
one single bounding rect per device edge to the app via
{@link DisplayCutout#getBoundingRect}. Note that this path should try to match the visual
appearance of the cutout as much as possible, and may be smaller than
config_mainBuiltInDisplayCutout
-->
<string name="config_mainBuiltInDisplayCutoutRectApproximation">
M 0,0
H 285
V 113
H 0
Z
@left</string>
<!-- Whether the display cutout region of the main built-in display should be forced to
black in software (to avoid aliasing or emulate a cutout that is not physically existent).
-->
<bool name="config_fillMainBuiltInDisplayCutout">true</bool>
<!-- The default refresh rate for a given device. Change this value to set a higher default
refresh rate. If the hardware composer on the device supports display modes with a higher
refresh rate than the default value specified here, the framework may use those higher
refresh rate modes if an app chooses one by setting preferredDisplayModeId or calling
setFrameRate().
If a non-zero value is set for config_defaultPeakRefreshRate, then
config_defaultRefreshRate may be set to 0, in which case the value set for
config_defaultPeakRefreshRate will act as the default frame rate. -->
<integer name="config_defaultRefreshRate">0</integer>
<!-- The default peak refresh rate for a given device. Change this value if you want to prevent
the framework from using higher refresh rates, even if display modes with higher refresh
rates are available from hardware composer. Only has an effect if the value is
non-zero. -->
<integer name="config_defaultPeakRefreshRate">90</integer>
<!-- The properties of a UDFPS sensor in pixels, in the order listed below: -->
<integer-array name="config_udfps_sensor_props" translatable="false" >
<item>540</item> <!-- <item>sensorLocationX</item> -->
<item>2166</item> <!-- <item>sensorLocationY</item> -->
<item>102</item> <!-- <item>sensorRadius</item> -->
</integer-array>
</resources>

View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2022 The LineageOS Project
SPDX-License-Identifier: Apache-2.0
-->
<resources>
<!-- Height of the status bar.
Do not read this dimen directly. Use {@link SystemBarUtils#getStatusBarHeight} instead.
-->
<dimen name="status_bar_height_default">28dp</dimen>
<dimen name="status_bar_height_portrait">113px</dimen>
<dimen name="status_bar_height_landscape">28dp</dimen>
<!-- Default radius of the software rounded corners. -->
<dimen name="rounded_corner_radius">100px</dimen>
</resources>

View File

@@ -0,0 +1,219 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (c) 2016, The Linux Foundation. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
* Neither the name of The Linux Foundation nor the names of its
contributors may be used to endorse or promote products derived
from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
-->
<!-- project:18097 -->
<device name="Android">
<!-- Most values are the incremental current used by a feature,
in mA (measured at nominal voltage).
The default values are deliberately incorrect dummy values.
OEM's must measure and provide actual values before
shipping a device.
Example real-world values are given in comments, but they
are totally dependent on the platform and can vary
significantly, so should be measured on the shipping platform
with a power meter. -->
<item name="none">0</item>
<item name="ambient.on.display0">29.53</item>
<item name="screen.on.display0">80.09</item> <!-- ~200mA -->
<item name="screen.full.display0">241</item> <!-- ~300mA -->
<item name="bluetooth.active">80</item> <!-- Bluetooth data transfer, ~10mA -->
<item name="bluetooth.on">1</item> <!-- Bluetooth on & connectable, but not connected, ~0.1mA -->
<item name="wifi.on">1.8</item> <!-- ~3mA -->
<item name="wifi.active">180</item> <!-- WIFI data transfer, ~200mA -->
<item name="wifi.scan">120</item> <!-- WIFI network scanning, ~100mA -->
<item name="audio">0</item> <!-- ~10mA -->
<item name="video">0</item> <!-- ~50mA -->
<item name="camera.flashlight">128</item> <!-- Avg. power for camera flash, ~160mA -->
<item name="camera.avg">658</item> <!-- Avg. power use of camera in standard usecases, ~550mA -->
<item name="gps.on">75</item> <!-- ~50mA -->
<item name="audio">32.53</item> <!-- new add ~10mA -->
<item name="video">52.20</item> <!-- new add ~50mA -->
<item name="bluetooth.controller.idle">1</item> <!--new add -->
<item name="bluetooth.controller.rx">60</item> <!--new add -->
<item name="bluetooth.controller.tx">90</item> <!--new add -->
<item name="bluetooth.controller.voltage">3300</item> <!--new add -->
<!-- Radio related values. For modems without energy reporting support in firmware, use
radio.active, radio.scanning, and radio.on. -->
<item name="radio.active">191.5</item> <!-- ~200mA -->
<item name="radio.scanning">143.5</item> <!-- cellular radio scanning for signal, ~10mA -->
<!-- Current consumed by the radio at different signal strengths, when paging -->
<array name="radio.on"> <!-- Strength 0 to BINS-1 delete 1 line-->
<value>1</value> <!-- ~2mA -->
</array>
<!-- Radio related values. For modems WITH energy reporting support in firmware, use
modem.controller.idle, modem.controller.tx, modem.controller.rx, modem.controller.voltage.
-->
<item name="modem.controller.idle">1</item>
<item name="modem.controller.rx">200.8</item>
<array name="modem.controller.tx">
<value>176.4</value>
<value>246.8</value>
<value>323.3</value>
<value>484.6</value>
<value>646.8</value>
</array>
<item name="modem.controller.voltage">800</item>
<!-- A list of heterogeneous CPU clusters, where the value for each cluster represents the
number of CPU cores for that cluster.
Ex:
<array name="cpu.clusters.cores">
<value>4</value> // cluster 0 has cpu0, cpu1, cpu2, cpu3
<value>2</value> // cluster 1 has cpu4, cpu5
</array> -->
<array name="cpu.clusters.cores">
<value>6</value> <!-- cluster 0 has cpu0, cpu1, cpu2, cpu3, cpu4, cpu5 -->
<value>1</value> <!-- cluster 1 has cpu6-->
<value>1</value><!-- cluster 2 has cpu7 -->
</array>
<!-- Different CPU speeds for cluster 0 as reported in
/sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state.
There must be one of these for each cluster, labeled:
cpu.speeds.cluster0, cpu.speeds.cluster1, etc... -->
<array name="cpu.core_speeds.cluster0">
<value>300000</value> <!-- 300 MHz CPU speed -->
<value>576000</value> <!-- 576 MHz CPU speed -->
<value>614400</value> <!-- 744.8 MHz CPU speed -->
<value>864000</value> <!-- 998.4 MHz CPU speed -->
<value>1075200</value> <!-- 1209.6 MHz CPU speed -->
<value>1363200</value> <!-- 1324.8 MHz CPU speed -->
<value>1516800</value> <!-- 1516.8 MHz CPU speed -->
<value>1651200</value> <!-- 1612.8 MHz CPU speed -->
<value>1804800</value>
</array>
<array name="cpu.core_speeds.cluster1">
<value>652800</value> <!-- 300 MHz CPU speed -->
<value>940800</value> <!-- 652 MHz CPU speed -->
<value>1152000</value> <!-- 852 MHz CPU speed -->
<value>1478400</value> <!-- 979 MHz CPU speed -->
<value>1728000</value> <!-- 1132 MHz CPU speed -->
<value>1900800</value> <!-- 1363 MHz CPU speed -->
<value>2092800</value> <!-- 1536 MHz CPU speed -->
<value>2208000</value> <!-- 1747 MHz CPU speed -->
</array>
<array name="cpu.core_speeds.cluster2">
<value>806400</value> <!-- 300 MHz CPU speed -->
<value>1094400</value> <!-- 652 MHz CPU speed -->
<value>1401600</value> <!-- 852 MHz CPU speed -->
<value>1766400</value> <!-- 979 MHz CPU speed -->
<value>1996800</value> <!-- 1132 MHz CPU speed -->
<value>2188800</value> <!-- 1363 MHz CPU speed -->
<value>2304000</value> <!-- 1536 MHz CPU speed -->
<value>2400000</value> <!-- 1747 MHz CPU speed -->
</array>
<!-- Current at each CPU speed for cluster 0, as per 'cpu.speeds.cluster0'.
Like cpu.speeds.cluster0, there must be one of these present for
each heterogeneous CPU cluster. -->
<array name="cpu.core_power.cluster0">
<value>36</value> <!-- ~14mA -->
<value>38</value> <!-- ~25mA -->
<value>39</value> <!-- ~31mA -->
<value>43</value> <!-- ~46mA -->
<value>48</value> <!-- ~57mA -->
<value>55</value> <!-- ~84mA -->
<value>65</value> <!-- ~96mA -->
<value>75</value> <!-- ~114mA -->
<value>78</value>
</array>
<!-- Current at each CPU speed for cluster 1, as per 'cpu.speeds.cluster1'.
Like cpu.speeds.cluster1, there must be one of these present for
each heterogeneous CPU cluster. -->
<array name="cpu.core_power.cluster1">
<value>61</value> <!-- ~256mA -->
<value>74</value> <!-- ~307mA -->
<value>86</value> <!-- ~332mA -->
<value>118</value> <!-- ~382mA -->
<value>150</value> <!-- ~408mA -->
<value>189</value> <!-- ~448mA -->
<value>252</value> <!-- ~586mA -->
<value>263</value> <!-- ~641mA -->
</array>
<array name="cpu.core_power.cluster2">
<value>141</value> <!-- ~256mA -->
<value>175</value> <!-- ~307mA -->
<value>201</value> <!-- ~332mA -->
<value>247</value> <!-- ~382mA -->
<value>277</value> <!-- ~408mA -->
<value>314</value> <!-- ~448mA -->
<value>329</value> <!-- ~586mA -->
<value>339</value> <!-- ~641mA -->
</array>
<!-- Current when CPU is awake -->
<item name="cpu.awake">16.1</item>
<!-- Current when CPU is idle -->
<item name="cpu.idle">9.2</item>
<!-- Memory bandwidth power values in mA at the rail. There must be one value
for each bucket defined in the device tree. -->
<array name="memory.bandwidths">
<value>22.7</value> <!-- mA for bucket: 100mb/s-1.5 GB/s memory bandwidth -->
</array>
<!-- This is the battery capacity in mAh (measured at nominal voltage) -->
<item name="battery.capacity">4000</item>
<!-- Wifi related values. -->
<!-- Idle Receive current for wifi radio in mA. 0 by default-->
<item name="wifi.controller.idle">1.5</item>
<!-- Rx current for wifi radio in mA. 0 by default-->
<item name="wifi.controller.rx">170</item>
<!-- Tx current for wifi radio in mA. 0 by default-->
<item name="wifi.controller.tx">220</item>
<!-- Current at each of the wifi Tx levels in mA. The number of tx levels varies per device
and is available only of wifi chipsets which support the tx level reporting. Use
wifi.tx for other chipsets. none by default -->
<array name="wifi.controller.tx_levels"> <!-- mA -->
</array>
<!-- Operating volatage for wifi radio in mV. 0 by default-->
<item name="wifi.controller.voltage">3300</item>
<array name="wifi.batchedscan"> <!-- mA -->
<value>.0002</value> <!-- 1-8/hr -->
<value>.002</value> <!-- 9-64/hr -->
<value>.02</value> <!-- 65-512/hr -->
<value>.2</value> <!-- 513-4,096/hr -->
<value>2</value> <!-- 4097-/hr -->
</array>
</device>

View File

@@ -0,0 +1,9 @@
//
// Copyright (C) 2022 The LineageOS Project
// SPDX-License-Identifier: Apache-2.0
//
runtime_resource_overlay {
name: "OPlusSettingsProviderResTarget",
device_specific: true,
}

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2022 The LineageOS Project
SPDX-License-Identifier: Apache-2.0
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.providers.settings.overlay.oplus.target">
<overlay
android:isStatic="true"
android:priority="350"
android:targetPackage="com.android.providers.settings" />
</manifest>

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2022 The LineageOS Project
SPDX-License-Identifier: Apache-2.0
-->
<resources>
<!-- Default for Settings.Global.DEVICE_NAME $1=MODEL-->
<string name="def_device_name_simple" translatable="false">OnePlus Nord</string>
</resources>

View File

@@ -0,0 +1,9 @@
//
// Copyright (C) 2022 The LineageOS Project
// SPDX-License-Identifier: Apache-2.0
//
runtime_resource_overlay {
name: "OPlusSettingsResCommon",
device_specific: true,
}

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2022 The LineageOS Project
SPDX-License-Identifier: Apache-2.0
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.settings.overlay.oplus">
<overlay
android:isStatic="true"
android:priority="300"
android:targetPackage="com.android.settings" />
</manifest>

View File

@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2022 The LineageOS Project
SPDX-License-Identifier: Apache-2.0
-->
<resources>
<!-- Display settings screen, Color mode options. Must be the same length and order as
config_color_mode_options_values below. Only the values that also appear in
frameworks/base/core/res/res/values/config.xml's config_availableColorModes are shown. -->
<string-array name="config_color_mode_options_strings" translatable="false">
<item>Vivid</item>
<item>Natural</item>
<item>Cinematic</item>
<item>Brilliant</item>
</string-array>
<!-- Display settings screen, Color mode options. Must be the same length and order as
config_color_mode_options_strings above. Only the values that also appear in
frameworks/base/core/res/res/values/config.xml's config_availableColorModes are shown. -->
<integer-array name="config_color_mode_options_values" translatable="false">
<item>0</item>
<item>256</item>
<item>258</item>
<item>259</item>
</integer-array>
<!-- Whether to show Smooth Display feature in Settings Options -->
<bool name="config_show_smooth_display">true</bool>
</resources>

View File

@@ -0,0 +1,9 @@
//
// Copyright (C) 2022 The LineageOS Project
// SPDX-License-Identifier: Apache-2.0
//
runtime_resource_overlay {
name: "OPlusSystemUIResCommon",
device_specific: true,
}

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2022 The LineageOS Project
SPDX-License-Identifier: Apache-2.0
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.systemui.overlay.oplus">
<overlay
android:isStatic="true"
android:priority="300"
android:targetPackage="com.android.systemui" />
</manifest>

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2022 The crDroid Project
SPDX-License-Identifier: Apache-2.0
-->
<resources>
<!-- Whether to use the split 2-column notification shade -->
<bool name="config_use_split_notification_shade">true</bool>
<!-- Notifications are sized to match the width of two (of 4) qs tiles in landscape. -->
<bool name="config_skinnyNotifsInLandscape">false</bool>
</resources>

View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2022 The crDroid Project
SPDX-License-Identifier: Apache-2.0
-->
<resources>
<!-- The height of the container that holds the battery and time in the quick settings header.
Preferred over using "@*android:dimen/quick_qs_offset_height" as system icons are not always
present in quick settings (e.g. in split shade) and it's useful to be able to override this
value in such cases.
-->
<dimen name="qs_header_system_icons_area_height">0dp</dimen>
<dimen name="qs_panel_padding_top">0dp</dimen>
</resources>

View File

@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2022 The LineageOS Project
SPDX-License-Identifier: Apache-2.0
-->
<resources>
<!-- Should we vibrate on an icon animation of the shelf. This should only be active if the
vibrator is capable of subtle vibrations -->
<bool name="config_vibrateOnIconAnimation">true</bool>
<!-- Doze: does the double tap sensor need a proximity check? -->
<bool name="doze_double_tap_proximity_check">true</bool>
<!-- Doze: does the long press sensor need a proximity check? -->
<bool name="doze_long_press_proximity_check">true</bool>
<!-- FPSInfoService FPS node file path -->
<string name="config_fpsInfoSysNode" translatable="false">/sys/class/drm/sde-crtc-0/measured_fps</string>
<!-- Whether show refresh rate QS tile -->
<bool name="config_showRefreshRateQsTile">true</bool>
<!-- Update battery info every second when device is charging -->
<bool name="config_alternateFastchargeInfoUpdate">true</bool>
</resources>

View File

@@ -0,0 +1,9 @@
//
// Copyright (C) 2022 The LineageOS Project
// SPDX-License-Identifier: Apache-2.0
//
runtime_resource_overlay {
name: "OPlusSystemUIResTarget",
device_specific: true,
}

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2022 The LineageOS Project
SPDX-License-Identifier: Apache-2.0
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.systemui.overlay.oplus.target">
<overlay
android:isStatic="true"
android:priority="350"
android:targetPackage="com.android.systemui" />
</manifest>

View File

@@ -0,0 +1,11 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="200px"
android:height="200px"
android:viewportWidth="200"
android:viewportHeight="200">
<path
android:fillColor="#ff000000"
android:pathData="M 0.9401 114.6228 C 1.2391 96.1938 1.5141 79.8438 3.1211 66.8988 C 4.7241 53.9548 7.6571 44.4118 12.4421 36.1618 C 17.2261 27.9118 23.8641 20.9548 32.0031 15.8278 C 40.1411 10.7018 49.7841 7.4068 59.1171 5.3408 C 68.4501 3.2738 77.4751 2.4378 87.4811 1.9188 C 97.4861 1.3978 108.4731 1.1968 118.4451 1.0188 C 128.4151 0.8398 137.3691 0.6848 147.3201 0.5178 C 157.2691 0.3508 168.2111 0.1728 180.1961 0.0838 C 192.1791 -0.0042 205.2001 -0.0042 217.7381 -0.0042 L 0.0001 -0.0042 L 0.0001 209.8958 C 0.0001 196.6958 0.0001 185.3798 0.1621 169.4688 C 0.3211 153.5558 0.6411 133.0498 0.9401 114.6228" />
</vector>

View File

@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
* Copyright (c) 2011, 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.
*/
-->
<resources>
<!-- the padding on the start of the statusbar -->
<dimen name="status_bar_padding_start">48px</dimen>
<!-- the padding on the end of the statusbar -->
<dimen name="status_bar_padding_end">33px</dimen>
</resources>

View File

@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
** Copyright 2009, 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.
*/
-->
<!-- These resources are around just to allow their values to be customized
for different hardware and product builds. -->
<resources>
<!-- Respect drawable/rounded.xml intrinsic size for multiple radius corner path customization -->
<bool name="config_roundedCornerMultipleRadius">true</bool>
<!-- The Enrollment Progress bar for UDFPS sensor in pixels -->
<integer name="config_udfpsEnrollProgressBar" translatable="false">107</integer>
</resources>

View File

@@ -0,0 +1,53 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
* Copyright (c) 2006, 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.
*/
-->
<resources>
<!-- the padding on the start of the statusbar -->
<dimen name="status_bar_padding_start">0px</dimen>
<!-- the padding on the end of the statusbar -->
<dimen name="status_bar_padding_end">28px</dimen>
<!-- the padding on the top of the statusbar (usually 0) -->
<dimen name="status_bar_padding_top">11px</dimen>
<!-- Height of the status bar header bar when on Keyguard -->
<dimen name="status_bar_header_height_keyguard">@*android:dimen/status_bar_height</dimen>
<!-- Margin on the left side of the carrier text on Keyguard -->
<dimen name="keyguard_carrier_text_margin">@dimen/status_bar_padding_start</dimen>
<!-- Bottom margin size when fingerprint in display is active -->
<dimen name="keyguard_indication_margin_bottom">442px</dimen>
<!-- Margin on the right side of the system icon group on Keyguard. -->
<dimen name="system_icons_keyguard_padding_end">@dimen/status_bar_padding_end</dimen>
<!-- Location on the screen of the center of the physical power button. -->
<dimen name="physical_power_button_center_screen_location_y">875px</dimen>
<!-- Alert Slider UI -->
<dimen name="tri_state_down_dialog_position">627px</dimen>
<dimen name="tri_state_down_dialog_position_l">503px</dimen>
<dimen name="tri_state_middle_dialog_position">480px</dimen>
<dimen name="tri_state_middle_dialog_position_l">503px</dimen>
<dimen name="tri_state_up_dialog_position">336px</dimen>
<dimen name="tri_state_up_dialog_position_l">503px</dimen>
<dimen name="tri_state_up_dialog_position_deep">24px</dimen>
<dimen name="tri_state_up_dialog_position_deep_land">21px</dimen>
</resources>

View File

@@ -0,0 +1,9 @@
//
// Copyright (C) 2022 The LineageOS Project
// SPDX-License-Identifier: Apache-2.0
//
runtime_resource_overlay {
name: "WifiResTarget",
vendor: true,
}

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2022 The LineageOS Project
SPDX-License-Identifier: Apache-2.0
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.wifi.resources.overlay.target">
<overlay
android:isStatic="true"
android:priority="250"
android:targetName="WifiCustomization"
android:targetPackage="com.android.wifi.resources" />
</manifest>

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2022 The Linux Foundation
SPDX-License-Identifier: BSD-3-Clause
-->
<resources>
<!-- Enable concurrent restricted connectivity + internet connectivity
Note: this is conditional on the device supporting dual concurrent STAs. -->
<bool translatable="false" name="config_wifiMultiStaRestrictedConcurrencyEnabled">true</bool>
<!-- Wifi driver supports IEEE80211AX single user beamformee for softap -->
<bool name="config_wifiSoftapHeSuBeamformeeSupported">true</bool>
<!-- Wifi driver supports IEEE80211AX single user beamformer for softap -->
<bool name="config_wifiSoftapHeSuBeamformerSupported">true</bool>
<!-- Wifi driver supports IEEE80211AX for softap -->
<bool name="config_wifiSoftapIeee80211axSupported">true</bool>
</resources>

5
product.prop Normal file
View File

@@ -0,0 +1,5 @@
# Audio
af.fast_track_multiplier=1
# GMS
ro.opa.device_model_id=ga-oplus-skill-os121-211011

744
proprietary-files-caf.txt Normal file
View File

@@ -0,0 +1,744 @@
## All proprietary files from this list, unless pinned and noted otherwise, are
## from LA.UM.9.12.r1-14400-SMxx50.QSSI13.0 for VENDOR.
## from LA.QSSI.13.0.r1-09200-qssi.0 for QSSI.
# ADSP
vendor/bin/adsprpcd
vendor/etc/seccomp_policy/vendor.qti.hardware.dsp.policy
vendor/lib/vendor.qti.hardware.dsp@1.0.so
vendor/lib64/libadsp_default_listener.so
vendor/lib64/vendor.qti.hardware.dsp@1.0.so
# ANT+
vendor/lib64/hw/com.dsi.ant@1.0-impl.so
# CDSP
vendor/bin/cdsprpcd
vendor/etc/init/vendor.qti.cdsprpc-service.rc
vendor/lib/libcdsp_default_listener.so
vendor/lib/libcdsprpc.so
vendor/lib/libfastcrc.so
vendor/lib/libmdsprpc.so
vendor/lib/libsdsprpc.so
vendor/lib/libsysmon_cdsp_skel.so
vendor/lib64/libcdfw.so
vendor/lib64/libcdfw_remote_api.so
vendor/lib64/libcdsp_default_listener.so
vendor/lib64/libcdsprpc.so
vendor/lib64/libmdsprpc.so
vendor/lib64/libsdsprpc.so
vendor/lib64/libsysmon_cdsp_skel.so
# Charger
vendor/bin/init.qti.chg_policy.sh
vendor/etc/init/vendor.qti.hardware.charger_monitor@1.0-service.rc
vendor/etc/charger_fstab.qti
# CNE
vendor/app/CneApp/CneApp.apk
vendor/bin/cnd
vendor/bin/mutualex
vendor/etc/cne/mwqem.conf
vendor/etc/cne/profileMwqem.xml
vendor/etc/cne/wqeclient/ATT/ATT_profile1.xml
vendor/etc/cne/wqeclient/ATT/ATT_profile2.xml
vendor/etc/cne/wqeclient/ATT/ATT_profile3.xml
vendor/etc/cne/wqeclient/ATT/ATT_profile4.xml
vendor/etc/cne/wqeclient/ATT/ATT_profile5.xml
vendor/etc/cne/wqeclient/ATT/ATT_profile6.xml
vendor/etc/cne/wqeclient/ROW/ROW_profile1.xml
vendor/etc/cne/wqeclient/ROW/ROW_profile2.xml
vendor/etc/cne/wqeclient/ROW/ROW_profile3.xml
vendor/etc/cne/wqeclient/ROW/ROW_profile4.xml
vendor/etc/cne/wqeclient/ROW/ROW_profile5.xml
vendor/etc/cne/wqeclient/ROW/ROW_profile6.xml
vendor/etc/cne/wqeclient/ROW/ROW_profile7.xml
vendor/etc/cne/wqeclient/ROW/ROW_profile15.xml
vendor/etc/cne/wqeclient/ROW/ROW_profile16.xml
vendor/etc/cne/wqeclient/ROW/ROW_profile17.xml
vendor/etc/cne/wqeclient/ROW/ROW_profile18.xml
vendor/etc/cne/wqeclient/ROW/ROW_profile19.xml
vendor/etc/cne/wqeclient/ROW/ROW_profile20.xml
vendor/etc/cne/wqeclient/ROW/ROW_profile21.xml
vendor/etc/cne/wqeclient/ROW/ROW_profile32.xml
vendor/etc/cne/wqeclient/VZW/VZW_profile1.xml
vendor/etc/cne/wqeclient/VZW/VZW_profile2.xml
vendor/etc/cne/wqeclient/VZW/VZW_profile3.xml
vendor/etc/cne/wqeclient/VZW/VZW_profile4.xml
vendor/etc/cne/wqeclient/VZW/VZW_profile5.xml
vendor/etc/cne/wqeclient/VZW/VZW_profile6.xml
vendor/etc/default-permissions/com.qualcomm.qti.cne.xml
vendor/etc/init/cnd.rc
vendor/etc/init/mutualex.rc
vendor/lib64/libcne.so
vendor/lib64/libcneapiclient.so
vendor/lib64/libcneoplookup.so
vendor/lib64/libcneqmiutils.so
vendor/lib64/libwms.so
vendor/lib64/libwqe.so
vendor/lib64/libxml.so
vendor/lib64/vendor.qti.data.factory@2.0.so
vendor/lib64/vendor.qti.data.factory@2.1.so
vendor/lib64/vendor.qti.data.factory@2.2.so
vendor/lib64/vendor.qti.data.factory@2.3.so
vendor/lib64/vendor.qti.data.slm@1.0.so
vendor/lib64/vendor.qti.hardware.cacert@1.0.so
vendor/lib64/vendor.qti.hardware.data.cne.internal.api@1.0.so
vendor/lib64/vendor.qti.hardware.data.cne.internal.constants@1.0.so
vendor/lib64/vendor.qti.hardware.data.cne.internal.server@1.0.so
vendor/lib64/vendor.qti.hardware.data.connection@1.0.so
vendor/lib64/vendor.qti.hardware.data.connection@1.1.so
vendor/lib64/vendor.qti.hardware.data.dynamicdds@1.0.so
vendor/lib64/vendor.qti.hardware.data.iwlan@1.0.so
vendor/lib64/vendor.qti.hardware.data.latency@1.0.so
vendor/lib64/vendor.qti.hardware.data.lce@1.0.so
vendor/lib64/vendor.qti.hardware.data.qmi@1.0.so
vendor/lib64/vendor.qti.hardware.slmadapter@1.0.so
vendor/lib64/vendor.qti.latency@2.0.so
vendor/lib64/vendor.qti.latency@2.1.so
# Configstore
vendor/bin/hw/vendor.qti.hardware.capabilityconfigstore@1.0-service
vendor/etc/init/vendor.qti.hardware.capabilityconfigstore@1.0-service.rc
vendor/lib/hw/vendor.qti.hardware.capabilityconfigstore@1.0-impl.so
vendor/lib64/hw/vendor.qti.hardware.capabilityconfigstore@1.0-impl.so
# DPM
system_ext/bin/dpmd
system_ext/bin/tcmd
system_ext/etc/dpm/dpm.conf
system_ext/etc/init/dpmd.rc
system_ext/etc/init/tcmd.rc
system_ext/etc/permissions/com.qti.dpmframework.xml
system_ext/etc/permissions/dpmapi.xml
system_ext/etc/seccomp_policy/tcmd.policy
system_ext/framework/com.qti.dpmframework.jar
system_ext/framework/dpmapi.jar
system_ext/lib/vendor.qti.diaghal@1.0.so
system_ext/lib64/com.qualcomm.qti.dpm.api@1.0.so
system_ext/lib64/libdpmctmgr.so
system_ext/lib64/libdpmfdmgr.so
system_ext/lib64/libdpmframework.so
system_ext/lib64/libdpmtcm.so
system_ext/lib64/vendor.qti.diaghal@1.0.so
system_ext/lib64/vendor.qti.hardware.dpmservice@1.0.so
system_ext/priv-app/dpmserviceapp/dpmserviceapp.apk
vendor/bin/dpmQmiMgr
vendor/etc/init/dpmQmiMgr.rc
vendor/lib64/com.qualcomm.qti.dpm.api@1.0.so
vendor/lib64/libdpmqmihal.so
# DRM
vendor/bin/hw/vendor.qti.hardware.qseecom@1.0-service
vendor/bin/qseecomd
vendor/etc/init/qseecomd.rc
vendor/etc/init/vendor.qti.hardware.qseecom@1.0-service.rc
vendor/etc/gpfspath_oem_config.xml
vendor/lib64/hw/vendor.qti.hardware.qseecom@1.0-impl.so
vendor/lib64/libGPreqcancel.so
vendor/lib64/libGPreqcancel_svc.so
vendor/lib64/libQSEEComAPI.so
vendor/lib64/libSecureUILib.so
vendor/lib64/libStDrvInt.so
vendor/lib64/libcpion.so
vendor/lib64/libdrmfs.so
vendor/lib64/libdrmtime.so
vendor/lib64/libops.so
vendor/lib64/libqisl.so
vendor/lib64/librpmb.so
vendor/lib64/libsecureui.so
vendor/lib64/libssd.so
vendor/lib64/vendor.qti.hardware.qseecom@1.0.so
# Gatekeeper
vendor/bin/hw/android.hardware.gatekeeper@1.0-service-qti
vendor/etc/init/android.hardware.gatekeeper@1.0-service-qti.rc
vendor/lib64/hw/android.hardware.gatekeeper@1.0-impl-qti.so
# Graphics (Adreno)
vendor/lib/egl/eglSubDriverAndroid.so
vendor/lib/egl/libEGL_adreno.so
vendor/lib/egl/libGLESv1_CM_adreno.so
vendor/lib/egl/libGLESv2_adreno.so
vendor/lib/egl/libq3dtools_adreno.so
vendor/lib/egl/libq3dtools_esx.so
vendor/lib/libC2D2.so
vendor/lib/libCB.so
vendor/lib/libOpenCL.so
vendor/lib/libVkLayer_q3dtools.so
vendor/lib/libadreno_utils.so
vendor/lib/libc2d30_bltlib.so
vendor/lib/libgpudataproducer.so
vendor/lib/libgsl.so
vendor/lib/libllvm-glnext.so
vendor/lib/libllvm-qcom.so
vendor/lib64/egl/eglSubDriverAndroid.so
vendor/lib64/egl/libEGL_adreno.so
vendor/lib64/egl/libGLESv1_CM_adreno.so
vendor/lib64/egl/libGLESv2_adreno.so
vendor/lib64/egl/libq3dtools_adreno.so
vendor/lib64/egl/libq3dtools_esx.so
vendor/lib64/libC2D2.so
vendor/lib64/libCB.so
vendor/lib64/libOpenCL.so
vendor/lib64/libVkLayer_q3dtools.so
vendor/lib64/libadreno_utils.so
vendor/lib64/libc2d30_bltlib.so
vendor/lib64/libgpudataproducer.so
vendor/lib64/libgsl.so
vendor/lib64/libllvm-glnext.so
vendor/lib64/libllvm-qcom.so
# Graphics (Vulkan)
vendor/lib/hw/vulkan.adreno.so
vendor/lib64/hw/vulkan.adreno.so
# GNSS
vendor/app/CACertService/CACertService.apk
vendor/bin/hw/android.hardware.gnss@2.1-service-qti
vendor/bin/loc_launcher
vendor/bin/lowi-server
vendor/bin/mlid
vendor/bin/slim_daemon
vendor/bin/xtra-daemon
vendor/bin/xtwifi-client
vendor/bin/xtwifi-inet-agent
vendor/etc/init/android.hardware.gnss@2.1-service-qti.rc
vendor/etc/vintf/manifest/android.hardware.gnss@2.1-service-qti.xml
vendor/etc/vintf/manifest/vendor.qti.gnss@4.0-service.xml
vendor/etc/apdr.conf
vendor/etc/cacert_location.pem
vendor/etc/flp.conf
vendor/etc/gnss_antenna_info.conf
vendor/etc/gps.conf
vendor/etc/izat.conf
vendor/etc/lowi.conf
vendor/etc/sap.conf
vendor/etc/xtra_root_cert.pem
vendor/etc/xtwifi.conf
vendor/lib64/hw/android.hardware.gnss@2.1-impl-qti.so
vendor/lib64/hw/vendor.qti.gnss@4.0-impl.so
vendor/lib64/libaoa.so
vendor/lib64/libasn1cper.so
vendor/lib64/libasn1crt.so
vendor/lib64/libasn1crtx.so
vendor/lib64/libbatching.so
vendor/lib64/libcacertclient.so
vendor/lib64/libdataitems.so
vendor/lib64/libgdtap.so
vendor/lib64/libgeofencing.so
vendor/lib64/libgnss.so
vendor/lib64/libgnsspps.so
vendor/lib64/libgps.utils.so
vendor/lib64/libizat_client_api.so
vendor/lib64/libizat_core.so
vendor/lib64/libjnihelper.so
vendor/lib64/liblbs_core.so
vendor/lib64/libloc_api_v02.so
vendor/lib64/libloc_core.so
vendor/lib64/libloc_socket.so
vendor/lib64/liblocation_api.so
vendor/lib64/liblocationservice.so
vendor/lib64/liblocationservice_glue.so
vendor/lib64/liblowi_client.so
vendor/lib64/liblowi_wifihal.so
vendor/lib64/libminksocket.so
vendor/lib64/libqcc_file_agent.so
vendor/lib64/libqdma_file_agent.so
vendor/lib64/libslimclient.so
vendor/lib64/libxtadapter.so
vendor/lib64/vendor.qti.gnss@1.0.so
vendor/lib64/vendor.qti.gnss@1.1.so
vendor/lib64/vendor.qti.gnss@1.2.so
vendor/lib64/vendor.qti.gnss@2.0.so
vendor/lib64/vendor.qti.gnss@2.1.so
vendor/lib64/vendor.qti.gnss@3.0.so
vendor/lib64/vendor.qti.gnss@4.0-service.so
vendor/lib64/vendor.qti.gnss@4.0.so
# Keymaster
vendor/bin/hw/android.hardware.keymaster@4.1-service-qti
vendor/etc/init/android.hardware.keymaster@4.1-service-qti.rc
vendor/lib64/libkeymasterdeviceutils.so
vendor/lib64/libkeymasterprovision.so
vendor/lib64/libkeymasterutils.so
vendor/lib64/libqtikeymaster4.so
# IMS
system_ext/app/ImsRcsService/ImsRcsService.apk
system_ext/app/QtiTelephony/QtiTelephony.apk
system_ext/etc/permissions/telephony_system-ext_privapp-permissions-qti.xml
system_ext/etc/permissions/vendor.qti.ims.rcsservice.xml
system_ext/etc/sysconfig/qti_telephony_system_packages_config.xml
system_ext/etc/sysconfig/qti_whitelist_system_ext.xml
system_ext/framework/vendor.qti.ims.factory-V2.0-java.jar
system_ext/lib64/lib-imsvideocodec.so
system_ext/lib64/lib-imsvt.so
system_ext/lib64/lib-imsvtextutils.so
system_ext/lib64/lib-imsvtutils.so
system_ext/lib64/libdiag_system.so
system_ext/lib64/libimscamera_jni.so
system_ext/lib64/libimsmedia_jni.so
system_ext/lib64/vendor.qti.imsrtpservice@3.0.so
system_ext/lib64/vendor.qti.imsrtpservice@3.1.so
system_ext/priv-app/ims/ims.apk
vendor/bin/ims_rtp_daemon
vendor/bin/imsdatadaemon
vendor/bin/imsqmidaemon
vendor/bin/imsrcsd
vendor/etc/init/ims_rtp_daemon.rc
vendor/etc/init/imsdatadaemon.rc
vendor/etc/init/imsqmidaemon.rc
vendor/etc/init/imsrcsd.rc
vendor/etc/seccomp_policy/imsrtp.policy
vendor/lib64/com.qualcomm.qti.imscmservice@1.0.so
vendor/lib64/com.qualcomm.qti.imscmservice@2.0.so
vendor/lib64/com.qualcomm.qti.imscmservice@2.1.so
vendor/lib64/com.qualcomm.qti.imscmservice@2.2.so
vendor/lib64/com.qualcomm.qti.uceservice@2.0.so
vendor/lib64/com.qualcomm.qti.uceservice@2.1.so
vendor/lib64/com.qualcomm.qti.uceservice@2.2.so
vendor/lib64/com.qualcomm.qti.uceservice@2.3.so
vendor/lib64/lib-imscmservice.so
vendor/lib64/lib-imsdpl.so
vendor/lib64/lib-imsqimf.so
vendor/lib64/lib-imsrcs-v2.so
vendor/lib64/lib-imsrcsbaseimpl.so
vendor/lib64/lib-imsvtcore.so
vendor/lib64/lib-imsxml.so
vendor/lib64/lib-rcsconfig.so
vendor/lib64/lib-rtpcommon.so
vendor/lib64/lib-rtpcore.so
vendor/lib64/lib-rtpsl.so
vendor/lib64/lib-siputility.so
vendor/lib64/lib-uceservice.so
vendor/lib64/librcc.so
vendor/lib64/vendor.qti.data.mwqem@1.0.so
vendor/lib64/vendor.qti.hardware.mwqemadapter@1.0.so
vendor/lib64/vendor.qti.hardware.radio.ims@1.0.so
vendor/lib64/vendor.qti.hardware.radio.ims@1.1.so
vendor/lib64/vendor.qti.hardware.radio.ims@1.2.so
vendor/lib64/vendor.qti.hardware.radio.ims@1.3.so
vendor/lib64/vendor.qti.hardware.radio.ims@1.4.so
vendor/lib64/vendor.qti.hardware.radio.ims@1.5.so
vendor/lib64/vendor.qti.hardware.radio.ims@1.6.so
vendor/lib64/vendor.qti.hardware.radio.ims@1.7.so
vendor/lib64/vendor.qti.hardware.radio.lpa@1.1.so
vendor/lib64/vendor.qti.hardware.radio.lpa@1.2.so
vendor/lib64/vendor.qti.ims.callcapability@1.0.so
vendor/lib64/vendor.qti.ims.callinfo@1.0.so
vendor/lib64/vendor.qti.ims.factory@1.0.so
vendor/lib64/vendor.qti.ims.factory@1.1.so
vendor/lib64/vendor.qti.ims.rcsconfig@1.0.so
vendor/lib64/vendor.qti.ims.rcsconfig@1.1.so
vendor/lib64/vendor.qti.ims.rcsconfig@2.0.so
vendor/lib64/vendor.qti.ims.rcsconfig@2.1.so
vendor/lib64/vendor.qti.imsrtpservice@3.0-service-Impl.so
vendor/lib64/vendor.qti.imsrtpservice@3.0.so
# IRQ balance
vendor/bin/msm_irqbalance
vendor/etc/msm_irqbalance.conf
# Media
system_ext/lib/libmmosal.so
system_ext/lib/libmmparser_lite.so
system_ext/lib64/libmmosal.so
vendor/etc/media_codecs.xml
vendor/etc/media_codecs_vendor.xml
vendor/etc/media_codecs_performance.xml
vendor/etc/media_codecs_vendor_audio.xml
vendor/etc/media_profiles.xml
vendor/etc/media_profiles_vendor.xml
vendor/etc/system_properties.xml
vendor/lib64/libmmosal.so
# Native public libraries
vendor/etc/public.libraries.txt
# Neural networks
vendor/bin/hw/android.hardware.neuralnetworks@1.3-service-qti
vendor/etc/init/android.hardware.neuralnetworks@1.3-service-qti.rc
vendor/etc/vintf/manifest/android.hardware.neuralnetworks@1.3-service-qti-hta.xml
vendor/etc/vintf/manifest/android.hardware.neuralnetworks@1.3-service-qti.xml
vendor/lib64/libhexagon_nn_stub.so
vendor/lib64/libhta_hexagon_runtime.so
vendor/lib64/unnhal-acc-adreno.so
vendor/lib64/unnhal-acc-common.so
vendor/lib64/unnhal-acc-hta.so
vendor/lib64/unnhal-acc-hvx.so
# OMX
vendor/lib/libAlacSwDec.so
vendor/lib/libApeSwDec.so
vendor/lib/libFlacSwDec.so
vendor/lib/libMpeg4SwEncoder.so
vendor/lib/libMpeghSwEnc.so
vendor/lib/libOmxAacDec.so
vendor/lib/libOmxAlacDec.so
vendor/lib/libOmxAlacDecSw.so
vendor/lib/libOmxAmrDec.so
vendor/lib/libOmxAmrwbplusDec.so
vendor/lib/libOmxApeDec.so
vendor/lib/libOmxApeDecSw.so
vendor/lib/libOmxDsdDec.so
vendor/lib/libOmxEvrcDec.so
vendor/lib/libOmxG711Dec.so
vendor/lib/libOmxMpeghDecSw.so
vendor/lib/libOmxMpeghEncSw.so
vendor/lib/libOmxQcelp13Dec.so
vendor/lib/libOmxSwVdec.so
vendor/lib/libOmxSwVencMpeg4.so
vendor/lib/libOmxVideoDSMode.so
vendor/lib/libOmxVpp.so
vendor/lib/libOmxWmaDec.so
vendor/lib/libdsd2pcm.so
vendor/lib/libswvdec.so
vendor/lib64/libAlacSwDec.so
vendor/lib64/libApeSwDec.so
vendor/lib64/libFlacSwDec.so
vendor/lib64/libMpeg4SwEncoder.so
vendor/lib64/libMpeghSwEnc.so
vendor/lib64/libOmxAacDec.so
vendor/lib64/libOmxAlacDec.so
vendor/lib64/libOmxAlacDecSw.so
vendor/lib64/libOmxAmrDec.so
vendor/lib64/libOmxAmrwbplusDec.so
vendor/lib64/libOmxApeDec.so
vendor/lib64/libOmxApeDecSw.so
vendor/lib64/libOmxEvrcDec.so
vendor/lib64/libOmxG711Dec.so
vendor/lib64/libOmxMpeghEncSw.so
vendor/lib64/libOmxQcelp13Dec.so
vendor/lib64/libOmxSwVdec.so
vendor/lib64/libOmxSwVencMpeg4.so
vendor/lib64/libOmxVpp.so
vendor/lib64/libOmxWmaDec.so
vendor/lib64/libswvdec.so
# Peripheral manager
vendor/bin/pm-proxy
vendor/bin/pm-service
vendor/lib64/libperipheral_client.so
# Perf
vendor/bin/hw/vendor.qti.hardware.perf@2.2-service
vendor/etc/init/vendor.qti.hardware.perf@2.2-service.rc
vendor/etc/perf/commonresourceconfigs.xml
vendor/etc/perf/perfboostsconfig.xml
vendor/etc/perf/perfconfigstore.xml
vendor/etc/perf/targetconfig.xml
vendor/etc/perf/targetresourceconfigs.xml
vendor/etc/powerhint.xml
vendor/lib/libperfconfig.so
vendor/lib/libperfgluelayer.so
vendor/lib/libperfioctl.so
vendor/lib/libqti-perfd-client.so
vendor/lib/libqti-perfd.so
vendor/lib/libqti-util.so
vendor/lib64/liblearningmodule.so
vendor/lib64/libmeters.so
vendor/lib64/libperfconfig.so
vendor/lib64/libperfgluelayer.so
vendor/lib64/libperfioctl.so
vendor/lib64/libqti-perfd-client.so
vendor/lib64/libqti-perfd.so
vendor/lib64/libqti-util.so
# Power-off alarm
product/app/PowerOffAlarm/PowerOffAlarm.apk
system_ext/framework/vendor.qti.hardware.alarm-V1.0-java.jar
vendor/bin/hw/vendor.qti.hardware.alarm@1.0-service
vendor/bin/power_off_alarm
vendor/etc/init/vendor.qti.hardware.alarm@1.0-service.rc
vendor/lib64/hw/vendor.qti.hardware.alarm@1.0-impl.so
vendor/lib64/vendor.qti.hardware.alarm@1.0.so
# QCC
vendor/lib64/vendor.qti.hardware.qccsyshal@1.0.so
# QMI
system/etc/permissions/privapp-permissions-qti.xml
system/etc/sysconfig/qti_whitelist.xml
vendor/bin/irsc_util
vendor/bin/qmipriod
vendor/etc/init/qmipriod.rc
vendor/etc/seccomp_policy/qti-systemd.policy
vendor/etc/sec_config
vendor/lib/libdiag.so
vendor/lib/libdsi_netctrl.so
vendor/lib/libdsutils.so
vendor/lib/libidl.so
vendor/lib/libqcmaputils.so
vendor/lib/libqdi.so
vendor/lib/libqdp.so
vendor/lib/libqmi.so
vendor/lib/libqmi_cci.so
vendor/lib/libqmi_client_helper.so
vendor/lib/libqmi_client_qmux.so
vendor/lib/libqmi_common_so.so
vendor/lib/libqmi_csi.so
vendor/lib/libqmi_encdec.so
vendor/lib/libqmi_legacy.so
vendor/lib/libqmiservices.so
vendor/lib64/libdiag.so
vendor/lib64/libdsi_netctrl.so
vendor/lib64/libdsutils.so
vendor/lib64/libidl.so
vendor/lib64/libqcmaputils.so
vendor/lib64/libqdi.so
vendor/lib64/libqdp.so
vendor/lib64/libqmi.so
vendor/lib64/libqmi_cci.so
vendor/lib64/libqmi_client_helper.so
vendor/lib64/libqmi_client_qmux.so
vendor/lib64/libqmi_common_so.so
vendor/lib64/libqmi_csi.so
vendor/lib64/libqmi_encdec.so
vendor/lib64/libqmi_legacy.so
vendor/lib64/libqmiservices.so
# RIL
system_ext/app/QtiTelephonyService/QtiTelephonyService.apk
system_ext/etc/permissions/qcrilhook.xml
system_ext/etc/permissions/qti_libpermissions.xml
system_ext/etc/permissions/qti_permissions.xml
system_ext/framework/qcrilhook.jar
system_ext/priv-app/qcrilmsgtunnel/qcrilmsgtunnel.apk
vendor/app/IWlanService/IWlanService.apk
vendor/bin/hw/qcrild
vendor/bin/ATFWD-daemon
vendor/bin/adpl
vendor/bin/init.mdm.sh
vendor/bin/ks
vendor/bin/netmgrd
vendor/bin/pd-mapper
vendor/bin/port-bridge
vendor/bin/qrtr-ns
vendor/bin/qti
vendor/bin/rmt_storage
vendor/bin/shsusrd
vendor/bin/ssgqmigd
vendor/bin/ssgtzd
vendor/bin/tftp_server
vendor/etc/data/dsi_config.xml
vendor/etc/data/netmgr_config.xml
vendor/etc/init/dataadpl.rc
vendor/etc/init/dataqti.rc
vendor/etc/init/init-qcril-data.rc
vendor/etc/init/netmgrd.rc
vendor/etc/init/port-bridge.rc
vendor/etc/init/qcrild.rc
vendor/etc/init/shsusrd.rc
vendor/etc/init/ssgtzd.rc
vendor/etc/init/vendor.qti.rmt_storage.rc
vendor/etc/init/vendor.qti.tftp.rc
vendor/etc/seccomp_policy/atfwd@2.0.policy
vendor/etc/ssg/ta_config.json
vendor/etc/ssg/tz_whitelist.json
vendor/lib64/deviceInfoServiceModule.so
vendor/lib64/libconfigdb.so
vendor/lib64/liblqe.so
vendor/lib64/libmdmdetect.so
vendor/lib64/libminkdescriptor.so
vendor/lib64/libnetmgr.so
vendor/lib64/libnetmgr_common.so
vendor/lib64/libnetmgr_nr_fusion.so
vendor/lib64/libnetmgr_rmnet_ext.so
vendor/lib64/libnlnetmgr.so
vendor/lib64/libpdmapper.so
vendor/lib64/libpdnotifier.so
vendor/lib64/libqcbor.so
vendor/lib64/libqcrilFramework.so
vendor/lib64/libqcrildatactl.so
vendor/lib64/libqrtr.so
vendor/lib64/libqsocket.so
vendor/lib64/libril-qc-hal-qmi.so
vendor/lib64/libril-qc-logger.so
vendor/lib64/libril-qc-ltedirectdisc.so
vendor/lib64/libril-qc-radioconfig.so
vendor/lib64/libril-qcril-hook-oem.so
vendor/lib64/librilqmiservices.so
vendor/lib64/libsettings.so
vendor/lib64/libsystem_health_mon.so
vendor/lib64/qcrild_librilutils.so
vendor/lib64/qtibus.so
vendor/lib64/qtimutex.so
vendor/lib64/vendor.qti.hardware.radio.am@1.0.so
vendor/lib64/vendor.qti.hardware.radio.atcmdfwd@1.0.so
vendor/lib64/vendor.qti.hardware.radio.internal.deviceinfo@1.0.so
vendor/lib64/vendor.qti.hardware.radio.lpa@1.0.so
vendor/lib64/vendor.qti.hardware.radio.qcrilhook@1.0.so
vendor/lib64/vendor.qti.hardware.radio.qtiradio@1.0.so
vendor/lib64/vendor.qti.hardware.radio.qtiradio@2.0.so
vendor/lib64/vendor.qti.hardware.radio.qtiradio@2.1.so
vendor/lib64/vendor.qti.hardware.radio.qtiradio@2.2.so
vendor/lib64/vendor.qti.hardware.radio.qtiradio@2.3.so
vendor/lib64/vendor.qti.hardware.radio.qtiradio@2.4.so
vendor/lib64/vendor.qti.hardware.radio.qtiradio@2.5.so
vendor/lib64/vendor.qti.hardware.radio.uim@1.0.so
vendor/lib64/vendor.qti.hardware.radio.uim@1.1.so
vendor/lib64/vendor.qti.hardware.radio.uim@1.2.so
vendor/lib64/vendor.qti.hardware.radio.uim_remote_client@1.0.so
vendor/lib64/vendor.qti.hardware.radio.uim_remote_client@1.1.so
vendor/lib64/vendor.qti.hardware.radio.uim_remote_client@1.2.so
vendor/lib64/vendor.qti.hardware.radio.uim_remote_server@1.0.so
vendor/radio/qcril_database/upgrade/0_initial.sql
vendor/radio/qcril_database/upgrade/1_version_intro.sql
vendor/radio/qcril_database/upgrade/2_version_add_wps_config.sql
vendor/radio/qcril_database/upgrade/3_version_update_wps_config.sql
vendor/radio/qcril_database/upgrade/4_version_update_ecc_table.sql
vendor/radio/qcril_database/upgrade/5_version_update_ecc_table.sql
vendor/radio/qcril_database/upgrade/6_version_update_ecc_table.sql
vendor/radio/qcril_database/upgrade/7_version_update_ecc_table.sql
vendor/radio/qcril_database/qcril.db
# Snapdragon Computer Vision Engine
vendor/lib/libfastcvdsp_stub.so
-vendor/lib/libfastcvopt.so
vendor/lib/libscveCommon.so
vendor/lib/libscveCommon_stub.so
vendor/lib/libscveObjectSegmentation.so
vendor/lib/libscveObjectSegmentation_stub.so
vendor/lib/libscveObjectTracker.so
vendor/lib/libscveObjectTracker_stub.so
vendor/lib64/libfastcvdsp_stub.so
-vendor/lib64/libfastcvopt.so
vendor/lib64/libscveCommon.so
vendor/lib64/libscveCommon_stub.so
vendor/lib64/libscveObjectSegmentation.so
vendor/lib64/libscveObjectSegmentation_stub.so
vendor/lib64/libscveObjectTracker.so
vendor/lib64/libscveObjectTracker_stub.so
# Soter
vendor/bin/hw/vendor.qti.hardware.soter@1.0-service
vendor/etc/init/vendor.qti.hardware.soter@1.0-service.rc
vendor/lib64/hw/vendor.qti.hardware.soter@1.0-impl.so
vendor/lib64/vendor.qti.hardware.soter@1.0.so
# Thermal engine
vendor/bin/thermal-engine
vendor/etc/init/init_thermal-engine.rc
-vendor/lib/libthermalclient.so
-vendor/lib64/libthermalclient.so
# Time services
vendor/app/TimeService/TimeService.apk
vendor/bin/time_daemon
vendor/etc/init/init.time_daemon.rc
vendor/lib64/libtime_genoff.so
# Trusted Execution Environment connector
vendor/bin/hw/vendor.qti.hardware.qteeconnector@1.0-service
vendor/etc/init/vendor.qti.hardware.qteeconnector@1.0-service.rc
vendor/lib64/hw/vendor.qti.hardware.qteeconnector@1.0-impl.so
vendor/lib64/libGPQTEEC_vendor.so
vendor/lib64/libGPTEE_vendor.so
vendor/lib64/libQTEEConnector_vendor.so
vendor/lib64/vendor.qti.hardware.qteeconnector@1.0.so
# Trusted UI
vendor/bin/hw/vendor.qti.hardware.tui_comm@1.0-service-qti
vendor/etc/init/vendor.qti.hardware.tui_comm@1.0-service-qti.rc
vendor/lib64/vendor.qti.hardware.tui_comm@1.0.so
# VPP
vendor/bin/vppservice
vendor/etc/configstore/vpp.configstore.xml
vendor/etc/init/vppservice.rc
vendor/lib/libvppclient.so
vendor/lib/libvpphcp.so
vendor/lib/libvpphvx.so
vendor/lib/libvpplibrary.so
vendor/lib/vendor.qti.hardware.vpp@1.1.so
vendor/lib/vendor.qti.hardware.vpp@1.2.so
vendor/lib/vendor.qti.hardware.vpp@1.3.so
vendor/lib64/libvpphcp.so
vendor/lib64/libvpphvx.so
vendor/lib64/libvpplibrary.so
vendor/lib64/vendor.qti.hardware.vpp@1.1.so
vendor/lib64/vendor.qti.hardware.vpp@1.2.so
vendor/lib64/vendor.qti.hardware.vpp@1.3.so
# WiFi Display
system/framework/WfdCommon.jar
system_ext/bin/wfdservice
system_ext/etc/init/wfdservice.rc
system_ext/etc/seccomp_policy/wfdservice.policy
system_ext/etc/wfdconfigsink.xml
system_ext/lib/com.qualcomm.qti.wifidisplayhal@1.0.so
system_ext/lib/libmmrtpdecoder.so
system_ext/lib/libmmrtpencoder.so
system_ext/lib/libwfdavenhancements.so
system_ext/lib/libwfdclient.so
system_ext/lib/libwfdcommonutils.so
system_ext/lib/libwfdconfigutils.so
system_ext/lib/libwfddisplayconfig.so
system_ext/lib/libwfdmminterface.so
system_ext/lib/libwfdmmsink.so
system_ext/lib/libwfdmmsrc_system.so
system_ext/lib/libwfdrtsp.so
system_ext/lib/libwfdservice.so
system_ext/lib/libwfdsinksm.so
system_ext/lib/libwfduibcinterface.so
system_ext/lib/libwfduibcsink.so
system_ext/lib/libwfduibcsinkinterface.so
system_ext/lib/libwfduibcsrc.so
system_ext/lib/libwfduibcsrcinterface.so
system_ext/lib/vendor.qti.hardware.wifidisplaysession@1.0.so
system_ext/lib64/libmmparser_lite.so
system_ext/lib64/libmmrtpdecoder.so
system_ext/lib64/libmmrtpencoder.so
system_ext/lib64/libwfdclient.so
system_ext/lib64/libwfdcommonutils.so
system_ext/lib64/libwfdconfigutils.so
system_ext/lib64/libwfddisplayconfig.so
system_ext/lib64/libwfdmminterface.so
system_ext/lib64/libwfdmmsink.so
system_ext/lib64/libwfdnative.so
system_ext/lib64/libwfdrtsp.so
system_ext/lib64/libwfdsinksm.so
system_ext/lib64/libwfduibcinterface.so
system_ext/lib64/libwfduibcsink.so
system_ext/lib64/libwfduibcsinkinterface.so
system_ext/lib64/libwfduibcsrc.so
system_ext/lib64/libwfduibcsrcinterface.so
system_ext/priv-app/WfdService/WfdService.apk
vendor/bin/wfdhdcphalservice
vendor/bin/wfdvndservice
vendor/bin/wifidisplayhalservice
vendor/etc/init/android.hardware.drm@1.1-service.wfdhdcp.rc
vendor/etc/init/com.qualcomm.qti.wifidisplayhal@1.0-service.rc
vendor/etc/init/wfdvndservice.rc
vendor/etc/seccomp_policy/wfdhdcphalservice.policy
vendor/etc/seccomp_policy/wfdvndservice.policy
vendor/etc/seccomp_policy/wifidisplayhalservice.policy
vendor/etc/wfdconfig.xml
vendor/lib/libFileMux_proprietary.so
vendor/lib/libmm-hdcpmgr.so
vendor/lib/libmmosal.so
vendor/lib/libmmrtpdecoder_proprietary.so
vendor/lib/libmmrtpencoder_proprietary.so
vendor/lib/libwfdcodecv4l2_proprietary.so
vendor/lib/libwfdcommonutils_proprietary.so
vendor/lib/libwfdconfigutils_proprietary.so
vendor/lib/libwfddisplayconfig_proprietary.so
vendor/lib/libwfdhdcpcp.so
vendor/lib/libwfdhdcpservice_proprietary.so
vendor/lib/libwfdmminterface_proprietary.so
vendor/lib/libwfdmmservice_proprietary.so
vendor/lib/libwfdmmsrc_proprietary.so
vendor/lib/libwfdmodulehdcpsession.so
vendor/lib/libwfdrtsp_proprietary.so
vendor/lib/libwfdsessionmodule.so
vendor/lib/libwfdsourcesession_proprietary.so
vendor/lib/libwfdsourcesm_proprietary.so
vendor/lib/libwfduibcinterface_proprietary.so
vendor/lib/libwfduibcsink_proprietary.so
vendor/lib/libwfduibcsinkinterface_proprietary.so
vendor/lib/libwfduibcsrc_proprietary.so
vendor/lib/libwfduibcsrcinterface_proprietary.so
vendor/lib/libwfdutils_proprietary.so
vendor/lib/vendor.qti.hardware.wifidisplaysession@1.0.so
vendor/lib/vendor.qti.hardware.wifidisplaysessionl@1.0-halimpl.so

747
proprietary-files.txt Normal file
View File

@@ -0,0 +1,747 @@
## All proprietary files from this list, unless pinned and noted otherwise, are
## from OnePlus Nord (AC2003_11_F.19).
# ACDBs
odm/etc/acdbdata/Audio_Parameter_Version.txt
odm/etc/acdbdata/Bluetooth_cal.acdb
odm/etc/acdbdata/General_cal.acdb
odm/etc/acdbdata/Global_cal.acdb
odm/etc/acdbdata/Handset_cal.acdb
odm/etc/acdbdata/Hdmi_cal.acdb
odm/etc/acdbdata/Headset_cal.acdb
odm/etc/acdbdata/Speaker_cal.acdb
vendor/etc/acdbdata/adsp_avs_config.acdb
# ADSP
vendor/etc/init/vendor.qti.adsprpc-service.rc
# ADSP modules
odm/lib/rfsa/adsp/libc++abi.so.1
odm/lib/rfsa/adsp/libc++.so.1
odm/lib/rfsa/adsp/libktvdrc.so
odm/lib/rfsa/adsp/libktveffect.so
odm/lib/rfsa/adsp/libktveq.so
odm/lib/rfsa/adsp/libktvns.so
odm/lib/rfsa/adsp/libktvpitchshift.so
odm/lib/rfsa/adsp/libktvreverb.so
odm/lib/rfsa/adsp/libktvvolume.so
vendor/lib/rfsa/adsp/capi_v2_aptX_CLHDAD_Speech_Decoder.so
vendor/lib/rfsa/adsp/capi_v2_aptX_CLHDADV_Encoder.so
vendor/lib/rfsa/adsp/capi_v2_dap_cpdp.so
vendor/lib/rfsa/adsp/libapps_mem_heap.so
vendor/lib/rfsa/adsp/libarc_hta_driver_skel.so
vendor/lib/rfsa/adsp/libarcnn_hvx_1_1_skel.so
vendor/lib/rfsa/adsp/libarcsoft_dualcam_refocus_skel.so
vendor/lib/rfsa/adsp/libarcsoft_hdrplus_hvx_skel.so
vendor/lib/rfsa/adsp/libBeautyShot_skel.so
vendor/lib/rfsa/adsp/libbitml_nsp_skel.so
vendor/lib/rfsa/adsp/libcamera_nn_skel.so
vendor/lib/rfsa/adsp/libcvpdsp_skel.so
vendor/lib/rfsa/adsp/libdspCV_skel.so
vendor/lib/rfsa/adsp/libdsp_streamer_binning.so
vendor/lib/rfsa/adsp/libfastcvadsp.so
vendor/lib/rfsa/adsp/libfastcvdsp_skel.so
vendor/lib/rfsa/adsp/libhdr_skel.so
vendor/lib/rfsa/adsp/libhexagon_nn_skel.so
vendor/lib/rfsa/adsp/libhta_dsp_skel.so
vendor/lib/rfsa/adsp/libproxy_skel.so
vendor/lib/rfsa/adsp/libscveObjectSegmentation_skel.so
vendor/lib/rfsa/adsp/libscveT2T_skel.so
vendor/lib/rfsa/adsp/libsnpe_dsp_domains_skel.so
vendor/lib/rfsa/adsp/libsnpe_dsp_skel.so
vendor/lib/rfsa/adsp/libsnpe_dsp_v65_domains_v2_skel.so
vendor/lib/rfsa/adsp/libsnpe_dsp_v66_domains_v2_skel.so
vendor/lib/rfsa/adsp/libsns_device_mode_skel.so
vendor/lib/rfsa/adsp/libsns_low_lat_stream_skel.so
vendor/lib/rfsa/adsp/libSuperSensor_skel.so
vendor/lib/rfsa/adsp/libVDHexagonBlurless_v2_skel.so
# Audio
odm/lib/libaudioEngineerTest.so
vendor/lib/hw/audio.primary.lito.so
vendor/lib/liba2dpoffload.so
vendor/lib/libssrec.so
vendor/lib/vendor.oplus.hardware.performance@1.0.so
# Audio firmware
odm/firmware/tfa98xx.cnt
# Audio libraries
vendor/lib/soundfx/libasphere.so
vendor/lib/soundfx/libqcbassboost.so
vendor/lib/soundfx/libqcreverb.so
vendor/lib/soundfx/libqcvirt.so
vendor/lib/soundfx/libshoebox.so
vendor/lib/libacdb-fts.so
vendor/lib/libacdbloader.so
vendor/lib/libacdbrtac.so
vendor/lib/libadiertac.so
vendor/lib/libadm.so
vendor/lib/libadsprpc.so
vendor/lib/libaudcal.so
vendor/lib/libaudio_log_utils.so
vendor/lib/libaudioparsers.so
vendor/lib/libhdmipassthru.so
vendor/lib/libqtigef.so
vendor/lib64/libadsprpc.so
# Bluetooth
vendor/bin/hw/android.hardware.bluetooth@1.0-service-qti
vendor/etc/init/android.hardware.bluetooth@1.0-service-qti.rc
vendor/lib64/hw/android.hardware.bluetooth@1.0-impl-qti.so
vendor/lib64/libbtnv.so
vendor/lib64/libsoc_helper.so
# Bluetooth (A2DP)
vendor/lib/hw/vendor.qti.hardware.bluetooth_audio@2.0-impl.so
vendor/lib/hw/vendor.qti.hardware.bluetooth_audio@2.1-impl.so
vendor/lib/hw/vendor.qti.hardware.bluetooth_sar@1.1-impl.so
vendor/lib/hw/vendor.qti.hardware.btconfigstore@1.0-impl.so
vendor/lib/hw/vendor.qti.hardware.btconfigstore@2.0-impl.so
vendor/lib/btaudio_offload_if.so
vendor/lib/libbluetooth_audio_session_qti.so
vendor/lib/libbluetooth_audio_session_qti_2_1.so
vendor/lib/vendor.qti.hardware.bluetooth_sar@1.0.so
vendor/lib/vendor.qti.hardware.bluetooth_sar@1.1.so
vendor/lib64/hw/vendor.qti.hardware.bluetooth_audio@2.0-impl.so
vendor/lib64/hw/vendor.qti.hardware.bluetooth_audio@2.1-impl.so
vendor/lib64/hw/vendor.qti.hardware.bluetooth_sar@1.1-impl.so
vendor/lib64/hw/vendor.qti.hardware.btconfigstore@1.0-impl.so
vendor/lib64/hw/vendor.qti.hardware.btconfigstore@2.0-impl.so
vendor/lib64/btaudio_offload_if.so
vendor/lib64/libbluetooth_audio_session_qti.so
vendor/lib64/libbluetooth_audio_session_qti_2_1.so
vendor/lib64/vendor.qti.hardware.bluetooth_sar@1.0.so
vendor/lib64/vendor.qti.hardware.bluetooth_sar@1.1.so
vendor/lib64/vendor.qti.hardware.fm@1.0.so
# Camera
odm/bin/vl53l1_daemon_main
odm/etc/camera/fb_default
odm/etc/camera/fwk_config.json
odm/lib64/camera/components/com.qti.node.remosaic.so
odm/lib64/libSonyIMX471RmscLibrary.so
odm/lib64/libormshalclient.so
odm/lib64/libvl53l1_daemon.so
odm/lib64/sensors.hal.tof.so
vendor/bin/hw/vendor.oplus.hardware.cameraMDM@1.0-service
vendor/etc/camera/ashdr/ncf_pack.ncf
vendor/etc/camera/ashdr/ncf_pack_imx471.ncf
vendor/etc/camera/ashdr/ncf_pack_imx481.ncf
vendor/etc/camera/ashdr/ncf_pack_imx586.ncf
vendor/etc/camera/calibrationOutput_uw.bin
vendor/etc/camera/calibrationOutput_wt.bin
vendor/etc/camera/darksight/darksight_main.bin
vendor/etc/camera/darksight/darksight_ultrawide.bin
vendor/etc/camera/distortion_result.bin
vendor/etc/camera/distortion_result_front.bin
vendor/etc/camera/M_Attribute_AG_BMW_1.1.0.model.hardcode
vendor/etc/init/vendor.oplus.hardware.cameraMDM@1.0-service.rc
vendor/etc/vintf/manifest/manifest_oplus_cameramdm.xml
vendor/lib/libc++_shared.so
vendor/lib64/camera/com.qti.eeprom.truly_cmb433.so
vendor/lib64/camera/com.qti.sensor.gc2375.so
vendor/lib64/camera/com.qti.sensor.gc5035.so
vendor/lib64/camera/com.qti.sensor.gc8054.so
vendor/lib64/camera/com.qti.sensor.hi846.so
vendor/lib64/camera/com.qti.sensor.imx586.so
vendor/lib64/camera/com.qti.sensor.imx616.so
vendor/lib64/camera/com.qti.sensor.ov02b10.so
vendor/lib64/camera/com.qti.sensor.ov8856.so
vendor/lib64/camera/com.qti.sensormodule.ofilm_gc8054.bin
vendor/lib64/camera/com.qti.sensormodule.qtech_hi846.bin
vendor/lib64/camera/com.qti.sensormodule.qtech_imx616.bin
vendor/lib64/camera/com.qti.sensormodule.semco_imx586.bin
vendor/lib64/camera/com.qti.sensormodule.shine_gc2375.bin
vendor/lib64/camera/com.qti.sensormodule.shine_gc5035.bin
vendor/lib64/camera/com.qti.sensormodule.shine_gc5035_t0.bin
vendor/lib64/camera/com.qti.sensormodule.shine_ov02b10.bin
vendor/lib64/camera/com.qti.sensormodule.sunny_ov8856.bin
vendor/lib64/camera/com.qti.tuned.ofilm_gc8054.bin
vendor/lib64/camera/com.qti.tuned.qtech_hi846.bin
vendor/lib64/camera/com.qti.tuned.qtech_imx616.bin
vendor/lib64/camera/com.qti.tuned.semco_imx586.bin
vendor/lib64/camera/com.qti.tuned.shine_gc2375.bin
vendor/lib64/camera/com.qti.tuned.shine_gc5035.bin
vendor/lib64/camera/com.qti.tuned.shine_ov02b10.bin
vendor/lib64/camera/com.qti.tuned.sunny_ov8856.bin
vendor/lib64/camera/components/com.oneplus.node.memcpy.so
vendor/lib64/camera/components/com.oneplus.node.preview.so
vendor/lib64/camera/components/com.oneplus.node.rtb.so
vendor/lib64/camera/components/com.oneplus.node.sat.so
vendor/lib64/camera/components/com.qti.camx.chiiqutils.so
vendor/lib64/camera/components/com.qti.eisv2.so
vendor/lib64/camera/components/com.qti.eisv3.so
vendor/lib64/camera/components/com.qti.hvx.addconstant.so
vendor/lib64/camera/components/com.qti.hvx.binning.so
vendor/lib64/camera/components/com.qti.node.customhwnode.so
vendor/lib64/camera/components/com.qti.node.depth.so
vendor/lib64/camera/components/com.qti.node.dummyrtb.so
vendor/lib64/camera/components/com.qti.node.dummysat.so
vendor/lib64/camera/components/com.qti.node.eisv2.so
vendor/lib64/camera/components/com.qti.node.eisv3.so
vendor/lib64/camera/components/com.qti.node.fcv.so
vendor/lib64/camera/components/com.qti.node.gpu.so
vendor/lib64/camera/components/com.qti.node.memcpy.so
vendor/lib64/camera/components/com.qti.node.remosaic.so
vendor/lib64/camera/components/com.qti.node.stich.so
vendor/lib64/camera/components/com.qti.node.swregistration.so
vendor/lib64/camera/components/com.qti.stats.aec.so
vendor/lib64/camera/components/com.qti.stats.aecwrapper.so
vendor/lib64/camera/components/com.qti.stats.af.so
vendor/lib64/camera/components/com.qti.stats.afd.so
vendor/lib64/camera/components/com.qti.stats.afwrapper.so
vendor/lib64/camera/components/com.qti.stats.asd.so
vendor/lib64/camera/components/com.qti.stats.awb.so
vendor/lib64/camera/components/com.qti.stats.awbwrapper.so
vendor/lib64/camera/components/com.qti.stats.haf.so
vendor/lib64/camera/components/com.qti.stats.hafoverride.so
vendor/lib64/camera/components/com.qti.stats.pdlib.so
vendor/lib64/camera/components/com.qti.stats.pdlibsony.so
vendor/lib64/camera/components/com.qti.stats.pdlibwrapper.so
vendor/lib64/camera/components/com.qti.stats.tracker.so
vendor/lib64/camera/components/com.qtistatic.stats.aec.so
vendor/lib64/camera/components/com.qtistatic.stats.af.so
vendor/lib64/camera/components/com.qtistatic.stats.awb.so
vendor/lib64/camera/components/com.qtistatic.stats.pdlib.so
vendor/lib64/camera/components/libdepthmapwrapper.so
vendor/lib64/camera/fdconfigpreview.bin
vendor/lib64/camera/fdconfigpreviewlite.bin
vendor/lib64/camera/fdconfigvideo.bin
vendor/lib64/camera/fdconfigvideolite.bin
vendor/lib64/com.qti.feature2.anchorsync.so
vendor/lib64/com.qti.feature2.demux.so
vendor/lib64/com.qti.feature2.frameselect.so
vendor/lib64/com.qti.feature2.fusion.so
vendor/lib64/com.qti.feature2.generic.so
vendor/lib64/com.qti.feature2.gs.so
vendor/lib64/com.qti.feature2.hdr.so
vendor/lib64/com.qti.feature2.memcpy.so
vendor/lib64/com.qti.feature2.mfsr.so
vendor/lib64/com.qti.feature2.qcfa.so
vendor/lib64/com.qti.feature2.rawhdr.so
vendor/lib64/com.qti.feature2.rt.so
vendor/lib64/com.qti.feature2.serializer.so
vendor/lib64/com.qti.feature2.stub.so
vendor/lib64/com.qti.feature2.swmf.so
vendor/lib64/hw/camera.qcom.so
vendor/lib64/hw/com.qti.chi.override.so
vendor/lib64/libcom.qti.chinodeutils.so
vendor/lib64/libPolarrRender.so
vendor/lib64/libarcsoft_beautyshot.so
vendor/lib64/libarcsoft_beautyshot_4.0.so
vendor/lib64/libarcsoft_dualcam_bokeh_api.so
vendor/lib64/libarcsoft_dualcam_refocus_ir.so
vendor/lib64/libarcsoft_dualcam_refocus_left.so
vendor/lib64/libarcsoft_dualcam_refocus_preview.so
vendor/lib64/libarcsoft_dualcam_refocus_preview_ir.so
vendor/lib64/libarcsoft_dualcam_refocus_uw.so
vendor/lib64/libarcsoft_hdr_couple_api.so
vendor/lib64/libarcsoft_hdr_denoise_api.so
vendor/lib64/libarcsoft_hdrplus_hvx_stub.so
vendor/lib64/libarcsoft_high_dynamic_range.so
vendor/lib64/libarcsoft_high_dynamic_range_couple.so
vendor/lib64/libarcsoft_hta.so
vendor/lib64/libarcsoft_low_light_hdr.so
vendor/lib64/libarcsoft_mfsr_frt.so
vendor/lib64/libarcsoft_portrait_distortion_correction.so
vendor/lib64/libarcsoft_portrait_distortion_correction_20801.so
vendor/lib64/libarcsoft_smart_denoise.so
vendor/lib64/libarcsoft_super_night_raw.so
vendor/lib64/libarcsoft_superportrait.so
vendor/lib64/libbitmlengine.so
vendor/lib64/libcamera2ndk_vendor.so
vendor/lib64/libcamera_nn_stub.so
vendor/lib64/libcamerapostproc.so
vendor/lib64/libcamxexternalformatutils.so
vendor/lib64/libcamxfacialfeatures.so
vendor/lib64/libcamxfdalgo.so
vendor/lib64/libcamxfdengine.so
vendor/lib64/libcamxifestriping.so
vendor/lib64/libcamximageformatutils.so
vendor/lib64/libcamxncs.so
vendor/lib64/libcamxstatscore.so
vendor/lib64/libcamxswprocessalgo.so
vendor/lib64/libcamxtintlessalgo.so
vendor/lib64/libchilog.so
vendor/lib64/libcvface_api.so
vendor/lib64/libcvp_common.so
vendor/lib64/libcvpcpuRev_skel.so
vendor/lib64/libdualcam_image_optical_zoom.so
vendor/lib64/libdualcam_optical_zoom_control.so
vendor/lib64/libdualcam_video_optical_zoom.so
vendor/lib64/libdualcamirfusion.arcsoft.so
vendor/lib64/libipebpsstriping.so
vendor/lib64/libmidasserviceintf.so
vendor/lib64/libmmcamera_faceproc.so
vendor/lib64/libmmcamera_faceproc2.so
vendor/lib64/libmpbase.so
vendor/lib64/libnanopb.so
vendor/lib64/libofflinelog.so
vendor/lib64/libos.so
vendor/lib64/libswregistrationalgo.so
vendor/lib64/libsynx.so
vendor/lib64/libthreadutils.so
vendor/lib64/libtriplecam_image_optical_zoom.so
vendor/lib64/libtriplecam_optical_zoom_control.so
vendor/lib64/libtriplecam_video_optical_zoom.so
vendor/lib64/vendor.oplus.hardware.cameraMDM@1.0.so
vendor/lib64/vendor.oplus.hardware.cammidasservice@1.0.so
vendor/lib64/vendor.qti.hardware.camera.postproc@1.0-service-impl.so|7dc3f932216311875fb598c31cd94837c50cf32e|07034348534c394184ff3ae5809be0e7f222e165
# Camera firmware
vendor/firmware/CAMERA_ICP.elf
# Charger firmware
odm/firmware/fastchg/20801/oplus_vooc_fw.bin
odm/firmware/fastchg/20804/oplus_vooc_fw.bin
# Display (Features)
vendor/bin/feature_enabler_client
vendor/etc/init/feature_enabler_client.rc
vendor/etc/Oppo_QC_LTM_Commercial_2020_01_03.pfm
vendor/etc/Oppo_QC_LTM_Commercial_SM7225_2021_01_08.pfm
# Display (HDR)
vendor/lib64/libhdr_tm.so
# Display (HWC)
vendor/bin/hw/vendor.qti.hardware.display.composer-service
vendor/lib64/libdisplayconfig.qti.so
vendor/lib64/libhistogram.so
vendor/lib64/libqdutils.so
vendor/lib64/libsdmcore.so
vendor/lib64/libsdmutils.so
# Display (SDM)
vendor/lib64/libdisplayqos.so
vendor/lib64/libdisplayskuutils.so
vendor/lib64/libqseed3.so
vendor/lib64/libsdedrm.so
vendor/lib64/libsdm-color.so
vendor/lib64/libsdm-colormgr-algo.so
vendor/lib64/libsdm-diag.so
vendor/lib64/libsdm-disp-vndapis.so
vendor/lib64/libsdmextension.so
vendor/lib64/libtinyxml2_1.so
# Display calibration data
odm/etc/samsung1024_ams644vk04_eyeprotect_data.xml
odm/etc/samsung1024_ams644vk04_srgb_eyeprotect_data.xml
vendor/etc/ltm_config_samsung_ams644vk04_fhd_cmd_mode_dsc_dsi_panel.xml
vendor/etc/qdcm_calib_data_samsung_ams644vk04_fhd_cmd_mode_dsc_dsi_panel.xml
# Display postprocessing
vendor/bin/hw/vendor.display.color@1.0-service
vendor/bin/ppd
vendor/etc/init/vendor.display.color@1.0-service.rc
vendor/lib64/libdisp-aba.so
vendor/lib64/vendor.display.color@1.0.so
vendor/lib64/vendor.display.color@1.1.so
vendor/lib64/vendor.display.color@1.2.so
vendor/lib64/vendor.display.color@1.3.so
vendor/lib64/vendor.display.color@1.4.so
vendor/lib64/vendor.display.color@1.5.so
vendor/lib64/vendor.display.postproc@1.0.so
# Fingerprint
odm/bin/hw/vendor.oplus.hardware.biometrics.fingerprint@2.1-service
odm/bin/init.oplus.fingerprints.sh
odm/etc/init/vendor.oplus.hardware.biometrics.fingerprint@2.1-service.rc
odm/etc/vintf/manifest/manifest_oplus_fingerprint.xml
odm/lib64/hw/fingerprint.18821_goodix9508_G2_4.default.so
odm/lib64/hw/fingerprint.18857_goodix9508_G2_4.default.so
odm/lib64/hw/fingerprint.18865_goodix9558_G3.default.so
odm/lib64/hw/fingerprint.19805_goodix9638_G6_3.default.so
odm/lib64/hw/fingerprint.19805_goodix9678_G6_7.default.so
odm/lib64/hw/fingerprint.19811_goodix9638_G6.default.so
odm/lib64/hw/fingerprint.20801_goodix9558_G3.default.so
odm/lib64/hw/fingerprint.20813_goodix9578_G3.default.so
odm/lib64/hw/fingerprint.20828_goodix9678.default.so
odm/lib64/hw/fingerprint.goodix9608_G5.default.so
odm/lib64/hw/fingerprint.goodix9638_G6.default.so
odm/lib64/libgf_hal_19805_G6_3_oplus.so
odm/lib64/libgf_hal_19805_G6_7_oplus.so
odm/lib64/libgf_hal_19811_G6_oplus.so
odm/lib64/libgf_hal_20828_G6_7_oplus.so
odm/lib64/libgf_hal_G5_oplus.so
odm/lib64/libgf_hal_G6_oplus.so
odm/lib64/libgf_ud_hal_18821_G2_4_oplus.so
odm/lib64/libgf_ud_hal_18857_G2_4_oplus.so
odm/lib64/libgf_ud_hal_18865_G3_oplus.so
odm/lib64/libgf_ud_hal_20801_G3_oplus.so
odm/lib64/libgf_ud_hal_20813_G3_oplus.so
odm/lib64/vendor.oplus.hardware.commondcs@1.0.so
odm/lib64/vendor.oplus.hardware.orms@1.0.so
# Goodix Firmware
odm/vendor/firmware/gfp9558.b00
odm/vendor/firmware/gfp9558.b01
odm/vendor/firmware/gfp9558.b02
odm/vendor/firmware/gfp9558.b03
odm/vendor/firmware/gfp9558.b04
odm/vendor/firmware/gfp9558.b05
odm/vendor/firmware/gfp9558.b06
odm/vendor/firmware/gfp9558.b07
odm/vendor/firmware/gfp9558.mdt
# Graphics (Adreno firmware)
vendor/firmware/a650_gmu.bin
vendor/firmware/a650_sqe.fw
vendor/firmware/a620_zap.b00
vendor/firmware/a620_zap.b01
vendor/firmware/a620_zap.b02
vendor/firmware/a620_zap.elf
vendor/firmware/a620_zap.mdt
# Hotword Enrollment
my_product/etc/sysconfig/com.android.hotwordenrollment.common.util.xml:product/etc/sysconfig/com.android.hotwordenrollment.common.util.xml
my_product/framework/com.android.hotwordenrollment.common.util.jar:product/framework/com.android.hotwordenrollment.common.util.jar
my_product/priv-app/HotwordEnrollmentOKGoogleHEXAGON.apk:product/priv-app/HotwordEnrollmentOKGoogleHEXAGON/HotwordEnrollmentOKGoogleHEXAGON.apk
my_product/priv-app/HotwordEnrollmentXGoogleHEXAGON.apk:product/priv-app/HotwordEnrollmentXGoogleHEXAGON/HotwordEnrollmentXGoogleHEXAGON.apk
# IPA firmware
vendor/etc/init/ipa_fws.rc
vendor/firmware/ipa_fws.b00
vendor/firmware/ipa_fws.b01
vendor/firmware/ipa_fws.b02
vendor/firmware/ipa_fws.b03
vendor/firmware/ipa_fws.b04
vendor/firmware/ipa_fws.elf
vendor/firmware/ipa_fws.mdt
# Iris (Dependencies)
vendor/lib64/libpwirisfeature.so
vendor/lib64/libpwirishalwrapper.so
vendor/lib64/libpwirisIoctlWrapper.so
vendor/lib64/vendor.pixelworks.hardware.display@1.0.so
vendor/lib64/vendor.pixelworks.hardware.display@1.1.so
vendor/lib64/vendor.pixelworks.hardware.feature@1.0.so
# Listen
vendor/lib/hw/sound_trigger.primary.lito.so
vendor/lib/libcapiv2svacnn.so
vendor/lib/libcapiv2vop.so
vendor/lib/libgcs-calwrapper.so
vendor/lib/libgcs-ipc.so
vendor/lib/libgcs-osal.so
vendor/lib/libgcs.so
vendor/lib/liblistensoundmodel2.so
vendor/lib/libmulawdec.so
# NFC
odm/etc/nfc/libnfc-nci.conf_20801:vendor/etc/libnfc-nci.conf
odm/etc/nfc/libnfc-nxp.conf_20801:vendor/etc/libnfc-nxp.conf
odm/lib/libpn553_fw.so:vendor/lib64/libpn553_fw.so
# Sensors
odm/bin/hw/vendor.oplus.hardware.oplusSensor@1.0-service
odm/etc/init/vendor.oplus.hardware.oplusSensor@1.0-service.rc
odm/etc/vintf/manifest/manifest_oplusSensor.xml
odm/lib64/vendor.oplus.hardware.oplusSensor@1.0.so
vendor/bin/hw/vendor.qti.hardware.sensorscalibrate@1.0-service
vendor/bin/init.qcom.sensors.sh
vendor/bin/sensors.qti
vendor/bin/sscrpcd
vendor/etc/init/init.vendor.sensors.rc
vendor/etc/init/vendor.qti.hardware.sensorscalibrate@1.0-service.rc
vendor/etc/init/vendor.sensors.qti.rc
vendor/etc/init/vendor.sensors.sscrpcd.rc
vendor/etc/permissions/vendor-qti-hardware-sensorscalibrate.xml
vendor/lib64/hw/vendor.qti.hardware.sensorscalibrate@1.0-impl.so
vendor/lib64/libsensorcal.so
vendor/lib64/libsensorslog.so
vendor/lib64/libsns_device_mode_stub.so
vendor/lib64/libsns_fastRPC_util.so
vendor/lib64/libsns_low_lat_stream_stub.so
vendor/lib64/libsnsapi.so
vendor/lib64/libsnsdiaglog.so
vendor/lib64/libssc.so
vendor/lib64/libssc_default_listener.so
vendor/lib64/sensors.ssc.so|d04f63e7213d058c3b48269721f939ac815d77da|c68a3f9f6a97a5158a6352d675300d73b3a94269
vendor/lib64/vendor.qti.hardware.sensorscalibrate@1.0.so
# Sensor Configs
odm/etc/sensor/sensor_config.json
vendor/etc/sensors/config/alsps.json
vendor/etc/sensors/config/bmi160.json
vendor/etc/sensors/config/bmi260_0.json
vendor/etc/sensors/config/bmi260_0_crt.json
vendor/etc/sensors/config/bmi260_0_crt_cfg.json
vendor/etc/sensors/config/bmi26x_0.json
vendor/etc/sensors/config/lito_ak991x_0.json
vendor/etc/sensors/config/lito_alsps.json
vendor/etc/sensors/config/lito_bmi160.json
vendor/etc/sensors/config/lito_bmi260_0.json
vendor/etc/sensors/config/lito_default_sensors.json
vendor/etc/sensors/config/lito_dynamic_sensors.json
vendor/etc/sensors/config/lito_lsm6ds3c_0.json
vendor/etc/sensors/config/lito_lsm6dsm.json
vendor/etc/sensors/config/lito_lsm6dst_0.json
vendor/etc/sensors/config/lito_lsm6dst_1.json
vendor/etc/sensors/config/lito_mmc5603nj.json
vendor/etc/sensors/config/lito_qrd_400_ak991x_0.json
vendor/etc/sensors/config/lito_qrd_440_ak991x_0.json
vendor/etc/sensors/config/lito_qrd_ak991x_0.json
vendor/etc/sensors/config/lito_qrd_lsm6dst_0.json
vendor/etc/sensors/config/lito_qrd_lsm6dst_0_440.json
vendor/etc/sensors/config/lito_qrd_lsm6dst_1.json
vendor/etc/sensors/config/lito_qrd_tmd2725.json
vendor/etc/sensors/config/lito_stk3x5x_0.json
vendor/etc/sensors/config/lito_sx9324.json
vendor/etc/sensors/config/lito_sx9324up.json
vendor/etc/sensors/config/lito_sx932x_0.json
vendor/etc/sensors/config/lito_tcs3701.json
vendor/etc/sensors/config/lito_tmd2725.json
vendor/etc/sensors/config/lps22hh_0.json
vendor/etc/sensors/config/lsm6ds3c_0.json
vendor/etc/sensors/config/mmc5603nj.json
vendor/etc/sensors/config/sns_amd.json
vendor/etc/sensors/config/sns_amd_sw_disabled.json
vendor/etc/sensors/config/sns_amd_sw_enabled.json
vendor/etc/sensors/config/sns_aont.json
vendor/etc/sensors/config/sns_basic_gestures.json
vendor/etc/sensors/config/sns_bring_to_ear.json
vendor/etc/sensors/config/sns_ccd.json
vendor/etc/sensors/config/sns_ccd_v2_walk.json
vendor/etc/sensors/config/sns_ccd_v3_1_walk.json
vendor/etc/sensors/config/sns_ccd_v3_walk.json
vendor/etc/sensors/config/sns_cm.json
vendor/etc/sensors/config/sns_dae.json
vendor/etc/sensors/config/sns_device_orient.json
vendor/etc/sensors/config/sns_diag_filter.json
vendor/etc/sensors/config/sns_distance_bound.json
vendor/etc/sensors/config/sns_dpc.json
vendor/etc/sensors/config/sns_facing.json
vendor/etc/sensors/config/sns_fmv.json
vendor/etc/sensors/config/sns_fmv_legacy.json
vendor/etc/sensors/config/sns_geomag_rv.json
vendor/etc/sensors/config/sns_gyro_cal.json
vendor/etc/sensors/config/sns_heart_rate.json
vendor/etc/sensors/config/sns_mag_cal.json
vendor/etc/sensors/config/sns_mag_cal_legacy.json
vendor/etc/sensors/config/sns_multishake.json
vendor/etc/sensors/config/sns_pedometer.json
vendor/etc/sensors/config/sns_rmd.json
vendor/etc/sensors/config/sns_rotv.json
vendor/etc/sensors/config/sns_smd.json
vendor/etc/sensors/config/sns_tilt.json
vendor/etc/sensors/config/sns_tilt_sw_disabled.json
vendor/etc/sensors/config/sns_tilt_sw_enabled.json
vendor/etc/sensors/config/sns_tilt_to_wake.json
vendor/etc/sensors/config/sns_wrist_pedo.json
vendor/etc/sensors/config/stk3x5x_0.json
vendor/etc/sensors/config/sx9324up_0.json
vendor/etc/sensors/config/sx9324_0.json
vendor/etc/sensors/config/sx932x_0.json
vendor/etc/sensors/config/tcs3408.json
vendor/etc/sensors/config/tcs3701.json
vendor/etc/sensors/sns_reg_config
# Touchscreen firmware
odm/firmware/tp/20801/FW_GT9886_SAMSUNG_FAE.img
odm/firmware/tp/20801/FW_GT9886_SAMSUNG.img
odm/firmware/tp/20801/LIMIT_GT9886_SAMSUNG.img
# Vibrator firmware
odm/firmware/20ms_RTP.bin
odm/firmware/40ms_RTP.bin
odm/firmware/60ms_RTP.bin
odm/firmware/80ms_RTP.bin
odm/firmware/100ms_RTP.bin
odm/firmware/120ms_RTP.bin
odm/firmware/140ms_RTP.bin
odm/firmware/160ms_RTP.bin
odm/firmware/180ms_RTP.bin
odm/firmware/200ms_RTP.bin
odm/firmware/220ms_RTP.bin
odm/firmware/240ms_RTP.bin
odm/firmware/260ms_RTP.bin
odm/firmware/280ms_RTP.bin
odm/firmware/300ms_RTP.bin
odm/firmware/320ms_RTP.bin
odm/firmware/340ms_RTP.bin
odm/firmware/360ms_RTP.bin
odm/firmware/380ms_RTP.bin
odm/firmware/400ms_RTP.bin
odm/firmware/420ms_RTP.bin
odm/firmware/440ms_RTP.bin
odm/firmware/460ms_RTP.bin
odm/firmware/480ms_RTP.bin
odm/firmware/500ms_RTP.bin
odm/firmware/agingtest_160hz_RTP.bin
odm/firmware/agingtest_162hz_RTP.bin
odm/firmware/agingtest_164hz_RTP.bin
odm/firmware/agingtest_166hz_RTP.bin
odm/firmware/agingtest_168hz_RTP.bin
odm/firmware/agingtest_170hz_RTP.bin
odm/firmware/agingtest_172hz_RTP.bin
odm/firmware/agingtest_174hz_RTP.bin
odm/firmware/agingtest_176hz_RTP.bin
odm/firmware/agingtest_178hz_RTP.bin
odm/firmware/agingtest_180hz_RTP.bin
odm/firmware/AT500ms_RTP.bin
odm/firmware/aw8697_alarm_Alarm_clock_RTP_232_234Hz.bin
odm/firmware/aw8697_alarm_Beep_RTP_233_234Hz.bin
odm/firmware/aw8697_alarm_Breeze_RTP_234_234Hz.bin
odm/firmware/aw8697_alarm_Dawn_RTP_235_234Hz.bin
odm/firmware/aw8697_alarm_Dream_RTP_236_234Hz.bin
odm/firmware/aw8697_alarm_Fluttering_RTP_237_234Hz.bin
odm/firmware/aw8697_alarm_Flyer_RTP_238_234Hz.bin
odm/firmware/aw8697_alarm_Interesting_RTP_239_234Hz.bin
odm/firmware/aw8697_alarm_Leisurely_RTP_240_234Hz.bin
odm/firmware/aw8697_alarm_Memory_RTP_241_234Hz.bin
odm/firmware/aw8697_alarm_Relieved_RTP_242_234Hz.bin
odm/firmware/aw8697_alarm_Ripple_RTP_243_234Hz.bin
odm/firmware/aw8697_alarm_Slowly_RTP_244_234Hz.bin
odm/firmware/aw8697_alarm_spring_RTP_245_234Hz.bin
odm/firmware/aw8697_alarm_Stars_RTP_246_234Hz.bin
odm/firmware/aw8697_alarm_Surging_RTP_247_234Hz.bin
odm/firmware/aw8697_alarm_tactfully_RTP_248_234Hz.bin
odm/firmware/aw8697_alarm_The_wind_RTP_249_234Hz.bin
odm/firmware/aw8697_alarm_Walking_in_the_rain_RTP_250_234Hz.bin
odm/firmware/aw8697_ALCloudscape_94_RTP_235Hz.bin
odm/firmware/aw8697_ALGoodenergy_95_RTP_235Hz.bin
odm/firmware/aw8697_aw8697_ringtone_Alacrity_RTP_171_234Hz.bin
odm/firmware/aw8697_Chase_RTP_263_234Hz.bin
odm/firmware/aw8697_Climber_RTP_262_234Hz.bin
odm/firmware/aw8697_clock_channel_RTP_43_234Hz.bin
odm/firmware/aw8697_cut_channel_RTP_42_234Hz.bin
odm/firmware/aw8697_desk_7_RTP_54_234Hz.bin
odm/firmware/aw8697_haptic.bin
odm/firmware/aw8697_haptic_166.bin
odm/firmware/aw8697_haptic_168.bin
odm/firmware/aw8697_haptic_170.bin
odm/firmware/aw8697_haptic_172.bin
odm/firmware/aw8697_haptic_174.bin
odm/firmware/aw8697_haptic_235.bin
odm/firmware/aw8697_honor_fisrt_kill_RTP_60_234Hz.bin
odm/firmware/aw8697_honor_five_kill_RTP_64_234Hz.bin
odm/firmware/aw8697_honor_four_continu_kill_RTP_66_234Hz.bin
odm/firmware/aw8697_honor_four_kill_RTP_63_234Hz.bin
odm/firmware/aw8697_honor_lengendary_RTP_69_234Hz.bin
odm/firmware/aw8697_honor_thousands_kill_RTP_68_234Hz.bin
odm/firmware/aw8697_honor_three_continu_kill_RTP_65_234Hz.bin
odm/firmware/aw8697_honor_three_kill_RTP_62_234Hz.bin
odm/firmware/aw8697_honor_two_kill_RTP_61_234Hz.bin
odm/firmware/aw8697_honor_unstoppable_RTP_67_234Hz.bin
odm/firmware/aw8697_kill_program_RTP_47_234Hz.bin
odm/firmware/aw8697_listen_pop_53_235Hz.bin
odm/firmware/aw8697_long_sound_channel_RTP_44_234Hz.bin
odm/firmware/aw8697_nature_99_RTP_235Hz.bin
odm/firmware/aw8697_Newfeeling_98_RTP_235Hz.bin
odm/firmware/aw8697_notif_Allay_RTP_207_234Hz.bin
odm/firmware/aw8697_notif_Allusion_RTP_208_234Hz.bin
odm/firmware/aw8697_notif_Amiable_RTP_209_234Hz.bin
odm/firmware/aw8697_notif_Blare_RTP_210_234Hz.bin
odm/firmware/aw8697_notif_Blissful_RTP_211_234Hz.bin
odm/firmware/aw8697_notif_Brisk_RTP_212_234Hz.bin
odm/firmware/aw8697_notif_Bubble_RTP_213_234Hz.bin
odm/firmware/aw8697_notif_Cheerful_RTP_214_234Hz.bin
odm/firmware/aw8697_notif_Clear_RTP_215_234Hz.bin
odm/firmware/aw8697_notif_Comely_RTP_216_234Hz.bin
odm/firmware/aw8697_notif_Cozy_RTP_217_234Hz.bin
odm/firmware/aw8697_notif_Ding_RTP_218_234Hz.bin
odm/firmware/aw8697_notif_Effervesce_RTP_219_234Hz.bin
odm/firmware/aw8697_notif_Elegant_RTP_220_234Hz.bin
odm/firmware/aw8697_notif_Free_RTP_221_234Hz.bin
odm/firmware/aw8697_notif_Hallucination_RTP_222_234Hz.bin
odm/firmware/aw8697_notif_Inbound_RTP_223_234Hz.bin
odm/firmware/aw8697_notif_Light_RTP_224_234Hz.bin
odm/firmware/aw8697_notif_Meet_RTP_225_234Hz.bin
odm/firmware/aw8697_notif_Naivety_RTP_226_234Hz.bin
odm/firmware/aw8697_notif_Quickly_RTP_227_234Hz.bin
odm/firmware/aw8697_notif_Rhythm_RTP_228_234Hz.bin
odm/firmware/aw8697_notif_Surprise_RTP_229_234Hz.bin
odm/firmware/aw8697_notif_Twinkle_RTP_230_234Hz.bin
odm/firmware/aw8697_NTblink_96_RTP_235Hz.bin
odm/firmware/aw8697_NTwhoop_97_RTP_235Hz.bin
odm/firmware/aw8697_ring_Amenity_RTP_172_234Hz.bin
odm/firmware/aw8697_ring_Bounce_RTP_174_234Hz.bin
odm/firmware/aw8697_ring_Calm_RTP_175_234Hz.bin
odm/firmware/aw8697_ring_Lazy_RTP_191_234Hz.bin
odm/firmware/aw8697_ring_Mystical_RTP_193_234Hz.bin
odm/firmware/aw8697_ring_Whirl_RTP_199_234Hz.bin
odm/firmware/aw8697_ringtone_Blues_RTP_173_234Hz.bin
odm/firmware/aw8697_ringtone_Cloud_RTP_176_234Hz.bin
odm/firmware/aw8697_ringtone_Cyclotron_RTP_177_234Hz.bin
odm/firmware/aw8697_ringtone_Distinct_RTP_178_234Hz.bin
odm/firmware/aw8697_ringtone_Dynamic_RTP_179_234Hz.bin
odm/firmware/aw8697_ringtone_Eager_RTP_202_234Hz.bin
odm/firmware/aw8697_ringtone_Ebullition_RTP_203_234Hz.bin
odm/firmware/aw8697_ringtone_Echo_RTP_180_234Hz.bin
odm/firmware/aw8697_ringtone_Expect_RTP_181_234Hz.bin
odm/firmware/aw8697_ringtone_Fanatical_RTP_182_234Hz.bin
odm/firmware/aw8697_ringtone_Friendship_RTP_204_234Hz.bin
odm/firmware/aw8697_ringtone_Funky_RTP_183_234Hz.bin
odm/firmware/aw8697_ringtone_Guitar_RTP_184_234Hz.bin
odm/firmware/aw8697_ringtone_Harping_RTP_185_234Hz.bin
odm/firmware/aw8697_ringtone_Highlight_RTP_186_234Hz.bin
odm/firmware/aw8697_ringtone_Idyl_RTP_187_234Hz.bin
odm/firmware/aw8697_ringtone_Innocence_RTP_188_234Hz.bin
odm/firmware/aw8697_ringtone_Jazz_life_RTP_205_234Hz.bin
odm/firmware/aw8697_ringtone_Journey_RTP_189_234Hz.bin
odm/firmware/aw8697_ringtone_Joyous_RTP_190_234Hz.bin
odm/firmware/aw8697_ringtone_Marimba_RTP_192_234Hz.bin
odm/firmware/aw8697_ringtone_Old_telephone_RTP_194_234Hz.bin
odm/firmware/aw8697_ringtone_Oneplus_tune_RTP_195_234Hz.bin
odm/firmware/aw8697_ringtone_Optimistic_RTP_197_234Hz.bin
odm/firmware/aw8697_ringtone_Piano_RTP_198_234Hz.bin
odm/firmware/aw8697_ringtone_Rhythm_RTP_196_234Hz.bin
odm/firmware/aw8697_ringtone_Sun_glittering_RTP_206_234Hz.bin
odm/firmware/aw8697_rtp.bin
odm/firmware/aw8697_rtp_lighthouse.bin
odm/firmware/aw8697_rtp_silk.bin
odm/firmware/aw8697_short_channel_RTP_45_234Hz.bin
odm/firmware/aw8697_shuntai24k_RTP_264_234Hz.bin
odm/firmware/aw8697_t-jingle_RTP_201_234Hz.bin
odm/firmware/aw8697_two_error_remaind_RTP_46_234Hz.bin
odm/firmware/aw8697_Version_Alert_RTP_231_234Hz.bin
odm/firmware/aw8697_VZW_Alrwave_RTP_200_234Hz.bin
odm/firmware/aw8697_waltz_channel_RTP_41_234Hz.bin
odm/firmware/aw8697_wentai24k_RTP_265_234Hz.bin
odm/firmware/awinic.haptic.effect.so
odm/firmware/awinic_haptic_gun_params.bin
odm/firmware/awinic_haptic_params.bin
odm/firmware/BoHaoPanAnJian.bin
odm/firmware/BoHaoPanAnNiu.bin
odm/firmware/BoHaoPanKuaiJie.bin
odm/firmware/DianHuaGuaDuan.bin
odm/firmware/DianJinMoShiQieHuan.bin
odm/firmware/HuaDongTiaoZhenDong.bin
odm/firmware/LeiShen.bin.bin
odm/firmware/notif_Glint_RTP.bin
odm/firmware/notif_Nord_SMS_RTP.bin
odm/firmware/ring_Crimson_RTP.bin
odm/firmware/ring_Curious_RTP.bin
odm/firmware/ring_Imperfections_RTP.bin
odm/firmware/ring_Nord_Deviator_RTP.bin
odm/firmware/ring_Oneplus_tune_RTP.bin
odm/firmware/ring_The_Essence_RTP.bin
odm/firmware/ringtone_Eager.bin
odm/firmware/ringtone_Ebullition.bin
odm/firmware/ringtone_Friendship.bin
odm/firmware/ringtone_Jazz_life_RTP.bin
odm/firmware/ringtone_OnePlus_tune_rhythm_RTP.bin
odm/firmware/ringtone_Sun_glittering_RTP.bin
odm/firmware/XuanZhongYouXi.bin
odm/firmware/YeJianMoShiDaZi.bin
odm/firmware/YouXiSheZhiKuang.bin
odm/firmware/ZhuanYeMoShi.bin
# Widevine DRM
odm/bin/hw/android.hardware.drm@1.3-service.widevine
odm/etc/init/android.hardware.drm@1.3-service.widevine.rc
odm/etc/vintf/manifest/manifest_android.hardware.drm@1.3-service.widevine.xml
odm/lib64/mediadrm/libwvdrmengine.so
odm/lib64/liboemcrypto.so
odm/lib64/libwvhidl.so
vendor/lib64/libtrustedapploader.so
# WiFi
odm/etc/wifi/bdwlan.bin
odm/etc/wifi/bdwlanu.bin
odm/vendor/etc/wifi/WCNSS_qcom_cfg.ini:vendor/etc/wifi/WCNSS_qcom_cfg.ini
vendor/bin/cnss-daemon
vendor/etc/wifi/p2p_supplicant_overlay.conf
vendor/etc/wifi/wpa_supplicant_overlay.conf

21
seccomp/mediacodec.policy Normal file
View File

@@ -0,0 +1,21 @@
# device specific syscalls
# extension of services/mediacodec/minijail/seccomp_policy/mediacodec-seccomp-arm.policy
pselect6: 1
eventfd2: 1
sendto: 1
recvfrom: 1
_llseek: 1
sysinfo: 1
getcwd: 1
getdents64: 1
ARM_cacheflush: 1
inotify_init1: 1
inotify_add_watch: 1
inotify_rm_watch: 1
uname: 1
ueventd: 1
timer_create: 1
timer_settime: 1
rt_sigtimedwait: 1
readlink: 1
open: 1

1
sepolicy/vendor/platform_app.te vendored Normal file
View File

@@ -0,0 +1 @@
allow platform_app sysfs_graphics:file r_file_perms;

37
setup-makefiles.sh Executable file
View File

@@ -0,0 +1,37 @@
#!/bin/bash
#
# Copyright (C) 2016 The CyanogenMod Project
# Copyright (C) 2017-2020 The LineageOS Project
#
# SPDX-License-Identifier: Apache-2.0
#
set -e
DEVICE=avicii
VENDOR=oneplus
# Load extract_utils and do some sanity checks
MY_DIR="${BASH_SOURCE%/*}"
if [[ ! -d "${MY_DIR}" ]]; then MY_DIR="${PWD}"; fi
ANDROID_ROOT="${MY_DIR}/../../.."
HELPER="${ANDROID_ROOT}/tools/extract-utils/extract_utils.sh"
if [ ! -f "${HELPER}" ]; then
echo "Unable to find helper script at ${HELPER}"
exit 1
fi
source "${HELPER}"
# Initialize the helper
setup_vendor "${DEVICE}" "${VENDOR}" "${ANDROID_ROOT}"
# Warning headers and guards
write_headers
write_makefiles "${MY_DIR}/proprietary-files-caf.txt" true
write_makefiles "${MY_DIR}/proprietary-files.txt" true
# Finish
write_footers

49
system_ext.prop Normal file
View File

@@ -0,0 +1,49 @@
# Audio
audio.offload.min.duration.secs=30
persist.vendor.audio_hal.dsp_bit_width_enforce_mode=24
# Bluetooth
persist.bluetooth.bqr.choppy_threshold=9,6
persist.bluetooth.bqr.event_mask=0x8000000E
persist.bluetooth.bqr.min_interval_ms=60000
# Display
debug.sf.enable_hwc_vds=1
debug.sf.latch_unsignaled=1
# CNE
persist.vendor.cne.feature=1
# Charging
ro.charger.enable_suspend=1
# DPM
persist.vendor.dpm.feature=9
# GPS
persist.backup.ntpServer=0.pool.ntp.org
# IMS
persist.dbg.volte_avail_ovr=1
persist.dbg.vt_avail_ovr=1
persist.dbg.wfc_avail_ovr=1
# Media
media.settings.xml=/vendor/etc/media_profiles_vendor.xml
media.stagefright.thumbnail.prefer_hw_codecs=true
ro.media.recorder-max-base-layer-fps=60
# Netmgr
persist.data.df.agg.dl_pkt=10
persist.data.df.agg.dl_size=4096
persist.vendor.data.mode=concurrent
# Radio
ril.subscription.types=NV,RUIM
persist.radio.multisim.config=dsds
# Sensors
persist.vendor.sensors.enable.mag_filter=true
# Vendor
ro.vendor.qti.va_aosp.support=1

View File

@@ -0,0 +1,36 @@
/*
* Copyright (C) 2022 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.
*/
#pragma once
#include "TouchscreenGesture.h"
namespace vendor {
namespace lineage {
namespace touch {
namespace V1_0 {
namespace implementation {
const int TouchscreenGesture::kSupportedGestures = makeBitField(
kGestureUpVee, kGestureLeftVee, kGestureRightVee, kGestureCircle, kGestureDoubleSwipe,
kGestureLeftToRight, kGestureRightToLeft, kGestureUpToDown, kGestureDownToUp, kGestureM,
kGestureW, kGestureS);
} // namespace implementation
} // namespace V1_0
} // namespace touch
} // namespace lineage
} // namespace vendor

235
vendor.prop Normal file
View File

@@ -0,0 +1,235 @@
# Audio
aaudio.hw_burst_min_usec=2000
aaudio.mmap_exclusive_policy=2
aaudio.mmap_policy=2
audio.deep_buffer.media=true
persist.vendor.audio.ambisonic.auto.profile=false
persist.vendor.audio.ambisonic.capture=false
persist.vendor.audio.apptype.multirec.enabled=false
persist.vendor.audio.avs.afe_api_version=2
persist.vendor.audio.fluence.speaker=true
persist.vendor.audio.fluence.tmic.enabled=false
persist.vendor.audio.fluence.voicecall=true
persist.vendor.audio.fluence.voicecomm=true
persist.vendor.audio.fluence.voicerec=false
persist.vendor.audio.ras.enabled=false
persist.vendor.audio.spv3.enable=true
persist.vendor.audio.voicecall.speaker.stereo=true
persist.vendor.audio_hal.dsp_bit_width_enforce_mode=24
ro.vendor.audio.sdk.fluencetype=none
ro.vendor.audio.sdk.ssr=false
vendor.audio.adm.buffering.ms=2
vendor.audio.dolby.ds2.enabled=false
vendor.audio.dolby.ds2.hardbypass=false
vendor.audio.enable.mirrorlink=false
vendor.audio.feature.a2dp_offload.enable=true
vendor.audio.feature.afe_proxy.enable=true
vendor.audio.feature.anc_headset.enable=true
vendor.audio.feature.audiozoom.enable=false
vendor.audio.feature.battery_listener.enable=true
vendor.audio.feature.compr_cap.enable=false
vendor.audio.feature.compr_voip.enable=false
vendor.audio.feature.compress_in.enable=true
vendor.audio.feature.compress_meta_data.enable=true
vendor.audio.feature.concurrent_capture.enable=true
vendor.audio.feature.custom_stereo.enable=true
vendor.audio.feature.deepbuffer_as_primary.enable=false
vendor.audio.feature.display_port.enable=true
vendor.audio.feature.dsm_feedback.enable=false
vendor.audio.feature.dynamic_ecns.enable=true
vendor.audio.feature.ext_hw_plugin.enable=false
vendor.audio.feature.external_dsp.enable=false
vendor.audio.feature.external_speaker.enable=false
vendor.audio.feature.external_speaker_tfa.enable=false
vendor.audio.feature.fluence.enable=true
vendor.audio.feature.fm.enable=true
vendor.audio.feature.hdmi_edid.enable=true
vendor.audio.feature.hdmi_passthrough.enable=true
vendor.audio.feature.hfp.enable=true
vendor.audio.feature.hifi_audio.enable=false
vendor.audio.feature.hwdep_cal.enable=false
vendor.audio.feature.incall_music.enable=true
vendor.audio.feature.keep_alive.enable=true
vendor.audio.feature.kpi_optimize.enable=true
vendor.audio.feature.maxx_audio.enable=false
vendor.audio.feature.multi_voice_session.enable=true
vendor.audio.feature.ras.enable=true
vendor.audio.feature.record_play_concurency.enable=false
vendor.audio.feature.snd_mon.enable=true
vendor.audio.feature.spkr_prot.enable=true
vendor.audio.feature.src_trkn.enable=true
vendor.audio.feature.ssrec.enable=true
vendor.audio.feature.usb_offload.enable=true
vendor.audio.feature.usb_offload_burst_mode.enable=true
vendor.audio.feature.usb_offload_sidetone_volume.enable=false
vendor.audio.feature.vbat.enable=true
vendor.audio.feature.wsa.enable=false
vendor.audio.flac.sw.decoder.24bit=true
vendor.audio.hal.boot.timeout.ms=20000
vendor.audio.hal.output.suspend.supported=true
vendor.audio.hw.aac.encoder=true
vendor.audio.offload.buffer.size.kb=32
vendor.audio.offload.gapless.enabled=true
vendor.audio.offload.multiaac.enable=true
vendor.audio.offload.multiple.enabled=false
vendor.audio.offload.passthrough=false
vendor.audio.offload.track.enable=true
vendor.audio.parser.ip.buffer.size=262144
vendor.audio.safx.pbe.enabled=false
vendor.audio.tunnel.encode=false
vendor.audio.use.sw.alac.decoder=true
vendor.audio.use.sw.ape.decoder=true
vendor.audio.use.sw.mpegh.decoder=true
vendor.audio.volume.headset.gain.depcal=true
vendor.audio_hal.in_period_size=144
vendor.audio_hal.period_multiplier=3
vendor.audio_hal.period_size=192
vendor.voice.path.for.pcm.voip=true
# Bluetooth
bluetooth.device.class_of_device=90,2,12
bluetooth.hardware.power.idle_cur_ma=6
bluetooth.hardware.power.operating_voltage_mv=3700
bluetooth.hardware.power.rx_cur_ma=28
bluetooth.hardware.power.tx_cur_ma=36
bluetooth.profile.a2dp.source.enabled?=true
bluetooth.profile.asha.central.enabled?=true
bluetooth.profile.avrcp.target.enabled?=true
bluetooth.profile.bas.client.enabled?=true
bluetooth.profile.gatt.enabled?=true
bluetooth.profile.hfp.ag.enabled?=true
bluetooth.profile.hid.device.enabled?=true
bluetooth.profile.hid.host.enabled?=true
bluetooth.profile.map.server.enabled?=true
bluetooth.profile.opp.enabled?=true
bluetooth.profile.pan.nap.enabled?=true
bluetooth.profile.pan.panu.enabled?=true
bluetooth.profile.pbap.server.enabled?=true
bluetooth.profile.sap.server.enabled?=true
persist.bluetooth.a2dp_offload.disabled=false
persist.vendor.bluetooth.modem_nv_support=true
persist.vendor.bt.aac_frm_ctl.enabled=true
persist.vendor.bt.aac_vbr_frm_ctl.enabled=true
persist.vendor.qcom.bluetooth.a2dp_offload_cap=sbc-aptx-aptxtws-aptxhd-aac-ldac-aptxadaptiver2
persist.vendor.qcom.bluetooth.aac_vbr_ctl.enabled=true
persist.vendor.qcom.bluetooth.aptxadaptiver2_1_support=false
persist.vendor.qcom.bluetooth.enable.splita2dp=true
persist.vendor.qcom.bluetooth.scram.enabled=false
persist.vendor.qcom.bluetooth.soc=cherokee
persist.vendor.qcom.bluetooth.twsp_state.enabled=false
ro.bluetooth.a2dp_offload.supported=true
ro.vendor.bluetooth.wipower=false
vendor.qcom.bluetooth.soc=cherokee
# Bluetooth Name
bluetooth.device.default_name=OnePlus Nord
# Chipset
ro.soc.manufacturer=QTI
ro.soc.model=SM7250
# Crypto
ro.crypto.dm_default_key.options_format.version=2
ro.crypto.volume.filenames_mode=aes-256-cts
ro.crypto.volume.metadata.method=dm-default-key
# Display
vendor.display.disable_hw_recovery_dump=1
vendor.display.disable_offline_rotator=1
vendor.display.enable_async_powermode=0
vendor.display.enable_camera_smooth=1
vendor.display.layer_classifier_type=1
vendor.display.primary_mixer_stages=8
vendor.display.smomo_camera_support=1
vendor.display.smomo_game_support=0
vendor.display.smomo_strategy_type=1
vendor.display.use_smooth_motion=1
# DPM
persist.vendor.dpmhalservice.enable=1
# DRM
drm.service.enabled=true
# Fingerprint
persist.vendor.qfp=true
# FRP
ro.frp.pst=/dev/block/bootdevice/by-name/frp
# Gatekeeper
vendor.gatekeeper.disable_spu=true
# Graphics
debug.sf.disable_backpressure=1
debug.sf.enable_advanced_sf_phase_offset=1
debug.sf.enable_hwc_vds=1
debug.sf.high_fps_early_gl_phase_offset_ns=-4000000
debug.sf.high_fps_early_phase_offset_ns=-4000000
debug.sf.high_fps_late_sf_phase_offset_ns=-4000000
debug.sf.latch_unsignaled=1
debug.sf.perf_fps_early_gl_phase_offset_ns=-5000000
debug.sf.perf_fps_early_phase_offset_ns=-5000000
debug.sf.perf_fps_late_sf_phase_offset_ns=-5000000
persist.sys.sf.color_saturation=1.0
ro.hardware.egl=adreno
ro.hardware.vulkan=adreno
ro.surface_flinger.force_hwc_copy_for_virtual_displays=true
ro.surface_flinger.has_HDR_display=true
ro.surface_flinger.has_wide_color_display=true
ro.surface_flinger.max_frame_buffer_acquired_buffers=3
ro.surface_flinger.protected_contents=true
ro.surface_flinger.set_touch_timer_ms=0
ro.surface_flinger.use_color_management=true
ro.surface_flinger.use_content_detection_for_refresh_rate=true
ro.surface_flinger.wcg_composition_dataspace=143261696
vendor.opengles.version=196610
# Incremental FS
ro.incremental.enable=yes
# Media
debug.stagefright.ccodec=4
debug.stagefright.omx_default_rank=0
# Netflix
ro.netflix.bsp_rev=Q7250-19133-1
# Perf
ro.vendor.extension_library=libqti-perfd-client.so
# Qualcomm System Daemon
persist.vendor.qcomsysd.enabled=1
# Radio
persist.vendor.radio.apm_sim_not_pwdn=1
persist.vendor.radio.atfwd.start=true
persist.vendor.radio.custom_ecc=0
persist.vendor.radio.enableadvancedscan=true
persist.vendor.radio.procedure_bytes=SKIP
persist.vendor.radio.rat_on=combine
persist.vendor.radio.sib16_support=1
ro.telephony.default_network=33,33
# Sensors
persist.vendor.sensors.allow_non_default_discovery=true
persist.vendor.sensors.sync_request=true
# USB
vendor.usb.diag.func.name=diag
vendor.usb.dpl.inst.name=dpl
vendor.usb.qdss.inst.name=qdss
vendor.usb.rmnet.func.name=gsi
vendor.usb.rmnet.inst.name=rmnet
vendor.usb.rndis.func.name=gsi
vendor.usb.use_ffs_mtp=0
vendor.usb.use_gadget_hal=0
# USB String
vendor.usb.product_string=OnePlus Nord
# WiFi
wifi.aware.interface=wifi-aware0
# Zygote
zygote.critical_window.minute=10