am 76a63b2a: Merge branch \'ics-scoop-plus-aosp\' of ssh://android-git:29418/device/moto/wingray into ics-scoop-plus-aosp

* commit '76a63b2a7fc05f86c24c009cc0f929311e13acd3':
diff --git a/BoardConfig.mk b/BoardConfig.mk
index 38c1de5..b6f829f 100644
--- a/BoardConfig.mk
+++ b/BoardConfig.mk
@@ -87,3 +87,7 @@
 # Avoid the generation of ldrcc instructions
 NEED_WORKAROUND_CORTEX_A9_745320 := true
 BOARD_KERNEL_CMDLINE := androidboot.carrier=wifi-only product_type=w
+
+# Use the open-source board-info file if none was set by the vendor
+# config.
+TARGET_BOARD_INFO_FILE ?= device/moto/wingray/board-info.txt
diff --git a/device_base.mk b/device_base.mk
index 485ace9..25deaa8 100644
--- a/device_base.mk
+++ b/device_base.mk
@@ -18,8 +18,7 @@
     device/moto/wingray/overlay
 
 PRODUCT_PROPERTY_OVERRIDES := \
-    wifi.interface=wlan0 \
-    wifi.supplicant_scan_interval=15
+    wifi.interface=wlan0
 
 # Set default USB interface
 PRODUCT_DEFAULT_PROPERTY_OVERRIDES += \
@@ -48,6 +47,7 @@
     frameworks/base/data/etc/tablet_core_hardware.xml:system/etc/permissions/tablet_core_hardware.xml \
     frameworks/base/data/etc/android.hardware.location.gps.xml:system/etc/permissions/android.hardware.location.gps.xml \
     frameworks/base/data/etc/android.hardware.wifi.xml:system/etc/permissions/android.hardware.wifi.xml \
+    frameworks/base/data/etc/android.hardware.wifi.direct.xml:system/etc/permissions/android.hardware.wifi.direct.xml \
     frameworks/base/data/etc/android.hardware.sensor.light.xml:system/etc/permissions/android.hardware.sensor.light.xml \
     frameworks/base/data/etc/android.hardware.sensor.barometer.xml:system/etc/permissions/android.hardware.sensor.barometer.xml \
     frameworks/base/data/etc/android.hardware.sensor.gyroscope.xml:system/etc/permissions/android.hardware.sensor.gyroscope.xml \
diff --git a/extract-files.sh b/extract-files.sh
deleted file mode 100755
index bff1132..0000000
--- a/extract-files.sh
+++ /dev/null
@@ -1,290 +0,0 @@
-#!/bin/sh
-
-# 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.
-
-# This file is generated by device/common/generate-blob-scripts.sh - DO NOT EDIT
-
-DEVICE=wingray
-MANUFACTURER=moto
-
-mkdir -p ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-adb pull /system/app/MotoLocationProxy.apk ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/MotoLocationProxy.apk
-adb pull /system/app/StingrayProgramMenu.apk ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/StingrayProgramMenu.apk
-adb pull /system/app/StingrayProgramMenuSystem.apk ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/StingrayProgramMenuSystem.apk
-adb pull /system/app/UsbHelper.apk ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/UsbHelper.apk
-adb pull /system/bin/akmd2 ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/akmd2
-adb pull /system/bin/batch ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/batch
-adb pull /system/bin/brcm_guci_drv ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/brcm_guci_drv
-adb pull /system/bin/bugtogo.sh ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/bugtogo.sh
-adb pull /system/bin/ftmipcd ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/ftmipcd
-adb pull /system/bin/location ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/location
-adb pull /system/bin/tcmd ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/tcmd
-adb pull /system/etc/cpcap_gain.bin ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/cpcap_gain.bin
-adb pull /system/etc/firmware/bcm4329.hcd ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/bcm4329.hcd
-adb pull /system/etc/firmware/nvddk_audiofx_core.axf ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/nvddk_audiofx_core.axf
-adb pull /system/etc/firmware/nvddk_audiofx_transport.axf ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/nvddk_audiofx_transport.axf
-adb pull /system/etc/firmware/nvmm_aacdec.axf ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/nvmm_aacdec.axf
-adb pull /system/etc/firmware/nvmm_adtsdec.axf ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/nvmm_adtsdec.axf
-adb pull /system/etc/firmware/nvmm_audiomixer.axf ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/nvmm_audiomixer.axf
-adb pull /system/etc/firmware/nvmm_h264dec.axf ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/nvmm_h264dec.axf
-adb pull /system/etc/firmware/nvmm_jpegdec.axf ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/nvmm_jpegdec.axf
-adb pull /system/etc/firmware/nvmm_jpegenc.axf ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/nvmm_jpegenc.axf
-adb pull /system/etc/firmware/nvmm_manager.axf ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/nvmm_manager.axf
-adb pull /system/etc/firmware/nvmm_mp2dec.axf ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/nvmm_mp2dec.axf
-adb pull /system/etc/firmware/nvmm_mp3dec.axf ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/nvmm_mp3dec.axf
-adb pull /system/etc/firmware/nvmm_mpeg4dec.axf ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/nvmm_mpeg4dec.axf
-adb pull /system/etc/firmware/nvmm_reference.axf ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/nvmm_reference.axf
-adb pull /system/etc/firmware/nvmm_service.axf ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/nvmm_service.axf
-adb pull /system/etc/firmware/nvmm_sorensondec.axf ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/nvmm_sorensondec.axf
-adb pull /system/etc/firmware/nvmm_sw_mp3dec.axf ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/nvmm_sw_mp3dec.axf
-adb pull /system/etc/firmware/nvmm_wavdec.axf ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/nvmm_wavdec.axf
-adb pull /system/etc/firmware/nvrm_avp.bin ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/nvrm_avp.bin
-adb pull /system/etc/gps.conf ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/gps.conf
-adb pull /system/etc/gpsconfig.xml ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/gpsconfig.xml
-adb pull /system/etc/location.cfg ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/location.cfg
-adb pull /system/etc/motorola/12m/key_code_map.txt ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/key_code_map.txt
-adb pull /system/etc/motorola/12m/tcmd_leds.cfg ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/tcmd_leds.cfg
-adb pull /system/etc/security/suplcerts.bks ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/suplcerts.bks
-adb pull /system/etc/voip_aud_params.bin ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/voip_aud_params.bin
-adb pull /system/etc/wifi/bcm4329.cal ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/bcm4329.cal
-adb pull /system/lib/egl/libEGL_perfhud.so ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/libEGL_perfhud.so
-adb pull /system/lib/egl/libEGL_tegra.so ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/libEGL_tegra.so
-adb pull /system/lib/egl/libGLESv1_CM_perfhud.so ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/libGLESv1_CM_perfhud.so
-adb pull /system/lib/egl/libGLESv1_CM_tegra.so ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/libGLESv1_CM_tegra.so
-adb pull /system/lib/egl/libGLESv2_perfhud.so ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/libGLESv2_perfhud.so
-adb pull /system/lib/egl/libGLESv2_tegra.so ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/libGLESv2_tegra.so
-adb pull /system/lib/hw/camera.stingray.so ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/camera.stingray.so
-adb pull /system/lib/hw/gps.stingray.so ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/gps.stingray.so
-adb pull /system/lib/hw/gralloc.tegra.so ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/gralloc.tegra.so
-adb pull /system/lib/hw/hwcomposer.tegra.so ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/hwcomposer.tegra.so
-adb pull /system/lib/libcgdrv.so ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/libcgdrv.so
-adb pull /system/lib/libmoto_ecnswrapper.so ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/libmoto_ecnswrapper.so
-adb pull /system/lib/libnvddk_2d.so ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/libnvddk_2d.so
-adb pull /system/lib/libnvddk_2d_v2.so ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/libnvddk_2d_v2.so
-adb pull /system/lib/libnvddk_audiofx.so ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/libnvddk_audiofx.so
-adb pull /system/lib/libnvdispatch_helper.so ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/libnvdispatch_helper.so
-adb pull /system/lib/libnvdispmgr_d.so ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/libnvdispmgr_d.so
-adb pull /system/lib/libnvmm.so ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/libnvmm.so
-adb pull /system/lib/libnvmm_camera.so ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/libnvmm_camera.so
-adb pull /system/lib/libnvmm_contentpipe.so ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/libnvmm_contentpipe.so
-adb pull /system/lib/libnvmm_image.so ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/libnvmm_image.so
-adb pull /system/lib/libnvmm_manager.so ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/libnvmm_manager.so
-adb pull /system/lib/libnvmm_service.so ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/libnvmm_service.so
-adb pull /system/lib/libnvmm_tracklist.so ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/libnvmm_tracklist.so
-adb pull /system/lib/libnvmm_utils.so ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/libnvmm_utils.so
-adb pull /system/lib/libnvmm_video.so ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/libnvmm_video.so
-adb pull /system/lib/libnvodm_imager.so ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/libnvodm_imager.so
-adb pull /system/lib/libnvodm_query.so ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/libnvodm_query.so
-adb pull /system/lib/libnvomx.so ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/libnvomx.so
-adb pull /system/lib/libnvomxilclient.so ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/libnvomxilclient.so
-adb pull /system/lib/libnvos.so ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/libnvos.so
-adb pull /system/lib/libnvrm.so ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/libnvrm.so
-adb pull /system/lib/libnvrm_channel.so ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/libnvrm_channel.so
-adb pull /system/lib/libnvrm_graphics.so ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/libnvrm_graphics.so
-adb pull /system/lib/libnvsm.so ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/libnvsm.so
-adb pull /system/lib/libnvwsi.so ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/libnvwsi.so
-adb pull /system/lib/libpkip.so ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/libpkip.so
-adb pull /system/lib/libstagefrighthw.so ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/libstagefrighthw.so
-adb pull /system/lib/libtpa.so ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/libtpa.so
-adb pull /system/lib/libtpa_core.so ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/libtpa_core.so
-adb pull /system/media/bootanimation-encrypted.zip ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/bootanimation-encrypted.zip
-adb pull /system/media/bootanimation.zip ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/bootanimation.zip
-adb pull /system/vendor/etc/audio_effects.conf ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/audio_effects.conf
-adb pull /system/vendor/firmware/fw_bcm4329_mfg.bin ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/fw_bcm4329_mfg.bin
-
-(cat << EOF) | sed s/__DEVICE__/$DEVICE/g | sed s/__MANUFACTURER__/$MANUFACTURER/g > ../../../vendor/$MANUFACTURER/$DEVICE/device-vendor-blobs.mk
-# 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.
-
-# This file is generated by device/__MANUFACTURER__/__DEVICE__/extract-files.sh - DO NOT EDIT
-
-
-# All the blobs necessary for wingray
-PRODUCT_COPY_FILES += \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/akmd2:system/bin/akmd2 \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/batch:system/bin/batch \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/brcm_guci_drv:system/bin/brcm_guci_drv \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/bugtogo.sh:system/bin/bugtogo.sh \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/ftmipcd:system/bin/ftmipcd \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/location:system/bin/location \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/tcmd:system/bin/tcmd \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/cpcap_gain.bin:system/etc/cpcap_gain.bin \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/bcm4329.hcd:system/etc/firmware/bcm4329.hcd \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/nvddk_audiofx_core.axf:system/etc/firmware/nvddk_audiofx_core.axf \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/nvddk_audiofx_transport.axf:system/etc/firmware/nvddk_audiofx_transport.axf \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/nvmm_aacdec.axf:system/etc/firmware/nvmm_aacdec.axf \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/nvmm_adtsdec.axf:system/etc/firmware/nvmm_adtsdec.axf \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/nvmm_audiomixer.axf:system/etc/firmware/nvmm_audiomixer.axf \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/nvmm_h264dec.axf:system/etc/firmware/nvmm_h264dec.axf \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/nvmm_jpegdec.axf:system/etc/firmware/nvmm_jpegdec.axf \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/nvmm_jpegenc.axf:system/etc/firmware/nvmm_jpegenc.axf \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/nvmm_manager.axf:system/etc/firmware/nvmm_manager.axf \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/nvmm_mp2dec.axf:system/etc/firmware/nvmm_mp2dec.axf \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/nvmm_mp3dec.axf:system/etc/firmware/nvmm_mp3dec.axf \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/nvmm_mpeg4dec.axf:system/etc/firmware/nvmm_mpeg4dec.axf \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/nvmm_reference.axf:system/etc/firmware/nvmm_reference.axf \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/nvmm_service.axf:system/etc/firmware/nvmm_service.axf \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/nvmm_sorensondec.axf:system/etc/firmware/nvmm_sorensondec.axf \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/nvmm_sw_mp3dec.axf:system/etc/firmware/nvmm_sw_mp3dec.axf \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/nvmm_wavdec.axf:system/etc/firmware/nvmm_wavdec.axf \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/nvrm_avp.bin:system/etc/firmware/nvrm_avp.bin \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/gps.conf:system/etc/gps.conf \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/gpsconfig.xml:system/etc/gpsconfig.xml \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/location.cfg:system/etc/location.cfg \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/key_code_map.txt:system/etc/motorola/12m/key_code_map.txt \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/tcmd_leds.cfg:system/etc/motorola/12m/tcmd_leds.cfg \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/suplcerts.bks:system/etc/security/suplcerts.bks \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/voip_aud_params.bin:system/etc/voip_aud_params.bin \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/bcm4329.cal:system/etc/wifi/bcm4329.cal \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libEGL_perfhud.so:system/lib/egl/libEGL_perfhud.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libEGL_tegra.so:system/lib/egl/libEGL_tegra.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libGLESv1_CM_perfhud.so:system/lib/egl/libGLESv1_CM_perfhud.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libGLESv1_CM_tegra.so:system/lib/egl/libGLESv1_CM_tegra.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libGLESv2_perfhud.so:system/lib/egl/libGLESv2_perfhud.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libGLESv2_tegra.so:system/lib/egl/libGLESv2_tegra.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/camera.stingray.so:system/lib/hw/camera.stingray.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/gps.stingray.so:system/lib/hw/gps.stingray.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/gralloc.tegra.so:system/lib/hw/gralloc.tegra.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/hwcomposer.tegra.so:system/lib/hw/hwcomposer.tegra.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libcgdrv.so:system/lib/libcgdrv.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libmoto_ecnswrapper.so:system/lib/libmoto_ecnswrapper.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libnvddk_2d.so:system/lib/libnvddk_2d.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libnvddk_2d_v2.so:system/lib/libnvddk_2d_v2.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libnvddk_audiofx.so:system/lib/libnvddk_audiofx.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libnvdispatch_helper.so:system/lib/libnvdispatch_helper.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libnvdispmgr_d.so:system/lib/libnvdispmgr_d.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libnvmm.so:system/lib/libnvmm.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libnvmm_camera.so:system/lib/libnvmm_camera.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libnvmm_contentpipe.so:system/lib/libnvmm_contentpipe.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libnvmm_image.so:system/lib/libnvmm_image.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libnvmm_manager.so:system/lib/libnvmm_manager.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libnvmm_service.so:system/lib/libnvmm_service.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libnvmm_tracklist.so:system/lib/libnvmm_tracklist.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libnvmm_utils.so:system/lib/libnvmm_utils.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libnvmm_video.so:system/lib/libnvmm_video.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libnvodm_imager.so:system/lib/libnvodm_imager.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libnvodm_query.so:system/lib/libnvodm_query.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libnvomx.so:system/lib/libnvomx.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libnvomxilclient.so:system/lib/libnvomxilclient.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libnvos.so:system/lib/libnvos.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libnvrm.so:system/lib/libnvrm.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libnvrm_channel.so:system/lib/libnvrm_channel.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libnvrm_graphics.so:system/lib/libnvrm_graphics.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libnvsm.so:system/lib/libnvsm.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libnvwsi.so:system/lib/libnvwsi.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libpkip.so:system/lib/libpkip.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libstagefrighthw.so:system/lib/libstagefrighthw.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libtpa.so:system/lib/libtpa.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libtpa_core.so:system/lib/libtpa_core.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/bootanimation-encrypted.zip:system/media/bootanimation-encrypted.zip \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/bootanimation.zip:system/media/bootanimation.zip \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/audio_effects.conf:system/vendor/etc/audio_effects.conf \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/fw_bcm4329_mfg.bin:system/vendor/firmware/fw_bcm4329_mfg.bin
-
-# All the apks necessary for wingray
-PRODUCT_PACKAGES += \\
-    MotoLocationProxy \\
-    StingrayProgramMenu \\
-    StingrayProgramMenuSystem \\
-    UsbHelper
-
-EOF
-
-(cat << EOF) | sed s/__DEVICE__/$DEVICE/g | sed s/__MANUFACTURER__/$MANUFACTURER/g > ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/Android.mk
-# 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/__MANUFACTURER__/__DEVICE__/extract-files.sh - DO NOT EDIT
-
-ifeq (\$(TARGET_DEVICE),wingray)
-LOCAL_PATH:=\$(call my-dir)
-
-# Module makefile rules for apks on wingray
-
-# MotoLocationProxy
-
-include \$(CLEAR_VARS)
-
-LOCAL_MODULE := MotoLocationProxy
-LOCAL_SRC_FILES := \$(LOCAL_MODULE).apk
-LOCAL_MODULE_CLASS := APPS
-LOCAL_MODULE_TAGS := optional
-LOCAL_CERTIFICATE := PRESIGNED
-LOCAL_MODULE_SUFFIX := \$(COMMON_ANDROID_PACKAGE_SUFFIX)
-include \$(BUILD_PREBUILT)
-
-# StingrayProgramMenu
-
-include \$(CLEAR_VARS)
-
-LOCAL_MODULE := StingrayProgramMenu
-LOCAL_SRC_FILES := \$(LOCAL_MODULE).apk
-LOCAL_MODULE_CLASS := APPS
-LOCAL_MODULE_TAGS := optional
-LOCAL_CERTIFICATE := PRESIGNED
-LOCAL_MODULE_SUFFIX := \$(COMMON_ANDROID_PACKAGE_SUFFIX)
-include \$(BUILD_PREBUILT)
-
-# StingrayProgramMenuSystem
-
-include \$(CLEAR_VARS)
-
-LOCAL_MODULE := StingrayProgramMenuSystem
-LOCAL_SRC_FILES := \$(LOCAL_MODULE).apk
-LOCAL_MODULE_CLASS := APPS
-LOCAL_MODULE_TAGS := optional
-LOCAL_CERTIFICATE := PRESIGNED
-LOCAL_MODULE_SUFFIX := \$(COMMON_ANDROID_PACKAGE_SUFFIX)
-include \$(BUILD_PREBUILT)
-
-# UsbHelper
-
-include \$(CLEAR_VARS)
-
-LOCAL_MODULE := UsbHelper
-LOCAL_SRC_FILES := \$(LOCAL_MODULE).apk
-LOCAL_MODULE_CLASS := APPS
-LOCAL_MODULE_TAGS := optional
-LOCAL_CERTIFICATE := PRESIGNED
-LOCAL_MODULE_SUFFIX := \$(COMMON_ANDROID_PACKAGE_SUFFIX)
-include \$(BUILD_PREBUILT)
-
-endif
-
-EOF
-
-./setup-makefiles.sh
diff --git a/init.stingray.usb.rc b/init.stingray.usb.rc
index 5ffd949..0559568 100644
--- a/init.stingray.usb.rc
+++ b/init.stingray.usb.rc
@@ -1,7 +1,7 @@
 on boot
