dubai: Convert the tree from berlin

The partition reserved sizes were taking from stock ROM

IE, blockdev --getsize64 /dev/block/mapper/system_a

Change-Id: I7e9ba2b8f732c6ad16d45d78f577f1ac4644713d
This commit is contained in:
Marc Bourgoin 2022-08-03 21:26:21 -06:00
parent 75571258aa
commit 773a3df538
48 changed files with 965 additions and 1021 deletions

View file

@ -16,6 +16,6 @@
LOCAL_PATH := $(call my-dir)
ifeq ($(TARGET_DEVICE),berlin)
ifeq ($(TARGET_DEVICE),dubai)
include $(call all-makefiles-under,$(LOCAL_PATH))
endif
endif

View file

@ -15,9 +15,9 @@
#
PRODUCT_MAKEFILES := \
$(LOCAL_DIR)/lineage_berlin.mk
$(LOCAL_DIR)/lineage_dubai.mk
COMMON_LUNCH_CHOICES := \
lineage_berlin-user \
lineage_berlin-userdebug \
lineage_berlin-eng
lineage_dubai-user \
lineage_dubai-userdebug \
lineage_dubai-eng

View file

@ -14,23 +14,24 @@
# limitations under the License.
#
DEVICE_PATH := device/motorola/berlin
DEVICE_PATH := device/motorola/dubai
# Inherit from motorola sm7325-common
include device/motorola/sm7325-common/BoardConfigCommon.mk
# Bootloader
TARGET_BOOTLOADER_BOARD_NAME := berlin
TARGET_BOOTLOADER_BOARD_NAME := dubai
# Bluetooth
BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR := $(DEVICE_PATH)/bluetooth
# HIDL
DEVICE_MANIFEST_YUPIK_FILES += $(DEVICE_PATH)/manifest_berlin.xml
DEVICE_FRAMEWORK_COMPATIBILITY_MATRIX_FILE += $(DEVICE_PATH)/device_framework_matrix_dubai.xml
DEVICE_MANIFEST_YUPIK_FILES += $(DEVICE_PATH)/manifest_dubai.xml
# Kernel
BOARD_KERNEL_CMDLINE += androidboot.hab.product=berlin
TARGET_KERNEL_CONFIG += vendor/lineage_berlin.config
BOARD_KERNEL_CMDLINE += androidboot.hab.product=dubai
TARGET_KERNEL_CONFIG += vendor/lineage_dubai.config
# Kernel Modules
BOARD_VENDOR_KERNEL_MODULES_LOAD := $(strip $(shell cat $(DEVICE_PATH)/modules.load))
@ -39,14 +40,14 @@ BOARD_VENDOR_RAMDISK_RECOVERY_KERNEL_MODULES_LOAD := $(strip $(shell cat $(DEVIC
BOOT_KERNEL_MODULES := $(BOARD_VENDOR_RAMDISK_RECOVERY_KERNEL_MODULES_LOAD)
# Partitions
BOARD_USERDATAIMAGE_PARTITION_SIZE := 102247673856
BOARD_USERDATAIMAGE_PARTITION_SIZE := 116340535296
ifneq ($(WITH_GMS),true)
BOARD_PRODUCTIMAGE_PARTITION_RESERVED_SIZE := 1073741824
BOARD_SYSTEMIMAGE_PARTITION_RESERVED_SIZE := 898367488
BOARD_SYSTEM_EXTIMAGE_PARTITION_RESERVED_SIZE := 1073741824
BOARD_PRODUCTIMAGE_PARTITION_RESERVED_SIZE := 3318226944
BOARD_SYSTEMIMAGE_PARTITION_RESERVED_SIZE := 873680896
BOARD_SYSTEM_EXTIMAGE_PARTITION_RESERVED_SIZE := 916299776
endif
BOARD_MOT_DP_GROUP_SIZE := 7109345280
BOARD_SUPER_PARTITION_SIZE := 14227079168
BOARD_MOT_DP_GROUP_SIZE := 8921284608 # ( BOARD_SUPER_PARTITION_SIZE - 4MB )
BOARD_SUPER_PARTITION_SIZE := 8925478912
# Power
TARGET_TAP_TO_WAKE_NODE := "/sys/devices/platform/soc/a94000.i2c/i2c-2/2-0049/double_click"
@ -59,7 +60,7 @@ TARGET_VENDOR_PROP += $(DEVICE_PATH)/vendor.prop
TARGET_RECOVERY_UI_MARGIN_HEIGHT := 90
# Security
VENDOR_SECURITY_PATCH := 2022-07-01
VENDOR_SECURITY_PATCH := 2022-06-01
# inherit from the proprietary version
include vendor/motorola/berlin/BoardConfigVendor.mk
include vendor/motorola/dubai/BoardConfigVendor.mk

81
audio/audio_effects.xml Executable file
View file

@ -0,0 +1,81 @@
<?xml version="1.0" encoding="UTF-8"?>
<audio_effects_conf version="2.0" xmlns="http://schemas.android.com/audio/audio_effects_conf/v2_0">
<libraries>
<library name="proxy" path="libeffectproxy.so"/>
<library name="mmieffects" path="libmmieffectswrapper.so"/>
<library name="mot_speaker_helper" path="libspeakerbundle.so"/>
<library name="bundle" path="libbundlewrapper.so"/>
<library name="reverb" path="libreverbwrapper.so"/>
<library name="visualizer" path="libvisualizer.so"/>
<library name="downmix" path="libdownmix.so"/>
<library name="dynamics_processing" path="libdynproc.so"/>
<library name="loudness_enhancer" path="libldnhncr.so"/>
<library name="audio_pre_processing" path="libqcomvoiceprocessing.so"/>
<library name="dap" path="libswdap.so"/>
<library name="dvl" path="libdlbvol.so"/>
<library name="gamedap" path="libswgamedap.so"/>
<library name="vqe" path="libswvqe.so"/>
</libraries>
<effects>
<effect name="bassboost" library="bundle" uuid="8631f300-72e2-11df-b57e-0002a5d5c51b"/>
<effect name="virtualizer" library="bundle" uuid="1d4033c0-8557-11df-9f2d-0002a5d5c51b"/>
<effect name="equalizer" library="bundle" uuid="ce772f20-847d-11df-bb17-0002a5d5c51b"/>
<effect name="volume" library="bundle" uuid="119341a0-8469-11df-81f9-0002a5d5c51b"/>
<effect name="mmieffects" library="mmieffects" uuid="bce61ec2-eca4-445c-9dcb-91cc7cce01ba"/>
<effect name="reverb_env_aux" library="reverb" uuid="4a387fc0-8ab3-11df-8bad-0002a5d5c51b"/>
<effect name="reverb_env_ins" library="reverb" uuid="c7a511a0-a3bb-11df-860e-0002a5d5c51b"/>
<effect name="reverb_pre_aux" library="reverb" uuid="f29a1400-a3bb-11df-8ddc-0002a5d5c51b"/>
<effect name="reverb_pre_ins" library="reverb" uuid="172cdf00-a3bc-11df-a72f-0002a5d5c51b"/>
<effect name="visualizer" library="visualizer" uuid="d069d9e0-8329-11df-9168-0002a5d5c51b"/>
<effect name="downmix" library="downmix" uuid="93f04452-e4fe-41cc-91f9-e475b6d1d69f"/>
<effect name="dynamics_processing" library="dynamics_processing" uuid="e0e6539b-1781-7261-676f-6d7573696340"/>
<effect name="loudness_enhancer" library="loudness_enhancer" uuid="fa415329-2034-4bea-b5dc-5b381c8d1e2c"/>
<effectProxy name="music_helper" library="proxy" uuid="00905020-4e52-11e4-83aa-0002a5d5c51b">
<libsw library="mot_speaker_helper" uuid="bce61ec2-eca4-445c-9dcb-91cc7cce01ab"/>
<libhw library="mot_speaker_helper" uuid="bce61ec2-eca4-445c-9dcb-91cc7cce01b0"/>
</effectProxy>
<effect name="voice_helper" library="mot_speaker_helper" uuid="bce61ec2-eca4-445c-9dcb-91cc7cce01ac"/>
<effect name="ring_helper" library="mot_speaker_helper" uuid="bce61ec2-eca4-445c-9dcb-91cc7cce01ad"/>
<effect name="notification_helper" library="mot_speaker_helper" uuid="bce61ec2-eca4-445c-9dcb-91cc7cce01ae"/>
<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="dap" library="dap" uuid="9d4921da-8225-4f29-aefa-39537a04bcaa"/>
<effect name="dlb_music_listener" library="dvl" uuid="40f66c8b-5aa5-4345-8919-53ec431aaa98"/>
<effect name="dlb_ring_listener" library="dvl" uuid="21d14087-558a-4f21-94a9-5002dce64bce"/>
<effect name="dlb_alarm_listener" library="dvl" uuid="6aff229c-30c6-4cc8-9957-dbfe5c1bd7f6"/>
<effect name="dlb_system_listener" library="dvl" uuid="874db4d8-051d-4b7b-bd95-a3bebc837e9e"/>
<effect name="dlb_notification_listener" library="dvl" uuid="1f0091e3-6ad8-40fe-9b09-5948f9a26e7e"/>
<effect name="gamedap" library="gamedap" uuid="3783c334-d3a0-4d13-874f-0032e5fb80e2"/>
<effect name="vqe" library="vqe" uuid="64a0f614-7fa4-48b8-b081-d59dc954616f"/>
</effects>
<postprocess>
<stream type="music">
<apply effect="music_helper"/>
<apply effect="dlb_music_listener"/>
</stream>
<stream type="ring">
<apply effect="ring_helper"/>
<apply effect="dlb_ring_listener"/>
</stream>
<stream type="alarm">
<apply effect="ring_helper"/>
<apply effect="dlb_alarm_listener"/>
</stream>
<stream type="voice_call">
<apply effect="voice_helper"/>
</stream>
<stream type="system">
<apply effect="dlb_system_listener"/>
</stream>
<stream type="notification">
<apply effect="notification_helper"/>
<apply effect="dlb_notification_listener"/>
</stream>
</postprocess>
<preprocess>
<stream type="voice_communication">
<apply effect="aec"/>
<apply effect="ns"/>
</stream>
</preprocess>
</audio_effects_conf>

29
audio/audio_ext_spkr.conf Executable file
View file

@ -0,0 +1,29 @@
global_config {
name Dubai
sonification_pad 20
sonification_prox_timeout_sec 5
}
ring {
#dB to attenuate playback to meet safety level at each volume step
#16 steps total, 15...0. In case of truncated list, last attenuation
#given will be applied to all lower volume steps
attenuation 32,31,30,29,27,25,23,21,19,17,15,12,9,6,3,0
knee_step 16
}
voice {
#dB to attenuate playback to meet safety level at each volume step
#16 steps total, 15...0. In case of truncated list, last attenuation
#given will be applied to all lower volume steps
attenuation 32,31,30,29,27,25,23,21,19,17,15,12,9,6,3,0
knee_step 16
}
media {
#dB to attenuate playback to meet safety level at each volume step
#16 steps total, 15...0. In case of truncated list, last attenuation
#given will be applied to all lower volume steps
attenuation 32,31,30,29,27,25,23,21,19,17,15,12,9,6,3,0
knee_step 16
}

View file

@ -0,0 +1,273 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<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="false"/>
<!-- 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>
<item>FM tuner</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_16_BIT"
samplingRates="44100,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_16_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
<mixPort name="hifi_playback" role="source" />
<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_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"
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,88200,96000,176400,192000"
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_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
</mixPort>
<mixPort name="primary input" role="sink">
<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_IN_AMBISONIC,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"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK,AUDIO_CHANNEL_IN_AMBISONIC,AUDIO_CHANNEL_INDEX_MASK_3,AUDIO_CHANNEL_INDEX_MASK_4"/>
</mixPort>
<mixPort name="scc input" role="sink" flags="AUDIO_INPUT_FLAG_HW_HOTWORD">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="16000"
channelMasks="AUDIO_CHANNEL_IN_MONO"/>
</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="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="hifi_input" role="sink" />
<mixPort name="fm input" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="44100,48000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_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_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
</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>
</mixPorts>
<devicePorts>
<!-- Output devices declaration, i.e. Sink DEVICE PORT -->
<devicePort tagName="Earpiece" type="AUDIO_DEVICE_OUT_EARPIECE" role="sink">
</devicePort>
<devicePort tagName="Speaker" type="AUDIO_DEVICE_OUT_SPEAKER" role="sink">
</devicePort>
<devicePort tagName="Wired Headset" type="AUDIO_DEVICE_OUT_WIRED_HEADSET" role="sink">
</devicePort>
<devicePort tagName="Wired Headphones" type="AUDIO_DEVICE_OUT_WIRED_HEADPHONE" role="sink">
</devicePort>
<devicePort tagName="Line Out" type="AUDIO_DEVICE_OUT_LINE" role="sink">
</devicePort>
<devicePort tagName="Dock Headset" type="AUDIO_DEVICE_OUT_ANLG_DOCK_HEADSET" role="sink">
</devicePort>
<devicePort tagName="BT SCO" type="AUDIO_DEVICE_OUT_BLUETOOTH_SCO" role="sink">
</devicePort>
<devicePort tagName="BT SCO Headset" type="AUDIO_DEVICE_OUT_BLUETOOTH_SCO_HEADSET" role="sink">
</devicePort>
<devicePort tagName="BT SCO Car Kit" type="AUDIO_DEVICE_OUT_BLUETOOTH_SCO_CARKIT" role="sink">
</devicePort>
<devicePort tagName="BT A2DP Out" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP" role="sink"
encodedFormats="AUDIO_FORMAT_SBC AUDIO_FORMAT_AAC AUDIO_FORMAT_LDAC AUDIO_FORMAT_APTX AUDIO_FORMAT_APTX_HD AUDIO_FORMAT_CELT AUDIO_FORMAT_APTX_ADAPTIVE">
</devicePort>
<devicePort tagName="BT A2DP Headphones" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_HEADPHONES" role="sink"
encodedFormats="AUDIO_FORMAT_SBC AUDIO_FORMAT_AAC AUDIO_FORMAT_LDAC AUDIO_FORMAT_APTX AUDIO_FORMAT_APTX_HD AUDIO_FORMAT_CELT AUDIO_FORMAT_APTX_ADAPTIVE">
</devicePort>
<devicePort tagName="BT A2DP Speaker" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_SPEAKER" role="sink"
encodedFormats="AUDIO_FORMAT_SBC AUDIO_FORMAT_AAC AUDIO_FORMAT_LDAC AUDIO_FORMAT_APTX AUDIO_FORMAT_APTX_HD AUDIO_FORMAT_CELT AUDIO_FORMAT_APTX_ADAPTIVE">
</devicePort>
<devicePort tagName="Proxy" type="AUDIO_DEVICE_OUT_PROXY" role="sink">
</devicePort>
<devicePort tagName="HDMI Out" type="AUDIO_DEVICE_OUT_HDMI" role="sink">
</devicePort>
<devicePort tagName="Telephony Tx" type="AUDIO_DEVICE_OUT_TELEPHONY_TX" role="sink">
</devicePort>
<devicePort tagName="USB Device Out" type="AUDIO_DEVICE_OUT_USB_DEVICE" role="sink">
</devicePort>
<devicePort tagName="USB Headset Out" type="AUDIO_DEVICE_OUT_USB_HEADSET" role="sink">
</devicePort>
<devicePort tagName="Built-In Mic" type="AUDIO_DEVICE_IN_BUILTIN_MIC" role="source">
</devicePort>
<devicePort tagName="Built-In Back Mic" type="AUDIO_DEVICE_IN_BACK_MIC" role="source">
</devicePort>
<devicePort tagName="Wired Headset Mic" type="AUDIO_DEVICE_IN_WIRED_HEADSET" role="source">
</devicePort>
<devicePort tagName="BT SCO Headset Mic" type="AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET" role="source">
</devicePort>
<devicePort tagName="Telephony Rx" type="AUDIO_DEVICE_IN_TELEPHONY_RX" role="source">
</devicePort>
<devicePort tagName="FM tuner" type="AUDIO_DEVICE_IN_FM_TUNER" role="source">
</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"/>
<route type="mix" sink="Speaker"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
<route type="mix" sink="Wired Headset"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
<route type="mix" sink="Wired Headphones"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
<route type="mix" sink="Line Out"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
<route type="mix" sink="Dock Headset"
sources="primary output,deep_buffer,voip_rx"/>
<route type="mix" sink="BT SCO"
sources="primary output,deep_buffer,direct_pcm,voip_rx"/>
<route type="mix" sink="BT SCO Headset"
sources="primary output,deep_buffer,direct_pcm,voip_rx"/>
<route type="mix" sink="BT SCO Car Kit"
sources="primary output,deep_buffer,direct_pcm,voip_rx"/>
<route type="mix" sink="BT A2DP Out"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
<route type="mix" sink="BT A2DP Headphones"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
<route type="mix" sink="BT A2DP Speaker"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
<route type="mix" sink="HDMI Out"
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,hifi_playback,voip_rx"/>
<route type="mix" sink="USB Headset Out"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,hifi_playback,voip_rx"/>
<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="Proxy"
sources="primary output,deep_buffer,direct_pcm,compressed_offload"/>
<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="primary input"
sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic,BT SCO Headset Mic,USB Device In,USB Headset In"/>
<route type="mix" sink="scc input"
sources="Built-In Mic,Wired Headset Mic"/>
<route type="mix" sink="fm input"
sources="FM tuner"/>
<route type="mix" sink="hifi_input" sources="USB Device In,USB Headset In" />
</routes>
</module>
<!-- A2dp Audio HAL -->
<module name="a2dp" halVersion="2.0">
<mixPorts>
<mixPort name="a2dp input" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="44100,48000" channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO"/>
</mixPort>
</mixPorts>
<devicePorts>
<devicePort tagName="BT A2DP In" type="AUDIO_DEVICE_IN_BLUETOOTH_A2DP" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="44100,48000" channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO"/>
</devicePort>
</devicePorts>
<routes>
<route type="mix" sink="a2dp input"
sources="BT A2DP In"/>
</routes>
</module>
<!-- Usb Audio HAL -->
<xi:include href="usb_audio_policy_configuration.xml"/>
<!-- Remote Submix Audio HAL -->
<xi:include href="r_submix_audio_policy_configuration.xml"/>
</modules>
<!-- End of Modules section -->
<!-- Volume section -->
<xi:include href="audio_policy_volumes.xml"/>
<xi:include href="default_volume_tables.xml"/>
<!-- End of Volume section -->
</audioPolicyConfiguration>

22
audio/audio_policy_volumes.xml Normal file → Executable file
View file

@ -8,12 +8,18 @@ volume index from 0 to 100.
</volume>
-->
<volumes>
<volume stream="AUDIO_STREAM_VOICE_CALL" deviceCategory="DEVICE_CATEGORY_HEADSET"
ref="DEFAULT_VOICE_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_VOICE_CALL" deviceCategory="DEVICE_CATEGORY_HEADSET">
<point>0,-3700</point>
<point>20,-2600</point>
<point>40,-1800</point>
<point>60,-1100</point>
<point>80,-500</point>
<point>100,0</point>
</volume>
<volume stream="AUDIO_STREAM_VOICE_CALL" deviceCategory="DEVICE_CATEGORY_SPEAKER">
<point>0,-3000</point>
<point>33,-2300</point>
<point>66,-1600</point>
<point>33,-2000</point>
<point>66,-1000</point>
<point>100,0</point>
</volume>
<volume stream="AUDIO_STREAM_VOICE_CALL" deviceCategory="DEVICE_CATEGORY_EARPIECE"
@ -41,11 +47,11 @@ volume index from 0 to 100.
<volume stream="AUDIO_STREAM_RING" deviceCategory="DEVICE_CATEGORY_EXT_MEDIA"
ref="SONIFICATION_CATEGORY_EXT_MEDIA_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_MUSIC" deviceCategory="DEVICE_CATEGORY_HEADSET">
<point>1,-5800</point>
<point>34,-3200</point>
<point>67,-1600</point>
<point>1,-6000</point>
<point>33,-3800</point>
<point>66,-1800</point>
<point>100,0</point>
</volume>
</volume>
<volume stream="AUDIO_STREAM_MUSIC" deviceCategory="DEVICE_CATEGORY_SPEAKER"
ref="DEFAULT_DEVICE_CATEGORY_SPEAKER_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_MUSIC" deviceCategory="DEVICE_CATEGORY_EARPIECE"

31
audio/default_volume_tables.xml Normal file → Executable file
View file

@ -20,24 +20,24 @@
</reference>
<reference name="SONIFICATION_CATEGORY_SPEAKER_VOLUME_CURVE">
<!-- Speaker Sonification reference Volume Curve -->
<point>1,-3900</point>
<point>33,-2600</point>
<point>66,-1300</point>
<point>1,-4800</point>
<point>33,-3100</point>
<point>66,-1500</point>
<point>100,0</point>
</reference>
<reference name="NOTIFICATION_CATEGORY_SPEAKER_VOLUME_CURVE">
<!-- Speaker Sonification reference Volume Curve -->
<point>1,-4000</point>
<point>70,-1600</point>
<point>84,-800</point>
<point>100,0</point>
<point>1,-4900</point>
<point>33,-3400</point>
<point>66,-2000</point>
<point>100,-700</point>
</reference>
<reference name="DEFAULT_SYSTEM_VOLUME_CURVE">
<!-- Default System reference Volume Curve -->
<point>1,-3200</point>
<point>33,-2700</point>
<point>66,-2200</point>
<point>100,-1700</point>
<point>1,-3800</point>
<point>33,-3300</point>
<point>66,-2800</point>
<point>100,-2300</point>
</reference>
<reference name="DEFAULT_MEDIA_VOLUME_CURVE">
<!-- Default Media reference Volume Curve -->
@ -62,12 +62,9 @@
</reference>
<reference name="DEFAULT_DEVICE_CATEGORY_SPEAKER_VOLUME_CURVE">
<!-- Default is Speaker Media Volume Curve -->
<point>1,-5000</point>
<point>30,-3300</point>
<point>43,-2000</point>
<point>65,-1200</point>
<point>85,-600</point>
<point>93,-300</point>
<point>1,-5400</point>
<point>33,-3000</point>
<point>66,-1200</point>
<point>100,0</point>
</reference>
<reference name="DEFAULT_DEVICE_CATEGORY_EARPIECE_VOLUME_CURVE">

51
audio/sku_yupik/audio_platform_info.xml Normal file → Executable file
View file

@ -143,6 +143,7 @@
<device name="SND_DEVICE_OUT_USB_HEADPHONES" acdb_id="45" />
<device name="SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES" acdb_id="9" />
<device name="SND_DEVICE_OUT_SPEAKER" acdb_id="14" />
<device name="SND_DEVICE_OUT_SPEAKER_RIGHT" acdb_id="13" />
<device name="SND_DEVICE_OUT_VOICE_SPEAKER" acdb_id="15" />
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_HFP" acdb_id="15" />
<device name="SND_DEVICE_OUT_LINE" acdb_id="77" />
@ -155,13 +156,15 @@
<device name="SND_DEVICE_OUT_VOICE_USB_HEADSET" acdb_id="245" />
<device name="SND_DEVICE_OUT_VOICE_USB_HEADPHONES" acdb_id="245" />
<device name="SND_DEVICE_OUT_VOLTE_NB_TX" acdb_id="246" />
<device name="SND_DEVICE_OUT_AFE_PROXY" acdb_id="19" />
<!-- Input devices -->
<device name="SND_DEVICE_IN_CAPTURE_VI_FEEDBACK" acdb_id="102" />
<device name="SND_DEVICE_IN_HANDSET_MIC_AEC" acdb_id="4" />
<device name="SND_DEVICE_IN_HANDSET_MIC_AEC_NS" acdb_id="4" />
<device name="SND_DEVICE_IN_HANDSET_MIC_AEC_NS_NN" acdb_id="315" />
<device name="SND_DEVICE_IN_HANDSET_MIC_NS" acdb_id="4" />
<device name="SND_DEVICE_IN_HANDSET_MIC_NN" acdb_id="318" />
<device name="SND_DEVICE_IN_HANDSET_MIC_NN" acdb_id="315" />
<device name="SND_DEVICE_IN_HANDSET_MIC_TOP" acdb_id="88" />
<device name="SND_DEVICE_IN_HANDSET_MIC_NN_TOP" acdb_id="88" />
<device name="SND_DEVICE_IN_SPEAKER_DMIC" acdb_id="35" />
@ -180,6 +183,7 @@
<device name="SND_DEVICE_IN_VOICE_DMIC_TMUS" acdb_id="41" />
<device name="SND_DEVICE_IN_HEADSET_MIC" acdb_id="8" />
<device name="SND_DEVICE_IN_HEADSET_MIC_AEC" acdb_id="47" />
<device name="SND_DEVICE_IN_HEADSET_MIC_CQA" acdb_id="60" />
<device name="SND_DEVICE_IN_CAMCORDER_MIC" acdb_id="61" />
<device name="SND_DEVICE_IN_VOICE_REC_MIC" acdb_id="62" />
<device name="SND_DEVICE_IN_VOICE_REC_MIC_AEC" acdb_id="62" />
@ -187,6 +191,7 @@
<device name="SND_DEVICE_IN_VOICE_REC_MIC_NS" acdb_id="62" />
<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_HANDSET_DMIC_AEC_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_THREE_MIC" acdb_id="125" />
@ -210,17 +215,17 @@
<device name="SND_DEVICE_IN_CAMCORDER_SELFIE_INVERT_LANDSCAPE" acdb_id="61" />
<device name="SND_DEVICE_IN_VOICE_REC_DMIC_STEREO" acdb_id="35" />
<device name="SND_DEVICE_IN_CAPTURE_FM" acdb_id="90" />
<device name="SND_DEVICE_IN_VOICE_SPEAKER_MIC_NN" acdb_id="301" />
<device name="SND_DEVICE_IN_VOICE_HEADSET_MIC_NN" acdb_id="8" />
<device name="SND_DEVICE_IN_VOICE_SPEAKER_MIC_NN" acdb_id="11" />
<device name="SND_DEVICE_IN_VOICE_HEADSET_MIC_NN" acdb_id="302" />
<device name="SND_DEVICE_IN_VOICE_USB_HEADSET_MIC_NN" acdb_id="303" />
<device name="SND_DEVICE_IN_SPEAKER_MIC_NN" acdb_id="304" />
<device name="SND_DEVICE_IN_SPEAKER_MIC_AEC_NN" acdb_id="304" />
<device name="SND_DEVICE_IN_SPEAKER_MIC_NS_NN" acdb_id="304" />
<device name="SND_DEVICE_IN_SPEAKER_MIC_AEC_NS_NN" acdb_id="304" />
<device name="SND_DEVICE_IN_SPEAKER_MIC_NN" acdb_id="114" />
<device name="SND_DEVICE_IN_SPEAKER_MIC_AEC_NN" acdb_id="114" />
<device name="SND_DEVICE_IN_SPEAKER_MIC_NS_NN" acdb_id="114" />
<device name="SND_DEVICE_IN_SPEAKER_MIC_AEC_NS_NN" acdb_id="114" />
<device name="SND_DEVICE_IN_HEADSET_MIC_NN" acdb_id="319" />
<device name="SND_DEVICE_IN_HEADSET_MIC_FLUENCE_NN" acdb_id="305" />
<device name="SND_DEVICE_IN_SPEAKER_MIC_GAME" acdb_id="114" />
<device name="SND_DEVICE_IN_SPEAKER_MIC_GAME_NN" acdb_id="304" />
<device name="SND_DEVICE_IN_SPEAKER_MIC_GAME_NN" acdb_id="114" />
<device name="SND_DEVICE_IN_AUX_MIC_AEC_NS" acdb_id="316" />
<device name="SND_DEVICE_IN_AUX_MIC_AEC_NS_NN" acdb_id="316" />
<device name="SND_DEVICE_IN_USB_HEADSET_MIC_NN" acdb_id="306" />
@ -251,27 +256,30 @@
<device name="SND_DEVICE_OUT_VOICE_TTY_FULL_HEADSET" backend="headset" 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_VOICE_TTY_VCO_HEADSET" backend="headset" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_HANDSET" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_CQA_HANDSET" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOLTE_NB_HANDSET_TMUS" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOLTE_NB_ANC_HANDSET" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_HAC_HANDSET" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_HANDSET" interface="SEN_MI2S_RX"/>
<device name="SND_DEVICE_OUT_CQA_HANDSET" interface="SEN_MI2S_RX"/>
<device name="SND_DEVICE_OUT_VOLTE_NB_HANDSET_TMUS" interface="SEN_MI2S_RX"/>
<device name="SND_DEVICE_OUT_VOLTE_NB_ANC_HANDSET" interface="SEN_MI2S_RX"/>
<device name="SND_DEVICE_OUT_VOICE_HAC_HANDSET" interface="SEN_MI2S_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER" backend="speaker" interface="SEN_MI2S_RX"/>
<device name="SND_DEVICE_OUT_CQA_SPEAKER" backend="speaker" interface="SEN_MI2S_RX"/>
<device name="SND_DEVICE_OUT_VOLTE_NB_SPEAKER" backend="speaker" interface="SEN_MI2S_RX"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER" backend="speaker" interface="SEN_MI2S_RX"/>
<device name="SND_DEVICE_OUT_VOICE_HANDSET" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_ANC_HANDSET" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOLTE_NB_HANDSET" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOLTE_NB_HAC_HANDSET" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_HANDSET_TMUS" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_SPEAKER_LEFT" backend="speaker" interface="SEN_MI2S_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_RIGHT" backend="speaker" interface="SEN_MI2S_RX"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER" backend="speaker" interface="SEN_MI2S_RX"/>
<device name="SND_DEVICE_OUT_VOICE_HANDSET" interface="SEN_MI2S_RX"/>
<device name="SND_DEVICE_OUT_VOICE_ANC_HANDSET" interface="SEN_MI2S_RX"/>
<device name="SND_DEVICE_OUT_VOLTE_NB_HANDSET" interface="SEN_MI2S_RX"/>
<device name="SND_DEVICE_OUT_VOLTE_NB_HAC_HANDSET" interface="SEN_MI2S_RX"/>
<device name="SND_DEVICE_OUT_VOICE_HANDSET_TMUS" interface="SEN_MI2S_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_AND_BT_A2DP" interface="SEN_MI2S_RX-and-SLIMBUS_7_RX"/>
<device name="SND_DEVICE_OUT_VOICE_TTY_HCO_HANDSET" backend="headset" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_TTY_HCO_HANDSET" backend="hco" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_ANC_FB_HEADSET" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_ANC_FB_HEADSET" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_ANC_HANDSET" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_ANC_HANDSET" interface="SEN_MI2S_RX"/>
<device name="SND_DEVICE_IN_HANDSET_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HANDSET_MIC_NN" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HANDSET_MIC_AEC_NS_NN" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HANDSET_MIC_TOP" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HANDSET_MIC_NN_TOP" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HANDSET_MIC_EXTERNAL" interface="TX_CDC_DMA_TX_3"/>
@ -314,6 +322,7 @@
<device name="SND_DEVICE_IN_VOICE_REC_EXTERNAL_MIC_NN" 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_HEADSET_MIC_AEC_NN" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
<device name="SND_DEVICE_IN_HEADSET_MIC_CQA" 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_VOICE_SPEAKER_MIC_NN" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HDMI_MIC" interface="HDMI"/>

171
audio/sku_yupik/mixer_paths.xml Normal file → Executable file
View file

@ -165,8 +165,6 @@
<ctl name="AUDIO_REF_EC_UL1 MUX" value="None" />
<ctl name="AUDIO_REF_EC_UL10 MUX" value="None" />
<ctl name="EC Reference Channels" value="Zero"/>
<ctl name="SPK ASP TX1 Source" value="VMON" />
<ctl name="SPK ASP TX2 Source" value="Zero" />
<!-- usb headset -->
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia1" value="0" />
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia2" value="0" />
@ -318,8 +316,6 @@
<ctl name="AUX_RDAC Switch" value="0" />
<ctl name="RDAC3_MUX" value="RX1" />
<ctl name="RX_EAR Mode" value="OFF" />
<ctl name="SEN_MI2S_RX Channels" value="One" />
<ctl name="SEN_MI2S_TX Channels" value="One" />
<!-- TX Controls -->
<!-- Enable these switches at the end of a path -->
@ -446,17 +442,6 @@
<ctl name="RX_Softclip Enable" value="0" />
<ctl name="RX INT2_1 VBAT RX AUX VBAT Enable" value="0" />
<!-- smart amplifier start -->
<ctl name="SPK DSP1 Firmware" value="protection" />
<ctl name="SPK DSP1 Preload Switch" value="1" />
<ctl name="SPK DSP RX1 Source" value="ASPRX1" />
<ctl name="SPK DSP RX2 Source" value="ASPRX1" />
<ctl name="SPK AMP PCM Gain" value="10" />
<ctl name="SPK PCM Source" value="ASP" />
<ctl name="SPK AMP Enable Switch" value="0" />
<ctl name="SPK PCM Soft Ramp" value="Off" />
<!-- smart amplifier end -->
<!-- Codec controls end -->
<!-- defaults for mmap record -->
@ -467,6 +452,32 @@
<ctl name="RX_CDC_DMA_RX_6 Audio Mixer MultiMedia32" value="0"/>
<ctl name="RX_CDC_DMA_RX_6 Channels" value="One" />
<ctl name="SEN_MI2S_RX Channels" value="Two" />
<ctl name="SEN_MI2S_TX Channels" value="Two" />
<ctl name="SEN_MI2S_RX Format" value="S32_LE" />
<ctl name="SEN_MI2S_TX Format" value="S32_LE" />
<!-- awinic smartPA -->
<ctl name="aw_dev_0_switch" value="Enable" />
<ctl name="aw_dev_1_switch" value="Enable" />
<ctl name="aw_dev_0_prof" value="Music" />
<ctl name="aw_dev_1_prof" value="Music" />
<ctl name="aw882xx_rx_switch" value="Disable" />
<ctl name="aw882xx_tx_switch" value="Disable" />
<ctl name="SEN_MI2S_RX_VI_FB_MUX" value="ZERO" />
<ctl name="aw882xx_algo_cali_switch" value="Off" />
<ctl name="aw882xx_algo_bypass_switch" value="Off" />
<ctl name="aw882xx_algo_handset_switch" value="Off" />
<ctl name="aw882xx_algo_voice_switch" value="Off" />
<ctl name="aw882xx_algo_voip_switch" value="Off" />
<ctl name="aw882xx_algo_music_deepbuffer_switch" value="Off" />
<ctl name="aw882xx_algo_music_fasttrack_switch" value="Off" />
<!-- These are audio route (FE to BE) specific mixer settings -->
<path name="gsm-mode">
<ctl name="RX_GSM mode Enable" value="ON" />
@ -477,7 +488,17 @@
</path>
<path name="echo-reference">
<ctl name="AUDIO_REF_EC_UL1 MUX" value="SEN_MI2S_TX" />
<ctl name="AUDIO_REF_EC_UL1 MUX" value="SEN_MI2S_RX" />
<ctl name="EC Reference Channels" value="One"/>
</path>
<path name="echo-reference speaker">
<ctl name="AUDIO_REF_EC_UL10 MUX" value="SEN_MI2S_RX" />
<ctl name="EC Reference Channels" value="One"/>
</path>
<path name="echo-reference handset">
<ctl name="AUDIO_REF_EC_UL10 MUX" value="SEN_MI2S_RX" />
<ctl name="EC Reference Channels" value="One"/>
</path>
@ -495,6 +516,15 @@
<ctl name="EC Reference Channels" value="Two"/>
</path>
<path name="echo-reference usb-headphones">
<ctl name="AUDIO_REF_EC_UL10 MUX" value="USB_AUDIO_RX" />
<ctl name="EC Reference Channels" value="Two"/>
</path>
<path name="echo-reference usb-headset">
<path name="echo-reference usb-headphones" />
</path>
<path name="echo-reference bt-sco">
<ctl name="AUDIO_REF_EC_UL1 MUX" value="SLIM_7_RX" />
<ctl name="EC Reference Channels" value="Two"/>
@ -509,7 +539,17 @@
</path>
<path name="echo-reference-voip">
<ctl name="AUDIO_REF_EC_UL10 MUX" value="SEN_MI2S_TX" />
<ctl name="AUDIO_REF_EC_UL10 MUX" value="SEN_MI2S_RX" />
<ctl name="EC Reference Channels" value="One"/>
</path>
<path name="echo-reference-voip speaker">
<ctl name="AUDIO_REF_EC_UL10 MUX" value="SEN_MI2S_RX" />
<ctl name="EC Reference Channels" value="One"/>
</path>
<path name="echo-reference-voip handset">
<ctl name="AUDIO_REF_EC_UL10 MUX" value="SEN_MI2S_RX" />
<ctl name="EC Reference Channels" value="One"/>
</path>
@ -518,6 +558,15 @@
<ctl name="EC Reference Channels" value="Two"/>
</path>
<path name="echo-reference-voip usb-headphones">
<ctl name="AUDIO_REF_EC_UL10 MUX" value="USB_AUDIO_RX" />
<ctl name="EC Reference Channels" value="Two"/>
</path>
<path name="echo-reference-voip usb-headset">
<path name="echo-reference-voip usb-headphones" />
</path>
<path name="echo-reference-voip bt-sco">
<ctl name="AUDIO_REF_EC_UL10 MUX" value="SLIM_7_RX" />
<ctl name="EC Reference Channels" value="Two"/>
@ -532,11 +581,14 @@
</path>
<path name="deep-buffer-playback">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia1" value="1" />
<ctl name="SEN_MI2S_RX Audio Mixer MultiMedia1" value="1" />
<ctl name="aw882xx_algo_music_deepbuffer_switch" value="On" />
</path>
<path name="deep-buffer-playback speaker">
<ctl name="SEN_MI2S_RX Audio Mixer MultiMedia1" value="1" />
<ctl name="aw882xx_algo_music_deepbuffer_switch" value="On" />
<ctl name="aw882xx_spin_relase_time" value="100" />
</path>
<path name="deep-buffer-playback bt-sco">
@ -603,11 +655,14 @@
</path>
<path name="low-latency-playback">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia5" value="1" />
<ctl name="SEN_MI2S_RX Audio Mixer MultiMedia5" value="1" />
<ctl name="aw882xx_algo_music_fasttrack_switch" value="On" />
</path>
<path name="low-latency-playback speaker">
<ctl name="SEN_MI2S_RX Audio Mixer MultiMedia5" value="1" />
<ctl name="aw882xx_algo_music_fasttrack_switch" value="On" />
<ctl name="aw882xx_spin_relase_time" value="100" />
</path>
<path name="low-latency-playback bt-sco">
@ -674,7 +729,8 @@
</path>
<path name="audio-ull-playback">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia8" value="1" />
<ctl name="SEN_MI2S_RX Audio Mixer MultiMedia8" value="1" />
<ctl name="aw882xx_algo_music_deepbuffer_switch" value="On" />
</path>
<path name="audio-ull-playback speaker">
@ -745,10 +801,12 @@
<path name="compress-offload-playback speaker">
<ctl name="SEN_MI2S_RX Audio Mixer MultiMedia4" value="1" />
<ctl name="aw882xx_algo_music_deepbuffer_switch" value="On" />
<ctl name="aw882xx_spin_relase_time" value="100" />
</path>
<path name="compress-offload-playback">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia4" value="1" />
<ctl name="SEN_MI2S_RX Audio Mixer MultiMedia4" value="1" />
</path>
<path name="compress-offload-playback bt-sco">
@ -823,11 +881,14 @@
</path>
<path name="compress-offload-playback2">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia7" value="1" />
<ctl name="SEN_MI2S_RX Audio Mixer MultiMedia7" value="1" />
<ctl name="aw882xx_algo_music_deepbuffer_switch" value="On" />
</path>
<path name="compress-offload-playback2 speaker">
<ctl name="SEN_MI2S_RX Audio Mixer MultiMedia7" value="1" />
<ctl name="aw882xx_algo_music_deepbuffer_switch" value="On" />
<ctl name="aw882xx_spin_relase_time" value="100" />
</path>
<path name="compress-offload-playback2 bt-sco">
@ -1133,11 +1194,7 @@
<path name="compress-voip-call">
<ctl name="SEN_MI2S_RX_Voice Mixer Voip" value="1" />
<ctl name="Voip_Tx Mixer TX_CDC_DMA_TX_3_Voip" value="1" />
</path>
<path name="compress-voip-call">
<ctl name="RX_CDC_DMA_RX_0_Voice Mixer Voip" value="1" />
<ctl name="Voip_Tx Mixer TX_CDC_DMA_TX_3_Voip" value="1" />
<ctl name="aw882xx_algo_voip_switch" value="On" />
</path>
<path name="compress-voip-call bt-a2dp">
@ -1185,14 +1242,21 @@
</path>
<path name="voicemmode1-call">
<ctl name="RX_CDC_DMA_RX_0_Voice Mixer VoiceMMode1" value="1" />
<ctl name="SEN_MI2S_RX_Voice Mixer VoiceMMode1" value="1" />
<ctl name="VoiceMMode1_Tx Mixer TX_CDC_DMA_TX_3_MMode1" value="1" />
<ctl name="aw882xx_algo_handset_switch" value="On" />
</path>
<path name="voicemmode1-call hco">
<ctl name="SEN_MI2S_RX_Voice Mixer VoiceMMode1" value="1" />
<ctl name="VoiceMMode1_Tx Mixer TX_CDC_DMA_TX_4_MMode1" value="1" />
</path>
<path name="voicemmode1-call speaker">
<ctl name="VOC_EXT_EC MUX" value="SEN_MI2S_TX" />
<ctl name="SEN_MI2S_RX_Voice Mixer VoiceMMode1" value="1" />
<ctl name="VoiceMMode1_Tx Mixer TX_CDC_DMA_TX_3_MMode1" value="1" />
<ctl name="aw882xx_algo_voice_switch" value="On" />
<ctl name="aw882xx_spin_relase_time" value="100" />
</path>
<path name="voicemmode1-call hearing-aid">
@ -1245,14 +1309,21 @@
</path>
<path name="voicemmode2-call">
<ctl name="RX_CDC_DMA_RX_0_Voice Mixer VoiceMMode2" value="1" />
<ctl name="SEN_MI2S_RX_Voice Mixer VoiceMMode2" value="1" />
<ctl name="VoiceMMode2_Tx Mixer TX_CDC_DMA_TX_3_MMode2" value="1" />
<ctl name="aw882xx_algo_voice_switch" value="On" />
</path>
<path name="voicemmode2-call hco">
<ctl name="SEN_MI2S_RX_Voice Mixer VoiceMMode2" value="1" />
<ctl name="VoiceMMode2_Tx Mixer TX_CDC_DMA_TX_4_MMode2" value="1" />
</path>
<path name="voicemmode2-call speaker">
<ctl name="VOC_EXT_EC MUX" value="SEN_MI2S_TX" />
<ctl name="SEN_MI2S_RX_Voice Mixer VoiceMMode2" value="1" />
<ctl name="VoiceMMode2_Tx Mixer TX_CDC_DMA_TX_3_MMode2" value="1" />
<ctl name="aw882xx_algo_voice_switch" value="On" />
<ctl name="aw882xx_spin_relase_time" value="100" />
</path>
<path name="voicemmode2-call headphones">
@ -1306,11 +1377,14 @@
<!-- VoIP Rx settings -->
<path name="audio-playback-voip">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia10" value="1" />
<ctl name="SEN_MI2S_RX Audio Mixer MultiMedia10" value="1" />
<ctl name="aw882xx_algo_voip_switch" value="On" />
</path>
<path name="audio-playback-voip speaker">
<ctl name="SEN_MI2S_RX Audio Mixer MultiMedia10" value="1" />
<ctl name="aw882xx_algo_voip_switch" value="On" />
<ctl name="aw882xx_spin_relase_time" value="100" />
</path>
<path name="audio-playback-voip headphones">
@ -1418,11 +1492,14 @@
</path>
<path name="mmap-playback">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia16" value="1" />
<ctl name="SEN_MI2S_RX Audio Mixer MultiMedia16" value="1" />
<ctl name="aw882xx_algo_music_deepbuffer_switch" value="On" />
</path>
<path name="mmap-playback speaker">
<ctl name="SEN_MI2S_RX Audio Mixer MultiMedia16" value="1" />
<ctl name="aw882xx_algo_music_deepbuffer_switch" value="On" />
<ctl name="aw882xx_spin_relase_time" value="100" />
</path>
<path name="mmap-playback headphones">
@ -1661,6 +1738,9 @@
</path>
<path name="spkr-vi-record">
<ctl name="aw882xx_rx_switch" value="Enable" />
<ctl name="aw882xx_tx_switch" value="Enable" />
<ctl name="SEN_MI2S_RX_VI_FB_MUX" value="SEN_MI2S_TX" />
</path>
<!-- These are actual sound device specific mixer settings -->
@ -1790,9 +1870,14 @@
</path>
<path name="speaker">
<ctl name="SPK PCM Source" value="DSP" />
<ctl name="SPK AMP PCM Gain" value="17" />
<ctl name="SPK AMP Enable Switch" value="1" />
</path>
<path name="speaker-left">
<ctl name="aw_dev_0_switch" value="Disable" />
</path>
<path name="speaker-right">
<path name="speaker" />
</path>
<path name="speaker-mono">
@ -1868,13 +1953,9 @@
</path>
<path name="handset">
<ctl name="RX_MACRO RX0 MUX" value="AIF1_PB" />
<ctl name="RX_CDC_DMA_RX_0 Channels" value="One" />
<ctl name="RX INT0_1 MIX1 INP0" value="RX0" />
<ctl name="RX INT0 DEM MUX" value="CLSH_DSM_OUT" />
<ctl name="EAR_RDAC Switch" value="1" />
<ctl name="RDAC3_MUX" value="RX1" />
<ctl name="RX_EAR Mode" value="ON" />
<ctl name="aw_dev_0_switch" value="Disable" />
<ctl name="aw_dev_1_prof" value="Receiver" />
<ctl name="aw882xx_algo_handset_switch" value="on" />
</path>
<path name="handset-mic">
@ -1931,8 +2012,9 @@
</path>
<path name="headset-mic">
<ctl name="TX_DEC0 Volume" value="84" />
<path name="amic2" />
<ctl name="TX_DEC0 Volume" value="84" />
<ctl name="ADC2 Volume" value="8" />
</path>
<path name="external-mic">
@ -1954,7 +2036,6 @@
</path>
<path name="voice-speaker">
<ctl name="SPK PCM Soft Ramp" value="15ms" />
<path name="speaker-mono" />
</path>

View file

@ -22,7 +22,7 @@
#ifndef _BDROID_BUILDCFG_H
#define _BDROID_BUILDCFG_H
#define BTM_DEF_LOCAL_NAME "Motorola Edge 20"
#define BTM_DEF_LOCAL_NAME "Motorola Edge 30"
// Disables read remote device feature
#define MAX_ACL_CONNECTIONS 16
#define MAX_L2CAP_CHANNELS 16

View file

@ -1,5 +0,0 @@
# Goodix side-type fingerprint sensor
device.internal = 1
keyboard.layout = uinput_nav
keyboard.builtIn = 1
keyboard.orientationAware = 1

9
configs/keylayout/goodix_ts.kl Executable file
View file

@ -0,0 +1,9 @@
#
# Goodix Touch sensor fod key event
#
#
# 704 finger touch down
# 705 finger touch up
# goodix_ts "finger present"
key 704 SYSTEM_NAVIGATION_DOWN
key 705 SYSTEM_NAVIGATION_UP

View file

@ -1,7 +0,0 @@
# Goodix side-type fingerprint sensor
key 103 SYSTEM_NAVIGATION_UP
key 108 SYSTEM_NAVIGATION_DOWN
# use SYSTEM_NAVIGATION_LEFT for double-tap gesture
key 115 SYSTEM_NAVIGATION_LEFT

View file

@ -33,23 +33,22 @@ $(call inherit-product, device/motorola/sm7325-common/sm7325.mk)
# Overlay
PRODUCT_PACKAGES += \
FrameworksResBerlin \
SystemUIResBerlin
FrameworksResDubai \
SystemUIResDubai
# Audio
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/audio/audio_policy_volumes.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_volumes.xml \
$(LOCAL_PATH)/audio/default_volume_tables.xml:$(TARGET_COPY_OUT_VENDOR)/etc/default_volume_tables.xml \
$(LOCAL_PATH)/audio/sku_yupik/audio_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_yupik/audio_platform_info.xml \
$(LOCAL_PATH)/audio/sku_yupik/mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_yupik/mixer_paths.xml
$(LOCAL_PATH)/audio/sku_yupik/mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_yupik/mixer_paths.xml \
$(LOCAL_PATH)/audio/audio_policy_volumes.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_volumes.xml \
$(LOCAL_PATH)/audio/audio_effects.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_effects.xml \
$(LOCAL_PATH)/audio/audio_ext_spkr.conf:$(TARGET_COPY_OUT_VENDOR)/etc/audio_ext_spkr.conf \
$(LOCAL_PATH)/audio/audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration.xml \
$(LOCAL_PATH)/audio/default_volume_tables.xml:$(TARGET_COPY_OUT_VENDOR)/etc/default_volume_tables.xml
# Fingerprint
PRODUCT_PACKAGES += \
android.hardware.biometrics.fingerprint@2.1-service.berlin
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/idc/uinput_nav.idc:$(TARGET_COPY_OUT_VENDOR)/usr/idc/uinput_nav.idc \
$(LOCAL_PATH)/configs/keylayout/uinput_nav.kl:$(TARGET_COPY_OUT_VENDOR)/usr/keylayout/uinput_nav.kl
android.hardware.biometrics.fingerprint@2.1.vendor
# Init
$(foreach f,$(wildcard $(LOCAL_PATH)/rootdir/etc/init/hw/*.rc),\
@ -59,9 +58,13 @@ $(foreach f,$(wildcard $(LOCAL_PATH)/rootdir/etc/init/*.rc),\
$(foreach f,$(wildcard $(LOCAL_PATH)/rootdir/bin/*.sh),\
$(eval PRODUCT_COPY_FILES += $(f):$(TARGET_COPY_OUT_VENDOR)/bin/$(notdir $f)))
# Keylayout
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/keylayout/goodix_ts.kl:$(TARGET_COPY_OUT_VENDOR)/usr/keylayout/goodix_ts.kl
# Lineage Touch
PRODUCT_PACKAGES += \
vendor.lineage.touch@1.0-service.berlin
vendor.lineage.touch@1.0-service.dubai
# Media
PRODUCT_COPY_FILES += \
@ -87,4 +90,4 @@ PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.nfc.hcef.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.hcef.xml
# Inherit from vendor blobs
$(call inherit-product, vendor/motorola/berlin/berlin-vendor.mk)
$(call inherit-product, vendor/motorola/dubai/dubai-vendor.mk)

View file

@ -0,0 +1,11 @@
<compatibility-matrix version="2.0" type="framework">
<hal format="hidl" optional="true">
<name>vendor.egistec.hardware.fingerprint</name>
<transport>hwbinder</transport>
<version>4.0</version>
<interface>
<name>IBiometricsFingerprintRbs</name>
<instance>default</instance>
</interface>
</hal>
</compatibility-matrix>

View file

@ -1,7 +1,7 @@
#!/bin/bash
#
# Copyright (C) 2016 The CyanogenMod Project
# Copyright (C) 2017-2020 The LineageOS Project
# Copyright (C) 2017-2022 The LineageOS Project
#
# SPDX-License-Identifier: Apache-2.0
#
@ -14,7 +14,7 @@ fi
set -e
export DEVICE=berlin
export DEVICE=dubai
export DEVICE_COMMON=sm7325-common
export VENDOR=motorola

View file

@ -1,32 +0,0 @@
//
// Copyright (C) 2017-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.
cc_binary {
name: "android.hardware.biometrics.fingerprint@2.1-service.berlin",
vintf_fragments: ["android.hardware.biometrics.fingerprint@2.1-service.berlin.xml"],
init_rc: ["android.hardware.biometrics.fingerprint@2.1-service.berlin.rc"],
defaults: ["hidl_defaults"],
relative_install_path: "hw",
srcs: ["service.cpp", "BiometricsFingerprint.cpp"],
shared_libs: [
"libbase",
"libhardware",
"libhidlbase",
"liblog",
"libutils",
"libcutils",
"android.hardware.biometrics.fingerprint@2.1",
],
proprietary: true,
}

View file

@ -1,375 +0,0 @@
/*
* Copyright (C) 2017 The Android Open Source Project
* Copyright (C) 2018-2020 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.
*/
#define LOG_TAG "android.hardware.biometrics.fingerprint@2.1-service.berlin"
#include "BiometricsFingerprint.h"
#include <android-base/strings.h>
#include <cutils/properties.h>
#include <hardware/fingerprint.h>
#include <hardware/hardware.h>
#include <hardware/hw_auth_token.h>
#include <inttypes.h>
#include <unistd.h>
namespace android {
namespace hardware {
namespace biometrics {
namespace fingerprint {
namespace V2_1 {
namespace implementation {
// Supported fingerprint HAL version
static const uint16_t kVersion = HARDWARE_MODULE_API_VERSION(2, 1);
using RequestStatus = android::hardware::biometrics::fingerprint::V2_1::RequestStatus;
BiometricsFingerprint* BiometricsFingerprint::sInstance = nullptr;
BiometricsFingerprint::BiometricsFingerprint() : mClientCallback(nullptr), mDevice(nullptr) {
sInstance = this; // keep track of the most recent instance
mDevice = openHal();
if (!mDevice) {
ALOGE("Can't open HAL module");
}
}
BiometricsFingerprint::~BiometricsFingerprint() {
ALOGV("~BiometricsFingerprint()");
if (mDevice == nullptr) {
ALOGE("No valid device");
return;
}
int err;
if (0 != (err = mDevice->common.close(reinterpret_cast<hw_device_t*>(mDevice)))) {
ALOGE("Can't close fingerprint module, error: %d", err);
return;
}
mDevice = nullptr;
}
Return<RequestStatus> BiometricsFingerprint::ErrorFilter(int32_t error) {
switch (error) {
case 0:
return RequestStatus::SYS_OK;
case -2:
return RequestStatus::SYS_ENOENT;
case -4:
return RequestStatus::SYS_EINTR;
case -5:
return RequestStatus::SYS_EIO;
case -11:
return RequestStatus::SYS_EAGAIN;
case -12:
return RequestStatus::SYS_ENOMEM;
case -13:
return RequestStatus::SYS_EACCES;
case -14:
return RequestStatus::SYS_EFAULT;
case -16:
return RequestStatus::SYS_EBUSY;
case -22:
return RequestStatus::SYS_EINVAL;
case -28:
return RequestStatus::SYS_ENOSPC;
case -110:
return RequestStatus::SYS_ETIMEDOUT;
default:
ALOGE("An unknown error returned from fingerprint vendor library: %d", error);
return RequestStatus::SYS_UNKNOWN;
}
}
// Translate from errors returned by traditional HAL (see fingerprint.h) to
// HIDL-compliant FingerprintError.
FingerprintError BiometricsFingerprint::VendorErrorFilter(int32_t error, int32_t* vendorCode) {
*vendorCode = 0;
switch (error) {
case FINGERPRINT_ERROR_HW_UNAVAILABLE:
return FingerprintError::ERROR_HW_UNAVAILABLE;
case FINGERPRINT_ERROR_UNABLE_TO_PROCESS:
return FingerprintError::ERROR_UNABLE_TO_PROCESS;
case FINGERPRINT_ERROR_TIMEOUT:
return FingerprintError::ERROR_TIMEOUT;
case FINGERPRINT_ERROR_NO_SPACE:
return FingerprintError::ERROR_NO_SPACE;
case FINGERPRINT_ERROR_CANCELED:
return FingerprintError::ERROR_CANCELED;
case FINGERPRINT_ERROR_UNABLE_TO_REMOVE:
return FingerprintError::ERROR_UNABLE_TO_REMOVE;
case FINGERPRINT_ERROR_LOCKOUT:
return FingerprintError::ERROR_LOCKOUT;
default:
if (error >= FINGERPRINT_ERROR_VENDOR_BASE) {
// vendor specific code.
*vendorCode = error - FINGERPRINT_ERROR_VENDOR_BASE;
return FingerprintError::ERROR_VENDOR;
}
}
ALOGE("Unknown error from fingerprint vendor library: %d", error);
return FingerprintError::ERROR_UNABLE_TO_PROCESS;
}
// Translate acquired messages returned by traditional HAL (see fingerprint.h)
// to HIDL-compliant FingerprintAcquiredInfo.
FingerprintAcquiredInfo BiometricsFingerprint::VendorAcquiredFilter(int32_t info,
int32_t* vendorCode) {
*vendorCode = 0;
switch (info) {
case FINGERPRINT_ACQUIRED_GOOD:
return FingerprintAcquiredInfo::ACQUIRED_GOOD;
case FINGERPRINT_ACQUIRED_PARTIAL:
return FingerprintAcquiredInfo::ACQUIRED_PARTIAL;
case FINGERPRINT_ACQUIRED_INSUFFICIENT:
return FingerprintAcquiredInfo::ACQUIRED_INSUFFICIENT;
case FINGERPRINT_ACQUIRED_IMAGER_DIRTY:
return FingerprintAcquiredInfo::ACQUIRED_IMAGER_DIRTY;
case FINGERPRINT_ACQUIRED_TOO_SLOW:
return FingerprintAcquiredInfo::ACQUIRED_TOO_SLOW;
case FINGERPRINT_ACQUIRED_TOO_FAST:
return FingerprintAcquiredInfo::ACQUIRED_TOO_FAST;
default:
if (info >= FINGERPRINT_ACQUIRED_VENDOR_BASE) {
// vendor specific code.
*vendorCode = info - FINGERPRINT_ACQUIRED_VENDOR_BASE;
return FingerprintAcquiredInfo::ACQUIRED_VENDOR;
}
}
ALOGE("Unknown acquiredmsg from fingerprint vendor library: %d", info);
return FingerprintAcquiredInfo::ACQUIRED_INSUFFICIENT;
}
Return<uint64_t> BiometricsFingerprint::setNotify(
const sp<IBiometricsFingerprintClientCallback>& clientCallback) {
std::lock_guard<std::mutex> lock(mClientCallbackMutex);
mClientCallback = clientCallback;
// This is here because HAL 2.1 doesn't have a way to propagate a
// unique token for its driver. Subsequent versions should send a unique
// token for each call to setNotify(). This is fine as long as there's only
// one fingerprint device on the platform.
return reinterpret_cast<uint64_t>(mDevice);
}
Return<uint64_t> BiometricsFingerprint::preEnroll() {
return mDevice->pre_enroll(mDevice);
}
Return<RequestStatus> BiometricsFingerprint::enroll(const hidl_array<uint8_t, 69>& hat,
uint32_t gid, uint32_t timeoutSec) {
const hw_auth_token_t* authToken = reinterpret_cast<const hw_auth_token_t*>(hat.data());
return ErrorFilter(mDevice->enroll(mDevice, authToken, gid, timeoutSec));
}
Return<RequestStatus> BiometricsFingerprint::postEnroll() {
return ErrorFilter(mDevice->post_enroll(mDevice));
}
Return<uint64_t> BiometricsFingerprint::getAuthenticatorId() {
return mDevice->get_authenticator_id(mDevice);
}
Return<RequestStatus> BiometricsFingerprint::cancel() {
return ErrorFilter(mDevice->cancel(mDevice));
}
Return<RequestStatus> BiometricsFingerprint::enumerate() {
return ErrorFilter(mDevice->enumerate(mDevice));
}
Return<RequestStatus> BiometricsFingerprint::remove(uint32_t gid, uint32_t fid) {
return ErrorFilter(mDevice->remove(mDevice, gid, fid));
}
Return<RequestStatus> BiometricsFingerprint::setActiveGroup(uint32_t gid,
const hidl_string& storePath) {
if (storePath.size() >= PATH_MAX || storePath.size() <= 0) {
ALOGE("Bad path length: %zd", storePath.size());
return RequestStatus::SYS_EINVAL;
}
std::string mutableStorePath = storePath;
if (android::base::StartsWith(mutableStorePath, "/data/system/users/")) {
mutableStorePath = "/data/vendor_de/";
mutableStorePath +=
static_cast<std::string>(storePath).substr(strlen("/data/system/users/"));
}
if (access(mutableStorePath.c_str(), W_OK)) {
return RequestStatus::SYS_EINVAL;
}
return ErrorFilter(mDevice->set_active_group(mDevice, gid, mutableStorePath.c_str()));
}
Return<RequestStatus> BiometricsFingerprint::authenticate(uint64_t operationId, uint32_t gid) {
return ErrorFilter(mDevice->authenticate(mDevice, operationId, gid));
}
IBiometricsFingerprint* BiometricsFingerprint::getInstance() {
if (!sInstance) {
sInstance = new BiometricsFingerprint();
}
return sInstance;
}
fingerprint_device_t* getDevice() {
const hw_module_t* hw_module = nullptr;
const char* className = "goodix";
int err;
err = hw_get_module_by_class(FINGERPRINT_HARDWARE_MODULE_ID, className, &hw_module);
if (err) {
ALOGE("Failed to get fingerprint module: error %d", err);
return nullptr;
}
if (hw_module == nullptr) {
ALOGE("No valid fingerprint module");
return nullptr;
}
fingerprint_module_t const* fp_module = reinterpret_cast<const fingerprint_module_t*>(hw_module);
if (fp_module->common.methods->open == nullptr) {
ALOGE("No valid open method");
return nullptr;
}
hw_device_t* device = nullptr;
err = fp_module->common.methods->open(hw_module, nullptr, &device);
if (err) {
ALOGE("Can't open fingerprint methods, error: %d", err);
return nullptr;
}
if (kVersion != device->version) {
ALOGE("Wrong fingerprint version: expected %d, got %d", kVersion, device->version);
return nullptr;
}
fingerprint_device_t* fp_device = reinterpret_cast<fingerprint_device_t*>(device);
ALOGI("Loaded fingerprint module");
return fp_device;
}
fingerprint_device_t* getFingerprintDevice() {
fingerprint_device_t* fp_device;
fp_device = getDevice();
if (fp_device == nullptr) {
ALOGE("Failed to load fingerprint module");
} else {
return fp_device;
}
return nullptr;
}
fingerprint_device_t* BiometricsFingerprint::openHal() {
int err;
fingerprint_device_t* fp_device;
fp_device = getFingerprintDevice();
if (fp_device == nullptr) {
return nullptr;
}
if (0 != (err = fp_device->set_notify(fp_device, BiometricsFingerprint::notify))) {
ALOGE("Can't register fingerprint module callback, error: %d", err);
return nullptr;
}
return fp_device;
}
void BiometricsFingerprint::notify(const fingerprint_msg_t* msg) {
BiometricsFingerprint* thisPtr =
static_cast<BiometricsFingerprint*>(BiometricsFingerprint::getInstance());
std::lock_guard<std::mutex> lock(thisPtr->mClientCallbackMutex);
if (thisPtr == nullptr || thisPtr->mClientCallback == nullptr) {
ALOGE("Receiving callbacks before the client callback is registered.");
return;
}
const uint64_t devId = reinterpret_cast<uint64_t>(thisPtr->mDevice);
switch (msg->type) {
case FINGERPRINT_ERROR: {
int32_t vendorCode = 0;
FingerprintError result = VendorErrorFilter(msg->data.error, &vendorCode);
ALOGD("onError(%d)", result);
if (!thisPtr->mClientCallback->onError(devId, result, vendorCode).isOk()) {
ALOGE("failed to invoke fingerprint onError callback");
}
} break;
case FINGERPRINT_ACQUIRED: {
int32_t vendorCode = 0;
FingerprintAcquiredInfo result =
VendorAcquiredFilter(msg->data.acquired.acquired_info, &vendorCode);
ALOGD("onAcquired(%d)", result);
if (!thisPtr->mClientCallback->onAcquired(devId, result, vendorCode).isOk()) {
ALOGE("failed to invoke fingerprint onAcquired callback");
}
} break;
case FINGERPRINT_TEMPLATE_ENROLLING:
ALOGD("onEnrollResult(fid=%d, gid=%d, rem=%d)", msg->data.enroll.finger.fid,
msg->data.enroll.finger.gid, msg->data.enroll.samples_remaining);
if (!thisPtr->mClientCallback
->onEnrollResult(devId, msg->data.enroll.finger.fid,
msg->data.enroll.finger.gid,
msg->data.enroll.samples_remaining)
.isOk()) {
ALOGE("failed to invoke fingerprint onEnrollResult callback");
}
break;
case FINGERPRINT_TEMPLATE_REMOVED:
ALOGD("onRemove(fid=%d, gid=%d, rem=%d)", msg->data.removed.finger.fid,
msg->data.removed.finger.gid, msg->data.removed.remaining_templates);
if (!thisPtr->mClientCallback
->onRemoved(devId, msg->data.removed.finger.fid, msg->data.removed.finger.gid,
msg->data.removed.remaining_templates)
.isOk()) {
ALOGE("failed to invoke fingerprint onRemoved callback");
}
break;
case FINGERPRINT_AUTHENTICATED:
if (msg->data.authenticated.finger.fid != 0) {
ALOGD("onAuthenticated(fid=%d, gid=%d)", msg->data.authenticated.finger.fid,
msg->data.authenticated.finger.gid);
const uint8_t* hat = reinterpret_cast<const uint8_t*>(&msg->data.authenticated.hat);
const hidl_vec<uint8_t> token(
std::vector<uint8_t>(hat, hat + sizeof(msg->data.authenticated.hat)));
if (!thisPtr->mClientCallback
->onAuthenticated(devId, msg->data.authenticated.finger.fid,
msg->data.authenticated.finger.gid, token)
.isOk()) {
ALOGE("failed to invoke fingerprint onAuthenticated callback");
}
} else {
// Not a recognized fingerprint
if (!thisPtr->mClientCallback
->onAuthenticated(devId, msg->data.authenticated.finger.fid,
msg->data.authenticated.finger.gid, hidl_vec<uint8_t>())
.isOk()) {
ALOGE("failed to invoke fingerprint onAuthenticated callback");
}
}
break;
case FINGERPRINT_TEMPLATE_ENUMERATING:
ALOGD("onEnumerate(fid=%d, gid=%d, rem=%d)", msg->data.enumerated.finger.fid,
msg->data.enumerated.finger.gid, msg->data.enumerated.remaining_templates);
if (!thisPtr->mClientCallback
->onEnumerate(devId, msg->data.enumerated.finger.fid,
msg->data.enumerated.finger.gid,
msg->data.enumerated.remaining_templates)
.isOk()) {
ALOGE("failed to invoke fingerprint onEnumerate callback");
}
break;
}
}
} // namespace implementation
} // namespace V2_1
} // namespace fingerprint
} // namespace biometrics
} // namespace hardware
} // namespace android

View file

@ -1,85 +0,0 @@
/*
* Copyright (C) 2017 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.
*/
#ifndef ANDROID_HARDWARE_BIOMETRICS_FINGERPRINT_V2_1_BIOMETRICSFINGERPRINT_H
#define ANDROID_HARDWARE_BIOMETRICS_FINGERPRINT_V2_1_BIOMETRICSFINGERPRINT_H
#include <android/hardware/biometrics/fingerprint/2.1/IBiometricsFingerprint.h>
#include <android/log.h>
#include <hardware/fingerprint.h>
#include <hardware/hardware.h>
#include <hidl/MQDescriptor.h>
#include <hidl/Status.h>
#include <log/log.h>
namespace android {
namespace hardware {
namespace biometrics {
namespace fingerprint {
namespace V2_1 {
namespace implementation {
using ::android::sp;
using ::android::hardware::hidl_string;
using ::android::hardware::hidl_vec;
using ::android::hardware::Return;
using ::android::hardware::Void;
using ::android::hardware::biometrics::fingerprint::V2_1::IBiometricsFingerprint;
using ::android::hardware::biometrics::fingerprint::V2_1::IBiometricsFingerprintClientCallback;
using ::android::hardware::biometrics::fingerprint::V2_1::RequestStatus;
struct BiometricsFingerprint : public IBiometricsFingerprint {
public:
BiometricsFingerprint();
~BiometricsFingerprint();
// Method to wrap legacy HAL with BiometricsFingerprint class
static IBiometricsFingerprint* getInstance();
// Methods from ::android::hardware::biometrics::fingerprint::V2_1::IBiometricsFingerprint follow.
Return<uint64_t> setNotify(
const sp<IBiometricsFingerprintClientCallback>& clientCallback) override;
Return<uint64_t> preEnroll() override;
Return<RequestStatus> enroll(const hidl_array<uint8_t, 69>& hat, uint32_t gid,
uint32_t timeoutSec) override;
Return<RequestStatus> postEnroll() override;
Return<uint64_t> getAuthenticatorId() override;
Return<RequestStatus> cancel() override;
Return<RequestStatus> enumerate() override;
Return<RequestStatus> remove(uint32_t gid, uint32_t fid) override;
Return<RequestStatus> setActiveGroup(uint32_t gid, const hidl_string& storePath) override;
Return<RequestStatus> authenticate(uint64_t operationId, uint32_t gid) override;
private:
static fingerprint_device_t* openHal();
static void notify(
const fingerprint_msg_t* msg); /* Static callback for legacy HAL implementation */
static Return<RequestStatus> ErrorFilter(int32_t error);
static FingerprintError VendorErrorFilter(int32_t error, int32_t* vendorCode);
static FingerprintAcquiredInfo VendorAcquiredFilter(int32_t error, int32_t* vendorCode);
static BiometricsFingerprint* sInstance;
std::mutex mClientCallbackMutex;
sp<IBiometricsFingerprintClientCallback> mClientCallback;
fingerprint_device_t* mDevice;
};
} // namespace implementation
} // namespace V2_1
} // namespace fingerprint
} // namespace biometrics
} // namespace hardware
} // namespace android
#endif // ANDROID_HARDWARE_BIOMETRICS_FINGERPRINT_V2_1_BIOMETRICSFINGERPRINT_H

View file

@ -1,9 +0,0 @@
service vendor.fps_hal /vendor/bin/hw/android.hardware.biometrics.fingerprint@2.1-service.berlin
interface android.hardware.biometrics.fingerprint@2.1::IBiometricsFingerprint default
oneshot
# "class hal" causes a race condition on some devices due to files created
# in /data. As a workaround, postpone startup until later in boot once
# /data is mounted.
class late_start
user system
group system input uhid

View file

@ -1,11 +0,0 @@
<manifest version="1.0" type="device">
<hal format="hidl">
<name>android.hardware.biometrics.fingerprint</name>
<transport>hwbinder</transport>
<version>2.1</version>
<interface>
<name>IBiometricsFingerprint</name>
<instance>default</instance>
</interface>
</hal>
</manifest>

View file

@ -1,46 +0,0 @@
/*
* Copyright (C) 2017 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.
*/
#define LOG_TAG "android.hardware.biometrics.fingerprint@2.1-service.berlin"
#include <android/log.h>
#include <hidl/HidlTransportSupport.h>
#include "BiometricsFingerprint.h"
// libhwbinder:
using android::hardware::configureRpcThreadpool;
using android::hardware::joinRpcThreadpool;
// Generated HIDL files
using android::hardware::biometrics::fingerprint::V2_1::IBiometricsFingerprint;
using android::hardware::biometrics::fingerprint::V2_1::implementation::BiometricsFingerprint;
int main() {
android::sp<IBiometricsFingerprint> service = BiometricsFingerprint::getInstance();
if (service == nullptr) {
ALOGE("Instance of BiometricsFingerprint is null");
return 1;
}
configureRpcThreadpool(1, true /*callerWillJoin*/);
android::status_t status = service->registerAsService();
if (status != android::OK) {
ALOGE("Cannot register BiometricsFingerprint service");
return 1;
}
joinRpcThreadpool();
return 0; // should never get here
}

View file

@ -18,22 +18,22 @@
$(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit.mk)
$(call inherit-product, $(SRC_TARGET_DIR)/product/full_base_telephony.mk)
# Inherit from berlin device
$(call inherit-product, device/motorola/berlin/device.mk)
# Inherit from dubai device
$(call inherit-product, device/motorola/dubai/device.mk)
# Inherit some common Lineage stuff.
$(call inherit-product, vendor/lineage/config/common_full_phone.mk)
PRODUCT_NAME := lineage_berlin
PRODUCT_DEVICE := berlin
PRODUCT_NAME := lineage_dubai
PRODUCT_DEVICE := dubai
PRODUCT_MANUFACTURER := motorola
PRODUCT_BRAND := motorola
PRODUCT_MODEL := motorola edge 20
PRODUCT_MODEL := motorola edge 30
PRODUCT_GMS_CLIENTID_BASE := android-motorola
PRODUCT_BUILD_PROP_OVERRIDES += \
TARGET_PRODUCT=berlin_retail \
PRIVATE_BUILD_DESC="berlin_global-user 11 S1RG32.53-18-11-7 7be15 release-keys"
TARGET_PRODUCT=dubai_retail \
PRIVATE_BUILD_DESC="dubai_g-user 12 S1RD32M.55-67 356bc release-keys"
BUILD_FINGERPRINT := motorola/berlin_global/berlin:11/S1RGS32.53-18-11-7/7be15:user/release-keys
BUILD_FINGERPRINT := motorola/dubai_g/dubai:12/S1RD32M.55-67/356bc:user/release-keys

View file

@ -99,5 +99,5 @@ blocklist utags
#
# Motorola product module block list
#
blocklist camera
blocklist aw8695

View file

@ -95,17 +95,20 @@ bm_adsp_ulog.ko
mmi_charger.ko
qti_glink_charger.ko
qpnp_adaptive_charge.ko
cirrus_wm_adsp.ko
cirrus_cs35l41.ko
aw8695.ko
aw862x.ko
mmi_info.ko
mmi_relay.ko
goodix_fod_mmi.ko
wl2864c.ko
cci_intf.ko
st21nfc.ko
nfc_i2c.ko
sx937x_sar.ko
moto_f_usbnet.ko
touchscreen_mmi.ko
stmicro_mmi.ko
goodix_brl_mmi.ko
mmi_sys_temp.ko
rbs_fps_mmi.ko
mmi_info.ko
mmi_annotate.ko
tzlog_dump.ko
watchdog_cpu_ctx.ko

View file

@ -4,4 +4,4 @@ sensors_class.ko
touchscreen_mmi.ko
mmi_annotate.ko
mmi_info.ko
stmicro_mmi.ko
goodix_brl_mmi.ko

View file

@ -1,4 +1,4 @@
# All unpinned blobs below are extracted from S1RG32.53-18-11-7
# All unpinned blobs below are extracted from S1RD32M.55-67
# ACDB Data
vendor/etc/acdbdata/Bluetooth_cal.acdb
@ -16,10 +16,12 @@ vendor/etc/acdbdata/nn_ns_models/fai__2.6.1_0.0__eai_v1.10.pmd
vendor/etc/acdbdata/nn_vad_models/fai_3.0.0_0.0_eai_1.00.pmd
# Audio firmware
vendor/firmware/cs35l41-dsp1-spk-cali.bin
vendor/firmware/cs35l41-dsp1-spk-cali.wmfw
vendor/firmware/cs35l41-dsp1-spk-prot.bin
vendor/firmware/cs35l41-dsp1-spk-prot.wmfw
vendor/firmware/aw882xx_spk_reg.bin
vendor/firmware/aw_skt.bin
# Audio libraries
vendor/lib/libacdbloader.so
vendor/lib64/libacdbloader.so
# Camera
vendor/etc/pwr/PowerFeatureConfig.xml
@ -31,8 +33,16 @@ vendor/lib/com.qti.settings.mannar.so
vendor/lib/com.qti.settings.sdm865.so
vendor/lib/com.qti.settings.sm8350.so
vendor/lib/com.qti.stats.common.so
vendor/lib/libarcsoft_portrait_distortion_correction.so
vendor/lib/libarcsoft_chi_utils.so
vendor/lib/libarcsoft_distortion_correction.so
vendor/lib/libarcsoft_hdr_detection.so
vendor/lib/libarcsoft_high_dynamic_range.so
vendor/lib/libarcsoft_portrait_distortion_correction.so
vendor/lib/libarcsoft_portrait_super_night_raw.so
vendor/lib/libarcsoft_portrait_super_night_se_raw.so
vendor/lib/libarcsoft_qnnhtp.so
vendor/lib/libarcsoft_super_night_raw.so
vendor/lib/libarcsoft_super_night_se_raw.so
vendor/lib/libbitmlengine.so
vendor/lib/libbitmlenginev2.so
vendor/lib/libcamera_nn_stub.so
@ -71,6 +81,7 @@ vendor/lib/libofflinelog.so
vendor/lib/libopencv.so
vendor/lib/libos.so
vendor/lib/libpowercore.so
vendor/lib/libremosaic_wrapper.so
vendor/lib/libswregistrationalgo.so
vendor/lib/libsynx.so
vendor/lib/libthreadutils.so
@ -98,10 +109,18 @@ vendor/lib64/com.qti.settings.mannar.so
vendor/lib64/com.qti.settings.sdm865.so
vendor/lib64/com.qti.settings.sm8350.so
vendor/lib64/com.qti.stats.common.so
vendor/lib64/libarcsoft_triple_sat.so
vendor/lib64/libarcsoft_portrait_distortion_correction.so
vendor/lib64/libarcsoft_chi_utils.so
vendor/lib64/libarcsoft_distortion_correction.so
vendor/lib64/libarcsoft_triple_zoomtranslator.so
vendor/lib64/libarcsoft_dual_sat.so
vendor/lib64/libarcsoft_dual_zoomtranslator.so
vendor/lib64/libarcsoft_hdr_detection.so
vendor/lib64/libarcsoft_high_dynamic_range.so
vendor/lib64/libarcsoft_portrait_distortion_correction.so
vendor/lib64/libarcsoft_portrait_super_night_raw.so
vendor/lib64/libarcsoft_portrait_super_night_se_raw.so
vendor/lib64/libarcsoft_qnnhtp.so
vendor/lib64/libarcsoft_super_night_raw.so
vendor/lib64/libarcsoft_super_night_se_raw.so
vendor/lib64/libbitmlengine.so
vendor/lib64/libbitmlenginev2.so
vendor/lib64/libcamera_nn_stub.so
@ -140,11 +159,10 @@ vendor/lib64/libofflinelog.so
vendor/lib64/libopencv.so
vendor/lib64/libos.so
vendor/lib64/libpowercore.so
vendor/lib64/libremosaic_wrapper.so
vendor/lib64/libswregistrationalgo.so
vendor/lib64/libsynx.so
vendor/lib64/libthreadutils.so
vendor/lib64/libtriplecam_optical_zoom_control.so
vendor/lib64/libtriplecam_video_optical_zoom.so
vendor/lib64/libvideooptfeature.so
vendor/lib64/libvidhance.so
vendor/lib64/libvidhance_active_ois.so
@ -163,9 +181,10 @@ vendor/lib64/hw/camera.qcom.so
vendor/lib64/hw/com.qti.chi.override.so
# Camera - Components
vendor/lib/camera/components/com.arcsoft.node.dc_capture.so
vendor/lib/camera/components/com.arcsoft.node.dc_preview.so
vendor/lib/camera/components/com.mot.node.c2d.so
vendor/lib/camera/components/com.mot.node.dc_capture.so
vendor/lib/camera/components/com.mot.node.hdr.so
vendor/lib/camera/components/com.mot.node.scene_detect.so
vendor/lib/camera/components/com.qti.camx.chiiqutils.so
vendor/lib/camera/components/com.qti.eisv2.so
vendor/lib/camera/components/com.qti.eisv3.so
@ -196,33 +215,35 @@ vendor/lib/camera/components/com.qti.node.swmfnr.so
vendor/lib/camera/components/com.qti.node.swpdpc.so
vendor/lib/camera/components/com.qti.node.swpreprocess.so
vendor/lib/camera/components/com.qti.node.swregistration.so
vendor/lib/camera/components/com.qtistatic.stats.aec.so
vendor/lib/camera/components/com.qtistatic.stats.af.so
vendor/lib/camera/components/com.qtistatic.stats.awb.so
vendor/lib/camera/components/com.qtistatic.stats.pdlib.so
vendor/lib/camera/components/com.qti.stats.aec.so
vendor/lib/camera/components/com.qti.stats.aecwrapper.so
vendor/lib/camera/components/com.qti.stats.aecxcore.so
vendor/lib/camera/components/com.qti.stats.af.so
vendor/lib/camera/components/com.qti.stats.afd.so
vendor/lib/camera/components/com.qti.stats.af.so
vendor/lib/camera/components/com.qti.stats.afwrapper.so
vendor/lib/camera/components/com.qti.stats.asd.so
vendor/lib/camera/components/com.qti.stats.awb.so
vendor/lib/camera/components/com.qti.stats.awbwrapper.so
vendor/lib/camera/components/com.qti.stats.cnndriver.so
vendor/lib/camera/components/com.qti.stats.haf.so
vendor/lib/camera/components/com.qti.stats.hafoverride.so
vendor/lib/camera/components/com.qti.stats.haf.so
vendor/lib/camera/components/com.qti.stats.pdlib.so
vendor/lib/camera/components/com.qti.stats.pdlibsony.so
vendor/lib/camera/components/com.qti.stats.pdlibwrapper.so
vendor/lib/camera/components/com.qti.stats.tracker.so
vendor/lib/camera/components/com.qtistatic.stats.aec.so
vendor/lib/camera/components/com.qtistatic.stats.af.so
vendor/lib/camera/components/com.qtistatic.stats.awb.so
vendor/lib/camera/components/com.qtistatic.stats.pdlib.so
vendor/lib/camera/components/com.vidhance.node.ica.so
vendor/lib/camera/components/com.vidhance.node.processing.so
vendor/lib/camera/components/com.vidhance.stats.aec_dmbr.so
vendor/lib64/camera/components/com.arcsoft.node.dc_capture.so
vendor/lib64/camera/components/com.arcsoft.node.dc_preview.so
vendor/lib64/camera/components/com.arcsoft.node.smooth_transition.so
vendor/lib64/camera/components/com.arcsoft.node.supernightraw.so
vendor/lib64/camera/components/com.mot.node.c2d.so
vendor/lib64/camera/components/com.mot.node.dc_capture.so
vendor/lib64/camera/components/com.mot.node.hdr.so
vendor/lib64/camera/components/com.mot.node.scene_detect.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
@ -253,45 +274,46 @@ vendor/lib64/camera/components/com.qti.node.swmfnr.so
vendor/lib64/camera/components/com.qti.node.swpdpc.so
vendor/lib64/camera/components/com.qti.node.swpreprocess.so
vendor/lib64/camera/components/com.qti.node.swregistration.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/com.qti.stats.aec.so
vendor/lib64/camera/components/com.qti.stats.aecwrapper.so
vendor/lib64/camera/components/com.qti.stats.aecxcore.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.af.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.cnndriver.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.haf.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/com.vidhance.node.ica.so
vendor/lib64/camera/components/com.vidhance.node.processing.so
vendor/lib64/camera/components/com.vidhance.stats.aec_dmbr.so
vendor/lib64/camera/components/libdepthmapwrapper_secure.so
# Camera - eeprom
vendor/lib/camera/com.mot.eeprom.mot_gt24p64b_ov08a10_eeprom.so
vendor/lib/camera/com.mot.eeprom.mot_gt24p64b_ov16a10_eeprom.so
vendor/lib/camera/com.mot.eeprom.mot_dubai_gc02m1b_otp.so
vendor/lib/camera/com.mot.eeprom.mot_gt24p128e_ov50a_eeprom.so
vendor/lib/camera/com.mot.eeprom.mot_gt24p128e_s5kjn1_eeprom.so
vendor/lib/camera/com.mot.eeprom.mot_gt24p64e_ov32b40_eeprom.so
vendor/lib/camera/com.mot.eeprom.mot_gt24p64e_s5khm2_eeprom.so
vendor/lib64/camera/com.mot.eeprom.mot_gt24p64b_ov08a10_eeprom.so
vendor/lib64/camera/com.mot.eeprom.mot_gt24p64b_ov16a10_eeprom.so
vendor/lib64/camera/com.mot.eeprom.mot_dubai_gc02m1b_otp.so
vendor/lib64/camera/com.mot.eeprom.mot_gt24p128e_ov50a_eeprom.so
vendor/lib64/camera/com.mot.eeprom.mot_gt24p128e_s5kjn1_eeprom.so
vendor/lib64/camera/com.mot.eeprom.mot_gt24p64e_ov32b40_eeprom.so
vendor/lib64/camera/com.mot.eeprom.mot_gt24p64e_s5khm2_eeprom.so
# Camera - etc
vendor/etc/camera/aec_golden_tele.bin
vendor/etc/camera/aec_golden_depth.bin
vendor/etc/camera/aec_golden_wide.bin
vendor/etc/camera/arcsoft_calibration_u_dc.bin
vendor/etc/camera/dual_golden_tele.bin
vendor/etc/camera/dual_golden_depth.bin
vendor/etc/camera/dual_golden_wide.bin
vendor/etc/camera/mot_engine_config.bin
vendor/etc/camera/vidhance_calibration
@ -366,66 +388,67 @@ vendor/lib64/motorola.hardware.camera.desktop@1.0.so
vendor/lib64/motorola.hardware.camera.desktop@2.0.so
# Camera - OIS
vendor/firmware/mot_bu63169.coeff
vendor/firmware/mot_bu63169.prog
vendor/firmware/mot_dw9781c.prog
# Camera - sensor
vendor/lib/camera/com.qti.sensor.mot_ov08a10.so
vendor/lib/camera/com.qti.sensor.mot_ov16a10.so
vendor/lib/camera/com.qti.sensormodule.mot_dubai_gc02m1b_tsp.bin
vendor/lib/camera/com.qti.sensormodule.mot_dubai_ov32b40_ofilm.bin
vendor/lib/camera/com.qti.sensormodule.mot_dubai_ov50a_sunny.bin
vendor/lib/camera/com.qti.sensormodule.mot_dubai_s5kjn1_qtech.bin
vendor/lib/camera/com.qti.sensor.mot_gc02m1b.so
vendor/lib/camera/com.qti.sensor.mot_ov32b40.so
vendor/lib/camera/com.qti.sensor.mot_s5khm2.so
vendor/lib64/camera/com.qti.sensor.mot_ov08a10.so
vendor/lib64/camera/com.qti.sensor.mot_ov16a10.so
vendor/lib/camera/com.qti.sensor.mot_ov50a.so
vendor/lib/camera/com.qti.sensor.mot_s5kjn1.so
vendor/lib64/camera/com.qti.sensormodule.mot_dubai_gc02m1b_tsp.bin
vendor/lib64/camera/com.qti.sensormodule.mot_dubai_ov32b40_ofilm.bin
vendor/lib64/camera/com.qti.sensormodule.mot_dubai_ov50a_sunny.bin
vendor/lib64/camera/com.qti.sensormodule.mot_dubai_s5kjn1_qtech.bin
vendor/lib64/camera/com.qti.sensor.mot_gc02m1b.so
vendor/lib64/camera/com.qti.sensor.mot_ov32b40.so
vendor/lib64/camera/com.qti.sensor.mot_s5khm2.so
vendor/lib64/camera/com.qti.sensor.mot_ov50a.so
vendor/lib64/camera/com.qti.sensor.mot_s5kjn1.so
# Camera - sensormodule
vendor/lib/camera/com.qti.sensormodule.mot_berlin_ov08a10_qtech.bin
vendor/lib/camera/com.qti.sensormodule.mot_berlin_ov16a10_qtech.bin
vendor/lib/camera/com.qti.sensormodule.mot_berlin_ov32b40_qtech.bin
vendor/lib/camera/com.qti.sensormodule.mot_berlin_s5khm2_qtech.bin
vendor/lib64/camera/com.qti.sensormodule.mot_berlin_ov08a10_qtech.bin
vendor/lib64/camera/com.qti.sensormodule.mot_berlin_ov16a10_qtech.bin
vendor/lib64/camera/com.qti.sensormodule.mot_berlin_ov32b40_qtech.bin
vendor/lib64/camera/com.qti.sensormodule.mot_berlin_s5khm2_qtech.bin
vendor/lib/camera/com.qti.sensormodule.mot_dubai_gc02m1b_tsp.bin
vendor/lib/camera/com.qti.sensormodule.mot_dubai_ov32b40_ofilm.bin
vendor/lib/camera/com.qti.sensormodule.mot_dubai_ov50a_sunny.bin
vendor/lib/camera/com.qti.sensormodule.mot_dubai_s5kjn1_qtech.bin
vendor/lib64/camera/com.qti.sensormodule.mot_dubai_gc02m1b_tsp.bin
vendor/lib64/camera/com.qti.sensormodule.mot_dubai_ov32b40_ofilm.bin
vendor/lib64/camera/com.qti.sensormodule.mot_dubai_ov50a_sunny.bin
vendor/lib64/camera/com.qti.sensormodule.mot_dubai_s5kjn1_qtech.bin
# Camera - tuned
vendor/lib/camera/com.qti.tuned.default.bin
vendor/lib/camera/com.qti.tuned.mot_berlin_ov08a10.bin
vendor/lib/camera/com.qti.tuned.mot_berlin_ov16a10.bin
vendor/lib/camera/com.qti.tuned.mot_berlin_ov32b40.bin
vendor/lib/camera/com.qti.tuned.mot_berlin_s5khm2.bin
vendor/lib/camera/com.qti.tuned.mot_dubai_gc02m1b.bin
vendor/lib/camera/com.qti.tuned.mot_dubai_ov32b40.bin
vendor/lib/camera/com.qti.tuned.mot_dubai_ov50a.bin
vendor/lib/camera/com.qti.tuned.mot_dubai_s5kjn1.bin
vendor/lib64/camera/com.qti.tuned.default.bin
vendor/lib64/camera/com.qti.tuned.mot_berlin_ov08a10.bin
vendor/lib64/camera/com.qti.tuned.mot_berlin_ov16a10.bin
vendor/lib64/camera/com.qti.tuned.mot_berlin_ov32b40.bin
vendor/lib64/camera/com.qti.tuned.mot_berlin_s5khm2.bin
vendor/lib64/camera/com.qti.tuned.mot_dubai_gc02m1b.bin
vendor/lib64/camera/com.qti.tuned.mot_dubai_ov32b40.bin
vendor/lib64/camera/com.qti.tuned.mot_dubai_ov50a.bin
vendor/lib64/camera/com.qti.tuned.mot_dubai_s5kjn1.bin
# Display calibration data
vendor/etc/qdcm_calib_data_mipi_mot_cmd_csot_1080p_dsc_667.xml
vendor/etc/qdcm_calib_data_mipi_mot_cmd_visionox_1080p_dsc_667.xml
vendor/etc/qdcm_calib_data_mipi_mot_cmd_csot_1080p_dsc_655.xml
vendor/etc/qdcm_calib_data_mipi_mot_cmd_tm_1080p_dsc_655.xml
vendor/etc/qdcm_calib_data_nt36672e_60_Hz_fhd_plus_video_mode_panel_without_DSC.xml
vendor/etc/qdcm_calib_data_nt36672e_fhd_plus_120Hz_Video_panel.xml
vendor/etc/qdcm_calib_data_nt36672e_fhd_plus_144Hz_video_panel.xml
# Fingerprint
vendor/lib64/hw/fingerprint.goodix.default.so
vendor/lib64/libgoodixhwfingerprint.so
vendor/lib64/vendor.goodix.hardware.biometrics.fingerprint@3.0.so
vendor/lib64/com.motorola.hardware.biometric.fingerprint@1.0.so
vendor/lib64/libgf_hal.so
vendor/lib64/libgf_ca.so
vendor/lib64/vendor.egistec.hardware.fingerprint@4.0.so
vendor/lib64/libets_teeclient_v3.so
vendor/lib64/libRbsFlow.so
# NFC
vendor/bin/STFlashTool
# NFC - configs
vendor/etc/libnfc-hal-st.conf
vendor/etc/libnfc-mtp-SN100.conf
vendor/etc/libnfc-mtp-SN100_38_4MHZ.conf
vendor/etc/libnfc-nci-st.conf
vendor/etc/libnfc-qrd-SN100.conf
vendor/etc/libnfc-qrd-SN100_38_4MHZ.conf
vendor/etc/st21nfc_conf_ds.txt
vendor/etc/st21nfc_conf_ss.txt
@ -436,8 +459,12 @@ vendor/firmware/st21nfc_fw7.bin
# OEM
vendor/etc/vhw.xml
# Sensors
vendor/lib64/sensors.moto.so
vendor/lib64/sensors.ssc.so
# Sensor - configs
vendor/etc/sensors/config/ak991x_0.json
vendor/etc/sensors/config/icm4x6xx.json
vendor/etc/sensors/config/kodiak_default_sensors.json
vendor/etc/sensors/config/kodiak_dynamic_sensors.json
vendor/etc/sensors/config/kodiak_irq.json
@ -446,6 +473,7 @@ vendor/etc/sensors/config/lsm6dso_0.json
vendor/etc/sensors/config/mmc5603x_0.json
vendor/etc/sensors/config/mot_camgest.json
vendor/etc/sensors/config/mot_devorient.json
vendor/etc/sensors/config/mxg4300_0.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
@ -460,6 +488,7 @@ 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_direct_channel.json
vendor/etc/sensors/config/sns_distance_bound.json
vendor/etc/sensors/config/sns_dpc.json
vendor/etc/sensors/config/sns_facing.json
@ -480,10 +509,7 @@ 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/stk3a5x_0_always.json
vendor/etc/sensors/config/stk3a5x_0_emerald_always.json
vendor/etc/sensors/config/stk3a5x_0_white_always.json
vendor/etc/sensors/hals.conf
vendor/etc/sensors/config/stk3a5x_0.json
vendor/etc/sensors/proto/als_mastercal.proto
vendor/etc/sensors/proto/descriptor.proto
vendor/etc/sensors/proto/mot_barocal.proto
@ -505,8 +531,8 @@ vendor/etc/sensors/proto/mot_stowed.proto
vendor/etc/sensors/proto/mot_tap.proto
vendor/etc/sensors/proto/mot_vsync.proto
vendor/etc/sensors/proto/nanopb.proto
vendor/etc/sensors/proto/sns_accel.proto
vendor/etc/sensors/proto/sns_accel_cal.proto
vendor/etc/sensors/proto/sns_accel.proto
vendor/etc/sensors/proto/sns_activity_recognition.proto
vendor/etc/sensors/proto/sns_ambient_light.proto
vendor/etc/sensors/proto/sns_ambient_temperature.proto
@ -532,16 +558,16 @@ vendor/etc/sensors/proto/sns_fw.proto
vendor/etc/sensors/proto/sns_game_rv.proto
vendor/etc/sensors/proto/sns_geomag_rv.proto
vendor/etc/sensors/proto/sns_gravity.proto
vendor/etc/sensors/proto/sns_gyro.proto
vendor/etc/sensors/proto/sns_gyro_cal.proto
vendor/etc/sensors/proto/sns_gyro.proto
vendor/etc/sensors/proto/sns_gyro_rot_matrix.proto
vendor/etc/sensors/proto/sns_hall.proto
vendor/etc/sensors/proto/sns_heart_beat.proto
vendor/etc/sensors/proto/sns_heart_rate.proto
vendor/etc/sensors/proto/sns_hinge_angle.proto
vendor/etc/sensors/proto/sns_humidity.proto
vendor/etc/sensors/proto/sns_mag.proto
vendor/etc/sensors/proto/sns_mag_cal.proto
vendor/etc/sensors/proto/sns_mag.proto
vendor/etc/sensors/proto/sns_mot_factory_cal.proto
vendor/etc/sensors/proto/sns_oem1.proto
vendor/etc/sensors/proto/sns_offbody_detect.proto
@ -562,8 +588,8 @@ vendor/etc/sensors/proto/sns_rotv.proto
vendor/etc/sensors/proto/sns_sar.proto
vendor/etc/sensors/proto/sns_sensor_temperature.proto
vendor/etc/sensors/proto/sns_sig_motion.proto
vendor/etc/sensors/proto/sns_std.proto
vendor/etc/sensors/proto/sns_std_event_gated_sensor.proto
vendor/etc/sensors/proto/sns_std.proto
vendor/etc/sensors/proto/sns_std_sensor.proto
vendor/etc/sensors/proto/sns_std_type.proto
vendor/etc/sensors/proto/sns_step_detect.proto
@ -579,12 +605,71 @@ vendor/etc/sensors/sns_reg_config
# Thermal engine - configs
vendor/etc/thermal-engine.conf
vendor/etc/thermal-engine-berlin.conf
vendor/etc/thermal-engine-dubai.conf
# Touchscreen firmware
vendor/firmware/csot_stm_fts_production_limits.csv
vendor/firmware/stmicro-csot-fts3639-21120227-de141027-berlin.ftb
vendor/firmware/stmicro-visionox-fts3639-21072312-0009200c-berlin.ftb
vendor/firmware/visionox_stm_fts_production_limits.csv
vendor/firmware/csot_goodix_cfg_group.bin
vendor/firmware/csot_goodix_test_limits_255.csv
vendor/firmware/goodix-csot-gt9916S-2202250f-62187be9-dubai.bin
vendor/firmware/goodix-tianma-gt9916S-2202250f-62187c3e-dubai.bin
vendor/firmware/tianma_goodix_cfg_group.bin
vendor/firmware/tianma_goodix_test_limits_255.csv
# Vibration firmware
vendor/firmware/aw8622x_haptic.bin
vendor/firmware/aw8622x_osc_rtp_12K_10s.bin
vendor/firmware/aw8622x_rtp_Argo_Navis.bin
vendor/firmware/aw8622x_rtp_Attentive.bin
vendor/firmware/aw8622x_rtp_Awake.bin
vendor/firmware/aw8622x_rtp.bin
vendor/firmware/aw8622x_rtp_Bird_Loop.bin
vendor/firmware/aw8622x_rtp_Brilliant_Times.bin
vendor/firmware/aw8622x_rtp_Chimey_Phone.bin
vendor/firmware/aw8622x_rtp_City_Lights.bin
vendor/firmware/aw8622x_rtp_Complex.bin
vendor/firmware/aw8622x_rtp_Crazy_Dream.bin
vendor/firmware/aw8622x_rtp_Curve_Ball_Blend.bin
vendor/firmware/aw8622x_rtp_Digital_Phone.bin
vendor/firmware/aw8622x_rtp_Electrovision.bin
vendor/firmware/aw8622x_rtp_Ether_Shake.bin
vendor/firmware/aw8622x_rtp_Fateful_Words.bin
vendor/firmware/aw8622x_rtp_Firefly.bin
vendor/firmware/aw8622x_rtp_Flutey_Phone.bin
vendor/firmware/aw8622x_rtp_Future_Funk.bin
vendor/firmware/aw8622x_rtp_Future_Hi_Tech.bin
vendor/firmware/aw8622x_rtp_Girtab.bin
vendor/firmware/aw8622x_rtp_Hello.bin
vendor/firmware/aw8622x_rtp_Hexagon.bin
vendor/firmware/aw8622x_rtp_Hydra.bin
vendor/firmware/aw8622x_rtp_Insert_Coin.bin
vendor/firmware/aw8622x_rtp_Jumping_Dots.bin
vendor/firmware/aw8622x_rtp_Keys.bin
vendor/firmware/aw8622x_rtp_Loopy.bin
vendor/firmware/aw8622x_rtp_Loopy_Lounge.bin
vendor/firmware/aw8622x_rtp_Modular.bin
vendor/firmware/aw8622x_rtp_Momentum.bin
vendor/firmware/aw8622x_rtp_Morning.bin
vendor/firmware/aw8622x_rtp_Moto.bin
vendor/firmware/aw8622x_rtp_Moto_Original.bin
vendor/firmware/aw8622x_rtp_Moto_Retro.bin
vendor/firmware/aw8622x_rtp_Natural.bin
vendor/firmware/aw8622x_rtp_New_Player.bin
vendor/firmware/aw8622x_rtp_Now_or_Never.bin
vendor/firmware/aw8622x_rtp_Onward.bin
vendor/firmware/aw8622x_rtp_Organ_Dub.bin
vendor/firmware/aw8622x_rtp_Overclocked.bin
vendor/firmware/aw8622x_rtp_Pegasus.bin
vendor/firmware/aw8622x_rtp_Play.bin
vendor/firmware/aw8622x_rtp_Pyxis.bin
vendor/firmware/aw8622x_rtp_Regrade.bin
vendor/firmware/aw8622x_rtp_Scarabaeus.bin
vendor/firmware/aw8622x_rtp_Sceptrum.bin
vendor/firmware/aw8622x_rtp_Simple.bin
vendor/firmware/aw8622x_rtp_Solarium.bin
vendor/firmware/aw8622x_rtp_Sparse.bin
vendor/firmware/aw8622x_rtp_Terrabytes.bin
vendor/firmware/aw8622x_rtp_Verizon_Airwaves.bin
vendor/firmware/aw8622x_rtp_Zero_Hour.bin
vendor/firmware/aw882xx_pid_1852_acf.bin
vendor/firmware/aw882xx_pid_2113_acf.bin
vendor/firmware/aw882xx_spk_reg.bin

View file

@ -1,106 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<device name="Android">
<item name="none">0</item>
<item name="screen.on">139.28</item>
<item name="screen.full">155.5</item>
<item name="wifi.on">0.9</item>
<item name="wifi.active">34.36</item>
<item name="wifi.scan">4.73</item>
<item name="camera.avg">523.93</item>
<item name="camera.flashlight">200.75</item>
<item name="gps.on">171</item>
<item name="radio.active">86.278</item>
<item name="radio.scanning">10.57</item>
<array name="radio.on">
<value>33.079</value>
<value>30</value>
<value>25</value>
<value>20</value>
<value>15</value>
<value>10</value>
<value>5</value>
<value>1.463</value>
</array>
<array name="cpu.clusters.cores">
<value>4</value>
<value>3</value>
<value>1</value>
</array>
<array name="cpu.core_speeds.cluster0">
<value>300000</value>
<value>691200</value>
<value>806400</value>
<value>940800</value>
<value>1152000</value>
<value>1324800</value>
<value>1516800</value>
<value>1651200</value>
<value>1804800</value>
</array>
<array name="cpu.core_speeds.cluster1">
<value>691200</value>
<value>940800</value>
<value>1228800</value>
<value>1344000</value>
<value>1516800</value>
<value>1651200</value>
<value>1900800</value>
<value>2054400</value>
<value>2131200</value>
<value>2400000</value>
</array>
<array name="cpu.core_speeds.cluster2">
<value>806400</value>
<value>1056000</value>
<value>1324800</value>
<value>1516800</value>
<value>1766400</value>
<value>1862400</value>
<value>2035200</value>
<value>2208000</value>
<value>2380800</value>
<value>2400000</value>
</array>
<array name="cpu.core_power.cluster0">
<value>4.13</value>
<value>6.9</value>
<value>7.26</value>
<value>8.88</value>
<value>12.17</value>
<value>15.7</value>
<value>20.06</value>
<value>25.76</value>
<value>30.9</value>
</array>
<array name="cpu.core_power.cluster1">
<value>26.93</value>
<value>20.23</value>
<value>57.22</value>
<value>71.71</value>
<value>91.77</value>
<value>108.31</value>
<value>158.29</value>
<value>182.69</value>
<value>186.79</value>
<value>230.89</value>
</array>
<array name="cpu.core_power.cluster2">
<value>34.69</value>
<value>49.4</value>
<value>70.56</value>
<value>89.92</value>
<value>117.81</value>
<value>129.49</value>
<value>185.7</value>
<value>184.51</value>
<value>218.2</value>
<value>233.16</value>
</array>
<item name="cpu.cluster_power.cluster0">1.13</item>
<item name="cpu.cluster_power.cluster1">1.13</item>
<item name="cpu.cluster_power.cluster1">1.13</item>
<item name="cpu.suspend">5.5</item>
<item name="cpu.idle">15.86</item>
<item name="cpu.active">5.79</item>
<item name="battery.capacity">4000</item>
</device>

View file

@ -1,5 +1,5 @@
runtime_resource_overlay {
name: "FrameworksResBerlin",
name: "FrameworksResDubai",
sdk_version: "current",
vendor: true
}

View file

@ -4,6 +4,6 @@
SPDX-License-Identifier: Apache-2.0
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="android.overlay.berlin">
package="android.overlay.dubai">
<overlay android:targetPackage="android" android:isStatic="true" android:priority="600"/>
</manifest>

View file

@ -7,5 +7,5 @@
<!-- Height of the status bar in landscape. The height should be
Max((status bar content height + waterfall top size), top cutout size) -->
<dimen name="status_bar_height">24dp</dimen>
<dimen name="status_bar_height">24.0dip</dimen>
</resources>

View file

@ -25,7 +25,6 @@
Must be overridden in platform specific overlays -->
<integer-array name="config_autoBrightnessLevels">
<item>5</item>
<item>10</item>
<item>40</item>
<item>100</item>
@ -49,15 +48,14 @@
array. The brightness values must be non-negative and non-decreasing. This must be
overridden in platform specific overlays -->
<array name="config_autoBrightnessDisplayValuesNits">
<item>5</item>
<item>12</item>
<item>24</item>
<item>95</item>
<item>111</item>
<item>149</item>
<item>192</item>
<item>252</item>
<item>500</item>
<item>10</item>
<item>20</item>
<item>80</item>
<item>93</item>
<item>125</item>
<item>161</item>
<item>212</item>
<item>420</item>
</array>
<!-- An array describing the screen's backlight values corresponding to the brightness
@ -66,14 +64,13 @@
This array should be equal in size to config_screenBrightnessBacklight. -->
<integer-array name="config_screenBrightnessBacklight">
<item>0</item>
<item>4</item>
<item>7</item>
<item>13</item>
<item>51</item>
<item>59</item>
<item>82</item>
<item>102</item>
<item>138</item>
<item>8</item>
<item>12</item>
<item>48</item>
<item>56</item>
<item>78</item>
<item>99</item>
<item>122</item>
<item>255</item>
</integer-array>
@ -86,15 +83,14 @@
This array should be equal in size to config_screenBrightnessBacklight -->
<array name="config_screenBrightnessNits">
<item>0</item>
<item>5</item>
<item>12</item>
<item>24</item>
<item>95</item>
<item>111</item>
<item>149</item>
<item>192</item>
<item>252</item>
<item>500</item>
<item>10</item>
<item>20</item>
<item>80</item>
<item>93</item>
<item>125</item>
<item>161</item>
<item>212</item>
<item>420</item>
</array>
<!-- Stability requirements in milliseconds for accepting a new brightness level. This is used
@ -102,8 +98,8 @@
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">500</integer>
<integer name="config_autoBrightnessDarkeningLightDebounce">500</integer>
<integer name="config_autoBrightnessBrighteningLightDebounce">2000</integer>
<integer name="config_autoBrightnessDarkeningLightDebounce">8000</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
@ -184,57 +180,52 @@
-->
<bool name="config_powerDecoupleInteractiveModeFromDisplay">true</bool>
<!-- 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> <!-- ID0:Fingerprint:Strong -->
</string-array>
<!-- Is the notification LED intrusive? Used to decide if there should be a disable option -->
<bool name="config_intrusiveNotificationLed">true</bool>
<!-- 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">4</integer>
<integer name="config_screenBrightnessDim">10</integer>
<!-- Minimum screen brightness setting allowed by the power manager.
The user is forbidden from setting the brightness below this level. -->
<integer name="config_screenBrightnessSettingMinimum">2</integer>
<integer name="config_screenBrightnessSettingMinimum">10</integer>
<!-- Vibrator pattern for feedback about a long screen/key press -->
<integer-array name="config_longPressVibePattern">
<item>0</item>
<item>67</item>
<item>1</item>
<item>20</item>
<item>21</item>
</integer-array>
<!-- Vibrator pattern for feedback about touching a virtual key -->
<integer-array name="config_virtualKeyVibePattern">
<item>0</item>
<item>67</item>
<item>10</item>
<item>20</item>
<item>30</item>
</integer-array>
<!-- Vibrator pattern for a very short but reliable vibration for soft keyboard tap -->
<integer-array name="config_keyboardTapVibePattern">
<item>0</item>
<item>30</item>
<item>40</item>
</integer-array>
<!-- Vibrator pattern for feedback about booting with safe mode enabled -->
<integer-array name="config_safeModeEnabledVibePattern">
<item>0</item>
<item>0</item>
<item>94</item>
<item>1</item>
<item>20</item>
<item>21</item>
<item>500</item>
<item>600</item>
</integer-array>
<!-- Vibrator pattern for feedback about hitting a scroll barrier -->
<integer-array name="config_scrollBarrierVibePattern">
<item>0</item>
<item>15</item>
<item>30</item>
<item>15</item>
<item>10</item>
<item>10</item>
</integer-array>
<!-- True if the device supports system navigation keys. -->
@ -263,23 +254,6 @@
during initialization when the setting is still null. -->
<bool name="config_dozeAlwaysOnEnabled">false</bool>
<!-- An array of arrays of side fingerprint sensor properties relative to each display.
Note: this value is temporary and is expected to be queried directly
from the HAL in the future. -->
<array name="config_sfps_sensor_props" translatable="false">
<item>@array/config_sfps_sensor_props_0</item>
</array>
<array name="config_sfps_sensor_props_0" translatable="false">
<item>local:4630947043778501762</item> <!--item>displayId</item-->
<item>1080</item> <!--item>sensorLocationX</item-->
<item>705</item> <!--item>sensorLocationY</item-->
<item>150</item> <!--item>sensorRadius</item-->
</array>
<!-- Indicates whether device has a power button fingerprint sensor. -->
<bool name="config_is_powerbutton_fps" translatable="false">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
@ -297,7 +271,7 @@
<integer name="config_defaultPeakRefreshRate">60</integer>
<!-- MMS user agent string -->
<string name="config_mms_user_agent" translatable="false">motorolaedge20pro</string>
<string name="config_mms_user_agent" translatable="false">motorolaedge30</string>
<!-- MMS user agent profile url -->
<string name="config_mms_user_agent_profile_url" translatable="false">http://uaprof.motorola.com/phoneconfig/motov1/Profile/motov1.rdf</string>

View file

@ -5,11 +5,11 @@
-->
<resources>
<!-- Radius of the software rounded corners. -->
<dimen name="rounded_corner_radius">90px</dimen>
<dimen name="rounded_corner_radius">24.0dip</dimen>
<!-- Height of the status bar in portrait. The height should be
Max((status bar content height + waterfall top size), top cutout size) -->
<dimen name="status_bar_height">90px</dimen>
<dimen name="status_bar_height_portrait">24.0dip</dimen>
<dimen name="status_bar_padding_top_portrait">10.0px</dimen>
<dimen name="status_bar_padding_top_portrait">0.0px</dimen>
</resources>

View file

@ -0,0 +1,67 @@
<?xml version="1.0" encoding="utf-8"?>
<device name="Android">
<item name="ambient.on">0.1</item>
<item name="screen.on">0.1</item>
<item name="screen.full">0.1</item>
<item name="bluetooth.active">0.1</item>
<item name="bluetooth.on">0.1</item>
<item name="wifi.on">0.1</item>
<item name="wifi.active">0.1</item>
<item name="wifi.scan">0.1</item>
<item name="audio">0.1</item>
<item name="video">0.1</item>
<item name="camera.flashlight">0.1</item>
<item name="camera.avg">0.1</item>
<item name="gps.on">0.1</item>
<item name="radio.active">0.1</item>
<item name="radio.scanning">0.1</item>
<array name="radio.on">
<value>0.2</value>
<value>0.1</value>
</array>
<array name="cpu.active">
<value>0.1</value>
</array>
<array name="cpu.clusters.cores">
<value>1</value>
</array>
<array name="cpu.speeds.cluster0">
<value>400000</value>
</array>
<array name="cpu.active.cluster0">
<value>0.1</value>
</array>
<item name="cpu.idle">0.1</item>
<array name="memory.bandwidths">
<value>22.7</value>
</array>
<item name="battery.capacity">1000</item>
<item name="wifi.controller.idle">0</item>
<item name="wifi.controller.rx">0</item>
<item name="wifi.controller.tx">0</item>
<array name="wifi.controller.tx_levels" />
<item name="wifi.controller.voltage">0</item>
<array name="wifi.batchedscan">
<value>.0002</value>
<value>.002</value>
<value>.02</value>
<value>.2</value>
<value>2</value>
</array>
<item name="modem.controller.sleep">0</item>
<item name="modem.controller.idle">0</item>
<item name="modem.controller.rx">0</item>
<array name="modem.controller.tx">
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>0</value>
</array>
<item name="modem.controller.voltage">0</item>
<array name="gps.signalqualitybased">
<value>0</value>
<value>0</value>
</array>
<item name="gps.voltage">0</item>
</device>

View file

@ -1,5 +1,5 @@
runtime_resource_overlay {
name: "SystemUIResBerlin",
name: "SystemUIResDubai",
sdk_version: "current",
vendor: true
}

View file

@ -5,6 +5,6 @@
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
coreApp="true"
package="com.android.systemui.overlay.berlin">
package="com.android.systemui.overlay.dubai">
<overlay android:targetPackage="com.android.systemui" android:isStatic="true" />
</manifest>

View file

@ -19,23 +19,10 @@
<dimen name="keyguard_carrier_text_margin">@dimen/status_bar_padding_start</dimen>
<dimen name="system_icons_keyguard_padding_end">10.0px</dimen>
<!-- Location on the screen of the center of the physical power button. -->
<dimen name="physical_power_button_center_screen_location_y">810px</dimen>
<!-- Location on the screen of the center of the fingerprint sensor. For devices with under
display fingerprint sensors, this directly corresponds to the fingerprint sensor's location.
For devices with sensors on the back of the device, this corresponds to the location on the
screen directly in front of the sensor.
By default, this is set to @null to use the horizontal center of the screen. -->
<dimen name="physical_fingerprint_sensor_center_screen_location_x">1080px</dimen>
<!-- Location on the screen of the center of the fingerprint sensor. For devices with under
display fingerprint sensors, this directly corresponds to the fingerprint sensor's location.
For devices with sensors on the back of the device, this corresponds to the location on the
screen directly in front of the sensor. -->
<dimen name="physical_fingerprint_sensor_center_screen_location_y">810px</dimen>
<!-- Location on the screen of the center of the physical volume up/down buttons. -->
<dimen name="physical_volume_up_button_center_screen_location_y">300px</dimen>
<dimen name="physical_volume_down_button_center_screen_location_y">482px</dimen>

View file

@ -10,20 +10,19 @@ on early-init
insmod /vendor/lib/modules/bm_adsp_ulog.ko
insmod /vendor/lib/modules/mmi_charger.ko
insmod /vendor/lib/modules/qti_glink_charger.ko
insmod /vendor/lib/modules/cirrus_wm_adsp.ko
insmod /vendor/lib/modules/cirrus_cs35l41.ko
insmod /vendor/lib/modules/aw882xx_k504.ko
insmod /vendor/lib/modules/mmi_sys_temp.ko
insmod /vendor/lib/modules/wl2864c.ko
insmod /vendor/lib/modules/goodix_mmi.ko
insmod /vendor/lib/modules/goodix_brl_mmi.ko
insmod /vendor/lib/modules/camera.ko
insmod /vendor/lib/modules/aw8695.ko
insmod /vendor/lib/modules/aw862x.ko
insmod /vendor/lib/modules/cci_intf.ko
insmod /vendor/lib/modules/qpnp_adaptive_charge.ko
start vendor.mmi_modules
on fs
# Goodix fingerprint sensor GF3626 reuses the driver "goodix_fod_mmi.ko"
insmod /vendor/lib/modules/goodix_fod_mmi.ko
# egis fod ko
insmod /vendor/lib/modules/rbs_fps_mmi.ko
on post-fs-data
mkdir /mnt/vendor/persist/tof 0755 vendor_tcmd camera
@ -39,12 +38,26 @@ on post-fs-data
chmod 0640 /mnt/vendor/persist/tof/offset_cal
# Param updater data for various modules
mkdir /data/vendor/param 0775 system system
mkdir /data/vendor/tzstorage/goodix 0770 system system
# Add for Egis Fod fingerprint
mkdir /data/vendor/egis 0770 system system
mkdir /mnt/vendor/persist/egis 0770 system system
mkdir /data/vendor/tzstorage/egis 0770 system system
mkdir /data/vendor/egis/cqa 0770 system system
# Add for fod fps calibration
chown system system /sys/class/backlight/panel0-backlight/brightness
chown system system /sys/class/drm/card0-DSI-1/panelName
chown system system /sys/class/drm/card0-DSI-1/panelId
chown system system /d/dri/0/debug/motUtil
chmod 0666 /d/dri/0/debug/motUtil;
chmod 0666 /sys/class/backlight/panel0-backlight/brightness
chmod 0666 /sys/class/drm/card0-DSI-1/panelName
chmod 0666 /sys/class/drm/card0-DSI-1/panelId
on early-boot
# Goodix fingerprint
chown system system /dev/goodix_fp
chmod 0664 /dev/goodix_fp
# Add for egis fingerprint
chown system system /dev/esfp0
chmod 0664 /dev/esfp0
on boot
# allow TCMD to access cci for OIS test
@ -54,8 +67,10 @@ on boot
#change adsp pmic test command file access permission
chown vendor_tcmd system /sys/devices/platform/soc/soc:qcom,pmic_glink/soc:qcom,pmic_glink:mmi,qti-glink-charger/tcmd
chown vendor_tcmd system /sys/devices/platform/soc/soc:qcom,pmic_glink/soc:qcom,pmic_glink:mmi,qti-glink-charger/force_pmic_icl
chown vendor_tcmd system /sys/devices/platform/soc/soc:qcom,pmic_glink/soc:qcom,pmic_glink:qcom,battery_charger/force_charging_enable
chmod 0660 /sys/devices/platform/soc/soc:qcom,pmic_glink/soc:qcom,pmic_glink:mmi,qti-glink-charger/tcmd
chmod 0660 /sys/devices/platform/soc/soc:qcom,pmic_glink/soc:qcom,pmic_glink:mmi,qti-glink-charger/force_pmic_icl
chmod 0660 /sys/devices/platform/soc/soc:qcom,pmic_glink/soc:qcom,pmic_glink:qcom,battery_charger/force_charging_enable
# Touch game mode control
chown system system /sys/class/touchscreen/primary/rotate
chmod 0660 /sys/class/touchscreen/primary/rotate
@ -65,19 +80,9 @@ on boot
chmod 0660 /sys/class/touchscreen/primary/edge
chown system system /sys/class/touchscreen/primary/first_filter
chmod 0660 /sys/class/touchscreen/primary/first_filter
chown system system /sys/class/touchscreen/primary/sensitivity
chmod 0660 /sys/class/touchscreen/primary/sensitivity
chown system system /sys/devices/platform/soc/a94000.i2c/i2c-2/2-0049/double_click
chmod 0660 /sys/devices/platform/soc/a94000.i2c/i2c-2/2-0049/double_click
chown system system /sys/devices/platform/soc/a94000.i2c/i2c-2/2-0049/single_click
chmod 0660 /sys/devices/platform/soc/a94000.i2c/i2c-2/2-0049/single_click
# Set adaptive charging perms for HAL
chown system system /sys/module/qpnp_adaptive_charge/parameters/upper_limit
chown system system /sys/module/qpnp_adaptive_charge/parameters/lower_limit
# touch screen calibration file
mkdir /mnt/vendor/persist/touch
chown vendor_tcmd system /mnt/vendor/persist/touch
chmod 0775 /mnt/vendor/persist/touch
service capsense_reset /system/vendor/bin/capsense_reset
class core
@ -90,4 +95,3 @@ on property:sys.boot_completed=1
on property:persist.vendor.paramfile.parse_panel=1
write /sys/devices/platform/soc/soc:qcom,dsi-display-primary/dsi_display_parse_para "5"

View file

@ -1,14 +1,14 @@
#!/bin/bash
#
# Copyright (C) 2016 The CyanogenMod Project
# Copyright (C) 2017-2020 The LineageOS Project
# Copyright (C) 2017-2022 The LineageOS Project
#
# SPDX-License-Identifier: Apache-2.0
#
set -e
export DEVICE=berlin
export DEVICE=dubai
export DEVICE_COMMON=sm7325-common
export VENDOR=motorola

View file

@ -1,3 +1,3 @@
# Google
ro.opa.device_model_id=motorola-berlin
ro.opa.device_model_id=motorola-dubai
ro.opa.eligible_device=true

View file

@ -14,9 +14,9 @@
// limitations under the License.
cc_binary {
name: "vendor.lineage.touch@1.0-service.berlin",
vintf_fragments: ["vendor.lineage.touch@1.0-service.berlin.xml"],
init_rc: ["vendor.lineage.touch@1.0-service.berlin.rc"],
name: "vendor.lineage.touch@1.0-service.dubai",
vintf_fragments: ["vendor.lineage.touch@1.0-service.dubai.xml"],
init_rc: ["vendor.lineage.touch@1.0-service.dubai.rc"],
defaults: ["hidl_defaults"],
relative_install_path: "hw",
proprietary: true,

View file

@ -14,7 +14,7 @@
* limitations under the License.
*/
#define LOG_TAG "lineage.touch@1.0-service.berlin"
#define LOG_TAG "lineage.touch@1.0-service.dubai"
#include <android-base/logging.h>
#include <hidl/HidlTransportSupport.h>

View file

@ -1,4 +1,4 @@
service vendor.touch-hal-1-0 /vendor/bin/hw/vendor.lineage.touch@1.0-service.berlin
service vendor.touch-hal-1-0 /vendor/bin/hw/vendor.lineage.touch@1.0-service.dubai
interface vendor.lineage.touch@1.0::IHighTouchPollingRate default
class hal
user system