device/asus/flo: initial commit
Change-Id: I5946aea9cce97624c4a2a56ce8da858851f509e8
Signed-off-by: Iliyan Malchev <malchev@google.com>
diff --git a/Android.mk b/Android.mk
new file mode 100644
index 0000000..5220858
--- /dev/null
+++ b/Android.mk
@@ -0,0 +1,40 @@
+#
+# Copyright 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.
+#
+
+# This contains the module build definitions for the hardware-specific
+# components for this device.
+#
+# As much as possible, those components should be built unconditionally,
+# with device-specific names to avoid collisions, to avoid device-specific
+# bitrot and build breakages. Building a component unconditionally does
+# *not* include it on all devices, so it is safe even with hardware-specific
+# components.
+
+ifneq ($(filter flo,$(TARGET_DEVICE)),)
+
+LOCAL_PATH := $(call my-dir)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := wpa_supplicant.conf
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_CLASS := ETC
+LOCAL_SRC_FILES := $(LOCAL_MODULE)
+LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/wifi
+include $(BUILD_PREBUILT)
+
+endif
+
+include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/AndroidBoard.mk b/AndroidBoard.mk
new file mode 100644
index 0000000..117bd43
--- /dev/null
+++ b/AndroidBoard.mk
@@ -0,0 +1,19 @@
+#
+# Copyright (C) 2011 The Android Open-Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+ifeq ($(TARGET_PREBUILT_KERNEL),)
+TARGET_PREBUILT_KERNEL := device/asus/flo-kernel/kernel
+endif
diff --git a/AndroidProducts.mk b/AndroidProducts.mk
new file mode 100644
index 0000000..65dfa28
--- /dev/null
+++ b/AndroidProducts.mk
@@ -0,0 +1,18 @@
+#
+# Copyright 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.
+#
+
+PRODUCT_MAKEFILES := \
+ $(LOCAL_DIR)/full_flo.mk
diff --git a/BoardConfig.mk b/BoardConfig.mk
new file mode 100755
index 0000000..655aa34
--- /dev/null
+++ b/BoardConfig.mk
@@ -0,0 +1,109 @@
+#
+# Copyright (C) 2011 The Android Open-Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+TARGET_GLOBAL_CFLAGS += -mfpu=neon -mfloat-abi=softfp
+TARGET_GLOBAL_CPPFLAGS += -mfpu=neon -mfloat-abi=softfp
+TARGET_CPU_ABI := armeabi-v7a
+TARGET_CPU_ABI2 := armeabi
+TARGET_CPU_SMP := true
+TARGET_ARCH := arm
+TARGET_ARCH_VARIANT := armv7-a-neon
+TARGET_CPU_VARIANT := krait
+ARCH_ARM_HAVE_TLS_REGISTER := true
+
+TARGET_NO_BOOTLOADER := false
+
+BOARD_KERNEL_BASE := 0x80200000
+BOARD_KERNEL_PAGESIZE := 2048
+# BOARD_KERNEL_CMDLINE := console=ttyHSL0,115200,n8 androidboot.hardware=msm8960 maxcpus=2
+BOARD_KERNEL_CMDLINE := console=ttyHSL0,115200,n8 androidboot.hardware=flo user_debug=31 msm_rtb.filter=0x3F ehci-hcd.park=3
+BOARD_MKBOOTIMG_ARGS := --ramdisk_offset 0x02000000
+
+BOARD_USES_ALSA_AUDIO:= true
+BOARD_USES_LEGACY_ALSA_AUDIO:= false
+BOARD_USES_FLUENCE_INCALL := true
+BOARD_USES_SEPERATED_AUDIO_INPUT := true
+
+BOARD_HAVE_BLUETOOTH := true
+BOARD_HAVE_BLUETOOTH_QCOM := true
+BLUETOOTH_HCI_USE_MCT := true
+
+TARGET_NO_RADIOIMAGE := true
+TARGET_BOARD_PLATFORM := msm8960
+TARGET_BOOTLOADER_BOARD_NAME := FLO
+TARGET_BOOTLOADER_NAME := flo
+TARGET_BOARD_INFO_FILE := device/asus/flo/board-info.txt
+
+BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR := device/asus/flo/bluetooth
+
+# FIXME: HOSTAPD-derived wifi driver
+BOARD_HAS_QCOM_WLAN := true
+BOARD_WLAN_DEVICE := qcwcn
+WPA_SUPPLICANT_VERSION := VER_0_8_X
+BOARD_WPA_SUPPLICANT_DRIVER := NL80211
+BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_$(BOARD_WLAN_DEVICE)
+BOARD_HOSTAPD_DRIVER := NL80211
+BOARD_HOSTAPD_PRIVATE_LIB := lib_driver_cmd_$(BOARD_WLAN_DEVICE)
+WIFI_DRIVER_FW_PATH_STA := "sta"
+WIFI_DRIVER_FW_PATH_AP := "ap"
+
+BOARD_EGL_CFG := device/asus/flo/egl.cfg
+
+#BOARD_USES_HGL := true
+#BOARD_USES_OVERLAY := true
+USE_OPENGL_RENDERER := true
+TARGET_USES_ION := true
+TARGET_USES_OVERLAY := true
+TARGET_USES_SF_BYPASS := true
+TARGET_USES_C2D_COMPOSITON := true
+
+TARGET_RECOVERY_PIXEL_FORMAT := "RGBX_8888"
+TARGET_RECOVERY_UI_LIB := librecovery_ui_flo
+
+TARGET_RECOVERY_FSTAB = device/asus/flo/fstab.flo
+TARGET_USERIMAGES_USE_EXT4 := true
+BOARD_BOOTIMAGE_PARTITION_SIZE := 23068672 # 22M
+BOARD_RECOVERYIMAGE_PARTITION_SIZE := 23068672 # 22M
+BOARD_SYSTEMIMAGE_PARTITION_SIZE := 268435456 # 256M
+
+BOARD_USERDATAIMAGE_PARTITION_SIZE := 12348030976 # 11.5G
+BOARD_FLASH_BLOCK_SIZE := 131072 # (BOARD_KERNEL_PAGESIZE * 64)
+
+BOARD_USES_SECURE_SERVICES := true
+
+
+USE_CAMERA_STUB := true
+BOARD_USES_CAMERA_FAST_AUTOFOCUS := false
+BOARD_LIB_DUMPSTATE := libdumpstate.flo
+
+BOARD_VENDOR_QCOM_GPS_LOC_API_HARDWARE := $(TARGET_BOARD_PLATFORM)
+TARGET_NO_RPC := true
+
+BOARD_USES_ADRENO200 := true
+HAVE_ADRENO200_SOURCE := true
+HAVE_ADRENO200_SC_SOURCE := true
+HAVE_ADRENO200_FIRMWARE := true
+TARGET_USES_AOSP := true
+
+BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE := ext4
+BOARD_CACHEIMAGE_PARTITION_SIZE := 33554432
+
+BOARD_PERSISTIMAGE_FILE_SYSTEM_TYPE := ext4
+BOARD_PERSISTIMAGE_PARTITION_SIZE := 5242880
+
+TARGET_RELEASETOOLS_EXTENSIONS := device/asus/flo
+
+-include vendor/asus/flo/BoardConfigVendor.mk
diff --git a/CleanSpec.mk b/CleanSpec.mk
new file mode 100644
index 0000000..3c346bf
--- /dev/null
+++ b/CleanSpec.mk
@@ -0,0 +1,45 @@
+# Copyright (C) 2007 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.
+#
+
+# If you don't need to do a full clean build but would like to touch
+# a file or delete some intermediate files, add a clean step to the end
+# of the list. These steps will only be run once, if they haven't been
+# run before.
+#
+# E.g.:
+# $(call add-clean-step, touch -c external/sqlite/sqlite3.h)
+# $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libz_intermediates)
+#
+# Always use "touch -c" and "rm -f" or "rm -rf" to gracefully deal with
+# files that are missing or have been moved.
+#
+# Use $(PRODUCT_OUT) to get to the "out/target/product/blah/" directory.
+# Use $(OUT_DIR) to refer to the "out" directory.
+#
+# If you need to re-do something that's already mentioned, just copy
+# the command and add it to the bottom of the list. E.g., if a change
+# that you made last week required touching a file and a change you
+# made today requires touching the same file, just copy the old
+# touch step and add it to the end of the list.
+#
+# ************************************************
+# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
+# ************************************************
+
+# For example:
+#$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/AndroidTests_intermediates)
+#$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/core_intermediates)
+#$(call add-clean-step, find $(OUT_DIR) -type f -name "IGTalkSession*" -print0 | xargs -0 rm -f)
+#$(call add-clean-step, rm -rf $(PRODUCT_OUT)/data/*)
diff --git a/WCNSS_cfg.dat b/WCNSS_cfg.dat
new file mode 100755
index 0000000..bf6478c
--- /dev/null
+++ b/WCNSS_cfg.dat
Binary files differ
diff --git a/WCNSS_qcom_cfg.ini b/WCNSS_qcom_cfg.ini
new file mode 100644
index 0000000..81f1536
--- /dev/null
+++ b/WCNSS_qcom_cfg.ini
@@ -0,0 +1,221 @@
+# This file allows user to override the factory
+# defaults for the WLAN Driver
+
+# Enable IMPS or not
+gEnableImps=1
+
+# Enable/Disable Idle Scan
+gEnableIdleScan=0
+
+# Increase sleep duration (seconds) during IMPS
+# 0 implies no periodic wake up from IMPS. Periodic wakeup is
+# unnecessary if Idle Scan is disabled.
+gImpsModSleepTime=0
+
+# Enable BMPS or not
+gEnableBmps=1
+
+# Enable Close Loop or not
+gEnableCloseLoop=1
+
+# Enable suspend or not
+# 1: Enable standby, 2: Enable Deep sleep, 3: Enable Mcast/Bcast Filter
+gEnableSuspend=3
+
+# Phy Mode (auto, b, g, n, etc)
+gDot11Mode=0
+
+# Handoff Enable(1) Disable(0)
+gEnableHandoff=0
+
+# CSR Roaming Enable(1) Disable(0)
+gRoamingTime=0
+
+# Assigned MAC Addresses - This will be used until NV items are in place
+# Each byte of MAC address is represented in Hex format as XX
+Intf0MacAddress=000AF58989FF
+Intf1MacAddress=000AF58989FE
+Intf2MacAddress=000AF58989FD
+Intf3MacAddress=000AF58989FC
+
+# UAPSD service interval for VO,VI, BE, BK traffic
+InfraUapsdVoSrvIntv=0
+InfraUapsdViSrvIntv=0
+InfraUapsdBeSrvIntv=0
+InfraUapsdBkSrvIntv=0
+
+# Enable Firmware RSSI monitoring for roaming
+gEnableFWRssiMonitoring=1
+
+# Make 1x1 the default antenna configuration
+gNumRxAnt=1
+
+# Beacon filtering frequency (unit in beacon intervals)
+gNthBeaconFilter=50
+
+# Enable WAPI or not
+# WAPIIsEnabled=0
+
+# Flags to filter Mcast and Bcast RX packets.
+# Value 0: No filtering, 1: Filter all Multicast.
+# 2: Filter all Broadcast. 3: Filter all Mcast and Bcast
+McastBcastFilter=3
+
+#Flag to enable HostARPOffload feature or not
+hostArpOffload=0
+
+#SoftAP Related Parameters
+# AP MAc addr (obsolete)
+gAPMacAddr=000AF58989EF
+
+# Enable Random BSSID
+gEnableApRandomBssid=1
+
+# 802.11n Protection flag
+gEnableApProt=1
+
+# Enable OBSS protection
+gEnableApOBSSProt=0
+
+# Enable/Disable UAPSD for SoftAP
+gEnableApUapsd=1
+
+# Fixed Rate
+gFixedRate=0
+
+# Maximum Tx power
+# gTxPowerCap=30
+
+# Fragmentation Threshold
+# gFragmentationThreshold=2346
+
+# RTS threshold
+RTSThreshold=2347
+
+# Intra-BSS forward
+gDisableIntraBssFwd=0
+
+# WMM Enable/Disable
+WmmIsEnabled=0
+
+# 802.11d support
+g11dSupportEnabled=1
+
+# CCX Support and fast transition
+CcxEnabled=0
+FastTransitionEnabled=1
+ImplicitQosIsEnabled=1
+gNeighborScanTimerPeriod=200
+
+gNeighborLookupThreshold=76
+gNeighborReassocThreshold=81
+
+gNeighborScanChannelMinTime=20
+gNeighborScanChannelMaxTime=30
+gMaxNeighborReqTries=3
+
+# Legacy (non-CCX, non-802.11r) Fast Roaming Support
+# To enable, set FastRoamEnabled=1, gEnableFWRssiMonitoring=1, FastTransitionEnabled=1
+# To disable, set FastRoamEnabled=0, gEnableFWRssiMonitoring=0, FastTransitionEnabled=0
+FastRoamEnabled=1
+
+#Check if the AP to which we are roaming is better than current AP in terms of RSSI.
+#Checking is disabled if set to Zero.Otherwise it will use this value as to how better
+#the RSSI of the new/roamable AP should be for roaming
+RoamRssiDiff=3
+
+#Configure the RSSI gap that will be used to partition/categorize width of
+#each individual category (aka bucket).
+gRssiCatGap=5
+
+# SAP Country code
+# Default Country Code is 2 bytes, 3rd byte is optional indoor or out door.
+# Example
+# US Indoor, USI
+# Korea Outdoor, KRO
+# Japan without optional byte, JP
+# France without optional byte, FR
+#gAPCntryCode=USI
+
+#Short Guard Interval Enable/disable
+gShortGI20Mhz=1
+gShortGI40Mhz=1
+
+#Auto Shutdown Value in seconds. A value of 0 means Auto shutoff is disabled
+gAPAutoShutOff=0
+
+# SAP auto channel selection configuration
+# 0 = disable auto channel selection
+# 1 = enable auto channel selection, channel provided by supplicant will be ignored
+gApAutoChannelSelection=0
+
+# Listen Energy Detect Mode Configuration
+# Valid values 0-128
+# 128 means disable Energy Detect feature
+# 0-9 are threshold code and 7 is recommended value from system if feature is to be enabled.
+# 10-128 are reserved.
+# The EDET threshold mapping is as follows in 3dB step:
+# 0 = -60 dBm
+# 1 = -63 dBm
+# 2 = -66 dBm
+# ...
+# 7 = -81 dBm
+# 8 = -84 dBm
+# 9 = -87 dBm
+# Note: Any of these settings are valid. Setting 0 would yield the highest power saving (in a noisy environment) at the cost of more range. The range impact is approximately #calculated as:
+#
+# Range Loss (dB) = EDET threshold level (dBm) + 97 dBm.
+#
+gEnablePhyAgcListenMode=128
+
+#Preferred band (both or 2.4 only or 5 only)
+BandCapability=0
+
+#Forced Device Listen Interval in multiples of DTIM Period aligned to DTIM
+gEnableModulatedDTIM=3
+
+#Beacon Early Termination (1 = enable the BET feature, 0 = disable)
+enableBeaconEarlyTermination=1
+beaconEarlyTerminationWakeInterval=11
+
+#Bluetooth Alternate Mac Phy (1 = enable the BT AMP feature, 0 = disable)
+gEnableBtAmp=0
+
+#Preferred channel to start BT AMP AP mode (0 means, any channel)
+BtAmpPreferredChannel=0
+
+#SOFTAP Channel Range selection
+gAPChannelSelectStartChannel=1
+gAPChannelSelectEndChannel=11
+
+#SOFTAP Channel Range selection Operating band
+# 0:2.4GHZ 1: LOW-5GHZ 2:MID-5GHZ 3:HIGH-5GHZ 4: 4.9HZ BAND
+gAPChannelSelectOperatingBand=0
+
+#Enable Keep alive with non-zero period value
+gStaKeepAlivePeriod = 25
+
+#If set will start with active scan after driver load, otherwise will start with
+#passive scan to find out the domain
+gEnableBypass11d=1
+
+#If set to 0, will not scan DFS channels
+gEnableDFSChnlScan=0
+
+# Enable logp/SSR
+gEnableLogp=1
+
+# Disable HT40
+gChannelBondingMode5GHz=0
+
+# Enable Automatic Tx Power control
+gEnableAutomaticTxPowerControl=1
+
+# Derive P2P MAC address from primary MAC address
+isP2pDeviceAddrAdministrated=1
+
+# Disable channel 165 for Indonesia
+gIgnore_Chan165=1
+
+END
+# Note: Configuration parser would not read anything past the END marker
diff --git a/WCNSS_qcom_wlan_nv.bin b/WCNSS_qcom_wlan_nv.bin
new file mode 100755
index 0000000..1d50aa0
--- /dev/null
+++ b/WCNSS_qcom_wlan_nv.bin
Binary files differ
diff --git a/apq8064-tabla-snd-card_Button_Jack.kcm b/apq8064-tabla-snd-card_Button_Jack.kcm
new file mode 100644
index 0000000..7ee6e5a
--- /dev/null
+++ b/apq8064-tabla-snd-card_Button_Jack.kcm
@@ -0,0 +1,15 @@
+# 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.
+
+type SPECIAL_FUNCTION
diff --git a/apq8064-tabla-snd-card_Button_Jack.kl b/apq8064-tabla-snd-card_Button_Jack.kl
new file mode 100644
index 0000000..421b5b8
--- /dev/null
+++ b/apq8064-tabla-snd-card_Button_Jack.kl
@@ -0,0 +1 @@
+key 256 HEADSETHOOK WAKE
diff --git a/audio_policy.conf b/audio_policy.conf
new file mode 100644
index 0000000..0b94ad8
--- /dev/null
+++ b/audio_policy.conf
@@ -0,0 +1,100 @@
+# 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_EARPIECE|AUDIO_DEVICE_OUT_SPEAKER
+ default_output_device AUDIO_DEVICE_OUT_SPEAKER
+ attached_input_devices AUDIO_DEVICE_IN_BUILTIN_MIC|AUDIO_DEVICE_IN_BACK_MIC
+}
+
+# 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 {
+ outputs {
+ primary {
+ sampling_rates 44100|48000
+ 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_ALL_SCO|AUDIO_DEVICE_OUT_AUX_DIGITAL
+ flags AUDIO_OUTPUT_FLAG_PRIMARY
+ }
+ deep_buffer {
+ sampling_rates 8000|11025|12000|16000|22050|24000|32000|44100|48000
+ channel_masks AUDIO_CHANNEL_OUT_STEREO
+ formats AUDIO_FORMAT_PCM_16_BIT
+ devices AUDIO_DEVICE_OUT_SPEAKER|AUDIO_DEVICE_OUT_EARPIECE|AUDIO_DEVICE_OUT_WIRED_HEADSET|AUDIO_DEVICE_OUT_WIRED_HEADPHONE|AUDIO_DEVICE_OUT_ALL_SCO|AUDIO_DEVICE_OUT_AUX_DIGITAL
+ flags AUDIO_OUTPUT_FLAG_DEEP_BUFFER
+ }
+ hdmi {
+ sampling_rates 44100|48000
+ channel_masks dynamic
+ formats AUDIO_FORMAT_PCM_16_BIT
+ devices AUDIO_DEVICE_OUT_AUX_DIGITAL
+ flags AUDIO_OUTPUT_FLAG_DIRECT
+ }
+ }
+ inputs {
+ primary {
+ sampling_rates 8000|11025|12000|16000|22050|24000|32000|44100|48000
+ channel_masks AUDIO_CHANNEL_IN_MONO|AUDIO_CHANNEL_IN_STEREO
+ formats AUDIO_FORMAT_PCM_16_BIT
+ devices AUDIO_DEVICE_IN_BUILTIN_MIC|AUDIO_DEVICE_IN_WIRED_HEADSET|AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET|AUDIO_DEVICE_IN_VOICE_CALL|AUDIO_DEVICE_IN_BACK_MIC
+ }
+ }
+ }
+ a2dp {
+ outputs {
+ a2dp {
+ sampling_rates 44100
+ channel_masks AUDIO_CHANNEL_OUT_STEREO
+ formats AUDIO_FORMAT_PCM_16_BIT
+ devices AUDIO_DEVICE_OUT_ALL_A2DP
+ }
+ }
+ }
+ usb {
+ 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
+ }
+ }
+ }
+ r_submix {
+ outputs {
+ submix {
+ sampling_rates 44100|48000
+ channel_masks AUDIO_CHANNEL_OUT_STEREO
+ formats AUDIO_FORMAT_PCM_16_BIT
+ devices AUDIO_DEVICE_OUT_REMOTE_SUBMIX
+ }
+ }
+ inputs {
+ submix {
+ sampling_rates 44100|48000
+ channel_masks AUDIO_CHANNEL_IN_STEREO
+ formats AUDIO_FORMAT_PCM_16_BIT
+ devices AUDIO_DEVICE_IN_REMOTE_SUBMIX
+ }
+ }
+ }
+}
diff --git a/bdAddrLoader/Android.mk b/bdAddrLoader/Android.mk
new file mode 100644
index 0000000..bae37d6
--- /dev/null
+++ b/bdAddrLoader/Android.mk
@@ -0,0 +1,32 @@
+#
+# Copyright 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.
+#
+
+ifneq ($(filter msm8960 ,$(TARGET_DEVICE)),)
+
+LOCAL_PATH:= $(call my-dir)
+
+include $(CLEAR_VARS)
+LOCAL_SRC_FILES := addrloader.c
+LOCAL_C_INCLUDES := \
+ $(LOCAL_PATH) \
+ $(TARGET_OUT_HEADERS)/common/inc
+LOCAL_SHARED_LIBRARIES := libcutils
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := qcom
+LOCAL_MODULE := bdAddrLoader
+include $(BUILD_EXECUTABLE)
+
+endif
diff --git a/bdAddrLoader/NOTICE b/bdAddrLoader/NOTICE
new file mode 100644
index 0000000..33ff961
--- /dev/null
+++ b/bdAddrLoader/NOTICE
@@ -0,0 +1,190 @@
+
+ Copyright (c) 2005-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.
+
+ 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.
+
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
diff --git a/bdAddrLoader/addrloader.c b/bdAddrLoader/addrloader.c
new file mode 100644
index 0000000..5c273f9
--- /dev/null
+++ b/bdAddrLoader/addrloader.c
@@ -0,0 +1,293 @@
+/*
+ * Copyright 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.
+ */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <stdlib.h>
+#include <sys/ioctl.h>
+#include <sys/socket.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <getopt.h>
+
+#define LOG_TAG "bdAddrLoader"
+
+#include <cutils/log.h>
+#include <cutils/properties.h>
+
+#define FILE_PATH_MAX 100
+#define BD_ADDR_LEN 6
+#define BD_ADDR_STR_LEN 18
+
+
+#define ARG_TYPE_PATH_FILE 0x11
+#define ARG_TYPE_PATH_PROP 0x12
+
+#define ARG_TYPE_DATA_HEX 0x21
+#define ARG_TYPE_DATA_ASCII 0x22
+
+typedef struct _ArgEl
+{
+ const char *szSrc; // Source Path
+ int nPathType; // Type of Source Path
+ int nDataType; // Type of Data
+}ArgEl;
+
+typedef ArgEl InArg;
+
+#define DEFAULT_BDADDR_PROP "persist.service.bdroid.bdaddr"
+
+typedef struct _OutArg
+{
+ ArgEl dest;
+ char cSeperator; // a character to be used for sperating like ':' of "XX:XX:XX:XX:XX:XX"
+ char bPrintOut; // Print out bd addr in standard out or not
+}OutArg;
+
+typedef struct _LoadedData
+{
+ union {
+ unsigned char bin[BD_ADDR_LEN];
+ char sz[BD_ADDR_STR_LEN];
+ }data;
+ int nDataType;
+}LoadedBDAddr;
+
+typedef enum _res
+{
+ SUCCESS = 0,
+ FAIL
+}Res;
+
+int hexa_to_ascii(const unsigned char* hexa, char* ascii, int nHexLen)
+{
+ int i, j;
+ char hex_table[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
+ 'A', 'B', 'C', 'D', 'E', 'F'};
+
+ for (i = 0, j = 0; i <nHexLen; i++, j += 2) {
+ ascii[j] = hex_table[hexa[i] >> 4];
+ ascii[j + 1] = hex_table[hexa[i] & 0x0F];
+ }
+
+ ascii[nHexLen*2] = '\0';
+
+ ALOGI("hex_to_ascii() - converted Data (%s)", ascii);
+
+ return SUCCESS;
+}
+
+int readBDAddrData(const char* szFilePath, unsigned char* addrData, int nDataLen)
+{
+ int nFd, nRdCnt;
+
+ nFd = open(szFilePath, O_RDONLY);
+
+ if(nFd < 0){
+ ALOGW("There is no Address File in FTM area : %s\n", szFilePath);
+ return FAIL;
+ }
+
+ nRdCnt = read(nFd, addrData, nDataLen);
+ if(nRdCnt != nDataLen){
+ ALOGE("Fail to read Address data from FTM area\n");
+ close(nFd);
+ return FAIL;
+ }
+ close(nFd);
+ return SUCCESS;
+}
+
+void formattingBdAddr(char *szBDAddr, const char cSep)
+{
+ int i=1, j=0;
+ int pos=0;
+ for(i=1; i<BD_ADDR_LEN; i++){
+ pos = strlen(szBDAddr);
+ for(j=0; j<(BD_ADDR_LEN*2)-i*2; j++){
+ szBDAddr[pos-j] = szBDAddr[pos-j-1];
+ }
+ szBDAddr[pos-j]=cSep;
+ }
+}
+
+int readBDAddr(InArg inArg, LoadedBDAddr *loadedBDAddr)
+{
+ Res res = FAIL;
+ unsigned char addrData[BD_ADDR_LEN] = {0,};
+ int nDataLen = 0;
+
+ ALOGI("Read From %s by Path type(0x%2x), Data type (0x%2x)", inArg.szSrc, inArg.nPathType, inArg.nDataType);
+
+
+ if(inArg.nPathType == ARG_TYPE_PATH_FILE){
+ switch(inArg.nDataType){
+ case ARG_TYPE_DATA_HEX:
+ if(!readBDAddrData(inArg.szSrc, loadedBDAddr->data.bin, BD_ADDR_LEN)){
+ loadedBDAddr->nDataType = ARG_TYPE_DATA_HEX;
+ return SUCCESS;
+ }
+ break;
+ case ARG_TYPE_DATA_ASCII:
+ if(!readBDAddrData(inArg.szSrc, (unsigned char *)loadedBDAddr->data.sz, BD_ADDR_STR_LEN)){
+ loadedBDAddr->nDataType = ARG_TYPE_DATA_ASCII;
+ return SUCCESS;
+ }
+ break;
+ default:
+ return FAIL;
+ }
+ }else if(inArg.nPathType == ARG_TYPE_PATH_PROP){
+ switch(inArg.nDataType){
+ case ARG_TYPE_DATA_HEX:
+ if(property_get(inArg.szSrc, (char *)loadedBDAddr->data.bin, "")>=0){
+ loadedBDAddr->nDataType = ARG_TYPE_DATA_HEX;
+ return SUCCESS;
+ }
+ break;
+ case ARG_TYPE_DATA_ASCII:
+ if(property_get(inArg.szSrc, loadedBDAddr->data.sz, "")>=0){
+ loadedBDAddr->nDataType = ARG_TYPE_DATA_ASCII;
+ return SUCCESS;
+ }
+ break;
+ default:
+ return FAIL;
+ }
+ }else{
+ ALOGE("Error invalid argument : (%d)", inArg.nPathType);
+ }
+
+ ALOGE("Fail to read BDAddr from %s", inArg.szSrc);
+ return FAIL;
+}
+
+int writeBDAddr(OutArg outArg, LoadedBDAddr *loadedBDAddr)
+{
+ char szTmp[BD_ADDR_STR_LEN] = {0,};
+
+ ALOGI("Output Data type(0x%2x), bPrintout(%d), bPath(%s)",
+ outArg.dest.nDataType, outArg.bPrintOut, outArg.dest.szSrc);
+
+ ALOGI("Loaded Data type(0x%2x)", loadedBDAddr->nDataType);
+
+ if(outArg.dest.nDataType == ARG_TYPE_DATA_ASCII
+ && loadedBDAddr->nDataType == ARG_TYPE_DATA_HEX
+ ){
+ if(!hexa_to_ascii(loadedBDAddr->data.bin, szTmp, BD_ADDR_LEN)){
+ memcpy(loadedBDAddr->data.sz, szTmp, BD_ADDR_STR_LEN);
+ loadedBDAddr->nDataType = ARG_TYPE_DATA_ASCII;
+ }
+ else{
+ ALOGE("Fail to convert data");
+ return FAIL;
+ }
+ }
+
+ if(loadedBDAddr->nDataType == ARG_TYPE_DATA_ASCII){
+ // check out which addr data is already formated
+ if(strchr(loadedBDAddr->data.sz, '.') == NULL
+ && strchr(loadedBDAddr->data.sz, ':') == NULL
+ ){
+ formattingBdAddr(loadedBDAddr->data.sz, outArg.cSeperator);
+ }
+ }
+ // print out szBDAddr
+ if(outArg.bPrintOut
+ && loadedBDAddr->nDataType == ARG_TYPE_DATA_ASCII
+ && strlen(loadedBDAddr->data.sz)==(BD_ADDR_STR_LEN-1)) {
+ printf("%s",loadedBDAddr->data.sz);
+ if (property_set(DEFAULT_BDADDR_PROP, loadedBDAddr->data.sz) < 0)
+ ALOGE("Failed to set address in prop %s", DEFAULT_BDADDR_PROP);
+ }
+ else{
+ ALOGE("Invalid Data is loaded : %s", loadedBDAddr->data.sz);
+ return FAIL;
+ }
+ // TODO :: writing File or Property
+ return SUCCESS;
+}
+
+int main(int argc, char *argv[])
+{
+ int nFd, nRdCnt;
+ int c;
+
+ InArg inArg;
+ OutArg outArg;
+ LoadedBDAddr loadedBDAddr;
+
+ //initialize arg
+ memset(&inArg, 0, sizeof(InArg));
+ memset(&outArg, 0, sizeof(OutArg));
+ memset(&loadedBDAddr, 0, sizeof(LoadedBDAddr));
+
+ //load args;
+ while((c=getopt(argc, argv, ":f:p:hsx")) != -1){
+ switch(c){
+ case 'f': // input path
+ if(optarg != NULL){
+ ALOGI("option : f=%s", optarg);
+ inArg.szSrc = optarg;
+ }else{
+ ALOGW("Invalid Argument(%s) of input path", optarg);
+ }
+ inArg.nPathType = ARG_TYPE_PATH_FILE;
+ break;
+ case 'p': // output path
+ if(optarg != NULL){
+ ALOGI("option : p=%s", optarg);
+ inArg.szSrc = optarg;
+ }else{
+ ALOGW("Invalid Argument(%s) of out Path", optarg);
+ }
+ inArg.nPathType = ARG_TYPE_PATH_PROP;
+ break;
+ case 'h': // data type to be read is hex
+ ALOGI("option : h");
+ inArg.nDataType = ARG_TYPE_DATA_HEX;
+ break;
+ case 's': // data type to be read is ascii
+ ALOGI("option : s");
+ inArg.nDataType = ARG_TYPE_DATA_ASCII;
+ break;
+ case 'x':
+ ALOGI("option : x");
+ outArg.bPrintOut = 1; //true
+ break;
+ default:
+ ALOGW("Unknown option : %c", c);
+ break;
+ }
+ }
+
+ // setting up Arguments with default value
+ outArg.cSeperator = ':';
+ outArg.dest.nDataType = ARG_TYPE_DATA_ASCII;
+
+ // load bd addr and print out bd addr in formated ascii
+ if(readBDAddr(inArg, &loadedBDAddr)){
+ ALOGE("Fail to load data !!");
+ return FAIL;
+ }
+
+ if(writeBDAddr(outArg, &loadedBDAddr)){
+ ALOGE("Fail to write data !!");
+ return FAIL;
+ }
+
+ return 1;
+}
diff --git a/bluetooth/bdroid_buildcfg.h b/bluetooth/bdroid_buildcfg.h
new file mode 100644
index 0000000..ed417ed
--- /dev/null
+++ b/bluetooth/bdroid_buildcfg.h
@@ -0,0 +1,23 @@
+/*
+ * 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.
+ */
+
+#ifndef _BDROID_BUILDCFG_H
+#define _BDROID_BUILDCFG_H
+
+#define BTM_DEF_LOCAL_NAME "Nexus 4"
+#define BTA_DISABLE_DELAY 1000 /* in milliseconds */
+
+#endif
diff --git a/board-info.txt b/board-info.txt
new file mode 100644
index 0000000..4cb46e2
--- /dev/null
+++ b/board-info.txt
@@ -0,0 +1 @@
+require board=MSM8960|FLO
diff --git a/charger_touch/Android.mk b/charger_touch/Android.mk
new file mode 100644
index 0000000..18d2578
--- /dev/null
+++ b/charger_touch/Android.mk
@@ -0,0 +1,30 @@
+#
+# Copyright 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.
+#
+
+ifneq ($(filter msm8960 ,$(TARGET_DEVICE)),)
+
+LOCAL_PATH:= $(call my-dir)
+
+include $(CLEAR_VARS)
+LOCAL_SRC_FILES := charger_touch.c
+LOCAL_SHARED_LIBRARIES := libcutils libhardware_legacy
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_PATH := $(TARGET_OUT)/bin
+LOCAL_MODULE := charger_touch
+LOCAL_MODULE_OWNER := qcom
+include $(BUILD_EXECUTABLE)
+
+endif
diff --git a/charger_touch/NOTICE b/charger_touch/NOTICE
new file mode 100644
index 0000000..33ff961
--- /dev/null
+++ b/charger_touch/NOTICE
@@ -0,0 +1,190 @@
+
+ Copyright (c) 2005-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.
+
+ 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.
+
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
diff --git a/charger_touch/charger_touch.c b/charger_touch/charger_touch.c
new file mode 100644
index 0000000..b459513
--- /dev/null
+++ b/charger_touch/charger_touch.c
@@ -0,0 +1,121 @@
+/*
+ * 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.
+ */
+
+#define LOG_TAG "CHARGER_TOUCH"
+#include <hardware_legacy/uevent.h>
+#include <utils/Log.h>
+#include <fcntl.h>
+
+#define POWER_SUPPLY_PATH "/sys/class/power_supply"
+#define TOUCH_PATH "/sys/devices/virtual/input/qcom_touch/charger"
+
+const char* WIRELESS = "change@/devices/platform/bq51051b_wlc/power_supply/wireless";
+const char* USB = "change@/devices/platform/msm_ssbi.0/pm8921-core/pm8921-charger/power_supply/usb";
+
+enum {
+ NO_CHARGER,
+ CHARGER_WIRELESS,
+ CHARGER_USB,
+ CHARGER_AC
+};
+
+static void read_path(const char* path, char* buf, size_t size)
+{
+ int fd = open(path, O_RDONLY, 0);
+ int count;
+
+ if (fd < 0) {
+ ALOGE("Could not open %s", path);
+ return;
+ }
+ count = read(fd, buf, size);
+
+ close(fd);
+}
+
+static void write_path(int type)
+{
+ int fd = open(TOUCH_PATH, O_RDWR, 0);
+ char buf[2];
+
+ if (fd < 0) {
+ ALOGE("Could not open %s", TOUCH_PATH);
+ return;
+ }
+
+ snprintf(buf, sizeof(buf), "%d", type);
+ write(fd, buf, 1);
+
+ close(fd);
+}
+
+static void handle_uevent(const char* udata)
+{
+ const char *str = udata;
+ char path[PATH_MAX];
+ char wlc[2], usb[2], ac[2];
+ int type = NO_CHARGER;
+
+ memset(wlc, 0, 2);
+ memset(usb, 0, 2);
+ memset(ac, 0, 2);
+
+ if (!strncmp(str, WIRELESS, strlen(WIRELESS))) {
+ snprintf(path, sizeof(path), "%s/wireless/online", POWER_SUPPLY_PATH);
+ read_path(path, wlc, 1);
+ if (!strncmp(wlc, "1", 1))
+ type = CHARGER_WIRELESS;
+
+ ALOGE("Type: %d", type);
+ write_path(type);
+ } else if (!strncmp(str, USB, strlen(USB))) {
+ snprintf(path, sizeof(path), "%s/usb/online", POWER_SUPPLY_PATH);
+ read_path(path, usb, 1);
+
+ snprintf(path, sizeof(path), "%s/pm8921-dc/online", POWER_SUPPLY_PATH);
+ read_path(path, ac, 1);
+
+ if (!strncmp(usb, "1", 1)) {
+ type = CHARGER_USB;
+ } else if (!strncmp(ac, "1", 1)) {
+ type = CHARGER_AC;
+ }
+
+ ALOGE("Type: %d", type);
+ write_path(type);
+ }
+
+}
+
+static void event_loop(void)
+{
+ int len = 0;
+ static char udata[4096];
+ memset(udata, 0, sizeof(udata));
+
+ uevent_init();
+
+ while (1) {
+ len = uevent_next_event(udata, sizeof(udata) - 2);
+ handle_uevent(udata);
+ }
+}
+
+int main()
+{
+ event_loop();
+ return 0;
+}
diff --git a/conn_init/Android.mk b/conn_init/Android.mk
new file mode 100644
index 0000000..cf67e4b
--- /dev/null
+++ b/conn_init/Android.mk
@@ -0,0 +1,87 @@
+#
+# Copyright 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.
+#
+
+ifneq ($(filter msm8960 ,$(TARGET_DEVICE)),)
+
+LOCAL_PATH:= $(call my-dir)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libwfcu
+LOCAL_SRC_FILES := wfc_util_fctrl.c \
+ wfc_util_common.c
+LOCAL_CFLAGS := -Wall \
+ -Werror
+LOCAL_CFLAGS += -DCONFIG_LGE_WLAN_WIFI_PATCH
+ifeq ($(BOARD_HAS_QCOM_WLAN), true)
+LOCAL_SRC_FILES += wfc_util_qcom.c
+LOCAL_CFLAGS += -DCONFIG_LGE_WLAN_QCOM_PATCH
+LOCAL_CFLAGS += -DWLAN_CHIP_VERSION_WCNSS
+endif
+LOCAL_SHARED_LIBRARIES := libcutils
+LOCAL_PRELINK_MODULE := false
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := qcom
+include $(BUILD_SHARED_LIBRARY)
+
+include $(CLEAR_VARS)
+LOCAL_SRC_FILES := conn_init.c
+LOCAL_SHARED_LIBRARIES := libcutils
+LOCAL_SHARED_LIBRARIES += libwfcu
+LOCAL_CFLAGS += -Wall -Werror
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_PATH := $(TARGET_OUT)/bin
+LOCAL_MODULE := conn_init
+LOCAL_MODULE_OWNER := qcom
+
+# Make sure the symlinks get created as well.
+LOCAL_REQUIRED_MODULES := WCNSS_qcom_cfg.ini WCNSS_qcom_wlan_nv.bin
+include $(BUILD_EXECUTABLE)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := WCNSS_qcom_cfg.ini
+LOCAL_MODULE_CLASS := FAKE
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := qcom
+include $(BUILD_SYSTEM)/base_rules.mk
+$(LOCAL_BUILT_MODULE): TARGET := /data/misc/wifi/$(LOCAL_MODULE)
+$(LOCAL_BUILT_MODULE): SYMLINK := $(TARGET_OUT_VENDOR)/firmware/wlan/prima/$(LOCAL_MODULE)
+$(LOCAL_BUILT_MODULE):
+ $(hide) echo "Symlink: $(SYMLINK) -> $(TARGET)"
+ $(hide) mkdir -p $(dir $@)
+ $(hide) mkdir -p $(dir $(SYMLINK))
+ $(hide) rm -rf $@
+ $(hide) rm -rf $(SYMLINK)
+ $(hide) ln -sf $(TARGET) $(SYMLINK)
+ $(hide) touch $@
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := WCNSS_qcom_wlan_nv.bin
+LOCAL_MODULE_CLASS := FAKE
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := qcom
+include $(BUILD_SYSTEM)/base_rules.mk
+$(LOCAL_BUILT_MODULE): TARGET := /data/misc/wifi/$(LOCAL_MODULE)
+$(LOCAL_BUILT_MODULE): SYMLINK := $(TARGET_OUT_VENDOR)/firmware/wlan/prima/$(LOCAL_MODULE)
+$(LOCAL_BUILT_MODULE):
+ $(hide) echo "Symlink: $(SYMLINK) -> $(TARGET)"
+ $(hide) mkdir -p $(dir $@)
+ $(hide) mkdir -p $(dir $(SYMLINK))
+ $(hide) rm -rf $@
+ $(hide) rm -rf $(SYMLINK)
+ $(hide) ln -sf $(TARGET) $(SYMLINK)
+ $(hide) touch $@
+
+endif
diff --git a/conn_init/NOTICE b/conn_init/NOTICE
new file mode 100644
index 0000000..33ff961
--- /dev/null
+++ b/conn_init/NOTICE
@@ -0,0 +1,190 @@
+
+ Copyright (c) 2005-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.
+
+ 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.
+
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
diff --git a/conn_init/conn_init.c b/conn_init/conn_init.c
new file mode 100644
index 0000000..2cb5591
--- /dev/null
+++ b/conn_init/conn_init.c
@@ -0,0 +1,56 @@
+/*
+ * Copyright 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.
+ */
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+
+extern int wfc_util_qcom_check_config(unsigned char *nv_mac_addr);
+extern void wfc_util_atoh(char *pAsciiString, int szAsciiString, unsigned char *pHexaBuff, int szHexaBuff);
+
+static int wifi_check_qcom_cfg_files()
+{
+ char macAddress[13];
+ char hex[7];
+ memset(macAddress, 0, 13);
+ memset(hex, 0, 7);
+
+ // Read MAC String
+ FILE *fp = NULL;
+ int n = 0;
+ fp = fopen("/persist/wifi/.macaddr", "r");
+ if ( fp == NULL )
+ {
+ wfc_util_qcom_check_config((unsigned char *)macAddress);
+ return 0;
+ }
+ else
+ {
+ n = fread(macAddress, 12, 1, fp);
+ fclose(fp);
+
+ // Write MAC String
+ wfc_util_atoh( macAddress, 12, (unsigned char *)hex, 6);
+ wfc_util_qcom_check_config((unsigned char *)hex);
+ }
+ return 1;
+}
+
+int main(void)
+{
+ wifi_check_qcom_cfg_files();
+
+ return 0;
+}
diff --git a/conn_init/wfc_util_common.c b/conn_init/wfc_util_common.c
new file mode 100644
index 0000000..b149920
--- /dev/null
+++ b/conn_init/wfc_util_common.c
@@ -0,0 +1,135 @@
+/*
+ * Copyright 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.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+
+#include "wfc_util_log.h"
+
+#define WFC_UTIL_RANDOM_MAC_HEADER "001122"
+
+void wfc_util_htoa(unsigned char *pHexaBuff, int szHexaBuff, char *pAsciiStringBuff, int szAsciiStringBuff)
+{
+ int i, j;
+ char hex_table[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
+ 'A', 'B', 'C', 'D', 'E', 'F'};
+
+ if ((szHexaBuff*2) > szAsciiStringBuff) {
+ wfc_util_log_error("wfc_util_htoa : not enough buffer size(%d)", szAsciiStringBuff);
+ return;
+ }
+
+ memset(pAsciiStringBuff, 0, szAsciiStringBuff);
+
+ /* for (i = szHexaBuff-1, j = 0; i >= 0; i--, j += 2) { */
+ for (i = 0, j = 0; i < szHexaBuff; i++, j += 2) {
+ /*pAsciiStringBuff[j] = hex_table[(pHexaBuff[i] >> 4) & 0x0F];
+ */
+ pAsciiStringBuff[j] = hex_table[pHexaBuff[i] >> 4];
+ pAsciiStringBuff[j + 1] = hex_table[pHexaBuff[i] & 0x0F];
+ }
+
+ return;
+}
+
+void wfc_util_atoh(char *pAsciiString, int szAsciiString, unsigned char *pHexaBuff, int szHexaBuff)
+{
+ int i, pos;
+ char temp;
+
+ if ( 0!=(szAsciiString%2) || (szHexaBuff*2) < szAsciiString) {
+ wfc_util_log_error("wfc_util_atoh : not enough buffer size(%d)", szHexaBuff);
+ return;
+ }
+
+ memset(pHexaBuff, 0, szHexaBuff);
+
+ for (i=0 ; i<szAsciiString ; i++) {
+
+ /* pos = (szAsciiString - i - 1) / 2; */
+ pos = i / 2;
+ temp = pAsciiString[i];
+
+ if (temp >= '0' && temp <= '9') {
+ temp = temp - '0';
+ } else if ( temp >= 'a' && temp <= 'f' ) {
+ temp = temp - 'a' + 10;
+ } else if ( temp >= 'A' && temp <= 'F' ) {
+ temp = temp - 'A' + 10;
+ } else {
+ temp = 0;
+ }
+
+ if (0==i%2) {
+ pHexaBuff[pos] = temp<<4;
+ } else {
+ pHexaBuff[pos] |= temp;
+ }
+ }
+
+ return;
+}
+
+/*
+ * wfc_util_is_random_mac
+ *
+ * return : it will return 1 if [mac_add] is same with WFC_UTIL_RANDOM_MAC_HEADER
+ * or will return 0 if not.
+ */
+int wfc_util_is_random_mac(char *mac_add)
+{
+ if(0 == strncmp(mac_add, WFC_UTIL_RANDOM_MAC_HEADER, 6)) {
+ return 1;
+ }
+
+ return 0;
+}
+
+/*
+ * wfc_util_random_mac
+ *
+ * Create random MAC address
+ *
+ * return : void
+ */
+void wfc_util_random_mac(unsigned char* mac_addr)
+{
+ unsigned long int rand_mac;
+
+ if(NULL == mac_addr) {
+ wfc_util_log_error("wfc_util_random_mac : buffer is NULL");
+ return;
+ }
+
+ /* Create random MAC address: offset 3, 4 and 5 */
+ srandom(time(NULL));
+ rand_mac=random();
+
+ #ifndef WFC_UTIL_RANDOM_MAC_HEADER
+ mac_addr[0] = (unsigned char)0x00;
+ mac_addr[1] = (unsigned char)0x11;
+ mac_addr[2] = (unsigned char)0x22;
+ #else /* WFC_UTIL_RANDOM_MAC_HEADER */
+ wfc_util_atoh(WFC_UTIL_RANDOM_MAC_HEADER, 6, mac_addr, 3);
+ #endif /* WFC_UTIL_RANDOM_MAC_HEADER */
+ mac_addr[3] = (unsigned char)rand_mac;
+ mac_addr[4] = (unsigned char)(rand_mac >> 8);
+ mac_addr[5] = (unsigned char)(rand_mac >> 16);
+
+ return;
+}
diff --git a/conn_init/wfc_util_common.h b/conn_init/wfc_util_common.h
new file mode 100644
index 0000000..c91f899
--- /dev/null
+++ b/conn_init/wfc_util_common.h
@@ -0,0 +1,51 @@
+/*
+ * Copyright 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.
+ */
+
+#ifndef __WFC_UTIL_COMMON_H__
+#define __WFC_UTIL_COMMON_H__
+
+/*
+ * wfc_util_htoa
+ *
+ * return : void
+ */
+extern void wfc_util_htoa(unsigned char *pHexaBuff, int szHexaBuff, char *pAsciiStringBuff, int szAsciiStringBuff);
+
+/*
+ * wfc_util_atoh
+ *
+ * return : void
+ */
+extern void wfc_util_atoh(char *pAsciiString, int szAsciiString, unsigned char *pHexaBuff, int szHexaBuff);
+
+/*
+ * wfc_util_is_random_mac
+ *
+ * return : it will return 1 if [mac_add] is same with WFC_UTIL_RANDOM_MAC_HEADER
+ * or will return 0 if not.
+ */
+extern int wfc_util_is_random_mac(char *mac_add);
+
+/*
+ * wfc_util_random_mac
+ *
+ * Create random MAC address
+ *
+ * return : void
+ */
+void wfc_util_random_mac(unsigned char* mac_addr);
+
+#endif
diff --git a/conn_init/wfc_util_fctrl.c b/conn_init/wfc_util_fctrl.c
new file mode 100644
index 0000000..13a82f1
--- /dev/null
+++ b/conn_init/wfc_util_fctrl.c
@@ -0,0 +1,664 @@
+/*
+ * Copyright 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.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <errno.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+
+#include "wfc_util_log.h"
+
+/*
+static void wfc_util_printf(char *pSPointer, int length)
+{
+ char *pPrintBuff = NULL;
+
+ if( NULL == pSPointer || 0 >= length ) {
+ wfc_util_log_error("wfc_util_printf : unvalid parameters");
+ return;
+ }
+
+ wfc_util_log_error("wfc_util_printf : lenght is (%d)", length);
+ pPrintBuff = malloc(length+1);
+
+ if( NULL != pPrintBuff ) {
+ memset( pPrintBuff, 0, (length+1) );
+ memcpy(pPrintBuff, pSPointer, length);
+
+ wfc_util_log_error("wfc_util_printf : %s", pPrintBuff);
+
+ free(pPrintBuff);
+ } else {
+ wfc_util_log_error("wfc_util_printf : can not malloc(%d)", (length+1));
+ }
+ return;
+}
+*/
+
+static void wfc_util_finsert_new_string(int fd, char **ppReadedBuff, char *pNewStringValue, char *pEndOfCfg)
+{
+ off_t sz_file;
+ int sz_backupBuff = 0;
+ char *pReadBuff = NULL, *pBackupBuff = NULL;
+ char *pSPointer = NULL, *pETagPointer = NULL;
+
+ if( 0 == fd || NULL == pNewStringValue || 0 == strlen(pNewStringValue) ) {
+ wfc_util_log_error("wfc_util_finsert_new_string : unvalid parameters");
+ return;
+ }
+
+ if( NULL == ppReadedBuff) {
+ // TODO:
+ return;
+ } else {
+ pReadBuff = *ppReadedBuff;
+ }
+
+ /*
+ * find END TAG string
+ */
+ pETagPointer = strstr(pReadBuff, pEndOfCfg);
+ pSPointer = pETagPointer - 1;
+
+ /*
+ * calcurate file size and size of the tail of file
+ */
+ sz_file = lseek( fd, 0, SEEK_END );
+ sz_backupBuff = (int)sz_file - (pETagPointer - pReadBuff);
+
+ /*
+ * prefare the buffer to store the tail of file
+ */
+ pBackupBuff = malloc(sz_backupBuff);
+
+ if( NULL != pBackupBuff ) {
+ /*
+ * copy the tail of file.
+ */
+ memset( pBackupBuff, 0, sz_backupBuff );
+ memcpy( pBackupBuff, pETagPointer, sz_backupBuff );
+
+ /*
+ * write new string.
+ */
+ lseek( fd, (int)(pSPointer-pReadBuff), SEEK_SET );
+ write( fd, pNewStringValue, strlen(pNewStringValue));
+
+ /*
+ * update pETagPointer.
+ */
+ pETagPointer = pSPointer + strlen(pNewStringValue);
+
+ /*
+ * write the tail of file.
+ */
+ lseek( fd, (int)(pETagPointer-pReadBuff), SEEK_SET );
+ write( fd, pBackupBuff, sz_backupBuff );
+
+ ftruncate(fd, sz_file + strlen(pNewStringValue) - 1); /* we use "-1" becasue of "pSPointer = pETagPointer - 1"*/
+
+ free(pBackupBuff);
+
+ /*
+ * make new *ppReadedBuff
+ */
+ if( NULL != ppReadedBuff) {
+ // TODO:
+ }
+ } else {
+ wfc_util_log_error("wfc_util_finsert_new_string : can not malloc(%d)", sz_backupBuff);
+ }
+
+ return;
+}
+
+static void wfc_util_fupdate_string(int fd, char **ppReadedBuff,
+ char *pETagPointer, char *pSValuePointer, char *pNewValueString)
+{
+ off_t sz_file;
+ int sz_newReadBuff = 0;
+ char *pReadBuff = NULL, *pNewReadBuff = NULL, *pCurReadBuff = NULL;
+
+ if( 0 == fd ) {
+ wfc_util_log_error("wfc_util_fupdate_string : unvalid parameters");
+ return;
+ }
+
+ if( NULL == ppReadedBuff) {
+ // TODO:
+ return;
+ } else {
+ pReadBuff = *ppReadedBuff;
+ }
+
+ /*
+ * calcurate file size and new file size
+ */
+ sz_file = lseek( fd, 0, SEEK_END );
+ sz_newReadBuff = (int)sz_file - (int)(pETagPointer - pSValuePointer) + strlen(pNewValueString);
+
+ /*
+ * prefare the buffer to read file
+ */
+ pNewReadBuff = malloc(sz_newReadBuff);
+
+ if( NULL != pNewReadBuff ) {
+ /*
+ * copy buffer
+ */
+ memset( pNewReadBuff, 0, sz_file );
+ pCurReadBuff = pNewReadBuff;
+ memcpy( pNewReadBuff, pReadBuff, (int)(pSValuePointer-pReadBuff) );
+ pCurReadBuff += (int)(pSValuePointer-pReadBuff);
+
+ /*
+ * copy new value string
+ */
+ memcpy( pCurReadBuff, pNewValueString, strlen(pNewValueString));
+ pCurReadBuff += strlen(pNewValueString);
+
+ /*
+ * copy the remained buffer
+ */
+ memcpy( pCurReadBuff, pETagPointer, ((int)(sz_file) - (int)(pETagPointer - pReadBuff) + 1));
+
+ /*
+ * write file and update the file size
+ */
+ lseek( fd, 0, SEEK_SET );
+ write( fd, pNewReadBuff, sz_newReadBuff);
+ ftruncate(fd, sz_newReadBuff);
+
+ free(pNewReadBuff);
+ } else {
+ wfc_util_log_error("wfc_util_fupdate_string : can not malloc(%d)", (int)sz_newReadBuff);
+ }
+
+ return;
+}
+
+/*
+ * wfc_util_fset_buffer
+ *
+ * return : void
+ */
+void wfc_util_fset_buffer(char *pFileName, int positionStart, unsigned char *pNewValue, int newValueLength)
+{
+ int fd;
+ off_t sz_file;
+ char *pReadBuff = NULL;
+
+ fd = open( pFileName, O_RDWR );
+
+ if( fd >= 0 ) {
+ /*
+ * calcurate file size
+ */
+ sz_file = lseek( fd, 0, SEEK_END );
+
+ /*
+ * prefare the buffer to read file
+ */
+ pReadBuff = malloc(sz_file + 1); // null terminated
+
+ if( NULL != pReadBuff ) {
+ /*
+ * read file
+ */
+ memset( pReadBuff, 0, sz_file + 1);
+ lseek( fd, 0, SEEK_SET );
+ read( fd, pReadBuff, sz_file );
+
+ if(sz_file >= (positionStart+newValueLength)) {
+ lseek( fd, positionStart, SEEK_SET );
+ write( fd, pNewValue, newValueLength );
+ } else {
+ /*
+ * insert with new length value buffer
+ */
+ wfc_util_log_error("wfc_util_fset_buffer : file size(%d) is less than to write position(%d)", (int)sz_file, (positionStart+newValueLength));
+ // TODO:
+ }
+
+ free(pReadBuff);
+ } else {
+ wfc_util_log_error("wfc_util_fset_buffer : can not malloc(%d)", (int)sz_file);
+ }
+
+ if ( -1 == fsync( fd ) ) {
+ wfc_util_log_error("wfc_util_fset_buffer : fail to fsync()");
+ }
+
+ close( fd );
+ } else {
+ wfc_util_log_error("wfc_util_fset_buffer : can not open file");
+ }
+
+ return;
+}
+
+/*
+ * wfc_util_fget_buffer
+ *
+ * return : it will return the length of the stored buffer value if procedure is success
+ * or will return 0 if not.
+ */
+int wfc_util_fget_buffer(char *pFileName, int positionStart, int lengthToRead, unsigned char *pValueBuff, int buffLength)
+{
+ int result = 0;
+ int fd;
+ off_t sz_file;
+ char *pReadBuff = NULL;
+ char *pSValuePointer = NULL, *pETagPointer = NULL;
+
+ fd = open( pFileName, O_RDONLY );
+
+ if( fd >= 0 ) {
+ /*
+ * calcurate file size
+ */
+ sz_file = lseek( fd, 0, SEEK_END );
+
+ if(sz_file >= (positionStart+lengthToRead)) {
+ /*
+ * prefare the buffer to read file
+ */
+ pReadBuff = malloc(sz_file + 1); // null terminated
+
+ if( NULL != pReadBuff ) {
+ /*
+ * read file
+ */
+ memset( pReadBuff, 0, sz_file + 1 );
+ lseek( fd, 0, SEEK_SET );
+ read( fd, pReadBuff, sz_file );
+
+ /*
+ * calculate the start buffer pointer
+ */
+ pSValuePointer = pReadBuff + positionStart;
+
+ /*
+ * calculate the end buffer pointer
+ */
+ pETagPointer = pSValuePointer + lengthToRead;
+
+ /*
+ * read the string value
+ */
+ if( buffLength >= (int)(pETagPointer-pSValuePointer) ) {
+ memset( pValueBuff, 0, buffLength );
+ memcpy( pValueBuff, pSValuePointer, (int)(pETagPointer-pSValuePointer) );
+ result = (int)(pETagPointer-pSValuePointer);
+ } else {
+ wfc_util_log_error("wfc_util_fget_buffer : not enough string value buffer(%d)", (int)(pETagPointer-pSValuePointer));
+ }
+
+ free(pReadBuff);
+ } else {
+ wfc_util_log_error("wfc_util_fget_buffer : can not malloc(%d)", (int)sz_file);
+ }
+ } else {
+ wfc_util_log_error("wfc_util_fget_buffer : file size(%d) is less than to read position(%d)", (int)sz_file, (positionStart+lengthToRead));
+ }
+ close( fd );
+ } else {
+ wfc_util_log_error("wfc_util_fget_buffer : can not open file");
+ }
+
+ return result;
+}
+
+/*
+ * wfc_util_fset_string
+ *
+ * The following format string will be added or updated to the file pFileName.
+ * [pSTagString][pNewValueString][pETagString]
+ *
+ * pFileName : file name and path
+ * pEndOfCfg : tag string to notify the end of configuration file
+ * pSTagString : tag string to notify purpose of the value
+ * pETagString : tag string to notify the end of the value
+ * pNewValueString : string to set for pSTagString
+ *
+ * return : void
+ */
+void wfc_util_fset_string(char *pFileName, char *pEndOfCfg, char *pSTagString, char *pETagString, char *pNewValueString)
+{
+ int fd;
+ off_t sz_file;
+ int sz_NewValueBuff = 0;
+ char *pReadBuff = NULL, *pNewValueBuff = NULL;
+ char *pSPointer = NULL, *pETagPointer = NULL, *pSValuePointer = NULL;
+
+ fd = open( pFileName, O_RDWR );
+
+ if( fd >= 0 ) {
+ /*
+ * calcurate file size
+ */
+ sz_file = lseek( fd, 0, SEEK_END );
+
+ /*
+ * prefare the buffer to read file
+ */
+ if (sz_file > 0)
+ pReadBuff = malloc(sz_file + 1); // null terminated
+
+ if( NULL != pReadBuff ) {
+ /*
+ * read file
+ */
+ memset( pReadBuff, 0x00, sz_file + 1);
+ if(lseek(fd, 0, SEEK_SET) != 0) {
+ wfc_util_log_error("lseek failure");
+ }
+ read( fd, pReadBuff, sz_file );
+
+ /* WBT fix, make sure it is terminated with \0 */
+ pReadBuff[sz_file] = '\0';
+
+ /*
+ * find TAG string
+ */
+ pSPointer = strstr(pReadBuff, pSTagString);
+
+ if(NULL != pSPointer) {
+ /*
+ * find END OF LINE string
+ */
+ pETagPointer = strstr(pSPointer, pETagString);
+
+ if(NULL != pETagPointer) {
+ /*
+ * write the new string value
+ */
+ pSValuePointer = pSPointer+strlen(pSTagString);
+ if(strlen(pNewValueString) == (unsigned int)(pETagPointer-pSValuePointer)) {
+ lseek( fd, (int)(pSValuePointer-pReadBuff), SEEK_SET );
+ write( fd, pNewValueString, strlen(pNewValueString));
+ } else {
+ /*
+ * insert with new length value string
+ */
+ wfc_util_fupdate_string(fd, &pReadBuff, pETagPointer, pSValuePointer, pNewValueString);
+ }
+ } else {
+ wfc_util_log_error("wfc_util_fset_string : can not find End TAG");
+ }
+ } else {
+ /*
+ * "\n""[Start TAG][String Value][End TAG]""\n"
+ */
+ sz_NewValueBuff = strlen(pSTagString) +
+ strlen(pNewValueString) +
+ strlen(pETagString) +
+ 2 + 1;
+ pNewValueBuff = malloc( sz_NewValueBuff);
+
+ if( NULL != pNewValueBuff ) {
+ /*
+ * prefare the new string to insert
+ */
+ memset( pNewValueBuff, 0, sz_NewValueBuff );
+ sprintf( pNewValueBuff, "%c%s%s%s%c", '\n', pSTagString, pNewValueString, pETagString,'\n' );
+
+ /*
+ * insert new string to the file
+ */
+ wfc_util_finsert_new_string(fd, &pReadBuff, pNewValueBuff, pEndOfCfg);
+
+ free( pNewValueBuff );
+ } else {
+ wfc_util_log_error("wfc_util_fset_string : can not malloc(%d)", (int)sz_file);
+ }
+ }
+
+ free(pReadBuff);
+ } else {
+ wfc_util_log_error("wfc_util_fset_string : can not malloc(%d)", (int)sz_file);
+ }
+
+ if ( -1 == fsync( fd ) ) {
+ wfc_util_log_error("wfc_util_fset_string : fail to fsync()");
+ }
+
+ close( fd );
+ } else {
+ wfc_util_log_error("wfc_util_fset_string : can not open file");
+ }
+
+ return;
+}
+
+/*
+ * wfc_util_fget_string
+ *
+ * Read value from the following format string in the file pFileName.
+ * [pSTagString][string value to read][pETagString]
+ *
+ * pFileName : file name and path
+ * pEndOfCfg : tag string to notify the end of configuration file
+ * pSTagString : tag string to notify purpose of the value
+ * pETagString : tag string to notify the end of the value
+ * pValueStringBuff : string buffer to get string value
+ * stringBuffLength : the length of pValueStringBuff
+ *
+ * return : it will return the length of the stored string value if procedure is success
+ * or will return 0 if not.
+ */
+int wfc_util_fget_string(char *pFileName, char *pEndOfCfg, char *pSTagString, char *pETagString, char *pValueStringBuff, int stringBuffLength)
+{
+ int result = 0;
+ int fd;
+ off_t sz_file;
+ char *pReadBuff = NULL;
+ char *pSPointer = NULL, *pETagPointer = NULL, *pSValuePointer = NULL;
+
+ /* unused parameter*/
+ pEndOfCfg = pEndOfCfg;
+
+ fd = open( pFileName, O_RDONLY );
+
+ if( fd >= 0 ) {
+ /*
+ * calcurate file size
+ */
+ sz_file = lseek( fd, 0, SEEK_END );
+
+ /*
+ * prefare the buffer to read file
+ */
+ if (sz_file > 0) // skip when value is 0
+ pReadBuff = malloc(sz_file + 1);
+
+ if( NULL != pReadBuff ) {
+ /*
+ * read file
+ */
+ memset( pReadBuff, 0, sz_file + 1);
+ if(lseek(fd, 0, SEEK_SET) != 0) {
+ wfc_util_log_error("lseek failure");
+ }
+ read( fd, pReadBuff, sz_file );
+
+ /* WBT fix, make sure it is terminated with \0 */
+ pReadBuff[sz_file] = '\0';
+
+ /*
+ * find TAG string
+ */
+ pSPointer = strstr( pReadBuff, pSTagString );
+
+ if( NULL != pSPointer ) {
+ /*
+ * find END OF LINE string
+ */
+ pETagPointer = strstr(pSPointer, pETagString);
+
+ if( NULL != pETagPointer ) {
+ /*
+ * read the string value
+ */
+ pSValuePointer = pSPointer+strlen(pSTagString);
+ if( stringBuffLength >= (int)(pETagPointer-pSValuePointer) ) {
+ memset( pValueStringBuff, 0, stringBuffLength );
+ memcpy( pValueStringBuff, pSValuePointer, (int)(pETagPointer-pSValuePointer) );
+ result = (int)(pETagPointer-pSValuePointer);
+ } else {
+ wfc_util_log_error("wfc_util_fget_string : not enough string value buffer(%d)", (int)(pETagPointer-pSValuePointer));
+ }
+ } else {
+ wfc_util_log_error("wfc_util_fget_string : can not find End TAG");
+ }
+ } else {
+ wfc_util_log_error("wfc_util_fget_string : can not find Start TAG");
+ }
+ free(pReadBuff);
+ } else {
+ wfc_util_log_error("wfc_util_fget_string : can not malloc(%d)", (int)sz_file);
+ }
+ close( fd );
+ } else {
+ wfc_util_log_error("wfc_util_fget_string : can not open file");
+ }
+
+ return result;
+}
+
+/*
+ * wfc_util_ffile_check
+ *
+ * check whether pDestFName file exist or not
+ *
+ * pFileName : file name and path
+ * access_mode : R_OK | W_OK | X_OK | F_OK
+ *
+ * return : it will return 0 if the file exist
+ * or will return -1 if not.
+ */
+int wfc_util_ffile_check(char *pDestFName, int access_mode)
+{
+ struct stat st;
+
+ if (access(pDestFName, access_mode) == 0) {
+ if( stat( pDestFName, &st ) < 0 ) {
+ wfc_util_log_error("Cannot stat the file \"%s\": %s", pDestFName, strerror(errno));
+ return -1;
+ }
+ //check if config file has some data or is it empty due to previous errors
+ if( st.st_size ) {
+ return 0;
+ }
+ } else {
+ wfc_util_log_error("Cannot access \"%s\": %s", pDestFName, strerror(errno));
+ }
+
+ return -1;
+}
+
+/*
+ * wfc_util_ffile_check_copy
+ *
+ * check whether pDestFName file exist if not it will copy from pSourceFName file
+ *
+ * return : it will return 0 if procedure is success
+ * or will return -1 if not.
+ */
+int wfc_util_ffile_check_copy(char *pDestFName, char *pSourceFName, mode_t mode, uid_t uID, gid_t gID)
+{
+#define WFC_BUFFER_SIZE 2048
+ char buf[WFC_BUFFER_SIZE] = {0}; // Null terminated
+ int srcfd, destfd;
+ int nread;
+ struct stat st;
+
+ if (access(pDestFName, R_OK|W_OK) == 0) {
+ if( stat( pDestFName, &st ) < 0 ) {
+ wfc_util_log_error("Cannot stat the file \"%s\": %s", pDestFName, strerror(errno));
+ return -1;
+ }
+ //check if config file has some data or is it empty due to previous errors
+ if( st.st_size ) {
+ return 0;
+ }
+ //else continue to write the config from default template.
+ } else if (errno != ENOENT) {
+ wfc_util_log_error("Cannot access \"%s\": %s", pDestFName, strerror(errno));
+ return -1;
+ }
+
+ srcfd = open(pSourceFName, O_RDONLY);
+ if (srcfd < 0) {
+ wfc_util_log_error("Cannot open \"%s\": %s", pSourceFName, strerror(errno));
+ return -1;
+ }
+
+ destfd = open(pDestFName, O_CREAT|O_WRONLY, mode);
+ if (destfd < 0) {
+ close(srcfd);
+ wfc_util_log_error("Cannot create \"%s\": %s", pDestFName, strerror(errno));
+ return -1;
+ }
+
+ while ((nread = read(srcfd, buf, WFC_BUFFER_SIZE-1)) != 0) {
+ if (nread < 0) {
+ wfc_util_log_error("Error reading \"%s\": %s", pSourceFName, strerror(errno));
+ close(srcfd);
+ close(destfd);
+ unlink(pDestFName);
+ return -1;
+ }
+ // WBT fix, according to manual, the number of bytes read can't be bigger than read_size. I don't know why WBT complains for this.
+ if (nread < WFC_BUFFER_SIZE)
+ buf[nread] = '\0';
+ else {
+ buf[WFC_BUFFER_SIZE-1] = '\0';
+ nread = WFC_BUFFER_SIZE-1;
+ }
+ write(destfd, buf, nread);
+ }
+
+ close(destfd);
+ close(srcfd);
+
+ /* remove this code because of permission problem when it is accessed from "atd" having system permission. */
+ {
+ #ifndef CONFIG_LGE_WLAN_WIFI_PATCH
+ uid_t uid = getuid();
+ gid_t gid = getgid();
+ wfc_util_log_error("Error changing group ownership (%d) of %s to %d: %s", gid, pDestFName, gID, strerror(errno));
+ if (0 == uid) {
+ #endif /* CONFIG_LGE_WLAN_WIFI_PATCH */
+ if (chown(pDestFName, uID, gID) < 0) {
+ wfc_util_log_error("Error changing group ownership of %s to %d: %s", pDestFName, gID, strerror(errno));
+ unlink(pDestFName);
+ return -1;
+ }
+ #ifndef CONFIG_LGE_WLAN_WIFI_PATCH
+ } else {
+ wfc_util_log_error("wfc_util_ffile_check_copy : we can not excute chown[uid = %d, gid = %d]", uid, getgid());
+ }
+ #endif /* CONFIG_LGE_WLAN_WIFI_PATCH */
+ }
+
+ return 0;
+}
+
diff --git a/conn_init/wfc_util_fctrl.h b/conn_init/wfc_util_fctrl.h
new file mode 100644
index 0000000..5c49899
--- /dev/null
+++ b/conn_init/wfc_util_fctrl.h
@@ -0,0 +1,92 @@
+/*
+ * Copyright 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.
+ */
+
+#ifndef __WFC_UTIL_FCTRL_H__
+#define __WFC_UTIL_FCTRL_H__
+
+/*
+ * wfc_util_fset_buffer
+ *
+ * return : void
+ */
+void wfc_util_fset_buffer(char *pFileName, int positionStart, unsigned char *pNewValue, int newValueLength);
+
+/*
+ * wfc_util_fget_buffer
+ *
+ * return : it will return the length of the stored buffer value if procedure is success
+ * or will return 0 if not.
+ */
+extern int wfc_util_fget_buffer(char *pFileName, int positionStart, int lengthToRead, unsigned char *pValueBuff, int buffLength);
+
+/*
+ * wfc_util_fset_string
+ *
+ * The following format string will be added or updated to the file pFileName.
+ * [pSTagString][pNewValueString][pETagString]
+ *
+ * pFileName : file name and path
+ * pEndOfCfg : tag string to notify the end of configuration file
+ * pSTagString : tag string to notify purpose of the value
+ * pETagString : tag string to notify the end of the value
+ * pNewValueString : string to set for pSTagString
+ *
+ * return : void
+ */
+extern void wfc_util_fset_string(char *pFileName, char *pEndOfCfg, char *pSTagString, char *pETagString, char *pNewValueString);
+
+/*
+ * wfc_util_fget_string
+ *
+ * Read value from the following format string in the file pFileName.
+ * [pSTagString][string value to read][pETagString]
+ *
+ * pFileName : file name and path
+ * pEndOfCfg : tag string to notify the end of configuration file
+ * pSTagString : tag string to notify purpose of the value
+ * pETagString : tag string to notify the end of the value
+ * pValueStringBuff : string buffer to get string value
+ * stringBuffLength : the length of pValueStringBuff
+ *
+ * return : it will return the length of the stored string value if procedure is success
+ * or will return 0 if not.
+ */
+extern int wfc_util_fget_string(char *pFileName, char *pEndOfCfg, char *pSTagString, char *pETagString, char *pValueStringBuff, int stringBuffLength);
+
+/*
+ * wfc_util_ffile_check
+ *
+ * check whether pDestFName file exist or not
+ *
+ * pFileName : file name and path
+ * access_mode : R_OK | W_OK | X_OK | F_OK
+ *
+ * return : it will return 0 if the file exist
+ * or will return -1 if not.
+ */
+extern int wfc_util_ffile_check(char *pDestFName, int access_mode);
+
+/*
+ * wfc_util_ffile_check_copy
+ *
+ * check whether pDestFName file exist if not it will copy from pSourceFName file
+ *
+ * return : it will return 0 if procedure is success
+ * or will return -1 if not.
+ */
+extern int wfc_util_ffile_check_copy(char *pDestFName, char *pSourceFName, mode_t mode, uid_t uID, gid_t gID);
+
+#endif
diff --git a/conn_init/wfc_util_log.h b/conn_init/wfc_util_log.h
new file mode 100644
index 0000000..fcc4239
--- /dev/null
+++ b/conn_init/wfc_util_log.h
@@ -0,0 +1,32 @@
+/*
+ * Copyright 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.
+ */
+
+#ifndef __WFC_UTIL_LOG_H__
+#define __WFC_UTIL_LOG_H__
+
+#ifdef ANDROID
+#define LOG_TAG "WifiUtil"
+#include <cutils/log.h>
+
+#define wfc_util_log_info(...) ALOGI(__VA_ARGS__)
+#define wfc_util_log_error(...) ALOGE(__VA_ARGS__)
+#else /* ANDROID */
+#define wfc_util_log_info(...) printf(__VA_ARGS__);printf("\n")
+#define wfc_util_log_error(...) printf(__VA_ARGS__);printf("\n")
+#endif /* ANDROID */
+
+#endif
+
diff --git a/conn_init/wfc_util_main.c b/conn_init/wfc_util_main.c
new file mode 100644
index 0000000..01e1c86
--- /dev/null
+++ b/conn_init/wfc_util_main.c
@@ -0,0 +1,139 @@
+/*
+ * Copyright 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.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <getopt.h>
+#include "wfc_util_fctrl.h"
+#include "wfc_util_common.h"
+
+#ifdef WLAN_CHIP_VERSION_WCNSS
+#ifndef WFC_UTIL_CFG_FILE_NAME
+#define WFC_UTIL_CFG_FILE_NAME "./WCNSS_qcom_cfg.ini"
+#endif
+#ifndef WFC_UTIL_NV_BIN_FILE_NAME
+#define WFC_UTIL_NV_BIN_FILE_NAME "./WCNSS_qcom_wlan_nv.bin"
+#endif
+#else /* WLAN_CHIP_VERSION_WCN1314 */
+#ifndef WFC_UTIL_CFG_FILE_NAME
+#define WFC_UTIL_CFG_FILE_NAME "./WCN1314_qcom_cfg.ini"
+#endif
+#ifndef WFC_UTIL_NV_BIN_FILE_NAME
+#define WFC_UTIL_NV_BIN_FILE_NAME "./WCN1314_qcom_wlan_nv.bin"
+#endif
+#endif /* WLAN_CHIP_VERSION_XXXX */
+#define WFC_UTIL_CFG_TAG_END_OF_CFG "END"
+#define WFC_UTIL_CFG_TAG_MAC_ADDRESS "NetworkAddress="
+#define WFC_UTIL_CFG_TAG_AP_MAC_ADDRESS "gAPMacAddr="
+#define WFC_UTIL_CFG_TAG_END_OF_LINE "\n"
+#define WFC_UTIL_CFG_LENGHT_MAC (6)
+#define WFC_UTIL_CFG_LENGHT_MAC_STRING (WFC_UTIL_CFG_LENGHT_MAC*2)
+
+/*
+ * persist/WCNSS_qcom_wlan_nv.bin
+ *
+ * typedef PACKED_PRE struct PACKED_POST
+ * {
+ * //always ensure fields are aligned to 32-bit boundaries
+ * tANI_U16 productId;
+ * tANI_U8 productBands;
+ * tANI_U8 wlanNvRevId;
+ *
+ * tANI_U8 numOfTxChains;
+ * tANI_U8 numOfRxChains;
+ * tANI_U8 macAddr[NV_FIELD_MAC_ADDR_SIZE];
+ * tANI_U8 mfgSN[NV_FIELD_MFG_SN_SIZE];
+ * } sNvFields;
+ */
+#define WFC_UTIL_NV_BIN_HEADER_LENGTH (4)
+#define WFC_UTIL_NV_BIN_POS_PRODUCT_ID (WFC_UTIL_NV_BIN_HEADER_LENGTH + 0)
+#define WFC_UTIL_NV_BIN_POS_PRODUCT_BAND (WFC_UTIL_NV_BIN_HEADER_LENGTH + 2)
+#define WFC_UTIL_NV_BIN_POS_MAC_ADDR (WFC_UTIL_NV_BIN_HEADER_LENGTH + 6)
+
+int main(int argc, char **argv)
+{
+ int ret = 0;
+ char mac_add_buff[WFC_UTIL_CFG_LENGHT_MAC_STRING+1];
+ unsigned char mac_add_buff_2[WFC_UTIL_CFG_LENGHT_MAC] = {0x88, 0xcd, 0xba, 0x0c, 0x90, 0x00};
+ unsigned char mac_add_buff_3[WFC_UTIL_CFG_LENGHT_MAC] = {0x00, 0x90, 0x0c, 0xba, 0xcd, 0x88};
+
+ printf("wfc_util_main is started\n");
+
+ if(0 < wfc_util_fget_string(WFC_UTIL_CFG_FILE_NAME,
+ WFC_UTIL_CFG_TAG_END_OF_CFG,
+ WFC_UTIL_CFG_TAG_MAC_ADDRESS,
+ WFC_UTIL_CFG_TAG_END_OF_LINE,
+ mac_add_buff,
+ WFC_UTIL_CFG_LENGHT_MAC_STRING+1)) {
+ printf("wfc_util_main : %s%s\n", WFC_UTIL_CFG_TAG_MAC_ADDRESS, mac_add_buff);
+ } else {
+ printf("wfc_util_main : %s is not found\n", WFC_UTIL_CFG_TAG_MAC_ADDRESS);
+ }
+
+ wfc_util_fset_string(WFC_UTIL_CFG_FILE_NAME,
+ WFC_UTIL_CFG_TAG_END_OF_CFG,
+ WFC_UTIL_CFG_TAG_AP_MAC_ADDRESS,
+ WFC_UTIL_CFG_TAG_END_OF_LINE,
+ "00900cbacd88");
+
+ wfc_util_fset_string(WFC_UTIL_CFG_FILE_NAME,
+ WFC_UTIL_CFG_TAG_END_OF_CFG,
+ WFC_UTIL_CFG_TAG_MAC_ADDRESS,
+ WFC_UTIL_CFG_TAG_END_OF_LINE,
+ "00900cbacd88");
+
+ if(0 < wfc_util_fget_string(WFC_UTIL_CFG_FILE_NAME,
+ WFC_UTIL_CFG_TAG_END_OF_CFG,
+ WFC_UTIL_CFG_TAG_MAC_ADDRESS,
+ WFC_UTIL_CFG_TAG_END_OF_LINE,
+ mac_add_buff,
+ WFC_UTIL_CFG_LENGHT_MAC_STRING+1)) {
+ printf("wfc_util_main : %s%s\n", WFC_UTIL_CFG_TAG_MAC_ADDRESS, mac_add_buff);
+
+ wfc_util_atoh(mac_add_buff, strlen(mac_add_buff), mac_add_buff_2, WFC_UTIL_CFG_LENGHT_MAC);
+ printf("wfc_util_main : %s%02x:%02x:%02x:%02x:%02x:%02x\n",
+ WFC_UTIL_CFG_TAG_MAC_ADDRESS,
+ mac_add_buff_2[0], mac_add_buff_2[1], mac_add_buff_2[2],
+ mac_add_buff_2[3], mac_add_buff_2[4], mac_add_buff_2[5]);
+
+ wfc_util_htoa(mac_add_buff_2, WFC_UTIL_CFG_LENGHT_MAC, mac_add_buff, WFC_UTIL_CFG_LENGHT_MAC_STRING);
+ printf("wfc_util_main : %s%s\n", WFC_UTIL_CFG_TAG_MAC_ADDRESS, mac_add_buff);
+
+ } else {
+ printf("wfc_util_main : %s is not found\n", WFC_UTIL_CFG_TAG_MAC_ADDRESS);
+ }
+
+ wfc_util_fset_buffer(WFC_UTIL_NV_BIN_FILE_NAME,
+ WFC_UTIL_NV_BIN_POS_MAC_ADDR,
+ mac_add_buff_3,
+ WFC_UTIL_CFG_LENGHT_MAC);
+
+ if(0 < wfc_util_fget_buffer(WFC_UTIL_NV_BIN_FILE_NAME,
+ WFC_UTIL_NV_BIN_POS_MAC_ADDR,
+ 6,
+ mac_add_buff_2,
+ WFC_UTIL_CFG_LENGHT_MAC)) {
+ printf("wfc_util_main : wfc_util_fget_buffer[%02x:%02x:%02x:%02x:%02x:%02x]\n",
+ mac_add_buff_2[0], mac_add_buff_2[1], mac_add_buff_2[2],
+ mac_add_buff_2[3], mac_add_buff_2[4], mac_add_buff_2[5]);
+ } else {
+ printf("wfc_util_main : %s is not found\n", WFC_UTIL_CFG_TAG_MAC_ADDRESS);
+ }
+
+ return ret;
+}
+
diff --git a/conn_init/wfc_util_qcom.c b/conn_init/wfc_util_qcom.c
new file mode 100644
index 0000000..b822f4e
--- /dev/null
+++ b/conn_init/wfc_util_qcom.c
@@ -0,0 +1,676 @@
+/*
+ * Copyright 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.
+ */
+
+#ifdef CONFIG_LGE_WLAN_QCOM_PATCH
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "wfc_util_log.h"
+#include "wfc_util_fctrl.h"
+#include "wfc_util_common.h"
+
+#include "private/android_filesystem_config.h"
+
+#define WFC_UTIL_FEAUTRE_COPY_NV_BIN
+
+#ifdef WLAN_CHIP_VERSION_WCNSS
+#ifndef WFC_UTIL_CFG_FILE_NAME
+#define WFC_UTIL_CFG_FILE_NAME "/data/misc/wifi/WCNSS_qcom_cfg.ini"
+#endif
+#ifndef WFC_UTIL_CFG_TEMPFILE_NAME
+#define WFC_UTIL_CFG_TEMPFILE_NAME "/system/etc/wifi/WCNSS_qcom_cfg.ini"
+#endif
+#else /* WLAN_CHIP_VERSION_WCN1314 */
+#ifndef WFC_UTIL_CFG_FILE_NAME
+#define WFC_UTIL_CFG_FILE_NAME "/data/misc/wifi/WCN1314_qcom_cfg.ini"
+#endif
+#ifndef WFC_UTIL_CFG_TEMPFILE_NAME
+#define WFC_UTIL_CFG_TEMPFILE_NAME "/system/etc/wifi/WCN1314_qcom_cfg.ini"
+#endif
+#endif /* WLAN_CHIP_VERSION_XXXX */
+
+#ifdef WFC_UTIL_FEAUTRE_COPY_NV_BIN
+#ifdef WLAN_CHIP_VERSION_WCNSS
+#ifndef WFC_UTIL_NV_BIN_TEMPFILE_NAME
+#define WFC_UTIL_NV_BIN_TEMPFILE_NAME "/system/etc/wifi/WCNSS_qcom_wlan_nv.bin"
+#endif
+#ifndef WFC_UTIL_NV_BIN_FILE_NAME
+#define WFC_UTIL_NV_BIN_FILE_NAME "/data/misc/wifi/WCNSS_qcom_wlan_nv.bin"
+#endif
+#else /* WLAN_CHIP_VERSION_WCN1314 */
+#ifndef WFC_UTIL_NV_BIN_TEMPFILE_NAME
+#define WFC_UTIL_NV_BIN_TEMPFILE_NAME "/persist/WCN1314_qcom_wlan_nv.bin"
+#endif
+#ifndef WFC_UTIL_NV_BIN_FILE_NAME
+#define WFC_UTIL_NV_BIN_FILE_NAME "/data/misc/wifi/WCN1314_qcom_wlan_nv.bin"
+#endif
+#endif /* WLAN_CHIP_VERSION_XXXX */
+#else /* WFC_UTIL_FEAUTRE_COPY_NV_BIN */
+#ifndef WFC_UTIL_NV_BIN_FILE_NAME
+#ifdef WLAN_CHIP_VERSION_WCNSS
+#define WFC_UTIL_NV_BIN_FILE_NAME "/persist/WCNSS_qcom_wlan_nv.bin"
+#else /* WLAN_CHIP_VERSION_WCN1314 */
+#define WFC_UTIL_NV_BIN_FILE_NAME "/persist/WCN1314_qcom_wlan_nv.bin"
+#endif /* WLAN_CHIP_VERSION_XXXX */
+#endif
+#endif /* WFC_UTIL_FEAUTRE_COPY_NV_BIN */
+
+#define WFC_UTIL_CFG_TAG_END_OF_CFG "END"
+/*
+ * Station Mode MAC Address
+ */
+#ifdef WLAN_CHIP_VERSION_WCNSS
+#define WFC_UTIL_CFG_TAG_MAC_ADDRESS "Intf0MacAddress="
+#else /* WLAN_CHIP_VERSION_WCN1314 */
+#define WFC_UTIL_CFG_TAG_MAC_ADDRESS "NetworkAddress="
+#endif /* WLAN_CHIP_VERSION_XXXX */
+/*
+ * AP Mode MAC Address
+ */
+#define WFC_UTIL_CFG_TAG_AP_MAC_ADDRESS "gAPMacAddr="
+
+/*
+ * Idle Mode Power Save enable/disable for OTA test
+ */
+#define WFC_UTIL_CFG_TAG_IDLE_MODE_POWER_SAVE "gEnableImps="
+
+/*
+ * Beacon Mode Power Save enable/disable for OTA test
+ */
+#define WFC_UTIL_CFG_TAG_POWER_SAVE "gEnableBmps="
+
+/*
+ * L2 roaming on/off for OTA test
+ */
+#define WFC_UTIL_CFG_TAG_L2Roaming "gEnableHandoff="
+
+/*
+ * Heartbeat24 changing for OtA test
+ */
+#define WFC_UTIL_CFG_TAG_HEARTBEAT24 "gHeartbeat24="
+
+/*
+ * TAG for end of line
+ */
+#define WFC_UTIL_CFG_TAG_END_OF_LINE "\n"
+
+#define WFC_UTIL_CFG_LENGHT_MAC (6)
+#define WFC_UTIL_CFG_LENGHT_MAC_STRING (WFC_UTIL_CFG_LENGHT_MAC*2)
+
+/*
+ * persist/WCNSS_qcom_wlan_nv.bin
+ *
+ * NV validity bitmap (4 bytes)
+ * {
+ * Bit 0 - Regulatory domain tables
+ * Bit 1 - Fields(including product ID, product bands, number of Tx/Rx chains, MAC address, manufacturing board number)
+ * Bit 2 - Optimal power per rate table
+ * Bit 3 - Default regulatory domain and country code
+ * Bit 4:31 - Reserved; always 0
+ * }
+ *
+ * typedef PACKED_PRE struct PACKED_POST
+ * {
+ * //always ensure fields are aligned to 32-bit boundaries
+ * tANI_U16 productId;
+ * tANI_U8 productBands; //0: 0.4 GHz, 1: 2.4+5.0 GHz, 2: 5.0 GHz
+ * tANI_U8 wlanNvRevId; //0: WCN1312, 1: WCN1314, 2: PRIMA
+ *
+ * tANI_U8 numOfTxChains;
+ * tANI_U8 numOfRxChains;
+ * tANI_U8 macAddr[NV_FIELD_MAC_ADDR_SIZE];
+ * tANI_U8 mfgSN[NV_FIELD_MFG_SN_SIZE];
+ * } sNvFields;
+ */
+#define WFC_UTIL_NV_BIN_HEADER_LENGTH (4)
+#define WFC_UTIL_NV_BIN_POS_PRODUCT_ID (WFC_UTIL_NV_BIN_HEADER_LENGTH + 0)
+#define WFC_UTIL_NV_BIN_POS_MAC_ADDR (WFC_UTIL_NV_BIN_HEADER_LENGTH + 6)
+
+#ifdef WLAN_CHIP_VERSION_WCNSS
+/* refer to prima/CORE/WDA/src/wlan_nv.c */
+static unsigned char nvFilelds_default[6] = {0, 0, /* productId */
+ 1, /* productBands */
+ 2, /* wlanNvRevId */
+ 1, /* numOfTxChains */
+ 2}; /* numOfRxChains */
+#else /* WLAN_CHIP_VERSION_WCN1314 */
+static unsigned char nvFilelds_default[6] = {1, 0, /* productId */
+ 1, /* productBands */
+ 1, /* wlanNvRevId */
+ 1, /* numOfTxChains */
+ 1}; /* numOfRxChains */
+#endif /* WLAN_CHIP_VERSION_XXXX */
+
+/*
+ * wfc_util_qcom_is_default_mac
+ *
+ *
+ *
+ * return : it will return 1 if mac_add is default mac address,
+ * 2 if mac_add is RFT mac address
+ * or 0 if not.
+ */
+static int wfc_util_qcom_is_default_mac(char *mac_add)
+{
+#define WFC_UTIL_CFG_DEFAULT_MAC_RFT "00900CBACD88"
+#define WFC_UTIL_CFG_DEFAULT_MAC_00 "000000000000"
+#define WFC_UTIL_CFG_DEFAULT_MAC_FF "FFFFFFFFFFFF"
+#define WFC_UTIL_CFG_DEFAULT_MAC_QCOM_I0 "000AF58989FF"
+#define WFC_UTIL_CFG_DEFAULT_MAC_QCOM_I1 "000AF58989FE"
+#define WFC_UTIL_CFG_DEFAULT_MAC_QCOM_I2 "000AF58989FD"
+#define WFC_UTIL_CFG_DEFAULT_MAC_QCOM_I3 "000AF58989FC"
+#define WFC_UTIL_CFG_DEFAULT_MAC_QCOM_AP "000AF58989EF"
+
+ int i, sZarray=0;
+ /*
+ * default mac address array
+ */
+ char mac_add_buff[][WFC_UTIL_CFG_LENGHT_MAC_STRING+1] = {
+ {WFC_UTIL_CFG_DEFAULT_MAC_00},
+ {WFC_UTIL_CFG_DEFAULT_MAC_FF},
+ {WFC_UTIL_CFG_DEFAULT_MAC_QCOM_I0}
+ };
+
+ sZarray = sizeof(mac_add_buff) / sizeof(mac_add_buff[0]);
+
+ for(i=0; i<sZarray ;i++) {
+ if(0 == strncmp(mac_add, mac_add_buff[i], WFC_UTIL_CFG_LENGHT_MAC_STRING)) {
+ wfc_util_log_error("This is default MAC address [%s]", mac_add_buff[i]);
+ return 1;
+ }
+ }
+
+ /*
+ if(1 == wfc_util_is_random_mac(mac_add)) {
+ wfc_util_log_error("This is Random MAC address");
+ return 1;
+ }
+ */
+
+ if(0 == strncmp(mac_add, WFC_UTIL_CFG_DEFAULT_MAC_RFT, WFC_UTIL_CFG_LENGHT_MAC_STRING)) {
+ wfc_util_log_error("This is RFT MAC address [%s]", WFC_UTIL_CFG_DEFAULT_MAC_RFT);
+ return 2;
+ }
+
+ return 0;
+}
+
+static void wfc_util_qcom_write_mac(char *mac_add)
+{
+ /*
+ * Station Mode MAC Address
+ */
+ wfc_util_fset_string(WFC_UTIL_CFG_FILE_NAME,
+ WFC_UTIL_CFG_TAG_END_OF_CFG,
+ WFC_UTIL_CFG_TAG_MAC_ADDRESS,
+ WFC_UTIL_CFG_TAG_END_OF_LINE,
+ mac_add);
+
+ /*
+ * AP Mode MAC Address
+ */
+ wfc_util_fset_string(WFC_UTIL_CFG_FILE_NAME,
+ WFC_UTIL_CFG_TAG_END_OF_CFG,
+ WFC_UTIL_CFG_TAG_AP_MAC_ADDRESS,
+ WFC_UTIL_CFG_TAG_END_OF_LINE,
+ mac_add);
+
+ return;
+}
+
+/*
+ * When OTA is enabled, power save mode and L2 roaming trigger should be off
+ */
+static void wfc_util_qcom_write_ota_enable(void)
+{
+/*
+ * write Beacon Mode Power Save off and L2 Roaming off
+ */
+ char *PowerSaveOff = "0";
+ //char *L2RoamingOff = "0";
+ char *Heartbeat24 = "120";
+
+ char string_buff[5];
+
+ wfc_util_fset_string(WFC_UTIL_CFG_FILE_NAME,
+ WFC_UTIL_CFG_TAG_END_OF_CFG,
+ WFC_UTIL_CFG_TAG_IDLE_MODE_POWER_SAVE,
+ WFC_UTIL_CFG_TAG_END_OF_LINE,
+ PowerSaveOff);
+
+ wfc_util_fset_string(WFC_UTIL_CFG_FILE_NAME,
+ WFC_UTIL_CFG_TAG_END_OF_CFG,
+ WFC_UTIL_CFG_TAG_POWER_SAVE,
+ WFC_UTIL_CFG_TAG_END_OF_LINE,
+ PowerSaveOff);
+
+/* We don't need to change this becasue the default value of WFC_UTIL_CFG_TAG_L2Roaming is 0.
+ wfc_util_fset_string(WFC_UTIL_CFG_FILE_NAME,
+ WFC_UTIL_CFG_TAG_END_OF_CFG,
+ WFC_UTIL_CFG_TAG_L2Roaming,
+ WFC_UTIL_CFG_TAG_END_OF_LINE,
+ L2RoamingOff);
+*/
+
+ if(0 < wfc_util_fget_string(WFC_UTIL_CFG_FILE_NAME,
+ WFC_UTIL_CFG_TAG_END_OF_CFG,
+ WFC_UTIL_CFG_TAG_HEARTBEAT24,
+ WFC_UTIL_CFG_TAG_END_OF_LINE,
+ string_buff,
+ 5)) {
+ wfc_util_fset_string(WFC_UTIL_CFG_FILE_NAME,
+ WFC_UTIL_CFG_TAG_END_OF_CFG,
+ WFC_UTIL_CFG_TAG_HEARTBEAT24,
+ WFC_UTIL_CFG_TAG_END_OF_LINE,
+ Heartbeat24);
+ } else {
+ wfc_util_log_error("%s is not exist", WFC_UTIL_CFG_TAG_HEARTBEAT24);
+ }
+
+ return;
+}
+
+/*
+ * When OTA is enabled, power save mode and L2 roaming trigger should be off
+ */
+static void wfc_util_qcom_write_ota_disable(void)
+{
+/*
+ * write Beacon Mode Power Save on and L2 Roaming on
+ */
+ char *PowerSaveOff = "1";
+ //char *L2RoamingOff = "1";
+ char *Heartbeat24 = "40";
+
+ char string_buff[5];
+
+ wfc_util_fset_string(WFC_UTIL_CFG_FILE_NAME,
+ WFC_UTIL_CFG_TAG_END_OF_CFG,
+ WFC_UTIL_CFG_TAG_IDLE_MODE_POWER_SAVE,
+ WFC_UTIL_CFG_TAG_END_OF_LINE,
+ PowerSaveOff);
+
+ wfc_util_fset_string(WFC_UTIL_CFG_FILE_NAME,
+ WFC_UTIL_CFG_TAG_END_OF_CFG,
+ WFC_UTIL_CFG_TAG_POWER_SAVE,
+ WFC_UTIL_CFG_TAG_END_OF_LINE,
+ PowerSaveOff);
+
+/* We don't need to change this becasue the default value of WFC_UTIL_CFG_TAG_L2Roaming is 0.
+ wfc_util_fset_string(WFC_UTIL_CFG_FILE_NAME,
+ WFC_UTIL_CFG_TAG_END_OF_CFG,
+ WFC_UTIL_CFG_TAG_L2Roaming,
+ WFC_UTIL_CFG_TAG_END_OF_LINE,
+ L2RoamingOff);
+*/
+
+ if(0 < wfc_util_fget_string(WFC_UTIL_CFG_FILE_NAME,
+ WFC_UTIL_CFG_TAG_END_OF_CFG,
+ WFC_UTIL_CFG_TAG_HEARTBEAT24,
+ WFC_UTIL_CFG_TAG_END_OF_LINE,
+ string_buff,
+ 5)) {
+ wfc_util_fset_string(WFC_UTIL_CFG_FILE_NAME,
+ WFC_UTIL_CFG_TAG_END_OF_CFG,
+ WFC_UTIL_CFG_TAG_HEARTBEAT24,
+ WFC_UTIL_CFG_TAG_END_OF_LINE,
+ Heartbeat24);
+ } else {
+ wfc_util_log_error("%s is not exist", WFC_UTIL_CFG_TAG_HEARTBEAT24);
+ }
+
+ return;
+}
+
+static void wfc_util_qcom_write_mac_to_bin(unsigned char *mac_add)
+{
+ unsigned char nvValidityBitmap[WFC_UTIL_NV_BIN_HEADER_LENGTH];
+
+ if(0 != wfc_util_ffile_check(WFC_UTIL_NV_BIN_FILE_NAME,
+ F_OK|R_OK|W_OK)) {
+ wfc_util_log_error("We don't access file [%s]", WFC_UTIL_NV_BIN_FILE_NAME);
+ return;
+ }
+
+ memset(nvValidityBitmap, 0, WFC_UTIL_NV_BIN_HEADER_LENGTH);
+
+ /*
+ * Write RFT MAC Address
+ */
+ wfc_util_fset_buffer(WFC_UTIL_NV_BIN_FILE_NAME,
+ WFC_UTIL_NV_BIN_POS_MAC_ADDR,
+ mac_add,
+ WFC_UTIL_CFG_LENGHT_MAC);
+
+ /*
+ * Read NV validity bitmap
+ */
+ if (0 < wfc_util_fget_buffer(WFC_UTIL_NV_BIN_FILE_NAME,
+ 0,
+ WFC_UTIL_NV_BIN_HEADER_LENGTH,
+ nvValidityBitmap,
+ WFC_UTIL_NV_BIN_HEADER_LENGTH)){
+ /*
+ * Check whether Fields bit(Bit 1) is set
+ */
+ if (0x02 & nvValidityBitmap[0]) {
+ wfc_util_log_info("We don't need to write the default value for NvFilelds");
+ } else {
+ /*
+ * Update the Fields bit(Bit 1)
+ */
+ nvValidityBitmap[0] |= 0x02;
+ wfc_util_fset_buffer(WFC_UTIL_NV_BIN_FILE_NAME,
+ 0,
+ nvValidityBitmap,
+ WFC_UTIL_NV_BIN_HEADER_LENGTH);
+
+ /*
+ * Write the default value for NvFilelds
+ */
+ wfc_util_fset_buffer(WFC_UTIL_NV_BIN_FILE_NAME,
+ WFC_UTIL_NV_BIN_POS_PRODUCT_ID,
+ nvFilelds_default,
+ 6);
+ }
+ } else {
+ wfc_util_log_error("Read Fail nvValidityBitmap");
+ }
+
+ return;
+}
+
+/*
+ * wfc_util_qcom_reset_mac_to_bin
+ *
+ * reset the mac address of nv bin file
+ *
+ * return : void
+ */
+static void wfc_util_qcom_reset_mac_to_bin(void)
+{
+ unsigned char mac_addr[WFC_UTIL_CFG_LENGHT_MAC];
+
+ if(0 != wfc_util_ffile_check(WFC_UTIL_NV_BIN_FILE_NAME,
+ F_OK|R_OK|W_OK)) {
+ wfc_util_log_error("We don't access file [%s]", WFC_UTIL_NV_BIN_FILE_NAME);
+ return;
+ }
+
+ if(0 < wfc_util_fget_buffer(WFC_UTIL_NV_BIN_FILE_NAME,
+ WFC_UTIL_NV_BIN_POS_MAC_ADDR,
+ WFC_UTIL_CFG_LENGHT_MAC,
+ mac_addr,
+ WFC_UTIL_CFG_LENGHT_MAC)) {
+ if(0x00 == mac_addr[0] && 0x00 == mac_addr[1] && 0x00 == mac_addr[2] &&
+ 0x00 == mac_addr[3] && 0x00 == mac_addr[4] && 0x00 == mac_addr[5])
+ {
+ return;
+ }
+ }
+
+ memset(mac_addr, 0, WFC_UTIL_CFG_LENGHT_MAC);
+
+ wfc_util_fset_buffer(WFC_UTIL_NV_BIN_FILE_NAME,
+ WFC_UTIL_NV_BIN_POS_MAC_ADDR,
+ mac_addr,
+ WFC_UTIL_CFG_LENGHT_MAC);
+
+ return;
+}
+
+static int wfc_util_qcom_write_mac_process(unsigned char *nv_mac_addr, char *mac_add_buff)
+{
+ char nv_mac_add_buff[WFC_UTIL_CFG_LENGHT_MAC_STRING+1];
+ int is_default_nv_mac = 0;
+ int is_same_mac = -1;
+
+ if (NULL == nv_mac_addr) {
+ return 0;
+ }
+
+ wfc_util_htoa(nv_mac_addr, WFC_UTIL_CFG_LENGHT_MAC,
+ nv_mac_add_buff, WFC_UTIL_CFG_LENGHT_MAC_STRING+1);
+
+ is_default_nv_mac = wfc_util_qcom_is_default_mac(nv_mac_add_buff);
+
+ is_same_mac = strncmp(mac_add_buff, nv_mac_add_buff, WFC_UTIL_CFG_LENGHT_MAC_STRING);
+
+ /*
+ * 1. nv mac address is not a default mac address
+ * 2. same with mac address of config file
+ */
+ if (((!is_default_nv_mac) && (0==is_same_mac)) ||
+ /*
+ * 1. nv mac address is RFT mac address
+ * 2. same with mac address of config file
+ */
+ ((2==is_default_nv_mac) && (0==is_same_mac))
+ ) {
+ return 1;
+ }
+ /*
+ * 1. nv mac address not a default mac address excepting RFT mac address
+ * 2. does not same with mac address of config file
+ */
+ else if ((1!=is_default_nv_mac) && (0!=is_same_mac)) {
+ wfc_util_log_error("Change %s%s", WFC_UTIL_CFG_TAG_MAC_ADDRESS, nv_mac_add_buff);
+ /*
+ * Update MAC address
+ */
+ wfc_util_qcom_write_mac(nv_mac_add_buff);
+
+#ifdef WFC_UTIL_FEATURE_DO_NOT_WRITE_MAC_TO_BIN
+ /*
+ * Write RFT MAC address to nv.bin
+ */
+ if (2==is_default_nv_mac) {
+ wfc_util_qcom_write_mac_to_bin(nv_mac_addr);
+ /*
+ * reset mac address of nv.bin if nv_mac_addr is not RFT mac address
+ */
+ } else {
+ wfc_util_qcom_reset_mac_to_bin();
+ }
+#else /* WFC_UTIL_FEATURE_DO_NOT_WRITE_MAC_TO_BIN */
+ /*
+ * Write MAC address to nv.bin
+ */
+ wfc_util_qcom_write_mac_to_bin(nv_mac_addr);
+#endif /* WFC_UTIL_FEATURE_DO_NOT_WRITE_MAC_TO_BIN */
+
+ return 1;
+ }
+
+ return 0;
+}
+
+static void wfc_util_qcom_create_random_mac(void)
+{
+ unsigned char random_mac_addr[WFC_UTIL_CFG_LENGHT_MAC];
+ char mac_add_buff[WFC_UTIL_CFG_LENGHT_MAC_STRING+1];
+
+ wfc_util_log_info("wfc_util_qcom_create_random_mac");
+
+ wfc_util_random_mac(random_mac_addr);
+
+ wfc_util_htoa(random_mac_addr, WFC_UTIL_CFG_LENGHT_MAC, mac_add_buff, WFC_UTIL_CFG_LENGHT_MAC_STRING+1);
+
+ wfc_util_qcom_write_mac(mac_add_buff);
+
+#ifdef WFC_UTIL_FEATURE_DO_NOT_WRITE_MAC_TO_BIN
+ wfc_util_qcom_reset_mac_to_bin();
+#else /* WFC_UTIL_FEATURE_DO_NOT_WRITE_MAC_TO_BIN */
+ wfc_util_qcom_write_mac_to_bin(random_mac_addr);
+#endif /* WFC_UTIL_FEATURE_DO_NOT_WRITE_MAC_TO_BIN */
+
+ return;
+}
+
+/*
+ * wfc_util_qcom_check_config
+ *
+ * check the qcom wlan driver config file
+ *
+ * return : it will return 0 if procedure is success
+ * or will return -1 if not.
+ */
+int wfc_util_qcom_check_config(unsigned char *nv_mac_addr)
+{
+ char mac_add_buff[WFC_UTIL_CFG_LENGHT_MAC_STRING+1];
+
+ /* make sure driver config file exists */
+ if(0 > wfc_util_ffile_check_copy(WFC_UTIL_CFG_FILE_NAME,
+ WFC_UTIL_CFG_TEMPFILE_NAME,
+ 0660,
+ AID_SYSTEM,
+ /* we use "radio" for gid to access from "rild" for AT cmd. */
+ AID_WIFI/*AID_WIFI*/)) {
+ wfc_util_log_error("Fail to Access [%s]", WFC_UTIL_CFG_FILE_NAME);
+ return -1;
+ }
+
+#ifdef WFC_UTIL_FEAUTRE_COPY_NV_BIN
+ if(0 > wfc_util_ffile_check_copy(WFC_UTIL_NV_BIN_FILE_NAME,
+ WFC_UTIL_NV_BIN_TEMPFILE_NAME,
+ 0660,
+ AID_SYSTEM,
+ /* we use "radio" for gid to access from "rild" for AT cmd. */
+ AID_WIFI/*AID_WIFI*/)) {
+ wfc_util_log_error("Fail to Access [%s]", WFC_UTIL_NV_BIN_FILE_NAME);
+ return -1;
+ }
+#endif /* WFC_UTIL_FEAUTRE_COPY_NV_BIN */
+
+ /*
+ * Read MAC address from config file
+ */
+ if(0 < wfc_util_fget_string(WFC_UTIL_CFG_FILE_NAME,
+ WFC_UTIL_CFG_TAG_END_OF_CFG,
+ WFC_UTIL_CFG_TAG_MAC_ADDRESS,
+ WFC_UTIL_CFG_TAG_END_OF_LINE,
+ mac_add_buff,
+ WFC_UTIL_CFG_LENGHT_MAC_STRING+1)) {
+ wfc_util_log_info("%s%s", WFC_UTIL_CFG_TAG_MAC_ADDRESS, mac_add_buff);
+
+ /*
+ * Write nv mac address
+ */
+ if (1 != wfc_util_qcom_write_mac_process(nv_mac_addr, mac_add_buff)) {
+ /*
+ * Check whether this is default mac address or not
+ */
+ if (wfc_util_qcom_is_default_mac(mac_add_buff)) {
+ /*
+ * Create random MAC address
+ */
+ wfc_util_qcom_create_random_mac();
+ }
+ }
+ } else {
+ wfc_util_log_error("%s does not have mac address", WFC_UTIL_CFG_FILE_NAME);
+
+ memset( mac_add_buff, 0, WFC_UTIL_CFG_LENGHT_MAC_STRING+1 );
+
+ /*
+ * Write nv mac address
+ */
+ if (1 != wfc_util_qcom_write_mac_process(nv_mac_addr, mac_add_buff)) {
+ /*
+ * Create random MAC address
+ */
+ wfc_util_qcom_create_random_mac();
+ }
+ }
+
+ return 0;
+}
+
+/*
+ * wfc_util_qcom_reset_mac
+ *
+ * reset the mac address of config file
+ *
+ * return : void
+ */
+void wfc_util_qcom_reset_mac(void)
+{
+ wfc_util_qcom_write_mac("000000000000");
+
+ wfc_util_qcom_reset_mac_to_bin();
+
+ return;
+}
+
+/*
+ * wfc_util_qcom_ota_enable
+ *
+ * enable ota mode by reconfiguring BMPS and L2Roaming
+ *
+ * return : int (boolean)
+ */
+int wfc_util_qcom_ota_enable(void)
+{
+ wfc_util_qcom_write_ota_enable();
+ return 1;
+}
+
+/*
+ * wfc_util_qcom_ota_disable
+ *
+ * disable ota mode by reconfiguring BMPS and L2Roaming
+ *
+ * return : int (boolean)
+ */
+int wfc_util_qcom_ota_disable(void)
+{
+ wfc_util_qcom_write_ota_disable();
+ return 1;
+}
+
+/*
+ * wfc_util_qcom_checkt_roaming_off
+ *
+ * Check L2Roaming configuration
+ *
+ * return : int (boolean)
+ */
+int wfc_util_qcom_checkt_roaming_off(void)
+{
+ char string_buff[5];
+ /*
+ * check whether OTA test is enabled or not.
+ */
+ if(0 < wfc_util_fget_string(WFC_UTIL_CFG_FILE_NAME,
+ WFC_UTIL_CFG_TAG_END_OF_CFG,
+ //WFC_UTIL_CFG_TAG_L2Roaming,
+ WFC_UTIL_CFG_TAG_POWER_SAVE,
+ WFC_UTIL_CFG_TAG_END_OF_LINE,
+ string_buff,
+ 5)) {
+ //wfc_util_log_info("%s%s", WFC_UTIL_CFG_TAG_L2Roaming, string_buff);
+ wfc_util_log_info("%s%s", WFC_UTIL_CFG_TAG_POWER_SAVE, string_buff);
+ if(0 == strncmp(string_buff, "0", 1)) {
+ return 1;
+ }
+ }
+ return 0;
+}
+
+#endif /* CONFIG_LGE_WLAN_QCOM_PATCH */
+
diff --git a/conn_init/wfc_util_qcom.h b/conn_init/wfc_util_qcom.h
new file mode 100644
index 0000000..1bd4cc1
--- /dev/null
+++ b/conn_init/wfc_util_qcom.h
@@ -0,0 +1,52 @@
+/*
+ * Copyright 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.
+ */
+
+#ifndef __WFC_UTIL_QCOM_H__
+#define __WFC_UTIL_QCOM_H__
+
+#ifdef CONFIG_LGE_WLAN_QCOM_PATCH
+/*
+ * wfc_util_qcom_check_config
+ *
+ * check the qcom wlan driver config file
+ *
+ * return : it will return 0 if procedure is success
+ * or will return -1 if not.
+ */
+extern int wfc_util_qcom_check_config(unsigned char *nv_mac_addr);
+
+/*
+ * wfc_util_qcom_reset_mac
+ *
+ * reset the mac address of config file
+ *
+ * return : void
+ */
+extern void wfc_util_qcom_reset_mac(void);
+
+/*
+ * wfc_util_qcom_ota_enable/disable
+ *
+ * enable OTA mode for Wi-Fi related certificiation
+ *
+ * return : int (boolean)
+ */
+extern int wfc_util_qcom_ota_enable(void);
+extern int wfc_util_qcom_ota_disable(void);
+extern int wfc_util_qcom_checkt_roaming_off(void);
+#endif /* CONFIG_LGE_WLAN_QCOM_PATCH */
+#endif
+
diff --git a/data/etc/apns-conf.xml b/data/etc/apns-conf.xml
new file mode 100755
index 0000000..13819ec
--- /dev/null
+++ b/data/etc/apns-conf.xml
@@ -0,0 +1,4557 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<apns version="7">
+
+ <apn carrier="Vf Mobile Broadband"
+ mcc="202"
+ mnc="05"
+ apn="internet"
+ type="default,supl"
+ />
+
+ <apn carrier="Vf Kartointernet"
+ mcc="202"
+ mnc="05"
+ apn="web.session"
+ type="default,supl"
+ />
+
+ <apn carrier="Vodafone NL"
+ mcc="204"
+ mnc="04"
+ apn="office.vodafone.nl"
+ user="vodafone"
+ password="vodafone"
+ type="default,supl"
+ />
+
+ <apn carrier="Ben internet"
+ mcc="204"
+ mnc="08"
+ apn="basic.internet.ben.data"
+ type="default,supl"
+ />
+
+ <apn carrier="KPN/Hi Mobiel Internet"
+ mcc="204"
+ mnc="08"
+ apn="portalmmm.nl"
+ mmsc="http://mp.mobiel.kpn/mmsc"
+ mmsproxy="10.10.100.20"
+ mmsport="5080"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="Telfort Mobiel Internet"
+ mcc="204"
+ mnc="12"
+ apn="internet"
+ mmsc="http://mms"
+ mmsproxy="193.113.200.195"
+ mmsport="8080"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="T-Mobile NL"
+ mcc="204"
+ mnc="16"
+ apn="internet"
+ mmsc="http://t-mobilemms"
+ mmsproxy="010.010.010.011"
+ mmsport="8080"
+ type="default,supl"
+ />
+
+ <apn carrier="T-Mobile NL MMS"
+ mcc="204"
+ mnc="16"
+ apn="mms"
+ user="tmobilemms"
+ password="tmobilemms"
+ mmsc="http://t-mobilemms"
+ mmsproxy="010.010.010.011"
+ mmsport="8080"
+ type="mms"
+ />
+
+ <apn carrier="Orange Internet"
+ mcc="204"
+ mnc="20"
+ apn="internet"
+ type="default,supl"
+ />
+
+ <apn carrier="Proximus Internet"
+ mcc="206"
+ mnc="01"
+ apn="internet.proximus.be"
+ type="default,supl"
+ />
+
+ <apn carrier="Proximus HTTP"
+ mcc="206"
+ mnc="01"
+ apn="wap.proximus.be"
+ user="wap"
+ password="wap"
+ proxy="10.253.7.3"
+ port="80"
+ type="default,supl"
+ />
+
+ <apn carrier="Mobistar Internet"
+ mcc="206"
+ mnc="10"
+ apn="mworld.be"
+ type="default,supl"
+ />
+
+ <apn carrier="Mobistar HTTP"
+ mcc="206"
+ mnc="10"
+ apn="mworld.be"
+ proxy="212.65.63.143"
+ port="8080"
+ type="default,supl"
+ />
+
+ <apn carrier="BASE Internet"
+ mcc="206"
+ mnc="20"
+ apn="gprs.base.be"
+ user="base"
+ password="base"
+ type="default,supl"
+ />
+
+ <apn carrier="BASE HTTP"
+ mcc="206"
+ mnc="20"
+ apn="gprs.base.be"
+ user="base"
+ password="base"
+ proxy="172.31.198.37"
+ port="5080"
+ type="default,supl"
+ />
+
+ <apn carrier="Orange Internet Enterprise"
+ mcc="208"
+ mnc="01"
+ apn="internet-enterprise"
+ user="orange"
+ password="orange"
+ type="default,supl"
+ />
+
+ <apn carrier="Orange World"
+ mcc="208"
+ mnc="01"
+ apn="orange"
+ user="orange"
+ password="orange"
+ type="default,supl"
+ />
+
+ <apn carrier="Orange Enterprise"
+ mcc="208"
+ mnc="01"
+ apn="orange-mib"
+ user="orange"
+ password="orange"
+ proxy="172.16.2.8"
+ port="8000"
+ type="default,supl"
+ />
+
+ <apn carrier="Orange Internet"
+ mcc="208"
+ mnc="01"
+ apn="orange.fr"
+ user="orange"
+ password="orange"
+ type="default,supl"
+ />
+
+ <apn carrier="SFR webphone"
+ mcc="208"
+ mnc="10"
+ apn="sl2sfr"
+ type="default,supl"
+ />
+
+ <apn carrier="SFR Data"
+ mcc="208"
+ mnc="10"
+ apn="websfr"
+ type=""
+ />
+
+ <apn carrier="SFR mobile"
+ mcc="208"
+ mnc="10"
+ apn="wapsfr"
+ type="default,supl"
+ />
+
+ <apn carrier="Free Mobile"
+ mcc="208"
+ mnc="15"
+ apn="free"
+ type="default,supl"
+ />
+
+ <apn carrier="Bouygues Telecom"
+ mcc="208"
+ mnc="20"
+ apn="a2bouygtel.com"
+ type="default,supl"
+ />
+
+ <apn carrier="Bouygues Telecom"
+ mcc="208"
+ mnc="20"
+ apn="pcebouytel.com"
+ type="default,supl"
+ />
+
+ <apn carrier="Vodafone ES"
+ mcc="214"
+ mnc="01"
+ apn="aritelwap.es"
+ user="wap@wap"
+ password="wap125"
+ type="default"
+ />
+
+ <apn carrier="INTERNET"
+ mcc="214"
+ mnc="01"
+ apn="airtelnet.es"
+ user="vodafone"
+ password="vodafone"
+ type="dun"
+ />
+
+ <apn carrier="Internet móvil"
+ mcc="214"
+ mnc="01"
+ apn="airtelwap.es"
+ user="wap@wap"
+ password="wap125"
+ type="default,supl"
+ />
+
+ <apn carrier="Orange Internet Móvil"
+ mcc="214"
+ mnc="03"
+ apn="orangeworld"
+ user="orange"
+ password="orange"
+ type="default"
+ />
+
+ <apn carrier="Orange Internet"
+ mcc="214"
+ mnc="03"
+ apn="internet"
+ user="orange"
+ password="orange"
+ type="default"
+ />
+
+ <apn carrier="Orange HTTP"
+ mcc="214"
+ mnc="03"
+ apn="orangeworld"
+ user="orange"
+ password="orange"
+ proxy="10.132.61.10"
+ port="8080"
+ type="default,supl"
+ />
+
+ <apn carrier="Yoigo Internet"
+ mcc="214"
+ mnc="04"
+ apn="Internet"
+ type="default,supl"
+ />
+
+ <apn carrier="Yoigo HTTP"
+ mcc="214"
+ mnc="04"
+ apn="Internet"
+ proxy="10.8.0.36"
+ port="8080"
+ type="default,supl"
+ />
+
+ <apn carrier="Movistar Internet"
+ mcc="214"
+ mnc="07"
+ apn="movistar.es"
+ user="movistar"
+ password="movistar"
+ mmsc="http://mmsc.movistar.com"
+ mmsproxy="10.138.255.5"
+ mmsport="8080"
+ type="default,supl"
+ />
+
+ <apn carrier="Movistar HTTP"
+ mcc="214"
+ mnc="07"
+ apn="wap.movistar.es"
+ user="WAPTM"
+ password="WAPTM"
+ proxy="10.138.255.129"
+ port="8080"
+ type="default,supl"
+ />
+
+ <apn carrier="Telenor DATA"
+ mcc="216"
+ mnc="01"
+ apn="net"
+ type="default,supl"
+ />
+
+ <apn carrier="T-Mobile HTTP prepaid"
+ mcc="216"
+ mnc="30"
+ apn="internet"
+ proxy="212.51.126.2"
+ port="8080"
+ type="default,supl"
+ />
+
+ <apn carrier="T-Mobile Internet postpaid"
+ mcc="216"
+ mnc="30"
+ apn="internet"
+ type="default,supl"
+ />
+
+ <apn carrier="T-Mobile Internet prepaid"
+ mcc="216"
+ mnc="30"
+ apn="wnw"
+ type="default,supl"
+ />
+
+ <apn carrier="Vodafone Internet postpaid"
+ mcc="216"
+ mnc="70"
+ apn="internet.vodafone.net"
+ type="default,supl"
+ />
+
+ <apn carrier="Vodafone Internet prepaid"
+ mcc="216"
+ mnc="70"
+ apn="vitamax.internet.vodafone.net"
+ type="default,supl"
+ />
+
+ <apn carrier="Vodafone HTTP prepaid"
+ mcc="216"
+ mnc="70"
+ apn="vitamax.wap.vodafone.net"
+ user="vodawap"
+ password="vodawap"
+ proxy="10.9.8.7"
+ port="8080"
+ type="default,supl"
+ />
+
+ <apn carrier="Vodafone HTTP postpaid"
+ mcc="216"
+ mnc="70"
+ apn="wap.vodafone.net"
+ user="vodawap"
+ password="vodawap"
+ proxy="10.9.8.7"
+ port="8080"
+ type="default,supl"
+ />
+
+ <apn carrier="T-Mobile Internet"
+ mcc="219"
+ mnc="01"
+ apn="web.htgprs"
+ type="default,supl"
+ />
+
+ <apn carrier="T-Mobile HTTP"
+ mcc="219"
+ mnc="01"
+ apn="www.htgprs.hr"
+ proxy="10.12.0.3"
+ port="8080"
+ type="default,supl"
+ />
+
+ <apn carrier="TELE2 Internet"
+ mcc="219"
+ mnc="02"
+ apn="wap.tele2.hr"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="TELE2 HTTP"
+ mcc="219"
+ mnc="02"
+ apn="wap.tele2.hr"
+ proxy="130.244.196.90"
+ port="8080"
+ type="default,supl"
+ />
+
+ <apn carrier="Vipnet"
+ mcc="219"
+ mnc="10"
+ apn="data.vip.hr"
+ user="38591"
+ password="38591"
+ type="default,supl"
+ />
+
+ <apn carrier="Internet"
+ mcc="219"
+ mnc="10"
+ apn="web.htgprs"
+ proxy="10.12.0.4"
+ port="8080"
+ type="default,supl"
+ />
+
+ <apn carrier="Telenor gprs"
+ mcc="220"
+ mnc="01"
+ apn="internet"
+ user="telenor"
+ password="gprs"
+ proxy="217.65.192.33"
+ port="8080"
+ type="default,supl"
+ />
+
+ <apn carrier="mts internet"
+ mcc="220"
+ mnc="03"
+ apn="3gnet"
+ user="mts"
+ password="064"
+ type="default,supl"
+ />
+
+ <apn carrier="mts wap"
+ mcc="220"
+ mnc="03"
+ apn="gprswap"
+ user="mts"
+ password="064"
+ proxy="172.017.088.198"
+ port="8080"
+ type="default,supl"
+ />
+
+ <apn carrier="vipmobile"
+ mcc="220"
+ mnc="05"
+ apn="vipmobile"
+ user="vipmobile"
+ password="vipmobile"
+ proxy="212.15.182.82"
+ port="8080"
+ mmsc="http://mmsc.vipmobile.rs/"
+ mmsproxy="212.15.182.82"
+ mmsport="8080"
+ type="default,supl"
+ />
+
+ <apn carrier="TIM Web"
+ mcc="222"
+ mnc="01"
+ apn="ibox.tim.it"
+ type="default,supl,dun"
+ />
+
+ <apn carrier="Acc. Internet da cell"
+ mcc="222"
+ mnc="10"
+ apn="mobile.vodafone.it"
+ type="default,supl"
+ />
+
+ <apn carrier="INTERNET WIND"
+ mcc="222"
+ mnc="88"
+ apn="Internet.wind"
+ type="default,supl"
+ />
+
+ <apn carrier="INTERNET WINDBIZ"
+ mcc="222"
+ mnc="88"
+ apn="Internet.wind.biz"
+ type="default"
+ />
+
+ <apn carrier="Wind HTTP"
+ mcc="222"
+ mnc="88"
+ apn="wap.wind.biz"
+ user="wind"
+ password="wind"
+ proxy="212.245.244.100"
+ port="80"
+ type="default,supl"
+ />
+
+ <apn carrier="3 Italia"
+ mcc="222"
+ mnc="99"
+ apn="tre.it"
+ user=""
+ password=""
+ mmsc="http://10.216.59.240:10021/mmsc"
+ mmsproxy="62.13.171.3"
+ mmsport="8799"
+ type="default,mms,supl"
+ />
+
+ <apn carrier="Vodafone live! PRE"
+ mcc="226"
+ mnc="01"
+ apn="live.pre.vodafone.com"
+ user="live"
+ password="vodafone"
+ proxy="193.230.161.231"
+ port="8080"
+ type="default,supl"
+ />
+
+ <apn carrier="Vodafone live!"
+ mcc="226"
+ mnc="01"
+ apn="live.vodafone.com"
+ user="live"
+ password="vodafone"
+ proxy="193.230.161.231"
+ port="8080"
+ type="default,supl"
+ />
+
+ <apn carrier="Cosmote Internet prepaid"
+ mcc="226"
+ mnc="03"
+ apn="broadband"
+ type="default,supl"
+ />
+
+ <apn carrier="RDS Internet postpaid"
+ mcc="226"
+ mnc="05"
+ apn="Internet"
+ type="default,supl"
+ />
+
+ <apn carrier="Orange Internet prepaid"
+ mcc="226"
+ mnc="10"
+ apn="internet"
+ type="default,supl"
+ />
+
+ <apn carrier="Orange HTTP prepaid"
+ mcc="226"
+ mnc="10"
+ apn="wap"
+ proxy="62.217.247.252"
+ port="8799"
+ type="default,supl"
+ />
+
+ <apn carrier="Swisscom GPRS"
+ mcc="228"
+ mnc="01"
+ apn="gprs.swisscom.ch"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="T-Mobile CZ"
+ mcc="230"
+ mnc="01"
+ apn="internet.t-mobile.cz"
+ type="default,supl"
+ />
+
+ <apn carrier="O2 CZ"
+ mcc="230"
+ mnc="02"
+ apn="internet"
+ type="default,supl"
+ />
+
+ <apn carrier="Vodafone CZ"
+ mcc="230"
+ mnc="03"
+ apn="internet"
+ type="default,supl"
+ />
+
+ <apn carrier="Orange SK"
+ mcc="231"
+ mnc="01"
+ apn="internet"
+ type="default,supl"
+ />
+
+ <apn carrier="T-Mobile SK"
+ mcc="231"
+ mnc="02"
+ apn="internet"
+ type="default,supl"
+ />
+
+ <apn carrier="T-Mobile SK"
+ mcc="231"
+ mnc="04"
+ apn="internet"
+ type="default,supl"
+ />
+
+ <apn carrier="O2 SK"
+ mcc="231"
+ mnc="06"
+ apn="o2internet"
+ type="default,supl"
+ />
+
+ <apn carrier="A1"
+ mcc="232"
+ mnc="01"
+ apn="a1.net"
+ user="ppp@A1plus.at"
+ password="PPP"
+ mmsc="http://mmsc.A1.net"
+ mmsproxy="194.48.124.71"
+ mmsport="8001"
+ type="default,supl"
+ />
+
+ <apn carrier="T-Mobile AT Internet"
+ mcc="232"
+ mnc="03"
+ apn="gprsinternet"
+ type="default,supl"
+ />
+
+ <apn carrier="T-Mobile A MMS"
+ mcc="232"
+ mnc="03"
+ apn="gprsmms"
+ user="t-mobile"
+ password="tm"
+ mmsc="http://mmsc.t-mobile.at/servlets/mms"
+ mmsproxy="010.012.000.020"
+ mmsport="80"
+ type="mms"
+ />
+
+ <apn carrier="UBIQUISYS"
+ mcc="234"
+ mnc="01"
+ apn="internet"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="O2 Mobile Web"
+ mcc="234"
+ mnc="02"
+ apn="mobile.o2.co.uk"
+ user="mobileweb"
+ password="password"
+ type="default,supl"
+ />
+
+ <apn carrier="O2 Pay & Go Internet"
+ mcc="234"
+ mnc="02"
+ apn="payandgo.o2.co.uk"
+ user="faster"
+ password="password"
+ type="default,supl"
+ />
+
+ <apn carrier="O2 Mobile Web"
+ mcc="234"
+ mnc="10"
+ apn="mobile.o2.co.uk"
+ user="mobileweb"
+ password="password"
+ type="default,supl"
+ />
+
+ <apn carrier="O2 Pay & Go Internet"
+ mcc="234"
+ mnc="10"
+ apn="payandgo.o2.co.uk"
+ user="faster"
+ password="password"
+ type="default,supl"
+ />
+
+ <apn carrier="Vodafone UK Prepay"
+ mcc="234"
+ mnc="15"
+ apn="pp.vodafone.co.uk"
+ user="wap"
+ password="wap"
+ type="default,supl"
+ />
+
+ <apn carrier="Vodafone UK"
+ mcc="234"
+ mnc="15"
+ apn="wap.vodafone.co.uk"
+ user="wap"
+ password="wap"
+ type="default,supl"
+ />
+
+ <apn carrier="3"
+ mcc="234"
+ mnc="20"
+ apn="3internet"
+ type="default,supl"
+ />
+
+ <apn carrier="3 Internet"
+ mcc="234"
+ mnc="20"
+ apn="three.co.uk"
+ mmsc="http://mms.um.three.co.uk:10021/mmsc"
+ mmsproxy="mms.three.co.uk"
+ mmsport="8799"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="T-Mobile UK"
+ mcc="234"
+ mnc="30"
+ apn="general.t-mobile.uk"
+ user="t-mobile"
+ password="tm"
+ mmsc="http://mmsc.t-mobile.co.uk:8002"
+ mmsproxy="149.254.201.135"
+ mmsport="8080"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="Orange Internet"
+ mcc="234"
+ mnc="33"
+ apn="orangeinternet"
+ type="default,supl"
+ />
+
+ <apn carrier="Orange internet"
+ mcc="234"
+ mnc="34"
+ apn="orangeinternet"
+ type="default,supl"
+ />
+
+ <apn carrier="TDC"
+ mcc="238"
+ mnc="01"
+ apn="internet"
+ type="default,supl"
+ />
+
+ <apn carrier="Telenor"
+ mcc="238"
+ mnc="02"
+ apn="Internet"
+ type="default,supl"
+ />
+
+ <apn carrier="Telenor internet"
+ mcc="238"
+ mnc="02"
+ apn="internet"
+ type="default,supl"
+ />
+
+ <apn carrier="Bibob Internet"
+ mcc="238"
+ mnc="02"
+ apn="internet.bibob.dk"
+ type="default,supl"
+ />
+
+ <apn carrier="Onfone GPRS"
+ mcc="238"
+ mnc="02"
+ apn="internet.sp.dk"
+ type="default,supl"
+ />
+
+ <apn carrier="3 Danmark"
+ mcc="238"
+ mnc="06"
+ apn="bredbank.tre.dk"
+ type="default"
+ />
+
+ <apn carrier="Oister"
+ mcc="238"
+ mnc="06"
+ apn="data.dk"
+ port="9201"
+ type="default,supl"
+ />
+
+ <apn carrier="Tre Internet"
+ mcc="238"
+ mnc="06"
+ apn="data.tre.dk"
+ type="default,supl"
+ />
+
+ <apn carrier="Callme Internet"
+ mcc="238"
+ mnc="20"
+ apn="websp"
+ type="default,supl"
+ />
+
+ <apn carrier="Telia Mobile Data"
+ mcc="238"
+ mnc="20"
+ apn="www.internet.mtelia.dk"
+ type="default,supl"
+ />
+
+ <apn carrier="Halebop Online"
+ mcc="240"
+ mnc="01"
+ apn="halebop.telia.se"
+ proxy="10.254.254.254"
+ port="8080"
+ type="default,supl"
+ />
+
+ <apn carrier="TDC SE"
+ mcc="240"
+ mnc="01"
+ apn="internet.se"
+ type="default,supl"
+ />
+
+ <apn carrier="Telia SE Internet"
+ mcc="240"
+ mnc="01"
+ apn="online.telia.se"
+ proxy="10.254.254.254"
+ port="8080"
+ type="default,supl"
+ />
+
+ <apn carrier="Tre"
+ mcc="240"
+ mnc="02"
+ apn="data.tre.se"
+ mmsc="http://mms.tre.se"
+ mmsproxy="mmsproxy.tre.se"
+ mmsport="8799"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="Tele2 Internet"
+ mcc="240"
+ mnc="07"
+ apn="internet.tele2.se"
+ type="default,supl"
+ />
+
+ <apn carrier="Ventelo Internet"
+ mcc="240"
+ mnc="07"
+ apn="internet.ventelo.se"
+ type="default,supl"
+ />
+
+ <apn carrier="Telenor Data"
+ mcc="240"
+ mnc="08"
+ apn="internet.telenor.se"
+ type="default"
+ />
+
+ <apn carrier="Cellip"
+ mcc="240"
+ mnc="08"
+ apn="-services sp"
+ proxy="172.30.253.241"
+ port="8799"
+ type="default,supl"
+ />
+
+ <apn carrier="Glocalnet"
+ mcc="240"
+ mnc="08"
+ apn="internet.glocalnet.se"
+ type="default,supl"
+ />
+
+ <apn carrier="Telenor Internet"
+ mcc="242"
+ mnc="01"
+ apn="telenor"
+ proxy="http://m.online.no"
+ type="default,supl"
+ />
+
+ <apn carrier="Telenor Data"
+ mcc="240"
+ mnc="07"
+ apn="internet.telenor.se"
+ type="default,supl"
+ />
+
+ <apn carrier="Spring data"
+ mcc="240"
+ mnc="07"
+ apn="data.springmobil.se"
+ type="default,supl"
+ />
+
+ <apn carrier="NetCom Internet"
+ mcc="242"
+ mnc="02"
+ apn="internet.netcom.no"
+ type="default,supl"
+ />
+
+ <apn carrier="Chess Internet"
+ mcc="242"
+ mnc="02"
+ apn="internet.netcom.no"
+ type="default,supl"
+ />
+
+ <apn carrier="Tele2 Internet"
+ mcc="242"
+ mnc="04"
+ apn="internet.tele2.no"
+ proxy="130.244.196.90"
+ port="8080"
+ type="default"
+ />
+
+ <apn carrier="NMN Internet"
+ mcc="242"
+ mnc="05"
+ apn="internet"
+ type="default,supl"
+ />
+
+ <apn carrier="Elisa Internet"
+ mcc="244"
+ mnc="05"
+ apn="internet"
+ type="default,supl"
+ />
+
+ <apn carrier="TDC internet"
+ mcc="244"
+ mnc="12"
+ apn="inet.tdc.fi"
+ type="default,supl"
+ />
+
+ <apn carrier="dna internet"
+ mcc="244"
+ mnc="12"
+ apn="internet"
+ type="default,supl"
+ />
+
+ <apn carrier="Aina internet"
+ mcc="244"
+ mnc="12"
+ apn="internet.aina.fi"
+ type="default,supl"
+ />
+
+ <apn carrier="Dicame Internet"
+ mcc="244"
+ mnc="12"
+ apn="internet.dicame.fi"
+ type="default,supl"
+ />
+
+ <apn carrier="Saunalahti Internet"
+ mcc="244"
+ mnc="21"
+ apn="internet"
+ type="default,supl"
+ />
+
+ <apn carrier="Sonera"
+ mcc="244"
+ mnc="91"
+ apn="internet"
+ type="default,supl"
+ />
+
+ <apn carrier="Omnitel Internet"
+ mcc="246"
+ mnc="01"
+ apn="omnitel"
+ type="default,supl"
+ />
+
+ <apn carrier="Omnitel HTTP"
+ mcc="246"
+ mnc="01"
+ apn="omnitel"
+ user="omni"
+ password="omni"
+ type="default,supl"
+ />
+
+ <apn carrier="Bite internet"
+ mcc="246"
+ mnc="02"
+ apn="internet"
+ type="default,supl"
+ />
+
+ <apn carrier="Tele 2 HTTP"
+ mcc="246"
+ mnc="03"
+ apn="internet.tele2.lt"
+ user="wap"
+ password="wap"
+ type="default,supl"
+ />
+
+ <apn carrier="LMT INTERNET"
+ mcc="247"
+ mnc="01"
+ apn="internet.lmt.lv"
+ type="default,supl"
+ />
+
+ <apn carrier="LV TELE2 Internet(Prepaid)"
+ mcc="247"
+ mnc="02"
+ apn="data.tele2.lv"
+ type="default,supl"
+ />
+
+ <apn carrier="LV TELE2 Internet"
+ mcc="247"
+ mnc="02"
+ apn="mobileinternet.tele2.lv"
+ user="wap"
+ password="wap"
+ type="default,supl"
+ />
+
+ <apn carrier="Bite GPRS"
+ mcc="247"
+ mnc="03"
+ apn="internet"
+ type="default,supl"
+ />
+
+ <apn carrier="Bite internet"
+ mcc="247"
+ mnc="05"
+ apn="internet"
+ type="default,supl"
+ />
+
+ <apn carrier="EMT Internet"
+ mcc="248"
+ mnc="01"
+ apn="internet.emt.ee"
+ type="default,supl"
+ />
+
+ <apn carrier="Elisa"
+ mcc="248"
+ mnc="02"
+ apn="internet"
+ type="default,supl"
+ />
+
+ <apn carrier="Tele2 Internet"
+ mcc="248"
+ mnc="03"
+ apn="Internet.tele2.ee"
+ type="default,supl"
+ />
+
+ <apn carrier="Tele2 Internet(Prepaid)"
+ mcc="248"
+ mnc="03"
+ apn="wap.tele2.ee"
+ type="default,supl"
+ />
+
+ <apn carrier="MTS Internet"
+ mcc="250"
+ mnc="01"
+ apn="internet.mts.ru"
+ user="mts"
+ password="mts"
+ type="default,supl"
+ />
+
+ <apn carrier="MTS HTTP"
+ mcc="250"
+ mnc="01"
+ apn="wap.mts.ru"
+ user="mts"
+ password="mts"
+ proxy="192.168.192.168"
+ port="8080"
+ type="default,supl"
+ />
+
+ <apn carrier="Megafon Internet"
+ mcc="250"
+ mnc="02"
+ apn="internet"
+ type="default,supl"
+ />
+
+ <apn carrier="Megafon HTTP"
+ mcc="250"
+ mnc="02"
+ apn="wap"
+ user="wap"
+ password="wap"
+ proxy="10.10.10.10"
+ port="8080"
+ type="default,supl"
+ />
+
+ <apn carrier="BeeLine Internet"
+ mcc="250"
+ mnc="99"
+ apn="internet.beeline.ru"
+ user="beeline"
+ password="beeline"
+ type="default,supl"
+ />
+
+ <apn carrier="BeeLine HTTP"
+ mcc="250"
+ mnc="99"
+ apn="wap.beeline.ru"
+ user="beeline"
+ password="beeline"
+ proxy="192.168.17.1"
+ port="8080"
+ type="default,supl"
+ />
+
+ <apn carrier="Plus Internet"
+ mcc="260"
+ mnc="01"
+ apn="Internet"
+ type="default,supl"
+ />
+
+ <apn carrier="T-Mobile"
+ mcc="260"
+ mnc="02"
+ apn="internet"
+ type="default,supl"
+ />
+
+ <apn carrier="Orange PL"
+ mcc="260"
+ mnc="03"
+ apn="internet"
+ user="internet"
+ password="internet"
+ type="default,supl"
+ />
+
+ <apn carrier="Play Internet"
+ mcc="260"
+ mnc="06"
+ apn="Internet"
+ type="default,supl"
+ />
+
+ <apn carrier="T-Mobile D"
+ mcc="262"
+ mnc="01"
+ apn="internet.t-mobile"
+ user="t-mobile"
+ password="tm"
+ mmsc="http://mms.t-mobile.de/servlets/mms"
+ mmsproxy="172.028.023.131"
+ mmsport="8008"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="Vodafone DE"
+ mcc="262"
+ mnc="02"
+ apn="web.vodafone.de"
+ type="default,supl"
+ />
+
+ <apn carrier="E-Plus Internet"
+ mcc="262"
+ mnc="03"
+ apn="internet.eplus.de"
+ user="eplus"
+ password="wap"
+ type="default,supl"
+ />
+
+ <apn carrier="o2 (DE)"
+ mcc="262"
+ mnc="07"
+ apn="internet"
+ mmsc="http://10.81.0.7:8002"
+ mmsproxy="82.113.100.5"
+ mmsport="8080"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="Debitel INET post-paid"
+ mcc="262"
+ mnc="07"
+ apn="internet.debitel.de"
+ type="default,supl"
+ />
+
+ <apn carrier="Kabel Deutschland"
+ mcc="262"
+ mnc="07"
+ apn="internet.kabeld"
+ mmsc="http://10.81.0.7:8002"
+ mmsproxy="82.113.100.5"
+ mmsport="8080"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="Mobilcom post-paid"
+ mcc="262"
+ mnc="07"
+ apn="internet.mobilcom"
+ mmsc="http://10.81.0.7:8002"
+ mmsproxy="82.113.100.37"
+ mmsport="8080"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="Freenet Postpaid"
+ mcc="262"
+ mnc="07"
+ apn="internet.online"
+ mmsc="http://10.81.0.7:8002"
+ mmsproxy="82.113.100.45"
+ mmsport="8080"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="M-Net Postpaid"
+ mcc="262"
+ mnc="07"
+ apn="internet.online1"
+ mmsc="http://10.81.0.7:8002"
+ mmsproxy="82.113.100.44"
+ mmsport="8080"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="AOL"
+ mcc="262"
+ mnc="07"
+ apn="internet.partner1"
+ mmsc="http://10.81.0.7:8002"
+ mmsproxy="82.113.100.41"
+ mmsport="8080"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="Talkline"
+ mcc="262"
+ mnc="07"
+ apn="internet.talkline"
+ mmsc="http://10.81.0.7:8002"
+ mmsproxy="82.113.100.40"
+ mmsport="8080"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="Telco"
+ mcc="262"
+ mnc="07"
+ apn="internet.telco"
+ mmsc="http://10.81.0.7:8002"
+ mmsproxy="82.113.100.43"
+ mmsport="8080"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="Driliish post-paid"
+ mcc="262"
+ mnc="07"
+ apn="internet.victorvox"
+ mmsc="http://10.81.0.7:8002"
+ mmsproxy="82.113.100.38"
+ mmsport="8080"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="o2 (DE) Prepaid"
+ mcc="262"
+ mnc="07"
+ apn="pinternet.interkom.de"
+ mmsc="http://10.81.0.7:8002"
+ mmsproxy="195.182.114.114"
+ mmsport="8080"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="o2 prepaid"
+ mcc="262"
+ mnc="07"
+ apn="pinternet.interkom.de"
+ mmsc="http://10.81.0.7:8002"
+ mmsproxy="82.113.100.6"
+ mmsport="8080"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="Debitel Internet post-paid"
+ mcc="262"
+ mnc="07"
+ apn="wap.debitel.de"
+ type="default,supl"
+ />
+
+ <apn carrier="Tchibo pre-paid Internet"
+ mcc="262"
+ mnc="07"
+ apn="wapmobil1"
+ type="default,supl"
+ />
+
+ <apn carrier="Tchibo post-paid"
+ mcc="262"
+ mnc="07"
+ apn="wapmobil2"
+ mmsc="http://10.81.0.7:8002"
+ mmsproxy="82.113.100.8"
+ mmsport="8080"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="Tchibo pre-paid INET"
+ mcc="262"
+ mnc="07"
+ apn="webmobil1"
+ type="default,supl"
+ />
+
+ <apn carrier="o2 (DE)"
+ mcc="262"
+ mnc="08"
+ apn="internet"
+ mmsc="http://10.81.0.7:8002"
+ mmsproxy="82.113.100.5"
+ mmsport="8080"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="o2 (DE) Prepaid"
+ mcc="262"
+ mnc="08"
+ apn="pinternet.interkom.de"
+ mmsc="http://10.81.0.7:8002"
+ mmsproxy="195.182.114.114"
+ mmsport="8080"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="Vodafone PT Internet"
+ mcc="268"
+ mnc="01"
+ apn="net2.vodafone.pt"
+ user="vodafone"
+ password="vodafone"
+ type="default,supl"
+ />
+
+ <apn carrier="Optimus"
+ mcc="268"
+ mnc="03"
+ apn="umts"
+ proxy="62.169.66.5"
+ port="8799"
+ mmsc="http://mmsc:10021/mmsc"
+ mmsproxy="62.169.66.5"
+ mmsport="8799"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="TMN Internet"
+ mcc="268"
+ mnc="06"
+ apn="Internet"
+ type="default,supl"
+ />
+
+ <apn carrier="LUXGSM HTTP postpaid"
+ mcc="270"
+ mnc="01"
+ apn="wap.pt.lu"
+ user="wap"
+ password="wap"
+ proxy="194.154.192.98"
+ port="8080"
+ type="default,supl"
+ />
+
+ <apn carrier="LUXGSM Internet postpaid"
+ mcc="270"
+ mnc="01"
+ apn="web.pt.lu"
+ user="web"
+ password="web"
+ type="default,supl"
+ />
+
+ <apn carrier="Tango Internet postpaid"
+ mcc="270"
+ mnc="77"
+ apn="internet"
+ user="tango"
+ password="tango"
+ type="default,supl"
+ />
+
+ <apn carrier="VOX Internet postpaid"
+ mcc="270"
+ mnc="99"
+ apn="vox.lu"
+ type="default,supl"
+ />
+
+ <apn carrier="VOX HTTP postpaid"
+ mcc="270"
+ mnc="99"
+ apn="vox.lu"
+ proxy="212.88.139.44"
+ port="8080"
+ type="default,supl"
+ />
+
+ <apn carrier="Internet"
+ mcc="272"
+ mnc="01"
+ apn="hs.vodafone.com"
+ type="default,supl"
+ />
+
+ <apn carrier="3"
+ mcc="272"
+ mnc="05"
+ apn="3internet"
+ type="default,supl"
+ />
+
+ <apn carrier="Vodafone 3G Net"
+ mcc="274"
+ mnc="02"
+ apn="vmc.gprs.is"
+ type="default,supl"
+ />
+
+ <apn carrier="Internet"
+ mcc="278"
+ mnc="01"
+ apn="internet"
+ type="default,supl"
+ />
+
+ <apn carrier="Cyta"
+ mcc="280"
+ mnc="01"
+ apn="Cytamobile"
+ mmsc="http://mmsc.cyta.com.cy"
+ mmsproxy="212.31.96.161"
+ mmsport="8080"
+ type="default,mms"
+ />
+
+ <apn carrier="M-Tel"
+ mcc="284"
+ mnc="01"
+ apn="inet-gprs.mtel.bg"
+ type="default,supl"
+ />
+
+ <apn carrier="Vivacom"
+ mcc="284"
+ mnc="03"
+ apn="internet.vivacom.bg"
+ user="VIVACOM"
+ password="VIVACOM"
+ mmsc="http://mmsc.vivatel.bg"
+ mmsproxy="192.168.123.123"
+ mmsport="8080"
+ type="default,mms"
+ />
+
+ <apn carrier="Turkcell Internet"
+ mcc="286"
+ mnc="01"
+ apn="internet"
+ user="gprs"
+ password="gprs"
+ type="default,supl"
+ />
+
+ <apn carrier="Turkcell Internet"
+ mcc="286"
+ mnc="01"
+ apn="internet"
+ type="default,supl"
+ />
+
+ <apn carrier="Turkcell HTTP"
+ mcc="286"
+ mnc="01"
+ apn="wap"
+ user="gprs"
+ password="gprs"
+ proxy="212.252.234.168"
+ port="8080"
+ type="default,supl"
+ />
+
+ <apn carrier="Vodafone Internet"
+ mcc="286"
+ mnc="02"
+ apn="internet"
+ user="vodafone"
+ password="vodafone"
+ type="default,supl"
+ />
+
+ <apn carrier="AVEA Internet"
+ mcc="286"
+ mnc="03"
+ apn="internet"
+ user="wap"
+ password="wap"
+ type="default,supl"
+ />
+
+ <apn carrier="AVEA HTTP"
+ mcc="286"
+ mnc="03"
+ apn="wap"
+ user="wap"
+ password="wap"
+ proxy="213.161.151.201"
+ port="9201"
+ type="default,supl"
+ />
+
+ <apn carrier="AVEA HTTP"
+ mcc="286"
+ mnc="03"
+ apn="wap"
+ user="wap"
+ password="wap"
+ proxy="213.161.151.201"
+ port="8080"
+ type="default,supl"
+ />
+
+ <apn carrier="Si.mobil"
+ mcc="293"
+ mnc="40"
+ apn="internet.simobil.si"
+ user="simobil"
+ password="internet"
+ proxy="80.95.224.46"
+ port="9201"
+ type="default,supl"
+ />
+
+ <apn carrier="Vodafone live!"
+ mcc="293"
+ mnc="40"
+ apn="internet.simobil.si"
+ user="simobil"
+ password="internet"
+ proxy="80.95.224.17"
+ port="9201"
+ type="default,supl"
+ />
+
+ <apn carrier="Mobitel GPRS"
+ mcc="293"
+ mnc="41"
+ apn="internet"
+ user="mobitel"
+ password="internet"
+ proxy="213.229.249.40"
+ port="8080"
+ type="default,supl"
+ />
+
+ <apn carrier="Tusmobil Internet"
+ mcc="293"
+ mnc="70"
+ apn="internet.tusmobil.si"
+ user="tusmobil"
+ password="internet"
+ type="default,supl"
+ />
+
+ <apn carrier="Internet"
+ mcc="294"
+ mnc="03"
+ apn="Vipoperator"
+ user="VIPOPERATOR"
+ password="VIPOPERATOR"
+ proxy="78.40.0.1"
+ port="8080"
+ type="default"
+ />
+
+ <apn carrier="Videotron"
+ mcc="302"
+ mnc="500"
+ apn="media.videotron"
+ type="default"
+ />
+
+ <apn carrier="Rogers"
+ mcc="302"
+ mnc="720"
+ apn="internet.com"
+ user="guest"
+ password="guest"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="Bell"
+ mcc="302"
+ mnc="610"
+ apn="pda.bell.ca"
+ proxy="web.wireless.bell.ca"
+ port="80"
+ type="default,supl"
+ />
+
+ <apn carrier="Telus"
+ mcc="302"
+ mnc="220"
+ apn="isp.telus.com"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="Verizon"
+ mcc="310"
+ mnc="004"
+ apn="internet"
+ mmsc="http://mms.vtext.com/servlets/mms"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="Sprint"
+ mcc="310"
+ mnc="120"
+ apn="Sprint"
+ user="Sprint"
+ mmsc="http://pcs-ft-mm1.lightsurf.net"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="T-Mobile US 160"
+ mcc="310"
+ mnc="160"
+ apn="epc.tmobile.com"
+ mmsc="http://mms.msg.eng.t-mobile.com/mms/wapenc"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="T-Mobile US 200"
+ mcc="310"
+ mnc="200"
+ apn="epc.tmobile.com"
+ mmsc="http://mms.msg.eng.t-mobile.com/mms/wapenc"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="T-Mobile US 210"
+ mcc="310"
+ mnc="210"
+ apn="epc.tmobile.com"
+ mmsc="http://mms.msg.eng.t-mobile.com/mms/wapenc"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="T-Mobile US 220"
+ mcc="310"
+ mnc="220"
+ apn="epc.tmobile.com"
+ mmsc="http://mms.msg.eng.t-mobile.com/mms/wapenc"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="T-Mobile US 230"
+ mcc="310"
+ mnc="230"
+ apn="epc.tmobile.com"
+ mmsc="http://mms.msg.eng.t-mobile.com/mms/wapenc"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="T-Mobile US 240"
+ mcc="310"
+ mnc="240"
+ apn="epc.tmobile.com"
+ mmsc="http://mms.msg.eng.t-mobile.com/mms/wapenc"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="T-Mobile US 250"
+ mcc="310"
+ mnc="250"
+ apn="epc.tmobile.com"
+ mmsc="http://mms.msg.eng.t-mobile.com/mms/wapenc"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="T-Mobile US"
+ mcc="310"
+ mnc="260"
+ apn="epc.tmobile.com"
+ mmsc="http://mms.msg.eng.t-mobile.com/mms/wapenc"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="T-Mobile US 270"
+ mcc="310"
+ mnc="270"
+ apn="epc.tmobile.com"
+ mmsc="http://mms.msg.eng.t-mobile.com/mms/wapenc"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="T-Mobile US 310"
+ mcc="310"
+ mnc="310"
+ apn="epc.tmobile.com"
+ mmsc="http://mms.msg.eng.t-mobile.com/mms/wapenc"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="Cingular 380 ATT"
+ mcc="310"
+ mnc="380"
+ apn="proxy"
+ mmsc="http://mmsc.cingular.com/"
+ type="default,supl,mms"
+ />
+
+ <!-- DO NOT MODIFY ATT APNS -->
+ <apn carrier="ATT Broadband"
+ mcc="310"
+ mnc="410"
+ apn="broadband"
+ user=""
+ server=""
+ password=""
+ mmsc=""
+ type="default"
+ />
+
+ <apn carrier="ATT Activation"
+ mcc="310"
+ mnc="410"
+ apn="lwaactivate"
+ user=""
+ server=""
+ password=""
+ mmsc=""
+ protocol="IP"
+ />
+
+ <!-- END DO NOT MODIFY -->
+
+ <apn carrier="T-Mobile US 490"
+ mcc="310"
+ mnc="490"
+ apn="epc.tmobile.com"
+ mmsc="http://mms.msg.eng.t-mobile.com/mms/wapenc"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="T-Mobile US 580"
+ mcc="310"
+ mnc="580"
+ apn="epc.tmobile.com"
+ mmsc="http://mms.msg.eng.t-mobile.com/mms/wapenc"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="T-Mobile US 660"
+ mcc="310"
+ mnc="660"
+ apn="epc.tmobile.com"
+ mmsc="http://mms.msg.eng.t-mobile.com/mms/wapenc"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="T-Mobile US 800"
+ mcc="310"
+ mnc="800"
+ apn="epc.tmobile.com"
+ mmsc="http://mms.msg.eng.t-mobile.com/mms/wapenc"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="Android"
+ mcc="310"
+ mnc="99"
+ apn="internet"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="Android"
+ mcc="310"
+ mnc="995"
+ apn="internet"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="Mensajes Multimedia"
+ mcc="334"
+ mnc="020"
+ apn="mms.itelcel.com"
+ user="mmsgprs"
+ password="mmsgprs2003"
+ mmsc="http://mms.itelcel.com/servlets/mms"
+ mmsproxy="148.233.151.240"
+ mmsport="8080"
+ type="mms"
+ />
+
+ <apn carrier="movistar MMS"
+ mcc="334"
+ mnc="03"
+ apn="mms.movistar.mx"
+ user="movistar"
+ password="movistar"
+ mmsc="http://mms.movistar.mx"
+ mmsproxy="10.2.20.1"
+ mmsport="80"
+ type="mms"
+ />
+
+ <apn carrier="movistar MMS"
+ mcc="334"
+ mnc="030"
+ apn="mms.movistar.mx"
+ user="movistar"
+ password="movistar"
+ mmsc="http://mms.movistar.mx"
+ mmsproxy="10.2.20.1"
+ mmsport="80"
+ type="mms"
+ />
+
+ <apn carrier="Iusacell MMS"
+ mcc="334"
+ mnc="050"
+ apn="mms.iusacellgsm.mx"
+ user="mmsiusacellgsm"
+ password="mmsiusacellgsm"
+ mmsc="http://mms.iusacell3g.com/"
+ mmsproxy="192.200.1.40"
+ mmsport="80"
+ type="mms"
+ />
+
+ <apn carrier="Vodafone IN HTTP"
+ mcc="404"
+ mnc="01"
+ apn="portalnmms"
+ proxy="10.10.1.100"
+ port="9401"
+ type="default,supl"
+ />
+
+ <apn carrier="Vodafone IN Internet"
+ mcc="404"
+ mnc="01"
+ apn="www"
+ type="default,supl"
+ />
+
+ <apn carrier="IDEA HTTP"
+ mcc="404"
+ mnc="04"
+ apn="imis"
+ proxy="10.4.42.15"
+ port="8080"
+ type="default,supl"
+ />
+
+ <apn carrier="IDEA Internet"
+ mcc="404"
+ mnc="04"
+ apn="internet"
+ type="default,supl"
+ />
+
+ <apn carrier="Vodafone IN HTTP"
+ mcc="404"
+ mnc="05"
+ apn="portalnmms"
+ proxy="10.10.1.100"
+ port="9401"
+ type="default,supl"
+ />
+
+ <apn carrier="Vodafone IN Internet"
+ mcc="404"
+ mnc="05"
+ apn="www"
+ type="default,supl"
+ />
+
+ <apn carrier="IDEA HTTP"
+ mcc="404"
+ mnc="07"
+ apn="imis"
+ proxy="10.4.42.15"
+ port="8080"
+ type="default,supl"
+ />
+
+ <apn carrier="IDEA Internet"
+ mcc="404"
+ mnc="07"
+ apn="internet"
+ type="default,supl"
+ />
+
+ <apn carrier="Airtel Internet"
+ mcc="404"
+ mnc="10"
+ apn="airtelgprs.com"
+ type="default,supl"
+ />
+
+ <apn carrier="Airtel HTTP"
+ mcc="404"
+ mnc="10"
+ apn="airtelgprs.com"
+ proxy="202.56.231.117"
+ port="9201"
+ type="default,supl"
+ />
+
+ <apn carrier="Vodafone IN HTTP"
+ mcc="404"
+ mnc="11"
+ apn="portalnmms"
+ proxy="10.10.1.100"
+ port="9401"
+ type="default,supl"
+ />
+
+ <apn carrier="Vodafone IN Internet"
+ mcc="404"
+ mnc="11"
+ apn="www"
+ type="default,supl"
+ />
+
+ <apn carrier="Vodafone IN HTTP"
+ mcc="404"
+ mnc="13"
+ apn="portalnmms"
+ proxy="10.10.1.100"
+ port="9401"
+ type="default,supl"
+ />
+
+ <apn carrier="Vodafone IN Internet"
+ mcc="404"
+ mnc="13"
+ apn="www"
+ type="default,supl"
+ />
+
+ <apn carrier="Vodafone IN HTTP"
+ mcc="404"
+ mnc="15"
+ apn="portalnmms"
+ proxy="10.10.1.100"
+ port="9401"
+ type="default,supl"
+ />
+
+ <apn carrier="Vodafone IN Internet"
+ mcc="404"
+ mnc="15"
+ apn="www"
+ type="default,supl"
+ />
+
+ <apn carrier="Vodafone IN HTTP"
+ mcc="404"
+ mnc="20"
+ apn="portalnmms"
+ proxy="10.10.1.100"
+ port="9401"
+ type="default,supl"
+ />
+
+ <apn carrier="Vodafone IN Internet"
+ mcc="404"
+ mnc="20"
+ apn="www"
+ type="default,supl"
+ />
+
+ <apn carrier="BPL HTTP"
+ mcc="404"
+ mnc="21"
+ apn="mizone"
+ user="MSISDN"
+ password="bplmmsc"
+ proxy="10.0.0.10"
+ port="9201"
+ type="default,supl"
+ />
+
+ <apn carrier="IDEA HTTP"
+ mcc="404"
+ mnc="22"
+ apn="imis"
+ proxy="10.4.42.15"
+ port="8080"
+ type="default,supl"
+ />
+
+ <apn carrier="IDEA Internet"
+ mcc="404"
+ mnc="22"
+ apn="internet"
+ type="default,supl"
+ />
+
+ <apn carrier="BPL HTTP"
+ mcc="404"
+ mnc="27"
+ apn="mizone"
+ user="MSISDN"
+ password="bplmmsc"
+ proxy="10.0.0.10"
+ port="9201"
+ type="default,supl"
+ />
+
+ <apn carrier="Vodafone IN HTTP"
+ mcc="404"
+ mnc="30"
+ apn="portalnmms"
+ proxy="10.10.1.100"
+ port="9401"
+ type="default,supl"
+ />
+
+ <apn carrier="Vodafone IN Internet"
+ mcc="404"
+ mnc="30"
+ apn="www"
+ type="default,supl"
+ />
+
+ <apn carrier="Airtel Internet"
+ mcc="404"
+ mnc="31"
+ apn="airtelgprs.com"
+ type="default,supl"
+ />
+
+ <apn carrier="Airtel HTTP"
+ mcc="404"
+ mnc="31"
+ apn="airtelgprs.com"
+ proxy="202.56.231.117"
+ port="9201"
+ type="default,supl"
+ />
+
+ <apn carrier="BSNL Internet"
+ mcc="404"
+ mnc="34"
+ apn="gprssouth.cellone.in"
+ user="MSISDN"
+ password="MSISDN"
+ type="default,supl"
+ />
+
+ <apn carrier="BSNL HTTP"
+ mcc="404"
+ mnc="34"
+ apn="wapsouth.cellone.in"
+ proxy="10.31.54.2"
+ port="9201"
+ type="default,supl"
+ />
+
+ <apn carrier="BSNL Internet"
+ mcc="404"
+ mnc="38"
+ apn="gprssouth.cellone.in"
+ user="MSISDN"
+ password="MSISDN"
+ type="default,supl"
+ />
+
+ <apn carrier="BSNL HTTP"
+ mcc="404"
+ mnc="38"
+ apn="wapsouth.cellone.in"
+ proxy="10.31.54.2"
+ port="9201"
+ type="default,supl"
+ />
+
+ <apn carrier="Airtel Internet"
+ mcc="404"
+ mnc="40"
+ apn="airtelgprs.com"
+ type="default,supl"
+ />
+
+ <apn carrier="Airtel HTTP"
+ mcc="404"
+ mnc="40"
+ apn="airtelgprs.com"
+ proxy="202.56.231.117"
+ port="9201"
+ type="default,supl"
+ />
+
+ <apn carrier="BPL HTTP"
+ mcc="404"
+ mnc="43"
+ apn="mizone"
+ user="MSISDN"
+ password="bplmmsc"
+ proxy="10.0.0.10"
+ port="9201"
+ type="default,supl"
+ />
+
+ <apn carrier="Airtel Internet"
+ mcc="404"
+ mnc="45"
+ apn="airtelgprs.com"
+ type="default,supl"
+ />
+
+ <apn carrier="Airtel HTTP"
+ mcc="404"
+ mnc="45"
+ apn="airtelgprs.com"
+ proxy="202.56.231.117"
+ port="9201"
+ type="default,supl"
+ />
+
+ <apn carrier="BPL HTTP"
+ mcc="404"
+ mnc="46"
+ apn="mizone"
+ user="MSISDN"
+ password="bplmmsc"
+ proxy="10.0.0.10"
+ port="9201"
+ type="default,supl"
+ />
+
+ <apn carrier="Airtel Internet"
+ mcc="404"
+ mnc="49"
+ apn="airtelgprs.com"
+ type="default,supl"
+ />
+
+ <apn carrier="Airtel HTTP"
+ mcc="404"
+ mnc="49"
+ apn="airtelgprs.com"
+ proxy="202.56.231.117"
+ port="9201"
+ type="default,supl"
+ />
+
+ <apn carrier="BSNL Internet"
+ mcc="404"
+ mnc="51"
+ apn="gprssouth.cellone.in"
+ user="MSISDN"
+ password="MSISDN"
+ type="default,supl"
+ />
+
+ <apn carrier="BSNL HTTP"
+ mcc="404"
+ mnc="51"
+ apn="wapsouth.cellone.in"
+ proxy="10.31.54.2"
+ port="9201"
+ type="default,supl"
+ />
+
+ <apn carrier="BSNL Internet"
+ mcc="404"
+ mnc="53"
+ apn="gprssouth.cellone.in"
+ user="MSISDN"
+ password="MSISDN"
+ type="default,supl"
+ />
+
+ <apn carrier="BSNL HTTP"
+ mcc="404"
+ mnc="53"
+ apn="wapsouth.cellone.in"
+ proxy="10.31.54.2"
+ port="9201"
+ type="default,supl"
+ />
+
+ <apn carrier="BSNL Internet"
+ mcc="404"
+ mnc="54"
+ apn="gprssouth.cellone.in"
+ user="MSISDN"
+ password="MSISDN"
+ type="default,supl"
+ />
+
+ <apn carrier="BSNL HTTP"
+ mcc="404"
+ mnc="54"
+ apn="wapsouth.cellone.in"
+ proxy="10.31.54.2"
+ port="9201"
+ type="default,supl"
+ />
+
+ <apn carrier="BSNL Internet"
+ mcc="404"
+ mnc="55"
+ apn="gprssouth.cellone.in"
+ user="MSISDN"
+ password="MSISDN"
+ type="default,supl"
+ />
+
+ <apn carrier="BSNL HTTP"
+ mcc="404"
+ mnc="55"
+ apn="wapsouth.cellone.in"
+ proxy="10.31.54.2"
+ port="9201"
+ type="default,supl"
+ />
+
+ <apn carrier="BSNL Internet"
+ mcc="404"
+ mnc="57"
+ apn="gprssouth.cellone.in"
+ user="MSISDN"
+ password="MSISDN"
+ type="default,supl"
+ />
+
+ <apn carrier="BSNL HTTP"
+ mcc="404"
+ mnc="57"
+ apn="wapsouth.cellone.in"
+ proxy="10.31.54.2"
+ port="9201"
+ type="default,supl"
+ />
+
+ <apn carrier="BSNL Internet"
+ mcc="404"
+ mnc="58"
+ apn="gprssouth.cellone.in"
+ user="MSISDN"
+ password="MSISDN"
+ type="default,supl"
+ />
+
+ <apn carrier="BSNL HTTP"
+ mcc="404"
+ mnc="58"
+ apn="wapsouth.cellone.in"
+ proxy="10.31.54.2"
+ port="9201"
+ type="default,supl"
+ />
+
+ <apn carrier="BSNL Internet"
+ mcc="404"
+ mnc="59"
+ apn="gprssouth.cellone.in"
+ user="MSISDN"
+ password="MSISDN"
+ type="default,supl"
+ />
+
+ <apn carrier="BSNL HTTP"
+ mcc="404"
+ mnc="59"
+ apn="wapsouth.cellone.in"
+ proxy="10.31.54.2"
+ port="9201"
+ type="default,supl"
+ />
+
+ <apn carrier="Vodafone IN HTTP"
+ mcc="404"
+ mnc="60"
+ apn="portalnmms"
+ proxy="10.10.1.100"
+ port="9401"
+ type="default,supl"
+ />
+
+ <apn carrier="Vodafone IN Internet"
+ mcc="404"
+ mnc="60"
+ apn="www"
+ type="default,supl"
+ />
+
+ <apn carrier="BSNL Internet"
+ mcc="404"
+ mnc="63"
+ apn="gprssouth.cellone.in"
+ user="MSISDN"
+ password="MSISDN"
+ type="default,supl"
+ />
+
+ <apn carrier="BSNL HTTP"
+ mcc="404"
+ mnc="63"
+ apn="wapsouth.cellone.in"
+ proxy="10.31.54.2"
+ port="9201"
+ type="default,supl"
+ />
+
+ <apn carrier="BSNL Internet"
+ mcc="404"
+ mnc="64"
+ apn="gprssouth.cellone.in"
+ user="MSISDN"
+ password="MSISDN"
+ type="default,supl"
+ />
+
+ <apn carrier="BSNL HTTP"
+ mcc="404"
+ mnc="64"
+ apn="wapsouth.cellone.in"
+ proxy="10.31.54.2"
+ port="9201"
+ type="default,supl"
+ />
+
+ <apn carrier="BSNL Internet"
+ mcc="404"
+ mnc="66"
+ apn="gprssouth.cellone.in"
+ user="MSISDN"
+ password="MSISDN"
+ type="default,supl"
+ />
+
+ <apn carrier="BSNL HTTP"
+ mcc="404"
+ mnc="66"
+ apn="wapsouth.cellone.in"
+ proxy="10.31.54.2"
+ port="9201"
+ type="default,supl"
+ />
+
+ <apn carrier="MTNL Internet postpaid"
+ mcc="404"
+ mnc="68"
+ apn="gprsmtnldel"
+ user="mtnl"
+ password="mtnl123"
+ proxy="172.16.39.10"
+ port="9401"
+ type="default,supl"
+ />
+
+ <apn carrier="MTNL Internet postpaid"
+ mcc="404"
+ mnc="69"
+ apn="gprsmtnldel"
+ user="mtnl"
+ password="mtnl123"
+ proxy="172.16.39.10"
+ port="9401"
+ type="default,supl"
+ />
+
+ <apn carrier="BSNL Internet"
+ mcc="404"
+ mnc="71"
+ apn="gprssouth.cellone.in"
+ user="MSISDN"
+ password="MSISDN"
+ type="default,supl"
+ />
+
+ <apn carrier="BSNL HTTP"
+ mcc="404"
+ mnc="71"
+ apn="wapsouth.cellone.in"
+ proxy="10.31.54.2"
+ port="9201"
+ type="default,supl"
+ />
+
+ <apn carrier="BSNL Internet"
+ mcc="404"
+ mnc="72"
+ apn="gprssouth.cellone.in"
+ user="MSISDN"
+ password="MSISDN"
+ type="default,supl"
+ />
+
+ <apn carrier="BSNL HTTP"
+ mcc="404"
+ mnc="72"
+ apn="wapsouth.cellone.in"
+ proxy="10.31.54.2"
+ port="9201"
+ type="default,supl"
+ />
+
+ <apn carrier="BSNL Internet"
+ mcc="404"
+ mnc="73"
+ apn="gprssouth.cellone.in"
+ user="MSISDN"
+ password="MSISDN"
+ type="default,supl"
+ />
+
+ <apn carrier="BSNL HTTP"
+ mcc="404"
+ mnc="73"
+ apn="wapsouth.cellone.in"
+ proxy="10.31.54.2"
+ port="9201"
+ type="default,supl"
+ />
+
+ <apn carrier="BSNL Internet"
+ mcc="404"
+ mnc="74"
+ apn="gprssouth.cellone.in"
+ user="MSISDN"
+ password="MSISDN"
+ type="default,supl"
+ />
+
+ <apn carrier="BSNL HTTP"
+ mcc="404"
+ mnc="74"
+ apn="wapsouth.cellone.in"
+ proxy="10.31.54.2"
+ port="9201"
+ type="default,supl"
+ />
+
+ <apn carrier="BSNL Internet"
+ mcc="404"
+ mnc="75"
+ apn="gprssouth.cellone.in"
+ user="MSISDN"
+ password="MSISDN"
+ type="default,supl"
+ />
+
+ <apn carrier="BSNL HTTP"
+ mcc="404"
+ mnc="75"
+ apn="wapsouth.cellone.in"
+ proxy="10.31.54.2"
+ port="9201"
+ type="default,supl"
+ />
+
+ <apn carrier="BSNL Internet"
+ mcc="404"
+ mnc="76"
+ apn="gprssouth.cellone.in"
+ user="MSISDN"
+ password="MSISDN"
+ type="default,supl"
+ />
+
+ <apn carrier="BSNL HTTP"
+ mcc="404"
+ mnc="76"
+ apn="wapsouth.cellone.in"
+ proxy="10.31.54.2"
+ port="9201"
+ type="default,supl"
+ />
+
+ <apn carrier="BSNL Internet"
+ mcc="404"
+ mnc="77"
+ apn="gprssouth.cellone.in"
+ user="MSISDN"
+ password="MSISDN"
+ type="default,supl"
+ />
+
+ <apn carrier="BSNL HTTP"
+ mcc="404"
+ mnc="77"
+ apn="wapsouth.cellone.in"
+ proxy="10.31.54.2"
+ port="9201"
+ type="default,supl"
+ />
+
+ <apn carrier="BSNL Internet"
+ mcc="404"
+ mnc="80"
+ apn="gprssouth.cellone.in"
+ user="MSISDN"
+ password="MSISDN"
+ type="default,supl"
+ />
+
+ <apn carrier="BSNL HTTP"
+ mcc="404"
+ mnc="80"
+ apn="wapsouth.cellone.in"
+ proxy="10.31.54.2"
+ port="9201"
+ type="default,supl"
+ />
+
+ <apn carrier="BSNL Internet"
+ mcc="404"
+ mnc="81"
+ apn="gprssouth.cellone.in"
+ user="MSISDN"
+ password="MSISDN"
+ type="default,supl"
+ />
+
+ <apn carrier="BSNL HTTP"
+ mcc="404"
+ mnc="81"
+ apn="wapsouth.cellone.in"
+ proxy="10.31.54.2"
+ port="9201"
+ type="default,supl"
+ />
+
+ <apn carrier="IDEA HTTP"
+ mcc="404"
+ mnc="82"
+ apn="imis"
+ proxy="10.4.42.15"
+ port="8080"
+ type="default,supl"
+ />
+
+ <apn carrier="IDEA Internet"
+ mcc="404"
+ mnc="82"
+ apn="internet"
+ type="default,supl"
+ />
+
+ <apn carrier="Vodafone IN HTTP"
+ mcc="404"
+ mnc="84"
+ apn="portalnmms"
+ proxy="10.10.1.100"
+ port="9401"
+ type="default,supl"
+ />
+
+ <apn carrier="Vodafone IN Internet"
+ mcc="404"
+ mnc="84"
+ apn="www"
+ type="default,supl"
+ />
+
+ <apn carrier="India Hutch"
+ mcc="404"
+ mnc="86"
+ apn="portalnmms"
+ proxy="10.10.1.100"
+ port="9401"
+ mmsc="http://mms1.hutchworld.co.in/mms/"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="Vodafone IN Internet"
+ mcc="404"
+ mnc="86"
+ apn="www"
+ type="default,supl"
+ />
+
+ <apn carrier="IDEA HTTP"
+ mcc="404"
+ mnc="87"
+ apn="imis"
+ proxy="10.4.42.15"
+ port="8080"
+ type="default,supl"
+ />
+
+ <apn carrier="IDEA Internet"
+ mcc="404"
+ mnc="87"
+ apn="internet"
+ type="default,supl"
+ />
+
+ <apn carrier="IDEA HTTP"
+ mcc="404"
+ mnc="89"
+ apn="imis"
+ proxy="10.4.42.15"
+ port="8080"
+ type="default,supl"
+ />
+
+ <apn carrier="IDEA Internet"
+ mcc="404"
+ mnc="89"
+ apn="internet"
+ type="default,supl"
+ />
+
+ <apn carrier="Airtel Internet"
+ mcc="404"
+ mnc="90"
+ apn="airtelgprs.com"
+ type="default,supl"
+ />
+
+ <apn carrier="Airtel HTTP"
+ mcc="404"
+ mnc="90"
+ apn="airtelgprs.com"
+ proxy="202.56.231.117"
+ port="9201"
+ type="default,supl"
+ />
+
+ <apn carrier="Kolkata Aircel HTTP"
+ mcc="404"
+ mnc="91"
+ apn="aircelwap"
+ proxy="172.17.83.69"
+ port="8080"
+ type="default,supl"
+ />
+
+ <apn carrier="Kolkata Aircel Internet"
+ mcc="404"
+ mnc="91"
+ apn="aircelweb"
+ type="default,supl"
+ />
+
+ <apn carrier="Airtel Internet"
+ mcc="404"
+ mnc="92"
+ apn="airtelgprs.com"
+ type="default,supl"
+ />
+
+ <apn carrier="Airtel HTTP"
+ mcc="404"
+ mnc="92"
+ apn="airtelgprs.com"
+ proxy="202.56.231.117"
+ port="9201"
+ type="default,supl"
+ />
+
+ <apn carrier="Airtel Internet"
+ mcc="404"
+ mnc="98"
+ apn="airtelgprs.com"
+ type="default,supl"
+ />
+
+ <apn carrier="Airtel HTTP"
+ mcc="404"
+ mnc="98"
+ apn="airtelgprs.com"
+ proxy="202.56.231.117"
+ port="9201"
+ type="default,supl"
+ />
+
+ <apn carrier="TaTa DOCOMO HTTP"
+ mcc="405"
+ mnc="02"
+ apn="TATA.DOCOMO.DIVE.IN"
+ proxy="10.124.94.7"
+ port="8080"
+ type="default,supl"
+ />
+
+ <apn carrier="TaTa DOCOMO Internet"
+ mcc="405"
+ mnc="02"
+ apn="TATA.DOCOMO.INTERNET"
+ type="default,supl"
+ />
+
+ <apn carrier="TaTa DOCOMO HTTP"
+ mcc="405"
+ mnc="03"
+ apn="TATA.DOCOMO.DIVE.IN"
+ proxy="10.124.94.7"
+ port="8080"
+ type="default,supl"
+ />
+
+ <apn carrier="TaTa DOCOMO Internet"
+ mcc="405"
+ mnc="03"
+ apn="TATA.DOCOMO.INTERNET"
+ type="default,supl"
+ />
+
+ <apn carrier="TaTa DOCOMO HTTP"
+ mcc="405"
+ mnc="034"
+ apn="TATA.DOCOMO.DIVE.IN"
+ proxy="10.124.94.7"
+ port="8080"
+ type="default,supl"
+ />
+
+ <apn carrier="TaTa DOCOMO Internet"
+ mcc="405"
+ mnc="034"
+ apn="TATA.DOCOMO.INTERNET"
+ type="default,supl"
+ />
+
+ <apn carrier="IDEA HTTP"
+ mcc="405"
+ mnc="799"
+ apn="imis"
+ proxy="10.4.42.15"
+ port="8080"
+ type="default,supl"
+ />
+
+ <apn carrier="IDEA Internet"
+ mcc="405"
+ mnc="799"
+ apn="internet"
+ type="default,supl"
+ />
+
+ <apn carrier="Aircel Internet"
+ mcc="405"
+ mnc="80"
+ apn="aircelgprs"
+ type="default,supl"
+ />
+
+ <apn carrier="Aircel HTTP"
+ mcc="405"
+ mnc="80"
+ apn="aircelwap"
+ proxy="172.17.83.69"
+ port="8080"
+ type="default,supl"
+ />
+
+ <apn carrier="IDEA HTTP"
+ mcc="405"
+ mnc="84"
+ apn="imis"
+ proxy="10.4.42.15"
+ port="8080"
+ type="default,supl"
+ />
+
+ <apn carrier="IDEA Internet"
+ mcc="405"
+ mnc="84"
+ apn="internet"
+ type="default,supl"
+ />
+
+ <apn carrier="Umniah Internet"
+ mcc="416"
+ mnc="03"
+ apn="net"
+ type="default,supl"
+ />
+
+ <apn carrier="Umniah HTTP"
+ mcc="416"
+ mnc="03"
+ apn="wap"
+ proxy="10.1.1.10"
+ port="9201"
+ type="default,supl"
+ />
+
+ <apn carrier="STC Internet"
+ mcc="420"
+ mnc="01"
+ apn="jawalnet.com.sa"
+ type="default,supl"
+ />
+
+ <apn carrier="STC HTTP"
+ mcc="420"
+ mnc="01"
+ apn="jawalnet.com.sa"
+ proxy="proxy.jawalnet.com.sa"
+ port="8080"
+ type="default,supl"
+ />
+
+ <apn carrier="Mobily HTTP postpaid"
+ mcc="420"
+ mnc="03"
+ apn="wap1"
+ proxy="10.3.2.133"
+ port="8080"
+ type="default,supl"
+ />
+
+ <apn carrier="Mobily HTTP prepaid"
+ mcc="420"
+ mnc="03"
+ apn="wap2"
+ proxy="10.3.2.133"
+ port="8080"
+ type="default,supl"
+ />
+
+ <apn carrier="Mobily Internet postpaid"
+ mcc="420"
+ mnc="03"
+ apn="web1"
+ type="default,supl"
+ />
+
+ <apn carrier="Mobily Internet prepaid"
+ mcc="420"
+ mnc="03"
+ apn="web2"
+ type="default,supl"
+ />
+
+ <apn carrier="Zain Internet"
+ mcc="420"
+ mnc="04"
+ apn="zain"
+ mmsc="http://10.122.200.12:8002"
+ mmsproxy="10.122.200.10"
+ mmsport="8080"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="Zain HTTP"
+ mcc="420"
+ mnc="04"
+ apn="zain"
+ proxy="10.122.200.10"
+ port="8080"
+ mmsc="http://10.122.200.12:8002"
+ mmsproxy="10.122.200.10"
+ mmsport="8080"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="Etisalat Internet"
+ mcc="424"
+ mnc="02"
+ apn="etisalat.ae"
+ type="default,supl"
+ />
+
+ <apn carrier="du Internet"
+ mcc="424"
+ mnc="03"
+ apn="du"
+ type="default,supl"
+ />
+
+ <apn carrier="du HTTP"
+ mcc="424"
+ mnc="03"
+ apn="du"
+ proxy="10.19.18.4"
+ port="8080"
+ type="default,supl"
+ />
+
+ <apn carrier="3G Portal"
+ mcc="425"
+ mnc="01"
+ apn="uwap.orange.co.il"
+ user="orange"
+ password="mobile54"
+ mmsc="http://192.168.220.15/servlets/mms"
+ mmsproxy="192.118.11.55"
+ mmsport="8080"
+ type="default,mms"
+ />
+
+ <apn carrier="IL Orange"
+ mcc="425"
+ mnc="01"
+ apn="internet"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="Cellcom Internet"
+ mcc="425"
+ mnc="02"
+ apn="sphone"
+ type="default"
+ />
+
+ <apn carrier="IL Cellcom"
+ mcc="425"
+ mnc="02"
+ apn="internetg"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="Sphone Pelephone"
+ mcc="425"
+ mnc="03"
+ apn="sphone.pelephone.net.il"
+ user="pcl@3g"
+ password="pcl"
+ type="default"
+ />
+
+ <apn carrier="IL Pelephone"
+ mcc="425"
+ mnc="03"
+ apn="internet"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="Jawwal Palestine"
+ mcc="425"
+ mnc="05"
+ apn="internet"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="Hot Mobile 3G"
+ mcc="425"
+ mnc="07"
+ apn="net.hotm"
+ type="default"
+ />
+
+ <apn carrier="Golan Telecom 3G"
+ mcc="425"
+ mnc="08"
+ apn="internet.golantelecom.net.il"
+ type="default"
+ />
+
+ <apn carrier="Youphone Data"
+ mcc="425"
+ mnc="14"
+ apn="data.youphone.co.il"
+ type="default"
+ />
+
+ <apn carrier="Home Cellular 3G"
+ mcc="425"
+ mnc="15"
+ apn="hcminternet"
+ type="default"
+ />
+
+ <apn carrier="BATELCO Internet"
+ mcc="426"
+ mnc="01"
+ apn="internet.batelco.com"
+ user="internet"
+ password="internet"
+ type="default,supl"
+ />
+
+ <apn carrier="Rami Levi 3G"
+ mcc="425"
+ mnc="16"
+ apn="internet.rl"
+ type="default"
+ />
+
+ <apn carrier="BATELCO HTTP"
+ mcc="426"
+ mnc="01"
+ apn="wap.batelco.com"
+ user="wap"
+ password="wap"
+ proxy="192.168.1.1"
+ port="9201"
+ type="default,supl"
+ />
+
+ <apn carrier="MTC Vodafo Internet"
+ mcc="426"
+ mnc="02"
+ apn="internet"
+ user="internet"
+ password="internet"
+ type="default,supl"
+ />
+
+ <apn carrier="MTC Vodafo HTTP"
+ mcc="426"
+ mnc="02"
+ apn="wap"
+ user="wap"
+ password="wap"
+ proxy="172.18.85.33"
+ port="9201"
+ type="default,supl"
+ />
+
+ <apn carrier="Internet"
+ mcc="427"
+ mnc="02"
+ apn="web.vodafone.com.qa"
+ type="default,supl"
+ />
+
+ <apn carrier="mopera U設定"
+ mcc="440"
+ mnc="10"
+ apn="0120.mopera.net"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="mopera U(スマートフォン定額)"
+ mcc="440"
+ mnc="10"
+ apn="mopera.net"
+ type="default"
+ />
+
+ <apn carrier="SKT3G"
+ mcc="450"
+ mnc="05"
+ apn="web.sktelecom.com"
+ mmsc="http://omms.nate.com:9082/oma_mms"
+ mmsproxy="smart.nate.com"
+ mmsport="9093"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="KT"
+ mcc="450"
+ mnc="08"
+ apn="alwayson-r6.ktfwing.com"
+ mmsc="http://mmsc.ktfwing.com:9082"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="Mobifone CSD"
+ mcc="452"
+ mnc="00"
+ apn="998"
+ user="wap"
+ password="wap"
+ proxy="203.162.21.114"
+ port="8000"
+ type="default,supl"
+ />
+
+ <apn carrier="Mobifone Internet"
+ mcc="452"
+ mnc="00"
+ apn="m-wap"
+ user="mms"
+ password="mms"
+ type="default,supl"
+ />
+
+ <apn carrier="Mobifone CSD"
+ mcc="452"
+ mnc="01"
+ apn="998"
+ user="wap"
+ password="wap"
+ proxy="203.162.21.114"
+ port="8000"
+ type="default,supl"
+ />
+
+ <apn carrier="Mobifone Internet"
+ mcc="452"
+ mnc="01"
+ apn="m-wap"
+ user="mms"
+ password="mms"
+ type="default,supl"
+ />
+
+ <apn carrier="Vinaphone CSD"
+ mcc="452"
+ mnc="02"
+ apn="999"
+ user="vinaphone"
+ password="vinaphone"
+ proxy="203.162.21.203"
+ port="8000"
+ type="default,supl"
+ />
+
+ <apn carrier="Vinaphone HTTP"
+ mcc="452"
+ mnc="02"
+ apn="m3-world"
+ user="mms"
+ password="mms"
+ proxy="10.1.10.46"
+ port="8000"
+ type="default,supl"
+ />
+
+ <apn carrier="Viettel Internet"
+ mcc="452"
+ mnc="04"
+ apn="v-internet"
+ type="default,supl"
+ />
+
+ <apn carrier="Viettel HTTP"
+ mcc="452"
+ mnc="04"
+ apn="v-wap"
+ proxy="192.168.233.10"
+ port="8080"
+ type="default,supl"
+ />
+
+ <apn carrier="NWMobile"
+ mcc="454"
+ mnc="00"
+ apn="NWMOBILE"
+ proxy="192.168.59.61"
+ port="8080"
+ mmsc="http://192.168.58.171:8002"
+ mmsproxy="192.168.59.61"
+ mmsport="8080"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="1010 Tethering"
+ mcc="454"
+ mnc="00"
+ apn="lte.internet"
+ type="dun"
+ />
+
+ <apn carrier="1010"
+ mcc="454"
+ mnc="00"
+ apn="mobile"
+ mmsc="http://192.168.58.171:8002/"
+ mmsproxy="192.168.59.51"
+ mmsport="8080"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="NWMobile"
+ mcc="454"
+ mnc="02"
+ apn="NWMOBILE"
+ proxy="192.168.59.61"
+ port="8080"
+ mmsc="http://192.168.58.171:8002"
+ mmsproxy="192.168.59.61"
+ mmsport="8080"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="1010 Tethering"
+ mcc="454"
+ mnc="02"
+ apn="lte.internet"
+ type="dun"
+ />
+
+ <apn carrier="1010"
+ mcc="454"
+ mnc="02"
+ apn="mobile"
+ mmsc="http://192.168.58.171:8002/"
+ mmsproxy="192.168.59.51"
+ mmsport="8080"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="3"
+ mcc="454"
+ mnc="03"
+ apn="imobile.three.com.hk"
+ mmsc="http://mms.um.three.com.hk:10021/mmsc"
+ mmsproxy="mms.three.com.hk"
+ mmsport="8799"
+ type="default,mms,dun,hipri"
+ authtype="3"
+ />
+
+ <apn carrier="3(2G) Network"
+ mcc="454"
+ mnc="04"
+ apn="web-g.three.com.hk"
+ type="default,supl"
+ />
+
+ <apn carrier="3(2G) HTTP"
+ mcc="454"
+ mnc="04"
+ apn="web-g.three.com.hk"
+ proxy="10.30.3.151"
+ port="8080"
+ type="default,supl"
+ />
+
+ <apn carrier="SmarTone"
+ mcc="454"
+ mnc="06"
+ apn="SmarTone"
+ mmsc="http://mms.smartone.com/server"
+ mmsproxy="10.9.9.9"
+ mmsport="8080"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="NWMobile"
+ mcc="454"
+ mnc="10"
+ apn="NWMOBILE"
+ proxy="192.168.59.61"
+ port="8080"
+ mmsc="http://192.168.58.171:8002"
+ mmsproxy="192.168.59.61"
+ mmsport="8080"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="1010 Tethering"
+ mcc="454"
+ mnc="10"
+ apn="lte.internet"
+ type="dun"
+ />
+
+ <apn carrier="1010"
+ mcc="454"
+ mnc="10"
+ apn="mobile"
+ mmsc="http://192.168.58.171:8002/"
+ mmsproxy="192.168.59.51"
+ mmsport="8080"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="CMHK Data"
+ mcc="454"
+ mnc="12"
+ apn="cmhk"
+ type="default,supl"
+ />
+
+ <apn carrier="CMHK Network"
+ mcc="454"
+ mnc="12"
+ apn="peoples.net"
+ type="default,supl"
+ />
+
+ <apn carrier="CMHK HTTP Setting"
+ mcc="454"
+ mnc="12"
+ apn="peoples.net"
+ proxy="172.31.31.36"
+ port="8080"
+ type="default,supl"
+ />
+
+ <apn carrier="CMHK Data"
+ mcc="454"
+ mnc="13"
+ apn="cmhk"
+ type="default,supl"
+ />
+
+ <apn carrier="CMHK Network"
+ mcc="454"
+ mnc="13"
+ apn="peoples.net"
+ type="default,supl"
+ />
+
+ <apn carrier="CMHK HTTP Setting"
+ mcc="454"
+ mnc="13"
+ proxy="172.31.31.36"
+ port="8080"
+ apn="peoples.net"
+ type="default"
+ />
+
+ <apn carrier="SmarTone"
+ mcc="454"
+ mnc="15"
+ apn="SmarTone"
+ mmsc="http://mms.smartone.com/server"
+ mmsproxy="10.9.9.9"
+ mmsport="8080"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="PCCW_Network"
+ mcc="454"
+ mnc="16"
+ apn="pccwdata"
+ type="default,supl"
+ />
+
+ <apn carrier="PCCW_GPRS HTTP"
+ mcc="454"
+ mnc="16"
+ apn="pccwdata"
+ proxy="10.131.2.8"
+ port="8080"
+ type="default,supl"
+ />
+
+ <apn carrier="SmarTone"
+ mcc="454"
+ mnc="17"
+ apn="SmarTone"
+ mmsc="http://mms.smartone.com/server"
+ mmsproxy="10.9.9.9"
+ mmsport="8080"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="NWMobile"
+ mcc="454"
+ mnc="18"
+ apn="NWMOBILE"
+ proxy="192.168.59.61"
+ port="8080"
+ mmsc="http://192.168.58.171:8002"
+ mmsproxy="192.168.59.61"
+ mmsport="8080"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="1010 Tethering"
+ mcc="454"
+ mnc="18"
+ apn="lte.internet"
+ type="dun"
+ />
+
+ <apn carrier="1010"
+ mcc="454"
+ mnc="18"
+ apn="mobile"
+ mmsc="http://192.168.58.171:8002/"
+ mmsproxy="192.168.59.51"
+ mmsport="8080"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="PCCW 3G Internet"
+ mcc="454"
+ mnc="19"
+ apn="pccw"
+ type="default,supl"
+ />
+
+ <apn carrier="PCCW 3G SOCKS"
+ mcc="454"
+ mnc="19"
+ apn="pccw"
+ proxy="10.140.14.10"
+ port="1080"
+ type="default,supl"
+ />
+
+ <apn carrier="SmarTone Macau"
+ mcc="455"
+ mnc="00"
+ apn="smartgprs"
+ type="default,supl"
+ />
+
+ <apn carrier="CTM Data"
+ mcc="455"
+ mnc="01"
+ apn="ctm-mobile"
+ proxy="192.168.99.2"
+ port="8080"
+ type="default"
+ />
+
+ <apn carrier="CTM(Prepaid)"
+ mcc="455"
+ mnc="01"
+ apn="ctmprepaid"
+ proxy="192.168.99.2"
+ port="8080"
+ mmsc="http://mms.wap.ctm.net:8002"
+ mmsproxy="192.168.99.3"
+ mmsport="8080"
+ type="default,mms"
+ />
+
+ <apn carrier="3 Macau"
+ mcc="455"
+ mnc="03"
+ apn="mobile.three.com.mo"
+ type="default,supl"
+ />
+
+ <apn carrier="CMCC Internet"
+ mcc="460"
+ mnc="00"
+ apn="cmnet"
+ type="default,supl"
+ />
+
+ <apn carrier="CMCC"
+ mcc="460"
+ mnc="00"
+ apn="cmwap"
+ proxy="10.0.0.172"
+ port="80"
+ mmsc="http://mmsc.monternet.com"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="CMCC HTTP"
+ mcc="460"
+ mnc="00"
+ apn="cmwap"
+ user="wap"
+ password="wap"
+ proxy="10.0.0.172"
+ port="80"
+ type="default,supl"
+ />
+
+ <apn carrier="China Unicom 3G Internet"
+ mcc="460"
+ mnc="01"
+ apn="3gnet"
+ type="default,supl"
+ />
+
+ <apn carrier="China Unicom 2G Internet"
+ mcc="460"
+ mnc="01"
+ apn="uninet"
+ type="default,supl"
+ />
+
+ <apn carrier="CMCC Internet"
+ mcc="460"
+ mnc="02"
+ apn="cmnet"
+ type="default,supl"
+ />
+
+ <apn carrier="CMCC HTTP"
+ mcc="460"
+ mnc="02"
+ apn="cmwap"
+ user="wap"
+ password="wap"
+ proxy="10.0.0.172"
+ port="80"
+ type="default,supl"
+ />
+
+ <apn carrier="CMCC Internet"
+ mcc="460"
+ mnc="07"
+ apn="cmnet"
+ type="default,supl"
+ />
+
+ <apn carrier="CMCC HTTP"
+ mcc="460"
+ mnc="07"
+ apn="cmwap"
+ user="wap"
+ password="wap"
+ proxy="10.0.0.172"
+ port="80"
+ type="default,supl"
+ />
+
+ <apn carrier="CMCC Internet"
+ mcc="460"
+ mnc="20"
+ apn="cmnet"
+ type="default,supl"
+ />
+
+ <apn carrier="CMCC HTTP"
+ mcc="460"
+ mnc="20"
+ apn="cmwap"
+ user="wap"
+ password="wap"
+ proxy="10.0.0.172"
+ port="80"
+ type="default,supl"
+ />
+
+ <apn carrier="Far EasTone"
+ mcc="466"
+ mnc="01"
+ apn="internet"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="Far EasTone HTTP"
+ mcc="466"
+ mnc="01"
+ apn="fetnet01"
+ proxy="210.241.199.199"
+ port="8080"
+ type="default,supl"
+ />
+
+ <apn carrier="KGT-Online"
+ mcc="466"
+ mnc="88"
+ apn="internet"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="Vibo"
+ mcc="466"
+ mnc="89"
+ apn="vibo"
+ type="default,supl"
+ />
+
+ <apn carrier="Vibo Internet"
+ mcc="466"
+ mnc="89"
+ apn="Internet"
+ type="default,supl"
+ />
+
+ <apn carrier="Aurora Internet"
+ mcc="466"
+ mnc="89"
+ apn="auroraweb"
+ type="default,supl"
+ />
+
+ <apn carrier="Vibo HTTP"
+ mcc="466"
+ mnc="89"
+ apn="vibo"
+ proxy="172.24.128.36"
+ port="8080"
+ type="default,supl"
+ />
+
+ <apn carrier="Aurora HTTP"
+ mcc="466"
+ mnc="89"
+ apn="aurorawap"
+ proxy="172.24.128.36"
+ port="8080"
+ type="default,supl"
+ />
+
+ <apn carrier="Chunghwa"
+ mcc="466"
+ mnc="92"
+ apn="internet"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="Chunghwa emome"
+ mcc="466"
+ mnc="92"
+ apn="emome"
+ type="default,supl"
+ />
+
+ <apn carrier="TWN GSM"
+ mcc="466"
+ mnc="97"
+ apn="internet"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="TWM TCC"
+ mcc="466"
+ mnc="97"
+ apn="twm"
+ type="default,supl"
+ />
+
+ <apn carrier="Maxis Internet"
+ mcc="502"
+ mnc="12"
+ apn="net"
+ user="maxis"
+ password="wap"
+ mmsc="http://172.16.74.100:10021/mmsc"
+ mmsproxy="202.75.133.49"
+ mmsport="80"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="Maxis HTTP"
+ mcc="502"
+ mnc="12"
+ apn="net"
+ user="maxis"
+ password="wap"
+ proxy="202.75.133.49"
+ port="80"
+ mmsc="http://172.16.74.100:10021/mmsc"
+ mmsproxy="202.75.133.49"
+ mmsport="80"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="Maxis(3G) Internet"
+ mcc="502"
+ mnc="12"
+ apn="unet"
+ user="maxis"
+ password="wap"
+ mmsc="http://172.16.74.100:10021/mmsc"
+ mmsproxy="202.75.133.49"
+ mmsport="80"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="Maxis(3G) HTTP"
+ mcc="502"
+ mnc="12"
+ apn="unet"
+ user="maxis"
+ password="wap"
+ proxy="202.75.133.49"
+ port="80"
+ mmsc="http://172.16.74.100:10021/mmsc"
+ mmsproxy="202.75.133.49"
+ mmsport="80"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="Celcom(3G) Internet"
+ mcc="502"
+ mnc="13"
+ apn="celcom3g"
+ mmsc="http://mms.celcom.net.my"
+ mmsproxy="10.128.1.242"
+ mmsport="8080"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="Celcom(3G) HTTP"
+ mcc="502"
+ mnc="13"
+ apn="celcom3g"
+ user="celcom"
+ password="gsm"
+ proxy="10.128.1.242"
+ port="9201"
+ mmsc="http://mms.celcom.net.my"
+ mmsproxy="10.128.1.242"
+ mmsport="8080"
+ type="default,supl,mms"
+ />
+
+ <apn carrier="Digi Internet"
+ mcc="502"
+ mnc="16"
+ apn="diginet"
+ user="digi"
+ password="digi"
+ type="default,supl"
+ />
+
+ <apn carrier="Digi HTTP"
+ mcc="502"
+ mnc="16"
+ apn="digiwap"
+ user="digi"
+ password="digi"
+ proxy="203.92.128.188"
+ port="80"
+ type="default,supl"
+ />
+
+ <apn carrier="Celcom Internet prepaid"
+ mcc="502"
+ mnc="19"
+ apn="celcom"
+ type="default,supl"
+ />
+
+ <apn carrier="Celcom HTTP prepaid"
+ mcc="502"
+ mnc="19"
+ apn="celcom"
+ proxy="10.128.1.242"
+ port="8080"
+ type="default,supl"
+ />
+
+ <apn carrier="Celcom Internet postpaid"
+ mcc="502"
+ mnc="19"
+ apn="celcom.net.my"
+ type="default,supl"
+ />
+
+ <apn carrier="Celcom HTTP postpaid"
+ mcc="502"
+ mnc="19"
+ apn="wap.celcom.net.my"
+ user="celcom"
+ password="gsm"
+ proxy="10.128.1.242"
+ port="8080"
+ type="default,supl"
+ />
+
+ <apn carrier="Telstra Internet"
+ mcc="505"
+ mnc="01"
+ apn="telstra.internet"
+ type="default,supl"
+ />
+
+ <apn carrier="Optus Zoo"
+ mcc="505"
+ mnc="02"
+ apn="wap.optus.net.au"
+ proxy="202.139.83.152"
+ port="8070"
+ type="default,supl"
+ />
+
+ <apn carrier="Optus Streaming"
+ mcc="505"
+ mnc="02"
+ apn="wap.optus.net.au"
+ type="default,supl"
+ />
+
+ <apn carrier="Optus Internet"
+ mcc="505"
+ mnc="02"
+ apn="yesinternet"
+ type="default,supl"
+ />
+
+ <apn carrier="Vodafone AU"
+ mcc="505"
+ mnc="03"
+ apn="live.vodafone.com"
+ type="default,supl"
+ />
+
+ <apn carrier="Mobile Internet"
+ mcc="505"
+ mnc="06"
+ apn="3netaccess"
+ type="default,supl"
+ />
+
+ <apn carrier="3 Services"
+ mcc="505"
+ mnc="06"
+ apn="3services"
+ type="default,supl"
+ />
+
+ <apn carrier="Indosat 3G Internet"
+ mcc="510"
+ mnc="01"
+ apn="indosatgprs"
+ user="indosat"
+ password="indosat"
+ type="default,supl"
+ />
+
+ <apn carrier="AXIS HTTP"
+ mcc="510"
+ mnc="08"
+ apn="AXIS"
+ user="axis"
+ password="123456"
+ proxy="10.8.3.8"
+ port="8080"
+ type="default,supl"
+ />
+
+ <apn carrier="AXIS Internet"
+ mcc="510"
+ mnc="08"
+ apn="AXIS"
+ user="axis"
+ password="123456"
+ type="default,supl"
+ />
+
+ <apn carrier="TSEL-BROADBAND"
+ mcc="510"
+ mnc="10"
+ apn="internet"
+ user="wap"
+ password="wap123"
+ type="default,supl"
+ />
+
+ <apn carrier="TSEL-GPRS"
+ mcc="510"
+ mnc="10"
+ apn="telkomsel"
+ user="wap"
+ password="wap123"
+ proxy="10.1.89.130"
+ port="8000"
+ type="default,supl"
+ />
+
+ <apn carrier="Excelcom Internet"
+ mcc="510"
+ mnc="11"
+ apn="www.xlgprs.net"
+ user="xlgprs"
+ password="proxl"
+ type="default,supl"
+ />
+
+ <apn carrier="Excelcom HTTP"
+ mcc="510"
+ mnc="11"
+ apn="www.xlgprs.net"
+ user="xlgprs"
+ password="proxl"
+ proxy="202.152.240.50"
+ port="8080"
+ type="default,supl"
+ />
+
+ <apn carrier="Indosat 2G HTTP"
+ mcc="510"
+ mnc="21"
+ apn="www.indosat-m3.net"
+ user="gprs"
+ password="im3"
+ proxy="10.19.19.19"
+ port="9201"
+ type="default,supl"
+ />
+
+ <apn carrier="3 HTTP"
+ mcc="510"
+ mnc="89"
+ apn="3gprs"
+ user="3gprs"
+ password="3gprs"
+ proxy=""
+ port=""
+ type="default,supl"
+ />
+
+ <apn carrier="GLOBE Internet prepaid"
+ mcc="515"
+ mnc="02"
+ apn="http.globe.com.ph"
+ type="default,supl"
+ />
+
+ <apn carrier="GLOBE HTTP postpaid"
+ mcc="515"
+ mnc="02"
+ apn="http.globe.com.ph"
+ proxy="203.177.42.214"
+ port="9201"
+ type="default,supl"
+ />
+
+ <apn carrier="GLOBE(3G) Internet postpaid"
+ mcc="515"
+ mnc="02"
+ apn="internet.globe.com.ph"
+ type="default,supl"
+ />
+
+ <apn carrier="GLOBE MMS postpaid"
+ mcc="515"
+ mnc="02"
+ apn="mms.globe.com.ph"
+ mmsc="http://192.40.100.22:10021/mmsc"
+ mmsproxy="192.40.100.20"
+ mmsport="9201"
+ type="default,supl"
+ />
+
+ <apn carrier="GLOBE(3G) Streaming prepaid"
+ mcc="515"
+ mnc="02"
+ apn="real.globe.com.ph"
+ type="default,supl"
+ />
+
+ <apn carrier="GLOBE(3G) HTTP postpaid"
+ mcc="515"
+ mnc="02"
+ apn="www.globe.com.ph"
+ proxy="203.177.42.214"
+ port="9201"
+ type="default,supl"
+ />
+
+ <apn carrier="SMART Internet postpaid"
+ mcc="515"
+ mnc="03"
+ apn="internet"
+ type="default,supl"
+ />
+
+ <apn carrier="SMART HTTP postpaid"
+ mcc="515"
+ mnc="03"
+ apn="smart1"
+ user="smartwap"
+ password="smartwap"
+ proxy="10.102.61.46"
+ port="9201"
+ type="default,supl"
+ />
+
+ <apn carrier="SMART(3G) HTTP prepaid"
+ mcc="515"
+ mnc="03"
+ apn="smart1"
+ user="smartwap"
+ password="smartwap"
+ proxy="10.102.61.46"
+ port="80"
+ type="default,supl"
+ />
+
+ <apn carrier="SMART(3G) HTTP postpaid"
+ mcc="515"
+ mnc="03"
+ apn="smart1"
+ proxy="10.102.61.46"
+ port="9201"
+ type="default,supl"
+ />
+
+ <apn carrier="SUN Internet postpaid"
+ mcc="515"
+ mnc="05"
+ apn="minternet"
+ type="default,supl"
+ />
+
+ <apn carrier="SUN HTTP postpaid"
+ mcc="515"
+ mnc="05"
+ apn="wap"
+ proxy="202.138.159.78"
+ port="9201"
+ type="default,supl"
+ />
+
+ <apn carrier="AIS Internet"
+ mcc="520"
+ mnc="01"
+ apn="internet"
+ type="default,supl"
+ />
+
+ <apn carrier="AIS HTTP"
+ mcc="520"
+ mnc="01"
+ apn="wap"
+ proxy="203.170.229.34"
+ port="9201"
+ type="default,supl"
+ />
+
+ <apn carrier="DTAC HTTP"
+ mcc="520"
+ mnc="18"
+ apn="wap.djuice.co.th"
+ proxy="203.155.200.133"
+ port="9201"
+ type="default,supl"
+ />
+
+ <apn carrier="DTAC Internet"
+ mcc="520"
+ mnc="18"
+ apn="www.dtac.co.th"
+ type="default,supl"
+ />
+
+ <apn carrier="TRUE-H INTERNET"
+ mcc="520"
+ mnc="99"
+ apn="internet"
+ user="true"
+ password="true"
+ type="default,supl"
+ />
+
+ <apn carrier="TRUE HTTP"
+ mcc="520"
+ mnc="99"
+ apn="wap"
+ user="true"
+ password="true"
+ proxy="10.4.4.4"
+ port="8080"
+ type="default,supl"
+ />
+
+ <apn carrier="IDEAS"
+ mcc="525"
+ mnc="01"
+ apn="e-ideas"
+ user="65IDEAS"
+ password="IDEAS"
+ type="default,supl"
+ />
+
+ <apn carrier="hiCard"
+ mcc="525"
+ mnc="01"
+ apn="hicard"
+ type="default,supl"
+ />
+
+ <apn carrier="SingTel HTTP"
+ mcc="525"
+ mnc="02"
+ apn="e-ideas"
+ user="65IDEAS"
+ password="IDEAS"
+ proxy="165.21.42.84"
+ port="8080"
+ type="default,supl"
+ />
+
+ <apn carrier="SingTel HTTP prepaid"
+ mcc="525"
+ mnc="02"
+ apn="e-ideas(s)"
+ user="65ideas"
+ password="ideas"
+ proxy="165.21.42.84"
+ port="8080"
+ type="default,supl"
+ />
+
+ <apn carrier="SingTel Internet prepaid"
+ mcc="525"
+ mnc="02"
+ apn="hicard"
+ type="default,supl"
+ />
+
+ <apn carrier="SingTel Internet"
+ mcc="525"
+ mnc="02"
+ apn="internet"
+ type="default,supl"
+ />
+
+ <apn carrier="Sunsurf Internet"
+ mcc="525"
+ mnc="03"
+ apn="sunsurf"
+ type="default"
+ />
+
+ <apn carrier="Starhub"
+ mcc="525"
+ mnc="05"
+ apn="internet"
+ type="default"
+ />
+
+ <apn carrier="Gee! 3G/GPRS prepaid"
+ mcc="525"
+ mnc="05"
+ apn="shppd"
+ proxy="10.12.1.2"
+ port="80"
+ type="default,supl"
+ />
+
+ <apn carrier="Gee! 3G/GPRS"
+ mcc="525"
+ mnc="05"
+ apn="shwap"
+ type="default,supl"
+ />
+
+ <apn carrier="Vodafone HTTP"
+ mcc="530"
+ mnc="01"
+ apn="live.vodafone.com"
+ proxy="172.30.38.3"
+ port="9201"
+ type="default,supl"
+ />
+
+ <apn carrier="Vodafone Internet"
+ mcc="530"
+ mnc="01"
+ apn="www.vodafone.net.nz"
+ type="default,supl"
+ />
+
+ <apn carrier="TelecomData"
+ mcc="530"
+ mnc="05"
+ apn="internet.telecom.co.nz"
+ type="default,supl"
+ />
+
+ <apn carrier="TelecomDefault"
+ mcc="530"
+ mnc="05"
+ apn="wap.telecom.co.nz"
+ type="default,supl"
+ />
+
+ <apn carrier="TelecomContent"
+ mcc="530"
+ mnc="05"
+ apn="wap.telecom.co.nz"
+ proxy="210.55.11.73"
+ port="8080"
+ type="default,supl"
+ />
+
+ <apn carrier="Mobinil Web"
+ mcc="602"
+ mnc="01"
+ apn="MobinilWeb"
+ type="default,supl"
+ />
+
+ <apn carrier="Mobinil MMS"
+ mcc="602"
+ mnc="01"
+ apn="mobinilmms"
+ mmsc="http://10.7.13.24:8002/"
+ mmsproxy="62.241.155.45"
+ mmsport="8080"
+ type="mms"
+ />
+
+ <apn carrier="VF internet"
+ mcc="602"
+ mnc="02"
+ apn="internet.vodafone.net"
+ user="internet"
+ password="internet"
+ type="default,supl"
+ />
+
+ <apn carrier="VF MMS"
+ mcc="602"
+ mnc="02"
+ apn="mms.vodafone.com.eg"
+ user="mms"
+ password="mms"
+ mmsc="http://mms.vodafone.com.eg/servlets/mms"
+ mmsproxy="163.121.178.2"
+ mmsport="8080"
+ type="mms"
+ />
+
+ <apn carrier="Etisalat internet"
+ mcc="602"
+ mnc="03"
+ apn="Etisalat"
+ type="default,supl"
+ />
+
+ <apn carrier="Etisalat MMS"
+ mcc="602"
+ mnc="03"
+ apn="Etisalat"
+ mmsc="http://10.71.131.7:38090"
+ mmsproxy="10.71.130.29"
+ mmsport="8080"
+ type="mms"
+ />
+
+ <apn carrier="GPRS SRR"
+ mcc="647"
+ mnc="10"
+ apn="wapsfr"
+ user="wap"
+ password="wap"
+ proxy="10.0.224.161"
+ port="8080"
+ type="default,supl"
+ />
+
+ <apn carrier="Vodacom"
+ mcc="655"
+ mnc="01"
+ apn="internet"
+ user="196,006,128,012"
+ password="8080"
+ type="default,supl"
+ />
+
+ <apn carrier="8ta internet"
+ mcc="655"
+ mnc="02"
+ apn="internet"
+ type="default,supl"
+ />
+
+ <apn carrier="Cell C internet"
+ mcc="655"
+ mnc="07"
+ apn="internet"
+ type="default,supl"
+ />
+
+ <apn carrier="MTN internet"
+ mcc="655"
+ mnc="10"
+ apn="internet"
+ type="default,supl"
+ />
+
+ <apn carrier="TIM Connect"
+ mcc="724"
+ mnc="02"
+ apn="tim.br"
+ user="tim"
+ password="tim"
+ mmsc="http://mms.tim.br"
+ mmsproxy="200.179.66.242"
+ mmsport="8080"
+ type="default,mms"
+ />
+
+ <apn carrier="TIM Connect"
+ mcc="724"
+ mnc="03"
+ apn="tim.br"
+ user="tim"
+ password="tim"
+ mmsc="http://mms.tim.br"
+ mmsproxy="200.179.66.242"
+ mmsport="8080"
+ type="default,mms"
+ />
+
+ <apn carrier="TIM Connect"
+ mcc="724"
+ mnc="04"
+ apn="tim.br"
+ user="tim"
+ password="tim"
+ mmsc="http://mms.tim.br"
+ mmsproxy="200.179.66.242"
+ mmsport="8080"
+ type="default,mms"
+ />
+
+ <apn carrier="Claro Dados"
+ mcc="724"
+ mnc="05"
+ apn="claro.com.br"
+ user="claro"
+ password="claro"
+ type="default"
+ />
+
+ <apn carrier="Claro Foto"
+ mcc="724"
+ mnc="05"
+ apn="mms.claro.com.br"
+ user="claro"
+ password="claro"
+ mmsc="http://mms.claro.com.br"
+ mmsproxy="200.169.126.10"
+ mmsport="8799"
+ type="mms"
+ />
+
+ <apn carrier="Vivo MMS"
+ mcc="724"
+ mnc="06"
+ apn="mms.vivo.com.br"
+ user="vivo"
+ password="vivo"
+ mmsc="http://termnat.vivomms.com.br:8088/mms"
+ mmsproxy="200.142.130.104"
+ mmsport="80"
+ type="mms"
+ authtype="3"
+ />
+
+ <apn carrier="Vivo Internet"
+ mcc="724"
+ mnc="06"
+ apn="zap.vivo.com.br"
+ user="vivo"
+ password="vivo"
+ type="default"
+ authtype="3"
+ />
+
+ <apn carrier="SCTL MMS"
+ mcc="724"
+ mnc="07"
+ apn="mms.sercomtel.com.br"
+ user="sercomtel"
+ password="sercomtel"
+ mmsc="http://mms.claro.com.br"
+ mmsproxy="200.169.126.10"
+ mmsport="8799"
+ type="mms"
+ />
+
+ <apn carrier="SCTL GPRS"
+ mcc="724"
+ mnc="07"
+ apn="sercomtel.com.br"
+ user="sercomtel"
+ password="sercomtel"
+ type="default,supl"
+ />
+
+ <apn carrier="Vivo MMS"
+ mcc="724"
+ mnc="10"
+ apn="mms.vivo.com.br"
+ user="vivo"
+ password="vivo"
+ mmsc="http://termnat.vivomms.com.br:8088/mms"
+ mmsproxy="200.142.130.104"
+ mmsport="80"
+ type="mms"
+ authtype="3"
+ />
+
+ <apn carrier="Vivo Internet"
+ mcc="724"
+ mnc="10"
+ apn="zap.vivo.com.br"
+ user="vivo"
+ password="vivo"
+ type="default"
+ authtype="3"
+ />
+
+ <apn carrier="Vivo MMS"
+ mcc="724"
+ mnc="11"
+ apn="mms.vivo.com.br"
+ user="vivo"
+ password="vivo"
+ mmsc="http://termnat.vivomms.com.br:8088/mms"
+ mmsproxy="200.142.130.104"
+ mmsport="80"
+ type="mms"
+ authtype="3"
+ />
+
+ <apn carrier="Vivo Internet"
+ mcc="724"
+ mnc="11"
+ apn="zap.vivo.com.br"
+ user="vivo"
+ password="vivo"
+ type="default"
+ authtype="3"
+ />
+
+ <apn carrier="BrT Modem"
+ mcc="724"
+ mnc="16"
+ apn="brt.br"
+ user="brt"
+ password="brt"
+ type="default,supl"
+ />
+
+ <apn carrier="BrT MMS"
+ mcc="724"
+ mnc="16"
+ apn="mms.brt.br"
+ user="brt"
+ password="brt"
+ mmsc="http://mms.brasiltelecom.com.br/"
+ mmsproxy="200.96.8.29"
+ mmsport="8080"
+ type="mms"
+ />
+
+ <apn carrier="TelemigC GPRS"
+ mcc="724"
+ mnc="19"
+ apn="gprs.telemigcelular.com.br"
+ user="celular"
+ password="celular"
+ type="default,supl"
+ />
+
+ <apn carrier="MMS Telemig"
+ mcc="724"
+ mnc="19"
+ apn="mmsgprs.telemigcelular.com.br"
+ user="celular"
+ password="celular"
+ mmsc="http://mms.telemigcelular.com.br"
+ mmsproxy="200.192.230.142"
+ mmsport="8080"
+ type="mms"
+ />
+
+ <apn carrier="Vivo MMS"
+ mcc="724"
+ mnc="23"
+ apn="mms.vivo.com.br"
+ user="vivo"
+ password="vivo"
+ mmsc="http://termnat.vivomms.com.br:8088/mms"
+ mmsproxy="200.142.130.104"
+ mmsport="80"
+ type="mms"
+ authtype="3"
+ />
+
+ <apn carrier="Vivo Internet"
+ mcc="724"
+ mnc="23"
+ apn="zap.vivo.com.br"
+ user="vivo"
+ password="vivo"
+ type="default"
+ authtype="3"
+ />
+
+ <apn carrier="AmazôniaC MMS"
+ mcc="724"
+ mnc="24"
+ apn="mmsgprs.amazoniacelular.com.br"
+ user="celular"
+ password="celular"
+ mmsc="http://mms.amazoniacelular.com.br"
+ mmsproxy="200.192.230.142"
+ mmsport="8080"
+ type="mms"
+ />
+
+ <apn carrier="OI Dados"
+ mcc="724"
+ mnc="31"
+ apn="gprs.oi.com.br"
+ user="oi"
+ password="oi"
+ type="default"
+ />
+
+ <apn carrier="OI MMS"
+ mcc="724"
+ mnc="31"
+ apn="mmsgprs.oi.com.br"
+ user="oimms"
+ password="oimms"
+ mmsc="http://200.222.42.204:8002"
+ mmsproxy="192.168.10.50"
+ mmsport="3128"
+ type="mms"
+ />
+
+</apns>
diff --git a/device.mk b/device.mk
new file mode 100644
index 0000000..fbef130
--- /dev/null
+++ b/device.mk
@@ -0,0 +1,275 @@
+#
+# Copyright (C) 2011 The Android Open-Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# This file includes all definitions that apply to ALL msm8960 devices, and
+# are also specific to msm8960 devices
+#
+# Everything in this directory will become public
+
+DEVICE_PACKAGE_OVERLAYS := device/qcom/flo/overlay
+
+LOCAL_KERNEL := device/asus/flo-kernel/kernel
+
+PRODUCT_COPY_FILES := \
+ $(LOCAL_KERNEL):kernel
+
+# This device is xhdpi. However the platform doesn't
+# currently contain all of the bitmaps at xhdpi density so
+# we do this little trick to fall back to the hdpi version
+# if the xhdpi doesn't exist.
+PRODUCT_AAPT_CONFIG := normal hdpi xhdpi
+PRODUCT_AAPT_PREF_CONFIG := xhdpi
+
+PRODUCT_PACKAGES := \
+ lights.msm8960
+
+PRODUCT_PACKAGES += \
+ charger_res_images \
+ charger
+
+# Live Wallpapers
+PRODUCT_PACKAGES += \
+ LiveWallpapers \
+ LiveWallpapersPicker \
+ VisualizationWallpapers \
+ librs_jni
+
+PRODUCT_COPY_FILES += \
+ device/asus/flo/WCNSS_cfg.dat:system/vendor/firmware/wlan/prima/WCNSS_cfg.dat \
+ device/asus/flo/WCNSS_qcom_cfg.ini:system/etc/wifi/WCNSS_qcom_cfg.ini \
+ device/asus/flo/WCNSS_qcom_wlan_nv.bin:system/etc/wifi/WCNSS_qcom_wlan_nv.bin
+
+PRODUCT_COPY_FILES += \
+ device/asus/flo/snd_soc_msm_2x_Fusion3:system/etc/snd_soc_msm/snd_soc_msm_2x_Fusion3 \
+ device/asus/flo/snd_soc_msm_2x_Fusion3:system/etc/snd_soc_msm/snd_soc_msm_2x \
+ device/asus/flo/audio_policy.conf:system/etc/audio_policy.conf
+
+PRODUCT_COPY_FILES += \
+ device/asus/flo/thermald-flo.conf:system/etc/thermald.conf
+
+PRODUCT_COPY_FILES += \
+ device/asus/flo/init.flo.rc:root/init.flo.rc \
+ device/asus/flo/init.flo.usb.rc:root/init.flo.usb.rc \
+ device/asus/flo/fstab.flo:root/fstab.flo \
+ device/asus/flo/ueventd.flo.rc:root/ueventd.flo.rc \
+ device/asus/flo/media_profiles.xml:system/etc/media_profiles.xml \
+ device/asus/flo/media_codecs.xml:system/etc/media_codecs.xml
+
+PRODUCT_COPY_FILES += \
+ device/asus/flo/kickstart_checker.sh:system/etc/kickstart_checker.sh
+
+# Prebuilt kl and kcm keymaps
+PRODUCT_COPY_FILES += \
+ device/asus/flo/apq8064-tabla-snd-card_Button_Jack.kl:system/usr/keylayout/apq8064-tabla-snd-card_Button_Jack.kl \
+ device/asus/flo/hs_detect.kl:system/usr/keylayout/hs_detect.kl \
+ device/asus/flo/pmic8xxx_pwrkey.kl:system/usr/keylayout/pmic8xxx_pwrkey.kl \
+ device/asus/flo/keypad_8064.kl:system/usr/keylayout/keypad_8064.kl \
+ device/asus/flo/apq8064-tabla-snd-card_Button_Jack.kcm:system/usr/keychars/apq8064-tabla-snd-card_Button_Jack.kcm \
+ device/asus/flo/hs_detect.kcm:system/usr/keychars/hs_detect.kcm \
+ device/asus/flo/keypad_8064.kcm:system/usr/keychars/keypad_8064.kcm \
+ device/asus/flo/pmic8xxx_pwrkey.kcm:system/usr/keychars/pmic8xxx_pwrkey.kcm
+
+# Prebuilt input device calibration files
+PRODUCT_COPY_FILES += \
+ device/asus/flo/touch_dev.idc:system/usr/idc/touch_dev.idc
+
+# TP idc file
+PRODUCT_COPY_FILES += \
+ device/asus/flo/elan-touchscreen.idc:system/usr/idc/elan-touchscreen.idc
+
+# These are the hardware-specific features
+PRODUCT_COPY_FILES += \
+ frameworks/native/data/etc/handheld_core_hardware.xml:system/etc/permissions/handheld_core_hardware.xml \
+ frameworks/native/data/etc/android.hardware.camera.flash-autofocus.xml:system/etc/permissions/android.hardware.camera.flash-autofocus.xml \
+ frameworks/native/data/etc/android.hardware.camera.front.xml:system/etc/permissions/android.hardware.camera.front.xml \
+ frameworks/native/data/etc/android.hardware.location.gps.xml:system/etc/permissions/android.hardware.location.gps.xml \
+ frameworks/native/data/etc/android.hardware.wifi.xml:system/etc/permissions/android.hardware.wifi.xml \
+ frameworks/native/data/etc/android.hardware.wifi.direct.xml:system/etc/permissions/android.hardware.wifi.direct.xml \
+ frameworks/native/data/etc/android.hardware.sensor.proximity.xml:system/etc/permissions/android.hardware.sensor.proximity.xml \
+ frameworks/native/data/etc/android.hardware.sensor.light.xml:system/etc/permissions/android.hardware.sensor.light.xml \
+ frameworks/native/data/etc/android.hardware.sensor.gyroscope.xml:system/etc/permissions/android.hardware.sensor.gyroscope.xml \
+ frameworks/native/data/etc/android.hardware.sensor.barometer.xml:system/etc/permissions/android.hardware.sensor.barometer.xml \
+ frameworks/native/data/etc/android.hardware.touchscreen.multitouch.jazzhand.xml:system/etc/permissions/android.hardware.touchscreen.multitouch.jazzhand.xml \
+ frameworks/native/data/etc/android.software.sip.voip.xml:system/etc/permissions/android.software.sip.voip.xml \
+ frameworks/native/data/etc/android.hardware.usb.accessory.xml:system/etc/permissions/android.hardware.usb.accessory.xml \
+ frameworks/native/data/etc/android.hardware.telephony.gsm.xml:system/etc/permissions/android.hardware.telephony.gsm.xml \
+ frameworks/native/data/etc/android.hardware.audio.low_latency.xml:system/etc/permissions/android.hardware.audio.low_latency.xml
+
+# GPS configuration
+PRODUCT_COPY_FILES += \
+ device/asus/flo/gps.conf:system/etc/gps.conf
+
+PRODUCT_PROPERTY_OVERRIDES += \
+ ro.opengles.version=131072
+
+PRODUCT_PROPERTY_OVERRIDES += \
+ ro.sf.lcd_density=320
+
+# Audio Configuration
+PRODUCT_PROPERTY_OVERRIDES += \
+ persist.audio.handset.mic=dmic \
+ persist.audio.fluence.mode=endfire \
+ persist.audio.lowlatency.rec=false \
+ af.resampler.quality=4
+
+# Do not power down SIM card when modem is sent to Low Power Mode.
+PRODUCT_PROPERTY_OVERRIDES += \
+ persist.radio.apm_sim_not_pwdn=1
+
+# Ril sends only one RIL_UNSOL_CALL_RING, so set call_ring.multiple to false
+PRODUCT_PROPERTY_OVERRIDES += \
+ ro.telephony.call_ring.multiple=0
+
+# Kickstart
+PRODUCT_PACKAGES += \
+ qcks \
+ ks \
+ efsks
+
+#Stop rild if non 3G SKU
+PRODUCT_PACKAGES += \
+ init.qcom.class_main.sh
+
+#Upto 3 layers can go through overlays
+PRODUCT_PROPERTY_OVERRIDES += debug.mdpcomp.maxlayer=3
+
+PRODUCT_CHARACTERISTICS := nosdcard
+
+PRODUCT_TAGS += dalvik.gc.type-precise
+
+PRODUCT_PACKAGES += \
+ librs_jni \
+ com.android.future.usb.accessory
+
+# Filesystem management tools
+PRODUCT_PACKAGES += \
+ e2fsck \
+ setup_fs
+
+PRODUCT_PACKAGES += \
+ libgenlock \
+ liboverlay \
+ hwcomposer.msm8960 \
+ gralloc.msm8960 \
+ copybit.msm8960
+
+PRODUCT_PACKAGES += \
+ alsa.msm8960 \
+ audio_policy.msm8960 \
+ audio.primary.msm8960 \
+ audio.a2dp.default \
+ audio.usb.default \
+ audio.r_submix.default \
+ libaudio-resampler
+
+PRODUCT_PACKAGES += \
+ hci_qcomm_init
+
+PRODUCT_PACKAGES += \
+ power.msm8960
+
+PRODUCT_COPY_FILES += \
+ device/asus/flo/init.flo.bt.sh:system/etc/init.flo.bt.sh
+
+PRODUCT_PROPERTY_OVERRIDES += \
+ ro.qualcomm.bt.hci_transport=smd
+
+PRODUCT_PACKAGES += \
+ camera.msm8960 \
+ libmmcamera_interface2 \
+ libmmcamera_interface
+
+PRODUCT_PACKAGES += \
+ mm-vdec-omx-test \
+ mm-venc-omx-test720p \
+ libdivxdrmdecrypt \
+ libOmxVdec \
+ libOmxVenc \
+ libOmxCore \
+ libstagefrighthw \
+ libc2dcolorconvert
+
+PRODUCT_PACKAGES += \
+ libloc_adapter \
+ libloc_eng \
+ libloc_api_v02 \
+ libgps.utils \
+ gps.msm8960
+
+PRODUCT_PACKAGES += \
+ bdAddrLoader \
+ libwfcu \
+ conn_init \
+ charger_touch
+
+PRODUCT_DEFAULT_PROPERTY_OVERRIDES += \
+ rild.libpath=/system/lib/libril-qc-qmi-1.so
+
+PRODUCT_PROPERTY_OVERRIDES += \
+ telephony.lteOnCdmaDevice=0
+
+PRODUCT_PROPERTY_OVERRIDES += \
+ drm.service.enabled=true
+
+PRODUCT_PROPERTY_OVERRIDES += \
+ wifi.interface=wlan0 \
+ wifi.supplicant_scan_interval=15
+
+# Enable AAC 5.1 output
+PRODUCT_PROPERTY_OVERRIDES += \
+ media.aac_51_output_enabled=true
+
+PRODUCT_PROPERTY_OVERRIDES += \
+ debug.prerotation.disable=1
+
+PRODUCT_PROPERTY_OVERRIDES += \
+ debug.egl.recordable.rgba8888=1
+
+# for bugmailer
+PRODUCT_PACKAGES += send_bug
+PRODUCT_COPY_FILES += \
+ system/extras/bugmailer/bugmailer.sh:system/bin/bugmailer.sh \
+ system/extras/bugmailer/send_bug:system/bin/send_bug
+
+
+# NFC packages
+PRODUCT_PACKAGES += \
+ libnfc-nci \
+ libnfc_nci_jni \
+ nfc_nci.msm8960 \
+ NfcNci \
+ Tag \
+ com.android.nfc_extras
+
+# NFCEE access control
+ifeq ($(TARGET_BUILD_VARIANT),user)
+ NFCEE_ACCESS_PATH := device/asus/flo/nfc/nfcee_access.xml
+else
+ NFCEE_ACCESS_PATH := device/asus/flo/nfc/nfcee_access_debug.xml
+endif
+
+PRODUCT_COPY_FILES += \
+ $(NFCEE_ACCESS_PATH):system/etc/nfcee_access.xml \
+ frameworks/native/data/etc/com.android.nfc_extras.xml:system/etc/permissions/com.android.nfc_extras.xml \
+ frameworks/native/data/etc/android.hardware.nfc.xml:system/etc/permissions/android.hardware.nfc.xml \
+ device/asus/flo/nfc/libnfc-brcm.conf:system/etc/libnfc-brcm.conf \
+ device/asus/flo/nfc/BCM20791B4_002.005.010.0031.0033.ncd:system/vendor/firmware/bcm2079x_pre_firmware.ncd \
+ device/asus/flo/nfc/BCM20791B4_002.005.010.0031.0034.ncd:system/vendor/firmware/bcm2079x_firmware.ncd
+
+PRODUCT_LOCALES := en_US es_US de_DE zh_CN
+
+$(call inherit-product, frameworks/native/build/tablet-7in-hdpi-1024-dalvik-heap.mk)
+$(call inherit-product, hardware/qcom/msm8960/msm8960.mk)
diff --git a/dumpstate/Android.mk b/dumpstate/Android.mk
new file mode 100644
index 0000000..a21a47d
--- /dev/null
+++ b/dumpstate/Android.mk
@@ -0,0 +1,26 @@
+# Copyright (C) 2011 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+LOCAL_PATH:= $(call my-dir)
+include $(CLEAR_VARS)
+
+LOCAL_C_INCLUDES := frameworks/native/cmds/dumpstate
+
+LOCAL_SRC_FILES := dumpstate.c
+
+LOCAL_MODULE := libdumpstate.flo
+
+LOCAL_MODULE_TAGS := optional
+
+include $(BUILD_STATIC_LIBRARY)
diff --git a/dumpstate/NOTICE b/dumpstate/NOTICE
new file mode 100644
index 0000000..a303bd0
--- /dev/null
+++ b/dumpstate/NOTICE
@@ -0,0 +1,190 @@
+
+ Copyright (C) 2011 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+
+ 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.
+
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
diff --git a/dumpstate/dumpstate.c b/dumpstate/dumpstate.c
new file mode 100644
index 0000000..36a1540
--- /dev/null
+++ b/dumpstate/dumpstate.c
@@ -0,0 +1,23 @@
+/*
+ * 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.
+ */
+
+#include <dumpstate.h>
+
+void dumpstate_board()
+{
+ dump_file("INTERRUPTS", "/proc/interrupts");
+ run_command("MODEM TOMBSTONES", 5, SU_PATH, "root", "ls", "-l", "/data/tombstones/mdm", NULL);
+};
diff --git a/egl.cfg b/egl.cfg
new file mode 100644
index 0000000..303d812
--- /dev/null
+++ b/egl.cfg
@@ -0,0 +1,2 @@
+0 0 android
+0 1 adreno200
diff --git a/elan-touchscreen.idc b/elan-touchscreen.idc
new file mode 100755
index 0000000..5b4e2e0
--- /dev/null
+++ b/elan-touchscreen.idc
@@ -0,0 +1,38 @@
+# 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.
+
+#
+# Input Device Configuration File for the ELAN touch panel device.
+#
+# These calibration values are derived from empirical measurements
+# and may not be appropriate for use with other touch screens.
+# Refer to the input device configuration documentation for more details.
+#
+
+# Basic Parameters
+touch.deviceType = touchScreen
+touch.orientationAware = 1
+
+# Size
+touch.size.calibration = area
+touch.size.scale = 36
+touch.size.bias = 0
+
+# Pressure
+touch.pressure.calibration = amplitude
+touch.pressure.scale = 0.0048
+
+# Orientation
+touch.orientation.calibration = none
+
diff --git a/factory-images/generate-factory-images-package.sh b/factory-images/generate-factory-images-package.sh
new file mode 100755
index 0000000..ace693a
--- /dev/null
+++ b/factory-images/generate-factory-images-package.sh
@@ -0,0 +1,29 @@
+#!/bin/sh
+
+# Copyright 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.
+
+# start jb-mr1-dev
+# 477685 = JOO88
+# end jb-mr1-dev
+
+source ../../../common/clear-factory-images-variables.sh
+BUILD=477685
+DEVICE=msm8960
+PRODUCT=
+VERSION=joo88
+#SRCPREFIX=signed-
+BOOTLOADER=msm8960z09o
+RADIO=m9615a-cefwmazm-2.0.1700.16
+source ../../../common/generate-factory-images-common.sh
diff --git a/fstab.flo b/fstab.flo
new file mode 100644
index 0000000..7385167
--- /dev/null
+++ b/fstab.flo
@@ -0,0 +1,10 @@
+# Android fstab file.
+#<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
+# The filesystem that contains the filesystem checker binary (typically /system) cannot
+# specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK
+
+/dev/block/platform/msm_sdcc.1/by-name/system /system ext4 ro,barrier=1 wait
+/dev/block/platform/msm_sdcc.1/by-name/radio /firmware vfat ro,uid=1000,gid=1000,dmask=227,fmask=337 wait
+/dev/block/platform/msm_sdcc.1/by-name/cache /cache ext4 noatime,nosuid,nodev,barrier=1,data=ordered wait,check
+/dev/block/platform/msm_sdcc.1/by-name/userdata /data ext4 noatime,nosuid,nodev,barrier=1,data=ordered,noauto_da_alloc wait,check,encryptable=/dev/block/platform/msm_sdcc.1/by-name/metadata
+/dev/block/platform/msm_sdcc.1/by-name/persist /persist ext4 ro,nosuid,nodev,barrier=1,data=ordered,nodelalloc wait
diff --git a/full_flo.mk b/full_flo.mk
new file mode 100644
index 0000000..fcbc451
--- /dev/null
+++ b/full_flo.mk
@@ -0,0 +1,36 @@
+#
+# Copyright 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.
+#
+
+# Sample: This is where we'd set a backup provider if we had one
+# $(call inherit-product, device/sample/products/backup_overlay.mk)
+
+# Get the long list of APNs
+PRODUCT_COPY_FILES := device/asus/flo/data/etc/apns-conf.xml:system/etc/apns-conf.xml
+
+# Inherit from the common Open Source product configuration
+$(call inherit-product, $(SRC_TARGET_DIR)/product/full_base_telephony.mk)
+
+PRODUCT_NAME := full_flo
+PRODUCT_DEVICE := flo
+PRODUCT_BRAND := Android
+PRODUCT_MODEL := Full JellyBean on Flo
+PRODUCT_MANUFACTURER := ASUS
+PRODUCT_RESTRICT_VENDOR_FILES := true
+
+# Inherit from hardware-specific part of the product configuration
+$(call inherit-product, device/asus/flo/device.mk)
+$(call inherit-product-if-exists, vendor/asus/flo/device-vendor.mk)
+#$(call inherit-product-if-exists, vendor/qcom/proprietary/common/config/device-vendor.mk)
diff --git a/gps.conf b/gps.conf
new file mode 100644
index 0000000..f3c2ff1
--- /dev/null
+++ b/gps.conf
@@ -0,0 +1,84 @@
+XTRA_SERVER_1=http://xtra1.gpsonextra.net/xtra2.bin
+XTRA_SERVER_2=http://xtra2.gpsonextra.net/xtra2.bin
+XTRA_SERVER_3=http://xtra3.gpsonextra.net/xtra2.bin
+
+# DEBUG LEVELS: 0 - none, 1 - Error, 2 - Warning, 3 - Info
+# 4 - Debug, 5 - Verbose
+DEBUG_LEVEL = 3
+
+# Intermediate position report, 1=enable, 0=disable
+INTERMEDIATE_POS=0
+
+# supl version 1.0
+SUPL_VER=0x10000
+
+# Error Estimate
+# _SET = 1
+# _CLEAR = 0
+ERR_ESTIMATE=0
+
+# GPS Capabilities bit mask
+# SCHEDULING = 1
+# MSB = 2
+# MSA = 4
+# ULP = 0x20
+# default = MSA | MSB | SCHEDULING | ULP
+CAPABILITIES=0x07
+
+# Accuracy threshold for intermediate positions
+# less accurate positions are ignored, 0 for passing all positions
+# ACCURACY_THRES=5000
+
+################################
+##### AGPS server settings #####
+################################
+
+# FOR SUPL SUPPORT, set the following
+# SUPL_HOST=supl.host.com or IP
+# SUPL_PORT=1234
+SUPL_HOST=supl.google.com
+SUPL_PORT=7276
+
+# FOR C2K PDE SUPPORT, set the following
+# C2K_HOST=c2k.pde.com or IP
+# C2K_PORT=1234
+
+################################
+# Sensor Settings
+################################
+
+# Needs to be set explicitly based on sensor
+# There is no default value.
+#GYRO_BIAS_RANDOM_WALK=
+
+SENSOR_ACCEL_BATCHES_PER_SEC=2
+SENSOR_ACCEL_SAMPLES_PER_BATCH=5
+SENSOR_GYRO_BATCHES_PER_SEC=2
+SENSOR_GYRO_SAMPLES_PER_BATCH=5
+
+# Sensor Control Mode (0=AUTO, 1=FORCE_ON)
+SENSOR_CONTROL_MODE=0
+
+# Enable or Disable Sensors for GPS use (0=Enable, 1=Disable)
+SENSOR_USAGE=1
+
+# Choose GSIFF sensor provider (1=DSPS, 2=Android NDK)
+SENSOR_PROVIDER=1
+
+################################
+# Indoor Positioning Settings
+################################
+# 0: QUIPC disabled, 1: QUIPC enabled, 2: forced QUIPC only
+QUIPC_ENABLED = 0
+
+################################
+# EXTRA SETTINGS
+################################
+# Enable or Disable Wiper (1=Enable, 0=Disable)
+ENABLE_WIPER=0
+
+####################################
+# LTE Positioning Profile Settings
+####################################
+# 0: Enable RRLP on LTE(Default) 1: Enable LPP_User_Plane on LTE
+LPP_PROFILE = 0
diff --git a/hs_detect.kcm b/hs_detect.kcm
new file mode 100644
index 0000000..7ee6e5a
--- /dev/null
+++ b/hs_detect.kcm
@@ -0,0 +1,15 @@
+# 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.
+
+type SPECIAL_FUNCTION
diff --git a/hs_detect.kl b/hs_detect.kl
new file mode 100644
index 0000000..7fb56ab
--- /dev/null
+++ b/hs_detect.kl
@@ -0,0 +1,4 @@
+key 226 HEADSETHOOK WAKE
+key 116 POWER WAKE
+key 107 ENDCALL WAKE_DROPPED
+
diff --git a/init.flo.bt.sh b/init.flo.bt.sh
new file mode 100644
index 0000000..a8100be
--- /dev/null
+++ b/init.flo.bt.sh
@@ -0,0 +1,76 @@
+#!/system/bin/sh
+
+BLUETOOTH_SLEEP_PATH=/proc/bluetooth/sleep/proto
+LOG_TAG="msm8960-bluetooth"
+LOG_NAME="${0}:"
+
+loge ()
+{
+ /system/bin/log -t $LOG_TAG -p e "$LOG_NAME $@"
+}
+
+logi ()
+{
+ /system/bin/log -t $LOG_TAG -p i "$LOG_NAME $@"
+}
+
+failed ()
+{
+ loge "$1: exit code $2"
+ exit $2
+}
+
+# Note that "hci_qcomm_init -e" prints expressions to set the shell variables
+# BTS_DEVICE, BTS_TYPE, BTS_BAUD, and BTS_ADDRESS.
+
+POWER_CLASS=`getprop qcom.bt.dev_power_class`
+TRANSPORT=`getprop ro.qualcomm.bt.hci_transport`
+DUTADDR=`getprop net.btdut.address`
+
+#find the transport type
+logi "Transport : $TRANSPORT"
+logi "DUTADDR : $DUTADDR"
+
+#load bd addr
+if [$DUTADDR == ""]
+then
+BDADDR=`/system/bin/bdAddrLoader -f /persist/bluetooth/.bdaddr -h -x`
+else
+BDADDR=`/system/bin/bdAddrLoader -p net.btdut.address -s -x`
+fi
+
+setprop bluetooth.status off
+
+logi "BDADDR: $BDADDR"
+
+case $POWER_CLASS in
+ 1) PWR_CLASS="-p 0" ;
+ logi "Power Class: 1";;
+ 2) PWR_CLASS="-p 1" ;
+ logi "Power Class: 2";;
+ 3) PWR_CLASS="-p 2" ;
+ logi "Power Class: CUSTOM";;
+ *) PWR_CLASS="";
+ logi "Power Class: Ignored. Default(1) used (1-CLASS1/2-CLASS2/3-CUSTOM)";
+ logi "Power Class: To override, Before turning BT ON; setprop qcom.bt.dev_power_class <1 or 2 or 3>";;
+esac
+
+if [$BDADDR == ""]
+then
+logwrapper /system/bin/hci_qcomm_init -e $PWR_CLASS -vv
+else
+logwrapper /system/bin/hci_qcomm_init -b $BDADDR -e $PWR_CLASS -vv
+fi
+
+case $? in
+ 0) logi "Bluetooth QSoC firmware download succeeded, $PWR_CLASS $BDADDR $TRANSPORT";;
+ *) failed "Bluetooth QSoC firmware download failed" $exit_code_hci_qcomm_init;
+ setprop bluetooth.status off;
+ exit $exit_code_hci_qcomm_init;;
+esac
+
+setprop bluetooth.status on
+
+logi "start bluetooth smd transport"
+
+exit 0
diff --git a/init.flo.rc b/init.flo.rc
new file mode 100644
index 0000000..6e034a8
--- /dev/null
+++ b/init.flo.rc
@@ -0,0 +1,470 @@
+#
+# Copyright 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.
+#
+
+import init.flo.usb.rc
+
+on early-init
+ mount debugfs debugfs /sys/kernel/debug
+ symlink /data/tombstones /tombstones
+
+on init
+ # See storage config details at http://source.android.com/tech/storage/
+ mkdir /mnt/shell/emulated 0700 shell shell
+ mkdir /storage/emulated 0555 root root
+
+ export EXTERNAL_STORAGE /storage/emulated/legacy
+ export EMULATED_STORAGE_SOURCE /mnt/shell/emulated
+ export EMULATED_STORAGE_TARGET /storage/emulated
+
+ # Support legacy paths
+ symlink /storage/emulated/legacy /sdcard
+ symlink /storage/emulated/legacy /mnt/sdcard
+ symlink /storage/emulated/legacy /storage/sdcard0
+ symlink /mnt/shell/emulated/0 /storage/emulated/legacy
+
+on init
+ # Set permissions for persist partition
+ mkdir /persist 0771 system system
+ mkdir /firmware 0771 system system
+
+on fs
+ mount_all ./fstab.flo
+ setprop ro.crypto.fuse_sdcard true
+
+on early-boot
+ # set RLIMIT_MEMLOCK to 64MB
+ setrlimit 8 67108864 67108864
+
+on boot
+ #Create QMUX deamon socket area
+ mkdir /dev/socket/qmux_radio 0770 radio radio
+ chmod 2770 /dev/socket/qmux_radio
+ mkdir /dev/socket/qmux_audio 0770 media audio
+ chmod 2770 /dev/socket/qmux_audio
+ mkdir /dev/socket/qmux_bluetooth 0770 bluetooth bluetooth
+ chmod 2770 /dev/socket/qmux_bluetooth
+ mkdir /dev/socket/qmux_gps 0770 gps gps
+ chmod 2770 /dev/socket/qmux_gps
+
+ # Allow QMUX daemon to assign port open wait time
+ chown radio radio /sys/devices/virtual/hsicctl/hsicctl0/modem_wait
+
+ #Remove SUID bit for iproute2 ip tool
+ chmod 0755 /system/bin/ip
+
+ #port-bridge
+ chmod 0660 /dev/smd0
+ chown system system /dev/smd0
+
+ #BT DUN port-bridge
+ chmod 0660 /dev/smd7
+ chown bluetooth bluetooth /dev/smd7
+
+ chmod 0444 /sys/devices/platform/msm_hsusb/gadget/usb_state
+
+ # create symlink for fb1 as HDMI
+ symlink /dev/graphics/fb1 /dev/graphics/hdmi
+
+ # Remove write permissions to video related nodes
+ chmod 0664 /sys/devices/virtual/graphics/fb1/hpd
+ chmod 0664 /sys/devices/virtual/graphics/fb1/video_mode
+ chmod 0664 /sys/devices/virtual/graphics/fb1/format_3d
+
+ # Change owner and group for media server and surface flinger
+ chown system system /sys/devices/virtual/graphics/fb1/format_3d
+ chown system system /sys/devices/virtual/graphics/fb1/hpd
+
+ #For bridgemgr daemon to inform the USB driver of the correct transport
+ chown radio radio /sys/class/android_usb/f_rmnet_smd_sdio/transport
+
+ chmod 660 /dev/rtc0
+ chown system system /dev/rtc0
+
+ chown root system /proc/net/ip_conntrack
+
+ # Enable DEBUG_SUSPEND, DEBUG_EXIT_SUSPEND, and DEBUG_WAKEUP
+ write /sys/module/wakelock/parameters/debug_mask 7
+
+ #To allow interfaces to get v6 address when tethering is enabled
+ write /proc/sys/net/ipv6/conf/rmnet0/accept_ra 2
+ write /proc/sys/net/ipv6/conf/rmnet1/accept_ra 2
+ write /proc/sys/net/ipv6/conf/rmnet2/accept_ra 2
+ write /proc/sys/net/ipv6/conf/rmnet3/accept_ra 2
+ write /proc/sys/net/ipv6/conf/rmnet4/accept_ra 2
+ write /proc/sys/net/ipv6/conf/rmnet5/accept_ra 2
+ write /proc/sys/net/ipv6/conf/rmnet6/accept_ra 2
+ write /proc/sys/net/ipv6/conf/rmnet7/accept_ra 2
+ write /proc/sys/net/ipv6/conf/rmnet_sdio0/accept_ra 2
+ write /proc/sys/net/ipv6/conf/rmnet_sdio1/accept_ra 2
+ write /proc/sys/net/ipv6/conf/rmnet_sdio2/accept_ra 2
+ write /proc/sys/net/ipv6/conf/rmnet_sdio3/accept_ra 2
+ write /proc/sys/net/ipv6/conf/rmnet_sdio4/accept_ra 2
+ write /proc/sys/net/ipv6/conf/rmnet_sdio5/accept_ra 2
+ write /proc/sys/net/ipv6/conf/rmnet_sdio6/accept_ra 2
+ write /proc/sys/net/ipv6/conf/rmnet_sdio7/accept_ra 2
+
+
+# NFC: create data/nfc for nv storage
+ mkdir /data/nfc 770 nfc nfc
+ mkdir /data/nfc/param 770 nfc nfc
+
+# Assign TCP buffer thresholds to be ceiling value of technology maximums
+# Increased technology maximums should be reflected here.
+ write /proc/sys/net/core/rmem_max 1220608
+ write /proc/sys/net/core/wmem_max 1220608
+
+# msm specific files that need to be created on /data
+on post-fs-data
+ mkdir /data/media 0770 media_rw media_rw
+
+ # Create the directories used by the Wireless subsystem
+ mkdir /data/misc/wifi 0770 wifi wifi
+ mkdir /data/misc/wifi/sockets 0770 wifi wifi
+ mkdir /data/misc/wifi/wpa_supplicant 0770 wifi wifi
+ mkdir /data/misc/dhcp 0770 dhcp dhcp
+
+ mkdir /data/tombstones 0771 system system
+ mkdir /tombstones/modem 0771 system system
+ mkdir /tombstones/lpass 0771 system system
+ mkdir /tombstones/wcnss 0771 system system
+ mkdir /tombstones/dsps 0771 system system
+ mkdir /tombstones/mdm 0771 system system
+
+# to observe dnsmasq.leases file for dhcp information of soft ap.
+ chown dhcp system /data/misc/dhcp
+
+ write /dev/wcnss_wlan 1
+ write /sys/module/wcnss_ssr_8960/parameters/enable_riva_ssr 1
+
+ # Create directory used by audio subsystem
+ mkdir /data/misc/audio 0770 audio audio
+
+ # Workaround for conn_init not copying the updated firmware
+ rm /data/misc/wifi/WCNSS_qcom_cfg.ini
+ rm /data/misc/wifi/WCNSS_qcom_wlan_nv.bin
+
+ # Mounting of persist is moved to 'on emmc-fs' and 'on fs' sections
+ # We chown/chmod /persist again so because mount is run as root + defaults
+ chown system system /persist
+ chmod 0664 /sys/devices/platform/msm_sdcc.1/polling
+ chmod 0664 /sys/devices/platform/msm_sdcc.2/polling
+ chmod 0664 /sys/devices/platform/msm_sdcc.3/polling
+ chmod 0664 /sys/devices/platform/msm_sdcc.4/polling
+
+ # Chown polling nodes as needed from UI running on system server
+ chown system system /sys/devices/platform/msm_sdcc.1/polling
+ chown system system /sys/devices/platform/msm_sdcc.2/polling
+ chown system system /sys/devices/platform/msm_sdcc.3/polling
+ chown system system /sys/devices/platform/msm_sdcc.4/polling
+
+ #Create the symlink to qcn wpa_supplicant folder for ar6000 wpa_supplicant
+ mkdir /data/system 0775 system system
+ #symlink /data/misc/wifi/wpa_supplicant /data/system/wpa_supplicant
+
+ #Create directory used by sensor subsystem(dsps)
+ mkdir /data/system/sensors
+ chmod 665 /data/system/sensors
+ write /data/system/sensors/settings 1
+ chmod 660 /data/system/sensors/settings
+
+ # AKM setting data
+ mkdir /data/misc/sensors
+ chmod 775 /data/misc/sensors
+
+ mkdir /persist/sensors
+ chmod 775 /persist/sensors
+
+ #Provide the access to hostapd.conf only to root and group
+ chmod 0660 /data/hostapd/hostapd.conf
+
+ # Enable the setgid bit on the directory
+ mkdir /data/audio 0770 media audio
+ chmod 2770 /data/audio
+
+ # kickstart
+ mkdir /data/qcks 0770 system system
+ chown system /dev/block/platform/msm_sdcc.1/by-name
+
+ setprop vold.post_fs_data_done 1
+
+ rm /data/local/tmp/adreno_config.txt
+
+ # LED On/Off synchronization
+ chown system system /sys/class/leds/red/device/lock
+
+ # communicate with mpdecision and thermald
+ mkdir /dev/socket/mpdecision 0770 system system
+ chmod 2770 /dev/socket/mpdecision
+
+ # adjust vibrator amplitude
+ write /sys/class/timed_output/vibrator/amp 70
+
+ # Enable Power modes and set the CPU Freq Sampling rates
+ write /sys/module/rpm_resources/enable_low_power/L2_cache 1
+ write /sys/module/rpm_resources/enable_low_power/pxo 1
+ write /sys/module/rpm_resources/enable_low_power/vdd_dig 1
+ write /sys/module/rpm_resources/enable_low_power/vdd_mem 1
+ write /sys/module/pm_8x60/modes/cpu0/power_collapse/suspend_enabled 1
+ write /sys/module/pm_8x60/modes/cpu1/power_collapse/suspend_enabled 1
+ write /sys/module/pm_8x60/modes/cpu2/power_collapse/suspend_enabled 1
+ write /sys/module/pm_8x60/modes/cpu3/power_collapse/suspend_enabled 1
+ write /sys/module/pm_8x60/modes/cpu0/power_collapse/idle_enabled 1
+ write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor "ondemand"
+ write /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor "ondemand"
+ write /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor "ondemand"
+ write /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor "ondemand"
+ write /sys/devices/system/cpu/cpufreq/ondemand/up_threshold 90
+ write /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate 50000
+ write /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy 1
+ write /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor 4
+ write /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq 384000
+ write /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq 384000
+ write /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq 384000
+ write /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq 384000
+ write /sys/devices/system/cpu/cpu1/online 1
+ write /sys/devices/system/cpu/cpu2/online 1
+ write /sys/devices/system/cpu/cpu3/online 1
+
+on charger
+ # Enable Power modes and set the CPU Freq Sampling rates
+ write /sys/module/rpm_resources/enable_low_power/L2_cache 1
+ write /sys/module/rpm_resources/enable_low_power/pxo 1
+ write /sys/module/rpm_resources/enable_low_power/vdd_dig 1
+ write /sys/module/rpm_resources/enable_low_power/vdd_mem 1
+ write /sys/module/pm_8x60/modes/cpu0/power_collapse/suspend_enabled 1
+ write /sys/module/pm_8x60/modes/cpu1/power_collapse/suspend_enabled 1
+ write /sys/module/pm_8x60/modes/cpu2/power_collapse/suspend_enabled 1
+ write /sys/module/pm_8x60/modes/cpu3/power_collapse/suspend_enabled 1
+ write /sys/module/pm_8x60/modes/cpu0/power_collapse/idle_enabled 1
+ write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor "powersave"
+ write /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor "powersave"
+ write /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor "powersave"
+ write /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor "powersave"
+ write /sys/devices/system/cpu/cpufreq/ondemand/up_threshold 90
+ write /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate 50000
+ write /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy 1
+ write /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor 4
+ write /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq 384000
+ write /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq 384000
+ write /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq 384000
+ write /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq 384000
+
+on property:init.svc.wpa_supplicant=stopped
+ stop dhcpcd
+
+service rmt_storage /system/bin/rmt_storage
+ class main
+ user root
+
+service hciattach /system/bin/sh /system/etc/init.flo.bt.sh
+ class late_start
+ user bluetooth
+ group qcom_oncrpc bluetooth net_bt_admin system
+ disabled
+ oneshot
+
+on property:bluetooth.hciattach=true
+ start hciattach
+
+on property:bluetooth.hciattach=false
+ setprop bluetooth.status off
+
+# Remount persist as rw if needed
+on property:ro.debuggable=1
+ mount ext4 /dev/block/platform/msm_sdcc.1/by-name/persist /persist rw remount nosuid nodev barrier=1 data=ordered nodelalloc
+ chown system system /persist
+ chmod 0771 /persist
+
+# create filesystems if necessary
+service setup_fs /system/bin/setup_fs \
+ /dev/block/platform/msm_sdcc.1/by-name/userdata \
+ /dev/block/platform/msm_sdcc.1/by-name/cache
+ class core
+ user root
+ group root
+ oneshot
+
+service bridgemgrd /system/bin/bridgemgrd
+ class main
+ user radio
+ group radio
+
+service qcom-c_main-sh /system/bin/sh /init.qcom.class_main.sh
+ class main
+ user root
+ oneshot
+
+# QMUX must be in multiple groups to support external process connections
+service qmuxd /system/bin/qmuxd
+ class main
+ user radio
+ group radio audio bluetooth gps
+ disabled
+
+service ks_checker /system/bin/sh /system/etc/kickstart_checker.sh
+ class core
+ oneshot
+
+service kickstart /system/bin/qcks -i /firmware/image/ -r /data/tombstones/mdm/
+ class core
+ user system
+ group system
+ disabled
+ oneshot
+
+service asus-dbug-d /data/data/com.asus.debugger/files/asus-debugger-d
+ class late_start
+ disabled
+
+on property:persist.radio.kickstart=on
+ start kickstart
+
+on property:ril.asus_debugger_running=1
+ start asus-dbug-d
+
+service netmgrd /system/bin/netmgrd
+ class main
+ disabled
+
+
+service sensors /system/bin/sensors.qcom
+ class late_start
+ user root
+ group root
+
+service wpa_supplicant /system/bin/logwrapper /system/bin/wpa_supplicant \
+ -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \
+ -e/data/misc/wifi/entropy.bin
+ # we will start as root and wpa_supplicant will switch to user wifi
+ # after setting up the capabilities required for WEXT
+ # user wifi
+ # group wifi inet keystore
+ class main
+ socket wpa_wlan0 dgram 660 wifi wifi
+ disabled
+ oneshot
+
+service p2p_supplicant /system/bin/logwrapper /system/bin/wpa_supplicant \
+ -ip2p0 -Dnl80211 -c/data/misc/wifi/p2p_supplicant.conf -N \
+ -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \
+ -e/data/misc/wifi/entropy.bin -puse_p2p_group_interface=1
+# we will start as root and wpa_supplicant will switch to user wifi
+# after setting up the capabilities required for WEXT
+# user wifi
+# group wifi inet keystore
+ class main
+ socket wpa_wlan0 dgram 660 wifi wifi
+ disabled
+ oneshot
+
+service dhcpcd_wlan0 /system/bin/dhcpcd -aABDKL
+ class main
+ disabled
+ oneshot
+
+service dhcpcd_p2p /system/bin/dhcpcd -aABKL
+ class main
+ disabled
+ oneshot
+
+service iprenew_wlan0 /system/bin/dhcpcd -n
+ class main
+ disabled
+ oneshot
+
+service iprenew_p2p /system/bin/dhcpcd -n
+ class main
+ disabled
+ oneshot
+
+service dhcpcd_bnep0 /system/bin/dhcpcd -BKLG
+ disabled
+ oneshot
+
+on property:ro.data.large_tcp_window_size=true
+ # Adjust socket buffer to enlarge TCP receive window for high bandwidth (e.g. DO-RevB)
+ write /proc/sys/net/ipv4/tcp_adv_win_scale 1
+
+service charger /charger
+ class charger
+
+# virtual sdcard daemon running as media_rw (1023)
+service sdcard /system/bin/sdcard /data/media /mnt/shell/emulated 1023 1023
+ class late_start
+
+service thermald /system/bin/thermald
+ class main
+
+service mpdecision /system/bin/mpdecision --no_sleep --avg_comp
+ class main
+
+service ppd /system/bin/mm-pp-daemon
+ class late_start
+ user system
+ socket pps stream 0660 system system graphics
+ group system graphics
+
+service qcamerasvr /system/bin/mm-qcamera-daemon
+ class late_start
+ user camera
+ group camera system inet input
+
+service conn_init /system/bin/logwrapper /system/bin/conn_init
+ class main
+ user system
+ group system wifi
+ oneshot
+
+service bdAddrLoader /system/bin/bdAddrLoader -f /persist/bluetooth/.bdaddr -h -x
+ class main
+ user bluetooth
+ group system bluetooth
+ oneshot
+
+# bugreport is triggered by holding down volume down, volume up and power
+service bugreport /system/bin/bugmailer.sh -v
+ class main
+ disabled
+ oneshot
+ keycodes 114 115 116
+
+service qseecomd /system/bin/qseecomd
+ class late_start
+ user system
+ group system
+
+service diag_mdlog /system/bin/logwrapper /system/bin/diag_mdlog -s 100
+ class late_start
+ disabled
+
+
+
+# on property:gsm.sim.state=READY
+# start diag_mdlog
+
+on property:ro.boot.baseband=mdm
+ start qmuxd
+ chown system system /dev/block/mmcblk0p18
+ chmod 0660 /dev/block/mmcblk0p18
+ chown system system /dev/block/mmcblk0p19
+ chmod 0660 /dev/block/mmcblk0p19
+ start kickstart
+ setprop persist.sys.usb.config diag,mdm,adb
+
+on property:ro.boot.baseband=apq
+ setprop ro.radio.noril yes
+ stop ril-daemon
+ setprop persist.sys.usb.config diag,adb
diff --git a/init.flo.usb.rc b/init.flo.usb.rc
new file mode 100644
index 0000000..444dc9e
--- /dev/null
+++ b/init.flo.usb.rc
@@ -0,0 +1,152 @@
+# Copyright 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.
+
+on init
+ write /sys/class/android_usb/android0/f_rndis/manufacturer LGE
+ write /sys/class/android_usb/android0/f_rndis/vendorID 18D1
+ write /sys/class/android_usb/android0/f_rndis/wceis 1
+
+on boot
+ write /sys/class/android_usb/android0/iSerial $ro.serialno
+ write /sys/class/android_usb/android0/iManufacturer $ro.product.manufacturer
+ write /sys/class/android_usb/android0/iProduct $ro.product.model
+
+# MTP
+on property:sys.usb.config=mtp
+ stop adbd
+ write /sys/class/android_usb/android0/enable 0
+ write /sys/class/android_usb/android0/idVendor 0B05
+ write /sys/class/android_usb/android0/idProduct 4CC0
+ write /sys/class/android_usb/android0/bDeviceClass 0
+ write /sys/class/android_usb/android0/bDeviceSubClass 0
+ write /sys/class/android_usb/android0/bDeviceProtocol 0
+ write /sys/class/android_usb/android0/functions mtp
+ write /sys/class/android_usb/android0/enable 1
+ setprop sys.usb.state ${sys.usb.config}
+
+on property:sys.usb.config=mtp,adb
+ write /sys/class/android_usb/android0/enable 0
+ write /sys/class/android_usb/android0/idVendor 0B05
+ write /sys/class/android_usb/android0/idProduct 4CC1
+ write /sys/class/android_usb/android0/bDeviceClass 0
+ write /sys/class/android_usb/android0/bDeviceSubClass 0
+ write /sys/class/android_usb/android0/bDeviceProtocol 0
+ write /sys/class/android_usb/android0/functions mtp,adb
+ write /sys/class/android_usb/android0/enable 1
+ start adbd
+ setprop sys.usb.state ${sys.usb.config}
+
+# rndis
+on property:sys.usb.config=rndis
+ stop adbd
+ write /sys/class/android_usb/android0/enable 0
+ write /sys/class/android_usb/android0/idVendor 0B05
+ write /sys/class/android_usb/android0/idProduct 4CC2
+ write /sys/class/android_usb/android0/bDeviceClass 239
+ write /sys/class/android_usb/android0/bDeviceSubClass 2
+ write /sys/class/android_usb/android0/bDeviceProtocol 1
+ write /sys/class/android_usb/android0/functions rndis
+ write /sys/class/android_usb/android0/enable 1
+ setprop sys.usb.state ${sys.usb.config}
+
+on property:sys.usb.config=rndis,adb
+ write /sys/class/android_usb/android0/enable 0
+ write /sys/class/android_usb/android0/idVendor 0B05
+ write /sys/class/android_usb/android0/idProduct 4CC3
+ write /sys/class/android_usb/android0/bDeviceClass 239
+ write /sys/class/android_usb/android0/bDeviceSubClass 2
+ write /sys/class/android_usb/android0/bDeviceProtocol 1
+ write /sys/class/android_usb/android0/functions rndis,adb
+ write /sys/class/android_usb/android0/enable 1
+ start adbd
+ setprop sys.usb.state ${sys.usb.config}
+
+# PTP
+on property:sys.usb.config=ptp
+ stop adbd
+ write /sys/class/android_usb/android0/enable 0
+ write /sys/class/android_usb/android0/idVendor 0B05
+ write /sys/class/android_usb/android0/idProduct 4CC4
+ write /sys/class/android_usb/android0/bDeviceClass 0
+ write /sys/class/android_usb/android0/bDeviceSubClass 0
+ write /sys/class/android_usb/android0/bDeviceProtocol 0
+ write /sys/class/android_usb/android0/functions ptp
+ write /sys/class/android_usb/android0/enable 1
+ setprop sys.usb.state ${sys.usb.config}
+
+on property:sys.usb.config=ptp,adb
+ write /sys/class/android_usb/android0/enable 0
+ write /sys/class/android_usb/android0/idVendor 0B05
+ write /sys/class/android_usb/android0/idProduct 4CC5
+ write /sys/class/android_usb/android0/bDeviceClass 0
+ write /sys/class/android_usb/android0/bDeviceSubClass 0
+ write /sys/class/android_usb/android0/bDeviceProtocol 0
+ write /sys/class/android_usb/android0/functions ptp,adb
+ write /sys/class/android_usb/android0/enable 1
+ start adbd
+ setprop sys.usb.state ${sys.usb.config}
+
+# diag
+on property:sys.usb.config=diag
+ stop adbd
+ write /sys/class/android_usb/android0/enable 0
+ write /sys/class/android_usb/android0/idVendor 1004
+ write /sys/class/android_usb/android0/idProduct 631B
+ write /sys/class/android_usb/android0/bDeviceClass 239
+ write /sys/class/android_usb/android0/bDeviceSubClass 2
+ write /sys/class/android_usb/android0/bDeviceProtocol 1
+ write /sys/class/android_usb/android0/f_acm/acm_transports tty
+ write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
+ write /sys/class/android_usb/android0/functions acm,diag,mtp,adb
+ write /sys/class/android_usb/android0/enable 1
+ start adbd
+ setprop sys.usb.state ${sys.usb.config}
+
+on property:sys.usb.config=diag,adb
+ write /sys/class/android_usb/android0/enable 0
+ write /sys/class/android_usb/android0/idVendor 05C6
+ write /sys/class/android_usb/android0/idProduct 9025
+ write /sys/class/android_usb/android0/f_diag/clients diag
+ write /sys/class/android_usb/android0/f_serial/transports smd,tty
+ write /sys/class/android_usb/android0/f_rmnet/transports smd,bam
+ write /sys/class/android_usb/android0/functions diag,adb,serial,rmnet,mass_storage
+ write /sys/class/android_usb/android0/enable 1
+ start adbd
+ setprop sys.usb.state $sys.usb.config
+
+on property:sys.usb.config=diag,mdm,adb
+ stop adbd
+ write /sys/class/android_usb/android0/enable 0
+ write /sys/class/android_usb/android0/idVendor 05C6
+ write /sys/class/android_usb/android0/idProduct 9031
+ write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
+ write /sys/class/android_usb/android0/f_serial/transports hsic,tty
+ write /sys/class/android_usb/android0/f_rmnet/transports hsic,hsic
+ write /sys/class/android_usb/android0/functions diag,adb,serial,rmnet,mass_storage
+ write /sys/class/android_usb/android0/enable 1
+ start adbd
+ setprop sys.usb.state ${sys.usb.config}
+
+# Fusion 3 composition with diag_mdm and adb
+on property:sys.usb.config=diag,diag_mdm,serial_hsic,serial_tty,rmnet_hsic,mass_storage,adb
+ write /sys/class/android_usb/android0/enable 0
+ write /sys/class/android_usb/android0/idVendor 05C6
+ write /sys/class/android_usb/android0/idProduct 9031
+ write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
+ write /sys/class/android_usb/android0/f_serial/transports hsic,tty
+ write /sys/class/android_usb/android0/f_rmnet/transports hsic,hsic
+ write /sys/class/android_usb/android0/functions diag,adb,serial,rmnet,mass_storage
+ write /sys/class/android_usb/android0/enable 1
+ start adbd
+ setprop sys.usb.state ${sys.usb.config}
diff --git a/keypad_8064.kcm b/keypad_8064.kcm
new file mode 100644
index 0000000..7ee6e5a
--- /dev/null
+++ b/keypad_8064.kcm
@@ -0,0 +1,15 @@
+# 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.
+
+type SPECIAL_FUNCTION
diff --git a/keypad_8064.kl b/keypad_8064.kl
new file mode 100644
index 0000000..03ac948
--- /dev/null
+++ b/keypad_8064.kl
@@ -0,0 +1,2 @@
+key 114 VOLUME_DOWN WAKE
+key 115 VOLUME_UP WAKE
diff --git a/kickstart_checker.sh b/kickstart_checker.sh
new file mode 100644
index 0000000..46514d0
--- /dev/null
+++ b/kickstart_checker.sh
@@ -0,0 +1,11 @@
+#!/system/bin/sh
+setprop persist.radio.kickstart off
+
+if [ $(getprop ro.baseband) == "mdm" ]; then
+
+ for f in $(ls /data/qcks/); do
+ (ls -l /data/qcks/$f | grep root) && rm /data/qcks/$f;
+ done
+
+ setprop persist.radio.kickstart on
+fi
diff --git a/media_codecs.xml b/media_codecs.xml
new file mode 100644
index 0000000..9e460e9
--- /dev/null
+++ b/media_codecs.xml
@@ -0,0 +1,72 @@
+<?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.
+-->
+
+<MediaCodecs>
+ <Encoders>
+ <MediaCodec name="OMX.qcom.video.encoder.mpeg4" type="video/mp4v-es" >
+ <Quirk name="requires-allocate-on-input-ports" />
+ <Quirk name="requires-allocate-on-output-ports"/>
+ <Quirk name="requires-loaded-to-idle-after-allocation"/>
+ </MediaCodec>
+ <MediaCodec name="OMX.qcom.video.encoder.h263" type="video/3gpp" >
+ <Quirk name="requires-allocate-on-input-ports" />
+ <Quirk name="requires-allocate-on-output-ports"/>
+ <Quirk name="requires-loaded-to-idle-after-allocation"/>
+ </MediaCodec>
+ <MediaCodec name="OMX.qcom.video.encoder.avc" type="video/avc" >
+ <Quirk name="requires-allocate-on-input-ports" />
+ <Quirk name="requires-allocate-on-output-ports"/>
+ <Quirk name="requires-loaded-to-idle-after-allocation"/>
+ </MediaCodec>
+ <MediaCodec name="OMX.google.amrnb.encoder" type="audio/3gpp" />
+ <MediaCodec name="OMX.google.aac.encoder" type="audio/mp4a-latm" />
+ <MediaCodec name="OMX.google.amrwb.encoder" type="audio/amr-wb" />
+ <MediaCodec name="OMX.google.flac.encoder" type="audio/flac" />
+ </Encoders>
+ <Decoders>
+ <MediaCodec name="OMX.google.vorbis.decoder" type="audio/vorbis" />
+ <MediaCodec name="OMX.google.mp3.decoder" type="audio/mpeg" />
+ <MediaCodec name="OMX.google.amrnb.decoder" type="audio/3gpp" />
+ <MediaCodec name="OMX.google.amrwb.decoder" type="audio/amr-wb" />
+ <MediaCodec name="OMX.google.aac.decoder" type="audio/mp4a-latm" />
+ <MediaCodec name="OMX.google.g711.alaw.decoder" type="audio/g711-alaw" />
+ <MediaCodec name="OMX.google.g711.mlaw.decoder" type="audio/g711-mlaw" />
+ <MediaCodec name="OMX.qcom.video.decoder.avc" type="video/avc" >
+ <Quirk name="requires-allocate-on-input-ports" />
+ <Quirk name="requires-allocate-on-output-ports"/>
+ <Quirk name="defers-output-buffer-allocation"/>
+ </MediaCodec>
+ <MediaCodec name="OMX.qcom.video.decoder.mpeg2" type="video/mpeg2" >
+ <Quirk name="requires-allocate-on-input-ports" />
+ <Quirk name="requires-allocate-on-output-ports"/>
+ <Quirk name="defers-output-buffer-allocation"/>
+ </MediaCodec>
+ <MediaCodec name="OMX.qcom.video.decoder.mpeg4" type="video/mp4v-es" >
+ <Quirk name="requires-allocate-on-input-ports" />
+ <Quirk name="requires-allocate-on-output-ports"/>
+ <Quirk name="defers-output-buffer-allocation"/>
+ </MediaCodec>
+ <MediaCodec name="OMX.qcom.video.decoder.h263" type="video/3gpp" >
+ <Quirk name="requires-allocate-on-input-ports" />
+ <Quirk name="requires-allocate-on-output-ports"/>
+ <Quirk name="defers-output-buffer-allocation"/>
+ </MediaCodec>
+ <MediaCodec name="OMX.google.vpx.decoder" type="video/x-vnd.on2.vp8" />
+ <MediaCodec name="OMX.google.h264.decoder" type="video/avc" />
+ <MediaCodec name="OMX.google.h263.decoder" type="video/3gpp" />
+ <MediaCodec name="OMX.google.mpeg4.decoder" type="video/mp4v-es" />
+ </Decoders>
+</MediaCodecs>
diff --git a/media_profiles.xml b/media_profiles.xml
new file mode 100644
index 0000000..c0ef73e
--- /dev/null
+++ b/media_profiles.xml
@@ -0,0 +1,428 @@
+<?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)>
+<!ELEMENT CamcorderProfiles (EncoderProfile+, ImageEncoding+, ImageDecoding, Camera)>
+<!ELEMENT EncoderProfile (Video, Audio)>
+<!ATTLIST EncoderProfile quality (high|low) #REQUIRED>
+<!ATTLIST EncoderProfile fileFormat (mp4|3gp) #REQUIRED>
+<!ATTLIST EncoderProfile duration (30|60) #REQUIRED>
+<!ATTLIST EncoderProfile cameraId (0|1) #REQUIRED>
+<!ELEMENT Video EMPTY>
+<!ATTLIST Video codec (h264|h263|m4v) #REQUIRED>
+<!ATTLIST Video bitRate CDATA #REQUIRED>
+<!ATTLIST Video width CDATA #REQUIRED>
+<!ATTLIST Video height CDATA #REQUIRED>
+<!ATTLIST Video frameRate CDATA #REQUIRED>
+<!ELEMENT Audio EMPTY>
+<!ATTLIST Audio codec (amrnb|amrwb|aac) #REQUIRED>
+<!ATTLIST Audio bitRate CDATA #REQUIRED>
+<!ATTLIST Audio sampleRate CDATA #REQUIRED>
+<!ATTLIST Audio channels (1|2) #REQUIRED>
+<!ELEMENT ImageEncoding EMPTY>
+<!ATTLIST ImageEncoding quality (90|80|70|60|50|40) #REQUIRED>
+<!ELEMENT ImageDecoding EMPTY>
+<!ATTLIST ImageDecoding memCap CDATA #REQUIRED>
+<!ELEMENT Camera EMPTY>
+<!ELEMENT EncoderOutputFileFormat EMPTY>
+<!ATTLIST EncoderOutputFileFormat name (mp4|3gp) #REQUIRED>
+<!ELEMENT VideoEncoderCap EMPTY>
+<!ATTLIST VideoEncoderCap name (h264|h263|m4v|wmv) #REQUIRED>
+<!ATTLIST VideoEncoderCap enabled (true|false) #REQUIRED>
+<!ATTLIST VideoEncoderCap minBitRate CDATA #REQUIRED>
+<!ATTLIST VideoEncoderCap maxBitRate CDATA #REQUIRED>
+<!ATTLIST VideoEncoderCap minFrameWidth CDATA #REQUIRED>
+<!ATTLIST VideoEncoderCap maxFrameWidth CDATA #REQUIRED>
+<!ATTLIST VideoEncoderCap minFrameHeight CDATA #REQUIRED>
+<!ATTLIST VideoEncoderCap maxFrameHeight CDATA #REQUIRED>
+<!ATTLIST VideoEncoderCap minFrameRate CDATA #REQUIRED>
+<!ATTLIST VideoEncoderCap maxFrameRate CDATA #REQUIRED>
+<!ELEMENT AudioEncoderCap EMPTY>
+<!ATTLIST AudioEncoderCap name (amrnb|amrwb|aac|wma) #REQUIRED>
+<!ATTLIST AudioEncoderCap enabled (true|false) #REQUIRED>
+<!ATTLIST AudioEncoderCap minBitRate CDATA #REQUIRED>
+<!ATTLIST AudioEncoderCap maxBitRate CDATA #REQUIRED>
+<!ATTLIST AudioEncoderCap minSampleRate CDATA #REQUIRED>
+<!ATTLIST AudioEncoderCap maxSampleRate CDATA #REQUIRED>
+<!ATTLIST AudioEncoderCap minChannels (1|2) #REQUIRED>
+<!ATTLIST AudioEncoderCap maxChannels (1|2) #REQUIRED>
+<!ELEMENT VideoDecoderCap EMPTY>
+<!ATTLIST VideoDecoderCap name (wmv) #REQUIRED>
+<!ATTLIST VideoDecoderCap enabled (true|false) #REQUIRED>
+<!ELEMENT AudioDecoderCap EMPTY>
+<!ATTLIST AudioDecoderCap name (wma) #REQUIRED>
+<!ATTLIST AudioDecoderCap enabled (true|false) #REQUIRED>
+<!ELEMENT VideoEditorCap EMPTY>
+<!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 -->
+ <CamcorderProfiles cameraId="0">
+
+ <EncoderProfile quality="qvga" fileFormat="3gp" duration="60">
+ <Video codec="m4v"
+ bitRate="128000"
+ width="320"
+ height="240"
+ frameRate="15" />
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="cif" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="1200000"
+ width="352"
+ height="288"
+ frameRate="30" />
+ <Audio codec="aac"
+ bitRate="96000"
+ sampleRate="48000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="480p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="5000000"
+ width="720"
+ height="480"
+ frameRate="30" />
+ <Audio codec="aac"
+ bitRate="96000"
+ sampleRate="48000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="720p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="8000000"
+ width="1280"
+ height="720"
+ frameRate="30" />
+ <Audio codec="aac"
+ bitRate="96000"
+ sampleRate="48000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="1080p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="12000000"
+ width="1920"
+ height="1080"
+ frameRate="30" />
+ <Audio codec="aac"
+ bitRate="96000"
+ sampleRate="48000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="192000"
+ width="176"
+ height="144"
+ frameRate="30" />
+ <!-- audio setting is ignored -->
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="1200000"
+ width="352"
+ height="288"
+ frameRate="30" />
+ <!-- audio setting is ignored -->
+ <Audio codec="aac"
+ bitRate="96000"
+ sampleRate="48000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="5000000"
+ width="720"
+ height="480"
+ frameRate="30" />
+ <!-- audio setting is ignored -->
+ <Audio codec="aac"
+ bitRate="96000"
+ sampleRate="48000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="8000000"
+ width="1280"
+ height="720"
+ frameRate="30" />
+ <!-- audio setting is ignored -->
+ <Audio codec="aac"
+ bitRate="96000"
+ sampleRate="48000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="12000000"
+ width="1920"
+ height="1080"
+ frameRate="30" />
+ <!-- audio setting is ignored -->
+ <Audio codec="aac"
+ bitRate="96000"
+ sampleRate="48000"
+ channels="1" />
+ </EncoderProfile>
+
+ <ImageEncoding quality="95" />
+ <ImageEncoding quality="80" />
+ <ImageEncoding quality="70" />
+ <ImageDecoding memCap="20000000" />
+
+ </CamcorderProfiles>
+
+ <CamcorderProfiles cameraId="1">
+
+ <EncoderProfile quality="qvga" fileFormat="3gp" duration="60">
+ <Video codec="m4v"
+ bitRate="128000"
+ width="320"
+ height="240"
+ frameRate="15" />
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="cif" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="1200000"
+ width="352"
+ height="288"
+ frameRate="30" />
+ <Audio codec="aac"
+ bitRate="96000"
+ sampleRate="48000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="480p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="5000000"
+ width="720"
+ height="480"
+ frameRate="30" />
+ <Audio codec="aac"
+ bitRate="96000"
+ sampleRate="48000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="720p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="8000000"
+ width="1280"
+ height="720"
+ frameRate="30" />
+ <Audio codec="aac"
+ bitRate="96000"
+ sampleRate="48000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="192000"
+ width="176"
+ height="144"
+ frameRate="30" />
+ <!-- audio setting is ignored -->
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="1200000"
+ width="352"
+ height="288"
+ frameRate="30" />
+ <!-- audio setting is ignored -->
+ <Audio codec="aac"
+ bitRate="96000"
+ sampleRate="48000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="5000000"
+ width="720"
+ height="480"
+ frameRate="30" />
+ <!-- audio setting is ignored -->
+ <Audio codec="aac"
+ bitRate="96000"
+ sampleRate="48000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="8000000"
+ width="1280"
+ height="720"
+ frameRate="30" />
+ <!-- audio setting is ignored -->
+ <Audio codec="aac"
+ bitRate="96000"
+ sampleRate="48000"
+ channels="1" />
+ </EncoderProfile>
+
+ <ImageEncoding quality="95" />
+ <ImageEncoding quality="80" />
+ <ImageEncoding quality="70" />
+ <ImageDecoding memCap="20000000" />
+
+ </CamcorderProfiles>
+
+ <EncoderOutputFileFormat name="3gp" />
+ <EncoderOutputFileFormat name="mp4" />
+
+ <!--
+ If a codec is not enabled, it is invisible to the applications
+ In other words, the applications won't be able to use the codec
+ or query the capabilities of the codec at all if it is disabled
+ -->
+ <VideoEncoderCap name="h264" enabled="true"
+ minBitRate="64000" maxBitRate="12000000"
+ minFrameWidth="176" maxFrameWidth="1920"
+ minFrameHeight="144" maxFrameHeight="1080"
+ minFrameRate="15" maxFrameRate="30" />
+
+ <VideoEncoderCap name="h263" enabled="true"
+ minBitRate="64000" maxBitRate="2000000"
+ minFrameWidth="176" maxFrameWidth="800"
+ minFrameHeight="144" maxFrameHeight="480"
+ minFrameRate="15" maxFrameRate="30" />
+
+ <VideoEncoderCap name="m4v" enabled="true"
+ minBitRate="64000" maxBitRate="4000000"
+ minFrameWidth="176" maxFrameWidth="1920"
+ minFrameHeight="144" maxFrameHeight="1080"
+ minFrameRate="15" maxFrameRate="30" />
+
+ <AudioEncoderCap name="aac" enabled="true"
+ minBitRate="758" maxBitRate="288000"
+ minSampleRate="8000" maxSampleRate="48000"
+ minChannels="1" maxChannels="1" />
+
+ <AudioEncoderCap name="heaac" enabled="true"
+ minBitRate="8000" maxBitRate="64000"
+ minSampleRate="16000" maxSampleRate="48000"
+ minChannels="1" maxChannels="1" />
+
+ <AudioEncoderCap name="aaceld" enabled="true"
+ minBitRate="16000" maxBitRate="192000"
+ minSampleRate="16000" maxSampleRate="48000"
+ minChannels="1" maxChannels="1" />
+
+ <AudioEncoderCap name="amrwb" enabled="true"
+ minBitRate="6600" maxBitRate="23050"
+ minSampleRate="16000" maxSampleRate="16000"
+ minChannels="1" maxChannels="1" />
+
+ <AudioEncoderCap name="amrnb" enabled="true"
+ minBitRate="5525" maxBitRate="12200"
+ minSampleRate="8000" maxSampleRate="8000"
+ minChannels="1" maxChannels="1" />
+
+ <!--
+ FIXME:
+ We do not check decoder capabilities at present
+ At present, we only check whether windows media is visible
+ for TEST applications. For other applications, we do
+ not perform any checks at all.
+ -->
+ <VideoDecoderCap name="wmv" enabled="false"/>
+ <AudioDecoderCap name="wma" enabled="false"/>
+
+ <!--
+ The VideoEditor Capability configuration:
+ - maxInputFrameWidth: maximum video width of imported video clip.
+ - maxInputFrameHeight: maximum video height of imported video clip.
+ - maxOutputFrameWidth: maximum video width of exported video clip.
+ - maxOutputFrameHeight: maximum video height of exported video clip.
+ - maxPrefetchYUVFrames: maximum prefetch YUV frames for encoder,
+ used to limit the amount of memory for prefetched YUV frames.
+ For this platform, it allows maximum 30MB(3MB per 1080p frame x 10
+ frames) memory.
+ -->
+ <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 4096 means OMX_VIDEO_AVCLevel41.
+ Please note that the values are in decimal.
+ These values are for video encoder.
+ -->
+ <!--
+ Codec = h.264, Baseline profile, level 4.0
+ -->
+ <ExportVideoProfile name="h264" profile= "1" level="2048"/>
+ <!--
+ Codec = h.263, Baseline profile, level 70
+ -->
+ <ExportVideoProfile name="h263" profile= "1" level="128"/>
+ <!--
+ Codec = mpeg4, Simple profile, level 5
+ -->
+ <ExportVideoProfile name="m4v" profile= "1" level="128"/>
+</MediaSettings>
diff --git a/nfc/BCM20791B4_002.005.010.0031.0033.ncd b/nfc/BCM20791B4_002.005.010.0031.0033.ncd
new file mode 100644
index 0000000..feb7734
--- /dev/null
+++ b/nfc/BCM20791B4_002.005.010.0031.0033.ncd
Binary files differ
diff --git a/nfc/BCM20791B4_002.005.010.0031.0034.ncd b/nfc/BCM20791B4_002.005.010.0031.0034.ncd
new file mode 100644
index 0000000..03bce4d
--- /dev/null
+++ b/nfc/BCM20791B4_002.005.010.0031.0034.ncd
Binary files differ
diff --git a/nfc/libnfc-brcm.conf b/nfc/libnfc-brcm.conf
new file mode 100644
index 0000000..72ef28e
--- /dev/null
+++ b/nfc/libnfc-brcm.conf
@@ -0,0 +1,291 @@
+###################### Start of libnfc-brcm-common.conf #######################
+
+###############################################################################
+# Application options
+APPL_TRACE_LEVEL=0x01
+PROTOCOL_TRACE_LEVEL=0x00000000
+
+###############################################################################
+# performance measurement
+# Change this setting to control how often USERIAL log the performance (throughput)
+# data on read/write/poll
+# defailt is to log performance dara for every 100 read or write
+#REPORT_PERFORMANCE_MEASURE=100
+
+###############################################################################
+# File used for NFA storage
+NFA_STORAGE="/data/nfc"
+
+###############################################################################
+# Snooze Mode Settings
+#
+# By default snooze mode is enabled. Set SNOOZE_MODE_CFG byte[0] to 0
+# to disable.
+#
+# If SNOOZE_MODE_CFG is not provided, the default settings are used:
+# They are as follows:
+# 8 Sleep Mode (0=Disabled 1=UART 8=SPI/I2C)
+# 0 Idle Threshold Host
+# 0 Idle Threshold HC
+# 0 NFC Wake active mode (0=ActiveLow 1=ActiveHigh)
+# 1 Host Wake active mode (0=ActiveLow 1=ActiveHigh)
+#
+#SNOOZE_MODE_CFG={08:00:00:00:01}
+
+###############################################################################
+# Insert a delay in milliseconds after NFC_WAKE and before write to NFCC
+NFC_WAKE_DELAY=20
+
+###############################################################################
+# Various Delay settings (in ms) used in USERIAL
+# POWER_ON_DELAY
+# Delay after turning on chip, before writing to transport (default 300)
+# PRE_POWER_OFF_DELAY
+# Delay after deasserting NFC-Wake before turn off chip (default 0)
+# POST_POWER_OFF_DELAY
+# Delay after turning off chip, before USERIAL_close returns (default 0)
+#
+#POWER_ON_DELAY=300
+#PRE_POWER_OFF_DELAY=0
+#POST_POWER_OFF_DELAY=0
+
+###############################################################################
+# LPTD mode configuration
+# byte[0] is the length of the remaining bytes in this value
+# if set to 0, LPTD params will NOT be sent to NFCC (i.e. disabled).
+# byte[1] is the param id it should be set to B9.
+# byte[2] is the length of the LPTD parameters
+# byte[3] indicates if LPTD is enabled
+# if set to 0, LPTD will be disabled (parameters will still be sent).
+# byte[4-n] are the LPTD parameters.
+# By default, LPTD is enabled and default settings are used.
+# See nfc_hal_dm_cfg.c for defaults
+LPTD_CFG={00:B9:21:01:02:FF:FF:04:A0:0F:40:00:80:02:02:10:00:00:00:31:0C:30:00:00:00:00:00:00:00:00:00:00:00:00:00:00}
+
+###############################################################################
+# Startup Configuration (100 bytes maximum)
+#
+# For the 0xCA parameter, byte[9] (marked by 'AA') is for UICC0, and byte[10] (marked by BB) is
+# for UICC1. The values are defined as:
+# 0 : UICCx only supports ISO_DEP in low power mode.
+# 2 : UICCx only supports Mifare in low power mode.
+# 3 : UICCx supports both ISO_DEP and Mifare in low power mode.
+#
+# AA BB
+NFA_DM_START_UP_CFG={1F:CB:01:01:A5:01:01:CA:14:00:00:00:00:06:E8:03:00:00:00:00:00:00:00:00:00:00:00:00:00:80:01:01}
+
+###############################################################################
+# Startup Vendor Specific Configuration (100 bytes maximum);
+# byte[0] TLV total len = 0x5
+# byte[1] NCI_MTS_CMD|NCI_GID_PROP = 0x2f
+# byte[2] NCI_MSG_FRAME_LOG = 0x9
+# byte[3] 2
+# byte[4] 0=turn off RF frame logging; 1=turn on
+# byte[5] 0=turn off SWP frame logging; 1=turn on
+# NFA_DM_START_UP_VSC_CFG={05:2F:09:02:01:01}
+
+###############################################################################
+# Antenna Configuration - This data is used when setting 0xC8 config item
+# at startup (before discovery is started). If not used, no value is sent.
+#
+# The settings for this value are documented here:
+# http://wcgbu.broadcom.com/wpan/PM/Project%20Document%20Library/bcm20791B0/
+# Design/Doc/PHY%20register%20settings/BCM20791-B2-1027-02_PHY_Recommended_Reg_Settings.xlsx
+# This document is maintained by Paul Forshaw.
+#
+# The values marked as ?? should be tweaked per antenna or customer/app:
+# {20:C8:1E:06:??:00:??:??:??:00:??:24:00:1C:00:75:00:77:00:76:00:1C:00:03:00:0A:00:??:01:00:00:40:04}
+# array[0] = 0x20 is length of the payload from array[1] to the end
+# array[1] = 0xC8 is PREINIT_DSP_CFG
+PREINIT_DSP_CFG={06:1F:00:0A:03:30:00:04:24:00:1C:00:75:00:77:00:76:00:1C:00:03:00:0A:00:4C:01:00:00:40:04}
+
+###############################################################################
+# Configure crystal frequency when internal LPO can't detect the frequency.
+#XTAL_FREQUENCY=0
+
+###############################################################################
+# Use Nexus S NXP RC work to allow our stack/firmware to work with a retail
+# Nexus S that causes IOP issues. Note, this will not pass conformance and
+# should be removed for production.
+USE_NXP_P2P_RC_WORKAROUND=1
+
+###############################################################################
+# Configure the default Destination Gate used by HCI (the default is 4, which
+# is the ETSI loopback gate.
+#NFA_HCI_DEFAULT_DEST_GATE=0x04
+
+###############################################################################
+# Configure the single default SE to use. The default is to use the first
+# SE that is detected by the stack. This value might be used when the phone
+# supports multiple SE (e.g. 0xF3 and 0xF4) but you want to force it to use
+# one of them (e.g. 0xF4).
+ACTIVE_SE=0xF4
+
+###############################################################################
+# Configure the NFC Extras to open and use a static pipe. If the value is
+# not set or set to 0, then the default is use a dynamic pipe based on a
+# destination gate (see NFA_HCI_DEFAULT_DEST_GATE). Note there is a value
+# for each UICC (where F3="UICC0" and F4="UICC1")
+#NFA_HCI_STATIC_PIPE_ID_F3=0x70
+NFA_HCI_STATIC_PIPE_ID_F4=0x71
+
+###############################################################################
+# When disconnecting from Oberthur secure element, perform a warm-reset of
+# the secure element to deselect the applet.
+# The default hex value of the command is 0x3. If this variable is undefined,
+# then this feature is not used.
+OBERTHUR_WARM_RESET_COMMAND=0x03
+
+###############################################################################
+# Force UICC to only listen to the following technology(s).
+# The bits are defined as tNFA_TECHNOLOGY_MASK in nfa_api.h.
+# Default is NFA_TECHNOLOGY_MASK_A | NFA_TECHNOLOGY_MASK_B.
+UICC_LISTEN_TECH_MASK=0x03
+
+###############################################################################
+# Allow UICC to be powered off if there is no traffic.
+# Timeout is in ms. If set to 0, then UICC will not be powered off.
+#UICC_IDLE_TIMEOUT=30000
+
+###############################################################################
+# AID for Empty Select command
+# If specified, this AID will be substituted when an Empty SELECT command is
+# detected. The first byte is the length of the AID. Maximum length is 16.
+AID_FOR_EMPTY_SELECT={08:A0:00:00:01:51:00:00:00}
+
+###############################################################################
+# Force tag polling for the following technology(s).
+# The bits are defined as tNFA_TECHNOLOGY_MASK in nfa_api.h.
+# Default is NFA_TECHNOLOGY_MASK_A | NFA_TECHNOLOGY_MASK_B |
+# NFA_TECHNOLOGY_MASK_F | NFA_TECHNOLOGY_MASK_ISO15693 |
+# NFA_TECHNOLOGY_MASK_B_PRIME | NFA_TECHNOLOGY_MASK_A_ACTIVE |
+# NFA_TECHNOLOGY_MASK_F_ACTIVE.
+#
+# Notable bits:
+# NFA_TECHNOLOGY_MASK_KOVIO 0x20
+# NFA_TECHNOLOGY_MASK_A_ACTIVE 0x40
+# NFA_TECHNOLOGY_MASK_F_ACTIVE 0x80
+POLLING_TECH_MASK=0xDF
+
+###############################################################################
+# Force P2P to only listen for the following technology(s).
+# The bits are defined as tNFA_TECHNOLOGY_MASK in nfa_api.h.
+# Default is NFA_TECHNOLOGY_MASK_A | NFA_TECHNOLOGY_MASK_F |
+# NFA_TECHNOLOGY_MASK_A_ACTIVE | NFA_TECHNOLOGY_MASK_F_ACTIVE
+P2P_LISTEN_TECH_MASK=0xC5
+
+###############################################################################
+# Maximum Number of Credits to be allowed by the NFCC
+# This value overrides what the NFCC specifices allowing the host to have
+# the control to work-around transport limitations. If this value does
+# not exist or is set to 0, the NFCC will provide the number of credits.
+#MAX_RF_DATA_CREDITS=1
+
+###############################################################################
+# This setting allows you to disable registering the T4t Virtual SE that causes
+# the NFCC to send PPSE requests to the DH.
+# The default setting is enabled (i.e. T4t Virtual SE is registered).
+#REGISTER_VIRTUAL_SE=1
+
+###############################################################################
+# When screen is turned off, specify the desired power state of the controller.
+# 0: power-off-sleep state; DEFAULT
+# 1: full-power state
+# 2: screen-off card-emulation (CE4/CE3/CE1 modes are used)
+#SCREEN_OFF_POWER_STATE=0
+
+###############################################################################
+# Firmware patch file
+# If the value is not set then patch download is disabled.
+FW_PATCH="/vendor/firmware/bcm2079x_firmware.ncd"
+
+###############################################################################
+# Firmware pre-patch file (sent before the above patch file)
+# If the value is not set then pre-patch is not used.
+FW_PRE_PATCH="/vendor/firmware/bcm2079x_pre_firmware.ncd"
+
+###############################################################################
+# Firmware patch format
+# 1 = HCD
+# 2 = NCD (default)
+#NFA_CONFIG_FORMAT=2
+
+###############################################################################
+# SPD Debug mode
+# If set to 1, any failure of downloading a patch will trigger a hard-stop
+#SPD_DEBUG=0
+
+###############################################################################
+# SPD Max Retry Count
+# The number of attempts to download a patch before giving up (defualt is 3).
+# Note, this resets after a power-cycle.
+#SPD_MAX_RETRY_COUNT=3
+
+###############################################################################
+# transport driver
+#
+# TRANSPORT_DRIVER=<driver>
+#
+# where <driver> can be, for example:
+# "/dev/ttyS" (UART)
+# "/dev/bcmi2cnfc" (I2C)
+# "hwtun" (HW Tunnel)
+# "/dev/bcmspinfc" (SPI)
+# "/dev/btusb0" (BT USB)
+TRANSPORT_DRIVER="/dev/bcm2079x-i2c"
+
+###############################################################################
+# power control driver
+# Specify a kernel driver that support ioctl commands to control NFC_EN and
+# NFC_WAKE gpio signals.
+#
+# POWER_CONTRL_DRIVER=<driver>
+# where <driver> can be, for example:
+# "/dev/nfcpower"
+# "/dev/bcmi2cnfc" (I2C)
+# "/dev/bcmspinfc" (SPI)
+# i2c and spi driver may be used to control NFC_EN and NFC_WAKE signal
+POWER_CONTROL_DRIVER="/dev/bcm2079x-i2c"
+
+###############################################################################
+# I2C transport driver options
+# Mako does not support 10-bit I2C addresses
+# Revert to 7-bit address
+BCMI2CNFC_ADDRESS=0x77
+
+###############################################################################
+# I2C transport driver try to read multiple packets in read() if data is available
+# remove the comment below to enable this feature
+#READ_MULTIPLE_PACKETS=1
+
+###############################################################################
+# SPI transport driver options
+#SPI_NEGOTIATION={0A:F0:00:01:00:00:00:FF:FF:00:00}
+
+###############################################################################
+# UART transport driver options
+#
+# PORT=1,2,3,...
+# BAUD=115200, 19200, 9600, 4800,
+# DATABITS=8, 7, 6, 5
+# PARITY="even" | "odd" | "none"
+# STOPBITS="0" | "1" | "1.5" | "2"
+
+#UART_PORT=2
+#UART_BAUD=115200
+#UART_DATABITS=8
+#UART_PARITY="none"
+#UART_STOPBITS="1"
+
+###############################################################################
+# Insert a delay in microseconds per byte after a write to NFCC.
+# after writing a block of data to the NFCC, delay this an amopunt of time before
+# writing next block of data. the delay is calculated as below
+# NFC_WRITE_DELAY * (number of byte written) / 1000 milliseconds
+# e.g. after 259 bytes is written, delay (259 * 20 / 1000) 5 ms before next write
+NFC_WRITE_DELAY=20
+
+###############################################################################
+# Default poll duration (in ms)
+# The defualt is 500ms if not set (see nfc_target.h)
+#NFA_DM_DISC_DURATION_POLL=333
diff --git a/nfc/nfcee_access.xml b/nfc/nfcee_access.xml
new file mode 100644
index 0000000..02e12fd
--- /dev/null
+++ b/nfc/nfcee_access.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- Applications granted NFCEE access on user builds
+
+ See packages/apps/Nfc/etc/sample_nfcee_access.xml for full documentation.
+ -->
+
+ <!-- Google wallet release signature -->
+ <signer android:signature="3082044c30820334a003020102020900a8cd17c93da5d990300d06092a864886f70d01010505003077310b3009060355040613025553311330110603550408130a43616c69666f726e6961311630140603550407130d4d6f756e7461696e205669657731143012060355040a130b476f6f676c6520496e632e3110300e060355040b1307416e64726f6964311330110603550403130a476f6f676c65204e4643301e170d3131303332343031303635335a170d3338303830393031303635335a3077310b3009060355040613025553311330110603550408130a43616c69666f726e6961311630140603550407130d4d6f756e7461696e205669657731143012060355040a130b476f6f676c6520496e632e3110300e060355040b1307416e64726f6964311330110603550403130a476f6f676c65204e464330820120300d06092a864886f70d01010105000382010d00308201080282010100c30f88add9b492096a2c586a5a9a80356bfa026958f8ff0c5dfaf59f49268ad870dee821a53e1f5b170fc96245a3c982a7cb4527053be35e34f396d24b2291ec0c528d6e26927465e06875ea621f7ff98c40e3345b204907cc9354743acdaace65565f48ba74cd4121cdc876df3522badb095c20d934c56a3e5c393ee5f0e02f8fe0621f918d1f35a82489252c6fa6b63392a7686b3e48612d06a9cf6f49bff11d5d96289c9dfe14ac5762439697dd29eafdb9810de3263513a905ac8e8eaf20907e46750a5ab7bf9a77262f47b03f5a3c6e6d7b51343f69c7f725f70bcc1b4ad592250b705a86e6e83ee2ae37fe5701bcbdb26feefdfff60f6a5bdfb5b64793020103a381dc3081d9301d0603551d0e041604141ccece0eea4dc1121fc7515f0d0a0c72e08cc96d3081a90603551d230481a130819e80141ccece0eea4dc1121fc7515f0d0a0c72e08cc96da17ba4793077310b3009060355040613025553311330110603550408130a43616c69666f726e6961311630140603550407130d4d6f756e7461696e205669657731143012060355040a130b476f6f676c6520496e632e3110300e060355040b1307416e64726f6964311330110603550403130a476f6f676c65204e4643820900a8cd17c93da5d990300c0603551d13040530030101ff300d06092a864886f70d01010505000382010100a470c728e1d31b06d9af6ae768b565046c57806b9843724931d75d4ca10c321520d33ccfed2aa65462234c9ef9b6f910cc676b99cb7f9895d6c06763574fbb78331275dc5cf38fbaa918d7938c051ffba2ade8f303cde8d9e68a048d1fdb9e7c9f2a49b222c68fff422bf15569b85eeeedb04aa30873dbe64b9c9e74f8f2c2f6c40124aaa8d1780d18512b540add28b3e9581971a4170dd868cf5f31e44712b2c23bb51037d7ef9f87a6e5bdb35e2ceb6bb022636c17a56a96bc7a50258c0bd2ed7b31555a18452e17321a0d52838c82f63f742d74ff79586a5cbb7faf7198a84bcf744310e9e927597f00a23dd00660800c2238d90b2fb372dfdbba75bd852e" />
+
+</resources>
diff --git a/nfc/nfcee_access_debug.xml b/nfc/nfcee_access_debug.xml
new file mode 100644
index 0000000..a96a2d1
--- /dev/null
+++ b/nfc/nfcee_access_debug.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- Applications granted NFCEE access on userdebug/eng builds
+
+ See packages/apps/Nfc/etc/sample_nfcee_access.xml for full documentation.
+ -->
+
+ <!-- Google Wallet dev signature -->
+ <signer android:signature="3082044c30820334a003020102020900de7695041d7650c0300d06092a864886f70d01010505003077310b3009060355040613025553311330110603550408130a43616c69666f726e6961311630140603550407130d4d6f756e7461696e205669657731143012060355040a130b476f6f676c6520496e632e3110300e060355040b1307416e64726f6964311330110603550403130a476f6f676c65204e4643301e170d3131303332343031303332345a170d3338303830393031303332345a3077310b3009060355040613025553311330110603550408130a43616c69666f726e6961311630140603550407130d4d6f756e7461696e205669657731143012060355040a130b476f6f676c6520496e632e3110300e060355040b1307416e64726f6964311330110603550403130a476f6f676c65204e464330820120300d06092a864886f70d01010105000382010d00308201080282010100e6ff3defe92aa10d71eb0fa6408bc036b7e243eeed68a6a4763dc7a52a31757cdac61fe510bb73c716e4000104265b347fcecef4c42bf1e1379dd0a876f028227fbbc1f9bdd5d713b2f6a935a379d2cba9c96f92d2d0787c11f1eb19548008a6a072b34b91836cfa0ae1276780e9007530166986a11c9cef46cef7c704806dde9431fb60284d120ab0e7de1d633f07687d468c51139afffdc6bc9a207ca904b8be1da0aa7b4e97756f43606488be5cae3c68e8bb7942cdf51607c930a2fcda655b75d0759cba89ad06e739bd0ba29b1f404296c2c0a85a847f5ab0d067c6c3ec9c49212042ac63a7e53b546c65b46080b4e3e680e23e1f77cfe7f6de744b1a65020103a381dc3081d9301d0603551d0e04160414a2e89064b05d08865c34db930a9d840050117aec3081a90603551d230481a130819e8014a2e89064b05d08865c34db930a9d840050117aeca17ba4793077310b3009060355040613025553311330110603550408130a43616c69666f726e6961311630140603550407130d4d6f756e7461696e205669657731143012060355040a130b476f6f676c6520496e632e3110300e060355040b1307416e64726f6964311330110603550403130a476f6f676c65204e4643820900de7695041d7650c0300c0603551d13040530030101ff300d06092a864886f70d010105050003820101003771870ce87c3c52ea84899230c6e962d94b4d5f1293c25d88261541fd90b5555d1285cef3b8312c3f5df691a8aae04cb981b305e427fd1d2d9e1987e1d29078f13c8452990f1821980263d8d4bd36519348d8d8ba26d8b99fbf09f5fd3ebb0ea3c2f0c9376f1e1fca76f3a6a405429d081b752a7a90b756e9ab44da41abc8e1e8f88ac2758da743fb73e650719a57840ccb6b7add21b99fc681e456e1872c223d5c074adf55f6abda268c2d8b64ea0a8845eecd968f92b493127e75c753c3ff30cbc678b51c9f52961472f17da20a0dc6274aa2463434c1a9b614df697d8ff5ca8101e7a25c7db3fb055d65569c04b01d389cabba57b3a1703ec2e74a88d334" />
+
+ <!-- Google wallet release signature -->
+ <signer android:signature="3082044c30820334a003020102020900a8cd17c93da5d990300d06092a864886f70d01010505003077310b3009060355040613025553311330110603550408130a43616c69666f726e6961311630140603550407130d4d6f756e7461696e205669657731143012060355040a130b476f6f676c6520496e632e3110300e060355040b1307416e64726f6964311330110603550403130a476f6f676c65204e4643301e170d3131303332343031303635335a170d3338303830393031303635335a3077310b3009060355040613025553311330110603550408130a43616c69666f726e6961311630140603550407130d4d6f756e7461696e205669657731143012060355040a130b476f6f676c6520496e632e3110300e060355040b1307416e64726f6964311330110603550403130a476f6f676c65204e464330820120300d06092a864886f70d01010105000382010d00308201080282010100c30f88add9b492096a2c586a5a9a80356bfa026958f8ff0c5dfaf59f49268ad870dee821a53e1f5b170fc96245a3c982a7cb4527053be35e34f396d24b2291ec0c528d6e26927465e06875ea621f7ff98c40e3345b204907cc9354743acdaace65565f48ba74cd4121cdc876df3522badb095c20d934c56a3e5c393ee5f0e02f8fe0621f918d1f35a82489252c6fa6b63392a7686b3e48612d06a9cf6f49bff11d5d96289c9dfe14ac5762439697dd29eafdb9810de3263513a905ac8e8eaf20907e46750a5ab7bf9a77262f47b03f5a3c6e6d7b51343f69c7f725f70bcc1b4ad592250b705a86e6e83ee2ae37fe5701bcbdb26feefdfff60f6a5bdfb5b64793020103a381dc3081d9301d0603551d0e041604141ccece0eea4dc1121fc7515f0d0a0c72e08cc96d3081a90603551d230481a130819e80141ccece0eea4dc1121fc7515f0d0a0c72e08cc96da17ba4793077310b3009060355040613025553311330110603550408130a43616c69666f726e6961311630140603550407130d4d6f756e7461696e205669657731143012060355040a130b476f6f676c6520496e632e3110300e060355040b1307416e64726f6964311330110603550403130a476f6f676c65204e4643820900a8cd17c93da5d990300c0603551d13040530030101ff300d06092a864886f70d01010505000382010100a470c728e1d31b06d9af6ae768b565046c57806b9843724931d75d4ca10c321520d33ccfed2aa65462234c9ef9b6f910cc676b99cb7f9895d6c06763574fbb78331275dc5cf38fbaa918d7938c051ffba2ade8f303cde8d9e68a048d1fdb9e7c9f2a49b222c68fff422bf15569b85eeeedb04aa30873dbe64b9c9e74f8f2c2f6c40124aaa8d1780d18512b540add28b3e9581971a4170dd868cf5f31e44712b2c23bb51037d7ef9f87a6e5bdb35e2ceb6bb022636c17a56a96bc7a50258c0bd2ed7b31555a18452e17321a0d52838c82f63f742d74ff79586a5cbb7faf7198a84bcf744310e9e927597f00a23dd00660800c2238d90b2fb372dfdbba75bd852e" />
+
+ <!-- Platform dev-keys signature -->
+ <signer android:signature="308204a830820390a003020102020900bcdfe81405d5c69e300d06092a864886f70d0101050500308194310b3009060355040613025553311330110603550408130a43616c69666f726e6961311630140603550407130d4d6f756e7461696e20566965773110300e060355040a1307416e64726f69643110300e060355040b1307416e64726f69643110300e06035504031307416e64726f69643122302006092a864886f70d0109011613616e64726f696440616e64726f69642e636f6d301e170d3131303931393230303634325a170d3339303230343230303634325a308194310b3009060355040613025553311330110603550408130a43616c69666f726e6961311630140603550407130d4d6f756e7461696e20566965773110300e060355040a1307416e64726f69643110300e060355040b1307416e64726f69643110300e06035504031307416e64726f69643122302006092a864886f70d0109011613616e64726f696440616e64726f69642e636f6d30820120300d06092a864886f70d01010105000382010d00308201080282010100ef7a8a34d8151d0479a239903261fe5026c520d5d88cd65920c98e096d2770f49636da9ffc4e80c472b05bd62a435f8266912aa2a34a18f6f4856f9ef52c10b88c267627136726823e8f3389b051ba92920e10bbaae0e38879efbe681b05863b655d81a6f3b75a85eb230b38b23ea4ef56f2161ff01652ae2049881adbe60d3bf8b5386a81f7404c0cf0c111c0a35ab0a9760426e4af12add73327ec433e047e3517f47a2d3674c2b819354d56eb7fd6c9aa67dd05b4bb1ca8a7e1946c2494e9364ea677a25481ac81f434bff3dd56e93e59fccef0e24a753461cd1cf15f22b62251d07416057ac5ca3e03a24f7f4eca876bacc5a1828acbde04c5cfdb608c47020103a381fc3081f9301d0603551d0e0416041402f997668541fa74693bea699a5766893a362a5d3081c90603551d230481c13081be801402f997668541fa74693bea699a5766893a362a5da1819aa48197308194310b3009060355040613025553311330110603550408130a43616c69666f726e6961311630140603550407130d4d6f756e7461696e20566965773110300e060355040a1307416e64726f69643110300e060355040b1307416e64726f69643110300e06035504031307416e64726f69643122302006092a864886f70d0109011613616e64726f696440616e64726f69642e636f6d820900bcdfe81405d5c69e300c0603551d13040530030101ff300d06092a864886f70d0101050500038201010047d6fb32cadeae4444c379b3441ff9ba10990c23d10472c54fb7ebd9c33b2a173836337e1c175c980847a8894f6a99782e9c2e2133629254295fe52749f93ec1e39d213dd06d0ba99de3b6b5d4d856fafe74e08113b7b23a1b56f4918ed41218a03b9564456480b665200267d3770a9463db413c6a47bd81d725cb7d39c9d0941693c59cbe727d40415f0815c3c8363fb8fa2e028ceeb3bbfbc6b119db5b72f0edb0bb417bfcbf74d9fa069de22afe56a50bcde7ea1078749bb9ec0adc0e6de045641ee3a82c576645160b4ab9710d3cb3201f23957da8de9084c0bec93ad1c8c2054195f13c926db07c8bdf15673acf6d791ec1d3a0d7e1b3470447acd95873" />
+
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-af/config.xml b/overlay/frameworks/base/core/res/res/values-af/config.xml
new file mode 100644
index 0000000..c9598c4
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-af/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-am/config.xml b/overlay/frameworks/base/core/res/res/values-am/config.xml
new file mode 100644
index 0000000..c9598c4
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-am/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-ar/config.xml b/overlay/frameworks/base/core/res/res/values-ar/config.xml
new file mode 100644
index 0000000..c9598c4
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-ar/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-be/config.xml b/overlay/frameworks/base/core/res/res/values-be/config.xml
new file mode 100644
index 0000000..c9598c4
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-be/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-bg/config.xml b/overlay/frameworks/base/core/res/res/values-bg/config.xml
new file mode 100644
index 0000000..c9598c4
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-bg/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-ca/config.xml b/overlay/frameworks/base/core/res/res/values-ca/config.xml
new file mode 100644
index 0000000..c9598c4
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-ca/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-cs/config.xml b/overlay/frameworks/base/core/res/res/values-cs/config.xml
new file mode 100644
index 0000000..c9598c4
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-cs/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-da/config.xml b/overlay/frameworks/base/core/res/res/values-da/config.xml
new file mode 100644
index 0000000..c9598c4
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-da/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-de/config.xml b/overlay/frameworks/base/core/res/res/values-de/config.xml
new file mode 100644
index 0000000..c9598c4
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-de/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-el/config.xml b/overlay/frameworks/base/core/res/res/values-el/config.xml
new file mode 100644
index 0000000..c9598c4
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-el/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-en-rGB/config.xml b/overlay/frameworks/base/core/res/res/values-en-rGB/config.xml
new file mode 100644
index 0000000..c9598c4
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-en-rGB/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-es-rUS/config.xml b/overlay/frameworks/base/core/res/res/values-es-rUS/config.xml
new file mode 100644
index 0000000..c9598c4
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-es-rUS/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-es/config.xml b/overlay/frameworks/base/core/res/res/values-es/config.xml
new file mode 100644
index 0000000..c9598c4
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-es/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-et/config.xml b/overlay/frameworks/base/core/res/res/values-et/config.xml
new file mode 100644
index 0000000..c9598c4
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-et/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-fa/config.xml b/overlay/frameworks/base/core/res/res/values-fa/config.xml
new file mode 100644
index 0000000..c9598c4
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-fa/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-fi/config.xml b/overlay/frameworks/base/core/res/res/values-fi/config.xml
new file mode 100644
index 0000000..c9598c4
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-fi/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-fr/config.xml b/overlay/frameworks/base/core/res/res/values-fr/config.xml
new file mode 100644
index 0000000..c9598c4
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-fr/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-hi/config.xml b/overlay/frameworks/base/core/res/res/values-hi/config.xml
new file mode 100644
index 0000000..c9598c4
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-hi/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-hr/config.xml b/overlay/frameworks/base/core/res/res/values-hr/config.xml
new file mode 100644
index 0000000..c9598c4
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-hr/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-hu/config.xml b/overlay/frameworks/base/core/res/res/values-hu/config.xml
new file mode 100644
index 0000000..c9598c4
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-hu/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-in/config.xml b/overlay/frameworks/base/core/res/res/values-in/config.xml
new file mode 100644
index 0000000..c9598c4
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-in/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-it/config.xml b/overlay/frameworks/base/core/res/res/values-it/config.xml
new file mode 100644
index 0000000..c9598c4
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-it/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-iw/config.xml b/overlay/frameworks/base/core/res/res/values-iw/config.xml
new file mode 100644
index 0000000..c9598c4
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-iw/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-ja/config.xml b/overlay/frameworks/base/core/res/res/values-ja/config.xml
new file mode 100644
index 0000000..c9598c4
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-ja/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-ko/config.xml b/overlay/frameworks/base/core/res/res/values-ko/config.xml
new file mode 100644
index 0000000..c9598c4
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-ko/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-lt/config.xml b/overlay/frameworks/base/core/res/res/values-lt/config.xml
new file mode 100644
index 0000000..c9598c4
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-lt/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-lv/config.xml b/overlay/frameworks/base/core/res/res/values-lv/config.xml
new file mode 100644
index 0000000..c9598c4
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-lv/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc208-mnc01/config.xml b/overlay/frameworks/base/core/res/res/values-mcc208-mnc01/config.xml
new file mode 100644
index 0000000..760fdf9
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc208-mnc01/config.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 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 my obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+ for different hardware and product builds. -->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+
+ <!-- Array of ConnectivityManager.TYPE_xxxx values allowable for tethering -->
+ <!-- Common options are [1, 4] for TYPE_WIFI and TYPE_MOBILE_DUN or
+ <!== [0,1,5,7] for TYPE_MOBILE, TYPE_WIFI, TYPE_MOBILE_HIPRI and TYPE_BLUETOOTH -->
+ <integer-array translatable="false" name="config_tether_upstream_types">
+ <item>1</item>
+ <item>4</item>
+ </integer-array>
+
+ <!-- String containing the apn value for tethering. May be overriden by secure settings
+ TETHER_DUN_APN. Value is a comma separated series of strings:
+ "name,apn,proxy,port,username,password,server,mmsc,mmsproxy,mmsport,mcc,mnc,auth,type"
+ note that empty fields can be ommitted: "name,apn,,,,,,,,,310,260,,DUN" -->
+ <string translatable="false" name="config_tether_apndata">Orange Internet,orange.fr,,,orange,orange,,,,,208,01,,DUN"</string>
+
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc214-mnc01/config.xml b/overlay/frameworks/base/core/res/res/values-mcc214-mnc01/config.xml
new file mode 100644
index 0000000..a38a544
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc214-mnc01/config.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 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 my obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+ for different hardware and product builds. -->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+
+ <!-- Array of ConnectivityManager.TYPE_xxxx values allowable for tethering -->
+ <!-- Common options are [1, 4] for TYPE_WIFI and TYPE_MOBILE_DUN or
+ <!== [0,1,5,7] for TYPE_MOBILE, TYPE_WIFI, TYPE_MOBILE_HIPRI and TYPE_BLUETOOTH -->
+ <integer-array translatable="false" name="config_tether_upstream_types">
+ <item>1</item>
+ <item>4</item>
+ </integer-array>
+
+ <!-- String containing the apn value for tethering. May be overriden by secure settings
+ TETHER_DUN_APN. Value is a comma separated series of strings:
+ "name,apn,proxy,port,username,password,server,mmsc,mmsproxy,mmsport,mcc,mnc,auth,type"
+ note that empty fields can be ommitted: "name,apn,,,,,,,,,310,260,,DUN" -->
+ <string translatable="false" name="config_tether_apndata">INTERNET,airtelnet.es,,,vodafone,vodafone,,,,,214,01,,DUN"</string>
+
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc214-mnc03/config.xml b/overlay/frameworks/base/core/res/res/values-mcc214-mnc03/config.xml
new file mode 100644
index 0000000..68acd06
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc214-mnc03/config.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 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 my obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+ for different hardware and product builds. -->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+
+ <!-- Array of ConnectivityManager.TYPE_xxxx values allowable for tethering -->
+ <!-- Common options are [1, 4] for TYPE_WIFI and TYPE_MOBILE_DUN or
+ <!== [0,1,5,7] for TYPE_MOBILE, TYPE_WIFI, TYPE_MOBILE_HIPRI and TYPE_BLUETOOTH -->
+ <integer-array translatable="false" name="config_tether_upstream_types">
+ <item>1</item>
+ <item>4</item>
+ </integer-array>
+
+ <!-- String containing the apn value for tethering. May be overriden by secure settings
+ TETHER_DUN_APN. Value is a comma separated series of strings:
+ "name,apn,proxy,port,username,password,server,mmsc,mmsproxy,mmsport,mcc,mnc,auth,type"
+ note that empty fields can be ommitted: "name,apn,,,,,,,,,310,260,,DUN" -->
+ <string translatable="false" name="config_tether_apndata">Orange Internet PC,internet,,,orange,orange,,,,,214,03,,DUN"</string>
+
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-ms/config.xml b/overlay/frameworks/base/core/res/res/values-ms/config.xml
new file mode 100644
index 0000000..c9598c4
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-ms/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-nb/config.xml b/overlay/frameworks/base/core/res/res/values-nb/config.xml
new file mode 100644
index 0000000..c9598c4
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-nb/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-nl/config.xml b/overlay/frameworks/base/core/res/res/values-nl/config.xml
new file mode 100644
index 0000000..c9598c4
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-nl/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-pl/config.xml b/overlay/frameworks/base/core/res/res/values-pl/config.xml
new file mode 100644
index 0000000..c9598c4
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-pl/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-pt-rPT/config.xml b/overlay/frameworks/base/core/res/res/values-pt-rPT/config.xml
new file mode 100644
index 0000000..c9598c4
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-pt-rPT/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-pt/config.xml b/overlay/frameworks/base/core/res/res/values-pt/config.xml
new file mode 100644
index 0000000..c9598c4
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-pt/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-ro/config.xml b/overlay/frameworks/base/core/res/res/values-ro/config.xml
new file mode 100644
index 0000000..c9598c4
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-ro/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-ru/config.xml b/overlay/frameworks/base/core/res/res/values-ru/config.xml
new file mode 100644
index 0000000..c9598c4
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-ru/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-sk/config.xml b/overlay/frameworks/base/core/res/res/values-sk/config.xml
new file mode 100644
index 0000000..c9598c4
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-sk/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-sl/config.xml b/overlay/frameworks/base/core/res/res/values-sl/config.xml
new file mode 100644
index 0000000..c9598c4
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-sl/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-sr/config.xml b/overlay/frameworks/base/core/res/res/values-sr/config.xml
new file mode 100644
index 0000000..c9598c4
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-sr/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-sv/config.xml b/overlay/frameworks/base/core/res/res/values-sv/config.xml
new file mode 100644
index 0000000..c9598c4
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-sv/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-sw/config.xml b/overlay/frameworks/base/core/res/res/values-sw/config.xml
new file mode 100644
index 0000000..c9598c4
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-sw/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-th/config.xml b/overlay/frameworks/base/core/res/res/values-th/config.xml
new file mode 100644
index 0000000..c9598c4
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-th/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-tl/config.xml b/overlay/frameworks/base/core/res/res/values-tl/config.xml
new file mode 100644
index 0000000..c9598c4
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-tl/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-tr/config.xml b/overlay/frameworks/base/core/res/res/values-tr/config.xml
new file mode 100644
index 0000000..c9598c4
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-tr/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-uk/config.xml b/overlay/frameworks/base/core/res/res/values-uk/config.xml
new file mode 100644
index 0000000..c9598c4
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-uk/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-vi/config.xml b/overlay/frameworks/base/core/res/res/values-vi/config.xml
new file mode 100644
index 0000000..c9598c4
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-vi/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-zh-rCN/config.xml b/overlay/frameworks/base/core/res/res/values-zh-rCN/config.xml
new file mode 100644
index 0000000..c9598c4
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-zh-rCN/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-zh-rTW/config.xml b/overlay/frameworks/base/core/res/res/values-zh-rTW/config.xml
new file mode 100644
index 0000000..c9598c4
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-zh-rTW/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-zu/config.xml b/overlay/frameworks/base/core/res/res/values-zu/config.xml
new file mode 100644
index 0000000..c9598c4
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-zu/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values/config.xml b/overlay/frameworks/base/core/res/res/values/config.xml
new file mode 100644
index 0000000..0fcbe63
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values/config.xml
@@ -0,0 +1,253 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+-->
+
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+
+ <!-- If this is true, the screen will fade off. -->
+ <bool name="config_animateScreenLights">false</bool>
+
+ <!-- Default color for notification LED is white. -->
+ <color name="config_defaultNotificationColor">#ffffffff</color>
+
+ <!-- Default LED on time for notification LED in milliseconds. -->
+ <integer name="config_defaultNotificationLedOn">1000</integer>
+
+ <!-- Default LED off time for notification LED in milliseconds. -->
+ <integer name="config_defaultNotificationLedOff">9000</integer>
+
+ <!-- Whether a software navigation bar should be shown. NOTE: in the future this may be
+ autodetected from the Configuration. -->
+ <bool name="config_showNavigationBar">true</bool>
+
+ <!-- Flag indicating whether the we should enable the automatic brightness in Settings.
+ Software implementation will be used if config_hardware_auto_brightness_available is not set -->
+ <bool name="config_automatic_brightness_available">true</bool>
+
+ <!-- Array of light sensor LUX values to define our levels for auto backlight brightness support.
+ The N entries of this array define N 1 zones as follows:
+
+ Zone 0: 0 <= LUX < array[0]
+ Zone 1: array[0] <= LUX < array[1]
+ ...
+ Zone N: array[N - 1] <= LUX < array[N]
+ Zone N + 1 array[N] <= LUX < infinity
+
+ Must be overridden in platform specific overlays -->
+ <integer-array name="config_autoBrightnessLevels">
+ <item>10</item>
+ <item>50</item>
+ <item>100</item>
+ <item>200</item>
+ <item>400</item>
+ <item>500</item>
+ <item>800</item>
+ <item>1000</item>
+ <item>1600</item>
+ <item>3000</item>
+ <item>10000</item>
+ </integer-array>
+
+ <!-- Array of output values for LCD backlight corresponding to the LUX values
+ in the config_autoBrightnessLevels array. This array should have size one greater
+ than the size of the config_autoBrightnessLevels array.
+ This must be overridden in platform specific overlays -->
+ <integer-array name="config_autoBrightnessLcdBacklightValues">
+ <item>51</item> <!-- 0-10 -->
+ <item>51</item> <!-- 10-50 -->
+ <item>51</item> <!-- 50-100 -->
+ <item>51</item> <!-- 100-200 -->
+ <item>71</item> <!-- 200-400 -->
+ <item>80</item> <!-- 400-500 -->
+ <item>96</item> <!-- 500-800 -->
+ <item>108</item> <!-- 800-1000 -->
+ <item>144</item> <!-- 1000-1600 -->
+ <item>181</item> <!-- 1600-3000 -->
+ <item>254</item> <!-- 3000-10000 -->
+ <item>255</item> <!-- 10000+ -->
+ </integer-array>
+
+ <!-- Array of output values for button backlight corresponding to the LUX values
+ in the config_autoBrightnessLevels array. This array should have size one greater
+ than the size of the config_autoBrightnessLevels array.
+ This must be overridden in platform specific overlays -->
+ <integer-array name="config_autoBrightnessButtonBacklightValues">
+ <item>0</item>
+ <item>0</item>
+ <item>0</item>
+ <item>0</item>
+ <item>0</item>
+ <item>0</item>
+ <item>0</item>
+ <item>0</item>
+ <item>0</item>
+ <item>0</item>
+ <item>0</item>
+ <item>0</item>
+ </integer-array>
+
+ <!-- Minimum screen brightness allowed by the power manager. -->
+ <integer name="config_screenBrightnessDim">1</integer>
+
+ <!-- Default screen brightness setting.
+ Must be in the range specified by minimum and maximum. -->
+ <integer name="config_screenBrightnessSettingDefault">87</integer>
+
+ <!-- Minimum screen brightness setting allowed by the power manager.
+ The user is forbidden from setting the brightness below this level. -->
+ <integer name="config_screenBrightnessSettingMinimum">1</integer>
+
+ <!-- The duration (in milliseconds) that the radio will scan for a signal
+ when there's no network connection. If the scan doesn't timeout, use zero -->
+ <integer name="config_radioScanningTimeout">9000</integer>
+
+ <!-- List of regexpressions describing the interface (if any) that represent tetherable
+ USB interfaces. If the device doesn't want to support tething over USB this should
+ be empty. An example would be "usb.*" -->
+ <string-array translatable="false" name="config_tether_usb_regexs">
+ <item>"usb\\d"</item>
+ </string-array>
+
+ <!-- List of regexpressions describing the interface (if any) that represent tetherable
+ Wifi interfaces. If the device doesn't want to support tethering over Wifi this
+ should be empty. An example would be "softap.*" -->
+ <string-array translatable="false" name="config_tether_wifi_regexs">
+ <item>"wlan0"</item>
+ <item>"softap.*"</item>
+ </string-array>
+
+ <!-- List of regexpressions describing the interface (if any) that represent tetherable
+ bluetooth interfaces. If the device doesn't want to support tethering over bluetooth this
+ should be empty. -->
+ <string-array translatable="false" name="config_tether_bluetooth_regexs">
+ <item>"bt-pan"</item>
+ </string-array>
+
+ <!-- Array of allowable ConnectivityManager network types for tethering -->
+ <!-- Common options are [1, 4] for TYPE_WIFI and TYPE_MOBILE_DUN or
+ [0,1,5,7] for TYPE_MOBILE, TYPE_WIFI, TYPE_MOBILE_HIPRI and TYPE_BLUETOOTH -->
+ <integer-array translatable="false" name="config_tether_upstream_types">
+ <item>0</item>
+ <item>1</item>
+ <item>5</item>
+ <item>7</item>
+ </integer-array>
+
+ <!-- If this is true, the screen will come on when you unplug usb/power/whatever. -->
+ <bool name="config_unplugTurnsOnScreen">true</bool>
+
+ <!-- Boolean indicating whether the wifi chipset has dual frequency band support -->
+ <bool translatable="false" name="config_wifi_dual_band_support">true</bool>
+
+ <!-- Boolean indicating whether the wifi chipset has background scan support -->
+ <bool translatable="false" name="config_wifi_background_scan_support">false</bool>
+
+ <!-- Is the notification LED intrusive? Used to decide if there should be a disable option -->
+ <bool name="config_intrusiveNotificationLed">true</bool>
+
+ <!-- This string array should be overridden by the device to present a list of network
+ attributes. This is used by the connectivity manager to decide which networks can coexist
+ based on the hardware -->
+ <!-- An Array of "[Connection name],[ConnectivityManager.TYPE_xxxx],
+ [associated radio-type],[priority],[restoral-timer(ms)],[dependencyMet] -->
+ <!-- the 5th element "resore-time" indicates the number of milliseconds to delay
+ before automatically restore the default connection. Set -1 if the connection
+ does not require auto-restore. -->
+ <!-- the 6th element indicates boot-time dependency-met value. -->
+ <string-array translatable="false" name="networkAttributes">
+ <item>"wifi,1,1,1,-1,true"</item>
+ <item>"mobile,0,0,0,-1,true"</item>
+ <item>"mobile_mms,2,0,2,60000,true"</item>
+ <item>"mobile_supl,3,0,2,60000,true"</item>
+ <item>"mobile_dun,4,0,2,60000,true"</item>
+ <item>"mobile_hipri,5,0,3,60000,true"</item>
+ <item>"mobile_fota,10,0,2,60000,true"</item>
+ <item>"mobile_ims,11,0,2,60000,true"</item>
+ <item>"mobile_cbs,12,0,2,60000,true"</item>
+ <item>"wifi_p2p,13,1,0,-1,true"</item>
+ <item>"bluetooth,7,7,2,-1,true"</item>
+ </string-array>
+
+ <!-- This string array should be overridden by the device to present a list of radio
+ attributes. This is used by the connectivity manager to decide which networks can coexist
+ based on the hardware -->
+ <!-- An Array of "[ConnectivityManager connectionType],
+ [# simultaneous connection types]" -->
+ <string-array translatable="false" name="radioAttributes">
+ <item>"1,1"</item>
+ <item>"0,1"</item>
+ <item>"7,1"</item>
+ </string-array>
+
+ <!-- Vibrator pattern for feedback about a long screen/key press -->
+ <integer-array name="config_longPressVibePattern">
+ <item>0</item>
+ <item>7</item>
+ <item>10</item>
+ </integer-array>
+
+ <!-- Vibrator pattern for feedback about touching a virtual key -->
+ <integer-array name="config_virtualKeyVibePattern">
+ <item>7</item>
+ </integer-array>
+
+ <!-- Vibrator pattern for a very short but reliable vibration for soft keyboard tap -->
+ <integer-array name="config_keyboardTapVibePattern">
+ <item>5</item>
+ </integer-array>
+
+ <!-- Boolean indicating if restoring network selection should be skipped -->
+ <!-- The restoring is handled by modem if it is true -->
+ <bool translatable="false" name="skip_restoring_network_selection">true</bool>
+
+ <!-- Set to true to add links to Cell Broadcast app from Settings and MMS app. -->
+ <bool name="config_cellBroadcastAppLinks">true</bool>
+
+ <!-- Shutdown if the battery temperature exceeds (this value * 0.1) Celsius. -->
+ <integer name="config_shutdownBatteryTemperature">600</integer>
+
+ <bool name="config_ui_enableFadingMarquee">false</bool>
+
+ <string-array name="config_usbHostBlacklist">
+ <!-- /dev/bus/usb/001 is used for the modem -->
+ <item>/dev/bus/usb/001</item>
+ </string-array>
+
+ <!-- reference volume index for music stream to limit headphone volume and display warning -->
+ <integer name="config_safe_media_volume_index">7</integer>
+
+ <bool name="config_enableWifiDisplay">true</bool>
+
+ <!-- Minimum span needed to begin a touch scaling gesture.
+ If the span is equal to or greater than this size, a scaling gesture
+ will begin, where supported. (See android.view.ScaleGestureDetector)
+
+ This value has been tuned for the "msm8960" device. -->
+ <dimen name="config_minScalingSpan">35mm</dimen>
+
+ <!-- Setting this true forces the headset jack switches to use the/dev/input/event subsystem
+ rather than the uevent framework. -->
+ <bool name="config_useDevInputEventForAudioJack">false</bool>
+
+ <!-- Component name of the default wallpaper. This will be ImageWallpaper if not specified -->
+ <string name="default_wallpaper_component" translatable="false">com.android.phasebeam/.PhaseBeamWallpaper</string>
+
+ <!-- The default iface on which to monitor data use -->
+ <string name="config_datause_iface" translatable="false">rmnet_usb0</string>
+
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/xml/power_profile.xml b/overlay/frameworks/base/core/res/res/xml/power_profile.xml
new file mode 100644
index 0000000..2ddce57
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/xml/power_profile.xml
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+**
+** Copyright 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.
+*/
+-->
+<device name="Android">
+ <!-- All values are in mAh except as noted -->
+ <item name="none">0</item>
+ <item name="screen.on">42.4</item>
+ <item name="screen.full">211.6</item>
+ <item name="bluetooth.active">66.2</item>
+ <item name="bluetooth.on">0.7</item>
+ <item name="wifi.on">3.16</item>
+ <item name="wifi.active">62.09</item>
+ <item name="wifi.scan">52.1</item>
+ <item name="dsp.audio">0.1</item>
+ <item name="dsp.video">0.1</item>
+ <item name="gps.on">59.7</item>
+ <item name="radio.active">185.6</item>
+ <!-- The current consumed by the radio when it is scanning for a signal -->
+ <item name="radio.scanning">122.68</item>
+ <!-- Current consumed by the radio at different signal strengths, when paging -->
+ <array name="radio.on"> <!-- Strength 0 to BINS-1 -->
+ <value>1.7</value>
+ <value>2.4</value>
+ </array>
+ <!-- Different CPU speeds as reported in
+ /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state -->
+ <array name="cpu.speeds">
+ <value>384000</value> <!-- 384 MHz CPU speed -->
+ <value>486000</value> <!-- 486 MHz CPU speed -->
+ <value>594000</value> <!-- 594 MHz CPU speed -->
+ <value>702000</value> <!-- 702 MHz CPU speed -->
+ <value>810000</value> <!-- 810 MHz CPU speed -->
+ <value>918000</value> <!-- 918 MHz CPU speed -->
+ <value>1026000</value> <!-- 1026 MHz CPU speed -->
+ <value>1134000</value> <!-- 1134 MHz CPU speed -->
+ <value>1242000</value> <!-- 1242 MHz CPU speed -->
+ <value>1350000</value> <!-- 1350 MHz CPU speed -->
+ <value>1458000</value> <!-- 1458 MHz CPU speed -->
+ <value>1512000</value> <!-- 1512 MHz CPU speed -->
+ </array>
+ <!-- Power consumption when CPU is idle -->
+ <item name="cpu.idle">3.5</item>
+ <item name="cpu.awake">35.33</item>
+ <!-- Power consumption at different speeds -->
+ <array name="cpu.active">
+ <value>92.6</value> <!-- 384 MHz CPU speed -->
+ <value>108.6</value> <!-- 486 MHz CPU speed -->
+ <value>118.8</value> <!-- 594 MHz CPU speed -->
+ <value>121.4</value> <!-- 702 MHz CPU speed -->
+ <value>127.3</value> <!-- 810 MHz CPU speed -->
+ <value>133.1</value> <!-- 918 MHz CPU speed -->
+ <value>173.3</value> <!-- 1026 MHz CPU speed -->
+ <value>209.5</value> <!-- 1134 MHz CPU speed -->
+ <value>216.5</value> <!-- 1242 MHz CPU speed -->
+ <value>228.5</value> <!-- 1350 MHz CPU speed -->
+ <value>236.0</value> <!-- 1458 MHz CPU speed -->
+ <value>239.7</value> <!-- 1512 MHz CPU speed -->
+ </array>
+ <!-- This is the battery capacity in mAh -->
+ <item name="battery.capacity">2100</item>
+</device>
diff --git a/overlay/frameworks/base/core/res/res/xml/storage_list.xml b/overlay/frameworks/base/core/res/res/xml/storage_list.xml
new file mode 100644
index 0000000..344fe1e
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/xml/storage_list.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+**
+** Copyright 2011, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License")
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- See storage config details at http://source.android.com/tech/storage/ -->
+
+<StorageList xmlns:android="http://schemas.android.com/apk/res/android">
+ <!-- internal emulated storage -->
+ <storage
+ android:storageDescription="@string/storage_internal"
+ android:emulated="true"
+ android:mtpReserve="100" />
+</StorageList>
diff --git a/overlay/frameworks/base/packages/SettingsProvider/res/values/defaults.xml b/overlay/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
new file mode 100644
index 0000000..132e860
--- /dev/null
+++ b/overlay/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
@@ -0,0 +1,26 @@
+<?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.
+ */
+-->
+<resources>
+ <!-- 30 seconds for default screen timeout -->
+ <integer name="def_screen_off_timeout">30000</integer>
+ <!-- Set the automatic brightness mode on by default -->
+ <bool name="def_screen_brightness_automatic_mode">false</bool>
+ <!-- Default screen brightness, from 0 to 255. 87 is 34%. -->
+ <integer name="def_screen_brightness">87</integer>
+</resources>
diff --git a/overlay/frameworks/base/packages/SystemUI/res/values/config.xml b/overlay/frameworks/base/packages/SystemUI/res/values/config.xml
new file mode 100644
index 0000000..bf2577e
--- /dev/null
+++ b/overlay/frameworks/base/packages/SystemUI/res/values/config.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+ for different hardware and product builds. -->
+<resources>
+
+ <!-- Control whether status bar should distinguish HSPA data icon form UMTS
+ data icon on devices -->
+ <bool name="config_hspa_data_distinguishable">true</bool>
+
+ <!-- Vibration duration for MultiWaveView used in SearchPanelView -->
+ <integer translatable="false" name="config_search_panel_view_vibration_duration">7</integer>
+</resources>
+
diff --git a/overlay/packages/apps/Mms/res/xml-mcc310-mnc026/mms_config.xml b/overlay/packages/apps/Mms/res/xml-mcc310-mnc026/mms_config.xml
new file mode 100644
index 0000000..95b6e0e
--- /dev/null
+++ b/overlay/packages/apps/Mms/res/xml-mcc310-mnc026/mms_config.xml
@@ -0,0 +1,34 @@
+<?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.
+-->
+
+<!-- T-Mobile U.S. mcc=310, mnc=026 -->
+
+<mms_config version="3">
+ <!-- Maximum message size in bytes for a MMS message -->
+ <int name="maxMessageSize">1048576</int>
+
+ <!-- Maximum height for an attached image -->
+ <int name="maxImageHeight">1944</int>
+
+ <!-- Maximum width for an attached image -->
+ <int name="maxImageWidth">2592</int>
+
+ <!-- User-Agent parameter used in MMS http request -->
+ <string name="userAgent">Nexus4</string>
+
+ <!-- UAProf URL -->
+ <string name="uaProfUrl">http://www.google.com/oha/rdf/ua-profile-kila.xml</string>
+</mms_config>
diff --git a/overlay/packages/apps/Mms/res/xml-mcc310-mnc090/mms_config.xml b/overlay/packages/apps/Mms/res/xml-mcc310-mnc090/mms_config.xml
new file mode 100755
index 0000000..7f141e3
--- /dev/null
+++ b/overlay/packages/apps/Mms/res/xml-mcc310-mnc090/mms_config.xml
@@ -0,0 +1,34 @@
+<?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.
+-->
+
+<!-- AT&T U.S. mcc=310, mnc=090 -->
+
+<mms_config version="3">
+ <!-- Maximum message size in bytes for a MMS message -->
+ <int name="maxMessageSize">614400</int>
+
+ <!-- Maximum height for an attached image -->
+ <int name="maxImageHeight">1000</int>
+
+ <!-- Maximum width for an attached image -->
+ <int name="maxImageWidth">1296</int>
+
+ <!-- User-Agent parameter used in MMS http request -->
+ <string name="userAgent">Nexus4</string>
+
+ <!-- UAProf URL -->
+ <string name="uaProfUrl">http://www.google.com/oha/rdf/ua-profile-kila.xml</string>
+</mms_config>
diff --git a/overlay/packages/apps/Mms/res/xml-mcc310-mnc170/mms_config.xml b/overlay/packages/apps/Mms/res/xml-mcc310-mnc170/mms_config.xml
new file mode 100644
index 0000000..1abe473
--- /dev/null
+++ b/overlay/packages/apps/Mms/res/xml-mcc310-mnc170/mms_config.xml
@@ -0,0 +1,34 @@
+<?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.
+-->
+
+<!-- T-Mobile U.S. mcc=310, mnc=170 -->
+
+<mms_config version="3">
+ <!-- Maximum message size in bytes for a MMS message -->
+ <int name="maxMessageSize">1048576</int>
+
+ <!-- Maximum height for an attached image -->
+ <int name="maxImageHeight">1944</int>
+
+ <!-- Maximum width for an attached image -->
+ <int name="maxImageWidth">2592</int>
+
+ <!-- User-Agent parameter used in MMS http request -->
+ <string name="userAgent">Nexus4</string>
+
+ <!-- UAProf URL -->
+ <string name="uaProfUrl">http://www.google.com/oha/rdf/ua-profile-kila.xml</string>
+</mms_config>
diff --git a/overlay/packages/apps/Mms/res/xml-mcc310-mnc260/mms_config.xml b/overlay/packages/apps/Mms/res/xml-mcc310-mnc260/mms_config.xml
new file mode 100644
index 0000000..5bd2547
--- /dev/null
+++ b/overlay/packages/apps/Mms/res/xml-mcc310-mnc260/mms_config.xml
@@ -0,0 +1,34 @@
+<?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.
+-->
+
+<!-- T-Mobile U.S. mcc=310, mnc=260 -->
+
+<mms_config version="3">
+ <!-- Maximum message size in bytes for a MMS message -->
+ <int name="maxMessageSize">1048576</int>
+
+ <!-- Maximum height for an attached image -->
+ <int name="maxImageHeight">1944</int>
+
+ <!-- Maximum width for an attached image -->
+ <int name="maxImageWidth">2592</int>
+
+ <!-- User-Agent parameter used in MMS http request -->
+ <string name="userAgent">Nexus4</string>
+
+ <!-- UAProf URL -->
+ <string name="uaProfUrl">http://www.google.com/oha/rdf/ua-profile-kila.xml</string>
+</mms_config>
diff --git a/overlay/packages/apps/Mms/res/xml-mcc310-mnc380/mms_config.xml b/overlay/packages/apps/Mms/res/xml-mcc310-mnc380/mms_config.xml
new file mode 100755
index 0000000..c0103c5
--- /dev/null
+++ b/overlay/packages/apps/Mms/res/xml-mcc310-mnc380/mms_config.xml
@@ -0,0 +1,39 @@
+<?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.
+-->
+
+<!-- Version History
+ version 1 - initial version.
+ version 2 - added recipientLimit.
+ version 3 - added min/max recycler values.
+-->
+<!-- AT&T U.S. mcc=310, mnc=380 -->
+
+<mms_config version="3">
+ <!-- Maximum message size in bytes for a MMS message -->
+ <int name="maxMessageSize">614400</int>
+
+ <!-- Maximum height for an attached image -->
+ <int name="maxImageHeight">1000</int>
+
+ <!-- Maximum width for an attached image -->
+ <int name="maxImageWidth">1296</int>
+
+ <!-- User-Agent parameter used in MMS http request -->
+ <string name="userAgent">Nexus4</string>
+
+ <!-- UAProf URL -->
+ <string name="uaProfUrl">http://www.google.com/oha/rdf/ua-profile-kila.xml</string>
+</mms_config>
diff --git a/overlay/packages/apps/Mms/res/xml-mcc310-mnc410/mms_config.xml b/overlay/packages/apps/Mms/res/xml-mcc310-mnc410/mms_config.xml
new file mode 100755
index 0000000..28867a9
--- /dev/null
+++ b/overlay/packages/apps/Mms/res/xml-mcc310-mnc410/mms_config.xml
@@ -0,0 +1,34 @@
+<?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.
+-->
+
+<!-- AT&T U.S. mcc=310, mnc=410 -->
+
+<mms_config version="3">
+ <!-- Maximum message size in bytes for a MMS message -->
+ <int name="maxMessageSize">614400</int>
+
+ <!-- Maximum height for an attached image -->
+ <int name="maxImageHeight">1000</int>
+
+ <!-- Maximum width for an attached image -->
+ <int name="maxImageWidth">1296</int>
+
+ <!-- User-Agent parameter used in MMS http request -->
+ <string name="userAgent">Nexus4</string>
+
+ <!-- UAProf URL -->
+ <string name="uaProfUrl">http://www.google.com/oha/rdf/ua-profile-kila.xml</string>
+</mms_config>
diff --git a/overlay/packages/apps/Mms/res/xml-mcc310-mnc490/mms_config.xml b/overlay/packages/apps/Mms/res/xml-mcc310-mnc490/mms_config.xml
new file mode 100644
index 0000000..46c4267
--- /dev/null
+++ b/overlay/packages/apps/Mms/res/xml-mcc310-mnc490/mms_config.xml
@@ -0,0 +1,34 @@
+<?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.
+-->
+
+<!-- T-Mobile U.S. mcc=310, mnc=490 -->
+
+<mms_config version="3">
+ <!-- Maximum message size in bytes for a MMS message -->
+ <int name="maxMessageSize">1048576</int>
+
+ <!-- Maximum height for an attached image -->
+ <int name="maxImageHeight">1944</int>
+
+ <!-- Maximum width for an attached image -->
+ <int name="maxImageWidth">2592</int>
+
+ <!-- User-Agent parameter used in MMS http request -->
+ <string name="userAgent">Nexus4</string>
+
+ <!-- UAProf URL -->
+ <string name="uaProfUrl">http://www.google.com/oha/rdf/ua-profile-kila.xml</string>
+</mms_config>
diff --git a/overlay/packages/apps/Mms/res/xml-mcc310-mnc560/mms_config.xml b/overlay/packages/apps/Mms/res/xml-mcc310-mnc560/mms_config.xml
new file mode 100755
index 0000000..cd89021
--- /dev/null
+++ b/overlay/packages/apps/Mms/res/xml-mcc310-mnc560/mms_config.xml
@@ -0,0 +1,34 @@
+<?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.
+-->
+
+<!-- AT&T U.S. mcc=310, mnc=560 -->
+
+<mms_config version="3">
+ <!-- Maximum message size in bytes for a MMS message -->
+ <int name="maxMessageSize">614400</int>
+
+ <!-- Maximum height for an attached image -->
+ <int name="maxImageHeight">1000</int>
+
+ <!-- Maximum width for an attached image -->
+ <int name="maxImageWidth">1296</int>
+
+ <!-- User-Agent parameter used in MMS http request -->
+ <string name="userAgent">Nexus4</string>
+
+ <!-- UAProf URL -->
+ <string name="uaProfUrl">http://www.google.com/oha/rdf/ua-profile-kila.xml</string>
+</mms_config>
diff --git a/overlay/packages/apps/Mms/res/xml-mcc310-mnc680/mms_config.xml b/overlay/packages/apps/Mms/res/xml-mcc310-mnc680/mms_config.xml
new file mode 100755
index 0000000..6410e89
--- /dev/null
+++ b/overlay/packages/apps/Mms/res/xml-mcc310-mnc680/mms_config.xml
@@ -0,0 +1,34 @@
+<?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.
+-->
+
+<!-- AT&T U.S. mcc=310, mnc=680 -->
+
+<mms_config version="3">
+ <!-- Maximum message size in bytes for a MMS message -->
+ <int name="maxMessageSize">614400</int>
+
+ <!-- Maximum height for an attached image -->
+ <int name="maxImageHeight">1000</int>
+
+ <!-- Maximum width for an attached image -->
+ <int name="maxImageWidth">1296</int>
+
+ <!-- User-Agent parameter used in MMS http request -->
+ <string name="userAgent">Nexus4</string>
+
+ <!-- UAProf URL -->
+ <string name="uaProfUrl">http://www.google.com/oha/rdf/ua-profile-kila.xml</string>
+</mms_config>
diff --git a/overlay/packages/apps/Mms/res/xml/mms_config.xml b/overlay/packages/apps/Mms/res/xml/mms_config.xml
new file mode 100644
index 0000000..21c9c54
--- /dev/null
+++ b/overlay/packages/apps/Mms/res/xml/mms_config.xml
@@ -0,0 +1,72 @@
+<?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.
+-->
+
+<!-- Version History
+ version 1 - initial version.
+ version 2 - added recipientLimit.
+ version 3 - added min/max recycler values.
+ version 4 - added sms to mms text threshold.
+-->
+
+<mms_config version="4">
+ <!-- Flag indicating whether MMS should be enabled -->
+ <bool name="enabledMMS">true</bool>
+
+ <!-- Maximum message size in bytes for a MMS message -->
+ <int name="maxMessageSize">307200</int>
+
+ <!-- Maximum height for an attached image -->
+ <int name="maxImageHeight">480</int>
+
+ <!-- Maximum width for an attached image -->
+ <int name="maxImageWidth">640</int>
+
+ <!-- Maximum number of SMS message to save per thread before auto-delete kicks in.
+ This is the default value. -->
+ <int name="defaultSMSMessagesPerThread">500</int>
+
+ <!-- Maximum number of MMS message to save per thread before auto-delete kicks in.
+ This is the default value. -->
+ <int name="defaultMMSMessagesPerThread">50</int>
+
+ <!-- Minimum value for the number of messages kept per conversation. The user can never
+ set the limit below this value. -->
+ <int name="minMessageCountPerThread">10</int>
+
+ <!-- Maximum value for the number of messages kept per conversation. The user can never
+ set the limit above this value. -->
+ <int name="maxMessageCountPerThread">5000</int>
+
+ <!-- UAProf URL -->
+ <string name="uaProfUrl">http://www.google.com/oha/rdf/ua-profile-kila.xml</string>
+
+ <!-- Maximum number of recipients allowed per message. Use a value of -1
+ to indicate no limit. -->
+ <int name="recipientLimit">-1</int>
+
+ <!-- If true, The mms support slide duration.
+ If false, The mms does not support slide duration and we have to
+ set duration value. -->
+ <bool name="enableSlideDuration">true</bool>
+
+ <!-- Maximum length for message text. Use a value of -1
+ to indicate default value -->
+ <int name="maxMessageTextSize">-1</int>
+
+ <!-- User-Agent parameter used in MMS http request -->
+ <string name="userAgent">Nexus4</string>
+
+</mms_config>
diff --git a/overlay/packages/apps/Phone/res/values/config.xml b/overlay/packages/apps/Phone/res/values/config.xml
new file mode 100644
index 0000000..355bf1c
--- /dev/null
+++ b/overlay/packages/apps/Phone/res/values/config.xml
@@ -0,0 +1,26 @@
+<?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.
+-->
+
+<!-- Phone app resources that may need to be customized
+ for different hardware or product builds. -->
+<resources>
+ <!-- Determine whether calls to mute the microphone in PhoneUtils
+ are routed through the android.media.AudioManager class (true) or through
+ the com.android.internal.telephony.Phone interface (false). -->
+ <bool name="send_mic_mute_to_AudioManager">true</bool>
+ <!-- Flag indicating if the tty is enabled -->
+ <bool name="tty_enabled">true</bool>
+</resources>
diff --git a/pmic8xxx_pwrkey.kcm b/pmic8xxx_pwrkey.kcm
new file mode 100644
index 0000000..7ee6e5a
--- /dev/null
+++ b/pmic8xxx_pwrkey.kcm
@@ -0,0 +1,15 @@
+# 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.
+
+type SPECIAL_FUNCTION
diff --git a/pmic8xxx_pwrkey.kl b/pmic8xxx_pwrkey.kl
new file mode 100644
index 0000000..469d742
--- /dev/null
+++ b/pmic8xxx_pwrkey.kl
@@ -0,0 +1 @@
+key 116 POWER WAKE
diff --git a/proprietary-blobs.txt b/proprietary-blobs.txt
new file mode 100644
index 0000000..bd281b6
--- /dev/null
+++ b/proprietary-blobs.txt
@@ -0,0 +1,178 @@
+# Copyright (C) 2011 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# This file is generated by device/common/generate-blob-lists.sh - DO NOT EDIT
+
+/system/bin/ATFWD-daemon
+/system/bin/bridgemgrd
+/system/bin/btnvtool
+/system/bin/diag_klog
+/system/bin/diag_mdlog
+/system/bin/ds_fmc_appd
+/system/bin/efsks
+/system/bin/hci_qcomm_init
+/system/bin/ks
+/system/bin/mm-audio-send-cal
+/system/bin/mm-qcamera-daemon
+/system/bin/mpdecision
+/system/bin/netmgrd
+/system/bin/nl_listener
+/system/bin/PktRspTest
+/system/bin/port-bridge
+/system/bin/qcks
+/system/bin/qmuxd
+/system/bin/qseecomd
+/system/bin/radish
+/system/bin/rmt_storage
+/system/bin/sensors.qcom
+/system/bin/sns_cm_conc_test
+/system/bin/sns_cm_test
+/system/bin/sns_debug_file_test
+/system/bin/sns_dsps_tc0001
+/system/bin/sns_smr_loopback_test
+/system/bin/test_diag
+/system/bin/thermald
+/system/bin/usbhub
+/system/bin/usbhub_init
+/system/bin/v4l2-qcamera-app
+/system/etc/diag.cfg
+/system/etc/DxHDCP.cfg
+/system/etc/firmware/a225p5_pm4.fw
+/system/etc/firmware/a225_pfp.fw
+/system/etc/firmware/a225_pm4.fw
+/system/etc/firmware/a300_pfp.fw
+/system/etc/firmware/a300_pm4.fw
+/system/etc/firmware/leia_pfp_470.fw
+/system/etc/firmware/leia_pm4_470.fw
+/system/etc/firmware/vidc.b00
+/system/etc/firmware/vidc.b01
+/system/etc/firmware/vidc.b02
+/system/etc/firmware/vidc.b03
+/system/etc/firmware/vidc.mdt
+/system/etc/firmware/vidcfw.elf
+/system/etc/firmware/vidc_1080p.fw
+/system/etc/firmware/wcd9310/wcd9310_anc.bin
+/system/etc/firmware/wcd9310/wcd9310_mbhc.bin
+/system/lib/egl/eglsubAndroid.so
+/system/lib/egl/libEGL_adreno200.so
+/system/lib/egl/libGLESv1_CM_adreno200.so
+/system/lib/egl/libGLESv2S3D_adreno200.so
+/system/lib/egl/libGLESv2_adreno200.so
+/system/lib/egl/libplayback_adreno200.so
+/system/lib/egl/libq3dtools_adreno200.so
+/system/lib/hw/sensors.msm8960.so
+/system/lib/libacdbloader.so
+/system/lib/libAKM.so
+/system/lib/libalsautils.so
+/system/lib/libaudcal.so
+/system/lib/libaudioalsa.so
+/system/lib/libaudioparsers.so
+/system/lib/libC2D2.so
+/system/lib/libc2d2_a3xx.so
+/system/lib/libc2d2_z180.so
+/system/lib/libcamera_fast_af.so
+/system/lib/libchromatix_imx111_default_video.so
+/system/lib/libchromatix_imx111_preview.so
+/system/lib/libchromatix_imx111_zsl.so
+/system/lib/libchromatix_imx119_default_video.so
+/system/lib/libchromatix_imx119_preview.so
+/system/lib/libchromatix_mt9e013_default_video.so
+/system/lib/libchromatix_mt9e013_preview.so
+/system/lib/libchromatix_mt9e013_video_hfr.so
+/system/lib/libchromatix_ov5647_default_video.so
+/system/lib/libchromatix_ov5647_preview.so
+/system/lib/libchromatix_ov5647_video_hfr.so
+/system/lib/libchromatix_ov8825_default_video.so
+/system/lib/libchromatix_ov8825_preview.so
+/system/lib/libchromatix_ov9726_default_video.so
+/system/lib/libchromatix_ov9726_preview.so
+/system/lib/libchromatix_s5k4e1_default_video.so
+/system/lib/libchromatix_s5k4e1_preview.so
+/system/lib/libchromatix_vx6953_default_video.so
+/system/lib/libchromatix_vx6953_preview.so
+/system/lib/libCommandSvc.so
+/system/lib/libconfigdb.so
+/system/lib/libcsd-client.so
+/system/lib/libdiag.so
+/system/lib/libdrmdiag.so
+/system/lib/libdrmfs.so
+/system/lib/libdrmtime.so
+/system/lib/libdsi_netctrl.so
+/system/lib/libdsprofile.so
+/system/lib/libdss.so
+/system/lib/libdsucsd.so
+/system/lib/libdsutils.so
+/system/lib/libDxHdcp.so
+/system/lib/libgemini.so
+/system/lib/libgsl.so
+/system/lib/libI420colorconvert.so
+/system/lib/libidl.so
+/system/lib/libimage-jpeg-dec-omx-comp.so
+/system/lib/libimage-jpeg-enc-omx-comp.so
+/system/lib/libimage-omx-common.so
+/system/lib/libllvm-a3xx.so
+/system/lib/libllvm-arm.so
+/system/lib/libloc_api_v02.so
+/system/lib/libmercury.so
+/system/lib/libmm-color-convertor.so
+/system/lib/libmmcamera_faceproc.so
+/system/lib/libmmcamera_frameproc.so
+/system/lib/libmmcamera_hdr_lib.so
+/system/lib/libmmcamera_image_stab.so
+/system/lib/libmmcamera_statsproc31.so
+/system/lib/libmmcamera_wavelet_lib.so
+/system/lib/libmmipl.so
+/system/lib/libmmjpeg.so
+/system/lib/libmmjps.so
+/system/lib/libmmmpo.so
+/system/lib/libmmmpod.so
+/system/lib/libmmstillomx.so
+/system/lib/libmorpho_noise_reduction.so
+/system/lib/libnetmgr.so
+/system/lib/liboemcamera.so
+/system/lib/libOmxAacDec.so
+/system/lib/libOmxWmaDec.so
+/system/lib/libOpenCL.so
+/system/lib/libOpenVG.so
+/system/lib/libqcci_legacy.so
+/system/lib/libqdi.so
+/system/lib/libqdp.so
+/system/lib/libqmi.so
+/system/lib/libqmiservices.so
+/system/lib/libqmi_cci.so
+/system/lib/libqmi_client_qmux.so
+/system/lib/libqmi_common_so.so
+/system/lib/libqmi_csi.so
+/system/lib/libqmi_csvt_srvc.so
+/system/lib/libqmi_encdec.so
+/system/lib/libQSEEComAPI.so
+/system/lib/libril-qc-qmi-1.so
+/system/lib/libril-qcril-hook-oem.so
+/system/lib/libsc-a2xx.so
+/system/lib/libsc-a3xx.so
+/system/lib/libsensor1.so
+/system/lib/libsensor_reg.so
+/system/lib/libsensor_test.so
+/system/lib/libsensor_user_cal.so
+/system/lib/libstagefright_hdcp.so
+/system/lib/libxml.so
+/system/lib/lib_dlb_msd.so
+/system/vendor/firmware/bcm2079x_firmware.ncd
+/system/vendor/firmware/bcm2079x_pre_firmware.ncd
+/system/vendor/firmware/discretix/dxhdcp2.b00
+/system/vendor/firmware/discretix/dxhdcp2.b01
+/system/vendor/firmware/discretix/dxhdcp2.b02
+/system/vendor/firmware/discretix/dxhdcp2.b03
+/system/vendor/firmware/discretix/dxhdcp2.mdt
+/system/vendor/lib/libdrmdecrypt.so
diff --git a/recovery.fstab b/recovery.fstab
new file mode 100644
index 0000000..5059c07
--- /dev/null
+++ b/recovery.fstab
@@ -0,0 +1,13 @@
+/boot emmc /dev/block/platform/msm_sdcc.1/by-name/boot
+/recovery emmc /dev/block/platform/msm_sdcc.1/by-name/recovery
+/misc emmc /dev/block/platform/msm_sdcc.1/by-name/misc
+/system ext4 /dev/block/platform/msm_sdcc.1/by-name/system
+/data ext4 /dev/block/platform/msm_sdcc.1/by-name/userdata length=-16384
+/cache ext4 /dev/block/platform/msm_sdcc.1/by-name/cache
+/radio emmc /dev/block/platform/msm_sdcc.1/by-name/modem
+/sbl1 emmc /dev/block/platform/msm_sdcc.1/by-name/sbl1
+/sbl2 emmc /dev/block/platform/msm_sdcc.1/by-name/sbl2
+/sbl3 emmc /dev/block/platform/msm_sdcc.1/by-name/sbl3
+/tz emmc /dev/block/platform/msm_sdcc.1/by-name/tz
+/rpm emmc /dev/block/platform/msm_sdcc.1/by-name/rpm
+/aboot emmc /dev/block/platform/msm_sdcc.1/by-name/aboot
diff --git a/recovery/Android.mk b/recovery/Android.mk
new file mode 100644
index 0000000..acacb74
--- /dev/null
+++ b/recovery/Android.mk
@@ -0,0 +1,13 @@
+LOCAL_PATH := $(call my-dir)
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_TAGS := eng
+LOCAL_C_INCLUDES += bootable/recovery
+LOCAL_SRC_FILES := recovery_ui.cpp
+
+# should match TARGET_RECOVERY_UI_LIB set in BoardConfig.mk
+LOCAL_MODULE := librecovery_ui_flo
+
+include $(BUILD_STATIC_LIBRARY)
+
+include $(CLEAR_VARS)
diff --git a/recovery/recovery_ui.cpp b/recovery/recovery_ui.cpp
new file mode 100644
index 0000000..c13f5c9
--- /dev/null
+++ b/recovery/recovery_ui.cpp
@@ -0,0 +1,110 @@
+/*
+ * Copyright 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.
+ */
+
+#include <linux/input.h>
+#include <sys/stat.h>
+#include <errno.h>
+#include <string.h>
+
+#include "common.h"
+#include "device.h"
+#include "screen_ui.h"
+
+const char* HEADERS[] = { "Volume up/down to move highlight;",
+ "power button to select.",
+ "",
+ NULL };
+
+const char* ITEMS[] = { "reboot system now",
+ "apply update from ADB",
+ "wipe data/factory reset",
+ "wipe cache partition",
+ NULL };
+
+class MakoUI : public ScreenRecoveryUI
+{
+public:
+ MakoUI() :
+ consecutive_power_keys(0) {
+ }
+
+ virtual KeyAction CheckKey(int key) {
+ if (IsKeyPressed(KEY_POWER) && key == KEY_VOLUMEUP) {
+ return TOGGLE;
+ }
+ if (key == KEY_POWER) {
+ ++consecutive_power_keys;
+ if (consecutive_power_keys >= 7) {
+ return REBOOT;
+ }
+ } else {
+ consecutive_power_keys = 0;
+ }
+ return ENQUEUE;
+ }
+
+private:
+ int consecutive_power_keys;
+};
+
+class MakoDevice : public Device
+{
+public:
+ MakoDevice() :
+ ui(new MakoUI) {
+ }
+
+ RecoveryUI* GetUI() { return ui; }
+
+ int HandleMenuKey(int key_code, int visible) {
+ if (visible) {
+ switch (key_code) {
+ case KEY_DOWN:
+ case KEY_VOLUMEDOWN:
+ return kHighlightDown;
+
+ case KEY_UP:
+ case KEY_VOLUMEUP:
+ return kHighlightUp;
+
+ case KEY_POWER:
+ return kInvokeItem;
+ }
+ }
+
+ return kNoAction;
+ }
+
+ BuiltinAction InvokeMenuItem(int menu_position) {
+ switch (menu_position) {
+ case 0: return REBOOT;
+ case 1: return APPLY_ADB_SIDELOAD;
+ case 2: return WIPE_DATA;
+ case 3: return WIPE_CACHE;
+ default: return NO_ACTION;
+ }
+ }
+
+ const char* const* GetMenuHeaders() { return HEADERS; }
+ const char* const* GetMenuItems() { return ITEMS; }
+
+private:
+ RecoveryUI* ui;
+};
+
+Device* make_device() {
+ return new MakoDevice;
+}
diff --git a/releasetools.py b/releasetools.py
new file mode 100644
index 0000000..ffb1baf
--- /dev/null
+++ b/releasetools.py
@@ -0,0 +1,197 @@
+import common
+import struct
+
+def FindRadio(zipfile):
+ try:
+ return zipfile.read("RADIO/radio.img")
+ except KeyError:
+ return None
+
+
+def FullOTA_InstallEnd(info):
+ try:
+ bootloader_img = info.input_zip.read("RADIO/bootloader.img")
+ except KeyError:
+ print "no bootloader.img in target_files; skipping install"
+ else:
+ WriteBootloader(info, bootloader_img)
+
+ radio_img = FindRadio(info.input_zip)
+ if radio_img:
+ WriteRadio(info, radio_img)
+ else:
+ print "no radio.img in target_files; skipping install"
+
+
+def IncrementalOTA_VerifyEnd(info):
+ target_radio_img = FindRadio(info.target_zip)
+ source_radio_img = FindRadio(info.source_zip)
+ if not target_radio_img or not source_radio_img: return
+ if source_radio_img != target_radio_img:
+ info.script.CacheFreeSpaceCheck(len(source_radio_img))
+ radio_type, radio_device = common.GetTypeAndDevice("/radio", info.info_dict)
+ info.script.PatchCheck("%s:%s:%d:%s:%d:%s" % (
+ radio_type, radio_device,
+ len(source_radio_img), common.sha1(source_radio_img).hexdigest(),
+ len(target_radio_img), common.sha1(target_radio_img).hexdigest()))
+
+
+def IncrementalOTA_InstallEnd(info):
+ try:
+ target_bootloader_img = info.target_zip.read("RADIO/bootloader.img")
+ try:
+ source_bootloader_img = info.source_zip.read("RADIO/bootloader.img")
+ except KeyError:
+ source_bootloader_img = None
+
+ if source_bootloader_img == target_bootloader_img:
+ print "bootloader unchanged; skipping"
+ else:
+ WriteBootloader(info, target_bootloader_img)
+ except KeyError:
+ print "no bootloader.img in target target_files; skipping install"
+
+ tf = FindRadio(info.target_zip)
+ if not tf:
+ # failed to read TARGET radio image: don't include any radio in update.
+ print "no radio.img in target target_files; skipping install"
+ else:
+ tf = common.File("radio.img", tf)
+
+ sf = FindRadio(info.source_zip)
+ if not sf:
+ # failed to read SOURCE radio image: include the whole target
+ # radio image.
+ WriteRadio(info, tf.data)
+ else:
+ sf = common.File("radio.img", sf)
+
+ if tf.sha1 == sf.sha1:
+ print "radio image unchanged; skipping"
+ else:
+ diff = common.Difference(tf, sf, diff_program="bsdiff")
+ common.ComputeDifferences([diff])
+ _, _, d = diff.GetPatch()
+ if d is None or len(d) > tf.size * common.OPTIONS.patch_threshold:
+ # computing difference failed, or difference is nearly as
+ # big as the target: simply send the target.
+ WriteRadio(info, tf.data)
+ else:
+ common.ZipWriteStr(info.output_zip, "radio.img.p", d)
+ info.script.Print("Patching radio...")
+ radio_type, radio_device = common.GetTypeAndDevice(
+ "/radio", info.info_dict)
+ info.script.ApplyPatch(
+ "%s:%s:%d:%s:%d:%s" % (radio_type, radio_device,
+ sf.size, sf.sha1, tf.size, tf.sha1),
+ "-", tf.size, tf.sha1, sf.sha1, "radio.img.p")
+
+
+def WriteRadio(info, radio_img):
+ info.script.Print("Writing radio...")
+ common.ZipWriteStr(info.output_zip, "radio.img", radio_img)
+ _, device = common.GetTypeAndDevice("/radio", info.info_dict)
+ info.script.AppendExtra(
+ 'package_extract_file("radio.img", "%s");' % (device,))
+
+
+# /* msm8960 bootloader.img format */
+#
+# #define BOOTLDR_MAGIC "BOOTLDR!"
+# #define BOOTLDR_MAGIC_SIZE 8
+#
+# struct bootloader_images_header {
+# char magic[BOOTLDR_MAGIC_SIZE];
+# unsigned int num_images;
+# unsigned int start_offset;
+# unsigned int bootldr_size;
+# struct {
+# char name[64];
+# unsigned int size;
+# } img_info[];
+# };
+
+def WriteBootloader(info, bootloader):
+ info.script.Print("Writing bootloader...")
+
+ # bootloader.img contains 6 separate images. Each goes to its own
+ # partition; we write all 6 for development devices but skip one for
+ # release devices.. There are backup partitions of all but the
+ # special one that we also write. The special one is "sbl1", which
+ # does not have a backup, so we don't update it on release devices..
+
+
+ header_fmt = "<8sIII"
+ header_size = struct.calcsize(header_fmt)
+ magic, num_images, start_offset, bootloader_size = struct.unpack(
+ header_fmt, bootloader[:header_size])
+ assert magic == "BOOTLDR!", "bootloader.img bad magic value"
+
+ img_info_fmt = "<64sI"
+ img_info_size = struct.calcsize(img_info_fmt)
+
+ imgs = [struct.unpack(img_info_fmt,
+ bootloader[header_size+i*img_info_size:
+ header_size+(i+1)*img_info_size])
+ for i in range(num_images)]
+
+ total = 0
+ p = start_offset
+ img_dict = {}
+ for name, size in imgs:
+ img_dict[trunc_to_null(name)] = p, size
+ p += size
+ assert p - start_offset == bootloader_size, "bootloader.img corrupted"
+ imgs = img_dict
+
+ common.ZipWriteStr(info.output_zip, "bootloader-flag.txt",
+ "updating-bootloader" + "\0" * 13)
+ common.ZipWriteStr(info.output_zip, "bootloader-flag-clear.txt", "\0" * 32)
+
+ _, misc_device = common.GetTypeAndDevice("/misc", info.info_dict)
+
+ info.script.AppendExtra(
+ 'package_extract_file("bootloader-flag.txt", "%s");' %
+ (misc_device,))
+
+ # flashing sbl1 is somewhat dangerous because if we die while doing
+ # it the device can't boot. Do it for development devices but not
+ # release devices.
+ fp = info.info_dict["build.prop"]["ro.build.fingerprint"]
+ if "release-keys" in fp:
+ to_flash = "sbl2 sbl3 tz rpm aboot".split()
+ else:
+ to_flash = "sbl1 sbl2 sbl3 tz rpm aboot".split()
+
+ # Write the images to separate files in the OTA package
+ for i in to_flash:
+ try:
+ _, device = common.GetTypeAndDevice("/"+i, info.info_dict)
+ except KeyError:
+ print "skipping flash of %s; not in recovery.fstab" % (i,)
+ continue
+ common.ZipWriteStr(info.output_zip, "bootloader.%s.img" % (i,),
+ bootloader[imgs[i][0]:imgs[i][0]+imgs[i][1]])
+
+ info.script.AppendExtra('package_extract_file("bootloader.%s.img", "%s");' %
+ (i, device))
+
+ info.script.AppendExtra(
+ 'package_extract_file("bootloader-flag-clear.txt", "%s");' %
+ (misc_device,))
+
+ try:
+ # there is no "sbl1b" partition
+ for i in "sbl2 sbl3 tz rpm aboot".split():
+ _, device = common.GetTypeAndDevice("/"+i+"b", info.info_dict)
+ info.script.AppendExtra(
+ 'package_extract_file("bootloader.%s.img", "%s");' % (i, device))
+ except KeyError:
+ pass
+
+
+def trunc_to_null(s):
+ if '\0' in s:
+ return s[:s.index('\0')]
+ else:
+ return s
diff --git a/snd_soc_msm_2x b/snd_soc_msm_2x
new file mode 100644
index 0000000..1d335bc
--- /dev/null
+++ b/snd_soc_msm_2x
@@ -0,0 +1,4407 @@
+# Master file for snd_soc_msm tabla 2.0 sound card
+# Lists all use case verbs
+SectionUseCase."HiFi" {
+Comment "Music playback use case"
+SectionVerb
+ Name "HiFi"
+
+ EnableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
+ EndSequence
+
+ DisableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionVerb
+ Name "HiFiSpeaker FM Tx"
+
+ EnableSequence
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia1':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia1':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionVerb
+ Name "HiFiFM Tx"
+
+ EnableSequence
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia1':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia1':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionVerb
+ Name "HiFiHDMI"
+
+ EnableSequence
+ 'HDMI Mixer MultiMedia1':1:1
+ EndSequence
+
+ DisableSequence
+ 'HDMI Mixer MultiMedia1':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionVerb
+ Name "HiFiHDMI Speaker"
+
+ EnableSequence
+ 'HDMI Mixer MultiMedia1':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
+ EndSequence
+
+ DisableSequence
+ 'HDMI Mixer MultiMedia1':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+EndSection
+
+SectionVerb
+ Name "HiFiBT SCO Rx"
+
+ EnableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia1':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia1':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionVerb
+ Name "HiFiBT SCO WB Rx"
+
+ EnableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia1':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia1':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionVerb
+ Name "HiFiPROXY Rx"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia1':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia1':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionVerb
+ Name "HiFiPROXY Tx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+}
+SectionUseCase."HiFi Low Power" {
+Comment "LPA use case"
+SectionVerb
+ Name "HiFi Low Power"
+
+ EnableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia3':1:1
+ EndSequence
+
+ DisableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia3':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 4
+
+EndSection
+
+SectionVerb
+ Name "HiFi Low PowerSpeaker FM Tx"
+
+ EnableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia3':1:1
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia3':1:1
+ EndSequence
+
+ DisableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia3':1:0
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia3':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 4
+
+EndSection
+
+SectionVerb
+ Name "HiFi Low PowerFM Tx"
+
+ EnableSequence
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia3':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia3':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 4
+
+EndSection
+
+SectionVerb
+ Name "HiFi Low PowerHDMI"
+
+ EnableSequence
+ 'HDMI Mixer MultiMedia3':1:1
+ EndSequence
+
+ DisableSequence
+ 'HDMI Mixer MultiMedia3':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 4
+
+EndSection
+
+SectionVerb
+ Name "HiFi Low PowerHDMI Speaker"
+
+ EnableSequence
+ 'HDMI Mixer MultiMedia3':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia3':1:1
+ EndSequence
+
+ DisableSequence
+ 'HDMI Mixer MultiMedia3':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia3':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 4
+
+EndSection
+
+SectionVerb
+ Name "HiFi Low PowerBT SCO Rx"
+
+ EnableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia3':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia3':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 4
+
+EndSection
+
+SectionVerb
+ Name "HiFi Low PowerBT SCO WB Rx"
+
+ EnableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia3':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia3':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 4
+
+EndSection
+
+SectionVerb
+ Name "HiFi Low PowerPROXY Rx"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia3':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia3':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 4
+
+EndSection
+
+SectionVerb
+ Name "HiFi Low PowerPROXY Tx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 4
+
+EndSection
+}
+SectionUseCase."HiFi2" {
+Comment "Music playback use case for MM2 FE"
+SectionVerb
+ Name "HiFi2"
+
+ EnableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+
+SectionVerb
+ Name "HiFi2Speaker FM Tx"
+
+ EnableSequence
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia2':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia2':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+
+SectionVerb
+ Name "HiFi2FM Tx"
+
+ EnableSequence
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+
+SectionVerb
+ Name "HiFi2HDMI"
+
+ EnableSequence
+ 'HDMI Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'HDMI Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+
+SectionVerb
+ Name "HiFi2HDMI Speaker"
+
+ EnableSequence
+ 'HDMI Mixer MultiMedia2':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'HDMI Mixer MultiMedia2':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+EndSection
+
+SectionVerb
+ Name "HiFi2HDMI SPDIF"
+
+ EnableSequence
+ 'HDMI Mixer MultiMedia2':1:1
+ 'SEC_RX Audio Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'HDMI Mixer MultiMedia2':1:0
+ 'SEC_RX Audio Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+
+SectionVerb
+ Name "HiFi2BT SCO Rx"
+
+ EnableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+
+SectionVerb
+ Name "HiFi2BT SCO WB Rx"
+
+ EnableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+
+SectionVerb
+ Name "HiFi2PROXY Rx"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+
+SectionVerb
+ Name "HiFi2PROXY Tx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+
+SectionVerb
+ Name "HiFi2SPDIF"
+
+ EnableSequence
+ 'SEC_RX Audio Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'SEC_RX Audio Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+
+SectionVerb
+ Name "HiFi2SPDIF Speaker"
+
+ EnableSequence
+ 'SEC_RX Audio Mixer MultiMedia2':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'SEC_RX Audio Mixer MultiMedia2':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+
+SectionVerb
+ Name "HiFi2SPDIF Earpiece"
+
+ EnableSequence
+ 'SEC_RX Audio Mixer MultiMedia2':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'SEC_RX Audio Mixer MultiMedia2':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+
+SectionVerb
+ Name "HiFi2SPDIF Headphones"
+
+ EnableSequence
+ 'SEC_RX Audio Mixer MultiMedia2':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'SEC_RX Audio Mixer MultiMedia2':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+
+SectionVerb
+ Name "HiFi2SPDIF ANC Headset"
+
+ EnableSequence
+ 'SEC_RX Audio Mixer MultiMedia2':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'SEC_RX Audio Mixer MultiMedia2':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+
+SectionVerb
+ Name "HiFi2SPDIF Speaker Headset"
+
+ EnableSequence
+ 'SEC_RX Audio Mixer MultiMedia2':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'SEC_RX Audio Mixer MultiMedia2':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+
+SectionVerb
+ Name "HiFi2SPDIF Speaker ANC Headset"
+
+ EnableSequence
+ 'SEC_RX Audio Mixer MultiMedia2':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'SEC_RX Audio Mixer MultiMedia2':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+
+SectionVerb
+ Name "HiFi2PROXY Rx Speaker"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia2':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia2':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+
+SectionVerb
+ Name "HiFi2PROXY Rx Earpiece"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia2':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia2':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+
+SectionVerb
+ Name "HiFi2PROXY Rx Headphones"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia2':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia2':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+
+SectionVerb
+ Name "HiFi2PROXY Rx ANC Headset"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia2':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia2':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+
+SectionVerb
+ Name "HiFi2PROXY Rx Speaker Headset"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia2':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia2':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+
+SectionVerb
+ Name "HiFi2PROXY Rx Speaker ANC Headset"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia2':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia2':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+}
+SectionUseCase."HiFi Rec" {
+Comment "Recording use case"
+SectionVerb
+ Name "HiFi Rec"
+
+ EnableSequence
+ 'MultiMedia1 Mixer SLIM_0_TX':1:1
+ EndSequence
+
+ DisableSequence
+ 'MultiMedia1 Mixer SLIM_0_TX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionVerb
+ Name "HiFi RecBT SCO Tx"
+
+ EnableSequence
+ 'MultiMedia1 Mixer INTERNAL_BT_SCO_TX':1:1
+ EndSequence
+
+ DisableSequence
+ 'MultiMedia1 Mixer INTERNAL_BT_SCO_TX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionVerb
+ Name "HiFi RecBT SCO WB Tx"
+
+ EnableSequence
+ 'MultiMedia1 Mixer INTERNAL_BT_SCO_TX':1:1
+ EndSequence
+
+ DisableSequence
+ 'MultiMedia1 Mixer INTERNAL_BT_SCO_TX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionVerb
+ Name "HiFi RecSSR QMIC"
+
+ EnableSequence
+ 'MultiMedia1 Mixer SLIM_0_TX':1:1
+ EndSequence
+
+ DisableSequence
+ 'MultiMedia1 Mixer SLIM_0_TX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+}
+SectionUseCase."Voice Call" {
+Comment "Voice Call use case"
+SectionVerb
+ Name "Voice Call"
+
+ EnableSequence
+ 'STUB_RX Mixer Voice Stub':1:1
+ 'Voice Stub Tx Mixer STUB_TX_HL':1:1
+ 'Voice Stub Tx Mixer STUB_1_TX_HL':1:1
+ EndSequence
+
+ DisableSequence
+ 'STUB_RX Mixer Voice Stub':1:0
+ 'Voice Stub Tx Mixer STUB_TX_HL':1:0
+ 'Voice Stub Tx Mixer STUB_1_TX_HL':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 12
+ CapturePCM 12
+
+EndSection
+
+SectionVerb
+ Name "Voice CallHDMI"
+
+ EnableSequence
+ 'Voice Stub Tx Mixer SLIM_3_TX':1:0
+ 'HDMI_RX_Voice Mixer Voice Stub':1:0
+ 'HDMI_RX Port Mixer SLIM_3_TX':1:0
+ 'Voice Stub Tx Mixer STUB_TX_HL':1:0
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 12
+ CapturePCM 12
+
+EndSection
+
+SectionVerb
+ Name "Voice CallHDMI Tx"
+
+ EnableSequence
+ 'Voice Stub Tx Mixer SLIM_3_TX':1:1
+ 'HDMI_RX_Voice Mixer Voice Stub':1:1
+ 'HDMI_RX Port Mixer SLIM_3_TX':1:1
+ 'Voice Stub Tx Mixer STUB_TX_HL':1:1
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 12
+ CapturePCM 12
+
+EndSection
+
+SectionVerb
+ Name "Voice CallBT SCO Rx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ 'Internal BTSCO SampleRate':0:8000
+ 'Voice Stub Tx Mixer INTERNAL_BT_SCO_TX':1:0
+ 'SLIMBUS_1_RX Mixer Voice Stub':1:0
+ 'Voice Stub Tx Mixer SLIM_1_TX':1:0
+ 'INTERNAL_BT_SCO_RX_Voice Mixer Voice Stub':1:0
+ 'SLIMBUS_1_RX Port Mixer INTERNAL_BT_SCO_TX':1:0
+ 'INTERNAL_BT_SCO_RX Port Mixer SLIM_1_TX':1:0
+ 'SLIMBUS_3_RX_Voice Mixer Voice Stub':1:0
+ 'SLIMBUS_3_RX Port Mixer INTERNAL_BT_SCO_RX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 12
+ CapturePCM 12
+
+EndSection
+
+SectionVerb
+ Name "Voice CallBT SCO Tx"
+
+ EnableSequence
+ 'Internal BTSCO SampleRate':0:8000
+ 'Voice Stub Tx Mixer INTERNAL_BT_SCO_TX':1:1
+ 'SLIMBUS_1_RX Mixer Voice Stub':1:1
+ 'Voice Stub Tx Mixer SLIM_1_TX':1:1
+ 'INTERNAL_BT_SCO_RX_Voice Mixer Voice Stub':1:1
+ 'SLIMBUS_1_RX Port Mixer INTERNAL_BT_SCO_TX':1:1
+ 'INTERNAL_BT_SCO_RX Port Mixer SLIM_1_TX':1:1
+ 'SLIM_3_RX Channels':0:One
+ 'SLIMBUS_3_RX_Voice Mixer Voice Stub':1:1
+ 'SLIMBUS_3_RX Port Mixer INTERNAL_BT_SCO_RX':1:1
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 12
+ CapturePCM 12
+
+EndSection
+
+SectionVerb
+ Name "Voice CallBT SCO WB Rx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ 'Internal BTSCO SampleRate':0:8000
+ 'Voice Stub Tx Mixer INTERNAL_BT_SCO_TX':1:0
+ 'SLIMBUS_1_RX Mixer Voice Stub':1:0
+ 'Voice Stub Tx Mixer SLIM_1_TX':1:0
+ 'INTERNAL_BT_SCO_RX_Voice Mixer Voice Stub':1:0
+ 'SLIMBUS_1_RX Port Mixer INTERNAL_BT_SCO_TX':1:0
+ 'INTERNAL_BT_SCO_RX Port Mixer SLIM_1_TX':1:0
+ 'SLIMBUS_3_RX_Voice Mixer Voice Stub':1:0
+ 'SLIMBUS_3_RX Port Mixer INTERNAL_BT_SCO_RX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 12
+ CapturePCM 12
+
+EndSection
+
+SectionVerb
+ Name "Voice CallBT SCO WB Tx"
+
+ EnableSequence
+ 'Internal BTSCO SampleRate':0:16000
+ 'Voice Stub Tx Mixer INTERNAL_BT_SCO_TX':1:1
+ 'SLIMBUS_1_RX Mixer Voice Stub':1:1
+ 'Voice Stub Tx Mixer SLIM_1_TX':1:1
+ 'INTERNAL_BT_SCO_RX_Voice Mixer Voice Stub':1:1
+ 'SLIMBUS_1_RX Port Mixer INTERNAL_BT_SCO_TX':1:1
+ 'INTERNAL_BT_SCO_RX Port Mixer SLIM_1_TX':1:1
+ 'SLIM_3_RX Channels':0:One
+ 'SLIMBUS_3_RX_Voice Mixer Voice Stub':1:1
+ 'SLIMBUS_3_RX Port Mixer INTERNAL_BT_SCO_RX':1:1
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 12
+ CapturePCM 12
+
+EndSection
+}
+SectionUseCase."Voice Call IP" {
+Comment "VOIP Call use case"
+SectionVerb
+ Name "Voice Call IP"
+
+ EnableSequence
+ 'SLIM_0_RX_Voice Mixer Voip':1:1
+ 'Voip_Tx Mixer SLIM_0_TX_Voip':1:1
+ EndSequence
+
+ DisableSequence
+ 'SLIM_0_RX_Voice Mixer Voip':1:0
+ 'Voip_Tx Mixer SLIM_0_TX_Voip':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 3
+ CapturePCM 3
+
+EndSection
+
+SectionVerb
+ Name "Voice Call IPHDMI Tx"
+
+ EnableSequence
+ 'HDMI_RX_Voice Mixer Voip':1:1
+ 'Voip_Tx Mixer SLIM_0_TX_Voip':1:1
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 3
+ CapturePCM 3
+
+EndSection
+
+SectionVerb
+ Name "Voice Call IPBT SCO Rx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ 'Internal BTSCO SampleRate':0:8000
+ 'INTERNAL_BT_SCO_RX_Voice Mixer Voip':1:0
+ 'Voip_Tx Mixer INTERNAL_BT_SCO_TX_Voip':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 3
+ CapturePCM 3
+
+EndSection
+
+SectionVerb
+ Name "Voice Call IPBT SCO Tx"
+
+ EnableSequence
+ 'Internal BTSCO SampleRate':0:8000
+ 'INTERNAL_BT_SCO_RX_Voice Mixer Voip':1:1
+ 'Voip_Tx Mixer INTERNAL_BT_SCO_TX_Voip':1:1
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 3
+ CapturePCM 3
+
+EndSection
+
+SectionVerb
+ Name "Voice Call IPBT SCO WB Rx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ 'Internal BTSCO SampleRate':0:8000
+ 'INTERNAL_BT_SCO_RX_Voice Mixer Voip':1:0
+ 'Voip_Tx Mixer INTERNAL_BT_SCO_TX_Voip':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 3
+ CapturePCM 3
+
+EndSection
+
+SectionVerb
+ Name "Voice Call IPBT SCO WB Tx"
+
+ EnableSequence
+ 'Internal BTSCO SampleRate':0:16000
+ 'INTERNAL_BT_SCO_RX_Voice Mixer Voip':1:1
+ 'Voip_Tx Mixer INTERNAL_BT_SCO_TX_Voip':1:1
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 3
+ CapturePCM 3
+
+EndSection
+
+SectionVerb
+ Name "Voice Call IPHDMI"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ 'HDMI_RX_Voice Mixer Voip':1:0
+ 'Voip_Tx Mixer SLIM_0_TX_Voip':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 3
+ CapturePCM 3
+
+EndSection
+
+SectionVerb
+ Name "Voice Call IPFM Tx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ 'SLIM_0_RX_Voice Mixer Voip':1:0
+ 'Voip_Tx Mixer SLIM_0_TX_Voip':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 3
+ CapturePCM 3
+
+EndSection
+}
+
+SectionUseCase."FM Digital Radio" {
+Comment "FM Radio use case"
+SectionVerb
+ Name "FM Digital Radio"
+
+ EnableSequence
+ 'Internal FM RX Volume':1:0
+ 'SLIMBUS_0_RX Port Mixer INTERNAL_FM_TX':1:1
+ 'SLIMBUS_DL_HL Switch':1:1
+ EndSequence
+
+ DisableSequence
+ 'SLIMBUS_0_RX Port Mixer INTERNAL_FM_TX':1:0
+ 'SLIMBUS_DL_HL Switch':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 5
+ CapturePCM 6
+
+EndSection
+
+SectionVerb
+ Name "FM Digital RadioPROXY Rx"
+
+ EnableSequence
+ 'Internal FM RX Volume':1:0
+ 'AFE_PCM_RX Port Mixer INTERNAL_FM_TX':1:1
+ 'PCM_RX_DL_HL Switch':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Port Mixer INTERNAL_FM_TX':1:0
+ 'PCM_RX_DL_HL Switch':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 5
+ CapturePCM 6
+
+EndSection
+
+SectionVerb
+ Name "FM Digital RadioPROXY Tx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 5
+ CapturePCM 6
+
+EndSection
+}
+SectionUseCase."FM REC" {
+Comment "FM Recording use case"
+SectionVerb
+ Name "FM REC"
+
+ EnableSequence
+ 'MultiMedia1 Mixer INTERNAL_FM_TX':1:1
+ EndSequence
+
+ DisableSequence
+ 'MultiMedia1 Mixer INTERNAL_FM_TX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 0
+ CapturePCM 0
+
+EndSection
+}
+SectionUseCase."FM A2DP REC" {
+Comment "FM A2DP playback use case"
+SectionVerb
+ Name "FM A2DP REC"
+
+ EnableSequence
+ 'MultiMedia2 Mixer INTERNAL_FM_TX':1:1
+ EndSequence
+
+ DisableSequence
+ 'MultiMedia2 Mixer INTERNAL_FM_TX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 1
+ CapturePCM 1
+
+EndSection
+}
+SectionUseCase."Incall REC" {
+Comment "Voice Recording use case"
+SectionVerb
+ Name "Incall REC"
+
+ EnableSequence
+ 'MultiMedia1 Mixer SLIM_4_TX':1:1
+ EndSequence
+
+ DisableSequence
+ 'MultiMedia1 Mixer SLIM_4_TX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 0
+ CapturePCM 0
+
+EndSection
+}
+SectionUseCase."HiFi Tunnel" {
+Comment "Tunnel mode playback use case"
+SectionVerb
+ Name "HiFi Tunnel"
+
+ EnableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
+ EndSequence
+
+ DisableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 9
+
+EndSection
+
+SectionVerb
+ Name "HiFi TunnelSpeaker FM Tx"
+
+ EnableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia4':1:1
+ EndSequence
+
+ DisableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia4':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 9
+
+EndSection
+
+SectionVerb
+ Name "HiFi TunnelFM Tx"
+
+ EnableSequence
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia4':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia4':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 9
+
+EndSection
+
+SectionVerb
+ Name "HiFi TunnelHDMI"
+
+ EnableSequence
+ 'HDMI Mixer MultiMedia4':1:1
+ EndSequence
+
+ DisableSequence
+ 'HDMI Mixer MultiMedia4':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 9
+
+EndSection
+
+SectionVerb
+ Name "HiFi TunnelHDMI Speaker"
+
+ EnableSequence
+ 'HDMI Mixer MultiMedia4':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
+ EndSequence
+
+ DisableSequence
+ 'HDMI Mixer MultiMedia4':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 9
+
+EndSection
+
+SectionVerb
+ Name "HiFi TunnelBT SCO Rx"
+
+ EnableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia4':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia4':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 9
+
+EndSection
+
+SectionVerb
+ Name "HiFi TunnelBT SCO WB Rx"
+
+ EnableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia4':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia4':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 9
+
+EndSection
+
+SectionVerb
+ Name "HiFi TunnelPROXY Rx"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia4':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia4':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 9
+
+EndSection
+
+}
+SectionUseCase."ADSP testfwk" {
+Comment "ADSP testfwk use case"
+
+SectionVerb
+ Name "ADSP testfwk"
+
+ EnableSequence
+ 'SLIMBUS_DL_HL Switch':1:1
+ EndSequence
+
+ DisableSequence
+ 'SLIMBUS_DL_HL Switch':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 5
+ CapturePCM 5
+
+EndSection
+}
+
+SectionUseCase."HiFi Lowlatency" {
+Comment "LowLatnecy mode playback use case"
+SectionVerb
+ Name "HiFi Lowlatency"
+
+ EnableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:1
+ EndSequence
+
+ DisableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 14
+ CapturePCM 14
+
+EndSection
+
+SectionVerb
+ Name "HiFi LowlatencySpeaker FM Tx"
+
+ EnableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:1
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia5':1:1
+ EndSequence
+
+ DisableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:0
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia5':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 14
+
+EndSection
+
+SectionVerb
+ Name "HiFi LowlatencyFM Tx"
+
+ EnableSequence
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia5':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia5':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 14
+
+EndSection
+
+SectionVerb
+ Name "HiFi LowlatencyHDMI"
+
+ EnableSequence
+ 'HDMI Mixer MultiMedia5':1:1
+ EndSequence
+
+ DisableSequence
+ 'HDMI Mixer MultiMedia5':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 14
+
+EndSection
+
+SectionVerb
+ Name "HiFi LowlatencyHDMI Speaker"
+
+ EnableSequence
+ 'HDMI Mixer MultiMedia5':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:1
+ EndSequence
+
+ DisableSequence
+ 'HDMI Mixer MultiMedia5':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 14
+
+EndSection
+
+SectionVerb
+ Name "HiFi LowlatencyBT SCO Rx"
+
+ EnableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia5':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia5':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 14
+
+EndSection
+
+SectionVerb
+ Name "HiFi LowlatencyBT SCO WB Rx"
+
+ EnableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia5':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia5':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 14
+
+EndSection
+
+SectionVerb
+ Name "HiFi LowlatencyPROXY Rx"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia5':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia5':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 14
+
+EndSection
+
+SectionVerb
+ Name "HiFi LowlatencyPROXY Tx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 14
+
+EndSection
+
+SectionVerb
+ Name "HiFi LowlatencyPROXY Rx Speaker"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia5':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia5':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 14
+
+EndSection
+SectionVerb
+ Name "HiFi LowlatencyPROXY Rx Earpiece"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia5':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia5':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 14
+
+EndSection
+SectionVerb
+ Name "HiFi LowlatencyPROXY Rx Headphones"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia5':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia5':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 14
+
+EndSection
+SectionVerb
+ Name "HiFi LowlatencyPROXY Rx ANC Headset"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia5':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia5':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 14
+
+EndSection
+SectionVerb
+ Name "HiFi LowlatencyPROXY Rx Speaker Headset"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia5':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia5':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 14
+
+EndSection
+SectionVerb
+ Name "HiFi LowlatencyPROXY Rx Speaker ANC Headset"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia5':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia5':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 14
+
+EndSection
+}
+
+SectionUseCase."HiFi Lowlatency Rec" {
+Comment "Recording use case"
+SectionVerb
+ Name "HiFi Lowlatency Rec"
+
+ EnableSequence
+ 'MultiMedia5 Mixer SLIM_0_TX':1:1
+ EndSequence
+
+ DisableSequence
+ 'MultiMedia5 Mixer SLIM_0_TX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 14
+ PlaybackPCM 14
+
+EndSection
+
+SectionVerb
+ Name "HiFi Lowlatency RecBT SCO Tx"
+
+ EnableSequence
+ 'MultiMedia5 Mixer INTERNAL_BT_SCO_TX':1:1
+ EndSequence
+
+ DisableSequence
+ 'MultiMedia5 Mixer INTERNAL_BT_SCO_TX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 14
+ PlaybackPCM 14
+
+EndSection
+
+SectionVerb
+ Name "HiFi Lowlatency RecBT SCO WB Tx"
+
+ EnableSequence
+ 'MultiMedia5 Mixer INTERNAL_BT_SCO_TX':1:1
+ EndSequence
+
+ DisableSequence
+ 'MultiMedia5 Mixer INTERNAL_BT_SCO_TX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 14
+ PlaybackPCM 14
+
+EndSection
+
+SectionVerb
+ Name "HiFi Lowlatency RecPROXY Rx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 14
+ PlaybackPCM 14
+
+EndSection
+
+SectionVerb
+ Name "HiFi Lowlatency RecPROXY Tx"
+
+ EnableSequence
+ 'MultiMedia5 Mixer AFE_PCM_TX':1:1
+ EndSequence
+
+ DisableSequence
+ 'MultiMedia5 Mixer AFE_PCM_TX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 14
+ PlaybackPCM 14
+
+EndSection
+
+SectionVerb
+ Name "HiFi Lowlatency RecSSR QMIC"
+
+ EnableSequence
+ 'MultiMedia5 Mixer SLIM_0_TX':1:1
+ EndSequence
+
+ DisableSequence
+ 'MultiMedia5 Mixer SLIM_0_TX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 14
+ PlaybackPCM 14
+
+EndSection
+}
+
+SectionDevice
+ Name "Earpiece"
+ Comment "Handset Rx device"
+
+ EnableSequence
+ 'SLIM_0_RX Channels':0:One
+ 'RX1 MIX1 INP1':0:RX1
+ 'RX1 MIX1 INP2':0:RX6
+ 'RX1 Digital Volume':1:68
+ 'EAR PA Gain':0:POS_6_DB
+ 'DAC1 Switch':1:1
+ 'SLIM TX3 MUX':0:RMIX1
+ EndSequence
+
+ DisableSequence
+ 'RX1 MIX1 INP1':0:ZERO
+ 'RX1 MIX1 INP2':0:ZERO
+ 'RX1 Digital Volume':1:68
+ 'DAC1 Switch':1:0
+ 'SLIM TX3 MUX':0:ZERO
+ EndSequence
+
+ ACDBID 7:1
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "Voice Earpiece"
+ Comment "Handset Rx device"
+
+ EnableSequence
+ 'SLIM_0_RX Channels':0:One
+ 'RX1 MIX1 INP1':0:RX1
+ 'RX1 MIX1 INP2':0:RX6
+ 'RX1 Digital Volume':1:68
+ 'EAR PA Gain':0:POS_6_DB
+ 'DAC1 Switch':1:1
+ 'SLIM TX3 MUX':0:RMIX1
+ EndSequence
+
+ DisableSequence
+ 'RX1 MIX1 INP1':0:ZERO
+ 'RX1 MIX1 INP2':0:ZERO
+ 'RX1 Digital Volume':1:68
+ 'DAC1 Switch':1:0
+ 'SLIM TX3 MUX':0:ZERO
+ EndSequence
+
+ ACDBID 7:1
+
+EndSection
+
+SectionDevice
+ Name "HAC Earpiece"
+ Comment "Handset Rx device for Hearing AID"
+
+ EnableSequence
+ 'SLIM_0_RX Channels':0:One
+ 'RX1 MIX1 INP1':0:RX1
+ 'RX1 MIX1 INP2':0:RX6
+ 'RX1 Digital Volume':1:68
+ 'EAR PA Gain':0:POS_2_DB
+ 'DAC1 Switch':1:1
+ 'SLIM TX3 MUX':0:RMIX1
+ EndSequence
+
+ DisableSequence
+ 'RX1 MIX1 INP1':0:ZERO
+ 'RX1 MIX1 INP2':0:ZERO
+ 'RX1 Digital Volume':1:68
+ 'DAC1 Switch':1:0
+ 'SLIM TX3 MUX':0:ZERO
+ EndSequence
+
+ ACDBID 60:1
+
+EndSection
+
+SectionDevice
+ Name "TTY Handset Rx"
+ Comment "TTY HCO Handset Rx device"
+
+ EnableSequence
+ 'SLIM_0_RX Channels':0:One
+ 'RX1 MIX1 INP1':0:RX1
+ 'RX1 MIX1 INP2':0:RX6
+ 'RX1 Digital Volume':1:68
+ 'EAR PA Gain':0:POS_6_DB
+ 'DAC1 Switch':1:1
+ EndSequence
+
+ DisableSequence
+ 'RX1 MIX1 INP1':0:ZERO
+ 'RX1 MIX1 INP2':0:ZERO
+ 'RX1 Digital Volume':1:68
+ 'DAC1 Switch':1:0
+ EndSequence
+
+ ACDBID 37:1
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "ANC Handset"
+ Comment "ANC Handset Rx device"
+
+ EnableSequence
+ 'SLIM_0_RX Channels':0:One
+ 'RX1 MIX1 INP1':0:RX1
+ 'RX1 MIX1 INP2':0:RX6
+ 'DAC1 Switch':1:1
+ 'ANC Slot':1:1
+ 'ANC1 MUX':0:DMIC1
+ 'MICBIAS1 CAPLESS Switch':1:1
+ 'SLIM TX3 MUX':0:RMIX1
+ EndSequence
+
+ DisableSequence
+ 'RX1 MIX1 INP1':0:ZERO
+ 'RX1 MIX1 INP2':0:ZERO
+ 'DAC1 Switch':1:0
+ 'ANC Slot':1:0
+ 'ANC1 MUX':0:ZERO
+ 'MICBIAS1 CAPLESS Switch':1:0
+ 'SLIM TX3 MUX':0:ZERO
+ EndSequence
+
+ ACDBID 30:1
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "Speaker"
+ Comment "Speaker Rx device"
+
+ EnableSequence
+ 'SLIM_0_RX Channels':0:One
+ 'RX3 MIX1 INP1':0:RX1
+ 'RX3 MIX1 INP2':0:RX6
+ 'RX4 DSM MUX':0:DSM_INV
+ 'RX3 Digital Volume':1:68
+ 'LINEOUT1 Volume':1:100
+ 'LINEOUT3 Volume':1:100
+ 'SLIM TX3 MUX':0:RMIX3
+ EndSequence
+
+ DisableSequence
+ 'RX3 MIX1 INP1':0:ZERO
+ 'RX3 MIX1 INP2':0:ZERO
+ 'RX4 DSM MUX':0:CIC_OUT
+ 'RX3 Digital Volume':1:68
+ 'LINEOUT1 Volume':1:0
+ 'LINEOUT3 Volume':1:0
+ 'SLIM TX3 MUX':0:ZERO
+ EndSequence
+
+ ACDBID 14:1
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "Voice Speaker"
+ Comment "Speaker for voice call"
+
+ EnableSequence
+ 'SLIM_0_RX Channels':0:One
+ 'RX3 MIX1 INP1':0:RX1
+ 'RX3 MIX1 INP2':0:RX6
+ 'RX4 DSM MUX':0:DSM_INV
+ 'RX3 Digital Volume':1:68
+ 'LINEOUT1 Volume':1:100
+ 'LINEOUT3 Volume':1:100
+ 'SLIM TX3 MUX':0:RMIX3
+ EndSequence
+
+ DisableSequence
+ 'RX3 MIX1 INP1':0:ZERO
+ 'RX3 MIX1 INP2':0:ZERO
+ 'RX4 DSM MUX':0:CIC_OUT
+ 'RX3 Digital Volume':1:68
+ 'LINEOUT1 Volume':1:0
+ 'LINEOUT3 Volume':1:0
+ 'SLIM TX3 MUX':0:ZERO
+ EndSequence
+
+ ACDBID 14:1
+
+EndSection
+
+SectionDevice
+ Name "Headphones"
+ Comment "Headset Rx device"
+
+ EnableSequence
+ 'SLIM_0_RX Channels':0:Two
+ 'RX1 MIX1 INP1':0:RX1
+ 'RX1 MIX1 INP2':0:RX6
+ 'RX2 MIX1 INP1':0:RX2
+ 'RX2 MIX1 INP2':0:RX7
+ 'HPHL DAC Switch':1:1
+ 'HPHR DAC Switch':1:1
+ 'RX1 Digital Volume':1:68
+ 'RX2 Digital Volume':1:68
+ 'HPHL Volume':1:50
+ 'HPHR Volume':1:50
+ 'SLIM TX3 MUX':0:RMIX1
+ 'SLIM TX5 MUX':0:RMIX2
+ EndSequence
+
+ DisableSequence
+ 'RX1 MIX1 INP1':0:ZERO
+ 'RX1 MIX1 INP2':0:ZERO
+ 'RX2 MIX1 INP1':0:ZERO
+ 'RX2 MIX1 INP2':0:ZERO
+ 'HPHL DAC Switch':1:0
+ 'HPHR DAC Switch':1:0
+ 'RX1 Digital Volume':1:68
+ 'RX2 Digital Volume':1:68
+ 'HPHL Volume':1:0
+ 'HPHR Volume':1:0
+ 'SLIM TX3 MUX':0:ZERO
+ 'SLIM TX5 MUX':0:ZERO
+ EndSequence
+
+ ACDBID 10:1
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "Voice Headphones"
+ Comment "Headset Rx device for voice call"
+
+ EnableSequence
+ 'SLIM_0_RX Channels':0:Two
+ 'RX1 MIX1 INP1':0:RX1
+ 'RX1 MIX1 INP2':0:RX6
+ 'RX2 MIX1 INP1':0:RX2
+ 'RX2 MIX1 INP2':0:RX7
+ 'HPHL DAC Switch':1:1
+ 'HPHR DAC Switch':1:1
+ 'RX1 Digital Volume':1:68
+ 'RX2 Digital Volume':1:68
+ 'HPHL Volume':1:50
+ 'HPHR Volume':1:50
+ 'SLIM TX3 MUX':0:RMIX1
+ 'SLIM TX5 MUX':0:RMIX2
+ EndSequence
+
+ DisableSequence
+ 'RX1 MIX1 INP1':0:ZERO
+ 'RX1 MIX1 INP2':0:ZERO
+ 'RX2 MIX1 INP1':0:ZERO
+ 'RX2 MIX1 INP2':0:ZERO
+ 'HPHL DAC Switch':1:0
+ 'HPHR DAC Switch':1:0
+ 'RX1 Digital Volume':1:68
+ 'RX2 Digital Volume':1:68
+ 'HPHL Volume':1:0
+ 'HPHR Volume':1:0
+ 'SLIM TX3 MUX':0:ZERO
+ 'SLIM TX5 MUX':0:ZERO
+ EndSequence
+
+ ACDBID 10:1
+
+EndSection
+
+SectionDevice
+ Name "Speaker Headset"
+ Comment "Speaker Headset Rx combo device"
+
+ EnableSequence
+ 'SLIM_0_RX Channels':0:Two
+ 'RX3 MIX1 INP1':0:RX1
+ 'RX3 MIX1 INP2':0:RX6
+ 'RX5 MIX1 INP1':0:RX2
+ 'RX5 MIX1 INP2':0:RX7
+ 'RX4 DSM MUX':0:DSM_INV
+ 'RX6 DSM MUX':0:DSM_INV
+ 'RX3 Digital Volume':1:68
+ 'LINEOUT1 Volume':1:66
+ 'LINEOUT3 Volume':1:66
+ 'RX1 MIX1 INP1':0:RX1
+ 'RX1 MIX1 INP2':0:RX6
+ 'RX2 MIX1 INP1':0:RX2
+ 'RX2 MIX1 INP2':0:RX7
+ 'HPHL DAC Switch':1:1
+ 'HPHR DAC Switch':1:1
+ 'RX1 Digital Volume':1:53
+ 'RX2 Digital Volume':1:53
+ 'HPHL Volume':1:80
+ 'HPHR Volume':1:80
+ 'SLIM TX3 MUX':0:RMIX1
+ 'SLIM TX5 MUX':0:RMIX2
+ EndSequence
+
+ DisableSequence
+ 'RX3 MIX1 INP1':0:ZERO
+ 'RX3 MIX1 INP2':0:ZERO
+ 'RX5 MIX1 INP1':0:ZERO
+ 'RX5 MIX1 INP2':0:ZERO
+ 'RX4 DSM MUX':0:CIC_OUT
+ 'RX6 DSM MUX':0:CIC_OUT
+ 'RX3 Digital Volume':1:68
+ 'LINEOUT1 Volume':1:0
+ 'LINEOUT3 Volume':1:0
+ 'RX1 MIX1 INP1':0:ZERO
+ 'RX1 MIX1 INP2':0:ZERO
+ 'RX2 MIX1 INP1':0:ZERO
+ 'RX2 MIX1 INP2':0:ZERO
+ 'HPHL DAC Switch':1:0
+ 'HPHR DAC Switch':1:0
+ 'RX1 Digital Volume':1:68
+ 'RX2 Digital Volume':1:68
+ 'HPHL Volume':1:0
+ 'HPHR Volume':1:0
+ 'SLIM TX3 MUX':0:ZERO
+ 'SLIM TX5 MUX':0:ZERO
+ EndSequence
+
+ ACDBID 10:1
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "Speaker ANC Headset"
+ Comment "Speaker ANC Headset Rx combo device"
+
+ EnableSequence
+ 'SLIM_0_RX Channels':0:Two
+ 'RX3 MIX1 INP1':0:RX1
+ 'RX3 MIX1 INP2':0:RX6
+ 'RX5 MIX1 INP1':0:RX2
+ 'RX5 MIX1 INP2':0:RX7
+ 'RX4 DSM MUX':0:DSM_INV
+ 'RX6 DSM MUX':0:DSM_INV
+ 'LINEOUT1 Volume':1:66
+ 'LINEOUT2 Volume':1:66
+ 'LINEOUT3 Volume':1:66
+ 'LINEOUT4 Volume':1:66
+ 'RX1 MIX1 INP1':0:RX1
+ 'RX1 MIX1 INP2':0:RX6
+ 'RX2 MIX1 INP1':0:RX2
+ 'RX2 MIX1 INP2':0:RX7
+ 'HPHL DAC Switch':1:1
+ 'HPHR DAC Switch':1:1
+ 'HPHL Volume':1:70
+ 'HPHR Volume':1:70
+ 'RX1 Digital Volume':1:65
+ 'RX2 Digital Volume':1:65
+ 'ANC Slot':1:0
+ 'ANC1 MUX':0:ADC4
+ 'ANC2 MUX':0:ADC3
+ 'ANC1 FB MUX':0:EAR_HPH_L
+ 'ADC3 Volume':1:85
+ 'ADC4 Volume':1:85
+ 'MICBIAS3 CAPLESS Switch':1:1
+ 'MICBIAS1 CAPLESS Switch':1:1
+ 'SLIM TX3 MUX':0:RMIX1
+ 'SLIM TX5 MUX':0:RMIX2
+ EndSequence
+
+ DisableSequence
+ 'RX3 MIX1 INP1':0:ZERO
+ 'RX3 MIX1 INP2':0:ZERO
+ 'RX5 MIX1 INP1':0:ZERO
+ 'RX5 MIX1 INP2':0:ZERO
+ 'RX4 DSM MUX':0:CIC_OUT
+ 'RX6 DSM MUX':0:CIC_OUT
+ 'LINEOUT1 Volume':1:0
+ 'LINEOUT2 Volume':1:0
+ 'LINEOUT3 Volume':1:0
+ 'LINEOUT4 Volume':1:0
+ 'RX1 MIX1 INP1':0:ZERO
+ 'RX1 MIX1 INP2':0:ZERO
+ 'RX2 MIX1 INP1':0:ZERO
+ 'RX2 MIX1 INP2':0:ZERO
+ 'HPHL DAC Switch':1:0
+ 'HPHR DAC Switch':1:0
+ 'HPHL Volume':1:0
+ 'HPHR Volume':1:0
+ 'RX1 Digital Volume':1:0
+ 'RX2 Digital Volume':1:0
+ 'ANC1 MUX':0:ZERO
+ 'ANC2 MUX':0:ZERO
+ 'ADC3 Volume':1:0
+ 'ADC4 Volume':1:0
+ 'MICBIAS3 CAPLESS Switch':1:0
+ 'MICBIAS1 CAPLESS Switch':1:0
+ 'SLIM TX3 MUX':0:ZERO
+ 'SLIM TX5 MUX':0:ZERO
+ EndSequence
+
+ ACDBID 26:1
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "ANC Headset"
+ Comment "ANC Headset Rx device"
+
+ EnableSequence
+ 'SLIM_0_RX Channels':0:Two
+ 'RX1 MIX1 INP1':0:RX1
+ 'RX1 MIX1 INP2':0:RX6
+ 'RX2 MIX1 INP1':0:RX2
+ 'RX2 MIX1 INP2':0:RX7
+ 'HPHL DAC Switch':1:1
+ 'HPHR DAC Switch':1:1
+ 'HPHL Volume':1:70
+ 'HPHR Volume':1:70
+ 'RX1 Digital Volume':1:65
+ 'RX2 Digital Volume':1:65
+ 'ANC Slot':1:0
+ 'ANC1 MUX':0:ADC4
+ 'ANC2 MUX':0:ADC3
+ 'ANC1 FB MUX':0:EAR_HPH_L
+ 'ADC3 Volume':1:85
+ 'ADC4 Volume':1:85
+ 'MICBIAS3 CAPLESS Switch':1:1
+ 'MICBIAS1 CAPLESS Switch':1:1
+ 'SLIM TX3 MUX':0:RMIX1
+ 'SLIM TX5 MUX':0:RMIX2
+ EndSequence
+
+ DisableSequence
+ 'RX1 MIX1 INP1':0:ZERO
+ 'RX1 MIX1 INP2':0:ZERO
+ 'RX2 MIX1 INP1':0:ZERO
+ 'RX2 MIX1 INP2':0:ZERO
+ 'HPHL DAC Switch':1:0
+ 'HPHR DAC Switch':1:0
+ 'HPHL Volume':1:0
+ 'HPHR Volume':1:0
+ 'RX1 Digital Volume':1:0
+ 'RX2 Digital Volume':1:0
+ 'ANC1 MUX':0:ZERO
+ 'ANC2 MUX':0:ZERO
+ 'ADC3 Volume':1:0
+ 'ADC4 Volume':1:0
+ 'MICBIAS3 CAPLESS Switch':1:0
+ 'MICBIAS1 CAPLESS Switch':1:0
+ 'SLIM TX3 MUX':0:ZERO
+ 'SLIM TX5 MUX':0:ZERO
+ EndSequence
+
+ ACDBID 26:1
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "Voice ANC Headset"
+ Comment "ANC Headset Rx device for voice call"
+
+ EnableSequence
+ 'SLIM_0_RX Channels':0:Two
+ 'RX1 MIX1 INP1':0:RX1
+ 'RX1 MIX1 INP2':0:RX6
+ 'RX2 MIX1 INP1':0:RX2
+ 'RX2 MIX1 INP2':0:RX7
+ 'HPHL DAC Switch':1:1
+ 'HPHR DAC Switch':1:1
+ 'HPHL Volume':1:70
+ 'HPHR Volume':1:70
+ 'RX1 Digital Volume':1:65
+ 'RX2 Digital Volume':1:65
+ 'ANC Slot':1:0
+ 'ANC1 MUX':0:ADC4
+ 'ANC2 MUX':0:ADC3
+ 'ANC1 FB MUX':0:EAR_HPH_L
+ 'ADC3 Volume':1:85
+ 'ADC4 Volume':1:85
+ 'MICBIAS3 CAPLESS Switch':1:1
+ 'MICBIAS1 CAPLESS Switch':1:1
+ 'SLIM TX3 MUX':0:RMIX1
+ 'SLIM TX5 MUX':0:RMIX2
+ EndSequence
+
+ DisableSequence
+ 'RX1 MIX1 INP1':0:ZERO
+ 'RX1 MIX1 INP2':0:ZERO
+ 'RX2 MIX1 INP1':0:ZERO
+ 'RX2 MIX1 INP2':0:ZERO
+ 'HPHL DAC Switch':1:0
+ 'HPHR DAC Switch':1:0
+ 'HPHL Volume':1:0
+ 'HPHR Volume':1:0
+ 'RX1 Digital Volume':1:0
+ 'RX2 Digital Volume':1:0
+ 'ANC1 MUX':0:ZERO
+ 'ANC2 MUX':0:ZERO
+ 'ADC3 Volume':1:0
+ 'ADC4 Volume':1:0
+ 'MICBIAS3 CAPLESS Switch':1:0
+ 'MICBIAS1 CAPLESS Switch':1:0
+ 'SLIM TX3 MUX':0:ZERO
+ 'SLIM TX5 MUX':0:ZERO
+ EndSequence
+
+ ACDBID 26:1
+
+EndSection
+
+SectionDevice
+ Name "Speaker FM Tx"
+ Comment "Speaker FM Tx combo device"
+
+ EnableSequence
+ 'SLIM_0_RX Channels':0:Two
+ 'RX3 MIX1 INP1':0:RX1
+ 'RX3 MIX1 INP2':0:RX6
+ 'RX5 MIX1 INP1':0:RX2
+ 'RX5 MIX1 INP2':0:RX7
+ 'RX4 DSM MUX':0:DSM_INV
+ 'RX6 DSM MUX':0:DSM_INV
+ 'LINEOUT1 Volume':1:66
+ 'LINEOUT2 Volume':1:66
+ 'LINEOUT3 Volume':1:66
+ 'LINEOUT4 Volume':1:66
+ 'SLIM TX3 MUX':0:RMIX3
+ 'SLIM TX5 MUX':0:RMIX5
+ EndSequence
+
+ DisableSequence
+ 'RX3 MIX1 INP1':0:ZERO
+ 'RX3 MIX1 INP2':0:ZERO
+ 'RX5 MIX1 INP1':0:ZERO
+ 'RX5 MIX1 INP2':0:ZERO
+ 'RX4 DSM MUX':0:CIC_OUT
+ 'RX6 DSM MUX':0:CIC_OUT
+ 'LINEOUT1 Volume':1:0
+ 'LINEOUT2 Volume':1:0
+ 'LINEOUT3 Volume':1:0
+ 'LINEOUT4 Volume':1:0
+ 'SLIM TX3 MUX':0:ZERO
+ 'SLIM TX5 MUX':0:ZERO
+ EndSequence
+
+ ACDBID 15:1
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "Headset"
+ Comment "Headset Tx device"
+
+ EnableSequence
+ 'SLIM_0_TX Channels':0:One
+ 'SLIM TX7 MUX':0:DEC8
+ 'DEC8 MUX':0:ADC2
+ 'ADC2 Volume':1:66
+ EndSequence
+
+ DisableSequence
+ 'SLIM TX7 MUX':0:ZERO
+ 'DEC8 MUX':0:ZERO
+ 'ADC2 Volume':1:0
+ EndSequence
+
+ ACDBID 8:2
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "Voice Headset"
+ Comment "Headset Tx device for Voice call"
+
+ EnableSequence
+ 'SLIM_0_TX Channels':0:One
+ 'SLIM TX7 MUX':0:DEC8
+ 'DEC8 MUX':0:ADC2
+ 'ADC2 Volume':1:66
+ EndSequence
+
+ DisableSequence
+ 'SLIM TX7 MUX':0:ZERO
+ 'DEC8 MUX':0:ZERO
+ 'ADC2 Volume':1:0
+ EndSequence
+
+ ACDBID 8:2
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+SectionDevice
+ Name "HeadsetVM Tx"
+ Comment "Headset Tx device"
+
+ EnableSequence
+ 'SLIM_0_TX Channels':0:One
+ 'SLIM TX7 MUX':0:DEC8
+ 'DEC8 MUX':0:ADC2
+ 'ADC2 Volume':1:100
+ EndSequence
+
+ DisableSequence
+ 'SLIM TX7 MUX':0:ZERO
+ 'DEC8 MUX':0:ZERO
+ 'ADC2 Volume':1:0
+ EndSequence
+
+ ACDBID 8:2
+
+EndSection
+
+SectionDevice
+ Name "Handset"
+ Comment "Handset Tx device"
+
+ EnableSequence
+ 'SLIM_0_TX Channels':0:One
+ 'SLIM TX7 MUX':0:DEC7
+ 'DEC7 MUX':0:ADC1
+ 'DEC7 Volume':1:80
+ 'ADC1 Volume':1:100
+ 'MICBIAS1 CAPLESS Switch':1:0
+ EndSequence
+
+ DisableSequence
+ 'SLIM TX7 MUX':0:ZERO
+ 'DEC7 MUX':0:ZERO
+ 'DEC7 Volume':1:0
+ 'ADC1 Volume':1:0
+ 'MICBIAS1 CAPLESS Switch':1:1
+ EndSequence
+
+ ACDBID 4:2
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "HandsetVM Tx"
+ Comment "Handset Tx device"
+
+ EnableSequence
+ 'SLIM_0_TX Channels':0:One
+ 'SLIM TX7 MUX':0:DEC7
+ 'DEC7 MUX':0:ADC1
+ 'DEC7 Volume':1:60
+ 'ADC1 Volume':1:100
+ 'MICBIAS1 CAPLESS Switch':1:0
+ EndSequence
+
+ DisableSequence
+ 'SLIM TX7 MUX':0:ZERO
+ 'DEC7 MUX':0:ZERO
+ 'DEC7 Volume':1:60
+ 'ADC1 Volume':1:0
+ 'MICBIAS1 CAPLESS Switch':1:1
+ EndSequence
+
+ ACDBID 4:2
+
+EndSection
+
+SectionDevice
+ Name "Camcorder Tx"
+ Comment "Camcorder Tx device"
+
+ EnableSequence
+ 'SLIM_0_TX Channels':0:One
+ 'SLIM TX7 MUX':0:DEC6
+ 'DEC6 MUX':0:ADC1
+ 'DEC6 Volume':1:72
+ 'ADC1 Volume':1:100
+ 'MICBIAS1 CAPLESS Switch':1:0
+ EndSequence
+
+ DisableSequence
+ 'SLIM TX7 MUX':0:ZERO
+ 'DEC6 MUX':0:ZERO
+ 'DEC6 Volume':1:60
+ 'ADC1 Volume':1:0
+ 'MICBIAS1 CAPLESS Switch':1:1
+ EndSequence
+
+ ACDBID 61:2
+
+EndSection
+
+SectionDevice
+ Name "Voice Recognition"
+ Comment "Voice Recognition Tx device"
+
+ EnableSequence
+ 'SLIM_0_TX Channels':0:One
+ 'SLIM TX7 MUX':0:DEC6
+ 'DEC6 MUX':0:ADC1
+ 'DEC6 Volume':1:68
+ 'ADC1 Volume':1:66
+ 'MICBIAS1 CAPLESS Switch':1:0
+ EndSequence
+
+ DisableSequence
+ 'SLIM TX7 MUX':0:ZERO
+ 'DEC6 MUX':0:ZERO
+ 'DEC6 Volume':1:68
+ 'ADC1 Volume':1:0
+ 'MICBIAS1 CAPLESS Switch':1:1
+ EndSequence
+
+ ACDBID 62:2
+
+EndSection
+
+SectionDevice
+ Name "TTY Handset Analog Tx"
+ Comment "TTY Handset Analog Tx device"
+
+ EnableSequence
+ 'SLIM_0_TX Channels':0:One
+ 'SLIM TX7 MUX':0:DEC7
+ 'DEC7 MUX':0:ADC1
+ 'DEC7 Volume':1:68
+ 'ADC1 Volume':1:100
+ 'MICBIAS1 CAPLESS Switch':1:1
+ EndSequence
+
+ DisableSequence
+ 'SLIM TX7 MUX':0:ZERO
+ 'DEC7 MUX':0:ZERO
+ 'DEC7 Volume':1:68
+ 'ADC1 Volume':1:0
+ 'MICBIAS1 CAPLESS Switch':1:0
+ EndSequence
+
+ ACDBID 36:2
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "Line"
+ Comment "Speaker Tx device"
+
+ EnableSequence
+ 'SLIM_0_TX Channels':0:One
+ 'SLIM TX7 MUX':0:DEC4
+ 'DEC4 MUX':0:ADC3
+ 'DEC4 Volume':1:80
+ 'ADC3 Volume':1:100
+ EndSequence
+
+ DisableSequence
+ 'SLIM TX7 MUX':0:ZERO
+ 'DEC4 MUX':0:ZERO
+ 'DEC4 Volume':1:60
+ 'ADC3 Volume':1:0
+ EndSequence
+
+ ACDBID 4:2
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "Voice Line"
+ Comment "Speaker Tx device for voice call"
+
+ EnableSequence
+ 'SLIM_0_TX Channels':0:One
+ 'SLIM TX7 MUX':0:DEC4
+ 'DEC4 MUX':0:ADC3
+ 'DEC4 Volume':1:70
+ 'ADC3 Volume':1:100
+ EndSequence
+
+ DisableSequence
+ 'SLIM TX7 MUX':0:ZERO
+ 'DEC4 MUX':0:ZERO
+ 'DEC4 Volume':1:68
+ 'ADC3 Volume':1:100
+ EndSequence
+
+ ACDBID 11:2
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "TTY Handset Tx"
+ Comment "TTY VCO Handset Tx device"
+
+ EnableSequence
+ 'SLIM_0_TX Channels':0:One
+ 'SLIM TX7 MUX':0:DEC7
+ 'DEC7 MUX':0:ADC1
+ 'DEC7 Volume':1:68
+ 'ADC1 Volume':1:100
+ 'MICBIAS1 CAPLESS Switch':1:0
+ EndSequence
+
+ DisableSequence
+ 'SLIM TX7 MUX':0:ZERO
+ 'DEC7 MUX':0:ZERO
+ 'DEC7 Volume':1:68
+ 'ADC1 Volume':1:0
+ 'MICBIAS1 CAPLESS Switch':1:1
+ EndSequence
+
+ ACDBID 36:2
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "HDMI Tx"
+ Comment "HDMI Tx device"
+
+ EnableSequence
+ 'SLIM_0_TX Channels':0:One
+ 'SLIM TX7 MUX':0:DEC7
+ 'DEC7 MUX':0:DMIC1
+ 'MICBIAS1 CAPLESS Switch':1:1
+ EndSequence
+
+ DisableSequence
+ 'SLIM TX7 MUX':0:ZERO
+ 'DEC7 MUX':0:ZERO
+ 'MICBIAS1 CAPLESS Switch':1:0
+ EndSequence
+
+ ACDBID 4:2
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+
+ Name "QMIC"
+ Comment "Quad mic device"
+
+ EnableSequence
+ 'SLIM_0_TX Channels':0:Four
+ 'SLIM TX7 MUX':0:DEC7
+ 'DEC7 MUX':0:DMIC1
+ 'SLIM TX8 MUX':0:DEC8
+ 'DEC8 MUX':0:DMIC2
+ 'SLIM TX9 MUX':0:DEC10
+ 'DEC10 MUX':0:DMIC3
+ 'SLIM TX10 MUX':0:DEC9
+ 'DEC9 MUX':0:DMIC4
+ 'MICBIAS1 CAPLESS Switch':1:1
+ 'MICBIAS3 CAPLESS Switch':1:1
+ EndSequence
+
+ DisableSequence
+ 'SLIM TX7 MUX':0:ZERO
+ 'DEC7 MUX':0:ZERO
+ 'SLIM TX8 MUX':0:ZERO
+ 'DEC8 MUX':0:ZERO
+ 'SLIM TX9 MUX':0:ZERO
+ 'DEC9 MUX':0:ZERO
+ 'SLIM TX10 MUX':0:ZERO
+ 'DEC10 MUX':0:ZERO
+ 'MICBIAS1 CAPLESS Switch':1:0
+ 'MICBIAS3 CAPLESS Switch':1:0
+ EndSequence
+
+ ACDBID 19:2
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "DMIC Broadside"
+ Comment "Dual MIC Broadside Tx device"
+
+ EnableSequence
+ 'SLIM TX7 MUX':0:DEC7
+ 'DEC7 MUX':0:DMIC1
+ 'SLIM TX8 MUX':0:DEC8
+ 'DEC8 MUX':0:DMIC2
+ 'MICBIAS1 CAPLESS Switch':1:1
+ 'SLIM_0_TX Channels':0:Two
+ 'IIR1 INP1 Volume':1:50
+ 'IIR1 INP1 MUX':0:DEC7
+ EndSequence
+
+ DisableSequence
+ 'SLIM TX7 MUX':0:ZERO
+ 'DEC7 MUX':0:ZERO
+ 'SLIM TX8 MUX':0:ZERO
+ 'DEC8 MUX':0:ZERO
+ 'MICBIAS1 CAPLESS Switch':1:0
+ 'IIR1 INP1 Volume':1:0
+ 'IIR1 INP1 MUX':0:ZERO
+ EndSequence
+
+ ACDBID 5:2
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "DMIC Endfire"
+ Comment "Dual MIC Endfire Tx device"
+
+ EnableSequence
+ 'SLIM TX7 MUX':0:DEC7
+ 'DEC7 MUX':0:ADC1
+ 'SLIM TX8 MUX':0:DEC9
+ 'DEC9 MUX':0:ADC3
+ 'DEC7 Volume':1:66
+ 'ADC1 Volume':1:100
+ 'DEC9 Volume':1:66
+ 'ADC3 Volume':1:100
+ 'SLIM_0_TX Channels':0:Two
+ 'MICBIAS1 CAPLESS Switch':1:0
+ 'RX1 MIX2 INP1':0:IIR1
+ 'RX2 MIX2 INP1':0:IIR1
+ 'IIR1 INP1 Volume':1:51
+ 'IIR1 INP1 MUX':0:DEC7
+ EndSequence
+
+ DisableSequence
+ 'DEC7 Volume':1:60
+ 'DEC9 Volume':1:60
+ 'SLIM TX7 MUX':0:ZERO
+ 'DEC7 MUX':0:ZERO
+ 'SLIM TX8 MUX':0:ZERO
+ 'DEC9 MUX':0:ZERO
+ 'MICBIAS1 CAPLESS Switch':1:1
+ 'RX1 MIX2 INP1':0:ZERO
+ 'RX2 MIX2 INP1':0:ZERO
+ 'IIR1 INP1 Volume':1:0
+ 'IIR1 INP1 MUX':0:ZERO
+ EndSequence
+
+ ACDBID 6:2
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "Speaker DMIC Broadside"
+ Comment "Dual MIC Broadside Tx device"
+
+ EnableSequence
+ 'SLIM TX7 MUX':0:DEC7
+ 'DEC7 MUX':0:DMIC1
+ 'SLIM TX8 MUX':0:DEC8
+ 'DEC8 MUX':0:DMIC2
+ 'MICBIAS1 CAPLESS Switch':1:1
+ 'SLIM_0_TX Channels':0:Two
+ EndSequence
+
+ DisableSequence
+ 'SLIM TX7 MUX':0:ZERO
+ 'DEC7 MUX':0:ZERO
+ 'SLIM TX8 MUX':0:ZERO
+ 'DEC8 MUX':0:ZERO
+ 'MICBIAS1 CAPLESS Switch':1:0
+ EndSequence
+
+ ACDBID 12:2
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "Speaker DMIC Endfire"
+ Comment "Dual MIC Endfire Tx device"
+
+ EnableSequence
+ 'SLIM TX7 MUX':0:DEC7
+ 'DEC7 MUX':0:ADC1
+ 'SLIM TX8 MUX':0:DEC9
+ 'DEC9 MUX':0:ADC3
+ 'MICBIAS1 CAPLESS Switch':1:1
+ 'MICBIAS3 CAPLESS Switch':1:1
+ 'SLIM_0_TX Channels':0:Two
+ EndSequence
+
+ DisableSequence
+ 'SLIM TX7 MUX':0:ZERO
+ 'DEC7 MUX':0:ZERO
+ 'SLIM TX8 MUX':0:ZERO
+ 'DEC9 MUX':0:ZERO
+ 'MICBIAS1 CAPLESS Switch':1:0
+ 'MICBIAS3 CAPLESS Switch':1:0
+ EndSequence
+
+ ACDBID 13:2
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "TTY Headset Rx"
+ Comment "TTY Headset Rx device"
+
+ EnableSequence
+ 'TTY Mode':0:VCO
+ 'SLIM_0_RX Channels':0:One
+ 'RX1 MIX1 INP1':0:RX6
+ 'RX2 MIX1 INP1':0:RX6
+ 'HPHL DAC Switch':1:1
+ 'HPHR DAC Switch':1:1
+ 'RX1 Digital Volume':1:68
+ 'RX2 Digital Volume':1:68
+ 'HPHL Volume':1:80
+ 'HPHR Volume':1:80
+ EndSequence
+
+ DisableSequence
+ 'TTY Mode':0:ZERO
+ 'RX1 MIX1 INP1':0:ZERO
+ 'RX2 MIX1 INP1':0:ZERO
+ 'HPHL DAC Switch':1:0
+ 'HPHR DAC Switch':1:0
+ 'RX1 Digital Volume':1:68
+ 'RX2 Digital Volume':1:68
+ 'HPHL Volume':1:0
+ 'HPHR Volume':1:0
+ EndSequence
+
+ ACDBID 17:1
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "TTY Headset Tx"
+ Comment "TTY Headset Tx device"
+
+ EnableSequence
+ 'TTY Mode':0:HCO
+ 'SLIM_0_TX Channels':0:One
+ 'SLIM TX7 MUX':0:DEC8
+ 'DEC8 MUX':0:ADC2
+ 'DEC8 Volume':1:68
+ 'ADC2 Volume':1:100
+ EndSequence
+
+ DisableSequence
+ 'TTY Mode':0:ZERO
+ 'SLIM TX7 MUX':0:ZERO
+ 'DEC8 MUX':0:ZERO
+ 'DEC8 Volume':1:68
+ 'ADC2 Volume':1:0
+ EndSequence
+
+ ACDBID 16:2
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "TTY Full Rx"
+ Comment "TTY Full Rx device"
+
+ EnableSequence
+ 'TTY Mode':0:FULL
+ 'SLIM_0_RX Channels':0:One
+ 'RX1 MIX1 INP1':0:RX6
+ 'RX2 MIX1 INP1':0:RX6
+ 'HPHL DAC Switch':1:1
+ 'HPHR DAC Switch':1:1
+ 'RX1 Digital Volume':1:68
+ 'RX2 Digital Volume':1:68
+ 'HPHL Volume':1:80
+ 'HPHR Volume':1:80
+ EndSequence
+
+ DisableSequence
+ 'TTY Mode':0:ZERO
+ 'RX1 MIX1 INP1':0:ZERO
+ 'RX2 MIX1 INP1':0:ZERO
+ 'HPHL DAC Switch':1:0
+ 'HPHR DAC Switch':1:0
+ 'RX1 Digital Volume':1:68
+ 'RX2 Digital Volume':1:68
+ 'HPHL Volume':1:0
+ 'HPHR Volume':1:0
+ EndSequence
+
+ ACDBID 17:1
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "TTY Full Tx"
+ Comment "TTY Full Tx device"
+
+ EnableSequence
+ 'SLIM_0_TX Channels':0:One
+ 'SLIM TX7 MUX':0:DEC8
+ 'DEC8 MUX':0:ADC2
+ 'DEC8 Volume':1:68
+ 'ADC2 Volume':1:100
+ EndSequence
+
+ DisableSequence
+ 'SLIM TX7 MUX':0:ZERO
+ 'DEC8 MUX':0:ZERO
+ 'DEC8 Volume':1:68
+ 'ADC2 Volume':1:0
+ EndSequence
+
+ ACDBID 16:2
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "BT SCO Rx"
+ Comment "BT SCO Rx device"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ ACDBID 22:1
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "BT SCO Tx"
+ Comment "BT SCO Tx device"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ ACDBID 21:2
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "BT SCO WB Rx"
+ Comment "BT SCO Rx device"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ ACDBID 39:1
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "BT SCO WB Tx"
+ Comment "BT SCO Tx device"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ ACDBID 38:2
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "HDMI"
+ Comment "HDMI Rx device"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ ACDBID 18:1
+ EffectsMixerCTL "SRS TruMedia HDMI"
+
+EndSection
+
+
+SectionDevice
+ Name "HDMI Speaker"
+ Comment "HDMI Speaker Rx device"
+
+ EnableSequence
+ 'SLIM_0_RX Channels':0:One
+ 'RX3 MIX1 INP1':0:RX1
+ 'RX3 MIX1 INP2':0:RX6
+ 'RX4 DSM MUX':0:DSM_INV
+ 'RX3 Digital Volume':1:68
+ 'LINEOUT1 Volume':1:100
+ 'LINEOUT3 Volume':1:100
+ 'SLIM TX3 MUX':0:RMIX3
+ EndSequence
+
+ DisableSequence
+ 'RX3 MIX1 INP1':0:ZERO
+ 'RX3 MIX1 INP2':0:ZERO
+ 'RX4 DSM MUX':0:CIC_OUT
+ 'RX3 Digital Volume':1:68
+ 'LINEOUT1 Volume':1:0
+ 'LINEOUT3 Volume':1:0
+ 'SLIM TX3 MUX':0:ZERO
+ EndSequence
+
+ ACDBID 14:1
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "FM Tx"
+ Comment "FM Tx device"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ ACDBID 0:1
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "PROXY Rx"
+ Comment "PROXY Rx device"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ ACDBID 0:1
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "PROXY Tx"
+ Comment "PROXY Tx device"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ ACDBID 0:2
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "SSR QMIC"
+ Comment "Quad mic device for Surround Sound Recording"
+
+ EnableSequence
+ 'SLIM_0_TX Channels':0:Four
+ 'SLIM TX7 MUX':0:DEC9
+ 'DEC9 MUX':0:DMIC4
+ 'SLIM TX8 MUX':0:DEC10
+ 'DEC10 MUX':0:DMIC3
+ 'SLIM TX9 MUX':0:DEC7
+ 'DEC7 MUX':0:DMIC1
+ 'SLIM TX10 MUX':0:DEC6
+ 'DEC6 MUX':0:DMIC6
+ 'MICBIAS1 CAPLESS Switch':1:1
+ 'MICBIAS3 CAPLESS Switch':1:1
+ 'MICBIAS4 CAPLESS Switch':1:1
+ EndSequence
+
+ DisableSequence
+ 'SLIM TX7 MUX':0:ZERO
+ 'DEC9 MUX':0:ZERO
+ 'SLIM TX8 MUX':0:ZERO
+ 'DEC10 MUX':0:ZERO
+ 'SLIM TX9 MUX':0:ZERO
+ 'DEC7 MUX':0:ZERO
+ 'SLIM TX10 MUX':0:ZERO
+ 'DEC6 MUX':0:ZERO
+ 'MICBIAS1 CAPLESS Switch':1:0
+ 'MICBIAS3 CAPLESS Switch':1:0
+ 'MICBIAS4 CAPLESS Switch':1:0
+ EndSequence
+
+ ACDBID 46:2
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "Dummy Tx"
+ Comment "Dummy Tx device, not a physical device just for routing"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ ACDBID 0:2
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionModifier
+ Name "Play Music"
+ Comment "Modifier for music playback"
+
+ EnableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
+ EndSequence
+
+ DisableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionModifier
+ Name "Play MusicHeadphones"
+ Comment "Modifier for music playback via headphone"
+
+ EnableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
+ 'SLIM_0_RX Channels':0:Two
+ 'RX1 MIX1 INP1':0:RX1
+ 'RX1 MIX1 INP2':0:RX6
+ 'RX2 MIX1 INP1':0:RX2
+ 'RX2 MIX1 INP2':0:RX7
+ 'HPHL DAC Switch':1:1
+ 'HPHR DAC Switch':1:1
+ 'RX1 Digital Volume':1:68
+ 'RX2 Digital Volume':1:68
+ 'HPHL Volume':1:50
+ 'HPHR Volume':1:50
+ 'SLIM TX3 MUX':0:RMIX1
+ 'SLIM TX5 MUX':0:RMIX2
+ EndSequence
+
+ DisableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionModifier
+ Name "Play MusicSpeaker FM Tx"
+ Comment "Modifier for music playback"
+
+ EnableSequence
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia1':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia1':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionModifier
+ Name "Play MusicFM Tx"
+ Comment "Modifier for music playback on FM Tx"
+
+ EnableSequence
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia1':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia1':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionModifier
+ Name "Play MusicHDMI"
+ Comment "Modifier for music playback on HDMI"
+
+ EnableSequence
+ 'HDMI Mixer MultiMedia1':1:1
+ EndSequence
+
+ DisableSequence
+ 'HDMI Mixer MultiMedia1':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionModifier
+ Name "Play MusicHDMI Speaker"
+ Comment "Modifier for music playback on HDMI Speaker"
+
+ EnableSequence
+ 'HDMI Mixer MultiMedia1':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
+ EndSequence
+
+ DisableSequence
+ 'HDMI Mixer MultiMedia1':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionModifier
+ Name "Play MusicBT SCO Rx"
+ Comment "Modifier for music playback"
+
+ EnableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia1':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia1':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionModifier
+ Name "Play MusicBT SCO WB Rx"
+ Comment "Modifier for music playback"
+
+ EnableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia1':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia1':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionModifier
+ Name "Play MusicPROXY Rx"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia1':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia1':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionModifier
+ Name "Play FM"
+
+ EnableSequence
+ 'Internal FM RX Volume':1:0
+ 'SLIMBUS_0_RX Port Mixer INTERNAL_FM_TX':1:1
+ 'SLIMBUS_DL_HL Switch':1:1
+ EndSequence
+
+ DisableSequence
+ 'SLIMBUS_0_RX Port Mixer INTERNAL_FM_TX':1:0
+ 'SLIMBUS_DL_HL Switch':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 5
+ CapturePCM 6
+
+EndSection
+
+SectionModifier
+ Name "Play Music2"
+
+ EnableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+
+SectionModifier
+ Name "Play Music2Speaker FM Tx"
+ Comment "Modifier for music playback"
+
+ EnableSequence
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia2':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia2':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+
+SectionModifier
+ Name "Play Music2FM Tx"
+ Comment "Modifier for music playback on FM Tx"
+
+ EnableSequence
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+
+SectionModifier
+ Name "Play Music2HDMI"
+ Comment "Modifier for music playback on HDMI"
+
+ EnableSequence
+ 'HDMI Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'HDMI Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+
+SectionModifier
+ Name "Play Music2HDMI Speaker"
+ Comment "Modifier for music playback on HDMI Speaker"
+
+ EnableSequence
+ 'HDMI Mixer MultiMedia2':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'HDMI Mixer MultiMedia2':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+
+SectionModifier
+ Name "Play Music2HDMI SPDIF"
+ Comment "Modifier for music playback on HDMI SPDIF"
+
+ EnableSequence
+ 'HDMI Mixer MultiMedia2':1:1
+ 'SEC_RX Audio Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'HDMI Mixer MultiMedia2':1:0
+ 'SEC_RX Audio Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+
+SectionModifier
+ Name "Play Music2BT SCO Rx"
+ Comment "Modifier for music playback"
+
+ EnableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+
+SectionModifier
+ Name "Play Music2BT SCO WB Rx"
+ Comment "Modifier for music playback"
+
+ EnableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+
+SectionModifier
+ Name "Play Music2PROXY Rx"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+
+SectionModifier
+ Name "Capture FM"
+
+ EnableSequence
+ 'MultiMedia1 Mixer INTERNAL_FM_TX':1:1
+ EndSequence
+
+ DisableSequence
+ 'MultiMedia1 Mixer INTERNAL_FM_TX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 0
+ CapturePCM 0
+
+EndSection
+
+SectionModifier
+ Name "Play LPA"
+
+ EnableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia3':1:1
+ EndSequence
+
+ DisableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia3':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 4
+
+EndSection
+
+SectionModifier
+ Name "Play LPASpeaker FM Tx"
+
+ EnableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia3':1:1
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia3':1:1
+ EndSequence
+
+ DisableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia3':1:0
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia3':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 4
+
+EndSection
+
+SectionModifier
+ Name "Play LPAFM Tx"
+
+ EnableSequence
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia3':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia3':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 4
+
+EndSection
+
+SectionModifier
+ Name "Play LPAHDMI"
+
+ EnableSequence
+ 'HDMI Mixer MultiMedia3':1:1
+ EndSequence
+
+ DisableSequence
+ 'HDMI Mixer MultiMedia3':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 4
+
+EndSection
+
+SectionModifier
+ Name "Play LPAHDMI Speaker"
+
+ EnableSequence
+ 'HDMI Mixer MultiMedia3':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia3':1:1
+ EndSequence
+
+ DisableSequence
+ 'HDMI Mixer MultiMedia3':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia3':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 4
+
+EndSection
+
+SectionModifier
+ Name "Play LPABT SCO Rx"
+
+ EnableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia3':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia3':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 4
+
+EndSection
+
+SectionModifier
+ Name "Play LPABT SCO WB Rx"
+
+ EnableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia3':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia3':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 4
+
+EndSection
+
+SectionModifier
+ Name "Play LPAPROXY Rx"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia3':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia3':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 4
+
+EndSection
+
+SectionModifier
+ Name "Capture Music"
+
+ EnableSequence
+ 'MultiMedia1 Mixer SLIM_0_TX':1:1
+ EndSequence
+
+ DisableSequence
+ 'MultiMedia1 Mixer SLIM_0_TX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionModifier
+ Name "Capture MusicBT SCO Tx"
+
+ EnableSequence
+ 'MultiMedia1 Mixer INTERNAL_BT_SCO_TX':1:1
+ EndSequence
+
+ DisableSequence
+ 'MultiMedia1 Mixer INTERNAL_BT_SCO_TX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionModifier
+ Name "Capture MusicBT SCO WB Tx"
+
+ EnableSequence
+ 'MultiMedia1 Mixer INTERNAL_BT_SCO_TX':1:1
+ EndSequence
+
+ DisableSequence
+ 'MultiMedia1 Mixer INTERNAL_BT_SCO_TX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionModifier
+ Name "Play Voice"
+
+ EnableSequence
+ 'STUB_RX Mixer Voice Stub':1:1
+ 'Voice Stub Tx Mixer STUB_TX_HL':1:1
+ 'Voice Stub Tx Mixer STUB_1_TX_HL':1:1
+ EndSequence
+
+ DisableSequence
+ 'STUB_RX Mixer Voice Stub':1:0
+ 'Voice Stub Tx Mixer STUB_TX_HL':1:0
+ 'Voice Stub Tx Mixer STUB_1_TX_HL':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 12
+ CapturePCM 12
+
+EndSection
+
+SectionModifier
+ Name "Play VoiceHDMI"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ 'Voice Stub Tx Mixer SLIM_3_TX':1:0
+ 'HDMI_RX_Voice Mixer Voice Stub':1:0
+ 'HDMI_RX Port Mixer SLIM_3_TX':1:0
+ 'Voice Stub Tx Mixer STUB_TX_HL':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 12
+ CapturePCM 12
+
+EndSection
+
+SectionModifier
+ Name "Play VoiceHDMI Tx"
+
+ EnableSequence
+ 'Voice Stub Tx Mixer SLIM_3_TX':1:1
+ 'HDMI_RX_Voice Mixer Voice Stub':1:1
+ 'HDMI_RX Port Mixer SLIM_3_TX':1:1
+ 'Voice Stub Tx Mixer STUB_TX_HL':1:1
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 12
+ CapturePCM 12
+
+EndSection
+
+SectionModifier
+ Name "Play VoiceBT SCO Rx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ 'Internal BTSCO SampleRate':0:8000
+ 'Voice Stub Tx Mixer INTERNAL_BT_SCO_TX':1:0
+ 'SLIMBUS_1_RX Mixer Voice Stub':1:0
+ 'Voice Stub Tx Mixer SLIM_1_TX':1:0
+ 'INTERNAL_BT_SCO_RX_Voice Mixer Voice Stub':1:0
+ 'SLIMBUS_1_RX Port Mixer INTERNAL_BT_SCO_TX':1:0
+ 'INTERNAL_BT_SCO_RX Port Mixer SLIM_1_TX':1:0
+ 'SLIMBUS_3_RX_Voice Mixer Voice Stub':1:0
+ 'SLIMBUS_3_RX Port Mixer INTERNAL_BT_SCO_RX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 12
+ CapturePCM 12
+
+EndSection
+
+SectionModifier
+ Name "Play VoiceBT SCO Tx"
+
+ EnableSequence
+ 'Internal BTSCO SampleRate':0:8000
+ 'Voice Stub Tx Mixer INTERNAL_BT_SCO_TX':1:1
+ 'SLIMBUS_1_RX Mixer Voice Stub':1:1
+ 'Voice Stub Tx Mixer SLIM_1_TX':1:1
+ 'INTERNAL_BT_SCO_RX_Voice Mixer Voice Stub':1:1
+ 'SLIMBUS_1_RX Port Mixer INTERNAL_BT_SCO_TX':1:1
+ 'INTERNAL_BT_SCO_RX Port Mixer SLIM_1_TX':1:1
+ 'SLIM_3_RX Channels':0:One
+ 'SLIMBUS_3_RX_Voice Mixer Voice Stub':1:1
+ 'SLIMBUS_3_RX Port Mixer INTERNAL_BT_SCO_RX':1:1
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 12
+ CapturePCM 12
+
+EndSection
+
+SectionModifier
+ Name "Play VoiceBT SCO WB Rx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ 'Internal BTSCO SampleRate':0:8000
+ 'Voice Stub Tx Mixer INTERNAL_BT_SCO_TX':1:0
+ 'SLIMBUS_1_RX Mixer Voice Stub':1:0
+ 'Voice Stub Tx Mixer SLIM_1_TX':1:0
+ 'INTERNAL_BT_SCO_RX_Voice Mixer Voice Stub':1:0
+ 'SLIMBUS_1_RX Port Mixer INTERNAL_BT_SCO_TX':1:0
+ 'INTERNAL_BT_SCO_RX Port Mixer SLIM_1_TX':1:0
+ 'SLIMBUS_3_RX_Voice Mixer Voice Stub':1:0
+ 'SLIMBUS_3_RX Port Mixer INTERNAL_BT_SCO_RX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 12
+ CapturePCM 12
+
+EndSection
+
+SectionModifier
+ Name "Play VoiceBT SCO WB Tx"
+
+ EnableSequence
+ 'Internal BTSCO SampleRate':0:16000
+ 'Voice Stub Tx Mixer INTERNAL_BT_SCO_TX':1:1
+ 'SLIMBUS_1_RX Mixer Voice Stub':1:1
+ 'Voice Stub Tx Mixer SLIM_1_TX':1:1
+ 'INTERNAL_BT_SCO_RX_Voice Mixer Voice Stub':1:1
+ 'SLIMBUS_1_RX Port Mixer INTERNAL_BT_SCO_TX':1:1
+ 'INTERNAL_BT_SCO_RX Port Mixer SLIM_1_TX':1:1
+ 'SLIM_3_RX Channels':0:One
+ 'SLIMBUS_3_RX_Voice Mixer Voice Stub':1:1
+ 'SLIMBUS_3_RX Port Mixer INTERNAL_BT_SCO_RX':1:1
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 12
+ CapturePCM 12
+
+EndSection
+
+SectionModifier
+ Name "Capture Voice"
+
+ EnableSequence
+ 'MultiMedia1 Mixer SLIM_4_TX':1:1
+ EndSequence
+
+ DisableSequence
+ 'MultiMedia1 Mixer SLIM_4_TX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 0
+ CapturePCM 0
+
+EndSection
+
+SectionModifier
+ Name "Capture A2DP FM"
+
+ EnableSequence
+ 'MultiMedia2 Mixer INTERNAL_FM_TX':1:1
+ EndSequence
+
+ DisableSequence
+ 'MultiMedia2 Mixer INTERNAL_FM_TX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 1
+ CapturePCM 1
+
+EndSection
+
+SectionModifier
+ Name "Play VOIP"
+
+ EnableSequence
+ 'SLIM_0_RX_Voice Mixer Voip':1:1
+ 'Voip_Tx Mixer SLIM_0_TX_Voip':1:1
+ EndSequence
+
+ DisableSequence
+ 'SLIM_0_RX_Voice Mixer Voip':1:0
+ 'Voip_Tx Mixer SLIM_0_TX_Voip':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 3
+ CapturePCM 3
+
+EndSection
+
+SectionModifier
+ Name "Play VOIPBT SCO Rx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ 'Internal BTSCO SampleRate':0:8000
+ 'INTERNAL_BT_SCO_RX_Voice Mixer Voip':1:0
+ 'Voip_Tx Mixer INTERNAL_BT_SCO_TX_Voip':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 3
+ CapturePCM 3
+
+EndSection
+
+SectionModifier
+ Name "Play VOIPBT SCO Tx"
+
+ EnableSequence
+ 'Internal BTSCO SampleRate':0:8000
+ 'INTERNAL_BT_SCO_RX_Voice Mixer Voip':1:1
+ 'Voip_Tx Mixer INTERNAL_BT_SCO_TX_Voip':1:1
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 3
+ CapturePCM 3
+
+EndSection
+
+SectionModifier
+ Name "Play VOIPBT SCO WB Rx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ 'Internal BTSCO SampleRate':0:8000
+ 'INTERNAL_BT_SCO_RX_Voice Mixer Voip':1:0
+ 'Voip_Tx Mixer INTERNAL_BT_SCO_TX_Voip':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 3
+ CapturePCM 3
+
+EndSection
+
+SectionModifier
+ Name "Play VOIPBT SCO WB Tx"
+
+ EnableSequence
+ 'Internal BTSCO SampleRate':0:16000
+ 'INTERNAL_BT_SCO_RX_Voice Mixer Voip':1:1
+ 'Voip_Tx Mixer INTERNAL_BT_SCO_TX_Voip':1:1
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 3
+ CapturePCM 3
+
+EndSection
+
+SectionModifier
+ Name "Play VOIPHDMI"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ 'HDMI_RX_Voice Mixer Voip':1:0
+ 'Voip_Tx Mixer SLIM_0_TX_Voip':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 3
+ CapturePCM 3
+
+EndSection
+
+SectionModifier
+ Name "Play VOIPHDMI Tx"
+
+ EnableSequence
+ 'HDMI_RX_Voice Mixer Voip':1:1
+ 'Voip_Tx Mixer SLIM_0_TX_Voip':1:1
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 3
+ CapturePCM 3
+
+EndSection
+
+SectionModifier
+ Name "Play MusicPROXY Tx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionModifier
+ Name "Play LPAPROXY Tx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionModifier
+ Name "Play FMPROXY Tx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionModifier
+ Name "Capture MusicPROXY Rx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionModifier
+ Name "Capture MusicSSR QMIC"
+
+ EnableSequence
+ 'MultiMedia1 Mixer SLIM_0_TX':1:1
+ EndSequence
+
+ DisableSequence
+ 'MultiMedia1 Mixer SLIM_0_TX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionModifier
+ Name "Play Tunnel"
+
+ EnableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
+ EndSequence
+
+ DisableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 9
+
+EndSection
+
+SectionModifier
+ Name "Play TunnelSpeaker FM Tx"
+
+ EnableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia4':1:1
+ EndSequence
+
+ DisableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia4':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 9
+
+EndSection
+
+SectionModifier
+ Name "Play TunnelFM Tx"
+
+ EnableSequence
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia4':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia4':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 9
+
+EndSection
+
+SectionModifier
+ Name "Play TunnelHDMI"
+
+ EnableSequence
+ 'HDMI Mixer MultiMedia4':1:1
+ EndSequence
+
+ DisableSequence
+ 'HDMI Mixer MultiMedia4':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 9
+
+EndSection
+
+SectionModifier
+ Name "Play TunnelHDMI Speaker"
+
+ EnableSequence
+ 'HDMI Mixer MultiMedia4':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
+ EndSequence
+
+ DisableSequence
+ 'HDMI Mixer MultiMedia4':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 9
+
+EndSection
+
+SectionModifier
+ Name "Play TunnelBT SCO Rx"
+
+ EnableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia4':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia4':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 9
+
+EndSection
+
+SectionModifier
+ Name "Play TunnelBT SCO WB Rx"
+
+ EnableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia4':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia4':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 9
+
+EndSection
+
+SectionModifier
+ Name "Play TunnelPROXY Rx"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia4':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia4':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 9
+
+EndSection
+
+
+SectionModifier
+ Name "Capture Lowlatency Music"
+
+ EnableSequence
+ 'MultiMedia5 Mixer SLIM_0_TX':1:1
+ EndSequence
+
+ DisableSequence
+ 'MultiMedia5 Mixer SLIM_0_TX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 14
+ PlaybackPCM 14
+
+EndSection
+
+SectionModifier
+ Name "Capture Lowlatency Music"
+
+ EnableSequence
+ 'MultiMedia5 Mixer SLIM_0_TX':1:1
+ EndSequence
+
+ DisableSequence
+ 'MultiMedia5 Mixer SLIM_0_TX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 14
+ PlaybackPCM 14
+
+EndSection
+
+
+SectionModifier
+ Name "Capture Lowlatency MusicBT SCO Tx"
+
+ EnableSequence
+ 'MultiMedia5 Mixer INTERNAL_BT_SCO_TX':1:1
+ EndSequence
+
+ DisableSequence
+ 'MultiMedia5 Mixer INTERNAL_BT_SCO_TX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 14
+ PlaybackPCM 14
+
+EndSection
+
+SectionModifier
+ Name "Capture Lowlatency MusicBT SCO WB Tx"
+
+ EnableSequence
+ 'MultiMedia5 Mixer INTERNAL_BT_SCO_TX':1:1
+ EndSequence
+
+ DisableSequence
+ 'MultiMedia5 Mixer INTERNAL_BT_SCO_TX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 14
+ PlaybackPCM 14
+
+EndSection
+
+SectionModifier
+ Name "Play Lowlatency Music"
+ Comment "Modifier for Lowlatency music playback"
+
+ EnableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:1
+ EndSequence
+
+ DisableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 14
+ PlaybackPCM 14
+
+EndSection
+
+SectionModifier
+ Name "Play Lowlatency MusicSpeaker FM Tx"
+ Comment "Modifier for Lowlatency music playback"
+
+ EnableSequence
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia5':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia5':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 14
+ PlaybackPCM 14
+
+EndSection
+
+SectionModifier
+ Name "Play Lowlatency MusicFM Tx"
+ Comment "Modifier for Lowlatency music playback on FM Tx"
+
+ EnableSequence
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia5':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia5':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 14
+ PlaybackPCM 14
+
+EndSection
+
+SectionModifier
+ Name "Play Lowlatency MusicHDMI"
+ Comment "Modifier for music playback on HDMI"
+
+ EnableSequence
+ 'HDMI Mixer MultiMedia5':1:1
+ EndSequence
+
+ DisableSequence
+ 'HDMI Mixer MultiMedia5':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 14
+ PlaybackPCM 14
+
+EndSection
+
+SectionModifier
+ Name "Play Lowlatency MusicHDMI Speaker"
+ Comment "Modifier for music playback on HDMI Speaker"
+
+ EnableSequence
+ 'HDMI Mixer MultiMedia5':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:1
+ EndSequence
+
+ DisableSequence
+ 'HDMI Mixer MultiMedia5':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 14
+ PlaybackPCM 14
+EndSection
+
+SectionModifier
+ Name "Play Lowlatency MusicBT SCO Rx"
+ Comment "Modifier for music playback"
+
+ EnableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia5':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia5':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 14
+ PlaybackPCM 14
+
+EndSection
+
+SectionModifier
+ Name "Play Lowlatency MusicBT SCO WB Rx"
+ Comment "Modifier for music playback"
+
+ EnableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia5':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia5':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 14
+ PlaybackPCM 14
+
+EndSection
+
+SectionModifier
+ Name "Play Lowlatency MusicPROXY Rx"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia5':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia5':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 14
+ PlaybackPCM 14
+
+EndSection
+
+SectionModifier
+ Name "Play Lowlatency MusicBT SCO Rx"
+ Comment "Modifier for music playback"
+
+ EnableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia5':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia5':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 14
+ PlaybackPCM 14
+
+EndSection
+
+SectionModifier
+ Name "Play Lowlatency MusicBT SCO WB Rx"
+ Comment "Modifier for music playback"
+
+ EnableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia5':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia5':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 14
+ PlaybackPCM 14
+
+EndSection
+
+SectionModifier
+ Name "Play Lowlatency MusicPROXY Rx"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia5':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia5':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 14
+ PlaybackPCM 14
+
+EndSection
+# End of master file
diff --git a/snd_soc_msm_2x_Fusion3 b/snd_soc_msm_2x_Fusion3
new file mode 100644
index 0000000..202252e
--- /dev/null
+++ b/snd_soc_msm_2x_Fusion3
@@ -0,0 +1,4407 @@
+# Master file for snd_soc_msm tabla 2.0 sound card
+# Lists all use case verbs
+SectionUseCase."HiFi" {
+Comment "Music playback use case"
+SectionVerb
+ Name "HiFi"
+
+ EnableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:1
+ EndSequence
+
+ DisableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 14
+ PlaybackPCM 14
+
+EndSection
+
+SectionVerb
+ Name "HiFiSpeaker FM Tx"
+
+ EnableSequence
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia1':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia1':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionVerb
+ Name "HiFiFM Tx"
+
+ EnableSequence
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia1':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia1':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionVerb
+ Name "HiFiHDMI"
+
+ EnableSequence
+ 'HDMI Mixer MultiMedia1':1:1
+ EndSequence
+
+ DisableSequence
+ 'HDMI Mixer MultiMedia1':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionVerb
+ Name "HiFiHDMI Speaker"
+
+ EnableSequence
+ 'HDMI Mixer MultiMedia1':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
+ EndSequence
+
+ DisableSequence
+ 'HDMI Mixer MultiMedia1':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+EndSection
+
+SectionVerb
+ Name "HiFiBT SCO Rx"
+
+ EnableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia1':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia1':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionVerb
+ Name "HiFiBT SCO WB Rx"
+
+ EnableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia1':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia1':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionVerb
+ Name "HiFiPROXY Rx"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia1':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia1':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionVerb
+ Name "HiFiPROXY Tx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+}
+SectionUseCase."HiFi Low Power" {
+Comment "LPA use case"
+SectionVerb
+ Name "HiFi Low Power"
+
+ EnableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia3':1:1
+ EndSequence
+
+ DisableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia3':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 4
+
+EndSection
+
+SectionVerb
+ Name "HiFi Low PowerSpeaker FM Tx"
+
+ EnableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia3':1:1
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia3':1:1
+ EndSequence
+
+ DisableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia3':1:0
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia3':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 4
+
+EndSection
+
+SectionVerb
+ Name "HiFi Low PowerFM Tx"
+
+ EnableSequence
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia3':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia3':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 4
+
+EndSection
+
+SectionVerb
+ Name "HiFi Low PowerHDMI"
+
+ EnableSequence
+ 'HDMI Mixer MultiMedia3':1:1
+ EndSequence
+
+ DisableSequence
+ 'HDMI Mixer MultiMedia3':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 4
+
+EndSection
+
+SectionVerb
+ Name "HiFi Low PowerHDMI Speaker"
+
+ EnableSequence
+ 'HDMI Mixer MultiMedia3':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia3':1:1
+ EndSequence
+
+ DisableSequence
+ 'HDMI Mixer MultiMedia3':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia3':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 4
+
+EndSection
+
+SectionVerb
+ Name "HiFi Low PowerBT SCO Rx"
+
+ EnableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia3':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia3':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 4
+
+EndSection
+
+SectionVerb
+ Name "HiFi Low PowerBT SCO WB Rx"
+
+ EnableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia3':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia3':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 4
+
+EndSection
+
+SectionVerb
+ Name "HiFi Low PowerPROXY Rx"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia3':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia3':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 4
+
+EndSection
+
+SectionVerb
+ Name "HiFi Low PowerPROXY Tx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 4
+
+EndSection
+}
+SectionUseCase."HiFi2" {
+Comment "Music playback use case for MM2 FE"
+SectionVerb
+ Name "HiFi2"
+
+ EnableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+
+SectionVerb
+ Name "HiFi2Speaker FM Tx"
+
+ EnableSequence
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia2':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia2':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+
+SectionVerb
+ Name "HiFi2FM Tx"
+
+ EnableSequence
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+
+SectionVerb
+ Name "HiFi2HDMI"
+
+ EnableSequence
+ 'HDMI Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'HDMI Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+
+SectionVerb
+ Name "HiFi2HDMI Speaker"
+
+ EnableSequence
+ 'HDMI Mixer MultiMedia2':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'HDMI Mixer MultiMedia2':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+EndSection
+
+SectionVerb
+ Name "HiFi2HDMI SPDIF"
+
+ EnableSequence
+ 'HDMI Mixer MultiMedia2':1:1
+ 'SEC_RX Audio Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'HDMI Mixer MultiMedia2':1:0
+ 'SEC_RX Audio Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+
+SectionVerb
+ Name "HiFi2BT SCO Rx"
+
+ EnableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+
+SectionVerb
+ Name "HiFi2BT SCO WB Rx"
+
+ EnableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+
+SectionVerb
+ Name "HiFi2PROXY Rx"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+
+SectionVerb
+ Name "HiFi2PROXY Tx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+
+SectionVerb
+ Name "HiFi2SPDIF"
+
+ EnableSequence
+ 'SEC_RX Audio Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'SEC_RX Audio Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+
+SectionVerb
+ Name "HiFi2SPDIF Speaker"
+
+ EnableSequence
+ 'SEC_RX Audio Mixer MultiMedia2':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'SEC_RX Audio Mixer MultiMedia2':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+
+SectionVerb
+ Name "HiFi2SPDIF Earpiece"
+
+ EnableSequence
+ 'SEC_RX Audio Mixer MultiMedia2':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'SEC_RX Audio Mixer MultiMedia2':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+
+SectionVerb
+ Name "HiFi2SPDIF Headphones"
+
+ EnableSequence
+ 'SEC_RX Audio Mixer MultiMedia2':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'SEC_RX Audio Mixer MultiMedia2':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+
+SectionVerb
+ Name "HiFi2SPDIF ANC Headset"
+
+ EnableSequence
+ 'SEC_RX Audio Mixer MultiMedia2':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'SEC_RX Audio Mixer MultiMedia2':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+
+SectionVerb
+ Name "HiFi2SPDIF Speaker Headset"
+
+ EnableSequence
+ 'SEC_RX Audio Mixer MultiMedia2':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'SEC_RX Audio Mixer MultiMedia2':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+
+SectionVerb
+ Name "HiFi2SPDIF Speaker ANC Headset"
+
+ EnableSequence
+ 'SEC_RX Audio Mixer MultiMedia2':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'SEC_RX Audio Mixer MultiMedia2':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+
+SectionVerb
+ Name "HiFi2PROXY Rx Speaker"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia2':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia2':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+
+SectionVerb
+ Name "HiFi2PROXY Rx Earpiece"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia2':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia2':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+
+SectionVerb
+ Name "HiFi2PROXY Rx Headphones"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia2':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia2':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+
+SectionVerb
+ Name "HiFi2PROXY Rx ANC Headset"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia2':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia2':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+
+SectionVerb
+ Name "HiFi2PROXY Rx Speaker Headset"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia2':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia2':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+
+SectionVerb
+ Name "HiFi2PROXY Rx Speaker ANC Headset"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia2':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia2':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+}
+SectionUseCase."HiFi Rec" {
+Comment "Recording use case"
+SectionVerb
+ Name "HiFi Rec"
+
+ EnableSequence
+ 'MultiMedia1 Mixer SLIM_0_TX':1:1
+ EndSequence
+
+ DisableSequence
+ 'MultiMedia1 Mixer SLIM_0_TX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionVerb
+ Name "HiFi RecBT SCO Tx"
+
+ EnableSequence
+ 'MultiMedia1 Mixer INTERNAL_BT_SCO_TX':1:1
+ EndSequence
+
+ DisableSequence
+ 'MultiMedia1 Mixer INTERNAL_BT_SCO_TX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionVerb
+ Name "HiFi RecBT SCO WB Tx"
+
+ EnableSequence
+ 'MultiMedia1 Mixer INTERNAL_BT_SCO_TX':1:1
+ EndSequence
+
+ DisableSequence
+ 'MultiMedia1 Mixer INTERNAL_BT_SCO_TX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionVerb
+ Name "HiFi RecSSR QMIC"
+
+ EnableSequence
+ 'MultiMedia1 Mixer SLIM_0_TX':1:1
+ EndSequence
+
+ DisableSequence
+ 'MultiMedia1 Mixer SLIM_0_TX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+}
+SectionUseCase."Voice Call" {
+Comment "Voice Call use case"
+SectionVerb
+ Name "Voice Call"
+
+ EnableSequence
+ 'STUB_RX Mixer Voice Stub':1:1
+ 'Voice Stub Tx Mixer STUB_TX_HL':1:1
+ 'Voice Stub Tx Mixer STUB_1_TX_HL':1:1
+ EndSequence
+
+ DisableSequence
+ 'STUB_RX Mixer Voice Stub':1:0
+ 'Voice Stub Tx Mixer STUB_TX_HL':1:0
+ 'Voice Stub Tx Mixer STUB_1_TX_HL':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 12
+ CapturePCM 12
+
+EndSection
+
+SectionVerb
+ Name "Voice CallHDMI"
+
+ EnableSequence
+ 'Voice Stub Tx Mixer SLIM_3_TX':1:0
+ 'HDMI_RX_Voice Mixer Voice Stub':1:0
+ 'HDMI_RX Port Mixer SLIM_3_TX':1:0
+ 'Voice Stub Tx Mixer STUB_TX_HL':1:0
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 12
+ CapturePCM 12
+
+EndSection
+
+SectionVerb
+ Name "Voice CallHDMI Tx"
+
+ EnableSequence
+ 'Voice Stub Tx Mixer SLIM_3_TX':1:1
+ 'HDMI_RX_Voice Mixer Voice Stub':1:1
+ 'HDMI_RX Port Mixer SLIM_3_TX':1:1
+ 'Voice Stub Tx Mixer STUB_TX_HL':1:1
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 12
+ CapturePCM 12
+
+EndSection
+
+SectionVerb
+ Name "Voice CallBT SCO Rx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ 'Internal BTSCO SampleRate':0:8000
+ 'Voice Stub Tx Mixer INTERNAL_BT_SCO_TX':1:0
+ 'SLIMBUS_1_RX Mixer Voice Stub':1:0
+ 'Voice Stub Tx Mixer SLIM_1_TX':1:0
+ 'INTERNAL_BT_SCO_RX_Voice Mixer Voice Stub':1:0
+ 'SLIMBUS_1_RX Port Mixer INTERNAL_BT_SCO_TX':1:0
+ 'INTERNAL_BT_SCO_RX Port Mixer SLIM_1_TX':1:0
+ 'SLIMBUS_3_RX_Voice Mixer Voice Stub':1:0
+ 'SLIMBUS_3_RX Port Mixer INTERNAL_BT_SCO_RX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 12
+ CapturePCM 12
+
+EndSection
+
+SectionVerb
+ Name "Voice CallBT SCO Tx"
+
+ EnableSequence
+ 'Internal BTSCO SampleRate':0:8000
+ 'Voice Stub Tx Mixer INTERNAL_BT_SCO_TX':1:1
+ 'SLIMBUS_1_RX Mixer Voice Stub':1:1
+ 'Voice Stub Tx Mixer SLIM_1_TX':1:1
+ 'INTERNAL_BT_SCO_RX_Voice Mixer Voice Stub':1:1
+ 'SLIMBUS_1_RX Port Mixer INTERNAL_BT_SCO_TX':1:1
+ 'INTERNAL_BT_SCO_RX Port Mixer SLIM_1_TX':1:1
+ 'SLIM_3_RX Channels':0:One
+ 'SLIMBUS_3_RX_Voice Mixer Voice Stub':1:1
+ 'SLIMBUS_3_RX Port Mixer INTERNAL_BT_SCO_RX':1:1
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 12
+ CapturePCM 12
+
+EndSection
+
+SectionVerb
+ Name "Voice CallBT SCO WB Rx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ 'Internal BTSCO SampleRate':0:8000
+ 'Voice Stub Tx Mixer INTERNAL_BT_SCO_TX':1:0
+ 'SLIMBUS_1_RX Mixer Voice Stub':1:0
+ 'Voice Stub Tx Mixer SLIM_1_TX':1:0
+ 'INTERNAL_BT_SCO_RX_Voice Mixer Voice Stub':1:0
+ 'SLIMBUS_1_RX Port Mixer INTERNAL_BT_SCO_TX':1:0
+ 'INTERNAL_BT_SCO_RX Port Mixer SLIM_1_TX':1:0
+ 'SLIMBUS_3_RX_Voice Mixer Voice Stub':1:0
+ 'SLIMBUS_3_RX Port Mixer INTERNAL_BT_SCO_RX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 12
+ CapturePCM 12
+
+EndSection
+
+SectionVerb
+ Name "Voice CallBT SCO WB Tx"
+
+ EnableSequence
+ 'Internal BTSCO SampleRate':0:16000
+ 'Voice Stub Tx Mixer INTERNAL_BT_SCO_TX':1:1
+ 'SLIMBUS_1_RX Mixer Voice Stub':1:1
+ 'Voice Stub Tx Mixer SLIM_1_TX':1:1
+ 'INTERNAL_BT_SCO_RX_Voice Mixer Voice Stub':1:1
+ 'SLIMBUS_1_RX Port Mixer INTERNAL_BT_SCO_TX':1:1
+ 'INTERNAL_BT_SCO_RX Port Mixer SLIM_1_TX':1:1
+ 'SLIM_3_RX Channels':0:One
+ 'SLIMBUS_3_RX_Voice Mixer Voice Stub':1:1
+ 'SLIMBUS_3_RX Port Mixer INTERNAL_BT_SCO_RX':1:1
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 12
+ CapturePCM 12
+
+EndSection
+}
+SectionUseCase."Voice Call IP" {
+Comment "VOIP Call use case"
+SectionVerb
+ Name "Voice Call IP"
+
+ EnableSequence
+ 'SLIM_0_RX_Voice Mixer Voip':1:1
+ 'Voip_Tx Mixer SLIM_0_TX_Voip':1:1
+ EndSequence
+
+ DisableSequence
+ 'SLIM_0_RX_Voice Mixer Voip':1:0
+ 'Voip_Tx Mixer SLIM_0_TX_Voip':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 3
+ CapturePCM 3
+
+EndSection
+
+SectionVerb
+ Name "Voice Call IPHDMI Tx"
+
+ EnableSequence
+ 'HDMI_RX_Voice Mixer Voip':1:1
+ 'Voip_Tx Mixer SLIM_0_TX_Voip':1:1
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 3
+ CapturePCM 3
+
+EndSection
+
+SectionVerb
+ Name "Voice Call IPBT SCO Rx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ 'Internal BTSCO SampleRate':0:8000
+ 'INTERNAL_BT_SCO_RX_Voice Mixer Voip':1:0
+ 'Voip_Tx Mixer INTERNAL_BT_SCO_TX_Voip':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 3
+ CapturePCM 3
+
+EndSection
+
+SectionVerb
+ Name "Voice Call IPBT SCO Tx"
+
+ EnableSequence
+ 'Internal BTSCO SampleRate':0:8000
+ 'INTERNAL_BT_SCO_RX_Voice Mixer Voip':1:1
+ 'Voip_Tx Mixer INTERNAL_BT_SCO_TX_Voip':1:1
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 3
+ CapturePCM 3
+
+EndSection
+
+SectionVerb
+ Name "Voice Call IPBT SCO WB Rx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ 'Internal BTSCO SampleRate':0:8000
+ 'INTERNAL_BT_SCO_RX_Voice Mixer Voip':1:0
+ 'Voip_Tx Mixer INTERNAL_BT_SCO_TX_Voip':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 3
+ CapturePCM 3
+
+EndSection
+
+SectionVerb
+ Name "Voice Call IPBT SCO WB Tx"
+
+ EnableSequence
+ 'Internal BTSCO SampleRate':0:16000
+ 'INTERNAL_BT_SCO_RX_Voice Mixer Voip':1:1
+ 'Voip_Tx Mixer INTERNAL_BT_SCO_TX_Voip':1:1
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 3
+ CapturePCM 3
+
+EndSection
+
+SectionVerb
+ Name "Voice Call IPHDMI"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ 'HDMI_RX_Voice Mixer Voip':1:0
+ 'Voip_Tx Mixer SLIM_0_TX_Voip':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 3
+ CapturePCM 3
+
+EndSection
+
+SectionVerb
+ Name "Voice Call IPFM Tx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ 'SLIM_0_RX_Voice Mixer Voip':1:0
+ 'Voip_Tx Mixer SLIM_0_TX_Voip':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 3
+ CapturePCM 3
+
+EndSection
+}
+
+SectionUseCase."FM Digital Radio" {
+Comment "FM Radio use case"
+SectionVerb
+ Name "FM Digital Radio"
+
+ EnableSequence
+ 'Internal FM RX Volume':1:0
+ 'SLIMBUS_0_RX Port Mixer INTERNAL_FM_TX':1:1
+ 'SLIMBUS_DL_HL Switch':1:1
+ EndSequence
+
+ DisableSequence
+ 'SLIMBUS_0_RX Port Mixer INTERNAL_FM_TX':1:0
+ 'SLIMBUS_DL_HL Switch':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 5
+ CapturePCM 6
+
+EndSection
+
+SectionVerb
+ Name "FM Digital RadioPROXY Rx"
+
+ EnableSequence
+ 'Internal FM RX Volume':1:0
+ 'AFE_PCM_RX Port Mixer INTERNAL_FM_TX':1:1
+ 'PCM_RX_DL_HL Switch':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Port Mixer INTERNAL_FM_TX':1:0
+ 'PCM_RX_DL_HL Switch':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 5
+ CapturePCM 6
+
+EndSection
+
+SectionVerb
+ Name "FM Digital RadioPROXY Tx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 5
+ CapturePCM 6
+
+EndSection
+}
+SectionUseCase."FM REC" {
+Comment "FM Recording use case"
+SectionVerb
+ Name "FM REC"
+
+ EnableSequence
+ 'MultiMedia1 Mixer INTERNAL_FM_TX':1:1
+ EndSequence
+
+ DisableSequence
+ 'MultiMedia1 Mixer INTERNAL_FM_TX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 0
+ CapturePCM 0
+
+EndSection
+}
+SectionUseCase."FM A2DP REC" {
+Comment "FM A2DP playback use case"
+SectionVerb
+ Name "FM A2DP REC"
+
+ EnableSequence
+ 'MultiMedia2 Mixer INTERNAL_FM_TX':1:1
+ EndSequence
+
+ DisableSequence
+ 'MultiMedia2 Mixer INTERNAL_FM_TX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 1
+ CapturePCM 1
+
+EndSection
+}
+SectionUseCase."Incall REC" {
+Comment "Voice Recording use case"
+SectionVerb
+ Name "Incall REC"
+
+ EnableSequence
+ 'MultiMedia1 Mixer SLIM_4_TX':1:1
+ EndSequence
+
+ DisableSequence
+ 'MultiMedia1 Mixer SLIM_4_TX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 0
+ CapturePCM 0
+
+EndSection
+}
+SectionUseCase."HiFi Tunnel" {
+Comment "Tunnel mode playback use case"
+SectionVerb
+ Name "HiFi Tunnel"
+
+ EnableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
+ EndSequence
+
+ DisableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 9
+
+EndSection
+
+SectionVerb
+ Name "HiFi TunnelSpeaker FM Tx"
+
+ EnableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia4':1:1
+ EndSequence
+
+ DisableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia4':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 9
+
+EndSection
+
+SectionVerb
+ Name "HiFi TunnelFM Tx"
+
+ EnableSequence
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia4':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia4':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 9
+
+EndSection
+
+SectionVerb
+ Name "HiFi TunnelHDMI"
+
+ EnableSequence
+ 'HDMI Mixer MultiMedia4':1:1
+ EndSequence
+
+ DisableSequence
+ 'HDMI Mixer MultiMedia4':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 9
+
+EndSection
+
+SectionVerb
+ Name "HiFi TunnelHDMI Speaker"
+
+ EnableSequence
+ 'HDMI Mixer MultiMedia4':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
+ EndSequence
+
+ DisableSequence
+ 'HDMI Mixer MultiMedia4':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 9
+
+EndSection
+
+SectionVerb
+ Name "HiFi TunnelBT SCO Rx"
+
+ EnableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia4':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia4':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 9
+
+EndSection
+
+SectionVerb
+ Name "HiFi TunnelBT SCO WB Rx"
+
+ EnableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia4':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia4':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 9
+
+EndSection
+
+SectionVerb
+ Name "HiFi TunnelPROXY Rx"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia4':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia4':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 9
+
+EndSection
+
+}
+SectionUseCase."ADSP testfwk" {
+Comment "ADSP testfwk use case"
+
+SectionVerb
+ Name "ADSP testfwk"
+
+ EnableSequence
+ 'SLIMBUS_DL_HL Switch':1:1
+ EndSequence
+
+ DisableSequence
+ 'SLIMBUS_DL_HL Switch':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 5
+ CapturePCM 5
+
+EndSection
+}
+
+SectionUseCase."HiFi Lowlatency" {
+Comment "LowLatnecy mode playback use case"
+SectionVerb
+ Name "HiFi Lowlatency"
+
+ EnableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:1
+ EndSequence
+
+ DisableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 14
+ CapturePCM 14
+
+EndSection
+
+SectionVerb
+ Name "HiFi LowlatencySpeaker FM Tx"
+
+ EnableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:1
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia5':1:1
+ EndSequence
+
+ DisableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:0
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia5':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 14
+
+EndSection
+
+SectionVerb
+ Name "HiFi LowlatencyFM Tx"
+
+ EnableSequence
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia5':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia5':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 14
+
+EndSection
+
+SectionVerb
+ Name "HiFi LowlatencyHDMI"
+
+ EnableSequence
+ 'HDMI Mixer MultiMedia5':1:1
+ EndSequence
+
+ DisableSequence
+ 'HDMI Mixer MultiMedia5':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 14
+
+EndSection
+
+SectionVerb
+ Name "HiFi LowlatencyHDMI Speaker"
+
+ EnableSequence
+ 'HDMI Mixer MultiMedia5':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:1
+ EndSequence
+
+ DisableSequence
+ 'HDMI Mixer MultiMedia5':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 14
+
+EndSection
+
+SectionVerb
+ Name "HiFi LowlatencyBT SCO Rx"
+
+ EnableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia5':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia5':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 14
+
+EndSection
+
+SectionVerb
+ Name "HiFi LowlatencyBT SCO WB Rx"
+
+ EnableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia5':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia5':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 14
+
+EndSection
+
+SectionVerb
+ Name "HiFi LowlatencyPROXY Rx"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia5':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia5':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 14
+
+EndSection
+
+SectionVerb
+ Name "HiFi LowlatencyPROXY Tx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 14
+
+EndSection
+
+SectionVerb
+ Name "HiFi LowlatencyPROXY Rx Speaker"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia5':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia5':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 14
+
+EndSection
+SectionVerb
+ Name "HiFi LowlatencyPROXY Rx Earpiece"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia5':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia5':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 14
+
+EndSection
+SectionVerb
+ Name "HiFi LowlatencyPROXY Rx Headphones"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia5':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia5':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 14
+
+EndSection
+SectionVerb
+ Name "HiFi LowlatencyPROXY Rx ANC Headset"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia5':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia5':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 14
+
+EndSection
+SectionVerb
+ Name "HiFi LowlatencyPROXY Rx Speaker Headset"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia5':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia5':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 14
+
+EndSection
+SectionVerb
+ Name "HiFi LowlatencyPROXY Rx Speaker ANC Headset"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia5':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia5':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 14
+
+EndSection
+}
+
+SectionUseCase."HiFi Lowlatency Rec" {
+Comment "Recording use case"
+SectionVerb
+ Name "HiFi Lowlatency Rec"
+
+ EnableSequence
+ 'MultiMedia5 Mixer SLIM_0_TX':1:1
+ EndSequence
+
+ DisableSequence
+ 'MultiMedia5 Mixer SLIM_0_TX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 14
+ PlaybackPCM 14
+
+EndSection
+
+SectionVerb
+ Name "HiFi Lowlatency RecBT SCO Tx"
+
+ EnableSequence
+ 'MultiMedia5 Mixer INTERNAL_BT_SCO_TX':1:1
+ EndSequence
+
+ DisableSequence
+ 'MultiMedia5 Mixer INTERNAL_BT_SCO_TX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 14
+ PlaybackPCM 14
+
+EndSection
+
+SectionVerb
+ Name "HiFi Lowlatency RecBT SCO WB Tx"
+
+ EnableSequence
+ 'MultiMedia5 Mixer INTERNAL_BT_SCO_TX':1:1
+ EndSequence
+
+ DisableSequence
+ 'MultiMedia5 Mixer INTERNAL_BT_SCO_TX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 14
+ PlaybackPCM 14
+
+EndSection
+
+SectionVerb
+ Name "HiFi Lowlatency RecPROXY Rx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 14
+ PlaybackPCM 14
+
+EndSection
+
+SectionVerb
+ Name "HiFi Lowlatency RecPROXY Tx"
+
+ EnableSequence
+ 'MultiMedia5 Mixer AFE_PCM_TX':1:1
+ EndSequence
+
+ DisableSequence
+ 'MultiMedia5 Mixer AFE_PCM_TX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 14
+ PlaybackPCM 14
+
+EndSection
+
+SectionVerb
+ Name "HiFi Lowlatency RecSSR QMIC"
+
+ EnableSequence
+ 'MultiMedia5 Mixer SLIM_0_TX':1:1
+ EndSequence
+
+ DisableSequence
+ 'MultiMedia5 Mixer SLIM_0_TX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 14
+ PlaybackPCM 14
+
+EndSection
+}
+
+SectionDevice
+ Name "Earpiece"
+ Comment "Handset Rx device"
+
+ EnableSequence
+ 'SLIM_0_RX Channels':0:One
+ 'RX1 MIX1 INP1':0:RX1
+ 'RX1 MIX1 INP2':0:RX6
+ 'RX1 Digital Volume':1:68
+ 'EAR PA Gain':0:POS_6_DB
+ 'DAC1 Switch':1:1
+ 'SLIM TX3 MUX':0:RMIX1
+ EndSequence
+
+ DisableSequence
+ 'RX1 MIX1 INP1':0:ZERO
+ 'RX1 MIX1 INP2':0:ZERO
+ 'RX1 Digital Volume':1:68
+ 'DAC1 Switch':1:0
+ 'SLIM TX3 MUX':0:ZERO
+ EndSequence
+
+ ACDBID 7:1
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "Voice Earpiece"
+ Comment "Handset Rx device"
+
+ EnableSequence
+ 'SLIM_0_RX Channels':0:One
+ 'RX1 MIX1 INP1':0:RX1
+ 'RX1 MIX1 INP2':0:RX6
+ 'RX1 Digital Volume':1:68
+ 'EAR PA Gain':0:POS_6_DB
+ 'DAC1 Switch':1:1
+ 'SLIM TX3 MUX':0:RMIX1
+ EndSequence
+
+ DisableSequence
+ 'RX1 MIX1 INP1':0:ZERO
+ 'RX1 MIX1 INP2':0:ZERO
+ 'RX1 Digital Volume':1:68
+ 'DAC1 Switch':1:0
+ 'SLIM TX3 MUX':0:ZERO
+ EndSequence
+
+ ACDBID 7:1
+
+EndSection
+
+SectionDevice
+ Name "HAC Earpiece"
+ Comment "Handset Rx device for Hearing AID"
+
+ EnableSequence
+ 'SLIM_0_RX Channels':0:One
+ 'RX1 MIX1 INP1':0:RX1
+ 'RX1 MIX1 INP2':0:RX6
+ 'RX1 Digital Volume':1:68
+ 'EAR PA Gain':0:POS_2_DB
+ 'DAC1 Switch':1:1
+ 'SLIM TX3 MUX':0:RMIX1
+ EndSequence
+
+ DisableSequence
+ 'RX1 MIX1 INP1':0:ZERO
+ 'RX1 MIX1 INP2':0:ZERO
+ 'RX1 Digital Volume':1:68
+ 'DAC1 Switch':1:0
+ 'SLIM TX3 MUX':0:ZERO
+ EndSequence
+
+ ACDBID 60:1
+
+EndSection
+
+SectionDevice
+ Name "TTY Handset Rx"
+ Comment "TTY HCO Handset Rx device"
+
+ EnableSequence
+ 'SLIM_0_RX Channels':0:One
+ 'RX1 MIX1 INP1':0:RX1
+ 'RX1 MIX1 INP2':0:RX6
+ 'RX1 Digital Volume':1:68
+ 'EAR PA Gain':0:POS_6_DB
+ 'DAC1 Switch':1:1
+ EndSequence
+
+ DisableSequence
+ 'RX1 MIX1 INP1':0:ZERO
+ 'RX1 MIX1 INP2':0:ZERO
+ 'RX1 Digital Volume':1:68
+ 'DAC1 Switch':1:0
+ EndSequence
+
+ ACDBID 37:1
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "ANC Handset"
+ Comment "ANC Handset Rx device"
+
+ EnableSequence
+ 'SLIM_0_RX Channels':0:One
+ 'RX1 MIX1 INP1':0:RX1
+ 'RX1 MIX1 INP2':0:RX6
+ 'DAC1 Switch':1:1
+ 'ANC Slot':1:1
+ 'ANC1 MUX':0:DMIC1
+ 'MICBIAS1 CAPLESS Switch':1:1
+ 'SLIM TX3 MUX':0:RMIX1
+ EndSequence
+
+ DisableSequence
+ 'RX1 MIX1 INP1':0:ZERO
+ 'RX1 MIX1 INP2':0:ZERO
+ 'DAC1 Switch':1:0
+ 'ANC Slot':1:0
+ 'ANC1 MUX':0:ZERO
+ 'MICBIAS1 CAPLESS Switch':1:0
+ 'SLIM TX3 MUX':0:ZERO
+ EndSequence
+
+ ACDBID 30:1
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "Speaker"
+ Comment "Speaker Rx device"
+
+ EnableSequence
+ 'SLIM_0_RX Channels':0:One
+ 'RX3 MIX1 INP1':0:RX1
+ 'RX3 MIX1 INP2':0:RX6
+ 'RX4 DSM MUX':0:DSM_INV
+ 'RX3 Digital Volume':1:68
+ 'LINEOUT1 Volume':1:100
+ 'LINEOUT3 Volume':1:100
+ 'SLIM TX3 MUX':0:RMIX3
+ EndSequence
+
+ DisableSequence
+ 'RX3 MIX1 INP1':0:ZERO
+ 'RX3 MIX1 INP2':0:ZERO
+ 'RX4 DSM MUX':0:CIC_OUT
+ 'RX3 Digital Volume':1:68
+ 'LINEOUT1 Volume':1:0
+ 'LINEOUT3 Volume':1:0
+ 'SLIM TX3 MUX':0:ZERO
+ EndSequence
+
+ ACDBID 14:1
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "Voice Speaker"
+ Comment "Speaker for voice call"
+
+ EnableSequence
+ 'SLIM_0_RX Channels':0:One
+ 'RX3 MIX1 INP1':0:RX1
+ 'RX3 MIX1 INP2':0:RX6
+ 'RX4 DSM MUX':0:DSM_INV
+ 'RX3 Digital Volume':1:68
+ 'LINEOUT1 Volume':1:100
+ 'LINEOUT3 Volume':1:100
+ 'SLIM TX3 MUX':0:RMIX3
+ EndSequence
+
+ DisableSequence
+ 'RX3 MIX1 INP1':0:ZERO
+ 'RX3 MIX1 INP2':0:ZERO
+ 'RX4 DSM MUX':0:CIC_OUT
+ 'RX3 Digital Volume':1:68
+ 'LINEOUT1 Volume':1:0
+ 'LINEOUT3 Volume':1:0
+ 'SLIM TX3 MUX':0:ZERO
+ EndSequence
+
+ ACDBID 14:1
+
+EndSection
+
+SectionDevice
+ Name "Headphones"
+ Comment "Headset Rx device"
+
+ EnableSequence
+ 'SLIM_0_RX Channels':0:Two
+ 'RX1 MIX1 INP1':0:RX1
+ 'RX1 MIX1 INP2':0:RX6
+ 'RX2 MIX1 INP1':0:RX2
+ 'RX2 MIX1 INP2':0:RX7
+ 'HPHL DAC Switch':1:1
+ 'HPHR DAC Switch':1:1
+ 'RX1 Digital Volume':1:68
+ 'RX2 Digital Volume':1:68
+ 'HPHL Volume':1:50
+ 'HPHR Volume':1:50
+ 'SLIM TX3 MUX':0:RMIX1
+ 'SLIM TX5 MUX':0:RMIX2
+ EndSequence
+
+ DisableSequence
+ 'RX1 MIX1 INP1':0:ZERO
+ 'RX1 MIX1 INP2':0:ZERO
+ 'RX2 MIX1 INP1':0:ZERO
+ 'RX2 MIX1 INP2':0:ZERO
+ 'HPHL DAC Switch':1:0
+ 'HPHR DAC Switch':1:0
+ 'RX1 Digital Volume':1:68
+ 'RX2 Digital Volume':1:68
+ 'HPHL Volume':1:0
+ 'HPHR Volume':1:0
+ 'SLIM TX3 MUX':0:ZERO
+ 'SLIM TX5 MUX':0:ZERO
+ EndSequence
+
+ ACDBID 10:1
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "Voice Headphones"
+ Comment "Headset Rx device for voice call"
+
+ EnableSequence
+ 'SLIM_0_RX Channels':0:Two
+ 'RX1 MIX1 INP1':0:RX1
+ 'RX1 MIX1 INP2':0:RX6
+ 'RX2 MIX1 INP1':0:RX2
+ 'RX2 MIX1 INP2':0:RX7
+ 'HPHL DAC Switch':1:1
+ 'HPHR DAC Switch':1:1
+ 'RX1 Digital Volume':1:68
+ 'RX2 Digital Volume':1:68
+ 'HPHL Volume':1:50
+ 'HPHR Volume':1:50
+ 'SLIM TX3 MUX':0:RMIX1
+ 'SLIM TX5 MUX':0:RMIX2
+ EndSequence
+
+ DisableSequence
+ 'RX1 MIX1 INP1':0:ZERO
+ 'RX1 MIX1 INP2':0:ZERO
+ 'RX2 MIX1 INP1':0:ZERO
+ 'RX2 MIX1 INP2':0:ZERO
+ 'HPHL DAC Switch':1:0
+ 'HPHR DAC Switch':1:0
+ 'RX1 Digital Volume':1:68
+ 'RX2 Digital Volume':1:68
+ 'HPHL Volume':1:0
+ 'HPHR Volume':1:0
+ 'SLIM TX3 MUX':0:ZERO
+ 'SLIM TX5 MUX':0:ZERO
+ EndSequence
+
+ ACDBID 10:1
+
+EndSection
+
+SectionDevice
+ Name "Speaker Headset"
+ Comment "Speaker Headset Rx combo device"
+
+ EnableSequence
+ 'SLIM_0_RX Channels':0:Two
+ 'RX3 MIX1 INP1':0:RX1
+ 'RX3 MIX1 INP2':0:RX6
+ 'RX5 MIX1 INP1':0:RX2
+ 'RX5 MIX1 INP2':0:RX7
+ 'RX4 DSM MUX':0:DSM_INV
+ 'RX6 DSM MUX':0:DSM_INV
+ 'RX3 Digital Volume':1:68
+ 'LINEOUT1 Volume':1:66
+ 'LINEOUT3 Volume':1:66
+ 'RX1 MIX1 INP1':0:RX1
+ 'RX1 MIX1 INP2':0:RX6
+ 'RX2 MIX1 INP1':0:RX2
+ 'RX2 MIX1 INP2':0:RX7
+ 'HPHL DAC Switch':1:1
+ 'HPHR DAC Switch':1:1
+ 'RX1 Digital Volume':1:53
+ 'RX2 Digital Volume':1:53
+ 'HPHL Volume':1:80
+ 'HPHR Volume':1:80
+ 'SLIM TX3 MUX':0:RMIX1
+ 'SLIM TX5 MUX':0:RMIX2
+ EndSequence
+
+ DisableSequence
+ 'RX3 MIX1 INP1':0:ZERO
+ 'RX3 MIX1 INP2':0:ZERO
+ 'RX5 MIX1 INP1':0:ZERO
+ 'RX5 MIX1 INP2':0:ZERO
+ 'RX4 DSM MUX':0:CIC_OUT
+ 'RX6 DSM MUX':0:CIC_OUT
+ 'RX3 Digital Volume':1:68
+ 'LINEOUT1 Volume':1:0
+ 'LINEOUT3 Volume':1:0
+ 'RX1 MIX1 INP1':0:ZERO
+ 'RX1 MIX1 INP2':0:ZERO
+ 'RX2 MIX1 INP1':0:ZERO
+ 'RX2 MIX1 INP2':0:ZERO
+ 'HPHL DAC Switch':1:0
+ 'HPHR DAC Switch':1:0
+ 'RX1 Digital Volume':1:68
+ 'RX2 Digital Volume':1:68
+ 'HPHL Volume':1:0
+ 'HPHR Volume':1:0
+ 'SLIM TX3 MUX':0:ZERO
+ 'SLIM TX5 MUX':0:ZERO
+ EndSequence
+
+ ACDBID 10:1
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "Speaker ANC Headset"
+ Comment "Speaker ANC Headset Rx combo device"
+
+ EnableSequence
+ 'SLIM_0_RX Channels':0:Two
+ 'RX3 MIX1 INP1':0:RX1
+ 'RX3 MIX1 INP2':0:RX6
+ 'RX5 MIX1 INP1':0:RX2
+ 'RX5 MIX1 INP2':0:RX7
+ 'RX4 DSM MUX':0:DSM_INV
+ 'RX6 DSM MUX':0:DSM_INV
+ 'LINEOUT1 Volume':1:66
+ 'LINEOUT2 Volume':1:66
+ 'LINEOUT3 Volume':1:66
+ 'LINEOUT4 Volume':1:66
+ 'RX1 MIX1 INP1':0:RX1
+ 'RX1 MIX1 INP2':0:RX6
+ 'RX2 MIX1 INP1':0:RX2
+ 'RX2 MIX1 INP2':0:RX7
+ 'HPHL DAC Switch':1:1
+ 'HPHR DAC Switch':1:1
+ 'HPHL Volume':1:70
+ 'HPHR Volume':1:70
+ 'RX1 Digital Volume':1:65
+ 'RX2 Digital Volume':1:65
+ 'ANC Slot':1:0
+ 'ANC1 MUX':0:ADC4
+ 'ANC2 MUX':0:ADC3
+ 'ANC1 FB MUX':0:EAR_HPH_L
+ 'ADC3 Volume':1:85
+ 'ADC4 Volume':1:85
+ 'MICBIAS3 CAPLESS Switch':1:1
+ 'MICBIAS1 CAPLESS Switch':1:1
+ 'SLIM TX3 MUX':0:RMIX1
+ 'SLIM TX5 MUX':0:RMIX2
+ EndSequence
+
+ DisableSequence
+ 'RX3 MIX1 INP1':0:ZERO
+ 'RX3 MIX1 INP2':0:ZERO
+ 'RX5 MIX1 INP1':0:ZERO
+ 'RX5 MIX1 INP2':0:ZERO
+ 'RX4 DSM MUX':0:CIC_OUT
+ 'RX6 DSM MUX':0:CIC_OUT
+ 'LINEOUT1 Volume':1:0
+ 'LINEOUT2 Volume':1:0
+ 'LINEOUT3 Volume':1:0
+ 'LINEOUT4 Volume':1:0
+ 'RX1 MIX1 INP1':0:ZERO
+ 'RX1 MIX1 INP2':0:ZERO
+ 'RX2 MIX1 INP1':0:ZERO
+ 'RX2 MIX1 INP2':0:ZERO
+ 'HPHL DAC Switch':1:0
+ 'HPHR DAC Switch':1:0
+ 'HPHL Volume':1:0
+ 'HPHR Volume':1:0
+ 'RX1 Digital Volume':1:0
+ 'RX2 Digital Volume':1:0
+ 'ANC1 MUX':0:ZERO
+ 'ANC2 MUX':0:ZERO
+ 'ADC3 Volume':1:0
+ 'ADC4 Volume':1:0
+ 'MICBIAS3 CAPLESS Switch':1:0
+ 'MICBIAS1 CAPLESS Switch':1:0
+ 'SLIM TX3 MUX':0:ZERO
+ 'SLIM TX5 MUX':0:ZERO
+ EndSequence
+
+ ACDBID 26:1
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "ANC Headset"
+ Comment "ANC Headset Rx device"
+
+ EnableSequence
+ 'SLIM_0_RX Channels':0:Two
+ 'RX1 MIX1 INP1':0:RX1
+ 'RX1 MIX1 INP2':0:RX6
+ 'RX2 MIX1 INP1':0:RX2
+ 'RX2 MIX1 INP2':0:RX7
+ 'HPHL DAC Switch':1:1
+ 'HPHR DAC Switch':1:1
+ 'HPHL Volume':1:70
+ 'HPHR Volume':1:70
+ 'RX1 Digital Volume':1:65
+ 'RX2 Digital Volume':1:65
+ 'ANC Slot':1:0
+ 'ANC1 MUX':0:ADC4
+ 'ANC2 MUX':0:ADC3
+ 'ANC1 FB MUX':0:EAR_HPH_L
+ 'ADC3 Volume':1:85
+ 'ADC4 Volume':1:85
+ 'MICBIAS3 CAPLESS Switch':1:1
+ 'MICBIAS1 CAPLESS Switch':1:1
+ 'SLIM TX3 MUX':0:RMIX1
+ 'SLIM TX5 MUX':0:RMIX2
+ EndSequence
+
+ DisableSequence
+ 'RX1 MIX1 INP1':0:ZERO
+ 'RX1 MIX1 INP2':0:ZERO
+ 'RX2 MIX1 INP1':0:ZERO
+ 'RX2 MIX1 INP2':0:ZERO
+ 'HPHL DAC Switch':1:0
+ 'HPHR DAC Switch':1:0
+ 'HPHL Volume':1:0
+ 'HPHR Volume':1:0
+ 'RX1 Digital Volume':1:0
+ 'RX2 Digital Volume':1:0
+ 'ANC1 MUX':0:ZERO
+ 'ANC2 MUX':0:ZERO
+ 'ADC3 Volume':1:0
+ 'ADC4 Volume':1:0
+ 'MICBIAS3 CAPLESS Switch':1:0
+ 'MICBIAS1 CAPLESS Switch':1:0
+ 'SLIM TX3 MUX':0:ZERO
+ 'SLIM TX5 MUX':0:ZERO
+ EndSequence
+
+ ACDBID 26:1
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "Voice ANC Headset"
+ Comment "ANC Headset Rx device for voice call"
+
+ EnableSequence
+ 'SLIM_0_RX Channels':0:Two
+ 'RX1 MIX1 INP1':0:RX1
+ 'RX1 MIX1 INP2':0:RX6
+ 'RX2 MIX1 INP1':0:RX2
+ 'RX2 MIX1 INP2':0:RX7
+ 'HPHL DAC Switch':1:1
+ 'HPHR DAC Switch':1:1
+ 'HPHL Volume':1:70
+ 'HPHR Volume':1:70
+ 'RX1 Digital Volume':1:65
+ 'RX2 Digital Volume':1:65
+ 'ANC Slot':1:0
+ 'ANC1 MUX':0:ADC4
+ 'ANC2 MUX':0:ADC3
+ 'ANC1 FB MUX':0:EAR_HPH_L
+ 'ADC3 Volume':1:85
+ 'ADC4 Volume':1:85
+ 'MICBIAS3 CAPLESS Switch':1:1
+ 'MICBIAS1 CAPLESS Switch':1:1
+ 'SLIM TX3 MUX':0:RMIX1
+ 'SLIM TX5 MUX':0:RMIX2
+ EndSequence
+
+ DisableSequence
+ 'RX1 MIX1 INP1':0:ZERO
+ 'RX1 MIX1 INP2':0:ZERO
+ 'RX2 MIX1 INP1':0:ZERO
+ 'RX2 MIX1 INP2':0:ZERO
+ 'HPHL DAC Switch':1:0
+ 'HPHR DAC Switch':1:0
+ 'HPHL Volume':1:0
+ 'HPHR Volume':1:0
+ 'RX1 Digital Volume':1:0
+ 'RX2 Digital Volume':1:0
+ 'ANC1 MUX':0:ZERO
+ 'ANC2 MUX':0:ZERO
+ 'ADC3 Volume':1:0
+ 'ADC4 Volume':1:0
+ 'MICBIAS3 CAPLESS Switch':1:0
+ 'MICBIAS1 CAPLESS Switch':1:0
+ 'SLIM TX3 MUX':0:ZERO
+ 'SLIM TX5 MUX':0:ZERO
+ EndSequence
+
+ ACDBID 26:1
+
+EndSection
+
+SectionDevice
+ Name "Speaker FM Tx"
+ Comment "Speaker FM Tx combo device"
+
+ EnableSequence
+ 'SLIM_0_RX Channels':0:Two
+ 'RX3 MIX1 INP1':0:RX1
+ 'RX3 MIX1 INP2':0:RX6
+ 'RX5 MIX1 INP1':0:RX2
+ 'RX5 MIX1 INP2':0:RX7
+ 'RX4 DSM MUX':0:DSM_INV
+ 'RX6 DSM MUX':0:DSM_INV
+ 'LINEOUT1 Volume':1:66
+ 'LINEOUT2 Volume':1:66
+ 'LINEOUT3 Volume':1:66
+ 'LINEOUT4 Volume':1:66
+ 'SLIM TX3 MUX':0:RMIX3
+ 'SLIM TX5 MUX':0:RMIX5
+ EndSequence
+
+ DisableSequence
+ 'RX3 MIX1 INP1':0:ZERO
+ 'RX3 MIX1 INP2':0:ZERO
+ 'RX5 MIX1 INP1':0:ZERO
+ 'RX5 MIX1 INP2':0:ZERO
+ 'RX4 DSM MUX':0:CIC_OUT
+ 'RX6 DSM MUX':0:CIC_OUT
+ 'LINEOUT1 Volume':1:0
+ 'LINEOUT2 Volume':1:0
+ 'LINEOUT3 Volume':1:0
+ 'LINEOUT4 Volume':1:0
+ 'SLIM TX3 MUX':0:ZERO
+ 'SLIM TX5 MUX':0:ZERO
+ EndSequence
+
+ ACDBID 15:1
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "Headset"
+ Comment "Headset Tx device"
+
+ EnableSequence
+ 'SLIM_0_TX Channels':0:One
+ 'SLIM TX7 MUX':0:DEC8
+ 'DEC8 MUX':0:ADC2
+ 'ADC2 Volume':1:66
+ EndSequence
+
+ DisableSequence
+ 'SLIM TX7 MUX':0:ZERO
+ 'DEC8 MUX':0:ZERO
+ 'ADC2 Volume':1:0
+ EndSequence
+
+ ACDBID 8:2
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "Voice Headset"
+ Comment "Headset Tx device for Voice call"
+
+ EnableSequence
+ 'SLIM_0_TX Channels':0:One
+ 'SLIM TX7 MUX':0:DEC8
+ 'DEC8 MUX':0:ADC2
+ 'ADC2 Volume':1:66
+ EndSequence
+
+ DisableSequence
+ 'SLIM TX7 MUX':0:ZERO
+ 'DEC8 MUX':0:ZERO
+ 'ADC2 Volume':1:0
+ EndSequence
+
+ ACDBID 8:2
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+SectionDevice
+ Name "HeadsetVM Tx"
+ Comment "Headset Tx device"
+
+ EnableSequence
+ 'SLIM_0_TX Channels':0:One
+ 'SLIM TX7 MUX':0:DEC8
+ 'DEC8 MUX':0:ADC2
+ 'ADC2 Volume':1:100
+ EndSequence
+
+ DisableSequence
+ 'SLIM TX7 MUX':0:ZERO
+ 'DEC8 MUX':0:ZERO
+ 'ADC2 Volume':1:0
+ EndSequence
+
+ ACDBID 8:2
+
+EndSection
+
+SectionDevice
+ Name "Handset"
+ Comment "Handset Tx device"
+
+ EnableSequence
+ 'SLIM_0_TX Channels':0:One
+ 'SLIM TX7 MUX':0:DEC7
+ 'DEC7 MUX':0:DMIC1
+ 'DEC7 Volume':1:80
+ 'ADC1 Volume':1:100
+ 'MICBIAS1 CAPLESS Switch':1:0
+ EndSequence
+
+ DisableSequence
+ 'SLIM TX7 MUX':0:ZERO
+ 'DEC7 MUX':0:ZERO
+ 'DEC7 Volume':1:0
+ 'ADC1 Volume':1:0
+ 'MICBIAS1 CAPLESS Switch':1:1
+ EndSequence
+
+ ACDBID 4:2
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "HandsetVM Tx"
+ Comment "Handset Tx device"
+
+ EnableSequence
+ 'SLIM_0_TX Channels':0:One
+ 'SLIM TX7 MUX':0:DEC7
+ 'DEC7 MUX':0:ADC1
+ 'DEC7 Volume':1:60
+ 'ADC1 Volume':1:100
+ 'MICBIAS1 CAPLESS Switch':1:0
+ EndSequence
+
+ DisableSequence
+ 'SLIM TX7 MUX':0:ZERO
+ 'DEC7 MUX':0:ZERO
+ 'DEC7 Volume':1:60
+ 'ADC1 Volume':1:0
+ 'MICBIAS1 CAPLESS Switch':1:1
+ EndSequence
+
+ ACDBID 4:2
+
+EndSection
+
+SectionDevice
+ Name "Camcorder Tx"
+ Comment "Camcorder Tx device"
+
+ EnableSequence
+ 'SLIM_0_TX Channels':0:One
+ 'SLIM TX7 MUX':0:DEC6
+ 'DEC6 MUX':0:ADC1
+ 'DEC6 Volume':1:72
+ 'ADC1 Volume':1:100
+ 'MICBIAS1 CAPLESS Switch':1:0
+ EndSequence
+
+ DisableSequence
+ 'SLIM TX7 MUX':0:ZERO
+ 'DEC6 MUX':0:ZERO
+ 'DEC6 Volume':1:60
+ 'ADC1 Volume':1:0
+ 'MICBIAS1 CAPLESS Switch':1:1
+ EndSequence
+
+ ACDBID 61:2
+
+EndSection
+
+SectionDevice
+ Name "Voice Recognition"
+ Comment "Voice Recognition Tx device"
+
+ EnableSequence
+ 'SLIM_0_TX Channels':0:One
+ 'SLIM TX7 MUX':0:DEC6
+ 'DEC6 MUX':0:ADC1
+ 'DEC6 Volume':1:68
+ 'ADC1 Volume':1:66
+ 'MICBIAS1 CAPLESS Switch':1:0
+ EndSequence
+
+ DisableSequence
+ 'SLIM TX7 MUX':0:ZERO
+ 'DEC6 MUX':0:ZERO
+ 'DEC6 Volume':1:68
+ 'ADC1 Volume':1:0
+ 'MICBIAS1 CAPLESS Switch':1:1
+ EndSequence
+
+ ACDBID 62:2
+
+EndSection
+
+SectionDevice
+ Name "TTY Handset Analog Tx"
+ Comment "TTY Handset Analog Tx device"
+
+ EnableSequence
+ 'SLIM_0_TX Channels':0:One
+ 'SLIM TX7 MUX':0:DEC7
+ 'DEC7 MUX':0:ADC1
+ 'DEC7 Volume':1:68
+ 'ADC1 Volume':1:100
+ 'MICBIAS1 CAPLESS Switch':1:1
+ EndSequence
+
+ DisableSequence
+ 'SLIM TX7 MUX':0:ZERO
+ 'DEC7 MUX':0:ZERO
+ 'DEC7 Volume':1:68
+ 'ADC1 Volume':1:0
+ 'MICBIAS1 CAPLESS Switch':1:0
+ EndSequence
+
+ ACDBID 36:2
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "Line"
+ Comment "Speaker Tx device"
+
+ EnableSequence
+ 'SLIM_0_TX Channels':0:One
+ 'SLIM TX7 MUX':0:DEC4
+ 'DEC4 MUX':0:ADC3
+ 'DEC4 Volume':1:80
+ 'ADC3 Volume':1:100
+ EndSequence
+
+ DisableSequence
+ 'SLIM TX7 MUX':0:ZERO
+ 'DEC4 MUX':0:ZERO
+ 'DEC4 Volume':1:60
+ 'ADC3 Volume':1:0
+ EndSequence
+
+ ACDBID 4:2
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "Voice Line"
+ Comment "Speaker Tx device for voice call"
+
+ EnableSequence
+ 'SLIM_0_TX Channels':0:One
+ 'SLIM TX7 MUX':0:DEC4
+ 'DEC4 MUX':0:ADC3
+ 'DEC4 Volume':1:70
+ 'ADC3 Volume':1:100
+ EndSequence
+
+ DisableSequence
+ 'SLIM TX7 MUX':0:ZERO
+ 'DEC4 MUX':0:ZERO
+ 'DEC4 Volume':1:68
+ 'ADC3 Volume':1:100
+ EndSequence
+
+ ACDBID 11:2
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "TTY Handset Tx"
+ Comment "TTY VCO Handset Tx device"
+
+ EnableSequence
+ 'SLIM_0_TX Channels':0:One
+ 'SLIM TX7 MUX':0:DEC7
+ 'DEC7 MUX':0:ADC1
+ 'DEC7 Volume':1:68
+ 'ADC1 Volume':1:100
+ 'MICBIAS1 CAPLESS Switch':1:0
+ EndSequence
+
+ DisableSequence
+ 'SLIM TX7 MUX':0:ZERO
+ 'DEC7 MUX':0:ZERO
+ 'DEC7 Volume':1:68
+ 'ADC1 Volume':1:0
+ 'MICBIAS1 CAPLESS Switch':1:1
+ EndSequence
+
+ ACDBID 36:2
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "HDMI Tx"
+ Comment "HDMI Tx device"
+
+ EnableSequence
+ 'SLIM_0_TX Channels':0:One
+ 'SLIM TX7 MUX':0:DEC7
+ 'DEC7 MUX':0:DMIC1
+ 'MICBIAS1 CAPLESS Switch':1:1
+ EndSequence
+
+ DisableSequence
+ 'SLIM TX7 MUX':0:ZERO
+ 'DEC7 MUX':0:ZERO
+ 'MICBIAS1 CAPLESS Switch':1:0
+ EndSequence
+
+ ACDBID 4:2
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+
+ Name "QMIC"
+ Comment "Quad mic device"
+
+ EnableSequence
+ 'SLIM_0_TX Channels':0:Four
+ 'SLIM TX7 MUX':0:DEC7
+ 'DEC7 MUX':0:DMIC1
+ 'SLIM TX8 MUX':0:DEC8
+ 'DEC8 MUX':0:DMIC2
+ 'SLIM TX9 MUX':0:DEC10
+ 'DEC10 MUX':0:DMIC3
+ 'SLIM TX10 MUX':0:DEC9
+ 'DEC9 MUX':0:DMIC4
+ 'MICBIAS1 CAPLESS Switch':1:1
+ 'MICBIAS3 CAPLESS Switch':1:1
+ EndSequence
+
+ DisableSequence
+ 'SLIM TX7 MUX':0:ZERO
+ 'DEC7 MUX':0:ZERO
+ 'SLIM TX8 MUX':0:ZERO
+ 'DEC8 MUX':0:ZERO
+ 'SLIM TX9 MUX':0:ZERO
+ 'DEC9 MUX':0:ZERO
+ 'SLIM TX10 MUX':0:ZERO
+ 'DEC10 MUX':0:ZERO
+ 'MICBIAS1 CAPLESS Switch':1:0
+ 'MICBIAS3 CAPLESS Switch':1:0
+ EndSequence
+
+ ACDBID 19:2
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "DMIC Broadside"
+ Comment "Dual MIC Broadside Tx device"
+
+ EnableSequence
+ 'SLIM TX7 MUX':0:DEC7
+ 'DEC7 MUX':0:DMIC1
+ 'SLIM TX8 MUX':0:DEC8
+ 'DEC8 MUX':0:DMIC2
+ 'MICBIAS1 CAPLESS Switch':1:1
+ 'SLIM_0_TX Channels':0:Two
+ 'IIR1 INP1 Volume':1:50
+ 'IIR1 INP1 MUX':0:DEC7
+ EndSequence
+
+ DisableSequence
+ 'SLIM TX7 MUX':0:ZERO
+ 'DEC7 MUX':0:ZERO
+ 'SLIM TX8 MUX':0:ZERO
+ 'DEC8 MUX':0:ZERO
+ 'MICBIAS1 CAPLESS Switch':1:0
+ 'IIR1 INP1 Volume':1:0
+ 'IIR1 INP1 MUX':0:ZERO
+ EndSequence
+
+ ACDBID 5:2
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "DMIC Endfire"
+ Comment "Dual MIC Endfire Tx device"
+
+ EnableSequence
+ 'SLIM TX7 MUX':0:DEC7
+ 'DEC7 MUX':0:ADC1
+ 'SLIM TX8 MUX':0:DEC9
+ 'DEC9 MUX':0:ADC3
+ 'DEC7 Volume':1:66
+ 'ADC1 Volume':1:100
+ 'DEC9 Volume':1:66
+ 'ADC3 Volume':1:100
+ 'SLIM_0_TX Channels':0:Two
+ 'MICBIAS1 CAPLESS Switch':1:0
+ 'RX1 MIX2 INP1':0:IIR1
+ 'RX2 MIX2 INP1':0:IIR1
+ 'IIR1 INP1 Volume':1:51
+ 'IIR1 INP1 MUX':0:DEC7
+ EndSequence
+
+ DisableSequence
+ 'DEC7 Volume':1:60
+ 'DEC9 Volume':1:60
+ 'SLIM TX7 MUX':0:ZERO
+ 'DEC7 MUX':0:ZERO
+ 'SLIM TX8 MUX':0:ZERO
+ 'DEC9 MUX':0:ZERO
+ 'MICBIAS1 CAPLESS Switch':1:1
+ 'RX1 MIX2 INP1':0:ZERO
+ 'RX2 MIX2 INP1':0:ZERO
+ 'IIR1 INP1 Volume':1:0
+ 'IIR1 INP1 MUX':0:ZERO
+ EndSequence
+
+ ACDBID 6:2
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "Speaker DMIC Broadside"
+ Comment "Dual MIC Broadside Tx device"
+
+ EnableSequence
+ 'SLIM TX7 MUX':0:DEC7
+ 'DEC7 MUX':0:DMIC1
+ 'SLIM TX8 MUX':0:DEC8
+ 'DEC8 MUX':0:DMIC2
+ 'MICBIAS1 CAPLESS Switch':1:1
+ 'SLIM_0_TX Channels':0:Two
+ EndSequence
+
+ DisableSequence
+ 'SLIM TX7 MUX':0:ZERO
+ 'DEC7 MUX':0:ZERO
+ 'SLIM TX8 MUX':0:ZERO
+ 'DEC8 MUX':0:ZERO
+ 'MICBIAS1 CAPLESS Switch':1:0
+ EndSequence
+
+ ACDBID 12:2
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "Speaker DMIC Endfire"
+ Comment "Dual MIC Endfire Tx device"
+
+ EnableSequence
+ 'SLIM TX7 MUX':0:DEC7
+ 'DEC7 MUX':0:ADC1
+ 'SLIM TX8 MUX':0:DEC9
+ 'DEC9 MUX':0:ADC3
+ 'MICBIAS1 CAPLESS Switch':1:1
+ 'MICBIAS3 CAPLESS Switch':1:1
+ 'SLIM_0_TX Channels':0:Two
+ EndSequence
+
+ DisableSequence
+ 'SLIM TX7 MUX':0:ZERO
+ 'DEC7 MUX':0:ZERO
+ 'SLIM TX8 MUX':0:ZERO
+ 'DEC9 MUX':0:ZERO
+ 'MICBIAS1 CAPLESS Switch':1:0
+ 'MICBIAS3 CAPLESS Switch':1:0
+ EndSequence
+
+ ACDBID 13:2
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "TTY Headset Rx"
+ Comment "TTY Headset Rx device"
+
+ EnableSequence
+ 'TTY Mode':0:VCO
+ 'SLIM_0_RX Channels':0:One
+ 'RX1 MIX1 INP1':0:RX6
+ 'RX2 MIX1 INP1':0:RX6
+ 'HPHL DAC Switch':1:1
+ 'HPHR DAC Switch':1:1
+ 'RX1 Digital Volume':1:68
+ 'RX2 Digital Volume':1:68
+ 'HPHL Volume':1:80
+ 'HPHR Volume':1:80
+ EndSequence
+
+ DisableSequence
+ 'TTY Mode':0:ZERO
+ 'RX1 MIX1 INP1':0:ZERO
+ 'RX2 MIX1 INP1':0:ZERO
+ 'HPHL DAC Switch':1:0
+ 'HPHR DAC Switch':1:0
+ 'RX1 Digital Volume':1:68
+ 'RX2 Digital Volume':1:68
+ 'HPHL Volume':1:0
+ 'HPHR Volume':1:0
+ EndSequence
+
+ ACDBID 17:1
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "TTY Headset Tx"
+ Comment "TTY Headset Tx device"
+
+ EnableSequence
+ 'TTY Mode':0:HCO
+ 'SLIM_0_TX Channels':0:One
+ 'SLIM TX7 MUX':0:DEC8
+ 'DEC8 MUX':0:ADC2
+ 'DEC8 Volume':1:68
+ 'ADC2 Volume':1:100
+ EndSequence
+
+ DisableSequence
+ 'TTY Mode':0:ZERO
+ 'SLIM TX7 MUX':0:ZERO
+ 'DEC8 MUX':0:ZERO
+ 'DEC8 Volume':1:68
+ 'ADC2 Volume':1:0
+ EndSequence
+
+ ACDBID 16:2
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "TTY Full Rx"
+ Comment "TTY Full Rx device"
+
+ EnableSequence
+ 'TTY Mode':0:FULL
+ 'SLIM_0_RX Channels':0:One
+ 'RX1 MIX1 INP1':0:RX6
+ 'RX2 MIX1 INP1':0:RX6
+ 'HPHL DAC Switch':1:1
+ 'HPHR DAC Switch':1:1
+ 'RX1 Digital Volume':1:68
+ 'RX2 Digital Volume':1:68
+ 'HPHL Volume':1:80
+ 'HPHR Volume':1:80
+ EndSequence
+
+ DisableSequence
+ 'TTY Mode':0:ZERO
+ 'RX1 MIX1 INP1':0:ZERO
+ 'RX2 MIX1 INP1':0:ZERO
+ 'HPHL DAC Switch':1:0
+ 'HPHR DAC Switch':1:0
+ 'RX1 Digital Volume':1:68
+ 'RX2 Digital Volume':1:68
+ 'HPHL Volume':1:0
+ 'HPHR Volume':1:0
+ EndSequence
+
+ ACDBID 17:1
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "TTY Full Tx"
+ Comment "TTY Full Tx device"
+
+ EnableSequence
+ 'SLIM_0_TX Channels':0:One
+ 'SLIM TX7 MUX':0:DEC8
+ 'DEC8 MUX':0:ADC2
+ 'DEC8 Volume':1:68
+ 'ADC2 Volume':1:100
+ EndSequence
+
+ DisableSequence
+ 'SLIM TX7 MUX':0:ZERO
+ 'DEC8 MUX':0:ZERO
+ 'DEC8 Volume':1:68
+ 'ADC2 Volume':1:0
+ EndSequence
+
+ ACDBID 16:2
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "BT SCO Rx"
+ Comment "BT SCO Rx device"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ ACDBID 22:1
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "BT SCO Tx"
+ Comment "BT SCO Tx device"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ ACDBID 21:2
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "BT SCO WB Rx"
+ Comment "BT SCO Rx device"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ ACDBID 39:1
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "BT SCO WB Tx"
+ Comment "BT SCO Tx device"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ ACDBID 38:2
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "HDMI"
+ Comment "HDMI Rx device"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ ACDBID 18:1
+ EffectsMixerCTL "SRS TruMedia HDMI"
+
+EndSection
+
+
+SectionDevice
+ Name "HDMI Speaker"
+ Comment "HDMI Speaker Rx device"
+
+ EnableSequence
+ 'SLIM_0_RX Channels':0:One
+ 'RX3 MIX1 INP1':0:RX1
+ 'RX3 MIX1 INP2':0:RX6
+ 'RX4 DSM MUX':0:DSM_INV
+ 'RX3 Digital Volume':1:68
+ 'LINEOUT1 Volume':1:100
+ 'LINEOUT3 Volume':1:100
+ 'SLIM TX3 MUX':0:RMIX3
+ EndSequence
+
+ DisableSequence
+ 'RX3 MIX1 INP1':0:ZERO
+ 'RX3 MIX1 INP2':0:ZERO
+ 'RX4 DSM MUX':0:CIC_OUT
+ 'RX3 Digital Volume':1:68
+ 'LINEOUT1 Volume':1:0
+ 'LINEOUT3 Volume':1:0
+ 'SLIM TX3 MUX':0:ZERO
+ EndSequence
+
+ ACDBID 14:1
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "FM Tx"
+ Comment "FM Tx device"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ ACDBID 0:1
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "PROXY Rx"
+ Comment "PROXY Rx device"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ ACDBID 0:1
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "PROXY Tx"
+ Comment "PROXY Tx device"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ ACDBID 0:2
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "SSR QMIC"
+ Comment "Quad mic device for Surround Sound Recording"
+
+ EnableSequence
+ 'SLIM_0_TX Channels':0:Four
+ 'SLIM TX7 MUX':0:DEC9
+ 'DEC9 MUX':0:DMIC4
+ 'SLIM TX8 MUX':0:DEC10
+ 'DEC10 MUX':0:DMIC3
+ 'SLIM TX9 MUX':0:DEC7
+ 'DEC7 MUX':0:DMIC1
+ 'SLIM TX10 MUX':0:DEC6
+ 'DEC6 MUX':0:DMIC6
+ 'MICBIAS1 CAPLESS Switch':1:1
+ 'MICBIAS3 CAPLESS Switch':1:1
+ 'MICBIAS4 CAPLESS Switch':1:1
+ EndSequence
+
+ DisableSequence
+ 'SLIM TX7 MUX':0:ZERO
+ 'DEC9 MUX':0:ZERO
+ 'SLIM TX8 MUX':0:ZERO
+ 'DEC10 MUX':0:ZERO
+ 'SLIM TX9 MUX':0:ZERO
+ 'DEC7 MUX':0:ZERO
+ 'SLIM TX10 MUX':0:ZERO
+ 'DEC6 MUX':0:ZERO
+ 'MICBIAS1 CAPLESS Switch':1:0
+ 'MICBIAS3 CAPLESS Switch':1:0
+ 'MICBIAS4 CAPLESS Switch':1:0
+ EndSequence
+
+ ACDBID 46:2
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "Dummy Tx"
+ Comment "Dummy Tx device, not a physical device just for routing"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ ACDBID 0:2
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionModifier
+ Name "Play Music"
+ Comment "Modifier for music playback"
+
+ EnableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
+ EndSequence
+
+ DisableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionModifier
+ Name "Play MusicHeadphones"
+ Comment "Modifier for music playback via headphone"
+
+ EnableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
+ 'SLIM_0_RX Channels':0:Two
+ 'RX1 MIX1 INP1':0:RX1
+ 'RX1 MIX1 INP2':0:RX6
+ 'RX2 MIX1 INP1':0:RX2
+ 'RX2 MIX1 INP2':0:RX7
+ 'HPHL DAC Switch':1:1
+ 'HPHR DAC Switch':1:1
+ 'RX1 Digital Volume':1:68
+ 'RX2 Digital Volume':1:68
+ 'HPHL Volume':1:50
+ 'HPHR Volume':1:50
+ 'SLIM TX3 MUX':0:RMIX1
+ 'SLIM TX5 MUX':0:RMIX2
+ EndSequence
+
+ DisableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionModifier
+ Name "Play MusicSpeaker FM Tx"
+ Comment "Modifier for music playback"
+
+ EnableSequence
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia1':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia1':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionModifier
+ Name "Play MusicFM Tx"
+ Comment "Modifier for music playback on FM Tx"
+
+ EnableSequence
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia1':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia1':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionModifier
+ Name "Play MusicHDMI"
+ Comment "Modifier for music playback on HDMI"
+
+ EnableSequence
+ 'HDMI Mixer MultiMedia1':1:1
+ EndSequence
+
+ DisableSequence
+ 'HDMI Mixer MultiMedia1':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionModifier
+ Name "Play MusicHDMI Speaker"
+ Comment "Modifier for music playback on HDMI Speaker"
+
+ EnableSequence
+ 'HDMI Mixer MultiMedia1':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
+ EndSequence
+
+ DisableSequence
+ 'HDMI Mixer MultiMedia1':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionModifier
+ Name "Play MusicBT SCO Rx"
+ Comment "Modifier for music playback"
+
+ EnableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia1':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia1':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionModifier
+ Name "Play MusicBT SCO WB Rx"
+ Comment "Modifier for music playback"
+
+ EnableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia1':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia1':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionModifier
+ Name "Play MusicPROXY Rx"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia1':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia1':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionModifier
+ Name "Play FM"
+
+ EnableSequence
+ 'Internal FM RX Volume':1:0
+ 'SLIMBUS_0_RX Port Mixer INTERNAL_FM_TX':1:1
+ 'SLIMBUS_DL_HL Switch':1:1
+ EndSequence
+
+ DisableSequence
+ 'SLIMBUS_0_RX Port Mixer INTERNAL_FM_TX':1:0
+ 'SLIMBUS_DL_HL Switch':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 5
+ CapturePCM 6
+
+EndSection
+
+SectionModifier
+ Name "Play Music2"
+
+ EnableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+
+SectionModifier
+ Name "Play Music2Speaker FM Tx"
+ Comment "Modifier for music playback"
+
+ EnableSequence
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia2':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia2':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+
+SectionModifier
+ Name "Play Music2FM Tx"
+ Comment "Modifier for music playback on FM Tx"
+
+ EnableSequence
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+
+SectionModifier
+ Name "Play Music2HDMI"
+ Comment "Modifier for music playback on HDMI"
+
+ EnableSequence
+ 'HDMI Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'HDMI Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+
+SectionModifier
+ Name "Play Music2HDMI Speaker"
+ Comment "Modifier for music playback on HDMI Speaker"
+
+ EnableSequence
+ 'HDMI Mixer MultiMedia2':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'HDMI Mixer MultiMedia2':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+
+SectionModifier
+ Name "Play Music2HDMI SPDIF"
+ Comment "Modifier for music playback on HDMI SPDIF"
+
+ EnableSequence
+ 'HDMI Mixer MultiMedia2':1:1
+ 'SEC_RX Audio Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'HDMI Mixer MultiMedia2':1:0
+ 'SEC_RX Audio Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+
+SectionModifier
+ Name "Play Music2BT SCO Rx"
+ Comment "Modifier for music playback"
+
+ EnableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+
+SectionModifier
+ Name "Play Music2BT SCO WB Rx"
+ Comment "Modifier for music playback"
+
+ EnableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+
+SectionModifier
+ Name "Play Music2PROXY Rx"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 1
+ PlaybackPCM 1
+
+EndSection
+
+SectionModifier
+ Name "Capture FM"
+
+ EnableSequence
+ 'MultiMedia1 Mixer INTERNAL_FM_TX':1:1
+ EndSequence
+
+ DisableSequence
+ 'MultiMedia1 Mixer INTERNAL_FM_TX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 0
+ CapturePCM 0
+
+EndSection
+
+SectionModifier
+ Name "Play LPA"
+
+ EnableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia3':1:1
+ EndSequence
+
+ DisableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia3':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 4
+
+EndSection
+
+SectionModifier
+ Name "Play LPASpeaker FM Tx"
+
+ EnableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia3':1:1
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia3':1:1
+ EndSequence
+
+ DisableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia3':1:0
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia3':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 4
+
+EndSection
+
+SectionModifier
+ Name "Play LPAFM Tx"
+
+ EnableSequence
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia3':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia3':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 4
+
+EndSection
+
+SectionModifier
+ Name "Play LPAHDMI"
+
+ EnableSequence
+ 'HDMI Mixer MultiMedia3':1:1
+ EndSequence
+
+ DisableSequence
+ 'HDMI Mixer MultiMedia3':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 4
+
+EndSection
+
+SectionModifier
+ Name "Play LPAHDMI Speaker"
+
+ EnableSequence
+ 'HDMI Mixer MultiMedia3':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia3':1:1
+ EndSequence
+
+ DisableSequence
+ 'HDMI Mixer MultiMedia3':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia3':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 4
+
+EndSection
+
+SectionModifier
+ Name "Play LPABT SCO Rx"
+
+ EnableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia3':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia3':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 4
+
+EndSection
+
+SectionModifier
+ Name "Play LPABT SCO WB Rx"
+
+ EnableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia3':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia3':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 4
+
+EndSection
+
+SectionModifier
+ Name "Play LPAPROXY Rx"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia3':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia3':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 4
+
+EndSection
+
+SectionModifier
+ Name "Capture Music"
+
+ EnableSequence
+ 'MultiMedia1 Mixer SLIM_0_TX':1:1
+ EndSequence
+
+ DisableSequence
+ 'MultiMedia1 Mixer SLIM_0_TX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionModifier
+ Name "Capture MusicBT SCO Tx"
+
+ EnableSequence
+ 'MultiMedia1 Mixer INTERNAL_BT_SCO_TX':1:1
+ EndSequence
+
+ DisableSequence
+ 'MultiMedia1 Mixer INTERNAL_BT_SCO_TX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionModifier
+ Name "Capture MusicBT SCO WB Tx"
+
+ EnableSequence
+ 'MultiMedia1 Mixer INTERNAL_BT_SCO_TX':1:1
+ EndSequence
+
+ DisableSequence
+ 'MultiMedia1 Mixer INTERNAL_BT_SCO_TX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionModifier
+ Name "Play Voice"
+
+ EnableSequence
+ 'STUB_RX Mixer Voice Stub':1:1
+ 'Voice Stub Tx Mixer STUB_TX_HL':1:1
+ 'Voice Stub Tx Mixer STUB_1_TX_HL':1:1
+ EndSequence
+
+ DisableSequence
+ 'STUB_RX Mixer Voice Stub':1:0
+ 'Voice Stub Tx Mixer STUB_TX_HL':1:0
+ 'Voice Stub Tx Mixer STUB_1_TX_HL':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 12
+ CapturePCM 12
+
+EndSection
+
+SectionModifier
+ Name "Play VoiceHDMI"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ 'Voice Stub Tx Mixer SLIM_3_TX':1:0
+ 'HDMI_RX_Voice Mixer Voice Stub':1:0
+ 'HDMI_RX Port Mixer SLIM_3_TX':1:0
+ 'Voice Stub Tx Mixer STUB_TX_HL':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 12
+ CapturePCM 12
+
+EndSection
+
+SectionModifier
+ Name "Play VoiceHDMI Tx"
+
+ EnableSequence
+ 'Voice Stub Tx Mixer SLIM_3_TX':1:1
+ 'HDMI_RX_Voice Mixer Voice Stub':1:1
+ 'HDMI_RX Port Mixer SLIM_3_TX':1:1
+ 'Voice Stub Tx Mixer STUB_TX_HL':1:1
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 12
+ CapturePCM 12
+
+EndSection
+
+SectionModifier
+ Name "Play VoiceBT SCO Rx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ 'Internal BTSCO SampleRate':0:8000
+ 'Voice Stub Tx Mixer INTERNAL_BT_SCO_TX':1:0
+ 'SLIMBUS_1_RX Mixer Voice Stub':1:0
+ 'Voice Stub Tx Mixer SLIM_1_TX':1:0
+ 'INTERNAL_BT_SCO_RX_Voice Mixer Voice Stub':1:0
+ 'SLIMBUS_1_RX Port Mixer INTERNAL_BT_SCO_TX':1:0
+ 'INTERNAL_BT_SCO_RX Port Mixer SLIM_1_TX':1:0
+ 'SLIMBUS_3_RX_Voice Mixer Voice Stub':1:0
+ 'SLIMBUS_3_RX Port Mixer INTERNAL_BT_SCO_RX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 12
+ CapturePCM 12
+
+EndSection
+
+SectionModifier
+ Name "Play VoiceBT SCO Tx"
+
+ EnableSequence
+ 'Internal BTSCO SampleRate':0:8000
+ 'Voice Stub Tx Mixer INTERNAL_BT_SCO_TX':1:1
+ 'SLIMBUS_1_RX Mixer Voice Stub':1:1
+ 'Voice Stub Tx Mixer SLIM_1_TX':1:1
+ 'INTERNAL_BT_SCO_RX_Voice Mixer Voice Stub':1:1
+ 'SLIMBUS_1_RX Port Mixer INTERNAL_BT_SCO_TX':1:1
+ 'INTERNAL_BT_SCO_RX Port Mixer SLIM_1_TX':1:1
+ 'SLIM_3_RX Channels':0:One
+ 'SLIMBUS_3_RX_Voice Mixer Voice Stub':1:1
+ 'SLIMBUS_3_RX Port Mixer INTERNAL_BT_SCO_RX':1:1
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 12
+ CapturePCM 12
+
+EndSection
+
+SectionModifier
+ Name "Play VoiceBT SCO WB Rx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ 'Internal BTSCO SampleRate':0:8000
+ 'Voice Stub Tx Mixer INTERNAL_BT_SCO_TX':1:0
+ 'SLIMBUS_1_RX Mixer Voice Stub':1:0
+ 'Voice Stub Tx Mixer SLIM_1_TX':1:0
+ 'INTERNAL_BT_SCO_RX_Voice Mixer Voice Stub':1:0
+ 'SLIMBUS_1_RX Port Mixer INTERNAL_BT_SCO_TX':1:0
+ 'INTERNAL_BT_SCO_RX Port Mixer SLIM_1_TX':1:0
+ 'SLIMBUS_3_RX_Voice Mixer Voice Stub':1:0
+ 'SLIMBUS_3_RX Port Mixer INTERNAL_BT_SCO_RX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 12
+ CapturePCM 12
+
+EndSection
+
+SectionModifier
+ Name "Play VoiceBT SCO WB Tx"
+
+ EnableSequence
+ 'Internal BTSCO SampleRate':0:16000
+ 'Voice Stub Tx Mixer INTERNAL_BT_SCO_TX':1:1
+ 'SLIMBUS_1_RX Mixer Voice Stub':1:1
+ 'Voice Stub Tx Mixer SLIM_1_TX':1:1
+ 'INTERNAL_BT_SCO_RX_Voice Mixer Voice Stub':1:1
+ 'SLIMBUS_1_RX Port Mixer INTERNAL_BT_SCO_TX':1:1
+ 'INTERNAL_BT_SCO_RX Port Mixer SLIM_1_TX':1:1
+ 'SLIM_3_RX Channels':0:One
+ 'SLIMBUS_3_RX_Voice Mixer Voice Stub':1:1
+ 'SLIMBUS_3_RX Port Mixer INTERNAL_BT_SCO_RX':1:1
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 12
+ CapturePCM 12
+
+EndSection
+
+SectionModifier
+ Name "Capture Voice"
+
+ EnableSequence
+ 'MultiMedia1 Mixer SLIM_4_TX':1:1
+ EndSequence
+
+ DisableSequence
+ 'MultiMedia1 Mixer SLIM_4_TX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 0
+ CapturePCM 0
+
+EndSection
+
+SectionModifier
+ Name "Capture A2DP FM"
+
+ EnableSequence
+ 'MultiMedia2 Mixer INTERNAL_FM_TX':1:1
+ EndSequence
+
+ DisableSequence
+ 'MultiMedia2 Mixer INTERNAL_FM_TX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 1
+ CapturePCM 1
+
+EndSection
+
+SectionModifier
+ Name "Play VOIP"
+
+ EnableSequence
+ 'SLIM_0_RX_Voice Mixer Voip':1:1
+ 'Voip_Tx Mixer SLIM_0_TX_Voip':1:1
+ EndSequence
+
+ DisableSequence
+ 'SLIM_0_RX_Voice Mixer Voip':1:0
+ 'Voip_Tx Mixer SLIM_0_TX_Voip':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 3
+ CapturePCM 3
+
+EndSection
+
+SectionModifier
+ Name "Play VOIPBT SCO Rx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ 'Internal BTSCO SampleRate':0:8000
+ 'INTERNAL_BT_SCO_RX_Voice Mixer Voip':1:0
+ 'Voip_Tx Mixer INTERNAL_BT_SCO_TX_Voip':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 3
+ CapturePCM 3
+
+EndSection
+
+SectionModifier
+ Name "Play VOIPBT SCO Tx"
+
+ EnableSequence
+ 'Internal BTSCO SampleRate':0:8000
+ 'INTERNAL_BT_SCO_RX_Voice Mixer Voip':1:1
+ 'Voip_Tx Mixer INTERNAL_BT_SCO_TX_Voip':1:1
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 3
+ CapturePCM 3
+
+EndSection
+
+SectionModifier
+ Name "Play VOIPBT SCO WB Rx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ 'Internal BTSCO SampleRate':0:8000
+ 'INTERNAL_BT_SCO_RX_Voice Mixer Voip':1:0
+ 'Voip_Tx Mixer INTERNAL_BT_SCO_TX_Voip':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 3
+ CapturePCM 3
+
+EndSection
+
+SectionModifier
+ Name "Play VOIPBT SCO WB Tx"
+
+ EnableSequence
+ 'Internal BTSCO SampleRate':0:16000
+ 'INTERNAL_BT_SCO_RX_Voice Mixer Voip':1:1
+ 'Voip_Tx Mixer INTERNAL_BT_SCO_TX_Voip':1:1
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 3
+ CapturePCM 3
+
+EndSection
+
+SectionModifier
+ Name "Play VOIPHDMI"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ 'HDMI_RX_Voice Mixer Voip':1:0
+ 'Voip_Tx Mixer SLIM_0_TX_Voip':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 3
+ CapturePCM 3
+
+EndSection
+
+SectionModifier
+ Name "Play VOIPHDMI Tx"
+
+ EnableSequence
+ 'HDMI_RX_Voice Mixer Voip':1:1
+ 'Voip_Tx Mixer SLIM_0_TX_Voip':1:1
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 3
+ CapturePCM 3
+
+EndSection
+
+SectionModifier
+ Name "Play MusicPROXY Tx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionModifier
+ Name "Play LPAPROXY Tx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionModifier
+ Name "Play FMPROXY Tx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionModifier
+ Name "Capture MusicPROXY Rx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionModifier
+ Name "Capture MusicSSR QMIC"
+
+ EnableSequence
+ 'MultiMedia1 Mixer SLIM_0_TX':1:1
+ EndSequence
+
+ DisableSequence
+ 'MultiMedia1 Mixer SLIM_0_TX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionModifier
+ Name "Play Tunnel"
+
+ EnableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
+ EndSequence
+
+ DisableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 9
+
+EndSection
+
+SectionModifier
+ Name "Play TunnelSpeaker FM Tx"
+
+ EnableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia4':1:1
+ EndSequence
+
+ DisableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia4':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 9
+
+EndSection
+
+SectionModifier
+ Name "Play TunnelFM Tx"
+
+ EnableSequence
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia4':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia4':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 9
+
+EndSection
+
+SectionModifier
+ Name "Play TunnelHDMI"
+
+ EnableSequence
+ 'HDMI Mixer MultiMedia4':1:1
+ EndSequence
+
+ DisableSequence
+ 'HDMI Mixer MultiMedia4':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 9
+
+EndSection
+
+SectionModifier
+ Name "Play TunnelHDMI Speaker"
+
+ EnableSequence
+ 'HDMI Mixer MultiMedia4':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
+ EndSequence
+
+ DisableSequence
+ 'HDMI Mixer MultiMedia4':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 9
+
+EndSection
+
+SectionModifier
+ Name "Play TunnelBT SCO Rx"
+
+ EnableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia4':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia4':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 9
+
+EndSection
+
+SectionModifier
+ Name "Play TunnelBT SCO WB Rx"
+
+ EnableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia4':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia4':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 9
+
+EndSection
+
+SectionModifier
+ Name "Play TunnelPROXY Rx"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia4':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia4':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 9
+
+EndSection
+
+
+SectionModifier
+ Name "Capture Lowlatency Music"
+
+ EnableSequence
+ 'MultiMedia5 Mixer SLIM_0_TX':1:1
+ EndSequence
+
+ DisableSequence
+ 'MultiMedia5 Mixer SLIM_0_TX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 14
+ PlaybackPCM 14
+
+EndSection
+
+SectionModifier
+ Name "Capture Lowlatency Music"
+
+ EnableSequence
+ 'MultiMedia5 Mixer SLIM_0_TX':1:1
+ EndSequence
+
+ DisableSequence
+ 'MultiMedia5 Mixer SLIM_0_TX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 14
+ PlaybackPCM 14
+
+EndSection
+
+
+SectionModifier
+ Name "Capture Lowlatency MusicBT SCO Tx"
+
+ EnableSequence
+ 'MultiMedia5 Mixer INTERNAL_BT_SCO_TX':1:1
+ EndSequence
+
+ DisableSequence
+ 'MultiMedia5 Mixer INTERNAL_BT_SCO_TX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 14
+ PlaybackPCM 14
+
+EndSection
+
+SectionModifier
+ Name "Capture Lowlatency MusicBT SCO WB Tx"
+
+ EnableSequence
+ 'MultiMedia5 Mixer INTERNAL_BT_SCO_TX':1:1
+ EndSequence
+
+ DisableSequence
+ 'MultiMedia5 Mixer INTERNAL_BT_SCO_TX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 14
+ PlaybackPCM 14
+
+EndSection
+
+SectionModifier
+ Name "Play Lowlatency Music"
+ Comment "Modifier for Lowlatency music playback"
+
+ EnableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:1
+ EndSequence
+
+ DisableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 14
+ PlaybackPCM 14
+
+EndSection
+
+SectionModifier
+ Name "Play Lowlatency MusicSpeaker FM Tx"
+ Comment "Modifier for Lowlatency music playback"
+
+ EnableSequence
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia5':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia5':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 14
+ PlaybackPCM 14
+
+EndSection
+
+SectionModifier
+ Name "Play Lowlatency MusicFM Tx"
+ Comment "Modifier for Lowlatency music playback on FM Tx"
+
+ EnableSequence
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia5':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_FM_RX Audio Mixer MultiMedia5':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 14
+ PlaybackPCM 14
+
+EndSection
+
+SectionModifier
+ Name "Play Lowlatency MusicHDMI"
+ Comment "Modifier for music playback on HDMI"
+
+ EnableSequence
+ 'HDMI Mixer MultiMedia5':1:1
+ EndSequence
+
+ DisableSequence
+ 'HDMI Mixer MultiMedia5':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 14
+ PlaybackPCM 14
+
+EndSection
+
+SectionModifier
+ Name "Play Lowlatency MusicHDMI Speaker"
+ Comment "Modifier for music playback on HDMI Speaker"
+
+ EnableSequence
+ 'HDMI Mixer MultiMedia5':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:1
+ EndSequence
+
+ DisableSequence
+ 'HDMI Mixer MultiMedia5':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 14
+ PlaybackPCM 14
+EndSection
+
+SectionModifier
+ Name "Play Lowlatency MusicBT SCO Rx"
+ Comment "Modifier for music playback"
+
+ EnableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia5':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia5':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 14
+ PlaybackPCM 14
+
+EndSection
+
+SectionModifier
+ Name "Play Lowlatency MusicBT SCO WB Rx"
+ Comment "Modifier for music playback"
+
+ EnableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia5':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia5':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 14
+ PlaybackPCM 14
+
+EndSection
+
+SectionModifier
+ Name "Play Lowlatency MusicPROXY Rx"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia5':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia5':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 14
+ PlaybackPCM 14
+
+EndSection
+
+SectionModifier
+ Name "Play Lowlatency MusicBT SCO Rx"
+ Comment "Modifier for music playback"
+
+ EnableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia5':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia5':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 14
+ PlaybackPCM 14
+
+EndSection
+
+SectionModifier
+ Name "Play Lowlatency MusicBT SCO WB Rx"
+ Comment "Modifier for music playback"
+
+ EnableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia5':1:1
+ EndSequence
+
+ DisableSequence
+ 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia5':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 14
+ PlaybackPCM 14
+
+EndSection
+
+SectionModifier
+ Name "Play Lowlatency MusicPROXY Rx"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia5':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia5':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 14
+ PlaybackPCM 14
+
+EndSection
+# End of master file
diff --git a/system.prop b/system.prop
new file mode 100644
index 0000000..554ebcd
--- /dev/null
+++ b/system.prop
@@ -0,0 +1,5 @@
+#
+# system props for the data modules
+#
+ro.use_data_netmgrd=true
+
diff --git a/thermald-flo.conf b/thermald-flo.conf
new file mode 100644
index 0000000..cdc15bb
--- /dev/null
+++ b/thermald-flo.conf
@@ -0,0 +1,86 @@
+sampling 5000
+
+[pa_therm0]
+sampling 5000
+thresholds 70
+thresholds_clr 67
+actions none
+action_info 0
+
+[tsens_tz_sensor0]
+sampling 1000
+thresholds 70
+thresholds_clr 67
+actions none
+action_info 0
+
+[tsens_tz_sensor1]
+sampling 1000
+thresholds 70
+thresholds_clr 67
+actions none
+action_info 0
+
+[tsens_tz_sensor2]
+sampling 1000
+thresholds 70
+thresholds_clr 67
+actions none
+action_info 0
+
+[tsens_tz_sensor3]
+sampling 1000
+thresholds 70
+thresholds_clr 67
+actions none
+action_info 0
+
+[tsens_tz_sensor4]
+sampling 1000
+thresholds 70
+thresholds_clr 67
+actions none
+action_info 0
+
+[tsens_tz_sensor5]
+sampling 1000
+thresholds 70
+thresholds_clr 67
+actions none
+action_info 0
+
+[tsens_tz_sensor6]
+sampling 1000
+thresholds 70
+thresholds_clr 67
+actions none
+action_info 0
+
+[tsens_tz_sensor7]
+sampling 1000
+thresholds 70 90 95 100 105 110 115 120
+thresholds_clr 67 85 90 95 100 105 110 115
+actions cpu+battery cpu+battery cpu+battery cpu+battery cpu+battery cpu+battery cpu+battery shutdown
+action_info 1512000+0 1188000+0 810000+1 648000+1 540000+2 487000+2 384000+3 5000
+
+[tsens_tz_sensor8]
+sampling 1000
+thresholds 70 90 95 100 105 110 115 120
+thresholds_clr 67 85 90 95 100 105 110 115
+actions cpu cpu cpu cpu cpu cpu cpu shutdown
+action_info 1512000 1188000 810000 648000 540000 487000 384000 5000
+
+[tsens_tz_sensor9]
+sampling 1000
+thresholds 70 90 95 100 105 110 115 120
+thresholds_clr 67 85 90 95 100 105 110 115
+actions cpu cpu cpu cpu cpu cpu cpu shutdown
+action_info 1512000 1188000 810000 648000 540000 487000 384000 5000
+
+[tsens_tz_sensor10]
+sampling 1000
+thresholds 70 90 95 100 105 110 115 120
+thresholds_clr 67 85 90 95 100 105 110 115
+actions cpu cpu cpu cpu cpu cpu cpu shutdown
+action_info 1512000 1188000 810000 648000 540000 487000 384000 5000
+
diff --git a/touch_dev.idc b/touch_dev.idc
new file mode 100644
index 0000000..75a50ef
--- /dev/null
+++ b/touch_dev.idc
@@ -0,0 +1,32 @@
+# 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.
+
+#
+# Input Device Calibration File for the Mako touch screen.
+#
+
+device.internal = 1
+
+touch.deviceType = touchScreen
+touch.orientationAware = 1
+
+touch.size.calibration = diameter
+touch.size.scale = 22.5
+touch.size.bias = 0
+touch.size.isSummed = 0
+
+touch.pressure.calibration = amplitude
+touch.pressure.scale = 0.0125
+
+touch.orientation.calibration = none
diff --git a/ueventd.flo.rc b/ueventd.flo.rc
new file mode 100644
index 0000000..9dcd510
--- /dev/null
+++ b/ueventd.flo.rc
@@ -0,0 +1,52 @@
+/dev/smd3 0660 bluetooth bluetooth
+/dev/smd2 0660 bluetooth bluetooth
+/dev/uinput 0660 system bluetooth
+/dev/ttyHS0 0600 bluetooth bluetooth
+/dev/ttyMSM0 0600 bluetooth bluetooth
+/dev/genlock 0666 system system
+/dev/kgsl 0666 system system
+/dev/kgsl-3d0 0666 system system
+/dev/ion 0664 system system
+/dev/msm_rotator 0664 system system
+/dev/msm_vidc_dec 0660 system audio
+/dev/msm_vidc_dec_sec 0660 system audio
+/dev/msm_vidc_enc 0660 system audio
+/dev/msm_acdb 0660 system audio
+/dev/msm_rtac 0660 system audio
+/dev/smd4 0660 system system
+/dev/smd7 0640 radio radio
+/dev/smdcntl0 0640 radio radio
+/dev/smdcntl1 0640 radio radio
+/dev/smdcntl2 0640 radio radio
+/dev/smdcntl3 0640 radio radio
+/dev/smdcntl4 0640 radio radio
+/dev/smdcntl5 0640 radio radio
+/dev/smdcntl6 0640 radio radio
+/dev/smdcntl7 0640 radio radio
+/dev/smuxctl32 0640 radio radio
+/dev/rmnet_mux_ctrl 0640 radio radio
+/dev/hsicctl0 0640 radio radio
+/dev/hsicctl1 0640 radio radio
+/dev/hsicctl2 0640 radio radio
+/dev/hsicctl3 0640 radio radio
+/dev/video* 0660 system camera
+/dev/media* 0660 system camera
+/dev/v4l-subdev* 0660 system camera
+/dev/msm_camera/* 0660 system camera
+/dev/gemini* 0660 system camera
+/dev/msm_dsps 0600 system system
+/dev/bcm2079x-i2c 0660 nfc nfc
+/dev/qseecom 0666 system drmrpc
+/dev/diag 0666 root root
+/dev/mdm 0660 system radio
+/dev/ks_bridge 0660 system system
+/dev/efs_bridge 0660 system system
+/dev/block/mmcblk0p17 0660 system system
+/dev/block/mmcblk0p18 0660 system system
+/dev/block/mmcblk0p19 0660 system system
+/dev/ttyUSB0 0660 system system
+/dev/block/mmcblk0p8 0660 system system
+/dev/block/mmcblk0p9 0660 system system
+/dev/gss 0660 system gps
+/dev/ks_hsic_bridge 0660 system system
+/dev/efs_hsic_bridge 0660 system system
diff --git a/vendorsetup.sh b/vendorsetup.sh
new file mode 100755
index 0000000..235cdd2
--- /dev/null
+++ b/vendorsetup.sh
@@ -0,0 +1,17 @@
+#
+# Copyright 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.
+#
+
+add_lunch_combo full_flo-userdebug
diff --git a/wpa_supplicant.conf b/wpa_supplicant.conf
new file mode 100644
index 0000000..be2e311
--- /dev/null
+++ b/wpa_supplicant.conf
@@ -0,0 +1,827 @@
+##### Example wpa_supplicant configuration file ###############################
+#
+# This file describes configuration file format and lists all available option.
+# Please also take a look at simpler configuration examples in 'examples'
+# subdirectory.
+#
+# Empty lines and lines starting with # are ignored
+
+# NOTE! This file may contain password information and should probably be made
+# readable only by root user on multiuser systems.
+
+# Note: All file paths in this configuration file should use full (absolute,
+# not relative to working directory) path in order to allow working directory
+# to be changed. This can happen if wpa_supplicant is run in the background.
+
+# Whether to allow wpa_supplicant to update (overwrite) configuration
+#
+# This option can be used to allow wpa_supplicant to overwrite configuration
+# file whenever configuration is changed (e.g., new network block is added with
+# wpa_cli or wpa_gui, or a password is changed). This is required for
+# wpa_cli/wpa_gui to be able to store the configuration changes permanently.
+# Please note that overwriting configuration file will remove the comments from
+# it.
+update_config=1
+
+# global configuration (shared by all network blocks)
+#
+# Parameters for the control interface. If this is specified, wpa_supplicant
+# will open a control interface that is available for external programs to
+# manage wpa_supplicant. The meaning of this string depends on which control
+# interface mechanism is used. For all cases, the existance of this parameter
+# in configuration is used to determine whether the control interface is
+# enabled.
+#
+# For UNIX domain sockets (default on Linux and BSD): This is a directory that
+# will be created for UNIX domain sockets 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
+# wpa_supplicant processes can be run at the same time if more than one
+# interface is used.
+# /var/run/wpa_supplicant is the recommended directory for sockets and by
+# default, wpa_cli will use it when trying to connect with wpa_supplicant.
+#
+# Access control for the control interface can be configured by setting the
+# directory to allow only members of a group to use sockets. This way, it is
+# possible to run wpa_supplicant as root (since it needs to change network
+# configuration and open raw sockets) and still allow GUI/CLI components to be
+# run as non-root users. However, since the control interface can be used to
+# change the network configuration, this access needs to be protected in many
+# cases. By default, wpa_supplicant is configured to use gid 0 (root). If you
+# want to allow non-root users to use the control interface, add a new group
+# and change this value to match with that group. Add users that should have
+# control interface access to this group. If this variable is commented out or
+# not included in the configuration file, group will not be changed from the
+# value it got by default when the directory or socket was created.
+#
+# When configuring both the directory and group, use following format:
+# DIR=/var/run/wpa_supplicant GROUP=wheel
+# DIR=/var/run/wpa_supplicant GROUP=0
+# (group can be either group name or gid)
+#
+ctrl_interface=<will be set by wifi.c>
+
+# IEEE 802.1X/EAPOL version
+# wpa_supplicant is implemented based on IEEE Std 802.1X-2004 which defines
+# EAPOL version 2. However, there are many APs that do not handle the new
+# version number correctly (they seem to drop the frames completely). In order
+# to make wpa_supplicant interoperate with these APs, the version number is set
+# to 1 by default. This configuration value can be used to set it to the new
+# version (2).
+eapol_version=1
+
+# AP scanning/selection
+# By default, wpa_supplicant requests driver to perform AP scanning and then
+# uses the scan results to select a suitable AP. Another alternative is to
+# allow the driver to take care of AP scanning and selection and use
+# wpa_supplicant just to process EAPOL frames based on IEEE 802.11 association
+# information from the driver.
+# 1: wpa_supplicant initiates scanning and AP selection
+# 0: driver takes care of scanning, AP selection, and IEEE 802.11 association
+# parameters (e.g., WPA IE generation); this mode can also be used with
+# non-WPA drivers when using IEEE 802.1X mode; do not try to associate with
+# APs (i.e., external program needs to control association). This mode must
+# also be used when using wired Ethernet drivers.
+# 2: like 0, but associate with APs using security policy and SSID (but not
+# BSSID); this can be used, e.g., with ndiswrapper and NDIS drivers to
+# enable operation with hidden SSIDs and optimized roaming; in this mode,
+# the network blocks in the configuration file are tried one by one until
+# the driver reports successful association; each network block should have
+# explicit security policy (i.e., only one option in the lists) for
+# key_mgmt, pairwise, group, proto variables
+ap_scan=1
+
+# EAP fast re-authentication
+# By default, fast re-authentication is enabled for all EAP methods that
+# support it. This variable can be used to disable fast re-authentication.
+# Normally, there is no need to disable this.
+fast_reauth=1
+
+# OpenSSL Engine support
+# These options can be used to load OpenSSL engines.
+# The two engines that are supported currently are shown below:
+# They are both from the opensc project (http://www.opensc.org/)
+# By default no engines are loaded.
+# make the opensc engine available
+#opensc_engine_path=/usr/lib/opensc/engine_opensc.so
+# make the pkcs11 engine available
+#pkcs11_engine_path=/usr/lib/opensc/engine_pkcs11.so
+# configure the path to the pkcs11 module required by the pkcs11 engine
+#pkcs11_module_path=/usr/lib/pkcs11/opensc-pkcs11.so
+
+# Dynamic EAP methods
+# If EAP methods were built dynamically as shared object files, they need to be
+# loaded here before being used in the network blocks. By default, EAP methods
+# are included statically in the build, so these lines are not needed
+#load_dynamic_eap=/usr/lib/wpa_supplicant/eap_tls.so
+#load_dynamic_eap=/usr/lib/wpa_supplicant/eap_md5.so
+
+# Driver interface parameters
+# This field can be used to configure arbitrary driver interace parameters. The
+# format is specific to the selected driver interface. This field is not used
+# in most cases.
+#driver_param="field=value"
+
+# Country code
+# The ISO/IEC alpha2 country code for the country in which this device is
+# currently operating.
+#country=US
+
+# Maximum lifetime for PMKSA in seconds; default 43200
+#dot11RSNAConfigPMKLifetime=43200
+# Threshold for reauthentication (percentage of PMK lifetime); default 70
+#dot11RSNAConfigPMKReauthThreshold=70
+# Timeout for security association negotiation in seconds; default 60
+#dot11RSNAConfigSATimeout=60
+
+# Wi-Fi Protected Setup (WPS) parameters
+
+# Universally Unique IDentifier (UUID; see RFC 4122) of the device
+# If not configured, UUID will be generated based on the local MAC address.
+#uuid=12345678-9abc-def0-1234-56789abcdef0
+
+# Device Name
+# User-friendly description of device; up to 32 octets encoded in UTF-8
+#device_name=Wireless Client
+
+# Manufacturer
+# The manufacturer of the device (up to 64 ASCII characters)
+#manufacturer=Company
+
+# Model Name
+# Model of the device (up to 32 ASCII characters)
+#model_name=cmodel
+
+# Model Number
+# Additional device description (up to 32 ASCII characters)
+#model_number=123
+
+# Serial Number
+# Serial number of the device (up to 32 characters)
+#serial_number=12345
+
+# Primary Device Type
+# Used format: <categ>-<OUI>-<subcateg>
+# categ = Category as an integer value
+# OUI = OUI and type octet as a 4-octet hex-encoded value; 0050F204 for
+# default WPS OUI
+# subcateg = OUI-specific Sub Category as an integer value
+# Examples:
+# 1-0050F204-1 (Computer / PC)
+# 1-0050F204-2 (Computer / Server)
+# 5-0050F204-1 (Storage / NAS)
+# 6-0050F204-1 (Network Infrastructure / AP)
+#device_type=1-0050F204-1
+
+# OS Version
+# 4-octet operating system version number (hex string)
+#os_version=01020300
+
+# Credential processing
+# 0 = process received credentials internally (default)
+# 1 = do not process received credentials; just pass them over ctrl_iface to
+# external program(s)
+# 2 = process received credentials internally and pass them over ctrl_iface
+# to external program(s)
+#wps_cred_processing=0
+
+# network block
+#
+# Each network (usually AP's sharing the same SSID) is configured as a separate
+# block in this configuration file. The network blocks are in preference order
+# (the first match is used).
+#
+# network block fields:
+#
+# disabled:
+# 0 = this network can be used (default)
+# 1 = this network block is disabled (can be enabled through ctrl_iface,
+# e.g., with wpa_cli or wpa_gui)
+#
+# id_str: Network identifier string for external scripts. This value is passed
+# to external action script through wpa_cli as WPA_ID_STR environment
+# variable to make it easier to do network specific configuration.
+#
+# ssid: SSID (mandatory); either as an ASCII string with double quotation or
+# as hex string; network name
+#
+# scan_ssid:
+# 0 = do not scan this SSID with specific Probe Request frames (default)
+# 1 = scan with SSID-specific Probe Request frames (this can be used to
+# find APs that do not accept broadcast SSID or use multiple SSIDs;
+# this will add latency to scanning, so enable this only when needed)
+#
+# bssid: BSSID (optional); if set, this network block is used only when
+# associating with the AP using the configured BSSID
+#
+# priority: priority group (integer)
+# By default, all networks will get same priority group (0). If some of the
+# networks are more desirable, this field can be used to change the order in
+# which wpa_supplicant goes through the networks when selecting a BSS. The
+# priority groups will be iterated in decreasing priority (i.e., the larger the
+# priority value, the sooner the network is matched against the scan results).
+# Within each priority group, networks will be selected based on security
+# policy, signal strength, etc.
+# Please note that AP scanning with scan_ssid=1 and ap_scan=2 mode are not
+# using this priority to select the order for scanning. Instead, they try the
+# networks in the order that used in the configuration file.
+#
+# mode: IEEE 802.11 operation mode
+# 0 = infrastructure (Managed) mode, i.e., associate with an AP (default)
+# 1 = IBSS (ad-hoc, peer-to-peer)
+# Note: IBSS can only be used with key_mgmt NONE (plaintext and static WEP)
+# and key_mgmt=WPA-NONE (fixed group key TKIP/CCMP). In addition, ap_scan has
+# to be set to 2 for IBSS. WPA-None requires following network block options:
+# proto=WPA, key_mgmt=WPA-NONE, pairwise=NONE, group=TKIP (or CCMP, but not
+# both), and psk must also be set.
+#
+# frequency: Channel frequency in megahertz (MHz) for IBSS, e.g.,
+# 2412 = IEEE 802.11b/g channel 1. This value is used to configure the initial
+# channel for IBSS (adhoc) networks. It is ignored in the infrastructure mode.
+# In addition, this value is only used by the station that creates the IBSS. If
+# an IBSS network with the configured SSID is already present, the frequency of
+# the network will be used instead of this configured value.
+#
+# proto: list of accepted protocols
+# WPA = WPA/IEEE 802.11i/D3.0
+# RSN = WPA2/IEEE 802.11i (also WPA2 can be used as an alias for RSN)
+# If not set, this defaults to: WPA RSN
+#
+# key_mgmt: list of accepted authenticated key management protocols
+# WPA-PSK = WPA pre-shared key (this requires 'psk' field)
+# WPA-EAP = WPA using EAP authentication
+# IEEE8021X = IEEE 802.1X using EAP authentication and (optionally) dynamically
+# generated WEP keys
+# NONE = WPA is not used; plaintext or static WEP could be used
+# WPA-PSK-SHA256 = Like WPA-PSK but using stronger SHA256-based algorithms
+# WPA-EAP-SHA256 = Like WPA-EAP but using stronger SHA256-based algorithms
+# If not set, this defaults to: WPA-PSK WPA-EAP
+#
+# auth_alg: list of allowed IEEE 802.11 authentication algorithms
+# OPEN = Open System authentication (required for WPA/WPA2)
+# SHARED = Shared Key authentication (requires static WEP keys)
+# LEAP = LEAP/Network EAP (only used with LEAP)
+# If not set, automatic selection is used (Open System with LEAP enabled if
+# LEAP is allowed as one of the EAP methods).
+#
+# pairwise: list of accepted pairwise (unicast) ciphers for WPA
+# CCMP = AES in Counter mode with CBC-MAC [RFC 3610, IEEE 802.11i/D7.0]
+# TKIP = Temporal Key Integrity Protocol [IEEE 802.11i/D7.0]
+# NONE = Use only Group Keys (deprecated, should not be included if APs support
+# pairwise keys)
+# If not set, this defaults to: CCMP TKIP
+#
+# group: list of accepted group (broadcast/multicast) ciphers for WPA
+# CCMP = AES in Counter mode with CBC-MAC [RFC 3610, IEEE 802.11i/D7.0]
+# TKIP = Temporal Key Integrity Protocol [IEEE 802.11i/D7.0]
+# WEP104 = WEP (Wired Equivalent Privacy) with 104-bit key
+# WEP40 = WEP (Wired Equivalent Privacy) with 40-bit key [IEEE 802.11]
+# If not set, this defaults to: CCMP TKIP WEP104 WEP40
+#
+# psk: WPA preshared key; 256-bit pre-shared key
+# The key used in WPA-PSK mode can be entered either as 64 hex-digits, i.e.,
+# 32 bytes or as an ASCII passphrase (in which case, the real PSK will be
+# generated using the passphrase and SSID). ASCII passphrase must be between
+# 8 and 63 characters (inclusive).
+# This field is not needed, if WPA-EAP is used.
+# Note: Separate tool, wpa_passphrase, can be used to generate 256-bit keys
+# from ASCII passphrase. This process uses lot of CPU and wpa_supplicant
+# startup and reconfiguration time can be optimized by generating the PSK only
+# only when the passphrase or SSID has actually changed.
+#
+# eapol_flags: IEEE 802.1X/EAPOL options (bit field)
+# Dynamic WEP key required for non-WPA mode
+# bit0 (1): require dynamically generated unicast WEP key
+# bit1 (2): require dynamically generated broadcast WEP key
+# (3 = require both keys; default)
+# Note: When using wired authentication, eapol_flags must be set to 0 for the
+# authentication to be completed successfully.
+#
+# mixed_cell: This option can be used to configure whether so called mixed
+# cells, i.e., networks that use both plaintext and encryption in the same
+# SSID, are allowed when selecting a BSS form scan results.
+# 0 = disabled (default)
+# 1 = enabled
+#
+# proactive_key_caching:
+# Enable/disable opportunistic PMKSA caching for WPA2.
+# 0 = disabled (default)
+# 1 = enabled
+#
+# wep_key0..3: Static WEP key (ASCII in double quotation, e.g. "abcde" or
+# hex without quotation, e.g., 0102030405)
+# wep_tx_keyidx: Default WEP key index (TX) (0..3)
+#
+# peerkey: Whether PeerKey negotiation for direct links (IEEE 802.11e DLS) is
+# allowed. This is only used with RSN/WPA2.
+# 0 = disabled (default)
+# 1 = enabled
+#peerkey=1
+#
+# wpa_ptk_rekey: Maximum lifetime for PTK in seconds. This can be used to
+# enforce rekeying of PTK to mitigate some attacks against TKIP deficiencies.
+#
+# Following fields are only used with internal EAP implementation.
+# eap: space-separated list of accepted EAP methods
+# MD5 = EAP-MD5 (unsecure and does not generate keying material ->
+# cannot be used with WPA; to be used as a Phase 2 method
+# with EAP-PEAP or EAP-TTLS)
+# MSCHAPV2 = EAP-MSCHAPv2 (cannot be used separately with WPA; to be used
+# as a Phase 2 method with EAP-PEAP or EAP-TTLS)
+# OTP = EAP-OTP (cannot be used separately with WPA; to be used
+# as a Phase 2 method with EAP-PEAP or EAP-TTLS)
+# GTC = EAP-GTC (cannot be used separately with WPA; to be used
+# as a Phase 2 method with EAP-PEAP or EAP-TTLS)
+# TLS = EAP-TLS (client and server certificate)
+# PEAP = EAP-PEAP (with tunnelled EAP authentication)
+# TTLS = EAP-TTLS (with tunnelled EAP or PAP/CHAP/MSCHAP/MSCHAPV2
+# authentication)
+# If not set, all compiled in methods are allowed.
+#
+# identity: Identity string for EAP
+# This field is also used to configure user NAI for
+# EAP-PSK/PAX/SAKE/GPSK.
+# anonymous_identity: Anonymous identity string for EAP (to be used as the
+# unencrypted identity with EAP types that support different tunnelled
+# identity, e.g., EAP-TTLS)
+# password: Password string for EAP. This field can include either the
+# plaintext password (using ASCII or hex string) or a NtPasswordHash
+# (16-byte MD4 hash of password) in hash:<32 hex digits> format.
+# NtPasswordHash can only be used when the password is for MSCHAPv2 or
+# MSCHAP (EAP-MSCHAPv2, EAP-TTLS/MSCHAPv2, EAP-TTLS/MSCHAP, LEAP).
+# EAP-PSK (128-bit PSK), EAP-PAX (128-bit PSK), and EAP-SAKE (256-bit
+# PSK) is also configured using this field. For EAP-GPSK, this is a
+# variable length PSK.
+# ca_cert: File path to CA certificate file (PEM/DER). This file can have one
+# or more trusted CA certificates. If ca_cert and ca_path are not
+# included, server certificate will not be verified. This is insecure and
+# a trusted CA certificate should always be configured when using
+# EAP-TLS/TTLS/PEAP. Full path should be used since working directory may
+# change when wpa_supplicant is run in the background.
+# On Windows, trusted CA certificates can be loaded from the system
+# certificate store by setting this to cert_store://<name>, e.g.,
+# ca_cert="cert_store://CA" or ca_cert="cert_store://ROOT".
+# Note that when running wpa_supplicant as an application, the user
+# certificate store (My user account) is used, whereas computer store
+# (Computer account) is used when running wpasvc as a service.
+# ca_path: Directory path for CA certificate files (PEM). This path may
+# contain multiple CA certificates in OpenSSL format. Common use for this
+# is to point to system trusted CA list which is often installed into
+# directory like /etc/ssl/certs. If configured, these certificates are
+# added to the list of trusted CAs. ca_cert may also be included in that
+# case, but it is not required.
+# client_cert: File path to client certificate file (PEM/DER)
+# Full path should be used since working directory may change when
+# wpa_supplicant is run in the background.
+# Alternatively, a named configuration blob can be used by setting this
+# to blob://<blob name>.
+# private_key: File path to client private key file (PEM/DER/PFX)
+# When PKCS#12/PFX file (.p12/.pfx) is used, client_cert should be
+# commented out. Both the private key and certificate will be read from
+# the PKCS#12 file in this case. Full path should be used since working
+# directory may change when wpa_supplicant is run in the background.
+# Windows certificate store can be used by leaving client_cert out and
+# configuring private_key in one of the following formats:
+# cert://substring_to_match
+# hash://certificate_thumbprint_in_hex
+# for example: private_key="hash://63093aa9c47f56ae88334c7b65a4"
+# Note that when running wpa_supplicant as an application, the user
+# certificate store (My user account) is used, whereas computer store
+# (Computer account) is used when running wpasvc as a service.
+# Alternatively, a named configuration blob can be used by setting this
+# to blob://<blob name>.
+# private_key_passwd: Password for private key file (if left out, this will be
+# asked through control interface)
+# dh_file: File path to DH/DSA parameters file (in PEM format)
+# This is an optional configuration file for setting parameters for an
+# ephemeral DH key exchange. In most cases, the default RSA
+# authentication does not use this configuration. However, it is possible
+# setup RSA to use ephemeral DH key exchange. In addition, ciphers with
+# DSA keys always use ephemeral DH keys. This can be used to achieve
+# forward secrecy. If the file is in DSA parameters format, it will be
+# automatically converted into DH params.
+# subject_match: Substring to be matched against the subject of the
+# authentication server certificate. If this string is set, the server
+# sertificate is only accepted if it contains this string in the subject.
+# The subject string is in following format:
+# /C=US/ST=CA/L=San Francisco/CN=Test AS/emailAddress=as@example.com
+# altsubject_match: Semicolon separated string of entries to be matched against
+# the alternative subject name of the authentication server certificate.
+# If this string is set, the server sertificate is only accepted if it
+# contains one of the entries in an alternative subject name extension.
+# altSubjectName string is in following format: TYPE:VALUE
+# Example: EMAIL:server@example.com
+# Example: DNS:server.example.com;DNS:server2.example.com
+# Following types are supported: EMAIL, DNS, URI
+# phase1: Phase1 (outer authentication, i.e., TLS tunnel) parameters
+# (string with field-value pairs, e.g., "peapver=0" or
+# "peapver=1 peaplabel=1")
+# 'peapver' can be used to force which PEAP version (0 or 1) is used.
+# 'peaplabel=1' can be used to force new label, "client PEAP encryption",
+# to be used during key derivation when PEAPv1 or newer. Most existing
+# PEAPv1 implementation seem to be using the old label, "client EAP
+# encryption", and wpa_supplicant is now using that as the default value.
+# Some servers, e.g., Radiator, may require peaplabel=1 configuration to
+# interoperate with PEAPv1; see eap_testing.txt for more details.
+# 'peap_outer_success=0' can be used to terminate PEAP authentication on
+# tunneled EAP-Success. This is required with some RADIUS servers that
+# implement draft-josefsson-pppext-eap-tls-eap-05.txt (e.g.,
+# Lucent NavisRadius v4.4.0 with PEAP in "IETF Draft 5" mode)
+# include_tls_length=1 can be used to force wpa_supplicant to include
+# TLS Message Length field in all TLS messages even if they are not
+# fragmented.
+# sim_min_num_chal=3 can be used to configure EAP-SIM to require three
+# challenges (by default, it accepts 2 or 3)
+# result_ind=1 can be used to enable EAP-SIM and EAP-AKA to use
+# protected result indication.
+# 'crypto_binding' option can be used to control PEAPv0 cryptobinding
+# behavior:
+# * 0 = do not use cryptobinding (default)
+# * 1 = use cryptobinding if server supports it
+# * 2 = require cryptobinding
+# EAP-WSC (WPS) uses following options: pin=<Device Password> or
+# pbc=1.
+# phase2: Phase2 (inner authentication with TLS tunnel) parameters
+# (string with field-value pairs, e.g., "auth=MSCHAPV2" for EAP-PEAP or
+# "autheap=MSCHAPV2 autheap=MD5" for EAP-TTLS)
+# Following certificate/private key fields are used in inner Phase2
+# authentication when using EAP-TTLS or EAP-PEAP.
+# ca_cert2: File path to CA certificate file. This file can have one or more
+# trusted CA certificates. If ca_cert2 and ca_path2 are not included,
+# server certificate will not be verified. This is insecure and a trusted
+# CA certificate should always be configured.
+# ca_path2: Directory path for CA certificate files (PEM)
+# client_cert2: File path to client certificate file
+# private_key2: File path to client private key file
+# private_key2_passwd: Password for private key file
+# dh_file2: File path to DH/DSA parameters file (in PEM format)
+# subject_match2: Substring to be matched against the subject of the
+# authentication server certificate.
+# altsubject_match2: Substring to be matched against the alternative subject
+# name of the authentication server certificate.
+#
+# fragment_size: Maximum EAP fragment size in bytes (default 1398).
+# This value limits the fragment size for EAP methods that support
+# fragmentation (e.g., EAP-TLS and EAP-PEAP). This value should be set
+# small enough to make the EAP messages fit in MTU of the network
+# interface used for EAPOL. The default value is suitable for most
+# cases.
+#
+# EAP-FAST variables:
+# pac_file: File path for the PAC entries. wpa_supplicant will need to be able
+# to create this file and write updates to it when PAC is being
+# provisioned or refreshed. Full path to the file should be used since
+# working directory may change when wpa_supplicant is run in the
+# background. Alternatively, a named configuration blob can be used by
+# setting this to blob://<blob name>
+# phase1: fast_provisioning option can be used to enable in-line provisioning
+# of EAP-FAST credentials (PAC):
+# 0 = disabled,
+# 1 = allow unauthenticated provisioning,
+# 2 = allow authenticated provisioning,
+# 3 = allow both unauthenticated and authenticated provisioning
+# fast_max_pac_list_len=<num> option can be used to set the maximum
+# number of PAC entries to store in a PAC list (default: 10)
+# fast_pac_format=binary option can be used to select binary format for
+# storing PAC entries in order to save some space (the default
+# text format uses about 2.5 times the size of minimal binary
+# format)
+#
+# wpa_supplicant supports number of "EAP workarounds" to work around
+# interoperability issues with incorrectly behaving authentication servers.
+# These are enabled by default because some of the issues are present in large
+# number of authentication servers. Strict EAP conformance mode can be
+# configured by disabling workarounds with eap_workaround=0.
+
+# Example blocks:
+
+# Simple case: WPA-PSK, PSK as an ASCII passphrase, allow all valid ciphers
+#network={
+# ssid="simple"
+# psk="very secret passphrase"
+# priority=5
+#}
+#
+## Same as previous, but request SSID-specific scanning (for APs that reject
+## broadcast SSID)
+#network={
+# ssid="second ssid"
+# scan_ssid=1
+# psk="very secret passphrase"
+# priority=2
+#}
+#
+## Only WPA-PSK is used. Any valid cipher combination is accepted.
+#network={
+# ssid="example"
+# proto=WPA
+# key_mgmt=WPA-PSK
+# pairwise=CCMP TKIP
+# group=CCMP TKIP WEP104 WEP40
+# psk=06b4be19da289f475aa46a33cb793029d4ab3db7a23ee92382eb0106c72ac7bb
+# priority=2
+#}
+#
+## WPA-Personal(PSK) with TKIP and enforcement for frequent PTK rekeying
+#network={
+# ssid="example"
+# proto=WPA
+# key_mgmt=WPA-PSK
+# pairwise=TKIP
+# group=TKIP
+# psk="not so secure passphrase"
+# wpa_ptk_rekey=600
+#}
+#
+## Only WPA-EAP is used. Both CCMP and TKIP is accepted. An AP that used WEP104
+## or WEP40 as the group cipher will not be accepted.
+#network={
+# ssid="example"
+# proto=RSN
+# key_mgmt=WPA-EAP
+# pairwise=CCMP TKIP
+# group=CCMP TKIP
+# eap=TLS
+# identity="user@example.com"
+# ca_cert="/etc/cert/ca.pem"
+# client_cert="/etc/cert/user.pem"
+# private_key="/etc/cert/user.prv"
+# private_key_passwd="password"
+# priority=1
+#}
+#
+## EAP-PEAP/MSCHAPv2 configuration for RADIUS servers that use the new peaplabel
+## (e.g., Radiator)
+#network={
+# ssid="example"
+# key_mgmt=WPA-EAP
+# eap=PEAP
+# identity="user@example.com"
+# password="barbar"
+# ca_cert="/etc/cert/ca.pem"
+# phase1="peaplabel=1"
+# phase2="auth=MSCHAPV2"
+# priority=10
+#}
+#
+## EAP-TTLS/EAP-MD5-Challenge configuration with anonymous identity for the
+## unencrypted use. Real identity is sent only within an encrypted TLS tunnel.
+#network={
+# ssid="example"
+# key_mgmt=WPA-EAP
+# eap=TTLS
+# identity="user@example.com"
+# anonymous_identity="anonymous@example.com"
+# password="barbar"
+# ca_cert="/etc/cert/ca.pem"
+# priority=2
+#}
+#
+## EAP-TTLS/MSCHAPv2 configuration with anonymous identity for the unencrypted
+## use. Real identity is sent only within an encrypted TLS tunnel.
+#network={
+# ssid="example"
+# key_mgmt=WPA-EAP
+# eap=TTLS
+# identity="user@example.com"
+# anonymous_identity="anonymous@example.com"
+# password="barbar"
+# ca_cert="/etc/cert/ca.pem"
+# phase2="auth=MSCHAPV2"
+#}
+#
+## WPA-EAP, EAP-TTLS with different CA certificate used for outer and inner
+## authentication.
+#network={
+# ssid="example"
+# key_mgmt=WPA-EAP
+# eap=TTLS
+# # Phase1 / outer authentication
+# anonymous_identity="anonymous@example.com"
+# ca_cert="/etc/cert/ca.pem"
+# # Phase 2 / inner authentication
+# phase2="autheap=TLS"
+# ca_cert2="/etc/cert/ca2.pem"
+# client_cert2="/etc/cer/user.pem"
+# private_key2="/etc/cer/user.prv"
+# private_key2_passwd="password"
+# priority=2
+#}
+#
+## Both WPA-PSK and WPA-EAP is accepted. Only CCMP is accepted as pairwise and
+## group cipher.
+#network={
+# ssid="example"
+# bssid=00:11:22:33:44:55
+# proto=WPA RSN
+# key_mgmt=WPA-PSK WPA-EAP
+# pairwise=CCMP
+# group=CCMP
+# psk=06b4be19da289f475aa46a33cb793029d4ab3db7a23ee92382eb0106c72ac7bb
+#}
+#
+## Special characters in SSID, so use hex string. Default to WPA-PSK, WPA-EAP
+## and all valid ciphers.
+#network={
+# ssid=00010203
+# psk=000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+#}
+#
+#
+## EAP-SIM with a GSM SIM or USIM
+#network={
+# ssid="eap-sim-test"
+# key_mgmt=WPA-EAP
+# eap=SIM
+# pin="1234"
+# pcsc=""
+#}
+#
+#
+## EAP-PSK
+#network={
+# ssid="eap-psk-test"
+# key_mgmt=WPA-EAP
+# eap=PSK
+# anonymous_identity="eap_psk_user"
+# password=06b4be19da289f475aa46a33cb793029
+# identity="eap_psk_user@example.com"
+#}
+#
+#
+## IEEE 802.1X/EAPOL with dynamically generated WEP keys (i.e., no WPA) using
+## EAP-TLS for authentication and key generation; require both unicast and
+## broadcast WEP keys.
+#network={
+# ssid="1x-test"
+# key_mgmt=IEEE8021X
+# eap=TLS
+# identity="user@example.com"
+# ca_cert="/etc/cert/ca.pem"
+# client_cert="/etc/cert/user.pem"
+# private_key="/etc/cert/user.prv"
+# private_key_passwd="password"
+# eapol_flags=3
+#}
+#
+#
+## LEAP with dynamic WEP keys
+#network={
+# ssid="leap-example"
+# key_mgmt=IEEE8021X
+# eap=LEAP
+# identity="user"
+# password="barbar"
+#}
+#
+## EAP-IKEv2 using shared secrets for both server and peer authentication
+#network={
+# ssid="ikev2-example"
+# key_mgmt=WPA-EAP
+# eap=IKEV2
+# identity="user"
+# password="barbar"
+#}
+#
+## EAP-FAST with WPA (WPA or WPA2)
+#network={
+# ssid="eap-fast-test"
+# key_mgmt=WPA-EAP
+# eap=FAST
+# anonymous_identity="FAST-000102030405"
+# identity="username"
+# password="password"
+# phase1="fast_provisioning=1"
+# pac_file="/etc/wpa_supplicant.eap-fast-pac"
+#}
+#
+#network={
+# ssid="eap-fast-test"
+# key_mgmt=WPA-EAP
+# eap=FAST
+# anonymous_identity="FAST-000102030405"
+# identity="username"
+# password="password"
+# phase1="fast_provisioning=1"
+# pac_file="blob://eap-fast-pac"
+#}
+#
+## Plaintext connection (no WPA, no IEEE 802.1X)
+#network={
+# ssid="plaintext-test"
+# key_mgmt=NONE
+#}
+#
+#
+## Shared WEP key connection (no WPA, no IEEE 802.1X)
+#network={
+# ssid="static-wep-test"
+# key_mgmt=NONE
+# wep_key0="abcde"
+# wep_key1=0102030405
+# wep_key2="1234567890123"
+# wep_tx_keyidx=0
+# priority=5
+#}
+#
+#
+## Shared WEP key connection (no WPA, no IEEE 802.1X) using Shared Key
+## IEEE 802.11 authentication
+#network={
+# ssid="static-wep-test2"
+# key_mgmt=NONE
+# wep_key0="abcde"
+# wep_key1=0102030405
+# wep_key2="1234567890123"
+# wep_tx_keyidx=0
+# priority=5
+# auth_alg=SHARED
+#}
+#
+#
+## IBSS/ad-hoc network with WPA-None/TKIP.
+#network={
+# ssid="test adhoc"
+# mode=1
+# frequency=2412
+# proto=WPA
+# key_mgmt=WPA-NONE
+# pairwise=NONE
+# group=TKIP
+# psk="secret passphrase"
+#}
+#
+#
+## Catch all example that allows more or less all configuration modes
+#network={
+# ssid="example"
+# scan_ssid=1
+# key_mgmt=WPA-EAP WPA-PSK IEEE8021X NONE
+# pairwise=CCMP TKIP
+# group=CCMP TKIP WEP104 WEP40
+# psk="very secret passphrase"
+# eap=TTLS PEAP TLS
+# identity="user@example.com"
+# password="barbar"
+# ca_cert="/etc/cert/ca.pem"
+# client_cert="/etc/cert/user.pem"
+# private_key="/etc/cert/user.prv"
+# private_key_passwd="password"
+# phase1="peaplabel=0"
+#}
+#
+## Example of EAP-TLS with smartcard (openssl engine)
+#network={
+# ssid="example"
+# key_mgmt=WPA-EAP
+# eap=TLS
+# proto=RSN
+# pairwise=CCMP TKIP
+# group=CCMP TKIP
+# identity="user@example.com"
+# ca_cert="/etc/cert/ca.pem"
+# client_cert="/etc/cert/user.pem"
+#
+# engine=1
+#
+# # The engine configured here must be available. Look at
+# # OpenSSL engine support in the global section.
+# # The key available through the engine must be the private key
+# # matching the client certificate configured above.
+#
+# # use the opensc engine
+# #engine_id="opensc"
+# #key_id="45"
+#
+# # use the pkcs11 engine
+# engine_id="pkcs11"
+# key_id="id_45"
+#
+# # Optional PIN configuration; this can be left out and PIN will be
+# # asked through the control interface
+# pin="1234"
+#}
+#
+## Example configuration showing how to use an inlined blob as a CA certificate
+## data instead of using external file
+#network={
+# ssid="example"
+# key_mgmt=WPA-EAP
+# eap=TTLS
+# identity="user@example.com"
+# anonymous_identity="anonymous@example.com"
+# password="barbar"
+# ca_cert="blob://exampleblob"
+# priority=20
+#}
+#
+#blob-base64-exampleblob={
+#SGVsbG8gV29ybGQhCg==
+#}
+
+
+# Wildcard match for SSID (plaintext APs only). This example select any
+# open AP regardless of its SSID.
+#network={
+# key_mgmt=NONE
+#}