guamp: Initial device tree
- Initial device tree for guamp device - Based in Qualcomm SM6115 Signed-off-by: GarfieldFernando <ferchito.zoma@gmail.com>
This commit is contained in:
commit
eddf6fbda6
137 changed files with 37450 additions and 0 deletions
5
Android.mk
Normal file
5
Android.mk
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
LOCAL_PATH := $(call my-dir)
|
||||||
|
ifeq ($(TARGET_DEVICE),guamp)
|
||||||
|
include $(call all-makefiles-under,$(LOCAL_PATH))
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
endif
|
7
AndroidProducts.mk
Normal file
7
AndroidProducts.mk
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
PRODUCT_MAKEFILES := \
|
||||||
|
$(LOCAL_DIR)/lineage_guamp.mk
|
||||||
|
|
||||||
|
COMMON_LUNCH_CHOICES := \
|
||||||
|
lineage_guamp-eng \
|
||||||
|
lineage_guamp-user \
|
||||||
|
lineage_guamp-userdebug
|
20
BoardConfig.mk
Normal file
20
BoardConfig.mk
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
DEVICE_PATH := device/motorola/guamp
|
||||||
|
BOARD_VENDOR := motorola
|
||||||
|
|
||||||
|
# Security patch level
|
||||||
|
VENDOR_SECURITY_PATCH := 2020-11-01
|
||||||
|
|
||||||
|
# HIDL
|
||||||
|
DEVICE_MANIFEST_FILE := $(DEVICE_PATH)/manifest.xml
|
||||||
|
DEVICE_MANIFEST_FILE += $(DEVICE_PATH)/android.hardware.atrace@1.0-service.xml
|
||||||
|
DEVICE_MANIFEST_FILE += $(DEVICE_PATH)/android.hardware.cas@1.1-service.xml
|
||||||
|
DEVICE_MANIFEST_FILE += $(DEVICE_PATH)/android.hardware.gnss@2.0-service-qti.xml
|
||||||
|
DEVICE_MANIFEST_FILE += $(DEVICE_PATH)/android.hardware.graphics.mapper-impl-qti-display.xml
|
||||||
|
DEVICE_MANIFEST_FILE += $(DEVICE_PATH)/android.hardware.usb@1.1-service.xml
|
||||||
|
DEVICE_MANIFEST_FILE += $(DEVICE_PATH)/vendor.qti.gnss@3.0-service.xml
|
||||||
|
DEVICE_MANIFEST_FILE += $(DEVICE_PATH)/vendor.qti.hardware.display.allocator-service.xml
|
||||||
|
DEVICE_MANIFEST_FILE += $(DEVICE_PATH)/vendor.qti.hardware.display.composer-service.xml
|
||||||
|
DEVICE_MATRIX_FILE := $(DEVICE_PATH)/compatibility_matrix.xml
|
||||||
|
DEVICE_FRAMEWORK_COMPATIBILITY_MATRIX_FILE := $(DEVICE_PATH)/framework_compatibility_matrix.xml
|
||||||
|
|
||||||
|
-include vendor/motorola/guamp/BoardConfigVendor.mk
|
20
README.md
Normal file
20
README.md
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
|
||||||
|
Device configuration for Motorola Moto G9/G9 Play (Guamp)
|
||||||
|
==================================
|
||||||
|
|
||||||
|
Basic | Spec Sheet
|
||||||
|
-------:|:-------------------------
|
||||||
|
CPU | Octa-core 4x2.0 GHz Kryo 260 Gold & 4x1.8 GHz Kryo 260 Silver
|
||||||
|
CHIPSET | Qualcomm SD6115 Snapdragon 662
|
||||||
|
GPU | Adreno 610
|
||||||
|
Memory | 2/3/4GB
|
||||||
|
Shipped Android Version | 10.0 (Q)
|
||||||
|
Internal Storage | 64/128GB
|
||||||
|
microSD | Up to 512 GB (uses shared SIM slot)
|
||||||
|
Battery | 5000 mAh
|
||||||
|
Dimensions | 165.2 x 75.7 x 9.2 mm
|
||||||
|
Display | 720 x 1600 pixels, 6.5-inch IPS LCD
|
||||||
|
Rear Camera | 48 MP, f/1.7, (wide), 1/2.0", 0.8µm, PDAF, 2 MP, f/2.4, (macro), 2 MP, f/2.4, (depth)
|
||||||
|
Front Camera | 8 MP (f/2.2, 1.12µm, HDR)
|
||||||
|
|
||||||
|
![Motorola g9 play](https://fdn2.gsmarena.com/vv/pics/motorola/motorola-moto-g9-play-2.jpg "Motorola Moto G9 Play")
|
11
android.hardware.atrace@1.0-service.xml
Normal file
11
android.hardware.atrace@1.0-service.xml
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
<manifest version="1.0" type="device">
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>android.hardware.atrace</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IAtraceDevice</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
</manifest>
|
11
android.hardware.cas@1.1-service.xml
Normal file
11
android.hardware.cas@1.1-service.xml
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
<manifest version="1.0" type="device">
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>android.hardware.cas</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>1.1</version>
|
||||||
|
<interface>
|
||||||
|
<name>IMediaCasService</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
</manifest>
|
37
android.hardware.gnss@2.0-service-qti.xml
Normal file
37
android.hardware.gnss@2.0-service-qti.xml
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
<!-- Copyright (c) 2019, The Linux Foundation. All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are
|
||||||
|
met:
|
||||||
|
* Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above
|
||||||
|
copyright notice, this list of conditions and the following
|
||||||
|
disclaimer in the documentation and/or other materials provided
|
||||||
|
with the distribution.
|
||||||
|
* Neither the name of The Linux Foundation nor the names of its
|
||||||
|
contributors may be used to endorse or promote products derived
|
||||||
|
from this software without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
|
||||||
|
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
|
||||||
|
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
|
||||||
|
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||||
|
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||||
|
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
||||||
|
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||||
|
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
-->
|
||||||
|
<manifest version="1.0" type="device">
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>android.hardware.gnss</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<fqname>@1.0::IGnss/gnss_vendor</fqname>
|
||||||
|
<fqname>@1.1::IGnss/default</fqname>
|
||||||
|
<fqname>@2.0::IGnss/default</fqname>
|
||||||
|
</hal>
|
||||||
|
</manifest>
|
||||||
|
|
50
android.hardware.graphics.mapper-impl-qti-display.xml
Normal file
50
android.hardware.graphics.mapper-impl-qti-display.xml
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
<!--
|
||||||
|
Copyright (c) 2019, The Linux Foundation. All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are
|
||||||
|
met:
|
||||||
|
* Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above
|
||||||
|
copyright notice, this list of conditions and the following
|
||||||
|
disclaimer in the documentation and/or other materials provided
|
||||||
|
with the distribution.
|
||||||
|
* Neither the name of The Linux Foundation nor the names of its
|
||||||
|
contributors may be used to endorse or promote products derived
|
||||||
|
from this software without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
|
||||||
|
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
|
||||||
|
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
|
||||||
|
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||||
|
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||||
|
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
||||||
|
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||||
|
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
-->
|
||||||
|
<manifest version="1.0" type="device">
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>vendor.qti.hardware.display.mapper</name>
|
||||||
|
<transport arch="32+64">passthrough</transport>
|
||||||
|
<version>3.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IQtiMapper</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>android.hardware.graphics.mapper</name>
|
||||||
|
<transport arch="32+64">passthrough</transport>
|
||||||
|
<version>3.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IMapper</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
</manifest>
|
||||||
|
|
||||||
|
|
39
android.hardware.usb@1.1-service.xml
Normal file
39
android.hardware.usb@1.1-service.xml
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
<!-- Copyright (c) 2019 The Linux Foundation. All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are
|
||||||
|
met:
|
||||||
|
* Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above
|
||||||
|
copyright notice, this list of conditions and the following
|
||||||
|
disclaimer in the documentation and/or other materials provided
|
||||||
|
with the distribution.
|
||||||
|
* Neither the name of The Linux Foundation nor the names of its
|
||||||
|
contributors may be used to endorse or promote products derived
|
||||||
|
from this software without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
|
||||||
|
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
|
||||||
|
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
|
||||||
|
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||||
|
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||||
|
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
||||||
|
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||||
|
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
-->
|
||||||
|
<manifest version="1.0" type="device">
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>android.hardware.usb</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>1.1</version>
|
||||||
|
<interface>
|
||||||
|
<name>IUsb</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@1.1::IUsb/default</fqname>
|
||||||
|
</hal>
|
||||||
|
</manifest>
|
BIN
audio/Bluetooth_split_audio_V1.cfg
Normal file
BIN
audio/Bluetooth_split_audio_V1.cfg
Normal file
Binary file not shown.
BIN
audio/MM_audio_playback_capture_v2.0.cfg
Normal file
BIN
audio/MM_audio_playback_capture_v2.0.cfg
Normal file
Binary file not shown.
44
audio/a2dp_audio_policy_configuration.xml
Normal file
44
audio/a2dp_audio_policy_configuration.xml
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!-- A2dp Audio HAL Audio Policy Configuration file -->
|
||||||
|
<module name="a2dp" halVersion="2.0">
|
||||||
|
<mixPorts>
|
||||||
|
<mixPort name="a2dp output" role="source"/>
|
||||||
|
<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 Out" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP" role="sink">
|
||||||
|
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
|
||||||
|
samplingRates="44100"
|
||||||
|
channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
|
||||||
|
</devicePort>
|
||||||
|
<devicePort tagName="BT A2DP Headphones" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_HEADPHONES" role="sink">
|
||||||
|
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
|
||||||
|
samplingRates="44100"
|
||||||
|
channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
|
||||||
|
</devicePort>
|
||||||
|
<devicePort tagName="BT A2DP Speaker" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_SPEAKER" role="sink">
|
||||||
|
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
|
||||||
|
samplingRates="44100"
|
||||||
|
channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
|
||||||
|
</devicePort>
|
||||||
|
<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="BT A2DP Out"
|
||||||
|
sources="a2dp output"/>
|
||||||
|
<route type="mix" sink="BT A2DP Headphones"
|
||||||
|
sources="a2dp output"/>
|
||||||
|
<route type="mix" sink="BT A2DP Speaker"
|
||||||
|
sources="a2dp output"/>
|
||||||
|
<route type="mix" sink="a2dp input"
|
||||||
|
sources="BT A2DP In"/>
|
||||||
|
</routes>
|
||||||
|
</module>
|
62
audio/audio_effects.xml
Normal file
62
audio/audio_effects.xml
Normal file
|
@ -0,0 +1,62 @@
|
||||||
|
<?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"/>
|
||||||
|
</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"/>
|
||||||
|
</effects>
|
||||||
|
<postprocess>
|
||||||
|
<stream type="music">
|
||||||
|
<apply effect="music_helper"/>
|
||||||
|
</stream>
|
||||||
|
<stream type="ring">
|
||||||
|
<apply effect="ring_helper"/>
|
||||||
|
</stream>
|
||||||
|
<stream type="alarm">
|
||||||
|
<apply effect="ring_helper"/>
|
||||||
|
</stream>
|
||||||
|
<stream type="voice_call">
|
||||||
|
<apply effect="voice_helper"/>
|
||||||
|
</stream>
|
||||||
|
<stream type="notification">
|
||||||
|
<apply effect="notification_helper"/>
|
||||||
|
</stream>
|
||||||
|
</postprocess>
|
||||||
|
<preprocess>
|
||||||
|
<stream type="voice_communication">
|
||||||
|
<apply effect="aec"/>
|
||||||
|
<apply effect="ns"/>
|
||||||
|
</stream>
|
||||||
|
</preprocess>
|
||||||
|
</audio_effects_conf>
|
25
audio/audio_ext_spkr.conf
Normal file
25
audio/audio_ext_spkr.conf
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
global_config {
|
||||||
|
name guamp
|
||||||
|
}
|
||||||
|
|
||||||
|
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 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
}
|
||||||
|
|
||||||
|
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 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
}
|
||||||
|
|
||||||
|
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 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
}
|
||||||
|
|
278
audio/audio_platform_info.xml
Normal file
278
audio/audio_platform_info.xml
Normal file
|
@ -0,0 +1,278 @@
|
||||||
|
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||||
|
<audio_platform_info>
|
||||||
|
|
||||||
|
<acdb_ids>
|
||||||
|
<!-- Output devices -->
|
||||||
|
<device name="SND_DEVICE_OUT_VOICE_HANDSET" acdb_id="7" />
|
||||||
|
<device name="SND_DEVICE_OUT_VOICE_HANDSET_TMUS" acdb_id="7" />
|
||||||
|
<device name="SND_DEVICE_OUT_HEADPHONES" acdb_id="9" />
|
||||||
|
<device name="SND_DEVICE_OUT_USB_HEADSET" acdb_id="45" />
|
||||||
|
<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_SAFE_AND_HEADPHONES" acdb_id="9" />
|
||||||
|
<device name="SND_DEVICE_OUT_SPEAKER" acdb_id="14" />
|
||||||
|
<device name="SND_DEVICE_OUT_SPEAKER_PROTECTED" acdb_id="14" />
|
||||||
|
<device name="SND_DEVICE_OUT_SPEAKER_REVERSE" acdb_id="14" />
|
||||||
|
<device name="SND_DEVICE_OUT_SPEAKER_SAFE" acdb_id="14" />
|
||||||
|
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_PROTECTED" acdb_id="15" />
|
||||||
|
<device name="SND_DEVICE_OUT_SPEAKER_AND_HDMI" acdb_id="18" />
|
||||||
|
<device name="SND_DEVICE_OUT_VOICE_LINE" acdb_id="78" />
|
||||||
|
<device name="SND_DEVICE_OUT_VOLTE_NB_ANC_HANDSET" acdb_id="200" />
|
||||||
|
<device name="SND_DEVICE_OUT_VOLTE_NB_HANDSET_TMUS" acdb_id="200" />
|
||||||
|
<device name="SND_DEVICE_OUT_VOICE_TX" acdb_id="245" />
|
||||||
|
<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" />
|
||||||
|
|
||||||
|
<!-- 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_NS" acdb_id="4" />
|
||||||
|
<device name="SND_DEVICE_IN_VOICE_TTY_VCO_HANDSET_MIC" acdb_id="4" />
|
||||||
|
<device name="SND_DEVICE_IN_USB_HEADSET_MIC_AEC" acdb_id="244" />
|
||||||
|
<device name="SND_DEVICE_IN_SPEAKER_MIC_AEC" acdb_id="114" />
|
||||||
|
<device name="SND_DEVICE_IN_SPEAKER_MIC_AEC_NS" acdb_id="114" />
|
||||||
|
<device name="SND_DEVICE_IN_SPEAKER_MIC_NS" acdb_id="11" />
|
||||||
|
<device name="SND_DEVICE_IN_UNPROCESSED_MIC" acdb_id="11" />
|
||||||
|
<device name="SND_DEVICE_IN_VOICE_REC_DMIC_FLUENCE" acdb_id="35" />
|
||||||
|
<device name="SND_DEVICE_IN_VOICE_DMIC_TMUS" acdb_id="41" />
|
||||||
|
<device name="SND_DEVICE_IN_UNPROCESSED_STEREO_MIC" acdb_id="43" />
|
||||||
|
<device name="SND_DEVICE_IN_HEADSET_MIC_AEC" acdb_id="47" />
|
||||||
|
<device name="SND_DEVICE_IN_VOICE_REC_MIC_AEC" acdb_id="62" />
|
||||||
|
<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_SPEAKER_DMIC_AEC" acdb_id="43" />
|
||||||
|
<device name="SND_DEVICE_IN_SPEAKER_DMIC_NS" acdb_id="43" />
|
||||||
|
<device name="SND_DEVICE_IN_SPEAKER_DMIC_NS" acdb_id="43" />
|
||||||
|
<device name="SND_DEVICE_IN_QUAD_MIC" acdb_id="125" />
|
||||||
|
<device name="SND_DEVICE_IN_THREE_MIC" acdb_id="125" />
|
||||||
|
</acdb_ids>
|
||||||
|
|
||||||
|
<pcm_ids>
|
||||||
|
<usecase name="USECASE_AUDIO_PLAYBACK_LOW_LATENCY" type="out" id="9"/>
|
||||||
|
<usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD" type="out" id="7"/>
|
||||||
|
<usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD2" type="out" id="11"/>
|
||||||
|
<usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD3" type="out" id="12"/>
|
||||||
|
<usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD4" type="out" id="24"/>
|
||||||
|
<usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD5" type="out" id="25"/>
|
||||||
|
<usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD6" type="out" id="26"/>
|
||||||
|
<usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD7" type="out" id="27"/>
|
||||||
|
<usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD8" type="out" id="28"/>
|
||||||
|
<usecase name="USECASE_VOICEMMODE1_CALL" type="in" id="2"/>
|
||||||
|
<usecase name="USECASE_VOICEMMODE1_CALL" type="out" id="2"/>
|
||||||
|
<usecase name="USECASE_VOICEMMODE2_CALL" type="in" id="15"/>
|
||||||
|
<usecase name="USECASE_VOICEMMODE2_CALL" type="out" id="15"/>
|
||||||
|
<usecase name="USECASE_VOWLAN_CALL" type="in" id="-1"/>
|
||||||
|
<usecase name="USECASE_VOWLAN_CALL" type="out" id="-1"/>
|
||||||
|
<usecase name="USECASE_AUDIO_PLAYBACK_FM" type="out" id="30"/>
|
||||||
|
<usecase name="USECASE_AUDIO_PLAYBACK_FM" type="in" id="38"/>
|
||||||
|
<usecase name="USECASE_AUDIO_SPKR_CALIB_RX" type="out" id="30"/>
|
||||||
|
<usecase name="USECASE_AUDIO_SPKR_CALIB_TX" type="in" id="59"/>
|
||||||
|
<usecase name="USECASE_AUDIO_PLAYBACK_AFE_PROXY" type="out" id="5"/>
|
||||||
|
<usecase name="USECASE_AUDIO_RECORD_AFE_PROXY" type="in" id="6"/>
|
||||||
|
<usecase name="USECASE_AUDIO_RECORD_LOW_LATENCY" type="in" id="13" />
|
||||||
|
<usecase name="USECASE_AUDIO_PLAYBACK_ULL" type="out" id="13" />
|
||||||
|
<usecase name="USECASE_AUDIO_PLAYBACK_SILENCE" type="out" id="23" />
|
||||||
|
<usecase name="USECASE_AUDIO_PLAYBACK_VOIP" type="out" id="12" />
|
||||||
|
<usecase name="USECASE_AUDIO_RECORD_VOIP" type="in" id="12" />
|
||||||
|
<usecase name="USECASE_AUDIO_PLAYBACK_MMAP" type="out" id="29" />
|
||||||
|
<usecase name="USECASE_AUDIO_RECORD_MMAP" type="in" id="29" />
|
||||||
|
<usecase name="USECASE_AUDIO_A2DP_ABR_FEEDBACK" type="in" id="36" />
|
||||||
|
<usecase name="USECASE_AUDIO_A2DP_ABR_FEEDBACK" type="out" id="36" />
|
||||||
|
<usecase name="USECASE_INCALL_MUSIC_UPLINK" type="out" id="23" />
|
||||||
|
<usecase name="USECASE_INCALL_REC_UPLINK" type="in" id="23" />
|
||||||
|
<usecase name="USECASE_INCALL_REC_DOWNLINK" type="in" id="23" />
|
||||||
|
<usecase name="USECASE_INCALL_REC_UPLINK_AND_DOWNLINK" type="in" id="23" />
|
||||||
|
</pcm_ids>
|
||||||
|
|
||||||
|
<backend_names>
|
||||||
|
<device name="SND_DEVICE_OUT_HDMI" backend="hdmi" interface="SLIMBUS_0_RX" />
|
||||||
|
<device name="SND_DEVICE_OUT_SPEAKER" backend="speaker" interface="PRI_MI2S_RX"/>
|
||||||
|
<device name="SND_DEVICE_OUT_SPEAKER_PROTECTED" backend="speaker" interface="PRI_MI2S_RX"/>
|
||||||
|
<device name="SND_DEVICE_OUT_SPEAKER_REVERSE" backend="speaker" interface="PRI_MI2S_RX"/>
|
||||||
|
<device name="SND_DEVICE_OUT_SPEAKER_SAFE" backend="speaker" interface="PRI_MI2S_RX"/>
|
||||||
|
<device name="SND_DEVICE_OUT_VOICE_SPEAKER" backend="speaker" interface="PRI_MI2S_RX"/>
|
||||||
|
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_HFP" backend="speaker" interface="PRI_MI2S_RX"/>
|
||||||
|
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_PROTECTED" backend="speaker" interface="PRI_MI2S_RX"/>
|
||||||
|
<device name="SND_DEVICE_OUT_VOLTE_NB_SPEAKER" backend="speaker" interface="PRI_MI2S_RX"/>
|
||||||
|
<device name="SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES" backend="speaker-and-headphones" interface="PRI_MI2S_RX-and-RX_CDC_DMA_RX_0"/>
|
||||||
|
<device name="SND_DEVICE_OUT_SPEAKER_SAFE_AND_HEADPHONES" backend="speaker-and-headphones" interface="PRI_MI2S_RX-and-RX_CDC_DMA_RX_0"/>
|
||||||
|
<device name="SND_DEVICE_OUT_SPEAKER_AND_LINE" backend="speaker-and-headphones" interface="PRI_MI2S_RX-and-RX_CDC_DMA_RX_0"/>
|
||||||
|
<device name="SND_DEVICE_OUT_SPEAKER_SAFE_AND_LINE" backend="speaker-and-headphones" interface="PRI_MI2S_RX-and-RX_CDC_DMA_RX_0"/>
|
||||||
|
<device name="SND_DEVICE_OUT_SPEAKER_SAFE_AND_BT_A2DP" backend="speaker-and-bt-a2dp" interface="PRI_MI2S_RX-and-SLIMBUS_7_RX"/>
|
||||||
|
<device name="SND_DEVICE_OUT_SPEAKER_AND_BT_SCO" backend="speaker-and-bt-sco" interface="PRI_MI2S_RX-and-SLIMBUS_7_RX"/>
|
||||||
|
<device name="SND_DEVICE_OUT_SPEAKER_AND_BT_SCO_WB" backend="speaker-and-bt-sco-wb" interface="PRI_MI2S_RX-and-SLIMBUS_7_RX"/>
|
||||||
|
<device name="SND_DEVICE_OUT_HEADPHONES" interface="RX_CDC_DMA_RX_0"/>
|
||||||
|
<device name="SND_DEVICE_OUT_LINE" interface="RX_CDC_DMA_RX_0"/>
|
||||||
|
<device name="SND_DEVICE_OUT_VOICE_HEADPHONES" interface="RX_CDC_DMA_RX_0"/>
|
||||||
|
<device name="SND_DEVICE_OUT_VOICE_HEADSET" interface="RX_CDC_DMA_RX_0"/>
|
||||||
|
<device name="SND_DEVICE_OUT_VOICE_LINE" interface="RX_CDC_DMA_RX_0"/>
|
||||||
|
<device name="SND_DEVICE_OUT_VOICE_TTY_FULL_HEADPHONES" interface="RX_CDC_DMA_RX_0"/>
|
||||||
|
<device name="SND_DEVICE_OUT_VOICE_TTY_VCO_HEADPHONES" interface="RX_CDC_DMA_RX_0"/>
|
||||||
|
<device name="SND_DEVICE_OUT_VOLTE_NB_HEADPHONES" interface="RX_CDC_DMA_RX_0"/>
|
||||||
|
<device name="SND_DEVICE_OUT_VOLTE_NB_HEADSET" interface="RX_CDC_DMA_RX_0"/>
|
||||||
|
<device name="SND_DEVICE_OUT_VOLTE_NB_LINE" interface="RX_CDC_DMA_RX_0"/>
|
||||||
|
<device name="SND_DEVICE_OUT_HANDSET" interface="RX_CDC_DMA_RX_0"/>
|
||||||
|
<device name="SND_DEVICE_OUT_VOICE_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_VOICE_TTY_HCO_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_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_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_BT_SCO" interface="SLIMBUS_7_RX"/>
|
||||||
|
<device name="SND_DEVICE_OUT_BT_SCO_WB" interface="SLIMBUS_7_RX"/>
|
||||||
|
<device name="SND_DEVICE_IN_BT_SCO_MIC" interface="SLIMBUS_7_RX"/>
|
||||||
|
<device name="SND_DEVICE_IN_BT_SCO_MIC_NREC" interface="SLIMBUS_7_RX"/>
|
||||||
|
<device name="SND_DEVICE_IN_BT_SCO_MIC_WB" interface="SLIMBUS_7_RX"/>
|
||||||
|
<device name="SND_DEVICE_IN_BT_SCO_MIC_WB_NREC" interface="SLIMBUS_7_RX"/>
|
||||||
|
</backend_names>
|
||||||
|
|
||||||
|
<config_params>
|
||||||
|
<param key="input_mic_max_count" value="2" />
|
||||||
|
</config_params>
|
||||||
|
|
||||||
|
<microphone_characteristics>
|
||||||
|
<microphone valid_mask="31" device_id="builtin_mic_1" type="AUDIO_DEVICE_IN_BUILTIN_MIC" address="bottom" location="AUDIO_MICROPHONE_LOCATION_MAINBODY"
|
||||||
|
group="0" index_in_the_group="0" directionality="AUDIO_MICROPHONE_DIRECTIONALITY_OMNI" num_frequency_responses="93"
|
||||||
|
frequencies="100.00 106.00 112.00 118.00 125.00 132.00 140.00 150.00 160.00 170.00 180.00 190.00 200.00 212.00 224.00 236.00 250.00 265.00 280.00 300.00 315.00 335.00 355.00 375.00 400.00 425.00 450.00 475.00 500.00 530.00 560.00 600.00 630.00 670.00 710.00 750.00 800.00 850.00 900.00 950.00 1000.00 1060.00 1120.00 1180.00 1250.00 1320.00 1400.00 1500.00 1600.00 1700.00 1800.00 1900.00 2000.00 2120.00 2240.00 2360.00 2500.00 2650.00 2800.00 3000.00 3150.00 3350.00 3550.00 3750.00 4000.00 4250.00 4500.00 4750.00 5000.00 5300.00 5600.00 6000.00 6300.00 6700.00 7100.00 7500.00 8000.00 8500.00 9000.00 9500.00 10000.00 10600.00 11200.00 11800.00 12500.00 13200.00 14000.00 15000.00 16000.00 17000.00 18000.00 19000.00 20000.00"
|
||||||
|
responses="-0.78 -0.71 -0.64 -0.60 -0.55 -0.50 -0.47 -0.42 -0.39 -0.36 -0.34 -0.33 -0.32 -0.29 -0.28 -0.28 -0.27 -0.25 -0.25 -0.24 -0.23 -0.23 -0.22 -0.22 -0.19 -0.17 -0.15 -0.15 -0.14 -0.14 -0.12 -0.11 -0.10 -0.10 -0.08 -0.07 -0.07 -0.04 -0.03 -0.01 0.00 0.04 0.06 0.07 0.08 0.13 0.09 0.14 0.19 0.23 0.28 0.29 0.31 0.37 0.88 0.86 0.77 0.78 0.84 0.86 1.05 1.12 1.18 1.25 1.43 1.66 1.83 2.02 2.23 2.59 2.84 3.35 4.01 6.82 6.62 6.42 7.30 8.23 7.54 12.68 13.76 18.69 19.68 20.90 23.70 25.10 21.65 16.18 18.84 25.44 23.48 23.22 24.89"
|
||||||
|
sensitivity="-37.0" max_spl="132.5" min_spl="28.5" orientation="0.0 0.0 1.0" geometric_location="0.0269 0.0058 0.0079" />
|
||||||
|
<microphone valid_mask="31" device_id="builtin_mic_2" type="AUDIO_DEVICE_IN_BACK_MIC" address="top" location="AUDIO_MICROPHONE_LOCATION_MAINBODY"
|
||||||
|
group="0" index_in_the_group="1" directionality="AUDIO_MICROPHONE_DIRECTIONALITY_OMNI" num_frequency_responses="92"
|
||||||
|
frequencies="106.00 112.00 118.00 125.00 132.00 140.00 150.00 160.00 170.00 180.00 190.00 200.00 212.00 224.00 236.00 250.00 265.00 280.00 300.00 315.00 335.00 355.00 375.00 400.00 425.00 450.00 475.00 500.00 530.00 560.00 600.00 630.00 670.00 710.00 750.00 800.00 850.00 900.00 950.00 1000.00 1060.00 1120.00 1180.00 1250.00 1320.00 1400.00 1500.00 1600.00 1700.00 1800.00 1900.00 2000.00 2120.00 2240.00 2360.00 2500.00 2650.00 2800.00 3000.00 3150.00 3350.00 3550.00 3750.00 4000.00 4250.00 4500.00 4750.00 5000.00 5300.00 5600.00 6000.00 6300.00 6700.00 7100.00 7500.00 8000.00 8500.00 9000.00 9500.00 10000.00 10600.00 11200.00 11800.00 12500.00 13200.00 14000.00 15000.00 16000.00 17000.00 18000.00 19000.00 20000.00"
|
||||||
|
responses="-0.75 -0.74 -0.69 -0.65 -0.62 -0.61 -0.56 -0.53 -0.50 -0.47 -0.43 -0.40 -0.37 -0.36 -0.33 -0.30 -0.28 -0.25 -0.24 -0.24 -0.24 -0.25 -0.24 -0.12 -0.10 -0.08 -0.09 -0.07 -0.07 -0.06 -0.06 -0.06 -0.05 -0.04 -0.05 -0.04 -0.01 0.02 0.02 0.00 0.02 0.03 0.07 0.10 0.10 0.13 0.01 0.01 0.10 0.11 0.19 0.24 0.38 0.46 0.26 0.27 0.43 0.76 0.75 1.09 1.09 0.94 1.06 1.21 1.47 1.45 1.36 2.07 2.85 2.90 3.85 4.65 5.84 5.46 6.15 7.50 8.30 10.62 12.70 16.65 20.95 25.41 26.32 20.20 16.60 11.24 7.85 7.62 20.19 7.32 2.87 5.18"
|
||||||
|
sensitivity="-37.0" max_spl="132.5" min_spl="28.5" orientation="0.0 1.0 0.0" geometric_location="0.0546 0.1456 0.00415" />
|
||||||
|
</microphone_characteristics>
|
||||||
|
<snd_devices>
|
||||||
|
<input_snd_device>
|
||||||
|
<input_snd_device_mic_mapping>
|
||||||
|
<snd_dev in_snd_device="SND_DEVICE_IN_CAMCORDER_MIC">
|
||||||
|
<mic_info mic_device_id="builtin_mic_1"
|
||||||
|
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
|
||||||
|
<mic_info mic_device_id="builtin_mic_2"
|
||||||
|
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
|
||||||
|
</snd_dev>
|
||||||
|
<snd_dev in_snd_device="SND_DEVICE_IN_VOICE_REC_MIC_AEC_NS">
|
||||||
|
<mic_info mic_device_id="builtin_mic_1"
|
||||||
|
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
|
||||||
|
</snd_dev>
|
||||||
|
<snd_dev in_snd_device="SND_DEVICE_IN_VOICE_REC_MIC_AEC">
|
||||||
|
<mic_info mic_device_id="builtin_mic_1"
|
||||||
|
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
|
||||||
|
</snd_dev>
|
||||||
|
<snd_dev in_snd_device="SND_DEVICE_IN_VOICE_REC_MIC_NS">
|
||||||
|
<mic_info mic_device_id="builtin_mic_1"
|
||||||
|
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
|
||||||
|
</snd_dev>
|
||||||
|
<snd_dev in_snd_device="SND_DEVICE_IN_VOICE_REC_MIC">
|
||||||
|
<mic_info mic_device_id="builtin_mic_1"
|
||||||
|
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
|
||||||
|
</snd_dev>
|
||||||
|
<snd_dev in_snd_device="SND_DEVICE_IN_HANDSET_MIC">
|
||||||
|
<mic_info mic_device_id="builtin_mic_1"
|
||||||
|
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
|
||||||
|
</snd_dev>
|
||||||
|
<snd_dev in_snd_device="SND_DEVICE_IN_VOICE_DMIC">
|
||||||
|
<mic_info mic_device_id="builtin_mic_1"
|
||||||
|
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
|
||||||
|
<mic_info mic_device_id="builtin_mic_2"
|
||||||
|
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
|
||||||
|
</snd_dev>
|
||||||
|
<snd_dev in_snd_device="SND_DEVICE_IN_VOICE_DMIC_TMUS">
|
||||||
|
<mic_info mic_device_id="builtin_mic_1"
|
||||||
|
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
|
||||||
|
<mic_info mic_device_id="builtin_mic_2"
|
||||||
|
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
|
||||||
|
</snd_dev>
|
||||||
|
<snd_dev in_snd_device="SND_DEVICE_IN_VOICE_SPEAKER_DMIC">
|
||||||
|
<mic_info mic_device_id="builtin_mic_1"
|
||||||
|
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
|
||||||
|
<mic_info mic_device_id="builtin_mic_2"
|
||||||
|
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
|
||||||
|
</snd_dev>
|
||||||
|
<snd_dev in_snd_device="SND_DEVICE_IN_HANDSET_DMIC_AEC_NS">
|
||||||
|
<mic_info mic_device_id="builtin_mic_1"
|
||||||
|
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
|
||||||
|
<mic_info mic_device_id="builtin_mic_2"
|
||||||
|
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
|
||||||
|
</snd_dev>
|
||||||
|
<snd_dev in_snd_device="SND_DEVICE_IN_HANDSET_DMIC_AEC">
|
||||||
|
<mic_info mic_device_id="builtin_mic_1"
|
||||||
|
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
|
||||||
|
<mic_info mic_device_id="builtin_mic_2"
|
||||||
|
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
|
||||||
|
</snd_dev>
|
||||||
|
<snd_dev in_snd_device="SND_DEVICE_IN_HANDSET_DMIC_NS">
|
||||||
|
<mic_info mic_device_id="builtin_mic_1"
|
||||||
|
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
|
||||||
|
<mic_info mic_device_id="builtin_mic_2"
|
||||||
|
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
|
||||||
|
</snd_dev>
|
||||||
|
<snd_dev in_snd_device="SND_DEVICE_IN_HANDSET_DMIC">
|
||||||
|
<mic_info mic_device_id="builtin_mic_1"
|
||||||
|
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
|
||||||
|
<mic_info mic_device_id="builtin_mic_2"
|
||||||
|
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
|
||||||
|
</snd_dev>
|
||||||
|
<snd_dev in_snd_device="SND_DEVICE_IN_SPEAKER_DMIC_AEC_NS">
|
||||||
|
<mic_info mic_device_id="builtin_mic_1"
|
||||||
|
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
|
||||||
|
<mic_info mic_device_id="builtin_mic_2"
|
||||||
|
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
|
||||||
|
</snd_dev>
|
||||||
|
<snd_dev in_snd_device="SND_DEVICE_IN_SPEAKER_DMIC_AEC">
|
||||||
|
<mic_info mic_device_id="builtin_mic_1"
|
||||||
|
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
|
||||||
|
<mic_info mic_device_id="builtin_mic_2"
|
||||||
|
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
|
||||||
|
</snd_dev>
|
||||||
|
<snd_dev in_snd_device="SND_DEVICE_IN_SPEAKER_DMIC_NS">
|
||||||
|
<mic_info mic_device_id="builtin_mic_1"
|
||||||
|
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
|
||||||
|
<mic_info mic_device_id="builtin_mic_2"
|
||||||
|
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
|
||||||
|
</snd_dev>
|
||||||
|
<snd_dev in_snd_device="SND_DEVICE_IN_SPEAKER_MIC">
|
||||||
|
<mic_info mic_device_id="builtin_mic_1"
|
||||||
|
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
|
||||||
|
<mic_info mic_device_id="builtin_mic_2"
|
||||||
|
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
|
||||||
|
</snd_dev>
|
||||||
|
<snd_dev in_snd_device="SND_DEVICE_IN_UNPROCESSED_MIC">
|
||||||
|
<mic_info mic_device_id="builtin_mic_1"
|
||||||
|
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_DIRECT"/>
|
||||||
|
</snd_dev>
|
||||||
|
<snd_dev in_snd_device="SND_DEVICE_IN_UNPROCESSED_STEREO_MIC">
|
||||||
|
<mic_info mic_device_id="builtin_mic_1"
|
||||||
|
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_DIRECT AUDIO_MICROPHONE_CHANNEL_MAPPING_UNUSED"/>
|
||||||
|
<mic_info mic_device_id="builtin_mic_2"
|
||||||
|
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_UNUSED AUDIO_MICROPHONE_CHANNEL_MAPPING_DIRECT"/>
|
||||||
|
</snd_dev>
|
||||||
|
<snd_dev in_snd_device="SND_DEVICE_IN_UNPROCESSED_THREE_MIC">
|
||||||
|
<mic_info mic_device_id="builtin_mic_1"
|
||||||
|
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_DIRECT AUDIO_MICROPHONE_CHANNEL_MAPPING_UNUSED AUDIO_MICROPHONE_CHANNEL_MAPPING_UNUSED"/>
|
||||||
|
<mic_info mic_device_id="builtin_mic_2"
|
||||||
|
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_UNUSED AUDIO_MICROPHONE_CHANNEL_MAPPING_DIRECT AUDIO_MICROPHONE_CHANNEL_MAPPING_UNUSED"/>
|
||||||
|
</snd_dev>
|
||||||
|
<snd_dev in_snd_device="SND_DEVICE_IN_HANDSET_DMIC_STEREO">
|
||||||
|
<mic_info mic_device_id="builtin_mic_1"
|
||||||
|
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED AUDIO_MICROPHONE_CHANNEL_MAPPING_UNUSED"/>
|
||||||
|
<mic_info mic_device_id="builtin_mic_2"
|
||||||
|
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_UNUSED AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
|
||||||
|
</snd_dev>
|
||||||
|
<snd_dev in_snd_device="SND_DEVICE_IN_SPEAKER_DMIC_STEREO">
|
||||||
|
<mic_info mic_device_id="builtin_mic_1"
|
||||||
|
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
|
||||||
|
<mic_info mic_device_id="builtin_mic_2"
|
||||||
|
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
|
||||||
|
</snd_dev>
|
||||||
|
</input_snd_device_mic_mapping>
|
||||||
|
</input_snd_device>
|
||||||
|
</snd_devices>
|
||||||
|
|
||||||
|
</audio_platform_info>
|
238
audio/audio_policy_configuration.xml
Normal file
238
audio/audio_policy_configuration.xml
Normal file
|
@ -0,0 +1,238 @@
|
||||||
|
<?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="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="fm 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"/>
|
||||||
|
<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"/>
|
||||||
|
</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" />
|
||||||
|
</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="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,compressed_offload"/>
|
||||||
|
<route type="mix" sink="Speaker"
|
||||||
|
sources="primary output,deep_buffer,compressed_offload"/>
|
||||||
|
<route type="mix" sink="Wired Headset"
|
||||||
|
sources="primary output,deep_buffer,compressed_offload"/>
|
||||||
|
<route type="mix" sink="Wired Headphones"
|
||||||
|
sources="primary output,deep_buffer,compressed_offload"/>
|
||||||
|
<route type="mix" sink="Line Out"
|
||||||
|
sources="primary output,deep_buffer,compressed_offload"/>
|
||||||
|
<route type="mix" sink="Dock Headset"
|
||||||
|
sources="primary output,deep_buffer"/>
|
||||||
|
<route type="mix" sink="BT SCO"
|
||||||
|
sources="primary output,deep_buffer"/>
|
||||||
|
<route type="mix" sink="BT SCO Headset"
|
||||||
|
sources="primary output,deep_buffer"/>
|
||||||
|
<route type="mix" sink="BT SCO Car Kit"
|
||||||
|
sources="primary output,deep_buffer"/>
|
||||||
|
<route type="mix" sink="BT A2DP Out"
|
||||||
|
sources="primary output,deep_buffer,compressed_offload"/>
|
||||||
|
<route type="mix" sink="BT A2DP Headphones"
|
||||||
|
sources="primary output,deep_buffer,compressed_offload"/>
|
||||||
|
<route type="mix" sink="BT A2DP Speaker"
|
||||||
|
sources="primary output,deep_buffer,compressed_offload"/>
|
||||||
|
<route type="mix" sink="HDMI Out"
|
||||||
|
sources="primary output,deep_buffer,compressed_offload"/>
|
||||||
|
<route type="mix" sink="USB Device Out"
|
||||||
|
sources="primary output,deep_buffer,compressed_offload,hifi_playback"/>
|
||||||
|
<route type="mix" sink="USB Headset Out"
|
||||||
|
sources="primary output,deep_buffer,compressed_offload,hifi_playback"/>
|
||||||
|
<route type="mix" sink="Telephony Tx"
|
||||||
|
sources="voice_tx,incall_music_uplink"/>
|
||||||
|
<route type="mix" sink="voice_rx"
|
||||||
|
sources="Telephony Rx"/>
|
||||||
|
<route type="mix" sink="primary input"
|
||||||
|
sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic,BT SCO Headset Mic,USB Device In,USB Headset In"/>
|
||||||
|
<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>
|
135
audio/audio_policy_volumes.xml
Normal file
135
audio/audio_policy_volumes.xml
Normal file
|
@ -0,0 +1,135 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!-- Volume section defines a volume curve for a given use case and device category.
|
||||||
|
It contains a list of points of this curve expressing the attenuation in Millibels for a given
|
||||||
|
volume index from 0 to 100.
|
||||||
|
<volume stream=”AUDIO_STREAM_MUSIC” deviceCategory=””>
|
||||||
|
<point>0,-9600</point>
|
||||||
|
<point>100,0</point>
|
||||||
|
</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_SPEAKER">
|
||||||
|
<point>0,-3800</point>
|
||||||
|
<point>33,-1700</point>
|
||||||
|
<point>66,-700</point>
|
||||||
|
<point>100,0</point>
|
||||||
|
</volume>
|
||||||
|
<volume stream="AUDIO_STREAM_VOICE_CALL" deviceCategory="DEVICE_CATEGORY_EARPIECE">
|
||||||
|
<point>0,-3000</point>
|
||||||
|
<point>33,-2300</point>
|
||||||
|
<point>66,-700</point>
|
||||||
|
<point>100,0</point>
|
||||||
|
</volume>
|
||||||
|
<volume stream="AUDIO_STREAM_VOICE_CALL" deviceCategory="DEVICE_CATEGORY_EXT_MEDIA"
|
||||||
|
ref="DEFAULT_MEDIA_VOLUME_CURVE"/>
|
||||||
|
<volume stream="AUDIO_STREAM_SYSTEM" deviceCategory="DEVICE_CATEGORY_HEADSET">
|
||||||
|
<point>1,-3000</point>
|
||||||
|
<point>33,-2600</point>
|
||||||
|
<point>66,-2200</point>
|
||||||
|
<point>100,-1800</point>
|
||||||
|
</volume>
|
||||||
|
<volume stream="AUDIO_STREAM_SYSTEM" deviceCategory="DEVICE_CATEGORY_SPEAKER"
|
||||||
|
ref="DEFAULT_SYSTEM_VOLUME_CURVE"/>
|
||||||
|
<volume stream="AUDIO_STREAM_SYSTEM" deviceCategory="DEVICE_CATEGORY_EARPIECE"
|
||||||
|
ref="DEFAULT_SYSTEM_VOLUME_CURVE"/>
|
||||||
|
<volume stream="AUDIO_STREAM_SYSTEM" deviceCategory="DEVICE_CATEGORY_EXT_MEDIA"
|
||||||
|
ref="DEFAULT_DEVICE_CATEGORY_EXT_MEDIA_VOLUME_CURVE"/>
|
||||||
|
<volume stream="AUDIO_STREAM_RING" deviceCategory="DEVICE_CATEGORY_HEADSET"
|
||||||
|
ref="DEFAULT_DEVICE_CATEGORY_HEADSET_VOLUME_CURVE"/>
|
||||||
|
<volume stream="AUDIO_STREAM_RING" deviceCategory="DEVICE_CATEGORY_SPEAKER"
|
||||||
|
ref="SONIFICATION_CATEGORY_SPEAKER_VOLUME_CURVE"/>
|
||||||
|
<volume stream="AUDIO_STREAM_RING" deviceCategory="DEVICE_CATEGORY_EARPIECE"
|
||||||
|
ref="DEFAULT_DEVICE_CATEGORY_EARPIECE_VOLUME_CURVE"/>
|
||||||
|
<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,-5600</point>
|
||||||
|
<point>33,-3400</point>
|
||||||
|
<point>66,-1600</point>
|
||||||
|
<point>100,0</point>
|
||||||
|
</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"
|
||||||
|
ref="DEFAULT_MEDIA_VOLUME_CURVE"/>
|
||||||
|
<volume stream="AUDIO_STREAM_MUSIC" deviceCategory="DEVICE_CATEGORY_EXT_MEDIA"
|
||||||
|
ref="DEFAULT_MEDIA_VOLUME_CURVE"/>
|
||||||
|
<volume stream="AUDIO_STREAM_ALARM" deviceCategory="DEVICE_CATEGORY_HEADSET"
|
||||||
|
ref="DEFAULT_DEVICE_CATEGORY_HEADSET_VOLUME_CURVE"/>
|
||||||
|
<volume stream="AUDIO_STREAM_ALARM" deviceCategory="DEVICE_CATEGORY_SPEAKER"
|
||||||
|
ref="SONIFICATION_CATEGORY_SPEAKER_VOLUME_CURVE"/>
|
||||||
|
<volume stream="AUDIO_STREAM_ALARM" deviceCategory="DEVICE_CATEGORY_EARPIECE"
|
||||||
|
ref="DEFAULT_DEVICE_CATEGORY_EARPIECE_VOLUME_CURVE"/>
|
||||||
|
<volume stream="AUDIO_STREAM_ALARM" deviceCategory="DEVICE_CATEGORY_EXT_MEDIA"
|
||||||
|
ref="SONIFICATION_CATEGORY_EXT_MEDIA_VOLUME_CURVE"/>
|
||||||
|
<volume stream="AUDIO_STREAM_NOTIFICATION" deviceCategory="DEVICE_CATEGORY_HEADSET"
|
||||||
|
ref="DEFAULT_DEVICE_CATEGORY_HEADSET_VOLUME_CURVE"/>
|
||||||
|
<volume stream="AUDIO_STREAM_NOTIFICATION" deviceCategory="DEVICE_CATEGORY_SPEAKER"
|
||||||
|
ref="NOTIFICATION_CATEGORY_SPEAKER_VOLUME_CURVE"/>
|
||||||
|
<volume stream="AUDIO_STREAM_NOTIFICATION" deviceCategory="DEVICE_CATEGORY_EARPIECE"
|
||||||
|
ref="DEFAULT_DEVICE_CATEGORY_EARPIECE_VOLUME_CURVE"/>
|
||||||
|
<volume stream="AUDIO_STREAM_NOTIFICATION" deviceCategory="DEVICE_CATEGORY_EXT_MEDIA"
|
||||||
|
ref="SONIFICATION_CATEGORY_EXT_MEDIA_VOLUME_CURVE"/>
|
||||||
|
<volume stream="AUDIO_STREAM_BLUETOOTH_SCO" deviceCategory="DEVICE_CATEGORY_HEADSET"
|
||||||
|
ref="DEFAULT_VOICE_VOLUME_CURVE"/>
|
||||||
|
<volume stream="AUDIO_STREAM_BLUETOOTH_SCO" deviceCategory="DEVICE_CATEGORY_SPEAKER"
|
||||||
|
ref="DEFAULT_VOICE_VOLUME_CURVE"/>
|
||||||
|
<volume stream="AUDIO_STREAM_BLUETOOTH_SCO" deviceCategory="DEVICE_CATEGORY_EARPIECE"
|
||||||
|
ref="DEFAULT_VOICE_VOLUME_CURVE"/>
|
||||||
|
<volume stream="AUDIO_STREAM_BLUETOOTH_SCO" deviceCategory="DEVICE_CATEGORY_EXT_MEDIA"
|
||||||
|
ref="DEFAULT_MEDIA_VOLUME_CURVE"/>
|
||||||
|
<volume stream="AUDIO_STREAM_ENFORCED_AUDIBLE" deviceCategory="DEVICE_CATEGORY_HEADSET"
|
||||||
|
ref="DEFAULT_SYSTEM_VOLUME_CURVE"/>
|
||||||
|
<volume stream="AUDIO_STREAM_ENFORCED_AUDIBLE" deviceCategory="DEVICE_CATEGORY_SPEAKER"
|
||||||
|
ref="DEFAULT_SYSTEM_VOLUME_CURVE"/>
|
||||||
|
<volume stream="AUDIO_STREAM_ENFORCED_AUDIBLE" deviceCategory="DEVICE_CATEGORY_EARPIECE"
|
||||||
|
ref="DEFAULT_SYSTEM_VOLUME_CURVE"/>
|
||||||
|
<volume stream="AUDIO_STREAM_ENFORCED_AUDIBLE" deviceCategory="DEVICE_CATEGORY_EXT_MEDIA"
|
||||||
|
ref="SONIFICATION_CATEGORY_EXT_MEDIA_VOLUME_CURVE"/>
|
||||||
|
<volume stream="AUDIO_STREAM_DTMF" deviceCategory="DEVICE_CATEGORY_HEADSET">
|
||||||
|
<point>1,-3000</point>
|
||||||
|
<point>33,-2600</point>
|
||||||
|
<point>66,-2200</point>
|
||||||
|
<point>100,-1800</point>
|
||||||
|
</volume>
|
||||||
|
<volume stream="AUDIO_STREAM_DTMF" deviceCategory="DEVICE_CATEGORY_SPEAKER"
|
||||||
|
ref="DEFAULT_SYSTEM_VOLUME_CURVE"/>
|
||||||
|
<volume stream="AUDIO_STREAM_DTMF" deviceCategory="DEVICE_CATEGORY_EARPIECE"
|
||||||
|
ref="DEFAULT_SYSTEM_VOLUME_CURVE"/>
|
||||||
|
<volume stream="AUDIO_STREAM_DTMF" deviceCategory="DEVICE_CATEGORY_EXT_MEDIA"
|
||||||
|
ref="DEFAULT_DEVICE_CATEGORY_EXT_MEDIA_VOLUME_CURVE"/>
|
||||||
|
<volume stream="AUDIO_STREAM_TTS" deviceCategory="DEVICE_CATEGORY_HEADSET"
|
||||||
|
ref="SILENT_VOLUME_CURVE"/>
|
||||||
|
<volume stream="AUDIO_STREAM_TTS" deviceCategory="DEVICE_CATEGORY_SPEAKER"
|
||||||
|
ref="FULL_SCALE_VOLUME_CURVE"/>
|
||||||
|
<volume stream="AUDIO_STREAM_TTS" deviceCategory="DEVICE_CATEGORY_EARPIECE"
|
||||||
|
ref="SILENT_VOLUME_CURVE"/>
|
||||||
|
<volume stream="AUDIO_STREAM_TTS" deviceCategory="DEVICE_CATEGORY_EXT_MEDIA"
|
||||||
|
ref="SILENT_VOLUME_CURVE"/>
|
||||||
|
<volume stream="AUDIO_STREAM_ACCESSIBILITY" deviceCategory="DEVICE_CATEGORY_HEADSET"
|
||||||
|
ref="DEFAULT_MEDIA_VOLUME_CURVE"/>
|
||||||
|
<volume stream="AUDIO_STREAM_ACCESSIBILITY" deviceCategory="DEVICE_CATEGORY_SPEAKER"
|
||||||
|
ref="DEFAULT_DEVICE_CATEGORY_SPEAKER_VOLUME_CURVE"/>
|
||||||
|
<volume stream="AUDIO_STREAM_ACCESSIBILITY" deviceCategory="DEVICE_CATEGORY_EARPIECE"
|
||||||
|
ref="DEFAULT_MEDIA_VOLUME_CURVE"/>
|
||||||
|
<volume stream="AUDIO_STREAM_ACCESSIBILITY" deviceCategory="DEVICE_CATEGORY_EXT_MEDIA"
|
||||||
|
ref="DEFAULT_MEDIA_VOLUME_CURVE"/>
|
||||||
|
<volume stream="AUDIO_STREAM_REROUTING" deviceCategory="DEVICE_CATEGORY_HEADSET"
|
||||||
|
ref="FULL_SCALE_VOLUME_CURVE"/>
|
||||||
|
<volume stream="AUDIO_STREAM_REROUTING" deviceCategory="DEVICE_CATEGORY_SPEAKER"
|
||||||
|
ref="FULL_SCALE_VOLUME_CURVE"/>
|
||||||
|
<volume stream="AUDIO_STREAM_REROUTING" deviceCategory="DEVICE_CATEGORY_EARPIECE"
|
||||||
|
ref="FULL_SCALE_VOLUME_CURVE"/>
|
||||||
|
<volume stream="AUDIO_STREAM_REROUTING" deviceCategory="DEVICE_CATEGORY_EXT_MEDIA"
|
||||||
|
ref="FULL_SCALE_VOLUME_CURVE"/>
|
||||||
|
<volume stream="AUDIO_STREAM_PATCH" deviceCategory="DEVICE_CATEGORY_HEADSET"
|
||||||
|
ref="FULL_SCALE_VOLUME_CURVE"/>
|
||||||
|
<volume stream="AUDIO_STREAM_PATCH" deviceCategory="DEVICE_CATEGORY_SPEAKER"
|
||||||
|
ref="FULL_SCALE_VOLUME_CURVE"/>
|
||||||
|
<volume stream="AUDIO_STREAM_PATCH" deviceCategory="DEVICE_CATEGORY_EARPIECE"
|
||||||
|
ref="FULL_SCALE_VOLUME_CURVE"/>
|
||||||
|
<volume stream="AUDIO_STREAM_PATCH" deviceCategory="DEVICE_CATEGORY_EXT_MEDIA"
|
||||||
|
ref="FULL_SCALE_VOLUME_CURVE"/>
|
||||||
|
</volumes>
|
3487
audio/mixer_paths.xml
Normal file
3487
audio/mixer_paths.xml
Normal file
File diff suppressed because it is too large
Load diff
47
audio/r_submix_audio_policy_configuration.xml
Normal file
47
audio/r_submix_audio_policy_configuration.xml
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!-- Copyright (C) 2015 The Android Open Source Project
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
-->
|
||||||
|
<!-- Remote Submix Audio Policy Configuration file -->
|
||||||
|
<module name="r_submix" halVersion="2.0">
|
||||||
|
<attachedDevices>
|
||||||
|
<item>Remote Submix In</item>
|
||||||
|
</attachedDevices>
|
||||||
|
<mixPorts>
|
||||||
|
<mixPort name="r_submix output" role="source">
|
||||||
|
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
|
||||||
|
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
|
||||||
|
</mixPort>
|
||||||
|
<mixPort name="r_submix input" role="sink">
|
||||||
|
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
|
||||||
|
samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_STEREO"/>
|
||||||
|
</mixPort>
|
||||||
|
</mixPorts>
|
||||||
|
<devicePorts>
|
||||||
|
<devicePort tagName="Remote Submix Out" type="AUDIO_DEVICE_OUT_REMOTE_SUBMIX" role="sink">
|
||||||
|
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
|
||||||
|
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
|
||||||
|
</devicePort>
|
||||||
|
<devicePort tagName="Remote Submix In" type="AUDIO_DEVICE_IN_REMOTE_SUBMIX" role="source">
|
||||||
|
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
|
||||||
|
samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_STEREO"/>
|
||||||
|
</devicePort>
|
||||||
|
</devicePorts>
|
||||||
|
<routes>
|
||||||
|
<route type="mix" sink="Remote Submix Out"
|
||||||
|
sources="r_submix output"/>
|
||||||
|
<route type="mix" sink="r_submix input"
|
||||||
|
sources="Remote Submix In"/>
|
||||||
|
</routes>
|
||||||
|
</module>
|
47
audio/usb_audio_policy_configuration.xml
Normal file
47
audio/usb_audio_policy_configuration.xml
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!-- Copyright (C) 2015 The Android Open Source Project
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
-->
|
||||||
|
<!-- USB Audio HAL Audio Policy Configuration file -->
|
||||||
|
|
||||||
|
<module name="usb" halVersion="2.0">
|
||||||
|
<mixPorts>
|
||||||
|
<mixPort name="usb_accessory output" role="source">
|
||||||
|
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
|
||||||
|
samplingRates="44100" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
|
||||||
|
</mixPort>
|
||||||
|
<mixPort name="usb_device output" role="source"/>
|
||||||
|
<mixPort name="usb_device input" role="sink"/>
|
||||||
|
</mixPorts>
|
||||||
|
<devicePorts>
|
||||||
|
<devicePort tagName="USB Host Out" type="AUDIO_DEVICE_OUT_USB_ACCESSORY" role="sink">
|
||||||
|
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
|
||||||
|
samplingRates="44100" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
|
||||||
|
</devicePort>
|
||||||
|
<devicePort tagName="USB Device Out" type="AUDIO_DEVICE_OUT_USB_DEVICE" role="sink"/>
|
||||||
|
<devicePort tagName="USB Headset Out" type="AUDIO_DEVICE_OUT_USB_HEADSET" role="sink"/>
|
||||||
|
<devicePort tagName="USB Device In" type="AUDIO_DEVICE_IN_USB_DEVICE" role="source"/>
|
||||||
|
<devicePort tagName="USB Headset In" type="AUDIO_DEVICE_IN_USB_HEADSET" role="source"/>
|
||||||
|
</devicePorts>
|
||||||
|
<routes>
|
||||||
|
<route type="mix" sink="USB Host Out"
|
||||||
|
sources="usb_accessory output"/>
|
||||||
|
<route type="mix" sink="USB Device Out"
|
||||||
|
sources="usb_device output"/>
|
||||||
|
<route type="mix" sink="USB Headset Out"
|
||||||
|
sources="usb_device output"/>
|
||||||
|
<route type="mix" sink="usb_device input"
|
||||||
|
sources="USB Device In,USB Headset In"/>
|
||||||
|
</routes>
|
||||||
|
</module>
|
1
board-info.txt
Normal file
1
board-info.txt
Normal file
|
@ -0,0 +1 @@
|
||||||
|
require version-vendor=1604929553
|
92
compatibility_matrix.xml
Normal file
92
compatibility_matrix.xml
Normal file
|
@ -0,0 +1,92 @@
|
||||||
|
<!--
|
||||||
|
Input:
|
||||||
|
compatibility_matrix.xml
|
||||||
|
-->
|
||||||
|
<compatibility-matrix version="1.0" type="device">
|
||||||
|
<hal format="hidl" optional="false">
|
||||||
|
<name>android.frameworks.schedulerservice</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>ISchedulingPolicyService</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="false">
|
||||||
|
<name>android.frameworks.sensorservice</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>ISensorManager</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="false">
|
||||||
|
<name>android.hidl.allocator</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IAllocator</name>
|
||||||
|
<instance>ashmem</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="false">
|
||||||
|
<name>android.hidl.manager</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IServiceManager</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="false">
|
||||||
|
<name>android.hidl.memory</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IMapper</name>
|
||||||
|
<instance>ashmem</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="false">
|
||||||
|
<name>android.hidl.token</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>ITokenManager</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="false">
|
||||||
|
<name>android.system.wifi.keystore</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IKeystore</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>com.motorola.hardware.display.panel</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IDisplayPanel</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>motorola.hardware.vibrator</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IMotVibrator</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.hardware.sigma_miracast</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>Isigma_miracast</name>
|
||||||
|
<instance>sigmahal</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<vendor-ndk>
|
||||||
|
<version>29</version>
|
||||||
|
</vendor-ndk>
|
||||||
|
<system-sdk>
|
||||||
|
<version>29</version>
|
||||||
|
</system-sdk>
|
||||||
|
</compatibility-matrix>
|
30
configs/excluded-input-devices.xml
Normal file
30
configs/excluded-input-devices.xml
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Copyright (c) 2018 The Linux Foundation. All rights reserved. -->
|
||||||
|
<!-- -->
|
||||||
|
<!-- Redistribution and use in source and binary forms, with or without -->
|
||||||
|
<!-- modification, are permitted provided that the following conditions are -->
|
||||||
|
<!-- met: -->
|
||||||
|
<!-- * Redistributions of source code must retain the above copyright -->
|
||||||
|
<!-- notice, this list of conditions and the following disclaimer. -->
|
||||||
|
<!-- * Redistributions in binary form must reproduce the above -->
|
||||||
|
<!-- copyright notice, this list of conditions and the following -->
|
||||||
|
<!-- disclaimer in the documentation and/or other materials provided -->
|
||||||
|
<!-- with the distribution. -->
|
||||||
|
<!-- * Neither the name of The Linux Foundation nor the names of its -->
|
||||||
|
<!-- contributors may be used to endorse or promote products derived -->
|
||||||
|
<!-- from this software without specific prior written permission. -->
|
||||||
|
<!-- -->
|
||||||
|
<!-- THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED -->
|
||||||
|
<!-- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -->
|
||||||
|
<!-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT -->
|
||||||
|
<!-- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS -->
|
||||||
|
<!-- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -->
|
||||||
|
<!-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -->
|
||||||
|
<!-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -->
|
||||||
|
<!-- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -->
|
||||||
|
<!-- WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE -->
|
||||||
|
<!-- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
|
||||||
|
<!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
|
||||||
|
<devices>
|
||||||
|
<device name="qti-haptics"/>
|
||||||
|
</devices>
|
9
configs/msm_irqbalance.conf
Normal file
9
configs/msm_irqbalance.conf
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
################################################################################################################################
|
||||||
|
# Copyright (c) 2019 Qualcomm Technologies, Inc.
|
||||||
|
# All Rights Reserved.
|
||||||
|
# Confidential and Proprietary - Qualcomm Technologies, Inc.
|
||||||
|
################################################################################################################################
|
||||||
|
|
||||||
|
PRIO=1,1,1,1,0,0,0,0
|
||||||
|
#arch_timer, arm-pmu, arch_mem_timer
|
||||||
|
IGNORED_IRQ=19,22,39
|
113
configs/privapp-permissions-qti.xml
Normal file
113
configs/privapp-permissions-qti.xml
Normal file
|
@ -0,0 +1,113 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
~ Copyright (c) 2017, The Linux Foundation. All rights reserved.
|
||||||
|
|
||||||
|
~ Not a Contribution.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!--
|
||||||
|
~ Copyright (C) 2016 The Android Open Source Project
|
||||||
|
~
|
||||||
|
~ Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
~ you may not use this file except in compliance with the License.
|
||||||
|
~ You may obtain a copy of the License at
|
||||||
|
~
|
||||||
|
~ http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
~
|
||||||
|
~ Unless required by applicable law or agreed to in writing, software
|
||||||
|
~ distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
~ See the License for the specific language governing permissions and
|
||||||
|
~ limitations under the License
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!--
|
||||||
|
This XML file declares which signature|privileged permissions should be
|
||||||
|
granted to privileged applications on QTI devices.
|
||||||
|
It allows additional grants on top of privapp-permissions-platform.xml
|
||||||
|
-->
|
||||||
|
|
||||||
|
<permissions>
|
||||||
|
<privapp-permissions package="com.quicinc.cne.CNEService">
|
||||||
|
<permission name="android.permission.INTERACT_ACROSS_USERS"/>
|
||||||
|
<permission name="android.permission.PACKET_KEEPALIVE_OFFLOAD"/>
|
||||||
|
</privapp-permissions>
|
||||||
|
|
||||||
|
<privapp-permissions package="com.qti.dpmserviceapp">
|
||||||
|
<permission name="android.permission.INTERACT_ACROSS_USERS"/>
|
||||||
|
</privapp-permissions>
|
||||||
|
|
||||||
|
<privapp-permissions package="com.qualcomm.qcrilmsgtunnel">
|
||||||
|
<permission name="android.permission.INTERACT_ACROSS_USERS"/>
|
||||||
|
</privapp-permissions>
|
||||||
|
|
||||||
|
<privapp-permissions package="org.codeaurora.dialer">
|
||||||
|
<permission name="android.permission.ALLOW_ANY_CODEC_FOR_PLAYBACK"/>
|
||||||
|
<permission name="android.permission.CONTROL_INCALL_EXPERIENCE"/>
|
||||||
|
<permission name="android.permission.GET_ACCOUNTS_PRIVILEGED"/>
|
||||||
|
<permission name="android.permission.MODIFY_PHONE_STATE"/>
|
||||||
|
<permission name="android.permission.READ_PRIVILEGED_PHONE_STATE"/>
|
||||||
|
<permission name="android.permission.STATUS_BAR"/>
|
||||||
|
<permission name="android.permission.STOP_APP_SWITCHES"/>
|
||||||
|
<permission name="com.android.voicemail.permission.READ_VOICEMAIL"/>
|
||||||
|
<permission name="com.android.voicemail.permission.WRITE_VOICEMAIL"/>
|
||||||
|
</privapp-permissions>
|
||||||
|
|
||||||
|
<privapp-permissions package="org.codeaurora.qti.qtiNetworkApp">
|
||||||
|
<permission name="android.permission.MODIFY_PHONE_STATE"/>
|
||||||
|
</privapp-permissions>
|
||||||
|
|
||||||
|
<privapp-permissions package="org.codeaurora.ims">
|
||||||
|
<permission name="android.permission.READ_PRECISE_PHONE_STATE"/>
|
||||||
|
<permission name="android.permission.INTERACT_ACROSS_USERS"/>
|
||||||
|
<permission name="android.permission.SUBSTITUTE_NOTIFICATION_APP_NAME"/>
|
||||||
|
</privapp-permissions>
|
||||||
|
|
||||||
|
<privapp-permissions package="com.android.soundrecorder">
|
||||||
|
<permission name="android.permission.WRITE_MEDIA_STORAGE"/>
|
||||||
|
<permission name="android.permission.CAPTURE_AUDIO_OUTPUT"/>
|
||||||
|
</privapp-permissions>
|
||||||
|
|
||||||
|
<privapp-permissions package="com.quicinc.voice.activation">
|
||||||
|
<permission name="android.permission.CAPTURE_AUDIO_HOTWORD"/>
|
||||||
|
<permission name="android.permission.MANAGE_SOUND_TRIGGER"/>
|
||||||
|
</privapp-permissions>
|
||||||
|
|
||||||
|
<privapp-permissions package="com.qualcomm.qti.carrierswitch">
|
||||||
|
<permission name="android.permission.REBOOT"/>
|
||||||
|
</privapp-permissions>
|
||||||
|
|
||||||
|
<privapp-permissions package="com.qualcomm.wfd.service">
|
||||||
|
<permission name="android.permission.READ_FRAME_BUFFER"/>
|
||||||
|
<permission name="android.permission.WRITE_MEDIA_STORAGE"/>
|
||||||
|
</privapp-permissions>
|
||||||
|
|
||||||
|
<privapp-permissions package="com.android.mms">
|
||||||
|
<permission name="android.permission.READ_PRIVILEGED_PHONE_STATE"/>
|
||||||
|
<permission name="android.permission.WRITE_APN_SETTINGS"/>
|
||||||
|
<permission name="android.permission.CALL_PRIVILEGED"/>
|
||||||
|
</privapp-permissions>
|
||||||
|
|
||||||
|
<privapp-permissions package="org.codeaurora.snapcam">
|
||||||
|
<permission name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
|
||||||
|
<permission name="android.permission.WRITE_MEDIA_STORAGE"/>
|
||||||
|
</privapp-permissions>
|
||||||
|
|
||||||
|
<privapp-permissions package="org.codeaurora.gallery">
|
||||||
|
<permission name="android.permission.MODIFY_AUDIO_ROUTING"/>
|
||||||
|
</privapp-permissions>
|
||||||
|
|
||||||
|
<privapp-permissions package="com.qualcomm.qti.callenhancement">
|
||||||
|
<permission name="android.permission.RECORD_AUDIO" />
|
||||||
|
<permission name="android.permission.CAPTURE_AUDIO_OUTPUT" />
|
||||||
|
<permission name="android.permission.READ_EXTERNAL_STORAGE" />
|
||||||
|
<permission name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||||
|
<permission name="android.permission.READ_BLOCKED_NUMBERS" />
|
||||||
|
<permission name="android.permission.VIBRATE" />
|
||||||
|
</privapp-permissions>
|
||||||
|
|
||||||
|
<privapp-permissions package="com.skyhook.blp">
|
||||||
|
<permission name="android.permission.INTERACT_ACROSS_USERS"/>
|
||||||
|
</privapp-permissions>
|
||||||
|
|
||||||
|
</permissions>
|
10
configs/public.libraries.txt
Normal file
10
configs/public.libraries.txt
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
libqti-perfd-client.so
|
||||||
|
libadsprpc.so
|
||||||
|
libcdsprpc.so
|
||||||
|
libsdsprpc.so
|
||||||
|
libfastcvopt.so
|
||||||
|
liblistenjni.so
|
||||||
|
liblistensoundmodel2.so
|
||||||
|
libOpenCL.so
|
||||||
|
libnpu.so
|
||||||
|
libhta_hexagon_runtime.so
|
117
configs/qti_whitelist.xml
Normal file
117
configs/qti_whitelist.xml
Normal file
|
@ -0,0 +1,117 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
/* Copyright (c) 2017-2018, The Linux Foundation. All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are
|
||||||
|
* met:
|
||||||
|
* * Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* * Redistributions in binary form must reproduce the above
|
||||||
|
* copyright notice, this list of conditions and the following
|
||||||
|
* disclaimer in the documentation and/or other materials provided
|
||||||
|
* with the distribution.
|
||||||
|
* * Neither the name of The Linux Foundation nor the names of its
|
||||||
|
* contributors may be used to endorse or promote products derived
|
||||||
|
* from this software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
|
||||||
|
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
|
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
|
||||||
|
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||||
|
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||||
|
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
||||||
|
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||||
|
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
-->
|
||||||
|
|
||||||
|
<config>
|
||||||
|
<!-- These are telephony components that need to freely run in the background -->
|
||||||
|
<allow-in-power-save package="com.qualcomm.atfwd" />
|
||||||
|
<allow-in-power-save package="com.qualcomm.qti.telephonyservice" />
|
||||||
|
<allow-in-power-save package="com.qulacomm.qcrilmsgtunnel" />
|
||||||
|
<allow-in-power-save package="com.qualcomm.qti.ims" />
|
||||||
|
<allow-in-power-save package="com.qualcomm.qti.radioconfiginterface" />
|
||||||
|
<allow-in-power-save package="com.qualcomm.simcontacts" />
|
||||||
|
<allow-in-power-save package="com.qualcomm.qti.autoregistration" />
|
||||||
|
<allow-in-power-save package="com.qualcomm.qti.server.wigigapp" />
|
||||||
|
<allow-in-power-save package="com.qualcomm.qti.StatsPollManager" />
|
||||||
|
<allow-in-power-save package="com.qualcomm.qti.gsma.services.nfc" />
|
||||||
|
<allow-in-power-save package="com.quicinc.voice.activation" />
|
||||||
|
<allow-in-power-save package="com.android.mms" />
|
||||||
|
<allow-in-power-save package="com.android.exchange" />
|
||||||
|
<allow-in-power-save package="com.android.email" />
|
||||||
|
<allow-in-power-save package="com.qualcomm.qti.callenhancement" />
|
||||||
|
<allow-in-power-save package="com.qualcomm.qti.smartassistant" />
|
||||||
|
<allow-in-power-save package="com.skyhook.blp" />
|
||||||
|
<!-- These telephony applications need access to non-[System]SDK APIs -->
|
||||||
|
<hidden-api-whitelisted-app package="com.qualcomm.uimremoteserver" />
|
||||||
|
<hidden-api-whitelisted-app package="com.qualcomm.uimremoteclient" />
|
||||||
|
<hidden-api-whitelisted-app package="com.qualcomm.atfwd" />
|
||||||
|
<hidden-api-whitelisted-app package="com.qualcomm.qti.autoregistration" />
|
||||||
|
<hidden-api-whitelisted-app package="com.qualcomm.qti.callenhancement" />
|
||||||
|
<hidden-api-whitelisted-app package="com.qualcomm.qti.callfeaturessetting" />
|
||||||
|
<hidden-api-whitelisted-app package="com.qualcomm.qti.confdialer" />
|
||||||
|
<hidden-api-whitelisted-app package="org.codeaurora.dialer" />
|
||||||
|
<hidden-api-whitelisted-app package="com.qti.qualcomm.datastatusnotification" />
|
||||||
|
<hidden-api-whitelisted-app package="com.qti.qualcomm.deviceinfo" />
|
||||||
|
<hidden-api-whitelisted-app package="com.qualcomm.qti.modemtestmode" />
|
||||||
|
<hidden-api-whitelisted-app package="com.qualcomm.qti.networksetting" />
|
||||||
|
<hidden-api-whitelisted-app package="com.qualcomm.qti.qtisystemservice" />
|
||||||
|
<hidden-api-whitelisted-app package="com.qualcomm.qti.telephonyservice" />
|
||||||
|
<hidden-api-whitelisted-app package="com.qualcomm.qti.radioconfiginterface" />
|
||||||
|
<hidden-api-whitelisted-app package="com.qualcomm.qti.radioconfigtest" />
|
||||||
|
<hidden-api-whitelisted-app package="com.qualcomm.qti.roamingsettings" />
|
||||||
|
<hidden-api-whitelisted-app package="com.qualcomm.simcontacts" />
|
||||||
|
<hidden-api-whitelisted-app package="com.qualcomm.qti.simsettings" />
|
||||||
|
<hidden-api-whitelisted-app package="org.codeaurora.ims" />
|
||||||
|
<hidden-api-whitelisted-app package="com.qualcomm.qti.ims" />
|
||||||
|
<hidden-api-whitelisted-app package="com.qti.xdivert" />
|
||||||
|
<hidden-api-whitelisted-app package="com.qualcomm.qcrilmsgtunnel" />
|
||||||
|
<hidden-api-whitelisted-app package="com.qti.confuridialer" />
|
||||||
|
<hidden-api-whitelisted-app package="com.qti.editnumber" />
|
||||||
|
<hidden-api-whitelisted-app package="com.qualcomm.embmstest" />
|
||||||
|
<hidden-api-whitelisted-app package="com.qualcomm.qti.ltedirect" />
|
||||||
|
<hidden-api-whitelisted-app package="com.android.MultiplePdpTest" />
|
||||||
|
<hidden-api-whitelisted-app package="com.qualcomm.qti.app" />
|
||||||
|
<hidden-api-whitelisted-app package="com.qualcomm.embms" />
|
||||||
|
<hidden-api-whitelisted-app package="com.qualcomm.qti.embmstuneaway" />
|
||||||
|
<hidden-api-whitelisted-app package="com.qualcomm.qti.uimlpatest" />
|
||||||
|
<hidden-api-whitelisted-app package="com.qualcomm.qti.lpa" />
|
||||||
|
<hidden-api-whitelisted-app package="com.qualcomm.qti.uim" />
|
||||||
|
|
||||||
|
<hidden-api-whitelisted-app package="org.codeaurora.snapcam" />
|
||||||
|
<hidden-api-whitelisted-app package="com.android.mms" />
|
||||||
|
<hidden-api-whitelisted-app package="com.qualcomm.qti.carrierswitch" />
|
||||||
|
<hidden-api-whitelisted-app package="com.qualcomm.qti.carrierconfigure" />
|
||||||
|
<hidden-api-whitelisted-app package="com.qualcomm.qti.sva" />
|
||||||
|
<hidden-api-whitelisted-app package="com.qualcomm.qti.smartassistant" />
|
||||||
|
<hidden-api-whitelisted-app package="com.quicinc.voice.activation" />
|
||||||
|
<hidden-api-whitelisted-app package="com.android.backup" />
|
||||||
|
<hidden-api-whitelisted-app package="com.android.contacts" />
|
||||||
|
<hidden-api-whitelisted-app package="com.android.exchange" />
|
||||||
|
<hidden-api-whitelisted-app package="com.android.soundrecorder" />
|
||||||
|
<hidden-api-whitelisted-app package="com.android.camera2" />
|
||||||
|
<hidden-api-whitelisted-app package="org.codeaurora.gallery" />
|
||||||
|
<hidden-api-whitelisted-app package="com.example.connmgr" />
|
||||||
|
<hidden-api-whitelisted-app package="com.android.email" />
|
||||||
|
<hidden-api-whitelisted-app package="com.cyanogenmod.filemanager" />
|
||||||
|
<hidden-api-whitelisted-app package="com.qualcomm.qti.presenceappSub2" />
|
||||||
|
<hidden-api-whitelisted-app package="com.qualcomm.secureindicator" />
|
||||||
|
<hidden-api-whitelisted-app package="com.qualcomm.qti.sysmonappExternal" />
|
||||||
|
<hidden-api-whitelisted-app package="com.qualcomm.qti.biometrics.voiceprint.voiceprintdemo" />
|
||||||
|
<hidden-api-whitelisted-app package="com.qti.vtloopback " />
|
||||||
|
<hidden-api-whitelisted-app package="com.android.bluetooth" />
|
||||||
|
<hidden-api-whitelisted-app package="org.codeaurora.bluetooth" />
|
||||||
|
<hidden-api-whitelisted-app package="com.qualcomm.qti.qmmi" />
|
||||||
|
<hidden-api-whitelisted-app package="com.qualcomm.qti.perfdump" />
|
||||||
|
<hidden-api-whitelisted-app package="com.qualcomm.wfd.client" />
|
||||||
|
<hidden-api-whitelisted-app package="com.qualcomm.wfd.service" />
|
||||||
|
<hidden-api-whitelisted-app package="com.qualcomm.qti.server.wigigapp" />
|
||||||
|
<hidden-api-whitelisted-app package="com.qti.service.colorservice" />
|
||||||
|
</config>
|
331
configs/sec_config
Normal file
331
configs/sec_config
Normal file
|
@ -0,0 +1,331 @@
|
||||||
|
/* IPC Security Config */
|
||||||
|
/* <GPS QMI Service ID - 16>:<GPS QMI Instance ID - all instances>:<Client Group ID> */
|
||||||
|
16:4294967295:1000:1021:1026
|
||||||
|
/* <QDMA QMI Service ID - 75>:<QDMA QMI Instance ID - all instances>:<Client Group ID> */
|
||||||
|
75:4294967295:1000:1001:3006
|
||||||
|
/* <LOWI QMI Service ID - 38>:<LOWI QMI Instance ID - all instances>:<Client Group ID> */
|
||||||
|
56:4294967295:1021
|
||||||
|
/* Allow SS CTL service to be used by system and net_raw processes */
|
||||||
|
43:4294967295:1000:3004
|
||||||
|
/* <UIMHTTP QMI Service ID - 16>:<UIMHTTP QMI Instance ID - all instances>:<Client Group ID> */
|
||||||
|
71:4294967295:1001
|
||||||
|
/* <UIMRMT QMI Service ID - 16>:<UIMRMT QMI Instance ID - all instances>:<Client Group ID> */
|
||||||
|
50:4294967295:1001
|
||||||
|
/* QMI-SLIM service permitted to gps and net_raw */
|
||||||
|
55:4294967295:1021
|
||||||
|
/* Allow Sensor services to be used by sensor process */
|
||||||
|
256:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
257:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
258:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
259:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
260:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
261:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
262:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
263:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
264:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
265:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
266:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
267:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
268:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
269:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
270:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
271:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
272:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
273:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
274:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
275:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
276:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
277:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
278:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
279:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
280:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
281:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
282:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
283:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
284:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
285:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
286:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
287:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
288:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
289:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
290:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
291:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
292:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
293:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
294:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
295:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
296:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
297:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
298:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
299:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
300:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
301:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
302:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
303:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
304:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
305:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
306:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
307:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
308:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
309:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
310:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
311:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
312:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
313:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
314:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
315:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
316:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
317:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
318:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
319:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
320:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
321:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
322:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
323:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
324:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
325:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
326:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
327:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
328:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
329:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
330:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
331:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
332:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
333:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
334:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
335:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
336:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
337:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
338:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
339:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
340:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
341:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
342:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
343:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
344:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
345:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
346:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
347:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
348:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
349:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
350:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
351:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
352:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
353:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
354:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
355:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
356:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
357:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
358:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
359:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
360:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
361:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
362:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
363:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
364:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
365:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
366:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
367:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
368:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
369:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
370:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
371:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
372:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
373:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
374:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
375:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
376:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
377:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
378:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
379:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
380:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
381:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
382:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
383:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
384:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
385:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
386:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
387:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
388:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
389:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
390:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
391:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
392:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
393:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
394:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
395:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
396:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
397:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
398:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
399:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
400:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
401:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
402:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
403:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
404:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
405:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
406:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
407:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
408:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
409:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
410:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
411:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
412:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
413:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
414:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
415:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
416:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
417:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
418:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
419:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
420:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
421:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
422:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
423:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
424:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
425:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
426:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
427:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
428:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
429:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
430:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
431:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
432:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
433:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
434:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
435:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
436:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
437:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
438:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
439:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
440:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
441:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
442:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
443:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
444:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
445:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
446:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
447:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
448:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
449:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
450:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
451:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
452:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
453:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
454:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
455:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
456:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
457:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
458:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
459:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
460:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
461:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
462:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
463:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
464:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
465:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
466:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
467:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
468:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
469:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
470:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
471:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
472:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
473:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
474:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
475:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
476:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
477:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
478:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
479:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
480:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
481:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
482:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
483:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
484:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
485:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
486:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
487:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
488:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
489:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
490:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
491:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
492:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
493:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
494:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
495:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
496:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
497:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
498:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
499:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
500:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
501:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
502:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
503:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
504:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
505:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
506:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
507:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
508:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
509:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
510:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
511:4294967295:1000:1006:1013:1021:1047:3011
|
||||||
|
/* Allow RCS service to aquire net_raw permission */
|
||||||
|
18:4294967295:1001:3004
|
||||||
|
/* Allow RCS service to communicate to IMS QMI Priv Svc*/
|
||||||
|
77:4294967295:1001:3003
|
||||||
|
/* Allow SSGQMIGD to communicate to SSGCCS service*/
|
||||||
|
76:4294967295:1001
|
||||||
|
/* Allow cnd to accquire netbind */
|
||||||
|
18:4294967295:1000:3003
|
||||||
|
/* Allow QMID service to aquire net_raw permission */
|
||||||
|
3:4294967295:1001:1021:3004
|
||||||
|
2:4294967295:1000:1001:3004
|
||||||
|
42:4294967295:1001:3004
|
||||||
|
18:4294967295:1001:3004
|
||||||
|
9:4294967295:1001:3004
|
||||||
|
1:4294967295:1001:3004:1000
|
||||||
|
4:4294967295:1001:3004
|
||||||
|
7:4294967295:1001:3004
|
||||||
|
8:4294967295:1001:3004:1000
|
||||||
|
68:4294967295:1001:3004
|
||||||
|
/* DPM */
|
||||||
|
47:4294967295:1001:3004
|
||||||
|
/* Allow communication to some QMI services with radio privilages */
|
||||||
|
/* Format is <Service id>:<all instances>:<radio> */
|
||||||
|
/* PBM */
|
||||||
|
12:4294967295:1001
|
||||||
|
/* WMS */
|
||||||
|
5:4294967295:1001
|
||||||
|
/* IMS VT */
|
||||||
|
32:4294967295:1001
|
||||||
|
/* IMSP */
|
||||||
|
31:4294967295:1001
|
||||||
|
/* PDC */
|
||||||
|
36:4294967295:1001
|
||||||
|
/* SAR */
|
||||||
|
17:4294967295:1001
|
||||||
|
/* RFRPE */
|
||||||
|
41:4294967295:1001
|
||||||
|
/*UIM*/
|
||||||
|
11:4294967295:1001
|
||||||
|
/*CAT*/
|
||||||
|
10:4294967295:1001
|
||||||
|
/*IMSA*/
|
||||||
|
33:4294967295:1001
|
||||||
|
/* CSVT */
|
||||||
|
29:4294967295:1001
|
||||||
|
/*SERVREG_NOTIF*/
|
||||||
|
64:4294967295:1001
|
||||||
|
66:4294967295:1001
|
||||||
|
73:4294967295:1001
|
||||||
|
/*LTE*/
|
||||||
|
70:4294967295:1001
|
||||||
|
/* Allow Data dpmd to access QMI DFS */
|
||||||
|
48:4294967295:1000:3004
|
||||||
|
/* DIAG */
|
||||||
|
4097:4294967295:2002:2950:3009:2901
|
||||||
|
/* <WLFW QMI Service ID - 0x45>:<WLFW QMI Instance ID - all instances>:<Client Group ID> */
|
||||||
|
69:4294967295:1000
|
||||||
|
/* <WLPS QMI Service ID - 0x39>:<WLFW QMI Instance ID - all instances>:<Client Group ID> */
|
||||||
|
57:4294967295:1000
|
90
configs/telephony_product_privapp-permissions-qti.xml
Normal file
90
configs/telephony_product_privapp-permissions-qti.xml
Normal file
|
@ -0,0 +1,90 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
~ Copyright (c) 2019 Qualcomm Technologies, Inc.
|
||||||
|
~ All Rights Reserved.
|
||||||
|
~ Confidential and Proprietary - Qualcomm Technologies, Inc.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!--
|
||||||
|
~ Copyright (c) 2017, The Linux Foundation. All rights reserved.
|
||||||
|
|
||||||
|
~ Not a Contribution.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!--
|
||||||
|
~ Copyright (C) 2016 The Android Open Source Project
|
||||||
|
~
|
||||||
|
~ Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
~ you may not use this file except in compliance with the License.
|
||||||
|
~ You may obtain a copy of the License at
|
||||||
|
~
|
||||||
|
~ http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
~
|
||||||
|
~ Unless required by applicable law or agreed to in writing, software
|
||||||
|
~ distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
~ See the License for the specific language governing permissions and
|
||||||
|
~ limitations under the License
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!--
|
||||||
|
This XML file declares which signature|privileged permissions should be
|
||||||
|
granted to privileged applications on QTI devices.
|
||||||
|
It allows additional grants on top of privapp-permissions-platform.xml
|
||||||
|
-->
|
||||||
|
|
||||||
|
<permissions>
|
||||||
|
|
||||||
|
<privapp-permissions package="com.qualcomm.qcrilmsgtunnel">
|
||||||
|
<permission name="android.permission.INTERACT_ACROSS_USERS"/>
|
||||||
|
</privapp-permissions>
|
||||||
|
|
||||||
|
<privapp-permissions package="org.codeaurora.dialer">
|
||||||
|
<permission name="android.permission.ALLOW_ANY_CODEC_FOR_PLAYBACK"/>
|
||||||
|
<permission name="android.permission.CONTROL_INCALL_EXPERIENCE"/>
|
||||||
|
<permission name="android.permission.GET_ACCOUNTS_PRIVILEGED"/>
|
||||||
|
<permission name="android.permission.MODIFY_PHONE_STATE"/>
|
||||||
|
<permission name="android.permission.READ_PRIVILEGED_PHONE_STATE"/>
|
||||||
|
<permission name="android.permission.STATUS_BAR"/>
|
||||||
|
<permission name="android.permission.STOP_APP_SWITCHES"/>
|
||||||
|
<permission name="com.android.voicemail.permission.READ_VOICEMAIL"/>
|
||||||
|
<permission name="com.android.voicemail.permission.WRITE_VOICEMAIL"/>
|
||||||
|
</privapp-permissions>
|
||||||
|
|
||||||
|
<privapp-permissions package="org.codeaurora.qti.qtiNetworkApp">
|
||||||
|
<permission name="android.permission.MODIFY_PHONE_STATE"/>
|
||||||
|
</privapp-permissions>
|
||||||
|
|
||||||
|
<privapp-permissions package="org.codeaurora.ims">
|
||||||
|
<!-- Permissions added by QCom: telephony-apps-commonsys/ims/privapp_permissions/privapp-permissions-org.codeaurora.ims.xml -->
|
||||||
|
<permission name="android.permission.READ_PRECISE_PHONE_STATE"/>
|
||||||
|
<permission name="android.permission.INTERACT_ACROSS_USERS"/>
|
||||||
|
<permission name="android.permission.SUBSTITUTE_NOTIFICATION_APP_NAME"/>
|
||||||
|
<!-- Permissions added by Moto -->
|
||||||
|
<permission name="android.permission.READ_NETWORK_USAGE_HISTORY"/>
|
||||||
|
<permission name="android.permission.READ_PRIVILEGED_PHONE_STATE"/>
|
||||||
|
</privapp-permissions>
|
||||||
|
|
||||||
|
<privapp-permissions package="com.qualcomm.qti.carrierswitch">
|
||||||
|
<permission name="android.permission.REBOOT"/>
|
||||||
|
</privapp-permissions>
|
||||||
|
|
||||||
|
<privapp-permissions package="com.android.mms">
|
||||||
|
<permission name="android.permission.READ_PRIVILEGED_PHONE_STATE"/>
|
||||||
|
<permission name="android.permission.WRITE_APN_SETTINGS"/>
|
||||||
|
</privapp-permissions>
|
||||||
|
|
||||||
|
<privapp-permissions package="com.qualcomm.qti.callenhancement">
|
||||||
|
<permission name="android.permission.RECORD_AUDIO" />
|
||||||
|
<permission name="android.permission.CAPTURE_AUDIO_OUTPUT" />
|
||||||
|
<permission name="android.permission.READ_EXTERNAL_STORAGE" />
|
||||||
|
<permission name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||||
|
<permission name="android.permission.READ_BLOCKED_NUMBERS" />
|
||||||
|
<permission name="android.permission.VIBRATE" />
|
||||||
|
</privapp-permissions>
|
||||||
|
|
||||||
|
<privapp-permissions package="org.codeaurora.qti.nrNetworkSettingApp">
|
||||||
|
<permission name="android.permission.WRITE_SECURE_SETTINGS"/>
|
||||||
|
</privapp-permissions>
|
||||||
|
|
||||||
|
</permissions>
|
198
device.mk
Normal file
198
device.mk
Normal file
|
@ -0,0 +1,198 @@
|
||||||
|
# Audio
|
||||||
|
PRODUCT_COPY_FILES += \
|
||||||
|
$(LOCAL_PATH)/audio/Bluetooth_split_audio_V1.cfg:$(TARGET_COPY_OUT_VENDOR)/etc/Bluetooth_split_audio_V1.cfg \
|
||||||
|
$(LOCAL_PATH)/audio/MM_audio_playback_capture_v2.0.cfg:$(TARGET_COPY_OUT_VENDOR)/etc/MM_audio_playback_capture_v2.0.cfg \
|
||||||
|
$(LOCAL_PATH)/audio/a2dp_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/a2dp_audio_policy_configuration.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_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info.xml \
|
||||||
|
$(LOCAL_PATH)/audio/audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration.xml \
|
||||||
|
$(LOCAL_PATH)/audio/audio_policy_volumes.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_volumes.xml \
|
||||||
|
$(LOCAL_PATH)/audio/mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths.xml \
|
||||||
|
$(LOCAL_PATH)/audio/r_submix_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/r_submix_audio_policy_configuration.xml \
|
||||||
|
$(LOCAL_PATH)/audio/usb_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/usb_audio_policy_configuration.xml \
|
||||||
|
|
||||||
|
# Exclude sensor from InputManager
|
||||||
|
PRODUCT_COPY_FILES += \
|
||||||
|
$(LOCAL_PATH)/configs/excluded-input-devices.xml:system/etc/excluded-input-devices.xml \
|
||||||
|
|
||||||
|
# GPS
|
||||||
|
PRODUCT_COPY_FILES += \
|
||||||
|
$(LOCAL_PATH)/gps/apdr.conf:$(TARGET_COPY_OUT_VENDOR)/etc/apdr.conf \
|
||||||
|
$(LOCAL_PATH)/gps/flp.conf:$(TARGET_COPY_OUT_VENDOR)/etc/flp.conf \
|
||||||
|
$(LOCAL_PATH)/gps/gps.conf:$(TARGET_COPY_OUT_VENDOR)/etc/gps.conf \
|
||||||
|
$(LOCAL_PATH)/gps/izat.conf:$(TARGET_COPY_OUT_VENDOR)/etc/izat.conf \
|
||||||
|
$(LOCAL_PATH)/gps/lowi.conf:$(TARGET_COPY_OUT_VENDOR)/etc/lowi.conf \
|
||||||
|
$(LOCAL_PATH)/gps/sap.conf:$(TARGET_COPY_OUT_VENDOR)/etc/sap.conf \
|
||||||
|
$(LOCAL_PATH)/gps/xtwifi.conf:$(TARGET_COPY_OUT_VENDOR)/etc/xtwifi.conf \
|
||||||
|
|
||||||
|
# IDC
|
||||||
|
PRODUCT_COPY_FILES += \
|
||||||
|
$(LOCAL_PATH)/idc/uinput-fpc.idc:$(TARGET_COPY_OUT_VENDOR)/usr/idc/uinput-fpc.idc \
|
||||||
|
|
||||||
|
# IRQ
|
||||||
|
PRODUCT_COPY_FILES += \
|
||||||
|
$(LOCAL_PATH)/configs/msm_irqbalance.conf:$(TARGET_COPY_OUT_VENDOR)/etc/msm_irqbalance.conf \
|
||||||
|
|
||||||
|
# IRSC
|
||||||
|
PRODUCT_COPY_FILES += \
|
||||||
|
$(LOCAL_PATH)/configs/sec_config:$(TARGET_COPY_OUT_VENDOR)/etc/sec_config \
|
||||||
|
|
||||||
|
# Keylayout
|
||||||
|
PRODUCT_COPY_FILES += \
|
||||||
|
$(LOCAL_PATH)/keylayout/gpio-keys.kl:$(TARGET_COPY_OUT_VENDOR)/usr/keylayout/gpio-keys.kl \
|
||||||
|
$(LOCAL_PATH)/keylayout/uinput-fpc.kl:$(TARGET_COPY_OUT_VENDOR)/usr/keylayout/uinput-fpc.kl \
|
||||||
|
|
||||||
|
# Low power Whitelist
|
||||||
|
PRODUCT_COPY_FILES += \
|
||||||
|
$(LOCAL_PATH)/configs/qti_whitelist.xml:system/etc/sysconfig/qti_whitelist.xml \
|
||||||
|
|
||||||
|
# Media
|
||||||
|
PRODUCT_COPY_FILES += \
|
||||||
|
$(LOCAL_PATH)/media/media_codecs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs.xml \
|
||||||
|
$(LOCAL_PATH)/media/media_codecs_google_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_audio.xml \
|
||||||
|
$(LOCAL_PATH)/media/media_codecs_google_c2.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_c2.xml \
|
||||||
|
$(LOCAL_PATH)/media/media_codecs_google_c2_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_c2_audio.xml \
|
||||||
|
$(LOCAL_PATH)/media/media_codecs_google_c2_video.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_c2_video.xml \
|
||||||
|
$(LOCAL_PATH)/media/media_codecs_google_telephony.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_telephony.xml \
|
||||||
|
$(LOCAL_PATH)/media/media_codecs_google_video.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_video.xml \
|
||||||
|
$(LOCAL_PATH)/media/media_codecs_google_video_le.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_video_le.xml \
|
||||||
|
$(LOCAL_PATH)/media/media_codecs_performance.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_performance.xml \
|
||||||
|
$(LOCAL_PATH)/media/media_codecs_performance_v1.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_performance_v1.xml \
|
||||||
|
$(LOCAL_PATH)/media/media_codecs_performance_v2.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_performance_v2.xml \
|
||||||
|
$(LOCAL_PATH)/media/media_codecs_vendor.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_vendor.xml \
|
||||||
|
$(LOCAL_PATH)/media/media_codecs_vendor_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_vendor_audio.xml \
|
||||||
|
$(LOCAL_PATH)/media/media_codecs_vendor_v1.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_vendor_v1.xml \
|
||||||
|
$(LOCAL_PATH)/media/media_codecs_vendor_v2.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_vendor_v2.xml \
|
||||||
|
$(LOCAL_PATH)/media/media_profiles.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles.xml \
|
||||||
|
$(LOCAL_PATH)/media/media_profiles_V1_0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles_V1_0.xml \
|
||||||
|
$(LOCAL_PATH)/media/media_profiles_scuba.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles_scuba.xml \
|
||||||
|
$(LOCAL_PATH)/media/media_profiles_vendor.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles_vendor.xml \
|
||||||
|
$(LOCAL_PATH)/media/system_properties.xml:$(TARGET_COPY_OUT_VENDOR)/etc/system_properties.xml \
|
||||||
|
|
||||||
|
# Overlays
|
||||||
|
DEVICE_PACKAGE_OVERLAYS += \
|
||||||
|
$(LOCAL_PATH)/overlay
|
||||||
|
$(LOCAL_PATH)/overlay-lineage
|
||||||
|
|
||||||
|
# Permissions
|
||||||
|
PRODUCT_COPY_FILES += \
|
||||||
|
frameworks/native/data/etc/android.hardware.bluetooth.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.bluetooth.xml \
|
||||||
|
frameworks/native/data/etc/android.hardware.bluetooth_le.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.bluetooth_le.xml \
|
||||||
|
frameworks/native/data/etc/android.hardware.camera.flash-autofocus.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.flash-autofocus.xml \
|
||||||
|
frameworks/native/data/etc/android.hardware.camera.front.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.front.xml \
|
||||||
|
frameworks/native/data/etc/android.hardware.camera.full.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.full.xml \
|
||||||
|
frameworks/native/data/etc/android.hardware.camera.raw.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.raw.xml \
|
||||||
|
frameworks/native/data/etc/android.hardware.fingerprint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.fingerprint.xml \
|
||||||
|
frameworks/native/data/etc/android.hardware.location.gps.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.location.gps.xml \
|
||||||
|
frameworks/native/data/etc/android.hardware.opengles.aep.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.opengles.aep.xml \
|
||||||
|
frameworks/native/data/etc/android.hardware.sensor.accelerometer.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.accelerometer.xml \
|
||||||
|
frameworks/native/data/etc/android.hardware.sensor.barometer.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.barometer.xml \
|
||||||
|
frameworks/native/data/etc/android.hardware.sensor.compass.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.compass.xml \
|
||||||
|
frameworks/native/data/etc/android.hardware.sensor.gyroscope.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.gyroscope.xml \
|
||||||
|
frameworks/native/data/etc/android.hardware.sensor.light.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.light.xml \
|
||||||
|
frameworks/native/data/etc/android.hardware.sensor.proximity.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.proximity.xml \
|
||||||
|
frameworks/native/data/etc/android.hardware.sensor.stepcounter.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.stepcounter.xml \
|
||||||
|
frameworks/native/data/etc/android.hardware.sensor.stepdetector.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.stepdetector.xml \
|
||||||
|
frameworks/native/data/etc/android.hardware.telephony.cdma.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.telephony.cdma.xml \
|
||||||
|
frameworks/native/data/etc/android.hardware.telephony.gsm.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.telephony.gsm.xml \
|
||||||
|
frameworks/native/data/etc/android.hardware.telephony.ims.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.telephony.ims.xml \
|
||||||
|
frameworks/native/data/etc/android.hardware.touchscreen.multitouch.jazzhand.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.touchscreen.multitouch.jazzhand.xml \
|
||||||
|
frameworks/native/data/etc/android.hardware.usb.accessory.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.usb.accessory.xml \
|
||||||
|
frameworks/native/data/etc/android.hardware.usb.host.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.usb.host.xml \
|
||||||
|
frameworks/native/data/etc/android.hardware.vulkan.compute-0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.compute-0.xml \
|
||||||
|
frameworks/native/data/etc/android.hardware.vulkan.level-1.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.level-1.xml \
|
||||||
|
frameworks/native/data/etc/android.hardware.vulkan.version-1_1.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.version-1_1.xml \
|
||||||
|
frameworks/native/data/etc/android.hardware.wifi.direct.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.direct.xml \
|
||||||
|
frameworks/native/data/etc/android.hardware.wifi.passpoint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.passpoint.xml \
|
||||||
|
frameworks/native/data/etc/android.hardware.wifi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.xml \
|
||||||
|
frameworks/native/data/etc/android.software.device_id_attestation.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.device_id_attestation.xml \
|
||||||
|
frameworks/native/data/etc/android.software.ipsec_tunnels.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.ipsec_tunnels.xml \
|
||||||
|
frameworks/native/data/etc/android.software.midi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.midi.xml \
|
||||||
|
frameworks/native/data/etc/android.software.sip.voip.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.sip.voip.xml \
|
||||||
|
frameworks/native/data/etc/handheld_core_hardware.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/handheld_core_hardware.xml \
|
||||||
|
|
||||||
|
# Public Libraries
|
||||||
|
PRODUCT_COPY_FILES += \
|
||||||
|
$(LOCAL_PATH)/configs/public.libraries.txt:$(TARGET_COPY_OUT_VENDOR)/etc/public.libraries.txt \
|
||||||
|
|
||||||
|
# QTI
|
||||||
|
PRODUCT_COPY_FILES += \
|
||||||
|
$(LOCAL_PATH)/configs/privapp-permissions-qti.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/privapp-permissions-qti.xml \
|
||||||
|
|
||||||
|
# Ramdisk
|
||||||
|
PRODUCT_PACKAGES += \
|
||||||
|
apanic_annotate.sh \
|
||||||
|
apanic_copy.sh \
|
||||||
|
apanic_save.sh \
|
||||||
|
hardware_revisions.sh \
|
||||||
|
init.class_main.sh \
|
||||||
|
init.crda.sh \
|
||||||
|
init.gbmods.sh \
|
||||||
|
init.mdm.sh \
|
||||||
|
init.mmi.block_perm.sh \
|
||||||
|
init.mmi.boot.sh \
|
||||||
|
init.mmi.laser.sh \
|
||||||
|
init.mmi.mdlog-getlogs.sh \
|
||||||
|
init.mmi.modules.sh \
|
||||||
|
init.mmi.shutdown.sh \
|
||||||
|
init.mmi.touch.sh \
|
||||||
|
init.mmi.usb.sh \
|
||||||
|
init.mmi.wlan-getlogs.sh \
|
||||||
|
init.oem.fingerprint.sh \
|
||||||
|
init.oem.fingerprint2.sh \
|
||||||
|
init.oem.hw.sh \
|
||||||
|
init.qcom.class_core.sh \
|
||||||
|
init.qcom.coex.sh \
|
||||||
|
init.qcom.crashdata.sh \
|
||||||
|
init.qcom.early_boot.sh \
|
||||||
|
init.qcom.efs.sync.sh \
|
||||||
|
init.qcom.post_boot.sh \
|
||||||
|
init.qcom.sdio.sh \
|
||||||
|
init.qcom.sensors.sh \
|
||||||
|
init.qcom.sh \
|
||||||
|
init.qti.chg_policy.sh \
|
||||||
|
init.qti.fm.sh \
|
||||||
|
init.qti.ims.sh \
|
||||||
|
init.qti.media.sh \
|
||||||
|
pstore_annotate.sh \
|
||||||
|
qca6234-service.sh \
|
||||||
|
init.mmi.charge_only.rc \
|
||||||
|
init.mmi.chipset.rc \
|
||||||
|
init.mmi.debug.rc \
|
||||||
|
init.mmi.diag.rc \
|
||||||
|
init.mmi.diag_mdlog.rc \
|
||||||
|
init.mmi.overlay.rc \
|
||||||
|
init.mmi.rc \
|
||||||
|
init.mmi.tcmd.rc \
|
||||||
|
init.mmi.usb.rc \
|
||||||
|
init.mmi.wlan.rc \
|
||||||
|
init.qcom.factory.rc \
|
||||||
|
init.qcom.rc \
|
||||||
|
init.target.rc \
|
||||||
|
fstab.qcom \
|
||||||
|
ueventd.qcom.rc \
|
||||||
|
|
||||||
|
# Seccomp
|
||||||
|
PRODUCT_COPY_FILES += \
|
||||||
|
$(LOCAL_PATH)/seccomp/configstore@1.1.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/configstore@1.1.policy \
|
||||||
|
$(LOCAL_PATH)/seccomp/mediacodec.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/mediacodec.policy \
|
||||||
|
|
||||||
|
# Sensors
|
||||||
|
PRODUCT_COPY_FILES += \
|
||||||
|
$(LOCAL_PATH)/sensors/hals.conf:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/hals.conf \
|
||||||
|
|
||||||
|
# WiFi
|
||||||
|
PRODUCT_COPY_FILES += \
|
||||||
|
$(LOCAL_PATH)/wifi/WCNSS_qcom_cfg.ini:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/WCNSS_qcom_cfg.ini \
|
||||||
|
$(LOCAL_PATH)/wifi/aoa_cldb_falcon.bin:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/aoa_cldb_falcon.bin \
|
||||||
|
$(LOCAL_PATH)/wifi/aoa_cldb_swl14.bin:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/aoa_cldb_swl14.bin \
|
||||||
|
$(LOCAL_PATH)/wifi/icm.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/icm.conf \
|
||||||
|
$(LOCAL_PATH)/wifi/p2p_supplicant_overlay.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/p2p_supplicant_overlay.conf \
|
||||||
|
$(LOCAL_PATH)/wifi/wigig_p2p_supplicant.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/wigig_p2p_supplicant.conf \
|
||||||
|
$(LOCAL_PATH)/wifi/wigig_supplicant.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/wigig_supplicant.conf \
|
||||||
|
$(LOCAL_PATH)/wifi/wpa_supplicant.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/wpa_supplicant.conf \
|
||||||
|
$(LOCAL_PATH)/wifi/wpa_supplicant_overlay.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/wpa_supplicant_overlay.conf \
|
||||||
|
|
||||||
|
# Inherit vendor
|
||||||
|
$(call inherit-product, vendor/motorola/guamp/guamp-vendor.mk)
|
781
framework_compatibility_matrix.xml
Normal file
781
framework_compatibility_matrix.xml
Normal file
|
@ -0,0 +1,781 @@
|
||||||
|
<!--
|
||||||
|
Input:
|
||||||
|
moto_framework_compatibility_matrix.xml
|
||||||
|
vendor_framework_compatibility_matrix.xml
|
||||||
|
-->
|
||||||
|
<compatibility-matrix version="1.0" type="framework">
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>android.hardware.automotive.evs</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IEvsEnumerator</name>
|
||||||
|
<instance>EvsEnumeratorHw</instance>
|
||||||
|
<instance>EvsEnumeratorHw-Mock</instance>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>android.hardware.gnss</name>
|
||||||
|
<version>1.0-1</version>
|
||||||
|
<version>2.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IGnss</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>android.hardware.gnss</name>
|
||||||
|
<version>1.0-1</version>
|
||||||
|
<version>2.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IGnss</name>
|
||||||
|
<instance>gnss_vendor</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>android.hardware.media.c2</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IComponentStore</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
<instance>software</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>android.hardware.nfc</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>INfc</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>android.hardware.radio</name>
|
||||||
|
<version>1.0-4</version>
|
||||||
|
<interface>
|
||||||
|
<name>IRadio</name>
|
||||||
|
<instance>slot1</instance>
|
||||||
|
<instance>slot2</instance>
|
||||||
|
</interface>
|
||||||
|
<interface>
|
||||||
|
<name>ISap</name>
|
||||||
|
<instance>slot1</instance>
|
||||||
|
<instance>slot2</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>android.hardware.radio.config</name>
|
||||||
|
<version>1.0-1</version>
|
||||||
|
<interface>
|
||||||
|
<name>IRadioConfig</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>android.hardware.wifi.supplicant</name>
|
||||||
|
<version>1.0-2</version>
|
||||||
|
<interface>
|
||||||
|
<name>ISupplicant</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
<instance>wigigp2p</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="false">
|
||||||
|
<name>com.motorola.hardware.display.panel</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IDisplayPanel</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>com.qualcomm.qti.ant</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IAntHci</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>com.qualcomm.qti.imscmservice</name>
|
||||||
|
<version>2.0-2</version>
|
||||||
|
<interface>
|
||||||
|
<name>IImsCmService</name>
|
||||||
|
<instance>qti.ims.connectionmanagerservice</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>com.qualcomm.qti.uceservice</name>
|
||||||
|
<version>2.0-1</version>
|
||||||
|
<interface>
|
||||||
|
<name>IUceService</name>
|
||||||
|
<instance>com.qualcomm.qti.uceservice</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>com.qualcomm.qti.wifidisplayhal</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IDSManager</name>
|
||||||
|
<instance>wifidisplaydshal</instance>
|
||||||
|
</interface>
|
||||||
|
<interface>
|
||||||
|
<name>IHDCPSession</name>
|
||||||
|
<instance>wifidisplayhdcphal</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>com.quicinc.cne.api</name>
|
||||||
|
<version>1.0-1</version>
|
||||||
|
<interface>
|
||||||
|
<name>IApiService</name>
|
||||||
|
<instance>cnd</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>com.quicinc.cne.server</name>
|
||||||
|
<version>2.0-2</version>
|
||||||
|
<interface>
|
||||||
|
<name>IServer</name>
|
||||||
|
<instance>cnd</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>motorola.hardware.camera.imgtuner</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IImageTuning</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.display.color</name>
|
||||||
|
<version>1.0-5</version>
|
||||||
|
<interface>
|
||||||
|
<name>IDisplayColor</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.display.config</name>
|
||||||
|
<version>1.0-15</version>
|
||||||
|
<interface>
|
||||||
|
<name>IDisplayConfig</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.display.postproc</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IDisplayPostproc</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.nxp.hardware.nfc</name>
|
||||||
|
<version>1.0-1</version>
|
||||||
|
<interface>
|
||||||
|
<name>INqNfc</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.automotive.qcarcam</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IQcarCamera</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.data.factory</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<version>2.0-1</version>
|
||||||
|
<interface>
|
||||||
|
<name>IFactory</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.dvr</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IDvrDisplay</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.esepowermanager</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IEsePowerManager</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.gnss</name>
|
||||||
|
<version>1.0-2</version>
|
||||||
|
<version>2.0-1</version>
|
||||||
|
<version>3.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>ILocHidlGnss</name>
|
||||||
|
<instance>gnss_vendor</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.hardware.alarm</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IAlarm</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.hardware.audiohalext</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IAudioHalExt</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.hardware.bluetooth_audio</name>
|
||||||
|
<version>2.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IBluetoothAudioProvidersFactory</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.hardware.bluetooth_dun</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IBluetoothDunServer</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.hardware.bluetooth_sar</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IBluetoothSar</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.hardware.btconfigstore</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IBTConfigStore</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.hardware.cacert</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IService</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.hardware.camera.postproc</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IPostProcService</name>
|
||||||
|
<instance>camerapostprocservice</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.hardware.capabilityconfigstore</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>ICapabilityConfigStore</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.hardware.cryptfshw</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>ICryptfsHw</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.hardware.cvp</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>ICvp</name>
|
||||||
|
<instance>cvphalservice</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.hardware.data.connection</name>
|
||||||
|
<version>1.0-1</version>
|
||||||
|
<interface>
|
||||||
|
<name>IDataConnection</name>
|
||||||
|
<instance>slot1</instance>
|
||||||
|
<instance>slot2</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.hardware.data.iwlan</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IIWlan</name>
|
||||||
|
<instance>slot1</instance>
|
||||||
|
<instance>slot2</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.hardware.data.latency</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>ILinkLatency</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.hardware.display.allocator</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<version>3.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IQtiAllocator</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.hardware.display.composer</name>
|
||||||
|
<version>2.0-1</version>
|
||||||
|
<interface>
|
||||||
|
<name>IQtiComposer</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.hardware.display.mapper</name>
|
||||||
|
<version>2.0</version>
|
||||||
|
<version>3.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IQtiMapper</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.hardware.embmssl</name>
|
||||||
|
<version>1.0-1</version>
|
||||||
|
<interface>
|
||||||
|
<name>IEmbms</name>
|
||||||
|
<instance>embmsslServer0</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.hardware.factory</name>
|
||||||
|
<version>1.0-1</version>
|
||||||
|
<interface>
|
||||||
|
<name>IFactory</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.hardware.fingerprint</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IQtiExtendedFingerprint</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.hardware.fm</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IFmHci</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.hardware.fstman</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IFstManager</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.hardware.improvetouch.blobmanager</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IBlobManager</name>
|
||||||
|
<instance>BlobManagerService</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.hardware.improvetouch.gesturemanager</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IGestureManager</name>
|
||||||
|
<instance>GestureManagerService</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.hardware.improvetouch.touchcompanion</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>ITouchCompanion</name>
|
||||||
|
<instance>TouchCompanionService</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.hardware.iop</name>
|
||||||
|
<version>2.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IIop</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.hardware.perf</name>
|
||||||
|
<version>2.0-1</version>
|
||||||
|
<interface>
|
||||||
|
<name>IPerf</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.hardware.qdutils_disp</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IQdutilsDisp</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.hardware.qseecom</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IQSEECom</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.hardware.qteeconnector</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IAppConnector</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
<interface>
|
||||||
|
<name>IGPAppConnector</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.hardware.radio.am</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IQcRilAudio</name>
|
||||||
|
<instance>slot1</instance>
|
||||||
|
<instance>slot2</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.hardware.radio.ims</name>
|
||||||
|
<version>1.0-6</version>
|
||||||
|
<interface>
|
||||||
|
<name>IImsRadio</name>
|
||||||
|
<instance>imsradio0</instance>
|
||||||
|
<instance>imsradio1</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.hardware.radio.internal.deviceinfo</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IDeviceInfo</name>
|
||||||
|
<instance>deviceinfo</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.hardware.radio.lpa</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IUimLpa</name>
|
||||||
|
<instance>UimLpa0</instance>
|
||||||
|
<instance>UimLpa1</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.hardware.radio.qcrilhook</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IQtiOemHook</name>
|
||||||
|
<instance>oemhook0</instance>
|
||||||
|
<instance>oemhook1</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.hardware.radio.qtiradio</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<version>2.0-4</version>
|
||||||
|
<interface>
|
||||||
|
<name>IQtiRadio</name>
|
||||||
|
<instance>slot1</instance>
|
||||||
|
<instance>slot2</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.hardware.radio.uim</name>
|
||||||
|
<version>1.1-2</version>
|
||||||
|
<interface>
|
||||||
|
<name>IUim</name>
|
||||||
|
<instance>Uim0</instance>
|
||||||
|
<instance>Uim1</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.hardware.radio.uim_remote_client</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IUimRemoteServiceClient</name>
|
||||||
|
<instance>uimRemoteClient0</instance>
|
||||||
|
<instance>uimRemoteClient1</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.hardware.radio.uim_remote_server</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IUimRemoteServiceServer</name>
|
||||||
|
<instance>uimRemoteServer0</instance>
|
||||||
|
<instance>uimRemoteServer1</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.hardware.scve.objecttracker</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IObjectTracker</name>
|
||||||
|
<instance>objectTracker</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.hardware.scve.panorama</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IPanoramaStitching</name>
|
||||||
|
<instance>panoStitching</instance>
|
||||||
|
</interface>
|
||||||
|
<interface>
|
||||||
|
<name>IPanoramaTracking</name>
|
||||||
|
<instance>panoTracking</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.hardware.seccam</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>ISecCam</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.hardware.sensorscalibrate</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>ISensorsCalibrate</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.hardware.servicetracker</name>
|
||||||
|
<version>1.0-1</version>
|
||||||
|
<interface>
|
||||||
|
<name>IServicetracker</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.hardware.slmadapter</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>ISlmAdapter</name>
|
||||||
|
<instance>SlmAdapter</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.hardware.soter</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>ISoter</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.hardware.systemhelper</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>ISystemEvent</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
<interface>
|
||||||
|
<name>ISystemResource</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.hardware.trustedui</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>ITrustedInput</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
<interface>
|
||||||
|
<name>ITrustedUI</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.hardware.tui_comm</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>ITuiComm</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.hardware.vpp</name>
|
||||||
|
<version>1.1-3</version>
|
||||||
|
<interface>
|
||||||
|
<name>IHidlVppService</name>
|
||||||
|
<instance>vppService</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.hardware.wifi.hostapd</name>
|
||||||
|
<version>1.0-2</version>
|
||||||
|
<interface>
|
||||||
|
<name>IHostapdVendor</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.hardware.wifi.supplicant</name>
|
||||||
|
<version>2.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>ISupplicantVendor</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.hardware.wifi.wifilearner</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IWifiStats</name>
|
||||||
|
<instance>wifiStats</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.hardware.wifidisplaysession</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IWifiDisplaySession</name>
|
||||||
|
<instance>wifidisplaysession</instance>
|
||||||
|
</interface>
|
||||||
|
<interface>
|
||||||
|
<name>IWifiDisplaySessionAudioTrack</name>
|
||||||
|
<instance>wifidisplaysessionaudiotrack</instance>
|
||||||
|
</interface>
|
||||||
|
<interface>
|
||||||
|
<name>IWifiDisplaySessionImageTrack</name>
|
||||||
|
<instance>wifidisplaysessionimagetrack</instance>
|
||||||
|
</interface>
|
||||||
|
<interface>
|
||||||
|
<name>IWifiDisplaySessionVideoTrack</name>
|
||||||
|
<instance>wifidisplaysessionvideotrack</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.hardware.wigig.netperftuner</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>INetPerfTuner</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.hardware.wigig.supptunnel</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>ISuppTunnelProvider</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.hardware.wipower</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IWipower</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.ims.callinfo</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IService</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.imsrtpservice</name>
|
||||||
|
<version>2.0-1</version>
|
||||||
|
<interface>
|
||||||
|
<name>IRTPService</name>
|
||||||
|
<instance>imsrtpservice</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.power.pasrmanager</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IPasrManager</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.qspmhal</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IQspmhal</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.spu</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>ISPUManager</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" optional="true">
|
||||||
|
<name>vendor.qti.voiceprint</name>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IQtiVoicePrintService</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
|
<sepolicy>
|
||||||
|
<kernel-sepolicy-version>30</kernel-sepolicy-version>
|
||||||
|
<sepolicy-version>26.0</sepolicy-version>
|
||||||
|
<sepolicy-version>27.0</sepolicy-version>
|
||||||
|
<sepolicy-version>28.0</sepolicy-version>
|
||||||
|
<sepolicy-version>29.0</sepolicy-version>
|
||||||
|
</sepolicy>
|
||||||
|
<avb>
|
||||||
|
<vbmeta-version>1.0</vbmeta-version>
|
||||||
|
</avb>
|
||||||
|
</compatibility-matrix>
|
205
gps/apdr.conf
Normal file
205
gps/apdr.conf
Normal file
|
@ -0,0 +1,205 @@
|
||||||
|
# AP DR SENSOR Configuration file
|
||||||
|
#
|
||||||
|
# SENSOR_SERVICE options are one of below
|
||||||
|
# accel,gyro,vehicle_accel,vehicle_gyro,pedometer,vehicle_odometry,accel_temp,
|
||||||
|
# gyro_temp,baro,mag_calib,mag_uncalib,amd,rmd.
|
||||||
|
#
|
||||||
|
# SENSOR_PROVIDER options is one of -- default,native,ssc,samlite.
|
||||||
|
#
|
||||||
|
# SENSOR_RATE = 1~100 (Hz)
|
||||||
|
#
|
||||||
|
# SENSOR_SAMPLES = 1~N
|
||||||
|
#
|
||||||
|
# SENSOR_STATISTIC_ENABLED
|
||||||
|
# bit 0: Diag Print Enabled
|
||||||
|
# bit 1: Adb Print Enabled
|
||||||
|
# SENSOR_STATISTIC_PRINT_COUNT
|
||||||
|
# Skip Number of Print
|
||||||
|
#
|
||||||
|
# QDR_DYNAMIC_LOADING = 1~3
|
||||||
|
# Configure QDR library to be loaded
|
||||||
|
# 1: QDR3
|
||||||
|
# 2: QDR2-GYRO
|
||||||
|
# 3: QDR2-DWT
|
||||||
|
#
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
######################################
|
||||||
|
# #
|
||||||
|
# Default Configuration #
|
||||||
|
# (GNSS only,QDR Disabled) #
|
||||||
|
# #
|
||||||
|
# For QDR enablement, comment #
|
||||||
|
# this section and enabled #
|
||||||
|
# either QDR3 OR #
|
||||||
|
# QDR2-DWT OR QDR2-Gyro related #
|
||||||
|
# configuration section in below. #
|
||||||
|
# #
|
||||||
|
######################################
|
||||||
|
|
||||||
|
SENSOR_SERVICE = accel
|
||||||
|
SENSOR_PROVIDER = native
|
||||||
|
SENSOR_RATE = 100
|
||||||
|
SENSOR_SAMPLES = 1
|
||||||
|
|
||||||
|
SENSOR_SERVICE = gyro
|
||||||
|
SENSOR_PROVIDER = native
|
||||||
|
SENSOR_RATE = 100
|
||||||
|
SENSOR_SAMPLES = 1
|
||||||
|
|
||||||
|
SENSOR_SERVICE = vehicle_gear
|
||||||
|
SENSOR_PROVIDER = native
|
||||||
|
SENSOR_RATE = 100
|
||||||
|
SENSOR_SAMPLES = 1
|
||||||
|
|
||||||
|
|
||||||
|
######################################
|
||||||
|
# #
|
||||||
|
# QDR3 Configuration #
|
||||||
|
# #
|
||||||
|
# For QDR3, #
|
||||||
|
# comment default configuration above#
|
||||||
|
# and #
|
||||||
|
# uncomment below configuration #
|
||||||
|
# settings. #
|
||||||
|
# #
|
||||||
|
######################################
|
||||||
|
#
|
||||||
|
#SENSOR_SERVICE = accel
|
||||||
|
#SENSOR_PROVIDER = native
|
||||||
|
#SENSOR_RATE = 10
|
||||||
|
#SENSOR_SAMPLES = 10
|
||||||
|
#
|
||||||
|
#SENSOR_SERVICE = vehicle_speed
|
||||||
|
#SENSOR_PROVIDER = native
|
||||||
|
#SENSOR_RATE = 100
|
||||||
|
#SENSOR_SAMPLES = 1
|
||||||
|
#
|
||||||
|
#SENSOR_SERVICE = gyro
|
||||||
|
#SENSOR_PROVIDER = native
|
||||||
|
#SENSOR_RATE = 10
|
||||||
|
#SENSOR_SAMPLES = 10
|
||||||
|
#
|
||||||
|
#SENSOR_SERVICE = vehicle_gear
|
||||||
|
#SENSOR_PROVIDER = native
|
||||||
|
#SENSOR_RATE = 100
|
||||||
|
#SENSOR_SAMPLES = 1
|
||||||
|
#
|
||||||
|
#
|
||||||
|
##Enable/disable sensor data flashback feature
|
||||||
|
#QDR_FLASHBACK_ENABLED = 0
|
||||||
|
##Configure QDR library to be loaded 1: QDR3 2: QDR2-GYRO 3: QDR2-DWS
|
||||||
|
#QDR_DYNAMIC_LOADING = 1
|
||||||
|
##Enable/disable sensor data batching feature
|
||||||
|
#QDR_BATCHING_ENABLED = 2
|
||||||
|
##Reporting offset before PPS boundary
|
||||||
|
#QDR_REPORTING_OFFSET = 0
|
||||||
|
##Sensor dispatch threshold declaration
|
||||||
|
#QDR_SENSDISPATCH_MS = 30
|
||||||
|
#
|
||||||
|
|
||||||
|
######################################
|
||||||
|
# #
|
||||||
|
# QDR2-DWT Configuration #
|
||||||
|
# #
|
||||||
|
# For QDR2-DWT, #
|
||||||
|
# comment default configuration above#
|
||||||
|
# and #
|
||||||
|
# uncomment below configuration #
|
||||||
|
# settings. #
|
||||||
|
# #
|
||||||
|
######################################
|
||||||
|
#
|
||||||
|
#SENSOR_SERVICE = vehicle_speed
|
||||||
|
#SENSOR_PROVIDER = native
|
||||||
|
#SENSOR_RATE = 100
|
||||||
|
#SENSOR_SAMPLES = 1
|
||||||
|
#SENSOR_STATISTIC_ENABLED = 3
|
||||||
|
#SENSOR_STATISTIC_PRINT_COUNT = 50
|
||||||
|
#
|
||||||
|
#SENSOR_SERVICE = vehicle_dws
|
||||||
|
#SENSOR_PROVIDER = native
|
||||||
|
#SENSOR_RATE = 100
|
||||||
|
#SENSOR_SAMPLES = 1
|
||||||
|
#SENSOR_STATISTIC_ENABLED = 3
|
||||||
|
#SENSOR_STATISTIC_PRINT_COUNT = 50
|
||||||
|
#
|
||||||
|
#SENSOR_SERVICE = vehicle_gear
|
||||||
|
#SENSOR_PROVIDER = native
|
||||||
|
#SENSOR_RATE = 100
|
||||||
|
#SENSOR_SAMPLES = 1
|
||||||
|
#SENSOR_STATISTIC_ENABLED = 3
|
||||||
|
#SENSOR_STATISTIC_PRINT_COUNT = 50
|
||||||
|
#
|
||||||
|
#GNSS_POS_STATISTIC_ENABLED = 3
|
||||||
|
#GNSS_POS_STATISTIC_PRNTCNT = 10
|
||||||
|
#GNSS_MSR_STATISTIC_ENABLED = 3
|
||||||
|
#GNSS_MSR_STATISTIC_PRNTCNT = 10
|
||||||
|
#
|
||||||
|
##Enable/disable sensor data flashback feature
|
||||||
|
#QDR_FLASHBACK_ENABLED = 0
|
||||||
|
##Configure QDR library to be loaded 1: QDR3 2: QDR2-GYRO 3: QDR2-DWS
|
||||||
|
#QDR_DYNAMIC_LOADING = 3
|
||||||
|
##Enable/disable sensor data batching feature
|
||||||
|
#QDR_BATCHING_ENABLED = 0
|
||||||
|
##Reporting offset before PPS boundary
|
||||||
|
#QDR_REPORTING_OFFSET = 0
|
||||||
|
##Sensor dispatch threshold declaration
|
||||||
|
#QDR_SENSDISPATCH_MS = 30
|
||||||
|
##QDR_ENABLE_QG shall be set as 1
|
||||||
|
#QDR_ENABLE_QG = 1
|
||||||
|
##Select Wheel set (E.g.: Front two wheels, Rear two wheels OR All four wheels)
|
||||||
|
##To be used for differential wheel tick OR speed service.
|
||||||
|
##This configuration is applicable when QDR_CAN_TYPE configured as
|
||||||
|
##ODO_DWS(3) or ODO_DWT(2).
|
||||||
|
##Value "0": Use Front two wheels
|
||||||
|
##Value "1": Use Rear two wheels
|
||||||
|
##Value "2": Use All four wheels
|
||||||
|
#QG_DRIVE_WHEEL_FW_RW_AW = 2
|
||||||
|
##Max Wheel tick value above which wheel tick rolls over
|
||||||
|
##This configuration is applicable when QDR_CAN_TYPE configured as ODO_DWT(2)
|
||||||
|
#QG_DWT_MAX_WHEEL_TICK_COUNT = 255.0
|
||||||
|
##Configure Wheel constant for DWT based below equation
|
||||||
|
##(2 * pi * WHEEL_RADIUS / Pulses Per revolution)
|
||||||
|
##This configuration is applicable when QDR_CAN_TYPE configured as ODO_DWT(2)
|
||||||
|
#QG_DWT_WHEEL_CONSTANT = 0.044
|
||||||
|
|
||||||
|
######################################
|
||||||
|
# #
|
||||||
|
# QDR2-GYRO Configuration #
|
||||||
|
# #
|
||||||
|
# For QDR2-GYRO, #
|
||||||
|
# comment default configuration above#
|
||||||
|
# and #
|
||||||
|
# uncomment below configuration #
|
||||||
|
# settings. #
|
||||||
|
# #
|
||||||
|
######################################
|
||||||
|
#
|
||||||
|
#SENSOR_SERVICE = vehicle_speed
|
||||||
|
#SENSOR_PROVIDER = native
|
||||||
|
#SENSOR_RATE = 100
|
||||||
|
#SENSOR_SAMPLES = 1
|
||||||
|
#
|
||||||
|
#SENSOR_SERVICE = vehicle_gyro
|
||||||
|
#SENSOR_PROVIDER = native
|
||||||
|
#SENSOR_RATE = 100
|
||||||
|
#SENSOR_SAMPLES = 1
|
||||||
|
#
|
||||||
|
#SENSOR_SERVICE = vehicle_gear
|
||||||
|
#SENSOR_PROVIDER = native
|
||||||
|
#SENSOR_RATE = 100
|
||||||
|
#SENSOR_SAMPLES = 1
|
||||||
|
#
|
||||||
|
##Enable/disable sensor data flashback feature
|
||||||
|
#QDR_FLASHBACK_ENABLED = 0
|
||||||
|
##Configure QDR library to be loaded 1: QDR3 2: QDR2-GYRO 3: QDR2-DWS
|
||||||
|
#QDR_DYNAMIC_LOADING = 2
|
||||||
|
##Enable/disable sensor data batching feature
|
||||||
|
#QDR_BATCHING_ENABLED = 0
|
||||||
|
##Reporting offset before PPS boundary
|
||||||
|
#QDR_REPORTING_OFFSET = 0
|
||||||
|
##Sensor dispatch threshold declaration
|
||||||
|
#QDR_SENSDISPATCH_MS = 30
|
||||||
|
#
|
60
gps/flp.conf
Normal file
60
gps/flp.conf
Normal file
|
@ -0,0 +1,60 @@
|
||||||
|
###################################
|
||||||
|
##### FLP settings #####
|
||||||
|
###################################
|
||||||
|
|
||||||
|
###################################
|
||||||
|
# FLP BATCH SIZE
|
||||||
|
###################################
|
||||||
|
# The number of batched locations
|
||||||
|
# requested to modem. The desired number
|
||||||
|
# defined below may not be satisfied, as
|
||||||
|
# the modem can only return the number
|
||||||
|
# of batched locations that can be allocated,
|
||||||
|
# which is limited by memory. The default
|
||||||
|
# batch size defined as 20 as below.
|
||||||
|
BATCH_SIZE=20
|
||||||
|
|
||||||
|
###################################
|
||||||
|
# FLP OUTDOOR TRIP BATCH SIZE
|
||||||
|
###################################
|
||||||
|
# The number of batched locations
|
||||||
|
# requested to modem for outdoor
|
||||||
|
# trip batching. The desired number
|
||||||
|
# defined below may not be satisfied, as
|
||||||
|
# the modem can only return the number
|
||||||
|
# of batched locations that can be allocated,
|
||||||
|
# which is limited by memory. The default
|
||||||
|
# trip batch size defined as 600 as below.
|
||||||
|
OUTDOOR_TRIP_BATCH_SIZE=600
|
||||||
|
|
||||||
|
###################################
|
||||||
|
# FLP BATCHING SESSION TIMEOUT
|
||||||
|
###################################
|
||||||
|
# Duration with which batch session timeout
|
||||||
|
# happens in milliseconds. If not specified
|
||||||
|
# or set to zero, batching session timeout
|
||||||
|
# defaults to 20 seconds by the modem.
|
||||||
|
# BATCH_SESSION_TIMEOUT=20000
|
||||||
|
|
||||||
|
###################################
|
||||||
|
# FLP BATCHING ACCURACY
|
||||||
|
###################################
|
||||||
|
# Set to one of the defined values below
|
||||||
|
# to define the accuracy of batching.
|
||||||
|
# If not specified, accuracy defaults
|
||||||
|
# to LOW.
|
||||||
|
# FLP BATCHING ACCURACY values:
|
||||||
|
# Low accuracy = 0
|
||||||
|
# Medium accuracy = 1
|
||||||
|
# High accuracy = 2
|
||||||
|
ACCURACY=1
|
||||||
|
|
||||||
|
####################################
|
||||||
|
# By default if network fixes are not sensor assisted
|
||||||
|
# these fixes must be dropped. This parameter adds an exception
|
||||||
|
# for targets where there is no PDR and we still want to
|
||||||
|
# report out network fixes
|
||||||
|
# 0: MUST NOT ALLOW NETWORK FIXES
|
||||||
|
# 1: ALLOW NETWORK FIXES
|
||||||
|
####################################
|
||||||
|
ALLOW_NETWORK_FIXES = 0
|
313
gps/gps.conf
Normal file
313
gps/gps.conf
Normal file
|
@ -0,0 +1,313 @@
|
||||||
|
#hardware/qcom/gps/loc_api/conf/gps.conf
|
||||||
|
|
||||||
|
NI_SUPL_DENY_ON_NFW_LOCKED = 1
|
||||||
|
|
||||||
|
#####################################
|
||||||
|
# proxyAppPackageName
|
||||||
|
#####################################
|
||||||
|
# This is a string that is sent to the framework
|
||||||
|
# in nfwNotifyCb callback
|
||||||
|
# Add NFW package name
|
||||||
|
PROXY_APP_PACKAGE_NAME = com.motorola.nfwlocationattribution
|
||||||
|
|
||||||
|
#Version check for XTRA
|
||||||
|
#DISABLE = 0
|
||||||
|
#AUTO = 1
|
||||||
|
#XTRA2 = 2
|
||||||
|
#XTRA3 = 3
|
||||||
|
XTRA_VERSION_CHECK=0
|
||||||
|
|
||||||
|
# Error Estimate
|
||||||
|
# _SET = 1
|
||||||
|
# _CLEAR = 0
|
||||||
|
ERR_ESTIMATE=0
|
||||||
|
|
||||||
|
#NTP server
|
||||||
|
NTP_SERVER=time.izatcloud.net
|
||||||
|
|
||||||
|
#XTRA CA path
|
||||||
|
XTRA_CA_PATH=/usr/lib/ssl/certs
|
||||||
|
|
||||||
|
# DEBUG LEVELS: 0 - none, 1 - Error, 2 - Warning, 3 - Info
|
||||||
|
# 4 - Debug, 5 - Verbose
|
||||||
|
# If DEBUG_LEVEL is commented, Android's logging levels will be used
|
||||||
|
DEBUG_LEVEL = 2
|
||||||
|
|
||||||
|
# Intermediate position report, 1=enable, 0=disable
|
||||||
|
#INTERMEDIATE_POS=0
|
||||||
|
|
||||||
|
# supl version 1.0
|
||||||
|
#SUPL_VER=0x10000
|
||||||
|
|
||||||
|
# Emergency SUPL, 1=enable, 0=disable
|
||||||
|
#SUPL_ES=1
|
||||||
|
|
||||||
|
#Choose PDN for Emergency SUPL
|
||||||
|
#1 - Use emergency PDN
|
||||||
|
#0 - Use regular SUPL PDN for Emergency SUPL
|
||||||
|
#USE_EMERGENCY_PDN_FOR_EMERGENCY_SUPL=0
|
||||||
|
|
||||||
|
#SUPL_MODE is a bit mask set in config.xml per carrier by default.
|
||||||
|
#If it is uncommented here, this value will overwrite the value from
|
||||||
|
#config.xml.
|
||||||
|
#MSA=0X2
|
||||||
|
#MSB=0X1
|
||||||
|
#SUPL_MODE=
|
||||||
|
|
||||||
|
# GPS Capabilities bit mask
|
||||||
|
# SCHEDULING = 0x01
|
||||||
|
# MSB = 0x02
|
||||||
|
# MSA = 0x04
|
||||||
|
# ON_DEMAND_TIME = 0x10
|
||||||
|
# default = ON_DEMAND_TIME | MSA | MSB | SCHEDULING
|
||||||
|
CAPABILITIES=0x77
|
||||||
|
|
||||||
|
# Accuracy threshold for intermediate positions
|
||||||
|
# less accurate positions are ignored, 0 for passing all positions
|
||||||
|
# ACCURACY_THRES=5000
|
||||||
|
|
||||||
|
################################
|
||||||
|
##### AGPS server settings #####
|
||||||
|
################################
|
||||||
|
|
||||||
|
# FOR SUPL SUPPORT, set the following
|
||||||
|
# SUPL_HOST=supl.host.com or IP
|
||||||
|
# SUPL_PORT=1234
|
||||||
|
|
||||||
|
# FOR MO SUPL SUPPORT, set the following
|
||||||
|
# MO_SUPL_HOST=supl.host.com or IP
|
||||||
|
# MO_SUPL_PORT=1234
|
||||||
|
|
||||||
|
# FOR C2K PDE SUPPORT, set the following
|
||||||
|
# C2K_HOST=c2k.pde.com or IP
|
||||||
|
# C2K_PORT=1234
|
||||||
|
|
||||||
|
# Bitmask of slots that are available
|
||||||
|
# for write/install to, where 1s indicate writable,
|
||||||
|
# and the default value is 0 where no slots
|
||||||
|
# are writable. For example, AGPS_CERT_WRITABLE_MASK
|
||||||
|
# of b1000001010 makes 3 slots available
|
||||||
|
# and the remaining 7 slots unwritable.
|
||||||
|
#AGPS_CERT_WRITABLE_MASK=0
|
||||||
|
|
||||||
|
####################################
|
||||||
|
# LTE Positioning Profile Settings
|
||||||
|
####################################
|
||||||
|
# 0: Enable RRLP on LTE(Default)
|
||||||
|
# 1: Enable LPP_User_Plane on LTE
|
||||||
|
# 2: Enable CP LPP, UP RRLP
|
||||||
|
# 3: Enable both LPP_User_Plane and LPP_Control_Plane
|
||||||
|
# 4: Enable CP LPP and LPPe DBH, UP RRLP (TMO)
|
||||||
|
# 5: Enable CP & UP - LPP and LPPe DBH (VzW)
|
||||||
|
# 6: Enable CP LPP and LPPe DBH, LPPe WLAN, UP RRLP (TMO)
|
||||||
|
# 7: Enable CP & UP - LPP and LPPe DBH, LPPe WLAN (VzW)
|
||||||
|
# 8: Enable CP LPP and LPPe DBH, LPPe WLAN, LPPe UBP, UP RRLP (TMO)
|
||||||
|
# 9: Enable CP & UP - LPP and LPPe DBH, LPPe WLAN, LPPe UBP(VzW)
|
||||||
|
# 10: Enable CP LPP and LPPe DBH, UP LPP - disable UP LPPe(AT&T )
|
||||||
|
# 11: Enable CP LPP and LPPe DBH/WLAN, UP LPP - disable UP LPPe (AT&T)
|
||||||
|
# 12: Enable CP LPP and LPPe DBH/WLAN/UBP, UP LPP - disable UP LPPe (AT&T)
|
||||||
|
#LPP_PROFILE = 2
|
||||||
|
|
||||||
|
####################################
|
||||||
|
#Datum Type
|
||||||
|
####################################
|
||||||
|
# 0: WGS-84
|
||||||
|
# 1: PZ-90
|
||||||
|
#DATUM_TYPE = 0
|
||||||
|
|
||||||
|
################################
|
||||||
|
# EXTRA SETTINGS
|
||||||
|
################################
|
||||||
|
# NMEA provider (1=Modem Processor, 0=Application Processor)
|
||||||
|
#NMEA_PROVIDER=0
|
||||||
|
# Mark if it is a SGLTE target (1=SGLTE, 0=nonSGLTE)
|
||||||
|
#SGLTE_TARGET=0
|
||||||
|
|
||||||
|
##################################################
|
||||||
|
# Select Positioning Protocol on A-GLONASS system
|
||||||
|
##################################################
|
||||||
|
# 0x1: RRC CPlane
|
||||||
|
# 0x2: RRLP UPlane
|
||||||
|
# 0x4: LLP Uplane
|
||||||
|
#A_GLONASS_POS_PROTOCOL_SELECT = 0
|
||||||
|
#
|
||||||
|
##################################################
|
||||||
|
# Select technology for LPPe Control Plane
|
||||||
|
##################################################
|
||||||
|
# 0x1: DBH for LPPe CP
|
||||||
|
# 0x2: WLAN AP Measurements for LPPe CP
|
||||||
|
# 0x4: SRN AP measurement for CP
|
||||||
|
# 0x8: Sensor Barometer Measurement LPPe CP
|
||||||
|
#LPPE_CP_TECHNOLOGY = 0
|
||||||
|
|
||||||
|
##################################################
|
||||||
|
# Select technology for LPPe User Plane
|
||||||
|
##################################################
|
||||||
|
# 0x1: DBH for LPPe UP
|
||||||
|
# 0x2: WLAN AP Measurements for LPPe UP
|
||||||
|
# 0x4: SRN AP measurement for UP
|
||||||
|
# 0x8: Sensor Barometer Measurement LPPe UP
|
||||||
|
#LPPE_UP_TECHNOLOGY = 0
|
||||||
|
|
||||||
|
##################################################
|
||||||
|
# AGPS_CONFIG_INJECT
|
||||||
|
##################################################
|
||||||
|
# enable/disable injection of AGPS configurations:
|
||||||
|
# SUPL_VER
|
||||||
|
# SUPL_HOST
|
||||||
|
# SUPL_PORT
|
||||||
|
# MO_SUPL_HOST
|
||||||
|
# MO_SUPL_PORT
|
||||||
|
# C2K_HOST
|
||||||
|
# C2K_PORT
|
||||||
|
# LPP_PROFILE
|
||||||
|
# A_GLONASS_POS_PROTOCOL_SELECT
|
||||||
|
# 0: disable
|
||||||
|
# 1: enable
|
||||||
|
#AGPS_CONFIG_INJECT = 1
|
||||||
|
|
||||||
|
##################################################
|
||||||
|
# GNSS settings for automotive use cases
|
||||||
|
# Configurations in following section are
|
||||||
|
# specific to automotive use cases, others
|
||||||
|
# please do not change, keep the default values
|
||||||
|
##################################################
|
||||||
|
|
||||||
|
# AP Coarse Timestamp Uncertainty
|
||||||
|
##################################################
|
||||||
|
# default : 10
|
||||||
|
# AP time stamp uncertainty, until GNSS receiver
|
||||||
|
# is able to acquire better timing information
|
||||||
|
#AP_TIMESTAMP_UNCERTAINTY = 10
|
||||||
|
|
||||||
|
##################################################
|
||||||
|
# QDR engine availability status
|
||||||
|
##################################################
|
||||||
|
# 0 : NO QDR (default)
|
||||||
|
# 1 : QDR enabled
|
||||||
|
# This settings enables QDR Configuration for
|
||||||
|
# automotive use case, if enabled then
|
||||||
|
# DR_AP_Service needs to be enabled in izat.conf
|
||||||
|
#EXTERNAL_DR_ENABLED = 0
|
||||||
|
|
||||||
|
#####################################
|
||||||
|
# DR_SYNC Pulse Availability
|
||||||
|
#####################################
|
||||||
|
# 0 : DR_SYNC pulse not available (default)
|
||||||
|
# 1 : DR_SYNC pulse available
|
||||||
|
# This configuration enables the driver to make use
|
||||||
|
# of PPS events generated by DR_SYNC pulse
|
||||||
|
# Standard Linux PPS driver needs to be enabled
|
||||||
|
#DR_SYNC_ENABLED = 0
|
||||||
|
|
||||||
|
#####################################
|
||||||
|
# PPS Device name
|
||||||
|
#####################################
|
||||||
|
#PPS_DEVICENAME = /dev/pps0
|
||||||
|
|
||||||
|
#####################################
|
||||||
|
# Ignore PPS at Startup and after long outage
|
||||||
|
#####################################
|
||||||
|
#IGNORE_PPS_PULSE_COUNT = 1
|
||||||
|
|
||||||
|
#####################################
|
||||||
|
# Long GNSS RF outage in seconds
|
||||||
|
#####################################
|
||||||
|
#GNSS_OUTAGE_DURATION = 10
|
||||||
|
|
||||||
|
#####################################
|
||||||
|
# AP Clock Accuracy
|
||||||
|
#####################################
|
||||||
|
# Quality of APPS processor clock (in PPM).
|
||||||
|
# Value specified is used for calculation of
|
||||||
|
# APPS time stamp uncertainty
|
||||||
|
#AP_CLOCK_PPM = 100
|
||||||
|
|
||||||
|
#####################################
|
||||||
|
# MAX ms difference to detect missing pulse
|
||||||
|
#####################################
|
||||||
|
# Specifies time threshold in ms to validate any missing PPS pulses
|
||||||
|
#MISSING_PULSE_TIME_DELTA = 900
|
||||||
|
|
||||||
|
#####################################
|
||||||
|
# Propagation time uncertainty
|
||||||
|
#####################################
|
||||||
|
# This settings enables time uncertainty propagation
|
||||||
|
# logic incase of missing PPS pulse
|
||||||
|
#PROPAGATION_TIME_UNCERTAINTY = 1
|
||||||
|
|
||||||
|
#######################################
|
||||||
|
# APN / IP Type Configuration
|
||||||
|
# APN and IP Type to use for setting
|
||||||
|
# up WWAN call.
|
||||||
|
# Use below values for IP Type:
|
||||||
|
# v4 = 4
|
||||||
|
# v6 = 6
|
||||||
|
# v4v6 = 10
|
||||||
|
#######################################
|
||||||
|
# INTERNET_APN = abc.xyz
|
||||||
|
# INTERNET_IP_TYPE = 4
|
||||||
|
# SUPL_APN = abc.xyz
|
||||||
|
# SUPL_IP_TYPE = 4
|
||||||
|
|
||||||
|
#####################################
|
||||||
|
# Modem type
|
||||||
|
#####################################
|
||||||
|
# This setting configures modem type
|
||||||
|
# (external=0 or internal=1)
|
||||||
|
# comment out the next line to vote
|
||||||
|
# for the first modem in the list
|
||||||
|
MODEM_TYPE = 1
|
||||||
|
|
||||||
|
##################################################
|
||||||
|
# CONSTRAINED TIME UNCERTAINTY MODE
|
||||||
|
##################################################
|
||||||
|
# 0 : disabled (default)
|
||||||
|
# 1 : enabled
|
||||||
|
# This setting enables GPS engine to keep its time
|
||||||
|
# uncertainty below the specified constraint
|
||||||
|
#CONSTRAINED_TIME_UNCERTAINTY_ENABLED = 0
|
||||||
|
|
||||||
|
# If constrained time uncertainty mode is enabled,
|
||||||
|
# this setting specifies the time uncertainty
|
||||||
|
# threshold that gps engine need to maintain.
|
||||||
|
# In unit of milli-seconds.
|
||||||
|
# Default is 0.0 meaning that modem default value
|
||||||
|
# of time uncertainty threshold will be used.
|
||||||
|
#CONSTRAINED_TIME_UNCERTAINTY_THRESHOLD = 0.0
|
||||||
|
|
||||||
|
# If constrained time uncertainty mode is enabled,
|
||||||
|
# this setting specifies the power budget that
|
||||||
|
# gps engine is allowed to spend to maintain the time
|
||||||
|
# uncertainty.
|
||||||
|
# Default is 0 meaning that GPS engine is not constained
|
||||||
|
# by power budget and can spend as much power as needed.
|
||||||
|
# In unit of 0.1 milli watt second.
|
||||||
|
#CONSTRAINED_TIME_UNCERTAINTY_ENERGY_BUDGET = 0
|
||||||
|
|
||||||
|
##################################################
|
||||||
|
# POSITION ASSISTED CLOCK ESTIMATOR
|
||||||
|
##################################################
|
||||||
|
# 0 : disabled (default)
|
||||||
|
# 1 : enabled
|
||||||
|
# This setting enables GPS engine to estimate clock
|
||||||
|
# bias and drift when the signal from at least 1
|
||||||
|
# SV is available and the UE’s position is known by
|
||||||
|
# other position engines.
|
||||||
|
#POSITION_ASSISTED_CLOCK_ESTIMATOR_ENABLED = 0
|
||||||
|
|
||||||
|
#####################################
|
||||||
|
# CP_MTLR_ES
|
||||||
|
#####################################
|
||||||
|
# CP MTLR ES, 1=enable, 0=disable
|
||||||
|
#CP_MTLR_ES=0
|
||||||
|
|
||||||
|
##################################################
|
||||||
|
# GNSS_DEPLOYMENT
|
||||||
|
##################################################
|
||||||
|
# 0 : Enable QTI GNSS (default)
|
||||||
|
# 1 : Enable QCSR SS5
|
||||||
|
# This setting use to select between QTI GNSS
|
||||||
|
# and QCSR SS5 hardware receiver.
|
||||||
|
# By default QTI GNSS receiver is enabled.
|
||||||
|
# GNSS_DEPLOYMENT = 0
|
282
gps/izat.conf
Normal file
282
gps/izat.conf
Normal file
|
@ -0,0 +1,282 @@
|
||||||
|
#########################################
|
||||||
|
# Log verbosity control for izat modules
|
||||||
|
#########################################
|
||||||
|
# OFF = 0, ERROR = 1, WARNING = 2, INFO = 3, DEBUG = 4, VERBOSE = 5
|
||||||
|
IZAT_DEBUG_LEVEL = 5
|
||||||
|
|
||||||
|
##################################################
|
||||||
|
# Select WIFI Wait Timeout value in seconds for SUPL
|
||||||
|
##################################################
|
||||||
|
WIFI_WAIT_TIMEOUT_SELECT = 0
|
||||||
|
|
||||||
|
##################################################
|
||||||
|
# Time interval of injecting SRN scan data to modem
|
||||||
|
# time in seconds.
|
||||||
|
# Note: recommended value is between 1-5 sec
|
||||||
|
##################################################
|
||||||
|
LPPE_SRN_DATA_SCAN_INJECT_TIME=2
|
||||||
|
|
||||||
|
##################################################
|
||||||
|
# Identify this target as OTA updated or new
|
||||||
|
# 0 - New target
|
||||||
|
# 1 - OTA updated
|
||||||
|
##################################################
|
||||||
|
OTA_UPDATED_TARGET=0
|
||||||
|
|
||||||
|
################################
|
||||||
|
# NLP Settings
|
||||||
|
################################
|
||||||
|
# NLP_MODE 1: OSNLP Only, 2: QNP Only, 3: Combo, 4: QNP preferred
|
||||||
|
# For Automotive products, please use NLP_MODE = 4 only.
|
||||||
|
# NLP_TOLERANCE_TIME_FIRST: Time in ms used in Combo mode
|
||||||
|
# to determine how much Tolerance for first position
|
||||||
|
# NLP_TOLERANCE_TIME_AFTER: Time in ms used in Combo mode
|
||||||
|
# to determine how much Tolerance for positions after first
|
||||||
|
# NLP_THRESHOLD: Sets how many failures needed before
|
||||||
|
# switching preferred NLP in Combo mode
|
||||||
|
# NLP_ACCURACY_MULTIPLE: Determines how far off the accuracy
|
||||||
|
# must be, in multiples, between two NLP location reports to
|
||||||
|
# be considered much worse accuracy. Used in switching logic
|
||||||
|
# NLP COMBO MODE USES QNP WITH NO EULA CONSENT: Determines
|
||||||
|
# whether or not to still send network location requests to
|
||||||
|
# QNP when the EULA is not consented to by the user. QNP can
|
||||||
|
# still return ZPP locations or injected locations even
|
||||||
|
# without EULA consent, but the uncertainty can be high.
|
||||||
|
# QNP preferred mode prefers QNP when there is EULA consent,
|
||||||
|
# otherwise OSNLP is used.
|
||||||
|
NLP_MODE = 1
|
||||||
|
NLP_MODE_EMERGENCY = 2
|
||||||
|
NLP_TOLERANCE_TIME_FIRST = 5000
|
||||||
|
NLP_TOLERANCE_TIME_AFTER = 20000
|
||||||
|
NLP_THRESHOLD = 3
|
||||||
|
NLP_ACCURACY_MULTIPLE = 2
|
||||||
|
NLP_COMBO_MODE_USES_QNP_WITH_NO_EULA_CONSENT = 1
|
||||||
|
|
||||||
|
#########################################
|
||||||
|
# NLP PACKAGE SETTINGS
|
||||||
|
#########################################
|
||||||
|
# OSNLP_PACKAGE: name of default NLP package
|
||||||
|
OSNLP_PACKAGE = com.google.android.gms
|
||||||
|
# REGION_OSNLP_PACKAGE:
|
||||||
|
# This value will be used as alternative
|
||||||
|
# for particular region where default NLP is not functional.
|
||||||
|
#REGION_OSNLP_PACKAGE =
|
||||||
|
|
||||||
|
###################################
|
||||||
|
# GEOFENCE SERVICES
|
||||||
|
###################################
|
||||||
|
# If set to one of the defined values below, it will override
|
||||||
|
# the responsiveness for geofence services, which implements
|
||||||
|
# the Proximity Alert API. If not set to a value defined below,
|
||||||
|
# which is default, it will not override the responsivness.
|
||||||
|
# The geofence HAL API is unaffected by this value.
|
||||||
|
# GEOFENCE_SERVICES_RESPONSIVENESS_OVERRIDE Values:
|
||||||
|
# 1: LOW responsiveness
|
||||||
|
# 2: MEDIUM responsiveness
|
||||||
|
# 3: HIGH responsiveness
|
||||||
|
GEOFENCE_SERVICES_RESPONSIVENESS_OVERRIDE = 0
|
||||||
|
|
||||||
|
#####################################
|
||||||
|
#GTP Opt-In app
|
||||||
|
#####################################
|
||||||
|
|
||||||
|
#GTP privacy policy version url
|
||||||
|
#https support is required
|
||||||
|
GTP_PRIVACY_VERSION_URL = https://info.izatcloud.net/privacy/version.html
|
||||||
|
|
||||||
|
#GTP privacy policy version download retry interval
|
||||||
|
#unit is second. default is 86400
|
||||||
|
GTP_PRIVACY_RETRY_INTERVAL = 86400
|
||||||
|
|
||||||
|
#####################################
|
||||||
|
# IZAT PREMIUM FEATURE SETTINGS
|
||||||
|
#####################################
|
||||||
|
#Possible states of a feature:
|
||||||
|
#DISABLED
|
||||||
|
#BASIC
|
||||||
|
#PREMIUM
|
||||||
|
|
||||||
|
#GTP_MODE valid modes:
|
||||||
|
# DISABLED
|
||||||
|
# LEGACY_WWAN
|
||||||
|
# SDK (WWAN not available for Modems before LocTech 10.0)
|
||||||
|
GTP_MODE=DISABLED
|
||||||
|
|
||||||
|
#GTP_WAA valid modes:
|
||||||
|
# DISABLED
|
||||||
|
# BASIC
|
||||||
|
GTP_WAA=DISABLED
|
||||||
|
|
||||||
|
#SAP valid modes:
|
||||||
|
# DISABLED
|
||||||
|
# BASIC
|
||||||
|
# PREMIUM
|
||||||
|
# MODEM_DEFAULT
|
||||||
|
SAP=MODEM_DEFAULT
|
||||||
|
|
||||||
|
#FREE_WIFI_SCAN_INJECT valid modes:
|
||||||
|
#DISABLED
|
||||||
|
#BASIC
|
||||||
|
FREE_WIFI_SCAN_INJECT=BASIC
|
||||||
|
|
||||||
|
#SUPL_WIFI valid modes:
|
||||||
|
#DISABLED
|
||||||
|
#BASIC
|
||||||
|
SUPL_WIFI=BASIC
|
||||||
|
|
||||||
|
#WIFI_SUPPLICANT_INFO valid modes:
|
||||||
|
#DISABLED
|
||||||
|
#BASIC
|
||||||
|
WIFI_SUPPLICANT_INFO=BASIC
|
||||||
|
|
||||||
|
#####################################
|
||||||
|
# Location process launcher settings
|
||||||
|
#####################################
|
||||||
|
|
||||||
|
# DO NOT MODIFY
|
||||||
|
# Modifying below attributes without
|
||||||
|
# caution can have serious implications.
|
||||||
|
|
||||||
|
#Values for PROCESS_STATE:
|
||||||
|
# ENABLED
|
||||||
|
# DISABLED
|
||||||
|
|
||||||
|
#Values for LOW_RAM_TARGETS:
|
||||||
|
# ENABLED
|
||||||
|
# DISABLED
|
||||||
|
# Property to enable/disable processes for low ram targets. Uses ro.config.low_ram property
|
||||||
|
# to identify low ram targets.
|
||||||
|
|
||||||
|
#PROCESS_NAME
|
||||||
|
# Name of the executable file.
|
||||||
|
|
||||||
|
#FEATURE MASKS:
|
||||||
|
# GTP-WIFI 0X03
|
||||||
|
# GTP-MP-CELL 0xc00
|
||||||
|
# GTP-WAA 0x100
|
||||||
|
# SAP 0Xc0
|
||||||
|
# ODCPI 0x1000
|
||||||
|
# FREE_WIFI_SCAN_INJECT 0x2000
|
||||||
|
# SUPL_WIFI 0x4000
|
||||||
|
# WIFI_SUPPLICANT_INFO 0x8000
|
||||||
|
|
||||||
|
#Values for PLATFORMS can be:
|
||||||
|
#1. Any valid values obtained from ro.board.platform separated by single space. For example: msm8960 msm8226
|
||||||
|
#2. 'all' or 'all exclude' -> for All platforms
|
||||||
|
#3. 'all exclude XXXX' -> All platforms exclude XXXX. For example: all exclude msm8937
|
||||||
|
|
||||||
|
#Values for SOC_IDS can be:
|
||||||
|
#1. Any valid values obtained from soc_id node separated by single space. For example: 339 386 436
|
||||||
|
## soc_id value can be obtained from any one of below node:
|
||||||
|
## - /sys/devices/soc0/soc_id
|
||||||
|
## - /sys/devices/system/soc/soc0/id
|
||||||
|
#2. 'all' or 'all exclude' -> for All soc id's
|
||||||
|
#3. 'all exclude XXXX' -> All soc id's exclude XXXX. For example: all exclude 339 386
|
||||||
|
|
||||||
|
#Values for BASEBAND can be:
|
||||||
|
#1. Any valid values obtained from ro.baseband separated by single space. For example: sglte sglte2
|
||||||
|
#2. 'all' or 'all exclude' -> for all basebands
|
||||||
|
#3. 'all exclude XXXX' -> All basebands exclude XXXX. For example: all exclude sglte
|
||||||
|
PROCESS_NAME=lowi-server
|
||||||
|
PROCESS_ARGUMENT=
|
||||||
|
PROCESS_STATE=ENABLED
|
||||||
|
PROCESS_GROUPS=gps wifi inet oem_2901
|
||||||
|
PREMIUM_FEATURE=0
|
||||||
|
IZAT_FEATURE_MASK=0xf303
|
||||||
|
PLATFORMS=all
|
||||||
|
SOC_IDS=all
|
||||||
|
BASEBAND=all
|
||||||
|
LOW_RAM_TARGETS=DISABLED
|
||||||
|
HARDWARE_TYPE=all
|
||||||
|
VENDOR_ENHANCED_PROCESS=0
|
||||||
|
|
||||||
|
PROCESS_NAME=xtwifi-inet-agent
|
||||||
|
PROCESS_ARGUMENT=
|
||||||
|
PROCESS_STATE=ENABLED
|
||||||
|
PROCESS_GROUPS=inet gps
|
||||||
|
PREMIUM_FEATURE=1
|
||||||
|
IZAT_FEATURE_MASK=0xc03
|
||||||
|
PLATFORMS=all
|
||||||
|
SOC_IDS=all exclude 386 436
|
||||||
|
BASEBAND=all
|
||||||
|
LOW_RAM_TARGETS=DISABLED
|
||||||
|
HARDWARE_TYPE=all
|
||||||
|
VENDOR_ENHANCED_PROCESS=1
|
||||||
|
|
||||||
|
PROCESS_NAME=xtwifi-client
|
||||||
|
PROCESS_ARGUMENT=
|
||||||
|
PROCESS_STATE=ENABLED
|
||||||
|
PROCESS_GROUPS=wifi inet gps system oem_2904
|
||||||
|
PREMIUM_FEATURE=1
|
||||||
|
IZAT_FEATURE_MASK=0xd03
|
||||||
|
PLATFORMS=all
|
||||||
|
SOC_IDS=all exclude 386 436
|
||||||
|
BASEBAND=all
|
||||||
|
LOW_RAM_TARGETS=DISABLED
|
||||||
|
HARDWARE_TYPE=all
|
||||||
|
VENDOR_ENHANCED_PROCESS=1
|
||||||
|
|
||||||
|
PROCESS_NAME=slim_daemon
|
||||||
|
PROCESS_ARGUMENT=
|
||||||
|
PROCESS_STATE=ENABLED
|
||||||
|
PROCESS_GROUPS=gps oem_2901 can plugdev diag sensors
|
||||||
|
PREMIUM_FEATURE=1
|
||||||
|
IZAT_FEATURE_MASK=0xf0
|
||||||
|
PLATFORMS=all
|
||||||
|
SOC_IDS=all exclude 386 436
|
||||||
|
BASEBAND=all
|
||||||
|
LOW_RAM_TARGETS=DISABLED
|
||||||
|
HARDWARE_TYPE=all
|
||||||
|
VENDOR_ENHANCED_PROCESS=1
|
||||||
|
|
||||||
|
PROCESS_NAME=xtra-daemon
|
||||||
|
PROCESS_ARGUMENT=
|
||||||
|
PROCESS_STATE=ENABLED
|
||||||
|
PROCESS_GROUPS=inet gps system
|
||||||
|
PREMIUM_FEATURE=0
|
||||||
|
IZAT_FEATURE_MASK=0
|
||||||
|
PLATFORMS=all
|
||||||
|
SOC_IDS=all
|
||||||
|
BASEBAND=all
|
||||||
|
LOW_RAM_TARGETS=ENABLED
|
||||||
|
HARDWARE_TYPE=all
|
||||||
|
VENDOR_ENHANCED_PROCESS=0
|
||||||
|
|
||||||
|
########################################
|
||||||
|
# Engine Service which host DRE module #
|
||||||
|
# To enable DRE engine service, change #
|
||||||
|
# PROCESS_STATE=ENABLED #
|
||||||
|
########################################
|
||||||
|
PROCESS_NAME=engine-service
|
||||||
|
PROCESS_ARGUMENT=DRE-INT libloc_epDr.so
|
||||||
|
PROCESS_STATE=DISABLED
|
||||||
|
PROCESS_GROUPS=gps diag inet qwes oem_2901 system
|
||||||
|
PREMIUM_FEATURE=0
|
||||||
|
IZAT_FEATURE_MASK=0
|
||||||
|
PLATFORMS=all
|
||||||
|
SOC_IDS=all
|
||||||
|
BASEBAND=all
|
||||||
|
LOW_RAM_TARGETS=DISABLED
|
||||||
|
HARDWARE_TYPE=all
|
||||||
|
VENDOR_ENHANCED_PROCESS=1
|
||||||
|
|
||||||
|
########################################
|
||||||
|
# Engine Service which host PPE module #
|
||||||
|
# To enable PPE engine service, change #
|
||||||
|
# PROCESS_STATE=ENABLED #
|
||||||
|
# and update process arugements #
|
||||||
|
# with PPE library name #
|
||||||
|
#PROCESS_ARGUMENT=PPE libepsimulator.so#
|
||||||
|
########################################
|
||||||
|
PROCESS_NAME=engine-service
|
||||||
|
PROCESS_ARGUMENT=PPE libepsimulator.so
|
||||||
|
PROCESS_STATE=DISABLED
|
||||||
|
PROCESS_GROUPS=gps diag inet oem_2901
|
||||||
|
PREMIUM_FEATURE=0
|
||||||
|
IZAT_FEATURE_MASK=0
|
||||||
|
PLATFORMS=all
|
||||||
|
SOC_IDS=all
|
||||||
|
BASEBAND=all
|
||||||
|
LOW_RAM_TARGETS=DISABLED
|
||||||
|
HARDWARE_TYPE=all
|
||||||
|
VENDOR_ENHANCED_PROCESS=1
|
27
gps/lowi.conf
Normal file
27
gps/lowi.conf
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
#*====*====*====*====*====*====*====*====*====*====*====*====*====*====*====*
|
||||||
|
#
|
||||||
|
# LOWI Config file
|
||||||
|
#
|
||||||
|
# GENERAL DESCRIPTION
|
||||||
|
# This file contains the config params for LOWI
|
||||||
|
#
|
||||||
|
# Copyright (c) 2019 Qualcomm Technologies, Inc.
|
||||||
|
# All Rights Reserved.
|
||||||
|
# Confidential and Proprietary - Qualcomm Technologies, Inc.
|
||||||
|
#
|
||||||
|
# 2012-2013 Qualcomm Atheros, Inc.
|
||||||
|
# All Rights Reserved.
|
||||||
|
# Qualcomm Atheros Confidential and Proprietary.
|
||||||
|
#
|
||||||
|
# Export of this technology or software is regulated by the U.S. Government.
|
||||||
|
# Diversion contrary to U.S. law prohibited.
|
||||||
|
#=============================================================================*/
|
||||||
|
|
||||||
|
# X86 ONLY - UBUNTU:
|
||||||
|
# Copy this file in the same directory where the executable is
|
||||||
|
|
||||||
|
# Log level
|
||||||
|
# EL_LOG_OFF = 0, EL_ERROR = 1, EL_WARNING = 2, EL_INFO = 3, EL_DEBUG = 4, EL_VERBOSE = 5, EL_LOG_ALL = 100
|
||||||
|
LOWI_LOG_LEVEL = 3
|
||||||
|
LOWI_USE_LOWI_LP = 0
|
||||||
|
|
161
gps/sap.conf
Normal file
161
gps/sap.conf
Normal file
|
@ -0,0 +1,161 @@
|
||||||
|
################################
|
||||||
|
# Sensor Settings
|
||||||
|
################################
|
||||||
|
#The following parameters are optional.
|
||||||
|
#Internal defaults support MEMS sensors
|
||||||
|
#native to most handset devices.
|
||||||
|
#Device specific sensor characterization
|
||||||
|
#for improved performance is possible as
|
||||||
|
#described in SAP application notes.
|
||||||
|
#GYRO_BIAS_RANDOM_WALK=
|
||||||
|
#ACCEL_RANDOM_WALK_SPECTRAL_DENSITY=
|
||||||
|
#ANGLE_RANDOM_WALK_SPECTRAL_DENSITY=
|
||||||
|
#RATE_RANDOM_WALK_SPECTRAL_DENSITY=
|
||||||
|
#VELOCITY_RANDOM_WALK_SPECTRAL_DENSITY=
|
||||||
|
|
||||||
|
# Sensor Sampling Rate Parameters for Low-Data Rate Filter (should be greater than 0)
|
||||||
|
# used in loc_eng_reinit
|
||||||
|
SENSOR_ACCEL_BATCHES_PER_SEC=2
|
||||||
|
SENSOR_ACCEL_SAMPLES_PER_BATCH=5
|
||||||
|
SENSOR_GYRO_BATCHES_PER_SEC=2
|
||||||
|
SENSOR_GYRO_SAMPLES_PER_BATCH=5
|
||||||
|
# Sensor Sampling Rate Parameters for High-Data Rate Filter (should be greater than 0)
|
||||||
|
SENSOR_ACCEL_BATCHES_PER_SEC_HIGH=4
|
||||||
|
SENSOR_ACCEL_SAMPLES_PER_BATCH_HIGH=25
|
||||||
|
SENSOR_GYRO_BATCHES_PER_SEC_HIGH=4
|
||||||
|
SENSOR_GYRO_SAMPLES_PER_BATCH_HIGH=25
|
||||||
|
|
||||||
|
# Sensor Control Mode (0=AUTO, 1=FORCE_ON, 2=MODEM_DEFAULT)
|
||||||
|
# used in loc_eng_reinit
|
||||||
|
SENSOR_CONTROL_MODE=2
|
||||||
|
|
||||||
|
# Bit mask used to define which sensor algorithms are used.
|
||||||
|
# Setting each bit has the following definition:
|
||||||
|
# 0x1 - DISABLE_INS_POSITIONING_FILTER
|
||||||
|
# 0x0 - ENABLE_INS_POSITIONING_FILTER
|
||||||
|
SENSOR_ALGORITHM_CONFIG_MASK=0x1
|
||||||
|
|
||||||
|
#Vehicle Network Provider configuration
|
||||||
|
|
||||||
|
#Service configuration strings
|
||||||
|
#The number before colon in VN_X items defines version of the format of the rest of the string
|
||||||
|
#VN_ACCEL_CFG=0:5
|
||||||
|
#VN_GYRO_CFG=0:5.5
|
||||||
|
#VN_ODOMETRY_CFG=0:2,4.5
|
||||||
|
|
||||||
|
################################################
|
||||||
|
# QDR3 configurations #
|
||||||
|
################################################
|
||||||
|
VN_SPEED_CFG=1:131,5,8,1,2,3,1,1,9,2,14,2
|
||||||
|
VN_GEAR_CFG=1:422,20,4,0,4,1,9,0,1,2,3,4,5,6,7,8
|
||||||
|
|
||||||
|
################################################
|
||||||
|
# QDR2-Gyro configurations #
|
||||||
|
################################################
|
||||||
|
#VN_GYRO_CFG=1:555,0,1,0,0,0,0,-6.5,6.6066,-6.5,-1.00,2,6.607,6.6068,0,0,16,0.0002,0,16,0.0002,0,16,0.0002
|
||||||
|
#VN_SPEED_CFG=1:555,0,0,1,2,1,0.01,0,56,8,48,8
|
||||||
|
#VN_GEAR_CFG=1:555,16,4,0,1,1,9,0,1,2,3,4,5,6,7,8
|
||||||
|
|
||||||
|
################################################
|
||||||
|
# QDR2-DWT configurations #
|
||||||
|
################################################
|
||||||
|
#VN_SPEED_CFG=1:555,22,1,2,1,1,1,0,8,8,23,1,2,0,1,0,8,8,23,1
|
||||||
|
#VN_GEAR_CFG=1:555,12,4,16,14,16,8,1,2,3,4,5,6,7,8
|
||||||
|
#VN_DWS_CFG=1:555,0,0,1,3,1,1,0,0,8,0,0,8,8,0,0,16,8,0,0,24,8,0,0
|
||||||
|
#VN_GYRO_CFG=1:555,40,16,1.0,40,16,1.0,40,16,1.0
|
||||||
|
|
||||||
|
#####################################################################################
|
||||||
|
# VNW service batching configuration strings #
|
||||||
|
# VNW provider will initialize default type as Time based batching #
|
||||||
|
# Each service batch value is configured to be 100 #
|
||||||
|
# VN_ACCEL_CFG_BATCH_VALUE will be treated as time in Ms if VN_CFG_BATCH_TYPE #
|
||||||
|
# is set to time based batching #
|
||||||
|
# VN_ACCEL_CFG_BATCH_VALUE will be treated as sample count if VN_CFG_BATCH_TYPE #
|
||||||
|
# is set to count based batching #
|
||||||
|
# Uncomment and update batch time /sample count as per selected batching type #
|
||||||
|
#####################################################################################
|
||||||
|
# Batching type
|
||||||
|
# 1 - Time based (default)
|
||||||
|
# 2 - Count based
|
||||||
|
#VN_CFG_BATCH_TYPE=1
|
||||||
|
|
||||||
|
#Vehicle Accel batching value, it can either accept time in milli seconds or sample count
|
||||||
|
#VN_ACCEL_CFG_BATCH_VALUE=100
|
||||||
|
|
||||||
|
#Vehicle Gyro batching value, it can either accept time in milli seconds or sample count
|
||||||
|
#VN_GYRO_CFG_BATCH_VALUE=100
|
||||||
|
|
||||||
|
#Vehicle Odo batching value, it can either accept time in milli seconds or sample count
|
||||||
|
#VN_ODOMETRY_CFG_BATCH_VALUE=100
|
||||||
|
|
||||||
|
#Vehicle Speed batching value, it can either accept time in milli seconds or sample count
|
||||||
|
#VN_SPEED_CFG_BATCH_VALUE=100
|
||||||
|
|
||||||
|
#Vehicle Gear batching value, it can either accept time in milli seconds or sample count
|
||||||
|
#VN_GEAR_CFG_BATCH_VALUE=100
|
||||||
|
|
||||||
|
#Vehicle DWS batching value, it can either accept time in milli seconds or sample count
|
||||||
|
#VN_DWS_CFG_BATCH_VALUE=100
|
||||||
|
####################################################################################
|
||||||
|
|
||||||
|
#Procesors clock ratio: AP and CAN bus microcontroller
|
||||||
|
################################################
|
||||||
|
# QDR3 configurations #
|
||||||
|
################################################
|
||||||
|
VN_PROC_CLOCK_RATIO=1.0
|
||||||
|
|
||||||
|
################################################
|
||||||
|
# QDR2-DWT OR QDR2-Gyro configurations #
|
||||||
|
################################################
|
||||||
|
#VN_PROC_CLOCK_RATIO = 1.0
|
||||||
|
|
||||||
|
# Time source used by Sensor HAL
|
||||||
|
# Setting this value controls accuracy of location sensor services.
|
||||||
|
# 0 - Unknown
|
||||||
|
# 1 - CLOCK_BOOTTIME
|
||||||
|
# 2 - CLOCK_MONOTONIC
|
||||||
|
# 3 - CLOCK_REALTIME
|
||||||
|
# 4 - CLOCK_BOOTTIME using Alarm timer interface
|
||||||
|
NDK_PROVIDER_TIME_SOURCE=1
|
||||||
|
|
||||||
|
# Sensor Batching Configuration
|
||||||
|
# 0 - Time based
|
||||||
|
# 1 - Fixed count based
|
||||||
|
# 2 - Variable count based
|
||||||
|
COUNT_BASED_BATCHING=1
|
||||||
|
SYNC_ONCE=0
|
||||||
|
|
||||||
|
#Sensor HAL Provider Configuration HAL Library name including path
|
||||||
|
################################################
|
||||||
|
# #
|
||||||
|
# Configuration for BMI 160 Sensor #
|
||||||
|
# #
|
||||||
|
################################################
|
||||||
|
SENSOR_TYPE=2
|
||||||
|
SENSOR_HAL_LIB_PATH=/usr/lib/libbmi160sensors.so.1
|
||||||
|
|
||||||
|
################################################
|
||||||
|
# #
|
||||||
|
# Configuration for ASM330 Sensor #
|
||||||
|
# #
|
||||||
|
################################################
|
||||||
|
#SENSOR_TYPE=1
|
||||||
|
#SENSOR_HAL_LIB_PATH=/usr/lib/libasm330sensors.so.1
|
||||||
|
|
||||||
|
|
||||||
|
################################################
|
||||||
|
# #
|
||||||
|
# Configuration for IAM20680 Sensor #
|
||||||
|
# #
|
||||||
|
################################################
|
||||||
|
#SENSOR_TYPE=3
|
||||||
|
#SENSOR_HAL_LIB_PATH=/usr/lib/libiam20680sensors.so.1
|
||||||
|
|
||||||
|
|
||||||
|
################################################
|
||||||
|
# #
|
||||||
|
# Configuration for SMI130 Sensor #
|
||||||
|
# #
|
||||||
|
################################################
|
||||||
|
#SENSOR_TYPE=4
|
||||||
|
#SENSOR_HAL_LIB_PATH=/usr/lib/libsmi130sensors.so.1
|
78
gps/xtwifi.conf
Normal file
78
gps/xtwifi.conf
Normal file
|
@ -0,0 +1,78 @@
|
||||||
|
#GTP AP Project client core config file
|
||||||
|
#
|
||||||
|
#GENERAL DESCRIPTION
|
||||||
|
#This is used by client core
|
||||||
|
#
|
||||||
|
#Copyright (c) 2012-2014 Qualcomm Atheros, Inc.
|
||||||
|
#All Rights Reserved.
|
||||||
|
#Qualcomm Atheros Confidential and Proprietary.
|
||||||
|
#
|
||||||
|
#Copyright (c) 2017 Qualcomm Technologies, Inc.
|
||||||
|
#All Rights Reserved.
|
||||||
|
#Confidential and Proprietary - Qualcomm Technologies, Inc.
|
||||||
|
|
||||||
|
##############################################################################
|
||||||
|
# non-IOT devices configuration items #
|
||||||
|
# For non-IOT devices, configure below configuration items #
|
||||||
|
# according to the app note: 80-NK218-1 and remove the configuration items #
|
||||||
|
# in section of "IOT devices configuration items". #
|
||||||
|
##############################################################################
|
||||||
|
|
||||||
|
# ASN URI v2 to be used by some GTP AP modules that
|
||||||
|
# need to run with ASN URI v2 protocol.
|
||||||
|
XT_SERVER_ROOT_URL = https://gtp1.izatcloud.net:443/uds/v2
|
||||||
|
|
||||||
|
# ASN URI v3 to be used by GTP AP modules that
|
||||||
|
# can support ASN URI v3 protocol.
|
||||||
|
XT_SERVER_ROOT_URL_V3 = https://gtp1.izatcloud.net:443/uds/v3
|
||||||
|
|
||||||
|
# size, in bytes, of the cache on device
|
||||||
|
SIZE_BYTE_TOTAL_CACHE = 5000000
|
||||||
|
|
||||||
|
##############################################################################
|
||||||
|
# IOT devices configuration items #
|
||||||
|
# For IOT devices, configure below configuration items #
|
||||||
|
# according to the app note and remove the configuration items in section of #
|
||||||
|
# "non-IOT devices configuration items". #
|
||||||
|
##############################################################################
|
||||||
|
|
||||||
|
# ASN URI v3 to be used by GTP AP modules that
|
||||||
|
# can support ASN URI v3 protocol.
|
||||||
|
# XT_SERVER_ROOT_URL_V3 = https://gtpma1.izatcloud.net:443/uds/v3
|
||||||
|
|
||||||
|
# 3: Wi-Fi APDB injection via Izat SDK. GTP server is not accessed
|
||||||
|
# for any GTP requests, instead notification is sent to Izat SDK.
|
||||||
|
# WiFi crowdsourcing module is disabled.
|
||||||
|
# 4: Wi-Fi APDB injection via Izat SDK. GTP server is not accessed
|
||||||
|
# for any GTP requests, instead notification is sent to Izat SDK.
|
||||||
|
# WiFi crowdsourcing module is active, also accessed via Izat SDK.
|
||||||
|
# GTP_AP_MODE = 4
|
||||||
|
|
||||||
|
# 1: MP cell features relies on GTP AP for either download or upload
|
||||||
|
# 0: MP cell features does not rely on GTP AP
|
||||||
|
# GTP_AP_NEEDED_BY_MP_CELL = 1
|
||||||
|
|
||||||
|
##############################################################################
|
||||||
|
# Configuration items applicable to all devices #
|
||||||
|
##############################################################################
|
||||||
|
|
||||||
|
# Log verbosity control for most of the GTP WiFi system, including native and
|
||||||
|
# Java componenets
|
||||||
|
# OFF = 0, ERROR = 1, WARNING = 2, INFO = 3, DEBUG = 4, VERBOSE = 5, ALL = 100
|
||||||
|
DEBUG_GLOBAL_LOG_LEVEL = 2
|
||||||
|
|
||||||
|
# this is used at the server side to distinguish uploads from different maker/model
|
||||||
|
# default "Qualcomm"
|
||||||
|
OEM_ID_IN_REQUEST_TO_SERVER = "Qualcomm"
|
||||||
|
|
||||||
|
# this is used at the server side to distinguish uploads from different maker/model
|
||||||
|
# default "UNKNOWN"
|
||||||
|
MODEL_ID_IN_REQUEST_TO_SERVER = "UNKNOWN"
|
||||||
|
|
||||||
|
##############################################################################
|
||||||
|
# Qualcomm Network Location Provider config #
|
||||||
|
##############################################################################
|
||||||
|
|
||||||
|
# Accuracy Threshold for NLP position. Position exceeds thsi threshold will be filtered out.
|
||||||
|
# Default is 25000 meters.
|
||||||
|
LARGE_ACCURACY_THRESHOLD_TO_FILTER_NLP_POSITION = 25000
|
16
idc/uinput-fpc.idc
Normal file
16
idc/uinput-fpc.idc
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
#
|
||||||
|
# FPC1020 Touch sensor driver
|
||||||
|
#
|
||||||
|
# Copyright (c) 2013,2014 Fingerprint Cards AB <tech@fingerprints.com>
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or
|
||||||
|
# modify it under the terms of the GNU General Public License Version 2
|
||||||
|
# as published by the Free Software Foundation.
|
||||||
|
#
|
||||||
|
|
||||||
|
device.internal = 1
|
||||||
|
|
||||||
|
keyboard.layout = uinput-fpc
|
||||||
|
keyboard.builtIn = 1
|
||||||
|
keyboard.orientationAware = 1
|
||||||
|
|
34
keylayout/gpio-keys.kl
Normal file
34
keylayout/gpio-keys.kl
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
# Copyright (c) 2013, The Linux Foundation. All rights reserved.
|
||||||
|
#
|
||||||
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
# modification, are permitted provided that the following conditions are
|
||||||
|
# met:
|
||||||
|
# * Redistributions of source code must retain the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer.
|
||||||
|
# * Redistributions in binary form must reproduce the above
|
||||||
|
# copyright notice, this list of conditions and the following
|
||||||
|
# disclaimer in the documentation and/or other materials provided
|
||||||
|
# with the distribution.
|
||||||
|
# * Neither the name of The Linux Foundation nor the names of its
|
||||||
|
# contributors may be used to endorse or promote products derived
|
||||||
|
# from this software without specific prior written permission.
|
||||||
|
#
|
||||||
|
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
|
||||||
|
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
|
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
|
||||||
|
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
|
||||||
|
# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||||
|
# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||||
|
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
||||||
|
# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||||
|
# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
key 115 VOLUME_UP
|
||||||
|
key 114 VOLUME_DOWN
|
||||||
|
key 102 HOME
|
||||||
|
key 217 ASSIST
|
||||||
|
key 528 FOCUS
|
||||||
|
key 766 CAMERA
|
||||||
|
key 158 BACK
|
15
keylayout/uinput-fpc.kl
Normal file
15
keylayout/uinput-fpc.kl
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
#
|
||||||
|
# FPC1020 Touch sensor driver
|
||||||
|
#
|
||||||
|
# Copyright (c) 2013,2014 Fingerprint Cards AB <tech@fingerprints.com>
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or
|
||||||
|
# modify it under the terms of the GNU General Public License Version 2
|
||||||
|
# as published by the Free Software Foundation.
|
||||||
|
#
|
||||||
|
|
||||||
|
# fpc1020 "finger present"
|
||||||
|
key 618 SYSTEM_NAVIGATION_DOWN
|
||||||
|
key 619 SYSTEM_NAVIGATION_UP
|
||||||
|
key 620 SYSTEM_NAVIGATION_RIGHT
|
||||||
|
key 621 SYSTEM_NAVIGATION_LEFT
|
23
lineage_guamp.mk
Normal file
23
lineage_guamp.mk
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
# Inherit from those products. Most specific first.
|
||||||
|
$(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit.mk)
|
||||||
|
$(call inherit-product, $(SRC_TARGET_DIR)/product/full_base_telephony.mk)
|
||||||
|
|
||||||
|
# Inherit some common Lineage stuff
|
||||||
|
$(call inherit-product, vendor/lineage/config/common_full_phone.mk)
|
||||||
|
|
||||||
|
# Inherit from guamp device
|
||||||
|
$(call inherit-product, $(LOCAL_PATH)/device.mk)
|
||||||
|
|
||||||
|
PRODUCT_BRAND := motorola
|
||||||
|
PRODUCT_DEVICE := guamp
|
||||||
|
PRODUCT_MANUFACTURER := motorola
|
||||||
|
PRODUCT_NAME := lineage_guamp
|
||||||
|
PRODUCT_MODEL := moto g(9) play
|
||||||
|
|
||||||
|
PRODUCT_GMS_CLIENTID_BASE := android-motorola
|
||||||
|
TARGET_VENDOR := motorola
|
||||||
|
TARGET_VENDOR_PRODUCT_NAME := guamp
|
||||||
|
PRODUCT_BUILD_PROP_OVERRIDES += PRIVATE_BUILD_DESC="msi-user 10 QP1A.191005.002 b961a release-keys"
|
||||||
|
|
||||||
|
# Set BUILD_FINGERPRINT variable to be picked up by both system and vendor build.prop
|
||||||
|
BUILD_FINGERPRINT := motorola/msi/msi:10/QP1A.191005.002/b961a:user/release-keys
|
800
manifest.xml
Normal file
800
manifest.xml
Normal file
|
@ -0,0 +1,800 @@
|
||||||
|
<!--
|
||||||
|
Input:
|
||||||
|
manifest.xml
|
||||||
|
manifest_ab.xml
|
||||||
|
manifest.xml
|
||||||
|
manifest.xml
|
||||||
|
manifest_IMoto_Fingerprint.xml
|
||||||
|
-->
|
||||||
|
<manifest version="1.0" type="device" target-level="4">
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>android.hardware.audio</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>5.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IDevicesFactory</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@5.0::IDevicesFactory/default</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>android.hardware.audio.effect</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>5.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IEffectsFactory</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@5.0::IEffectsFactory/default</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>android.hardware.biometrics.fingerprint</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>2.1</version>
|
||||||
|
<interface>
|
||||||
|
<name>IBiometricsFingerprint</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@2.1::IBiometricsFingerprint/default</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>android.hardware.bluetooth</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IBluetoothHci</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@1.0::IBluetoothHci/default</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>android.hardware.bluetooth.audio</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>2.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IBluetoothAudioProvidersFactory</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@2.0::IBluetoothAudioProvidersFactory/default</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>android.hardware.boot</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IBootControl</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@1.0::IBootControl/default</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>android.hardware.camera.provider</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>2.4</version>
|
||||||
|
<interface>
|
||||||
|
<name>ICameraProvider</name>
|
||||||
|
<instance>legacy/0</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@2.4::ICameraProvider/legacy/0</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>android.hardware.configstore</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>1.1</version>
|
||||||
|
<interface>
|
||||||
|
<name>ISurfaceFlingerConfigs</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@1.1::ISurfaceFlingerConfigs/default</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>android.hardware.drm</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>ICryptoFactory</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
<interface>
|
||||||
|
<name>IDrmFactory</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@1.0::ICryptoFactory/default</fqname>
|
||||||
|
<fqname>@1.0::IDrmFactory/default</fqname>
|
||||||
|
<fqname>@1.2::ICryptoFactory/clearkey</fqname>
|
||||||
|
<fqname>@1.2::ICryptoFactory/widevine</fqname>
|
||||||
|
<fqname>@1.2::IDrmFactory/clearkey</fqname>
|
||||||
|
<fqname>@1.2::IDrmFactory/widevine</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>android.hardware.gatekeeper</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IGatekeeper</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@1.0::IGatekeeper/default</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>android.hardware.health</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>2.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IHealth</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@2.0::IHealth/default</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>android.hardware.keymaster</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>4.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IKeymasterDevice</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@4.0::IKeymasterDevice/default</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>android.hardware.light</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>2.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>ILight</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@2.0::ILight/default</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>android.hardware.media.omx</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IOmx</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
<interface>
|
||||||
|
<name>IOmxStore</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@1.0::IOmx/default</fqname>
|
||||||
|
<fqname>@1.0::IOmxStore/default</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>android.hardware.memtrack</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IMemtrack</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@1.0::IMemtrack/default</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>android.hardware.neuralnetworks</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>1.2</version>
|
||||||
|
<interface>
|
||||||
|
<name>IDevice</name>
|
||||||
|
<instance>qti-default</instance>
|
||||||
|
<instance>qti-dsp</instance>
|
||||||
|
<instance>qti-gpu</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@1.2::IDevice/qti-default</fqname>
|
||||||
|
<fqname>@1.2::IDevice/qti-dsp</fqname>
|
||||||
|
<fqname>@1.2::IDevice/qti-gpu</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>android.hardware.nfc</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>1.2</version>
|
||||||
|
<interface>
|
||||||
|
<name>INfc</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@1.2::INfc/default</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>android.hardware.power</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>1.2</version>
|
||||||
|
<interface>
|
||||||
|
<name>IPower</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@1.2::IPower/default</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>android.hardware.radio</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<fqname>@1.2::ISap/slot1</fqname>
|
||||||
|
<fqname>@1.2::ISap/slot2</fqname>
|
||||||
|
<fqname>@1.4::IRadio/slot1</fqname>
|
||||||
|
<fqname>@1.4::IRadio/slot2</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>android.hardware.radio.config</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>1.1</version>
|
||||||
|
<interface>
|
||||||
|
<name>IRadioConfig</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@1.1::IRadioConfig/default</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>android.hardware.renderscript</name>
|
||||||
|
<transport arch="32+64">passthrough</transport>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IDevice</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@1.0::IDevice/default</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>android.hardware.secure_element</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>ISecureElement</name>
|
||||||
|
<instance>SIM1</instance>
|
||||||
|
<instance>SIM2</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@1.0::ISecureElement/SIM1</fqname>
|
||||||
|
<fqname>@1.0::ISecureElement/SIM2</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>android.hardware.sensors</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>ISensors</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@1.0::ISensors/default</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>android.hardware.soundtrigger</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>2.2</version>
|
||||||
|
<interface>
|
||||||
|
<name>ISoundTriggerHw</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@2.2::ISoundTriggerHw/default</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>android.hardware.tetheroffload.config</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IOffloadConfig</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@1.0::IOffloadConfig/default</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>android.hardware.tetheroffload.control</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IOffloadControl</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@1.0::IOffloadControl/default</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>android.hardware.thermal</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IThermal</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@1.0::IThermal/default</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>android.hardware.vibrator</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IVibrator</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@1.0::IVibrator/default</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>android.hardware.wifi</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>1.3</version>
|
||||||
|
<interface>
|
||||||
|
<name>IWifi</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@1.3::IWifi/default</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>android.hardware.wifi.hostapd</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>1.1</version>
|
||||||
|
<interface>
|
||||||
|
<name>IHostapd</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@1.1::IHostapd/default</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>android.hardware.wifi.supplicant</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>1.2</version>
|
||||||
|
<interface>
|
||||||
|
<name>ISupplicant</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@1.2::ISupplicant/default</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>com.motorola.hardware.biometric.fingerprint</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IMotoFingerPrint</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@1.0::IMotoFingerPrint/default</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>com.motorola.hardware.display.panel</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IDisplayPanel</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@1.0::IDisplayPanel/default</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>com.qualcomm.qti.dpm.api</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IdpmQmi</name>
|
||||||
|
<instance>dpmQmiService</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@1.0::IdpmQmi/dpmQmiService</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>com.qualcomm.qti.imscmservice</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>2.2</version>
|
||||||
|
<interface>
|
||||||
|
<name>IImsCmService</name>
|
||||||
|
<instance>qti.ims.connectionmanagerservice</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@2.2::IImsCmService/qti.ims.connectionmanagerservice</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>com.qualcomm.qti.uceservice</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>2.1</version>
|
||||||
|
<interface>
|
||||||
|
<name>IUceService</name>
|
||||||
|
<instance>com.qualcomm.qti.uceservice</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@2.1::IUceService/com.qualcomm.qti.uceservice</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>motorola.hardware.camera.imgtuner</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IImageTuning</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@1.0::IImageTuning/default</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>motorola.hardware.health</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>2.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IMotHealth</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@2.0::IMotHealth/default</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>motorola.hardware.vibrator</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IMotVibrator</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@1.0::IMotVibrator/default</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>motorola.hardware.wifi.supplicant</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>ISupplicantMot</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@1.0::ISupplicantMot/default</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>vendor.qti.data.factory</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>2.1</version>
|
||||||
|
<interface>
|
||||||
|
<name>IFactory</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@2.1::IFactory/default</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>vendor.qti.hardware.alarm</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IAlarm</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@1.0::IAlarm/default</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>vendor.qti.hardware.bluetooth_audio</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>2.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IBluetoothAudioProvidersFactory</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@2.0::IBluetoothAudioProvidersFactory/default</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>vendor.qti.hardware.bluetooth_sar</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IBluetoothSar</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@1.0::IBluetoothSar/default</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>vendor.qti.hardware.btconfigstore</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IBTConfigStore</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@1.0::IBTConfigStore/default</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>vendor.qti.hardware.cacert</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IService</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@1.0::IService/default</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>vendor.qti.hardware.camera.postproc</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IPostProcService</name>
|
||||||
|
<instance>camerapostprocservice</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@1.0::IPostProcService/camerapostprocservice</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>vendor.qti.hardware.capabilityconfigstore</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>ICapabilityConfigStore</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@1.0::ICapabilityConfigStore/default</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>vendor.qti.hardware.data.connection</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>1.1</version>
|
||||||
|
<interface>
|
||||||
|
<name>IDataConnection</name>
|
||||||
|
<instance>slot1</instance>
|
||||||
|
<instance>slot2</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@1.1::IDataConnection/slot1</fqname>
|
||||||
|
<fqname>@1.1::IDataConnection/slot2</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>vendor.qti.hardware.data.latency</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>ILinkLatency</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@1.0::ILinkLatency/default</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>vendor.qti.hardware.factory</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>1.1</version>
|
||||||
|
<interface>
|
||||||
|
<name>IFactory</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@1.1::IFactory/default</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>vendor.qti.hardware.fm</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IFmHci</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@1.0::IFmHci/default</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>vendor.qti.hardware.iop</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>2.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IIop</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@2.0::IIop/default</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>vendor.qti.hardware.perf</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>2.1</version>
|
||||||
|
<interface>
|
||||||
|
<name>IPerf</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@2.1::IPerf/default</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>vendor.qti.hardware.qseecom</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IQSEECom</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@1.0::IQSEECom/default</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>vendor.qti.hardware.qteeconnector</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IAppConnector</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
<interface>
|
||||||
|
<name>IGPAppConnector</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@1.0::IAppConnector/default</fqname>
|
||||||
|
<fqname>@1.0::IGPAppConnector/default</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>vendor.qti.hardware.radio.am</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IQcRilAudio</name>
|
||||||
|
<instance>slot1</instance>
|
||||||
|
<instance>slot2</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@1.0::IQcRilAudio/slot1</fqname>
|
||||||
|
<fqname>@1.0::IQcRilAudio/slot2</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>vendor.qti.hardware.radio.ims</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>1.6</version>
|
||||||
|
<interface>
|
||||||
|
<name>IImsRadio</name>
|
||||||
|
<instance>imsradio0</instance>
|
||||||
|
<instance>imsradio1</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@1.6::IImsRadio/imsradio0</fqname>
|
||||||
|
<fqname>@1.6::IImsRadio/imsradio1</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>vendor.qti.hardware.radio.lpa</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IUimLpa</name>
|
||||||
|
<instance>UimLpa0</instance>
|
||||||
|
<instance>UimLpa1</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@1.0::IUimLpa/UimLpa0</fqname>
|
||||||
|
<fqname>@1.0::IUimLpa/UimLpa1</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>vendor.qti.hardware.radio.qcrilhook</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IQtiOemHook</name>
|
||||||
|
<instance>oemhook0</instance>
|
||||||
|
<instance>oemhook1</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@1.0::IQtiOemHook/oemhook0</fqname>
|
||||||
|
<fqname>@1.0::IQtiOemHook/oemhook1</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>vendor.qti.hardware.radio.qtiradio</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IQtiRadio</name>
|
||||||
|
<instance>slot1</instance>
|
||||||
|
<instance>slot2</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@1.0::IQtiRadio/slot1</fqname>
|
||||||
|
<fqname>@1.0::IQtiRadio/slot2</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>vendor.qti.hardware.radio.qtiradio</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>2.4</version>
|
||||||
|
<interface>
|
||||||
|
<name>IQtiRadio</name>
|
||||||
|
<instance>slot1</instance>
|
||||||
|
<instance>slot2</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@2.4::IQtiRadio/slot1</fqname>
|
||||||
|
<fqname>@2.4::IQtiRadio/slot2</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>vendor.qti.hardware.radio.uim</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>1.2</version>
|
||||||
|
<interface>
|
||||||
|
<name>IUim</name>
|
||||||
|
<instance>Uim0</instance>
|
||||||
|
<instance>Uim1</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@1.2::IUim/Uim0</fqname>
|
||||||
|
<fqname>@1.2::IUim/Uim1</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>vendor.qti.hardware.radio.uim_remote_client</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IUimRemoteServiceClient</name>
|
||||||
|
<instance>uimRemoteClient0</instance>
|
||||||
|
<instance>uimRemoteClient1</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@1.0::IUimRemoteServiceClient/uimRemoteClient0</fqname>
|
||||||
|
<fqname>@1.0::IUimRemoteServiceClient/uimRemoteClient1</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>vendor.qti.hardware.radio.uim_remote_server</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IUimRemoteServiceServer</name>
|
||||||
|
<instance>uimRemoteServer0</instance>
|
||||||
|
<instance>uimRemoteServer1</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@1.0::IUimRemoteServiceServer/uimRemoteServer0</fqname>
|
||||||
|
<fqname>@1.0::IUimRemoteServiceServer/uimRemoteServer1</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>vendor.qti.hardware.sensorscalibrate</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>ISensorsCalibrate</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@1.0::ISensorsCalibrate/default</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>vendor.qti.hardware.servicetracker</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>1.1</version>
|
||||||
|
<interface>
|
||||||
|
<name>IServicetracker</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@1.1::IServicetracker/default</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>vendor.qti.hardware.soter</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>ISoter</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@1.0::ISoter/default</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>vendor.qti.hardware.tui_comm</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>ITuiComm</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@1.0::ITuiComm/default</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>vendor.qti.hardware.wifi.hostapd</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>1.1</version>
|
||||||
|
<interface>
|
||||||
|
<name>IHostapdVendor</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@1.1::IHostapdVendor/default</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>vendor.qti.hardware.wifi.supplicant</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>2.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>ISupplicantVendor</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@2.0::ISupplicantVendor/default</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>vendor.qti.hardware.wifi.wifilearner</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IWifiStats</name>
|
||||||
|
<instance>wifiStats</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@1.0::IWifiStats/wifiStats</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>vendor.qti.ims.callinfo</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>1.0</version>
|
||||||
|
<interface>
|
||||||
|
<name>IService</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@1.0::IService/default</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl">
|
||||||
|
<name>vendor.qti.imsrtpservice</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
<version>2.1</version>
|
||||||
|
<interface>
|
||||||
|
<name>IRTPService</name>
|
||||||
|
<instance>imsrtpservice</instance>
|
||||||
|
</interface>
|
||||||
|
<fqname>@2.1::IRTPService/imsrtpservice</fqname>
|
||||||
|
</hal>
|
||||||
|
<hal format="hidl" override="true">
|
||||||
|
<name>vendor.qti.power.pasrmanager</name>
|
||||||
|
<transport>hwbinder</transport>
|
||||||
|
</hal>
|
||||||
|
<sepolicy>
|
||||||
|
<version>29.0</version>
|
||||||
|
</sepolicy>
|
||||||
|
</manifest>
|
345
media/media_codecs.xml
Normal file
345
media/media_codecs.xml
Normal file
|
@ -0,0 +1,345 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Copyright (C) 2012-2020 The Linux Foundation. All rights reserved.
|
||||||
|
Not a contribution.
|
||||||
|
Copyright (C) 2012-2013 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.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!--
|
||||||
|
<!DOCTYPE MediaCodecs [
|
||||||
|
<!ELEMENT Include EMPTY>
|
||||||
|
<!ATTLIST Include href CDATA #REQUIRED>
|
||||||
|
<!ELEMENT MediaCodecs (Decoders|Encoders|Include)*>
|
||||||
|
<!ELEMENT Decoders (MediaCodec|Include)*>
|
||||||
|
<!ELEMENT Encoders (MediaCodec|Include)*>
|
||||||
|
<!ELEMENT MediaCodec (Type|Quirk|Include)*>
|
||||||
|
<!ATTLIST MediaCodec name CDATA #REQUIRED>
|
||||||
|
<!ATTLIST MediaCodec type CDATA>
|
||||||
|
<!ELEMENT Type EMPTY>
|
||||||
|
<!ATTLIST Type name CDATA #REQUIRED>
|
||||||
|
<!ELEMENT Quirk EMPTY>
|
||||||
|
<!ATTLIST Quirk name CDATA #REQUIRED>
|
||||||
|
]>
|
||||||
|
|
||||||
|
There's a simple and a complex syntax to declare the availability of a
|
||||||
|
media codec:
|
||||||
|
|
||||||
|
A codec that properly follows the OpenMax spec and therefore doesn't have any
|
||||||
|
quirks and that only supports a single content type can be declared like so:
|
||||||
|
|
||||||
|
<MediaCodec name="OMX.foo.bar" type="something/interesting" />
|
||||||
|
|
||||||
|
If a codec has quirks OR supports multiple content types, the following syntax
|
||||||
|
can be used:
|
||||||
|
|
||||||
|
<MediaCodec name="OMX.foo.bar" >
|
||||||
|
<Type name="something/interesting" />
|
||||||
|
<Type name="something/else" />
|
||||||
|
...
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Quirk name="output-buffers-are-unreadable" />
|
||||||
|
</MediaCodec>
|
||||||
|
|
||||||
|
Only the three quirks included above are recognized at this point:
|
||||||
|
|
||||||
|
"requires-allocate-on-input-ports"
|
||||||
|
must be advertised if the component does not properly support specification
|
||||||
|
of input buffers using the OMX_UseBuffer(...) API but instead requires
|
||||||
|
OMX_AllocateBuffer to be used.
|
||||||
|
|
||||||
|
"requires-allocate-on-output-ports"
|
||||||
|
must be advertised if the component does not properly support specification
|
||||||
|
of output buffers using the OMX_UseBuffer(...) API but instead requires
|
||||||
|
OMX_AllocateBuffer to be used.
|
||||||
|
|
||||||
|
"output-buffers-are-unreadable"
|
||||||
|
must be advertised if the emitted output buffers of a decoder component
|
||||||
|
are not readable, i.e. use a custom format even though abusing one of
|
||||||
|
the official OMX colorspace constants.
|
||||||
|
Clients of such decoders will not be able to access the decoded data,
|
||||||
|
naturally making the component much less useful. The only use for
|
||||||
|
a component with this quirk is to render the output to the screen.
|
||||||
|
Audio decoders MUST NOT advertise this quirk.
|
||||||
|
Video decoders that advertise this quirk must be accompanied by a
|
||||||
|
corresponding color space converter for thumbnail extraction,
|
||||||
|
matching surfaceflinger support that can render the custom format to
|
||||||
|
a texture and possibly other code, so just DON'T USE THIS QUIRK.
|
||||||
|
|
||||||
|
|
||||||
|
-->
|
||||||
|
<!--
|
||||||
|
Non-Secure decoder capabilities
|
||||||
|
(MB is defined as 16x16)
|
||||||
|
|
||||||
|
_______________________________________________________
|
||||||
|
| Codec | W H fps Mbps MB/s |
|
||||||
|
|_____________|_________________________________________|
|
||||||
|
| h264 | 1920 1088 60 60 489600 |
|
||||||
|
| hevc | 1920 1080 60 60 489600 |
|
||||||
|
| vp9 | 1920 1088 60 60 489600 |
|
||||||
|
| mpeg4-sw | 1920 1088 30 40 244800 |
|
||||||
|
| h263-sw | 864 480 30 16 48600 |
|
||||||
|
|_____________|_________________________________________|
|
||||||
|
|
||||||
|
Secure decoder capabilities
|
||||||
|
(MB is defined as 16x16)
|
||||||
|
|
||||||
|
_____________________________________________________
|
||||||
|
| Codec | W H fps Mbps MB/s |
|
||||||
|
|__________|_________________________________________|
|
||||||
|
| h264 | 1920 1088 60 35 489600 |
|
||||||
|
| vp9 | 1920 1088 60 35 489600 |
|
||||||
|
| hevc | 1920 1088 60 35 489600 |
|
||||||
|
|__________|_________________________________________|
|
||||||
|
|
||||||
|
|
||||||
|
Non-Secure encoder capabilities (Secure not supported)
|
||||||
|
(MB is defined as 16x16)
|
||||||
|
|
||||||
|
______________________________________________________
|
||||||
|
| Codec | W H fps Mbps MB/s |
|
||||||
|
|__________|_________________________________________|
|
||||||
|
| h264 | 1920 1088 60 60 489600 |
|
||||||
|
| hevc | 1920 1088 60 60 489600 |
|
||||||
|
| mpeg4-sw | 864 480 30 8 48600 |
|
||||||
|
| h263-sw | 864 480 30 2 48600 |
|
||||||
|
|__________|_________________________________________|
|
||||||
|
-->
|
||||||
|
|
||||||
|
<MediaCodecs>
|
||||||
|
<Include href="media_codecs_google_audio.xml" />
|
||||||
|
<Include href="media_codecs_google_telephony.xml" />
|
||||||
|
<Settings>
|
||||||
|
<Setting name="max-video-encoder-input-buffers" value="11" />
|
||||||
|
</Settings>
|
||||||
|
<Encoders>
|
||||||
|
<!-- Video Hardware -->
|
||||||
|
<MediaCodec name="OMX.qcom.video.encoder.avc" type="video/avc" >
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Quirk name="requires-loaded-to-idle-after-allocation" />
|
||||||
|
<Limit name="size" min="128x128" max="1920x1088" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="blocks-per-second" min="36" max="489600" />
|
||||||
|
<Limit name="bitrate" range="1-60000000" />
|
||||||
|
<Limit name="frame-rate" range="1-120" />
|
||||||
|
<Limit name="concurrent-instances" max="16" />
|
||||||
|
<Limit name="performance-point-1920x1080" value="60" />
|
||||||
|
<Limit name="performance-point-1280x720" value="120" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.qcom.video.encoder.hevc" type="video/hevc" >
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Quirk name="requires-loaded-to-idle-after-allocation" />
|
||||||
|
<Limit name="size" min="128x128" max="1920x1088" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="blocks-per-second" min="36" max="489600" />
|
||||||
|
<Limit name="bitrate" range="1-60000000" />
|
||||||
|
<Limit name="frame-rate" range="1-120" />
|
||||||
|
<Limit name="concurrent-instances" max="16" />
|
||||||
|
<Limit name="quality" range="0-100" default="80" />
|
||||||
|
<Feature name="bitrate-modes" value="VBR,CBR" />
|
||||||
|
<Limit name="performance-point-1920x1080" value="60" />
|
||||||
|
<Limit name="performance-point-1280x720" value="120" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.qcom.video.encoder.hevc.cq" type="video/hevc" >
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Quirk name="requires-loaded-to-idle-after-allocation" />
|
||||||
|
<Limit name="size" min="512x512" max="512x512" />
|
||||||
|
<Limit name="frame-rate" range="1-20" />
|
||||||
|
<Limit name="concurrent-instances" max="16" />
|
||||||
|
<Limit name="quality" range="0-100" default="80" />
|
||||||
|
<Feature name="bitrate-modes" value="CQ" />
|
||||||
|
<Limit name="performance-point-512x512" value="2025" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.qcom.video.encoder.heic" type="image/vnd.android.heic" >
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Quirk name="requires-loaded-to-idle-after-allocation" />
|
||||||
|
<Limit name="size" min="512x512" max="8192x8192" />
|
||||||
|
<Limit name="frame-rate" range="1-20" />
|
||||||
|
<Limit name="concurrent-instances" max="6" />
|
||||||
|
<Limit name="quality" range="0-100" default="80" />
|
||||||
|
<Feature name="bitrate-modes" value="CQ" />
|
||||||
|
<Limit name="performance-point-8192x4320" value="3" />
|
||||||
|
<Limit name="performance-point-1920x1080" value="6" />
|
||||||
|
</MediaCodec>
|
||||||
|
<!-- Video Software -->
|
||||||
|
<MediaCodec name="OMX.qcom.video.encoder.h263sw" type="video/3gpp" >
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Quirk name="requires-loaded-to-idle-after-allocation" />
|
||||||
|
<Limit name="size" min="96x96" max="864x480" />
|
||||||
|
<Limit name="alignment" value="4x4" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="blocks-per-second" min="36" max="48600" />
|
||||||
|
<Limit name="bitrate" range="1-2000000" />
|
||||||
|
<Limit name="frame-rate" range="1-30" />
|
||||||
|
<Limit name="concurrent-instances" max="3" />
|
||||||
|
<Limit name="performance-point-720x480" value="30" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.qcom.video.encoder.mpeg4sw" type="video/mp4v-es" >
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Quirk name="requires-loaded-to-idle-after-allocation" />
|
||||||
|
<Limit name="size" min="96x96" max="864x480" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="blocks-per-second" min="36" max="48600" />
|
||||||
|
<Limit name="bitrate" range="1-8000000" />
|
||||||
|
<Limit name="frame-rate" range="1-30" />
|
||||||
|
<Limit name="concurrent-instances" max="3" />
|
||||||
|
<Limit name="performance-point-720x480" value="30" />
|
||||||
|
</MediaCodec>
|
||||||
|
</Encoders>
|
||||||
|
<Decoders>
|
||||||
|
<!-- Video Hardware -->
|
||||||
|
<MediaCodec name="OMX.qcom.video.decoder.avc" type="video/avc" >
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Limit name="size" min="128x128" max="1920x1088" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="blocks-per-second" min="36" max="489600" />
|
||||||
|
<Limit name="bitrate" range="1-60000000" />
|
||||||
|
<Limit name="frame-rate" range="1-120" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
<Limit name="concurrent-instances" max="16" />
|
||||||
|
<Limit name="performance-point-1920x1080" value="60" />
|
||||||
|
<Limit name="performance-point-1280x720" value="120" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.qcom.video.decoder.avc.secure" type="video/avc" >
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Limit name="size" min="128x128" max="1920x1088" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="blocks-per-second" min="36" max="489600" />
|
||||||
|
<Limit name="bitrate" range="1-35000000" />
|
||||||
|
<Limit name="frame-rate" range="1-60" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
<Feature name="secure-playback" required="true" />
|
||||||
|
<Limit name="concurrent-instances" max="3" />
|
||||||
|
<Limit name="performance-point-1920x1080" value="30" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.qcom.video.decoder.vp9" type="video/x-vnd.on2.vp9" >
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Limit name="size" min="128x128" max="1920x1088" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="blocks-per-second" min="36" max="489600" />
|
||||||
|
<Limit name="bitrate" range="1-60000000" />
|
||||||
|
<Limit name="frame-rate" range="1-120" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
<Limit name="concurrent-instances" max="6" />
|
||||||
|
<Limit name="performance-point-1920x1080" value="60" />
|
||||||
|
<Limit name="performance-point-1280x720" value="120" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.qcom.video.decoder.vp9.secure" type="video/x-vnd.on2.vp9" >
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Limit name="size" min="128x128" max="1920x1088" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="blocks-per-second" min="36" max="489600" />
|
||||||
|
<Limit name="bitrate" range="1-35000000" />
|
||||||
|
<Limit name="frame-rate" range="1-60" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
<Feature name="secure-playback" required="true" />
|
||||||
|
<Limit name="concurrent-instances" max="3" />
|
||||||
|
<Limit name="performance-point-1920x1080" value="30" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.qcom.video.decoder.hevc" type="video/hevc" >
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Limit name="size" min="128x128" max="1920x1088" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="blocks-per-second" min="36" max="489600" />
|
||||||
|
<Limit name="bitrate" range="1-60000000" />
|
||||||
|
<Limit name="frame-rate" range="1-120" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
<Limit name="concurrent-instances" max="16" />
|
||||||
|
<Limit name="performance-point-1920x1080" value="60" />
|
||||||
|
<Limit name="performance-point-1280x720" value="120" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.qcom.video.decoder.hevc.secure" type="video/hevc" >
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Limit name="size" min="128x128" max="1920x1088" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="blocks-per-second" min="36" max="489600" />
|
||||||
|
<Limit name="bitrate" range="1-35000000" />
|
||||||
|
<Limit name="frame-rate" range="1-60" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
<Feature name="secure-playback" required="true" />
|
||||||
|
<Limit name="concurrent-instances" max="3" />
|
||||||
|
<Limit name="performance-point-1920x1080" value="30" />
|
||||||
|
</MediaCodec>
|
||||||
|
<!-- Video Software -->
|
||||||
|
<MediaCodec name="OMX.qti.video.decoder.h263sw" type="video/3gpp" >
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Limit name="size" min="96x96" max="864x480" />
|
||||||
|
<Limit name="alignment" value="4x4" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="blocks-per-second" min="36" max="48600" />
|
||||||
|
<Limit name="bitrate" range="1-16000000" />
|
||||||
|
<Limit name="frame-rate" range="1-30" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
<Limit name="concurrent-instances" max="4" />
|
||||||
|
<Limit name="performance-point-720x480" value="30" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.qti.video.decoder.mpeg4sw" type="video/mp4v-es">
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Limit name="size" min="96x96" max="1920x1088" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="blocks-per-second" min="36" max="244800" />
|
||||||
|
<Limit name="bitrate" range="1-40000000" />
|
||||||
|
<Limit name="frame-rate" range="1-30" />
|
||||||
|
<Limit name="concurrent-instances" max="4" />
|
||||||
|
<Limit name="performance-point-1920x1080" value="30" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.hevc.decoder" type="video/hevc" update="true">
|
||||||
|
<!-- profiles and levels: ProfileMain : MainTierLevel51 -->
|
||||||
|
<Limit name="size" min="2x2" max="1280x720" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="8x8" />
|
||||||
|
<Limit name="block-count" range="1-3600" />
|
||||||
|
<Limit name="blocks-per-second" range="1-108000" />
|
||||||
|
<Limit name="bitrate" range="1-2000000" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.avc.decoder" type="video/avc" update="true">
|
||||||
|
<!-- profiles and levels: ProfileHigh : Level51 -->
|
||||||
|
<Limit name="size" min="2x2" max="1280x720" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="block-count" range="1-3600" />
|
||||||
|
<Limit name="blocks-per-second" range="1-108000" />
|
||||||
|
<Limit name="bitrate" range="1-20000000" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
</MediaCodec>
|
||||||
|
</Decoders>
|
||||||
|
<Include href="media_codecs_google_video.xml" />
|
||||||
|
</MediaCodecs>
|
97
media/media_codecs_google_audio.xml
Normal file
97
media/media_codecs_google_audio.xml
Normal file
|
@ -0,0 +1,97 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<!-- Copyright (C) 2014 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.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<Included>
|
||||||
|
<Decoders>
|
||||||
|
<MediaCodec name="OMX.google.mp3.decoder" type="audio/mpeg">
|
||||||
|
<Limit name="channel-count" max="2" />
|
||||||
|
<Limit name="sample-rate" ranges="8000,11025,12000,16000,22050,24000,32000,44100,48000" />
|
||||||
|
<Limit name="bitrate" range="8000-320000" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.amrnb.decoder" type="audio/3gpp">
|
||||||
|
<Limit name="channel-count" max="1" />
|
||||||
|
<Limit name="sample-rate" ranges="8000" />
|
||||||
|
<Limit name="bitrate" range="4750-12200" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.amrwb.decoder" type="audio/amr-wb">
|
||||||
|
<Limit name="channel-count" max="1" />
|
||||||
|
<Limit name="sample-rate" ranges="16000" />
|
||||||
|
<Limit name="bitrate" range="6600-23850" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.aac.decoder" type="audio/mp4a-latm">
|
||||||
|
<Limit name="channel-count" max="8" />
|
||||||
|
<Limit name="sample-rate" ranges="7350,8000,11025,12000,16000,22050,24000,32000,44100,48000" />
|
||||||
|
<Limit name="bitrate" range="8000-960000" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.g711.alaw.decoder" type="audio/g711-alaw">
|
||||||
|
<Limit name="channel-count" max="1" />
|
||||||
|
<Limit name="sample-rate" ranges="8000-48000" />
|
||||||
|
<Limit name="bitrate" range="64000" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.g711.mlaw.decoder" type="audio/g711-mlaw">
|
||||||
|
<Limit name="channel-count" max="1" />
|
||||||
|
<Limit name="sample-rate" ranges="8000-48000" />
|
||||||
|
<Limit name="bitrate" range="64000" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.vorbis.decoder" type="audio/vorbis">
|
||||||
|
<Limit name="channel-count" max="8" />
|
||||||
|
<Limit name="sample-rate" ranges="8000-96000" />
|
||||||
|
<Limit name="bitrate" range="32000-500000" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.opus.decoder" type="audio/opus">
|
||||||
|
<Limit name="channel-count" max="8" />
|
||||||
|
<Limit name="sample-rate" ranges="48000" />
|
||||||
|
<Limit name="bitrate" range="6000-510000" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.raw.decoder" type="audio/raw">
|
||||||
|
<Limit name="channel-count" max="8" />
|
||||||
|
<Limit name="sample-rate" ranges="8000-192000" />
|
||||||
|
<Limit name="bitrate" range="1-10000000" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.flac.decoder" type="audio/flac">
|
||||||
|
<Limit name="channel-count" max="8" />
|
||||||
|
<Limit name="sample-rate" ranges="1-655350" />
|
||||||
|
<Limit name="bitrate" range="1-21000000" />
|
||||||
|
</MediaCodec>
|
||||||
|
</Decoders>
|
||||||
|
<Encoders>
|
||||||
|
<MediaCodec name="OMX.google.aac.encoder" type="audio/mp4a-latm">
|
||||||
|
<Limit name="channel-count" max="6" />
|
||||||
|
<Limit name="sample-rate" ranges="8000,11025,12000,16000,22050,24000,32000,44100,48000" />
|
||||||
|
<!-- also may support 64000, 88200 and 96000 Hz -->
|
||||||
|
<Limit name="bitrate" range="8000-960000" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.amrnb.encoder" type="audio/3gpp">
|
||||||
|
<Limit name="channel-count" max="1" />
|
||||||
|
<Limit name="sample-rate" ranges="8000" />
|
||||||
|
<Limit name="bitrate" range="4750-12200" />
|
||||||
|
<Feature name="bitrate-modes" value="CBR" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.amrwb.encoder" type="audio/amr-wb">
|
||||||
|
<Limit name="channel-count" max="1" />
|
||||||
|
<Limit name="sample-rate" ranges="16000" />
|
||||||
|
<Limit name="bitrate" range="6600-23850" />
|
||||||
|
<Feature name="bitrate-modes" value="CBR" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.flac.encoder" type="audio/flac">
|
||||||
|
<Limit name="channel-count" max="2" />
|
||||||
|
<Limit name="sample-rate" ranges="1-655350" />
|
||||||
|
<Limit name="bitrate" range="1-21000000" />
|
||||||
|
<Limit name="complexity" range="0-8" default="5" />
|
||||||
|
<Feature name="bitrate-modes" value="CQ" />
|
||||||
|
</MediaCodec>
|
||||||
|
</Encoders>
|
||||||
|
</Included>
|
19
media/media_codecs_google_c2.xml
Normal file
19
media/media_codecs_google_c2.xml
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<!-- Copyright 2018 The Android Open Source Project
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
-->
|
||||||
|
<MediaCodecs>
|
||||||
|
<Include href="media_codecs_google_c2_audio.xml" />
|
||||||
|
<Include href="media_codecs_google_c2_video.xml" />
|
||||||
|
</MediaCodecs>
|
118
media/media_codecs_google_c2_audio.xml
Normal file
118
media/media_codecs_google_c2_audio.xml
Normal file
|
@ -0,0 +1,118 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<!-- Copyright (C) 2014 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.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<Included>
|
||||||
|
<Decoders>
|
||||||
|
<MediaCodec name="c2.android.mp3.decoder" type="audio/mpeg">
|
||||||
|
<Alias name="OMX.google.mp3.decoder" />
|
||||||
|
<Limit name="channel-count" max="2" />
|
||||||
|
<Limit name="sample-rate" ranges="8000,11025,12000,16000,22050,24000,32000,44100,48000" />
|
||||||
|
<Limit name="bitrate" range="8000-320000" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.amrnb.decoder" type="audio/3gpp">
|
||||||
|
<Alias name="OMX.google.amrnb.decoder" />
|
||||||
|
<Limit name="channel-count" max="1" />
|
||||||
|
<Limit name="sample-rate" ranges="8000" />
|
||||||
|
<Limit name="bitrate" range="4750-12200" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.amrwb.decoder" type="audio/amr-wb">
|
||||||
|
<Alias name="OMX.google.amrwb.decoder" />
|
||||||
|
<Limit name="channel-count" max="1" />
|
||||||
|
<Limit name="sample-rate" ranges="16000" />
|
||||||
|
<Limit name="bitrate" range="6600-23850" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.aac.decoder" type="audio/mp4a-latm">
|
||||||
|
<Alias name="OMX.google.aac.decoder" />
|
||||||
|
<Limit name="channel-count" max="8" />
|
||||||
|
<Limit name="sample-rate" ranges="7350,8000,11025,12000,16000,22050,24000,32000,44100,48000" />
|
||||||
|
<Limit name="bitrate" range="8000-960000" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.g711.alaw.decoder" type="audio/g711-alaw">
|
||||||
|
<Alias name="OMX.google.g711.alaw.decoder" />
|
||||||
|
<Limit name="channel-count" max="1" />
|
||||||
|
<Limit name="sample-rate" ranges="8000-48000" />
|
||||||
|
<Limit name="bitrate" range="64000" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.g711.mlaw.decoder" type="audio/g711-mlaw">
|
||||||
|
<Alias name="OMX.google.g711.mlaw.decoder" />
|
||||||
|
<Limit name="channel-count" max="1" />
|
||||||
|
<Limit name="sample-rate" ranges="8000-48000" />
|
||||||
|
<Limit name="bitrate" range="64000" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.vorbis.decoder" type="audio/vorbis">
|
||||||
|
<Alias name="OMX.google.vorbis.decoder" />
|
||||||
|
<Limit name="channel-count" max="8" />
|
||||||
|
<Limit name="sample-rate" ranges="8000-96000" />
|
||||||
|
<Limit name="bitrate" range="32000-500000" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.opus.decoder" type="audio/opus">
|
||||||
|
<Alias name="OMX.google.opus.decoder" />
|
||||||
|
<Limit name="channel-count" max="8" />
|
||||||
|
<Limit name="sample-rate" ranges="48000" />
|
||||||
|
<Limit name="bitrate" range="6000-510000" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.raw.decoder" type="audio/raw">
|
||||||
|
<Alias name="OMX.google.raw.decoder" />
|
||||||
|
<Limit name="channel-count" max="8" />
|
||||||
|
<Limit name="sample-rate" ranges="8000-192000" />
|
||||||
|
<Limit name="bitrate" range="1-10000000" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.flac.decoder" type="audio/flac">
|
||||||
|
<Alias name="OMX.google.flac.decoder" />
|
||||||
|
<Limit name="channel-count" max="8" />
|
||||||
|
<Limit name="sample-rate" ranges="1-655350" />
|
||||||
|
<Limit name="bitrate" range="1-21000000" />
|
||||||
|
</MediaCodec>
|
||||||
|
</Decoders>
|
||||||
|
<Encoders>
|
||||||
|
<MediaCodec name="c2.android.aac.encoder" type="audio/mp4a-latm">
|
||||||
|
<Alias name="OMX.google.aac.encoder" />
|
||||||
|
<Limit name="channel-count" max="6" />
|
||||||
|
<Limit name="sample-rate" ranges="8000,11025,12000,16000,22050,24000,32000,44100,48000" />
|
||||||
|
<!-- also may support 64000, 88200 and 96000 Hz -->
|
||||||
|
<Limit name="bitrate" range="8000-960000" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.amrnb.encoder" type="audio/3gpp">
|
||||||
|
<Alias name="OMX.google.amrnb.encoder" />
|
||||||
|
<Limit name="channel-count" max="1" />
|
||||||
|
<Limit name="sample-rate" ranges="8000" />
|
||||||
|
<Limit name="bitrate" range="4750-12200" />
|
||||||
|
<Feature name="bitrate-modes" value="CBR" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.amrwb.encoder" type="audio/amr-wb">
|
||||||
|
<Alias name="OMX.google.amrwb.encoder" />
|
||||||
|
<Limit name="channel-count" max="1" />
|
||||||
|
<Limit name="sample-rate" ranges="16000" />
|
||||||
|
<Limit name="bitrate" range="6600-23850" />
|
||||||
|
<Feature name="bitrate-modes" value="CBR" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.flac.encoder" type="audio/flac">
|
||||||
|
<Alias name="OMX.google.flac.encoder" />
|
||||||
|
<Limit name="channel-count" max="2" />
|
||||||
|
<Limit name="sample-rate" ranges="1-655350" />
|
||||||
|
<Limit name="bitrate" range="1-21000000" />
|
||||||
|
<Limit name="complexity" range="0-8" default="5" />
|
||||||
|
<Feature name="bitrate-modes" value="CQ" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.opus.encoder" type="audio/opus">
|
||||||
|
<Limit name="channel-count" max="2" />
|
||||||
|
<Limit name="sample-rate" ranges="8000,12000,16000,24000,48000" />
|
||||||
|
<Limit name="bitrate" range="500-512000" />
|
||||||
|
<Limit name="complexity" range="0-10" default="5" />
|
||||||
|
<Feature name="bitrate-modes" value="CBR" />
|
||||||
|
</MediaCodec>
|
||||||
|
</Encoders>
|
||||||
|
</Included>
|
155
media/media_codecs_google_c2_video.xml
Normal file
155
media/media_codecs_google_c2_video.xml
Normal file
|
@ -0,0 +1,155 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<!-- Copyright (C) 2014 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.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<Included>
|
||||||
|
<Decoders>
|
||||||
|
<MediaCodec name="c2.android.mpeg4.decoder" type="video/mp4v-es">
|
||||||
|
<Alias name="OMX.google.mpeg4.decoder" />
|
||||||
|
<!-- profiles and levels: ProfileSimple : Level3 -->
|
||||||
|
<Limit name="size" min="2x2" max="352x288" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="blocks-per-second" range="12-11880" />
|
||||||
|
<Limit name="bitrate" range="1-384000" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.h263.decoder" type="video/3gpp">
|
||||||
|
<Alias name="OMX.google.h263.decoder" />
|
||||||
|
<!-- profiles and levels: ProfileBaseline : Level30, ProfileBaseline : Level45
|
||||||
|
ProfileISWV2 : Level30, ProfileISWV2 : Level45 -->
|
||||||
|
<Limit name="size" min="2x2" max="352x288" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="bitrate" range="1-384000" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.avc.decoder" type="video/avc">
|
||||||
|
<Alias name="OMX.google.h264.decoder" />
|
||||||
|
<!-- profiles and levels: ProfileHigh : Level52 -->
|
||||||
|
<Limit name="size" min="2x2" max="4080x4080" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="block-count" range="1-32768" /> <!-- max 4096x2048 equivalent -->
|
||||||
|
<Limit name="blocks-per-second" range="1-1966080" />
|
||||||
|
<Limit name="bitrate" range="1-48000000" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.hevc.decoder" type="video/hevc">
|
||||||
|
<Alias name="OMX.google.hevc.decoder" />
|
||||||
|
<!-- profiles and levels: ProfileMain : MainTierLevel51 -->
|
||||||
|
<Limit name="size" min="2x2" max="4096x4096" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="8x8" />
|
||||||
|
<Limit name="block-count" range="1-196608" /> <!-- max 4096x3072 -->
|
||||||
|
<Limit name="blocks-per-second" range="1-2000000" />
|
||||||
|
<Limit name="bitrate" range="1-10000000" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.vp8.decoder" type="video/x-vnd.on2.vp8">
|
||||||
|
<Alias name="OMX.google.vp8.decoder" />
|
||||||
|
<Limit name="size" min="2x2" max="2048x2048" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="block-count" range="1-16384" />
|
||||||
|
<Limit name="blocks-per-second" range="1-1000000" />
|
||||||
|
<Limit name="bitrate" range="1-40000000" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.vp9.decoder" type="video/x-vnd.on2.vp9">
|
||||||
|
<Alias name="OMX.google.vp9.decoder" />
|
||||||
|
<Limit name="size" min="2x2" max="2048x2048" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="block-count" range="1-16384" />
|
||||||
|
<Limit name="blocks-per-second" range="1-500000" />
|
||||||
|
<Limit name="bitrate" range="1-40000000" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.av1.decoder" type="video/av01">
|
||||||
|
<Limit name="size" min="96x96" max="1920x1080" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="blocks-per-second" min="24" max="2073600" />
|
||||||
|
<Limit name="bitrate" range="1-120000000" />
|
||||||
|
<Limit name="frame-rate" range="1-60" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
</MediaCodec>
|
||||||
|
</Decoders>
|
||||||
|
|
||||||
|
<Encoders>
|
||||||
|
<MediaCodec name="c2.android.h263.encoder" type="video/3gpp">
|
||||||
|
<Alias name="OMX.google.h263.encoder" />
|
||||||
|
<!-- profiles and levels: ProfileBaseline : Level45 -->
|
||||||
|
<Limit name="size" min="176x144" max="176x144" />
|
||||||
|
<Limit name="alignment" value="16x16" />
|
||||||
|
<Limit name="bitrate" range="1-128000" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.avc.encoder" type="video/avc">
|
||||||
|
<Alias name="OMX.google.h264.encoder" />
|
||||||
|
<!-- profiles and levels: ProfileBaseline : Level41 -->
|
||||||
|
<Limit name="size" min="16x16" max="2048x2048" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="block-count" range="1-8192" /> <!-- max 2048x1024 -->
|
||||||
|
<Limit name="blocks-per-second" range="1-245760" />
|
||||||
|
<Limit name="bitrate" range="1-12000000" />
|
||||||
|
<Feature name="intra-refresh" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.hevc.encoder" type="video/hevc">
|
||||||
|
<!-- profiles and levels: ProfileMain : MainTierLevel51 -->
|
||||||
|
<Limit name="size" min="2x2" max="512x512" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="8x8" />
|
||||||
|
<Limit name="block-count" range="1-4096" /> <!-- max 512x512 -->
|
||||||
|
<Limit name="blocks-per-second" range="1-122880" />
|
||||||
|
<Limit name="frame-rate" range="1-120" />
|
||||||
|
<Limit name="bitrate" range="1-10000000" />
|
||||||
|
<Limit name="complexity" range="0-10" default="0" />
|
||||||
|
<Limit name="quality" range="0-100" default="80" />
|
||||||
|
<Feature name="bitrate-modes" value="VBR,CBR,CQ" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.mpeg4.encoder" type="video/mp4v-es">
|
||||||
|
<Alias name="OMX.google.mpeg4.encoder" />
|
||||||
|
<!-- profiles and levels: ProfileCore : Level2 -->
|
||||||
|
<Limit name="size" min="16x16" max="176x144" />
|
||||||
|
<Limit name="alignment" value="16x16" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="blocks-per-second" range="12-1485" />
|
||||||
|
<Limit name="bitrate" range="1-64000" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.vp8.encoder" type="video/x-vnd.on2.vp8">
|
||||||
|
<Alias name="OMX.google.vp8.encoder" />
|
||||||
|
<!-- profiles and levels: ProfileMain : Level_Version0-3 -->
|
||||||
|
<Limit name="size" min="2x2" max="2048x2048" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<!-- 2016 devices can encode at about 10fps at this block count -->
|
||||||
|
<Limit name="block-count" range="1-16384" />
|
||||||
|
<Limit name="bitrate" range="1-40000000" />
|
||||||
|
<Feature name="bitrate-modes" value="VBR,CBR" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.vp9.encoder" type="video/x-vnd.on2.vp9">
|
||||||
|
<Alias name="OMX.google.vp9.encoder" />
|
||||||
|
<!-- profiles and levels: ProfileMain : Level_Version0-3 -->
|
||||||
|
<Limit name="size" min="2x2" max="2048x2048" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<!-- 2016 devices can encode at about 8fps at this block count -->
|
||||||
|
<Limit name="block-count" range="1-3600" /> <!-- max 1280x720 -->
|
||||||
|
<Limit name="bitrate" range="1-40000000" />
|
||||||
|
<Feature name="bitrate-modes" value="VBR,CBR" />
|
||||||
|
</MediaCodec>
|
||||||
|
</Encoders>
|
||||||
|
</Included>
|
25
media/media_codecs_google_telephony.xml
Normal file
25
media/media_codecs_google_telephony.xml
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<!-- Copyright (C) 2014 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.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<Included>
|
||||||
|
<Decoders>
|
||||||
|
<MediaCodec name="OMX.google.gsm.decoder" type="audio/gsm">
|
||||||
|
<Limit name="channel-count" max="1" />
|
||||||
|
<Limit name="sample-rate" ranges="8000" />
|
||||||
|
<Limit name="bitrate" range="13000" />
|
||||||
|
</MediaCodec>
|
||||||
|
</Decoders>
|
||||||
|
</Included>
|
122
media/media_codecs_google_video.xml
Normal file
122
media/media_codecs_google_video.xml
Normal file
|
@ -0,0 +1,122 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<!-- Copyright (C) 2014 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.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<Included>
|
||||||
|
<Decoders>
|
||||||
|
<MediaCodec name="OMX.google.mpeg4.decoder" type="video/mp4v-es">
|
||||||
|
<!-- profiles and levels: ProfileSimple : Level3 -->
|
||||||
|
<Limit name="size" min="2x2" max="352x288" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="blocks-per-second" range="12-11880" />
|
||||||
|
<Limit name="bitrate" range="1-384000" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.h263.decoder" type="video/3gpp">
|
||||||
|
<!-- profiles and levels: ProfileBaseline : Level30, ProfileBaseline : Level45
|
||||||
|
ProfileISWV2 : Level30, ProfileISWV2 : Level45 -->
|
||||||
|
<Limit name="size" min="2x2" max="352x288" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="bitrate" range="1-384000" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.h264.decoder" type="video/avc">
|
||||||
|
<!-- profiles and levels: ProfileHigh : Level52 -->
|
||||||
|
<Limit name="size" min="2x2" max="4080x4080" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="block-count" range="1-32768" /> <!-- max 4096x2048 equivalent -->
|
||||||
|
<Limit name="blocks-per-second" range="1-1966080" />
|
||||||
|
<Limit name="bitrate" range="1-48000000" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.hevc.decoder" type="video/hevc">
|
||||||
|
<!-- profiles and levels: ProfileMain : MainTierLevel51 -->
|
||||||
|
<Limit name="size" min="2x2" max="4096x4096" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="8x8" />
|
||||||
|
<Limit name="block-count" range="1-196608" /> <!-- max 4096x3072 -->
|
||||||
|
<Limit name="blocks-per-second" range="1-2000000" />
|
||||||
|
<Limit name="bitrate" range="1-10000000" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.vp8.decoder" type="video/x-vnd.on2.vp8">
|
||||||
|
<Limit name="size" min="2x2" max="2048x2048" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="block-count" range="1-16384" />
|
||||||
|
<Limit name="blocks-per-second" range="1-1000000" />
|
||||||
|
<Limit name="bitrate" range="1-40000000" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.vp9.decoder" type="video/x-vnd.on2.vp9">
|
||||||
|
<Limit name="size" min="2x2" max="2048x2048" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="block-count" range="1-16384" />
|
||||||
|
<Limit name="blocks-per-second" range="1-500000" />
|
||||||
|
<Limit name="bitrate" range="1-40000000" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
</MediaCodec>
|
||||||
|
</Decoders>
|
||||||
|
|
||||||
|
<Encoders>
|
||||||
|
<MediaCodec name="OMX.google.h263.encoder" type="video/3gpp">
|
||||||
|
<!-- profiles and levels: ProfileBaseline : Level45 -->
|
||||||
|
<Limit name="size" min="176x144" max="176x144" />
|
||||||
|
<Limit name="alignment" value="16x16" />
|
||||||
|
<Limit name="bitrate" range="1-128000" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.h264.encoder" type="video/avc">
|
||||||
|
<!-- profiles and levels: ProfileBaseline : Level41 -->
|
||||||
|
<Limit name="size" min="16x16" max="2048x2048" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="block-count" range="1-8192" /> <!-- max 2048x1024 -->
|
||||||
|
<Limit name="blocks-per-second" range="1-245760" />
|
||||||
|
<Limit name="bitrate" range="1-12000000" />
|
||||||
|
<Feature name="intra-refresh" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.mpeg4.encoder" type="video/mp4v-es">
|
||||||
|
<!-- profiles and levels: ProfileCore : Level2 -->
|
||||||
|
<Limit name="size" min="16x16" max="176x144" />
|
||||||
|
<Limit name="alignment" value="16x16" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="blocks-per-second" range="12-1485" />
|
||||||
|
<Limit name="bitrate" range="1-64000" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.vp8.encoder" type="video/x-vnd.on2.vp8">
|
||||||
|
<!-- profiles and levels: ProfileMain : Level_Version0-3 -->
|
||||||
|
<Limit name="size" min="2x2" max="2048x2048" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<!-- 2016 devices can encode at about 10fps at this block count -->
|
||||||
|
<Limit name="block-count" range="1-16384" />
|
||||||
|
<Limit name="bitrate" range="1-40000000" />
|
||||||
|
<Feature name="bitrate-modes" value="VBR,CBR" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.vp9.encoder" type="video/x-vnd.on2.vp9">
|
||||||
|
<!-- profiles and levels: ProfileMain : Level_Version0-3 -->
|
||||||
|
<Limit name="size" min="2x2" max="2048x2048" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<!-- 2016 devices can encode at about 8fps at this block count -->
|
||||||
|
<Limit name="block-count" range="1-3600" /> <!-- max 1280x720 -->
|
||||||
|
<Limit name="bitrate" range="1-40000000" />
|
||||||
|
<Feature name="bitrate-modes" value="VBR,CBR" />
|
||||||
|
</MediaCodec>
|
||||||
|
</Encoders>
|
||||||
|
</Included>
|
111
media/media_codecs_google_video_le.xml
Normal file
111
media/media_codecs_google_video_le.xml
Normal file
|
@ -0,0 +1,111 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<!-- Copyright (C) 2015 The Android Open Source Project
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<Included>
|
||||||
|
<Decoders>
|
||||||
|
<MediaCodec name="OMX.google.mpeg4.decoder" type="video/mp4v-es">
|
||||||
|
<!-- profiles and levels: ProfileSimple : Level3 -->
|
||||||
|
<Limit name="size" min="2x2" max="352x288" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="blocks-per-second" range="12-11880" />
|
||||||
|
<Limit name="bitrate" range="1-384000" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.h263.decoder" type="video/3gpp">
|
||||||
|
<!-- profiles and levels: ProfileBaseline : Level30, ProfileBaseline : Level45
|
||||||
|
ProfileISWV2 : Level30, ProfileISWV2 : Level45 -->
|
||||||
|
<Limit name="size" min="2x2" max="352x288" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="bitrate" range="1-384000" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.h264.decoder" type="video/avc">
|
||||||
|
<!-- profiles and levels: ProfileHigh : Level51 -->
|
||||||
|
<Limit name="size" min="2x2" max="2048x2048" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="block-count" range="1-16384" />
|
||||||
|
<Limit name="blocks-per-second" range="1-491520" />
|
||||||
|
<Limit name="bitrate" range="1-40000000" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.hevc.decoder" type="video/hevc">
|
||||||
|
<!-- profiles and levels: ProfileMain : MainTierLevel51 -->
|
||||||
|
<Limit name="size" min="2x2" max="2048x2048" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="8x8" />
|
||||||
|
<Limit name="block-count" range="1-65536" />
|
||||||
|
<Limit name="blocks-per-second" range="1-491520" />
|
||||||
|
<Limit name="bitrate" range="1-5000000" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.vp8.decoder" type="video/x-vnd.on2.vp8">
|
||||||
|
<Limit name="size" min="2x2" max="2048x2048" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="block-count" range="1-8192" /> <!-- max 2048x1024 -->
|
||||||
|
<Limit name="blocks-per-second" range="1-500000" />
|
||||||
|
<Limit name="bitrate" range="1-40000000" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.vp9.decoder" type="video/x-vnd.on2.vp9">
|
||||||
|
<Limit name="size" min="2x2" max="1280x1280" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="block-count" range="1-3600" /> <!-- max 1280x720 -->
|
||||||
|
<Limit name="blocks-per-second" range="1-108000" />
|
||||||
|
<Limit name="bitrate" range="1-5000000" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
</MediaCodec>
|
||||||
|
</Decoders>
|
||||||
|
|
||||||
|
<Encoders>
|
||||||
|
<MediaCodec name="OMX.google.h263.encoder" type="video/3gpp">
|
||||||
|
<!-- profiles and levels: ProfileBaseline : Level45 -->
|
||||||
|
<Limit name="size" min="176x144" max="176x144" />
|
||||||
|
<Limit name="alignment" value="16x16" />
|
||||||
|
<Limit name="bitrate" range="1-128000" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.h264.encoder" type="video/avc">
|
||||||
|
<!-- profiles and levels: ProfileBaseline : Level3 -->
|
||||||
|
<Limit name="size" min="16x16" max="1808x1808" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="block-count" range="1-1620" />
|
||||||
|
<Limit name="blocks-per-second" range="1-40500" />
|
||||||
|
<Limit name="bitrate" range="1-2000000" />
|
||||||
|
<Feature name="intra-refresh" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.mpeg4.encoder" type="video/mp4v-es">
|
||||||
|
<!-- profiles and levels: ProfileCore : Level2 -->
|
||||||
|
<Limit name="size" min="16x16" max="176x144" />
|
||||||
|
<Limit name="alignment" value="16x16" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="blocks-per-second" range="12-1485" />
|
||||||
|
<Limit name="bitrate" range="1-64000" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.vp8.encoder" type="video/x-vnd.on2.vp8">
|
||||||
|
<!-- profiles and levels: ProfileMain : Level_Version0-3 -->
|
||||||
|
<Limit name="size" min="2x2" max="1280x1280" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="block-count" range="1-3600" /> <!-- max 1280x720 -->
|
||||||
|
<Limit name="bitrate" range="1-20000000" />
|
||||||
|
<Feature name="bitrate-modes" value="VBR,CBR" />
|
||||||
|
</MediaCodec>
|
||||||
|
</Encoders>
|
||||||
|
</Included>
|
176
media/media_codecs_performance.xml
Normal file
176
media/media_codecs_performance.xml
Normal file
|
@ -0,0 +1,176 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<!--
|
||||||
|
Copyright (c) 2015-2017, 2019-2020 The Linux Foundation. All rights reserved.
|
||||||
|
|
||||||
|
Not a Contribution.
|
||||||
|
|
||||||
|
Copyright 2015 The Android Open Source Project
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
u 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.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<MediaCodecs>
|
||||||
|
<Encoders>
|
||||||
|
<MediaCodec name="OMX.qcom.video.encoder.avc" type="video/avc" update="true">
|
||||||
|
<Limit name="measured-frame-rate-320x240" range="238-238" />
|
||||||
|
<Limit name="measured-frame-rate-720x480" range="123-123" />
|
||||||
|
<Limit name="measured-frame-rate-1280x720" range="50-50" />
|
||||||
|
<Limit name="measured-frame-rate-1920x1080" range="55-65" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.qcom.video.encoder.hevc" type="video/hevc" update="true">
|
||||||
|
<Limit name="measured-frame-rate-320x240" range="226-226" />
|
||||||
|
<Limit name="measured-frame-rate-720x480" range="121-121" />
|
||||||
|
<Limit name="measured-frame-rate-1280x720" range="49-49" />
|
||||||
|
<Limit name="measured-frame-rate-1920x1080" range="55-65" />
|
||||||
|
<Limit name="measured-frame-rate-3840x2160" range="20-27" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.qcom.video.encoder.h263sw" type="video/3gpp" update="true">
|
||||||
|
<Limit name="measured-frame-rate-176x144" range="60-90" />
|
||||||
|
<Limit name="measured-frame-rate-352x288" range="55-85" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.qcom.video.encoder.mpeg4sw" type="video/mp4v-es" update="true">
|
||||||
|
<Limit name="measured-frame-rate-176x144" range="125-135" />
|
||||||
|
<Limit name="measured-frame-rate-352x288" range="55-85" />
|
||||||
|
<Limit name="measured-frame-rate-640x480" range="47-52" />
|
||||||
|
<Limit name="measured-frame-rate-1280x720" range="30-50" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.h264.encoder" type="video/avc" update="true">
|
||||||
|
<Limit name="measured-frame-rate-320x240" range="215-215" />
|
||||||
|
<Limit name="measured-frame-rate-720x480" range="100-100" />
|
||||||
|
<Limit name="measured-frame-rate-1280x720" range="56-56" />
|
||||||
|
<Limit name="measured-frame-rate-1920x1080" range="30-30" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.h263.encoder" type="video/3gpp" update="true">
|
||||||
|
<Limit name="measured-frame-rate-176x144" range="200-200" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.mpeg4.encoder" type="video/mp4v-es" update="true">
|
||||||
|
<Limit name="measured-frame-rate-176x144" range="250-320" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.avc.encoder" type="video/avc" update="true">
|
||||||
|
<Limit name="measured-frame-rate-320x240" range="124-176" />
|
||||||
|
<Limit name="measured-frame-rate-720x480" range="53-76" />
|
||||||
|
<Limit name="measured-frame-rate-1280x720" range="35-50" />
|
||||||
|
<Limit name="measured-frame-rate-1920x1080" range="19-28" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.hevc.encoder" type="video/hevc" update="true">
|
||||||
|
<Limit name="measured-frame-rate-320x240" range="17-24" />
|
||||||
|
<Limit name="measured-frame-rate-720x480" range="7-10" />
|
||||||
|
<Limit name="measured-frame-rate-1280x720" range="3-6" />
|
||||||
|
<Limit name="measured-frame-rate-1920x1080" range="2-3" />
|
||||||
|
<Limit name="measured-frame-rate-3840x2160" range="1-2" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.h263.encoder" type="video/3gpp" update="true">
|
||||||
|
<Limit name="measured-frame-rate-176x144" range="130-175" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.mpeg4.encoder" type="video/mp4v-es" update="true">
|
||||||
|
<Limit name="measured-frame-rate-176x144" range="119-168" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.vp8.encoder" type="video/x-vnd.on2.vp8" update="true">
|
||||||
|
<Limit name="measured-frame-rate-320x180" range="85-119" />
|
||||||
|
<Limit name="measured-frame-rate-640x360" range="41-65" />
|
||||||
|
<Limit name="measured-frame-rate-1280x720" range="21-30" />
|
||||||
|
<Limit name="measured-frame-rate-1920x1080" range="10-15" />
|
||||||
|
</MediaCodec>
|
||||||
|
</Encoders>
|
||||||
|
<Decoders>
|
||||||
|
<MediaCodec name="OMX.qcom.video.decoder.avc" type="video/avc" update="true">
|
||||||
|
<Limit name="measured-frame-rate-320x240" range="480-510" />
|
||||||
|
<Limit name="measured-frame-rate-720x480" range="460-490" />
|
||||||
|
<Limit name="measured-frame-rate-1280x720" range="350-400" />
|
||||||
|
<Limit name="measured-frame-rate-1920x1088" range="180-190" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.qcom.video.decoder.hevc" type="video/hevc" update="true">
|
||||||
|
<Limit name="measured-frame-rate-352x288" range="510-530" />
|
||||||
|
<Limit name="measured-frame-rate-720x480" range="465-620" />
|
||||||
|
<Limit name="measured-frame-rate-1280x720" range="200-390" />
|
||||||
|
<Limit name="measured-frame-rate-1920x1080" range="210-230" />
|
||||||
|
<Limit name="measured-frame-rate-3840x2160" range="65-75" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.qti.video.decoder.h263sw" type="video/3gpp" update="true">
|
||||||
|
<Limit name="measured-frame-rate-176x144" range="356-356" />
|
||||||
|
<Limit name="measured-frame-rate-352x288" range="292-292" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.qti.video.decoder.mpeg4sw" type="video/mp4v-es" update="true">
|
||||||
|
<Limit name="measured-frame-rate-176x144" range="418-551" />
|
||||||
|
<Limit name="measured-frame-rate-480x360" range="245-265" />
|
||||||
|
<Limit name="measured-frame-rate-1280x720" range="80-200" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.qcom.video.decoder.vp9" type="video/x-vnd.on2.vp9" update="true">
|
||||||
|
<Limit name="measured-frame-rate-320x240" range="377-377" />
|
||||||
|
<Limit name="measured-frame-rate-640x360" range="323-323" />
|
||||||
|
<Limit name="measured-frame-rate-1280x720" range="262-262" />
|
||||||
|
<Limit name="measured-frame-rate-1920x1080" range="220-220" />
|
||||||
|
<Limit name="measured-frame-rate-3840x2160" range="51-51" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.h264.decoder" type="video/avc" update="true">
|
||||||
|
<Limit name="measured-frame-rate-320x240" range="270-310" />
|
||||||
|
<Limit name="measured-frame-rate-720x480" range="68-68" />
|
||||||
|
<Limit name="measured-frame-rate-1280x720" range="32-32" />
|
||||||
|
<Limit name="measured-frame-rate-1920x1080" range="6-10" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.h263.decoder" type="video/3gpp" update="true">
|
||||||
|
<Limit name="measured-frame-rate-176x144" range="104-279" />
|
||||||
|
<Limit name="measured-frame-rate-352x288" range="200-200" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.hevc.decoder" type="video/hevc" update="true">
|
||||||
|
<Limit name="measured-frame-rate-352x288" range="520-650" />
|
||||||
|
<Limit name="measured-frame-rate-640x360" range="145-190" />
|
||||||
|
<Limit name="measured-frame-rate-720x480" range="235-245" />
|
||||||
|
<Limit name="measured-frame-rate-1280x720" range="88-100" />
|
||||||
|
<Limit name="measured-frame-rate-1920x1080" range="48-52" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.mpeg4.decoder" update="true">
|
||||||
|
<Type name="video/mp4v-es">
|
||||||
|
<Limit name="measured-frame-rate-176x144" range="430-450" />
|
||||||
|
</Type>
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.vp9.decoder" type="video/x-vnd.on2.vp9" update="true">
|
||||||
|
<Limit name="measured-frame-rate-320x180" range="640-720" />
|
||||||
|
<Limit name="measured-frame-rate-320x240" range="200-230" />
|
||||||
|
<Limit name="measured-frame-rate-640x360" range="81-90" />
|
||||||
|
<Limit name="measured-frame-rate-1280x720" range="60-85" />
|
||||||
|
<Limit name="measured-frame-rate-1920x1080" range="33-55" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.avc.decoder" type="video/avc" update="true">
|
||||||
|
<Limit name="measured-frame-rate-320x240" range="63-165" />
|
||||||
|
<Limit name="measured-frame-rate-720x480" range="42-59" />
|
||||||
|
<Limit name="measured-frame-rate-1280x720" range="17-24" />
|
||||||
|
<Limit name="measured-frame-rate-1920x1080" range="8-12" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.hevc.decoder" type="video/hevc" update="true">
|
||||||
|
<Limit name="measured-frame-rate-352x288" range="67-232" />
|
||||||
|
<Limit name="measured-frame-rate-640x360" range="57-89" />
|
||||||
|
<Limit name="measured-frame-rate-720x480" range="69-99" />
|
||||||
|
<Limit name="measured-frame-rate-1280x720" range="35-51" />
|
||||||
|
<Limit name="measured-frame-rate-1920x1080" range="20-29" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.h263.decoder" type="video/3gpp" update="true">
|
||||||
|
<Limit name="measured-frame-rate-176x144" range="376-524" />
|
||||||
|
<Limit name="measured-frame-rate-352x288" range="310-415" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.mpeg4.decoder" type="video/mp4v-es" update="true">
|
||||||
|
<Limit name="measured-frame-rate-176x144" range="406-543" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.vp8.decoder" type="video/x-vnd.on2.vp8" update="true">
|
||||||
|
<Limit name="measured-frame-rate-320x180" range="160-480" />
|
||||||
|
<Limit name="measured-frame-rate-640x360" range="133-184" />
|
||||||
|
<Limit name="measured-frame-rate-1920x1080" range="15-22" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.vp9.decoder" type="video/x-vnd.on2.vp9" update="true">
|
||||||
|
<Limit name="measured-frame-rate-320x180" range="182-360" />
|
||||||
|
<Limit name="measured-frame-rate-640x360" range="85-200" />
|
||||||
|
<Limit name="measured-frame-rate-1280x720" range="35-49" />
|
||||||
|
<Limit name="measured-frame-rate-1920x1080" range="23-33" />
|
||||||
|
</MediaCodec>
|
||||||
|
</Decoders>
|
||||||
|
</MediaCodecs>
|
176
media/media_codecs_performance_v1.xml
Normal file
176
media/media_codecs_performance_v1.xml
Normal file
|
@ -0,0 +1,176 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<!--
|
||||||
|
Copyright (c) 2015-2017, 2019-2020 The Linux Foundation. All rights reserved.
|
||||||
|
|
||||||
|
Not a Contribution.
|
||||||
|
|
||||||
|
Copyright 2015 The Android Open Source Project
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
u 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.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<MediaCodecs>
|
||||||
|
<Encoders>
|
||||||
|
<MediaCodec name="OMX.qcom.video.encoder.avc" type="video/avc" update="true">
|
||||||
|
<Limit name="measured-frame-rate-320x240" range="238-238" />
|
||||||
|
<Limit name="measured-frame-rate-720x480" range="123-123" />
|
||||||
|
<Limit name="measured-frame-rate-1280x720" range="50-50" />
|
||||||
|
<Limit name="measured-frame-rate-1920x1080" range="55-65" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.qcom.video.encoder.hevc" type="video/hevc" update="true">
|
||||||
|
<Limit name="measured-frame-rate-320x240" range="226-226" />
|
||||||
|
<Limit name="measured-frame-rate-720x480" range="121-121" />
|
||||||
|
<Limit name="measured-frame-rate-1280x720" range="49-49" />
|
||||||
|
<Limit name="measured-frame-rate-1920x1080" range="55-65" />
|
||||||
|
<Limit name="measured-frame-rate-3840x2160" range="20-27" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.qcom.video.encoder.h263sw" type="video/3gpp" update="true">
|
||||||
|
<Limit name="measured-frame-rate-176x144" range="60-90" />
|
||||||
|
<Limit name="measured-frame-rate-352x288" range="55-85" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.qcom.video.encoder.mpeg4sw" type="video/mp4v-es" update="true">
|
||||||
|
<Limit name="measured-frame-rate-176x144" range="125-135" />
|
||||||
|
<Limit name="measured-frame-rate-352x288" range="55-85" />
|
||||||
|
<Limit name="measured-frame-rate-640x480" range="47-52" />
|
||||||
|
<Limit name="measured-frame-rate-1280x720" range="30-50" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.h264.encoder" type="video/avc" update="true">
|
||||||
|
<Limit name="measured-frame-rate-320x240" range="215-215" />
|
||||||
|
<Limit name="measured-frame-rate-720x480" range="100-100" />
|
||||||
|
<Limit name="measured-frame-rate-1280x720" range="56-56" />
|
||||||
|
<Limit name="measured-frame-rate-1920x1080" range="30-30" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.h263.encoder" type="video/3gpp" update="true">
|
||||||
|
<Limit name="measured-frame-rate-176x144" range="200-200" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.mpeg4.encoder" type="video/mp4v-es" update="true">
|
||||||
|
<Limit name="measured-frame-rate-176x144" range="250-320" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.avc.encoder" type="video/avc" update="true">
|
||||||
|
<Limit name="measured-frame-rate-320x240" range="124-176" />
|
||||||
|
<Limit name="measured-frame-rate-720x480" range="53-76" />
|
||||||
|
<Limit name="measured-frame-rate-1280x720" range="35-50" />
|
||||||
|
<Limit name="measured-frame-rate-1920x1080" range="19-28" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.hevc.encoder" type="video/hevc" update="true">
|
||||||
|
<Limit name="measured-frame-rate-320x240" range="17-24" />
|
||||||
|
<Limit name="measured-frame-rate-720x480" range="7-10" />
|
||||||
|
<Limit name="measured-frame-rate-1280x720" range="3-6" />
|
||||||
|
<Limit name="measured-frame-rate-1920x1080" range="2-3" />
|
||||||
|
<Limit name="measured-frame-rate-3840x2160" range="1-2" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.h263.encoder" type="video/3gpp" update="true">
|
||||||
|
<Limit name="measured-frame-rate-176x144" range="130-175" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.mpeg4.encoder" type="video/mp4v-es" update="true">
|
||||||
|
<Limit name="measured-frame-rate-176x144" range="119-168" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.vp8.encoder" type="video/x-vnd.on2.vp8" update="true">
|
||||||
|
<Limit name="measured-frame-rate-320x180" range="85-119" />
|
||||||
|
<Limit name="measured-frame-rate-640x360" range="41-65" />
|
||||||
|
<Limit name="measured-frame-rate-1280x720" range="21-30" />
|
||||||
|
<Limit name="measured-frame-rate-1920x1080" range="10-15" />
|
||||||
|
</MediaCodec>
|
||||||
|
</Encoders>
|
||||||
|
<Decoders>
|
||||||
|
<MediaCodec name="OMX.qcom.video.decoder.avc" type="video/avc" update="true">
|
||||||
|
<Limit name="measured-frame-rate-320x240" range="480-510" />
|
||||||
|
<Limit name="measured-frame-rate-720x480" range="460-490" />
|
||||||
|
<Limit name="measured-frame-rate-1280x720" range="350-400" />
|
||||||
|
<Limit name="measured-frame-rate-1920x1088" range="180-190" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.qcom.video.decoder.hevc" type="video/hevc" update="true">
|
||||||
|
<Limit name="measured-frame-rate-352x288" range="510-530" />
|
||||||
|
<Limit name="measured-frame-rate-720x480" range="465-620" />
|
||||||
|
<Limit name="measured-frame-rate-1280x720" range="200-390" />
|
||||||
|
<Limit name="measured-frame-rate-1920x1080" range="210-230" />
|
||||||
|
<Limit name="measured-frame-rate-3840x2160" range="65-75" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.qti.video.decoder.h263sw" type="video/3gpp" update="true">
|
||||||
|
<Limit name="measured-frame-rate-176x144" range="356-356" />
|
||||||
|
<Limit name="measured-frame-rate-352x288" range="292-292" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.qti.video.decoder.mpeg4sw" type="video/mp4v-es" update="true">
|
||||||
|
<Limit name="measured-frame-rate-176x144" range="418-551" />
|
||||||
|
<Limit name="measured-frame-rate-480x360" range="245-265" />
|
||||||
|
<Limit name="measured-frame-rate-1280x720" range="80-200" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.qcom.video.decoder.vp9" type="video/x-vnd.on2.vp9" update="true">
|
||||||
|
<Limit name="measured-frame-rate-320x240" range="377-377" />
|
||||||
|
<Limit name="measured-frame-rate-640x360" range="323-323" />
|
||||||
|
<Limit name="measured-frame-rate-1280x720" range="262-262" />
|
||||||
|
<Limit name="measured-frame-rate-1920x1080" range="220-220" />
|
||||||
|
<Limit name="measured-frame-rate-3840x2160" range="51-51" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.h264.decoder" type="video/avc" update="true">
|
||||||
|
<Limit name="measured-frame-rate-320x240" range="270-310" />
|
||||||
|
<Limit name="measured-frame-rate-720x480" range="68-68" />
|
||||||
|
<Limit name="measured-frame-rate-1280x720" range="32-32" />
|
||||||
|
<Limit name="measured-frame-rate-1920x1080" range="6-10" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.h263.decoder" type="video/3gpp" update="true">
|
||||||
|
<Limit name="measured-frame-rate-176x144" range="104-279" />
|
||||||
|
<Limit name="measured-frame-rate-352x288" range="200-200" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.hevc.decoder" type="video/hevc" update="true">
|
||||||
|
<Limit name="measured-frame-rate-352x288" range="520-650" />
|
||||||
|
<Limit name="measured-frame-rate-640x360" range="145-190" />
|
||||||
|
<Limit name="measured-frame-rate-720x480" range="235-245" />
|
||||||
|
<Limit name="measured-frame-rate-1280x720" range="88-100" />
|
||||||
|
<Limit name="measured-frame-rate-1920x1080" range="48-52" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.mpeg4.decoder" update="true">
|
||||||
|
<Type name="video/mp4v-es">
|
||||||
|
<Limit name="measured-frame-rate-176x144" range="430-450" />
|
||||||
|
</Type>
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.vp9.decoder" type="video/x-vnd.on2.vp9" update="true">
|
||||||
|
<Limit name="measured-frame-rate-320x180" range="640-720" />
|
||||||
|
<Limit name="measured-frame-rate-320x240" range="200-230" />
|
||||||
|
<Limit name="measured-frame-rate-640x360" range="81-90" />
|
||||||
|
<Limit name="measured-frame-rate-1280x720" range="60-85" />
|
||||||
|
<Limit name="measured-frame-rate-1920x1080" range="33-55" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.avc.decoder" type="video/avc" update="true">
|
||||||
|
<Limit name="measured-frame-rate-320x240" range="63-165" />
|
||||||
|
<Limit name="measured-frame-rate-720x480" range="42-59" />
|
||||||
|
<Limit name="measured-frame-rate-1280x720" range="17-24" />
|
||||||
|
<Limit name="measured-frame-rate-1920x1080" range="8-12" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.hevc.decoder" type="video/hevc" update="true">
|
||||||
|
<Limit name="measured-frame-rate-352x288" range="67-232" />
|
||||||
|
<Limit name="measured-frame-rate-640x360" range="57-89" />
|
||||||
|
<Limit name="measured-frame-rate-720x480" range="69-99" />
|
||||||
|
<Limit name="measured-frame-rate-1280x720" range="35-51" />
|
||||||
|
<Limit name="measured-frame-rate-1920x1080" range="20-29" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.h263.decoder" type="video/3gpp" update="true">
|
||||||
|
<Limit name="measured-frame-rate-176x144" range="376-524" />
|
||||||
|
<Limit name="measured-frame-rate-352x288" range="310-415" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.mpeg4.decoder" type="video/mp4v-es" update="true">
|
||||||
|
<Limit name="measured-frame-rate-176x144" range="406-543" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.vp8.decoder" type="video/x-vnd.on2.vp8" update="true">
|
||||||
|
<Limit name="measured-frame-rate-320x180" range="160-480" />
|
||||||
|
<Limit name="measured-frame-rate-640x360" range="133-184" />
|
||||||
|
<Limit name="measured-frame-rate-1920x1080" range="15-22" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.vp9.decoder" type="video/x-vnd.on2.vp9" update="true">
|
||||||
|
<Limit name="measured-frame-rate-320x180" range="182-360" />
|
||||||
|
<Limit name="measured-frame-rate-640x360" range="85-200" />
|
||||||
|
<Limit name="measured-frame-rate-1280x720" range="35-49" />
|
||||||
|
<Limit name="measured-frame-rate-1920x1080" range="23-33" />
|
||||||
|
</MediaCodec>
|
||||||
|
</Decoders>
|
||||||
|
</MediaCodecs>
|
173
media/media_codecs_performance_v2.xml
Normal file
173
media/media_codecs_performance_v2.xml
Normal file
|
@ -0,0 +1,173 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<!--
|
||||||
|
Copyright (c) 2015-2017, 2019-2020 The Linux Foundation. All rights reserved.
|
||||||
|
|
||||||
|
Not a Contribution.
|
||||||
|
|
||||||
|
Copyright 2015 The Android Open Source Project
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
u 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.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<MediaCodecs>
|
||||||
|
<Encoders>
|
||||||
|
<MediaCodec name="OMX.qcom.video.encoder.avc" type="video/avc" update="true">
|
||||||
|
<Limit name="measured-frame-rate-320x240" range="238-238" />
|
||||||
|
<Limit name="measured-frame-rate-720x480" range="123-123" />
|
||||||
|
<Limit name="measured-frame-rate-1280x720" range="50-50" />
|
||||||
|
<Limit name="measured-frame-rate-1920x1080" range="55-65" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.qcom.video.encoder.hevc" type="video/hevc" update="true">
|
||||||
|
<Limit name="measured-frame-rate-320x240" range="226-226" />
|
||||||
|
<Limit name="measured-frame-rate-720x480" range="121-121" />
|
||||||
|
<Limit name="measured-frame-rate-1280x720" range="49-49" />
|
||||||
|
<Limit name="measured-frame-rate-1920x1080" range="55-65" />
|
||||||
|
<Limit name="measured-frame-rate-3840x2160" range="20-27" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.qcom.video.encoder.h263sw" type="video/3gpp" update="true">
|
||||||
|
<Limit name="measured-frame-rate-176x144" range="150-240" />
|
||||||
|
<Limit name="measured-frame-rate-352x288" range="55-85" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.qcom.video.encoder.mpeg4sw" type="video/mp4v-es" update="true">
|
||||||
|
<Limit name="measured-frame-rate-176x144" range="125-135" />
|
||||||
|
<Limit name="measured-frame-rate-352x288" range="55-85" />
|
||||||
|
<Limit name="measured-frame-rate-640x480" range="47-52" />
|
||||||
|
<Limit name="measured-frame-rate-1280x720" range="30-50" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.h264.encoder" type="video/avc" update="true">
|
||||||
|
<Limit name="measured-frame-rate-320x240" range="215-215" />
|
||||||
|
<Limit name="measured-frame-rate-720x480" range="100-100" />
|
||||||
|
<Limit name="measured-frame-rate-1280x720" range="56-56" />
|
||||||
|
<Limit name="measured-frame-rate-1920x1080" range="30-30" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.h263.encoder" type="video/3gpp" update="true">
|
||||||
|
<Limit name="measured-frame-rate-176x144" range="200-200" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.mpeg4.encoder" type="video/mp4v-es" update="true">
|
||||||
|
<Limit name="measured-frame-rate-176x144" range="250-320" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.avc.encoder" type="video/avc" update="true">
|
||||||
|
<Limit name="measured-frame-rate-320x240" range="124-176" />
|
||||||
|
<Limit name="measured-frame-rate-720x480" range="53-76" />
|
||||||
|
<Limit name="measured-frame-rate-1280x720" range="35-50" />
|
||||||
|
<Limit name="measured-frame-rate-1920x1080" range="19-28" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.hevc.encoder" type="video/hevc" update="true">
|
||||||
|
<Limit name="measured-frame-rate-320x240" range="17-24" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.h263.encoder" type="video/3gpp" update="true">
|
||||||
|
<Limit name="measured-frame-rate-176x144" range="320-345" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.mpeg4.encoder" type="video/mp4v-es" update="true">
|
||||||
|
<Limit name="measured-frame-rate-176x144" range="300-340" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.vp8.encoder" type="video/x-vnd.on2.vp8" update="true">
|
||||||
|
<Limit name="measured-frame-rate-320x180" range="85-119" />
|
||||||
|
<Limit name="measured-frame-rate-640x360" range="41-65" />
|
||||||
|
<Limit name="measured-frame-rate-1280x720" range="21-30" />
|
||||||
|
<Limit name="measured-frame-rate-1920x1080" range="10-15" />
|
||||||
|
</MediaCodec>
|
||||||
|
</Encoders>
|
||||||
|
<Decoders>
|
||||||
|
<MediaCodec name="OMX.qcom.video.decoder.avc" type="video/avc" update="true">
|
||||||
|
<Limit name="measured-frame-rate-320x240" range="480-510" />
|
||||||
|
<Limit name="measured-frame-rate-720x480" range="460-490" />
|
||||||
|
<Limit name="measured-frame-rate-1280x720" range="350-400" />
|
||||||
|
<Limit name="measured-frame-rate-1920x1088" range="180-190" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.qcom.video.decoder.hevc" type="video/hevc" update="true">
|
||||||
|
<Limit name="measured-frame-rate-352x288" range="510-530" />
|
||||||
|
<Limit name="measured-frame-rate-720x480" range="465-620" />
|
||||||
|
<Limit name="measured-frame-rate-1280x720" range="200-390" />
|
||||||
|
<Limit name="measured-frame-rate-1920x1080" range="210-230" />
|
||||||
|
<Limit name="measured-frame-rate-3840x2160" range="65-75" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.qti.video.decoder.h263sw" type="video/3gpp" update="true">
|
||||||
|
<Limit name="measured-frame-rate-176x144" range="356-356" />
|
||||||
|
<Limit name="measured-frame-rate-352x288" range="292-292" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.qti.video.decoder.mpeg4sw" type="video/mp4v-es" update="true">
|
||||||
|
<Limit name="measured-frame-rate-176x144" range="270-295" />
|
||||||
|
<Limit name="measured-frame-rate-480x360" range="245-265" />
|
||||||
|
<Limit name="measured-frame-rate-1280x720" range="80-200" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.qcom.video.decoder.vp9" type="video/x-vnd.on2.vp9" update="true">
|
||||||
|
<Limit name="measured-frame-rate-320x180" range="820-850"/>
|
||||||
|
<Limit name="measured-frame-rate-320x240" range="377-377" />
|
||||||
|
<Limit name="measured-frame-rate-640x360" range="323-323" />
|
||||||
|
<Limit name="measured-frame-rate-1280x720" range="262-262" />
|
||||||
|
<Limit name="measured-frame-rate-1920x1080" range="65-72" />
|
||||||
|
<Limit name="measured-frame-rate-3840x2160" range="51-51" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.h264.decoder" type="video/avc" update="true">
|
||||||
|
<Limit name="measured-frame-rate-320x240" range="270-310" />
|
||||||
|
<Limit name="measured-frame-rate-720x480" range="68-68" />
|
||||||
|
<Limit name="measured-frame-rate-1280x720" range="32-32" />
|
||||||
|
<Limit name="measured-frame-rate-1920x1080" range="6-10" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.h263.decoder" type="video/3gpp" update="true">
|
||||||
|
<Limit name="measured-frame-rate-176x144" range="104-279" />
|
||||||
|
<Limit name="measured-frame-rate-352x288" range="200-200" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.hevc.decoder" type="video/hevc" update="true">
|
||||||
|
<Limit name="measured-frame-rate-352x288" range="520-650" />
|
||||||
|
<Limit name="measured-frame-rate-640x360" range="145-190" />
|
||||||
|
<Limit name="measured-frame-rate-720x480" range="235-245" />
|
||||||
|
<Limit name="measured-frame-rate-1280x720" range="88-100" />
|
||||||
|
<Limit name="measured-frame-rate-1920x1080" range="48-52" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.mpeg4.decoder" update="true">
|
||||||
|
<Type name="video/mp4v-es">
|
||||||
|
<Limit name="measured-frame-rate-176x144" range="430-450" />
|
||||||
|
</Type>
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.vp9.decoder" type="video/x-vnd.on2.vp9" update="true">
|
||||||
|
<Limit name="measured-frame-rate-320x180" range="640-720" />
|
||||||
|
<Limit name="measured-frame-rate-320x240" range="200-230" />
|
||||||
|
<Limit name="measured-frame-rate-640x360" range="81-90" />
|
||||||
|
<Limit name="measured-frame-rate-1280x720" range="60-85" />
|
||||||
|
<Limit name="measured-frame-rate-1920x1080" range="33-55" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.avc.decoder" type="video/avc" update="true">
|
||||||
|
<Limit name="measured-frame-rate-320x240" range="63-165" />
|
||||||
|
<Limit name="measured-frame-rate-720x480" range="42-59" />
|
||||||
|
<Limit name="measured-frame-rate-1280x720" range="17-24" />
|
||||||
|
<Limit name="measured-frame-rate-1920x1080" range="8-12" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.hevc.decoder" type="video/hevc" update="true">
|
||||||
|
<Limit name="measured-frame-rate-352x288" range="67-232" />
|
||||||
|
<Limit name="measured-frame-rate-640x360" range="57-89" />
|
||||||
|
<Limit name="measured-frame-rate-720x480" range="69-99" />
|
||||||
|
<Limit name="measured-frame-rate-1280x720" range="35-51" />
|
||||||
|
<Limit name="measured-frame-rate-1920x1080" range="20-29" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.h263.decoder" type="video/3gpp" update="true">
|
||||||
|
<Limit name="measured-frame-rate-176x144" range="376-524" />
|
||||||
|
<Limit name="measured-frame-rate-352x288" range="310-415" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.mpeg4.decoder" type="video/mp4v-es" update="true">
|
||||||
|
<Limit name="measured-frame-rate-176x144" range="406-543" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.vp8.decoder" type="video/x-vnd.on2.vp8" update="true">
|
||||||
|
<Limit name="measured-frame-rate-320x180" range="160-480" />
|
||||||
|
<Limit name="measured-frame-rate-640x360" range="133-184" />
|
||||||
|
<Limit name="measured-frame-rate-1920x1080" range="15-22" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.vp9.decoder" type="video/x-vnd.on2.vp9" update="true">
|
||||||
|
<Limit name="measured-frame-rate-320x180" range="182-360" />
|
||||||
|
<Limit name="measured-frame-rate-640x360" range="85-200" />
|
||||||
|
<Limit name="measured-frame-rate-1280x720" range="35-49" />
|
||||||
|
<Limit name="measured-frame-rate-1920x1080" range="23-33" />
|
||||||
|
</MediaCodec>
|
||||||
|
</Decoders>
|
||||||
|
</MediaCodecs>
|
346
media/media_codecs_vendor.xml
Normal file
346
media/media_codecs_vendor.xml
Normal file
|
@ -0,0 +1,346 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Copyright (C) 2012-2020 The Linux Foundation. All rights reserved.
|
||||||
|
Not a contribution.
|
||||||
|
Copyright (C) 2012-2013 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.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!--
|
||||||
|
<!DOCTYPE MediaCodecs [
|
||||||
|
<!ELEMENT Include EMPTY>
|
||||||
|
<!ATTLIST Include href CDATA #REQUIRED>
|
||||||
|
<!ELEMENT MediaCodecs (Decoders|Encoders|Include)*>
|
||||||
|
<!ELEMENT Decoders (MediaCodec|Include)*>
|
||||||
|
<!ELEMENT Encoders (MediaCodec|Include)*>
|
||||||
|
<!ELEMENT MediaCodec (Type|Quirk|Include)*>
|
||||||
|
<!ATTLIST MediaCodec name CDATA #REQUIRED>
|
||||||
|
<!ATTLIST MediaCodec type CDATA>
|
||||||
|
<!ELEMENT Type EMPTY>
|
||||||
|
<!ATTLIST Type name CDATA #REQUIRED>
|
||||||
|
<!ELEMENT Quirk EMPTY>
|
||||||
|
<!ATTLIST Quirk name CDATA #REQUIRED>
|
||||||
|
]>
|
||||||
|
|
||||||
|
There's a simple and a complex syntax to declare the availability of a
|
||||||
|
media codec:
|
||||||
|
|
||||||
|
A codec that properly follows the OpenMax spec and therefore doesn't have any
|
||||||
|
quirks and that only supports a single content type can be declared like so:
|
||||||
|
|
||||||
|
<MediaCodec name="OMX.foo.bar" type="something/interesting" />
|
||||||
|
|
||||||
|
If a codec has quirks OR supports multiple content types, the following syntax
|
||||||
|
can be used:
|
||||||
|
|
||||||
|
<MediaCodec name="OMX.foo.bar" >
|
||||||
|
<Type name="something/interesting" />
|
||||||
|
<Type name="something/else" />
|
||||||
|
...
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Quirk name="output-buffers-are-unreadable" />
|
||||||
|
</MediaCodec>
|
||||||
|
|
||||||
|
Only the three quirks included above are recognized at this point:
|
||||||
|
|
||||||
|
"requires-allocate-on-input-ports"
|
||||||
|
must be advertised if the component does not properly support specification
|
||||||
|
of input buffers using the OMX_UseBuffer(...) API but instead requires
|
||||||
|
OMX_AllocateBuffer to be used.
|
||||||
|
|
||||||
|
"requires-allocate-on-output-ports"
|
||||||
|
must be advertised if the component does not properly support specification
|
||||||
|
of output buffers using the OMX_UseBuffer(...) API but instead requires
|
||||||
|
OMX_AllocateBuffer to be used.
|
||||||
|
|
||||||
|
"output-buffers-are-unreadable"
|
||||||
|
must be advertised if the emitted output buffers of a decoder component
|
||||||
|
are not readable, i.e. use a custom format even though abusing one of
|
||||||
|
the official OMX colorspace constants.
|
||||||
|
Clients of such decoders will not be able to access the decoded data,
|
||||||
|
naturally making the component much less useful. The only use for
|
||||||
|
a component with this quirk is to render the output to the screen.
|
||||||
|
Audio decoders MUST NOT advertise this quirk.
|
||||||
|
Video decoders that advertise this quirk must be accompanied by a
|
||||||
|
corresponding color space converter for thumbnail extraction,
|
||||||
|
matching surfaceflinger support that can render the custom format to
|
||||||
|
a texture and possibly other code, so just DON'T USE THIS QUIRK.
|
||||||
|
|
||||||
|
|
||||||
|
-->
|
||||||
|
<!--
|
||||||
|
Non-Secure decoder capabilities
|
||||||
|
(MB is defined as 16x16)
|
||||||
|
|
||||||
|
_______________________________________________________
|
||||||
|
| Codec | W H fps Mbps MB/s |
|
||||||
|
|_____________|_________________________________________|
|
||||||
|
| h264 | 1920 1088 60 60 489600 |
|
||||||
|
| hevc | 1920 1080 60 60 489600 |
|
||||||
|
| vp9 | 1920 1088 60 60 489600 |
|
||||||
|
| mpeg4-sw | 1920 1088 30 40 244800 |
|
||||||
|
| h263-sw | 864 480 30 16 48600 |
|
||||||
|
|_____________|_________________________________________|
|
||||||
|
|
||||||
|
Secure decoder capabilities
|
||||||
|
(MB is defined as 16x16)
|
||||||
|
|
||||||
|
_____________________________________________________
|
||||||
|
| Codec | W H fps Mbps MB/s |
|
||||||
|
|__________|_________________________________________|
|
||||||
|
| h264 | 1920 1088 60 35 489600 |
|
||||||
|
| vp9 | 1920 1088 60 35 489600 |
|
||||||
|
| hevc | 1920 1088 60 35 489600 |
|
||||||
|
|__________|_________________________________________|
|
||||||
|
|
||||||
|
|
||||||
|
Non-Secure encoder capabilities (Secure not supported)
|
||||||
|
(MB is defined as 16x16)
|
||||||
|
|
||||||
|
______________________________________________________
|
||||||
|
| Codec | W H fps Mbps MB/s |
|
||||||
|
|__________|_________________________________________|
|
||||||
|
| h264 | 1920 1088 60 60 489600 |
|
||||||
|
| hevc | 1920 1088 60 60 489600 |
|
||||||
|
| mpeg4-sw | 864 480 30 8 48600 |
|
||||||
|
| h263-sw | 864 480 30 2 48600 |
|
||||||
|
|__________|_________________________________________|
|
||||||
|
-->
|
||||||
|
|
||||||
|
<MediaCodecs>
|
||||||
|
<Include href="media_codecs_google_audio.xml" />
|
||||||
|
<Include href="media_codecs_vendor_audio.xml" />
|
||||||
|
<Include href="media_codecs_google_telephony.xml" />
|
||||||
|
<Settings>
|
||||||
|
<Setting name="max-video-encoder-input-buffers" value="11" />
|
||||||
|
</Settings>
|
||||||
|
<Encoders>
|
||||||
|
<!-- Video Hardware -->
|
||||||
|
<MediaCodec name="OMX.qcom.video.encoder.avc" type="video/avc" >
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Quirk name="requires-loaded-to-idle-after-allocation" />
|
||||||
|
<Limit name="size" min="128x128" max="1920x1088" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="blocks-per-second" min="64" max="489600" />
|
||||||
|
<Limit name="bitrate" range="1-60000000" />
|
||||||
|
<Limit name="frame-rate" range="1-120" />
|
||||||
|
<Limit name="concurrent-instances" max="16" />
|
||||||
|
<Limit name="performance-point-1920x1080" value="60" />
|
||||||
|
<Limit name="performance-point-1280x720" value="120" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.qcom.video.encoder.hevc" type="video/hevc" >
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Quirk name="requires-loaded-to-idle-after-allocation" />
|
||||||
|
<Limit name="size" min="128x128" max="1920x1088" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="blocks-per-second" min="64" max="489600" />
|
||||||
|
<Limit name="bitrate" range="1-60000000" />
|
||||||
|
<Limit name="frame-rate" range="1-120" />
|
||||||
|
<Limit name="concurrent-instances" max="16" />
|
||||||
|
<Limit name="quality" range="0-100" default="80" />
|
||||||
|
<Feature name="bitrate-modes" value="VBR,CBR" />
|
||||||
|
<Limit name="performance-point-1920x1080" value="60" />
|
||||||
|
<Limit name="performance-point-1280x720" value="120" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.qcom.video.encoder.hevc.cq" type="video/hevc" >
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Quirk name="requires-loaded-to-idle-after-allocation" />
|
||||||
|
<Limit name="size" min="512x512" max="512x512" />
|
||||||
|
<Limit name="frame-rate" range="1-20" />
|
||||||
|
<Limit name="concurrent-instances" max="16" />
|
||||||
|
<Limit name="quality" range="0-100" default="80" />
|
||||||
|
<Feature name="bitrate-modes" value="CQ" />
|
||||||
|
<Limit name="performance-point-512x512" value="2025" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.qcom.video.encoder.heic" type="image/vnd.android.heic" >
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Quirk name="requires-loaded-to-idle-after-allocation" />
|
||||||
|
<Limit name="size" min="512x512" max="8192x8192" />
|
||||||
|
<Limit name="frame-rate" range="1-20" />
|
||||||
|
<Limit name="concurrent-instances" max="6" />
|
||||||
|
<Limit name="quality" range="0-100" default="80" />
|
||||||
|
<Feature name="bitrate-modes" value="CQ" />
|
||||||
|
<Limit name="performance-point-8192x4320" value="3" />
|
||||||
|
<Limit name="performance-point-1920x1080" value="6" />
|
||||||
|
</MediaCodec>
|
||||||
|
<!-- Video Software -->
|
||||||
|
<MediaCodec name="OMX.qcom.video.encoder.h263sw" type="video/3gpp" >
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Quirk name="requires-loaded-to-idle-after-allocation" />
|
||||||
|
<Limit name="size" min="96x96" max="864x480" />
|
||||||
|
<Limit name="alignment" value="4x4" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="blocks-per-second" min="36" max="48600" />
|
||||||
|
<Limit name="bitrate" range="1-2000000" />
|
||||||
|
<Limit name="frame-rate" range="1-30" />
|
||||||
|
<Limit name="concurrent-instances" max="3" />
|
||||||
|
<Limit name="performance-point-720x480" value="30" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.qcom.video.encoder.mpeg4sw" type="video/mp4v-es" >
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Quirk name="requires-loaded-to-idle-after-allocation" />
|
||||||
|
<Limit name="size" min="96x96" max="864x480" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="blocks-per-second" min="36" max="48600" />
|
||||||
|
<Limit name="bitrate" range="1-8000000" />
|
||||||
|
<Limit name="frame-rate" range="1-30" />
|
||||||
|
<Limit name="concurrent-instances" max="3" />
|
||||||
|
<Limit name="performance-point-720x480" value="30" />
|
||||||
|
</MediaCodec>
|
||||||
|
</Encoders>
|
||||||
|
<Decoders>
|
||||||
|
<!-- Video Hardware -->
|
||||||
|
<MediaCodec name="OMX.qcom.video.decoder.avc" type="video/avc" >
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Limit name="size" min="128x128" max="1920x1088" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="blocks-per-second" min="64" max="489600" />
|
||||||
|
<Limit name="bitrate" range="1-60000000" />
|
||||||
|
<Limit name="frame-rate" range="1-120" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
<Limit name="concurrent-instances" max="16" />
|
||||||
|
<Limit name="performance-point-1920x1080" value="60" />
|
||||||
|
<Limit name="performance-point-1280x720" value="120" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.qcom.video.decoder.avc.secure" type="video/avc" >
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Limit name="size" min="128x128" max="1920x1088" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="blocks-per-second" min="64" max="489600" />
|
||||||
|
<Limit name="bitrate" range="1-35000000" />
|
||||||
|
<Limit name="frame-rate" range="1-60" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
<Feature name="secure-playback" required="true" />
|
||||||
|
<Limit name="concurrent-instances" max="3" />
|
||||||
|
<Limit name="performance-point-1920x1080" value="30" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.qcom.video.decoder.vp9" type="video/x-vnd.on2.vp9" >
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Limit name="size" min="128x128" max="1920x1088" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="blocks-per-second" min="64" max="489600" />
|
||||||
|
<Limit name="bitrate" range="1-60000000" />
|
||||||
|
<Limit name="frame-rate" range="1-120" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
<Limit name="concurrent-instances" max="6" />
|
||||||
|
<Limit name="performance-point-1920x1080" value="60" />
|
||||||
|
<Limit name="performance-point-1280x720" value="120" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.qcom.video.decoder.vp9.secure" type="video/x-vnd.on2.vp9" >
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Limit name="size" min="128x128" max="1920x1088" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="blocks-per-second" min="64" max="489600" />
|
||||||
|
<Limit name="bitrate" range="1-35000000" />
|
||||||
|
<Limit name="frame-rate" range="1-60" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
<Feature name="secure-playback" required="true" />
|
||||||
|
<Limit name="concurrent-instances" max="3" />
|
||||||
|
<Limit name="performance-point-1920x1080" value="30" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.qcom.video.decoder.hevc" type="video/hevc" >
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Limit name="size" min="128x128" max="1920x1088" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="blocks-per-second" min="64" max="489600" />
|
||||||
|
<Limit name="bitrate" range="1-60000000" />
|
||||||
|
<Limit name="frame-rate" range="1-120" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
<Limit name="concurrent-instances" max="16" />
|
||||||
|
<Limit name="performance-point-1920x1080" value="60" />
|
||||||
|
<Limit name="performance-point-1280x720" value="120" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.qcom.video.decoder.hevc.secure" type="video/hevc" >
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Limit name="size" min="128x128" max="1920x1088" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="blocks-per-second" min="64" max="489600" />
|
||||||
|
<Limit name="bitrate" range="1-35000000" />
|
||||||
|
<Limit name="frame-rate" range="1-60" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
<Feature name="secure-playback" required="true" />
|
||||||
|
<Limit name="concurrent-instances" max="3" />
|
||||||
|
<Limit name="performance-point-1920x1080" value="30" />
|
||||||
|
</MediaCodec>
|
||||||
|
<!-- Video Software -->
|
||||||
|
<MediaCodec name="OMX.qti.video.decoder.h263sw" type="video/3gpp" >
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Limit name="size" min="96x96" max="864x480" />
|
||||||
|
<Limit name="alignment" value="4x4" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="blocks-per-second" min="36" max="48600" />
|
||||||
|
<Limit name="bitrate" range="1-16000000" />
|
||||||
|
<Limit name="frame-rate" range="1-30" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
<Limit name="concurrent-instances" max="4" />
|
||||||
|
<Limit name="performance-point-720x480" value="30" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.qti.video.decoder.mpeg4sw" type="video/mp4v-es">
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Limit name="size" min="96x96" max="1920x1088" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="blocks-per-second" min="36" max="244800" />
|
||||||
|
<Limit name="bitrate" range="1-40000000" />
|
||||||
|
<Limit name="frame-rate" range="1-30" />
|
||||||
|
<Limit name="concurrent-instances" max="4" />
|
||||||
|
<Limit name="performance-point-1920x1080" value="30" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.hevc.decoder" type="video/hevc" update="true">
|
||||||
|
<!-- profiles and levels: ProfileMain : MainTierLevel51 -->
|
||||||
|
<Limit name="size" min="2x2" max="1280x720" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="8x8" />
|
||||||
|
<Limit name="block-count" range="1-3600" />
|
||||||
|
<Limit name="blocks-per-second" range="1-108000" />
|
||||||
|
<Limit name="bitrate" range="1-2000000" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.avc.decoder" type="video/avc" update="true">
|
||||||
|
<!-- profiles and levels: ProfileHigh : Level51 -->
|
||||||
|
<Limit name="size" min="2x2" max="1280x720" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="block-count" range="1-3600" />
|
||||||
|
<Limit name="blocks-per-second" range="1-108000" />
|
||||||
|
<Limit name="bitrate" range="1-20000000" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
</MediaCodec>
|
||||||
|
</Decoders>
|
||||||
|
<Include href="media_codecs_google_video_le.xml" />
|
||||||
|
</MediaCodecs>
|
26
media/media_codecs_vendor_audio.xml
Normal file
26
media/media_codecs_vendor_audio.xml
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<!-- Copyright (C) 2012-2017 The Linux Foundation. All rights reserved.
|
||||||
|
Not a contribution.
|
||||||
|
|
||||||
|
Copyright (C) 2012-2013 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.
|
||||||
|
-->
|
||||||
|
<Included>
|
||||||
|
<Decoders>
|
||||||
|
<!-- SimpleOMXComponet based software decoder-->
|
||||||
|
<MediaCodec name="OMX.qti.audio.decoder.flac" type="audio/flac" rank="0" >
|
||||||
|
<Limit name="concurrent-instances" max="10" />
|
||||||
|
</MediaCodec>
|
||||||
|
</Decoders>
|
||||||
|
</Included>
|
351
media/media_codecs_vendor_v1.xml
Normal file
351
media/media_codecs_vendor_v1.xml
Normal file
|
@ -0,0 +1,351 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Copyright (C) 2012-2020 The Linux Foundation. All rights reserved.
|
||||||
|
Not a contribution.
|
||||||
|
Copyright (C) 2012-2013 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.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!--
|
||||||
|
<!DOCTYPE MediaCodecs [
|
||||||
|
<!ELEMENT Include EMPTY>
|
||||||
|
<!ATTLIST Include href CDATA #REQUIRED>
|
||||||
|
<!ELEMENT MediaCodecs (Decoders|Encoders|Include)*>
|
||||||
|
<!ELEMENT Decoders (MediaCodec|Include)*>
|
||||||
|
<!ELEMENT Encoders (MediaCodec|Include)*>
|
||||||
|
<!ELEMENT MediaCodec (Type|Quirk|Include)*>
|
||||||
|
<!ATTLIST MediaCodec name CDATA #REQUIRED>
|
||||||
|
<!ATTLIST MediaCodec type CDATA>
|
||||||
|
<!ELEMENT Type EMPTY>
|
||||||
|
<!ATTLIST Type name CDATA #REQUIRED>
|
||||||
|
<!ELEMENT Quirk EMPTY>
|
||||||
|
<!ATTLIST Quirk name CDATA #REQUIRED>
|
||||||
|
]>
|
||||||
|
|
||||||
|
There's a simple and a complex syntax to declare the availability of a
|
||||||
|
media codec:
|
||||||
|
|
||||||
|
A codec that properly follows the OpenMax spec and therefore doesn't have any
|
||||||
|
quirks and that only supports a single content type can be declared like so:
|
||||||
|
|
||||||
|
<MediaCodec name="OMX.foo.bar" type="something/interesting" />
|
||||||
|
|
||||||
|
If a codec has quirks OR supports multiple content types, the following syntax
|
||||||
|
can be used:
|
||||||
|
|
||||||
|
<MediaCodec name="OMX.foo.bar" >
|
||||||
|
<Type name="something/interesting" />
|
||||||
|
<Type name="something/else" />
|
||||||
|
...
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Quirk name="output-buffers-are-unreadable" />
|
||||||
|
</MediaCodec>
|
||||||
|
|
||||||
|
Only the three quirks included above are recognized at this point:
|
||||||
|
|
||||||
|
"requires-allocate-on-input-ports"
|
||||||
|
must be advertised if the component does not properly support specification
|
||||||
|
of input buffers using the OMX_UseBuffer(...) API but instead requires
|
||||||
|
OMX_AllocateBuffer to be used.
|
||||||
|
|
||||||
|
"requires-allocate-on-output-ports"
|
||||||
|
must be advertised if the component does not properly support specification
|
||||||
|
of output buffers using the OMX_UseBuffer(...) API but instead requires
|
||||||
|
OMX_AllocateBuffer to be used.
|
||||||
|
|
||||||
|
"output-buffers-are-unreadable"
|
||||||
|
must be advertised if the emitted output buffers of a decoder component
|
||||||
|
are not readable, i.e. use a custom format even though abusing one of
|
||||||
|
the official OMX colorspace constants.
|
||||||
|
Clients of such decoders will not be able to access the decoded data,
|
||||||
|
naturally making the component much less useful. The only use for
|
||||||
|
a component with this quirk is to render the output to the screen.
|
||||||
|
Audio decoders MUST NOT advertise this quirk.
|
||||||
|
Video decoders that advertise this quirk must be accompanied by a
|
||||||
|
corresponding color space converter for thumbnail extraction,
|
||||||
|
matching surfaceflinger support that can render the custom format to
|
||||||
|
a texture and possibly other code, so just DON'T USE THIS QUIRK.
|
||||||
|
|
||||||
|
|
||||||
|
-->
|
||||||
|
<!--
|
||||||
|
Non-Secure decoder capabilities
|
||||||
|
(MB is defined as 16x16)
|
||||||
|
|
||||||
|
_______________________________________________________
|
||||||
|
| Codec | W H fps Mbps MB/s |
|
||||||
|
|_____________|_________________________________________|
|
||||||
|
| h264 | 1920 1088 30 60 244800 |
|
||||||
|
| hevc | 1920 1080 30 60 244800 |
|
||||||
|
| vp9 | 1920 1088 30 60 244800 |
|
||||||
|
| mpeg4-sw | 1920 1088 30 40 244800 |
|
||||||
|
| h263-sw | 864 480 30 16 48600 |
|
||||||
|
|_____________|_________________________________________|
|
||||||
|
|
||||||
|
Secure decoder capabilities
|
||||||
|
(MB is defined as 16x16)
|
||||||
|
|
||||||
|
_____________________________________________________
|
||||||
|
| Codec | W H fps Mbps MB/s |
|
||||||
|
|__________|_________________________________________|
|
||||||
|
| h264 | 1920 1088 30 35 244800 |
|
||||||
|
| vp9 | 1920 1088 30 35 244800 |
|
||||||
|
| hevc | 1920 1088 30 35 244800 |
|
||||||
|
|__________|_________________________________________|
|
||||||
|
|
||||||
|
|
||||||
|
Non-Secure encoder capabilities (Secure not supported)
|
||||||
|
(MB is defined as 16x16)
|
||||||
|
|
||||||
|
______________________________________________________
|
||||||
|
| Codec | W H fps Mbps MB/s |
|
||||||
|
|__________|_________________________________________|
|
||||||
|
| h264 | 1920 1088 30 60 244800 |
|
||||||
|
| hevc | 1920 1088 30 60 244800 |
|
||||||
|
| mpeg4-sw | 864 480 30 8 48600 |
|
||||||
|
| h263-sw | 864 480 30 2 48600 |
|
||||||
|
|__________|_________________________________________|
|
||||||
|
-->
|
||||||
|
|
||||||
|
<MediaCodecs>
|
||||||
|
<Include href="media_codecs_google_audio.xml" />
|
||||||
|
<Include href="media_codecs_vendor_audio.xml" />
|
||||||
|
<Include href="media_codecs_google_telephony.xml" />
|
||||||
|
<Settings>
|
||||||
|
<Setting name="max-video-encoder-input-buffers" value="11" />
|
||||||
|
</Settings>
|
||||||
|
<Encoders>
|
||||||
|
<!-- Video Hardware -->
|
||||||
|
<MediaCodec name="OMX.qcom.video.encoder.avc" type="video/avc" >
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Quirk name="requires-loaded-to-idle-after-allocation" />
|
||||||
|
<Limit name="size" min="128x128" max="1920x1088" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="blocks-per-second" min="64" max="244800" />
|
||||||
|
<Limit name="bitrate" range="1-60000000" />
|
||||||
|
<Limit name="frame-rate" range="1-120" />
|
||||||
|
<Limit name="concurrent-instances" max="16" />
|
||||||
|
<Limit name="performance-point-1920x1080" value="30" />
|
||||||
|
<Limit name="performance-point-1280x720" value="60" />
|
||||||
|
<Limit name="performance-point-720x480" value="120" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.qcom.video.encoder.hevc" type="video/hevc" >
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Quirk name="requires-loaded-to-idle-after-allocation" />
|
||||||
|
<Limit name="size" min="128x128" max="1920x1088" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="blocks-per-second" min="64" max="244800" />
|
||||||
|
<Limit name="bitrate" range="1-60000000" />
|
||||||
|
<Limit name="frame-rate" range="1-120" />
|
||||||
|
<Limit name="concurrent-instances" max="16" />
|
||||||
|
<Limit name="quality" range="0-100" default="80" />
|
||||||
|
<Feature name="bitrate-modes" value="VBR,CBR" />
|
||||||
|
<Limit name="performance-point-1920x1080" value="30" />
|
||||||
|
<Limit name="performance-point-1280x720" value="60" />
|
||||||
|
<Limit name="performance-point-720x480" value="120" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.qcom.video.encoder.hevc.cq" type="video/hevc" >
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Quirk name="requires-loaded-to-idle-after-allocation" />
|
||||||
|
<Limit name="size" min="512x512" max="512x512" />
|
||||||
|
<Limit name="frame-rate" range="1-20" />
|
||||||
|
<Limit name="concurrent-instances" max="16" />
|
||||||
|
<Limit name="quality" range="0-100" default="80" />
|
||||||
|
<Feature name="bitrate-modes" value="CQ" />
|
||||||
|
<Limit name="performance-point-512x512" value="2025" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.qcom.video.encoder.heic" type="image/vnd.android.heic" >
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Quirk name="requires-loaded-to-idle-after-allocation" />
|
||||||
|
<Limit name="size" min="512x512" max="8192x8192" />
|
||||||
|
<Limit name="frame-rate" range="1-20" />
|
||||||
|
<Limit name="concurrent-instances" max="6" />
|
||||||
|
<Limit name="quality" range="0-100" default="80" />
|
||||||
|
<Feature name="bitrate-modes" value="CQ" />
|
||||||
|
<Limit name="performance-point-8192x4320" value="3" />
|
||||||
|
<Limit name="performance-point-1920x1080" value="6" />
|
||||||
|
</MediaCodec>
|
||||||
|
<!-- Video Software -->
|
||||||
|
<MediaCodec name="OMX.qcom.video.encoder.h263sw" type="video/3gpp" >
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Quirk name="requires-loaded-to-idle-after-allocation" />
|
||||||
|
<Limit name="size" min="96x96" max="864x480" />
|
||||||
|
<Limit name="alignment" value="4x4" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="blocks-per-second" min="36" max="48600" />
|
||||||
|
<Limit name="bitrate" range="1-2000000" />
|
||||||
|
<Limit name="frame-rate" range="1-30" />
|
||||||
|
<Limit name="concurrent-instances" max="3" />
|
||||||
|
<Limit name="performance-point-720x480" value="30" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.qcom.video.encoder.mpeg4sw" type="video/mp4v-es" >
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Quirk name="requires-loaded-to-idle-after-allocation" />
|
||||||
|
<Limit name="size" min="96x96" max="864x480" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="blocks-per-second" min="36" max="48600" />
|
||||||
|
<Limit name="bitrate" range="1-8000000" />
|
||||||
|
<Limit name="frame-rate" range="1-30" />
|
||||||
|
<Limit name="concurrent-instances" max="3" />
|
||||||
|
<Limit name="performance-point-720x480" value="30" />
|
||||||
|
</MediaCodec>
|
||||||
|
</Encoders>
|
||||||
|
<Decoders>
|
||||||
|
<!-- Video Hardware -->
|
||||||
|
<MediaCodec name="OMX.qcom.video.decoder.avc" type="video/avc" >
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Limit name="size" min="128x128" max="1920x1088" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="blocks-per-second" min="64" max="244800" />
|
||||||
|
<Limit name="bitrate" range="1-60000000" />
|
||||||
|
<Limit name="frame-rate" range="1-120" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
<Limit name="concurrent-instances" max="16" />
|
||||||
|
<Limit name="performance-point-1920x1080" value="30" />
|
||||||
|
<Limit name="performance-point-1280x720" value="60" />
|
||||||
|
<Limit name="performance-point-720x480" value="120" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.qcom.video.decoder.avc.secure" type="video/avc" >
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Limit name="size" min="128x128" max="1920x1088" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="blocks-per-second" min="64" max="244800" />
|
||||||
|
<Limit name="bitrate" range="1-35000000" />
|
||||||
|
<Limit name="frame-rate" range="1-60" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
<Feature name="secure-playback" required="true" />
|
||||||
|
<Limit name="concurrent-instances" max="3" />
|
||||||
|
<Limit name="performance-point-1920x1080" value="30" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.qcom.video.decoder.vp9" type="video/x-vnd.on2.vp9" >
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Limit name="size" min="128x128" max="1920x1088" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="blocks-per-second" min="64" max="244800" />
|
||||||
|
<Limit name="bitrate" range="1-60000000" />
|
||||||
|
<Limit name="frame-rate" range="1-120" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
<Limit name="concurrent-instances" max="6" />
|
||||||
|
<Limit name="performance-point-1920x1080" value="30" />
|
||||||
|
<Limit name="performance-point-1280x720" value="60" />
|
||||||
|
<Limit name="performance-point-720x480" value="120" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.qcom.video.decoder.vp9.secure" type="video/x-vnd.on2.vp9" >
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Limit name="size" min="128x128" max="1920x1088" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="blocks-per-second" min="64" max="244800" />
|
||||||
|
<Limit name="bitrate" range="1-35000000" />
|
||||||
|
<Limit name="frame-rate" range="1-60" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
<Feature name="secure-playback" required="true" />
|
||||||
|
<Limit name="concurrent-instances" max="3" />
|
||||||
|
<Limit name="performance-point-1920x1080" value="30" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.qcom.video.decoder.hevc" type="video/hevc" >
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Limit name="size" min="128x128" max="1920x1088" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="blocks-per-second" min="64" max="244800" />
|
||||||
|
<Limit name="bitrate" range="1-60000000" />
|
||||||
|
<Limit name="frame-rate" range="1-120" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
<Limit name="concurrent-instances" max="16" />
|
||||||
|
<Limit name="performance-point-1920x1080" value="30" />
|
||||||
|
<Limit name="performance-point-1280x720" value="60" />
|
||||||
|
<Limit name="performance-point-720x480" value="120" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.qcom.video.decoder.hevc.secure" type="video/hevc" >
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Limit name="size" min="128x128" max="1920x1088" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="blocks-per-second" min="64" max="244800" />
|
||||||
|
<Limit name="bitrate" range="1-35000000" />
|
||||||
|
<Limit name="frame-rate" range="1-60" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
<Feature name="secure-playback" required="true" />
|
||||||
|
<Limit name="concurrent-instances" max="3" />
|
||||||
|
<Limit name="performance-point-1920x1080" value="30" />
|
||||||
|
</MediaCodec>
|
||||||
|
<!-- Video Software -->
|
||||||
|
<MediaCodec name="OMX.qti.video.decoder.h263sw" type="video/3gpp" >
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Limit name="size" min="96x96" max="864x480" />
|
||||||
|
<Limit name="alignment" value="4x4" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="blocks-per-second" min="36" max="48600" />
|
||||||
|
<Limit name="bitrate" range="1-16000000" />
|
||||||
|
<Limit name="frame-rate" range="1-30" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
<Limit name="concurrent-instances" max="4" />
|
||||||
|
<Limit name="performance-point-720x480" value="30" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.qti.video.decoder.mpeg4sw" type="video/mp4v-es">
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Limit name="size" min="96x96" max="1920x1088" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="blocks-per-second" min="36" max="244800" />
|
||||||
|
<Limit name="bitrate" range="1-40000000" />
|
||||||
|
<Limit name="frame-rate" range="1-30" />
|
||||||
|
<Limit name="concurrent-instances" max="4" />
|
||||||
|
<Limit name="performance-point-1920x1080" value="30" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.hevc.decoder" type="video/hevc" update="true">
|
||||||
|
<!-- profiles and levels: ProfileMain : MainTierLevel51 -->
|
||||||
|
<Limit name="size" min="2x2" max="1280x720" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="8x8" />
|
||||||
|
<Limit name="block-count" range="1-3600" />
|
||||||
|
<Limit name="blocks-per-second" range="1-108000" />
|
||||||
|
<Limit name="bitrate" range="1-2000000" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.avc.decoder" type="video/avc" update="true">
|
||||||
|
<!-- profiles and levels: ProfileHigh : Level51 -->
|
||||||
|
<Limit name="size" min="2x2" max="1280x720" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="block-count" range="1-3600" />
|
||||||
|
<Limit name="blocks-per-second" range="1-108000" />
|
||||||
|
<Limit name="bitrate" range="1-20000000" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
</MediaCodec>
|
||||||
|
</Decoders>
|
||||||
|
<Include href="media_codecs_google_video_le.xml" />
|
||||||
|
</MediaCodecs>
|
351
media/media_codecs_vendor_v2.xml
Normal file
351
media/media_codecs_vendor_v2.xml
Normal file
|
@ -0,0 +1,351 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Copyright (C) 2012-2020 The Linux Foundation. All rights reserved.
|
||||||
|
Not a contribution.
|
||||||
|
Copyright (C) 2012-2013 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.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!--
|
||||||
|
<!DOCTYPE MediaCodecs [
|
||||||
|
<!ELEMENT Include EMPTY>
|
||||||
|
<!ATTLIST Include href CDATA #REQUIRED>
|
||||||
|
<!ELEMENT MediaCodecs (Decoders|Encoders|Include)*>
|
||||||
|
<!ELEMENT Decoders (MediaCodec|Include)*>
|
||||||
|
<!ELEMENT Encoders (MediaCodec|Include)*>
|
||||||
|
<!ELEMENT MediaCodec (Type|Quirk|Include)*>
|
||||||
|
<!ATTLIST MediaCodec name CDATA #REQUIRED>
|
||||||
|
<!ATTLIST MediaCodec type CDATA>
|
||||||
|
<!ELEMENT Type EMPTY>
|
||||||
|
<!ATTLIST Type name CDATA #REQUIRED>
|
||||||
|
<!ELEMENT Quirk EMPTY>
|
||||||
|
<!ATTLIST Quirk name CDATA #REQUIRED>
|
||||||
|
]>
|
||||||
|
|
||||||
|
There's a simple and a complex syntax to declare the availability of a
|
||||||
|
media codec:
|
||||||
|
|
||||||
|
A codec that properly follows the OpenMax spec and therefore doesn't have any
|
||||||
|
quirks and that only supports a single content type can be declared like so:
|
||||||
|
|
||||||
|
<MediaCodec name="OMX.foo.bar" type="something/interesting" />
|
||||||
|
|
||||||
|
If a codec has quirks OR supports multiple content types, the following syntax
|
||||||
|
can be used:
|
||||||
|
|
||||||
|
<MediaCodec name="OMX.foo.bar" >
|
||||||
|
<Type name="something/interesting" />
|
||||||
|
<Type name="something/else" />
|
||||||
|
...
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Quirk name="output-buffers-are-unreadable" />
|
||||||
|
</MediaCodec>
|
||||||
|
|
||||||
|
Only the three quirks included above are recognized at this point:
|
||||||
|
|
||||||
|
"requires-allocate-on-input-ports"
|
||||||
|
must be advertised if the component does not properly support specification
|
||||||
|
of input buffers using the OMX_UseBuffer(...) API but instead requires
|
||||||
|
OMX_AllocateBuffer to be used.
|
||||||
|
|
||||||
|
"requires-allocate-on-output-ports"
|
||||||
|
must be advertised if the component does not properly support specification
|
||||||
|
of output buffers using the OMX_UseBuffer(...) API but instead requires
|
||||||
|
OMX_AllocateBuffer to be used.
|
||||||
|
|
||||||
|
"output-buffers-are-unreadable"
|
||||||
|
must be advertised if the emitted output buffers of a decoder component
|
||||||
|
are not readable, i.e. use a custom format even though abusing one of
|
||||||
|
the official OMX colorspace constants.
|
||||||
|
Clients of such decoders will not be able to access the decoded data,
|
||||||
|
naturally making the component much less useful. The only use for
|
||||||
|
a component with this quirk is to render the output to the screen.
|
||||||
|
Audio decoders MUST NOT advertise this quirk.
|
||||||
|
Video decoders that advertise this quirk must be accompanied by a
|
||||||
|
corresponding color space converter for thumbnail extraction,
|
||||||
|
matching surfaceflinger support that can render the custom format to
|
||||||
|
a texture and possibly other code, so just DON'T USE THIS QUIRK.
|
||||||
|
|
||||||
|
|
||||||
|
-->
|
||||||
|
<!--
|
||||||
|
Non-Secure decoder capabilities
|
||||||
|
(MB is defined as 16x16)
|
||||||
|
|
||||||
|
_______________________________________________________
|
||||||
|
| Codec | W H fps Mbps MB/s |
|
||||||
|
|_____________|_________________________________________|
|
||||||
|
| h264 | 1920 1088 30 60 244800 |
|
||||||
|
| hevc | 1920 1080 30 60 244800 |
|
||||||
|
| vp9 | 1920 1088 30 60 244800 |
|
||||||
|
| mpeg4-sw | 1920 1088 30 40 244800 |
|
||||||
|
| h263-sw | 864 480 30 16 48600 |
|
||||||
|
|_____________|_________________________________________|
|
||||||
|
|
||||||
|
Secure decoder capabilities
|
||||||
|
(MB is defined as 16x16)
|
||||||
|
|
||||||
|
_____________________________________________________
|
||||||
|
| Codec | W H fps Mbps MB/s |
|
||||||
|
|__________|_________________________________________|
|
||||||
|
| h264 | 1920 1088 30 35 244800 |
|
||||||
|
| vp9 | 1920 1088 30 35 244800 |
|
||||||
|
| hevc | 1920 1088 30 35 244800 |
|
||||||
|
|__________|_________________________________________|
|
||||||
|
|
||||||
|
|
||||||
|
Non-Secure encoder capabilities (Secure not supported)
|
||||||
|
(MB is defined as 16x16)
|
||||||
|
|
||||||
|
______________________________________________________
|
||||||
|
| Codec | W H fps Mbps MB/s |
|
||||||
|
|__________|_________________________________________|
|
||||||
|
| h264 | 1920 1088 30 60 244800 |
|
||||||
|
| hevc | 1920 1088 30 60 244800 |
|
||||||
|
| mpeg4-sw | 864 480 30 8 48600 |
|
||||||
|
| h263-sw | 864 480 30 2 48600 |
|
||||||
|
|__________|_________________________________________|
|
||||||
|
-->
|
||||||
|
|
||||||
|
<MediaCodecs>
|
||||||
|
<Include href="media_codecs_google_audio.xml" />
|
||||||
|
<Include href="media_codecs_vendor_audio.xml" />
|
||||||
|
<Include href="media_codecs_google_telephony.xml" />
|
||||||
|
<Settings>
|
||||||
|
<Setting name="max-video-encoder-input-buffers" value="11" />
|
||||||
|
</Settings>
|
||||||
|
<Encoders>
|
||||||
|
<!-- Video Hardware -->
|
||||||
|
<MediaCodec name="OMX.qcom.video.encoder.avc" type="video/avc" >
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Quirk name="requires-loaded-to-idle-after-allocation" />
|
||||||
|
<Limit name="size" min="128x128" max="1920x1088" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="blocks-per-second" min="64" max="244800" />
|
||||||
|
<Limit name="bitrate" range="1-60000000" />
|
||||||
|
<Limit name="frame-rate" range="1-120" />
|
||||||
|
<Limit name="concurrent-instances" max="16" />
|
||||||
|
<Limit name="performance-point-1920x1080" value="30" />
|
||||||
|
<Limit name="performance-point-1280x720" value="60" />
|
||||||
|
<Limit name="performance-point-720x480" value="120" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.qcom.video.encoder.hevc" type="video/hevc" >
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Quirk name="requires-loaded-to-idle-after-allocation" />
|
||||||
|
<Limit name="size" min="128x128" max="1920x1088" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="blocks-per-second" min="64" max="244800" />
|
||||||
|
<Limit name="bitrate" range="1-60000000" />
|
||||||
|
<Limit name="frame-rate" range="1-120" />
|
||||||
|
<Limit name="concurrent-instances" max="16" />
|
||||||
|
<Limit name="quality" range="0-100" default="80" />
|
||||||
|
<Feature name="bitrate-modes" value="VBR,CBR" />
|
||||||
|
<Limit name="performance-point-1920x1080" value="30" />
|
||||||
|
<Limit name="performance-point-1280x720" value="60" />
|
||||||
|
<Limit name="performance-point-720x480" value="120" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.qcom.video.encoder.hevc.cq" type="video/hevc" >
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Quirk name="requires-loaded-to-idle-after-allocation" />
|
||||||
|
<Limit name="size" min="512x512" max="512x512" />
|
||||||
|
<Limit name="frame-rate" range="1-20" />
|
||||||
|
<Limit name="concurrent-instances" max="16" />
|
||||||
|
<Limit name="quality" range="0-100" default="80" />
|
||||||
|
<Feature name="bitrate-modes" value="CQ" />
|
||||||
|
<Limit name="performance-point-512x512" value="2025" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.qcom.video.encoder.heic" type="image/vnd.android.heic" >
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Quirk name="requires-loaded-to-idle-after-allocation" />
|
||||||
|
<Limit name="size" min="512x512" max="8192x8192" />
|
||||||
|
<Limit name="frame-rate" range="1-20" />
|
||||||
|
<Limit name="concurrent-instances" max="6" />
|
||||||
|
<Limit name="quality" range="0-100" default="80" />
|
||||||
|
<Feature name="bitrate-modes" value="CQ" />
|
||||||
|
<Limit name="performance-point-8192x4320" value="3" />
|
||||||
|
<Limit name="performance-point-1920x1080" value="6" />
|
||||||
|
</MediaCodec>
|
||||||
|
<!-- Video Software -->
|
||||||
|
<MediaCodec name="OMX.qcom.video.encoder.h263sw" type="video/3gpp" >
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Quirk name="requires-loaded-to-idle-after-allocation" />
|
||||||
|
<Limit name="size" min="96x96" max="864x480" />
|
||||||
|
<Limit name="alignment" value="4x4" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="blocks-per-second" min="36" max="48600" />
|
||||||
|
<Limit name="bitrate" range="1-2000000" />
|
||||||
|
<Limit name="frame-rate" range="1-30" />
|
||||||
|
<Limit name="concurrent-instances" max="3" />
|
||||||
|
<Limit name="performance-point-720x480" value="30" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.qcom.video.encoder.mpeg4sw" type="video/mp4v-es" >
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Quirk name="requires-loaded-to-idle-after-allocation" />
|
||||||
|
<Limit name="size" min="96x96" max="864x480" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="blocks-per-second" min="36" max="48600" />
|
||||||
|
<Limit name="bitrate" range="1-8000000" />
|
||||||
|
<Limit name="frame-rate" range="1-30" />
|
||||||
|
<Limit name="concurrent-instances" max="3" />
|
||||||
|
<Limit name="performance-point-720x480" value="30" />
|
||||||
|
</MediaCodec>
|
||||||
|
</Encoders>
|
||||||
|
<Decoders>
|
||||||
|
<!-- Video Hardware -->
|
||||||
|
<MediaCodec name="OMX.qcom.video.decoder.avc" type="video/avc" >
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Limit name="size" min="128x128" max="1920x1088" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="blocks-per-second" min="64" max="244800" />
|
||||||
|
<Limit name="bitrate" range="1-60000000" />
|
||||||
|
<Limit name="frame-rate" range="1-120" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
<Limit name="concurrent-instances" max="16" />
|
||||||
|
<Limit name="performance-point-1920x1080" value="30" />
|
||||||
|
<Limit name="performance-point-1280x720" value="60" />
|
||||||
|
<Limit name="performance-point-720x480" value="120" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.qcom.video.decoder.avc.secure" type="video/avc" >
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Limit name="size" min="128x128" max="1920x1088" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="blocks-per-second" min="64" max="244800" />
|
||||||
|
<Limit name="bitrate" range="1-35000000" />
|
||||||
|
<Limit name="frame-rate" range="1-60" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
<Feature name="secure-playback" required="true" />
|
||||||
|
<Limit name="concurrent-instances" max="3" />
|
||||||
|
<Limit name="performance-point-1920x1080" value="30" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.qcom.video.decoder.vp9" type="video/x-vnd.on2.vp9" >
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Limit name="size" min="128x128" max="1920x1088" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="blocks-per-second" min="64" max="244800" />
|
||||||
|
<Limit name="bitrate" range="1-60000000" />
|
||||||
|
<Limit name="frame-rate" range="1-120" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
<Limit name="concurrent-instances" max="6" />
|
||||||
|
<Limit name="performance-point-1920x1080" value="30" />
|
||||||
|
<Limit name="performance-point-1280x720" value="60" />
|
||||||
|
<Limit name="performance-point-720x480" value="120" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.qcom.video.decoder.vp9.secure" type="video/x-vnd.on2.vp9" >
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Limit name="size" min="128x128" max="1920x1088" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="blocks-per-second" min="64" max="244800" />
|
||||||
|
<Limit name="bitrate" range="1-35000000" />
|
||||||
|
<Limit name="frame-rate" range="1-60" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
<Feature name="secure-playback" required="true" />
|
||||||
|
<Limit name="concurrent-instances" max="3" />
|
||||||
|
<Limit name="performance-point-1920x1080" value="30" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.qcom.video.decoder.hevc" type="video/hevc" >
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Limit name="size" min="128x128" max="1920x1088" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="blocks-per-second" min="64" max="244800" />
|
||||||
|
<Limit name="bitrate" range="1-60000000" />
|
||||||
|
<Limit name="frame-rate" range="1-120" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
<Limit name="concurrent-instances" max="16" />
|
||||||
|
<Limit name="performance-point-1920x1080" value="30" />
|
||||||
|
<Limit name="performance-point-1280x720" value="60" />
|
||||||
|
<Limit name="performance-point-720x480" value="120" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.qcom.video.decoder.hevc.secure" type="video/hevc" >
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Limit name="size" min="128x128" max="1920x1088" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="blocks-per-second" min="64" max="244800" />
|
||||||
|
<Limit name="bitrate" range="1-35000000" />
|
||||||
|
<Limit name="frame-rate" range="1-60" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
<Feature name="secure-playback" required="true" />
|
||||||
|
<Limit name="concurrent-instances" max="3" />
|
||||||
|
<Limit name="performance-point-1920x1080" value="30" />
|
||||||
|
</MediaCodec>
|
||||||
|
<!-- Video Software -->
|
||||||
|
<MediaCodec name="OMX.qti.video.decoder.h263sw" type="video/3gpp" >
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Limit name="size" min="96x96" max="864x480" />
|
||||||
|
<Limit name="alignment" value="4x4" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="blocks-per-second" min="36" max="48600" />
|
||||||
|
<Limit name="bitrate" range="1-16000000" />
|
||||||
|
<Limit name="frame-rate" range="1-30" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
<Limit name="concurrent-instances" max="4" />
|
||||||
|
<Limit name="performance-point-720x480" value="30" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.qti.video.decoder.mpeg4sw" type="video/mp4v-es">
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Limit name="size" min="96x96" max="1920x1088" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="blocks-per-second" min="36" max="244800" />
|
||||||
|
<Limit name="bitrate" range="1-40000000" />
|
||||||
|
<Limit name="frame-rate" range="1-30" />
|
||||||
|
<Limit name="concurrent-instances" max="4" />
|
||||||
|
<Limit name="performance-point-1920x1080" value="30" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.hevc.decoder" type="video/hevc" update="true">
|
||||||
|
<!-- profiles and levels: ProfileMain : MainTierLevel51 -->
|
||||||
|
<Limit name="size" min="2x2" max="1280x720" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="8x8" />
|
||||||
|
<Limit name="block-count" range="1-3600" />
|
||||||
|
<Limit name="blocks-per-second" range="1-108000" />
|
||||||
|
<Limit name="bitrate" range="1-2000000" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="c2.android.avc.decoder" type="video/avc" update="true">
|
||||||
|
<!-- profiles and levels: ProfileHigh : Level51 -->
|
||||||
|
<Limit name="size" min="2x2" max="1280x720" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="block-count" range="1-3600" />
|
||||||
|
<Limit name="blocks-per-second" range="1-108000" />
|
||||||
|
<Limit name="bitrate" range="1-20000000" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
</MediaCodec>
|
||||||
|
</Decoders>
|
||||||
|
<Include href="media_codecs_google_video_le.xml" />
|
||||||
|
</MediaCodecs>
|
643
media/media_profiles.xml
Normal file
643
media/media_profiles.xml
Normal file
|
@ -0,0 +1,643 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Copyright (C) 2010 The Android Open Source Project
|
||||||
|
Copyright (C) 2012-2013 The Linux Foundation. All rights reserved.
|
||||||
|
Not a contribution.
|
||||||
|
|
||||||
|
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.
|
||||||
|
-->
|
||||||
|
<!DOCTYPE MediaSettings [
|
||||||
|
<!ELEMENT MediaSettings (CamcorderProfiles,
|
||||||
|
EncoderOutputFileFormat+,
|
||||||
|
VideoEncoderCap+,
|
||||||
|
AudioEncoderCap+,
|
||||||
|
VideoDecoderCap,
|
||||||
|
AudioDecoderCap)>
|
||||||
|
<!ELEMENT CamcorderProfiles (EncoderProfile+, ImageEncoding+, ImageDecoding, Camera)>
|
||||||
|
<!ELEMENT EncoderProfile (Video, Audio)>
|
||||||
|
<!ATTLIST EncoderProfile quality (high|low) #REQUIRED>
|
||||||
|
<!ATTLIST EncoderProfile fileFormat (mp4|3gp) #REQUIRED>
|
||||||
|
<!ATTLIST EncoderProfile duration (30|60) #REQUIRED>
|
||||||
|
<!ATTLIST EncoderProfile cameraId (0|1) #REQUIRED>
|
||||||
|
<!ELEMENT Video EMPTY>
|
||||||
|
<!ATTLIST Video codec (h264|h263|m4v) #REQUIRED>
|
||||||
|
<!ATTLIST Video bitRate CDATA #REQUIRED>
|
||||||
|
<!ATTLIST Video width CDATA #REQUIRED>
|
||||||
|
<!ATTLIST Video height CDATA #REQUIRED>
|
||||||
|
<!ATTLIST Video frameRate CDATA #REQUIRED>
|
||||||
|
<!ELEMENT Audio EMPTY>
|
||||||
|
<!ATTLIST Audio codec (amrnb|amrwb|aac) #REQUIRED>
|
||||||
|
<!ATTLIST Audio bitRate CDATA #REQUIRED>
|
||||||
|
<!ATTLIST Audio sampleRate CDATA #REQUIRED>
|
||||||
|
<!ATTLIST Audio channels (1|2|6) #REQUIRED>
|
||||||
|
<!ELEMENT ImageEncoding EMPTY>
|
||||||
|
<!ATTLIST ImageEncoding quality (90|80|70|60|50|40) #REQUIRED>
|
||||||
|
<!ELEMENT ImageDecoding EMPTY>
|
||||||
|
<!ATTLIST ImageDecoding memCap CDATA #REQUIRED>
|
||||||
|
<!ELEMENT Camera EMPTY>
|
||||||
|
<!ELEMENT EncoderOutputFileFormat EMPTY>
|
||||||
|
<!ATTLIST EncoderOutputFileFormat name (mp4|3gp) #REQUIRED>
|
||||||
|
<!ELEMENT VideoEncoderCap EMPTY>
|
||||||
|
<!ATTLIST VideoEncoderCap name (h264|h263|m4v|wmv) #REQUIRED>
|
||||||
|
<!ATTLIST VideoEncoderCap enabled (true|false) #REQUIRED>
|
||||||
|
<!ATTLIST VideoEncoderCap minBitRate CDATA #REQUIRED>
|
||||||
|
<!ATTLIST VideoEncoderCap maxBitRate CDATA #REQUIRED>
|
||||||
|
<!ATTLIST VideoEncoderCap minFrameWidth CDATA #REQUIRED>
|
||||||
|
<!ATTLIST VideoEncoderCap maxFrameWidth CDATA #REQUIRED>
|
||||||
|
<!ATTLIST VideoEncoderCap minFrameHeight CDATA #REQUIRED>
|
||||||
|
<!ATTLIST VideoEncoderCap maxFrameHeight CDATA #REQUIRED>
|
||||||
|
<!ATTLIST VideoEncoderCap minFrameRate CDATA #REQUIRED>
|
||||||
|
<!ATTLIST VideoEncoderCap maxFrameRate CDATA #REQUIRED>
|
||||||
|
<!ELEMENT AudioEncoderCap EMPTY>
|
||||||
|
<!ATTLIST AudioEncoderCap name (amrnb|amrwb|aac|heaac|aaceld|wma) #REQUIRED>
|
||||||
|
<!ATTLIST AudioEncoderCap enabled (true|false) #REQUIRED>
|
||||||
|
<!ATTLIST AudioEncoderCap minBitRate CDATA #REQUIRED>
|
||||||
|
<!ATTLIST AudioEncoderCap maxBitRate CDATA #REQUIRED>
|
||||||
|
<!ATTLIST AudioEncoderCap minSampleRate CDATA #REQUIRED>
|
||||||
|
<!ATTLIST AudioEncoderCap maxSampleRate CDATA #REQUIRED>
|
||||||
|
<!ATTLIST AudioEncoderCap minChannels (1|2|6) #REQUIRED>
|
||||||
|
<!ATTLIST AudioEncoderCap maxChannels (1|2|6) #REQUIRED>
|
||||||
|
<!ELEMENT VideoDecoderCap EMPTY>
|
||||||
|
<!ATTLIST VideoDecoderCap name (wmv) #REQUIRED>
|
||||||
|
<!ATTLIST VideoDecoderCap enabled (true|false) #REQUIRED>
|
||||||
|
<!ELEMENT AudioDecoderCap EMPTY>
|
||||||
|
<!ATTLIST AudioDecoderCap name (wma) #REQUIRED>
|
||||||
|
<!ATTLIST AudioDecoderCap enabled (true|false) #REQUIRED>
|
||||||
|
]>
|
||||||
|
<!--
|
||||||
|
This file is used to declare the multimedia profiles and capabilities
|
||||||
|
on an android-powered device.
|
||||||
|
-->
|
||||||
|
<MediaSettings>
|
||||||
|
<!-- Each camcorder profile defines a set of predefined configuration parameters -->
|
||||||
|
<!-- Back Camera -->
|
||||||
|
<CamcorderProfiles cameraId="0">
|
||||||
|
|
||||||
|
<EncoderProfile quality="low" fileFormat="3gp" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="128000"
|
||||||
|
width="320"
|
||||||
|
height="240"
|
||||||
|
frameRate="15" />
|
||||||
|
|
||||||
|
<Audio codec="amrnb"
|
||||||
|
bitRate="12200"
|
||||||
|
sampleRate="8000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="high" fileFormat="mp4" duration="10">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="50000000"
|
||||||
|
width="3840"
|
||||||
|
height="2160"
|
||||||
|
frameRate="30" />
|
||||||
|
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="320000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="2" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="qvga" fileFormat="3gp" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="128000"
|
||||||
|
width="320"
|
||||||
|
height="240"
|
||||||
|
frameRate="15" />
|
||||||
|
|
||||||
|
<Audio codec="amrnb"
|
||||||
|
bitRate="12200"
|
||||||
|
sampleRate="8000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="480p" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="6000000"
|
||||||
|
width="720"
|
||||||
|
height="480"
|
||||||
|
frameRate="30" />
|
||||||
|
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="128000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="2" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="720p" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="14000000"
|
||||||
|
width="1280"
|
||||||
|
height="720"
|
||||||
|
frameRate="30" />
|
||||||
|
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="320000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="2" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="1080p" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="20000000"
|
||||||
|
width="1920"
|
||||||
|
height="1080"
|
||||||
|
frameRate="30" />
|
||||||
|
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="320000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="2" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="anamorphic1920" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="20000000"
|
||||||
|
width="1920"
|
||||||
|
height="816"
|
||||||
|
frameRate="30" />
|
||||||
|
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="320000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="2" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<!-- CAMCORDER_QUALITY_HIGH_SPEED_LOW/720P : 720p@240fps; 56.0 Mbps -->
|
||||||
|
<EncoderProfile quality="highspeedlow" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="56000000"
|
||||||
|
width="1280"
|
||||||
|
height="720"
|
||||||
|
frameRate="240" />
|
||||||
|
<!-- audio setting is ignored -->
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="96000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<!-- CAMCORDER_QUALITY_HIGH_SPEED_HIGH/1080P : 1080p@120fps; 50.0 Mbps -->
|
||||||
|
<EncoderProfile quality="highspeedhigh" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="50000000"
|
||||||
|
width="1920"
|
||||||
|
height="1080"
|
||||||
|
frameRate="120" />
|
||||||
|
<!-- audio setting is ignored -->
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="96000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="highspeed720p" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="56000000"
|
||||||
|
width="1280"
|
||||||
|
height="720"
|
||||||
|
frameRate="240" />
|
||||||
|
<!-- audio setting is ignored -->
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="96000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="highspeed1080p" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="50000000"
|
||||||
|
width="1920"
|
||||||
|
height="1080"
|
||||||
|
frameRate="120" />
|
||||||
|
<!-- audio setting is ignored -->
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="96000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="2160p" fileFormat="mp4" duration="10">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="50000000"
|
||||||
|
width="3840"
|
||||||
|
height="2160"
|
||||||
|
frameRate="30" />
|
||||||
|
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="320000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="2" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="anamorphic3840" fileFormat="mp4" duration="10">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="50000000"
|
||||||
|
width="3840"
|
||||||
|
height="1632"
|
||||||
|
frameRate="30" />
|
||||||
|
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="320000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="2" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="timelapselow" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="512000"
|
||||||
|
width="320"
|
||||||
|
height="240"
|
||||||
|
frameRate="30" />
|
||||||
|
|
||||||
|
<!-- audio setting is ignored -->
|
||||||
|
<Audio codec="amrnb"
|
||||||
|
bitRate="12200"
|
||||||
|
sampleRate="8000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="timelapsehigh" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="50000000"
|
||||||
|
width="3840"
|
||||||
|
height="2160"
|
||||||
|
frameRate="30" />
|
||||||
|
|
||||||
|
<!-- audio setting is ignored -->
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="128000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="2" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="timelapseqvga" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="512000"
|
||||||
|
width="320"
|
||||||
|
height="240"
|
||||||
|
frameRate="30" />
|
||||||
|
|
||||||
|
<!-- audio setting is ignored -->
|
||||||
|
<Audio codec="amrnb"
|
||||||
|
bitRate="12200"
|
||||||
|
sampleRate="8000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="6000000"
|
||||||
|
width="640"
|
||||||
|
height="480"
|
||||||
|
frameRate="30" />
|
||||||
|
|
||||||
|
<!-- audio setting is ignored -->
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="128000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="2" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="10000000"
|
||||||
|
width="1280"
|
||||||
|
height="720"
|
||||||
|
frameRate="30" />
|
||||||
|
|
||||||
|
<!-- audio setting is ignored -->
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="128000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="2" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="20000000"
|
||||||
|
width="1920"
|
||||||
|
height="1080"
|
||||||
|
frameRate="30" />
|
||||||
|
|
||||||
|
<!-- audio setting is ignored -->
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="128000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="2" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="timelapse2160p" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="50000000"
|
||||||
|
width="3840"
|
||||||
|
height="2160"
|
||||||
|
frameRate="30" />
|
||||||
|
|
||||||
|
<!-- audio setting is ignored -->
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="128000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="2" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
|
||||||
|
<ImageEncoding quality="95" />
|
||||||
|
<ImageEncoding quality="80" />
|
||||||
|
<ImageEncoding quality="70" />
|
||||||
|
<ImageDecoding memCap="20000000" />
|
||||||
|
|
||||||
|
</CamcorderProfiles>
|
||||||
|
<!-- Front Camera -->
|
||||||
|
<CamcorderProfiles cameraId="1">
|
||||||
|
|
||||||
|
<EncoderProfile quality="low" fileFormat="3gp" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="128000"
|
||||||
|
width="320"
|
||||||
|
height="240"
|
||||||
|
frameRate="15" />
|
||||||
|
|
||||||
|
<Audio codec="amrnb"
|
||||||
|
bitRate="12200"
|
||||||
|
sampleRate="8000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="high" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="17000000"
|
||||||
|
width="1920"
|
||||||
|
height="1080"
|
||||||
|
frameRate="30" />
|
||||||
|
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="320000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="2" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="qvga" fileFormat="3gp" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="128000"
|
||||||
|
width="320"
|
||||||
|
height="240"
|
||||||
|
frameRate="15" />
|
||||||
|
|
||||||
|
<Audio codec="amrnb"
|
||||||
|
bitRate="12200"
|
||||||
|
sampleRate="8000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="480p" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="6000000"
|
||||||
|
width="720"
|
||||||
|
height="480"
|
||||||
|
frameRate="30" />
|
||||||
|
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="128000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="2" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="720p" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="10000000"
|
||||||
|
width="1280"
|
||||||
|
height="720"
|
||||||
|
frameRate="30" />
|
||||||
|
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="320000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="2" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="1080p" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="17000000"
|
||||||
|
width="1920"
|
||||||
|
height="1080"
|
||||||
|
frameRate="30" />
|
||||||
|
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="320000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="2" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="anamorphic1920" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="20000000"
|
||||||
|
width="1920"
|
||||||
|
height="816"
|
||||||
|
frameRate="30" />
|
||||||
|
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="320000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="2" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="highspeedlow" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="17000000"
|
||||||
|
width="640"
|
||||||
|
height="480"
|
||||||
|
frameRate="120" />
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="96000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="highspeedhigh" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="17000000"
|
||||||
|
width="640"
|
||||||
|
height="480"
|
||||||
|
frameRate="120" />
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="96000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="highspeed480p" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="17000000"
|
||||||
|
width="640"
|
||||||
|
height="480"
|
||||||
|
frameRate="120" />
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="96000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="timelapselow" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="512000"
|
||||||
|
width="320"
|
||||||
|
height="240"
|
||||||
|
frameRate="30" />
|
||||||
|
|
||||||
|
<!-- audio setting is ignored -->
|
||||||
|
<Audio codec="amrnb"
|
||||||
|
bitRate="12200"
|
||||||
|
sampleRate="8000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="timelapsehigh" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="17000000"
|
||||||
|
width="1920"
|
||||||
|
height="1080"
|
||||||
|
frameRate="30" />
|
||||||
|
|
||||||
|
<!-- audio setting is ignored -->
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="128000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="2" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="timelapseqvga" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="512000"
|
||||||
|
width="320"
|
||||||
|
height="240"
|
||||||
|
frameRate="30" />
|
||||||
|
|
||||||
|
<!-- audio setting is ignored -->
|
||||||
|
<Audio codec="amrnb"
|
||||||
|
bitRate="12200"
|
||||||
|
sampleRate="8000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="6000000"
|
||||||
|
width="640"
|
||||||
|
height="480"
|
||||||
|
frameRate="30" />
|
||||||
|
|
||||||
|
<!-- audio setting is ignored -->
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="128000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="2" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="10000000"
|
||||||
|
width="1280"
|
||||||
|
height="720"
|
||||||
|
frameRate="30" />
|
||||||
|
|
||||||
|
<!-- audio setting is ignored -->
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="128000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="2" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="17000000"
|
||||||
|
width="1920"
|
||||||
|
height="1080"
|
||||||
|
frameRate="30" />
|
||||||
|
|
||||||
|
<!-- audio setting is ignored -->
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="128000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="2" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
|
||||||
|
<ImageEncoding quality="95" />
|
||||||
|
<ImageEncoding quality="80" />
|
||||||
|
<ImageEncoding quality="70" />
|
||||||
|
<ImageDecoding memCap="20000000" />
|
||||||
|
|
||||||
|
</CamcorderProfiles>
|
||||||
|
|
||||||
|
<EncoderOutputFileFormat name="3gp" />
|
||||||
|
<EncoderOutputFileFormat name="mp4" />
|
||||||
|
|
||||||
|
<!--
|
||||||
|
If a codec is not enabled, it is invisible to the applications
|
||||||
|
In other words, the applications won't be able to use the codec
|
||||||
|
or query the capabilities of the codec at all if it is disabled
|
||||||
|
-->
|
||||||
|
<VideoEncoderCap name="h264" enabled="true"
|
||||||
|
minBitRate="64000" maxBitRate="60000000"
|
||||||
|
minFrameWidth="176" maxFrameWidth="3840"
|
||||||
|
minFrameHeight="144" maxFrameHeight="2160"
|
||||||
|
minFrameRate="15" maxFrameRate="60" />
|
||||||
|
|
||||||
|
<VideoEncoderCap name="h263" enabled="true"
|
||||||
|
minBitRate="64000" maxBitRate="2000000"
|
||||||
|
minFrameWidth="176" maxFrameWidth="720"
|
||||||
|
minFrameHeight="144" maxFrameHeight="480"
|
||||||
|
minFrameRate="15" maxFrameRate="30" />
|
||||||
|
|
||||||
|
<VideoEncoderCap name="m4v" enabled="true"
|
||||||
|
minBitRate="64000" maxBitRate="20000000"
|
||||||
|
minFrameWidth="176" maxFrameWidth="1920"
|
||||||
|
minFrameHeight="144" maxFrameHeight="1080"
|
||||||
|
minFrameRate="15" maxFrameRate="30" />
|
||||||
|
|
||||||
|
<AudioEncoderCap name="aac" enabled="true"
|
||||||
|
minBitRate="8000" maxBitRate="512000"
|
||||||
|
minSampleRate="8000" maxSampleRate="48000"
|
||||||
|
minChannels="1" maxChannels="4" />
|
||||||
|
|
||||||
|
<AudioEncoderCap name="heaac" enabled="true"
|
||||||
|
minBitRate="8000" maxBitRate="128000"
|
||||||
|
minSampleRate="16000" maxSampleRate="48000"
|
||||||
|
minChannels="1" maxChannels="2" />
|
||||||
|
|
||||||
|
<AudioEncoderCap name="aaceld" enabled="true"
|
||||||
|
minBitRate="16000" maxBitRate="384000"
|
||||||
|
minSampleRate="16000" maxSampleRate="48000"
|
||||||
|
minChannels="1" maxChannels="2" />
|
||||||
|
|
||||||
|
<AudioEncoderCap name="amrwb" enabled="true"
|
||||||
|
minBitRate="6600" maxBitRate="23850"
|
||||||
|
minSampleRate="16000" maxSampleRate="16000"
|
||||||
|
minChannels="1" maxChannels="1" />
|
||||||
|
|
||||||
|
<AudioEncoderCap name="amrnb" enabled="true"
|
||||||
|
minBitRate="5525" maxBitRate="12200"
|
||||||
|
minSampleRate="8000" maxSampleRate="8000"
|
||||||
|
minChannels="1" maxChannels="1" />
|
||||||
|
<!--
|
||||||
|
FIXME:
|
||||||
|
We do not check decoder capabilities at present
|
||||||
|
At present, we only check whether windows media is visible
|
||||||
|
for TEST applications. For other applications, we do
|
||||||
|
not perform any checks at all.
|
||||||
|
-->
|
||||||
|
<!-- IKVPREL2KK-2424 Disable WMV and WMA support -->
|
||||||
|
<VideoDecoderCap name="wmv" enabled="false"/>
|
||||||
|
<AudioDecoderCap name="wma" enabled="false"/>
|
||||||
|
</MediaSettings>
|
867
media/media_profiles_V1_0.xml
Normal file
867
media/media_profiles_V1_0.xml
Normal file
|
@ -0,0 +1,867 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Copyright 2013 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.
|
||||||
|
-->
|
||||||
|
<!DOCTYPE MediaSettings [
|
||||||
|
<!ELEMENT MediaSettings (CamcorderProfiles,
|
||||||
|
EncoderOutputFileFormat+,
|
||||||
|
VideoEncoderCap+,
|
||||||
|
AudioEncoderCap+,
|
||||||
|
VideoDecoderCap,
|
||||||
|
AudioDecoderCap)>
|
||||||
|
<!ELEMENT CamcorderProfiles (EncoderProfile+, ImageEncoding+, ImageDecoding, Camera)>
|
||||||
|
<!ELEMENT EncoderProfile (Video, Audio)>
|
||||||
|
<!ATTLIST EncoderProfile quality (high|low) #REQUIRED>
|
||||||
|
<!ATTLIST EncoderProfile fileFormat (mp4|3gp) #REQUIRED>
|
||||||
|
<!ATTLIST EncoderProfile duration (30|60) #REQUIRED>
|
||||||
|
<!ATTLIST EncoderProfile cameraId (0|1|2|3|4|5) #REQUIRED>
|
||||||
|
<!ELEMENT Video EMPTY>
|
||||||
|
<!ATTLIST Video codec (h264|h263|m4v) #REQUIRED>
|
||||||
|
<!ATTLIST Video bitRate CDATA #REQUIRED>
|
||||||
|
<!ATTLIST Video width CDATA #REQUIRED>
|
||||||
|
<!ATTLIST Video height CDATA #REQUIRED>
|
||||||
|
<!ATTLIST Video frameRate CDATA #REQUIRED>
|
||||||
|
<!ELEMENT Audio EMPTY>
|
||||||
|
<!ATTLIST Audio codec (amrnb|amrwb|aac) #REQUIRED>
|
||||||
|
<!ATTLIST Audio bitRate CDATA #REQUIRED>
|
||||||
|
<!ATTLIST Audio sampleRate CDATA #REQUIRED>
|
||||||
|
<!ATTLIST Audio channels (1|2) #REQUIRED>
|
||||||
|
<!ELEMENT ImageEncoding EMPTY>
|
||||||
|
<!ATTLIST ImageEncoding quality (90|80|70|60|50|40) #REQUIRED>
|
||||||
|
<!ELEMENT ImageDecoding EMPTY>
|
||||||
|
<!ATTLIST ImageDecoding memCap CDATA #REQUIRED>
|
||||||
|
<!ELEMENT Camera EMPTY>
|
||||||
|
<!ELEMENT EncoderOutputFileFormat EMPTY>
|
||||||
|
<!ATTLIST EncoderOutputFileFormat name (mp4|3gp) #REQUIRED>
|
||||||
|
<!ELEMENT VideoEncoderCap EMPTY>
|
||||||
|
<!ATTLIST VideoEncoderCap name (h264|h263|m4v|wmv) #REQUIRED>
|
||||||
|
<!ATTLIST VideoEncoderCap enabled (true|false) #REQUIRED>
|
||||||
|
<!ATTLIST VideoEncoderCap minBitRate CDATA #REQUIRED>
|
||||||
|
<!ATTLIST VideoEncoderCap maxBitRate CDATA #REQUIRED>
|
||||||
|
<!ATTLIST VideoEncoderCap minFrameWidth CDATA #REQUIRED>
|
||||||
|
<!ATTLIST VideoEncoderCap maxFrameWidth CDATA #REQUIRED>
|
||||||
|
<!ATTLIST VideoEncoderCap minFrameHeight CDATA #REQUIRED>
|
||||||
|
<!ATTLIST VideoEncoderCap maxFrameHeight CDATA #REQUIRED>
|
||||||
|
<!ATTLIST VideoEncoderCap minFrameRate CDATA #REQUIRED>
|
||||||
|
<!ATTLIST VideoEncoderCap maxFrameRate CDATA #REQUIRED>
|
||||||
|
<!ELEMENT AudioEncoderCap EMPTY>
|
||||||
|
<!ATTLIST AudioEncoderCap name (amrnb|amrwb|aac|wma) #REQUIRED>
|
||||||
|
<!ATTLIST AudioEncoderCap enabled (true|false) #REQUIRED>
|
||||||
|
<!ATTLIST AudioEncoderCap minBitRate CDATA #REQUIRED>
|
||||||
|
<!ATTLIST AudioEncoderCap maxBitRate CDATA #REQUIRED>
|
||||||
|
<!ATTLIST AudioEncoderCap minSampleRate CDATA #REQUIRED>
|
||||||
|
<!ATTLIST AudioEncoderCap maxSampleRate CDATA #REQUIRED>
|
||||||
|
<!ATTLIST AudioEncoderCap minChannels (1|2) #REQUIRED>
|
||||||
|
<!ATTLIST AudioEncoderCap maxChannels (1|2) #REQUIRED>
|
||||||
|
<!ELEMENT VideoDecoderCap EMPTY>
|
||||||
|
<!ATTLIST VideoDecoderCap name (wmv) #REQUIRED>
|
||||||
|
<!ATTLIST VideoDecoderCap enabled (true|false) #REQUIRED>
|
||||||
|
<!ELEMENT AudioDecoderCap EMPTY>
|
||||||
|
<!ATTLIST AudioDecoderCap name (wma) #REQUIRED>
|
||||||
|
<!ATTLIST AudioDecoderCap enabled (true|false) #REQUIRED>
|
||||||
|
]>
|
||||||
|
<!--
|
||||||
|
This file is used to declare the multimedia profiles and capabilities
|
||||||
|
on an android-powered device.
|
||||||
|
-->
|
||||||
|
<MediaSettings>
|
||||||
|
<!-- Each camcorder profile defines a set of predefined configuration parameters -->
|
||||||
|
<CamcorderProfiles cameraId="0">
|
||||||
|
|
||||||
|
<EncoderProfile quality="qvga" fileFormat="3gp" duration="60">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="128000"
|
||||||
|
width="320"
|
||||||
|
height="240"
|
||||||
|
frameRate="30" />
|
||||||
|
<Audio codec="amrnb"
|
||||||
|
bitRate="12200"
|
||||||
|
sampleRate="8000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="cif" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="1200000"
|
||||||
|
width="352"
|
||||||
|
height="288"
|
||||||
|
frameRate="30" />
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="96000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="480p" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="6000000"
|
||||||
|
width="720"
|
||||||
|
height="480"
|
||||||
|
frameRate="30" />
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="96000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="720p" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="12000000"
|
||||||
|
width="1280"
|
||||||
|
height="720"
|
||||||
|
frameRate="30" />
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="96000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="1080p" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="17000000"
|
||||||
|
width="1920"
|
||||||
|
height="1080"
|
||||||
|
frameRate="30" />
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="96000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="192000"
|
||||||
|
width="176"
|
||||||
|
height="144"
|
||||||
|
frameRate="30" />
|
||||||
|
<!-- audio setting is ignored -->
|
||||||
|
<Audio codec="amrnb"
|
||||||
|
bitRate="12200"
|
||||||
|
sampleRate="8000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="1200000"
|
||||||
|
width="352"
|
||||||
|
height="288"
|
||||||
|
frameRate="30" />
|
||||||
|
<!-- audio setting is ignored -->
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="96000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="6000000"
|
||||||
|
width="720"
|
||||||
|
height="480"
|
||||||
|
frameRate="30" />
|
||||||
|
<!-- audio setting is ignored -->
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="96000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="12000000"
|
||||||
|
width="1280"
|
||||||
|
height="720"
|
||||||
|
frameRate="30" />
|
||||||
|
<!-- audio setting is ignored -->
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="96000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="17000000"
|
||||||
|
width="1920"
|
||||||
|
height="1080"
|
||||||
|
frameRate="30" />
|
||||||
|
<!-- audio setting is ignored -->
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="96000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<ImageEncoding quality="95" />
|
||||||
|
<ImageEncoding quality="80" />
|
||||||
|
<ImageEncoding quality="70" />
|
||||||
|
<ImageDecoding memCap="20000000" />
|
||||||
|
|
||||||
|
</CamcorderProfiles>
|
||||||
|
|
||||||
|
<CamcorderProfiles cameraId="1">
|
||||||
|
|
||||||
|
<EncoderProfile quality="qvga" fileFormat="3gp" duration="60">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="128000"
|
||||||
|
width="320"
|
||||||
|
height="240"
|
||||||
|
frameRate="30" />
|
||||||
|
<Audio codec="amrnb"
|
||||||
|
bitRate="12200"
|
||||||
|
sampleRate="8000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="cif" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="1200000"
|
||||||
|
width="352"
|
||||||
|
height="288"
|
||||||
|
frameRate="30" />
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="96000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="480p" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="6000000"
|
||||||
|
width="720"
|
||||||
|
height="480"
|
||||||
|
frameRate="30" />
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="96000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="720p" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="12000000"
|
||||||
|
width="1280"
|
||||||
|
height="720"
|
||||||
|
frameRate="30" />
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="96000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="192000"
|
||||||
|
width="176"
|
||||||
|
height="144"
|
||||||
|
frameRate="30" />
|
||||||
|
<!-- audio setting is ignored -->
|
||||||
|
<Audio codec="amrnb"
|
||||||
|
bitRate="12200"
|
||||||
|
sampleRate="8000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="1200000"
|
||||||
|
width="352"
|
||||||
|
height="288"
|
||||||
|
frameRate="30" />
|
||||||
|
<!-- audio setting is ignored -->
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="96000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="6000000"
|
||||||
|
width="720"
|
||||||
|
height="480"
|
||||||
|
frameRate="30" />
|
||||||
|
<!-- audio setting is ignored -->
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="96000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="12000000"
|
||||||
|
width="1280"
|
||||||
|
height="720"
|
||||||
|
frameRate="30" />
|
||||||
|
<!-- audio setting is ignored -->
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="96000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<ImageEncoding quality="95" />
|
||||||
|
<ImageEncoding quality="80" />
|
||||||
|
<ImageEncoding quality="70" />
|
||||||
|
<ImageDecoding memCap="20000000" />
|
||||||
|
|
||||||
|
</CamcorderProfiles>
|
||||||
|
<CamcorderProfiles cameraId="2">
|
||||||
|
|
||||||
|
<EncoderProfile quality="qvga" fileFormat="3gp" duration="60">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="128000"
|
||||||
|
width="320"
|
||||||
|
height="240"
|
||||||
|
frameRate="30" />
|
||||||
|
<Audio codec="amrnb"
|
||||||
|
bitRate="12200"
|
||||||
|
sampleRate="8000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="cif" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="1200000"
|
||||||
|
width="352"
|
||||||
|
height="288"
|
||||||
|
frameRate="30" />
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="96000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="480p" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="6000000"
|
||||||
|
width="720"
|
||||||
|
height="480"
|
||||||
|
frameRate="30" />
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="96000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="720p" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="12000000"
|
||||||
|
width="1280"
|
||||||
|
height="720"
|
||||||
|
frameRate="30" />
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="96000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="1080p" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="17000000"
|
||||||
|
width="1920"
|
||||||
|
height="1080"
|
||||||
|
frameRate="30" />
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="96000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="192000"
|
||||||
|
width="176"
|
||||||
|
height="144"
|
||||||
|
frameRate="30" />
|
||||||
|
<!-- audio setting is ignored -->
|
||||||
|
<Audio codec="amrnb"
|
||||||
|
bitRate="12200"
|
||||||
|
sampleRate="8000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="1200000"
|
||||||
|
width="352"
|
||||||
|
height="288"
|
||||||
|
frameRate="30" />
|
||||||
|
<!-- audio setting is ignored -->
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="96000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="6000000"
|
||||||
|
width="720"
|
||||||
|
height="480"
|
||||||
|
frameRate="30" />
|
||||||
|
<!-- audio setting is ignored -->
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="96000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="12000000"
|
||||||
|
width="1280"
|
||||||
|
height="720"
|
||||||
|
frameRate="30" />
|
||||||
|
<!-- audio setting is ignored -->
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="96000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="17000000"
|
||||||
|
width="1920"
|
||||||
|
height="1080"
|
||||||
|
frameRate="30" />
|
||||||
|
<!-- audio setting is ignored -->
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="96000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<ImageEncoding quality="95" />
|
||||||
|
<ImageEncoding quality="80" />
|
||||||
|
<ImageEncoding quality="70" />
|
||||||
|
<ImageDecoding memCap="20000000" />
|
||||||
|
|
||||||
|
</CamcorderProfiles>
|
||||||
|
|
||||||
|
<CamcorderProfiles cameraId="3">
|
||||||
|
|
||||||
|
<EncoderProfile quality="qvga" fileFormat="3gp" duration="60">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="128000"
|
||||||
|
width="320"
|
||||||
|
height="240"
|
||||||
|
frameRate="30" />
|
||||||
|
<Audio codec="amrnb"
|
||||||
|
bitRate="12200"
|
||||||
|
sampleRate="8000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="cif" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="1200000"
|
||||||
|
width="352"
|
||||||
|
height="288"
|
||||||
|
frameRate="30" />
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="96000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="480p" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="6000000"
|
||||||
|
width="720"
|
||||||
|
height="480"
|
||||||
|
frameRate="30" />
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="96000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="720p" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="12000000"
|
||||||
|
width="1280"
|
||||||
|
height="720"
|
||||||
|
frameRate="30" />
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="96000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="192000"
|
||||||
|
width="176"
|
||||||
|
height="144"
|
||||||
|
frameRate="30" />
|
||||||
|
<!-- audio setting is ignored -->
|
||||||
|
<Audio codec="amrnb"
|
||||||
|
bitRate="12200"
|
||||||
|
sampleRate="8000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="1200000"
|
||||||
|
width="352"
|
||||||
|
height="288"
|
||||||
|
frameRate="30" />
|
||||||
|
<!-- audio setting is ignored -->
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="96000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="6000000"
|
||||||
|
width="720"
|
||||||
|
height="480"
|
||||||
|
frameRate="30" />
|
||||||
|
<!-- audio setting is ignored -->
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="96000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="12000000"
|
||||||
|
width="1280"
|
||||||
|
height="720"
|
||||||
|
frameRate="30" />
|
||||||
|
<!-- audio setting is ignored -->
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="96000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<ImageEncoding quality="95" />
|
||||||
|
<ImageEncoding quality="80" />
|
||||||
|
<ImageEncoding quality="70" />
|
||||||
|
<ImageDecoding memCap="20000000" />
|
||||||
|
|
||||||
|
</CamcorderProfiles>
|
||||||
|
<CamcorderProfiles cameraId="4">
|
||||||
|
|
||||||
|
<EncoderProfile quality="qvga" fileFormat="3gp" duration="60">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="128000"
|
||||||
|
width="320"
|
||||||
|
height="240"
|
||||||
|
frameRate="30" />
|
||||||
|
<Audio codec="amrnb"
|
||||||
|
bitRate="12200"
|
||||||
|
sampleRate="8000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="cif" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="1200000"
|
||||||
|
width="352"
|
||||||
|
height="288"
|
||||||
|
frameRate="30" />
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="96000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="480p" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="6000000"
|
||||||
|
width="720"
|
||||||
|
height="480"
|
||||||
|
frameRate="30" />
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="96000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="720p" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="12000000"
|
||||||
|
width="1280"
|
||||||
|
height="720"
|
||||||
|
frameRate="30" />
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="96000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="1080p" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="17000000"
|
||||||
|
width="1920"
|
||||||
|
height="1080"
|
||||||
|
frameRate="30" />
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="96000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="192000"
|
||||||
|
width="176"
|
||||||
|
height="144"
|
||||||
|
frameRate="30" />
|
||||||
|
<!-- audio setting is ignored -->
|
||||||
|
<Audio codec="amrnb"
|
||||||
|
bitRate="12200"
|
||||||
|
sampleRate="8000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="1200000"
|
||||||
|
width="352"
|
||||||
|
height="288"
|
||||||
|
frameRate="30" />
|
||||||
|
<!-- audio setting is ignored -->
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="96000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="6000000"
|
||||||
|
width="720"
|
||||||
|
height="480"
|
||||||
|
frameRate="30" />
|
||||||
|
<!-- audio setting is ignored -->
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="96000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="12000000"
|
||||||
|
width="1280"
|
||||||
|
height="720"
|
||||||
|
frameRate="30" />
|
||||||
|
<!-- audio setting is ignored -->
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="96000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="17000000"
|
||||||
|
width="1920"
|
||||||
|
height="1080"
|
||||||
|
frameRate="30" />
|
||||||
|
<!-- audio setting is ignored -->
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="96000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<ImageEncoding quality="95" />
|
||||||
|
<ImageEncoding quality="80" />
|
||||||
|
<ImageEncoding quality="70" />
|
||||||
|
<ImageDecoding memCap="20000000" />
|
||||||
|
|
||||||
|
</CamcorderProfiles>
|
||||||
|
|
||||||
|
<CamcorderProfiles cameraId="5">
|
||||||
|
|
||||||
|
<EncoderProfile quality="qvga" fileFormat="3gp" duration="60">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="128000"
|
||||||
|
width="320"
|
||||||
|
height="240"
|
||||||
|
frameRate="30" />
|
||||||
|
<Audio codec="amrnb"
|
||||||
|
bitRate="12200"
|
||||||
|
sampleRate="8000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="cif" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="1200000"
|
||||||
|
width="352"
|
||||||
|
height="288"
|
||||||
|
frameRate="30" />
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="96000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="480p" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="6000000"
|
||||||
|
width="720"
|
||||||
|
height="480"
|
||||||
|
frameRate="30" />
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="96000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="720p" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="12000000"
|
||||||
|
width="1280"
|
||||||
|
height="720"
|
||||||
|
frameRate="30" />
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="96000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="192000"
|
||||||
|
width="176"
|
||||||
|
height="144"
|
||||||
|
frameRate="30" />
|
||||||
|
<!-- audio setting is ignored -->
|
||||||
|
<Audio codec="amrnb"
|
||||||
|
bitRate="12200"
|
||||||
|
sampleRate="8000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="1200000"
|
||||||
|
width="352"
|
||||||
|
height="288"
|
||||||
|
frameRate="30" />
|
||||||
|
<!-- audio setting is ignored -->
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="96000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="6000000"
|
||||||
|
width="720"
|
||||||
|
height="480"
|
||||||
|
frameRate="30" />
|
||||||
|
<!-- audio setting is ignored -->
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="96000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="30">
|
||||||
|
<Video codec="h264"
|
||||||
|
bitRate="12000000"
|
||||||
|
width="1280"
|
||||||
|
height="720"
|
||||||
|
frameRate="30" />
|
||||||
|
<!-- audio setting is ignored -->
|
||||||
|
<Audio codec="aac"
|
||||||
|
bitRate="96000"
|
||||||
|
sampleRate="48000"
|
||||||
|
channels="1" />
|
||||||
|
</EncoderProfile>
|
||||||
|
|
||||||
|
<ImageEncoding quality="95" />
|
||||||
|
<ImageEncoding quality="80" />
|
||||||
|
<ImageEncoding quality="70" />
|
||||||
|
<ImageDecoding memCap="20000000" />
|
||||||
|
|
||||||
|
</CamcorderProfiles>
|
||||||
|
|
||||||
|
<EncoderOutputFileFormat name="3gp" />
|
||||||
|
<EncoderOutputFileFormat name="mp4" />
|
||||||
|
|
||||||
|
<!--
|
||||||
|
If a codec is not enabled, it is invisible to the applications
|
||||||
|
In other words, the applications won't be able to use the codec
|
||||||
|
or query the capabilities of the codec at all if it is disabled
|
||||||
|
-->
|
||||||
|
<VideoEncoderCap name="h264" enabled="true"
|
||||||
|
minBitRate="64000" maxBitRate="40000000"
|
||||||
|
minFrameWidth="176" maxFrameWidth="1920"
|
||||||
|
minFrameHeight="144" maxFrameHeight="1080"
|
||||||
|
minFrameRate="15" maxFrameRate="30" />
|
||||||
|
|
||||||
|
<VideoEncoderCap name="h263" enabled="true"
|
||||||
|
minBitRate="64000" maxBitRate="2000000"
|
||||||
|
minFrameWidth="176" maxFrameWidth="800"
|
||||||
|
minFrameHeight="144" maxFrameHeight="480"
|
||||||
|
minFrameRate="15" maxFrameRate="30" />
|
||||||
|
|
||||||
|
<VideoEncoderCap name="m4v" enabled="true"
|
||||||
|
minBitRate="64000" maxBitRate="40000000"
|
||||||
|
minFrameWidth="176" maxFrameWidth="1920"
|
||||||
|
minFrameHeight="144" maxFrameHeight="1080"
|
||||||
|
minFrameRate="15" maxFrameRate="30" />
|
||||||
|
|
||||||
|
<AudioEncoderCap name="aac" enabled="true"
|
||||||
|
minBitRate="758" maxBitRate="288000"
|
||||||
|
minSampleRate="8000" maxSampleRate="48000"
|
||||||
|
minChannels="1" maxChannels="2" />
|
||||||
|
|
||||||
|
<AudioEncoderCap name="heaac" enabled="true"
|
||||||
|
minBitRate="8000" maxBitRate="64000"
|
||||||
|
minSampleRate="16000" maxSampleRate="48000"
|
||||||
|
minChannels="1" maxChannels="2" />
|
||||||
|
|
||||||
|
<AudioEncoderCap name="aaceld" enabled="true"
|
||||||
|
minBitRate="16000" maxBitRate="192000"
|
||||||
|
minSampleRate="16000" maxSampleRate="48000"
|
||||||
|
minChannels="1" maxChannels="2" />
|
||||||
|
|
||||||
|
<AudioEncoderCap name="amrwb" enabled="true"
|
||||||
|
minBitRate="6600" maxBitRate="23050"
|
||||||
|
minSampleRate="16000" maxSampleRate="16000"
|
||||||
|
minChannels="1" maxChannels="1" />
|
||||||
|
|
||||||
|
<AudioEncoderCap name="amrnb" enabled="true"
|
||||||
|
minBitRate="5525" maxBitRate="12200"
|
||||||
|
minSampleRate="8000" maxSampleRate="8000"
|
||||||
|
minChannels="1" maxChannels="1" />
|
||||||
|
|
||||||
|
<!--
|
||||||
|
FIXME:
|
||||||
|
We do not check decoder capabilities at present
|
||||||
|
At present, we only check whether windows media is visible
|
||||||
|
for TEST applications. For other applications, we do
|
||||||
|
not perform any checks at all.
|
||||||
|
-->
|
||||||
|
<VideoDecoderCap name="wmv" enabled="false"/>
|
||||||
|
<AudioDecoderCap name="wma" enabled="false"/>
|
||||||
|
</MediaSettings>
|
1197
media/media_profiles_scuba.xml
Normal file
1197
media/media_profiles_scuba.xml
Normal file
File diff suppressed because it is too large
Load diff
1206
media/media_profiles_vendor.xml
Normal file
1206
media/media_profiles_vendor.xml
Normal file
File diff suppressed because it is too large
Load diff
42
media/system_properties.xml
Normal file
42
media/system_properties.xml
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||||
|
<!--
|
||||||
|
Copyright (c) 2017,2019 The Linux Foundation. All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are
|
||||||
|
met:
|
||||||
|
* Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above
|
||||||
|
copyright notice, this list of conditions and the following
|
||||||
|
disclaimer in the documentation and/or other materials provided
|
||||||
|
with the distribution.
|
||||||
|
* Neither the name of The Linux Foundation nor the names of its
|
||||||
|
contributors may be used to endorse or promote products derived
|
||||||
|
from this software without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
|
||||||
|
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
|
||||||
|
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
|
||||||
|
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||||
|
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||||
|
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
||||||
|
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||||
|
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
-->
|
||||||
|
<configs>
|
||||||
|
<property name="vidc_dec_log_in" value="0"/>
|
||||||
|
<property name="vidc_dec_log_out" value="0"/>
|
||||||
|
<property name="vidc_dec_hfr_fps" value="0"/>
|
||||||
|
<property name="vidc_enc_log_in" value="0"/>
|
||||||
|
<property name="vidc_enc_log_out" value="0"/>
|
||||||
|
<property name="vidc_enc_csc_custom_matrix" value="0"/>
|
||||||
|
<property name="vidc_c2d_rotation" value="1"/>
|
||||||
|
<!-- Bitmask for arb mode: 1: AVC, 2: HEVC, 4: MPEG2 -->
|
||||||
|
<property name="vidc_dec_arb_mode_override" value="7"/>
|
||||||
|
<!-- Bitmask for hdr disable mode: 1: dec, 2: enc -->
|
||||||
|
<property name="vidc_disable_hdr" value="3"/>
|
||||||
|
</configs>
|
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources>
|
||||||
|
<!-- The list of vendor package signatures that should also be considered
|
||||||
|
platform signatures, specifically for use on devices with a vendor partition. -->
|
||||||
|
<string-array name="config_vendorPlatformSignatures">
|
||||||
|
<item>308203c2308202aaa00302010202021387300d06092a864886f70d01010b05003076310b30090603550406130255533111300f06035504080c08496c6c696e6f69733115301306035504070c0c4c69626572747976696c6c653111300f060355040a0c084d6f746f726f6c61310c300a060355040b0c034d4462311c301a06035504030c134d41503420506c6174666f726d203436362d31301e170d3230303132323134343731395a170d3435303132323134343731395a3075310b30090603550406130255533111300f06035504080c08496c6c696e6f69733110300e06035504070c074368696361676f3111300f060355040a0c084d6f746f726f6c61310c300a060355040b0c034d42473120301e06035504030c174d41503520506c6174666f726d203436362d312d32343630820122300d06092a864886f70d01010105000382010f003082010a0282010100a423208a6f02a47f04ca4cde96ea1f4cae4b1d837239a361ac7f282fb9ff70e6096ae34b648470bd8e7c86572ef9a09192d335455d0ebb67b53ea9ddaa88c3f1fa2d296ae1bfe6251ca4532a3ea1964e0b3f07afe8ea80f4e2c546b3f92c116ac94375941b57e9eb1a71a2d62f85f8e851c62f300579995a920d9cb221e7378bb89be6fb05a97fa5133cf755b9ad1ba07ccfbc61130b19df8ded21ce84d9e4a545c5a1419922f666b24612fe678b82587591ba4c75c2eb6a6ac67e2886101992be51e6353e48e91a8d03c7e2ae816667911c138b160d80ec9a797b561de2caf264fa9fe3c278e579910bac986f3a7d0ee8ecac851c56bc83286b17cab002844f0203010001a35b3059301f0603551d23041830168014a4b3e27d57c49a05b1c5578d791e7779aea18ebb301106096086480186f8420101040403020410300e0603551d0f0101ff0404030205e030130603551d25040c300a06082b06010505070303300d06092a864886f70d01010b050003820101009fad7dbe07b724f75ebddf51cdbc2648c5e311f1cc86374cc0bae73ae726fc3ad152eed3b7e39233680121329e90cd357170f9c782ce95e6d0bb662ea612d332d76be13bcfa303cc8771c26b81611beffa6c9a4d4810dcf1b503af51aeebc43bcfed781ac0acb426e437ed032e78a646bf7d6808a8eb2ab2b33b35d4b233514fddef78eae77bbe68ff5ea2691421e67082561096201c841188b35397898f70d5f5a5edf10f818635eb7f85d2239851df0aaf8425004339dd2b2bfa11e6cff761a36c1a45fa84181edb60322a4b859a01ed41789bbc09f12b07b9598cd8df14a49452d58e7014b16f8cdbaf44292468970154b1312598cbe7eb582659e929d999</item>
|
||||||
|
</string-array>
|
||||||
|
</resources>
|
25
overlay/frameworks/base/core/res/res/values/config.xml
Normal file
25
overlay/frameworks/base/core/res/res/values/config.xml
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
/**
|
||||||
|
* Copyright (c) 2009, The Android Open Source Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!-- These resources are around just to allow their values to be customized
|
||||||
|
for different hardware and product builds. Do not translate. -->
|
||||||
|
|
||||||
|
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||||
|
|
||||||
|
</resources>
|
31
overlay/packages/apps/Bluetooth/res/values/bools.xml
Normal file
31
overlay/packages/apps/Bluetooth/res/values/bools.xml
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources>
|
||||||
|
<bool name="a2dp_sink_automatically_request_audio_focus">false</bool>
|
||||||
|
<bool name="config_bluetooth_pan_enable_autoconnect">true</bool>
|
||||||
|
<bool name="enable_phone_policy">true</bool>
|
||||||
|
<bool name="headset_client_initial_audio_route_allowed">true</bool>
|
||||||
|
<bool name="hfp_clcc_poll_during_call">true</bool>
|
||||||
|
<bool name="hfp_client_connection_service_enabled">false</bool>
|
||||||
|
<bool name="hfp_client_connection_service_support_emergency_call">false</bool>
|
||||||
|
<bool name="pbap_include_photos_in_vcard">true</bool>
|
||||||
|
<bool name="pbap_use_profile_for_owner_vcard">true</bool>
|
||||||
|
<bool name="profile_supported_a2dp">true</bool>
|
||||||
|
<bool name="profile_supported_a2dp_sink">false</bool>
|
||||||
|
<bool name="profile_supported_avrcp_controller">true</bool>
|
||||||
|
<bool name="profile_supported_avrcp_target">false</bool>
|
||||||
|
<bool name="profile_supported_ba">true</bool>
|
||||||
|
<bool name="profile_supported_gatt">true</bool>
|
||||||
|
<bool name="profile_supported_hfpclient">false</bool>
|
||||||
|
<bool name="profile_supported_hid_device">false</bool>
|
||||||
|
<bool name="profile_supported_hid_host">true</bool>
|
||||||
|
<bool name="profile_supported_hs_hfp">true</bool>
|
||||||
|
<bool name="profile_supported_map">true</bool>
|
||||||
|
<bool name="profile_supported_mapmce">false</bool>
|
||||||
|
<bool name="profile_supported_opp">true</bool>
|
||||||
|
<bool name="profile_supported_pan">true</bool>
|
||||||
|
<bool name="profile_supported_pbap">true</bool>
|
||||||
|
<bool name="profile_supported_pbapclient">false</bool>
|
||||||
|
<bool name="profile_supported_sap">true</bool>
|
||||||
|
<bool name="reload_supported_profiles_when_enabled">true</bool>
|
||||||
|
<bool name="strict_location_check">true</bool>
|
||||||
|
</resources>
|
3868
overlay/packages/apps/CarrierConfig/res/xml/vendor.xml
Normal file
3868
overlay/packages/apps/CarrierConfig/res/xml/vendor.xml
Normal file
File diff suppressed because it is too large
Load diff
352
proprietary-files-system.txt
Normal file
352
proprietary-files-system.txt
Normal file
|
@ -0,0 +1,352 @@
|
||||||
|
-framework/audiosphere.jar
|
||||||
|
-framework/com.qti.location.sdk.jar
|
||||||
|
-framework/izat.xt.srv.jar
|
||||||
|
-framework/tcmclient.jar
|
||||||
|
-product/app/QtiTelephonyService/QtiTelephonyService.apk
|
||||||
|
-product/app/datastatusnotification/datastatusnotification.apk
|
||||||
|
-product/app/embms/embms.apk
|
||||||
|
-product/app/uceShimService/uceShimService.apk
|
||||||
|
-product/framework/QtiTelephonyServicelibrary.jar
|
||||||
|
-product/framework/com.nxp.nfc.jar
|
||||||
|
-product/framework/com.qti.dpmframework.jar
|
||||||
|
-product/framework/com.qualcomm.qti.imscmservice-V2.0-java.jar
|
||||||
|
-product/framework/com.qualcomm.qti.imscmservice-V2.1-java.jar
|
||||||
|
-product/framework/com.qualcomm.qti.imscmservice-V2.2-java.jar
|
||||||
|
-product/framework/com.qualcomm.qti.uceservice-V2.0-java.jar
|
||||||
|
-product/framework/com.qualcomm.qti.uceservice-V2.1-java.jar
|
||||||
|
-product/framework/dpmapi.jar
|
||||||
|
-product/framework/embmslibrary.jar
|
||||||
|
-product/framework/qcrilhook.jar
|
||||||
|
-product/framework/qti-telephony-common.jar
|
||||||
|
-product/framework/vendor.qti.data.factory-V1.0-java.jar
|
||||||
|
-product/framework/vendor.qti.data.factory-V2.0-java.jar
|
||||||
|
-product/framework/vendor.qti.data.factory-V2.1-java.jar
|
||||||
|
-product/framework/vendor.qti.data.slm-V1.0-java.jar
|
||||||
|
-product/framework/vendor.qti.hardware.alarm-V1.0-java.jar
|
||||||
|
-product/framework/vendor.qti.hardware.bluetooth_dun-V1.0-java.jar
|
||||||
|
-product/framework/vendor.qti.hardware.capabilityconfigstore-V1.0-java.jar
|
||||||
|
-product/framework/vendor.qti.hardware.data.connection-V1.0-java.jar
|
||||||
|
-product/framework/vendor.qti.hardware.data.connection-V1.1-java.jar
|
||||||
|
-product/framework/vendor.qti.hardware.data.dynamicdds-V1.0-java.jar
|
||||||
|
-product/framework/vendor.qti.hardware.data.iwlan-V1.0-java.jar
|
||||||
|
-product/framework/vendor.qti.hardware.data.latency-V1.0-java.jar
|
||||||
|
-product/framework/vendor.qti.hardware.factory-V1.0-java.jar
|
||||||
|
-product/framework/vendor.qti.hardware.factory-V1.1-java.jar
|
||||||
|
-product/framework/vendor.qti.hardware.sensorscalibrate-V1.0-java.jar
|
||||||
|
-product/framework/vendor.qti.hardware.soter-V1.0-java.jar
|
||||||
|
-product/framework/vendor.qti.hardware.wigig.netperftuner-V1.0-java.jar
|
||||||
|
-product/framework/vendor.qti.hardware.wigig.supptunnel-V1.0-java.jar
|
||||||
|
-product/framework/vendor.qti.ims.callinfo-V1.0-java.jar
|
||||||
|
-product/framework/vendor.qti.ims.rcsconfig-V1.0-java.jar
|
||||||
|
-product/framework/vendor.qti.ims.rcsconfig-V1.1-java.jar
|
||||||
|
-product/framework/vendor.qti.latency-V2.0-java.jar
|
||||||
|
-product/framework/vendor.qti.voiceprint-V1.0-java.jar
|
||||||
|
-product/priv-app/dpmserviceapp/dpmserviceapp.apk
|
||||||
|
-product/priv-app/ims/ims.apk
|
||||||
|
-product/priv-app/qcrilmsgtunnel/qcrilmsgtunnel.apk
|
||||||
|
bin/wfdservice
|
||||||
|
etc/cne/Nexus/ATT/ATT_profiles.xml
|
||||||
|
etc/cne/Nexus/ROW/ROW_profiles.xml
|
||||||
|
etc/cne/Nexus/VZW/VZW_profiles.xml
|
||||||
|
etc/init/wfdservice.rc
|
||||||
|
etc/permissions/audiosphere.xml
|
||||||
|
etc/permissions/com.qti.location.sdk.xml
|
||||||
|
etc/permissions/com.qualcomm.location.xml
|
||||||
|
etc/permissions/com.qualcomm.qti.imscmservice.xml
|
||||||
|
etc/permissions/izat.xt.srv.xml
|
||||||
|
etc/permissions/privapp-permissions-com.qualcomm.location.xml
|
||||||
|
etc/permissions/privapp-permissions-qti.xml
|
||||||
|
etc/permissions/qti_libpermissions.xml
|
||||||
|
etc/permissions/qti_permissions.xml
|
||||||
|
etc/sysconfig/qti_whitelist.xml
|
||||||
|
lib/com.qualcomm.qti.wifidisplayhal@1.0.so
|
||||||
|
lib/fm_helium.so
|
||||||
|
lib/libFileMux.so
|
||||||
|
lib/libOmxMux.so
|
||||||
|
lib/libfm-hci.so
|
||||||
|
lib/libmmosal.so
|
||||||
|
lib/libmmparser_lite.so
|
||||||
|
lib/libmmrtpdecoder.so
|
||||||
|
lib/libmmrtpencoder.so
|
||||||
|
lib/libqti-perfd-client_system.so
|
||||||
|
lib/libqti-util_system.so
|
||||||
|
lib/libqti_performance.so
|
||||||
|
lib/libwfdaac.so
|
||||||
|
lib/libwfdavenhancements.so
|
||||||
|
lib/libwfdclient.so
|
||||||
|
lib/libwfdcommonutils.so
|
||||||
|
lib/libwfdmminterface.so
|
||||||
|
lib/libwfdmmsink.so
|
||||||
|
lib/libwfdmmsrc_system.so
|
||||||
|
lib/libwfdrtsp.so
|
||||||
|
lib/libwfdservice.so
|
||||||
|
lib/libwfdsinksm.so
|
||||||
|
lib/libwfdsm.so
|
||||||
|
lib/libwfduibcinterface.so
|
||||||
|
lib/libwfduibcsink.so
|
||||||
|
lib/libwfduibcsinkinterface.so
|
||||||
|
lib/libwfduibcsrc.so
|
||||||
|
lib/libwfduibcsrcinterface.so
|
||||||
|
lib64/fm_helium.so
|
||||||
|
lib64/libFileMux.so
|
||||||
|
lib64/libOmxMux.so
|
||||||
|
lib64/libaptXHD_encoder.so
|
||||||
|
lib64/libaptX_encoder.so
|
||||||
|
lib64/libfm-hci.so
|
||||||
|
lib64/liblocationservice_jni.so
|
||||||
|
lib64/libmmosal.so
|
||||||
|
lib64/libmmparser_lite.so
|
||||||
|
lib64/libmmrtpdecoder.so
|
||||||
|
lib64/libmmrtpencoder.so
|
||||||
|
lib64/libqti-perfd-client_system.so
|
||||||
|
lib64/libqti-util_system.so
|
||||||
|
lib64/libqti_performance.so
|
||||||
|
lib64/libwfdclient.so
|
||||||
|
lib64/libwfdcommonutils.so
|
||||||
|
lib64/libwfdmminterface.so
|
||||||
|
lib64/libwfdmmsink.so
|
||||||
|
lib64/libwfdrtsp.so
|
||||||
|
lib64/libwfdsinksm.so
|
||||||
|
lib64/libwfdsm.so
|
||||||
|
lib64/libwfduibcinterface.so
|
||||||
|
lib64/libwfduibcsink.so
|
||||||
|
lib64/libwfduibcsinkinterface.so
|
||||||
|
lib64/libwfduibcsrc.so
|
||||||
|
lib64/libwfduibcsrcinterface.so
|
||||||
|
lib64/libxt_native.so
|
||||||
|
product/bin/dpmd
|
||||||
|
product/etc/dpm/dpm.conf
|
||||||
|
product/etc/init/dpmd.rc
|
||||||
|
product/etc/permissions/com.nxp.nfc.xml
|
||||||
|
product/etc/permissions/com.qti.dpmframework.xml
|
||||||
|
product/etc/permissions/com.qualcomm.qti.imscmservice-V2.0-java.xml
|
||||||
|
product/etc/permissions/com.qualcomm.qti.imscmservice-V2.1-java.xml
|
||||||
|
product/etc/permissions/com.qualcomm.qti.imscmservice-V2.2-java.xml
|
||||||
|
product/etc/permissions/dpmapi.xml
|
||||||
|
product/etc/permissions/embms.xml
|
||||||
|
product/etc/permissions/qcrilhook.xml
|
||||||
|
product/etc/permissions/qti_telephony_hidl_wrapper.xml
|
||||||
|
product/etc/permissions/qti_telephony_utils.xml
|
||||||
|
product/etc/permissions/telephonyservice.xml
|
||||||
|
product/etc/permissions/vendor.qti.hardware.data.connection-V1.0-java.xml
|
||||||
|
product/etc/permissions/vendor.qti.hardware.data.connection-V1.1-java.xml
|
||||||
|
product/lib/com.qualcomm.qti.ant@1.0.so
|
||||||
|
product/lib/com.qualcomm.qti.bluetooth_audio@1.0.so
|
||||||
|
product/lib/com.qualcomm.qti.dpm.api@1.0.so
|
||||||
|
product/lib/com.qualcomm.qti.imscmservice@1.0.so
|
||||||
|
product/lib/com.qualcomm.qti.imscmservice@2.0.so
|
||||||
|
product/lib/com.qualcomm.qti.imscmservice@2.1.so
|
||||||
|
product/lib/com.qualcomm.qti.imscmservice@2.2.so
|
||||||
|
product/lib/com.qualcomm.qti.uceservice@2.0.so
|
||||||
|
product/lib/com.qualcomm.qti.uceservice@2.1.so
|
||||||
|
product/lib/lib-imsvideocodec.so
|
||||||
|
product/lib/lib-imsvt.so
|
||||||
|
product/lib/lib-imsvtextutils.so
|
||||||
|
product/lib/lib-imsvtutils.so
|
||||||
|
product/lib/libdiag_system.so
|
||||||
|
product/lib/libdpmctmgr.so
|
||||||
|
product/lib/libdpmfdmgr.so
|
||||||
|
product/lib/libdpmframework.so
|
||||||
|
product/lib/libdpmtcm.so
|
||||||
|
product/lib/libimscamera_jni.so
|
||||||
|
product/lib/libimsmedia_jni.so
|
||||||
|
product/lib/vendor.display.color@1.0.so
|
||||||
|
product/lib/vendor.display.color@1.1.so
|
||||||
|
product/lib/vendor.display.color@1.2.so
|
||||||
|
product/lib/vendor.display.color@1.3.so
|
||||||
|
product/lib/vendor.display.config@1.0.so
|
||||||
|
product/lib/vendor.display.config@1.1.so
|
||||||
|
product/lib/vendor.display.config@1.10.so
|
||||||
|
product/lib/vendor.display.config@1.11.so
|
||||||
|
product/lib/vendor.display.config@1.12.so
|
||||||
|
product/lib/vendor.display.config@1.13.so
|
||||||
|
product/lib/vendor.display.config@1.14.so
|
||||||
|
product/lib/vendor.display.config@1.15.so
|
||||||
|
product/lib/vendor.display.config@1.16.so
|
||||||
|
product/lib/vendor.display.config@1.2.so
|
||||||
|
product/lib/vendor.display.config@1.3.so
|
||||||
|
product/lib/vendor.display.config@1.4.so
|
||||||
|
product/lib/vendor.display.config@1.5.so
|
||||||
|
product/lib/vendor.display.config@1.6.so
|
||||||
|
product/lib/vendor.display.config@1.7.so
|
||||||
|
product/lib/vendor.display.config@1.8.so
|
||||||
|
product/lib/vendor.display.config@1.9.so
|
||||||
|
product/lib/vendor.display.postproc@1.0.so
|
||||||
|
product/lib/vendor.qti.data.factory@1.0.so
|
||||||
|
product/lib/vendor.qti.data.factory@2.0.so
|
||||||
|
product/lib/vendor.qti.data.factory@2.1.so
|
||||||
|
product/lib/vendor.qti.data.slm@1.0.so
|
||||||
|
product/lib/vendor.qti.gnss@1.0.so
|
||||||
|
product/lib/vendor.qti.gnss@1.1.so
|
||||||
|
product/lib/vendor.qti.gnss@1.2.so
|
||||||
|
product/lib/vendor.qti.gnss@2.0.so
|
||||||
|
product/lib/vendor.qti.gnss@2.1.so
|
||||||
|
product/lib/vendor.qti.gnss@3.0.so
|
||||||
|
product/lib/vendor.qti.hardware.alarm@1.0.so
|
||||||
|
product/lib/vendor.qti.hardware.bluetooth_audio@2.0.so
|
||||||
|
product/lib/vendor.qti.hardware.btconfigstore@1.0.so
|
||||||
|
product/lib/vendor.qti.hardware.capabilityconfigstore@1.0.so
|
||||||
|
product/lib/vendor.qti.hardware.cvp@1.0-adapter-helper.so
|
||||||
|
product/lib/vendor.qti.hardware.cvp@1.0.so
|
||||||
|
product/lib/vendor.qti.hardware.data.connection@1.0.so
|
||||||
|
product/lib/vendor.qti.hardware.data.connection@1.1.so
|
||||||
|
product/lib/vendor.qti.hardware.data.dynamicdds@1.0.so
|
||||||
|
product/lib/vendor.qti.hardware.data.iwlan@1.0.so
|
||||||
|
product/lib/vendor.qti.hardware.data.latency@1.0.so
|
||||||
|
product/lib/vendor.qti.hardware.factory@1.0.so
|
||||||
|
product/lib/vendor.qti.hardware.factory@1.1.so
|
||||||
|
product/lib/vendor.qti.hardware.fm@1.0.so
|
||||||
|
product/lib/vendor.qti.hardware.iop@2.0.so
|
||||||
|
product/lib/vendor.qti.hardware.perf@2.0.so
|
||||||
|
product/lib/vendor.qti.hardware.perf@2.1.so
|
||||||
|
product/lib/vendor.qti.hardware.qdutils_disp@1.0.so
|
||||||
|
product/lib/vendor.qti.hardware.radio.am@1.0.so
|
||||||
|
product/lib/vendor.qti.hardware.radio.ims@1.0.so
|
||||||
|
product/lib/vendor.qti.hardware.radio.ims@1.1.so
|
||||||
|
product/lib/vendor.qti.hardware.radio.ims@1.2.so
|
||||||
|
product/lib/vendor.qti.hardware.radio.ims@1.3.so
|
||||||
|
product/lib/vendor.qti.hardware.radio.ims@1.4.so
|
||||||
|
product/lib/vendor.qti.hardware.radio.internal.deviceinfo@1.0.so
|
||||||
|
product/lib/vendor.qti.hardware.radio.lpa@1.0.so
|
||||||
|
product/lib/vendor.qti.hardware.radio.qcrilhook@1.0.so
|
||||||
|
product/lib/vendor.qti.hardware.radio.qtiradio@1.0.so
|
||||||
|
product/lib/vendor.qti.hardware.radio.qtiradio@2.0.so
|
||||||
|
product/lib/vendor.qti.hardware.radio.qtiradio@2.1.so
|
||||||
|
product/lib/vendor.qti.hardware.radio.qtiradio@2.2.so
|
||||||
|
product/lib/vendor.qti.hardware.radio.qtiradio@2.3.so
|
||||||
|
product/lib/vendor.qti.hardware.radio.qtiradio@2.4.so
|
||||||
|
product/lib/vendor.qti.hardware.radio.uim@1.0.so
|
||||||
|
product/lib/vendor.qti.hardware.radio.uim@1.1.so
|
||||||
|
product/lib/vendor.qti.hardware.radio.uim@1.2.so
|
||||||
|
product/lib/vendor.qti.hardware.radio.uim_remote_client@1.0.so
|
||||||
|
product/lib/vendor.qti.hardware.radio.uim_remote_client@1.1.so
|
||||||
|
product/lib/vendor.qti.hardware.radio.uim_remote_client@1.2.so
|
||||||
|
product/lib/vendor.qti.hardware.radio.uim_remote_server@1.0.so
|
||||||
|
product/lib/vendor.qti.hardware.scve.objecttracker@1.0-adapter-helper.so
|
||||||
|
product/lib/vendor.qti.hardware.scve.objecttracker@1.0.so
|
||||||
|
product/lib/vendor.qti.hardware.scve.panorama@1.0-adapter-helper.so
|
||||||
|
product/lib/vendor.qti.hardware.scve.panorama@1.0.so
|
||||||
|
product/lib/vendor.qti.hardware.sensorscalibrate@1.0.so
|
||||||
|
product/lib/vendor.qti.hardware.sigma_miracast@1.0.so
|
||||||
|
product/lib/vendor.qti.hardware.soter@1.0.so
|
||||||
|
product/lib/vendor.qti.hardware.tui_comm@1.0.so
|
||||||
|
product/lib/vendor.qti.hardware.vpp@1.1.so
|
||||||
|
product/lib/vendor.qti.hardware.wifidisplaysession@1.0.so
|
||||||
|
product/lib/vendor.qti.hardware.wigig.netperftuner@1.0.so
|
||||||
|
product/lib/vendor.qti.hardware.wigig.supptunnel@1.0.so
|
||||||
|
product/lib/vendor.qti.ims.callinfo@1.0.so
|
||||||
|
product/lib/vendor.qti.ims.rcsconfig@1.0.so
|
||||||
|
product/lib/vendor.qti.ims.rcsconfig@1.1.so
|
||||||
|
product/lib/vendor.qti.imsrtpservice@2.0.so
|
||||||
|
product/lib/vendor.qti.imsrtpservice@2.1.so
|
||||||
|
product/lib/vendor.qti.latency@2.0.so
|
||||||
|
product/lib64/com.qualcomm.qti.ant@1.0.so
|
||||||
|
product/lib64/com.qualcomm.qti.bluetooth_audio@1.0.so
|
||||||
|
product/lib64/com.qualcomm.qti.dpm.api@1.0.so
|
||||||
|
product/lib64/com.qualcomm.qti.imscmservice@1.0.so
|
||||||
|
product/lib64/com.qualcomm.qti.imscmservice@2.0.so
|
||||||
|
product/lib64/com.qualcomm.qti.imscmservice@2.1.so
|
||||||
|
product/lib64/com.qualcomm.qti.imscmservice@2.2.so
|
||||||
|
product/lib64/com.qualcomm.qti.uceservice@2.0.so
|
||||||
|
product/lib64/com.qualcomm.qti.uceservice@2.1.so
|
||||||
|
product/lib64/lib-imsvideocodec.so
|
||||||
|
product/lib64/lib-imsvt.so
|
||||||
|
product/lib64/lib-imsvtextutils.so
|
||||||
|
product/lib64/lib-imsvtutils.so
|
||||||
|
product/lib64/libdiag_system.so
|
||||||
|
product/lib64/libdpmctmgr.so
|
||||||
|
product/lib64/libdpmfdmgr.so
|
||||||
|
product/lib64/libdpmframework.so
|
||||||
|
product/lib64/libdpmtcm.so
|
||||||
|
product/lib64/libimscamera_jni.so
|
||||||
|
product/lib64/libimsmedia_jni.so
|
||||||
|
product/lib64/vendor.display.color@1.0.so
|
||||||
|
product/lib64/vendor.display.color@1.1.so
|
||||||
|
product/lib64/vendor.display.color@1.2.so
|
||||||
|
product/lib64/vendor.display.color@1.3.so
|
||||||
|
product/lib64/vendor.display.config@1.0.so
|
||||||
|
product/lib64/vendor.display.config@1.1.so
|
||||||
|
product/lib64/vendor.display.config@1.10.so
|
||||||
|
product/lib64/vendor.display.config@1.11.so
|
||||||
|
product/lib64/vendor.display.config@1.12.so
|
||||||
|
product/lib64/vendor.display.config@1.13.so
|
||||||
|
product/lib64/vendor.display.config@1.14.so
|
||||||
|
product/lib64/vendor.display.config@1.15.so
|
||||||
|
product/lib64/vendor.display.config@1.16.so
|
||||||
|
product/lib64/vendor.display.config@1.2.so
|
||||||
|
product/lib64/vendor.display.config@1.3.so
|
||||||
|
product/lib64/vendor.display.config@1.4.so
|
||||||
|
product/lib64/vendor.display.config@1.5.so
|
||||||
|
product/lib64/vendor.display.config@1.6.so
|
||||||
|
product/lib64/vendor.display.config@1.7.so
|
||||||
|
product/lib64/vendor.display.config@1.8.so
|
||||||
|
product/lib64/vendor.display.config@1.9.so
|
||||||
|
product/lib64/vendor.display.postproc@1.0.so
|
||||||
|
product/lib64/vendor.qti.data.factory@1.0.so
|
||||||
|
product/lib64/vendor.qti.data.factory@2.0.so
|
||||||
|
product/lib64/vendor.qti.data.factory@2.1.so
|
||||||
|
product/lib64/vendor.qti.data.slm@1.0.so
|
||||||
|
product/lib64/vendor.qti.gnss@1.0.so
|
||||||
|
product/lib64/vendor.qti.gnss@1.1.so
|
||||||
|
product/lib64/vendor.qti.gnss@1.2.so
|
||||||
|
product/lib64/vendor.qti.gnss@2.0.so
|
||||||
|
product/lib64/vendor.qti.gnss@2.1.so
|
||||||
|
product/lib64/vendor.qti.gnss@3.0.so
|
||||||
|
product/lib64/vendor.qti.hardware.alarm@1.0.so
|
||||||
|
product/lib64/vendor.qti.hardware.bluetooth_audio@2.0.so
|
||||||
|
product/lib64/vendor.qti.hardware.btconfigstore@1.0.so
|
||||||
|
product/lib64/vendor.qti.hardware.capabilityconfigstore@1.0.so
|
||||||
|
product/lib64/vendor.qti.hardware.cvp@1.0-adapter-helper.so
|
||||||
|
product/lib64/vendor.qti.hardware.cvp@1.0.so
|
||||||
|
product/lib64/vendor.qti.hardware.data.connection@1.0.so
|
||||||
|
product/lib64/vendor.qti.hardware.data.connection@1.1.so
|
||||||
|
product/lib64/vendor.qti.hardware.data.dynamicdds@1.0.so
|
||||||
|
product/lib64/vendor.qti.hardware.data.iwlan@1.0.so
|
||||||
|
product/lib64/vendor.qti.hardware.data.latency@1.0.so
|
||||||
|
product/lib64/vendor.qti.hardware.factory@1.0.so
|
||||||
|
product/lib64/vendor.qti.hardware.factory@1.1.so
|
||||||
|
product/lib64/vendor.qti.hardware.fm@1.0.so
|
||||||
|
product/lib64/vendor.qti.hardware.iop@2.0.so
|
||||||
|
product/lib64/vendor.qti.hardware.perf@2.0.so
|
||||||
|
product/lib64/vendor.qti.hardware.perf@2.1.so
|
||||||
|
product/lib64/vendor.qti.hardware.qdutils_disp@1.0.so
|
||||||
|
product/lib64/vendor.qti.hardware.radio.am@1.0.so
|
||||||
|
product/lib64/vendor.qti.hardware.radio.ims@1.0.so
|
||||||
|
product/lib64/vendor.qti.hardware.radio.ims@1.1.so
|
||||||
|
product/lib64/vendor.qti.hardware.radio.ims@1.2.so
|
||||||
|
product/lib64/vendor.qti.hardware.radio.ims@1.3.so
|
||||||
|
product/lib64/vendor.qti.hardware.radio.ims@1.4.so
|
||||||
|
product/lib64/vendor.qti.hardware.radio.internal.deviceinfo@1.0.so
|
||||||
|
product/lib64/vendor.qti.hardware.radio.lpa@1.0.so
|
||||||
|
product/lib64/vendor.qti.hardware.radio.qcrilhook@1.0.so
|
||||||
|
product/lib64/vendor.qti.hardware.radio.qtiradio@1.0.so
|
||||||
|
product/lib64/vendor.qti.hardware.radio.qtiradio@2.0.so
|
||||||
|
product/lib64/vendor.qti.hardware.radio.qtiradio@2.1.so
|
||||||
|
product/lib64/vendor.qti.hardware.radio.qtiradio@2.2.so
|
||||||
|
product/lib64/vendor.qti.hardware.radio.qtiradio@2.3.so
|
||||||
|
product/lib64/vendor.qti.hardware.radio.qtiradio@2.4.so
|
||||||
|
product/lib64/vendor.qti.hardware.radio.uim@1.0.so
|
||||||
|
product/lib64/vendor.qti.hardware.radio.uim@1.1.so
|
||||||
|
product/lib64/vendor.qti.hardware.radio.uim@1.2.so
|
||||||
|
product/lib64/vendor.qti.hardware.radio.uim_remote_client@1.0.so
|
||||||
|
product/lib64/vendor.qti.hardware.radio.uim_remote_client@1.1.so
|
||||||
|
product/lib64/vendor.qti.hardware.radio.uim_remote_client@1.2.so
|
||||||
|
product/lib64/vendor.qti.hardware.radio.uim_remote_server@1.0.so
|
||||||
|
product/lib64/vendor.qti.hardware.scve.objecttracker@1.0-adapter-helper.so
|
||||||
|
product/lib64/vendor.qti.hardware.scve.objecttracker@1.0.so
|
||||||
|
product/lib64/vendor.qti.hardware.scve.panorama@1.0-adapter-helper.so
|
||||||
|
product/lib64/vendor.qti.hardware.scve.panorama@1.0.so
|
||||||
|
product/lib64/vendor.qti.hardware.sensorscalibrate@1.0.so
|
||||||
|
product/lib64/vendor.qti.hardware.sigma_miracast@1.0.so
|
||||||
|
product/lib64/vendor.qti.hardware.soter@1.0.so
|
||||||
|
product/lib64/vendor.qti.hardware.tui_comm@1.0.so
|
||||||
|
product/lib64/vendor.qti.hardware.vpp@1.1.so
|
||||||
|
product/lib64/vendor.qti.hardware.wifidisplaysession@1.0.so
|
||||||
|
product/lib64/vendor.qti.hardware.wigig.netperftuner@1.0.so
|
||||||
|
product/lib64/vendor.qti.hardware.wigig.supptunnel@1.0.so
|
||||||
|
product/lib64/vendor.qti.ims.callinfo@1.0.so
|
||||||
|
product/lib64/vendor.qti.ims.rcsconfig@1.0.so
|
||||||
|
product/lib64/vendor.qti.ims.rcsconfig@1.1.so
|
||||||
|
product/lib64/vendor.qti.imsrtpservice@2.0.so
|
||||||
|
product/lib64/vendor.qti.imsrtpservice@2.1.so
|
||||||
|
product/lib64/vendor.qti.latency@2.0.so
|
2396
proprietary-files.txt
Normal file
2396
proprietary-files.txt
Normal file
File diff suppressed because it is too large
Load diff
403
rootdir/Android.mk
Normal file
403
rootdir/Android.mk
Normal file
|
@ -0,0 +1,403 @@
|
||||||
|
LOCAL_PATH := $(call my-dir)
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
LOCAL_MODULE := apanic_annotate.sh
|
||||||
|
LOCAL_MODULE_TAGS := optional
|
||||||
|
LOCAL_MODULE_CLASS := ETC
|
||||||
|
LOCAL_SRC_FILES := bin/apanic_annotate.sh
|
||||||
|
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
|
||||||
|
include $(BUILD_PREBUILT)
|
||||||
|
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
LOCAL_MODULE := apanic_copy.sh
|
||||||
|
LOCAL_MODULE_TAGS := optional
|
||||||
|
LOCAL_MODULE_CLASS := ETC
|
||||||
|
LOCAL_SRC_FILES := bin/apanic_copy.sh
|
||||||
|
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
|
||||||
|
include $(BUILD_PREBUILT)
|
||||||
|
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
LOCAL_MODULE := apanic_save.sh
|
||||||
|
LOCAL_MODULE_TAGS := optional
|
||||||
|
LOCAL_MODULE_CLASS := ETC
|
||||||
|
LOCAL_SRC_FILES := bin/apanic_save.sh
|
||||||
|
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
|
||||||
|
include $(BUILD_PREBUILT)
|
||||||
|
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
LOCAL_MODULE := hardware_revisions.sh
|
||||||
|
LOCAL_MODULE_TAGS := optional
|
||||||
|
LOCAL_MODULE_CLASS := ETC
|
||||||
|
LOCAL_SRC_FILES := bin/hardware_revisions.sh
|
||||||
|
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
|
||||||
|
include $(BUILD_PREBUILT)
|
||||||
|
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
LOCAL_MODULE := init.class_main.sh
|
||||||
|
LOCAL_MODULE_TAGS := optional
|
||||||
|
LOCAL_MODULE_CLASS := ETC
|
||||||
|
LOCAL_SRC_FILES := bin/init.class_main.sh
|
||||||
|
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
|
||||||
|
include $(BUILD_PREBUILT)
|
||||||
|
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
LOCAL_MODULE := init.crda.sh
|
||||||
|
LOCAL_MODULE_TAGS := optional
|
||||||
|
LOCAL_MODULE_CLASS := ETC
|
||||||
|
LOCAL_SRC_FILES := bin/init.crda.sh
|
||||||
|
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
|
||||||
|
include $(BUILD_PREBUILT)
|
||||||
|
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
LOCAL_MODULE := init.gbmods.sh
|
||||||
|
LOCAL_MODULE_TAGS := optional
|
||||||
|
LOCAL_MODULE_CLASS := ETC
|
||||||
|
LOCAL_SRC_FILES := bin/init.gbmods.sh
|
||||||
|
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
|
||||||
|
include $(BUILD_PREBUILT)
|
||||||
|
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
LOCAL_MODULE := init.mdm.sh
|
||||||
|
LOCAL_MODULE_TAGS := optional
|
||||||
|
LOCAL_MODULE_CLASS := ETC
|
||||||
|
LOCAL_SRC_FILES := bin/init.mdm.sh
|
||||||
|
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
|
||||||
|
include $(BUILD_PREBUILT)
|
||||||
|
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
LOCAL_MODULE := init.mmi.block_perm.sh
|
||||||
|
LOCAL_MODULE_TAGS := optional
|
||||||
|
LOCAL_MODULE_CLASS := ETC
|
||||||
|
LOCAL_SRC_FILES := bin/init.mmi.block_perm.sh
|
||||||
|
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
|
||||||
|
include $(BUILD_PREBUILT)
|
||||||
|
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
LOCAL_MODULE := init.mmi.boot.sh
|
||||||
|
LOCAL_MODULE_TAGS := optional
|
||||||
|
LOCAL_MODULE_CLASS := ETC
|
||||||
|
LOCAL_SRC_FILES := bin/init.mmi.boot.sh
|
||||||
|
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
|
||||||
|
include $(BUILD_PREBUILT)
|
||||||
|
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
LOCAL_MODULE := init.mmi.laser.sh
|
||||||
|
LOCAL_MODULE_TAGS := optional
|
||||||
|
LOCAL_MODULE_CLASS := ETC
|
||||||
|
LOCAL_SRC_FILES := bin/init.mmi.laser.sh
|
||||||
|
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
|
||||||
|
include $(BUILD_PREBUILT)
|
||||||
|
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
LOCAL_MODULE := init.mmi.mdlog-getlogs.sh
|
||||||
|
LOCAL_MODULE_TAGS := optional
|
||||||
|
LOCAL_MODULE_CLASS := ETC
|
||||||
|
LOCAL_SRC_FILES := bin/init.mmi.mdlog-getlogs.sh
|
||||||
|
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
|
||||||
|
include $(BUILD_PREBUILT)
|
||||||
|
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
LOCAL_MODULE := init.mmi.modules.sh
|
||||||
|
LOCAL_MODULE_TAGS := optional
|
||||||
|
LOCAL_MODULE_CLASS := ETC
|
||||||
|
LOCAL_SRC_FILES := bin/init.mmi.modules.sh
|
||||||
|
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
|
||||||
|
include $(BUILD_PREBUILT)
|
||||||
|
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
LOCAL_MODULE := init.mmi.shutdown.sh
|
||||||
|
LOCAL_MODULE_TAGS := optional
|
||||||
|
LOCAL_MODULE_CLASS := ETC
|
||||||
|
LOCAL_SRC_FILES := bin/init.mmi.shutdown.sh
|
||||||
|
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
|
||||||
|
include $(BUILD_PREBUILT)
|
||||||
|
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
LOCAL_MODULE := init.mmi.touch.sh
|
||||||
|
LOCAL_MODULE_TAGS := optional
|
||||||
|
LOCAL_MODULE_CLASS := ETC
|
||||||
|
LOCAL_SRC_FILES := bin/init.mmi.touch.sh
|
||||||
|
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
|
||||||
|
include $(BUILD_PREBUILT)
|
||||||
|
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
LOCAL_MODULE := init.mmi.usb.sh
|
||||||
|
LOCAL_MODULE_TAGS := optional
|
||||||
|
LOCAL_MODULE_CLASS := ETC
|
||||||
|
LOCAL_SRC_FILES := bin/init.mmi.usb.sh
|
||||||
|
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
|
||||||
|
include $(BUILD_PREBUILT)
|
||||||
|
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
LOCAL_MODULE := init.mmi.wlan-getlogs.sh
|
||||||
|
LOCAL_MODULE_TAGS := optional
|
||||||
|
LOCAL_MODULE_CLASS := ETC
|
||||||
|
LOCAL_SRC_FILES := bin/init.mmi.wlan-getlogs.sh
|
||||||
|
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
|
||||||
|
include $(BUILD_PREBUILT)
|
||||||
|
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
LOCAL_MODULE := init.oem.fingerprint.sh
|
||||||
|
LOCAL_MODULE_TAGS := optional
|
||||||
|
LOCAL_MODULE_CLASS := ETC
|
||||||
|
LOCAL_SRC_FILES := bin/init.oem.fingerprint.sh
|
||||||
|
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
|
||||||
|
include $(BUILD_PREBUILT)
|
||||||
|
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
LOCAL_MODULE := init.oem.fingerprint2.sh
|
||||||
|
LOCAL_MODULE_TAGS := optional
|
||||||
|
LOCAL_MODULE_CLASS := ETC
|
||||||
|
LOCAL_SRC_FILES := bin/init.oem.fingerprint2.sh
|
||||||
|
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
|
||||||
|
include $(BUILD_PREBUILT)
|
||||||
|
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
LOCAL_MODULE := init.oem.hw.sh
|
||||||
|
LOCAL_MODULE_TAGS := optional
|
||||||
|
LOCAL_MODULE_CLASS := ETC
|
||||||
|
LOCAL_SRC_FILES := bin/init.oem.hw.sh
|
||||||
|
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
|
||||||
|
include $(BUILD_PREBUILT)
|
||||||
|
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
LOCAL_MODULE := init.qcom.class_core.sh
|
||||||
|
LOCAL_MODULE_TAGS := optional
|
||||||
|
LOCAL_MODULE_CLASS := ETC
|
||||||
|
LOCAL_SRC_FILES := bin/init.qcom.class_core.sh
|
||||||
|
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
|
||||||
|
include $(BUILD_PREBUILT)
|
||||||
|
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
LOCAL_MODULE := init.qcom.coex.sh
|
||||||
|
LOCAL_MODULE_TAGS := optional
|
||||||
|
LOCAL_MODULE_CLASS := ETC
|
||||||
|
LOCAL_SRC_FILES := bin/init.qcom.coex.sh
|
||||||
|
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
|
||||||
|
include $(BUILD_PREBUILT)
|
||||||
|
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
LOCAL_MODULE := init.qcom.crashdata.sh
|
||||||
|
LOCAL_MODULE_TAGS := optional
|
||||||
|
LOCAL_MODULE_CLASS := ETC
|
||||||
|
LOCAL_SRC_FILES := bin/init.qcom.crashdata.sh
|
||||||
|
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
|
||||||
|
include $(BUILD_PREBUILT)
|
||||||
|
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
LOCAL_MODULE := init.qcom.early_boot.sh
|
||||||
|
LOCAL_MODULE_TAGS := optional
|
||||||
|
LOCAL_MODULE_CLASS := ETC
|
||||||
|
LOCAL_SRC_FILES := bin/init.qcom.early_boot.sh
|
||||||
|
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
|
||||||
|
include $(BUILD_PREBUILT)
|
||||||
|
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
LOCAL_MODULE := init.qcom.efs.sync.sh
|
||||||
|
LOCAL_MODULE_TAGS := optional
|
||||||
|
LOCAL_MODULE_CLASS := ETC
|
||||||
|
LOCAL_SRC_FILES := bin/init.qcom.efs.sync.sh
|
||||||
|
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
|
||||||
|
include $(BUILD_PREBUILT)
|
||||||
|
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
LOCAL_MODULE := init.qcom.post_boot.sh
|
||||||
|
LOCAL_MODULE_TAGS := optional
|
||||||
|
LOCAL_MODULE_CLASS := ETC
|
||||||
|
LOCAL_SRC_FILES := bin/init.qcom.post_boot.sh
|
||||||
|
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
|
||||||
|
include $(BUILD_PREBUILT)
|
||||||
|
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
LOCAL_MODULE := init.qcom.sdio.sh
|
||||||
|
LOCAL_MODULE_TAGS := optional
|
||||||
|
LOCAL_MODULE_CLASS := ETC
|
||||||
|
LOCAL_SRC_FILES := bin/init.qcom.sdio.sh
|
||||||
|
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
|
||||||
|
include $(BUILD_PREBUILT)
|
||||||
|
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
LOCAL_MODULE := init.qcom.sensors.sh
|
||||||
|
LOCAL_MODULE_TAGS := optional
|
||||||
|
LOCAL_MODULE_CLASS := ETC
|
||||||
|
LOCAL_SRC_FILES := bin/init.qcom.sensors.sh
|
||||||
|
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
|
||||||
|
include $(BUILD_PREBUILT)
|
||||||
|
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
LOCAL_MODULE := init.qcom.sh
|
||||||
|
LOCAL_MODULE_TAGS := optional
|
||||||
|
LOCAL_MODULE_CLASS := ETC
|
||||||
|
LOCAL_SRC_FILES := bin/init.qcom.sh
|
||||||
|
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
|
||||||
|
include $(BUILD_PREBUILT)
|
||||||
|
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
LOCAL_MODULE := init.qti.chg_policy.sh
|
||||||
|
LOCAL_MODULE_TAGS := optional
|
||||||
|
LOCAL_MODULE_CLASS := ETC
|
||||||
|
LOCAL_SRC_FILES := bin/init.qti.chg_policy.sh
|
||||||
|
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
|
||||||
|
include $(BUILD_PREBUILT)
|
||||||
|
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
LOCAL_MODULE := init.qti.fm.sh
|
||||||
|
LOCAL_MODULE_TAGS := optional
|
||||||
|
LOCAL_MODULE_CLASS := ETC
|
||||||
|
LOCAL_SRC_FILES := bin/init.qti.fm.sh
|
||||||
|
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
|
||||||
|
include $(BUILD_PREBUILT)
|
||||||
|
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
LOCAL_MODULE := init.qti.ims.sh
|
||||||
|
LOCAL_MODULE_TAGS := optional
|
||||||
|
LOCAL_MODULE_CLASS := ETC
|
||||||
|
LOCAL_SRC_FILES := bin/init.qti.ims.sh
|
||||||
|
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
|
||||||
|
include $(BUILD_PREBUILT)
|
||||||
|
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
LOCAL_MODULE := init.qti.media.sh
|
||||||
|
LOCAL_MODULE_TAGS := optional
|
||||||
|
LOCAL_MODULE_CLASS := ETC
|
||||||
|
LOCAL_SRC_FILES := bin/init.qti.media.sh
|
||||||
|
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
|
||||||
|
include $(BUILD_PREBUILT)
|
||||||
|
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
LOCAL_MODULE := pstore_annotate.sh
|
||||||
|
LOCAL_MODULE_TAGS := optional
|
||||||
|
LOCAL_MODULE_CLASS := ETC
|
||||||
|
LOCAL_SRC_FILES := bin/pstore_annotate.sh
|
||||||
|
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
|
||||||
|
include $(BUILD_PREBUILT)
|
||||||
|
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
LOCAL_MODULE := qca6234-service.sh
|
||||||
|
LOCAL_MODULE_TAGS := optional
|
||||||
|
LOCAL_MODULE_CLASS := ETC
|
||||||
|
LOCAL_SRC_FILES := bin/qca6234-service.sh
|
||||||
|
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
|
||||||
|
include $(BUILD_PREBUILT)
|
||||||
|
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
LOCAL_MODULE := init.mmi.charge_only.rc
|
||||||
|
LOCAL_MODULE_TAGS := optional
|
||||||
|
LOCAL_MODULE_CLASS := ETC
|
||||||
|
LOCAL_SRC_FILES := etc/init.mmi.charge_only.rc
|
||||||
|
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)/init/hw
|
||||||
|
include $(BUILD_PREBUILT)
|
||||||
|
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
LOCAL_MODULE := init.mmi.chipset.rc
|
||||||
|
LOCAL_MODULE_TAGS := optional
|
||||||
|
LOCAL_MODULE_CLASS := ETC
|
||||||
|
LOCAL_SRC_FILES := etc/init.mmi.chipset.rc
|
||||||
|
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)/init/hw
|
||||||
|
include $(BUILD_PREBUILT)
|
||||||
|
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
LOCAL_MODULE := init.mmi.debug.rc
|
||||||
|
LOCAL_MODULE_TAGS := optional
|
||||||
|
LOCAL_MODULE_CLASS := ETC
|
||||||
|
LOCAL_SRC_FILES := etc/init.mmi.debug.rc
|
||||||
|
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)/init/hw
|
||||||
|
include $(BUILD_PREBUILT)
|
||||||
|
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
LOCAL_MODULE := init.mmi.diag.rc
|
||||||
|
LOCAL_MODULE_TAGS := optional
|
||||||
|
LOCAL_MODULE_CLASS := ETC
|
||||||
|
LOCAL_SRC_FILES := etc/init.mmi.diag.rc
|
||||||
|
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)/init/hw
|
||||||
|
include $(BUILD_PREBUILT)
|
||||||
|
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
LOCAL_MODULE := init.mmi.diag_mdlog.rc
|
||||||
|
LOCAL_MODULE_TAGS := optional
|
||||||
|
LOCAL_MODULE_CLASS := ETC
|
||||||
|
LOCAL_SRC_FILES := etc/init.mmi.diag_mdlog.rc
|
||||||
|
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)/init/hw
|
||||||
|
include $(BUILD_PREBUILT)
|
||||||
|
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
LOCAL_MODULE := init.mmi.overlay.rc
|
||||||
|
LOCAL_MODULE_TAGS := optional
|
||||||
|
LOCAL_MODULE_CLASS := ETC
|
||||||
|
LOCAL_SRC_FILES := etc/init.mmi.overlay.rc
|
||||||
|
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)/init/hw
|
||||||
|
include $(BUILD_PREBUILT)
|
||||||
|
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
LOCAL_MODULE := init.mmi.rc
|
||||||
|
LOCAL_MODULE_TAGS := optional
|
||||||
|
LOCAL_MODULE_CLASS := ETC
|
||||||
|
LOCAL_SRC_FILES := etc/init.mmi.rc
|
||||||
|
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)/init/hw
|
||||||
|
include $(BUILD_PREBUILT)
|
||||||
|
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
LOCAL_MODULE := init.mmi.tcmd.rc
|
||||||
|
LOCAL_MODULE_TAGS := optional
|
||||||
|
LOCAL_MODULE_CLASS := ETC
|
||||||
|
LOCAL_SRC_FILES := etc/init.mmi.tcmd.rc
|
||||||
|
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)/init/hw
|
||||||
|
include $(BUILD_PREBUILT)
|
||||||
|
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
LOCAL_MODULE := init.mmi.usb.rc
|
||||||
|
LOCAL_MODULE_TAGS := optional
|
||||||
|
LOCAL_MODULE_CLASS := ETC
|
||||||
|
LOCAL_SRC_FILES := etc/init.mmi.usb.rc
|
||||||
|
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)/init/hw
|
||||||
|
include $(BUILD_PREBUILT)
|
||||||
|
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
LOCAL_MODULE := init.mmi.wlan.rc
|
||||||
|
LOCAL_MODULE_TAGS := optional
|
||||||
|
LOCAL_MODULE_CLASS := ETC
|
||||||
|
LOCAL_SRC_FILES := etc/init.mmi.wlan.rc
|
||||||
|
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)/init/hw
|
||||||
|
include $(BUILD_PREBUILT)
|
||||||
|
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
LOCAL_MODULE := init.qcom.factory.rc
|
||||||
|
LOCAL_MODULE_TAGS := optional
|
||||||
|
LOCAL_MODULE_CLASS := ETC
|
||||||
|
LOCAL_SRC_FILES := etc/init.qcom.factory.rc
|
||||||
|
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)/init/hw
|
||||||
|
include $(BUILD_PREBUILT)
|
||||||
|
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
LOCAL_MODULE := init.qcom.rc
|
||||||
|
LOCAL_MODULE_TAGS := optional
|
||||||
|
LOCAL_MODULE_CLASS := ETC
|
||||||
|
LOCAL_SRC_FILES := etc/init.qcom.rc
|
||||||
|
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)/init/hw
|
||||||
|
include $(BUILD_PREBUILT)
|
||||||
|
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
LOCAL_MODULE := init.target.rc
|
||||||
|
LOCAL_MODULE_TAGS := optional
|
||||||
|
LOCAL_MODULE_CLASS := ETC
|
||||||
|
LOCAL_SRC_FILES := etc/init.target.rc
|
||||||
|
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)/init/hw
|
||||||
|
include $(BUILD_PREBUILT)
|
||||||
|
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
LOCAL_MODULE := fstab.qcom
|
||||||
|
LOCAL_MODULE_TAGS := optional
|
||||||
|
LOCAL_MODULE_CLASS := ETC
|
||||||
|
LOCAL_SRC_FILES := etc/fstab.qcom
|
||||||
|
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)
|
||||||
|
include $(BUILD_PREBUILT)
|
||||||
|
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
LOCAL_MODULE := ueventd.qcom.rc
|
||||||
|
LOCAL_MODULE_STEM := ueventd.rc
|
||||||
|
LOCAL_MODULE_TAGS := optional
|
||||||
|
LOCAL_MODULE_CLASS := ETC
|
||||||
|
LOCAL_SRC_FILES := etc/ueventd.qcom.rc
|
||||||
|
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)
|
||||||
|
include $(BUILD_PREBUILT)
|
53
rootdir/bin/apanic_annotate.sh
Normal file
53
rootdir/bin/apanic_annotate.sh
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
#!/vendor/bin/sh
|
||||||
|
#
|
||||||
|
# Copyright (c) 2012, Motorola Mobility LLC, All rights reserved.
|
||||||
|
#
|
||||||
|
# The purpose of this script is to annotate panic dumps with useful information
|
||||||
|
# about the context of the event.
|
||||||
|
#
|
||||||
|
|
||||||
|
export PATH=/vendor/bin:/system/bin:$PATH
|
||||||
|
|
||||||
|
annotate()
|
||||||
|
{
|
||||||
|
VAL=`$2`
|
||||||
|
[ "$VAL" ] || return
|
||||||
|
|
||||||
|
echo "$1: $VAL" > /sys/fs/pstore/annotate-ramoops
|
||||||
|
}
|
||||||
|
|
||||||
|
case $1 in
|
||||||
|
build*)
|
||||||
|
annotate "Build number" "getprop ro.build.display.id"
|
||||||
|
annotate "Build config" "getprop ro.build.config.version"
|
||||||
|
annotate "Kernel version" "cat /proc/sys/kernel/osrelease"
|
||||||
|
;;
|
||||||
|
baseband*)
|
||||||
|
annotate "Baseband version" "getprop gsm.version.baseband"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# check for pstore files and copy them to the /data/dontpanic
|
||||||
|
if [ -e /sys/fs/pstore/console-ramoops ]
|
||||||
|
then
|
||||||
|
cp /sys/fs/pstore/console-ramoops /data/vendor/dontpanic/last_kmsg
|
||||||
|
chown root:log /data/vendor/dontpanic/last_kmsg
|
||||||
|
chmod 0640 /data/vendor/dontpanic/last_kmsg
|
||||||
|
if [ -e /sys/fs/pstore/annotate-ramoops ]
|
||||||
|
then
|
||||||
|
cat /sys/fs/pstore/annotate-ramoops >> /data/vendor/dontpanic/last_kmsg
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -e /sys/fs/pstore/dmesg-ramoops-0 ]
|
||||||
|
then
|
||||||
|
cp /sys/fs/pstore/dmesg-ramoops-0 /data/vendor/dontpanic/apanic_console
|
||||||
|
chown root:log /data/vendor/dontpanic/apanic_console
|
||||||
|
chmod 0640 /data/vendor/dontpanic/apanic_console
|
||||||
|
if [ -e /sys/fs/pstore/annotate-ramoops ]
|
||||||
|
then
|
||||||
|
cat /sys/fs/pstore/annotate-ramoops >> /data/vendor/dontpanic/apanic_console
|
||||||
|
fi
|
||||||
|
rm /sys/fs/pstore/dmesg-ramoops-0
|
||||||
|
fi
|
||||||
|
kpgather
|
43
rootdir/bin/apanic_copy.sh
Normal file
43
rootdir/bin/apanic_copy.sh
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
#!/vendor/bin/sh
|
||||||
|
#
|
||||||
|
# Copyright (c) 2015, Motorola Mobility LLC, All rights reserved.
|
||||||
|
#
|
||||||
|
# The purpose of this script is to read panic dumps to /data and dropbox
|
||||||
|
# for issue report
|
||||||
|
#
|
||||||
|
|
||||||
|
export PATH=/vendor/bin:/system/bin:$PATH
|
||||||
|
|
||||||
|
while getopts i op;
|
||||||
|
do
|
||||||
|
case $op in
|
||||||
|
i) ignore_apanic_logs=1;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ -z "$ignore_apanic_logs" ]; then
|
||||||
|
# read log from "kpan" partition to /data/dontpanic
|
||||||
|
kpreadwrite r
|
||||||
|
# write panic/wdt report to dropbox
|
||||||
|
kpgather
|
||||||
|
else
|
||||||
|
apanic_logcopy=$(getprop 'ro.vendor.bootreason')
|
||||||
|
if [ "$apanic_logcopy" == "coldboot" ]; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -e /dev/block/bootdevice/by-name/logs ] ; then
|
||||||
|
BL_logs_parti=/dev/block/bootdevice/by-name/logs
|
||||||
|
elif [ -e /dev/block/bootdevice/by-name/logfs ] ; then
|
||||||
|
BL_logs_parti=/dev/block/bootdevice/by-name/logfs
|
||||||
|
else
|
||||||
|
BL_logs_parti=
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $BL_logs_parti ]
|
||||||
|
then
|
||||||
|
cat $BL_logs_parti > /data/vendor/dontpanic/BL_logs
|
||||||
|
chown root:log /data/vendor/dontpanic/BL_logs
|
||||||
|
chmod 0640 /data/vendor/dontpanic/BL_logs
|
||||||
|
fi
|
12
rootdir/bin/apanic_save.sh
Normal file
12
rootdir/bin/apanic_save.sh
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
#!/vendor/bin/sh
|
||||||
|
#
|
||||||
|
# Copyright (c) 2016, Motorola Mobility LLC, All rights reserved.
|
||||||
|
#
|
||||||
|
# The purpose of this script is to get panic dump from pstore fs, and then
|
||||||
|
# save to emmc, and then reboot device.
|
||||||
|
#
|
||||||
|
|
||||||
|
export PATH=/vendor/bin:/system/bin:$PATH
|
||||||
|
|
||||||
|
# write log from pstore to "kpan" partition
|
||||||
|
kpreadwrite w
|
329
rootdir/bin/hardware_revisions.sh
Normal file
329
rootdir/bin/hardware_revisions.sh
Normal file
|
@ -0,0 +1,329 @@
|
||||||
|
#!/vendor/bin/sh
|
||||||
|
#
|
||||||
|
# Copyright (c) 2013-2016, Motorola LLC All rights reserved.
|
||||||
|
#
|
||||||
|
# The purpose of this script is to compile information about the hardware
|
||||||
|
# versions of various devices on each unit. This is useful when searching
|
||||||
|
# through reported issues for correlations with certain hardware revisions.
|
||||||
|
# The information is collected from various locations in proc and sysfs (some
|
||||||
|
# of which are product-specific) and compiled into small, single-line text
|
||||||
|
# files in the userdata partition, one for each type of device. The format of
|
||||||
|
# these lines are as follows:
|
||||||
|
#
|
||||||
|
# MOTHREV-vX
|
||||||
|
# hw_name=XXXXX
|
||||||
|
# vendor_id=XXXXX
|
||||||
|
# hw_rev=XXXXX
|
||||||
|
# date=XXXXX
|
||||||
|
# lot_code=XXXXX
|
||||||
|
# fw_rev=XXXXX
|
||||||
|
# size=XXXXMB
|
||||||
|
# (components may also add additional fields to the ones above)
|
||||||
|
#
|
||||||
|
# The extact format of each field will be device-specific, but should be
|
||||||
|
# consistent across a particular hardware platform. Note that each revision
|
||||||
|
# data file is rewritten every time this script is called. This ensures that
|
||||||
|
# any future format changes to the revision files are picked up.
|
||||||
|
#
|
||||||
|
# While the method used to read the information should be consistent on a given
|
||||||
|
# platform, the specific path to a device's information may vary between
|
||||||
|
# products. The hardware_revisions.conf file provides a way to adjust those
|
||||||
|
# paths from the default.
|
||||||
|
#
|
||||||
|
|
||||||
|
export PATH=/vendor/bin:$PATH
|
||||||
|
|
||||||
|
# Output destination and permissions
|
||||||
|
OUT_PATH=/data/vendor/hardware_revisions
|
||||||
|
OUT_USR=system
|
||||||
|
OUT_GRP=system
|
||||||
|
OUT_PERM=0644
|
||||||
|
OUT_PATH_PERM=0755
|
||||||
|
|
||||||
|
# Default paths to hardware information
|
||||||
|
PATH_RAM=/sys/ram
|
||||||
|
PATH_NVM=/sys/block/mmcblk0/device
|
||||||
|
PATH_STORAGE=/sys/storage
|
||||||
|
PATH_SDCARD=/sys/block/mmcblk1/device
|
||||||
|
PATH_TOUCH_CLASS="/sys/class/touchscreen/"`cd /sys/class/touchscreen && ls */ic_ver | sed 's/ic_ver//g'`
|
||||||
|
PATH_TOUCH="/sys/bus/i2c/drivers/"`cd /sys/bus/i2c/drivers && ls */?-*/ic_ver | sed 's/ic_ver//g'`
|
||||||
|
PATH_TOUCH_SPI="/sys/bus/spi/drivers/"`cd /sys/bus/spi/drivers && ls */*.?/ic_ver | sed 's/ic_ver//g'`
|
||||||
|
PATH_DISPLAY=/sys/class/graphics/fb0
|
||||||
|
PATH_DISPLAY_DRM=/sys/class/drm/card0-DSI-1
|
||||||
|
PATH_PMIC=/sys/hardware_revisions/pmic
|
||||||
|
|
||||||
|
# Product-specific overrides
|
||||||
|
[ -e /vendor/etc/hardware_revisions.conf ] && . /vendor/etc/hardware_revisions.conf
|
||||||
|
|
||||||
|
#
|
||||||
|
# Clear out all revision data in this directory. If in the future we decide
|
||||||
|
# to remove a component, we want to make sure any old files are not present.
|
||||||
|
rm /data/vendor/hardware_revisions/*
|
||||||
|
|
||||||
|
#
|
||||||
|
# Append one piece of revision data to a given file. If a value is blank,
|
||||||
|
# then nothing will be written.
|
||||||
|
#
|
||||||
|
# $1 - tag
|
||||||
|
# $2 - value
|
||||||
|
# $3 - file to write
|
||||||
|
write_one_revision_data()
|
||||||
|
{
|
||||||
|
if [ -n "${2}" ]; then
|
||||||
|
VALUE="${2}"
|
||||||
|
echo "${1}=${VALUE}" >> ${3}
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Generate the common data contained for
|
||||||
|
# all hardware peripherals
|
||||||
|
#
|
||||||
|
# $1 - file to write to
|
||||||
|
# $2 - name
|
||||||
|
# $3 - vendor ID
|
||||||
|
# $4 - hardware revision
|
||||||
|
# $5 - date
|
||||||
|
# $6 - lot code
|
||||||
|
# $7 - firmware revision
|
||||||
|
create_common_revision_data()
|
||||||
|
{
|
||||||
|
FILE="${1}"
|
||||||
|
echo "MOTHREV-v2" > ${FILE}
|
||||||
|
|
||||||
|
write_one_revision_data "hw_name" "${2}" ${FILE}
|
||||||
|
write_one_revision_data "vendor_id" "${3}" ${FILE}
|
||||||
|
write_one_revision_data "hw_rev" "${4}" ${FILE}
|
||||||
|
write_one_revision_data "date" "${5}" ${FILE}
|
||||||
|
write_one_revision_data "lot_code" "${6}" ${FILE}
|
||||||
|
write_one_revision_data "fw_rev" "${7}" ${FILE}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Applies the appropriate file permissions to the
|
||||||
|
# hardware revision data file.
|
||||||
|
#
|
||||||
|
# $1 - file to write to
|
||||||
|
apply_revision_data_perms()
|
||||||
|
{
|
||||||
|
chown ${OUT_USR}.${OUT_GRP} "${1}"
|
||||||
|
chmod ${OUT_PERM} "${1}"
|
||||||
|
}
|
||||||
|
|
||||||
|
mkdir -p ${OUT_PATH}
|
||||||
|
chown ${OUT_USR}.${OUT_GRP} ${OUT_PATH}
|
||||||
|
chmod ${OUT_PATH_PERM} ${OUT_PATH}
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Compile ram
|
||||||
|
#
|
||||||
|
FILE="${OUT_PATH}/ram"
|
||||||
|
HNAME=
|
||||||
|
VEND=
|
||||||
|
HREV=
|
||||||
|
DATE=
|
||||||
|
FREV=
|
||||||
|
LOT_CODE=
|
||||||
|
INFO=
|
||||||
|
SIZE=
|
||||||
|
if [ -d "${PATH_RAM}" ] ; then
|
||||||
|
HNAME=`cat ${PATH_RAM}/type`
|
||||||
|
VEND=`cat ${PATH_RAM}/info`
|
||||||
|
VEND="${VEND%%:*:*}"
|
||||||
|
INFO="$(cat ${PATH_RAM}/mr5),$(cat ${PATH_RAM}/mr6),$(cat ${PATH_RAM}/mr7),\
|
||||||
|
$(cat ${PATH_RAM}/mr8)"
|
||||||
|
SIZE=`cat ${PATH_RAM}/size`
|
||||||
|
fi
|
||||||
|
create_common_revision_data "${FILE}" "${HNAME}" "${VEND}" "" "" "" ""
|
||||||
|
write_one_revision_data "config_info" "${INFO}" "${FILE}"
|
||||||
|
write_one_revision_data "size" "${SIZE}" "${FILE}"
|
||||||
|
apply_revision_data_perms "${FILE}"
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Compile nvm
|
||||||
|
#
|
||||||
|
FILE="${OUT_PATH}/nvm"
|
||||||
|
HNAME=
|
||||||
|
VEND=
|
||||||
|
HREV=
|
||||||
|
DATE=
|
||||||
|
FREV=
|
||||||
|
LOT_CODE=
|
||||||
|
SIZE=
|
||||||
|
if [ -d "${PATH_NVM}" ] ; then
|
||||||
|
HNAME=`cat ${PATH_NVM}/type`
|
||||||
|
if [ -d "${PATH_STORAGE}" ] ; then
|
||||||
|
VEND=`cat ${PATH_STORAGE}/vendor`
|
||||||
|
SIZE=$((1024 * `cat ${PATH_STORAGE}/size | sed 's/[^0-9]//g'`))
|
||||||
|
else
|
||||||
|
VEND=`cat ${PATH_NVM}/manfid`
|
||||||
|
SIZE=$((1024 * `getprop ro.boot.storage | sed 's/[^0-9]//g'`))
|
||||||
|
fi
|
||||||
|
HREV=`cat ${PATH_NVM}/name`
|
||||||
|
DATE=`cat ${PATH_NVM}/date`
|
||||||
|
if [ -e ${PATH_NVM}/device_version -a -e ${PATH_NVM}/firmware_version ] ; then
|
||||||
|
FREV="$(cat ${PATH_NVM}/device_version),$(cat ${PATH_NVM}/firmware_version)"
|
||||||
|
else
|
||||||
|
FREV="$(cat ${PATH_NVM}/hwrev),$(cat ${PATH_NVM}/fwrev)"
|
||||||
|
fi
|
||||||
|
LOT_CODE="$(cat ${PATH_NVM}/csd)"
|
||||||
|
else
|
||||||
|
if [ -d "${PATH_STORAGE}" ] ; then
|
||||||
|
HNAME=`cat ${PATH_STORAGE}/type`
|
||||||
|
VEND=`cat ${PATH_STORAGE}/vendor`
|
||||||
|
HREV=`cat ${PATH_STORAGE}/model`
|
||||||
|
FREV=`cat ${PATH_STORAGE}/fw`
|
||||||
|
SIZE=$((1024 * `cat ${PATH_STORAGE}/size | sed 's/[^0-9]//g'`))
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
create_common_revision_data "${FILE}" "${HNAME}" "${VEND}" "${HREV}" "${DATE}" "${LOT_CODE}" "${FREV}"
|
||||||
|
write_one_revision_data "size" "${SIZE}" "${FILE}"
|
||||||
|
apply_revision_data_perms "${FILE}"
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Compile ap
|
||||||
|
#
|
||||||
|
FILE="${OUT_PATH}/ap"
|
||||||
|
HNAME=
|
||||||
|
VEND=
|
||||||
|
HREV=
|
||||||
|
DATE=
|
||||||
|
FREV=
|
||||||
|
LOT_CODE=
|
||||||
|
if [ -e "/proc/cpuinfo" ]; then
|
||||||
|
PREVIFS="$IFS"
|
||||||
|
IFS="
|
||||||
|
"
|
||||||
|
for CPU in `cat /proc/cpuinfo` ; do
|
||||||
|
KEY="${CPU%:*}"
|
||||||
|
VAL="${CPU#*: }"
|
||||||
|
case "${KEY}" in
|
||||||
|
Processor*) HNAME="${VAL}" ;;
|
||||||
|
*implementer*) VEND="${VAL}" ;;
|
||||||
|
*variant*) HREV="${VAL}" ;;
|
||||||
|
*part*) HREV="${HREV},${VAL}" ;;
|
||||||
|
*revision*) HREV="${HREV},${VAL}" ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
IFS="$PREVIFS"
|
||||||
|
fi
|
||||||
|
create_common_revision_data "${FILE}" "${HNAME}" "${VEND}" "${HREV}" "" "" ""
|
||||||
|
apply_revision_data_perms "${FILE}"
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# copy pmic data
|
||||||
|
#
|
||||||
|
if [ -e "/sys/hardware_revisions/pmic" ]; then
|
||||||
|
cat /sys/hardware_revisions/pmic > ${OUT_PATH}/pmic
|
||||||
|
else
|
||||||
|
create_common_revision_data "${OUT_PATH}/pmic" "" "" "" "" "" ""
|
||||||
|
fi
|
||||||
|
apply_revision_data_perms "${OUT_PATH}/pmic"
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# copy display data
|
||||||
|
# PATH_DISPLAY_DRM is the sys file path name for DRM display driver
|
||||||
|
# PATH_DISPLAY is the path name for the old FB driver
|
||||||
|
#
|
||||||
|
FILE="${OUT_PATH}/display"
|
||||||
|
HNAME=
|
||||||
|
VEND=
|
||||||
|
HREV=
|
||||||
|
if [ -e ${PATH_DISPLAY_DRM}/panelName ] ; then
|
||||||
|
HNAME=`cat ${PATH_DISPLAY_DRM}/panelName`
|
||||||
|
VEND=`cat ${PATH_DISPLAY_DRM}/panelSupplier`
|
||||||
|
HREV=`cat ${PATH_DISPLAY_DRM}/panelVer`
|
||||||
|
else
|
||||||
|
HNAME=`cat ${PATH_DISPLAY}/panel_name`
|
||||||
|
VEND=`cat ${PATH_DISPLAY}/panel_supplier`
|
||||||
|
HREV=`cat ${PATH_DISPLAY}/panel_ver`
|
||||||
|
fi
|
||||||
|
create_common_revision_data "${FILE}" "${HNAME}" "${VEND}" "${HREV}" "" "" ""
|
||||||
|
apply_revision_data_perms "${FILE}"
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Compile touchscreen
|
||||||
|
#
|
||||||
|
FILE="${OUT_PATH}/touchscreen"
|
||||||
|
HNAME=
|
||||||
|
VEND=
|
||||||
|
HREV=
|
||||||
|
DATE=
|
||||||
|
FREV=
|
||||||
|
LOT_CODE=
|
||||||
|
|
||||||
|
# If there is the touchclass path, then access the nodes under the path to get the touch related
|
||||||
|
# information, otherwise access the path originally defined by the script.
|
||||||
|
if [ -e "${PATH_TOUCH_CLASS}/vendor" ]; then
|
||||||
|
HNAME=`cat ${PATH_TOUCH_CLASS}/vendor`
|
||||||
|
ICVER=`cat -e ${PATH_TOUCH_CLASS}/ic_ver`
|
||||||
|
if [ "$HNAME" ]; then
|
||||||
|
VEND="${ICVER##*'Product ID: '}"
|
||||||
|
VEND="${VEND%%\$*}"
|
||||||
|
FREV="${ICVER##*'Build ID: '}"
|
||||||
|
FREV="${FREV%%\$*}"
|
||||||
|
LOT_CODE="${ICVER##*'Config ID: '}"
|
||||||
|
LOT_CODE="${LOT_CODE%%\$*}"
|
||||||
|
fi
|
||||||
|
elif [ -e "${PATH_TOUCH_SPI}/name" ]; then
|
||||||
|
HNAME=`cat ${PATH_TOUCH_SPI}/name`
|
||||||
|
ICVER=`cat -e ${PATH_TOUCH_SPI}/ic_ver`
|
||||||
|
case "$HNAME" in
|
||||||
|
focaltech*)
|
||||||
|
VEND="${ICVER##*'Product ID: '}"
|
||||||
|
VEND="${VEND%%\$*}"
|
||||||
|
FREV="${ICVER##*'Build ID: '}"
|
||||||
|
FREV="${FREV%%\$*}"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
else
|
||||||
|
if [ -e "${PATH_TOUCH}/name" ]; then
|
||||||
|
HNAME=`cat ${PATH_TOUCH}/name`
|
||||||
|
ICVER=`cat -e ${PATH_TOUCH}/ic_ver`
|
||||||
|
case "${HNAME}" in
|
||||||
|
melfas*)
|
||||||
|
VEND="Melfas"
|
||||||
|
HREV="${ICVER##*'HW Revision:'}"
|
||||||
|
HREV="${HREV%%\$*}"
|
||||||
|
FREV="${ICVER##*'Core FW ver:'}"
|
||||||
|
FREV="${FREV%%\$*}"
|
||||||
|
;;
|
||||||
|
cyttsp*)
|
||||||
|
VEND="${ICVER##*'Custom ID:'}"
|
||||||
|
VEND="${VEND%%\$*}"
|
||||||
|
VEND="Cypress,${VEND}"
|
||||||
|
HREV="${ICVER##*'TTSP Version:'}"
|
||||||
|
HREV="${HREV%%\$*}"
|
||||||
|
FREV="${ICVER##*'Application Version:'}"
|
||||||
|
FREV="${FREV%%\$*}"
|
||||||
|
;;
|
||||||
|
atmxt*)
|
||||||
|
VEND="Atmel"
|
||||||
|
HREV="${ICVER##*'Family ID:'}"
|
||||||
|
HREV1="${ICVER##*'Variant ID:'}"
|
||||||
|
HREV="${HREV%%\$*},${HREV1%%\$*}"
|
||||||
|
FREV="${ICVER##*'Version:'}"
|
||||||
|
FREV1="${ICVER##*'Build:'}"
|
||||||
|
FREV="${FREV%%\$*},${FREV1%%\$*}"
|
||||||
|
;;
|
||||||
|
synaptics*)
|
||||||
|
VEND="${ICVER##*'Product ID: '}"
|
||||||
|
VEND="${VEND%%\$*}"
|
||||||
|
FREV="${ICVER##*'Build ID: '}"
|
||||||
|
FREV="${FREV%%\$*}"
|
||||||
|
LOT_CODE="${ICVER##*'Config ID: '}"
|
||||||
|
LOT_CODE="${LOT_CODE%%\$*}"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
create_common_revision_data "${FILE}" "${HNAME}" "${VEND}" "${HREV}" "${DATE}" "${LOT_CODE}" "${FREV}"
|
||||||
|
apply_revision_data_perms "${FILE}"
|
||||||
|
|
153
rootdir/bin/init.class_main.sh
Normal file
153
rootdir/bin/init.class_main.sh
Normal file
|
@ -0,0 +1,153 @@
|
||||||
|
#! /vendor/bin/sh
|
||||||
|
|
||||||
|
# Copyright (c) 2013-2014, 2019 The Linux Foundation. All rights reserved.
|
||||||
|
#
|
||||||
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
# modification, are permitted provided that the following conditions are met:
|
||||||
|
# * Redistributions of source code must retain the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer.
|
||||||
|
# * Redistributions in binary form must reproduce the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer in the
|
||||||
|
# documentation and/or other materials provided with the distribution.
|
||||||
|
# * Neither the name of The Linux Foundation nor
|
||||||
|
# the names of its contributors may be used to endorse or promote
|
||||||
|
# products derived from this software without specific prior written
|
||||||
|
# permission.
|
||||||
|
#
|
||||||
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
# NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
||||||
|
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||||
|
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||||
|
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||||
|
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||||
|
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||||
|
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
|
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# start ril-daemon only for targets on which radio is present
|
||||||
|
#
|
||||||
|
baseband=`getprop ro.baseband`
|
||||||
|
sgltecsfb=`getprop persist.vendor.radio.sglte_csfb`
|
||||||
|
datamode=`getprop persist.vendor.data.mode`
|
||||||
|
qcrild_status=true
|
||||||
|
|
||||||
|
case "$baseband" in
|
||||||
|
"apq" | "sda" | "qcs" )
|
||||||
|
setprop ro.vendor.radio.noril yes
|
||||||
|
stop ril-daemon
|
||||||
|
stop vendor.ril-daemon
|
||||||
|
stop vendor.qcrild
|
||||||
|
esac
|
||||||
|
|
||||||
|
case "$baseband" in
|
||||||
|
"msm" | "csfb" | "svlte2a" | "mdm" | "mdm2" | "sglte" | "sglte2" | "dsda2" | "unknown" | "dsda3" | "sdm" | "sdx" | "sm6")
|
||||||
|
|
||||||
|
# For older modem packages launch ril-daemon.
|
||||||
|
if [ -f /vendor/firmware_mnt/verinfo/ver_info.txt ]; then
|
||||||
|
modem=`cat /vendor/firmware_mnt/verinfo/ver_info.txt |
|
||||||
|
sed -n 's/^[^:]*modem[^:]*:[[:blank:]]*//p' |
|
||||||
|
sed 's/.*MPSS.\(.*\)/\1/g' | cut -d \. -f 1`
|
||||||
|
if [ "$modem" = "AT" ]; then
|
||||||
|
version=`cat /vendor/firmware_mnt/verinfo/ver_info.txt |
|
||||||
|
sed -n 's/^[^:]*modem[^:]*:[[:blank:]]*//p' |
|
||||||
|
sed 's/.*AT.\(.*\)/\1/g' | cut -d \- -f 1`
|
||||||
|
if [ ! -z $version ]; then
|
||||||
|
if [ "$version" \< "3.1" ]; then
|
||||||
|
qcrild_status=false
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
elif [ "$modem" = "TA" ]; then
|
||||||
|
version=`cat /vendor/firmware_mnt/verinfo/ver_info.txt |
|
||||||
|
sed -n 's/^[^:]*modem[^:]*:[[:blank:]]*//p' |
|
||||||
|
sed 's/.*TA.\(.*\)/\1/g' | cut -d \- -f 1`
|
||||||
|
if [ ! -z $version ]; then
|
||||||
|
if [ "$version" \< "3.0" ]; then
|
||||||
|
qcrild_status=false
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
elif [ "$modem" = "JO" ]; then
|
||||||
|
version=`cat /vendor/firmware_mnt/verinfo/ver_info.txt |
|
||||||
|
sed -n 's/^[^:]*modem[^:]*:[[:blank:]]*//p' |
|
||||||
|
sed 's/.*JO.\(.*\)/\1/g' | cut -d \- -f 1`
|
||||||
|
if [ ! -z $version ]; then
|
||||||
|
if [ "$version" \< "3.2" ]; then
|
||||||
|
qcrild_status=false
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
elif [ "$modem" = "TH" ]; then
|
||||||
|
qcrild_status=false
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$qcrild_status" = "true" ]; then
|
||||||
|
# Make sure both rild, qcrild are not running at same time.
|
||||||
|
# This is possible with vanilla aosp system image.
|
||||||
|
stop ril-daemon
|
||||||
|
stop vendor.ril-daemon
|
||||||
|
|
||||||
|
start vendor.qcrild
|
||||||
|
else
|
||||||
|
start ril-daemon
|
||||||
|
start vendor.ril-daemon
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$baseband" in
|
||||||
|
"svlte2a" | "csfb")
|
||||||
|
start qmiproxy
|
||||||
|
;;
|
||||||
|
"sglte" | "sglte2" )
|
||||||
|
if [ "x$sgltecsfb" != "xtrue" ]; then
|
||||||
|
start qmiproxy
|
||||||
|
else
|
||||||
|
setprop persist.vendor.radio.voice.modem.index 0
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
multisim=`getprop persist.radio.multisim.config`
|
||||||
|
|
||||||
|
if [ "$multisim" = "dsds" ] || [ "$multisim" = "dsda" ]; then
|
||||||
|
if [ "$qcrild_status" = "true" ]; then
|
||||||
|
start vendor.qcrild2
|
||||||
|
else
|
||||||
|
start vendor.ril-daemon2
|
||||||
|
fi
|
||||||
|
elif [ "$multisim" = "tsts" ]; then
|
||||||
|
if [ "$qcrild_status" = "true" ]; then
|
||||||
|
start vendor.qcrild2
|
||||||
|
start vendor.qcrild3
|
||||||
|
else
|
||||||
|
start vendor.ril-daemon2
|
||||||
|
start vendor.ril-daemon3
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$datamode" in
|
||||||
|
"tethered")
|
||||||
|
start vendor.dataqti
|
||||||
|
start vendor.dataadpl
|
||||||
|
;;
|
||||||
|
"concurrent")
|
||||||
|
start vendor.dataqti
|
||||||
|
start vendor.dataadpl
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
esac
|
||||||
|
|
||||||
|
#
|
||||||
|
# Allow persistent faking of bms
|
||||||
|
# User needs to set fake bms charge in persist.vendor.bms.fake_batt_capacity
|
||||||
|
#
|
||||||
|
fake_batt_capacity=`getprop persist.vendor.bms.fake_batt_capacity`
|
||||||
|
case "$fake_batt_capacity" in
|
||||||
|
"") ;; #Do nothing here
|
||||||
|
* )
|
||||||
|
echo "$fake_batt_capacity" > /sys/class/power_supply/battery/capacity
|
||||||
|
;;
|
||||||
|
esac
|
35
rootdir/bin/init.crda.sh
Normal file
35
rootdir/bin/init.crda.sh
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
#! /vendor/bin/sh
|
||||||
|
|
||||||
|
# Copyright (c) 2012, The Linux Foundation. All rights reserved.
|
||||||
|
#
|
||||||
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
# modification, are permitted provided that the following conditions are met:
|
||||||
|
# * Redistributions of source code must retain the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer.
|
||||||
|
# * Redistributions in binary form must reproduce the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer in the
|
||||||
|
# documentation and/or other materials provided with the distribution.
|
||||||
|
# * Neither the name of The Linux Foundation nor
|
||||||
|
# the names of its contributors may be used to endorse or promote
|
||||||
|
# products derived from this software without specific prior written
|
||||||
|
# permission.
|
||||||
|
#
|
||||||
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
# NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
||||||
|
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||||
|
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||||
|
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||||
|
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||||
|
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||||
|
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
|
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
#
|
||||||
|
|
||||||
|
country=`getprop wlan.crda.country`
|
||||||
|
# crda takes input in COUNTRY environment variable
|
||||||
|
if [ $country != "" ]
|
||||||
|
then
|
||||||
|
COUNTRY="$country" /system/bin/crda
|
||||||
|
fi
|
30
rootdir/bin/init.gbmods.sh
Normal file
30
rootdir/bin/init.gbmods.sh
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
#!/vendor/bin/sh
|
||||||
|
|
||||||
|
debug=$(getprop ro.boot.gbdebug 2> /dev/null)
|
||||||
|
bootmode=$(getprop ro.bootmode 2> /dev/null)
|
||||||
|
|
||||||
|
# If androidboot.gbdebug is set on command line, skip inserting
|
||||||
|
# the pre-installed modules.
|
||||||
|
if [ "$debug" == "1" ]; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
insmod /vendor/lib/modules/greybus.ko
|
||||||
|
|
||||||
|
# Only support PTP and BATTERY in charge-only mode
|
||||||
|
if [ "$bootmode" == "charger" ]; then
|
||||||
|
insmod /vendor/lib/modules/gb-mods.ko
|
||||||
|
insmod /vendor/lib/modules/gb-battery.ko
|
||||||
|
insmod /vendor/lib/modules/gb-ptp.ko
|
||||||
|
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
gbmods="/vendor/lib/modules/gb-*"
|
||||||
|
for mod in $gbmods
|
||||||
|
do
|
||||||
|
insmod $mod
|
||||||
|
done
|
||||||
|
|
||||||
|
insmod /vendor/lib/modules/v4l2-hal.ko
|
||||||
|
start vendor.mods_camd
|
34
rootdir/bin/init.mdm.sh
Normal file
34
rootdir/bin/init.mdm.sh
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
#! /vendor/bin/sh
|
||||||
|
|
||||||
|
# Copyright (c) 2013, The Linux Foundation. All rights reserved.
|
||||||
|
#
|
||||||
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
# modification, are permitted provided that the following conditions are met:
|
||||||
|
# * Redistributions of source code must retain the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer.
|
||||||
|
# * Redistributions in binary form must reproduce the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer in the
|
||||||
|
# documentation and/or other materials provided with the distribution.
|
||||||
|
# * Neither the name of Linux Foundation nor
|
||||||
|
# the names of its contributors may be used to endorse or promote
|
||||||
|
# products derived from this software without specific prior written
|
||||||
|
# permission.
|
||||||
|
#
|
||||||
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
# NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
||||||
|
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||||
|
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||||
|
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||||
|
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||||
|
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||||
|
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
|
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
#
|
||||||
|
|
||||||
|
baseband=`getprop ro.baseband`
|
||||||
|
if [ "$baseband" = "mdm" ] || [ "$baseband" = "mdm2" ]; then
|
||||||
|
start vendor.mdm_helper
|
||||||
|
fi
|
||||||
|
|
36
rootdir/bin/init.mmi.block_perm.sh
Normal file
36
rootdir/bin/init.mmi.block_perm.sh
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
#!/vendor/bin/sh
|
||||||
|
|
||||||
|
block_by_name=/dev/block/bootdevice/by-name
|
||||||
|
utags=${block_by_name}/utags
|
||||||
|
utags_backup=${block_by_name}/utagsBackup
|
||||||
|
|
||||||
|
# Set correct permissions for UTAGS
|
||||||
|
/vendor/bin/chown -L root:system $utags
|
||||||
|
/vendor/bin/chown -L root:system $utags_backup
|
||||||
|
/vendor/bin/chmod -L 0660 $utags
|
||||||
|
/vendor/bin/chmod -L 0660 $utags_backup
|
||||||
|
|
||||||
|
# HOB/DHOB
|
||||||
|
hob=${block_by_name}/hob
|
||||||
|
dhob=${block_by_name}/dhob
|
||||||
|
/vendor/bin/chown -L radio:radio $hob
|
||||||
|
/vendor/bin/chown -L radio:radio $dhob
|
||||||
|
/vendor/bin/chmod -L 0660 $hob
|
||||||
|
/vendor/bin/chmod -L 0660 $dhob
|
||||||
|
|
||||||
|
# CLOGO
|
||||||
|
clogo=${block_by_name}/clogo
|
||||||
|
/vendor/bin/chown -L root:vendor_tcmd $clogo
|
||||||
|
/vendor/bin/chmod -L 0660 $clogo
|
||||||
|
|
||||||
|
#CID
|
||||||
|
cid=${block_by_name}/cid
|
||||||
|
/vendor/bin/chown -L root:vendor_tcmd $cid
|
||||||
|
/vendor/bin/chmod -L 0660 $cid
|
||||||
|
|
||||||
|
#BL logs
|
||||||
|
logs=${block_by_name}/logs
|
||||||
|
if [ -f $logs ]; then
|
||||||
|
/vendor/bin/chown -L root:system $logs
|
||||||
|
/vendor/bin/chmod -L 0640 $logs
|
||||||
|
fi
|
151
rootdir/bin/init.mmi.boot.sh
Normal file
151
rootdir/bin/init.mmi.boot.sh
Normal file
|
@ -0,0 +1,151 @@
|
||||||
|
#!/vendor/bin/sh
|
||||||
|
|
||||||
|
PATH=/sbin:/vendor/sbin:/vendor/bin:/vendor/xbin
|
||||||
|
export PATH
|
||||||
|
|
||||||
|
scriptname=${0##*/}
|
||||||
|
|
||||||
|
notice()
|
||||||
|
{
|
||||||
|
echo "$*"
|
||||||
|
echo "$scriptname: $*" > /dev/kmsg
|
||||||
|
}
|
||||||
|
|
||||||
|
# We take this from cpuinfo because hex "letters" are lowercase there
|
||||||
|
set -A cinfo `cat /proc/cpuinfo | sed -n "/Revision/p"`
|
||||||
|
hw=${cinfo[2]#?}
|
||||||
|
|
||||||
|
# Now "cook" the value so it can be matched against devtree names
|
||||||
|
m2=${hw%?}
|
||||||
|
minor2=${hw#$m2}
|
||||||
|
m1=${m2%?}
|
||||||
|
minor1=${m2#$m1}
|
||||||
|
if [ "$minor2" == "0" ]; then
|
||||||
|
minor2=""
|
||||||
|
if [ "$minor1" == "0" ]; then
|
||||||
|
minor1=""
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
setprop ro.vendor.hw.revision p${hw%??}$minor1$minor2
|
||||||
|
unset hw cinfo m1 m2 minor1 minor2
|
||||||
|
|
||||||
|
# reload UTAGS
|
||||||
|
utag_status=$(cat /proc/config/reload)
|
||||||
|
if [ "$utag_status" == "2" ]; then
|
||||||
|
notice "Utags are not ready, reloading"
|
||||||
|
echo 1 > /proc/config/reload
|
||||||
|
utag_status=$(cat /proc/config/reload)
|
||||||
|
[ "$utag_status" != "0" ] && notice "Utags failed to reload"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Export these for factory validation purposes
|
||||||
|
iccid=$(cat /proc/config/iccid/ascii 2>/dev/null)
|
||||||
|
if [ ! -z "$iccid" ]; then
|
||||||
|
setprop ro.vendor.mot.iccid $iccid
|
||||||
|
fi
|
||||||
|
unset iccid
|
||||||
|
cust_md5=$(cat /proc/config/cust_md5/ascii 2>/dev/null)
|
||||||
|
if [ ! -z "$cust_md5" ]; then
|
||||||
|
setprop ro.vendor.mot.cust_md5 $cust_md5
|
||||||
|
fi
|
||||||
|
unset cust_md5
|
||||||
|
|
||||||
|
# Get FTI data and catch old units with incorrect/missing UTAG_FTI
|
||||||
|
pds_fti=/mnt/vendor/persist/factory/fti
|
||||||
|
if [ -r $pds_fti ]; then
|
||||||
|
set -A fti $(od -A n -t x1 $pds_fti 2>/dev/null | tr '[A-F]' '[a-f]')
|
||||||
|
else
|
||||||
|
notice "Can not read FTI data in persist"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If UTAG_FTI is readable, compare checksums
|
||||||
|
# and if they mismatch, assume PDS is valid and overwrite UTAG
|
||||||
|
utag_fti=/proc/config/fti
|
||||||
|
if [ -r $utag_fti/ascii ]; then
|
||||||
|
set -A fti_utag $(cat ${utag_fti}/raw | sed 's/../& /g' | tr '[A-F]' '[a-f]')
|
||||||
|
# Byte 128 is total cksum, if nothing there, PDS data is invalid/missing
|
||||||
|
if [ ! -z "${fti[127]}" ]; then
|
||||||
|
# Make sure fti in UTAG is the same as in persist. Checksum comparison
|
||||||
|
if [ "${fti[126]}" != "${fti_utag[126]}" -o "${fti[127]}" != "${fti_utag[127]}" ]; then
|
||||||
|
notice "Copying FTI data from persist"
|
||||||
|
cat $pds_fti > ${utag_fti}/raw
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
# If PDS data is invalid, take UTAG and hope it is correct
|
||||||
|
notice "Will use FTI from UTAG"
|
||||||
|
set -A fti $(od -A n -t x1 ${utag_fti}/ascii 2>/dev/null)
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
notice "Missing FTI UTAG; copying from persist"
|
||||||
|
echo fti > /proc/config/all/new
|
||||||
|
cat $pds_fti > ${utag_fti}/raw
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Read HW version from FTI data
|
||||||
|
hw_v1="\x${fti[35]}"
|
||||||
|
hw_v2="\x${fti[36]}"
|
||||||
|
hw_v3="\x${fti[37]}"
|
||||||
|
if [ "$hw_v3" == "\x30" ]; then
|
||||||
|
hw_v3=""
|
||||||
|
fi
|
||||||
|
hw_v4="\x${fti[38]}"
|
||||||
|
if [ "$hw_v4" == "\x30" ]; then
|
||||||
|
hw_v4=""
|
||||||
|
fi
|
||||||
|
setprop ro.vendor.hw.boardversion $(printf "$hw_v1$hw_v2$hw_v3$hw_v4")
|
||||||
|
|
||||||
|
# Now we have set fti var either from PDS or UTAG
|
||||||
|
# Get Last Test Station stamp from FTI
|
||||||
|
# and convert to user-friendly date, US format
|
||||||
|
# Real offsets for year/month/day are 63/64/65
|
||||||
|
# If the month/date look reasonable, data is probably OK.
|
||||||
|
mdate="Unknown"
|
||||||
|
y=0x${fti[63]}
|
||||||
|
m=0x${fti[64]}
|
||||||
|
d=0x${fti[65]}
|
||||||
|
let year=$y month=$m day=$d
|
||||||
|
# Invalid data will often have bogus month/date values
|
||||||
|
if [ $month -le 12 -a $day -le 31 -a $year -ge 12 ]; then
|
||||||
|
mdate=$month/$day/20$year
|
||||||
|
else
|
||||||
|
notice "Corrupt FTI data"
|
||||||
|
fi
|
||||||
|
setprop ro.vendor.manufacturedate $mdate
|
||||||
|
unset fti y m d year month day utag_fti pds_fti fti_utag mdate
|
||||||
|
|
||||||
|
t=$(getprop ro.build.tags)
|
||||||
|
if [[ "$t" != *release* ]]; then
|
||||||
|
for p in $(cat /proc/cmdline); do
|
||||||
|
if [ ${p%%:*} = "@" ]; then
|
||||||
|
v=${p#@:}; a=${v%=*}; b=${v#*=}
|
||||||
|
${a%%:*} ${a##*:} $b
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
unset p v a b t
|
||||||
|
|
||||||
|
# Cleanup stale/incorrect programmed model value
|
||||||
|
# Real values will never contain substrings matching "internal" device name
|
||||||
|
product=$(getprop ro.vendor.hw.device)
|
||||||
|
model=$(cat /proc/config/model/ascii 2>/dev/null)
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
if [ "${model#*_}" == "$product" -o "${model%_*}" == "$product" ]; then
|
||||||
|
notice "Clearing stale model value"
|
||||||
|
echo "" > /proc/config/model/raw
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
unset model product
|
||||||
|
|
||||||
|
# set ro.vendor.bootreason, which be used to indicate kpanic/wdt boot status.
|
||||||
|
# When ro.boot.last_powerup_reason is set, it denotes this is a 2nd reboot
|
||||||
|
# after kpanic/wdt, we set ro.bootreason as coldboot to copy logs.
|
||||||
|
# Otherwise, we would set ro.bootreason the same as ro.boot.bootreason.
|
||||||
|
# ro.boot.bootreason is restricted as of android p, so get it another way:
|
||||||
|
bootreason_kvp=$(cat /proc/bootinfo | grep "Last boot reason")
|
||||||
|
last_power_up=$(getprop ro.boot.last_powerup_reason)
|
||||||
|
if [ ! -z "$last_power_up" ]
|
||||||
|
then
|
||||||
|
setprop ro.vendor.bootreason "coldboot"
|
||||||
|
else
|
||||||
|
setprop ro.vendor.bootreason ${bootreason_kvp##* }
|
||||||
|
fi
|
95
rootdir/bin/init.mmi.laser.sh
Normal file
95
rootdir/bin/init.mmi.laser.sh
Normal file
|
@ -0,0 +1,95 @@
|
||||||
|
#!/vendor/bin/sh
|
||||||
|
scriptname=${0##*/}
|
||||||
|
dbg_on=1
|
||||||
|
debug()
|
||||||
|
{
|
||||||
|
[ $dbg_on ] && echo "Debug: $*"
|
||||||
|
}
|
||||||
|
|
||||||
|
notice()
|
||||||
|
{
|
||||||
|
echo "$*"
|
||||||
|
echo "$scriptname: $*" > /dev/kmsg
|
||||||
|
}
|
||||||
|
|
||||||
|
error_and_leave()
|
||||||
|
{
|
||||||
|
local err_msg
|
||||||
|
local err_code=$1
|
||||||
|
case $err_code in
|
||||||
|
1) err_msg="Error: No response";;
|
||||||
|
2) err_msg="Error: Skip to overwrite xtalk and offset data in factory mode";;
|
||||||
|
3) err_msg="Error: Calibration data file $2 does not exist";;
|
||||||
|
4) err_msg="Error: Calibration sysfs path $2 does not show up";;
|
||||||
|
esac
|
||||||
|
notice "$err_msg"
|
||||||
|
exit $err_code
|
||||||
|
}
|
||||||
|
|
||||||
|
# Change laser sysfs file ownership
|
||||||
|
laser_class_path=/sys/devices/virtual/laser
|
||||||
|
laser_product_string=$(ls $laser_class_path)
|
||||||
|
laser_product_path=$laser_class_path/$laser_product_string
|
||||||
|
for laser_file in $laser_product_path/*; do
|
||||||
|
if [ -f "$laser_file" ]; then
|
||||||
|
chown root:system $laser_file
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ ! -d $laser_product_path ]; then
|
||||||
|
error_and_leave 4 "'$laser_product_path'"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Change laser input sysfs file ownership
|
||||||
|
laser_input_root=/sys/devices/virtual/input
|
||||||
|
laser_input_list=$(ls $laser_input_root)
|
||||||
|
for laser_input_dir in $laser_input_list; do
|
||||||
|
if [ -f "$laser_input_root/$laser_input_dir/calibration_data" ]; then
|
||||||
|
laser_calib_file=$laser_input_root/$laser_input_dir/calibration_data
|
||||||
|
chown root:system $laser_calib_file
|
||||||
|
fi
|
||||||
|
if [ -f "$laser_input_root/$laser_input_dir/xtalk" ]; then
|
||||||
|
laser_xtalk_file=$laser_input_root/$laser_input_dir/xtalk
|
||||||
|
chown root:system $laser_xtalk_file
|
||||||
|
fi
|
||||||
|
if [ -f "$laser_input_root/$laser_input_dir/offset" ]; then
|
||||||
|
laser_offset_file=$laser_input_root/$laser_input_dir/offset
|
||||||
|
chown root:system $laser_offset_file
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ -z "$laser_calib_file" ]; then
|
||||||
|
laser_calib_file=$laser_product_path/calibration_data
|
||||||
|
fi
|
||||||
|
if [ -z "$laser_xtalk_file" ]; then
|
||||||
|
laser_xtalk_file=$laser_product_path/xtalk
|
||||||
|
fi
|
||||||
|
if [ -z "$laser_offset_file" ]; then
|
||||||
|
laser_offset_file=$laser_product_path/offset
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Load calibration data
|
||||||
|
calib_data_file=/mnt/vendor/persist/camera/focus/cal_data
|
||||||
|
if [ -f $calib_data_file ]; then
|
||||||
|
chown root:vendor_tcmd $calib_data_file
|
||||||
|
chmod 660 $calib_data_file
|
||||||
|
if [ -z "$laser_calib_file" ]; then
|
||||||
|
error_and_leave 4 "'$laser_calib_file'"
|
||||||
|
else
|
||||||
|
cat $calib_data_file > $laser_calib_file
|
||||||
|
notice "laser calibration data updating complete"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
notice "laser calib_data_file '$calib_data_file' does not exist"
|
||||||
|
fi
|
||||||
|
|
||||||
|
bootmode=$(getprop ro.bootmode 2> /dev/null)
|
||||||
|
if [ $bootmode != "mot-factory" ]; then
|
||||||
|
# Enable smudge mode
|
||||||
|
echo 1 > $laser_product_path/smudge_correction_mode
|
||||||
|
notice "laser smudge mode enabled"
|
||||||
|
else
|
||||||
|
# Disable smudge mode
|
||||||
|
echo 0 > $laser_product_path/smudge_correction_mode
|
||||||
|
notice "factory-mode boot, disable laser smudge mode"
|
||||||
|
fi
|
37
rootdir/bin/init.mmi.mdlog-getlogs.sh
Normal file
37
rootdir/bin/init.mmi.mdlog-getlogs.sh
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
#!/vendor/bin/sh
|
||||||
|
|
||||||
|
getlogs_opts="/data/vendor/bug2go/getlogs.opts"
|
||||||
|
mdlog_user_opts="/data/vendor/diag_mdlog/user3.opts"
|
||||||
|
qdb_file="/firmware/image/qdsp6m.qdb"
|
||||||
|
qdb_file_alt="/vendor/firmware_mnt/image/qdsp6m.qdb"
|
||||||
|
|
||||||
|
arg_output="/data/vendor/bug2go/modem"
|
||||||
|
log_file=$arg_output/"getlogs.log"
|
||||||
|
mkdir $arg_output
|
||||||
|
|
||||||
|
# The output arg is fixed,
|
||||||
|
# use the cutomized opts from file if it exists
|
||||||
|
if [ -f $getlogs_opts ]; then
|
||||||
|
args=`cat $getlogs_opts`
|
||||||
|
# allow opts_file to be used only once
|
||||||
|
mv -f $getlogs_opts $arg_output/
|
||||||
|
else
|
||||||
|
# default value
|
||||||
|
args="-b 209715200"
|
||||||
|
fi
|
||||||
|
|
||||||
|
diag_mdlog-getlogs -o $arg_output $args &> $log_file
|
||||||
|
if [ -f $mdlog_user_opts ]; then
|
||||||
|
cp $mdlog_user_opts $arg_output/
|
||||||
|
fi
|
||||||
|
|
||||||
|
# copy qdsp6m.qdb
|
||||||
|
if [ -f $qdb_file ]; then
|
||||||
|
cp $qdb_file $arg_output/
|
||||||
|
else
|
||||||
|
# copy qdsp6m.qdb from alternate folder
|
||||||
|
if [ -f $qdb_file_alt ]; then
|
||||||
|
cp $qdb_file_alt $arg_output/
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
9
rootdir/bin/init.mmi.modules.sh
Normal file
9
rootdir/bin/init.mmi.modules.sh
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
#!/vendor/bin/sh
|
||||||
|
|
||||||
|
# All modules that depend on conditions or need extra parameters
|
||||||
|
# should go here.
|
||||||
|
|
||||||
|
buildtype=$(getprop ro.build.type)
|
||||||
|
if [ $buildtype = "userdebug" ]; then
|
||||||
|
insmod /vendor/lib/modules/watchdogtest.ko
|
||||||
|
fi
|
59
rootdir/bin/init.mmi.shutdown.sh
Normal file
59
rootdir/bin/init.mmi.shutdown.sh
Normal file
|
@ -0,0 +1,59 @@
|
||||||
|
#!/vendor/bin/sh
|
||||||
|
|
||||||
|
PATH=/sbin:/vendor/sbin:/vendor/bin:/vendor/xbin
|
||||||
|
export PATH
|
||||||
|
|
||||||
|
scriptname=${0##*/}
|
||||||
|
|
||||||
|
debug()
|
||||||
|
{
|
||||||
|
echo "$*"
|
||||||
|
}
|
||||||
|
|
||||||
|
notice()
|
||||||
|
{
|
||||||
|
echo "$*"
|
||||||
|
echo "$scriptname: $*" > /dev/kmsg
|
||||||
|
}
|
||||||
|
|
||||||
|
get_history_value()
|
||||||
|
{
|
||||||
|
local __result=$1
|
||||||
|
local history_count=0
|
||||||
|
local value=""
|
||||||
|
local IFS=','
|
||||||
|
|
||||||
|
shift 1
|
||||||
|
for arg in ${@}; do
|
||||||
|
value=$value",$arg"
|
||||||
|
history_count=$(($history_count + 1))
|
||||||
|
if [ $history_count -eq 3 ]; then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
eval $__result="$value"
|
||||||
|
debug "value:$value history_count:$history_count"
|
||||||
|
}
|
||||||
|
|
||||||
|
set_reboot_bootseq_history()
|
||||||
|
{
|
||||||
|
#get current boot sequence
|
||||||
|
if [ ! -f /proc/bootinfo ]; then
|
||||||
|
notice "Error:/proc/bootinfo is not ready"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
boot_seq_line=`grep BOOT_SEQ /proc/bootinfo | sed 's/ //g'`
|
||||||
|
boot_seq=${boot_seq_line##*:}
|
||||||
|
notice "BOOT_SEQ is $boot_seq"
|
||||||
|
shutdown_time=`date +%s`
|
||||||
|
|
||||||
|
#get previous value of bootseq history
|
||||||
|
bootseq_history=`getprop persist.vendor.reboot.bootseq.history`
|
||||||
|
notice "booseq_history is $bootseq_history"
|
||||||
|
get_history_value valid_history_value $bootseq_history
|
||||||
|
setprop persist.vendor.reboot.bootseq.history "$boot_seq.$shutdown_time$valid_history_value"
|
||||||
|
new_bootseq_history=`getprop persist.vendor.reboot.bootseq.history`
|
||||||
|
notice "set persist.vendor.reboot.bootseq.history $new_bootseq_history"
|
||||||
|
}
|
||||||
|
|
||||||
|
set_reboot_bootseq_history
|
558
rootdir/bin/init.mmi.touch.sh
Normal file
558
rootdir/bin/init.mmi.touch.sh
Normal file
|
@ -0,0 +1,558 @@
|
||||||
|
#!/vendor/bin/sh
|
||||||
|
|
||||||
|
PATH=/sbin:/vendor/sbin:/vendor/bin:/vendor/xbin
|
||||||
|
export PATH
|
||||||
|
|
||||||
|
while getopts cds op;
|
||||||
|
do
|
||||||
|
case $op in
|
||||||
|
c) cal_on=1;;
|
||||||
|
d) dbg_on=1;;
|
||||||
|
s) dump_statistics=1;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
shift $(($OPTIND-1))
|
||||||
|
|
||||||
|
# Globals
|
||||||
|
scriptname=${0##*/}
|
||||||
|
touch_class_path=/sys/class/touchscreen
|
||||||
|
touch_status_prop=
|
||||||
|
touch_update_prop=
|
||||||
|
touch_calibration_done_version=persist.vendor.touch.calibration
|
||||||
|
touch_vendor=
|
||||||
|
touch_path=
|
||||||
|
panel_path=/sys/devices/virtual/graphics/fb0
|
||||||
|
oem_panel_script=/vendor/bin/init.oem.panel.sh
|
||||||
|
dlkm_path=/vendor/lib/modules
|
||||||
|
device_property=ro.vendor.hw.device
|
||||||
|
hwrev_property=ro.vendor.hw.revision
|
||||||
|
firmware_path=/vendor/firmware
|
||||||
|
factory_property=ro.vendor.build.motfactory
|
||||||
|
bootmode_property=ro.bootmode
|
||||||
|
let dec_cfg_id_boot=0
|
||||||
|
let dec_cfg_id_latest=0
|
||||||
|
typeset -l product_id
|
||||||
|
panel_ver=
|
||||||
|
supplier=
|
||||||
|
property=
|
||||||
|
config_id=
|
||||||
|
build_id=
|
||||||
|
hwrev_id=
|
||||||
|
str_cfg_id_new=
|
||||||
|
str_cfg_id_boot=
|
||||||
|
str_cfg_id_latest=
|
||||||
|
build_id_new=
|
||||||
|
|
||||||
|
debug()
|
||||||
|
{
|
||||||
|
[ $dbg_on ] && echo "Debug: $*"
|
||||||
|
}
|
||||||
|
|
||||||
|
notice()
|
||||||
|
{
|
||||||
|
echo "$*"
|
||||||
|
echo "$scriptname: $*" > /dev/kmsg
|
||||||
|
}
|
||||||
|
|
||||||
|
sanity_check()
|
||||||
|
{
|
||||||
|
read_touch_property flashprog || return 1
|
||||||
|
[[ ( -z "$property" ) || ( "$property" == "1" ) ]] && return 2
|
||||||
|
read_touch_property productinfo || return 1
|
||||||
|
[[ ( -z "$property" ) || ( "$property" == "0" ) ]] && return 2
|
||||||
|
read_touch_property buildid || return 1
|
||||||
|
config_id=${property#*-}
|
||||||
|
[[ ( -z "$config_id" ) || ( "$config_id" == "0" ) ]] && return 2
|
||||||
|
build_id=${property%-*}
|
||||||
|
[[ ( -z "$build_id" ) || ( "$build_id" == "0" ) ]] && return 2
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
error_msg()
|
||||||
|
{
|
||||||
|
local err_msg
|
||||||
|
local err_code=$1
|
||||||
|
case $err_code in
|
||||||
|
1) err_msg="Error: No response from touch IC";;
|
||||||
|
2) err_msg="Error: Cannot read property $2";;
|
||||||
|
3) err_msg="Error: No matching firmware file found";;
|
||||||
|
4) err_msg="Error: Touch IC is in bootloader mode";;
|
||||||
|
5) err_msg="Error: Touch provides no reflash interface";;
|
||||||
|
6) err_msg="Error: Touch driver is not running";;
|
||||||
|
7) err_msg="Warning: Touch firmware is not the latest";;
|
||||||
|
8) err_msg="Info: Touch class does not exist";;
|
||||||
|
9) err_msg="Error: Touch IC is not ready to flash";;
|
||||||
|
esac
|
||||||
|
notice "$err_msg"
|
||||||
|
}
|
||||||
|
|
||||||
|
error_and_leave()
|
||||||
|
{
|
||||||
|
local err_code=$1
|
||||||
|
local touch_status="unknown"
|
||||||
|
error_msg $err_code
|
||||||
|
case $err_code in
|
||||||
|
1|4) touch_status="dead";;
|
||||||
|
5|6|8) touch_status="absent";;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# perform sanity check and declare touch ready if error is not fatal
|
||||||
|
if [ "$touch_status" == "unknown" ]; then
|
||||||
|
sanity_check
|
||||||
|
case "$?" in
|
||||||
|
0) touch_status="ready";;
|
||||||
|
2) touch_status="dead";;
|
||||||
|
1) touch_status="absent";;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
|
# perform recovery if touch is declared dead
|
||||||
|
if [ "$touch_status" == "dead" ]; then
|
||||||
|
notice "Touch needs to go through recovery!!!"
|
||||||
|
reboot_cnt=$(getprop $touch_status_prop 2>/dev/null)
|
||||||
|
[ -z "$reboot_cnt" ] && reboot_cnt=0
|
||||||
|
debug "current reboot counter [$reboot_cnt]"
|
||||||
|
fi
|
||||||
|
|
||||||
|
setprop $touch_status_prop $touch_status
|
||||||
|
notice "property [$touch_status_prop] set to [`getprop $touch_status_prop`]"
|
||||||
|
|
||||||
|
if [ "$touch_status" == "dead" ]; then
|
||||||
|
notice "Touch is not responding; no further action!!!"
|
||||||
|
#if [ $((reboot_cnt)) -lt 2 ]; then
|
||||||
|
# notice "Touch is not working; rebooting..."
|
||||||
|
# debug "sleep 3s to allow touch-dead-sh service to run"
|
||||||
|
# sleep 3
|
||||||
|
# [ -z "$dbg_on" ] && setprop sys.powerctl reboot
|
||||||
|
#else
|
||||||
|
# notice "Although touch is not working, no more reboots"
|
||||||
|
#fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit $err_code
|
||||||
|
}
|
||||||
|
|
||||||
|
prepend()
|
||||||
|
{
|
||||||
|
local list=""
|
||||||
|
local prefix=$1
|
||||||
|
shift
|
||||||
|
for name in $*; do
|
||||||
|
list="$list$prefix/$name "
|
||||||
|
done
|
||||||
|
echo $list
|
||||||
|
}
|
||||||
|
|
||||||
|
dump_statistics()
|
||||||
|
{
|
||||||
|
debug "dumping touch statistics"
|
||||||
|
cat $touch_path/ic_ver
|
||||||
|
[ -f $touch_path/stats ] && cat $touch_path/stats
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
wait_for_poweron()
|
||||||
|
{
|
||||||
|
local wait_nomore
|
||||||
|
local readiness
|
||||||
|
local count
|
||||||
|
debug "wait until driver reports <ready to flash>..."
|
||||||
|
wait_nomore=60
|
||||||
|
count=0
|
||||||
|
while true; do
|
||||||
|
readiness=$(cat $touch_path/poweron)
|
||||||
|
if [ "$readiness" == "1" ]; then
|
||||||
|
debug "ready to flash!!!"
|
||||||
|
break;
|
||||||
|
fi
|
||||||
|
count=$((count+1))
|
||||||
|
[ $count -eq $wait_nomore ] && break
|
||||||
|
sleep 1
|
||||||
|
debug "not ready; keep waiting..."
|
||||||
|
done
|
||||||
|
if [ $count -eq $wait_nomore ]; then
|
||||||
|
error_msg 9
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
setup_permissions()
|
||||||
|
{
|
||||||
|
local bootmode=$(getprop $bootmode_property 2> /dev/null)
|
||||||
|
local selinux=$(getprop ro.boot.selinux 2> /dev/null)
|
||||||
|
local key_path
|
||||||
|
local key_files
|
||||||
|
local entry
|
||||||
|
if [[ ("$selinux" == "permissive") || ("$bootmode" == "mot-factory") ]]; then
|
||||||
|
debug "loosen permissions to $touch_vendor files"
|
||||||
|
case $touch_vendor in
|
||||||
|
samsung) key_path="/sys/devices/virtual/sec/sec_ts/"
|
||||||
|
key_files=$(ls $key_path 2>/dev/null)
|
||||||
|
# Set optional permissions to LSI touch tests
|
||||||
|
[ -f $touch_path/size ] && chown root:vendor_tcmd $touch_path/size
|
||||||
|
[ -f $touch_path/address ] && chown root:vendor_tcmd $touch_path/address
|
||||||
|
[ -f $touch_path/write ] && chown root:vendor_tcmd $touch_path/write
|
||||||
|
;;
|
||||||
|
synaptics) key_path=$touch_path
|
||||||
|
key_files=$(prepend f54 `ls $touch_path/f54/ 2>/dev/null`)
|
||||||
|
key_files=$key_files"reporting query stats";;
|
||||||
|
focaltech) key_path="/proc/"
|
||||||
|
key_files="ftxxxx-debug";;
|
||||||
|
ilitek) key_path="/proc/ilitek"
|
||||||
|
key_files="ioctl";;
|
||||||
|
goodix) key_path="/proc/"
|
||||||
|
key_files="gmnode"
|
||||||
|
if [[ "$touch_instance" == "GTx5" ]] || [[ "$touch_instance" == "GTx8" ]]; then
|
||||||
|
key_path="/dev/"
|
||||||
|
key_files="gtp_tools"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
for entry in $key_files; do
|
||||||
|
chmod 0666 $key_path/$entry
|
||||||
|
debug "change permissions of $key_path/$entry"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
# Set permissions to enable factory touch tests
|
||||||
|
chown root:vendor_tcmd $touch_path/drv_irq
|
||||||
|
chown root:vendor_tcmd $touch_path/hw_irqstat
|
||||||
|
chown root:vendor_tcmd $touch_path/reset
|
||||||
|
|
||||||
|
# Set permissions to allow Bug2Go access to touch statistics
|
||||||
|
chown root:log $touch_path/stats
|
||||||
|
# Erase is optional
|
||||||
|
[ -f $touch_path/erase_all ] && chown root:vendor_tcmd $touch_path/erase_all
|
||||||
|
}
|
||||||
|
|
||||||
|
read_touch_property()
|
||||||
|
{
|
||||||
|
property=""
|
||||||
|
debug "retrieving property: [$touch_path/$1]"
|
||||||
|
property=$(cat $touch_path/$1 2> /dev/null)
|
||||||
|
debug "touch property [$1] is: [$property]"
|
||||||
|
[ -z "$property" ] && return 1
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
read_panel_property()
|
||||||
|
{
|
||||||
|
property=""
|
||||||
|
debug "retrieving panel property: [$panel_path/$1]"
|
||||||
|
property=$(cat $panel_path/$1 2> /dev/null)
|
||||||
|
debug "panel property [$1] is: [$property]"
|
||||||
|
[ -z "$property" ] && return 1
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
find_latest_config_id()
|
||||||
|
{
|
||||||
|
local fw_mask=$1
|
||||||
|
local skip_fields=$2
|
||||||
|
local dec max z str_hex i
|
||||||
|
str_cfg_id_latest=""
|
||||||
|
debug "scanning dir for files matching [$fw_mask]"
|
||||||
|
let dec=0; max=0;
|
||||||
|
for file in $(ls $fw_mask 2>/dev/null); do
|
||||||
|
z=$file
|
||||||
|
i=0
|
||||||
|
while [ ! $i -eq $skip_fields ]; do
|
||||||
|
z=${z#*-}
|
||||||
|
i=$((i+1))
|
||||||
|
done
|
||||||
|
str_hex=${z%%-*};
|
||||||
|
let dec=0x$str_hex
|
||||||
|
if [ $dec -gt $max ]; then
|
||||||
|
let max=$dec; dec_cfg_id_latest=$dec;
|
||||||
|
str_cfg_id_latest=$str_hex
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
[ -z "$str_cfg_id_latest" ] && return 1
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
find_best_match()
|
||||||
|
{
|
||||||
|
local hw_mask=$1
|
||||||
|
local panel_supplier=$2
|
||||||
|
local skip_fields fw_mask
|
||||||
|
while [ ! -z "$hw_mask" ]; do
|
||||||
|
if [ "$hw_mask" == "-" ]; then
|
||||||
|
hw_mask=""
|
||||||
|
fi
|
||||||
|
if [ ! -z "$panel_supplier" ]; then
|
||||||
|
skip_fields=3
|
||||||
|
fw_mask="$touch_vendor-$panel_supplier-$touch_product_id-*-$product_id$hw_mask.*"
|
||||||
|
else
|
||||||
|
skip_fields=2
|
||||||
|
fw_mask="$touch_vendor-$touch_product_id-*-$product_id$hw_mask.*"
|
||||||
|
fi
|
||||||
|
find_latest_config_id "$fw_mask" "$skip_fields" && break
|
||||||
|
hw_mask=${hw_mask%?}
|
||||||
|
done
|
||||||
|
[ -z "$str_cfg_id_latest" ] && return 1
|
||||||
|
if [ -z "$panel_supplier" ]; then
|
||||||
|
firmware_file=$(ls $touch_vendor-$touch_product_id-$str_cfg_id_latest-*-$product_id$hw_mask.*)
|
||||||
|
else
|
||||||
|
firmware_file=$(ls $touch_vendor-$panel_supplier-$touch_product_id-$str_cfg_id_latest-*-$product_id$hw_mask.*)
|
||||||
|
fi
|
||||||
|
notice "Firmware file for upgrade $firmware_file"
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
query_touch_info()
|
||||||
|
{
|
||||||
|
read_touch_property flashprog
|
||||||
|
bl_mode=$property
|
||||||
|
debug "bl mode: $bl_mode"
|
||||||
|
while true; do
|
||||||
|
read_touch_property productinfo
|
||||||
|
touch_product_id=$property
|
||||||
|
if [ "$touch_product_id" ]; then
|
||||||
|
# driver might not be ready yet, wait
|
||||||
|
debug "touch product id: $touch_product_id"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
|
if [ "$touch_product_id" == "0" ]; then
|
||||||
|
debug "touch ic reports invalid product id"
|
||||||
|
error_msg 1
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
read_touch_property buildid
|
||||||
|
str_cfg_id_boot=${property#*-}
|
||||||
|
let dec_cfg_id_boot=0x$str_cfg_id_boot
|
||||||
|
debug "touch config id: $str_cfg_id_boot"
|
||||||
|
build_id_boot=${property%-*}
|
||||||
|
debug "touch build id: $build_id_boot"
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
query_panel_info()
|
||||||
|
{
|
||||||
|
supplier=""
|
||||||
|
read_touch_property "panel_supplier"
|
||||||
|
[ -z "$property" ] && read_panel_property "panel_supplier"
|
||||||
|
supplier=$property
|
||||||
|
if [ "$supplier" ]; then
|
||||||
|
read_panel_property "controller_drv_ver"
|
||||||
|
panel_ver=${property#${property%?}}
|
||||||
|
debug "panel supplier: $supplier, ver $panel_ver"
|
||||||
|
else
|
||||||
|
debug "driver does not report panel supplier"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
load_driver_modules()
|
||||||
|
{
|
||||||
|
if [ "$supplier" ]; then
|
||||||
|
if [ -f $oem_panel_script ]; then
|
||||||
|
debug "load_driver_modules()"
|
||||||
|
$oem_panel_script -s $supplier
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
search_firmware_file()
|
||||||
|
{
|
||||||
|
local match_not_found
|
||||||
|
match_not_found=1
|
||||||
|
if [ "$supplier" ]; then
|
||||||
|
for pattern in "$supplier$panel_ver" "$supplier"; do
|
||||||
|
debug "search for best hw revision match with supplier"
|
||||||
|
find_best_match "-$hwrev_id" "$pattern"
|
||||||
|
match_not_found=$?
|
||||||
|
[ "$match_not_found" == "0" ] && break
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
if [ "$match_not_found" != "0" ]; then
|
||||||
|
debug "search for best hw revision match without supplier"
|
||||||
|
find_best_match "-$hwrev_id"
|
||||||
|
if [ "$?" != "0" ]; then
|
||||||
|
error_msg 3
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
reload_modules()
|
||||||
|
{
|
||||||
|
local rc
|
||||||
|
local module
|
||||||
|
for module in $*; do
|
||||||
|
[ -f $dlkm_path/$module.ko ] || continue
|
||||||
|
notice "Reloading [$module.ko]..."
|
||||||
|
rmmod $module
|
||||||
|
rc=$?
|
||||||
|
[ $rc != 0 ] && notice "Unloading [$module] failed: $rc"
|
||||||
|
insmod $dlkm_path/$module.ko
|
||||||
|
rc=$?
|
||||||
|
[ $rc != 0 ] && notice "Loading [$module] failed: $rc"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
run_firmware_upgrade()
|
||||||
|
{
|
||||||
|
local recovery
|
||||||
|
recovery=0
|
||||||
|
if [ "$bl_mode" == "1" ] || [ "$build_id_boot" == "0" ]; then
|
||||||
|
recovery=1
|
||||||
|
notice "Initiating touch firmware recovery"
|
||||||
|
notice " bl mode = $bl_mode"
|
||||||
|
notice " build id = $build_id_boot"
|
||||||
|
fi
|
||||||
|
if [ $dec_cfg_id_boot -ne $dec_cfg_id_latest ] || [ "$recovery" == "1" ]; then
|
||||||
|
wait_for_poweron
|
||||||
|
debug "forcing firmware upgrade"
|
||||||
|
echo 1 > $touch_path/forcereflash
|
||||||
|
debug "sending reflash command"
|
||||||
|
echo $firmware_file > $touch_path/doreflash
|
||||||
|
read_touch_property flashprog
|
||||||
|
if [ "$?" != "0" ]; then
|
||||||
|
error_msg 1
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
bl_mode=$property
|
||||||
|
if [ "$bl_mode" == "1" ]; then
|
||||||
|
error_msg 4
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
read_touch_property buildid
|
||||||
|
if [ "$?" != "0" ]; then
|
||||||
|
error_msg 1
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
str_cfg_id_new=${property#*-}
|
||||||
|
build_id_new=${property%-*}
|
||||||
|
notice "Touch firmware config id at boot time $str_cfg_id_boot"
|
||||||
|
notice "Touch firmware config id in the file $str_cfg_id_latest"
|
||||||
|
notice "Touch firmware config id currently programmed $str_cfg_id_new"
|
||||||
|
[ "$str_cfg_id_latest" != "$str_cfg_id_new" ] && error_msg 7 && return 1
|
||||||
|
# indicate that update has been completed
|
||||||
|
setprop $touch_update_prop "completed"
|
||||||
|
notice "property [$touch_update_prop] set to [`getprop $touch_update_prop`]"
|
||||||
|
if [ "$touch_vendor" == "synaptics" ]; then
|
||||||
|
notice "forcing F54 registers update"
|
||||||
|
echo 1 > $touch_path/f54/force_update
|
||||||
|
notice "need to reload F54"
|
||||||
|
reload_modules "synaptics_dsx_test_reporting"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
do_sec_calibration()
|
||||||
|
{
|
||||||
|
local __result=$1
|
||||||
|
local info
|
||||||
|
local rc
|
||||||
|
|
||||||
|
sleep 3
|
||||||
|
echo run_force_calibration > /sys/devices/virtual/sec/tsp/cmd
|
||||||
|
rc=$(cat /sys/devices/virtual/sec/tsp/cmd_result)
|
||||||
|
[ "$rc" != "run_force_calibration:OK" ] && return 1
|
||||||
|
info=$(cat $touch_class_path/$touch_instance/buildid)
|
||||||
|
if [ -f $touch_class_path/$touch_instance/mutual_range ]; then
|
||||||
|
info=$info";$(cat $touch_class_path/$touch_instance/mutual_range)"
|
||||||
|
else
|
||||||
|
notice "mutual range unavailable"
|
||||||
|
fi
|
||||||
|
info=$info";forced"
|
||||||
|
eval "$__result='$info'"
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
do_calibration()
|
||||||
|
{
|
||||||
|
local rc
|
||||||
|
local cal_info
|
||||||
|
local factory_build
|
||||||
|
local cal_version
|
||||||
|
|
||||||
|
factory_build=$(getprop $factory_property 2> /dev/null)
|
||||||
|
cal_info=$(getprop $touch_calibration_done_version 2> /dev/null)
|
||||||
|
# new calibration info comes with mutual range and probably was enforced
|
||||||
|
if [[ ("$cal_info" && "${cal_info%%;*}" != "$cal_info") || ("$cal_info" == "enable-autocalibration") ]]; then
|
||||||
|
cal_version=${cal_info%%;*}
|
||||||
|
cal_version=${cal_version#*-}
|
||||||
|
debug "cal_version is '$cal_version'"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ("$factory_build" != 1 || "$cal_version" != "autocalibration") ]]; then
|
||||||
|
debug "factory='$factory_build', cal_version='$cal_version', latest='$str_cfg_id_latest'"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
notice "Force touch calibration"
|
||||||
|
case $touch_vendor in
|
||||||
|
samsung) do_sec_calibration cal_info
|
||||||
|
rc=$?
|
||||||
|
debug "cal_info='$cal_info'"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
notice "Touch calibration result $rc"
|
||||||
|
[ $rc == 0 ] && setprop $touch_calibration_done_version $cal_info
|
||||||
|
}
|
||||||
|
|
||||||
|
process_touch_instance()
|
||||||
|
{
|
||||||
|
touch_vendor=$(cat $touch_class_path/$touch_instance/vendor)
|
||||||
|
debug "touch vendor [$touch_vendor]"
|
||||||
|
touch_path=/sys$(cat $touch_class_path/$touch_instance/path)
|
||||||
|
debug "sysfs touch path: $touch_path"
|
||||||
|
touch_status_prop=vendor.hw.touch.$touch_instance.status
|
||||||
|
touch_update_prop=vendor.hw.touch.$touch_instance.update
|
||||||
|
if [ ! -f $touch_path/doreflash ] ||
|
||||||
|
[ ! -f $touch_path/poweron ] ||
|
||||||
|
[ ! -f $touch_path/flashprog ] ||
|
||||||
|
[ ! -f $touch_path/productinfo ] ||
|
||||||
|
[ ! -f $touch_path/buildid ]; then
|
||||||
|
error_msg 5
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
if [ $dump_statistics ]; then
|
||||||
|
dump_statistics
|
||||||
|
fi
|
||||||
|
notice "Checking touch ID [$touch_instance] FW upgrade"
|
||||||
|
touch_vendor=$(cat $touch_class_path/$touch_instance/vendor)
|
||||||
|
debug "touch vendor [$touch_vendor]"
|
||||||
|
touch_path=/sys$(cat $touch_class_path/$touch_instance/path)
|
||||||
|
debug "sysfs touch path: $touch_path"
|
||||||
|
query_touch_info
|
||||||
|
query_panel_info
|
||||||
|
search_firmware_file
|
||||||
|
[ "$?" == "0" ] && run_firmware_upgrade
|
||||||
|
do_calibration
|
||||||
|
notice "Touch firmware is up to date"
|
||||||
|
setprop $touch_status_prop "ready"
|
||||||
|
notice "property [$touch_status_prop] set to [`getprop $touch_status_prop`]"
|
||||||
|
notice "Handling touch ID [$touch_instance] permissions"
|
||||||
|
setup_permissions
|
||||||
|
}
|
||||||
|
|
||||||
|
# Main starts here
|
||||||
|
query_panel_info
|
||||||
|
load_driver_modules
|
||||||
|
[ -d $touch_class_path ] || error_and_leave 8
|
||||||
|
debug "sysfs panel path: $panel_path"
|
||||||
|
product_id=$(getprop $device_property 2> /dev/null)
|
||||||
|
[ -z "$product_id" ] && error_and_leave 2 $device_property
|
||||||
|
product_id=${product_id%-*}
|
||||||
|
product_id=${product_id%_*}
|
||||||
|
debug "product id: $product_id"
|
||||||
|
hwrev_id=$(getprop $hwrev_property 2> /dev/null)
|
||||||
|
[ -z "$hwrev_id" ] && notice "hw revision undefined"
|
||||||
|
debug "hw revision: $hwrev_id"
|
||||||
|
cd $firmware_path
|
||||||
|
# Run asynchronously for each instance
|
||||||
|
for touch_instance in $(ls $touch_class_path); do
|
||||||
|
process_touch_instance &
|
||||||
|
done
|
||||||
|
|
||||||
|
# check if need to reload modules
|
||||||
|
wait
|
||||||
|
debug "all background processes completed"
|
||||||
|
|
||||||
|
return 0
|
435
rootdir/bin/init.mmi.usb.sh
Normal file
435
rootdir/bin/init.mmi.usb.sh
Normal file
|
@ -0,0 +1,435 @@
|
||||||
|
#!/vendor/bin/sh
|
||||||
|
# Copyright (c) 2012, Code Aurora Forum. All rights reserved.
|
||||||
|
#
|
||||||
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
# modification, are permitted provided that the following conditions are
|
||||||
|
# met:
|
||||||
|
# * Redistributions of source code must retain the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer.
|
||||||
|
# * Redistributions in binary form must reproduce the above
|
||||||
|
# copyright notice, this list of conditions and the following
|
||||||
|
# disclaimer in the documentation and/or other materials provided
|
||||||
|
# with the distribution.
|
||||||
|
# * Neither the name of Code Aurora Forum, Inc. nor the names of its
|
||||||
|
# contributors may be used to endorse or promote products derived
|
||||||
|
# from this software without specific prior written permission.
|
||||||
|
#
|
||||||
|
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
|
||||||
|
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
|
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
|
||||||
|
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
|
||||||
|
# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||||
|
# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||||
|
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
||||||
|
# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||||
|
# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Allow unique persistent serial numbers for devices connected via usb
|
||||||
|
# User needs to set unique usb serial number to persist.usb.serialno and
|
||||||
|
# if persistent serial number is not set then Update USB serial number if
|
||||||
|
# passed from command line
|
||||||
|
#
|
||||||
|
|
||||||
|
target=`getprop ro.board.platform`
|
||||||
|
usb_action=`getprop vendor.usb.mmi-usb-sh.action`
|
||||||
|
echo "mmi-usb-sh: action = \"$usb_action\""
|
||||||
|
sys_usb_config=`getprop vendor.usb.config`
|
||||||
|
|
||||||
|
tcmd_ctrl_adb ()
|
||||||
|
{
|
||||||
|
ctrl_adb=`getprop vendor.tcmd.ctrl_adb`
|
||||||
|
echo "mmi-usb-sh: vendor.tcmd.ctrl_adb = $ctrl_adb"
|
||||||
|
case "$ctrl_adb" in
|
||||||
|
"0")
|
||||||
|
if [[ "$sys_usb_config" == *adb* ]]
|
||||||
|
then
|
||||||
|
# *** ALWAYS expecting adb at the end ***
|
||||||
|
new_usb_config=${sys_usb_config/,adb/}
|
||||||
|
echo "mmi-usb-sh: disabling adb ($new_usb_config)"
|
||||||
|
setprop persist.vendor.usb.config $new_usb_config
|
||||||
|
setprop vendor.usb.config $new_usb_config
|
||||||
|
setprop persist.vendor.factory.allow_adb 0
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
"1")
|
||||||
|
if [[ "$sys_usb_config" != *adb* ]]
|
||||||
|
then
|
||||||
|
# *** ALWAYS expecting adb at the end ***
|
||||||
|
new_usb_config="$sys_usb_config,adb"
|
||||||
|
echo "mmi-usb-sh: enabling adb ($new_usb_config)"
|
||||||
|
setprop persist.vendor.usb.config $new_usb_config
|
||||||
|
setprop vendor.usb.config $new_usb_config
|
||||||
|
setprop persist.vendor.factory.allow_adb 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
|
||||||
|
case "$usb_action" in
|
||||||
|
"")
|
||||||
|
;;
|
||||||
|
"vendor.tcmd.ctrl_adb")
|
||||||
|
tcmd_ctrl_adb
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# soc_ids for 8937
|
||||||
|
if [ -f /sys/devices/soc0/soc_id ]; then
|
||||||
|
soc_id=`cat /sys/devices/soc0/soc_id`
|
||||||
|
else
|
||||||
|
soc_id=`cat /sys/devices/system/soc/soc0/id`
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$target" in
|
||||||
|
"msm8937")
|
||||||
|
setprop vendor.usb.rps_mask 0
|
||||||
|
setprop vendor.rmnet_vnd.rps_mask 0
|
||||||
|
case "$soc_id" in
|
||||||
|
"294" | "295")
|
||||||
|
setprop vendor.usb.rps_mask 40
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
case "$soc_id" in
|
||||||
|
"313" | "320")
|
||||||
|
qcom_usb_config="diag,serial_smd,rmnet_ipa"
|
||||||
|
qcom_adb_usb_config="diag,serial_smd,rmnet_ipa,adb"
|
||||||
|
bpt_usb_config="diag,serial_smd,rmnet_bam_ipa"
|
||||||
|
bpt_adb_usb_config="diag,serial_smd,rmnet_bam_ipa,adb"
|
||||||
|
setprop vendor.usb.rndis.func.name "rndis_bam"
|
||||||
|
setprop vendor.usb.rmnet.inst.name "rmnet"
|
||||||
|
setprop vendor.usb.dpl.inst.name "dpl"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
qcom_usb_config="diag,serial_smd,rmnet_qti_bam"
|
||||||
|
qcom_adb_usb_config="diag,serial_smd,rmnet_qti_bam,adb"
|
||||||
|
bpt_usb_config="diag,serial_smd,rmnet"
|
||||||
|
bpt_adb_usb_config="diag,serial_smd,rmnet,adb"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
"msm8953")
|
||||||
|
#Set RPS Mask for Tethering to CPU4
|
||||||
|
setprop vendor.usb.rps_mask 10
|
||||||
|
setprop vendor.rmnet_vnd.rps_mask 0
|
||||||
|
if [ -d /config/usb_gadget/g1 ]; then
|
||||||
|
qcom_usb_config="diag,serial_cdev,rmnet"
|
||||||
|
qcom_adb_usb_config="diag,serial_cdev,rmnet,adb"
|
||||||
|
bpt_usb_config="diag,serial,rmnet"
|
||||||
|
bpt_adb_usb_config="diag,serial,rmnet,adb"
|
||||||
|
setprop vendor.usb.rndis.func.name "rndis_bam"
|
||||||
|
setprop vendor.usb.rmnet.func.name "rmnet_bam"
|
||||||
|
else
|
||||||
|
qcom_usb_config="diag,serial_smd,serial_tty,rmnet_bam,mass_storage"
|
||||||
|
qcom_adb_usb_config="diag,serial_smd,serial_tty,rmnet_bam,mass_storage,adb"
|
||||||
|
bpt_usb_config="diag,serial_smd,serial_tty,rmnet"
|
||||||
|
bpt_adb_usb_config="diag,serial_smd,serial_tty,rmnet,adb"
|
||||||
|
fi
|
||||||
|
setprop vendor.usb.controller "7000000.dwc3"
|
||||||
|
;;
|
||||||
|
"msm8996")
|
||||||
|
#Set RPS Mask for Tethering to CPU2
|
||||||
|
setprop vendor.usb.rps_mask 2
|
||||||
|
setprop vendor.rmnet_vnd.rps_mask 0f
|
||||||
|
qcom_usb_config="diag,serial_cdev,serial_tty,rmnet_bam,mass_storage"
|
||||||
|
qcom_adb_usb_config="diag,serial_cdev,serial_tty,rmnet_bam,mass_storage,adb"
|
||||||
|
bpt_usb_config="diag,serial_cdev,serial_tty,rmnet"
|
||||||
|
bpt_adb_usb_config="diag,serial_cdev,serial_tty,rmnet,adb"
|
||||||
|
setprop vendor.usb.controller "6a00000.dwc3"
|
||||||
|
;;
|
||||||
|
"msm8998")
|
||||||
|
#Set RPS Mask for Tethering to CPU2
|
||||||
|
setprop vendor.usb.rps_mask 70
|
||||||
|
setprop vendor.rmnet_vnd.rps_mask 0d
|
||||||
|
qcom_usb_config="diag,serial_cdev,rmnet"
|
||||||
|
qcom_adb_usb_config="diag,serial_cdev,rmnet,adb"
|
||||||
|
bpt_usb_config="diag,serial,rmnet"
|
||||||
|
bpt_adb_usb_config="diag,serial,rmnet,adb"
|
||||||
|
setprop vendor.usb.controller "a800000.dwc3"
|
||||||
|
setprop vendor.usb.rndis.func.name "gsi"
|
||||||
|
setprop vendor.usb.rmnet.func.name "gsi"
|
||||||
|
setprop vendor.usb.hcd_mask 80
|
||||||
|
;;
|
||||||
|
"sdm660")
|
||||||
|
#Set RPS Mask for Tethering to CPU2
|
||||||
|
setprop vendor.usb.rps_mask 30
|
||||||
|
setprop vendor.rmnet_vnd.rps_mask 4
|
||||||
|
qcom_usb_config="diag,serial_cdev,rmnet"
|
||||||
|
qcom_adb_usb_config="diag,serial_cdev,rmnet,adb"
|
||||||
|
bpt_usb_config="diag,serial,rmnet"
|
||||||
|
bpt_adb_usb_config="diag,serial,rmnet,adb"
|
||||||
|
setprop vendor.usb.controller "a800000.dwc3"
|
||||||
|
setprop vendor.usb.rndis.func.name "rndis_bam"
|
||||||
|
setprop vendor.usb.rmnet.func.name "rmnet_bam"
|
||||||
|
;;
|
||||||
|
"sdm845")
|
||||||
|
qcom_usb_config="diag,serial_cdev,rmnet"
|
||||||
|
qcom_adb_usb_config="diag,serial_cdev,rmnet,adb"
|
||||||
|
bpt_usb_config="diag,serial,rmnet"
|
||||||
|
bpt_adb_usb_config="diag,serial,rmnet,adb"
|
||||||
|
setprop vendor.usb.controller "a600000.dwc3"
|
||||||
|
setprop vendor.usb.rndis.func.name "gsi"
|
||||||
|
setprop vendor.usb.rmnet.func.name "gsi"
|
||||||
|
;;
|
||||||
|
"sdm710")
|
||||||
|
qcom_usb_config="diag,serial_cdev,rmnet"
|
||||||
|
qcom_adb_usb_config="diag,serial_cdev,rmnet,adb"
|
||||||
|
bpt_usb_config="diag,serial,rmnet"
|
||||||
|
bpt_adb_usb_config="diag,serial,rmnet,adb"
|
||||||
|
setprop vendor.usb.controller "a600000.dwc3"
|
||||||
|
setprop vendor.usb.rndis.func.name "gsi"
|
||||||
|
setprop vendor.usb.rmnet.func.name "gsi"
|
||||||
|
;;
|
||||||
|
"sm6150")
|
||||||
|
qcom_usb_config="diag,serial_cdev,rmnet"
|
||||||
|
qcom_adb_usb_config="diag,serial_cdev,rmnet,adb"
|
||||||
|
bpt_usb_config="diag,serial,rmnet"
|
||||||
|
bpt_adb_usb_config="diag,serial,rmnet,adb"
|
||||||
|
setprop vendor.usb.controller "a600000.dwc3"
|
||||||
|
setprop vendor.usb.rndis.func.name "gsi"
|
||||||
|
setprop vendor.usb.rmnet.func.name "gsi"
|
||||||
|
setprop vendor.usb.hcd_mask 80
|
||||||
|
setprop vendor.usb.rps_mask 40
|
||||||
|
;;
|
||||||
|
"trinket")
|
||||||
|
qcom_usb_config="diag,serial_cdev,rmnet"
|
||||||
|
qcom_adb_usb_config="diag,serial_cdev,rmnet,adb"
|
||||||
|
bpt_usb_config="diag,serial,rmnet"
|
||||||
|
bpt_adb_usb_config="diag,serial,rmnet,adb"
|
||||||
|
setprop vendor.usb.controller "4e00000.dwc3"
|
||||||
|
setprop vendor.usb.rndis.func.name "gsi"
|
||||||
|
setprop vendor.usb.rmnet.func.name "gsi"
|
||||||
|
;;
|
||||||
|
"kona")
|
||||||
|
qcom_usb_config="diag,diag_mdm,qdss,qdss_mdm,serial_cdev,serial_cdev_mdm,dpl,rmnet"
|
||||||
|
qcom_adb_usb_config="diag,diag_mdm,qdss,qdss_mdm,serial_cdev,serial_cdev_mdm,dpl,rmnet,adb"
|
||||||
|
bpt_usb_config="diag,serial,rmnet"
|
||||||
|
bpt_adb_usb_config="diag,serial,rmnet,adb"
|
||||||
|
setprop vendor.usb.controller "a600000.dwc3"
|
||||||
|
setprop vendor.usb.rndis.func.name "gsi"
|
||||||
|
setprop vendor.usb.rmnet.func.name "gsi"
|
||||||
|
;;
|
||||||
|
"lito")
|
||||||
|
qcom_usb_config="diag,diag_mdm,qdss,qdss_mdm,serial_cdev,serial_cdev_mdm,dpl,rmnet"
|
||||||
|
qcom_adb_usb_config="diag,diag_mdm,qdss,qdss_mdm,serial_cdev,serial_cdev_mdm,dpl,rmnet,adb"
|
||||||
|
bpt_usb_config="diag,serial,rmnet"
|
||||||
|
bpt_adb_usb_config="diag,serial,rmnet,adb"
|
||||||
|
setprop vendor.usb.controller "a600000.dwc3"
|
||||||
|
setprop vendor.usb.rndis.func.name "gsi"
|
||||||
|
setprop vendor.usb.rmnet.func.name "gsi"
|
||||||
|
;;
|
||||||
|
"bengal")
|
||||||
|
qcom_usb_config="diag,serial_cdev,rmnet"
|
||||||
|
qcom_adb_usb_config="diag,serial_cdev,rmnet,adb"
|
||||||
|
bpt_usb_config="diag,serial,rmnet"
|
||||||
|
bpt_adb_usb_config="diag,serial,rmnet,adb"
|
||||||
|
setprop vendor.usb.controller "4e00000.dwc3"
|
||||||
|
setprop vendor.usb.rndis.func.name "gsi"
|
||||||
|
setprop vendor.usb.rmnet.func.name "gsi"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
## This is needed to switch to the qcom rndis driver.
|
||||||
|
diag_extra=`getprop persist.vendor.usb.config.extra`
|
||||||
|
if [ "$diag_extra" == "" ]; then
|
||||||
|
setprop persist.vendor.usb.config.extra none
|
||||||
|
fi
|
||||||
|
|
||||||
|
#
|
||||||
|
# Allow USB enumeration with default PID/VID
|
||||||
|
#
|
||||||
|
usb_config=`getprop persist.vendor.usb.config`
|
||||||
|
mot_usb_config=`getprop persist.vendor.mot.usb.config`
|
||||||
|
bootmode=`getprop ro.bootmode`
|
||||||
|
buildtype=`getprop ro.build.type`
|
||||||
|
securehw=`getprop ro.boot.secure_hardware`
|
||||||
|
cid=`getprop ro.vendor.boot.cid`
|
||||||
|
diagmode=`getprop persist.vendor.radio.usbdiag`
|
||||||
|
|
||||||
|
echo "mmi-usb-sh: persist usb configs = \"$usb_config\", \"$mot_usb_config\", \"$diagmode\""
|
||||||
|
|
||||||
|
|
||||||
|
phonelock_type=`getprop persist.sys.phonelock.mode`
|
||||||
|
usb_restricted=`getprop persist.sys.usb.policylocked`
|
||||||
|
if [ "$securehw" == "1" ] && [ "$buildtype" == "user" ] && [ "$(($cid))" != 0 ]
|
||||||
|
then
|
||||||
|
if [ "$usb_restricted" == "1" ]
|
||||||
|
then
|
||||||
|
echo 1 > /sys/class/android_usb/android0/secure
|
||||||
|
else
|
||||||
|
case "$phonelock_type" in
|
||||||
|
"1" )
|
||||||
|
echo 1 > /sys/class/android_usb/android0/secure
|
||||||
|
;;
|
||||||
|
* )
|
||||||
|
echo 0 > /sys/class/android_usb/android0/secure
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# ##DIAG# mode option
|
||||||
|
case "$diagmode" in
|
||||||
|
"1" )
|
||||||
|
case "$usb_config" in
|
||||||
|
"$bpt_usb_config" | "$bpt_adb_usb_config" )
|
||||||
|
;;
|
||||||
|
* )
|
||||||
|
case "$securehw" in
|
||||||
|
"1" )
|
||||||
|
setprop persist.vendor.usb.config $bpt_usb_config
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
setprop persist.vendor.usb.config $bpt_adb_usb_config
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
* )
|
||||||
|
# Do nothing. USB enumeration will be set by bootmode
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
case "$bootmode" in
|
||||||
|
"bp-tools" )
|
||||||
|
case "$usb_config" in
|
||||||
|
"$bpt_usb_config" | "$bpt_adb_usb_config" )
|
||||||
|
;;
|
||||||
|
* )
|
||||||
|
case "$securehw" in
|
||||||
|
"1" )
|
||||||
|
setprop persist.vendor.usb.config $bpt_usb_config
|
||||||
|
setprop persist.vendor.usb.bp-tools.config $bpt_usb_config
|
||||||
|
setprop persist.vendor.usb.bp-tools.func $bpt_usb_config
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
setprop persist.vendor.usb.config $bpt_adb_usb_config
|
||||||
|
setprop persist.vendor.usb.bp-tools.config $bpt_adb_usb_config
|
||||||
|
setprop persist.vendor.usb.bp-tools.func $bpt_adb_usb_config
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
"mot-factory" )
|
||||||
|
allow_adb=`getprop persist.vendor.factory.allow_adb`
|
||||||
|
case "$allow_adb" in
|
||||||
|
"1")
|
||||||
|
if [ "$usb_config" != "usbnet,adb" ]
|
||||||
|
then
|
||||||
|
setprop persist.vendor.usb.config usbnet,adb
|
||||||
|
setprop persist.vendor.usb.mot-factory.config usbnet,adb
|
||||||
|
setprop persist.vendor.usb.mot-factory.func usbnet,adb
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
if [ "$usb_config" != "usbnet" ]
|
||||||
|
then
|
||||||
|
setprop persist.vendor.usb.config usbnet
|
||||||
|
setprop persist.vendor.usb.mot-factory.config usbnet
|
||||||
|
setprop persist.vendor.usb.mot-factory.func usbnet
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
# Disable Host Mode LPM for Factory mode
|
||||||
|
echo 1 > /sys/module/dwc3_msm/parameters/disable_host_mode_pm
|
||||||
|
;;
|
||||||
|
"qcom" )
|
||||||
|
case "$usb_config" in
|
||||||
|
"$qcom_usb_config" | "$qcom_adb_usb_config" )
|
||||||
|
;;
|
||||||
|
* )
|
||||||
|
case "$securehw" in
|
||||||
|
"1" )
|
||||||
|
setprop persist.vendor.usb.config $qcom_usb_config
|
||||||
|
setprop persist.vendor.usb.qcom.config $qcom_usb_config
|
||||||
|
setprop persist.vendor.usb.qcom.func $qcom_usb_config
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
setprop persist.vendor.usb.config $qcom_adb_usb_config
|
||||||
|
setprop persist.vendor.usb.qcom.config $qcom_adb_usb_config
|
||||||
|
setprop persist.vendor.usb.qcom.func $qcom_adb_usb_config
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
* )
|
||||||
|
if [ "$buildtype" == "user" ] && [ "$phonelock_type" != "1" ] && [ "$usb_restricted" != "1" ]
|
||||||
|
then
|
||||||
|
echo 1 > /sys/class/android_usb/android0/secure
|
||||||
|
echo "Disabling enumeration until bootup!"
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$usb_config" in
|
||||||
|
"mtp,adb" | "mtp" | "adb")
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
case "$mot_usb_config" in
|
||||||
|
"mtp,adb" | "mtp" | "adb")
|
||||||
|
setprop persist.vendor.usb.config $mot_usb_config
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
case "$securehw" in
|
||||||
|
"1" )
|
||||||
|
setprop persist.vendor.usb.config mtp
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
setprop persist.vendor.usb.config adb
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
adb_early=`getprop ro.boot.adb_early`
|
||||||
|
if [ "$adb_early" == "1" ]; then
|
||||||
|
echo 0 > /sys/class/android_usb/android0/secure
|
||||||
|
echo "Enabling enumeration after bootup, count = $count !"
|
||||||
|
new_persist_usb_config=`getprop persist.vendor.usb.config`
|
||||||
|
if [[ "$new_persist_usb_config" != *adb* ]]; then
|
||||||
|
setprop persist.vendor.usb.config "adb"
|
||||||
|
setprop vendor.usb.config "adb"
|
||||||
|
else
|
||||||
|
setprop vendor.usb.config $new_persist_usb_config
|
||||||
|
fi
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$buildtype" == "user" ] && [ "$phonelock_type" != "1" ] && [ "$usb_restricted" != "1" ]
|
||||||
|
then
|
||||||
|
count=0
|
||||||
|
bootcomplete=`getprop vendor.boot_completed`
|
||||||
|
echo "mmi-usb-sh - bootcomplete = $booted"
|
||||||
|
while [ "$bootcomplete" != "1" ]; do
|
||||||
|
echo "Sleeping till bootup!"
|
||||||
|
sleep 1
|
||||||
|
count=$((count+1))
|
||||||
|
if [ $count -gt 90 ]
|
||||||
|
then
|
||||||
|
echo "mmi-usb-sh - Timed out waiting for bootup"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
bootcomplete=`getprop vendor.boot_completed`
|
||||||
|
done
|
||||||
|
echo 0 > /sys/class/android_usb/android0/secure
|
||||||
|
echo "Enabling enumeration after bootup, count = $count !"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
new_persist_usb_config=`getprop persist.vendor.usb.config`
|
||||||
|
if [ "$sys_usb_config" != "$new_persist_usb_config" ]; then
|
||||||
|
setprop vendor.usb.config $new_persist_usb_config
|
||||||
|
fi
|
18
rootdir/bin/init.mmi.wlan-getlogs.sh
Normal file
18
rootdir/bin/init.mmi.wlan-getlogs.sh
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
#!/vendor/bin/sh
|
||||||
|
|
||||||
|
wlan_log_path="/data/vendor/wifi/wlan_logs/"
|
||||||
|
wlan_log_dest_path="/data/vendor/bug2go/wlan_logs"
|
||||||
|
diag_log_path="/data/vendor/diag_mdlog/logs"
|
||||||
|
mdm2_log_path="/data/vendor/diag_mdlog/logs/mdm2"
|
||||||
|
|
||||||
|
cp -r $wlan_log_path $wlan_log_dest_path
|
||||||
|
|
||||||
|
if [ -d $mdm2_log_path ]
|
||||||
|
then echo "Get diag logs"
|
||||||
|
for f in $diag_log_path/*.qmdl{,2}
|
||||||
|
do cp $f $wlan_log_dest_path
|
||||||
|
done
|
||||||
|
cp -r $mdm2_log_path $wlan_log_dest_path
|
||||||
|
fi
|
||||||
|
|
||||||
|
chown -R log:log $wlan_log_dest_path
|
82
rootdir/bin/init.oem.fingerprint.sh
Normal file
82
rootdir/bin/init.oem.fingerprint.sh
Normal file
|
@ -0,0 +1,82 @@
|
||||||
|
#!/vendor/bin/sh
|
||||||
|
#
|
||||||
|
# Identify fingerprint sensor model
|
||||||
|
#
|
||||||
|
# Copyright (c) 2019 Lenovo
|
||||||
|
# All rights reserved.
|
||||||
|
#
|
||||||
|
# Changed Log:
|
||||||
|
# ---------------------------------
|
||||||
|
# April 15, 2019 chengql2@lenovo.com Initial version
|
||||||
|
# April 28, 2019 chengql2 Add fps_id creating step
|
||||||
|
# December 2, 2019 chengql2 Store fps_id into persist fs, and identify sensor
|
||||||
|
# again when secure unit boots as factory mode.
|
||||||
|
|
||||||
|
script_name=${0##*/}
|
||||||
|
script_name=${script_name%.*}
|
||||||
|
function log {
|
||||||
|
echo "$script_name: $*" > /dev/kmsg
|
||||||
|
}
|
||||||
|
|
||||||
|
persist_fps_id=/mnt/vendor/persist/fps/vendor_id
|
||||||
|
|
||||||
|
FPS_VENDOR_GOODIX=goodix
|
||||||
|
FPS_VENDOR_FPC=fpc
|
||||||
|
FPS_VENDOR_NONE=none
|
||||||
|
|
||||||
|
PROP_FPS_IDENT=vendor.hw.fps.ident
|
||||||
|
MAX_TIMES=20
|
||||||
|
|
||||||
|
function ident_fps {
|
||||||
|
log "- install Goodix driver"
|
||||||
|
insmod /vendor/lib/modules/goodix_fod_mmi.ko
|
||||||
|
sleep 1
|
||||||
|
log "- identify Goodix sensor"
|
||||||
|
setprop $PROP_FPS_IDENT ""
|
||||||
|
start gf_ident
|
||||||
|
for i in $(seq 1 $MAX_TIMES)
|
||||||
|
do
|
||||||
|
sleep 0.1
|
||||||
|
ident_status=$(getprop $PROP_FPS_IDENT)
|
||||||
|
log "-result : $ident_status"
|
||||||
|
if [ $ident_status == $FPS_VENDOR_GOODIX ]; then
|
||||||
|
log "ok"
|
||||||
|
echo $FPS_VENDOR_GOODIX > $persist_fps_id
|
||||||
|
return 0
|
||||||
|
elif [ $ident_status == $FPS_VENDOR_NONE ]; then
|
||||||
|
log "fail"
|
||||||
|
log "- unload Goodix driver"
|
||||||
|
rmmod goodix_fod_mmi
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
log "- install FPC driver"
|
||||||
|
insmod /vendor/lib/modules/fpc1020_mmi.ko
|
||||||
|
echo $FPS_VENDOR_FPC > $persist_fps_id
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ ! -f $persist_fps_id ]; then
|
||||||
|
ident_fps
|
||||||
|
return $?
|
||||||
|
fi
|
||||||
|
|
||||||
|
fps_vendor=$(cat $persist_fps_id)
|
||||||
|
log "FPS vendor: $fps_vendor"
|
||||||
|
|
||||||
|
|
||||||
|
if [ $fps_vendor == $FPS_VENDOR_GOODIX ]; then
|
||||||
|
log "- install Goodix driver"
|
||||||
|
insmod /vendor/lib/modules/goodix_fod_mmi.ko
|
||||||
|
return $?
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $fps_vendor == $FPS_VENDOR_FPC ]; then
|
||||||
|
log "- install FPC driver"
|
||||||
|
insmod /vendor/lib/modules/fpc1020_mmi.ko
|
||||||
|
return $?
|
||||||
|
fi
|
||||||
|
|
||||||
|
ident_fps
|
||||||
|
return $?
|
102
rootdir/bin/init.oem.fingerprint2.sh
Normal file
102
rootdir/bin/init.oem.fingerprint2.sh
Normal file
|
@ -0,0 +1,102 @@
|
||||||
|
#!/vendor/bin/sh
|
||||||
|
#
|
||||||
|
# Start indicated fingerprint HAL service
|
||||||
|
#
|
||||||
|
# Copyright (c) 2019 Lenovo
|
||||||
|
# All rights reserved.
|
||||||
|
#
|
||||||
|
# April 15, 2019 chengql2@lenovo.com Initial version
|
||||||
|
# December 2, 2019 chengql2 Store fps_id into persist fs
|
||||||
|
|
||||||
|
script_name=${0##*/}
|
||||||
|
script_name=${script_name%.*}
|
||||||
|
function log {
|
||||||
|
echo "$script_name: $*" > /dev/kmsg
|
||||||
|
}
|
||||||
|
|
||||||
|
persist_fps_id=/mnt/vendor/persist/fps/vendor_id
|
||||||
|
persist_fps_id2=/mnt/vendor/persist/fps/last_vendor_id
|
||||||
|
|
||||||
|
if [ ! -f $persist_fps_id ]; then
|
||||||
|
log "warn: no associated persist file found"
|
||||||
|
return -1
|
||||||
|
fi
|
||||||
|
|
||||||
|
fps_vendor2=$(cat $persist_fps_id2)
|
||||||
|
log "FPS vendor (last): $fps_vendor2"
|
||||||
|
fps_vendor=$(cat $persist_fps_id)
|
||||||
|
log "FPS vendor: $fps_vendor"
|
||||||
|
|
||||||
|
FPS_VENDOR_NONE=none
|
||||||
|
FPS_VENDOR_GOODIX=goodix
|
||||||
|
FPS_VENDOR_FPC=fpc
|
||||||
|
|
||||||
|
prop_fps_status=vendor.hw.fingerprint.status
|
||||||
|
prop_persist_fps=persist.vendor.hardware.fingerprint
|
||||||
|
|
||||||
|
FPS_STATUS_NONE=none
|
||||||
|
FPS_STATUS_OK=ok
|
||||||
|
|
||||||
|
if [ $fps_vendor == $FPS_STATUS_NONE ]; then
|
||||||
|
log "warn: boot as the last FPS"
|
||||||
|
fps=$fps_vendor2
|
||||||
|
else
|
||||||
|
fps=$fps_vendor
|
||||||
|
fi
|
||||||
|
|
||||||
|
for i in $(seq 1 2)
|
||||||
|
do
|
||||||
|
|
||||||
|
setprop $prop_fps_status $FPS_STATUS_NONE
|
||||||
|
if [ $fps == $FPS_VENDOR_GOODIX ]; then
|
||||||
|
log "start goodix_hal"
|
||||||
|
start goodix_hal
|
||||||
|
else
|
||||||
|
log "start fps_hal"
|
||||||
|
start fps_hal
|
||||||
|
fps=$FPS_VENDOR_FPC
|
||||||
|
fi
|
||||||
|
|
||||||
|
log "wait for HAL finish ..."
|
||||||
|
fps_status=$(getprop $prop_fps_status)
|
||||||
|
while [ $fps_status == $FPS_STATUS_NONE ]; do
|
||||||
|
sleep 0.2
|
||||||
|
fps_status=$(getprop $prop_fps_status)
|
||||||
|
done
|
||||||
|
log "fingerprint HAL status: $fps_status"
|
||||||
|
|
||||||
|
if [ $fps_status == $FPS_STATUS_OK ]; then
|
||||||
|
log "HAL success"
|
||||||
|
setprop $prop_persist_fps $fps
|
||||||
|
if [ $fps_vendor2 == $fps ]; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
log "- update FPS vendor (last)"
|
||||||
|
echo $fps > $persist_fps_id2
|
||||||
|
log "- done"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $fps == $fps_vendor2 ]; then
|
||||||
|
if [ $fps == $FPS_VENDOR_FPC ]; then
|
||||||
|
rmmod fpc1020_mmi
|
||||||
|
insmod /vendor/lib/modules/goodix_fod_mmi.ko
|
||||||
|
fps=$FPS_VENDOR_GOODIX
|
||||||
|
else
|
||||||
|
rmmod goodix_fod_mmi
|
||||||
|
insmod /vendor/lib/modules/fpc1020_mmi.ko
|
||||||
|
fps=$FPS_VENDOR_FPC
|
||||||
|
fi
|
||||||
|
log "- update FPS vendor"
|
||||||
|
echo $fps > $persist_fps_id
|
||||||
|
sleep 1
|
||||||
|
else
|
||||||
|
log "error: HAL fail"
|
||||||
|
setprop $prop_persist_fps $FPS_VENDOR_NONE
|
||||||
|
echo $FPS_VENDOR_NONE > $persist_fps_id
|
||||||
|
|
||||||
|
log "- done"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
done
|
709
rootdir/bin/init.oem.hw.sh
Normal file
709
rootdir/bin/init.oem.hw.sh
Normal file
|
@ -0,0 +1,709 @@
|
||||||
|
#!/vendor/bin/sh
|
||||||
|
|
||||||
|
BASEDIR=vendor
|
||||||
|
|
||||||
|
PATH=/sbin:/$BASEDIR/sbin:/$BASEDIR/bin:/$BASEDIR/xbin
|
||||||
|
export PATH
|
||||||
|
|
||||||
|
while getopts dpfrM op;
|
||||||
|
do
|
||||||
|
case $op in
|
||||||
|
d) dbg_on=1;;
|
||||||
|
p) populate_only=1;;
|
||||||
|
f) dead_touch=1;;
|
||||||
|
r) reset_touch=1;;
|
||||||
|
M) mount_2nd_stage=1;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
shift $(($OPTIND-1))
|
||||||
|
|
||||||
|
scriptname=${0##*/}
|
||||||
|
hw_mp=/proc/hw
|
||||||
|
config_mp=/proc/config
|
||||||
|
reboot_utag=$config_mp/.reboot
|
||||||
|
touch_status_prop=vendor.hw.touch.status
|
||||||
|
hw_cfg_file=hw_config.xml
|
||||||
|
vhw_file=/$BASEDIR/etc/vhw.xml
|
||||||
|
bp_file=/system/build.prop
|
||||||
|
oem_file=/oem/oem.prop
|
||||||
|
load_error=3
|
||||||
|
need_to_reload=2
|
||||||
|
reload_in_progress=1
|
||||||
|
reload_done=0
|
||||||
|
ver_utag=".version"
|
||||||
|
version_fs="unknown"
|
||||||
|
xml_version="unknown"
|
||||||
|
device_params=""
|
||||||
|
xml_file=""
|
||||||
|
utag_update_fail="false"
|
||||||
|
modem_ver_prop=ro.vendor.hw.modem_version
|
||||||
|
policy_prop=ro.vendor.super_image_policy
|
||||||
|
|
||||||
|
super_image_detection()
|
||||||
|
{
|
||||||
|
local subsys
|
||||||
|
local file2mount
|
||||||
|
local basefile
|
||||||
|
local version
|
||||||
|
local extention
|
||||||
|
local image_dir
|
||||||
|
local is_super_image
|
||||||
|
local super_image_prop
|
||||||
|
local file_mount_prop
|
||||||
|
local modem_version=$(getprop $modem_ver_prop)
|
||||||
|
local policy=$(getprop $policy_prop)
|
||||||
|
|
||||||
|
debug "'$policy_prop' is '$policy'"
|
||||||
|
for subsys in modem fsg; do
|
||||||
|
debug "Processing [${subsys}]..."
|
||||||
|
is_super_image=""
|
||||||
|
case ${subsys} in
|
||||||
|
modem) image_dir=/vendor/firmware_mnt;;
|
||||||
|
fsg) image_dir=/vendor/fsg;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
[ -f $image_dir/super_modem ] && is_super_image="true"
|
||||||
|
debug "super image '$is_super_image'"
|
||||||
|
|
||||||
|
if [ "$is_super_image" == "true" ]; then
|
||||||
|
file2mount=""
|
||||||
|
case ${subsys} in
|
||||||
|
modem) super_image_prop="ro.vendor.hw.modem_super_image"
|
||||||
|
file_mount_prop="ro.vendor.hw.modem_mount_file"
|
||||||
|
basefile="NON-HLOS.bin"
|
||||||
|
extention=".bin"
|
||||||
|
[ "$modem_version" ] && file2mount=$(printf "NON-HLOS%sbin" $modem_version)
|
||||||
|
;;
|
||||||
|
fsg) super_image_prop="ro.vendor.hw.fsg_super_image"
|
||||||
|
file_mount_prop="ro.vendor.hw.fsg_mount_file"
|
||||||
|
basefile="fsg.mbn"
|
||||||
|
extention=".mbn"
|
||||||
|
[ "$modem_version" ] && file2mount=$(printf "fsg%smbn" $modem_version)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
if [ -z "$file2mount" ]; then
|
||||||
|
notice "'$modem_ver_prop' not set, but [$subsys] is super image!"
|
||||||
|
else
|
||||||
|
# modem_version matches existing file in super image
|
||||||
|
if [ -f $image_dir/$file2mount ]; then
|
||||||
|
notice "[$subsys] is super image. '$file2mount' will be mounted"
|
||||||
|
setprop $file_mount_prop $file2mount
|
||||||
|
setprop $super_image_prop yes
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
notice "[$subsys] is super image. '$file2mount' not found"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
notice "[$subsys] non-super image"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# check super image policy
|
||||||
|
if [ "$policy" == "enforce" ]; then
|
||||||
|
notice "[$subsys] strict super image policy! Rebooting to recovery..."
|
||||||
|
debug "'ro.vendor.hw.super_image_failure' -> 'yes'"
|
||||||
|
setprop ro.vendor.hw.super_image_failure yes
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
notice "[$subsys] super image policy not enforced"
|
||||||
|
# proceed with non-super image if policy allows
|
||||||
|
if [ -z "$is_super_image" ]; then
|
||||||
|
notice "[$subsys] proceed with non-super image!"
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
# retrieve default version if available
|
||||||
|
version=$(cat $image_dir/super_modem)
|
||||||
|
if [ "$version" ]; then
|
||||||
|
basefile=$version
|
||||||
|
notice "default file override '$basefile'"
|
||||||
|
else
|
||||||
|
notice "use default file: '$basefile' instead of '$file2mount'"
|
||||||
|
fi
|
||||||
|
|
||||||
|
notice "Searching for '$basefile' in $image_dir..."
|
||||||
|
debug "checking file '$image_dir/$basefile'"
|
||||||
|
if [ -f $image_dir/$basefile ]; then
|
||||||
|
notice "[$subsys] is super image! '$basefile' will be mounted"
|
||||||
|
debug "'$file_mount_prop' -> '$basefile'"
|
||||||
|
setprop $file_mount_prop $basefile
|
||||||
|
debug "'$super_image_prop' -> 'yes'"
|
||||||
|
setprop $super_image_prop yes
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
# set to fail
|
||||||
|
notice "Unable to mount '$basefile'! Rebooting to recovery..."
|
||||||
|
debug "'ro.vendor.hw.super_image_failure' -> 'yes'"
|
||||||
|
setprop ro.vendor.hw.super_image_failure yes
|
||||||
|
return
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
set_reboot_counter()
|
||||||
|
{
|
||||||
|
local value=$1
|
||||||
|
local reboot_cnt=0
|
||||||
|
local reboot_mp=${reboot_utag%.*}
|
||||||
|
local tag_name=${reboot_utag##*/}
|
||||||
|
if [ $((value)) -gt 0 ]; then
|
||||||
|
notice "increase reboot counter"
|
||||||
|
[ -d $reboot_utag ] && reboot_cnt=$(cat $reboot_utag/ascii)
|
||||||
|
value=$(($reboot_cnt + 1))
|
||||||
|
fi
|
||||||
|
if [ ! -d $reboot_utag ]; then
|
||||||
|
echo ${reboot_utag##*/} > $reboot_mp/all/new
|
||||||
|
[ $? != 0 ] && notice "error creating UTAG $tag_name"
|
||||||
|
fi
|
||||||
|
echo "$value" > $reboot_utag/ascii
|
||||||
|
[ $? != 0 ] && notice "error updating UTAG $tag_name"
|
||||||
|
notice "UTAG $tag_name is [`cat $reboot_utag/ascii`]"
|
||||||
|
}
|
||||||
|
|
||||||
|
set_reboot_counter_property()
|
||||||
|
{
|
||||||
|
local reboot_cnt=0
|
||||||
|
local tag_name=${reboot_utag##*/}
|
||||||
|
if [ -d $reboot_utag ]; then
|
||||||
|
reboot_cnt=$(cat $reboot_utag/ascii)
|
||||||
|
notice "UTAG $tag_name has value [$reboot_cnt]"
|
||||||
|
else
|
||||||
|
notice "UTAG $tag_name does not exist"
|
||||||
|
fi
|
||||||
|
setprop $touch_status_prop $reboot_cnt
|
||||||
|
notice "property [$touch_status_prop] is set to [`getprop $touch_status_prop`]"
|
||||||
|
}
|
||||||
|
|
||||||
|
debug()
|
||||||
|
{
|
||||||
|
[ $dbg_on ] && echo "Debug: $*"
|
||||||
|
}
|
||||||
|
|
||||||
|
notice()
|
||||||
|
{
|
||||||
|
echo "$*"
|
||||||
|
echo "$scriptname: $*" > /dev/kmsg
|
||||||
|
}
|
||||||
|
|
||||||
|
add_device_params()
|
||||||
|
{
|
||||||
|
device_params=$device_params" $@"
|
||||||
|
debug "add_device_params='$device_params'"
|
||||||
|
}
|
||||||
|
|
||||||
|
drop_device_parameter()
|
||||||
|
{
|
||||||
|
device_params=${device_params% *}
|
||||||
|
debug "drop_device_parameter='$device_params'"
|
||||||
|
}
|
||||||
|
|
||||||
|
set_xml_file()
|
||||||
|
{
|
||||||
|
xml_file=$@
|
||||||
|
debug "working with XML file='$xml_file'"
|
||||||
|
}
|
||||||
|
|
||||||
|
exec_parser()
|
||||||
|
{
|
||||||
|
eval motobox expat -u -f $xml_file $device_params "$@" 2>/dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
reload_utags()
|
||||||
|
{
|
||||||
|
local mp=$1
|
||||||
|
local value
|
||||||
|
echo "1" > $mp/reload
|
||||||
|
value=$(cat $mp/reload)
|
||||||
|
while [ "$value" == "$reload_in_progress" ]; do
|
||||||
|
notice "waiting for loading to complete"
|
||||||
|
sleep 1;
|
||||||
|
value=$(cat $mp/reload)
|
||||||
|
notice "'$mp' current status [$value]"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
procfs_wait_for_device()
|
||||||
|
{
|
||||||
|
local __result=$1
|
||||||
|
local status
|
||||||
|
local mpi
|
||||||
|
local IFS=' '
|
||||||
|
local device_timeout_count=0
|
||||||
|
while [ ! -f $hw_mp/reload ] || [ ! -f $config_mp/reload ]; do
|
||||||
|
notice "waiting for devices"
|
||||||
|
sleep 1;
|
||||||
|
if [ "$device_timeout_count" -eq "10" ];then
|
||||||
|
notice "waiting for devices timeout"
|
||||||
|
eval $__result=""
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
device_timeout_count=$(($device_timeout_count + 1))
|
||||||
|
done
|
||||||
|
for mpi in $hw_mp $config_mp; do
|
||||||
|
status=$(cat $mpi/reload)
|
||||||
|
notice "mount point '$mpi' status [$status]"
|
||||||
|
if [ "$status" == "$need_to_reload" ]; then
|
||||||
|
notice "force $mpi reloading"
|
||||||
|
reload_utags $mpi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
for mpi in $hw_mp $config_mp; do
|
||||||
|
status=$(cat $mpi/reload)
|
||||||
|
notice "$mpi reload is [$status]"
|
||||||
|
while [ "$status" != "$reload_done" ]; do
|
||||||
|
notice "waiting for loading to complete"
|
||||||
|
sleep 1;
|
||||||
|
status=$(cat $mpi/reload)
|
||||||
|
done
|
||||||
|
done
|
||||||
|
eval $__result=$status
|
||||||
|
}
|
||||||
|
|
||||||
|
get_attr_data_by_name()
|
||||||
|
{
|
||||||
|
local __result=$1
|
||||||
|
local attr=$2
|
||||||
|
shift 2
|
||||||
|
local IFS=' '
|
||||||
|
eval $__result=""
|
||||||
|
for arg in ${@}; do
|
||||||
|
[ "${arg%=*}" == "$attr" ] || continue
|
||||||
|
debug "attr_data='${arg#*=}'"
|
||||||
|
eval $__result="${arg#*=}"
|
||||||
|
break
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
get_tag_data()
|
||||||
|
{
|
||||||
|
local __name=$1
|
||||||
|
local __value=$2
|
||||||
|
shift 2
|
||||||
|
local dataval
|
||||||
|
local IFS=' '
|
||||||
|
eval $__name=""
|
||||||
|
eval $__value=""
|
||||||
|
for arg in ${@}; do
|
||||||
|
case $arg in
|
||||||
|
string-array | string)
|
||||||
|
debug "---/ skip keyword: '$arg'"
|
||||||
|
continue;;
|
||||||
|
esac
|
||||||
|
debug "---> arg='$arg'"
|
||||||
|
if [ "${arg%=*}" == "name" ]; then
|
||||||
|
eval $__name=${arg#*=}
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
# eval treats ';' as a separator, thus make it '\;'
|
||||||
|
dataval=$(echo ${arg#?} | sed 's/;/\\;/g')
|
||||||
|
debug "<--- dataval='$dataval'"
|
||||||
|
eval $__value=$dataval
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
update_utag()
|
||||||
|
{
|
||||||
|
local utag=$1
|
||||||
|
local payload=$2
|
||||||
|
local verify
|
||||||
|
local rc
|
||||||
|
if [ ! -d $hw_mp/$utag ]; then
|
||||||
|
notice "creating utag '$utag'"
|
||||||
|
echo $utag > $hw_mp/all/new
|
||||||
|
rc=$?
|
||||||
|
[ "$rc" != "0" ] && notice "'$utag' create dir failed rc=$rc"
|
||||||
|
fi
|
||||||
|
debug "writing '$payload' to '$hw_mp/$utag/ascii'"
|
||||||
|
echo "$payload" > $hw_mp/$utag/ascii
|
||||||
|
rc=$?
|
||||||
|
if [ "$rc" != "0" ]; then
|
||||||
|
utag_update_fail="true"
|
||||||
|
notice "'$utag' write file failed rc=$rc"
|
||||||
|
fi
|
||||||
|
verify=$(cat $hw_mp/$utag/ascii)
|
||||||
|
debug "read '$verify' from '$hw_mp/$utag/ascii'"
|
||||||
|
[ "$verify" != "$payload" ] && notice "'$utag' payload validation failed"
|
||||||
|
}
|
||||||
|
|
||||||
|
populate_utags()
|
||||||
|
{
|
||||||
|
local selection="$@"
|
||||||
|
local pline
|
||||||
|
local ptag
|
||||||
|
local pvalue
|
||||||
|
for pline in $(exec_parser $selection); do
|
||||||
|
get_tag_data ptag pvalue $pline
|
||||||
|
url_style_off pvalue $pvalue
|
||||||
|
debug "tag='$ptag' value='$pvalue'"
|
||||||
|
update_utag $ptag $pvalue
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
set_ro_hw_properties_upgrade()
|
||||||
|
{
|
||||||
|
local utag_path
|
||||||
|
local utag_name
|
||||||
|
local prop_prefix
|
||||||
|
local utag_value
|
||||||
|
local verify
|
||||||
|
for hwtag in $(find $hw_mp -name '.system'); do
|
||||||
|
debug "path $hwtag has '.system' in its name"
|
||||||
|
prop_prefix="ro.vendor.hw."
|
||||||
|
utag_path=${hwtag%/*}
|
||||||
|
utag_name=${utag_path##*/}
|
||||||
|
utag_value=$(cat $utag_path/ascii)
|
||||||
|
setprop $prop_prefix$utag_name "$utag_value"
|
||||||
|
notice "ro.vendor.hw.$utag_name='$utag_value'"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
set_ro_hw_properties()
|
||||||
|
{
|
||||||
|
local utag_path
|
||||||
|
local utag_name
|
||||||
|
local prop_prefix
|
||||||
|
local utag_value
|
||||||
|
local verify
|
||||||
|
for hwtag in $(find $hw_mp -name '.system'); do
|
||||||
|
debug "path $hwtag has '.system' in its name"
|
||||||
|
prop_prefix=$(cat $hwtag/ascii)
|
||||||
|
verify=${prop_prefix%.}
|
||||||
|
# esure property ends with '.'
|
||||||
|
if [ "$prop_prefix" == "$verify" ]; then
|
||||||
|
prop_prefix="$prop_prefix."
|
||||||
|
debug "added '.' at the end of [$prop_prefix]"
|
||||||
|
|
||||||
|
fi
|
||||||
|
utag_path=${hwtag%/*}
|
||||||
|
utag_name=${utag_path##*/}
|
||||||
|
utag_value=$(cat $utag_path/ascii)
|
||||||
|
setprop $prop_prefix$utag_name "$utag_value"
|
||||||
|
notice "$prop_prefix$utag_name='$utag_value'"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
set_ro_vendor_incremental()
|
||||||
|
{
|
||||||
|
local vendor_incremental="ro.vendor.build.version.incremental"
|
||||||
|
local vendor_incremental_value
|
||||||
|
local fetch_prop="ro.build.version.incremental"
|
||||||
|
local fetch_value=$(getprop $fetch_prop)
|
||||||
|
|
||||||
|
[ -z "$fetch_value" ] && prefetch_from_file $fetch_prop vendor_incremental_value
|
||||||
|
setprop $vendor_incremental "$vendor_incremental_value"
|
||||||
|
notice "$vendor_incremental='$vendor_incremental_value'"
|
||||||
|
}
|
||||||
|
|
||||||
|
smart_value()
|
||||||
|
{
|
||||||
|
local mtag=$1
|
||||||
|
local __result=$2
|
||||||
|
local value
|
||||||
|
eval $__result=""
|
||||||
|
local tmp=${mtag#?}
|
||||||
|
# absolute path to the file starts with '/'
|
||||||
|
if [ "${mtag%$tmp}" == "/" ]; then
|
||||||
|
value=$(cat $mtag)
|
||||||
|
# property likely to have '.'
|
||||||
|
elif [ "$mtag" != "${mtag%.*}" ]; then
|
||||||
|
value=$(getprop $mtag)
|
||||||
|
else # tag otherwise
|
||||||
|
value=$(cat $hw_mp/$mtag/ascii)
|
||||||
|
fi
|
||||||
|
eval $__result='$value'
|
||||||
|
}
|
||||||
|
|
||||||
|
url_style_off()
|
||||||
|
{
|
||||||
|
local __arg=$1
|
||||||
|
local value=$2
|
||||||
|
if [[ $value == *%* ]]; then
|
||||||
|
value=$(echo $value | sed 's/%20/ /g')
|
||||||
|
value=$(echo $value | sed 's/%28/\(/g')
|
||||||
|
value=$(echo $value | sed 's/%29/\)/g')
|
||||||
|
fi
|
||||||
|
eval $__arg='$value'
|
||||||
|
}
|
||||||
|
|
||||||
|
match()
|
||||||
|
{
|
||||||
|
local mapping
|
||||||
|
local mline
|
||||||
|
local mtag
|
||||||
|
local fs_value
|
||||||
|
local mvalue
|
||||||
|
local matched
|
||||||
|
url_style_off mapping $1
|
||||||
|
debug "match mapping='$mapping'"
|
||||||
|
# put '\"' around $mapping to ensure XML
|
||||||
|
# parser takes it as a single argument
|
||||||
|
for mline in $(exec_parser \"$mapping\"); do
|
||||||
|
get_tag_data mtag mvalue $mline
|
||||||
|
url_style_off mvalue $mvalue
|
||||||
|
# obtain value based on data source: utag, property or file
|
||||||
|
smart_value $mtag fs_value
|
||||||
|
if [ "$fs_value" == "$mvalue" ]; then
|
||||||
|
matched="true";
|
||||||
|
else
|
||||||
|
matched="false";
|
||||||
|
fi
|
||||||
|
debug "cmp utag='$mtag' values '$mvalue' & '$fs_value' is \"$matched\""
|
||||||
|
[ "$matched" == "false" ] && break
|
||||||
|
done
|
||||||
|
[ "$matched" == "true" ] && return 0
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
find_match()
|
||||||
|
{
|
||||||
|
local __retval=$1
|
||||||
|
local tag_name
|
||||||
|
local fline
|
||||||
|
local line
|
||||||
|
local subsection
|
||||||
|
local matched="false"
|
||||||
|
eval $__retval=""
|
||||||
|
for fline in $(exec_parser); do
|
||||||
|
subsection=${fline%% *}
|
||||||
|
add_device_params $subsection
|
||||||
|
for line in $(exec_parser); do
|
||||||
|
get_attr_data_by_name tag_name "name" $line
|
||||||
|
debug "tag_name='$tag_name'"
|
||||||
|
match $tag_name
|
||||||
|
[ "$?" != "0" ] && continue
|
||||||
|
eval $__retval=$tag_name
|
||||||
|
matched="true"
|
||||||
|
break
|
||||||
|
done
|
||||||
|
drop_device_parameter
|
||||||
|
[ "$matched" == "true" ] && break
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
prefetch_from_file()
|
||||||
|
{
|
||||||
|
local pname=$1
|
||||||
|
local __result=$2
|
||||||
|
local value
|
||||||
|
local override
|
||||||
|
eval $__result=""
|
||||||
|
value=$(cat $bp_file 2>/dev/null | sed '/^$/d' | sed '/^#/d' | sed '/^import/d' | sed -n "/$pname=/p" | sed 's/.*=//')
|
||||||
|
debug "'$pname' from '$bp_file': '$value'"
|
||||||
|
if [ -f $oem_file ]; then
|
||||||
|
override=$(cat $oem_file 2>/dev/null | sed '/^$/d' | sed '/^#/d' | sed '/^import/d' | sed -n "/$pname=/p" | sed 's/.*=//')
|
||||||
|
[ "$override" ] && value=$override && debug "'$pname' from '$oem_file': '$value'"
|
||||||
|
fi
|
||||||
|
eval $__result=$value
|
||||||
|
}
|
||||||
|
|
||||||
|
append_match()
|
||||||
|
{
|
||||||
|
local prop_list=$1
|
||||||
|
local suffix="$2"
|
||||||
|
local dest_prop
|
||||||
|
local fetched_prop
|
||||||
|
local prop_value
|
||||||
|
local IFS=','
|
||||||
|
# properties list to put the result of appending hw suffix to
|
||||||
|
# example: appended="ro.vendor.product.name,ro.vendor.product.device"
|
||||||
|
for dest_prop in $prop_list; do
|
||||||
|
fetch_prop=${dest_prop}
|
||||||
|
# only alter property name that has "vendor" in it
|
||||||
|
if [ "${fetch_prop//.vendor}" != "$dest_prop" ]; then
|
||||||
|
fetch_prop=${fetch_prop//.vendor}
|
||||||
|
prop_value=$(getprop $fetch_prop)
|
||||||
|
[ -z "$prop_value" ] && prefetch_from_file $fetch_prop prop_value
|
||||||
|
# finally set destination property to appended value
|
||||||
|
setprop $dest_prop "$prop_value$suffix"
|
||||||
|
notice "$dest_prop='$prop_value$suffix'"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
process_mappings()
|
||||||
|
{
|
||||||
|
local pname=""
|
||||||
|
local pexport=""
|
||||||
|
local pdefault=""
|
||||||
|
local pappend=""
|
||||||
|
local putag=""
|
||||||
|
local subsection
|
||||||
|
local pline
|
||||||
|
local matched_val
|
||||||
|
local whitespace_val
|
||||||
|
local export_val
|
||||||
|
local utag_val
|
||||||
|
for pline in $(exec_parser); do
|
||||||
|
subsection=${pline%% *}
|
||||||
|
debug "subsection is '$subsection'"
|
||||||
|
get_attr_data_by_name pname "name" $pline
|
||||||
|
get_attr_data_by_name pexport "export" $pline
|
||||||
|
get_attr_data_by_name pdefault "default" $pline
|
||||||
|
get_attr_data_by_name pappend "append" $pline
|
||||||
|
get_attr_data_by_name putag "writeback" $pline
|
||||||
|
[ "$pname" ] && url_style_off pname $pname && debug "name='$pname'"
|
||||||
|
[ "$pexport" ] && url_style_off pexport $pexport && debug "export='$pexport'"
|
||||||
|
[ "$pdefault" ] && url_style_off pdefault $pdefault && debug "default='$pdefault'"
|
||||||
|
[ "$pappend" ] && url_style_off pappend $pappend && debug "append='$pappend'"
|
||||||
|
# add 'subsection' to permanent parameters
|
||||||
|
add_device_params $subsection
|
||||||
|
# call itself here to handle nonamed subsection, like quirks
|
||||||
|
[ -z "$pname" ] && [ -z "$pexport" ] && [ -z "$pdefault" ] && [ -z "$pappend" ] && [ -z "$putag" ] && process_mappings && continue
|
||||||
|
find_match matched_val
|
||||||
|
[ "$matched_val" ] && url_style_off matched_val $matched_val
|
||||||
|
# append_match handles OEM overrides, thus has to be called even with empty value
|
||||||
|
[ "$pappend" ] && append_match $pappend "$matched_val"
|
||||||
|
if [ "$matched_val" ]; then
|
||||||
|
if [ "$pexport" ]; then
|
||||||
|
setprop $pexport "$matched_val"
|
||||||
|
notice "exporting '$matched_val' into property $pexport"
|
||||||
|
fi
|
||||||
|
elif [ "$pexport" -a "$pdefault" ]; then
|
||||||
|
# if match is not found, proceed with default
|
||||||
|
setprop $pexport "$pdefault"
|
||||||
|
notice "defaulting '$pdefault' into property $pexport"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$putag" ] && [ -d $hw_mp/$putag ]; then
|
||||||
|
export_val=$(getprop $pexport)
|
||||||
|
utag_val=$(cat $hw_mp/$putag/ascii)
|
||||||
|
debug "writeback compare $utag_val,$export_val"
|
||||||
|
# if property is empty value, clear the utag.
|
||||||
|
# if property and writeback utag are empty value, don't update utag
|
||||||
|
if [ "$export_val" -o "$utag_val" != "(null)" ] && [ "$utag_val" != "$export_val" ]; then
|
||||||
|
update_utag $putag $export_val
|
||||||
|
notice "writeback '$export_val' into utag $putag"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
# remove the last added parameter
|
||||||
|
drop_device_parameter
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
# Main starts here
|
||||||
|
IFS=$'\n'
|
||||||
|
|
||||||
|
if [ ! -z "$mount_2nd_stage" ]; then
|
||||||
|
notice "Super image detection"
|
||||||
|
super_image_detection
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -z "$reset_touch" ]; then
|
||||||
|
notice "reset reboot counter"
|
||||||
|
set_reboot_counter 0
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -z "$dead_touch" ]; then
|
||||||
|
notice "property [$touch_status_prop] set to [dead]"
|
||||||
|
set_reboot_counter 1
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f /vendor/lib/modules/utags.ko ]; then
|
||||||
|
notice "loading utag driver"
|
||||||
|
insmod /vendor/lib/modules/utags.ko
|
||||||
|
fi
|
||||||
|
|
||||||
|
notice "checking integrity"
|
||||||
|
# check necessary components exist and just proceed
|
||||||
|
# with RO properties setup otherwise
|
||||||
|
if [ ! -f /$BASEDIR/bin/expat ] || [ ! -f $vhw_file ]; then
|
||||||
|
notice "warning: missing expat or xml"
|
||||||
|
set_ro_hw_properties
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -z "$populate_only" ]; then
|
||||||
|
# special handling for factory UTAGs provisioning
|
||||||
|
for path in /data/local/tmp /pds/factory; do
|
||||||
|
[ -f $path/$hw_cfg_file ] && break
|
||||||
|
done
|
||||||
|
notice "populating hw config from '$path/$hw_cfg_file'"
|
||||||
|
set_xml_file $path/$hw_cfg_file
|
||||||
|
populate_utags hardware
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
notice "initializing procfs"
|
||||||
|
procfs_wait_for_device readiness
|
||||||
|
if [ "$readiness" != "0" ]; then
|
||||||
|
notice "no access to hw utags procfs"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# populate touch status property with reboot counter
|
||||||
|
set_reboot_counter_property &
|
||||||
|
|
||||||
|
# XML parsing starts here
|
||||||
|
set_xml_file $vhw_file
|
||||||
|
|
||||||
|
get_attr_data_by_name boot_device_prop "match" $(exec_parser)
|
||||||
|
debug "attr='get' value='$boot_device_prop'"
|
||||||
|
if [ -z $boot_device_prop ]; then
|
||||||
|
notice "fatal: undefined boot device property"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# ensure lower case
|
||||||
|
typeset -l boot_device=$(getprop $boot_device_prop)
|
||||||
|
# drop suffixes
|
||||||
|
boot_device=${boot_device%[_-]*}
|
||||||
|
notice "matching to boot device '$boot_device'"
|
||||||
|
|
||||||
|
# add 'validation' to permanent parameters
|
||||||
|
add_device_params validation
|
||||||
|
|
||||||
|
for line in $(exec_parser); do
|
||||||
|
get_attr_data_by_name product "name" $line
|
||||||
|
debug "attr='name' value='$product'"
|
||||||
|
if [ "$product" == "$boot_device" ]; then
|
||||||
|
get_attr_data_by_name xml_version "version" $line
|
||||||
|
[ "$xml_version" != "unknown" ] && notice "device '$boot_device' xml version='$xml_version'"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
[ "$xml_version" == "unknown" ] && notice "no match found for device '$boot_device'"
|
||||||
|
# delete obsolete 'version' utag if exists
|
||||||
|
[ -d $hw_mp/${ver_utag#?} ] && $(echo ${ver_utag#?} > $hw_mp/all/delete)
|
||||||
|
# read procfs version
|
||||||
|
[ -d $hw_mp/$ver_utag ] && version_fs=$(cat $hw_mp/$ver_utag/ascii)
|
||||||
|
notice "procfs version='$version_fs'"
|
||||||
|
# add 'device' and '$boot_device' to permanent parameters
|
||||||
|
add_device_params device $boot_device
|
||||||
|
[ "$xml_version" == "$version_fs" ] && notice "hw descriptor is up to date"
|
||||||
|
for section in $(exec_parser); do
|
||||||
|
debug "section='$section'"
|
||||||
|
case $section in
|
||||||
|
mappings)
|
||||||
|
# add 'mappings' to permanent parameters
|
||||||
|
add_device_params $section
|
||||||
|
process_mappings &
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
[ "$xml_version" == "$version_fs" ] && continue
|
||||||
|
populate_utags $section;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ "$xml_version" != "$version_fs" ]; then
|
||||||
|
# create version utag if it's missing
|
||||||
|
[ ! -d $hw_mp/$ver_utag ] && $(echo "$ver_utag" > $hw_mp/all/new)
|
||||||
|
# update procfs version
|
||||||
|
[ -d $hw_mp/$ver_utag ] && $(echo "$xml_version" > $hw_mp/$ver_utag/ascii)
|
||||||
|
fi
|
||||||
|
|
||||||
|
set_ro_vendor_incremental &
|
||||||
|
|
||||||
|
set_ro_hw_properties
|
||||||
|
|
||||||
|
if [ "$utag_update_fail" == "true" ]; then
|
||||||
|
set_ro_hw_properties_upgrade
|
||||||
|
fi
|
||||||
|
|
||||||
|
wait
|
||||||
|
|
||||||
|
notice "script init.oem.hw.sh finish "
|
||||||
|
return 0
|
||||||
|
|
146
rootdir/bin/init.qcom.class_core.sh
Normal file
146
rootdir/bin/init.qcom.class_core.sh
Normal file
|
@ -0,0 +1,146 @@
|
||||||
|
#!/vendor/bin/sh
|
||||||
|
|
||||||
|
# Copyright (c) 2012-2013, The Linux Foundation. All rights reserved.
|
||||||
|
#
|
||||||
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
# modification, are permitted provided that the following conditions are met:
|
||||||
|
# * Redistributions of source code must retain the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer.
|
||||||
|
# * Redistributions in binary form must reproduce the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer in the
|
||||||
|
# documentation and/or other materials provided with the distribution.
|
||||||
|
# * Neither the name of The Linux Foundation nor
|
||||||
|
# the names of its contributors may be used to endorse or promote
|
||||||
|
# products derived from this software without specific prior written
|
||||||
|
# permission.
|
||||||
|
#
|
||||||
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
# NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
||||||
|
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||||
|
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||||
|
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||||
|
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||||
|
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||||
|
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
|
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
#
|
||||||
|
|
||||||
|
# Set platform variables
|
||||||
|
target=`getprop ro.board.platform`
|
||||||
|
if [ -f /sys/devices/soc0/hw_platform ]; then
|
||||||
|
soc_hwplatform=`cat /sys/devices/soc0/hw_platform` 2> /dev/null
|
||||||
|
else
|
||||||
|
soc_hwplatform=`cat /sys/devices/system/soc/soc0/hw_platform` 2> /dev/null
|
||||||
|
fi
|
||||||
|
if [ -f /sys/devices/soc0/soc_id ]; then
|
||||||
|
soc_hwid=`cat /sys/devices/soc0/soc_id` 2> /dev/null
|
||||||
|
else
|
||||||
|
soc_hwid=`cat /sys/devices/system/soc/soc0/id` 2> /dev/null
|
||||||
|
fi
|
||||||
|
if [ -f /sys/devices/soc0/platform_version ]; then
|
||||||
|
soc_hwver=`cat /sys/devices/soc0/platform_version` 2> /dev/null
|
||||||
|
else
|
||||||
|
soc_hwver=`cat /sys/devices/system/soc/soc0/platform_version` 2> /dev/null
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# Dynamic Memory Managment (DMM) provides a sys file system to the userspace
|
||||||
|
# that can be used to plug in/out memory that has been configured as unstable.
|
||||||
|
# This unstable memory can be in Active or In-Active State.
|
||||||
|
# Each of which the userspace can request by writing to a sys file.
|
||||||
|
#
|
||||||
|
# ro.dev.dmm = 1; Indicates that DMM is enabled in the Android User Space. This
|
||||||
|
# property is set in the Android system properties file.
|
||||||
|
#
|
||||||
|
# If ro.dev.dmm.dpd.start_address is set here then the target has a memory
|
||||||
|
# configuration that supports DynamicMemoryManagement.
|
||||||
|
init_DMM()
|
||||||
|
{
|
||||||
|
block=-1
|
||||||
|
|
||||||
|
case "$target" in
|
||||||
|
"msm7630_surf" | "msm7630_1x" | "msm7630_fusion" | "msm8960")
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
return
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
mem="/sys/devices/system/memory"
|
||||||
|
op=`cat $mem/movable_start_bytes`
|
||||||
|
case "$op" in
|
||||||
|
"0")
|
||||||
|
log -p i -t DMM DMM Disabled. movable_start_bytes not set: $op
|
||||||
|
;;
|
||||||
|
|
||||||
|
"$mem/movable_start_bytes: No such file or directory ")
|
||||||
|
log -p i -t DMM DMM Disabled. movable_start_bytes does not exist: $op
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
log -p i -t DMM DMM available. movable_start_bytes at $op
|
||||||
|
movable_start_bytes=0x`cat $mem/movable_start_bytes`
|
||||||
|
block_size_bytes=0x`cat $mem/block_size_bytes`
|
||||||
|
block=$((#${movable_start_bytes}/${block_size_bytes}))
|
||||||
|
|
||||||
|
chown -h system.system $mem/memory$block/state
|
||||||
|
chown -h system.system $mem/probe
|
||||||
|
chown -h system.system $mem/active
|
||||||
|
chown -h system.system $mem/remove
|
||||||
|
|
||||||
|
case "$target" in
|
||||||
|
"msm7630_surf" | "msm7630_1x" | "msm7630_fusion")
|
||||||
|
echo $movable_start_bytes > $mem/probe
|
||||||
|
case "$?" in
|
||||||
|
"0")
|
||||||
|
log -p i -t DMM $movable_start_bytes to physical hotplug succeeded.
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
log -p e -t DMM $movable_start_bytes to physical hotplug failed.
|
||||||
|
return
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
echo online > $mem/memory$block/state
|
||||||
|
case "$?" in
|
||||||
|
"0")
|
||||||
|
log -p i -t DMM \'echo online\' to logical hotplug succeeded.
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
log -p e -t DMM \'echo online\' to logical hotplug failed.
|
||||||
|
return
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
setprop ro.dev.dmm.dpd.start_address $movable_start_bytes
|
||||||
|
setprop ro.dev.dmm.dpd.block $block
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
case "$target" in
|
||||||
|
"msm8960")
|
||||||
|
return
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# For 7X30 targets:
|
||||||
|
# ro.dev.dmm.dpd.start_address is set when the target has a 2x256Mb memory
|
||||||
|
# configuration. This is also used to indicate that the target is capable of
|
||||||
|
# setting EBI-1 to Deep Power Down or Self Refresh.
|
||||||
|
op=`cat $mem/low_power_memory_start_bytes`
|
||||||
|
case "$op" in
|
||||||
|
"0")
|
||||||
|
log -p i -t DMM Self-Refresh-Only Disabled. low_power_memory_start_bytes not set:$op
|
||||||
|
;;
|
||||||
|
"$mem/low_power_memory_start_bytes No such file or directory ")
|
||||||
|
log -p i -t DMM Self-Refresh-Only Disabled. low_power_memory_start_bytes does not exist:$op
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
log -p i -t DMM Self-Refresh-Only available. low_power_memory_start_bytes at $op
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
115
rootdir/bin/init.qcom.coex.sh
Normal file
115
rootdir/bin/init.qcom.coex.sh
Normal file
|
@ -0,0 +1,115 @@
|
||||||
|
#! /vendor/bin/sh
|
||||||
|
|
||||||
|
# Copyright (c) 2009-2010, 2012, The Linux Foundation. All rights reserved.
|
||||||
|
#
|
||||||
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
# modification, are permitted provided that the following conditions are met:
|
||||||
|
# * Redistributions of source code must retain the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer.
|
||||||
|
# * Redistributions in binary form must reproduce the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer in the
|
||||||
|
# documentation and/or other materials provided with the distribution.
|
||||||
|
# * Neither the name of The Linux Foundation nor
|
||||||
|
# the names of its contributors may be used to endorse or promote
|
||||||
|
# products derived from this software without specific prior written
|
||||||
|
# permission.
|
||||||
|
#
|
||||||
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
# NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
||||||
|
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||||
|
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||||
|
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||||
|
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||||
|
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||||
|
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
|
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
LOG_TAG="qcom-bt-wlan-coex"
|
||||||
|
LOG_NAME="${0}:"
|
||||||
|
|
||||||
|
coex_pid=""
|
||||||
|
ath_wlan_supported=`getprop wlan.driver.ath`
|
||||||
|
|
||||||
|
loge ()
|
||||||
|
{
|
||||||
|
/system/bin/log -t $LOG_TAG -p e "$LOG_NAME $@"
|
||||||
|
}
|
||||||
|
|
||||||
|
logi ()
|
||||||
|
{
|
||||||
|
/system/bin/log -t $LOG_TAG -p i "$LOG_NAME $@"
|
||||||
|
}
|
||||||
|
|
||||||
|
failed ()
|
||||||
|
{
|
||||||
|
loge "$1: exit code $2"
|
||||||
|
exit $2
|
||||||
|
}
|
||||||
|
|
||||||
|
start_coex ()
|
||||||
|
{
|
||||||
|
case "$ath_wlan_supported" in
|
||||||
|
"2")
|
||||||
|
echo "ATH WLAN Chip ID AR6004 is enabled"
|
||||||
|
/system/bin/abtfilt -d -z -n -m -a -w wlan0 &
|
||||||
|
;;
|
||||||
|
"1")
|
||||||
|
echo "ATH WLAN Chip ID is enabled"
|
||||||
|
# Must have -d -z -n -v -s -w wlan0 parameters for atheros btfilter.
|
||||||
|
/system/bin/abtfilt -d -z -n -v -q -s -w wlan0 &
|
||||||
|
;;
|
||||||
|
"0")
|
||||||
|
echo "WCN WLAN Chip ID is enabled"
|
||||||
|
# Must have -o turned on to avoid daemon (otherwise we cannot get pid)
|
||||||
|
/system/bin/btwlancoex -o $opt_flags &
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "NO WLAN Chip ID is enabled, so enabling ATH as default"
|
||||||
|
# Must have -d -z -n -v -s -w wlan0 parameters for atheros btfilter.
|
||||||
|
/system/bin/abtfilt -d -z -n -v -q -s -w wlan0 &
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
coex_pid=$!
|
||||||
|
logi "start_coex: pid = $coex_pid"
|
||||||
|
}
|
||||||
|
|
||||||
|
kill_coex ()
|
||||||
|
{
|
||||||
|
logi "kill_coex: pid = $coex_pid"
|
||||||
|
kill -TERM $coex_pid
|
||||||
|
# this shell doesn't exit now -- wait returns for normal exit
|
||||||
|
}
|
||||||
|
|
||||||
|
# mimic coex options parsing -- maybe a waste of effort
|
||||||
|
USAGE="${0} [-o] [-c] [-r] [-i] [-h]"
|
||||||
|
|
||||||
|
while getopts "ocrih" f
|
||||||
|
do
|
||||||
|
case $f in
|
||||||
|
o | c | r | i | h) opt_flags="$opt_flags -$f" ;;
|
||||||
|
\?) echo $USAGE; exit 1;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
# init does SIGTERM on ctl.stop for service
|
||||||
|
trap "kill_coex" TERM INT
|
||||||
|
|
||||||
|
#Selectively start coex module
|
||||||
|
target=`getprop ro.board.platform`
|
||||||
|
|
||||||
|
if [ "$target" == "msm8960" ] && [ "$ath_wlan_supported" != "2" ]; then
|
||||||
|
logi "btwlancoex/abtfilt is not needed"
|
||||||
|
else
|
||||||
|
# Build settings may not produce the coex executable
|
||||||
|
if ls /system/bin/btwlancoex || ls /system/bin/abtfilt
|
||||||
|
then
|
||||||
|
start_coex
|
||||||
|
wait $coex_pid
|
||||||
|
logi "Coex stopped"
|
||||||
|
else
|
||||||
|
logi "btwlancoex/abtfilt not available"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
exit 0
|
48
rootdir/bin/init.qcom.crashdata.sh
Normal file
48
rootdir/bin/init.qcom.crashdata.sh
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
#!/vendor/bin/sh
|
||||||
|
# Copyright (c) 2017, The Linux Foundation. All rights reserved.
|
||||||
|
#
|
||||||
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
# modification, are permitted provided that the following conditions are
|
||||||
|
# met:
|
||||||
|
# * Redistributions of source code must retain the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer.
|
||||||
|
# * Redistributions in binary form must reproduce the above
|
||||||
|
# copyright notice, this list of conditions and the following
|
||||||
|
# disclaimer in the documentation and/or other materials provided
|
||||||
|
# with the distribution.
|
||||||
|
# * Neither the name of The Linux Foundation nor the names of its
|
||||||
|
# contributors may be used to endorse or promote products derived
|
||||||
|
# from this software without specific prior written permission.
|
||||||
|
#
|
||||||
|
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
|
||||||
|
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
|
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
|
||||||
|
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
|
||||||
|
# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||||
|
# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||||
|
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
||||||
|
# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||||
|
# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
#
|
||||||
|
|
||||||
|
abnormalcnt="persist.vendor.crash.cnt"
|
||||||
|
|
||||||
|
abnormal_cnt=`getprop $abnormalcnt`
|
||||||
|
crash_detect=`getprop persist.vendor.crash.detect`
|
||||||
|
|
||||||
|
if [ "$abnormal_cnt" = "" ]
|
||||||
|
then
|
||||||
|
setprop $abnormalcnt 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$crash_detect" = "true" ]
|
||||||
|
then
|
||||||
|
abnormal_cnt=`expr $abnormal_cnt + 1`
|
||||||
|
setprop $abnormalcnt $abnormal_cnt
|
||||||
|
elif [ "$crash_detect" = "false" ];then
|
||||||
|
setprop persist.vendor.crash.detect true
|
||||||
|
else
|
||||||
|
setprop persist.vendor.crash.detect true
|
||||||
|
fi
|
540
rootdir/bin/init.qcom.early_boot.sh
Normal file
540
rootdir/bin/init.qcom.early_boot.sh
Normal file
|
@ -0,0 +1,540 @@
|
||||||
|
#! /vendor/bin/sh
|
||||||
|
|
||||||
|
# Copyright (c) 2012-2013,2016,2018-2020 The Linux Foundation. All rights reserved.
|
||||||
|
#
|
||||||
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
# modification, are permitted provided that the following conditions are met:
|
||||||
|
# * Redistributions of source code must retain the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer.
|
||||||
|
# * Redistributions in binary form must reproduce the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer in the
|
||||||
|
# documentation and/or other materials provided with the distribution.
|
||||||
|
# * Neither the name of The Linux Foundation nor
|
||||||
|
# the names of its contributors may be used to endorse or promote
|
||||||
|
# products derived from this software without specific prior written
|
||||||
|
# permission.
|
||||||
|
#
|
||||||
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
# NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
||||||
|
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||||
|
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||||
|
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||||
|
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||||
|
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||||
|
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
|
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
#
|
||||||
|
|
||||||
|
export PATH=/vendor/bin
|
||||||
|
|
||||||
|
target_type=`getprop ro.hardware.type`
|
||||||
|
if [ "$target_type" == "automotive" ]; then
|
||||||
|
cd /sys/devices/system/memory/
|
||||||
|
n=1
|
||||||
|
addr=`cat aligned_blocks_addr | cut -d ',' -f $n`
|
||||||
|
num=`cat aligned_blocks_num | cut -d ',' -f $n`
|
||||||
|
while [ -n "$addr" ]
|
||||||
|
do
|
||||||
|
echo $addr > probe
|
||||||
|
echo online > memory$num/state
|
||||||
|
let n++
|
||||||
|
addr=`cat aligned_blocks_addr | cut -d ',' -f $n`
|
||||||
|
num=`cat aligned_blocks_num | cut -d ',' -f $n`
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Set platform variables
|
||||||
|
if [ -f /sys/devices/soc0/hw_platform ]; then
|
||||||
|
soc_hwplatform=`cat /sys/devices/soc0/hw_platform` 2> /dev/null
|
||||||
|
else
|
||||||
|
soc_hwplatform=`cat /sys/devices/system/soc/soc0/hw_platform` 2> /dev/null
|
||||||
|
fi
|
||||||
|
if [ -f /sys/devices/soc0/soc_id ]; then
|
||||||
|
soc_hwid=`cat /sys/devices/soc0/soc_id` 2> /dev/null
|
||||||
|
else
|
||||||
|
soc_hwid=`cat /sys/devices/system/soc/soc0/id` 2> /dev/null
|
||||||
|
fi
|
||||||
|
if [ -f /sys/devices/soc0/platform_version ]; then
|
||||||
|
soc_hwver=`cat /sys/devices/soc0/platform_version` 2> /dev/null
|
||||||
|
else
|
||||||
|
soc_hwver=`cat /sys/devices/system/soc/soc0/platform_version` 2> /dev/null
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f /sys/class/drm/card0-DSI-1/modes ]; then
|
||||||
|
echo "detect" > /sys/class/drm/card0-DSI-1/status
|
||||||
|
mode_file=/sys/class/drm/card0-DSI-1/modes
|
||||||
|
while read line; do
|
||||||
|
fb_width=${line%%x*};
|
||||||
|
break;
|
||||||
|
done < $mode_file
|
||||||
|
elif [ -f /sys/class/drm/card0-DP-1/modes ]; then
|
||||||
|
echo "detect" > /sys/class/drm/card0-DP-1/status
|
||||||
|
is_dp_mode=1
|
||||||
|
mode_file=/sys/class/drm/card0-DP-1/modes
|
||||||
|
while read line; do
|
||||||
|
fb_width=${line%%x*};
|
||||||
|
break;
|
||||||
|
done < $mode_file
|
||||||
|
elif [ -f /sys/class/graphics/fb0/virtual_size ]; then
|
||||||
|
res=`cat /sys/class/graphics/fb0/virtual_size` 2> /dev/null
|
||||||
|
fb_width=${res%,*}
|
||||||
|
fi
|
||||||
|
|
||||||
|
log -t BOOT -p i "MSM target '$1', SoC '$soc_hwplatform', HwID '$soc_hwid', SoC ver '$soc_hwver'"
|
||||||
|
|
||||||
|
#For drm based display driver
|
||||||
|
vbfile=/sys/module/drm/parameters/vblankoffdelay
|
||||||
|
if [ -w $vbfile ]; then
|
||||||
|
echo -1 > $vbfile
|
||||||
|
else
|
||||||
|
log -t DRM_BOOT -p w "file: '$vbfile' or perms doesn't exist"
|
||||||
|
fi
|
||||||
|
|
||||||
|
function set_density_by_fb() {
|
||||||
|
#put default density based on width
|
||||||
|
if [ -z $fb_width ]; then
|
||||||
|
if [ $is_dp_mode -eq 1 ]; then
|
||||||
|
return;
|
||||||
|
fi
|
||||||
|
setprop vendor.display.lcd_density 320
|
||||||
|
else
|
||||||
|
if [ $fb_width -ge 1600 ]; then
|
||||||
|
setprop vendor.display.lcd_density 640
|
||||||
|
elif [ $fb_width -ge 1440 ]; then
|
||||||
|
setprop vendor.display.lcd_density 560
|
||||||
|
elif [ $fb_width -ge 1080 ]; then
|
||||||
|
setprop vendor.display.lcd_density 480
|
||||||
|
elif [ $fb_width -ge 720 ]; then
|
||||||
|
setprop vendor.display.lcd_density 320 #for 720X1280 resolution
|
||||||
|
elif [ $fb_width -ge 480 ]; then
|
||||||
|
setprop vendor.display.lcd_density 240 #for 480X854 QRD resolution
|
||||||
|
else
|
||||||
|
setprop vendor.display.lcd_density 160
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
target=`getprop ro.board.platform`
|
||||||
|
case "$target" in
|
||||||
|
"msm7630_surf" | "msm7630_1x" | "msm7630_fusion")
|
||||||
|
case "$soc_hwplatform" in
|
||||||
|
"FFA" | "SVLTE_FFA")
|
||||||
|
# linking to surf_keypad_qwerty.kcm.bin instead of surf_keypad_numeric.kcm.bin so that
|
||||||
|
# the UI keyboard works fine.
|
||||||
|
ln -s /system/usr/keychars/surf_keypad_qwerty.kcm.bin /system/usr/keychars/surf_keypad.kcm.bin
|
||||||
|
;;
|
||||||
|
"Fluid")
|
||||||
|
setprop vendor.display.lcd_density 240
|
||||||
|
setprop qcom.bt.dev_power_class 2
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
ln -s /system/usr/keychars/surf_keypad_qwerty.kcm.bin /system/usr/keychars/surf_keypad.kcm.bin
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
"sm6150")
|
||||||
|
case "$soc_hwplatform" in
|
||||||
|
"ADP")
|
||||||
|
setprop vendor.display.lcd_density 160
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
case "$soc_hwid" in
|
||||||
|
365|366)
|
||||||
|
sku_ver=`cat /sys/devices/platform/soc/aa00000.qcom,vidc1/sku_version` 2> /dev/null
|
||||||
|
setprop vendor.media.target.version 1
|
||||||
|
if [ $sku_ver -eq 1 ]; then
|
||||||
|
setprop vendor.media.target.version 2
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
355|369|377|384)
|
||||||
|
setprop vendor.chre.enabled 0
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
"msm8660")
|
||||||
|
case "$soc_hwplatform" in
|
||||||
|
"Fluid")
|
||||||
|
setprop vendor.display.lcd_density 240
|
||||||
|
;;
|
||||||
|
"Dragon")
|
||||||
|
setprop ro.sound.alsa "WM8903"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
|
||||||
|
"msm8960")
|
||||||
|
# lcd density is write-once. Hence the separate switch case
|
||||||
|
case "$soc_hwplatform" in
|
||||||
|
"Liquid")
|
||||||
|
if [ "$soc_hwver" == "196608" ]; then # version 0x30000 is 3D sku
|
||||||
|
setprop ro.sf.hwrotation 90
|
||||||
|
fi
|
||||||
|
|
||||||
|
setprop vendor.display.lcd_density 160
|
||||||
|
;;
|
||||||
|
"MTP")
|
||||||
|
setprop vendor.display.lcd_density 240
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
case "$soc_hwid" in
|
||||||
|
"109")
|
||||||
|
setprop vendor.display.lcd_density 160
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
setprop vendor.display.lcd_density 240
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
#Set up composition type based on the target
|
||||||
|
case "$soc_hwid" in
|
||||||
|
87)
|
||||||
|
#8960
|
||||||
|
setprop debug.composition.type dyn
|
||||||
|
;;
|
||||||
|
153|154|155|156|157|138)
|
||||||
|
#8064 V2 PRIME | 8930AB | 8630AB | 8230AB | 8030AB | 8960AB
|
||||||
|
setprop debug.composition.type c2d
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
|
||||||
|
"msm8974")
|
||||||
|
case "$soc_hwplatform" in
|
||||||
|
"Liquid")
|
||||||
|
setprop vendor.display.lcd_density 160
|
||||||
|
# Liquid do not have hardware navigation keys, so enable
|
||||||
|
# Android sw navigation bar
|
||||||
|
setprop ro.hw.nav_keys 0
|
||||||
|
;;
|
||||||
|
"Dragon")
|
||||||
|
setprop vendor.display.lcd_density 240
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
setprop vendor.display.lcd_density 320
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
|
||||||
|
"msm8226")
|
||||||
|
case "$soc_hwplatform" in
|
||||||
|
*)
|
||||||
|
setprop vendor.display.lcd_density 320
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
|
||||||
|
"msm8610" | "apq8084" | "mpq8092")
|
||||||
|
case "$soc_hwplatform" in
|
||||||
|
*)
|
||||||
|
setprop vendor.display.lcd_density 240
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
"apq8084")
|
||||||
|
case "$soc_hwplatform" in
|
||||||
|
"Liquid")
|
||||||
|
setprop vendor.display.lcd_density 320
|
||||||
|
# Liquid do not have hardware navigation keys, so enable
|
||||||
|
# Android sw navigation bar
|
||||||
|
setprop ro.hw.nav_keys 0
|
||||||
|
;;
|
||||||
|
"SBC")
|
||||||
|
setprop vendor.display.lcd_density 200
|
||||||
|
# SBC do not have hardware navigation keys, so enable
|
||||||
|
# Android sw navigation bar
|
||||||
|
setprop qemu.hw.mainkeys 0
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
setprop vendor.display.lcd_density 480
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
"msm8996")
|
||||||
|
case "$soc_hwplatform" in
|
||||||
|
"Dragon")
|
||||||
|
setprop vendor.display.lcd_density 240
|
||||||
|
setprop qemu.hw.mainkeys 0
|
||||||
|
;;
|
||||||
|
"ADP")
|
||||||
|
setprop vendor.display.lcd_density 160
|
||||||
|
setprop qemu.hw.mainkeys 0
|
||||||
|
;;
|
||||||
|
"SBC")
|
||||||
|
setprop vendor.display.lcd_density 240
|
||||||
|
setprop qemu.hw.mainkeys 0
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
setprop vendor.display.lcd_density 560
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
"msm8937" | "msm8940")
|
||||||
|
# Set vendor.opengles.version based on chip id.
|
||||||
|
# MSM8937 and MSM8940 variants supports OpenGLES 3.1
|
||||||
|
# 196608 is decimal for 0x30000 to report version 3.0
|
||||||
|
# 196609 is decimal for 0x30001 to report version 3.1
|
||||||
|
# 196610 is decimal for 0x30002 to report version 3.2
|
||||||
|
case "$soc_hwid" in
|
||||||
|
294|295|296|297|298|313|353|354|363|364)
|
||||||
|
setprop vendor.opengles.version 196610
|
||||||
|
if [ $soc_hwid = 354 ]
|
||||||
|
then
|
||||||
|
setprop vendor.media.target.version 1
|
||||||
|
log -t BOOT -p i "SDM429 early_boot prop set for: HwID '$soc_hwid'"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
303|307|308|309|320)
|
||||||
|
# Vulkan is not supported for 8917 variants
|
||||||
|
setprop vendor.opengles.version 196608
|
||||||
|
setprop persist.graphics.vulkan.disable true
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
setprop vendor.opengles.version 196608
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
"msm8909")
|
||||||
|
case "$soc_hwplatform" in
|
||||||
|
*)
|
||||||
|
setprop persist.graphics.vulkan.disable true
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
"msm8998" | "apq8098_latv")
|
||||||
|
case "$soc_hwplatform" in
|
||||||
|
*)
|
||||||
|
setprop vendor.display.lcd_density 560
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
"qcs605")
|
||||||
|
case "$soc_hwplatform" in
|
||||||
|
*)
|
||||||
|
setprop vendor.display.lcd_density 640
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
"sdm845")
|
||||||
|
case "$soc_hwplatform" in
|
||||||
|
*)
|
||||||
|
if [ $fb_width -le 1600 ]; then
|
||||||
|
setprop vendor.display.lcd_density 560
|
||||||
|
else
|
||||||
|
setprop vendor.display.lcd_density 640
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
"msmnile")
|
||||||
|
case "$soc_hwplatform" in
|
||||||
|
*)
|
||||||
|
if [ $fb_width -le 1600 ]; then
|
||||||
|
setprop vendor.display.lcd_density 560
|
||||||
|
else
|
||||||
|
setprop vendor.display.lcd_density 640
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
"kona")
|
||||||
|
case "$soc_hwplatform" in
|
||||||
|
*)
|
||||||
|
if [ $fb_width -le 1600 ]; then
|
||||||
|
setprop vendor.display.lcd_density 560
|
||||||
|
else
|
||||||
|
setprop vendor.display.lcd_density 640
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
"lito")
|
||||||
|
case "$soc_hwid" in
|
||||||
|
400|440)
|
||||||
|
sku_ver=`cat /sys/devices/platform/soc/aa00000.qcom,vidc1/sku_version` 2> /dev/null
|
||||||
|
if [ $sku_ver -eq 1 ]; then
|
||||||
|
setprop vendor.media.target.version 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
434|459)
|
||||||
|
sku_ver=`cat /sys/devices/platform/soc/aa00000.qcom,vidc1/sku_version` 2> /dev/null
|
||||||
|
setprop vendor.media.target.version 2
|
||||||
|
if [ $sku_ver -eq 1 ]; then
|
||||||
|
setprop vendor.media.target.version 3
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
"bengal")
|
||||||
|
case "$soc_hwid" in
|
||||||
|
441)
|
||||||
|
# 441 is for scuba
|
||||||
|
setprop vendor.fastrpc.disable.cdsprpcd.daemon 1
|
||||||
|
setprop vendor.media.target.version 2
|
||||||
|
setprop vendor.gralloc.disable_ubwc 1
|
||||||
|
# 196609 is decimal for 0x30001 to report version 3.1
|
||||||
|
setprop vendor.opengles.version 196609
|
||||||
|
sku_ver=`cat /sys/devices/platform/soc/5a00000.qcom,vidc1/sku_version` 2> /dev/null
|
||||||
|
if [ $sku_ver -eq 1 ]; then
|
||||||
|
setprop vendor.media.target.version 3
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
471)
|
||||||
|
#scuba APQ
|
||||||
|
setprop vendor.fastrpc.disable.cdsprpcd.daemon 1
|
||||||
|
setprop vendor.gralloc.disable_ubwc 1
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
# default case is for bengal
|
||||||
|
setprop vendor.opengles.version 196610
|
||||||
|
sku_ver=`cat /sys/devices/platform/soc/5a00000.qcom,vidc/sku_version` 2> /dev/null
|
||||||
|
if [ $sku_ver -eq 1 ]; then
|
||||||
|
setprop vendor.media.target.version 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
"sdm710" | "msmpeafowl")
|
||||||
|
case "$soc_hwplatform" in
|
||||||
|
*)
|
||||||
|
sku_ver=`cat /sys/devices/platform/soc/aa00000.qcom,vidc1/sku_version` 2> /dev/null
|
||||||
|
if [ $sku_ver -eq 1 ]; then
|
||||||
|
setprop vendor.media.target.version 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
"msm8953")
|
||||||
|
cap_ver = 1
|
||||||
|
if [ -e "/sys/devices/platform/soc/1d00000.qcom,vidc/capability_version" ]; then
|
||||||
|
cap_ver=`cat /sys/devices/platform/soc/1d00000.qcom,vidc/capability_version` 2> /dev/null
|
||||||
|
else
|
||||||
|
cap_ver=`cat /sys/devices/soc/1d00000.qcom,vidc/capability_version` 2> /dev/null
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $cap_ver -eq 1 ]; then
|
||||||
|
setprop vendor.media.target.version 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
#Set property to differentiate SDM660 & SDM455
|
||||||
|
#SOC ID for SDM455 is 385
|
||||||
|
"sdm660")
|
||||||
|
case "$soc_hwid" in
|
||||||
|
385)
|
||||||
|
setprop vendor.media.target.version 1
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
baseband=`getprop ro.baseband`
|
||||||
|
#enable atfwd daemon all targets except sda, apq, qcs
|
||||||
|
case "$baseband" in
|
||||||
|
"apq" | "sda" | "qcs" )
|
||||||
|
setprop persist.vendor.radio.atfwd.start false;;
|
||||||
|
*)
|
||||||
|
setprop persist.vendor.radio.atfwd.start true;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
#set default lcd density
|
||||||
|
#Since lcd density has read only
|
||||||
|
#property, it will not overwrite previous set
|
||||||
|
#property if any target is setting forcefully.
|
||||||
|
set_density_by_fb
|
||||||
|
|
||||||
|
|
||||||
|
# set Lilliput LCD density for ADP
|
||||||
|
product=`getprop ro.build.product`
|
||||||
|
|
||||||
|
case "$product" in
|
||||||
|
"msmnile_au")
|
||||||
|
setprop vendor.display.lcd_density 160
|
||||||
|
echo 902400000 > /sys/class/devfreq/soc:qcom,cpu0-cpu-l3-lat/min_freq
|
||||||
|
echo 1612800000 > /sys/class/devfreq/soc:qcom,cpu0-cpu-l3-lat/max_freq
|
||||||
|
echo 902400000 > /sys/class/devfreq/soc:qcom,cpu4-cpu-l3-lat/min_freq
|
||||||
|
echo 1612800000 > /sys/class/devfreq/soc:qcom,cpu4-cpu-l3-lat/max_freq
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
case "$product" in
|
||||||
|
"sm6150_au")
|
||||||
|
setprop vendor.display.lcd_density 160
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
case "$product" in
|
||||||
|
"sdmshrike_au")
|
||||||
|
setprop vendor.display.lcd_density 160
|
||||||
|
echo 940800000 > /sys/class/devfreq/soc:qcom,cpu0-cpu-l3-lat/min_freq
|
||||||
|
echo 940800000 > /sys/class/devfreq/soc:qcom,cpu4-cpu-l3-lat/min_freq
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
case "$product" in
|
||||||
|
"msmnile_gvmq")
|
||||||
|
setprop vendor.display.lcd_density 160
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
# Setup display nodes & permissions
|
||||||
|
# HDMI can be fb1 or fb2
|
||||||
|
# Loop through the sysfs nodes and determine
|
||||||
|
# the HDMI(dtv panel)
|
||||||
|
|
||||||
|
function set_perms() {
|
||||||
|
#Usage set_perms <filename> <ownership> <permission>
|
||||||
|
chown -h $2 $1
|
||||||
|
chmod $3 $1
|
||||||
|
}
|
||||||
|
|
||||||
|
# check for the type of driver FB or DRM
|
||||||
|
fb_driver=/sys/class/graphics/fb0
|
||||||
|
if [ -e "$fb_driver" ]
|
||||||
|
then
|
||||||
|
# check for mdp caps
|
||||||
|
file=/sys/class/graphics/fb0/mdp/caps
|
||||||
|
if [ -f "$file" ]
|
||||||
|
then
|
||||||
|
setprop vendor.gralloc.disable_ubwc 1
|
||||||
|
cat $file | while read line; do
|
||||||
|
case "$line" in
|
||||||
|
*"ubwc"*)
|
||||||
|
setprop vendor.gralloc.enable_fb_ubwc 1
|
||||||
|
setprop vendor.gralloc.disable_ubwc 0
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
drm_driver=/sys/class/drm/card0
|
||||||
|
if [ -e "$drm_driver" ]; then
|
||||||
|
set_perms /sys/devices/virtual/hdcp/msm_hdcp/min_level_change system.graphics 0660
|
||||||
|
fi
|
||||||
|
|
||||||
|
# allow system_graphics group to access pmic secure_mode node
|
||||||
|
set_perms /sys/class/lcd_bias/secure_mode system.graphics 0660
|
||||||
|
set_perms /sys/class/leds/wled/secure_mode system.graphics 0660
|
||||||
|
|
||||||
|
boot_reason=`cat /proc/sys/kernel/boot_reason`
|
||||||
|
reboot_reason=`getprop ro.boot.alarmboot`
|
||||||
|
if [ "$boot_reason" = "3" ] || [ "$reboot_reason" = "true" ]; then
|
||||||
|
setprop ro.vendor.alarm_boot true
|
||||||
|
else
|
||||||
|
setprop ro.vendor.alarm_boot false
|
||||||
|
fi
|
||||||
|
|
||||||
|
# copy GPU frequencies to vendor property
|
||||||
|
if [ -f /sys/class/kgsl/kgsl-3d0/gpu_available_frequencies ]; then
|
||||||
|
gpu_freq=`cat /sys/class/kgsl/kgsl-3d0/gpu_available_frequencies` 2> /dev/null
|
||||||
|
setprop vendor.gpu.available_frequencies "$gpu_freq"
|
||||||
|
fi
|
35
rootdir/bin/init.qcom.efs.sync.sh
Normal file
35
rootdir/bin/init.qcom.efs.sync.sh
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
#! /vendor/bin/sh
|
||||||
|
|
||||||
|
# Copyright (c) 2012, The Linux Foundation. All rights reserved.
|
||||||
|
#
|
||||||
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
# modification, are permitted provided that the following conditions are
|
||||||
|
# met:
|
||||||
|
# * Redistributions of source code must retain the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer.
|
||||||
|
# * Redistributions in binary form must reproduce the above
|
||||||
|
# copyright notice, this list of conditions and the following
|
||||||
|
# disclaimer in the documentation and/or other materials provided
|
||||||
|
# with the distribution.
|
||||||
|
# * Neither the name of The Linux Foundation nor the names of its
|
||||||
|
# contributors may be used to endorse or promote products derived
|
||||||
|
# from this software without specific prior written permission.
|
||||||
|
#
|
||||||
|
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
|
||||||
|
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
|
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
|
||||||
|
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
|
||||||
|
# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||||
|
# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||||
|
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
||||||
|
# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||||
|
# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
|
||||||
|
PATH=/system/bin:$PATH
|
||||||
|
export PATH
|
||||||
|
cat /sys/devices/platform/rs300000a7.65536/force_sync
|
||||||
|
cat /sys/devices/platform/rs300100a7.65536/force_sync
|
5991
rootdir/bin/init.qcom.post_boot.sh
Normal file
5991
rootdir/bin/init.qcom.post_boot.sh
Normal file
File diff suppressed because it is too large
Load diff
78
rootdir/bin/init.qcom.sdio.sh
Normal file
78
rootdir/bin/init.qcom.sdio.sh
Normal file
|
@ -0,0 +1,78 @@
|
||||||
|
#! /vendor/bin/sh
|
||||||
|
|
||||||
|
# Copyright (c) 2010, The Linux Foundation. All rights reserved.
|
||||||
|
#
|
||||||
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
# modification, are permitted provided that the following conditions are
|
||||||
|
# met:
|
||||||
|
# * Redistributions of source code must retain the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer.
|
||||||
|
# * Redistributions in binary form must reproduce the above
|
||||||
|
# copyright notice, this list of conditions and the following
|
||||||
|
# disclaimer in the documentation and/or other materials provided
|
||||||
|
# with the distribution.
|
||||||
|
# * Neither the name of The Linux Foundation nor the names of its
|
||||||
|
# contributors may be used to endorse or promote products derived
|
||||||
|
# from this software without specific prior written permission.
|
||||||
|
#
|
||||||
|
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
|
||||||
|
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
|
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
|
||||||
|
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
|
||||||
|
# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||||
|
# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||||
|
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
||||||
|
# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||||
|
# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
#
|
||||||
|
|
||||||
|
# For successful WLAN card detection, WLAN needs SDIO polling turned on.
|
||||||
|
# This script can be used to turn on/off SDIO polling on appropriate
|
||||||
|
# SDIO slot on the MSM target (e.g. slot 3 on 7x30 surf).
|
||||||
|
|
||||||
|
arg=$1
|
||||||
|
target=`getprop ro.board.platform`
|
||||||
|
|
||||||
|
case "$target" in
|
||||||
|
"msm7627_6x")
|
||||||
|
echo 1 > /sys/devices/platform/msm_sdcc.1/polling
|
||||||
|
echo 1 > /sys/devices/platform/msm_sdcc.2/polling
|
||||||
|
;;
|
||||||
|
|
||||||
|
"msm7627_ffa")
|
||||||
|
echo 1 > /sys/devices/platform/msm_sdcc.2/polling
|
||||||
|
;;
|
||||||
|
|
||||||
|
"msm7627_surf")
|
||||||
|
echo 1 > /sys/devices/platform/msm_sdcc.1/polling
|
||||||
|
echo 1 > /sys/devices/platform/msm_sdcc.2/polling
|
||||||
|
;;
|
||||||
|
|
||||||
|
"msm7627a")
|
||||||
|
echo 1 > /sys/devices/platform/msm_sdcc.2/polling
|
||||||
|
;;
|
||||||
|
|
||||||
|
"msm7630_surf")
|
||||||
|
echo 1 > /sys/devices/platform/msm_sdcc.3/polling
|
||||||
|
;;
|
||||||
|
|
||||||
|
"msm7630_1x")
|
||||||
|
echo 1 > /sys/devices/platform/msm_sdcc.3/polling
|
||||||
|
;;
|
||||||
|
|
||||||
|
"msm7630_fusion")
|
||||||
|
echo 1 > /sys/devices/platform/msm_sdcc.3/polling
|
||||||
|
;;
|
||||||
|
|
||||||
|
"msm8660")
|
||||||
|
echo 1 > /sys/devices/platform/msm_sdcc.4/polling
|
||||||
|
;;
|
||||||
|
|
||||||
|
"msm8660_csfb")
|
||||||
|
echo 1 > /sys/devices/platform/msm_sdcc.4/polling
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
exit 0
|
45
rootdir/bin/init.qcom.sensors.sh
Normal file
45
rootdir/bin/init.qcom.sensors.sh
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
#!/vendor/bin/sh
|
||||||
|
# Copyright (c) 2015,2018 The Linux Foundation. All rights reserved.
|
||||||
|
#
|
||||||
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
# modification, are permitted provided that the following conditions are met:
|
||||||
|
# * Redistributions of source code must retain the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer.
|
||||||
|
# * Redistributions in binary form must reproduce the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer in the
|
||||||
|
# documentation and/or other materials provided with the distribution.
|
||||||
|
# * Neither the name of The Linux Foundation nor
|
||||||
|
# the names of its contributors may be used to endorse or promote
|
||||||
|
# products derived from this software without specific prior written
|
||||||
|
# permission.
|
||||||
|
#
|
||||||
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
# NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
||||||
|
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||||
|
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||||
|
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||||
|
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||||
|
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||||
|
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
|
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# Function to start sensors for SSC enabled platforms
|
||||||
|
#
|
||||||
|
start_sensors()
|
||||||
|
{
|
||||||
|
|
||||||
|
chmod -h 664 /persist/sensors/sensors_settings
|
||||||
|
chown -h -R system.system /persist/sensors
|
||||||
|
start vendor.sensors.qti
|
||||||
|
|
||||||
|
# Only for SLPI
|
||||||
|
if [ -c /dev/msm_dsps -o -c /dev/sensors ] ; then
|
||||||
|
start vendor.sensors
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
start_sensors
|
465
rootdir/bin/init.qcom.sh
Normal file
465
rootdir/bin/init.qcom.sh
Normal file
|
@ -0,0 +1,465 @@
|
||||||
|
#! /vendor/bin/sh
|
||||||
|
|
||||||
|
# Copyright (c) 2009-2016, The Linux Foundation. All rights reserved.
|
||||||
|
#
|
||||||
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
# modification, are permitted provided that the following conditions are met:
|
||||||
|
# * Redistributions of source code must retain the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer.
|
||||||
|
# * Redistributions in binary form must reproduce the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer in the
|
||||||
|
# documentation and/or other materials provided with the distribution.
|
||||||
|
# * Neither the name of The Linux Foundation nor
|
||||||
|
# the names of its contributors may be used to endorse or promote
|
||||||
|
# products derived from this software without specific prior written
|
||||||
|
# permission.
|
||||||
|
#
|
||||||
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
# NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
||||||
|
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||||
|
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||||
|
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||||
|
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||||
|
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||||
|
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
|
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
#
|
||||||
|
|
||||||
|
target=`getprop ro.board.platform`
|
||||||
|
low_ram=`getprop ro.config.low_ram`
|
||||||
|
if [ -f /sys/devices/soc0/soc_id ]; then
|
||||||
|
platformid=`cat /sys/devices/soc0/soc_id`
|
||||||
|
else
|
||||||
|
platformid=`cat /sys/devices/system/soc/soc0/id`
|
||||||
|
fi
|
||||||
|
|
||||||
|
start_battery_monitor()
|
||||||
|
{
|
||||||
|
if ls /sys/bus/spmi/devices/qpnp-bms-*/fcc_data ; then
|
||||||
|
chown -h root.system /sys/module/pm8921_bms/parameters/*
|
||||||
|
chown -h root.system /sys/module/qpnp_bms/parameters/*
|
||||||
|
chown -h root.system /sys/bus/spmi/devices/qpnp-bms-*/fcc_data
|
||||||
|
chown -h root.system /sys/bus/spmi/devices/qpnp-bms-*/fcc_temp
|
||||||
|
chown -h root.system /sys/bus/spmi/devices/qpnp-bms-*/fcc_chgcyl
|
||||||
|
chmod 0660 /sys/module/qpnp_bms/parameters/*
|
||||||
|
chmod 0660 /sys/module/pm8921_bms/parameters/*
|
||||||
|
mkdir -p /data/bms
|
||||||
|
chown -h root.system /data/bms
|
||||||
|
chmod 0770 /data/bms
|
||||||
|
start battery_monitor
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
start_charger_monitor()
|
||||||
|
{
|
||||||
|
if ls /sys/module/qpnp_charger/parameters/charger_monitor; then
|
||||||
|
chown -h root.system /sys/module/qpnp_charger/parameters/*
|
||||||
|
chown -h root.system /sys/class/power_supply/battery/input_current_max
|
||||||
|
chown -h root.system /sys/class/power_supply/battery/input_current_trim
|
||||||
|
chown -h root.system /sys/class/power_supply/battery/input_current_settled
|
||||||
|
chown -h root.system /sys/class/power_supply/battery/voltage_min
|
||||||
|
chmod 0664 /sys/class/power_supply/battery/input_current_max
|
||||||
|
chmod 0664 /sys/class/power_supply/battery/input_current_trim
|
||||||
|
chmod 0664 /sys/class/power_supply/battery/input_current_settled
|
||||||
|
chmod 0664 /sys/class/power_supply/battery/voltage_min
|
||||||
|
chmod 0664 /sys/module/qpnp_charger/parameters/charger_monitor
|
||||||
|
start charger_monitor
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
start_vm_bms()
|
||||||
|
{
|
||||||
|
if [ -e /dev/vm_bms ]; then
|
||||||
|
chown -h root.system /sys/class/power_supply/bms/current_now
|
||||||
|
chown -h root.system /sys/class/power_supply/bms/voltage_ocv
|
||||||
|
chmod 0664 /sys/class/power_supply/bms/current_now
|
||||||
|
chmod 0664 /sys/class/power_supply/bms/voltage_ocv
|
||||||
|
start vm_bms
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
start_msm_irqbalance_8939()
|
||||||
|
{
|
||||||
|
if [ -f /vendor/bin/msm_irqbalance ]; then
|
||||||
|
case "$platformid" in
|
||||||
|
"239" | "293" | "294" | "295" | "304" | "338" | "313" | "353" | "354")
|
||||||
|
start vendor.msm_irqbalance;;
|
||||||
|
"349" | "350" )
|
||||||
|
start vendor.msm_irqbal_lb;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
start_msm_irqbalance_msmnile()
|
||||||
|
{
|
||||||
|
if [ -f /vendor/bin/msm_irqbalance ]; then
|
||||||
|
start vendor.msm_irqbalance
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
start_msm_irqbalance_kona()
|
||||||
|
{
|
||||||
|
if [ -f /vendor/bin/msm_irqbalance ]; then
|
||||||
|
start vendor.msm_irqbalance
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
start_msm_irqbalance_lito()
|
||||||
|
{
|
||||||
|
if [ -f /vendor/bin/msm_irqbalance ]; then
|
||||||
|
start vendor.msm_irqbalance
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
start_msm_irqbalance_atoll()
|
||||||
|
{
|
||||||
|
if [ -f /vendor/bin/msm_irqbalance ]; then
|
||||||
|
start vendor.msm_irqbalance
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
start_msm_irqbalance660()
|
||||||
|
{
|
||||||
|
if [ -f /vendor/bin/msm_irqbalance ]; then
|
||||||
|
case "$platformid" in
|
||||||
|
"317" | "321" | "324" | "325" | "326" | "336" | "345" | "346" | "360" | "393")
|
||||||
|
start vendor.msm_irqbalance;;
|
||||||
|
"318" | "327" | "385")
|
||||||
|
start vendor.msm_irqbl_sdm630;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
start_msm_irqbalance()
|
||||||
|
{
|
||||||
|
if [ -f /vendor/bin/msm_irqbalance ]; then
|
||||||
|
start vendor.msm_irqbalance
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
baseband=`getprop ro.baseband`
|
||||||
|
echo 1 > /proc/sys/net/ipv6/conf/default/accept_ra_defrtr
|
||||||
|
|
||||||
|
case "$baseband" in
|
||||||
|
"svlte2a")
|
||||||
|
start bridgemgrd
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
case "$target" in
|
||||||
|
"msm7630_surf" | "msm7630_1x" | "msm7630_fusion")
|
||||||
|
if [ -f /sys/devices/soc0/hw_platform ]; then
|
||||||
|
value=`cat /sys/devices/soc0/hw_platform`
|
||||||
|
else
|
||||||
|
value=`cat /sys/devices/system/soc/soc0/hw_platform`
|
||||||
|
fi
|
||||||
|
case "$value" in
|
||||||
|
"Fluid")
|
||||||
|
start profiler_daemon;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
"msm8660" )
|
||||||
|
if [ -f /sys/devices/soc0/hw_platform ]; then
|
||||||
|
platformvalue=`cat /sys/devices/soc0/hw_platform`
|
||||||
|
else
|
||||||
|
platformvalue=`cat /sys/devices/system/soc/soc0/hw_platform`
|
||||||
|
fi
|
||||||
|
case "$platformvalue" in
|
||||||
|
"Fluid")
|
||||||
|
start profiler_daemon;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
"msm8960")
|
||||||
|
case "$baseband" in
|
||||||
|
"msm")
|
||||||
|
start_battery_monitor;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if [ -f /sys/devices/soc0/hw_platform ]; then
|
||||||
|
platformvalue=`cat /sys/devices/soc0/hw_platform`
|
||||||
|
else
|
||||||
|
platformvalue=`cat /sys/devices/system/soc/soc0/hw_platform`
|
||||||
|
fi
|
||||||
|
case "$platformvalue" in
|
||||||
|
"Fluid")
|
||||||
|
start profiler_daemon;;
|
||||||
|
"Liquid")
|
||||||
|
start profiler_daemon;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
"msm8974")
|
||||||
|
platformvalue=`cat /sys/devices/soc0/hw_platform`
|
||||||
|
case "$platformvalue" in
|
||||||
|
"Fluid")
|
||||||
|
start profiler_daemon;;
|
||||||
|
"Liquid")
|
||||||
|
start profiler_daemon;;
|
||||||
|
esac
|
||||||
|
case "$baseband" in
|
||||||
|
"msm")
|
||||||
|
start_battery_monitor
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
start_charger_monitor
|
||||||
|
;;
|
||||||
|
"sdm660")
|
||||||
|
if [ -f /sys/devices/soc0/soc_id ]; then
|
||||||
|
soc_id=`cat /sys/devices/soc0/soc_id`
|
||||||
|
else
|
||||||
|
soc_id=`cat /sys/devices/system/soc/soc0/id`
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f /sys/devices/soc0/hw_platform ]; then
|
||||||
|
hw_platform=`cat /sys/devices/soc0/hw_platform`
|
||||||
|
else
|
||||||
|
hw_platform=`cat /sys/devices/system/soc/soc0/hw_platform`
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$soc_id" in
|
||||||
|
"317" | "324" | "325" | "326" | "318" | "327" )
|
||||||
|
case "$hw_platform" in
|
||||||
|
"Surf")
|
||||||
|
setprop qemu.hw.mainkeys 0
|
||||||
|
;;
|
||||||
|
"MTP")
|
||||||
|
setprop qemu.hw.mainkeys 0
|
||||||
|
;;
|
||||||
|
"RCM")
|
||||||
|
setprop qemu.hw.mainkeys 0
|
||||||
|
;;
|
||||||
|
"QRD")
|
||||||
|
setprop qemu.hw.mainkeys 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
start_msm_irqbalance660
|
||||||
|
;;
|
||||||
|
"apq8084")
|
||||||
|
platformvalue=`cat /sys/devices/soc0/hw_platform`
|
||||||
|
case "$platformvalue" in
|
||||||
|
"Fluid")
|
||||||
|
start profiler_daemon;;
|
||||||
|
"Liquid")
|
||||||
|
start profiler_daemon;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
"msm8226")
|
||||||
|
start_charger_monitor
|
||||||
|
;;
|
||||||
|
"msm8610")
|
||||||
|
start_charger_monitor
|
||||||
|
;;
|
||||||
|
"msm8916")
|
||||||
|
start_vm_bms
|
||||||
|
start_msm_irqbalance_8939
|
||||||
|
if [ -f /sys/devices/soc0/soc_id ]; then
|
||||||
|
soc_id=`cat /sys/devices/soc0/soc_id`
|
||||||
|
else
|
||||||
|
soc_id=`cat /sys/devices/system/soc/soc0/id`
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f /sys/devices/soc0/platform_subtype_id ]; then
|
||||||
|
platform_subtype_id=`cat /sys/devices/soc0/platform_subtype_id`
|
||||||
|
fi
|
||||||
|
if [ -f /sys/devices/soc0/hw_platform ]; then
|
||||||
|
hw_platform=`cat /sys/devices/soc0/hw_platform`
|
||||||
|
fi
|
||||||
|
case "$soc_id" in
|
||||||
|
"239")
|
||||||
|
case "$hw_platform" in
|
||||||
|
"Surf")
|
||||||
|
case "$platform_subtype_id" in
|
||||||
|
"1")
|
||||||
|
setprop qemu.hw.mainkeys 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
"MTP")
|
||||||
|
case "$platform_subtype_id" in
|
||||||
|
"3")
|
||||||
|
setprop qemu.hw.mainkeys 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
"msm8994" | "msm8992" | "msm8998" | "apq8098_latv" | "sdm845" | "sdm710" | "qcs605" | "sm6150" | "trinket" | "bengal")
|
||||||
|
start_msm_irqbalance
|
||||||
|
;;
|
||||||
|
"msm8996")
|
||||||
|
if [ -f /sys/devices/soc0/hw_platform ]; then
|
||||||
|
hw_platform=`cat /sys/devices/soc0/hw_platform`
|
||||||
|
fi
|
||||||
|
case "$hw_platform" in
|
||||||
|
"MTP" | "CDP")
|
||||||
|
#Loop through the sysfs nodes and determine the correct sysfs to change the permission and ownership.
|
||||||
|
for count in 0 1 2 3 4 5 6 7 8 9 10
|
||||||
|
do
|
||||||
|
dir="/sys/devices/soc/75ba000.i2c/i2c-12/12-0020/input/input"$count
|
||||||
|
if [ -d "$dir" ]; then
|
||||||
|
chmod 0660 $dir/secure_touch_enable
|
||||||
|
chmod 0440 $dir/secure_touch
|
||||||
|
chown system.drmrpc $dir/secure_touch_enable
|
||||||
|
chown system.drmrpc $dir/secure_touch
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
"msm8909")
|
||||||
|
start_vm_bms
|
||||||
|
;;
|
||||||
|
"msmnile")
|
||||||
|
start_msm_irqbalance_msmnile
|
||||||
|
;;
|
||||||
|
"kona")
|
||||||
|
start_msm_irqbalance_kona
|
||||||
|
;;
|
||||||
|
"lito")
|
||||||
|
start_msm_irqbalance_lito
|
||||||
|
;;
|
||||||
|
"atoll")
|
||||||
|
start_msm_irqbalance_atoll
|
||||||
|
;;
|
||||||
|
"msm8937")
|
||||||
|
start_msm_irqbalance_8939
|
||||||
|
if [ -f /sys/devices/soc0/soc_id ]; then
|
||||||
|
soc_id=`cat /sys/devices/soc0/soc_id`
|
||||||
|
else
|
||||||
|
soc_id=`cat /sys/devices/system/soc/soc0/id`
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f /sys/devices/soc0/hw_platform ]; then
|
||||||
|
hw_platform=`cat /sys/devices/soc0/hw_platform`
|
||||||
|
else
|
||||||
|
hw_platform=`cat /sys/devices/system/soc/soc0/hw_platform`
|
||||||
|
fi
|
||||||
|
if [ "$low_ram" != "true" ]; then
|
||||||
|
case "$soc_id" in
|
||||||
|
"294" | "295" | "303" | "307" | "308" | "309" | "313" | "320" | "353" | "354" | "363" | "364")
|
||||||
|
case "$hw_platform" in
|
||||||
|
"Surf")
|
||||||
|
setprop qemu.hw.mainkeys 0
|
||||||
|
;;
|
||||||
|
"MTP")
|
||||||
|
setprop qemu.hw.mainkeys 0
|
||||||
|
;;
|
||||||
|
"RCM")
|
||||||
|
setprop qemu.hw.mainkeys 0
|
||||||
|
;;
|
||||||
|
"QRD")
|
||||||
|
setprop qemu.hw.mainkeys 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
"msm8953")
|
||||||
|
start_msm_irqbalance_8939
|
||||||
|
if [ -f /sys/devices/soc0/soc_id ]; then
|
||||||
|
soc_id=`cat /sys/devices/soc0/soc_id`
|
||||||
|
else
|
||||||
|
soc_id=`cat /sys/devices/system/soc/soc0/id`
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f /sys/devices/soc0/hw_platform ]; then
|
||||||
|
hw_platform=`cat /sys/devices/soc0/hw_platform`
|
||||||
|
else
|
||||||
|
hw_platform=`cat /sys/devices/system/soc/soc0/hw_platform`
|
||||||
|
fi
|
||||||
|
case "$soc_id" in
|
||||||
|
"293" | "304" | "338" | "351" | "349" | "350" )
|
||||||
|
case "$hw_platform" in
|
||||||
|
"Surf")
|
||||||
|
setprop qemu.hw.mainkeys 0
|
||||||
|
;;
|
||||||
|
"MTP")
|
||||||
|
setprop qemu.hw.mainkeys 0
|
||||||
|
;;
|
||||||
|
"RCM")
|
||||||
|
setprop qemu.hw.mainkeys 0
|
||||||
|
;;
|
||||||
|
"QRD")
|
||||||
|
setprop qemu.hw.mainkeys 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
"sdm710")
|
||||||
|
if [ -f /sys/devices/soc0/soc_id ]; then
|
||||||
|
soc_id=`cat /sys/devices/soc0/soc_id`
|
||||||
|
else
|
||||||
|
soc_id=`cat /sys/devices/system/soc/soc0/id`
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f /sys/devices/soc0/hw_platform ]; then
|
||||||
|
hw_platform=`cat /sys/devices/soc0/hw_platform`
|
||||||
|
else
|
||||||
|
hw_platform=`cat /sys/devices/system/soc/soc0/hw_platform`
|
||||||
|
fi
|
||||||
|
case "$soc_id" in
|
||||||
|
"336" | "337" | "347" | "360" | "393" )
|
||||||
|
case "$hw_platform" in
|
||||||
|
"Surf")
|
||||||
|
setprop qemu.hw.mainkeys 0
|
||||||
|
;;
|
||||||
|
"MTP")
|
||||||
|
setprop qemu.hw.mainkeys 0
|
||||||
|
;;
|
||||||
|
"RCM")
|
||||||
|
setprop qemu.hw.mainkeys 0
|
||||||
|
;;
|
||||||
|
"QRD")
|
||||||
|
setprop qemu.hw.mainkeys 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
#
|
||||||
|
# Make modem config folder and copy firmware config to that folder for RIL
|
||||||
|
#
|
||||||
|
if [ -f /data/vendor/modem_config/ver_info.txt ]; then
|
||||||
|
prev_version_info=`cat /data/vendor/modem_config/ver_info.txt`
|
||||||
|
else
|
||||||
|
prev_version_info=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
cur_version_info=`cat /vendor/firmware_mnt/verinfo/ver_info.txt`
|
||||||
|
if [ ! -f /vendor/firmware_mnt/verinfo/ver_info.txt -o "$prev_version_info" != "$cur_version_info" ]; then
|
||||||
|
# add W for group recursively before delete
|
||||||
|
chmod g+w -R /data/vendor/modem_config/*
|
||||||
|
rm -rf /data/vendor/modem_config/*
|
||||||
|
# preserve the read only mode for all subdir and files
|
||||||
|
cp --preserve=m -dr /vendor/firmware_mnt/image/modem_pr/mcfg/configs/* /data/vendor/modem_config
|
||||||
|
cp --preserve=m -d /vendor/firmware_mnt/verinfo/ver_info.txt /data/vendor/modem_config/
|
||||||
|
cp --preserve=m -d /vendor/firmware_mnt/image/modem_pr/mbn_ota.txt /data/vendor/modem_config/
|
||||||
|
# the group must be root, otherwise this script could not add "W" for group recursively
|
||||||
|
chown -hR radio.root /data/vendor/modem_config/*
|
||||||
|
fi
|
||||||
|
chmod g-w /data/vendor/modem_config
|
||||||
|
setprop ro.vendor.ril.mbn_copy_completed 1
|
||||||
|
|
||||||
|
#check build variant for printk logging
|
||||||
|
#current default minimum boot-time-default
|
||||||
|
buildvariant=`getprop ro.build.type`
|
||||||
|
case "$buildvariant" in
|
||||||
|
"userdebug" | "eng")
|
||||||
|
#set default loglevel to KERN_INFO
|
||||||
|
echo "7 6 1 7" > /proc/sys/kernel/printk
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
#set default loglevel to KERN_WARNING
|
||||||
|
echo "4 4 1 4" > /proc/sys/kernel/printk
|
||||||
|
;;
|
||||||
|
esac
|
29
rootdir/bin/init.qti.chg_policy.sh
Normal file
29
rootdir/bin/init.qti.chg_policy.sh
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
#! /vendor/bin/sh
|
||||||
|
|
||||||
|
#
|
||||||
|
# Copyright (c) 2019 Qualcomm Technologies, Inc.
|
||||||
|
# All Rights Reserved.
|
||||||
|
# Confidential and Proprietary - Qualcomm Technologies, Inc.
|
||||||
|
#
|
||||||
|
# Copyright (c) 2019 The Linux Foundation. All rights reserved.
|
||||||
|
#
|
||||||
|
|
||||||
|
export PATH=/vendor/bin
|
||||||
|
|
||||||
|
prefix="/sys/class/"
|
||||||
|
#List of folder for ownership update
|
||||||
|
arr=( "power_supply/battery/" "power_supply/usb/" "power_supply/main/" "power_supply/charge_pump_master/" "power_supply/pc_port/" "power_supply/dc/" "power_supply/bms/" "power_supply/parallel/" "usbpd/usbpd0/" "qc-vdm/" "charge_pump/" "qcom-battery/" )
|
||||||
|
for i in "${arr[@]}"
|
||||||
|
do
|
||||||
|
for j in `ls "$prefix""$i"`
|
||||||
|
do
|
||||||
|
#skip directories to prevent possible security issues.
|
||||||
|
if [[ -d "$prefix""$i""$j" ]]
|
||||||
|
then
|
||||||
|
continue
|
||||||
|
else
|
||||||
|
chown -h system.system "$prefix""$i""$j"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
done
|
||||||
|
setprop persist.vendor.hvdcp_opti.start 1
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue