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 &amp; 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 &amp; 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
+#}