-    write /sys/class/android_usb/android0/iManufacturer $ro.product.manufacturer
-    write /sys/class/android_usb/android0/iProduct $ro.boot.modelno
-    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.boot.modelno}
+    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
     write /sys/class/android_usb/android0/f_rndis/manufacturer Motorola
     write /sys/class/android_usb/android0/f_rndis/vendorID 22b8
     write /sys/class/android_usb/android0/f_rndis/wceis 1
@@ -10,65 +10,65 @@
     write /sys/class/android_usb/android0/enable 0
     write /sys/class/android_usb/android0/idVendor 22b8
     write /sys/class/android_usb/android0/idProduct 70a8
-    write /sys/class/android_usb/android0/functions $sys.usb.config
+    write /sys/class/android_usb/android0/functions ${sys.usb.config}
     write /sys/class/android_usb/android0/enable 1
-    setprop sys.usb.state $sys.usb.config
+    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 22b8
     write /sys/class/android_usb/android0/idProduct 70a9
-    write /sys/class/android_usb/android0/functions $sys.usb.config
+    write /sys/class/android_usb/android0/functions ${sys.usb.config}
     write /sys/class/android_usb/android0/enable 1
     start adbd
-    setprop sys.usb.state $sys.usb.config
+    setprop sys.usb.state ${sys.usb.config}
 
 on property:sys.usb.config=rndis
     write /sys/class/android_usb/android0/enable 0
     write /sys/class/android_usb/android0/idVendor 22b8
     write /sys/class/android_usb/android0/idProduct 70ae
-    write /sys/class/android_usb/android0/functions $sys.usb.config
+    write /sys/class/android_usb/android0/functions ${sys.usb.config}
     write /sys/class/android_usb/android0/bDeviceClass 224
     write /sys/class/android_usb/android0/enable 1
     write /sys/class/net/rndis0/mtu 1428
-    setprop sys.usb.state $sys.usb.config
+    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 22b8
     write /sys/class/android_usb/android0/idProduct 70af
-    write /sys/class/android_usb/android0/functions $sys.usb.config
+    write /sys/class/android_usb/android0/functions ${sys.usb.config}
     write /sys/class/android_usb/android0/bDeviceClass 224
     write /sys/class/android_usb/android0/enable 1
     start adbd
     write /sys/class/net/rndis0/mtu 1428
-    setprop sys.usb.state $sys.usb.config
+    setprop sys.usb.state ${sys.usb.config}
 
 on property:sys.usb.config=ptp
     write /sys/class/android_usb/android0/enable 0
     write /sys/class/android_usb/android0/idVendor 22b8
     write /sys/class/android_usb/android0/idProduct 70b4
-    write /sys/class/android_usb/android0/functions $sys.usb.config
+    write /sys/class/android_usb/android0/functions ${sys.usb.config}
     write /sys/class/android_usb/android0/enable 1
-    setprop sys.usb.state $sys.usb.config
+    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 22b8
     write /sys/class/android_usb/android0/idProduct 70b5
-    write /sys/class/android_usb/android0/functions $sys.usb.config
+    write /sys/class/android_usb/android0/functions ${sys.usb.config}
     write /sys/class/android_usb/android0/enable 1
     start adbd
-    setprop sys.usb.state $sys.usb.config
+    setprop sys.usb.state ${sys.usb.config}
 
 # factory test
 on property:sys.usb.config=usbnet
     write /sys/class/android_usb/android0/enable 0
     write /sys/class/android_usb/android0/idVendor 22b8
     write /sys/class/android_usb/android0/idProduct 70a3
-    write /sys/class/android_usb/android0/functions $sys.usb.config
+    write /sys/class/android_usb/android0/functions ${sys.usb.config}
     write /sys/class/android_usb/android0/enable 1
-    setprop sys.usb.state $sys.usb.config
+    setprop sys.usb.state ${sys.usb.config}
 
 # factory test with adb on. Note adb over TCP will be used.
 on property:sys.usb.config=usbnet,adb
@@ -77,7 +77,7 @@
     write /sys/class/android_usb/android0/idProduct 70a3
     write /sys/class/android_usb/android0/functions usbnet
     write /sys/class/android_usb/android0/enable 1
-    setprop sys.usb.state $sys.usb.config
+    setprop sys.usb.state ${sys.usb.config}
     setprop service.adb.tcp.port 5555
     start adbd
 
@@ -86,39 +86,39 @@
     write /sys/class/android_usb/android0/enable 0
     write /sys/class/android_usb/android0/idVendor 22b8
     write /sys/class/android_usb/android0/idProduct 70b0
-    write /sys/class/android_usb/android0/functions $sys.usb.config
+    write /sys/class/android_usb/android0/functions ${sys.usb.config}
     write /sys/class/android_usb/f_acm/instances 3
     write /sys/class/android_usb/android0/enable 1
-    setprop sys.usb.state $sys.usb.config
+    setprop sys.usb.state ${sys.usb.config}
 
 on property:sys.usb.config=acm,usbnet,adb
     write /sys/class/android_usb/android0/enable 0
     write /sys/class/android_usb/android0/idVendor 22b8
     write /sys/class/android_usb/android0/idProduct 70b1
-    write /sys/class/android_usb/android0/functions $sys.usb.config
+    write /sys/class/android_usb/android0/functions ${sys.usb.config}
     write /sys/class/android_usb/f_acm/instances 3
     write /sys/class/android_usb/android0/enable 1
     start adbd
-    setprop sys.usb.state $sys.usb.config
+    setprop sys.usb.state ${sys.usb.config}
 
 on property:sys.usb.config=rndis,acm,usbnet
     write /sys/class/android_usb/android0/enable 0
     write /sys/class/android_usb/android0/idVendor 22b8
     write /sys/class/android_usb/android0/idProduct 70b2
-    write /sys/class/android_usb/android0/functions $sys.usb.config
+    write /sys/class/android_usb/android0/functions ${sys.usb.config}
     write /sys/class/android_usb/f_acm/instances 3
     write /sys/class/android_usb/android0/enable 1
     write /sys/class/net/rndis0/mtu 1428
-    setprop sys.usb.state $sys.usb.config
+    setprop sys.usb.state ${sys.usb.config}
 
 on property:sys.usb.config=rndis,acm,usbnet,adb
     write /sys/class/android_usb/android0/enable 0
     write /sys/class/android_usb/android0/idVendor 22b8
     write /sys/class/android_usb/android0/idProduct 70b3
-    write /sys/class/android_usb/android0/functions $sys.usb.config
+    write /sys/class/android_usb/android0/functions ${sys.usb.config}
     write /sys/class/android_usb/f_acm/instances 3
     write /sys/class/android_usb/android0/enable 1
     start adbd
     write /sys/class/net/rndis0/mtu 1428
-    setprop sys.usb.state $sys.usb.config
+    setprop sys.usb.state ${sys.usb.config}
 
diff --git a/kernel b/kernel
index 9945038..6502994 100644
--- a/kernel
+++ b/kernel
Binary files differ
diff --git a/libaudio/AudioHardware.cpp b/libaudio/AudioHardware.cpp
index fac9a63..cd94132 100644
--- a/libaudio/AudioHardware.cpp
+++ b/libaudio/AudioHardware.cpp
@@ -58,7 +58,7 @@
     /*mCpcapGain*/
     mSpkrVolume(-1), mMicVolume(-1), mEcnsEnabled(0), mEcnsRequested(0), mBtScoOn(false)
 {
-    LOGV("AudioHardware constructor");
+    ALOGV("AudioHardware constructor");
 }
 
 // designed to be called multiple times for retries
