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