diff options
| author | Mister Oyster <oysterized@gmail.com> | 2017-01-02 12:44:35 +0100 |
|---|---|---|
| committer | Mister Oyster <oysterized@gmail.com> | 2017-01-02 12:44:35 +0100 |
| commit | a184d985bf43d3fe6eeba971bc6b32f79ea38b37 (patch) | |
| tree | 6f6e56e090777cc149bc1ab39e5987cc2b03e867 /configs | |
initial releasecm-13.0
Diffstat (limited to 'configs')
27 files changed, 4513 insertions, 0 deletions
diff --git a/configs/android.hardware.microphone.xml b/configs/android.hardware.microphone.xml new file mode 100755 index 0000000..364e4ee --- /dev/null +++ b/configs/android.hardware.microphone.xml @@ -0,0 +1,20 @@ +<?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. +--> + +<!-- This is the standard feature indicating that the device includes microphone. --> +<permissions> + <feature name="android.hardware.microphone" /> +</permissions> diff --git a/configs/audio/audio_device.xml b/configs/audio/audio_device.xml new file mode 100755 index 0000000..921af1d --- /dev/null +++ b/configs/audio/audio_device.xml @@ -0,0 +1,258 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<mixercontrol> + <versioncontrol value="1.01"> + </versioncontrol> + <!-- These are the initial mixer settings --> + <kctl name="Audio_Speaker_class_Switch" value="CLASSAB" /> + <kctl name="Audio_Amp_R_Switch" value="Off" /> + <kctl name="Audio_Amp_L_Switch" value="Off" /> + <kctl name="Voice_Amp_Switch" value="Off" /> + <kctl name="Speaker_Amp_Switch" value="Off" /> + <kctl name="Audio_ADC_1_Switch" value="Off" /> + <kctl name="Audio_ADC_2_Switch" value="Off" /> + <kctl name="Audio_Preamp1_Switch" value="OPEN" /> + <kctl name="Audio_Preamp2_Switch" value="OPEN" /> + <kctl name="Ext_Speaker_Amp_Switch" value="Off" /> + <kctl name="Audio_Sidetone_Switch" value="Off" /> + <kctl name="Headset_Speaker_Amp_Switch" value="Off" /> + <!--headphone output--> + <path name="headphone_output" value="turnon"> + <kctl name="Audio_Amp_R_Switch" value="On" /> + <kctl name="Audio_Amp_L_Switch" value="On" /> + </path> + <path name="headphone_output" value="turnoff"> + <kctl name="Audio_Amp_R_Switch" value="Off" /> + <kctl name="Audio_Amp_L_Switch" value="Off" /> + </path> + <!--receiver output--> + <path name="receiver_output" value="turnon"> + <kctl name="Voice_Amp_Switch" value="On" /> + </path> + <path name="receiver_output" value="turnoff"> + <kctl name="Voice_Amp_Switch" value="Off" /> + </path> + <!-- 2-in-1 speaker output--> + <path name="two_in_one_speaker_output" value="turnon"> + <kctl name="Speaker_Amp_Switch" value="On" /> + <kctl name="Audio_Speaker_class_Switch" value="CLASSAB" /> + </path> + <path name="two_in_one_speaker_output" value="turnoff"> + <kctl name="Audio_Speaker_class_Switch" value="RECEIVER" /> + <kctl name="Speaker_Amp_Switch" value="Off" /> + </path> + <!--speaker output--> + <path name="speaker_output" value="turnon"> + <kctl name="Speaker_Amp_Switch" value="On" /> + </path> + <path name="speaker_output" value="turnoff"> + <kctl name="Speaker_Amp_Switch" value="Off" /> + </path> + <!--headhpone_speaker output--> + <path name="headphoneSpeaker_output" value="turnon"> + <kctl name="Headset_Speaker_Amp_Switch" value="On" /> + </path> + <path name="headphoneSpeaker_output" value="turnoff"> + <kctl name="Headset_Speaker_Amp_Switch" value="Off" /> + </path> + <!--external_speaker output--> + <path name="ext_speaker_output" value="turnon"> + <kctl name="Ext_Speaker_Amp_Switch" value="On" /> + </path> + <path name="ext_speaker_output" value="turnoff"> + <kctl name="Ext_Speaker_Amp_Switch" value="Off" /> + </path> + <!--mic setting--> + <path name="builtin_Mic_Mic1" value="turnon"> + <kctl name="Audio_MicSource1_Setting" value="ADC1" /> + <kctl name="Audio_ADC_1_Switch" value="On" /> + <kctl name="Audio_ADC_2_Switch" value="On" /> + <kctl name="Audio_Preamp1_Switch" value="IN_ADC1" /> + <kctl name="Audio_Preamp2_Switch" value="IN_ADC1" /> + </path> + <path name="builtin_Mic_Mic1" value="turnoff"> + <kctl name="Audio_Preamp1_Switch" value="OPEN" /> + <kctl name="Audio_Preamp2_Switch" value="OPEN" /> + <kctl name="Audio_ADC_1_Switch" value="Off" /> + <kctl name="Audio_ADC_2_Switch" value="Off" /> + </path> + <path name="builtin_Mic_Mic1_Inverse" value="turnon"> + <kctl name="Audio_MicSource1_Setting" value="ADC1" /> + <kctl name="Audio_ADC_1_Switch" value="On" /> + <kctl name="Audio_ADC_2_Switch" value="On" /> + <kctl name="Audio_Preamp1_Switch" value="IN_ADC3" /> + <kctl name="Audio_Preamp2_Switch" value="IN_ADC3" /> + </path> + <path name="builtin_Mic_Mic1_Inverse" value="turnoff"> + <kctl name="Audio_Preamp1_Switch" value="OPEN" /> + <kctl name="Audio_Preamp2_Switch" value="OPEN" /> + <kctl name="Audio_ADC_1_Switch" value="Off" /> + <kctl name="Audio_ADC_2_Switch" value="Off" /> + </path> + <path name="builtin_Mic_Mic2" value="turnon"> + <kctl name="Audio_MicSource1_Setting" value="ADC1" /> + <kctl name="Audio_ADC_1_Switch" value="On" /> + <kctl name="Audio_ADC_2_Switch" value="On" /> + <kctl name="Audio_Preamp1_Switch" value="IN_ADC3" /> + <kctl name="Audio_Preamp2_Switch" value="IN_ADC3" /> + </path> + <path name="builtin_Mic_Mic2" value="turnoff"> + <kctl name="Audio_Preamp1_Switch" value="OPEN" /> + <kctl name="Audio_Preamp2_Switch" value="OPEN" /> + <kctl name="Audio_ADC_1_Switch" value="Off" /> + <kctl name="Audio_ADC_2_Switch" value="Off" /> + </path> + <path name="builtin_Mic_Mic2_Inverse" value="turnon"> + <kctl name="Audio_MicSource1_Setting" value="ADC1" /> + <kctl name="Audio_ADC_1_Switch" value="On" /> + <kctl name="Audio_ADC_2_Switch" value="On" /> + <kctl name="Audio_Preamp1_Switch" value="IN_ADC1" /> + <kctl name="Audio_Preamp2_Switch" value="IN_ADC1" /> + </path> + <path name="builtin_Mic_Mic2_Inverse" value="turnoff"> + <kctl name="Audio_Preamp1_Switch" value="OPEN" /> + <kctl name="Audio_Preamp2_Switch" value="OPEN" /> + <kctl name="Audio_ADC_1_Switch" value="Off" /> + <kctl name="Audio_ADC_2_Switch" value="Off" /> + </path> + <path name="builtin_Mic_SingleMic" value="turnon"> + <kctl name="Audio_MicSource1_Setting" value="ADC1" /> + <kctl name="Audio_ADC_1_Switch" value="On" /> + <kctl name="Audio_Preamp1_Switch" value="IN_ADC1" /> + <kctl name="Audio_Preamp2_Switch" value="IN_ADC1" /> + </path> + <path name="builtin_Mic_SingleMic" value="turnoff"> + <kctl name="Audio_Preamp1_Switch" value="OPEN" /> + <kctl name="Audio_Preamp2_Switch" value="OPEN" /> + <kctl name="Audio_ADC_1_Switch" value="Off" /> + </path> + <path name="builtin_Mic_DualMic" value="turnon"> + <kctl name="Audio_MicSource1_Setting" value="ADC1" /> + <kctl name="Audio_ADC_1_Switch" value="On" /> + <kctl name="Audio_ADC_2_Switch" value="On" /> + <kctl name="Audio_Preamp1_Switch" value="IN_ADC1" /> + <kctl name="Audio_Preamp2_Switch" value="IN_ADC3" /> + </path> + <path name="builtin_Mic_DualMic" value="turnoff"> + <kctl name="Audio_Preamp1_Switch" value="OPEN" /> + <kctl name="Audio_Preamp2_Switch" value="OPEN" /> + <kctl name="Audio_ADC_1_Switch" value="Off" /> + <kctl name="Audio_ADC_2_Switch" value="Off" /> + </path> + <path name="builtin_Mic_BackMic" value="turnon"> + <kctl name="Audio_MicSource1_Setting" value="ADC1" /> + <kctl name="Audio_ADC_1_Switch" value="On" /> + <kctl name="Audio_ADC_2_Switch" value="On" /> + <kctl name="Audio_Preamp1_Switch" value="IN_ADC3" /> + <kctl name="Audio_Preamp2_Switch" value="IN_ADC3" /> + </path> + <path name="builtin_Mic_BackMic" value="turnoff"> + <kctl name="Audio_Preamp1_Switch" value="OPEN" /> + <kctl name="Audio_Preamp2_Switch" value="OPEN" /> + <kctl name="Audio_ADC_1_Switch" value="Off" /> + <kctl name="Audio_ADC_2_Switch" value="Off" /> + </path> + <path name="builtin_Mic_BackMic_Inverse" value="turnon"> + <kctl name="Audio_MicSource1_Setting" value="ADC1" /> + <kctl name="Audio_ADC_1_Switch" value="On" /> + <kctl name="Audio_ADC_2_Switch" value="On" /> + <kctl name="Audio_Preamp1_Switch" value="IN_ADC1" /> + <kctl name="Audio_Preamp2_Switch" value="IN_ADC1" /> + </path> + <path name="builtin_Mic_BackMic_Inverse" value="turnoff"> + <kctl name="Audio_Preamp1_Switch" value="OPEN" /> + <kctl name="Audio_Preamp2_Switch" value="OPEN" /> + <kctl name="Audio_ADC_1_Switch" value="Off" /> + <kctl name="Audio_ADC_2_Switch" value="Off" /> + </path> + <path name="headset_mic_input" value="turnon"> + <kctl name="Audio_MicSource1_Setting" value="ADC2" /> + <kctl name="Audio_ADC_1_Switch" value="On" /> + <kctl name="Audio_ADC_2_Switch" value="On" /> + <kctl name="Audio_Preamp1_Switch" value="IN_ADC2" /> + <kctl name="Audio_Preamp2_Switch" value="IN_ADC2" /> + </path> + <path name="headset_mic_input" value="turnoff"> + <kctl name="Audio_Preamp1_Switch" value="OPEN" /> + <kctl name="Audio_Preamp2_Switch" value="OPEN" /> + <kctl name="Audio_ADC_1_Switch" value="Off" /> + <kctl name="Audio_ADC_2_Switch" value="Off" /> + </path> + <path name="sidetone_switch" value="turnon"> + <kctl name="Audio_Sidetone_Switch" value="On" /> + </path> + <path name="sidetone_switch" value="turnoff"> + <kctl name="Audio_Sidetone_Switch" value="Off" /> + </path> + <!--mic1 type setting--> + <path name="Mic1TypeACCMode" value="setting"> + <kctl name="Audio_MIC1_Mode_Select" value="ACCMODE" />> + </path> + <path name="Mic1TypeDCCMode" value="setting"> + <kctl name="Audio_MIC1_Mode_Select" value="DCCMODE" />> + </path> + <path name="Mic1TypeDMICMode" value="setting"> + <kctl name="Audio_MIC1_Mode_Select" value="DMIC" />> + </path> + <path name="Mic1TypeDCCECMDIFFMode" value="setting"> + <kctl name="Audio_MIC1_Mode_Select" value="DCCECMDIFFMODE" />> + </path> + <path name="Mic1TypeDCCECMSINGLEMode" value="setting"> + <kctl name="Audio_MIC1_Mode_Select" value="DCCECMSINGLEMODE" />> + </path> + <!--mic2 type setting--> + <path name="Mic2TypeACCMode" value="setting"> + <kctl name="Audio_MIC2_Mode_Select" value="ACCMODE" />> + </path> + <path name="Mic2TypeDCCMode" value="setting"> + <kctl name="Audio_MIC2_Mode_Select" value="DCCMODE" />> + </path> + <path name="Mic2TypeDMICMode" value="setting"> + <kctl name="Audio_MIC2_Mode_Select" value="DMIC" />> + </path> + <path name="Mic2TypeDCCECMDIFFMode" value="setting"> + <kctl name="Audio_MIC2_Mode_Select" value="DCCECMDIFFMODE" />> + </path> + <path name="Mic2TypeDCCECMSINGLEMode" value="setting"> + <kctl name="Audio_MIC2_Mode_Select" value="DCCECMSINGLEMODE" />> + </path> + <!--mic3 type setting--> + <path name="Mic3TypeACCMode" value="setting"> + <kctl name="Audio_MIC3_Mode_Select" value="ACCMODE" />> + </path> + <path name="Mic3TypeDCCMode" value="setting"> + <kctl name="Audio_MIC3_Mode_Select" value="DCCMODE" />> + </path> + <path name="Mic3TypeDMICMode" value="setting"> + <kctl name="Audio_MIC3_Mode_Select" value="DMIC" />> + </path> + <path name="Mic3TypeDCCECMDIFFMode" value="setting"> + <kctl name="Audio_MIC3_Mode_Select" value="DCCECMDIFFMODE" />> + </path> + <path name="Mic3TypeDCCECMSINGLEMode" value="setting"> + <kctl name="Audio_MIC3_Mode_Select" value="DCCECMSINGLEMODE" />> + </path> + <!--mic4 type setting--> + <path name="Mic4TypeACCMode" value="setting"> + <kctl name="Audio_MIC4_Mode_Select" value="ACCMODE" />> + </path> + <path name="Mic4TypeDCCMode" value="setting"> + <kctl name="Audio_MIC4_Mode_Select" value="DCCMODE" />> + </path> + <path name="Mic4TypeDMICMode" value="setting"> + <kctl name="Audio_MIC4_Mode_Select" value="DMIC" />> + </path> + <path name="Mic4TypeDCCECMDIFFMode" value="setting"> + <kctl name="Audio_MIC4_Mode_Select" value="DCCECMDIFFMODE" />> + </path> + <path name="Mic4TypeDCCECMSINGLEMode" value="setting"> + <kctl name="Audio_MIC4_Mode_Select" value="DCCECMSINGLEMODE" />> + </path> + <path name="Mic_Setting_Inverse" value="setting"> + <kctl name="Audio_Preamp1_Switch" value="IN_ADC3" />> + <kctl name="Audio_Preamp2_Switch" value="IN_ADC1" />> + </path> + <path name="Mic_Setting_NoInverse" value="setting"> + <kctl name="Audio_Preamp1_Switch" value="IN_ADC1" />> + <kctl name="Audio_Preamp2_Switch" value="IN_ADC3" />> + </path> +</mixercontrol> diff --git a/configs/audio/audio_effects.conf b/configs/audio/audio_effects.conf new file mode 100644 index 0000000..bd5e4c0 --- /dev/null +++ b/configs/audio/audio_effects.conf @@ -0,0 +1,186 @@ +# List of effect libraries to load. Each library element must contain a "path" element +# giving the full path of the library .so file. +# libraries { +# <lib name> { +# path <lib path> +# } +# } +libraries { +# This is a proxy library that will be an abstraction for +# the HW and SW effects + + #proxy { + #path /system/lib/soundfx/libeffectproxy.so + #} + +# This is the SW implementation library of the effect + #libSW { + #path /system/lib/soundfx/libswwrapper.so + #} + +# This is the HW implementation library for the effect + #libHW { + #path /system/lib/soundfx/libhwwrapper.so + #} + + bundle { + path /system/lib/soundfx/libbundlewrapper.so + } + reverb { + path /system/lib/soundfx/libreverbwrapper.so + } + visualizer { + path /system/lib/soundfx/libvisualizer.so + } + downmix { + path /system/lib/soundfx/libdownmix.so + } + loudness_enhancer { + path /system/lib/soundfx/libldnhncr.so + } + pre_processing { + path /system/lib/soundfx/libaudiopreprocessing.so + } +} + +# Default pre-processing library. Add to audio_effect.conf "libraries" section if +# audio HAL implements support for default software audio pre-processing effects +# +# pre_processing { +# path /system/lib/soundfx/libaudiopreprocessing.so +# } + +# list of effects to load. Each effect element must contain a "library" and a "uuid" element. +# The value of the "library" element must correspond to the name of one library element in the +# "libraries" element. +# The name of the effect element is indicative, only the value of the "uuid" element +# designates the effect. +# The uuid is the implementation specific UUID as specified by the effect vendor. This is not the +# generic effect type UUID. +# effects { +# <fx name> { +# library <lib name> +# uuid <effect uuid> +# } +# ... +# } + +effects { + +# additions for the proxy implementation +# Proxy implementation + #effectname { + #library proxy + #uuid xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx + + # SW implemetation of the effect. Added as a node under the proxy to + # indicate this as a sub effect. + #libsw { + #library libSW + #uuid yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy + #} End of SW effect + + # HW implementation of the effect. Added as a node under the proxy to + # indicate this as a sub effect. + #libhw { + #library libHW + #uuid zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz + #}End of HW effect + #} End of effect proxy + + bassboost { + library bundle + uuid 8631f300-72e2-11df-b57e-0002a5d5c51b + } + virtualizer { + library bundle + uuid 1d4033c0-8557-11df-9f2d-0002a5d5c51b + } + equalizer { + library bundle + uuid ce772f20-847d-11df-bb17-0002a5d5c51b + } + volume { + library bundle + uuid 119341a0-8469-11df-81f9-0002a5d5c51b + } + reverb_env_aux { + library reverb + uuid 4a387fc0-8ab3-11df-8bad-0002a5d5c51b + } + reverb_env_ins { + library reverb + uuid c7a511a0-a3bb-11df-860e-0002a5d5c51b + } + reverb_pre_aux { + library reverb + uuid f29a1400-a3bb-11df-8ddc-0002a5d5c51b + } + reverb_pre_ins { + library reverb + uuid 172cdf00-a3bc-11df-a72f-0002a5d5c51b + } + visualizer { + library visualizer + uuid d069d9e0-8329-11df-9168-0002a5d5c51b + } + downmix { + library downmix + uuid 93f04452-e4fe-41cc-91f9-e475b6d1d69f + } + loudness_enhancer { + library loudness_enhancer + uuid fa415329-2034-4bea-b5dc-5b381c8d1e2c + } + agc { + library pre_processing + uuid aa8130e0-66fc-11e0-bad0-0002a5d5c51b + } + aec { + library pre_processing + uuid bb392ec0-8d4d-11e0-a896-0002a5d5c51b + } + ns { + library pre_processing + uuid c06c8400-8e06-11e0-9cb6-0002a5d5c51b + } +} +# Audio preprocessor configurations. +# The pre processor configuration consists in a list of elements each describing +# pre processor settings for a given input source. Valid input source names are: +# "mic", "camcorder", "voice_recognition", "voice_communication" +# Each input source element contains a list of effects elements. The name of the effect +# element must be the name of one of the effects in the "effects" list of the file. +# Each effect element may optionally contain a list of parameters and their +# default value to apply when the pre processor effect is created. +# A parameter is defined by a "param" element and a "value" element. Each of these elements +# consists in one or more elements specifying a type followed by a value. +# The types defined are: "int", "short", "float", "bool" and "string" +# When both "param" and "value" are a single int, a simple form is allowed where just +# the param and value pair is present in the parameter description +# pre_processing { +# <input source name> { +# <fx name> { +# <param 1 name> { +# param { +# int|short|float|bool|string <value> +# [ int|short|float|bool|string <value> ] +# ... +# } +# value { +# int|short|float|bool|string <value> +# [ int|short|float|bool|string <value> ] +# ... +# } +# } +# <param 2 name > {<param> <value>} +# ... +# } +# ... +# } +# ... +# } + +# +# TODO: add default audio pre processor configurations after debug and tuning phase +# diff --git a/configs/audio/audio_policy.conf b/configs/audio/audio_policy.conf new file mode 100644 index 0000000..a304c2b --- /dev/null +++ b/configs/audio/audio_policy.conf @@ -0,0 +1,167 @@ +# +# Audio policy configuration for generic device builds (goldfish audio HAL - emulator) +# + +# Global configuration section: lists input and output devices always present on the device +# as well as the output device selected by default. +# Devices are designated by a string that corresponds to the enum in audio.h + +#global_configuration { +# attached_output_devices AUDIO_DEVICE_OUT_SPEAKER|AUDIO_DEVICE_OUT_EARPIECE +# default_output_device AUDIO_DEVICE_OUT_SPEAKER +# attached_input_devices AUDIO_DEVICE_IN_BUILTIN_MIC|AUDIO_DEVICE_IN_REMOTE_SUBMIX|AUDIO_DEVICE_IN_FM +#} + +# audio hardware module section: contains descriptors for all audio hw modules present on the +# device. Each hw module node is named after the corresponding hw module library base name. +# For instance, "primary" corresponds to audio.primary.<device>.so. +# The "primary" module is mandatory and must include at least one output with +# AUDIO_OUTPUT_FLAG_PRIMARY flag. +# Each module descriptor contains one or more output profile descriptors and zero or more +# input profile descriptors. Each profile lists all the parameters supported by a given output +# or input stream category. +# The "channel_masks", "formats", "devices" and "flags" are specified using strings corresponding +# to enums in audio.h and audio_policy.h. They are concatenated by use of "|" without space or "\n". + +audio_hw_modules { + primary { + global_configuration { + attached_output_devices AUDIO_DEVICE_OUT_SPEAKER|AUDIO_DEVICE_OUT_EARPIECE + default_output_device AUDIO_DEVICE_OUT_SPEAKER + attached_input_devices AUDIO_DEVICE_IN_BUILTIN_MIC|AUDIO_DEVICE_IN_FM|AUDIO_DEVICE_IN_VOICE_CALL + audio_hal_version 3.0 + } + devices { + headset { + type AUDIO_DEVICE_OUT_WIRED_HEADSET + gains { + gain_1 { + mode AUDIO_GAIN_MODE_JOINT + channel_mask AUDIO_CHANNEL_OUT_STEREO + min_value_mB -6400 + max_value_mB 0 + default_value_mB 0 + step_value_mB 100 + min_ramp_ms 0 + max_ramp_ms 0 + } + } + } + headphone { + type AUDIO_DEVICE_OUT_WIRED_HEADPHONE + gains { + gain_1 { + mode AUDIO_GAIN_MODE_JOINT + channel_mask AUDIO_CHANNEL_OUT_STEREO + min_value_mB -6400 + max_value_mB 0 + default_value_mB 0 + step_value_mB 100 + min_ramp_ms 0 + max_ramp_ms 0 + } + } + } + } + outputs { + primary { + sampling_rates 44100 + channel_masks AUDIO_CHANNEL_OUT_STEREO + formats AUDIO_FORMAT_PCM_16_BIT + devices AUDIO_DEVICE_OUT_EARPIECE|AUDIO_DEVICE_OUT_SPEAKER|AUDIO_DEVICE_OUT_WIRED_HEADSET|AUDIO_DEVICE_OUT_WIRED_HEADPHONE|AUDIO_DEVICE_OUT_AUX_DIGITAL|AUDIO_DEVICE_OUT_ANLG_DOCK_HEADSET|AUDIO_DEVICE_OUT_DGTL_DOCK_HEADSET|AUDIO_DEVICE_OUT_ALL_SCO|AUDIO_DEVICE_OUT_FM_TX|AUDIO_DEVICE_OUT_DEFAULT + flags AUDIO_OUTPUT_FLAG_PRIMARY + gains { + gain_1 { + mode AUDIO_GAIN_MODE_JOINT + channel_mask AUDIO_CHANNEL_OUT_STEREO + min_value_mB -6400 + max_value_mB 0 + default_value_mB 0 + step_value_mB 100 + min_ramp_ms 0 + max_ramp_ms 0 + } + } + } + } + inputs { + primary { + # MTK ;-) + sampling_rates 48000 + channel_masks AUDIO_CHANNEL_IN_STEREO + formats AUDIO_FORMAT_PCM_16_BIT + devices AUDIO_DEVICE_IN_COMMUNICATION|AUDIO_DEVICE_IN_BUILTIN_MIC|AUDIO_DEVICE_IN_AMBIENT|AUDIO_DEVICE_IN_WIRED_HEADSET|AUDIO_DEVICE_IN_AUX_DIGITAL|AUDIO_DEVICE_IN_MATV|AUDIO_DEVICE_IN_VOICE_CALL|AUDIO_DEVICE_IN_BACK_MIC|AUDIO_DEVICE_IN_ALL_SCO|AUDIO_DEVICE_IN_FM|AUDIO_DEVICE_IN_DEFAULT + } + } + } + a2dp { + global_configuration { + audio_hal_version 2.0 + } + outputs { + a2dp { + sampling_rates 44100 + channel_masks AUDIO_CHANNEL_OUT_STEREO + formats AUDIO_FORMAT_PCM_16_BIT + devices AUDIO_DEVICE_OUT_ALL_A2DP + } + } + inputs { + a2dp { + sampling_rates 44100 + channel_masks AUDIO_CHANNEL_IN_STEREO + formats AUDIO_FORMAT_PCM_16_BIT + devices AUDIO_DEVICE_IN_BLUETOOTH_A2DP + } + } + } + usb { + global_configuration { + audio_hal_version 2.0 + } + outputs { + usb_accessory { + sampling_rates 44100 + channel_masks AUDIO_CHANNEL_OUT_STEREO + formats AUDIO_FORMAT_PCM_16_BIT + devices AUDIO_DEVICE_OUT_USB_ACCESSORY + } + usb_device { + sampling_rates 44100 + channel_masks AUDIO_CHANNEL_OUT_STEREO + formats AUDIO_FORMAT_PCM_16_BIT + devices AUDIO_DEVICE_OUT_USB_DEVICE + } + } + inputs { + usb_device { + sampling_rates 44100 + channel_masks AUDIO_CHANNEL_IN_STEREO + formats AUDIO_FORMAT_PCM_16_BIT + devices AUDIO_DEVICE_IN_USB_DEVICE + } + } + } + r_submix { + global_configuration { + attached_input_devices AUDIO_DEVICE_IN_REMOTE_SUBMIX + audio_hal_version 2.0 + } + outputs { + r_submix { + sampling_rates 48000 + channel_masks AUDIO_CHANNEL_OUT_STEREO + formats AUDIO_FORMAT_PCM_16_BIT + devices AUDIO_DEVICE_OUT_REMOTE_SUBMIX + } + } + inputs { + r_submix { + sampling_rates 48000 + channel_masks AUDIO_CHANNEL_IN_STEREO + formats AUDIO_FORMAT_PCM_16_BIT + devices AUDIO_DEVICE_IN_REMOTE_SUBMIX + } + } + } +} diff --git a/configs/bluetooth/auto_pair_devlist.conf b/configs/bluetooth/auto_pair_devlist.conf new file mode 100644 index 0000000..2b5ccb1 --- /dev/null +++ b/configs/bluetooth/auto_pair_devlist.conf @@ -0,0 +1,27 @@ +# Do NOT change this file format without updating the parsing logic in +# BT IF module implementation (btif_storage.c) + +# This file contains information to prevent auto pairing with Bluetooth devices. +# Blacklisting by vendor prefix address: +# The following companies are included in the list below: +# ALPS (lexus), Murata (Prius 2007, Nokia 616), TEMIC SDS (Porsche, Audi), +# Parrot, Zhongshan General K-mate Electronics, Great Well +# Electronics, Flaircomm Electronics, Jatty Electronics, Delphi, +# Clarion, Novero, Denso (Lexus, Toyota), Johnson Controls (Acura), +# Continental Automotive, Harman/Becker, Panasonic/Kyushu Ten, +# BMW (Motorola PCS), Visteon, Peugeot, BMW (MINI10013), Venza (Toyota) +AddressBlacklist=00:02:C7,00:16:FE,00:19:C1,00:1B:FB,00:1E:3D,00:21:4F,00:23:06,00:24:33,00:A0:79,00:0E:6D,00:13:E0,00:21:E8,00:60:57,00:0E:9F,00:12:1C,00:18:91,00:18:96,00:13:04,00:16:FD,00:22:A0,00:0B:4C,00:60:6F,00:23:3D,00:C0:59,00:0A:30,00:1E:AE,00:1C:D7,00:80:F0,00:12:8A,00:09:93,00:80:37,00:26:7E,00:26:e8 + +# Blacklisting by Exact Name: +ExactNameBlacklist=Motorola IHF1000,i.TechBlueBAND,X5 Stereo v1.3,KML_CAN + +# Blacklisting by Partial Name (if name starts with) +PartialNameBlacklist=BMW,Audi,Parrot,Car + +# Fixed PIN keyboard blacklist. Keyboards should have variable PIN +# The keyboards below have a fixed PIN of 0000, so we will auto pair. +# Note the reverse logic in this case compared to other's in this file +# where its a blacklist for not auto pairing. +FixedPinZerosKeyboardBlacklist=00:0F:F6 + +# Blacklisting by addition of the address during usage diff --git a/configs/bluetooth/bt_did.conf b/configs/bluetooth/bt_did.conf new file mode 100644 index 0000000..ea89c06 --- /dev/null +++ b/configs/bluetooth/bt_did.conf @@ -0,0 +1,85 @@ +# Device ID (DID) configuration +[DID1] + +# Primary Record - true or false (default) +# There can be only one primary record +primaryRecord = true + +# Vendor ID '0xFFFF' indicates no Device ID Service Record is present in the device +# 0x000F = Broadcom Corporation (default) +#vendorId = 0x000F + +# Vendor ID Source +# 0x0001 = Bluetooth SIG assigned Device ID Vendor ID value (default) +# 0x0002 = USB Implementer’s Forum assigned Device ID Vendor ID value +#vendorIdSource = 0x0001 + +# Product ID & Product Version +# Per spec DID v1.3 0xJJMN for version is interpreted as JJ.M.N +# JJ: major version number, M: minor version number, N: sub-minor version number +# For example: 1200, v14.3.6 +productId = 0x1200 +version = 0x1436 + +# Optional attributes +#clientExecutableURL = +#serviceDescription = +#documentationURL = + +#=================================================================================================# +# Device ID (DID) configuration +[DID2] + +# Primary Record - true or false (default) +# There can be only one primary record +#primaryRecord = false + +# Vendor ID '0xFFFF' indicates no Device ID Service Record is present in the device +# 0x000F = Broadcom Corporation (default) +#vendorId = 0x000F + +# Vendor ID Source +# 0x0001 = Bluetooth SIG assigned Device ID Vendor ID value (default) +# 0x0002 = USB Implementer’s Forum assigned Device ID Vendor ID value +#vendorIdSource = 0x0001 + +# Product ID & Product Version +# Per spec DID v1.3 0xJJMN for version is interpreted as JJ.M.N +# JJ: major version number, M: minor version number, N: sub-minor version number +# Default: 0x0000, v00.0.0 +#productId = 0x0000 +#version = 0x0000 + +# Optional attributes +#clientExecutableURL = +#serviceDescription = +#documentationURL = + +#=================================================================================================# +# Device ID (DID) configuration +[DID3] + +# Primary Record - true or false (default) +# There can be only one primary record +#primaryRecord = false + +# Vendor ID '0xFFFF' indicates no Device ID Service Record is present in the device +# 0x000F = Broadcom Corporation (default) +#vendorId = 0x000F + +# Vendor ID Source +# 0x0001 = Bluetooth SIG assigned Device ID Vendor ID value (default) +# 0x0002 = USB Implementer’s Forum assigned Device ID Vendor ID value +#vendorIdSource = 0x0001 + +# Product ID & Product Version +# Per spec DID v1.3 0xJJMN for version is interpreted as JJ.M.N +# JJ: major version number, M: minor version number, N: sub-minor version number +# Default: 0x0000, v00.0.0 +#productId = 0x0000 +#version = 0x0000 + +# Optional attributes +#clientExecutableURL = +#serviceDescription = +#documentationURL = diff --git a/configs/bluetooth/bt_stack.conf b/configs/bluetooth/bt_stack.conf new file mode 100644 index 0000000..e42309e --- /dev/null +++ b/configs/bluetooth/bt_stack.conf @@ -0,0 +1,294 @@ +# Enable BtSnoop logging function +# valid value : true, false +BtSnoopLogOutput=false + +# BtSnoop log output file +BtSnoopFileName=/sdcard/mtklog/btlog/btsnoop_hci.log + +# Preserve existing BtSnoop log before overwriting +BtSnoopSaveLog=false + +# Enable trace level reconfiguration function +# Must be present before any TRC_ trace level settings +TraceConf=true + +# Trace level configuration +# BT_TRACE_LEVEL_NONE 0 ( No trace messages to be generated ) +# BT_TRACE_LEVEL_ERROR 1 ( Error condition trace messages ) +# BT_TRACE_LEVEL_WARNING 2 ( Warning condition trace messages ) +# BT_TRACE_LEVEL_API 3 ( API traces ) +# BT_TRACE_LEVEL_EVENT 4 ( Debug messages for events ) +# BT_TRACE_LEVEL_DEBUG 5 ( Full debug messages ) +# BT_TRACE_LEVEL_VERBOSE 6 ( Verbose messages ) - Currently supported for TRC_BTAPP only. +TRC_BTM=2 +TRC_HCI=2 +TRC_L2CAP=2 +TRC_RFCOMM=2 +TRC_OBEX=2 +TRC_AVCT=2 +TRC_AVDT=2 +TRC_AVRC=2 +TRC_AVDT_SCB=2 +TRC_AVDT_CCB=2 +TRC_A2D=2 +TRC_SDP=2 +TRC_GATT=2 +TRC_SMP=2 +TRC_BTAPP=2 +TRC_BTIF=2 +TRC_GAP=2 +TRC_BNEP=2 +TRC_PAN=2 +TRC_B3DS=2 + +################################### +# # +# Must enable MTK_STACK_CONFIG # +# # +################################### + +[MtkBtConf] +MtkStackConfigOverride=/sdcard/btsc + +# +# Control FW Log +# +[MtkBtFWLog] +# FCBE switch +# Ex. Disable FWlog to set C1 = 01 BE FC 01 00 / Enable FWlog to set C1 = 01 BE FC 01 05 +C1 = 01 BE FC 01 00 +# FC5F filter +C2 = 01 5F FC 2A 50 01 09 00 00 00 +# FC5F group filter bitmap +# SYS +C201 = 00 00 00 00 +# TIM +C202 = 00 00 00 00 +# PKV +C203 = 00 00 00 00 +# LC +C204 = 00 00 00 00 +# LL +C205 = 00 00 00 00 +# ANT +C206 = 00 00 00 00 +# LMP +C207 = 00 00 00 00 +# CO +C208 = 00 00 00 00 +# VOICE +C209 = 00 00 00 00 + +# +# Role Switch Blacklisting +# +[MtkRoleSwitchBlacklist] + +# Blacklisting by vendor prefix address: +# Example: AddressBlacklist=12:34:56,22:22:22 +AddressBlacklist= + +# Blacklisting by Exact Name: +# Example: ExactNameBlacklist=This is an example,MT-1234,T1 +ExactNameBlacklist= + +# Blacklisting by Partial Name (if name starts with) +# Example: PartialNameBlacklist=Test,MT +PartialNameBlacklist= + +# +# Sniff Subrating Blacklisting +# +[MtkSniffSubratingBlacklist] + +# Blacklisting by vendor prefix address: +# Example: AddressBlacklist=12:34:56,22:22:22 +# {0x54, 0x46, 0x6b}, /* JW MT002 Bluetooth Mouse */ /*LMP version&subversion - 5, 8721 & LMP Manufacturer - 15*/ +AddressBlacklist=54:46:6b + +# Blacklisting by Exact Name: +# Example: ExactNameBlacklist=This is an example,MT-1234,T1 +ExactNameBlacklist= + +# Blacklisting by Partial Name (if name starts with) +# Example: PartialNameBlacklist=Test,MT +PartialNameBlacklist= + +# +# Hogp Conn Update Blacklisting +# +[MtkHogpConnUpdateBlacklist] + +# Blacklisting by vendor prefix address: +# Example: AddressBlacklist=12:34:56,22:22:22 +AddressBlacklist=00:1b:dc + +# Blacklisting by Exact Name: +# Example: ExactNameBlacklist=This is an example,MT-1234,T1 +ExactNameBlacklist=BSMBB09DS + +# Blacklisting by Partial Name (if name starts with) +# Example: PartialNameBlacklist=Test,MT +PartialNameBlacklist= + +# +# BLE Conn Minimum Interval limit Blacklisting +# +[MtkBleConnIntMinLimitBlacklist] + +# Blacklisting by vendor prefix address: +# Example: AddressBlacklist=12:34:56,22:22:22 +AddressBlacklist=00:15:9e + +# Blacklisting by Exact Name: +# Example: ExactNameBlacklist=This is an example,MT-1234,T1 +ExactNameBlacklist=Mad Catz M.O.U.S.9,Designer Mouse + +# Blacklisting by Partial Name (if name starts with) +# Example: PartialNameBlacklist=Test,MT +PartialNameBlacklist= + +# +# BLE Conn timeout Blacklisting +# +[MtkBleConnTimeoutBlacklist] + +# Blacklisting by vendor prefix address: +AddressBlacklist=FF:40:3A,DA:58:98,C2:80:29,FF:74:E1,D9:E6:EA + +# Blacklisting by Exact Name: +ExactNameBlacklist=CASIO GB-6900A* + +# +# Avrcp 1.5 Blacklisting +# +[MtkAvrcp15BackTo13Blacklist] + +# Some CT devices have IOT issue with AVRCP 1.5 device +# Send the AVRCP version as 1.3 for these devices +# {0x00, 0x1D, 0xBA}, /* JVC carkit */ +# {0x00, 0x1E, 0xB2}, /* AVN 3.0 Hyundai */ +# {0x00, 0x0E, 0x9F}, /* Porshe car kit */ +# {0x00, 0x13, 0x7B}, /* BYOM Opel */ +# {0x68, 0x84, 0x70}, /* KIA MOTOR */ +# {0x00, 0x21, 0xCC}, /* FORD FIESTA */ +# {0x30, 0x14, 0x4A}, /* Mini Cooper */ +# {0x38, 0xC0, 0x96}, /* Seat Leon */ +# {0x00, 0x54, 0xAF}, /* Chrysler */ +# {0x04, 0x88, 0xE2}, /* BeatsStudio Wireless */ +# {0x9C, 0xDF, 0x03}, /* BMW 2012 carkit */ +# {0xA8, 0x54, 0xB2}, /* BMW 2015 carkit */ +# {0x94, 0x44, 0x44}, /* AVN1.0 K9 */ +# {0x00, 0x05, 0xC9}, /* FS AVN */ +# {0xA0, 0x14, 0x3D}, /* VW Sharen */ +# {0xE0, 0x75, 0x0A}, /* VW GOLF */ +# {0x10, 0x08, 0xC1}, /* Hyundai SantaFe */ +# {0x00, 0x21, 0xCC}, /* FORD SYNC TDK */ +# {0x00, 0x0A, 0x30}, /* Honda TFT */ +# {0x00, 0x1E, 0x43}, /* AUDI MMI 3G+ */ +# {0x00, 0x18, 0x09}, /* AT-PHA05BT */ +# {0xC8, 0x02, 0x10}, /* KIA SportageR 2015 */ +# {0x34, 0xB1, 0xF7}, /* G-BOOK 2013 */ +# {0x7C, 0x66, 0x9D}, /* G-BOOK 2014 */ +# {0x00, 0x09, 0x93}, /* Nissan Altima 2014 */ +# {0x04, 0XF8, 0XC2} /* HAVAL H2 */ +AddressBlacklist=00:1D:BA,00:1E:B2,00:0E:9F,00:13:7B,68:84:70,00:21:CC,30:14:4A,38:C0:96,00:54:AF,04:88:E2,9C:DF:03,A8:54:B2,94:44:44,00:05:C9,A0:14:3D,E0:75:0A,10:08:C1,00:21:CC,00:0A:30,00:1E:43,00:18:09,C8:02:10,34:B1:F7,7C:66:9D,00:09:93,04:F8:C2 + +[MtkAvrcp15BackTo14Blacklist] + +# Some CT devices support AVRCP version 1.4 instead of 1.5 +# Send the AVRCP version as 1.4 for these devices +# {0x34, 0xC7, 0x31}, /* AUDI MIB Standard */ +# {0x00, 0x07, 0x04}, /* VW MIB Standard */ +# {0x00, 0x26, 0xB4}, /* MyFord Touch Gen2 */ +# {0x10, 0x08, 0xC1}, /* GEN 2.0 PREM */ +# {0x04, 0x98, 0xF3}, /* VW MIB Entry */ +# {0x64, 0xD4, 0xBD}, /* HONDA CAN2BENCH */ +# {0x0C, 0xD9, 0xC1}, /* HONDA CAN2BENCH-02 */ +# {0x18, 0x6D, 0x99}, /* GRANDUER MTS */ +# {0xFC, 0x62, 0xB9}, /* VW Golf VII */ +# {0x90, 0x03, 0xB7}, /* VW Jetta TSI 2013 */ +# {0x00, 0x26, 0x7E} /* VW Jetta TSI 2012 */ +AddressBlacklist=34:C7:31,00:07:04,00:26:B4,10:08:C1,04:98:F3,64:D4:BD,0C:D9:C1,18:6D:99,FC:62:B9,90:03:B7,00:26:7E + + +# +# SCMS-T Blacklisting +# +[MtkSCMSTBlacklist] + +# Some IOT devices can not work with SCSM-T normmaly +# Do not select SCMS-T as set configurate +# {0x00, 0x12, 0x6F} /* Bury CC9060 */ +AddressBlacklist=00:12:6f +[MtkHfp15eSCOBlacklist] +# Some devices support hfp 1.5 but not use eSCO connection +# {0x00, 0x58, 0x76}, /* BT800 */ +AddressBlacklist=00:58:76 + +ExactNameBlacklist=BT800 + +[MtkSecureConnectionsBlacklist] +# Some devices cannot compatible with secure connections +PartialNameBlacklist=honor zero- + +[MtkSongPositionBlacklist] + +# Blacklisting by vendor prefix address: +# Example: AddressBlacklist=12:34:56,22:22:22 +#{0x00, 0x0e, 0x9f}, /* Toyota Touch&Go */ +AddressBlacklist=00:0e:9f + +# Blacklisting by Exact Name: +# Example: ExactNameBlacklist=This is an example,MT-1234,T1 +ExactNameBlacklist=Toyota Touch&Go + +[MtkA2DPDelayStartCMDBlicklist] + +# +# Some special device want perform START cmd itself first +# If it not send START cmd, will close current link. +# So for this special device, we need delay send A2DP START cmd +# which from DUT to receive the special device cmd. +# {0x00, 0x17, 0x53} /* Tiggo5 */ +AddressBlacklist=00:17:53 + +[MtkAvrcpReleaseKeyBlacklist] +# Blacklisting by vendor prefix address: +# Example: AddressBlacklist=12:34:56,22:22:22 +#{0x00, 0x1e, 0xb2}, /* MTS255 */ +AddressBlacklist=00:1e:b2 + +[MtkAvConnectOnSdpFail] +#{00:1e:3d}, // ALPS ELECTRIC CO.,LTD. +#{00:1b:fb}, // ALPS ELECTRIC CO.,LTD. +#{00:26:7e}, // Parrot SA +AddressBlacklist=00:1e:3d,00:1b:fb,00:26:7e + +[MtkAVDTPDiscoverBlacklist] +# Some headset have IOT issue if DUT trigger DISCOVER procedure while act as an A2DP acceptor role +# Do not trigger DISCOVER procedure + +# Blacklisting by vendor prefix address: +#{0xa0, 0xb4, 0xa5}, /* Gear Circle */ +AddressBlacklist=a0:b4:a5 + +# Blacklisting by Exact Name: +ExactNameBlacklist=Gear Circle + + +[MtkHfp15eSCOMsbcBlacklist] +# Some devices can't use MSBC codec +ExactNameBlacklist=Parrot ASTEROID Smart + +[MtkHIDDisableSDPBlacklist] +# Some HID devices have issue if SDP is initiated while HID connection is in progress +# {0x04, 0x0C, 0xCE}, /* Apple Magic Mouse */ +# {0x00, 0x07, 0x61}, /* Bluetooth Laser Travel Mouse */ +# {0x00, 0x1d, 0xd8}, /* Microsoft Bluetooth Notebook Mouse 5000 */ +# {0x00, 0x1f, 0x20}, /* Logitech MX Revolution Mouse */ +# {0x6c, 0x5d, 0x63}, /* Rapoo 6080 mouse */ +# {0x28, 0x18, 0x78} /* Microsoft Sculpt Touch Mouse */ +AddressBlacklist=04:0c:ce,00:07:61,00:1d:d8,00:1f:20,6c:5d:63,28:18:78 +ExactNameBlacklist=Apple Magic Mouse,Bluetooth Laser Travel Mouse,Microsoft Bluetooth Notebook Mouse 5000,Logitech MX Revolution Mouse,Microsoft Sculpt Touch Mouse + diff --git a/configs/bluetooth/bt_stack.conf.debug b/configs/bluetooth/bt_stack.conf.debug new file mode 100644 index 0000000..13847b3 --- /dev/null +++ b/configs/bluetooth/bt_stack.conf.debug @@ -0,0 +1,78 @@ +# Enable BtSnoop logging function
+# valid value : true, false
+BtSnoopLogOutput=true
+
+# BtSnoop log output file
+BtSnoopFileName=/sdcard/mtklog/btlog/btsnoop_hci.log
+
+# Preserve existing BtSnoop log before overwriting
+BtSnoopSaveLog=true
+
+# Enable trace level reconfiguration function
+# Must be present before any TRC_ trace level settings
+TraceConf=true
+
+# Trace level configuration
+# BT_TRACE_LEVEL_NONE 0 ( No trace messages to be generated )
+# BT_TRACE_LEVEL_ERROR 1 ( Error condition trace messages )
+# BT_TRACE_LEVEL_WARNING 2 ( Warning condition trace messages )
+# BT_TRACE_LEVEL_API 3 ( API traces )
+# BT_TRACE_LEVEL_EVENT 4 ( Debug messages for events )
+# BT_TRACE_LEVEL_DEBUG 5 ( Full debug messages )
+# BT_TRACE_LEVEL_VERBOSE 6 ( Verbose messages ) - Currently supported for TRC_BTAPP only.
+TRC_BTM=6
+TRC_HCI=6
+TRC_L2CAP=6
+TRC_RFCOMM=6
+TRC_OBEX=6
+TRC_AVCT=6
+TRC_AVDT=6
+TRC_AVRC=6
+TRC_AVDT_SCB=6
+TRC_AVDT_CCB=6
+TRC_A2D=6
+TRC_SDP=6
+TRC_GATT=6
+TRC_SMP=6
+TRC_BTAPP=6
+TRC_BTIF=6
+TRC_GAP=6
+TRC_BNEP=6
+TRC_PAN=6
+TRC_B3DS=6
+
+###################################
+# #
+# Must enable MTK_STACK_CONFIG #
+# #
+###################################
+
+#
+# Control FW Log
+#
+[MtkBtFWLog]
+# FCBE switch - Enable
+# Ex. Disable FWlog to set C1 = 01 BE FC 01 00 / Enable FWlog to set C1 = 01 BE FC 01 05
+C1 = 01 BE FC 01 05
+# FC5F filter
+C2 = 01 5F FC 2A 50 01 09 00 00 00
+# FC5F group filter bitmap
+# SYS
+C201 = 01 00 00 00
+# TIM
+C202 = 00 00 00 00
+# PKV
+C203 = 01 00 00 00
+# LC
+C204 = 01 00 00 00
+# LL
+C205 = 01 00 00 00
+# ANT
+C206 = 01 00 00 00
+# LMP
+C207 = 01 00 01 00
+# CO
+C208 = 03 38 00 00
+# VOICE
+C209 = 01 00 00 00
+
diff --git a/configs/bluetooth/bt_stack.conf.sqc b/configs/bluetooth/bt_stack.conf.sqc new file mode 100644 index 0000000..55cac8f --- /dev/null +++ b/configs/bluetooth/bt_stack.conf.sqc @@ -0,0 +1,78 @@ +# Enable BtSnoop logging function
+# valid value : true, false
+BtSnoopLogOutput=true
+
+# BtSnoop log output file
+BtSnoopFileName=/sdcard/mtklog/btlog/btsnoop_hci.log
+
+# Preserve existing BtSnoop log before overwriting
+BtSnoopSaveLog=true
+
+# Enable trace level reconfiguration function
+# Must be present before any TRC_ trace level settings
+TraceConf=true
+
+# Trace level configuration
+# BT_TRACE_LEVEL_NONE 0 ( No trace messages to be generated )
+# BT_TRACE_LEVEL_ERROR 1 ( Error condition trace messages )
+# BT_TRACE_LEVEL_WARNING 2 ( Warning condition trace messages )
+# BT_TRACE_LEVEL_API 3 ( API traces )
+# BT_TRACE_LEVEL_EVENT 4 ( Debug messages for events )
+# BT_TRACE_LEVEL_DEBUG 5 ( Full debug messages )
+# BT_TRACE_LEVEL_VERBOSE 6 ( Verbose messages ) - Currently supported for TRC_BTAPP only.
+TRC_BTM=6
+TRC_HCI=6
+TRC_L2CAP=6
+TRC_RFCOMM=6
+TRC_OBEX=6
+TRC_AVCT=6
+TRC_AVDT=6
+TRC_AVRC=6
+TRC_AVDT_SCB=6
+TRC_AVDT_CCB=6
+TRC_A2D=6
+TRC_SDP=6
+TRC_GATT=6
+TRC_SMP=6
+TRC_BTAPP=6
+TRC_BTIF=6
+TRC_GAP=6
+TRC_BNEP=6
+TRC_PAN=6
+TRC_B3DS=6
+
+###################################
+# #
+# Must enable MTK_STACK_CONFIG #
+# #
+###################################
+
+#
+# Control FW Log
+#
+[MtkBtFWLog]
+# FCBE switch - Disable
+# Ex. Disable FWlog to set C1 = 01 BE FC 01 00 / Enable FWlog to set C1 = 01 BE FC 01 05
+C1 = 01 BE FC 01 00
+# FC5F filter
+C2 = 01 5F FC 2A 50 01 09 00 00 00
+# FC5F group filter bitmap
+# SYS
+C201 = 00 00 00 00
+# TIM
+C202 = 00 00 00 00
+# PKV
+C203 = 00 00 00 00
+# LC
+C204 = 00 00 00 00
+# LL
+C205 = 00 00 00 00
+# ANT
+C206 = 00 00 00 00
+# LMP
+C207 = 00 00 00 00
+# CO
+C208 = 00 00 00 00
+# VOICE
+C209 = 00 00 00 00
+
diff --git a/configs/dhcpcd/dhcpcd.conf b/configs/dhcpcd/dhcpcd.conf new file mode 100644 index 0000000..426f756 --- /dev/null +++ b/configs/dhcpcd/dhcpcd.conf @@ -0,0 +1,8 @@ +# dhcpcd configuration for Android Wi-Fi interface + +# Disable solicitation of IPv6 Router Advertisements +noipv6rs + +interface wlan0 +# dhcpcd-run-hooks uses these options. +option subnet_mask, routers, domain_name_servers, interface_mtu diff --git a/configs/egl.cfg b/configs/egl.cfg new file mode 100644 index 0000000..9438b87 --- /dev/null +++ b/configs/egl.cfg @@ -0,0 +1,2 @@ +0 0 android +0 1 mali diff --git a/configs/gps/agps_profiles_conf2.xml b/configs/gps/agps_profiles_conf2.xml new file mode 100644 index 0000000..279d1a2 --- /dev/null +++ b/configs/gps/agps_profiles_conf2.xml @@ -0,0 +1,471 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<mtk_agps_profiles maj_ver="1" min_ver="2"> + + <!-- cur_supl_profile and supl_profile + + name: + SLP name will be displayed on LocatioEM2 - SLP Template list + + addr: + SLP address + + port: + SLP port + + tls: + enable/disable TLS connection + available value: true (default), false + + ===== load SLP profile automatically based on PLMN ===== + mcc (optional): + auto configure the supl_profile if the current MCC on DUT are the same as mcc parameter you specified and auto_profile_enable is enabled + + mcc_mnc (optional): + auto configure the supl_profile if the current MCC and MNC on DUT are the same as mcc_mnc paramter you specified and auto_profile_enable is enabled + + supl_version (optional): + auto configure supl_version if above mcc_mnc condition is met + available value: 1 -> SUPL1.0 (default) + available value: 2 -> SUPL2.0 + + tls_version (optional): + auto configure tls_version if above mcc_mnc condition is met + available value: 0 -> TLS1.0 (default) + available value: 1 -> TLS1.1 + available value: 2 -> TLS1.2 + + sha_version (optional): + auto configure sha_version if above mcc_mnc condition is met + available value: 0 -> SHA1 for SUPL1.0 and SHA256 for SUPL2.0 (default) + available value: 1 -> SHA1 for SUPL1.0 and SUPL2.0 + available value: 2 -> SHA256 for SUPL1.0 and SUPL2.0 + + ===== other parameters are used for DM ===== + app_id (optional): + "ap0004" + + provider_id (optional): + "221.176.0.55" + + default_apn (optional): + "XXX WAP" + + optional_apn (optional): + "internet" + + optional_apn_2 (optional): + "" + + address_type (optional): + "IPv4address:port" + --> + + <cur_supl_profile name="GOOGLE" + addr="supl.google.com" + port="7275" + tls="true" + /> + + <!-- GOOGLE--> + <supl_profile name="GOOGLE" + addr="supl.google.com" + port="7275" + tls="true" + /> + + <!-- GOOGLE--> + <supl_profile name="GOOGLE nonTLS" + addr="supl.google.com" + port="7276" + tls="false" + /> + + <!-- GOOGLE--> + <supl_profile name="GOOGLE IP" + addr="173.194.72.192" + port="7276" + tls="false" + /> + + <!-- Spirent Lab --> + <supl_profile name="Spirent" + addr="www.spirent-lcs.com" + port="7275" + tls="true" + /> + + <!-- R&S Lab --> + <supl_profile name="RnS" + addr="slp.rs.de" + port="7275" + tls="true" + /> + + <!-- CMCC Lab --> + <supl_profile name="CMCC Lab" + addr="218.206.176.50" + port="7275" + tls="true" + /> + + <!-- Andrew Lab --> + <supl_profile name="Andrew" + addr="slp1acva.andrew.com" + port="7275" + tls="true" + /> + + <!-- Ericsson Lab --> + <supl_profile name="Ericsson" + addr="172.22.1.100" + port="7275" + tls="true" + /> + + <!-- Ericsson Lab FQDN --> + <supl_profile name="Ericsson FQDN" + addr="mvtvltegmpc.naladmz.ericsson.ca" + port="7275" + tls="true" + /> + + <!-- Ericsson Lab FQDN 2 --> + <supl_profile name="Ericsson FQDN 2" + addr="mvtv-broadcom.naladmz.ericsson.ca" + port="7275" + tls="true" + /> + + <!-- ORANGE --> + <supl_profile name="ORANGE" + addr="agpss.orange.fr" + port="7275" + tls="true" + /> + + <!-- CMCC--> + <supl_profile name="CMCC" + addr="221.176.0.55" + port="7275" + tls="true" + app_id="ap0004" + provider_id="221.176.0.55" + default_apn="CMCC WAP" + optional_apn="CMNET" + optional_apn_2="" + address_type="IPv4address:port" + /> + + <!-- Telstra --> + <supl_profile name="Telstra" + addr="agps.supl.telstra.com" + port="7275" + tls="true" + /> + + <!-- CHUAN HWA --> + <supl_profile name="Chunghwa" + addr="10.1.101.137" + port="8025" + tls="false" + /> + + <!-- T-Mobile --> + <supl_profile name="T-Mobile" + addr="lbs.geo.t-mobile.com" + port="7275" + tls="true" + /> + + <!-- Vodafone --> + <supl_profile name="Vodafone" + addr="supl.vodafone.com" + port="7275" + tls="true" + mcc_mnc="22010" + supl_version="2" + tls_version="1" + sha_version="0" + /> + + <!-- Test 1 --> + <supl_profile name="Test 1" + addr="127.0.0.1" + port="7276" + tls="false" + mcc_mnc="999998" + supl_version="1" + tls_version="0" + sha_version="2" + /> + + <!-- Test 2 --> + <supl_profile name="Test 2" + addr="127.0.0.1" + port="7276" + tls="false" + mcc_mnc="999999" + supl_version="2" + tls_version="1" + sha_version="0" + /> + + <!-- Test 3 --> + <supl_profile name="Test 3" + addr="127.0.0.1" + port="7276" + tls="false" + mcc="998" + supl_version="1" + tls_version="2" + sha_version="1" + /> + + <!-- cdma_profile + + name: + SLP name + + mcp_enable: + enable/disable MCP parameters + available value: true, false (default) + + mcp_addr: + MCP address + + mcp_port: + MCP port + + pde_addr_valid: + PDE address is valid or invalid + available value: true, false (default) + + pde_ip_type: + PDE's address type + available value: 0 -> IPv4 (default) + available value: 1 -> IPv6 + + pde_addr: + PDE IP address + + pde_port: + PDE port + + pde_url_valid: + PDE URL is valid or invalid + available value: true, false (default) + + pde_url_addr: + PDE URL + --> + + <!-- CDMA profile template --> + <cdma_profile name="CDMA1" + mcp_enable="true" + mcp_addr="10.199.22.165" + mcp_port="6066" + pde_addr_valid="false" + pde_ip_type="0" + pde_addr="11.11.11.11" + pde_port="1111" + pde_url_valid="false" + pde_url_addr="www.mediatek.com" + /> + + + <!-- agps_setting + + agps_enable: + enable/disable A-GPS + available value: true (default), false + + agps_protocol: + choose which A-GPS you want to use for SET Initiated + available value: 0 -> User Plane (default) + available value: 1 -> Control Plane + + gpevt: + enable/disable GPEVT report + available value: true, false (default) + --> + <agps_setting + agps_enable="true" + agps_protocol="0" + gpevt="false" + /> + + + <!-- cp_setting + + molr_pos_method: + available value: 0 (Location Estimate) (default) + available value: 1 (Assistance Data) + + external_addr_enable: + enable/disable the external address + available value: true, false (default) + + external_addr: + external_address + + mlc_number_enable: + enable/disable the mlc number + available value: true, false (default) + + mlc_number: + MLC number + + cp_auto_reset: + enable/disable to send PMTK997_5 + available value: true, false (default) + + epc_molr_lpp_payload_enable: + enable/disable to send LPP payload in the EPC-MOLR message + available value: true, false (default) + + epc_molr_lpp_payload: + specify the LPP payload in the EPC-MOLR message in hexString format (ex: "010203ff" = { 0x01, 0x02, 0x03, 0xff } + the purpose of this parameter is used for LAB testing only, please do not change it. + + --> + <cp_setting + molr_pos_method="0" + external_addr_enable="false" + external_addr="0123456789*#+" + mlc_number_enable="false" + mlc_number="0123456789*#+" + cp_auto_reset="false" + epc_molr_lpp_payload_enable="false" + epc_molr_lpp_payload="D2000010237B2026404FB8007202BFFFFFFFF80000000020C0000100940FB9001202B7FFFFF8000000000061800002018A00" + /> + + <!-- up_setting + + ca_enable: + enable/disable the certificate verification + available value: true, false (default) + + ni_request: + enable/disable Network Initiated (NI) functionality + available value: true (default), false + + roaming: + enable/disable to use A-GPS when device is under roaming state + available value: true (default), false + + cdma_preferred: + when CDMA network and WCDMA network are available, which AGPS protocol you prefer? + available value: 0 (WCDMA AGPS protocol is preferred) (default) + available value: 2 (FORCE CDMA AGPS protocol) + + pref_method: + the preferred method in SUPL_START and SUPL_POS_INIT + available value: 0 -> SET assisted Preferred + available value: 1 -> SET Based Preferred (default) + available value: 2 -> no Preference + + supl_version: + SUPL version for ULP + available value: 1 -> SUPL1.0 (default) + available value: 2 -> SUPL2.0 + + tls_version: + TLS version for TLS connection + available value: 0 -> TLS1.0 (default) + available value: 1 -> TLS1.1 + available value: 2 -> TLS1.2 + + sha_version: + SHA version for calculating VER + available value: 0 -> SHA1 for SUPL1.0 and SHA256 for SUPL2.0 (default) + available value: 1 -> SHA1 for SUPL1.0 and SUPL2.0 + available value: 2 -> SHA256 for SUPL1.0 and SUPL2.0 + + supl_log: + enable or disable the AGPS log + available value: true, false (default) + + msa_enable: + enable/disable the MSA capability + available value: true (default), false + + msb_enable: + enable/disable the MSB capability + available value: true (default), false + + ecid_enable: + enable/disable the eCID capability + available value: true (default), false + + otdoa_enable: + enable/disable the OTDOA capability + available value: true, false (default) + + udp_port_enable: + enable/disable the UDP 7275 port by default, if you enable it, you may cause Android/CTS failure for checking netstat + available value: true, false (default) + + dedicated_apn_enable: + enable/disable the dedicated SUPL APN flow + available value: true, false (default) + + preferred_2g3g_cell_age: + max age of 2G / 3G cell info in history is OK to send to SLP server instead if the latest cell is of 3G or 4G. + available value: non-negative integer, from 0 ~ 1800, unit in second + 0 (always use the latest cell info) + 300 (prefer to use 2G / 3G cell if its age is less than 5 mins) + + lpp_enable: + enable/disable the LPP capability + available value: true (default), false + + cert_from_sdcard: + enable/disable the AGPS certification installation from SDCard + available value: true (default), false + + auto_profile_enable: + enable/disable the auto profile configuration based on current mcc or mcc_mnc specified in cur_supl_profile or supl_profile + available value: true (default), false + + ut2: + customize the SUPL UT2 timer + available value: 1~60, default value is 11 (OMA spec) + + ut3: + customize the SUPL UT3 timer + available value: 1~60, default value is 10 (OMA spec) + + sync_to_slp: + sync the AGPS setting (ex: SUPL profile, SUPL version, TLS version) from AGPSD to SLPD in runtime + available value: true, false (default) + --> + <up_setting + ca_enable="false" + ni_request="true" + roaming="true" + cdma_preferred="0" + pref_method="1" + supl_version="1" + tls_version="0" + sha_version="0" + supl_log="false" + msa_enable="true" + msb_enable="true" + ecid_enable="true" + otdoa_enable="false" + qop_hacc="22" + qop_vacc="0" + qop_loc_age="0" + qop_delay="0" + udp_port_enable="false" + dedicated_apn_enable="false" + preferred_2g3g_cell_age="300" + lpp_enable="true" + cert_from_sdcard="true" + auto_profile_enable="true" + ut2="11" + ut3="10" + sync_to_slp="false" + /> + +</mtk_agps_profiles> diff --git a/configs/gps/slp_conf b/configs/gps/slp_conf new file mode 100644 index 0000000..431ec60 --- /dev/null +++ b/configs/gps/slp_conf @@ -0,0 +1,8 @@ +SUPL_ADDR=supl.google.com
+SUPL_PORT=7276
+//SUPL_TLS can be 0 (disable) or 1 (enable)
+SUPL_TLS=0
+//SUPL_VERSION can be 1 or 2
+SUPL_VERSION=2
+//TLS_VERSION can be 0 (TLS1.0), 1 (TLS1.1), and 2 (TLS1.2)
+TLS_VERSION=1
\ No newline at end of file diff --git a/configs/hostapd/hostapd.accept b/configs/hostapd/hostapd.accept new file mode 100644 index 0000000..6b167e0 --- /dev/null +++ b/configs/hostapd/hostapd.accept @@ -0,0 +1,3 @@ +# List of MAC addresses that are allowed to authenticate (IEEE 802.11) +# with the AP. Optional VLAN ID can be assigned for clients based on the +# MAC address if dynamic VLANs (hostapd.conf dynamic_vlan option) are used.
\ No newline at end of file diff --git a/configs/hostapd/hostapd.deny b/configs/hostapd/hostapd.deny new file mode 100644 index 0000000..c37336b --- /dev/null +++ b/configs/hostapd/hostapd.deny @@ -0,0 +1,2 @@ +# List of MAC addresses that are not allowed to authenticate (IEEE 802.11) +# with the AP.
\ No newline at end of file diff --git a/configs/hostapd/hostapd_default.conf b/configs/hostapd/hostapd_default.conf new file mode 100644 index 0000000..da942f6 --- /dev/null +++ b/configs/hostapd/hostapd_default.conf @@ -0,0 +1,81 @@ +##### hostapd configuration file ############################################## +# Empty lines and lines starting with # are ignored + +# AP netdevice name (without 'ap' postfix, i.e., wlan0 uses wlan0ap for +# management frames); ath0 for madwifi +interface=wlan0 + +# Driver interface type (hostap/wired/madwifi/prism54/test/none/nl80211/bsd); +# default: hostap). nl80211 is used with all Linux mac80211 drivers. +# Use driver=none if building hostapd as a standalone RADIUS server that does +# not control any wireless/wired driver. +driver=nl80211 + +# hostapd event logger configuration +# +# Two output method: syslog and stdout (only usable if not forking to +# background). +# +# Module bitfield (ORed bitfield of modules that will be logged; -1 = all +# modules): +# bit 0 (1) = IEEE 802.11 +# bit 1 (2) = IEEE 802.1X +# bit 2 (4) = RADIUS +# bit 3 (8) = WPA +# bit 4 (16) = driver interface +# bit 5 (32) = IAPP +# bit 6 (64) = MLME +# +# Levels (minimum value for logged events): +# 0 = verbose debugging +# 1 = debugging +# 2 = informational messages +# 3 = notification +# 4 = warning +# +logger_syslog=-1 +logger_syslog_level=2 +logger_stdout=-1 +logger_stdout_level=2 + +#DEPRECATED: DONT UNCOMMENT -- Dump file for state information (on SIGUSR1) +#dump_file=/tmp/hostapd.dump + +# Interface for separate control program. If this is specified, hostapd +# will create this directory and a UNIX domain socket for listening to requests +# from external programs (CLI/GUI, etc.) for status information and +# configuration. The socket file will be named based on the interface name, so +# multiple hostapd processes/interfaces can be run at the same time if more +# than one interface is used. +# /var/run/hostapd is the recommended directory for sockets and by default, +# hostapd_cli will use it when trying to connect with hostapd. +ctrl_interface=/data/misc/wifi/hostapd + +##### IEEE 802.11 related configuration ####################################### + +# SSID to be used in IEEE 802.11 management frames +ssid=AndroidAP + +# Operation mode (a = IEEE 802.11a, b = IEEE 802.11b, g = IEEE 802.11g, +# n = IEEE 802.11n, g_only = IEEE 802.11g_only, n_only = IEEE 802.11n_only, +# Default: IEEE 802.11n +hw_mode=g + +# Channel number (IEEE 802.11) +# (default: 0, i.e., not set) +# Please note that some drivers (e.g., madwifi) do not use this value from +# hostapd and the channel will need to be configuration separately with +# iwconfig. +channel=6 + +# ieee80211n: Whether IEEE 802.11n (HT) is enabled +# 0 = disabled (default) +# 1 = enabled +# Note: You will also need to enable WMM for full HT functionality. +ieee80211n=1 + +# Accept/deny lists are read from separate files (containing list of +# MAC addresses, one per line). Use absolute path name to make sure that the +# files can be read on SIGHUP configuration reloads. +accept_mac_file=/data/hostapd/hostapd.accept +deny_mac_file=/data/hostapd/hostapd.deny diff --git a/configs/media/media_codecs.xml b/configs/media/media_codecs.xml new file mode 100644 index 0000000..95f8841 --- /dev/null +++ b/configs/media/media_codecs.xml @@ -0,0 +1,304 @@ +<?xml version="1.0" encoding="utf-8" ?> +<!-- Copyright (C) 2012 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 MediaCodecs (Decoders,Encoders)> +<!ELEMENT Decoders (MediaCodec*)> +<!ELEMENT Encoders (MediaCodec*)> +<!ELEMENT MediaCodec (Type*,Quirk*)> +<!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. + + 2012/07/13 config for MTK OMX Media Codecs, created by Morris Yang (mtk03147) +--> + +<MediaCodecs> + + <Include href="media_codecs_ffmpeg.xml" /> + + <Decoders> + <MediaCodec name="OMX.MTK.AUDIO.DECODER.MP3" type="audio/mpeg" > + <Quirk name="decoder-lies-about-number-of-channels" /> + <Quirk name="supports-multiple-frames-per-input-buffer" /> + </MediaCodec> + <MediaCodec name="OMX.google.opus.decoder" type="audio/opus"> + <Limit name="channel-count" max="8" /> + <Limit name="sample-rate" ranges="8000-96000" /> + <Limit name="bitrate" range="1-10000000" /> + </MediaCodec> + <MediaCodec name="OMX.MTK.AUDIO.DECODER.ADPCM.MS" type="audio/x-adpcm-ms" /> + <MediaCodec name="OMX.MTK.AUDIO.DECODER.ADPCM.DVI" type="audio/x-adpcm-dvi-ima" /> + <MediaCodec name="OMX.MTK.AUDIO.DECODER.GSM" type="audio/gsm" /> + <MediaCodec name="OMX.MTK.AUDIO.DECODER.RAW" type="audio/raw" /> + <MediaCodec name="OMX.MTK.AUDIO.DECODER.G711.ALAW" type="audio/g711-alaw" > + <Quirk name="decoder-lies-about-number-of-channels" /> + </MediaCodec> + <MediaCodec name="OMX.MTK.AUDIO.DECODER.G711.MLAW" type="audio/g711-mlaw" > + <Quirk name="decoder-lies-about-number-of-channels" /> + </MediaCodec> + <!-- <MediaCodec name="OMX.MTK.AUDIO.DECODER.FLAC" type="audio/flac" /> --> + <MediaCodec name="OMX.MTK.AUDIO.DECODER.WMA" type="audio/x-ms-wma" /> + <MediaCodec name="OMX.MTK.AUDIO.DECODER.WMAPRO" type="audio/x-ms-wmapro" /> + <!--<MediaCodec name="OMX.MTK.AUDIO.DECODER.APE" type="audio/ape" > + <Quirk name="decoder-lies-about-number-of-channels" /> + <Quirk name="supports-multiple-frames-per-input-buffer" /> + </MediaCodec> + <MediaCodec name="OMX.MTK.AUDIO.DECODER.ALAC" type="audio/alac" />--> + + <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" /> --> + <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.MTK.VIDEO.DECODER.MPEG2" > + <Type name="video/mpeg2" /> + <Type name="video/mpeg1" /> + <Limit name="size" min="16x16" max="4096x2176" /> + <Limit name="alignment" value="16x16" /> + <Limit name="block-size" value="16x16" /> + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + </MediaCodec> + <MediaCodec name="OMX.MTK.VIDEO.DECODER.HEVC" type="video/hevc" > + <Limit name="size" min="129x65" max="4096x2176" /> + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Feature name="adaptive-playback"/> + </MediaCodec> + <MediaCodec name="OMX.MTK.VIDEO.DECODER.MPEG4" type="video/mp4v-es" > + <Limit name="size" min="16x16" max="4096x2176" /> + <Limit name="alignment" value="16x16" /> + <Limit name="block-size" value="16x16" /> + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Feature name="adaptive-playback"/> + </MediaCodec> + <MediaCodec name="OMX.MTK.VIDEO.DECODER.H263" type="video/3gpp" > + <Limit name="size" min="128x96" max="1408x1152" /> + <Limit name="alignment" value="16x16" /> + <Limit name="block-size" value="16x16" /> + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Feature name="adaptive-playback"/> + </MediaCodec> + <MediaCodec name="OMX.MTK.VIDEO.DECODER.AVC" type="video/avc" > + <Limit name="size" min="64x64" max="4096x3120" /> + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Feature name="adaptive-playback"/> + </MediaCodec> + <MediaCodec name="OMX.MTK.VIDEO.DECODER.VPX" type="video/x-vnd.on2.vp8" > + <Limit name="size" min="16x16" max="1920x1088" /> + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Feature name="adaptive-playback"/> + </MediaCodec> + <MediaCodec name="OMX.MTK.VIDEO.DECODER.VP9" type="video/x-vnd.on2.vp9" > + <Limit name="size" min="16x16" max="1920x1088" /> + <Limit name="alignment" value="16x16" /> + <Limit name="block-size" value="64x64" /> + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Feature name="adaptive-playback"/> + </MediaCodec> + <MediaCodec name="OMX.MTK.VIDEO.DECODER.VC1" > + <Type name="video/x-ms-wmv" /> + <Type name="video/wmv" /> + <Limit name="size" min="16x16" max="1920x1088" /> + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + </MediaCodec> + <MediaCodec name="OMX.MTK.VIDEO.DECODER.DIVX" type="video/divx" > + <Limit name="size" min="16x16" max="4096x2176" /> + <Limit name="alignment" value="16x16" /> + <Limit name="block-size" value="16x16" /> + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + </MediaCodec> + <MediaCodec name="OMX.MTK.VIDEO.DECODER.DIVX3" type="video/divx3" > + <Limit name="size" min="16x16" max="4096x2176" /> + <Limit name="alignment" value="16x16" /> + <Limit name="block-size" value="16x16" /> + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + </MediaCodec> + <MediaCodec name="OMX.MTK.VIDEO.DECODER.XVID" type="video/xvid" > + <Limit name="size" min="16x16" max="4096x2176" /> + <Limit name="alignment" value="16x16" /> + <Limit name="block-size" value="16x16" /> + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + </MediaCodec> + <MediaCodec name="OMX.MTK.VIDEO.DECODER.S263" type="video/flv1" > + <Limit name="size" min="16x16" max="4096x2176" /> + <Limit name="alignment" value="16x16" /> + <Limit name="block-size" value="16x16" /> + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + </MediaCodec> + + <!-- + <MediaCodec name="OMX.google.vp8.decoder" type="video/x-vnd.on2.vp8"> + <Limit name="size" min="2x2" max="1920x1088" /> + <Limit name="alignment" value="2x2" /> + <Limit name="block-size" value="16x16" /> + <Limit name="blocks-per-second" range="1-1000000" /> + <Limit name="bitrate" range="1-40000000" /> + <Feature name="adaptive-playback" /> + </MediaCodec> + + <MediaCodec name="OMX.google.h264.decoder" type="video/avc"> + + <Limit name="size" min="2x2" max="1920x1088" /> + <Limit name="alignment" value="2x2" /> + <Limit name="block-size" value="16x16" /> + <Limit name="blocks-per-second" range="1-983040" /> + <Limit name="bitrate" range="1-40000000" /> + <Feature name="adaptive-playback" /> + </MediaCodec> + --> + </Decoders> + + <Encoders> + <MediaCodec name="OMX.MTK.VIDEO.ENCODER.MPEG4" type="video/mp4v-es" > + <Limit name="size" min="64x64" max="640x480" /> + <Limit name="alignment" value="16x16" /> + <Limit name="block-size" value="16x16" /> + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + </MediaCodec> + <MediaCodec name="OMX.MTK.VIDEO.ENCODER.H263" type="video/3gpp" > + <Limit name="size" min="64x64" max="640x480" /> + <Limit name="alignment" value="16x16" /> + <Limit name="block-size" value="16x16" /> + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + </MediaCodec> + <MediaCodec name="OMX.MTK.VIDEO.ENCODER.AVC" type="video/avc" > + <Limit name="size" min="160x128" max="1920x1080" /> + <Limit name="alignment" value="16x16" /> + <Limit name="block-size" value="16x16" /> + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + </MediaCodec> + <MediaCodec name="OMX.MTK.VIDEO.ENCODER.HEVC" type="video/hevc" > + <Limit name="size" min="160x128" max="3840x2176" /> + <Limit name="alignment" value="32x32" /> + <Limit name="block-size" value="32x32" /> + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + </MediaCodec> + + <MediaCodec name="OMX.MTK.AUDIO.ENCODER.VORBIS" type="audio/vorbis" /> + <MediaCodec name="OMX.MTK.AUDIO.ENCODER.ADPCM.MS" type="audio/x-adpcm-ms" /> + <MediaCodec name="OMX.MTK.AUDIO.ENCODER.ADPCM.DVI" type="audio/x-adpcm-dvi-ima" /> + <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> + <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="1920x1080" /> + <Limit name="alignment" value="2x2" /> + <Limit name="bitrate" range="1-40000000" /> + <Feature name="bitrate-modes" value="VBR,CBR" /> + </MediaCodec> + </Encoders> +</MediaCodecs> diff --git a/configs/media/media_profiles.xml b/configs/media/media_profiles.xml new file mode 100644 index 0000000..5a3217a --- /dev/null +++ b/configs/media/media_profiles.xml @@ -0,0 +1,1200 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2010 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, + VideoEditorCap, + ExportVideoProfile+)> + <!ELEMENT CamcorderProfiles (EncoderProfile+, ImageEncoding+, ImageDecoding, Camera)> + <!ELEMENT EncoderProfile (Video, Audio)> + <!ATTLIST EncoderProfile quality (timelapse1080p|timelapse720p|timelapse480p|timelapsehigh|timelapselow|480p|qcif|high|low|1080p) #REQUIRED> + <!ATTLIST EncoderProfile fileFormat (mp4|3gp) #REQUIRED> + <!ATTLIST EncoderProfile duration (30|60) #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> + <!ATTLIST Camera previewFrameRate CDATA #REQUIRED> + <!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> + <!ATTLIST VideoEditorCap maxInputFrameWidth CDATA #REQUIRED> + <!ATTLIST VideoEditorCap maxInputFrameHeight CDATA #REQUIRED> + <!ATTLIST VideoEditorCap maxOutputFrameWidth CDATA #REQUIRED> + <!ATTLIST VideoEditorCap maxOutputFrameHeight CDATA #REQUIRED> + <!ATTLIST VideoEditorCap maxPrefetchYUVFrames CDATA #REQUIRED> + <!ELEMENT ExportVideoProfile EMPTY> + <!ATTLIST ExportVideoProfile name (h264|h263|m4v) #REQUIRED> + <!ATTLIST ExportVideoProfile profile CDATA #REQUIRED> + <!ATTLIST ExportVideoProfile level CDATA #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="384000" + width="176" + height="144" + frameRate="30" /> + + <Audio codec="amrnb" + bitRate="12200" + sampleRate="8000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="high" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="14000000" + width="1920" + height="1080" + frameRate="30" /> + + <Audio codec="aac" + bitRate="96000" + sampleRate="44100" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="qcif" fileFormat="3gp" duration="30"> + <Video codec="h264" + bitRate="384000" + width="176" + height="144" + frameRate="30" /> + + <Audio codec="amrnb" + bitRate="12200" + sampleRate="8000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="cif" fileFormat="3gp" duration="30"> + <Video codec="h264" + bitRate="1536000" + width="352" + height="288" + frameRate="30" /> + + <Audio codec="amrnb" + bitRate="12200" + sampleRate="8000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="480p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="4000000" + width="640" + height="480" + frameRate="30" /> + + <Audio codec="aac" + bitRate="96000" + sampleRate="44100" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="720p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="8000000" + width="1280" + height="720" + frameRate="30" /> + + <Audio codec="aac" + bitRate="96000" + sampleRate="44100" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="1080p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="14000000" + width="1920" + height="1080" + frameRate="30" /> + + <Audio codec="aac" + bitRate="96000" + sampleRate="44100" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="timelapselow" fileFormat="3gp" duration="30"> + <Video codec="h264" + bitRate="384000" + width="176" + height="144" + frameRate="30" /> + + <!-- + The Audio part of the profile will not be used since time lapse mode + does not capture audio + --> + <Audio codec="amrnb" + bitRate="12200" + sampleRate="8000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="timelapsehigh" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="14000000" + width="1920" + height="1080" + frameRate="30" /> + + <!-- + The Audio part of the profile will not be used since time lapse mode + does not capture audio + --> + <Audio codec="aac" + bitRate="96000" + sampleRate="44100" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="timelapseqcif" fileFormat="3gp" duration="30"> + <Video codec="h264" + bitRate="384000" + width="176" + height="144" + frameRate="30" /> + + <!-- + The Audio part of the profile will not be used since time lapse mode + does not capture audio + --> + <Audio codec="amrnb" + bitRate="12200" + sampleRate="8000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="timelapsecif" fileFormat="3gp" duration="30"> + <Video codec="h264" + bitRate="1536000" + width="352" + height="288" + frameRate="30" /> + + <!-- + The Audio part of the profile will not be used since time lapse mode + does not capture audio + --> + <Audio codec="amrnb" + bitRate="12200" + sampleRate="8000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="4000000" + width="640" + height="480" + frameRate="30" /> + + <!-- + The Audio part of the profile will not be used since time lapse mode + does not capture audio + --> + <Audio codec="aac" + bitRate="96000" + sampleRate="44100" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="8000000" + width="1280" + height="720" + frameRate="30" /> + + <!-- + The Audio part of the profile will not be used since time lapse mode + does not capture audio + --> + <Audio codec="aac" + bitRate="96000" + sampleRate="44100" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="14000000" + width="1920" + height="1080" + frameRate="30" /> + + <!-- + The Audio part of the profile will not be used since time lapse mode + does not capture audio + --> + <Audio codec="aac" + bitRate="96000" + sampleRate="44100" + channels="1" /> + </EncoderProfile> + + <ImageEncoding quality="90" /> + <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="384000" + width="176" + height="144" + frameRate="30" /> + + <Audio codec="amrnb" + bitRate="12200" + sampleRate="8000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="high" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="4000000" + width="640" + height="480" + frameRate="30" /> + + <Audio codec="aac" + bitRate="96000" + sampleRate="44100" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="qcif" fileFormat="3gp" duration="30"> + <Video codec="h264" + bitRate="384000" + width="176" + height="144" + frameRate="30" /> + + <Audio codec="amrnb" + bitRate="12200" + sampleRate="8000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="cif" fileFormat="3gp" duration="30"> + <Video codec="h264" + bitRate="1536000" + width="352" + height="288" + frameRate="30" /> + + <Audio codec="amrnb" + bitRate="12200" + sampleRate="8000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="480p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="4000000" + width="640" + height="480" + frameRate="30" /> + + <Audio codec="aac" + bitRate="96000" + sampleRate="44100" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="timelapselow" fileFormat="3gp" duration="30"> + <Video codec="h264" + bitRate="384000" + width="176" + height="144" + frameRate="30" /> + + <!-- + The Audio part of the profile will not be used since time lapse mode + does not capture audio + --> + <Audio codec="amrnb" + bitRate="12200" + sampleRate="8000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="timelapsehigh" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="4000000" + width="640" + height="480" + frameRate="30" /> + + <!-- + The Audio part of the profile will not be used since time lapse mode + does not capture audio + --> + <Audio codec="aac" + bitRate="96000" + sampleRate="44100" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="timelapseqcif" fileFormat="3gp" duration="30"> + <Video codec="h264" + bitRate="384000" + width="176" + height="144" + frameRate="30" /> + + <!-- + The Audio part of the profile will not be used since time lapse mode + does not capture audio + --> + <Audio codec="amrnb" + bitRate="12200" + sampleRate="8000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="timelapsecif" fileFormat="3gp" duration="30"> + <Video codec="h264" + bitRate="1536000" + width="352" + height="288" + frameRate="30" /> + + <!-- + The Audio part of the profile will not be used since time lapse mode + does not capture audio + --> + <Audio codec="amrnb" + bitRate="12200" + sampleRate="8000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="4000000" + width="640" + height="480" + frameRate="30" /> + + <!-- + The Audio part of the profile will not be used since time lapse mode + does not capture audio + --> + <Audio codec="aac" + bitRate="96000" + sampleRate="44100" + channels="1" /> + </EncoderProfile> + + <ImageEncoding quality="90" /> + <ImageEncoding quality="80" /> + <ImageEncoding quality="70" /> + <ImageDecoding memCap="20000000" /> + + </CamcorderProfiles> + + <!-- Camera 2 --> + <CamcorderProfiles cameraId="2"> + + <EncoderProfile quality="low" fileFormat="3gp" duration="30"> + <Video codec="h264" + bitRate="384000" + width="176" + height="144" + frameRate="30" /> + + <Audio codec="amrnb" + bitRate="12200" + sampleRate="8000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="high" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="14000000" + width="1920" + height="1080" + frameRate="30" /> + + <Audio codec="aac" + bitRate="96000" + sampleRate="16000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="qcif" fileFormat="3gp" duration="30"> + <Video codec="h264" + bitRate="384000" + width="176" + height="144" + frameRate="30" /> + + <Audio codec="amrnb" + bitRate="12200" + sampleRate="8000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="cif" fileFormat="3gp" duration="30"> + <Video codec="h264" + bitRate="1536000" + width="352" + height="288" + frameRate="30" /> + + <Audio codec="amrnb" + bitRate="12200" + sampleRate="8000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="480p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="4000000" + width="640" + height="480" + frameRate="30" /> + + <Audio codec="aac" + bitRate="96000" + sampleRate="16000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="720p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="8000000" + width="1280" + height="720" + frameRate="30" /> + + <Audio codec="aac" + bitRate="96000" + sampleRate="16000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="1080p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="14000000" + width="1920" + height="1080" + frameRate="30" /> + + <Audio codec="aac" + bitRate="96000" + sampleRate="16000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="timelapselow" fileFormat="3gp" duration="30"> + <Video codec="h264" + bitRate="384000" + width="176" + height="144" + frameRate="30" /> + + <!-- + The Audio part of the profile will not be used since time lapse mode + does not capture audio + --> + <Audio codec="amrnb" + bitRate="12200" + sampleRate="8000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="timelapsehigh" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="14000000" + width="1920" + height="1080" + frameRate="30" /> + + <!-- + The Audio part of the profile will not be used since time lapse mode + does not capture audio + --> + <Audio codec="aac" + bitRate="96000" + sampleRate="16000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="timelapseqcif" fileFormat="3gp" duration="30"> + <Video codec="h264" + bitRate="384000" + width="176" + height="144" + frameRate="30" /> + + <!-- + The Audio part of the profile will not be used since time lapse mode + does not capture audio + --> + <Audio codec="amrnb" + bitRate="12200" + sampleRate="8000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="timelapsecif" fileFormat="3gp" duration="30"> + <Video codec="h264" + bitRate="1536000" + width="352" + height="288" + frameRate="30" /> + + <!-- + The Audio part of the profile will not be used since time lapse mode + does not capture audio + --> + <Audio codec="amrnb" + bitRate="12200" + sampleRate="8000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="4000000" + width="640" + height="480" + frameRate="30" /> + + <!-- + The Audio part of the profile will not be used since time lapse mode + does not capture audio + --> + <Audio codec="aac" + bitRate="96000" + sampleRate="16000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="8000000" + width="1280" + height="720" + frameRate="30" /> + + <!-- + The Audio part of the profile will not be used since time lapse mode + does not capture audio + --> + <Audio codec="aac" + bitRate="96000" + sampleRate="16000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="14000000" + width="1920" + height="1080" + frameRate="30" /> + + <!-- + The Audio part of the profile will not be used since time lapse mode + does not capture audio + --> + <Audio codec="aac" + bitRate="96000" + sampleRate="16000" + channels="1" /> + </EncoderProfile> + + <ImageEncoding quality="90" /> + <ImageEncoding quality="80" /> + <ImageEncoding quality="70" /> + <ImageDecoding memCap="20000000" /> + + </CamcorderProfiles> + + <!-- Camera 3 --> + <CamcorderProfiles cameraId="3"> + + <EncoderProfile quality="low" fileFormat="3gp" duration="30"> + <Video codec="h264" + bitRate="384000" + width="176" + height="144" + frameRate="30" /> + + <Audio codec="amrnb" + bitRate="12200" + sampleRate="8000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="high" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="14000000" + width="1920" + height="1080" + frameRate="30" /> + + <Audio codec="aac" + bitRate="96000" + sampleRate="16000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="qcif" fileFormat="3gp" duration="30"> + <Video codec="h264" + bitRate="384000" + width="176" + height="144" + frameRate="30" /> + + <Audio codec="amrnb" + bitRate="12200" + sampleRate="8000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="cif" fileFormat="3gp" duration="30"> + <Video codec="h264" + bitRate="1536000" + width="352" + height="288" + frameRate="30" /> + + <Audio codec="amrnb" + bitRate="12200" + sampleRate="8000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="480p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="4000000" + width="640" + height="480" + frameRate="30" /> + + <Audio codec="aac" + bitRate="96000" + sampleRate="16000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="720p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="8000000" + width="1280" + height="720" + frameRate="30" /> + + <Audio codec="aac" + bitRate="96000" + sampleRate="16000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="1080p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="14000000" + width="1920" + height="1080" + frameRate="30" /> + + <Audio codec="aac" + bitRate="96000" + sampleRate="16000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="timelapselow" fileFormat="3gp" duration="30"> + <Video codec="h264" + bitRate="384000" + width="176" + height="144" + frameRate="30" /> + + <!-- + The Audio part of the profile will not be used since time lapse mode + does not capture audio + --> + <Audio codec="amrnb" + bitRate="12200" + sampleRate="8000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="timelapsehigh" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="14000000" + width="1920" + height="1080" + frameRate="30" /> + + <!-- + The Audio part of the profile will not be used since time lapse mode + does not capture audio + --> + <Audio codec="aac" + bitRate="96000" + sampleRate="16000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="timelapseqcif" fileFormat="3gp" duration="30"> + <Video codec="h264" + bitRate="384000" + width="176" + height="144" + frameRate="30" /> + + <!-- + The Audio part of the profile will not be used since time lapse mode + does not capture audio + --> + <Audio codec="amrnb" + bitRate="12200" + sampleRate="8000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="timelapsecif" fileFormat="3gp" duration="30"> + <Video codec="h264" + bitRate="1536000" + width="352" + height="288" + frameRate="30" /> + + <!-- + The Audio part of the profile will not be used since time lapse mode + does not capture audio + --> + <Audio codec="amrnb" + bitRate="12200" + sampleRate="8000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="4000000" + width="640" + height="480" + frameRate="30" /> + + <!-- + The Audio part of the profile will not be used since time lapse mode + does not capture audio + --> + <Audio codec="aac" + bitRate="96000" + sampleRate="16000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="8000000" + width="1280" + height="720" + frameRate="30" /> + + <!-- + The Audio part of the profile will not be used since time lapse mode + does not capture audio + --> + <Audio codec="aac" + bitRate="96000" + sampleRate="16000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="14000000" + width="1920" + height="1080" + frameRate="30" /> + + <!-- + The Audio part of the profile will not be used since time lapse mode + does not capture audio + --> + <Audio codec="aac" + bitRate="96000" + sampleRate="16000" + channels="1" /> + </EncoderProfile> + + <ImageEncoding quality="90" /> + <ImageEncoding quality="80" /> + <ImageEncoding quality="70" /> + <ImageDecoding memCap="20000000" /> + + </CamcorderProfiles> + + <CamcorderProfiles cameraId="4"> + + <EncoderProfile quality="low" fileFormat="3gp" duration="30"> + <Video codec="h264" + bitRate="384000" + width="176" + height="144" + frameRate="30" /> + + <Audio codec="amrnb" + bitRate="12200" + sampleRate="8000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="high" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="14000000" + width="1920" + height="1080" + frameRate="30" /> + + <Audio codec="aac" + bitRate="96000" + sampleRate="16000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="qcif" fileFormat="3gp" duration="30"> + <Video codec="h264" + bitRate="384000" + width="176" + height="144" + frameRate="30" /> + + <Audio codec="amrnb" + bitRate="12200" + sampleRate="8000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="cif" fileFormat="3gp" duration="30"> + <Video codec="h264" + bitRate="1536000" + width="352" + height="288" + frameRate="30" /> + + <Audio codec="amrnb" + bitRate="12200" + sampleRate="8000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="480p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="4000000" + width="640" + height="480" + frameRate="30" /> + + <Audio codec="aac" + bitRate="96000" + sampleRate="16000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="720p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="8000000" + width="1280" + height="720" + frameRate="30" /> + + <Audio codec="aac" + bitRate="96000" + sampleRate="16000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="1080p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="14000000" + width="1920" + height="1080" + frameRate="30" /> + + <Audio codec="aac" + bitRate="96000" + sampleRate="16000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="timelapselow" fileFormat="3gp" duration="30"> + <Video codec="h264" + bitRate="384000" + width="176" + height="144" + frameRate="30" /> + + <!-- + The Audio part of the profile will not be used since time lapse mode + does not capture audio + --> + <Audio codec="amrnb" + bitRate="12200" + sampleRate="8000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="timelapsehigh" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="14000000" + width="1920" + height="1080" + frameRate="30" /> + + <!-- + The Audio part of the profile will not be used since time lapse mode + does not capture audio + --> + <Audio codec="aac" + bitRate="96000" + sampleRate="16000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="timelapseqcif" fileFormat="3gp" duration="30"> + <Video codec="h264" + bitRate="384000" + width="176" + height="144" + frameRate="30" /> + + <!-- + The Audio part of the profile will not be used since time lapse mode + does not capture audio + --> + <Audio codec="amrnb" + bitRate="12200" + sampleRate="8000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="timelapsecif" fileFormat="3gp" duration="30"> + <Video codec="h264" + bitRate="1536000" + width="352" + height="288" + frameRate="30" /> + + <!-- + The Audio part of the profile will not be used since time lapse mode + does not capture audio + --> + <Audio codec="amrnb" + bitRate="12200" + sampleRate="8000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="4000000" + width="640" + height="480" + frameRate="30" /> + + <!-- + The Audio part of the profile will not be used since time lapse mode + does not capture audio + --> + <Audio codec="aac" + bitRate="96000" + sampleRate="16000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="8000000" + width="1280" + height="720" + frameRate="30" /> + + <!-- + The Audio part of the profile will not be used since time lapse mode + does not capture audio + --> + <Audio codec="aac" + bitRate="96000" + sampleRate="16000" + channels="1" /> + </EncoderProfile> + + <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="30"> + <Video codec="h264" + bitRate="14000000" + width="1920" + height="1080" + frameRate="30" /> + + <!-- + The Audio part of the profile will not be used since time lapse mode + does not capture audio + --> + <Audio codec="aac" + bitRate="96000" + sampleRate="16000" + channels="1" /> + </EncoderProfile> + + <ImageEncoding quality="90" /> + <ImageEncoding quality="80" /> + <ImageEncoding quality="70" /> + <ImageDecoding memCap="20000000" /> + + </CamcorderProfiles> + + <EncoderOutputFileFormat name="3gp" /> + + <!-- + 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="20000000" + minFrameWidth="176" maxFrameWidth="1920" + minFrameHeight="144" maxFrameHeight="1080" + minFrameRate="5" maxFrameRate="30" /> + + <VideoEncoderCap name="h263" enabled="true" + minBitRate="64000" maxBitRate="8000000" + minFrameWidth="176" maxFrameWidth="704" + minFrameHeight="144" maxFrameHeight="576" + minFrameRate="5" maxFrameRate="30" /> + + <VideoEncoderCap name="m4v" enabled="true" + minBitRate="64000" maxBitRate="10000000" + minFrameWidth="176" maxFrameWidth="1280" + minFrameHeight="144" maxFrameHeight="720" + minFrameRate="5" maxFrameRate="30" /> + + <AudioEncoderCap name="aac" enabled="true" + minBitRate="8000" maxBitRate="320000" + minSampleRate="8000" 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="4750" maxBitRate="12200" + minSampleRate="8000" maxSampleRate="8000" + minChannels="1" maxChannels="1" /> + + <VideoDecoderCap name="wmv" enabled="true"/> + <AudioDecoderCap name="wma" enabled="true"/> + <VideoEditorCap maxInputFrameWidth="1920" + maxInputFrameHeight="1080" + maxOutputFrameWidth="1920" + maxOutputFrameHeight="1080" + maxPrefetchYUVFrames="10" /> + <!-- + The VideoEditor Export codec profile and level values + correspond to the values in OMX_Video.h. + E.g. for h264, profile value 1 means OMX_VIDEO_AVCProfileBaseline + and level 512 means OMX_VIDEO_AVCLevel31. + Please note that the values are in decimal. + These values are for video encoder. + --> + <!-- + Codec = h.263, Baseline profile, level 1 + --> + <ExportVideoProfile name="h263" profile="1" + level="1" /> + <!-- + Codec = h.264, Baseline profile, level 4 + --> + <ExportVideoProfile name="h264" profile="1" + level="2048" /> + <!-- + Codec = mpeg4, Simple profile, level 5 + --> + <ExportVideoProfile name="m4v" profile="1" + level="128" /> +</MediaSettings> diff --git a/configs/telephony/ecc_list.xml b/configs/telephony/ecc_list.xml new file mode 100644 index 0000000..3cdf677 --- /dev/null +++ b/configs/telephony/ecc_list.xml @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="utf-8"?> +<EccTable> + <!-- + The attribute definition for tag EccEntry: + - Ecc: the emergnecy number + - Category: the service category + - Condition: there are following values: + - 0: ecc only when no sim + - 1: ecc always + - 2: MMI will show ecc but send to nw as normal call + --> + <EccEntry Ecc="112" Category="0" Condition="1" /> + <EccEntry Ecc="911" Category="0" Condition="1" /> + <EccEntry Ecc="000" Category="0" Condition="0" /> + <EccEntry Ecc="08" Category="0" Condition="0" /> + <EccEntry Ecc="110" Category="0" Condition="0" /> + <EccEntry Ecc="118" Category="0" Condition="0" /> + <EccEntry Ecc="119" Category="0" Condition="0" /> + <EccEntry Ecc="999" Category="0" Condition="1" /> + <EccEntry Ecc="998" Category="0" Condition="1" /> + <EccEntry Ecc="997" Category="0" Condition="1" /> + <EccEntry Ecc="986" Category="0" Condition="1" /> + +</EccTable> diff --git a/configs/telephony/spn-conf.xml b/configs/telephony/spn-conf.xml new file mode 100644 index 0000000..618dd89 --- /dev/null +++ b/configs/telephony/spn-conf.xml @@ -0,0 +1,1099 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<spnOverrides version="1"> +<spnOverride numeric="3100" spn="NEPW"/> +<spnOverride numeric="3102" spn="NEPW"/> +<spnOverride numeric="3109" spn="NEPW"/> +<spnOverride numeric="3500" spn="CELLONE"/> +<spnOverride numeric="7081" spn="ClaroHND"/> +<spnOverride numeric="20201" spn="GR COSMOTE"/> +<spnOverride numeric="20205" spn="vodafone GR"/> +<spnOverride numeric="20209" spn="Q-TELCOM"/> +<spnOverride numeric="20210" spn="WIND"/> +<spnOverride numeric="20404" spn="vodafone NL"/> +<spnOverride numeric="20408" spn="NL KPN"/> +<spnOverride numeric="20409" spn="Lyca mobile"/> +<spnOverride numeric="20412" spn="NL Telfort"/> +<spnOverride numeric="20416" spn="T-Mobile NL"/> +<spnOverride numeric="20420" spn="Orange"/> +<spnOverride numeric="20601" spn="Proximus"/> +<spnOverride numeric="20605" spn="Telenet"/> +<spnOverride numeric="20610" spn="Mobistar"/> +<spnOverride numeric="20620" spn="BASE"/> +<spnOverride numeric="20800" spn="Orange F"/> +<spnOverride numeric="20801" spn="Orange F"/> +<spnOverride numeric="20802" spn="F - Contact"/> +<spnOverride numeric="20810" spn="SFR"/> +<spnOverride numeric="20813" spn="F - Contact"/> +<spnOverride numeric="20815" spn="Free"/> +<spnOverride numeric="20820" spn="BYTEL"/> +<spnOverride numeric="20826" spn="NRJ Mobile"/> +<spnOverride numeric="20888" spn="F - Contact"/> +<spnOverride numeric="21201" spn="vala"/> +<spnOverride numeric="21210" spn="Monaco"/> +<spnOverride numeric="21303" spn="STA-MOBILAND"/> +<spnOverride numeric="21401" spn="vodafone ES"/> +<spnOverride numeric="21403" spn="Orange"/> +<spnOverride numeric="21404" spn="Yoigo"/> +<spnOverride numeric="21407" spn="movistar"/> +<spnOverride numeric="21601" spn="TelenorH"/> +<spnOverride numeric="21630" spn="T-Mobile H"/> +<spnOverride numeric="21670" spn="vodafone HU"/> +<spnOverride numeric="21803" spn="Eronet"/> +<spnOverride numeric="21805" spn="m:tel"/> +<spnOverride numeric="21890" spn="BHMobile"/> +<spnOverride numeric="21901" spn="T-Mobile"/> +<spnOverride numeric="21902" spn="Tele2"/> +<spnOverride numeric="21910" spn="HR VIP"/> +<spnOverride numeric="22001" spn="Telenor"/> +<spnOverride numeric="22002" spn="ProMonte"/> +<spnOverride numeric="22003" spn="Telekom Srbija"/> +<spnOverride numeric="22004" spn="T-Mobile CG"/> +<spnOverride numeric="22005" spn="Vip SRB"/> +<spnOverride numeric="22201" spn="I TIM"/> +<spnOverride numeric="22210" spn="vodafone IT"/> +<spnOverride numeric="22288" spn="I WIND"/> +<spnOverride numeric="22299" spn="3 ITA"/> +<spnOverride numeric="22601" spn="RO Vodafone RO"/> +<spnOverride numeric="22603" spn="RO COSMOTE"/> +<spnOverride numeric="22605" spn="Digi"/> +<spnOverride numeric="22610" spn="RO ORANGE"/> +<spnOverride numeric="22801" spn="Swisscom"/> +<spnOverride numeric="22802" spn="Sunrise"/> +<spnOverride numeric="22803" spn="Orange"/> +<spnOverride numeric="22807" spn="In Phone"/> +<spnOverride numeric="22808" spn="T2"/> +<spnOverride numeric="23001" spn="T-Mobile CZ"/> +<spnOverride numeric="23002" spn="O2 - CZ"/> +<spnOverride numeric="23003" spn="Vodafone CZ"/> +<spnOverride numeric="23101" spn="Orange SK"/> +<spnOverride numeric="23102" spn="T-Mobile SK"/> +<spnOverride numeric="23106" spn="O2 - SK"/> +<spnOverride numeric="23201" spn="A1"/> +<spnOverride numeric="23203" spn="T-Mobile A"/> +<spnOverride numeric="23205" spn="Orange AT"/> +<spnOverride numeric="23207" spn="telering"/> +<spnOverride numeric="23210" spn="3 AT"/> +<spnOverride numeric="23212" spn="Orange AT"/> +<spnOverride numeric="23401" spn="UK01"/> +<spnOverride numeric="23402" spn="O2 -UK"/> +<spnOverride numeric="23403" spn="Jersey Telenet"/> +<spnOverride numeric="23407" spn="Cable Wireless UK"/> +<spnOverride numeric="23410" spn="O2 -UK"/> +<spnOverride numeric="23411" spn="O2 -UK"/> +<spnOverride numeric="23415" spn="vodafone UK"/> +<spnOverride numeric="23419" spn="PMN UK"/> +<spnOverride numeric="23420" spn="3 UK"/> +<spnOverride numeric="23430" spn="T-Mobile UK"/> +<spnOverride numeric="23431" spn="T-Mobile UK"/> +<spnOverride numeric="23432" spn="T-Mobile UK"/> +<spnOverride numeric="23433" spn="Orange"/> +<spnOverride numeric="23434" spn="Orange"/> +<spnOverride numeric="23450" spn="JT-Wave"/> +<spnOverride numeric="23455" spn="Sure"/> +<spnOverride numeric="23458" spn="Manx"/> +<spnOverride numeric="23801" spn="TDC MOBIL"/> +<spnOverride numeric="23802" spn="Telenor"/> +<spnOverride numeric="23806" spn="3 DK"/> +<spnOverride numeric="23820" spn="TELIA DK"/> +<spnOverride numeric="23877" spn="Sonofon"/> +<spnOverride numeric="23892" spn="TelenoDK"/> +<spnOverride numeric="24001" spn="TELIA"/> +<spnOverride numeric="24002" spn="3 SE"/> +<spnOverride numeric="24004" spn="Sweden"/> +<spnOverride numeric="24005" spn="Sweden 3G"/> +<spnOverride numeric="24007" spn="Tele2"/> +<spnOverride numeric="24008" spn="Telenor SE"/> +<spnOverride numeric="24010" spn="SpringMobil SE"/> +<spnOverride numeric="24024" spn="MobileS"/> +<spnOverride numeric="24201" spn="N Telenor"/> +<spnOverride numeric="24202" spn="N NetCom"/> +<spnOverride numeric="24205" spn="Mobile Norway"/> +<spnOverride numeric="24403" spn="DNA"/> +<spnOverride numeric="24405" spn="FI Elisa"/> +<spnOverride numeric="24412" spn="DNA"/> +<spnOverride numeric="24414" spn="FI AMT"/> +<spnOverride numeric="24491" spn="FI SONERA"/> +<spnOverride numeric="24601" spn="OMNITEL LT"/> +<spnOverride numeric="24602" spn="LT BITE GSM"/> +<spnOverride numeric="24603" spn="TELE2"/> +<spnOverride numeric="24701" spn="LMT GSM"/> +<spnOverride numeric="24702" spn="TELE2"/> +<spnOverride numeric="24705" spn="BITE LV"/> +<spnOverride numeric="24801" spn="EE EMT"/> +<spnOverride numeric="24802" spn="EE elisa"/> +<spnOverride numeric="24803" spn="TELE2"/> +<spnOverride numeric="25001" spn="MTS"/> +<spnOverride numeric="25002" spn="MegaFon"/> +<spnOverride numeric="25004" spn="RUS_SCN"/> +<spnOverride numeric="25005" spn="ETK"/> +<spnOverride numeric="25007" spn="BMT"/> +<spnOverride numeric="25010" spn="DTC"/> +<spnOverride numeric="25012" spn="Baykalwestcom"/> +<spnOverride numeric="25013" spn="KUGSM"/> +<spnOverride numeric="25015" spn="SMARTS"/> +<spnOverride numeric="25016" spn="NTC"/> +<spnOverride numeric="25017" spn="Utel"/> +<spnOverride numeric="25019" spn="INDIGO"/> +<spnOverride numeric="25020" spn="TELE2"/> +<spnOverride numeric="25028" spn="Beeline"/> +<spnOverride numeric="25035" spn="MOTIV"/> +<spnOverride numeric="25037" spn="KODOTEL"/> +<spnOverride numeric="25039" spn="Utel"/> +<spnOverride numeric="25099" spn="Beeline"/> +<spnOverride numeric="25501" spn="MTS UKR"/> +<spnOverride numeric="25502" spn="Beeline"/> +<spnOverride numeric="25503" spn="Kyivstar"/> +<spnOverride numeric="25505" spn="GT"/> +<spnOverride numeric="25506" spn="life:)"/> +<spnOverride numeric="25507" spn="Utel"/> +<spnOverride numeric="25701" spn="Velcom"/> +<spnOverride numeric="25702" spn="MTS"/> +<spnOverride numeric="25704" spn="life:)"/> +<spnOverride numeric="25901" spn="Orange MD"/> +<spnOverride numeric="25902" spn="MDCELL"/> +<spnOverride numeric="25903" spn="UNITE"/> +<spnOverride numeric="25904" spn="EVENTIS"/> +<spnOverride numeric="25905" spn="UNITE"/> +<spnOverride numeric="26001" spn="Plus"/> +<spnOverride numeric="26002" spn="Era"/> +<spnOverride numeric="26003" spn="Orange PL"/> +<spnOverride numeric="26006" spn="Play"/> +<spnOverride numeric="26010" spn="Sferia"/> +<spnOverride numeric="26012" spn="Cyfrowy Polsat"/> +<spnOverride numeric="26015" spn="CenterNet S.A."/> +<spnOverride numeric="26016" spn="Mobyland Sp. z o.o."/> +<spnOverride numeric="26017" spn="Aero 2 Sp. z o.o."/> +<spnOverride numeric="26201" spn="T-Mobile D"/> +<spnOverride numeric="26202" spn="Vodafone.de"/> +<spnOverride numeric="26203" spn="E-Plus"/> +<spnOverride numeric="26207" spn="o2 - de"/> +<spnOverride numeric="26208" spn="o2 - de"/> +<spnOverride numeric="26601" spn="GIBTEL"/> +<spnOverride numeric="26606" spn="CTS"/> +<spnOverride numeric="26801" spn="vodafone P"/> +<spnOverride numeric="26803" spn="P OPTIMUS"/> +<spnOverride numeric="26806" spn="P TMN"/> +<spnOverride numeric="27001" spn="L LUXGSM"/> +<spnOverride numeric="27077" spn="L TANGO"/> +<spnOverride numeric="27099" spn="L Orange-LU"/> +<spnOverride numeric="27201" spn="vodafone IE"/> +<spnOverride numeric="27202" spn="O2 IRL"/> +<spnOverride numeric="27203" spn="IRL - METEOR"/> +<spnOverride numeric="27205" spn="3 IRL"/> +<spnOverride numeric="27211" spn="Tesco Mobile"/> +<spnOverride numeric="27401" spn="Siminn"/> +<spnOverride numeric="27402" spn="Vodafone"/> +<spnOverride numeric="27404" spn="Viking"/> +<spnOverride numeric="27407" spn="IceCell"/> +<spnOverride numeric="27408" spn="On-waves"/> +<spnOverride numeric="27411" spn="NOVA"/> +<spnOverride numeric="27412" spn="Siminn"/> +<spnOverride numeric="27601" spn="AMC - AL"/> +<spnOverride numeric="27602" spn="vodafone AL"/> +<spnOverride numeric="27603" spn="EAGLE AL"/> +<spnOverride numeric="27604" spn="PLUS AL"/> +<spnOverride numeric="27801" spn="vodafone MT"/> +<spnOverride numeric="27821" spn="go mobile"/> +<spnOverride numeric="27877" spn="3GT MT"/> +<spnOverride numeric="28001" spn="Cytamobile-Vodafone "/> +<spnOverride numeric="28010" spn="MTN"/> +<spnOverride numeric="28201" spn="GCELL"/> +<spnOverride numeric="28202" spn="MAGTI"/> +<spnOverride numeric="28204" spn="BEELINE"/> +<spnOverride numeric="28300" spn="MTS Armenia"/> +<spnOverride numeric="28301" spn="Beeline AM"/> +<spnOverride numeric="28305" spn="MTS Armenia"/> +<spnOverride numeric="28310" spn="Orange"/> +<spnOverride numeric="28401" spn="M-Tel BG"/> +<spnOverride numeric="28403" spn="vivatel"/> +<spnOverride numeric="28405" spn="BG GLOBUL"/> +<spnOverride numeric="28601" spn="TR TURKCELL"/> +<spnOverride numeric="28602" spn="VODAFONE TR"/> +<spnOverride numeric="28603" spn="AVEA"/> +<spnOverride numeric="28801" spn="FT-GSM"/> +<spnOverride numeric="28802" spn="VODAFONE"/> +<spnOverride numeric="29001" spn="TELE GRL"/> +<spnOverride numeric="29266" spn="SMT"/> +<spnOverride numeric="29340" spn="Si.mobil"/> +<spnOverride numeric="29341" spn="Mobitel"/> +<spnOverride numeric="29364" spn="T-2"/> +<spnOverride numeric="29370" spn="Tusmobil"/> +<spnOverride numeric="29401" spn="T-Mobile MK"/> +<spnOverride numeric="29402" spn="ONE"/> +<spnOverride numeric="29403" spn="Vip MKD"/> +<spnOverride numeric="29501" spn="SwisscomFL"/> +<spnOverride numeric="29502" spn="Orange FL"/> +<spnOverride numeric="29505" spn="FL1"/> +<spnOverride numeric="29577" spn="LI TANGO"/> +<spnOverride numeric="30272" spn="Rogers"/> +<spnOverride numeric="30286" spn="Telus"/> +<spnOverride numeric="30801" spn="AMERIS"/> +<spnOverride numeric="31000" spn="Verizon"/> +<spnOverride numeric="31031" spn="T-Mobile "/> +<spnOverride numeric="31046" spn="SIMMETRY"/> +<spnOverride numeric="31100" spn="WILKES"/> +<spnOverride numeric="31101" spn="WILKES"/> +<spnOverride numeric="31105" spn="WILKES"/> +<spnOverride numeric="33403" spn="movistar"/> +<spnOverride numeric="33805" spn="DIGICEL"/> +<spnOverride numeric="34001" spn="F-Orange"/> +<spnOverride numeric="34002" spn="ONLY"/> +<spnOverride numeric="34003" spn="CHIPPIE"/> +<spnOverride numeric="34008" spn="DAUPHIN"/> +<spnOverride numeric="34020" spn="DIGICEL"/> +<spnOverride numeric="35001" spn="Digicel"/> +<spnOverride numeric="35002" spn="M3 WIRELESS"/> +<spnOverride numeric="35010" spn="Cingular"/> +<spnOverride numeric="36251" spn="Telcell GSM"/> +<spnOverride numeric="36269" spn="CT GSM"/> +<spnOverride numeric="36291" spn="CHIPPIE"/> +<spnOverride numeric="36301" spn="SETAR GSM"/> +<spnOverride numeric="36320" spn="Digicel"/> +<spnOverride numeric="36439" spn="BaTelCel"/> +<spnOverride numeric="36801" spn="Cubacel"/> +<spnOverride numeric="37001" spn="orange"/> +<spnOverride numeric="37002" spn="CLARO DOM"/> +<spnOverride numeric="37004" spn="Viva"/> +<spnOverride numeric="37201" spn="COMCEL"/> +<spnOverride numeric="37412" spn="TSTT"/> +<spnOverride numeric="40001" spn="ACELL"/> +<spnOverride numeric="40002" spn="BKCELL"/> +<spnOverride numeric="40004" spn="Nar"/> +<spnOverride numeric="40101" spn="Beeline KZ"/> +<spnOverride numeric="40102" spn="KZ KCELL"/> +<spnOverride numeric="40177" spn="NEO-KZ"/> +<spnOverride numeric="40211" spn="B-Mobile"/> +<spnOverride numeric="40277" spn="TashiCell"/> +<spnOverride numeric="40401" spn="Vodafone"/> +<spnOverride numeric="40400" spn="Reliance"/> +<spnOverride numeric="40402" spn="Airtel"/> +<spnOverride numeric="40403" spn="Airtel"/> +<spnOverride numeric="40404" spn="IDEA"/> +<spnOverride numeric="40405" spn="Vodafone"/> +<spnOverride numeric="40407" spn="IDEA"/> +<spnOverride numeric="40409" spn="Reliance"/> +<spnOverride numeric="40410" spn="Airtel"/> +<spnOverride numeric="40411" spn="Vodafone"/> +<spnOverride numeric="40412" spn="IDEA"/> +<spnOverride numeric="40413" spn="Vodafone"/> +<spnOverride numeric="40414" spn="IDEA"/> +<spnOverride numeric="40415" spn="Vodafone"/> +<spnOverride numeric="40416" spn="Airtel"/> +<spnOverride numeric="40417" spn="Aircel"/> +<spnOverride numeric="40418" spn="Reliance"/> +<spnOverride numeric="40419" spn="IDEA"/> +<spnOverride numeric="40420" spn="Vodafone"/> +<spnOverride numeric="40421" spn="LoopMobile"/> +<spnOverride numeric="40422" spn="IDEA"/> +<spnOverride numeric="40424" spn="IDEA"/> +<spnOverride numeric="40425" spn="Aircel"/> +<spnOverride numeric="40427" spn="Vodafone"/> +<spnOverride numeric="40428" spn="Aircel"/> +<spnOverride numeric="40429" spn="Aircel"/> +<spnOverride numeric="40430" spn="Vodafone"/> +<spnOverride numeric="40431" spn="AirTel"/> +<spnOverride numeric="40433" spn="Aircel"/> +<spnOverride numeric="40434" spn="CellOne"/> +<spnOverride numeric="40435" spn="Aircel"/> +<spnOverride numeric="40436" spn="Reliance"/> +<spnOverride numeric="40437" spn="Aircel"/> +<spnOverride numeric="40438" spn="CellOne"/> +<spnOverride numeric="40440" spn="Airtel"/> +<spnOverride numeric="40441" spn="Aircel"/> +<spnOverride numeric="40442" spn="Aircel"/> +<spnOverride numeric="40443" spn="Vodafone"/> +<spnOverride numeric="40444" spn="IDEA"/> +<spnOverride numeric="40445" spn="Airtel"/> +<spnOverride numeric="40446" spn="Vodafone"/> +<spnOverride numeric="40449" spn="AirTel"/> +<spnOverride numeric="40450" spn="Reliance"/> +<spnOverride numeric="40451" spn="CellOne"/> +<spnOverride numeric="40452" spn="Reliance"/> +<spnOverride numeric="40453" spn="CellOne"/> +<spnOverride numeric="40454" spn="CellOne"/> +<spnOverride numeric="40455" spn="CellOne"/> +<spnOverride numeric="40456" spn="IDEA"/> +<spnOverride numeric="40457" spn="CellOne"/> +<spnOverride numeric="40458" spn="CellOne"/> +<spnOverride numeric="40459" spn="CellOne"/> +<spnOverride numeric="40460" spn="Vodafone"/> +<spnOverride numeric="40462" spn="CellOne"/> +<spnOverride numeric="40464" spn="CellOne"/> +<spnOverride numeric="40466" spn="CellOne"/> +<spnOverride numeric="40467" spn="Reliance"/> +<spnOverride numeric="40468" spn="Dolphin"/> +<spnOverride numeric="40469" spn="Dolphin"/> +<spnOverride numeric="40470" spn="Airtel"/> +<spnOverride numeric="40471" spn="CellOne"/> +<spnOverride numeric="40472" spn="CellOne"/> +<spnOverride numeric="40473" spn="CellOne"/> +<spnOverride numeric="40474" spn="CellOne"/> +<spnOverride numeric="40475" spn="CellOne"/> +<spnOverride numeric="40476" spn="CellOne"/> +<spnOverride numeric="40477" spn="CellOne"/> +<spnOverride numeric="40478" spn="IDEA"/> +<spnOverride numeric="40479" spn="CellOne"/> +<spnOverride numeric="40480" spn="CellOne"/> +<spnOverride numeric="40481" spn="CellOne"/> +<spnOverride numeric="40482" spn="IDEA"/> +<spnOverride numeric="40483" spn="Reliance"/> +<spnOverride numeric="40484" spn="Vodafone"/> +<spnOverride numeric="40485" spn="Reliance"/> +<spnOverride numeric="40486" spn="Vodafone"/> +<spnOverride numeric="40487" spn="IDEA"/> +<spnOverride numeric="40488" spn="Vodafone"/> +<spnOverride numeric="40489" spn="IDEA"/> +<spnOverride numeric="40490" spn="AirTel"/> +<spnOverride numeric="40491" spn="Aircel"/> +<spnOverride numeric="40492" spn="Airtel"/> +<spnOverride numeric="40493" spn="Airtel"/> +<spnOverride numeric="40494" spn="Airtel"/> +<spnOverride numeric="40495" spn="Airtel"/> +<spnOverride numeric="40496" spn="Airtel"/> +<spnOverride numeric="40497" spn="Airtel"/> +<spnOverride numeric="40498" spn="Airtel"/> +<spnOverride numeric="40501" spn="Reliance"/> +<spnOverride numeric="40505" spn="Reliance"/> +<spnOverride numeric="40506" spn="Reliance"/> +<spnOverride numeric="40507" spn="Reliance"/> +<spnOverride numeric="40509" spn="Reliance"/> +<spnOverride numeric="40510" spn="Reliance"/> +<spnOverride numeric="40511" spn="Reliance"/> +<spnOverride numeric="40513" spn="Reliance"/> +<spnOverride numeric="40515" spn="Reliance"/> +<spnOverride numeric="40518" spn="Reliance"/> +<spnOverride numeric="40519" spn="Reliance"/> +<spnOverride numeric="40520" spn="Reliance"/> +<spnOverride numeric="40521" spn="Reliance"/> +<spnOverride numeric="40522" spn="Reliance"/> +<spnOverride numeric="40548" spn="Indian Railways"/> +<spnOverride numeric="40551" spn="AirTel"/> +<spnOverride numeric="40552" spn="Airtel"/> +<spnOverride numeric="40553" spn="Airtel"/> +<spnOverride numeric="40554" spn="Airtel"/> +<spnOverride numeric="40555" spn="Airtel"/> +<spnOverride numeric="40556" spn="Airtel"/> +<spnOverride numeric="40566" spn="Vodafone"/> +<spnOverride numeric="40567" spn="Vodafone"/> +<spnOverride numeric="40570" spn="IDEA"/> +<spnOverride numeric="41001" spn="Mobilink"/> +<spnOverride numeric="41003" spn="PK-UFONE"/> +<spnOverride numeric="41004" spn="ZONG"/> +<spnOverride numeric="41006" spn="Telenor PK"/> +<spnOverride numeric="41007" spn="WaridTel"/> +<spnOverride numeric="41201" spn="AF AWCC"/> +<spnOverride numeric="41220" spn="ROSHAN"/> +<spnOverride numeric="41240" spn="MTN AF"/> +<spnOverride numeric="41250" spn="Etisalat Af"/> +<spnOverride numeric="41301" spn="Mobitel"/> +<spnOverride numeric="41302" spn="SRI DIALOG"/> +<spnOverride numeric="41303" spn="ETISALAT "/> +<spnOverride numeric="41305" spn="SRI AIRTEL"/> +<spnOverride numeric="41308" spn="Hutch"/> +<spnOverride numeric="41401" spn="MPTGSM"/> +<spnOverride numeric="41501" spn="Alfa"/> +<spnOverride numeric="41503" spn="MTC-Touch"/> +<spnOverride numeric="41505" spn="Ogero Mobile (OM)"/> +<spnOverride numeric="41601" spn="zain JO"/> +<spnOverride numeric="41603" spn="Umniah"/> +<spnOverride numeric="41677" spn="Orange"/> +<spnOverride numeric="41701" spn="SYRIATEL"/> +<spnOverride numeric="41702" spn="MTN"/> +<spnOverride numeric="41709" spn="MOBILE"/> +<spnOverride numeric="41800" spn="ASIACELL"/> +<spnOverride numeric="41805" spn="ASIACELL"/> +<spnOverride numeric="41820" spn="zain IQ"/> +<spnOverride numeric="41830" spn="IRAQNA"/> +<spnOverride numeric="41840" spn="KOREK"/> +<spnOverride numeric="41902" spn="zain KW"/> +<spnOverride numeric="41903" spn="Wataniya Telecom"/> +<spnOverride numeric="41904" spn="VIVA"/> +<spnOverride numeric="42001" spn="STC"/> +<spnOverride numeric="42101" spn="SabaFon"/> +<spnOverride numeric="42102" spn="MTN"/> +<spnOverride numeric="42202" spn="OMAN MOBILE"/> +<spnOverride numeric="42203" spn="nawras"/> +<spnOverride numeric="42402" spn="ETISALAT"/> +<spnOverride numeric="42403" spn="du"/> +<spnOverride numeric="42501" spn="IL ORANGE"/> +<spnOverride numeric="42502" spn="Cellcom Israel"/> +<spnOverride numeric="42503" spn="Pelephone"/> +<spnOverride numeric="42505" spn="JAWWAL"/> +<spnOverride numeric="42506" spn="Wataniya Mobile "/> +<spnOverride numeric="42601" spn="BATELCO"/> +<spnOverride numeric="42602" spn="zain BH"/> +<spnOverride numeric="42604" spn="VIVA BH"/> +<spnOverride numeric="42701" spn="Qat - Qtel"/> +<spnOverride numeric="42702" spn="vodafone"/> +<spnOverride numeric="42888" spn="Unitel"/> +<spnOverride numeric="42899" spn="MobiCom"/> +<spnOverride numeric="42901" spn="NTC"/> +<spnOverride numeric="42902" spn="Ncell"/> +<spnOverride numeric="43211" spn="MCI"/> +<spnOverride numeric="43214" spn="IR KISH"/> +<spnOverride numeric="43219" spn="MTCE"/> +<spnOverride numeric="43232" spn="Taliya"/> +<spnOverride numeric="43235" spn="MTN Irancell"/> +<spnOverride numeric="43404" spn="Beeline UZ"/> +<spnOverride numeric="43405" spn="UZB Ucell"/> +<spnOverride numeric="43407" spn="UZB MTS"/> +<spnOverride numeric="43601" spn="TCELL"/> +<spnOverride numeric="43602" spn="TCELL"/> +<spnOverride numeric="43603" spn="MLT"/> +<spnOverride numeric="43604" spn="Babilon"/> +<spnOverride numeric="43605" spn="BEELINE"/> +<spnOverride numeric="43612" spn="INDIGO-T"/> +<spnOverride numeric="43701" spn="Beeline KG"/> +<spnOverride numeric="43705" spn="MEGACOM"/> +<spnOverride numeric="43709" spn="O!"/> +<spnOverride numeric="43801" spn="MTS TM"/> +<spnOverride numeric="44000" spn="eMobile"/> +<spnOverride numeric="44007" spn="KDDI"/> +<spnOverride numeric="44010" spn="DOCOMO"/> +<spnOverride numeric="44020" spn="SoftBank"/> +<spnOverride numeric="44050" spn="KDDI"/> +<spnOverride numeric="45002" spn="KTF"/> +<spnOverride numeric="45005" spn="SK Telecom"/> +<spnOverride numeric="45008" spn="KTF"/> +<spnOverride numeric="45201" spn="Mobifone"/> +<spnOverride numeric="45202" spn="VINAPHONE"/> +<spnOverride numeric="45204" spn="Viettel Mobile"/> +<spnOverride numeric="45205" spn="VNMOBILE"/> +<spnOverride numeric="45207" spn="Beeline"/> +<spnOverride numeric="45208" spn="EVNTelecom"/> +<spnOverride numeric="45400" spn="CSL"/> +<spnOverride numeric="45402" spn="CSL"/> +<spnOverride numeric="45403" spn="3 HK"/> +<spnOverride numeric="45404" spn="3(2G)"/> +<spnOverride numeric="45406" spn="SmarToneVodafone"/> +<spnOverride numeric="45429" spn="PCCW"/> +<spnOverride numeric="45410" spn="CSL"/> +<spnOverride numeric="45412" spn="CMCC"/> +<spnOverride numeric="45413" spn="CMCC HK"/> +<spnOverride numeric="45415" spn="SmarToneVodafone"/> +<spnOverride numeric="45416" spn="PCCW"/> +<spnOverride numeric="45418" spn="CSL"/> +<spnOverride numeric="45419" spn="PCCW"/> +<spnOverride numeric="45500" spn="SmarTone"/> +<spnOverride numeric="45501" spn="CTM"/> +<spnOverride numeric="45502" spn="CT Macao"/> +<spnOverride numeric="45503" spn="HT Macau"/> +<spnOverride numeric="45504" spn="CTM"/> +<spnOverride numeric="45505" spn="3 Macau"/> +<spnOverride numeric="45601" spn="CELLCARD"/> +<spnOverride numeric="45602" spn="hello"/> +<spnOverride numeric="45604" spn="QB"/> +<spnOverride numeric="45605" spn="STARCELL"/> +<spnOverride numeric="45606" spn="SMART"/> +<spnOverride numeric="45608" spn="Metfone"/> +<spnOverride numeric="45609" spn="Beeline"/> +<spnOverride numeric="45618" spn="Mfone"/> +<spnOverride numeric="45701" spn="LAO GSM"/> +<spnOverride numeric="45702" spn="ETL MOBILE"/> +<spnOverride numeric="45703" spn="UNITEL"/> +<spnOverride numeric="45708" spn="TIGO LAO"/> +<spnOverride numeric="46000" spn="CMCC"/> +<spnOverride numeric="46001" spn="UNICOM"/> +<spnOverride numeric="46002" spn="CMCC(02)"/> +<spnOverride numeric="46007" spn="CMCC(07)"/> +<spnOverride numeric="46601" spn="Far EasTone"/> +<spnOverride numeric="46605" spn="APTG"/> +<spnOverride numeric="46668" spn="ACeS"/> +<spnOverride numeric="46688" spn="KG Telecom"/> +<spnOverride numeric="46689" spn="VIBO"/> +<spnOverride numeric="46692" spn="Chunghwa Telecom"/> +<spnOverride numeric="46693" spn="MobiTai"/> +<spnOverride numeric="46697" spn="Taiwan Mobile"/> +<spnOverride numeric="46699" spn="TransAsia"/> +<spnOverride numeric="46703" spn="SUNNET"/> +<spnOverride numeric="47001" spn="Grameenphone"/> +<spnOverride numeric="47002" spn="Robi"/> +<spnOverride numeric="47003" spn="Banglalink"/> +<spnOverride numeric="47004" spn="Teletalk"/> +<spnOverride numeric="47007" spn="Airtel"/> +<spnOverride numeric="47201" spn="Dhiraagu"/> +<spnOverride numeric="47202" spn="WATANIYA"/> +<spnOverride numeric="50212" spn="MY MAXIS"/> +<spnOverride numeric="50213" spn="MY CELCOM 3G"/> +<spnOverride numeric="50216" spn="MY DiGi"/> +<spnOverride numeric="50218" spn="U MOBILE"/> +<spnOverride numeric="50219" spn="MY CELCOM"/> +<spnOverride numeric="50501" spn="Telstra Mobile"/> +<spnOverride numeric="50502" spn="Optus"/> +<spnOverride numeric="50503" spn="vodafone AU"/> +<spnOverride numeric="50506" spn="3TELSTRA"/> +<spnOverride numeric="50510" spn="NT"/> +<spnOverride numeric="50519" spn="Lycamobile"/> +<spnOverride numeric="51000" spn="ACeS"/> +<spnOverride numeric="51001" spn="INDOSAT"/> +<spnOverride numeric="51008" spn="axis"/> +<spnOverride numeric="51010" spn="TELKOMSEL"/> +<spnOverride numeric="51011" spn="XL"/> +<spnOverride numeric="51021" spn="INDOSAT"/> +<spnOverride numeric="51089" spn="3"/> +<spnOverride numeric="51402" spn="TLS-TT"/> +<spnOverride numeric="51501" spn="ISLACOM"/> +<spnOverride numeric="51502" spn="Globe Telecom"/> +<spnOverride numeric="51503" spn="SMART"/> +<spnOverride numeric="51505" spn="SUN"/> +<spnOverride numeric="51511" spn="ACeS"/> +<spnOverride numeric="51518" spn="CURE"/> +<spnOverride numeric="515034" spn="SUN"/> +<spnOverride numeric="515035" spn="SUN"/> +<spnOverride numeric="515036" spn="SUN"/> +<spnOverride numeric="515037" spn="SUN"/> +<spnOverride numeric="515038" spn="SUN"/> +<spnOverride numeric="515039" spn="SUN"/> +<spnOverride numeric="52001" spn="AIS GSM"/> +<spnOverride numeric="52010" spn="TRUE"/> +<spnOverride numeric="52015" spn="ACT-1900"/> +<spnOverride numeric="52018" spn="DTAC"/> +<spnOverride numeric="52020" spn="ACeS"/> +<spnOverride numeric="52023" spn="TH GSM 1800"/> +<spnOverride numeric="52099" spn="TRUE"/> +<spnOverride numeric="52501" spn="SingTel"/> +<spnOverride numeric="52502" spn="SingTel"/> +<spnOverride numeric="52503" spn="M1-3GSM"/> +<spnOverride numeric="52505" spn="STARHUB"/> +<spnOverride numeric="52507" spn="SingTel"/> +<spnOverride numeric="52802" spn="B-mobile"/> +<spnOverride numeric="52811" spn="DSTCom"/> +<spnOverride numeric="53001" spn="vodafone NZ"/> +<spnOverride numeric="53005" spn="Telecom NZ"/> +<spnOverride numeric="53024" spn="2degrees"/> +<spnOverride numeric="53701" spn="BMobile"/> +<spnOverride numeric="53901" spn="U-CALL"/> +<spnOverride numeric="53988" spn="Digicel Tonga"/> +<spnOverride numeric="54001" spn="BREEZE"/> +<spnOverride numeric="54101" spn="VUT SMILE"/> +<spnOverride numeric="54105" spn="DIGICEL"/> +<spnOverride numeric="54201" spn="VODAFONE"/> +<spnOverride numeric="54509" spn="KI-FRIG"/> +<spnOverride numeric="54601" spn="MOBILIS"/> +<spnOverride numeric="54720" spn="VINI"/> +<spnOverride numeric="54801" spn="KOKANET"/> +<spnOverride numeric="54927" spn="Samoatel GO"/> +<spnOverride numeric="55001" spn="FSM Telecom"/> +<spnOverride numeric="55280" spn="Palau Mobile"/> +<spnOverride numeric="60201" spn="EGY MobiNiL"/> +<spnOverride numeric="60202" spn="vodafone EG"/> +<spnOverride numeric="60203" spn="Etisalat"/> +<spnOverride numeric="60301" spn="Mobilis"/> +<spnOverride numeric="60302" spn="Djezzy"/> +<spnOverride numeric="60303" spn="Nedjma"/> +<spnOverride numeric="60400" spn="MEDITEL"/> +<spnOverride numeric="60401" spn="IAM"/> +<spnOverride numeric="60402" spn="Wan Mobile"/> +<spnOverride numeric="60501" spn="Orange"/> +<spnOverride numeric="60502" spn="TUNTEL"/> +<spnOverride numeric="60503" spn="TUNISIANA"/> +<spnOverride numeric="60600" spn="Libyana"/> +<spnOverride numeric="60601" spn="ALMADAR"/> +<spnOverride numeric="60701" spn="GAMCEL"/> +<spnOverride numeric="60702" spn="Africell"/> +<spnOverride numeric="60703" spn="GMCOMIUM"/> +<spnOverride numeric="60704" spn="QC"/> +<spnOverride numeric="60801" spn="ALIZE"/> +<spnOverride numeric="60802" spn="SENTEL"/> +<spnOverride numeric="60803" spn="Expresso Senegal"/> +<spnOverride numeric="60901" spn="MATTEL"/> +<spnOverride numeric="60902" spn="Chinguitel"/> +<spnOverride numeric="60910" spn="Mauritel"/> +<spnOverride numeric="61001" spn="MALITEL ML"/> +<spnOverride numeric="61002" spn="ORANGE ML"/> +<spnOverride numeric="61101" spn="Orange GN"/> +<spnOverride numeric="61102" spn="LAGUI"/> +<spnOverride numeric="61104" spn="GNAreeba"/> +<spnOverride numeric="61105" spn="CellcomGN"/> +<spnOverride numeric="61202" spn="MOOV"/> +<spnOverride numeric="61203" spn="Orange"/> +<spnOverride numeric="61204" spn="KoZ"/> +<spnOverride numeric="61205" spn="MTN CI"/> +<spnOverride numeric="61301" spn="Telmob"/> +<spnOverride numeric="61302" spn="celtel"/> +<spnOverride numeric="61401" spn="SAHELCOM"/> +<spnOverride numeric="61402" spn="CELTEL"/> +<spnOverride numeric="61403" spn="TELECEL"/> +<spnOverride numeric="61404" spn="Orange"/> +<spnOverride numeric="61501" spn="TOGO CELL"/> +<spnOverride numeric="61503" spn="Telecel Togo"/> +<spnOverride numeric="61602" spn="TLCL-BEN"/> +<spnOverride numeric="61603" spn="MTN"/> +<spnOverride numeric="61605" spn="GloBenin"/> +<spnOverride numeric="61701" spn="CELL +"/> +<spnOverride numeric="61710" spn="EMTEL"/> +<spnOverride numeric="61801" spn="LoneStar"/> +<spnOverride numeric="61807" spn="Celcom"/> +<spnOverride numeric="61901" spn="CELTEL"/> +<spnOverride numeric="61902" spn="MILLICOM"/> +<spnOverride numeric="61903" spn="Datatel"/> +<spnOverride numeric="61904" spn="SLE COMIUM"/> +<spnOverride numeric="61905" spn="Africell"/> +<spnOverride numeric="61907" spn="GreenN "/> +<spnOverride numeric="61925" spn="Mobitel"/> +<spnOverride numeric="62001" spn="MTN"/> +<spnOverride numeric="62002" spn="Vodafone"/> +<spnOverride numeric="62003" spn="Tigo"/> +<spnOverride numeric="62006" spn="Airtel"/> +<spnOverride numeric="62120" spn="AIrtelNG"/> +<spnOverride numeric="62130" spn="MTN-NG"/> +<spnOverride numeric="62140" spn="Mtel"/> +<spnOverride numeric="62150" spn="Glo Mobile"/> +<spnOverride numeric="62160" spn="EMTS NGA"/> +<spnOverride numeric="62201" spn="CELTEL"/> +<spnOverride numeric="62302" spn="Telecel"/> +<spnOverride numeric="62303" spn="Orange RCA"/> +<spnOverride numeric="62304" spn="NationLink"/> +<spnOverride numeric="62401" spn="Zain SD"/> +<spnOverride numeric="62402" spn="Orange CAM"/> +<spnOverride numeric="62501" spn="CPV MOVEL"/> +<spnOverride numeric="62502" spn="CPV T+"/> +<spnOverride numeric="62601" spn="CSTmovel"/> +<spnOverride numeric="62701" spn="GETESA"/> +<spnOverride numeric="62703" spn="HiTs-GE"/> +<spnOverride numeric="62801" spn="LIBERTIS"/> +<spnOverride numeric="62802" spn="TELECEL"/> +<spnOverride numeric="62803" spn="ZAIN"/> +<spnOverride numeric="62901" spn="CELTEL RC"/> +<spnOverride numeric="62902" spn="Azur-Congo"/> +<spnOverride numeric="62907" spn="WARIDRC"/> +<spnOverride numeric="62910" spn="MTN-CG"/> +<spnOverride numeric="63001" spn="Vodacom CD"/> +<spnOverride numeric="63002" spn="CELTEL"/> +<spnOverride numeric="63005" spn="SCELL CD"/> +<spnOverride numeric="63086" spn="CCT"/> +<spnOverride numeric="63089" spn="OASIS"/> +<spnOverride numeric="63102" spn="Unitel"/> +<spnOverride numeric="63202" spn="MTN"/> +<spnOverride numeric="63203" spn="ORANGE BS"/> +<spnOverride numeric="63207" spn="GTM"/> +<spnOverride numeric="63301" spn="C W SEY"/> +<spnOverride numeric="63310" spn="AIRTEL"/> +<spnOverride numeric="63401" spn="MobiTel"/> +<spnOverride numeric="63402" spn="MTN"/> +<spnOverride numeric="63405" spn="Vivacell"/> +<spnOverride numeric="63510" spn="RCELL"/> +<spnOverride numeric="63512" spn="RWTEL"/> +<spnOverride numeric="63513" spn="TIGO"/> +<spnOverride numeric="63601" spn="ET-MTN"/> +<spnOverride numeric="63701" spn="Tele"/> +<spnOverride numeric="63704" spn="SOMAFONE"/> +<spnOverride numeric="63730" spn="Golis"/> +<spnOverride numeric="63740" spn="MONTYSOM"/> +<spnOverride numeric="63771" spn="SOMTEL"/> +<spnOverride numeric="63782" spn="Telsom"/> +<spnOverride numeric="63801" spn="EVATIS"/> +<spnOverride numeric="63902" spn="Safaricom"/> +<spnOverride numeric="63903" spn="Airtel"/> +<spnOverride numeric="63905" spn="Yu"/> +<spnOverride numeric="63907" spn="Orange Kenya "/> +<spnOverride numeric="64002" spn="TIGO"/> +<spnOverride numeric="64003" spn="ZANTEL"/> +<spnOverride numeric="64004" spn="VodaCom"/> +<spnOverride numeric="64005" spn="celtel"/> +<spnOverride numeric="64009" spn="Hits TZ"/> +<spnOverride numeric="64101" spn="CELTEL"/> +<spnOverride numeric="64110" spn="MTN-UG"/> +<spnOverride numeric="64111" spn="UTL"/> +<spnOverride numeric="64114" spn="OUL"/> +<spnOverride numeric="64122" spn="WaridTel"/> +<spnOverride numeric="64201" spn="EWB"/> +<spnOverride numeric="64202" spn="TEMPO-AF"/> +<spnOverride numeric="64203" spn="ONATEL"/> +<spnOverride numeric="64207" spn="SMART"/> +<spnOverride numeric="64282" spn="TELECEL-BDI"/> +<spnOverride numeric="64301" spn="mCel"/> +<spnOverride numeric="64304" spn="VodaCom"/> +<spnOverride numeric="64501" spn="CELTEL"/> +<spnOverride numeric="64502" spn="MTN ZM"/> +<spnOverride numeric="64601" spn="Airtel"/> +<spnOverride numeric="64602" spn="OrangeMG"/> +<spnOverride numeric="64604" spn="TELMA"/> +<spnOverride numeric="64700" spn="Orange "/> +<spnOverride numeric="64702" spn="OUTREMER"/> +<spnOverride numeric="64710" spn="SFR RU"/> +<spnOverride numeric="64801" spn="NetOne"/> +<spnOverride numeric="64803" spn="TELECEL"/> +<spnOverride numeric="64804" spn="ECONET"/> +<spnOverride numeric="64901" spn="MTC"/> +<spnOverride numeric="64903" spn="leoâ„¢"/> +<spnOverride numeric="65010" spn="CELTEL"/> +<spnOverride numeric="65101" spn="Vodacom-LS"/> +<spnOverride numeric="65102" spn="EZI-CEL"/> +<spnOverride numeric="65201" spn="MASCOM"/> +<spnOverride numeric="65202" spn="Orange"/> +<spnOverride numeric="65310" spn="SwaziMTN"/> +<spnOverride numeric="65501" spn="VodaCom-SA"/> +<spnOverride numeric="65502" spn="8ta"/> +<spnOverride numeric="65507" spn="Cell C"/> +<spnOverride numeric="65510" spn="MTN-SA"/> +<spnOverride numeric="70267" spn="BTL"/> +<spnOverride numeric="70401" spn="ClaroGTM"/> +<spnOverride numeric="70402" spn="COMCEL"/> +<spnOverride numeric="70403" spn="movistar"/> +<spnOverride numeric="70601" spn="CLARO SLV"/> +<spnOverride numeric="70602" spn="Digicel"/> +<spnOverride numeric="70603" spn="TELEMOVIL"/> +<spnOverride numeric="70604" spn="movistar"/> +<spnOverride numeric="70802" spn="CELTELHND"/> +<spnOverride numeric="70830" spn="HT - 200"/> +<spnOverride numeric="71021" spn="ClaroNIC"/> +<spnOverride numeric="71073" spn="ClaroNIC"/> +<spnOverride numeric="71200" spn="I.C.E. "/> +<spnOverride numeric="71201" spn="I.C.E. "/> +<spnOverride numeric="71202" spn="I.C.E. "/> +<spnOverride numeric="71401" spn="PANCW"/> +<spnOverride numeric="71403" spn="CLARO PA"/> +<spnOverride numeric="71606" spn="movistar"/> +<spnOverride numeric="71610" spn="CLARO PER"/> +<spnOverride numeric="71617" spn="NXT3"/> +<spnOverride numeric="72207" spn="movistar"/> +<spnOverride numeric="72234" spn="AR TP"/> +<spnOverride numeric="72236" spn="Telecom Personal SA"/> +<spnOverride numeric="72402" spn="TIM BRASIL"/> +<spnOverride numeric="72403" spn="TIM BRASIL"/> +<spnOverride numeric="72404" spn="TIM BRASIL"/> +<spnOverride numeric="72405" spn="Claro"/> +<spnOverride numeric="72406" spn="VIVO"/> +<spnOverride numeric="72410" spn="VIVO"/> +<spnOverride numeric="72411" spn="VIVO"/> +<spnOverride numeric="72415" spn="Sercomtel"/> +<spnOverride numeric="72416" spn="Oi"/> +<spnOverride numeric="72423" spn="VIVO"/> +<spnOverride numeric="72424" spn="AMAZONIA"/> +<spnOverride numeric="72431" spn="Oi"/> +<spnOverride numeric="72432" spn="CTBC"/> +<spnOverride numeric="72433" spn="CTBC"/> +<spnOverride numeric="72434" spn="CTBC"/> +<spnOverride numeric="73001" spn="ENTEL"/> +<spnOverride numeric="73002" spn="movistar"/> +<spnOverride numeric="73003" spn="CLARO CHL"/> +<spnOverride numeric="73008" spn="VTR"/> +<spnOverride numeric="73009" spn="Nextel"/> +<spnOverride numeric="73010" spn="ENTEL"/> +<spnOverride numeric="73401" spn="DIGITEL "/> +<spnOverride numeric="73402" spn="DIGITEL "/> +<spnOverride numeric="73403" spn="DIGITEL "/> +<spnOverride numeric="73404" spn="movistar"/> +<spnOverride numeric="73406" spn="Movilnet"/> +<spnOverride numeric="73601" spn="VIVA"/> +<spnOverride numeric="73602" spn="EMOVIL"/> +<spnOverride numeric="73603" spn="Telecel"/> +<spnOverride numeric="73801" spn="DIGICEL"/> +<spnOverride numeric="74000" spn="movistar"/> +<spnOverride numeric="74001" spn="PORTA GSM"/> +<spnOverride numeric="74401" spn="VOX"/> +<spnOverride numeric="74402" spn="CLARO PY"/> +<spnOverride numeric="74404" spn="Telecel"/> +<spnOverride numeric="74405" spn="Personal"/> +<spnOverride numeric="74602" spn="TeleG"/> +<spnOverride numeric="74603" spn="DIGICEL"/> +<spnOverride numeric="74604" spn="UNIQA"/> +<spnOverride numeric="74807" spn="Movistar"/> +<spnOverride numeric="74810" spn="CLARO UY"/> +<spnOverride numeric="79502" spn="TM CELL"/> +<spnOverride numeric="90105" spn="Thuraya"/> +<spnOverride numeric="90106" spn="Thuraya"/> +<spnOverride numeric="90112" spn="MCP"/> +<spnOverride numeric="90114" spn="AeroMob"/> +<spnOverride numeric="90115" spn="OnAir"/> +<spnOverride numeric="90117" spn="Navitas"/> +<spnOverride numeric="90118" spn="WMS"/> +<spnOverride numeric="90121" spn="Seanet"/> +<spnOverride numeric="284001" spn="M-Tel"/> +<spnOverride numeric="302220" spn="TELUS"/> +<spnOverride numeric="302350" spn="FIRST"/> +<spnOverride numeric="302370" spn="Fido"/> +<spnOverride numeric="302380" spn="DMTS"/> +<spnOverride numeric="302490" spn="WIND"/> +<spnOverride numeric="302610" spn="Bell"/> +<spnOverride numeric="302654" spn="SaskTel Mobility"/> +<spnOverride numeric="302660" spn="MTS "/> +<spnOverride numeric="302702" spn="MT&T Mobility"/> +<spnOverride numeric="302703" spn="NewTel Mobility"/> +<spnOverride numeric="302720" spn="ROGERS"/> +<spnOverride numeric="302730" spn="TStarSol"/> +<spnOverride numeric="310000" spn="NEP Wireless"/> +<spnOverride numeric="310002" spn="NEP Wireless"/> +<spnOverride numeric="310009" spn="NEP Wireless"/> +<spnOverride numeric="310010" spn="Verizon"/> +<spnOverride numeric="310016" spn="Cricket"/> +<spnOverride numeric="310020" spn="UnionTel"/> +<spnOverride numeric="310030" spn="CENT USA"/> +<spnOverride numeric="310032" spn="IT E"/> +<spnOverride numeric="310050" spn="ACS Wireless"/> +<spnOverride numeric="310070" spn="Cingular Wireless"/> +<spnOverride numeric="310080" spn="Corr"/> +<spnOverride numeric="310090" spn="Edge"/> +<spnOverride numeric="310100" spn="PLATEAU"/> +<spnOverride numeric="310120" spn="Sprint"/> +<spnOverride numeric="310130" spn="Carolina West Wireless"/> +<spnOverride numeric="310140" spn="GTA Wireless"/> +<spnOverride numeric="310150" spn="AT&T"/> +<spnOverride numeric="310160" spn="T-Mobile "/> +<spnOverride numeric="310170" spn="AT&T"/> +<spnOverride numeric="310180" spn="West Central Wireless"/> +<spnOverride numeric="310190" spn="D-HARBOR"/> +<spnOverride numeric="310200" spn="T-Mobile "/> +<spnOverride numeric="310210" spn="T-Mobile "/> +<spnOverride numeric="310220" spn="T-Mobile "/> +<spnOverride numeric="310230" spn="T-Mobile "/> +<spnOverride numeric="310240" spn="T-Mobile "/> +<spnOverride numeric="310250" spn="T-Mobile "/> +<spnOverride numeric="310260" spn="T-Mobile "/> +<spnOverride numeric="310260" spn="T-Mobile "/> +<spnOverride numeric="310270" spn="T-Mobile "/> +<spnOverride numeric="310300" spn="BigSkyUS"/> +<spnOverride numeric="310310" spn="T-Mobile "/> +<spnOverride numeric="310320" spn="Cell"/> +<spnOverride numeric="310330" spn="Cell One"/> +<spnOverride numeric="310340" spn="WestLink"/> +<spnOverride numeric="310350" spn="Mohave Cellular"/> +<spnOverride numeric="310380" spn="AT&T"/> +<spnOverride numeric="310390" spn="CELL 1 ET"/> +<spnOverride numeric="310400" spn="iCAN_GSM"/> +<spnOverride numeric="310410" spn="AT&T"/> +<spnOverride numeric="310420" spn="CBW"/> +<spnOverride numeric="310450" spn="NECCI"/> +<spnOverride numeric="310460" spn="SIMMETRY"/> +<spnOverride numeric="310470" spn="DOCOMOPA"/> +<spnOverride numeric="310490" spn="T-Mobile USA"/> +<spnOverride numeric="310500" spn="Alltel"/> +<spnOverride numeric="310530" spn="IWS"/> +<spnOverride numeric="310540" spn="Oklahoma Western Telephone"/> +<spnOverride numeric="310570" spn="Chinook"/> +<spnOverride numeric="310590" spn="ROAMING"/> +<spnOverride numeric="310630" spn="AMERLINK"/> +<spnOverride numeric="310640" spn="ARDGMC"/> +<spnOverride numeric="310650" spn="Jasper"/> +<spnOverride numeric="310660" spn="T-Mobile "/> +<spnOverride numeric="310690" spn="IMMIX"/> +<spnOverride numeric="310700" spn="BIGFOOT"/> +<spnOverride numeric="310710" spn="ASTAC"/> +<spnOverride numeric="310730" spn="U.S.Cellular"/> +<spnOverride numeric="310740" spn="OTZ"/> +<spnOverride numeric="310770" spn="IWS"/> +<spnOverride numeric="310790" spn="Pinpoint"/> +<spnOverride numeric="310860" spn="Five Star Wireless"/> +<spnOverride numeric="310870" spn="PACE"/> +<spnOverride numeric="310880" spn="ACSIAC"/> +<spnOverride numeric="310890" spn="UNICEL"/> +<spnOverride numeric="310950" spn="XIT"/> +<spnOverride numeric="310980" spn="AT&T"/> +<spnOverride numeric="311000" spn="Mid-Tex"/> +<spnOverride numeric="311030" spn="Indigo"/> +<spnOverride numeric="311040" spn="Commnet"/> +<spnOverride numeric="311050" spn="Thumb Cellular"/> +<spnOverride numeric="311080" spn="PINECell"/> +<spnOverride numeric="311090" spn="SXLP"/> +<spnOverride numeric="311130" spn="Amarillo Cellular"/> +<spnOverride numeric="311150" spn="Wilkes Cellular"/> +<spnOverride numeric="311170" spn="PetroCom"/> +<spnOverride numeric="311180" spn="AT&T"/> +<spnOverride numeric="311190" spn="C1ECI"/> +<spnOverride numeric="311210" spn="FARMERS"/> +<spnOverride numeric="311240" spn="CWCI"/> +<spnOverride numeric="311260" spn="SLO Cellular"/> +<spnOverride numeric="311310" spn="LamarCel"/> +<spnOverride numeric="311330" spn="BTW"/> +<spnOverride numeric="311350" spn="Sagebrush Cellular"/> +<spnOverride numeric="311360" spn="STELERA"/> +<spnOverride numeric="311370" spn="GCI"/> +<spnOverride numeric="311420" spn="Northwest Missouri Cellular"/> +<spnOverride numeric="311430" spn="Cellular 29 Plus"/> +<spnOverride numeric="311440" spn="Bluegrass Cellular"/> +<spnOverride numeric="311500" spn="MOSAIC"/> +<spnOverride numeric="311530" spn="NCW"/> +<spnOverride numeric="311540" spn="ProxMo"/> +<spnOverride numeric="311590" spn="Golden State Cellular"/> +<spnOverride numeric="311720" spn="MainePCS"/> +<spnOverride numeric="330110" spn="Claro"/> +<spnOverride numeric="334020" spn="TELCEL"/> +<spnOverride numeric="334030" spn="movistar"/> +<spnOverride numeric="334050" spn="Iusacell"/> +<spnOverride numeric="334090" spn="Nextel"/> +<spnOverride numeric="338050" spn="Digicel"/> +<spnOverride numeric="338070" spn="ClaroJam"/> +<spnOverride numeric="338180" spn="C W"/> +<spnOverride numeric="342600" spn="C W"/> +<spnOverride numeric="342750" spn="DIGICEL"/> +<spnOverride numeric="344030" spn="APUA-PCS"/> +<spnOverride numeric="344920" spn="C W"/> +<spnOverride numeric="344930" spn="Cingular"/> +<spnOverride numeric="346140" spn="LIME"/> +<spnOverride numeric="348170" spn="C W"/> +<spnOverride numeric="348570" spn="CCTBVI"/> +<spnOverride numeric="350000" spn="CellularOne"/> +<spnOverride numeric="350010" spn="Cingular"/> +<spnOverride numeric="352030" spn="DIGICEL"/> +<spnOverride numeric="352110" spn="C W"/> +<spnOverride numeric="354860" spn="LIME"/> +<spnOverride numeric="356110" spn="LIME"/> +<spnOverride numeric="358050" spn="DIGICEL"/> +<spnOverride numeric="358110" spn="C W"/> +<spnOverride numeric="360070" spn="DIGICEL"/> +<spnOverride numeric="360110" spn="C W"/> +<spnOverride numeric="362951" spn="CHIPPIE"/> +<spnOverride numeric="365840" spn="C W"/> +<spnOverride numeric="366020" spn="Cingular"/> +<spnOverride numeric="366110" spn="C W"/> +<spnOverride numeric="376350" spn="C W"/> +<spnOverride numeric="376352" spn="ICOM TCI"/> +<spnOverride numeric="376360" spn="ICOM TCI"/> +<spnOverride numeric="404030" spn="Vodafone"/> +<spnOverride numeric="405025" spn="TATA DOCOMO"/> +<spnOverride numeric="405027" spn="TATA DOCOMO"/> +<spnOverride numeric="405029" spn="TATA DOCOMO"/> +<spnOverride numeric="405030" spn="TATA DOCOMO"/> +<spnOverride numeric="405031" spn="TATA DOCOMO"/> +<spnOverride numeric="405032" spn="TATA DOCOMO"/> +<spnOverride numeric="405034" spn="TATA DOCOMO"/> +<spnOverride numeric="405035" spn="TATA DOCOMO"/> +<spnOverride numeric="405036" spn="TATA DOCOMO"/> +<spnOverride numeric="405037" spn="TATA DOCOMO"/> +<spnOverride numeric="405038" spn="TATA DOCOMO"/> +<spnOverride numeric="405039" spn="TATA DOCOMO"/> +<spnOverride numeric="405041" spn="TATA DOCOMO"/> +<spnOverride numeric="405042" spn="TATA DOCOMO"/> +<spnOverride numeric="405043" spn="TATA DOCOMO"/> +<spnOverride numeric="405044" spn="TATA DOCOMO"/> +<spnOverride numeric="405045" spn="TATA DOCOMO"/> +<spnOverride numeric="405046" spn="TATA DOCOMO"/> +<spnOverride numeric="405047" spn="TATA DOCOMO"/> +<spnOverride numeric="405750" spn="Vodafone"/> +<spnOverride numeric="405751" spn="Vodafone"/> +<spnOverride numeric="405752" spn="Vodafone"/> +<spnOverride numeric="405753" spn="Vodafone"/> +<spnOverride numeric="405754" spn="Vodafone"/> +<spnOverride numeric="405755" spn="Vodafone"/> +<spnOverride numeric="405756" spn="Vodafone"/> +<spnOverride numeric="405799" spn="IDEA"/> +<spnOverride numeric="405800" spn="Aircel"/> +<spnOverride numeric="405801" spn="Aircel"/> +<spnOverride numeric="405802" spn="Aircel"/> +<spnOverride numeric="405803" spn="Aircel"/> +<spnOverride numeric="405804" spn="Aircel"/> +<spnOverride numeric="405805" spn="Aircel"/> +<spnOverride numeric="405806" spn="Aircel"/> +<spnOverride numeric="405807" spn="Aircel"/> +<spnOverride numeric="405808" spn="Aircel"/> +<spnOverride numeric="405809" spn="Aircel "/> +<spnOverride numeric="405810" spn="Aircel"/> +<spnOverride numeric="405811" spn="Aircel"/> +<spnOverride numeric="405812" spn="Aircel"/> +<spnOverride numeric="405813" spn="uninor"/> +<spnOverride numeric="405814" spn="uninor"/> +<spnOverride numeric="405815" spn="uninor"/> +<spnOverride numeric="405816" spn="uninor"/> +<spnOverride numeric="405817" spn="uninor"/> +<spnOverride numeric="405818" spn="uninor"/> +<spnOverride numeric="405819" spn="uninor"/> +<spnOverride numeric="405820" spn="uninor"/> +<spnOverride numeric="405821" spn="uninor"/> +<spnOverride numeric="405822" spn="uninor"/> +<spnOverride numeric="405823" spn="Videocon"/> +<spnOverride numeric="405824" spn="Videocon"/> +<spnOverride numeric="405825" spn="Videocon"/> +<spnOverride numeric="405827" spn="Videocon"/> +<spnOverride numeric="405827" spn="Videocon"/> +<spnOverride numeric="405828" spn="Videocon"/> +<spnOverride numeric="405829" spn="Videocon"/> +<spnOverride numeric="405830" spn="Videocon"/> +<spnOverride numeric="405831" spn="Videocon"/> +<spnOverride numeric="405832" spn="Videocon"/> +<spnOverride numeric="405833" spn="Videocon"/> +<spnOverride numeric="405834" spn="Videocon"/> +<spnOverride numeric="405835" spn="Videocon"/> +<spnOverride numeric="405836" spn="Videocon"/> +<spnOverride numeric="405837" spn="Videocon"/> +<spnOverride numeric="405838" spn="Videocon"/> +<spnOverride numeric="405839" spn="Videocon"/> +<spnOverride numeric="405840" spn="Videocon"/> +<spnOverride numeric="405840" spn="Videocon"/> +<spnOverride numeric="405841" spn="Videocon"/> +<spnOverride numeric="405842" spn="Videocon"/> +<spnOverride numeric="405843" spn="Videocon"/> +<spnOverride numeric="405844" spn="uninor"/> +<spnOverride numeric="405845" spn="IDEA"/> +<spnOverride numeric="405846" spn="IDEA"/> +<spnOverride numeric="405848" spn="IDEA"/> +<spnOverride numeric="405849" spn="IDEA"/> +<spnOverride numeric="405850" spn="IDEA"/> +<spnOverride numeric="405852" spn="IDEA"/> +<spnOverride numeric="405853" spn="IDEA"/> +<spnOverride numeric="405854" spn="LoopMobile"/> +<spnOverride numeric="405855" spn="LoopMobile"/> +<spnOverride numeric="405856" spn="LoopMobile"/> +<spnOverride numeric="405857" spn="LoopMobile"/> +<spnOverride numeric="405858" spn="LoopMobile"/> +<spnOverride numeric="405859" spn="LoopMobile"/> +<spnOverride numeric="405860" spn="LoopMobile"/> +<spnOverride numeric="405861" spn="LoopMobile"/> +<spnOverride numeric="405862" spn="LoopMobile"/> +<spnOverride numeric="405863" spn="LoopMobile"/> +<spnOverride numeric="405864" spn="LoopMobile"/> +<spnOverride numeric="405865" spn="LoopMobile"/> +<spnOverride numeric="405866" spn="LoopMobile"/> +<spnOverride numeric="405867" spn="LoopMobile"/> +<spnOverride numeric="405868" spn="LoopMobile"/> +<spnOverride numeric="405869" spn="LoopMobile"/> +<spnOverride numeric="405870" spn="LoopMobile"/> +<spnOverride numeric="405871" spn="LoopMobile"/> +<spnOverride numeric="405872" spn="LoopMobile"/> +<spnOverride numeric="405873" spn="LoopMobile"/> +<spnOverride numeric="405874" spn="LoopMobile"/> +<spnOverride numeric="405875" spn="uninor"/> +<spnOverride numeric="405876" spn="uninor"/> +<spnOverride numeric="405877" spn="uninor"/> +<spnOverride numeric="405878" spn="uninor"/> +<spnOverride numeric="405879" spn="uninor"/> +<spnOverride numeric="405880" spn="uninor"/> +<spnOverride numeric="405881" spn="STEL"/> +<spnOverride numeric="405882" spn="STEL"/> +<spnOverride numeric="405883" spn="STEL"/> +<spnOverride numeric="405884" spn="STEL"/> +<spnOverride numeric="405885" spn="STEL"/> +<spnOverride numeric="405886" spn="STEL"/> +<spnOverride numeric="405912" spn="Cheers"/> +<spnOverride numeric="405913" spn="Cheers"/> +<spnOverride numeric="405914" spn="Cheers"/> +<spnOverride numeric="405915" spn="Cheers"/> +<spnOverride numeric="405916" spn="Cheers"/> +<spnOverride numeric="405917" spn="Cheers"/> +<spnOverride numeric="405918" spn="Cheers"/> +<spnOverride numeric="405919" spn="Cheers"/> +<spnOverride numeric="405920" spn="Cheers"/> +<spnOverride numeric="405921" spn="Cheers"/> +<spnOverride numeric="405922" spn="Cheers"/> +<spnOverride numeric="405923" spn="Cheers"/> +<spnOverride numeric="405924" spn="Cheers"/> +<spnOverride numeric="405925" spn="uninor"/> +<spnOverride numeric="405926" spn="uninor"/> +<spnOverride numeric="405927" spn="uninor"/> +<spnOverride numeric="405928" spn="uninor"/> +<spnOverride numeric="405929" spn="uninor"/> +<spnOverride numeric="405932" spn="Videocon"/> +<spnOverride numeric="420003" spn="mobily"/> +<spnOverride numeric="421700" spn="YemYY"/> +<spnOverride numeric="472002" spn="WATANIYA"/> +<spnOverride numeric="510510" spn="Mobile-8"/> +<spnOverride numeric="537030" spn="Digicel"/> +<spnOverride numeric="544110" spn="BLUESKY"/> +<spnOverride numeric="616004" spn="BBCOM"/> +<spnOverride numeric="654001" spn="HURI"/> +<spnOverride numeric="704030" spn="movistar"/> +<spnOverride numeric="708001" spn="ClaroHND"/> +<spnOverride numeric="708030" spn="HND"/> +<spnOverride numeric="710300" spn="movistar"/> +<spnOverride numeric="714020" spn="movistar"/> +<spnOverride numeric="722070" spn="Movistar"/> +<spnOverride numeric="722310" spn="CLARO AR"/> +<spnOverride numeric="722340" spn="AR PERSONAL"/> +<spnOverride numeric="732101" spn="COMCEL"/> +<spnOverride numeric="732102" spn="COL_TEMC"/> +<spnOverride numeric="732103" spn="TIGO COL"/> +<spnOverride numeric="732111" spn="TIGO COL"/> +<spnOverride numeric="732123" spn="movistar"/> +<spnOverride numeric="738002" spn="CLNK PLS"/> +<spnOverride numeric="750001" spn="C W FLK"/> +</spnOverrides> diff --git a/configs/wide-dhcpv6/dhcp6c.conf b/configs/wide-dhcpv6/dhcp6c.conf new file mode 100644 index 0000000..820dc86 --- /dev/null +++ b/configs/wide-dhcpv6/dhcp6c.conf @@ -0,0 +1,11 @@ + +interface wlan0 { + send ia-na 234883274; + # information-only; + request domain-name-servers; + request domain-name; + script "/etc/wide-dhcpv6/dhcp6c.script"; +}; + +id-assoc na 234883274{ +}; diff --git a/configs/wide-dhcpv6/dhcp6c.script b/configs/wide-dhcpv6/dhcp6c.script new file mode 100644 index 0000000..ebd9347 --- /dev/null +++ b/configs/wide-dhcpv6/dhcp6c.script @@ -0,0 +1,61 @@ +#!/system/bin/sh + +# Set dhcp.ipv6.<iface>.dnsN properties that contain the +# DNS server addresses given by the DHCPv6 server. +set_dns_props() +{ + case "${new_domain_name_servers}" in + "") return 0;; + esac + + count=1 + for i in 1 2; do + setprop dhcp.ipv6.${interface}.dns${i} "" + done + + count=1 + for dnsaddr in ${new_domain_name_servers}; do + case "$count" in + 1|2) + setprop dhcp.ipv6.${interface}.dns${count} ${dnsaddr} + ;; + esac + count=$(($count + 1)) + done +} + +unset_dns_props() +{ + for i in 1 2; do + setprop dhcp.ipv6.${interface}.dns${i} "" + setprop net.dns.ipv6_${i} "" + done +} + +unset_iana_props() +{ + setprop dhcp.ipv6.${interface}.leasetime "" + setprop dhcp.ipv6.${interface}.ipaddress "" +} + +# For debugging: +setprop dhcp.ipv6.${interface}.reason "${REASON}" + +case "${REASON}" in + REQUEST|CONFIRM|INFOREQ) + set_dns_props + setprop dhcp.ipv6.${interface}.result "ok" + ;; + RENEW|REBIND) + set_dns_props + setprop dhcp.ipv6.${interface}.renewresult "ok" + ;; + RELEASE) + unset_dns_props + unset_iana_props + setprop dhcp.ipv6.${interface}.result "released" + ;; + *) + setprop dhcp.ipv6.${interface}.result "failed" + ;; +esac diff --git a/configs/wide-dhcpv6/dhcp6cDNS.conf b/configs/wide-dhcpv6/dhcp6cDNS.conf new file mode 100644 index 0000000..b4e0ee8 --- /dev/null +++ b/configs/wide-dhcpv6/dhcp6cDNS.conf @@ -0,0 +1,7 @@ + +interface wlan0 { + request domain-name-servers; + request domain-name; + information-only; + script "/etc/wide-dhcpv6/dhcp6c.script"; +}; diff --git a/configs/wide-dhcpv6/dhcp6cPD.conf b/configs/wide-dhcpv6/dhcp6cPD.conf new file mode 100644 index 0000000..86662f1 --- /dev/null +++ b/configs/wide-dhcpv6/dhcp6cPD.conf @@ -0,0 +1,9 @@ + +interface wlan0 { + # information-only; + script "/etc/wide-dhcpv6/dhcp6cPD.script"; + send ia-pd 1234; +}; + +id-assoc pd 1234 { +}; diff --git a/configs/wide-dhcpv6/dhcp6cPD.script b/configs/wide-dhcpv6/dhcp6cPD.script new file mode 100644 index 0000000..f57f43c --- /dev/null +++ b/configs/wide-dhcpv6/dhcp6cPD.script @@ -0,0 +1,20 @@ +#!/system/bin/sh + +# For debugging: +setprop dhcp.pd.${interface}.reason "${REASON}" + +case "${REASON}" in + REQUEST|CONFIRM|INFOREQ) + setprop dhcp.pd.${interface}.result "ok" + ;; + RENEW|REBIND) + set_dns_props + setprop dhcp.pd.${interface}.renewresult "ok" + ;; + RELEASE) + setprop dhcp.pd.${interface}.result "released" + ;; + *) + setprop dhcp.pd.${interface}.result "failed" + ;; +esac diff --git a/configs/wide-dhcpv6/dhcp6cctlkey b/configs/wide-dhcpv6/dhcp6cctlkey new file mode 100644 index 0000000..3f75992 --- /dev/null +++ b/configs/wide-dhcpv6/dhcp6cctlkey @@ -0,0 +1 @@ +i7srdxZshUB7sGd2Ln1w4Q== diff --git a/configs/wide-dhcpv6/dhcp6s.conf b/configs/wide-dhcpv6/dhcp6s.conf new file mode 100644 index 0000000..1ada17e --- /dev/null +++ b/configs/wide-dhcpv6/dhcp6s.conf @@ -0,0 +1,9 @@ +# The followings are a sample configuration to provide an IPv6 address +# from an address pool 2001:db8:1:2::1000-2000 for 3600[s]. +# Note. You have to send an RA to fxp0; otherwise a client cannot be sure +# about the prefix-length and the default router. If you want to prevent +# stateless address configuration via RA, please set the autonomous-flag to +# OFF in your RA configuration. + +option domain-name-servers 2001:4860:4860::8888; +option domain-name-servers 2001:4860:4860::8844; |