@@ -70,25 +70,25 @@
 
     mCpcapCtlFd = ::open("/dev/audio_ctl", O_RDWR);
     if (mCpcapCtlFd < 0) {
-        LOGE("open /dev/audio_ctl failed: %s", strerror(errno));
+        ALOGE("open /dev/audio_ctl failed: %s", strerror(errno));
         goto error;
     }
 
     if (::ioctl(mCpcapCtlFd, CPCAP_AUDIO_OUT_GET_OUTPUT, &mCurOutDevice) < 0) {
-        LOGE("could not get output device: %s", strerror(errno));
+        ALOGE("could not get output device: %s", strerror(errno));
         goto error;
     }
     if (::ioctl(mCpcapCtlFd, CPCAP_AUDIO_IN_GET_INPUT, &mCurInDevice) < 0) {
-        LOGE("could not get input device: %s", strerror(errno));
+        ALOGE("could not get input device: %s", strerror(errno));
         goto error;
     }
     // For bookkeeping only
     if (::ioctl(mCpcapCtlFd, CPCAP_AUDIO_OUT_GET_RATE, &mHwOutRate) < 0) {
-        LOGE("could not get output rate: %s", strerror(errno));
+        ALOGE("could not get output rate: %s", strerror(errno));
         goto error;
     }
     if (::ioctl(mCpcapCtlFd, CPCAP_AUDIO_IN_GET_RATE, &mHwInRate) < 0) {
-        LOGE("could not get input rate: %s", strerror(errno));
+        ALOGE("could not get input rate: %s", strerror(errno));
         goto error;
     }
 
@@ -112,7 +112,7 @@
 
 AudioHardware::~AudioHardware()
 {
-    LOGV("AudioHardware destructor");
+    ALOGV("AudioHardware destructor");
     for (size_t index = 0; index < mInputs.size(); index++) {
         closeInputStream((AudioStreamIn*)mInputs[index]);
     }
@@ -136,12 +136,12 @@
         ::read(fd, &version, sizeof(uint32_t));
         ::read(fd, &barker, sizeof(uint32_t));
         rc = ::read(fd, mCpcapGain, sizeof(mCpcapGain));
-        LOGD("Read gain file, format %X version %X", format, version);
+        ALOGD("Read gain file, format %X version %X", format, version);
         ::close(fd);
     }
     if (rc != sizeof(mCpcapGain) || format != 0x30303032) {
         int gain;
-        LOGE("CPCAP gain file not valid. Using defaults.");
+        ALOGE("CPCAP gain file not valid. Using defaults.");
         for (int i=0; i<AUDIO_HW_GAIN_NUM_DIRECTIONS; i++) {
             if (i==AUDIO_HW_GAIN_SPKR_GAIN)
                 gain = 11;
@@ -179,13 +179,13 @@
         for (unsigned tries = 0; tries < MAX_INIT_TRIES; ++tries) {
             if (NO_ERROR == out->init())
                 break;
-            LOGW("AudioStreamOutTegra::init failed soft, retrying");
+            ALOGW("AudioStreamOutTegra::init failed soft, retrying");
             sleep(1);
         }
         status_t lStatus;
         lStatus = out->initCheck();
         if (NO_ERROR != lStatus) {
-            LOGE("AudioStreamOutTegra::init failed hard");
+            ALOGE("AudioStreamOutTegra::init failed hard");
         } else {
             lStatus = out->set(this, devices, format, channels, sampleRate);
         }
@@ -207,7 +207,7 @@
 void AudioHardware::closeOutputStream(AudioStreamOut* out) {
     Mutex::Autolock lock(mLock);
     if (mOutput == 0 || mOutput != out) {
-        LOGW("Attempt to close invalid output stream");
+        ALOGW("Attempt to close invalid output stream");
     }
     else {
         // AudioStreamOutTegra destructor calls standby which locks
@@ -253,7 +253,7 @@
 
     ssize_t index = mInputs.indexOf((AudioStreamInTegra *)in);
     if (index < 0) {
-        LOGW("Attempt to close invalid input stream");
+        ALOGW("Attempt to close invalid input stream");
     } else {
         mInputs.removeAt(index);
         mLock.unlock();
@@ -266,7 +266,7 @@
 {
     AutoMutex lock(mLock);
     bool wasInCall = isInCall();
-    LOGV("setMode() : new %d, old %d", mode, mMode);
+    ALOGV("setMode() : new %d, old %d", mode, mMode);
     status_t status = AudioHardwareBase::setMode(mode);
     if (status == NO_ERROR) {
         if (wasInCall ^ isInCall()) {
@@ -286,13 +286,13 @@
     status_t status = NO_ERROR;
     struct cpcap_audio_stream standby;
 
-    LOGV("AudioHardware::doStandby() putting %s in %s mode",
+    ALOGV("AudioHardware::doStandby() putting %s in %s mode",
             output ? "output" : "input",
             enable ? "standby" : "online" );
 
 // Debug code
     if (!mLock.tryLock()) {
-        LOGE("doStandby called without mLock held.");
+        ALOGE("doStandby called without mLock held.");
         mLock.unlock();
     }
 // end Debug code
@@ -311,16 +311,16 @@
         }
 
         if (::ioctl(mCpcapCtlFd, CPCAP_AUDIO_OUT_SET_OUTPUT, &standby) < 0) {
-            LOGE("could not turn off current output device: %s",
+            ALOGE("could not turn off current output device: %s",
                  strerror(errno));
             status = errno;
         }
 
         if (::ioctl(mCpcapCtlFd, CPCAP_AUDIO_OUT_GET_OUTPUT, &mCurOutDevice) < 0) {
-            LOGE("could not get current output device after standby: %s",
+            ALOGE("could not get current output device after standby: %s",
                  strerror(errno));
         }
-        LOGV("%s: after standby %s, output device %d is %s", __FUNCTION__,
+        ALOGV("%s: after standby %s, output device %d is %s", __FUNCTION__,
              enable ? "enable" : "disable", mCurOutDevice.id,
              mCurOutDevice.on ? "on" : "off");
     } else {
@@ -332,20 +332,20 @@
              * CPCAP to not send data through the i2s interface, and read()
              * will block until recording is resumed.
              */
-            LOGV("%s: stop recording", __FUNCTION__);
+            ALOGV("%s: stop recording", __FUNCTION__);
             if (::ioctl(stop_fd, TEGRA_AUDIO_IN_STOP) < 0) {
-                LOGE("could not stop recording: %s",
+                ALOGE("could not stop recording: %s",
                      strerror(errno));
             }
         }
 
         if (::ioctl(mCpcapCtlFd, CPCAP_AUDIO_IN_SET_INPUT, &standby) < 0) {
-            LOGE("could not turn off current input device: %s",
+            ALOGE("could not turn off current input device: %s",
                  strerror(errno));
             status = errno;
         }
         ::ioctl(mCpcapCtlFd, CPCAP_AUDIO_IN_GET_INPUT, &mCurInDevice);
-        LOGV("%s: after standby %s, input device %d is %s", __FUNCTION__,
+        ALOGV("%s: after standby %s, input device %d is %s", __FUNCTION__,
              enable ? "enable" : "disable", mCurInDevice.id,
              mCurInDevice.on ? "on" : "off");
     }
@@ -363,7 +363,7 @@
 {
     if (mMicMute != state) {
         mMicMute = state;
-        LOGV("setMicMute() %s", (state)?"ON":"OFF");
+        ALOGV("setMicMute() %s", (state)?"ON":"OFF");
     }
     return NO_ERROR;
 }
@@ -384,7 +384,7 @@
     const char BT_NREC_VALUE_ON[] = "on";
 
 
-    LOGV("setParameters() %s", keyValuePairs.string());
+    ALOGV("setParameters() %s", keyValuePairs.string());
 
     if (keyValuePairs.length() == 0) return BAD_VALUE;
 
@@ -392,10 +392,10 @@
     if (param.get(key, value) == NO_ERROR) {
         if (value == BT_NREC_VALUE_ON) {
             mBluetoothNrec = true;
-            LOGD("Turn on bluetooth NREC");
+            ALOGD("Turn on bluetooth NREC");
         } else {
             mBluetoothNrec = false;
-            LOGD("Turning noise reduction and echo cancellation off for BT "
+            ALOGD("Turning noise reduction and echo cancellation off for BT "
                  "headset");
         }
         doRouting();
@@ -407,13 +407,13 @@
         for (int i = 0; i < mNumSndEndpoints; i++) {
             if (!strcasecmp(value.string(), mSndEndpoints[i].name)) {
                 mBluetoothId = mSndEndpoints[i].id;
-                LOGD("Using custom acoustic parameters for %s", value.string());
+                ALOGD("Using custom acoustic parameters for %s", value.string());
                 break;
             }
         }
 #endif
         if (mBluetoothId == 0) {
-            LOGD("Using default acoustic parameters "
+            ALOGD("Using default acoustic parameters "
                  "(%s not in acoustic database)", value.string());
             doRouting();
         }
@@ -428,7 +428,7 @@
     String8 value;
     String8 key;
 
-    LOGV("getParameters() %s", keys.string());
+    ALOGV("getParameters() %s", keys.string());
 
 #ifdef USE_PROPRIETARY_AUDIO_EXTENSIONS
     key = "ec_supported";
@@ -446,11 +446,11 @@
     size_t bufsize;
 
     if (format != AudioSystem::PCM_16_BIT) {
-        LOGW("getInputBufferSize bad format: %d", format);
+        ALOGW("getInputBufferSize bad format: %d", format);
         return 0;
     }
     if (channelCount < 1 || channelCount > 2) {
-        LOGW("getInputBufferSize bad channel count: %d", channelCount);
+        ALOGW("getInputBufferSize bad channel count: %d", channelCount);
         return 0;
     }
 
@@ -461,7 +461,7 @@
        bufsize +=8;
        bufsize &= ~0x7;
     }
-    LOGV("%s: returns %d for rate %d", __FUNCTION__, bufsize, sampleRate);
+    ALOGV("%s: returns %d for rate %d", __FUNCTION__, bufsize, sampleRate);
     return bufsize;
 }
 
@@ -476,7 +476,7 @@
     else if (v > 1.0)
         v = 1.0;
 
-    LOGV("Setting unused in-call vol to %f",v);
+    ALOGV("Setting unused in-call vol to %f",v);
     mVoiceVol = v;
 
     return NO_ERROR;
@@ -489,7 +489,7 @@
     else if (v > 1.0)
         v = 1.0;
 
-    LOGV("Set master vol to %f.", v);
+    ALOGV("Set master vol to %f.", v);
     mMasterVol = v;
     Mutex::Autolock lock(mLock);
     int useCase = AUDIO_HW_GAIN_USECASE_MM;
@@ -519,19 +519,19 @@
 
     spkr = ceil(v * spkr);
     if (mSpkrVolume != spkr) {
-        LOGV("Set tx volume to %d", spkr);
+        ALOGV("Set tx volume to %d", spkr);
         int ret = ::ioctl(mCpcapCtlFd, CPCAP_AUDIO_OUT_SET_VOLUME, spkr);
         if (ret < 0) {
-            LOGE("could not set spkr volume: %s", strerror(errno));
+            ALOGE("could not set spkr volume: %s", strerror(errno));
             return ret;
         }
         mSpkrVolume = spkr;
     }
     if (mMicVolume != mic) {
-        LOGV("Set rx volume to %d", mic);
+        ALOGV("Set rx volume to %d", mic);
         int ret = ::ioctl(mCpcapCtlFd, CPCAP_AUDIO_IN_SET_VOLUME, mic);
         if (ret < 0) {
-            LOGE("could not set mic volume: %s", strerror(errno));
+            ALOGE("could not set mic volume: %s", strerror(errno));
             return ret;
         }
         mMicVolume = mic;
@@ -546,7 +546,7 @@
     AudioStreamInTegra *input = getActiveInput_l();
     uint32_t inDev = (input == NULL) ? 0 : input->devices();
     if (!mOutput) {
-       LOGE("No output device.");
+       ALOGE("No output device.");
        return 0;
     }
     uint32_t outDev = mOutput->devices();
@@ -564,7 +564,7 @@
     else
        path = AUDIO_HW_GAIN_SPEAKERPHONE;
 
-    LOGV("Picked gain[%d][%d][%d] which is %d.",direction, usecase, path,
+    ALOGV("Picked gain[%d][%d][%d] which is %d.",direction, usecase, path,
           mCpcapGain[direction][usecase][path]);
 
     return mCpcapGain[direction][usecase][path];
@@ -605,7 +605,7 @@
     int sndInDevice = -1;
     bool btScoOn = btScoOutDevices||btScoInDevice;
 
-    LOGV("%s: inputDevice %x, outputDevices %x", __FUNCTION__,
+    ALOGV("%s: inputDevice %x, outputDevices %x", __FUNCTION__,
          inputDevice, outputDevices);
 
     switch (inputDevice) {
@@ -646,7 +646,7 @@
 
     if (sndInDevice != (int)mCurInDevice.id) {
         if (sndInDevice == -1) {
-            LOGV("input device set %x not supported, defaulting to on-board mic",
+            ALOGV("input device set %x not supported, defaulting to on-board mic",
                  inputDevice);
             mCurInDevice.id = CPCAP_AUDIO_IN_MIC1;
         }
@@ -655,17 +655,17 @@
 
         if (::ioctl(mCpcapCtlFd, CPCAP_AUDIO_IN_SET_INPUT,
                   &mCurInDevice) < 0)
-            LOGE("could not set input (%d, on %d): %s",
+            ALOGE("could not set input (%d, on %d): %s",
                  mCurInDevice.id, mCurInDevice.on, strerror(errno));
 
-        LOGV("current input %d, %s",
+        ALOGV("current input %d, %s",
              mCurInDevice.id,
              mCurInDevice.on ? "on" : "off");
     }
 
     if (sndOutDevice != (int)mCurOutDevice.id) {
         if (sndOutDevice == -1) {
-            LOGW("output device set %x not supported, defaulting to speaker",
+            ALOGW("output device set %x not supported, defaulting to speaker",
                  outputDevices);
             mCurOutDevice.id = CPCAP_AUDIO_OUT_SPEAKER;
         }
@@ -674,11 +674,11 @@
 
         if (::ioctl(mCpcapCtlFd, CPCAP_AUDIO_OUT_SET_OUTPUT,
                   &mCurOutDevice) < 0)
-            LOGE("could not set output (%d, on %d): %s",
+            ALOGE("could not set output (%d, on %d): %s",
                  mCurOutDevice.id, mCurOutDevice.on,
                  strerror(errno));
 
-        LOGV("current output %d, %s",
+        ALOGV("current output %d, %s",
              mCurOutDevice.id,
              mCurOutDevice.on ? "on" : "off");
     }
@@ -702,7 +702,7 @@
         } else {
             mHwOutRate = AUDIO_HW_OUT_SAMPLERATE;
         }
-        LOGD("EC/NS active, requests rate as %d for in/out", mHwInRate);
+        ALOGD("EC/NS active, requests rate as %d for in/out", mHwInRate);
     }
     else
 #endif
@@ -711,12 +711,12 @@
             mHwInRate = getActiveInputRate();
         }
         mHwOutRate = AUDIO_HW_OUT_SAMPLERATE;
-        LOGV("No EC/NS, set input rate %d, output %d.", mHwInRate, mHwOutRate);
+        ALOGV("No EC/NS, set input rate %d, output %d.", mHwInRate, mHwOutRate);
     }
     if (btScoOn) {
         mHwOutRate = 8000;
         mHwInRate = 8000;
-        LOGD("Bluetooth SCO active, rate forced to 8K");
+        ALOGD("Bluetooth SCO active, rate forced to 8K");
     }
 
     if (input) {
@@ -767,14 +767,14 @@
             bit_format = TEGRA_AUDIO_BIT_FORMAT_DSP;
             is_bt_bypass = true;
         }
-        LOGV("%s: bluetooth state changed. is_bt_bypass %d bit_format %d",
+        ALOGV("%s: bluetooth state changed. is_bt_bypass %d bit_format %d",
              __FUNCTION__, is_bt_bypass, bit_format);
         // Setup the I2S2-> DAP2/4 capture/playback path.
         if (::ioctl(mOutput->mBtFdIoCtl, TEGRA_AUDIO_SET_BIT_FORMAT, &bit_format) < 0) {
-            LOGE("could not set bit format %s", strerror(errno));
+            ALOGE("could not set bit format %s", strerror(errno));
         }
         if (::ioctl(mCpcapCtlFd, CPCAP_AUDIO_SET_BLUETOOTH_BYPASS, is_bt_bypass) < 0) {
-            LOGE("could not set bluetooth bypass %s", strerror(errno));
+            ALOGE("could not set bluetooth bypass %s", strerror(errno));
         }
 
         mBtScoOn = btScoOn;
@@ -892,7 +892,7 @@
         mSrcBuffer = new char[src_memory_required_stereo(MAX_FRAME_LEN, MAX_CONVERT_RATIO)];
     }
     if (mSrcBuffer == NULL) {
-        LOGE("Failed to allocate memory for sample rate converter.");
+        ALOGE("Failed to allocate memory for sample rate converter.");
         return;
     }
     mSrcInit.memory = (SRC16*)(mSrcBuffer);
@@ -924,7 +924,7 @@
     mState(AUDIO_STREAM_IDLE), /*mSrc*/ mLocked(false), mDriverRate(AUDIO_HW_OUT_SAMPLERATE),
     mInit(false)
 {
-    LOGV("AudioStreamOutTegra constructor");
+    ALOGV("AudioStreamOutTegra constructor");
 }
 
 // designed to be called multiple times for retries
@@ -936,7 +936,7 @@
 
 #define OPEN_FD(fd, dev)    fd = ::open(dev, O_RDWR);                              \
                             if (fd < 0) {                                          \
-                                LOGE("open " dev " failed: %s", strerror(errno));   \
+                                ALOGE("open " dev " failed: %s", strerror(errno));   \
                                 goto error;                                         \
                             }
     OPEN_FD(mFd, "/dev/audio0_out")
@@ -979,7 +979,7 @@
 void AudioHardware::AudioStreamOutTegra::setDriver_l(
         bool speaker, bool bluetooth, bool spdif, int sampleRate)
 {
-    LOGV("Out setDriver_l() Analog speaker? %s. Bluetooth? %s. S/PDIF? %s. sampleRate %d",
+    ALOGV("Out setDriver_l() Analog speaker? %s. Bluetooth? %s. S/PDIF? %s. sampleRate %d",
         speaker?"yes":"no", bluetooth?"yes":"no", spdif?"yes":"no", sampleRate);
 
     // force some reconfiguration at next write()
@@ -1035,10 +1035,10 @@
                 mBtFdCtl >= 0 &&
                 mBtFdIoCtl >= 0) {
         if (mSpdifFd < 0 || mSpdifFdCtl < 0)
-            LOGW("s/pdif driver not present");
+            ALOGW("s/pdif driver not present");
         return NO_ERROR;
     } else {
-        LOGE("Problem opening device files - Is your kernel compatible?");
+        ALOGE("Problem opening device files - Is your kernel compatible?");
         return NO_INIT;
     }
 }
@@ -1061,10 +1061,10 @@
 {
     status_t status;
     if (!mHardware) {
-        LOGE("%s: mHardware is null", __FUNCTION__);
+        ALOGE("%s: mHardware is null", __FUNCTION__);
         return NO_INIT;
     }
-    // LOGD("AudioStreamOutTegra::write(%p, %u) TID %d", buffer, bytes, gettid());
+    // ALOGD("AudioStreamOutTegra::write(%p, %u) TID %d", buffer, bytes, gettid());
     // Protect output state during the write process.
 
     if (mSleepReq) {
@@ -1125,9 +1125,9 @@
             Mutex::Autolock lock2(mFdLock);
             if (mSpdifFd >= 0) {
                 writtenToSpdif = ::write(mSpdifFd, buffer, outsize);
-                LOGV("%s: written %d bytes to SPDIF", __FUNCTION__, (int)writtenToSpdif);
+                ALOGV("%s: written %d bytes to SPDIF", __FUNCTION__, (int)writtenToSpdif);
             } else {
-                LOGW("s/pdif enabled but unavailable");
+                ALOGW("s/pdif enabled but unavailable");
             }
         }
         if (mIsBtEnabled) {
@@ -1144,7 +1144,7 @@
             if (!mSrc.initted() ||
                  mSrc.inRate() != (int)sampleRate() ||
                  mSrc.outRate() != mDriverRate) {
-                LOGD("%s: downconvert started from %d to %d",__FUNCTION__,
+                ALOGD("%s: downconvert started from %d to %d",__FUNCTION__,
                      sampleRate(), mDriverRate);
                 mSrc.init(sampleRate(), mDriverRate);
                 if (!mSrc.initted()) {
@@ -1187,7 +1187,7 @@
                 mSrc.mIoData.output_count--;
             }
             mSrc.srcConvert();
-            LOGV("Converted %d bytes at %d to %d bytes at %d",
+            ALOGV("Converted %d bytes at %d to %d bytes at %d",
                  outsize, sampleRate(), mSrc.mIoData.output_count*2, mDriverRate);
             if (mHaveSpareSample) {
                 int16_t *bufp = (int16_t*)buffer;
@@ -1196,7 +1196,7 @@
                 mHaveSpareSample = false;
             }
             outsize = mSrc.mIoData.output_count*2;
-            LOGV("Outsize is now %d", outsize);
+            ALOGV("Outsize is now %d", outsize);
         }
         if (mHardware->mAudioPP.isEcEnabled()) {
             // EC/NS is a blocking interface, to synchronise with read.
@@ -1208,7 +1208,7 @@
             // Indicate that it is safe to call setDriver_l() without locking mLock: if the input
             // stream is started, doRouting_l() will not block when setDriver_l() is called.
             mLocked = true;
-            LOGV("writeDownlinkEcns size %d", outsize);
+            ALOGV("writeDownlinkEcns size %d", outsize);
             written = mHardware->mAudioPP.writeDownlinkEcns(outFd,(void *)buffer,
                                                             stereo, outsize, &mFdLock);
             mLocked = false;
@@ -1233,7 +1233,7 @@
             // The sample rate conversion modifies the output size.
             if (outsize&0x3) {
                 int16_t* bufp = (int16_t *)buffer;
-//                LOGV("Keep the spare sample away from the driver.");
+//                ALOGV("Keep the spare sample away from the driver.");
                 mHaveSpareSample = true;
                 mSpareSample = bufp[outsize/2 - 1];
             }
@@ -1250,19 +1250,19 @@
             }
         }
         if (written < 0) {
-            LOGE("Error writing %d bytes to output: %s", outsize, strerror(errno));
+            ALOGE("Error writing %d bytes to output: %s", outsize, strerror(errno));
             status = written;
             goto error;
         }
 
         // Sample rate converter may be stashing a couple of bytes here or there,
         // so just report that all bytes were consumed. (it would be a bug not to.)
-        LOGV("write() written %d", bytes);
+        ALOGV("write() written %d", bytes);
         return bytes;
 
     }
 error:
-    LOGE("write(): error, return %d", status);
+    ALOGE("write(): error, return %d", status);
     standby();
     usleep(bytes * 1000 / frameSize() / sampleRate() * 1000);
 
@@ -1278,14 +1278,14 @@
 
 void AudioHardware::AudioStreamOutTegra::flush_l()
 {
-    LOGV("AudioStreamOutTegra::flush()");
+    ALOGV("AudioStreamOutTegra::flush()");
     if (::ioctl(mFdCtl, TEGRA_AUDIO_OUT_FLUSH) < 0)
-       LOGE("could not flush playback: %s", strerror(errno));
+       ALOGE("could not flush playback: %s", strerror(errno));
     if (::ioctl(mBtFdCtl, TEGRA_AUDIO_OUT_FLUSH) < 0)
-       LOGE("could not flush bluetooth: %s", strerror(errno));
+       ALOGE("could not flush bluetooth: %s", strerror(errno));
     if (mSpdifFdCtl >= 0 && ::ioctl(mSpdifFdCtl, TEGRA_AUDIO_OUT_FLUSH) < 0)
-       LOGE("could not flush spdif: %s", strerror(errno));
-    LOGV("AudioStreamOutTegra::flush() returns");
+       ALOGE("could not flush spdif: %s", strerror(errno));
+    ALOGV("AudioStreamOutTegra::flush() returns");
 }
 
 // FIXME: this is a workaround for issue 3387419 with impact on latency
@@ -1293,9 +1293,9 @@
 void AudioHardware::AudioStreamOutTegra::setNumBufs(int numBufs)
 {
     Mutex::Autolock lock(mFdLock);
-    LOGV("AudioStreamOutTegra::setNumBufs(%d)", numBufs);
+    ALOGV("AudioStreamOutTegra::setNumBufs(%d)", numBufs);
     if (::ioctl(mFdCtl, TEGRA_AUDIO_OUT_SET_NUM_BUFS, &numBufs) < 0)
-       LOGE("could not set number of output buffers: %s", strerror(errno));
+       ALOGE("could not set number of output buffers: %s", strerror(errno));
 }
 
 // Called with mLock and mHardware->mLock held
@@ -1305,7 +1305,7 @@
 
     if (mState < AUDIO_STREAM_NEW_RATE_REQ) {
         if (mState == AUDIO_STREAM_IDLE) {
-            LOGV("output %p going online", this);
+            ALOGV("output %p going online", this);
             mState = AUDIO_STREAM_CONFIG_REQ;
             // update EC state if necessary
             if (mHardware->getActiveInput_l() && mHardware->isEcRequested()) {
@@ -1343,7 +1343,7 @@
     // Now the DMA is empty, change the rate.
     if (::ioctl(mHardware->mCpcapCtlFd, CPCAP_AUDIO_OUT_SET_RATE,
               speaker_rate) < 0)
-        LOGE("could not set output rate(%d): %s",
+        ALOGE("could not set output rate(%d): %s",
               speaker_rate, strerror(errno));
 
     mDriverRate = mHardware->mHwOutRate;
@@ -1381,7 +1381,7 @@
     Mutex::Autolock lock2(mLock);
 
     if (mState != AUDIO_STREAM_IDLE) {
-        LOGV("output %p going into standby", this);
+        ALOGV("output %p going into standby", this);
         mState = AUDIO_STREAM_IDLE;
 
         // update EC state if necessary
@@ -1452,12 +1452,12 @@
     String8 key = String8(AudioParameter::keyRouting);
     status_t status = NO_ERROR;
     int device;
-    LOGV("AudioStreamOutTegra::setParameters() %s", keyValuePairs.string());
+    ALOGV("AudioStreamOutTegra::setParameters() %s", keyValuePairs.string());
 
     if (param.getInt(key, device) == NO_ERROR) {
         if (device != 0) {
             mDevices = device;
-            LOGV("set output routing %x", mDevices);
+            ALOGV("set output routing %x", mDevices);
             status = mHardware->doRouting();
         }
         param.remove(key);
@@ -1476,11 +1476,11 @@
     String8 key = String8(AudioParameter::keyRouting);
 
     if (param.get(key, value) == NO_ERROR) {
-        LOGV("get routing %x", mDevices);
+        ALOGV("get routing %x", mDevices);
         param.addInt(key, (int)mDevices);
     }
 
-    LOGV("AudioStreamOutTegra::getParameters() %s", param.toString().string());
+    ALOGV("AudioStreamOutTegra::getParameters() %s", param.toString().string());
     return param.toString();
 }
 
@@ -1502,7 +1502,7 @@
     mSource(AUDIO_SOURCE_DEFAULT), mLocked(false), mTotalBuffersRead(0),
     mDriverRate(AUDIO_HW_IN_SAMPLERATE), mEcnsRequested(0)
 {
-    LOGV("AudioStreamInTegra constructor");
+    ALOGV("AudioStreamInTegra constructor");
 }
 
 // serves a similar purpose as init()
@@ -1516,7 +1516,7 @@
     if (pFormat == 0)
         return status;
     if (*pFormat != AUDIO_HW_IN_FORMAT) {
-        LOGE("wrong in format %d, expecting %lld", *pFormat, AUDIO_HW_IN_FORMAT);
+        ALOGE("wrong in format %d, expecting %lld", *pFormat, AUDIO_HW_IN_FORMAT);
         *pFormat = AUDIO_HW_IN_FORMAT;
         return status;
     }
@@ -1526,7 +1526,7 @@
 
     uint32_t rate = hw->getInputSampleRate(*pRate);
     if (rate != *pRate) {
-        LOGE("wrong sample rate %d, expecting %d", *pRate, rate);
+        ALOGE("wrong sample rate %d, expecting %d", *pRate, rate);
         *pRate = rate;
         return status;
     }
@@ -1536,12 +1536,12 @@
 
     if (*pChannels != AudioSystem::CHANNEL_IN_MONO &&
         *pChannels != AudioSystem::CHANNEL_IN_STEREO) {
-        LOGE("wrong number of channels %d", *pChannels);
+        ALOGE("wrong number of channels %d", *pChannels);
         *pChannels = AUDIO_HW_IN_CHANNELS;
         return status;
     }
 
-    LOGV("AudioStreamInTegra::set(%d, %d, %u)", *pFormat, *pChannels, *pRate);
+    ALOGV("AudioStreamInTegra::set(%d, %d, %u)", *pFormat, *pChannels, *pRate);
 
     mDevices = devices;
     mFormat = AUDIO_HW_IN_FORMAT;
@@ -1554,7 +1554,7 @@
 
 AudioHardware::AudioStreamInTegra::~AudioStreamInTegra()
 {
-    LOGV("AudioStreamInTegra destructor");
+    ALOGV("AudioStreamInTegra destructor");
 
     standby();
 
@@ -1563,7 +1563,7 @@
 // Called with mHardware->mLock and mLock held.
 void AudioHardware::AudioStreamInTegra::setDriver_l(bool mic, bool bluetooth, int sampleRate)
 {
-    LOGV("In setDriver_l() Analog mic? %s. Bluetooth? %s.", mic?"yes":"no", bluetooth?"yes":"no");
+    ALOGV("In setDriver_l() Analog mic? %s. Bluetooth? %s.", mic?"yes":"no", bluetooth?"yes":"no");
 
     // force some reconfiguration at next read()
     // Note: mState always == AUDIO_STREAM_CONFIGURED when setDriver_l() is called on an input
@@ -1582,11 +1582,11 @@
 {
     status_t status;
     if (!mHardware) {
-        LOGE("%s: mHardware is null", __FUNCTION__);
+        ALOGE("%s: mHardware is null", __FUNCTION__);
         return NO_INIT;
     }
     //
-    LOGV("AudioStreamInTegra::read(%p, %ld) TID %d", buffer, bytes, gettid());
+    ALOGV("AudioStreamInTegra::read(%p, %ld) TID %d", buffer, bytes, gettid());
 
     if (mSleepReq) {
         // sleep a few milliseconds so that the processor can be given to the thread attempting to
@@ -1616,7 +1616,7 @@
             status = online_l();
             mHardware->mLock.unlock();
             if (status != NO_ERROR) {
-               LOGE("%s: Problem switching to online.",__FUNCTION__);
+               ALOGE("%s: Problem switching to online.",__FUNCTION__);
                goto error;
             }
         }
@@ -1626,11 +1626,11 @@
 #ifdef USE_PROPRIETARY_AUDIO_EXTENSIONS
         if (srcReqd) {
             hwReadBytes = ( bytes*mDriverRate/mSampleRate ) & (~0x7);
-            LOGV("Running capture SRC.  HW=%d bytes at %d, Flinger=%d bytes at %d",
+            ALOGV("Running capture SRC.  HW=%d bytes at %d, Flinger=%d bytes at %d",
                   hwReadBytes, mDriverRate, (int)bytes, mSampleRate);
             inbuf = mInScratch;
             if ((size_t)bytes > sizeof(mInScratch)) {
-                LOGE("read: buf size problem. %d>%d",(int)bytes,sizeof(mInScratch));
+                ALOGE("read: buf size problem. %d>%d",(int)bytes,sizeof(mInScratch));
                 status = BAD_VALUE;
                 goto error;
             }
@@ -1638,7 +1638,7 @@
             if (!mSrc.initted() ||
                  mSrc.inRate() != mDriverRate ||
                  mSrc.outRate() != (int)mSampleRate) {
-                LOGD ("%s: Upconvert started from %d to %d", __FUNCTION__,
+                ALOGD ("%s: Upconvert started from %d to %d", __FUNCTION__,
                        mDriverRate, mSampleRate);
                 mSrc.init(mDriverRate, mSampleRate);
                 if (!mSrc.initted()) {
@@ -1666,12 +1666,12 @@
             mSrc.srcConvert();
             ret = mSrc.mIoData.output_count*sizeof(SRC16);
             if (ret > bytes) {
-                LOGE("read: buffer overrun");
+                ALOGE("read: buffer overrun");
             }
         }
 #else
         if (srcReqd) {
-            LOGE("%s: sample rate mismatch HAL %d, driver %d",
+            ALOGE("%s: sample rate mismatch HAL %d, driver %d",
                  __FUNCTION__, mSampleRate, mDriverRate);
             status = INVALID_OPERATION;
             goto error;
@@ -1688,11 +1688,11 @@
         bool muted;
         mHardware->getMicMute(&muted);
         if (muted) {
-            LOGV("%s muted",__FUNCTION__);
+            ALOGV("%s muted",__FUNCTION__);
             memset(buffer, 0, bytes);
         }
 
-        LOGV("%s returns %d.",__FUNCTION__, (int)ret);
+        ALOGV("%s returns %d.",__FUNCTION__, (int)ret);
         if (ret < 0) {
             status = ret;
             goto error;
@@ -1706,7 +1706,7 @@
     }
 
 error:
-    LOGE("read(): error, return %d", status);
+    ALOGE("read(): error, return %d", status);
     standby();
     usleep(bytes * 1000 / frameSize() / sampleRate() * 1000);
     return status;
@@ -1727,7 +1727,7 @@
     Mutex::Autolock lock2(mLock);
     status_t status = NO_ERROR;
     if (mState != AUDIO_STREAM_IDLE) {
-        LOGV("input %p going into standby", this);
+        ALOGV("input %p going into standby", this);
         mState = AUDIO_STREAM_IDLE;
         // stopping capture now so that the input stream state (AUDIO_STREAM_IDLE)
         // is consistent with the driver state when doRouting_l() is executed.
@@ -1772,7 +1772,7 @@
 
         if (mState == AUDIO_STREAM_IDLE) {
             mState = AUDIO_STREAM_CONFIG_REQ;
-            LOGV("input %p going online", this);
+            ALOGV("input %p going online", this);
             // apply pre processing requested for this input
             mHardware->setEcnsRequested_l(mEcnsRequested, true);
             // setDriver_l() will not try to lock mLock when called by doRouting_l()
@@ -1790,7 +1790,7 @@
         struct tegra_audio_in_config config;
         status = ::ioctl(mFdCtl, TEGRA_AUDIO_IN_GET_CONFIG, &config);
         if (status < 0) {
-            LOGE("cannot read input config: %s", strerror(errno));
+            ALOGE("cannot read input config: %s", strerror(errno));
             return status;
         }
         config.stereo = AudioSystem::popCount(mChannels) == 2;
@@ -1798,7 +1798,7 @@
         status = ::ioctl(mFdCtl, TEGRA_AUDIO_IN_SET_CONFIG, &config);
 
         if (status < 0) {
-            LOGE("cannot set input config: %s", strerror(errno));
+            ALOGE("cannot set input config: %s", strerror(errno));
             if (::ioctl(mFdCtl, TEGRA_AUDIO_IN_GET_CONFIG, &config) == 0) {
                 if (config.stereo) {
                     mChannels = AudioSystem::CHANNEL_IN_STEREO;
@@ -1815,7 +1815,7 @@
 
     if (::ioctl(mHardware->mCpcapCtlFd, CPCAP_AUDIO_IN_SET_RATE,
                 mDriverRate) < 0)
-        LOGE("could not set input rate(%d): %s", mDriverRate, strerror(errno));
+        ALOGE("could not set input rate(%d): %s", mDriverRate, strerror(errno));
 
     mState = AUDIO_STREAM_CONFIGURED;
 
@@ -1833,7 +1833,7 @@
 #endif
     // Need to "restart" the driver when changing the buffer configuration.
     if (mFdCtl >= 0 && ::ioctl(mFdCtl, TEGRA_AUDIO_IN_STOP) < 0) {
-        LOGE("%s: could not stop recording: %s", __FUNCTION__, strerror(errno));
+        ALOGE("%s: could not stop recording: %s", __FUNCTION__, strerror(errno));
     }
     if (mFd >= 0) {
         ::close(mFd);
@@ -1847,11 +1847,11 @@
     // This does not have a retry loop to avoid blocking if another record session already in progress
     mFd = ::open("/dev/audio1_in", O_RDWR);
     if (mFd < 0) {
-        LOGE("open /dev/audio1_in failed: %s", strerror(errno));
+        ALOGE("open /dev/audio1_in failed: %s", strerror(errno));
     }
     mFdCtl = ::open("/dev/audio1_in_ctl", O_RDWR);
     if (mFdCtl < 0) {
-        LOGE("open /dev/audio1_in_ctl failed: %s", strerror(errno));
+        ALOGE("open /dev/audio1_in_ctl failed: %s", strerror(errno));
         if (mFd >= 0) {
             ::close(mFd);
             mFd = -1;
@@ -1895,7 +1895,7 @@
     status_t status = NO_ERROR;
     int device;
     int source;
-    LOGV("AudioStreamInTegra::setParameters() %s", keyValuePairs.string());
+    ALOGV("AudioStreamInTegra::setParameters() %s", keyValuePairs.string());
 
     // read source before device so that it is upto date when doRouting() is called
     if (param.getInt(String8(AudioParameter::keyInputSource), source) == NO_ERROR) {
@@ -1904,7 +1904,7 @@
     }
 
     if (param.getInt(key, device) == NO_ERROR) {
-        LOGV("set input routing %x", device);
+        ALOGV("set input routing %x", device);
         if (device & (device - 1)) {
             status = BAD_VALUE;
         } else {
@@ -1929,11 +1929,11 @@
     String8 key = String8(AudioParameter::keyRouting);
 
     if (param.get(key, value) == NO_ERROR) {
-        LOGV("get routing %x", mDevices);
+        ALOGV("get routing %x", mDevices);
         param.addInt(key, (int)mDevices);
     }
 
-    LOGV("AudioStreamInTegra::getParameters() %s", param.toString().string());
+    ALOGV("AudioStreamInTegra::getParameters() %s", param.toString().string());
     return param.toString();
 }
 
@@ -1948,7 +1948,7 @@
         uint64_t actualFrames = (uint64_t)mTotalBuffersRead * framesPerBuffer;
         if (expectedFrames > actualFrames) {
             lostFrames = (unsigned int)(expectedFrames - actualFrames);
-            LOGW("getInputFramesLost() expected %d actual %d lost %d",
+            ALOGW("getInputFramesLost() expected %d actual %d lost %d",
                  (unsigned int)expectedFrames, (unsigned int)actualFrames, lostFrames);
         }
     }
@@ -1962,11 +1962,11 @@
 // must be called with mLock and mFdLock held
 void AudioHardware::AudioStreamInTegra::stop_l()
 {
-    LOGV("AudioStreamInTegra::stop_l() starts");
+    ALOGV("AudioStreamInTegra::stop_l() starts");
     if (::ioctl(mFdCtl, TEGRA_AUDIO_IN_STOP) < 0) {
-        LOGE("could not stop recording: %d %s", errno, strerror(errno));
+        ALOGE("could not stop recording: %d %s", errno, strerror(errno));
     }
-    LOGV("AudioStreamInTegra::stop_l() returns");
+    ALOGV("AudioStreamInTegra::stop_l() returns");
 }
 
 void AudioHardware::AudioStreamInTegra::updateEcnsRequested(effect_handle_t effect, bool enabled)
@@ -1981,7 +1981,7 @@
         } else if (memcmp(&desc.type, FX_IID_NS, sizeof(effect_uuid_t)) == 0) {
             ecns = PREPROC_NS;
         }
-        LOGV("AudioStreamInTegra::updateEcnsRequested() %s effect %s",
+        ALOGV("AudioStreamInTegra::updateEcnsRequested() %s effect %s",
              enabled ? "enabling" : "disabling", desc.name);
         if (enabled) {
             mEcnsRequested |= ecns;
@@ -2012,11 +2012,11 @@
     for (unsigned tries = 0; tries < MAX_INIT_TRIES; ++tries) {
         if (NO_ERROR == hw->init())
             break;
-        LOGW("AudioHardware::init failed soft, retrying");
+        ALOGW("AudioHardware::init failed soft, retrying");
         sleep(1);
     }
     if (NO_ERROR != hw->initCheck()) {
-        LOGE("AudioHardware::init failed hard");
+        ALOGE("AudioHardware::init failed hard");
         delete hw;
         hw = NULL;
     }
diff --git a/libaudio/AudioPostProcessor.cpp b/libaudio/AudioPostProcessor.cpp
index a94204d..e757edb 100644
--- a/libaudio/AudioPostProcessor.cpp
+++ b/libaudio/AudioPostProcessor.cpp
@@ -53,7 +53,7 @@
 AudioPostProcessor::AudioPostProcessor() :
     mEcnsScratchBuf(0), mLogNumPoints(0),  mEcnsDlBuf(0), mEcnsDlBufSize(0), mEcnsThread(0)
 {
-    LOGD("%s",__FUNCTION__);
+    ALOGD("%s",__FUNCTION__);
 
     // One-time CTO Audio configuration
     mAudioMmEnvVar.cto_audio_mm_param_block_ptr              = HC_CTO_AUDIO_MM_PARAMETER_TABLE;
@@ -73,7 +73,7 @@
 AudioPostProcessor::~AudioPostProcessor()
 {
     if (mEcnsRunning) {
-        LOGD("%s",__FUNCTION__);
+        ALOGD("%s",__FUNCTION__);
         enableEcns(0);
     }
 }
@@ -127,20 +127,20 @@
 void AudioPostProcessor::configMmAudio()
 {
     if (mAudioMmEnvVar.accy != CTO_AUDIO_MM_ACCY_INVALID) {
-        LOGD("Configure CTO Audio MM processing");
+        ALOGD("Configure CTO Audio MM processing");
         // fetch the corresponding runtime audio parameter
         api_cto_audio_mm_param_parser(&(mAudioMmEnvVar), (int16_t *)0, (int16_t *)0);
         // Initialize algorithm static memory
         api_cto_audio_mm_init(&(mAudioMmEnvVar), (int16_t *)0, (int16_t *)0);
     } else {
-        LOGD("CTO Audio MM processing is disabled.");
+        ALOGD("CTO Audio MM processing is disabled.");
     }
 }
 
 void AudioPostProcessor::enableEcns(int value)
 {
     if (mEcnsEnabled!=value) {
-        LOGD("enableEcns() new %08x old %08x)", value, mEcnsEnabled);
+        ALOGD("enableEcns() new %08x old %08x)", value, mEcnsEnabled);
         mEcnsThread->requestExitAndWait();
         stopEcns();
         cleanupEcns();
@@ -184,7 +184,7 @@
         stopEcns();
     }
 
-    LOGV("setAudioDev %d", outDev->id);
+    ALOGV("setAudioDev %d", outDev->id);
     if (mm_accy != mAudioMmEnvVar.accy) {
         mAudioMmEnvVar.accy = mm_accy;
         configMmAudio();
@@ -197,7 +197,7 @@
     uint32_t rate = convRateToCto(sampRate);
     Mutex::Autolock lock(mMmLock);
 
-    LOGD("AudioPostProcessor::setPlayAudioRate %d", sampRate);
+    ALOGD("AudioPostProcessor::setPlayAudioRate %d", sampRate);
     if (rate != mAudioMmEnvVar.sample_rate) {
         mAudioMmEnvVar.sample_rate = rate;
         configMmAudio();
@@ -223,12 +223,12 @@
 
 void AudioPostProcessor::initEcns(int rate, int bytes)
 {
-    LOGD("%s",__FUNCTION__);
+    ALOGD("%s",__FUNCTION__);
     CTO_AUDIO_USECASES_CTRL mode;
     Mutex::Autolock lock(mEcnsBufLock);
 
     if (rate != 8000 && rate != 16000) {
-        LOGW("Invalid rate for EC/NS, disabling");
+        ALOGW("Invalid rate for EC/NS, disabling");
         mEcnsEnabled = 0;
         mEcnsRunning = 0;
         return;
@@ -239,7 +239,7 @@
        // Offset to the 16K (WB) block in the coefficients file
        mode = CTO_AUDIO_USECASES_CTRL(mode + CTO_AUDIO_USECASE_WB_HANDSET);
     }
-    LOGD("%s for mode %d at %d size %d",__FUNCTION__, mode, mEcnsRate, bytes);
+    ALOGD("%s for mode %d at %d size %d",__FUNCTION__, mode, mEcnsRate, bytes);
     mEcnsCtrl.framesize = bytes/2;
     mEcnsCtrl.micFlag = 0; // 0- one mic.  1- dual mic. 2- three mic.
     mEcnsCtrl.digital_mode = (rate == 8000) ? 0 : 1;  // 8K or 16K
@@ -252,7 +252,7 @@
     FILE * fp = fopen("/system/etc/voip_aud_params.bin", "r");
     if (fp) {
         if (fread(mParamTable, sizeof(mParamTable), 1, fp) < 1) {
-            LOGE("Cannot read VOIP parameter file.  Disabling EC/NS.");
+            ALOGE("Cannot read VOIP parameter file.  Disabling EC/NS.");
             fclose(fp);
             mEcnsEnabled = 0;
             mEcnsRunning = 0;
@@ -261,7 +261,7 @@
         fclose(fp);
     }
     else {
-        LOGE("Cannot open VOIP parameter file.  Disabling EC/NS.");
+        ALOGE("Cannot open VOIP parameter file.  Disabling EC/NS.");
         mEcnsEnabled = 0;
         mEcnsRunning = 0;
         return;
@@ -281,7 +281,7 @@
 {
     AutoMutex lock(mEcnsBufLock);
     if (mEcnsRunning) {
-        LOGD("%s",__FUNCTION__);
+        ALOGD("%s",__FUNCTION__);
         mEcnsRunning = 0;
     }
 }
@@ -329,7 +329,7 @@
     if (mEcnsEnabled && !mEcnsRunning) {
         long usecs = 20*1000;
         // Give the read thread a chance to catch up.
-        LOGV("%s: delay %d msecs for ec/ns to start",__FUNCTION__, (int)(usecs/1000));
+        ALOGV("%s: delay %d msecs for ec/ns to start",__FUNCTION__, (int)(usecs/1000));
         mEcnsBufLock.unlock();
         usleep(usecs);
         mEcnsBufLock.lock();
@@ -344,10 +344,10 @@
         mEcnsOutFdLockp = fdLock;
         mEcnsOutStereo = stereo;
         if (mEcnsBufCond.waitRelative(mEcnsBufLock, seconds(1)) != NO_ERROR) {
-            LOGE("%s: Capture thread is stalled.", __FUNCTION__);
+            ALOGE("%s: Capture thread is stalled.", __FUNCTION__);
         }
         if (mEcnsOutBufSize != 0)
-            LOGD("%s: Buffer not consumed", __FUNCTION__);
+            ALOGD("%s: Buffer not consumed", __FUNCTION__);
         else
             written = bytes;  // All data consumed
     }
@@ -364,7 +364,7 @@
     ssize_t ret;
     ret = ::read(fd, buffer, bytes);
     if (ret < 0)
-        LOGE("Error reading from audio in: %s", strerror(errno));
+        ALOGE("Error reading from audio in: %s", strerror(errno));
     return (int)ret;
 }
 
@@ -382,7 +382,7 @@
     if (!mEcnsEnabled)
         return 0;
 
-    LOGV("%s %d bytes at %d Hz",__FUNCTION__, bytes, rate);
+    ALOGV("%s %d bytes at %d Hz",__FUNCTION__, bytes, rate);
     if (mEcnsEnabled && !mEcnsRunning) {
         initEcns(rate, bytes);
         onetime=true;
@@ -396,7 +396,7 @@
     }
 
     if (!mEcnsRunning) {
-        LOGE("EC/NS failed to init, read returns.");
+        ALOGE("EC/NS failed to init, read returns.");
         if (mEcnsEnabled & AEC) {
             mEcnsBufCond.signal();
         }
@@ -426,7 +426,7 @@
         if (mEcnsScratchBuf && mEcnsScratchBufSize) {
             dl_buf_bytes = mEcnsScratchBufSize > bytes ? bytes:mEcnsScratchBufSize;
             memcpy(dl_buf, mEcnsScratchBuf, dl_buf_bytes);
-            //LOGD("Took %d bytes from mEcnsScratchBuf", dl_buf_bytes);
+            //ALOGD("Took %d bytes from mEcnsScratchBuf", dl_buf_bytes);
             mEcnsScratchBufSize -= dl_buf_bytes;
             if (mEcnsScratchBufSize==0) {
                 // This should always be true.
@@ -446,22 +446,22 @@
                        bytes_to_copy);
                 dl_buf_bytes += bytes_to_copy;
             }
-            //LOGD("Took %d bytes from mEcnsOutBuf.  Need %d more.", bytes_to_copy,
+            //ALOGD("Took %d bytes from mEcnsOutBuf.  Need %d more.", bytes_to_copy,
             //      bytes-dl_buf_bytes);
             mEcnsOutBufReadOffset += bytes_to_copy;
             if (mEcnsOutBufSize - mEcnsOutBufReadOffset < bytes) {
                 // We've depleted the output buffer, it's smaller than one uplink "frame".
                 // First take any unused data into scratch, then free the write thread.
                 if (mEcnsScratchBuf) {
-                    LOGE("Memleak - coding error");
+                    ALOGE("Memleak - coding error");
                     free(mEcnsScratchBuf);
                 }
                 if (mEcnsOutBufSize - mEcnsOutBufReadOffset > 0) {
                     if ((mEcnsScratchBuf=malloc(mEcnsOutBufSize - mEcnsOutBufReadOffset)) == 0) {
-                        LOGE("%s: Alloc failed, scratch data lost.",__FUNCTION__);
+                        ALOGE("%s: Alloc failed, scratch data lost.",__FUNCTION__);
                     } else {
                         mEcnsScratchBufSize = mEcnsOutBufSize - mEcnsOutBufReadOffset;
-                        //LOGD("....store %d bytes into scratch buf %p",
+                        //ALOGD("....store %d bytes into scratch buf %p",
                         //     mEcnsScratchBufSize, mEcnsScratchBuf);
                         memcpy(mEcnsScratchBuf,
                                (void *)((unsigned int)mEcnsOutBuf+mEcnsOutBufReadOffset),
@@ -471,12 +471,12 @@
                 mEcnsOutBuf = 0;
                 mEcnsOutBufSize = 0;
                 mEcnsOutBufReadOffset = 0;
-                //LOGD("Signal write thread - need data.");
+                //ALOGD("Signal write thread - need data.");
                 mEcnsBufCond.signal();
             }
         }
 
-        LOGV_IF(dl_buf_bytes < bytes, "%s:EC/NS Starved for downlink data. have %d need %d.",
+        ALOGV_IF(dl_buf_bytes < bytes, "%s:EC/NS Starved for downlink data. have %d need %d.",
              __FUNCTION__,dl_buf_bytes, bytes);
 
         mEcnsBufLock.unlock();
@@ -538,8 +538,8 @@
         if (!mLogBuf[0]) {
             mLogNumPoints = 0;
             mLogOffset = 0;
-            LOGE("EC/NS AUDIO LOGGER CONFIGURATION:");
-            LOGE("log enable %04X",
+            ALOGE("EC/NS AUDIO LOGGER CONFIGURATION:");
+            ALOGE("log enable %04X",
                 audioProfile[ECNS_LOG_ENABLE_OFFSET]);
             mkdir(ECNSLOGPATH, 00770);
             for (uint16_t i=1; i>0; i<<=1) {
@@ -547,14 +547,14 @@
                    mLogNumPoints++;
                 }
             }
-            LOGE("Number of log points is %d.", mLogNumPoints);
+            ALOGE("Number of log points is %d.", mLogNumPoints);
             logp = mMotDatalog;
             mLogSize = 10*60*50*bytes;
             for (int i=0; i<mLogNumPoints; i++) {
                 // Allocate 10 minutes of logging per point
                 mLogBuf[i]=(char *)malloc(mLogSize);
                 if (!mLogBuf[i]) {
-                    LOGE("%s: Memory allocation failed.", __FUNCTION__);
+                    ALOGE("%s: Memory allocation failed.", __FUNCTION__);
                     for (int j=0; j<i; j++) {
                         free(mLogBuf[j]);
                         mLogBuf[j]=0;
@@ -572,7 +572,7 @@
                 memcpy(&mLogBuf[i][mLogOffset], &logp[4], logp[2]*sizeof(uint16_t));
                 logp += 4+logp[2];
             } else {
-                LOGE("EC/NS logging enabled, but memory not allocated");
+                ALOGE("EC/NS logging enabled, but memory not allocated");
             }
         }
         mLogOffset += bytes;
@@ -588,11 +588,11 @@
             sprintf(fname, ECNSLOGPATH"/log-0x%04X.pcm", mLogPoint[i]);
             fp = fopen((const char *)fname, "w");
             if (fp) {
-                LOGE("Writing %d bytes to %s", mLogOffset, fname);
+                ALOGE("Writing %d bytes to %s", mLogOffset, fname);
                 fwrite(mLogBuf[i], mLogOffset, 1, fp);
                 fclose(fp);
             } else {
-                LOGE("Problem writing to %s", fname);
+                ALOGE("Problem writing to %s", fname);
             }
         }
     }
@@ -617,22 +617,22 @@
     if (fd >= 0) {
         int amt = ::read(fd, buffer, SIZE-1);
         if (amt != SIZE-1) {
-	    LOGE("Incomplete dock property read, cannot validate dock");
+	    ALOGE("Incomplete dock property read, cannot validate dock");
 	    return -1;
         }
         spkr_dock_prop = strtoul(buffer, NULL, 16);
 	if (spkr_dock_prop <= 0) {
-	    LOGE("dock property conversion error");
+	    ALOGE("dock property conversion error");
 	    return -EINVAL;
         }
         close(fd);
-        LOGV("buffer = %s, spkr_dock_prop = 0x%lX", buffer, spkr_dock_prop);
+        ALOGV("buffer = %s, spkr_dock_prop = 0x%lX", buffer, spkr_dock_prop);
         spkr_dock_prop = spkr_dock_prop ^ basic_dock_prop;
-        LOGV("dock_prop returned = %lX", spkr_dock_prop);
+        ALOGV("dock_prop returned = %lX", spkr_dock_prop);
         return spkr_dock_prop;
     } else {
         if (already_warned == -1) {
-            LOGE("read_dock_prop failed to open %s\n", path);
+            ALOGE("read_dock_prop failed to open %s\n", path);
             already_warned = 1;
         }
         return -errno;
@@ -654,7 +654,7 @@
 int AudioPostProcessor::EcnsThread::readData(int fd, void * buffer, int bytes, int rate,
                                              AudioPostProcessor * pp)
 {
-    LOGV("%s: read %d bytes at %d rate", __FUNCTION__, bytes, rate);
+    ALOGV("%s: read %d bytes at %d rate", __FUNCTION__, bytes, rate);
     Mutex::Autolock lock(mEcnsReadLock);
     mProcessor = pp;
     mFd = fd;
@@ -662,12 +662,12 @@
     mReadSize = bytes;
     mRate = rate;
     if (!mIsRunning) {
-        LOGD("Create (run) the ECNS thread");
+        ALOGD("Create (run) the ECNS thread");
         run("AudioPostProcessor::EcnsThread", ANDROID_PRIORITY_HIGHEST);
         mIsRunning = true;
     }
     if (mEcnsReadCond.waitRelative(mEcnsReadLock, seconds(1)) != NO_ERROR) {
-        LOGE("%s: ECNS thread is stalled.", __FUNCTION__);
+        ALOGE("%s: ECNS thread is stalled.", __FUNCTION__);
         mClientBuf = 0;
         return -1;
     }
@@ -688,7 +688,7 @@
     bool half_done = false;
     int ecnsStatus = 0;
 
-    LOGD("%s: Enter thread loop size %d rate %d", __FUNCTION__,
+    ALOGD("%s: Enter thread loop size %d rate %d", __FUNCTION__,
                                           mReadSize, mRate);
 
     mReadBuf = (int16_t *) malloc(mReadSize);
@@ -706,7 +706,7 @@
         if(exitPending())
             goto error;
         if (ret1 <= 0 || ret2 <= 0) {
-            LOGE("%s: Problem reading.", __FUNCTION__);
+            ALOGE("%s: Problem reading.", __FUNCTION__);
             goto error;
         }
         GETTIMEOFDAY(&mtv3, NULL);
@@ -723,7 +723,7 @@
             mClientBuf = 0;
         } else {
             half_done = false;
-            LOGV("%s: Read overflow (ECNS sanity preserved)", __FUNCTION__);
+            ALOGV("%s: Read overflow (ECNS sanity preserved)", __FUNCTION__);
         }
         mEcnsReadLock.unlock();
         GETTIMEOFDAY(&mtv8, NULL);
@@ -748,31 +748,31 @@
                 large_jitter++;
             else
                 medium_jitter++;
-            LOGD("jitter: usecs = %d should be 20000", usecs);
-            LOGD("Point 1 (      start): %03d.%06d:", (int)mtv1.tv_sec, (int)mtv1.tv_usec);
-            LOGD("Point 2 (after read1): %03d.%06d:", (int)mtv2.tv_sec, (int)mtv2.tv_usec);
-            LOGD("Point 3 (after read2): %03d.%06d:", (int)mtv3.tv_sec, (int)mtv3.tv_usec);
-            LOGD("Point 4 (before ECNS): %03d.%06d:", (int)mtv4.tv_sec, (int)mtv4.tv_usec);
-            LOGD("Point 5 (after  ECNS): %03d.%06d:", (int)mtv5.tv_sec, (int)mtv5.tv_usec);
-            LOGD("Point 6 (after write): %03d.%06d:", (int)mtv6.tv_sec, (int)mtv6.tv_usec);
-            LOGD("Point 7 (before sgnl): %03d.%06d:", (int)mtv7.tv_sec, (int)mtv7.tv_usec);
-            LOGD("Point 8 (after unlck): %03d.%06d:", (int)mtv8.tv_sec, (int)mtv8.tv_usec);
+            ALOGD("jitter: usecs = %d should be 20000", usecs);
+            ALOGD("Point 1 (      start): %03d.%06d:", (int)mtv1.tv_sec, (int)mtv1.tv_usec);
+            ALOGD("Point 2 (after read1): %03d.%06d:", (int)mtv2.tv_sec, (int)mtv2.tv_usec);
+            ALOGD("Point 3 (after read2): %03d.%06d:", (int)mtv3.tv_sec, (int)mtv3.tv_usec);
+            ALOGD("Point 4 (before ECNS): %03d.%06d:", (int)mtv4.tv_sec, (int)mtv4.tv_usec);
+            ALOGD("Point 5 (after  ECNS): %03d.%06d:", (int)mtv5.tv_sec, (int)mtv5.tv_usec);
+            ALOGD("Point 6 (after write): %03d.%06d:", (int)mtv6.tv_sec, (int)mtv6.tv_usec);
+            ALOGD("Point 7 (before sgnl): %03d.%06d:", (int)mtv7.tv_sec, (int)mtv7.tv_usec);
+            ALOGD("Point 8 (after unlck): %03d.%06d:", (int)mtv8.tv_sec, (int)mtv8.tv_usec);
         } else if ((usecs > 22000) || (usecs < 18000)) {
             small_jitter++;
-            LOGD("jitter: usecs = %d should be 20000", usecs);
+            ALOGD("jitter: usecs = %d should be 20000", usecs);
         }
         if ((count % 500)== 0) {
-            LOGD("====================================== Statistics ===========================");
-            LOGD(" After %d seconds:", count/50);
-            LOGD(" Small jitters-  %d (%02.5f%%)", small_jitter, ((float)small_jitter)*100/count);
-            LOGD(" Medium jitters- %d (%02.5f%%)", medium_jitter, ((float)medium_jitter)*100/count);
-            LOGD(" Large jitters-  %d (%02.5f%%)", large_jitter, ((float)large_jitter)*100/count);
-            LOGD("=============================================================================");
+            ALOGD("====================================== Statistics ===========================");
+            ALOGD(" After %d seconds:", count/50);
+            ALOGD(" Small jitters-  %d (%02.5f%%)", small_jitter, ((float)small_jitter)*100/count);
+            ALOGD(" Medium jitters- %d (%02.5f%%)", medium_jitter, ((float)medium_jitter)*100/count);
+            ALOGD(" Large jitters-  %d (%02.5f%%)", large_jitter, ((float)large_jitter)*100/count);
+            ALOGD("=============================================================================");
         }
 #endif
     }
 error:
-    LOGD("%s: Exit thread loop, enabled = %d", __FUNCTION__,mProcessor->isEcnsEnabled());
+    ALOGD("%s: Exit thread loop, enabled = %d", __FUNCTION__,mProcessor->isEcnsEnabled());
     if (mReadBuf) {
         free (mReadBuf);
         mReadBuf = 0;
diff --git a/overlay/frameworks/base/core/res/res/values/config.xml b/overlay/frameworks/base/core/res/res/values/config.xml
index 08d11ee..8851483 100644
--- a/overlay/frameworks/base/core/res/res/values/config.xml
+++ b/overlay/frameworks/base/core/res/res/values/config.xml
@@ -208,25 +208,11 @@
     <!-- Enable puk unlockscreen -->
     <bool name="config_enable_puk_unlock_screen">true</bool>
 
-    <!-- Number of database connections opened and managed by framework layer
-         to handle queries on each database. -->
-    <integer name="db_connection_pool_size">3</integer>
-
     <!-- Max space (in MB) allocated to DownloadManager to store the downloaded files
          if they are to be stored in DownloadManager's data dir,
          which typically is /data/data/com.android.providers.downloads/files. -->
     <integer name="config_downloadDataDirSize">200</integer>
 
-    <!-- When the free space available in DownloadManager's data dir falls
-         below the percentage value specified by this param, DownloadManager
-         starts removing files to try to make percentage of available
-         free space above this threshold value. --> 
-    <integer name="config_downloadDataDirLowSpaceThreshold">10</integer>
-
-    <!-- When a database query is executed, the results retuned are paginated
-         in pages of size (in KB) indicated by this value -->
-    <integer name="config_cursorWindowSize">2048</integer>
-
     <!-- Is the notification LED intrusive? Used to decide if there should be a disable option -->
     <bool name="config_intrusiveNotificationLed">true</bool>
 
diff --git a/proprietary-blobs.txt b/proprietary-blobs.txt
new file mode 100644
index 0000000..b9397c7
--- /dev/null
+++ b/proprietary-blobs.txt
@@ -0,0 +1,99 @@
+# 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/app/MotoLocationProxy.apk
+/system/app/StingrayProgramMenu.apk
+/system/app/StingrayProgramMenuSystem.apk
+/system/app/UsbHelper.apk
+/system/bin/akmd2
+/system/bin/batch
+/system/bin/brcm_guci_drv
+/system/bin/bugtogo.sh
+/system/bin/ftmipcd
+/system/bin/location
+/system/bin/tcmd
+/system/etc/cpcap_gain.bin
+/system/etc/firmware/bcm4329.hcd
+/system/etc/firmware/nvddk_audiofx_core.axf
+/system/etc/firmware/nvddk_audiofx_transport.axf
+/system/etc/firmware/nvmm_aacdec.axf
+/system/etc/firmware/nvmm_adtsdec.axf
+/system/etc/firmware/nvmm_audiomixer.axf
+/system/etc/firmware/nvmm_h264dec.axf
+/system/etc/firmware/nvmm_jpegdec.axf
+/system/etc/firmware/nvmm_jpegenc.axf
+/system/etc/firmware/nvmm_manager.axf
+/system/etc/firmware/nvmm_mp2dec.axf
+/system/etc/firmware/nvmm_mp3dec.axf
+/system/etc/firmware/nvmm_mpeg4dec.axf
+/system/etc/firmware/nvmm_reference.axf
+/system/etc/firmware/nvmm_service.axf
+/system/etc/firmware/nvmm_sorensondec.axf
+/system/etc/firmware/nvmm_sw_mp3dec.axf
+/system/etc/firmware/nvmm_wavdec.axf
+/system/etc/firmware/nvrm_avp.bin
+/system/etc/gps.conf
+/system/etc/gpsconfig.xml
+/system/etc/location.cfg
+/system/etc/motorola/12m/key_code_map.txt
+/system/etc/motorola/12m/tcmd_leds.cfg
+/system/etc/security/suplcerts.bks
+/system/etc/voip_aud_params.bin
+/system/etc/wifi/bcm4329.cal
+/system/lib/egl/libEGL_perfhud.so
+/system/lib/egl/libEGL_tegra.so
+/system/lib/egl/libGLESv1_CM_perfhud.so
+/system/lib/egl/libGLESv1_CM_tegra.so
+/system/lib/egl/libGLESv2_perfhud.so
+/system/lib/egl/libGLESv2_tegra.so
+/system/lib/hw/camera.stingray.so
+/system/lib/hw/gps.stingray.so
+/system/lib/hw/gralloc.tegra.so
+/system/lib/hw/hwcomposer.tegra.so
+/system/lib/libcgdrv.so
+/system/lib/libmoto_ecnswrapper.so
+/system/lib/libnvddk_2d.so
+/system/lib/libnvddk_2d_v2.so
+/system/lib/libnvddk_audiofx.so
+/system/lib/libnvdispatch_helper.so
+/system/lib/libnvdispmgr_d.so
+/system/lib/libnvmm.so
+/system/lib/libnvmm_camera.so
+/system/lib/libnvmm_contentpipe.so
+/system/lib/libnvmm_image.so
+/system/lib/libnvmm_manager.so
+/system/lib/libnvmm_service.so
+/system/lib/libnvmm_tracklist.so
+/system/lib/libnvmm_utils.so
+/system/lib/libnvmm_video.so
+/system/lib/libnvodm_imager.so
+/system/lib/libnvodm_query.so
+/system/lib/libnvomx.so
+/system/lib/libnvomxilclient.so
+/system/lib/libnvos.so
+/system/lib/libnvrm.so
+/system/lib/libnvrm_channel.so
+/system/lib/libnvrm_graphics.so
+/system/lib/libnvsm.so
+/system/lib/libnvwsi.so
+/system/lib/libpkip.so
+/system/lib/libstagefrighthw.so
+/system/lib/libtpa.so
+/system/lib/libtpa_core.so
+/system/media/bootanimation-encrypted.zip
+/system/media/bootanimation.zip
+/system/vendor/etc/audio_effects.conf
+/system/vendor/firmware/fw_bcm4329_mfg.bin
diff --git a/setup-makefiles.sh b/setup-makefiles.sh
deleted file mode 100755
index fe9a194..0000000
--- a/setup-makefiles.sh
+++ /dev/null
@@ -1,59 +0,0 @@
-#!/bin/sh
-
-# 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.
-
-DEVICE=wingray
-DEVICEDIR=stingray
-MANUFACTURER=moto
-
-mkdir -p ../../../vendor/$MANUFACTURER/$DEVICEDIR
-
-(cat << EOF) | sed s/__DEVICE__/$DEVICE/g | sed s/__MANUFACTURER__/$MANUFACTURER/g > ../../../vendor/$MANUFACTURER/$DEVICEDIR/$DEVICE-vendor.mk
-# 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.
-
-# This file is generated by device/__MANUFACTURER__/__DEVICE__/setup-makefiles.sh
-
-\$(call inherit-product, vendor/__MANUFACTURER__/__DEVICE__/device-vendor-blobs.mk)
-EOF
-
-(cat << EOF) | sed s/__DEVICE__/$DEVICE/g | sed s/__MANUFACTURER__/$MANUFACTURER/g > ../../../vendor/$MANUFACTURER/$DEVICEDIR/BoardConfigVendor.mk
-# 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.
-
-# This file is generated by device/__MANUFACTURER__/__DEVICE__/setup-makefiles.sh
-EOF
diff --git a/unzip-files.sh b/unzip-files.sh
deleted file mode 100755
index 7caca2a..0000000
--- a/unzip-files.sh
+++ /dev/null
@@ -1,290 +0,0 @@
-#!/bin/sh
-
-# 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.
-
-# This file is generated by device/common/generate-blob-scripts.sh - DO NOT EDIT
-
-DEVICE=wingray
-MANUFACTURER=moto
-
-mkdir -p ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/app/MotoLocationProxy.apk -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/app/StingrayProgramMenu.apk -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/app/StingrayProgramMenuSystem.apk -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/app/UsbHelper.apk -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/bin/akmd2 -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/bin/batch -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/bin/brcm_guci_drv -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/bin/bugtogo.sh -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/bin/ftmipcd -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/bin/location -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/bin/tcmd -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/etc/cpcap_gain.bin -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/etc/firmware/bcm4329.hcd -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/etc/firmware/nvddk_audiofx_core.axf -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/etc/firmware/nvddk_audiofx_transport.axf -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/etc/firmware/nvmm_aacdec.axf -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/etc/firmware/nvmm_adtsdec.axf -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/etc/firmware/nvmm_audiomixer.axf -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/etc/firmware/nvmm_h264dec.axf -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/etc/firmware/nvmm_jpegdec.axf -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/etc/firmware/nvmm_jpegenc.axf -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/etc/firmware/nvmm_manager.axf -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/etc/firmware/nvmm_mp2dec.axf -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/etc/firmware/nvmm_mp3dec.axf -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/etc/firmware/nvmm_mpeg4dec.axf -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/etc/firmware/nvmm_reference.axf -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/etc/firmware/nvmm_service.axf -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/etc/firmware/nvmm_sorensondec.axf -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/etc/firmware/nvmm_sw_mp3dec.axf -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/etc/firmware/nvmm_wavdec.axf -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/etc/firmware/nvrm_avp.bin -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/etc/gps.conf -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/etc/gpsconfig.xml -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/etc/location.cfg -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/etc/motorola/12m/key_code_map.txt -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/etc/motorola/12m/tcmd_leds.cfg -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/etc/security/suplcerts.bks -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/etc/voip_aud_params.bin -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/etc/wifi/bcm4329.cal -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/lib/egl/libEGL_perfhud.so -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/lib/egl/libEGL_tegra.so -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/lib/egl/libGLESv1_CM_perfhud.so -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/lib/egl/libGLESv1_CM_tegra.so -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/lib/egl/libGLESv2_perfhud.so -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/lib/egl/libGLESv2_tegra.so -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/lib/hw/camera.stingray.so -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/lib/hw/gps.stingray.so -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/lib/hw/gralloc.tegra.so -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/lib/hw/hwcomposer.tegra.so -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/lib/libcgdrv.so -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/lib/libmoto_ecnswrapper.so -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/lib/libnvddk_2d.so -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/lib/libnvddk_2d_v2.so -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/lib/libnvddk_audiofx.so -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/lib/libnvdispatch_helper.so -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/lib/libnvdispmgr_d.so -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/lib/libnvmm.so -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/lib/libnvmm_camera.so -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/lib/libnvmm_contentpipe.so -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/lib/libnvmm_image.so -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/lib/libnvmm_manager.so -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/lib/libnvmm_service.so -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/lib/libnvmm_tracklist.so -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/lib/libnvmm_utils.so -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/lib/libnvmm_video.so -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/lib/libnvodm_imager.so -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/lib/libnvodm_query.so -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/lib/libnvomx.so -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/lib/libnvomxilclient.so -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/lib/libnvos.so -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/lib/libnvrm.so -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/lib/libnvrm_channel.so -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/lib/libnvrm_graphics.so -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/lib/libnvsm.so -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/lib/libnvwsi.so -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/lib/libpkip.so -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/lib/libstagefrighthw.so -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/lib/libtpa.so -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/lib/libtpa_core.so -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/media/bootanimation-encrypted.zip -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/media/bootanimation.zip -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/vendor/etc/audio_effects.conf -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-unzip -j -o ../../../${DEVICE}_update.zip system/vendor/firmware/fw_bcm4329_mfg.bin -d ../../../vendor/$MANUFACTURER/$DEVICE/proprietary
-
-(cat << EOF) | sed s/__DEVICE__/$DEVICE/g | sed s/__MANUFACTURER__/$MANUFACTURER/g > ../../../vendor/$MANUFACTURER/$DEVICE/device-vendor-blobs.mk
-# 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.
-
-# This file is generated by device/__MANUFACTURER__/__DEVICE__/unzip-files.sh - DO NOT EDIT
-
-
-# All the blobs necessary for wingray
-PRODUCT_COPY_FILES += \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/akmd2:system/bin/akmd2 \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/batch:system/bin/batch \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/brcm_guci_drv:system/bin/brcm_guci_drv \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/bugtogo.sh:system/bin/bugtogo.sh \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/ftmipcd:system/bin/ftmipcd \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/location:system/bin/location \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/tcmd:system/bin/tcmd \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/cpcap_gain.bin:system/etc/cpcap_gain.bin \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/bcm4329.hcd:system/etc/firmware/bcm4329.hcd \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/nvddk_audiofx_core.axf:system/etc/firmware/nvddk_audiofx_core.axf \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/nvddk_audiofx_transport.axf:system/etc/firmware/nvddk_audiofx_transport.axf \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/nvmm_aacdec.axf:system/etc/firmware/nvmm_aacdec.axf \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/nvmm_adtsdec.axf:system/etc/firmware/nvmm_adtsdec.axf \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/nvmm_audiomixer.axf:system/etc/firmware/nvmm_audiomixer.axf \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/nvmm_h264dec.axf:system/etc/firmware/nvmm_h264dec.axf \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/nvmm_jpegdec.axf:system/etc/firmware/nvmm_jpegdec.axf \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/nvmm_jpegenc.axf:system/etc/firmware/nvmm_jpegenc.axf \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/nvmm_manager.axf:system/etc/firmware/nvmm_manager.axf \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/nvmm_mp2dec.axf:system/etc/firmware/nvmm_mp2dec.axf \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/nvmm_mp3dec.axf:system/etc/firmware/nvmm_mp3dec.axf \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/nvmm_mpeg4dec.axf:system/etc/firmware/nvmm_mpeg4dec.axf \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/nvmm_reference.axf:system/etc/firmware/nvmm_reference.axf \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/nvmm_service.axf:system/etc/firmware/nvmm_service.axf \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/nvmm_sorensondec.axf:system/etc/firmware/nvmm_sorensondec.axf \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/nvmm_sw_mp3dec.axf:system/etc/firmware/nvmm_sw_mp3dec.axf \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/nvmm_wavdec.axf:system/etc/firmware/nvmm_wavdec.axf \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/nvrm_avp.bin:system/etc/firmware/nvrm_avp.bin \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/gps.conf:system/etc/gps.conf \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/gpsconfig.xml:system/etc/gpsconfig.xml \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/location.cfg:system/etc/location.cfg \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/key_code_map.txt:system/etc/motorola/12m/key_code_map.txt \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/tcmd_leds.cfg:system/etc/motorola/12m/tcmd_leds.cfg \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/suplcerts.bks:system/etc/security/suplcerts.bks \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/voip_aud_params.bin:system/etc/voip_aud_params.bin \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/bcm4329.cal:system/etc/wifi/bcm4329.cal \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libEGL_perfhud.so:system/lib/egl/libEGL_perfhud.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libEGL_tegra.so:system/lib/egl/libEGL_tegra.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libGLESv1_CM_perfhud.so:system/lib/egl/libGLESv1_CM_perfhud.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libGLESv1_CM_tegra.so:system/lib/egl/libGLESv1_CM_tegra.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libGLESv2_perfhud.so:system/lib/egl/libGLESv2_perfhud.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libGLESv2_tegra.so:system/lib/egl/libGLESv2_tegra.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/camera.stingray.so:system/lib/hw/camera.stingray.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/gps.stingray.so:system/lib/hw/gps.stingray.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/gralloc.tegra.so:system/lib/hw/gralloc.tegra.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/hwcomposer.tegra.so:system/lib/hw/hwcomposer.tegra.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libcgdrv.so:system/lib/libcgdrv.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libmoto_ecnswrapper.so:system/lib/libmoto_ecnswrapper.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libnvddk_2d.so:system/lib/libnvddk_2d.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libnvddk_2d_v2.so:system/lib/libnvddk_2d_v2.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libnvddk_audiofx.so:system/lib/libnvddk_audiofx.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libnvdispatch_helper.so:system/lib/libnvdispatch_helper.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libnvdispmgr_d.so:system/lib/libnvdispmgr_d.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libnvmm.so:system/lib/libnvmm.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libnvmm_camera.so:system/lib/libnvmm_camera.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libnvmm_contentpipe.so:system/lib/libnvmm_contentpipe.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libnvmm_image.so:system/lib/libnvmm_image.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libnvmm_manager.so:system/lib/libnvmm_manager.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libnvmm_service.so:system/lib/libnvmm_service.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libnvmm_tracklist.so:system/lib/libnvmm_tracklist.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libnvmm_utils.so:system/lib/libnvmm_utils.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libnvmm_video.so:system/lib/libnvmm_video.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libnvodm_imager.so:system/lib/libnvodm_imager.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libnvodm_query.so:system/lib/libnvodm_query.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libnvomx.so:system/lib/libnvomx.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libnvomxilclient.so:system/lib/libnvomxilclient.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libnvos.so:system/lib/libnvos.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libnvrm.so:system/lib/libnvrm.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libnvrm_channel.so:system/lib/libnvrm_channel.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libnvrm_graphics.so:system/lib/libnvrm_graphics.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libnvsm.so:system/lib/libnvsm.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libnvwsi.so:system/lib/libnvwsi.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libpkip.so:system/lib/libpkip.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libstagefrighthw.so:system/lib/libstagefrighthw.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libtpa.so:system/lib/libtpa.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/libtpa_core.so:system/lib/libtpa_core.so \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/bootanimation-encrypted.zip:system/media/bootanimation-encrypted.zip \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/bootanimation.zip:system/media/bootanimation.zip \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/audio_effects.conf:system/vendor/etc/audio_effects.conf \\
-    vendor/__MANUFACTURER__/__DEVICE__/proprietary/fw_bcm4329_mfg.bin:system/vendor/firmware/fw_bcm4329_mfg.bin
-
-# All the apks necessary for wingray
-PRODUCT_PACKAGES += \\
-    MotoLocationProxy \\
-    StingrayProgramMenu \\
-    StingrayProgramMenuSystem \\
-    UsbHelper
-
-EOF
-
-(cat << EOF) | sed s/__DEVICE__/$DEVICE/g | sed s/__MANUFACTURER__/$MANUFACTURER/g > ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/Android.mk
-# 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/__MANUFACTURER__/__DEVICE__/unzip-files.sh - DO NOT EDIT
-
-ifeq (\$(TARGET_DEVICE),wingray)
-LOCAL_PATH:=\$(call my-dir)
-
-# Module makefile rules for apks on wingray
-
-# MotoLocationProxy
-
-include \$(CLEAR_VARS)
-
-LOCAL_MODULE := MotoLocationProxy
-LOCAL_SRC_FILES := \$(LOCAL_MODULE).apk
-LOCAL_MODULE_CLASS := APPS
-LOCAL_MODULE_TAGS := optional
-LOCAL_CERTIFICATE := PRESIGNED
-LOCAL_MODULE_SUFFIX := \$(COMMON_ANDROID_PACKAGE_SUFFIX)
-include \$(BUILD_PREBUILT)
-
-# StingrayProgramMenu
-
-include \$(CLEAR_VARS)
-
-LOCAL_MODULE := StingrayProgramMenu
-LOCAL_SRC_FILES := \$(LOCAL_MODULE).apk
-LOCAL_MODULE_CLASS := APPS
-LOCAL_MODULE_TAGS := optional
-LOCAL_CERTIFICATE := PRESIGNED
-LOCAL_MODULE_SUFFIX := \$(COMMON_ANDROID_PACKAGE_SUFFIX)
-include \$(BUILD_PREBUILT)
-
-# StingrayProgramMenuSystem
-
-include \$(CLEAR_VARS)
-
-LOCAL_MODULE := StingrayProgramMenuSystem
-LOCAL_SRC_FILES := \$(LOCAL_MODULE).apk
-LOCAL_MODULE_CLASS := APPS
-LOCAL_MODULE_TAGS := optional
-LOCAL_CERTIFICATE := PRESIGNED
-LOCAL_MODULE_SUFFIX := \$(COMMON_ANDROID_PACKAGE_SUFFIX)
-include \$(BUILD_PREBUILT)
-
-# UsbHelper
-
-include \$(CLEAR_VARS)
-
-LOCAL_MODULE := UsbHelper
-LOCAL_SRC_FILES := \$(LOCAL_MODULE).apk
-LOCAL_MODULE_CLASS := APPS
-LOCAL_MODULE_TAGS := optional
-LOCAL_CERTIFICATE := PRESIGNED
-LOCAL_MODULE_SUFFIX := \$(COMMON_ANDROID_PACKAGE_SUFFIX)
-include \$(BUILD_PREBUILT)
-
-endif
-
-EOF
-
-./setup-makefiles.sh