first commit
diff --git a/BoardConfig.mk b/BoardConfig.mk
new file mode 100644
index 0000000..3920acb
--- /dev/null
+++ b/BoardConfig.mk
@@ -0,0 +1,85 @@
+# Copyright (C) 2009 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+#
+# This file sets variables that control the way modules are built
+# thorughout the system. It should not be used to conditionally
+# disable makefiles (the proper mechanism to control what gets
+# included in a build is to use PRODUCT_PACKAGES in a product
+# definition file).
+#
+
+# WARNING: This line must come *before* including the proprietary
+# variant, so that it gets overwritten by the parent (which goes
+# against the traditional rules of inheritance).
+USE_CAMERA_STUB := true
+
+# inherit from common msm8660
+-include device/samsung/msm8660-common/BoardConfigCommon.mk
+
+# inherit from the proprietary version
+-include vendor/samsung/hercules/BoardConfigVendor.mk
+
+TARGET_BOOTLOADER_BOARD_NAME := hercules
+
+TARGET_OTA_ASSERT_DEVICE := SGH-T989,hercules
+
+# Kernel
+TARGET_KERNEL_CONFIG        := cyanogenmod_hercules_defconfig
+TARGET_KERNEL_SOURCE        := kernel/samsung/msm8660-common
+BOARD_KERNEL_CMDLINE        := androidboot.hardware=qcom usb_id_pin_rework=true no_console_suspend=true zcache
+BOARD_KERNEL_BASE           := 0x40400000
+BOARD_KERNEL_PAGESIZE       := 2048
+BOARD_FORCE_RAMDISK_ADDRESS := 0x41800000
+
+# cat /proc/emmc
+#dev:        size     erasesize name
+#mmcblk0p22: 00fffc00 00000200 "recovery"
+#mmcblk0p8: 01000000 00000200 "boot"
+#mmcblk0p24: 5ffffc00 00000200 "system"
+#mmcblk0p26: 13fffe00 00000200 "cache"
+#mmcblk0p25: 9ffffe00 00000200 "userdata"
+
+TARGET_USERIMAGES_USE_EXT4 := true
+BOARD_BOOTIMAGE_PARTITION_SIZE := 16777216
+BOARD_RECOVERYIMAGE_PARTITION_SIZE := 16776192
+BOARD_SYSTEMIMAGE_PARTITION_SIZE := 838860800
+BOARD_USERDATAIMAGE_PARTITION_SIZE := 20044333056
+BOARD_FLASH_BLOCK_SIZE := 131072
+
+BOARD_SDCARD_DEVICE_PRIMARY := /dev/block/mmcblk1p1
+BOARD_SDCARD_DEVICE_SECONDARY := /dev/block/mmcblk0p28
+BOARD_SDEXT_DEVICE := /dev/block/mmcblk1p2
+BOARD_USES_MMCUTILS := true
+BOARD_HAS_NO_MISC_PARTITION := true
+BOARD_HAS_NO_SELECT_BUTTON := true
+
+# Suppress the WIPE command since it can brick our EMMC
+BOARD_SUPPRESS_EMMC_WIPE := true
+
+# Workaround for glitches while cropping bypass layers
+TARGET_NO_BYPASS_CROPPING := true
+
+# MTP
+BOARD_MTP_DEVICE := "/dev/mtp_usb"
+
+# Audio
+BOARD_HAS_SAMSUNG_VOLUME_BUG := true
+
+# Disable initlogo, Samsungs framebuffer is weird
+TARGET_NO_INITLOGO := true
+
+# Preload the boot animation to avoid jerkiness
+TARGET_BOOTANIMATION_PRELOAD := true
+
diff --git a/README b/README
new file mode 100644
index 0000000..0be2ae2
--- /dev/null
+++ b/README
@@ -0,0 +1,5 @@
+Copyright 2012 - The CyanogenMod Project
+
+Device configuration for T-Mobile/Telus Samsung Galaxy S II.
+
+WORK IN PROGRESS. WILL EAT YOUR CAT.
diff --git a/device-proprietary-files.txt b/device-proprietary-files.txt
new file mode 100644
index 0000000..a956571
--- /dev/null
+++ b/device-proprietary-files.txt
@@ -0,0 +1,30 @@
+#
+# This file lists all of the proprietary blobs that need to be
+# extracted from a stock device. The extract-files.sh script
+# parses this file and copies the blobs into the vendor and build
+# trees as needed.
+#
+# File format:
+#   - Comments lines start with a hash (#) character and will be
+#     ignore.
+#   - Blobs should be listed with their path relative to /system
+#     on the device.
+#   - Options for a particular blob are specified in a comment
+#     after the blob path.
+#
+# Blob options:
+#   - needed_for_build: the blob will also be copied into the obj
+#     directory for use in the build of other open source files.
+#   - optional: if the blob is not found, extraction will not abort.
+#     directory for use in the build of other open source files.
+#
+
+# Add device specific blobs here
+# NFC
+lib/hw/nfc.qcom.so
+lib/libpn544_fw.so
+
+# Wi-Fi
+etc/wifi/nvram_net.txt_murata
+etc/wifi/nvram_mfg.txt_murata
+
diff --git a/device.mk b/device.mk
new file mode 100644
index 0000000..1cb9157
--- /dev/null
+++ b/device.mk
@@ -0,0 +1,69 @@
+#
+# Copyright (C) 2011 The CyanogenMod 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.
+#
+
+$(call inherit-product, $(SRC_TARGET_DIR)/product/languages_full.mk)
+
+## The gps config appropriate for this device
+PRODUCT_COPY_FILES += device/common/gps/gps.conf_US_SUPL:system/etc/gps.conf
+
+## (2) Also get non-open-source specific aspects if available
+$(call inherit-product-if-exists, vendor/samsung/hercules/hercules-vendor.mk)
+
+## misc
+PRODUCT_PROPERTY_OVERRIDES += \
+    dalvik.vm.dexopt-flags=m=v,o=y
+
+## overlays
+DEVICE_PACKAGE_OVERLAYS += device/samsung/hercules/overlay
+
+# Device uses high-density artwork where available
+PRODUCT_AAPT_CONFIG := normal hdpi
+PRODUCT_AAPT_PREF_CONFIG := hdpi
+
+# Ramdisk
+PRODUCT_COPY_FILES += \
+    device/samsung/hercules/ramdisk/init.qcom.rc:root/init.qcom.rc \
+    device/samsung/hercules/ramdisk/init.qcom.sh:root/init.qcom.sh \
+    device/samsung/hercules/ramdisk/init.qcom.usb.rc:root/init.qcom.usb.rc \
+    device/samsung/hercules/ramdisk/init.qcom.usb.sh:root/init.qcom.usb.sh \
+    device/samsung/hercules/ramdisk/init.target.rc:root/init.target.rc \
+    device/samsung/hercules/ramdisk/ueventd.rc:root/ueventd.rc \
+    device/samsung/hercules/ramdisk/init.emmc.rc:root/init.emmc.rc \
+    device/samsung/hercules/fstab.qcom:root/fstab.qcom
+
+# BT firmware
+PRODUCT_COPY_FILES += \
+    device/samsung/hercules/firmware/bcm4330B1.hcd:system/etc/firmware/bcm4330B1.hcd
+
+# Vold
+PRODUCT_COPY_FILES += \
+    device/samsung/hercules/vold.fstab:system/etc/vold.fstab
+
+# QRNGD
+PRODUCT_PACKAGES += qrngd
+
+# common msm8660
+$(call inherit-product, device/samsung/msm8660-common/msm8660.mk)
+
+$(call inherit-product, frameworks/native/build/phone-xhdpi-1024-dalvik-heap.mk)
+
+$(call inherit-product-if-exists, vendor/samsung/hercules/hercules-vendor.mk)
+
+#WIFI_BAND := 802_11_ABG
+#$(call inherit-product-if-exists, hardware/broadcom/wlan/bcmdhd/firmware/bcm4330/device-bcm.mk)
+
+# NFC
+BOARD_HAVE_NFC := true
diff --git a/extract-files.sh b/extract-files.sh
new file mode 100755
index 0000000..47c3275
--- /dev/null
+++ b/extract-files.sh
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+# This script is maintained in the common tree
+../msm8660-common/extract-files.sh $*
+
diff --git a/firmware/bcm4330B1.hcd b/firmware/bcm4330B1.hcd
new file mode 100644
index 0000000..9e963ca
--- /dev/null
+++ b/firmware/bcm4330B1.hcd
Binary files differ
diff --git a/fstab.qcom b/fstab.qcom
new file mode 100644
index 0000000..2033100
--- /dev/null
+++ b/fstab.qcom
@@ -0,0 +1,9 @@
+# Android fstab file.
+#<src>                   <mnt_point>         <type>    <mnt_flags and options>                                      <fs_mgr_flags>
+# The filesystem that contains the filesystem checker binary (typically /system) cannot
+# specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK
+
+/dev/block/mmcblk0p24    /system             ext4      ro,barrier=1                                                 wait
+/dev/block/mmcblk0p26    /cache              ext4      nosuid,nodev,barrier=1                                       wait,check
+/dev/block/mmcblk0p21    /efs                ext4      nosuid,nodev,barrier=1                                       wait.check
+/dev/block/mmcblk0p25    /data               ext4      noatime,nosuid,nodev,barrier=1,noauto_da_alloc               wait,check
diff --git a/full_hercules.mk b/full_hercules.mk
new file mode 100644
index 0000000..3eafb5b
--- /dev/null
+++ b/full_hercules.mk
@@ -0,0 +1,40 @@
+# 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 the build configuration for a full Android
+# build for maguro hardware. This cleanly combines a set of
+# device-specific aspects (drivers) with a device-agnostic
+# product configuration (apps). Except for a few implementation
+# details, it only fundamentally contains two inherit-product
+# lines, full and maguro, hence its name.
+#
+ 
+# Torch
+PRODUCT_PACKAGES := \
+    Torch
+
+BOARD_HAVE_NFC := true
+
+# Inherit from those products. Most specific first.
+$(call inherit-product, $(SRC_TARGET_DIR)/product/full_base_telephony.mk)
+# Inherit from hercules device
+$(call inherit-product, device/samsung/hercules/device.mk)
+
+# Set those variables here to overwrite the inherited values.
+PRODUCT_NAME := full_hercules
+PRODUCT_DEVICE := hercules
+PRODUCT_BRAND := samsung
+PRODUCT_MANUFACTURER := samsung
+PRODUCT_MODEL := SAMSUNG-SGH-T989
diff --git a/overlay/frameworks/base/core/res/res/values/config.xml b/overlay/frameworks/base/core/res/res/values/config.xml
new file mode 100644
index 0000000..d80bd75
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values/config.xml
@@ -0,0 +1,192 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2011, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+     for different hardware and product builds. -->
+<resources>
+
+    <!-- Control whether being in the desk dock (and powered) always
+         keeps the screen on.  By default it stays on when plugged in to
+         AC.  0 will not keep it on; or together 1 to stay on when plugged
+         in to AC and 2 to stay on when plugged in to USB.  (So 3 for both.) -->
+    <integer name="config_deskDockKeepsScreenOn">0</integer>
+    <integer name="config_carDockKeepsScreenOn">1</integer>
+    <bool name="config_deskDockEnablesAccelerometer">true</bool>
+
+    <!-- If this is true, the screen will come on when you unplug usb/power/whatever. -->
+    <bool name="config_unplugTurnsOnScreen">true</bool>
+
+    <!-- Array of light sensor LUX values to define our levels for auto backlight brightness support.
+         The N entries of this array define N + 1 zones as follows:
+
+         Zone 0:        0 <= LUX < array[0]
+         Zone 1:        array[0] <= LUX < array[1]
+         ...
+         Zone N:        array[N - 1] <= LUX < array[N]
+         Zone N + 1:    array[N] <= LUX < infinity
+
+         Must be overridden in platform specific overlays -->
+    <integer-array name="config_autoBrightnessLevels">
+        <item>30</item>
+        <item>150</item>
+        <item>1500</item>
+        <item>15000</item>
+    </integer-array>
+
+    <!-- Array of output values for LCD backlight corresponding to the LUX values
+         in the config_autoBrightnessLevels array.  This array should have size one greater
+         than the size of the config_autoBrightnessLevels array.
+    -->
+    <integer-array name="config_autoBrightnessLcdBacklightValues">
+        <item>40</item>
+        <item>80</item>
+        <item>130</item>
+        <item>210</item>
+        <item>255</item>
+    </integer-array>
+
+    <!-- Array of output values for button backlight corresponding to the LUX values
+         in the config_autoBrightnessLevels array.  This array should have size one greater
+         than the size of the config_autoBrightnessLevels array.
+    -->
+    <integer-array name="config_autoBrightnessButtonBacklightValues">
+        <item>255</item>
+        <item>255</item>
+        <item>255</item>
+        <item>255</item>
+        <item>0</item>
+        <item>0</item>
+        <item>0</item>
+        <item>0</item>
+        <item>0</item>
+        <item>0</item>
+    </integer-array>
+
+    <!-- Array of output values for keyboard backlight corresponding to the LUX values
+         in the config_autoBrightnessLevels array.  This array should have size one greater
+         than the size of the config_autoBrightnessLevels array.
+         Crespo has no keyboard so all values are zero.
+    -->
+    <integer-array name="config_autoBrightnessKeyboardBacklightValues">
+        <item>255</item>
+        <item>255</item>
+        <item>255</item>
+        <item>255</item>
+        <item>0</item>
+        <item>0</item>
+        <item>0</item>
+        <item>0</item>
+        <item>0</item>
+        <item>0</item>
+    </integer-array>
+
+    <!-- Minimum screen brightness allowed by the power manager. -->
+    <integer name="config_screenBrightnessDim">10</integer>
+
+    <!-- XXXXX NOTE THE FOLLOWING RESOURCES USE THE WRONG NAMING CONVENTION.
+         Please don't copy them, copy anything else. -->
+
+    <!-- An Array of "[Connection name],[ConnectivityManager.TYPE_xxxx],
+         [associated radio-type],[priority],[restoral-timer(ms)],[dependencyMet]  -->
+    <!-- the 5th element "resore-time" indicates the number of milliseconds to delay
+         before automatically restore the default connection.  Set -1 if the connection
+         does not require auto-restore. -->
+    <!-- the 6th element indicates boot-time dependency-met value. -->
+    <string-array translatable="false" name="networkAttributes">
+        <item>"wifi,1,1,1,-1,true"</item>
+        <item>"mobile,0,0,0,-1,true"</item>
+        <item>"mobile_mms,2,0,2,60000,true"</item>
+        <item>"mobile_supl,3,0,2,60000,true"</item>
+        <item>"mobile_dun,4,0,3,60000,true"</item>
+        <item>"mobile_hipri,5,0,3,60000,true"</item>
+        <item>"mobile_bluetooth,7,7,1,-1,true"</item>
+        <item>"wifi_p2p,13,1,0,-1,true"</item>
+    </string-array>
+
+    <!-- An Array of "[ConnectivityManager connectionType],
+         [# simultaneous connection types]"  -->
+    <string-array translatable="false" name="radioAttributes">
+        <item>"1,1"</item>
+        <item>"0,1"</item>
+        <item>"7,1"</item>
+    </string-array>
+
+    <!-- List of regexpressions describing the interface (if any) that represent tetherable
+         USB interfaces.  If the device doesn't want to support tething over USB this should
+         be empty.  An example would be "usb.*" -->
+    <string-array translatable="false" name="config_tether_usb_regexs">
+        <item>"rndis0"</item>
+    </string-array>
+
+    <!-- List of regexpressions describing the interface (if any) that represent tetherable
+         Wifi interfaces.  If the device doesn't want to support tethering over Wifi this
+         should be empty.  An example would be "softap.*" -->
+    <string-array translatable="false" name="config_tether_wifi_regexs">
+        <item>"wlan0"</item>
+    </string-array>
+
+    <!-- List of regexpressions describing the interface (if any) that represent tetherable
+         bluetooth interfaces.  If the device doesn't want to support tethering over bluetooth this
+         should be empty. -->
+    <string-array translatable="false" name="config_tether_bluetooth_regexs">
+        <item>"bnep\\d"</item>
+    </string-array>
+
+    <!-- Array of ConnectivityManager.TYPE_xxxx values allowable for tethering -->
+    <!-- Common options are [1, 4] for TYPE_WIFI and TYPE_MOBILE_DUN or
+    <!== [0,1,5,7] for TYPE_MOBILE, TYPE_WIFI, TYPE_MOBILE_HIPRI and TYPE_BLUETOOTH -->
+    <integer-array translatable="false" name="config_tether_upstream_types">
+        <item>0</item>
+        <item>1</item>
+        <item>5</item>
+        <item>7</item>
+    </integer-array>
+
+    <!-- Boolean indicating whether the wifi chipset has dual frequency band support -->
+    <bool translatable="false" name="config_wifi_dual_band_support">true</bool>
+
+    <!-- Boolean indicating whether the wifi chipset has p2p support -->
+    <bool translatable="false" name="config_wifi_p2p_support">true</bool>
+
+    <!-- Boolean indicating whether the wifi chipset has background scan support -->
+    <bool translatable="false" name="config_wifi_background_scan_support">true</bool>
+
+    <!-- Enables or disables fading edges when marquee is enabled in TextView. -->
+    <bool name="config_ui_enableFadingMarquee">true</bool>
+
+    <!-- Is the notification LED intrusive? Used to decide if there should be a disable option -->
+    <bool name="config_intrusiveNotificationLed">true</bool>
+
+    <!-- Default color for notification LED is white. -->
+    <color name="config_defaultNotificationColor">#ffffffff</color>
+
+    <!-- Default LED on time for notification LED in milliseconds. -->
+    <integer name="config_defaultNotificationLedOn">1000</integer>
+
+    <!-- Default LED off time for notification LED in milliseconds. -->
+    <integer name="config_defaultNotificationLedOff">9000</integer>
+
+    <!-- The VoiceMail default value is displayed to my own number if it is true -->
+    <bool name="config_telephony_use_own_number_for_voicemail">true</bool>
+
+    <!-- Boolean indicating if restoring network selection should be skipped -->
+    <!-- The restoring is handled by modem if it is true-->
+    <bool name="skip_restoring_network_selection">true</bool>
+
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/xml/power_profile.xml b/overlay/frameworks/base/core/res/res/xml/power_profile.xml
new file mode 100644
index 0000000..aed65c2
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/xml/power_profile.xml
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="utf-8"?>
+<device name="Android">
+    <item name="none">0</item>
+    <item name="screen.on">75</item>
+    <item name="bluetooth.active">32</item>
+    <item name="bluetooth.on">0.3</item>
+    <item name="screen.full">201</item>
+    <item name="wifi.on">0.3</item>
+    <item name="wifi.active">83</item>
+    <item name="wifi.scan">52</item>
+    <item name="dsp.audio">34</item>
+    <item name="dsp.video">265</item>
+    <item name="radio.active">242</item>
+    <item name="radio.scanning">82</item>
+    <item name="gps.on">1</item>
+    <array name="radio.on">
+        <value>2.7</value>
+        <value>3</value>
+    </array>
+    <array name="cpu.speeds">
+        <value>192000</value>
+        <value>384000</value>
+        <value>432000</value>
+        <value>486000</value>
+        <value>540000</value>
+        <value>594000</value>
+        <value>648000</value>
+        <value>702000</value>
+        <value>756000</value>
+        <value>810000</value>
+        <value>864000</value>
+        <value>918000</value>
+        <value>972000</value>
+        <value>1026000</value>
+        <value>1080000</value>
+        <value>1134000</value>
+        <value>1188000</value>
+        <value>1242000</value>
+        <value>1296000</value>
+        <value>1350000</value>
+        <value>1404000</value>
+        <value>1458000</value>
+        <value>1512000</value>
+    </array>
+    <item name="cpu.idle">2</item>
+    <array name="cpu.active">
+        <value>55</value>
+        <value>75</value>
+        <value>95</value>
+        <value>120</value>
+        <value>148</value>
+        <value>165</value>
+        <value>190</value>
+        <value>215</value>
+        <value>230</value>
+        <value>249</value>
+        <value>274</value>
+        <value>299</value>
+        <value>324</value>
+        <value>349</value>
+        <value>374</value>
+        <value>399</value>
+        <value>424</value>
+        <value>449</value>
+        <value>474</value>
+        <value>499</value>
+        <value>524</value>
+        <value>549</value>
+        <value>577</value>
+    </array>
+    <item name="battery.capacity">1850</item>
+</device>
diff --git a/overlay/frameworks/base/core/res/res/xml/storage_list.xml b/overlay/frameworks/base/core/res/res/xml/storage_list.xml
new file mode 100644
index 0000000..c2b762a
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/xml/storage_list.xml
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+**
+** Copyright 2011, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License")
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- The <device> element should contain one or more <storage> elements.
+     Exactly one of these should have the attribute primary="true".
+     This storage will be the primary external storage and should have path="/mnt/sdcard".
+     Each storage should have both a path and description attribute set.
+     The following boolean attributes are optional:
+
+        primary:    this storage is the primary external storage
+        removable:  this is removable storage (for example, a real SD card)
+        emulated:   the storage is emulated via the FUSE sdcard daemon
+        mtp-reserve: number of megabytes of storage MTP should reserve for free storage
+                     (used for emulated storage that is shared with system's data partition)
+
+      A storage should not have both emulated and removable set to true
+-->
+
+<StorageList xmlns:android="http://schemas.android.com/apk/res/android">
+    <!-- removable is not set in nosdcard product -->
+    <storage android:mountPoint="/storage/sdcard0"
+             android:storageDescription="@string/storage_internal"
+             android:primary="true"
+             android:removable="false"
+             android:allowMassStorage="true" />
+
+    <storage android:mountPoint="/storage/sdcard1"
+             android:storageDescription="@string/storage_sd_card"
+             android:primary="false"
+             android:removable="true"
+             android:allowMassStorage="true" />
+
+    <storage android:mountPoint="/mnt/usbdisk"
+             android:storageDescription="@string/storage_usb"
+             android:primary="false"
+             android:removable="true" />
+
+</StorageList>
diff --git a/overlay/frameworks/base/packages/SystemUI/res/values/config.xml b/overlay/frameworks/base/packages/SystemUI/res/values/config.xml
new file mode 100644
index 0000000..8cad4da
--- /dev/null
+++ b/overlay/frameworks/base/packages/SystemUI/res/values/config.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2009, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+     for different hardware and product builds. -->
+<resources>
+
+    <!-- Control whether status bar should distinguish HSPA data icon form UMTS
+    data icon on devices -->
+    <bool name="config_hspa_data_distinguishable">true</bool>
+
+</resources>
diff --git a/overlay/packages/apps/Mms/res/xml/mms_config.xml b/overlay/packages/apps/Mms/res/xml/mms_config.xml
new file mode 100644
index 0000000..6bc044e
--- /dev/null
+++ b/overlay/packages/apps/Mms/res/xml/mms_config.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<!-- Version History
+        version 1 - initial version.
+        version 2 - added recipientLimit.
+        version 3 - added min/max recycler values.
+-->
+
+<mms_config version="3">
+
+    <!-- Maximum message size in bytes for a MMS message -->
+    <int name="maxMessageSize">614400</int>
+
+    <!-- Maximum height for an attached image -->
+    <int name="maxImageHeight">1200</int>
+
+    <!-- Maximum width for an attached image -->
+    <int name="maxImageWidth">1600</int>
+
+    <!-- User-Agent parameter used in MMS http request -->
+    <string name="userAgent">SAMSUNG-GT-I9100-Mms</string>
+
+    <!-- If true, The text message over 160 characters will be sent in multi part.
+         If false, The text message over 160 characters will be sent
+         via multi media message. -->
+    <bool name="enableMultipartSMS">true</bool>
+
+    <!-- If true, the text message will be split every 160 characters.
+         If false, the text will never be split before being sent. -->
+    <bool name="enableSplitSMS">false</bool>
+
+    <!-- UAProf URL -->
+    <string name="uaProfUrl">http://wap.samsungmobile.com/uaprof/GT-I9100.xml</string>
+
+</mms_config>
diff --git a/overlay/packages/apps/Phone/res/values/config.xml b/overlay/packages/apps/Phone/res/values/config.xml
new file mode 100644
index 0000000..bf970df
--- /dev/null
+++ b/overlay/packages/apps/Phone/res/values/config.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<!-- shooteru-specific phone app resources. -->
+<resources>
+
+    <!-- Determine whether calls to mute the microphone in PhoneUtils
+                  are routed through the android.media.AudioManager class (true) or through
+         the com.android.internal.telephony.Phone interface (false). -->
+    <bool name="send_mic_mute_to_AudioManager">true</bool>
+
+    <!-- This device implements a noise suppression device for in call audio-->
+    <bool name="has_in_call_noise_suppression">true</bool>
+
+    <!-- Audio parameter for setting noise suppression-->
+    <string name="in_call_noise_suppression_audioparameter">dualmic_enabled=true=false</string>
+
+    <!-- Flag indicating if the tty is enabled -->
+    <bool name="tty_enabled">true</bool>
+
+</resources>
diff --git a/overlay/packages/apps/Settings/res/values/bools.xml b/overlay/packages/apps/Settings/res/values/bools.xml
new file mode 100644
index 0000000..bc8d564
--- /dev/null
+++ b/overlay/packages/apps/Settings/res/values/bools.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<resources>
+    <!-- Whether or not the dock settings are to be displayed for this device when docked -->
+    <bool name="has_dock_settings">true</bool>
+</resources>
diff --git a/overlay/packages/apps/Torch/res/values/config.xml b/overlay/packages/apps/Torch/res/values/config.xml
new file mode 100644
index 0000000..7122c21
--- /dev/null
+++ b/overlay/packages/apps/Torch/res/values/config.xml
@@ -0,0 +1,22 @@
+<!--
+/*
+** Copyright 2011, The CyanogenMod Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License"); 
+** you may not use this file except in compliance with the License. 
+** You may obtain a copy of the License at 
+**
+**     http://www.apache.org/licenses/LICENSE-2.0 
+**
+** Unless required by applicable law or agreed to in writing, software 
+** distributed under the License is distributed on an "AS IS" BASIS, 
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
+** See the License for the specific language governing permissions and 
+** limitations under the License.
+*/
+-->
+
+<resources>
+    <!-- If there is no sysfs-based control mechanism, enable this -->
+    <bool name="useCameraInterface">true</bool>
+</resources>
diff --git a/prebuilt/boot.img b/prebuilt/boot.img
new file mode 100644
index 0000000..870025f
--- /dev/null
+++ b/prebuilt/boot.img
Binary files differ
diff --git a/prebuilt/system/lib/hw/lights.msm8660.so b/prebuilt/system/lib/hw/lights.msm8660.so
new file mode 100755
index 0000000..11485ab
--- /dev/null
+++ b/prebuilt/system/lib/hw/lights.msm8660.so
Binary files differ
diff --git a/prebuilt/system/lib/libc.so b/prebuilt/system/lib/libc.so
new file mode 100755
index 0000000..96671ee
--- /dev/null
+++ b/prebuilt/system/lib/libc.so
Binary files differ
diff --git a/prebuilt/system/lib/libdl.so b/prebuilt/system/lib/libdl.so
new file mode 100755
index 0000000..7254a78
--- /dev/null
+++ b/prebuilt/system/lib/libdl.so
Binary files differ
diff --git a/prebuilt/system/lib/libm.so b/prebuilt/system/lib/libm.so
new file mode 100755
index 0000000..f8c7444
--- /dev/null
+++ b/prebuilt/system/lib/libm.so
Binary files differ
diff --git a/prebuilt/system/lib/libstdc++.so b/prebuilt/system/lib/libstdc++.so
new file mode 100755
index 0000000..d58c150
--- /dev/null
+++ b/prebuilt/system/lib/libstdc++.so
Binary files differ
diff --git a/prebuilt/system/lib/modules/ansi_cprng.ko b/prebuilt/system/lib/modules/ansi_cprng.ko
new file mode 100644
index 0000000..4268017
--- /dev/null
+++ b/prebuilt/system/lib/modules/ansi_cprng.ko
Binary files differ
diff --git a/prebuilt/system/lib/modules/cls_flow.ko b/prebuilt/system/lib/modules/cls_flow.ko
new file mode 100644
index 0000000..f60975c
--- /dev/null
+++ b/prebuilt/system/lib/modules/cls_flow.ko
Binary files differ
diff --git a/prebuilt/system/lib/modules/dal_remotetest.ko b/prebuilt/system/lib/modules/dal_remotetest.ko
new file mode 100644
index 0000000..093fdf2
--- /dev/null
+++ b/prebuilt/system/lib/modules/dal_remotetest.ko
Binary files differ
diff --git a/prebuilt/system/lib/modules/dhd.ko b/prebuilt/system/lib/modules/dhd.ko
new file mode 100644
index 0000000..789d829
--- /dev/null
+++ b/prebuilt/system/lib/modules/dhd.ko
Binary files differ
diff --git a/prebuilt/system/lib/modules/dma_test.ko b/prebuilt/system/lib/modules/dma_test.ko
new file mode 100644
index 0000000..e834833
--- /dev/null
+++ b/prebuilt/system/lib/modules/dma_test.ko
Binary files differ
diff --git a/prebuilt/system/lib/modules/evbug.ko b/prebuilt/system/lib/modules/evbug.ko
new file mode 100644
index 0000000..8d8aa70
--- /dev/null
+++ b/prebuilt/system/lib/modules/evbug.ko
Binary files differ
diff --git a/prebuilt/system/lib/modules/gspca_main.ko b/prebuilt/system/lib/modules/gspca_main.ko
new file mode 100644
index 0000000..59cb49b
--- /dev/null
+++ b/prebuilt/system/lib/modules/gspca_main.ko
Binary files differ
diff --git a/prebuilt/system/lib/modules/ksapi.ko b/prebuilt/system/lib/modules/ksapi.ko
new file mode 100644
index 0000000..da819dd
--- /dev/null
+++ b/prebuilt/system/lib/modules/ksapi.ko
Binary files differ
diff --git a/prebuilt/system/lib/modules/lcd.ko b/prebuilt/system/lib/modules/lcd.ko
new file mode 100644
index 0000000..e9ea550
--- /dev/null
+++ b/prebuilt/system/lib/modules/lcd.ko
Binary files differ
diff --git a/prebuilt/system/lib/modules/mmc_test.ko b/prebuilt/system/lib/modules/mmc_test.ko
new file mode 100644
index 0000000..39250a4
--- /dev/null
+++ b/prebuilt/system/lib/modules/mmc_test.ko
Binary files differ
diff --git a/prebuilt/system/lib/modules/msm-buspm-dev.ko b/prebuilt/system/lib/modules/msm-buspm-dev.ko
new file mode 100644
index 0000000..dffde65
--- /dev/null
+++ b/prebuilt/system/lib/modules/msm-buspm-dev.ko
Binary files differ
diff --git a/prebuilt/system/lib/modules/msm_tsif.ko b/prebuilt/system/lib/modules/msm_tsif.ko
new file mode 100644
index 0000000..29f98f4
--- /dev/null
+++ b/prebuilt/system/lib/modules/msm_tsif.ko
Binary files differ
diff --git a/prebuilt/system/lib/modules/qce.ko b/prebuilt/system/lib/modules/qce.ko
new file mode 100644
index 0000000..7679827
--- /dev/null
+++ b/prebuilt/system/lib/modules/qce.ko
Binary files differ
diff --git a/prebuilt/system/lib/modules/qcedev.ko b/prebuilt/system/lib/modules/qcedev.ko
new file mode 100644
index 0000000..c3f9009
--- /dev/null
+++ b/prebuilt/system/lib/modules/qcedev.ko
Binary files differ
diff --git a/prebuilt/system/lib/modules/qcrypto.ko b/prebuilt/system/lib/modules/qcrypto.ko
new file mode 100644
index 0000000..bf39149
--- /dev/null
+++ b/prebuilt/system/lib/modules/qcrypto.ko
Binary files differ
diff --git a/prebuilt/system/lib/modules/sch_dsmark.ko b/prebuilt/system/lib/modules/sch_dsmark.ko
new file mode 100644
index 0000000..7444498
--- /dev/null
+++ b/prebuilt/system/lib/modules/sch_dsmark.ko
Binary files differ
diff --git a/prebuilt/system/lib/modules/scsi_wait_scan.ko b/prebuilt/system/lib/modules/scsi_wait_scan.ko
new file mode 100644
index 0000000..d018ea6
--- /dev/null
+++ b/prebuilt/system/lib/modules/scsi_wait_scan.ko
Binary files differ
diff --git a/prebuilt/system/lib/modules/spidev.ko b/prebuilt/system/lib/modules/spidev.ko
new file mode 100644
index 0000000..922b22f
--- /dev/null
+++ b/prebuilt/system/lib/modules/spidev.ko
Binary files differ
diff --git a/prebuilt/system/lib/modules/tsif_chrdev.ko b/prebuilt/system/lib/modules/tsif_chrdev.ko
new file mode 100644
index 0000000..79749b2
--- /dev/null
+++ b/prebuilt/system/lib/modules/tsif_chrdev.ko
Binary files differ
diff --git a/prebuilt/system/lib/modules/vibrator.ko b/prebuilt/system/lib/modules/vibrator.ko
new file mode 100644
index 0000000..bd017d8
--- /dev/null
+++ b/prebuilt/system/lib/modules/vibrator.ko
Binary files differ
diff --git a/ramdisk/init.emmc.rc b/ramdisk/init.emmc.rc
new file mode 100644
index 0000000..8270f57
--- /dev/null
+++ b/ramdisk/init.emmc.rc
@@ -0,0 +1,306 @@
+on early-init
+    mkdir /storage 0050 system sdcard_r
+    mkdir /storage/sdcard0 0000 system system
+    mkdir /storage/sdcard1 0000 system system
+
+# for backwards compatibility
+    symlink /storage/sdcard0 /mnt/sdcard
+    symlink /storage/sdcard0 /sdcard
+    symlink  /storage/sdcard1 /external_sd
+    symlink  /storage/sdcard1 /mnt/external_sd
+
+    mkdir /mnt/usbdisk 0755 system system
+
+    export EXTERNAL_STORAGE /storage/sdcard0
+    export SECONDARY_STORAGE /storage/sdcard1
+
+# Vibetonz
+    export VIBE_PIPE_PATH /dev/pipes
+    mkdir /dev/pipes 0771 shell shell
+
+on early-fs
+    mkdir /system
+    mkdir /data 0771 system system
+    mkdir /persist 0771 system system
+    mkdir /cache 0771 system cache
+    mkdir /config 0500 root root
+    mkdir /efs 0771 system system
+
+# insmod the modules
+    # ko files for bthid
+    insmod /lib/modules/bthid.ko
+
+on emmc-fs
+# mount mmc partitions
+    mount_all /fstab.qcom
+
+    chown radio system /efs
+    chmod 0771 /efs
+    mkdir /efs/imei 0775
+    chown radio system /efs/imei
+    chown radio system /efs/imei/keystr
+    chmod 0775 /efs/imei
+    chmod 0775 /efs/imei/keystr
+    mkdir /efs/bluetooth
+    mkdir /efs/wifi
+    chown radio system /efs/bluetooth
+    chown radio system /efs/wifi
+    chmod 0775 /efs/bluetooth
+    chmod 0775 /efs/wifi
+    write /sys/block/mmcblk0/queue/iosched/front_merges 0
+    write /sys/block/mmcblk0/queue/iosched/read_expire 100
+    write /sys/block/mmcblk0/queue/iosched/write_expire 1000
+
+    mkdir /data/radio 0770 radio radio
+    mkdir /data/misc/radio 0775 radio system
+    mkdir /data/misc/sensors 0775 root root
+    write /data/system/sensors/settings 0
+    chmod 0664 /data/system/sensors/settings
+
+    # for parameter
+    chown system radio /dev/block/mmcblk0p12
+    chmod 0660 /dev/block/mmcblk0p12
+    # DLEVEL
+    chown system radio /sys/devices/platform/sec_debug_level
+    chmod 0664 /sys/devices/platform/sec_debug_level
+    chown system radio /sys/devices/virtual/misc/level/control
+    chmod 0664 /sys/devices/virtual/misc/level/control
+
+    # permission for qc modem silrent reset
+    chown radio system /sys/module/subsystem_restart/parameters/restart_level
+
+    # permission for fast dormacy for RIL
+    chown radio system /sys/devices/virtual/sec/sdio_al/waketime
+
+    # Vibetonz
+    chmod 0660 /dev/tspdrv
+    chown root shell /dev/tspdrv
+
+    chown system system /sys/power/cpufreq_max_limit
+    chown system system /sys/power/cpufreq_min_limit
+    chown system system /sys/power/cpufreq_table
+    chmod 664 /sys/power/cpufreq_max_limit
+    chmod 664 /sys/power/cpufreq_min_limit
+    chmod 664 /sys/power/cpufreq_table
+
+# Permissions for LCD
+    chown radio system /sys/class/lcd/panel/lcd_type
+    chown radio system /sys/class/lcd/panel/lcd_power
+    chown system media_rw /sys/class/lcd/panel/power_reduce
+    chown radio system /sys/class/backlight/panel/auto_brightness
+# Permissions for mDNIe
+    chown system media_rw /sys/class/mdnie/mdnie/scenario
+    chown system media_rw /sys/class/mdnie/mdnie/mode
+    chown system media_rw /sys/class/mdnie/mdnie/outdoor
+    chown media system /sys/devices/virtual/jack/jack_reselector/reselect_jack
+
+    chown radio system /sys/devices/virtual/misc/melfas_touchkey/touch_sensitivity
+    chown radio system /sys/devices/virtual/misc/melfas_touchkey/enable_disable
+    chown radio system /sys/devices/virtual/misc/melfas_touchkey/touch_update
+    chown radio system /sys/devices/virtual/misc/melfas_touchkey/touch_version
+    chown radio system /sys/devices/virtual/misc/melfas_touchkey/brightness
+    chown radio system /sys/devices/virtual/sec/sec_touchkey/touchkey_firm_version_panel
+    chown radio system /sys/devices/virtual/sec/sec_touchkey/touchkey_firm_version_phone
+    chown radio system /sys/devices/virtual/sec/sec_touchkey/touchkey_firm_update_status
+    chown radio system /sys/devices/virtual/sec/sec_touchkey/touchkey_firm_update
+    chown radio system /sys/devices/virtual/sec/sec_touchkey/touchkey_brightness
+
+# Permissions for TSP
+   chown radio system /sys/devices/virtual/sec/tsp_noise_test/set_firm_version
+   chown radio system /sys/devices/virtual/sec/tsp_noise_test/set_threshold
+   chown radio system /sys/devices/virtual/sec/tsp_noise_test/set_all_refer
+   chown radio system /sys/devices/virtual/sec/tsp_noise_test/disp_all_refdata
+   chown radio system /sys/devices/virtual/sec/tsp_noise_test/set_all_delta
+   chown radio system /sys/devices/virtual/sec/tsp_noise_test/disp_all_deltadata
+   chown radio system /sys/devices/virtual/sec/tsp_noise_test/set_delta4
+   chown radio system /sys/devices/virtual/sec/tsp_noise_test/set_refer4
+   chown radio system /sys/devices/virtual/sec/tsp_noise_test/set_delta3
+   chown radio system /sys/devices/virtual/sec/tsp_noise_test/set_refer3
+   chown radio system /sys/devices/virtual/sec/tsp_noise_test/set_delta2
+   chown radio system /sys/devices/virtual/sec/tsp_noise_test/set_refer2
+   chown radio system /sys/devices/virtual/sec/tsp_noise_test/set_delta1
+   chown radio system /sys/devices/virtual/sec/tsp_noise_test/set_refer1
+   chown radio system /sys/devices/virtual/sec/tsp_noise_test/set_delta0
+   chown radio system /sys/devices/virtual/sec/tsp_noise_test/set_refer0
+   chown radio system /sys/devices/virtual/sec/sec_touchscreen/tsp_firm_version_panel
+   chown radio system /sys/devices/virtual/sec/sec_touchscreen/tsp_firm_version_phone
+   chown radio system /sys/devices/virtual/sec/sec_touchscreen/tsp_firm_update_status
+   chown radio system /sys/devices/virtual/sec/sec_touchscreen/tsp_firm_update
+   chown radio system /sys/devices/virtual/sec/sec_touchscreen/tsp_threshold
+   chown radio system /sys/devices/virtual/sec/sec_touchscreen/set_tsp_for_drawing
+
+# Permissions for Wacom
+   chown radio system /sys/class/sec/sec_epen/epen_firm_update
+   chown radio system /sys/class/sec/sec_epen/epen_rotation
+   chown radio system /sys/class/sec/sec_epen/epen_hand
+   chown radio system /sys/class/sec/sec_epen/epen_reset
+   chown radio system /sys/class/sec/sec_epen/epen_reset_result
+   chown radio system /sys/class/sec/sec_epen/epen_checksum
+   chown radio system /sys/class/sec/sec_epen/epen_checksum_result
+   chown radio system /sys/class/sec/sec_epen/epen_firm_version
+
+   chown radio system /sys/devices/platform/android_usb/UsbMenuSel
+   chown radio system /sys/devices/platform/android_usb/tethering
+   chown radio system /sys/devices/platform/android_usb/ums
+   chown radio system /sys/devices/virtual/sec/switch/uart_sel
+   chown radio system /sys/devices/virtual/sec/switch/usb_sel
+   chown radio system /sys/devices/virtual/sec/switch/.usb_lock/enable
+   chown radio system /sys/devices/virtual/sec/switch/device_type
+   chown radio system /sys/devices/virtual/sec/switch/disable_vbus
+   chown radio system /sys/devices/virtual/sec/switch/usb_state
+
+# Permissions for Battery driver
+    chown radio system /sys/class/power_supply/battery/batt_esus_test
+    chown radio system /sys/class/power_supply/battery/batt_test_value
+    chown radio system /sys/class/power_supply/battery/batt_lpm_state
+    chown radio system /sys/class/power_supply/battery/fg_psoc
+    chown radio system /sys/class/power_supply/battery/system_rev
+    chown radio system /sys/class/power_supply/battery/batt_current_adc
+    chown radio system /sys/class/power_supply/battery/batt_test_value
+    chown radio system /sys/class/power_supply/battery/batt_temp_adc_spec
+    chown radio system /sys/class/power_supply/battery/batt_temp_check
+    chown radio system /sys/class/power_supply/battery/batt_full_check
+    chown radio system /sys/class/power_supply/battery/batt_type
+    chown radio system /sys/class/power_supply/battery/batt_lp_charging
+    chown radio system /sys/class/power_supply/battery/charging_source
+    chown radio system /sys/class/power_supply/battery/batt_temp_adc
+    chown radio system /sys/class/power_supply/battery/batt_temp
+    chown radio system /sys/class/power_supply/battery/batt_vfocv
+    chown radio system /sys/class/power_supply/battery/batt_soc
+    chown radio system /sys/class/power_supply/battery/batt_vol
+    chown radio system /sys/class/power_supply/battery/batt_esus_test
+    chown radio system /sys/class/power_supply/battery/camera
+    chown sdcard_rw sdcard_rw /sys/class/power_supply/battery/mp3
+    chown sdcard_rw sdcard_rw /sys/class/power_supply/battery/video
+    chown radio system /sys/class/power_supply/battery/talk_wcdma
+    chown radio system /sys/class/power_supply/battery/talk_gsm
+    chown radio system /sys/class/power_supply/battery/data_call
+    chown radio system /sys/class/power_supply/battery/batt_wifi
+    chown radio system /sys/class/power_supply/battery/gps
+    chown radio system /sys/class/power_supply/battery/device_state
+
+# allow system to modify cpufreq control files
+    chown root system /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
+    chmod 0664 /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
+    chown root system /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
+    chmod 0664 /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
+    chown root system /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
+    chmod 0664 /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
+
+# Define TCP buffer sizes for various networks
+#   ReadMin, ReadInitial, ReadMax, WriteMin, WriteInitial, WriteMax,
+    setprop net.tcp.buffersize.default 4096,87380,110208,4096,16384,110208
+#    setprop net.tcp.buffersize.wifi    524288,1048576,2097152,262144,524288,1048576
+    setprop net.tcp.buffersize.wifi    4095,131072,196608,4096,16384,110208
+    setprop net.tcp.buffersize.lte     4094,87380,2560000,4096,16384,1220608
+    setprop net.tcp.buffersize.umts    4094,87380,196608,4096,16384,110208
+    setprop net.tcp.buffersize.hspa    4094,87380,704512,4096,16384,110208
+    setprop net.tcp.buffersize.hsupa   4094,87380,704512,4096,16384,110208
+    setprop net.tcp.buffersize.hsdpa   4094,87380,704512,4096,16384,110208
+    setprop net.tcp.buffersize.edge    4093,26280,35040,4096,16384,35040
+    setprop net.tcp.buffersize.gprs    4092,8760,11680,4096,8760,11680
+    setprop net.tcp.buffersize.evdo_b  4094,87380,262144,4096,16384,262144
+
+# Assign TCP buffer thresholds to be ceiling value of technology maximums
+# Increased technology maximums should be reflected here.
+    write /proc/sys/net/core/rmem_max  1220608
+    write /proc/sys/net/core/wmem_max  1220608
+
+# Set this property so surfaceflinger is not started by system_init
+    setprop system_init.startsurfaceflinger 0
+
+# Device Encryption by B2B Security Lab.
+    setprop ro.crypto.keyfile.userdata /efs/metadata
+
+# klaatu tdmb ownership
+    chown system system /dev/tdmb
+    chmod 0660 /dev/tdmb
+
+    # create directory for DRM plug-ins
+    mkdir /data/drm 0774 drm drm
+
+    #SISO-PLAYREADY-CHANGES
+    # [ save OMA DB, when upgrading from GB to ICS
+    mkdir /data/system/databases 0771 system system
+    copy /data/data/com.sec.android.providers.drm/databases/drmdatabase.db /data/system/databases/drmdatabase.db
+    chown system system /data/system/databases/drmdatabase.db
+    chmod 0774 /data/system/databases/drmdatabase.db
+    # ]
+    #DRM directory creation
+    mkdir /system/etc/security/.drm 0775
+    chown root root /system/etc/security/.drm
+    chmod 0775 /system/etc/security/.drm
+
+    # Added for Playready DRM Support
+    mkdir /data/data/.drm 0775
+    chown drm system /data/data/.drm
+    chmod 0775 /data/data/.drm
+    mkdir /data/data/.drm/.playready 0775
+    chown drm system /data/data/.drm/.playready
+    chmod 0775 /data/data/.drm/.playready
+
+    #Added drm folder to copy drm plugins
+    mkdir /system/lib/drm 0775
+    chown root root /system/lib/drm
+    chmod 0775 /system/lib/drm
+    #SISO-PLAYREADY-CHANGES
+    # DivX DRM
+    mkdir /efs/.files 0775
+    mkdir /efs/.files/.dx1 0775
+    mkdir /efs/.files/.dm33 0775
+    mkdir /efs/.files/.mp301 0775
+    chown media system /efs/.files/.dx1
+    chown media system /efs/.files/.dm33
+    chown media system /efs/.files/.mp301
+    chmod 0775 /efs/.files/.dx1
+    chmod 0775 /efs/.files/.dm33
+    chmod 0775 /efs/.files/.mp301
+
+    # SKT PM PlayReady
+    mkdir /data/playready 0777 system system
+
+    chown system system /sys/class/android_usb/android0/f_mass_storage/lun/file
+    chmod 0660 /sys/class/android_usb/android0/f_mass_storage/lun/file
+    chown system system /sys/class/android_usb/android0/f_rndis/ethaddr
+    chmod 0660 /sys/class/android_usb/android0/f_rndis/ethaddr
+
+#OTG Test
+    chown system radio /sys/class/host_notify/usb_otg/booster
+    chmod 0660 /sys/class/host_notify/usb_otg/booster
+
+#Essential node for usbservice
+    mkdir /dev/bus/ 755 root root
+    mkdir /dev/bus/usb 755 root root
+
+    # create fota delta dir
+    mkdir /data/fota_test 0775 system log
+    chown system log /data/fota_test
+    chmod 0775 /data/fota_test
+    mkdir /cache/fota 0775 system cache
+    chmod 0775 /cache/fota
+
+service ril-daemon /system/bin/rild
+    class main
+    socket rild stream 660 root radio
+    socket rild-debug stream 660 radio system
+    user root
+    group radio cache inet misc audio sdcard_rw qcom_oncrpc qcom_diag log
+
+service secril-daemon /system/bin/sec-ril
+    class main
+    user root
+    group radio cache inet misc audio sdcard_rw qcom_diag log
+
+# for datarouter
+#service DR-daemon /system/bin/drexe
+#    class main
+#    user root
+#    group system radio inet net_raw
+
+# Vibetonz
+service immvibed /system/bin/immvibed
+    class core
+    user shell
+    group shell
+    oneshot
+
diff --git a/ramdisk/init.qcom.rc b/ramdisk/init.qcom.rc
new file mode 100644
index 0000000..7cde494
--- /dev/null
+++ b/ramdisk/init.qcom.rc
@@ -0,0 +1,605 @@
+# Copyright (c) 2009-2012, Code Aurora Forum. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#     * Redistributions of source code must retain the above copyright
+#       notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above copyright
+#       notice, this list of conditions and the following disclaimer in the
+#       documentation and/or other materials provided with the distribution.
+#     * Neither the name of Code Aurora nor
+#       the names of its contributors may be used to endorse or promote
+#       products derived from this software without specific prior written
+#       permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+import init.qcom.usb.rc
+
+on init
+    # Set permissions for persist partition
+    mkdir /persist 0771 system system
+
+on early-boot
+    # set RLIMIT_MEMLOCK to 64MB
+    setrlimit 8 67108864 67108864
+
+on boot
+    mount debugfs /sys/kernel/debug /sys/kernel/debug
+    exec system/bin/btnvtool -O
+    mkdir /data/misc/bluetooth 0770 bluetooth bluetooth
+    chown bluetooth bluetooth /sys/module/bluetooth_power/parameters/power
+    chown bluetooth bluetooth /sys/class/rfkill/rfkill0/type
+    chown bluetooth bluetooth /sys/class/rfkill/rfkill0/state
+    chown bluetooth bluetooth /proc/bluetooth/sleep/proto
+    chown system system /sys/module/sco/parameters/disable_esco
+#    chown bluetooth bluetooth /sys/module/hci_smd/parameters/hcismd_set
+    chmod 0660 /sys/module/bluetooth_power/parameters/power
+#    chmod 0660 /sys/module/hci_smd/parameters/hcismd_set
+    chmod 0660 /sys/class/rfkill/rfkill0/state
+    chmod 0660 /proc/bluetooth/sleep/proto
+    chown bluetooth bluetooth /dev/ttyHS0
+    chmod 0660 /dev/ttyHS0
+    chown bluetooth bluetooth /sys/devices/platform/msm_serial_hs.0/clock
+    chmod 0660 /sys/devices/platform/msm_serial_hs.0/clock
+    # bluetooth MAC address programming
+    setprop ro.bt.bdaddr_path "/efs/bluetooth/bt_addr"
+    chown bluetooth bluetooth ro.bt.bdaddr_path
+
+    mkdir /dev/socket/qmux_radio 0770 radio radio
+    chmod 2770 /dev/socket/qmux_radio
+
+    setprop wifi.interface wlan0
+
+    # Enable Bluetooth 802.11 PAL when Bluetooth is turned on
+    setprop ro.config.bt.amp no
+
+    # permissions for NFC
+    chmod 0600 /dev/pn544
+    chown nfc nfc /dev/pn544
+    
+    #Set SUID bit for usbhub
+    chmod 4755 /system/bin/usbhub
+    chmod 755 /system/bin/usbhub_init
+
+    #Remove SUID bit for iproute2 ip tool
+    chmod 0755 /system/bin/ip
+
+    #port-bridge
+    chmod 0660 /dev/smd0
+    chown system system /dev/smd0
+
+    chmod 0444 /sys/devices/platform/msm_hsusb/gadget/usb_state
+
+    # create symlink for fb1 as HDMI
+    symlink /dev/graphics/fb1 /dev/graphics/hdmi
+
+    # Remove write permissions to video related nodes
+    chmod 0664 /sys/devices/virtual/graphics/fb1/hpd
+    chmod 0664 /sys/devices/virtual/graphics/fb1/video_mode
+    chmod 0664 /sys/devices/virtual/graphics/fb1/format_3d
+
+    # Change owner and group for media server and surface flinger
+    chown system system /sys/devices/virtual/graphics/fb1/format_3d
+	
+	#increase dirty_writeback_interval
+    write /proc/sys/vm/dirty_writeback_centisecs 60000
+    write /proc/sys/vm/dirty_expire_centisecs 60000
+
+    #For bridgemgr daemon to inform the USB driver of the correct transport
+    chown radio radio /sys/class/android_usb/f_rmnet_smd_sdio/transport
+
+    #To allow interfaces to get v6 address when tethering is enabled
+    write /proc/sys/net/ipv6/conf/rmnet0/accept_ra 2
+    write /proc/sys/net/ipv6/conf/rmnet1/accept_ra 2
+    write /proc/sys/net/ipv6/conf/rmnet2/accept_ra 2
+    write /proc/sys/net/ipv6/conf/rmnet3/accept_ra 2
+    write /proc/sys/net/ipv6/conf/rmnet4/accept_ra 2
+    write /proc/sys/net/ipv6/conf/rmnet5/accept_ra 2
+    write /proc/sys/net/ipv6/conf/rmnet6/accept_ra 2
+    write /proc/sys/net/ipv6/conf/rmnet7/accept_ra 2
+    write /proc/sys/net/ipv6/conf/rmnet_sdio0/accept_ra 2
+    write /proc/sys/net/ipv6/conf/rmnet_sdio1/accept_ra 2
+    write /proc/sys/net/ipv6/conf/rmnet_sdio2/accept_ra 2
+    write /proc/sys/net/ipv6/conf/rmnet_sdio3/accept_ra 2
+    write /proc/sys/net/ipv6/conf/rmnet_sdio4/accept_ra 2
+    write /proc/sys/net/ipv6/conf/rmnet_sdio5/accept_ra 2
+    write /proc/sys/net/ipv6/conf/rmnet_sdio6/accept_ra 2
+    write /proc/sys/net/ipv6/conf/rmnet_sdio7/accept_ra 2
+
+# msm specific files that need to be created on /data
+on post-fs-data
+
+#    mkdir /data/misc/bluetooth 0770 bluetooth bluetooth
+
+    # Create the directories used by the Wireless subsystem
+    mkdir /data/misc/wifi 0770 wifi system
+    chmod 0770 /data/misc/wifi
+    chmod 0660 /data/misc/wifi/wpa_supplicant.conf
+    mkdir /data/misc/wifi/sockets 0770 wifi wifi
+    mkdir /data/misc/dhcp 0775 dhcp dhcp
+    chown dhcp dhcp /data/misc/dhcp
+
+    # for skt iwlan
+    mkdir /data/iwland 0775 root wifi
+    chown root wifi /data/iwland
+    chmod 0775 /data/iwland
+
+    # Create directory used by audio subsystem
+    mkdir /data/misc/audio 0770 audio audio
+
+    # Mounting of persist is moved to 'on emmc-fs' and 'on fs' sections
+    # We chown/chmod /persist again so because mount is run as root + defaults
+    chown system system /persist
+    chmod 0771 /persist
+    chmod 0664 /sys/devices/platform/msm_sdcc.1/polling
+    chmod 0664 /sys/devices/platform/msm_sdcc.2/polling
+    chmod 0664 /sys/devices/platform/msm_sdcc.3/polling
+    chmod 0664 /sys/devices/platform/msm_sdcc.4/polling
+
+    # Chown polling nodes as needed from UI running on system server
+    chown system system /sys/devices/platform/msm_sdcc.1/polling
+    chown system system /sys/devices/platform/msm_sdcc.2/polling
+    chown system system /sys/devices/platform/msm_sdcc.3/polling
+    chown system system /sys/devices/platform/msm_sdcc.4/polling
+
+    #Create the symlink to qcn wpa_supplicant folder for ar6000 wpa_supplicant
+    mkdir /data/system 0775 system system
+    symlink /data/misc/wifi/wpa_supplicant /data/system/wpa_supplicant
+
+    #Create directories for wiper services
+    mkdir /data/wpstiles/ 0755 shell
+    mkdir /data/wiper 0755 location qcom_oncrpc
+
+    #Create directories for gpsone_daemon services
+    mkdir /data/misc/gpsone_d 0770 system system
+
+    #Create directories for QuIPS
+    mkdir /data/misc/quipc 0770 gps system
+
+    #Create directory from IMS services
+    mkdir /data/shared 0755
+    chown system system /data/shared
+
+    #Create directory for FOTA
+    mkdir /data/fota 0771
+    chown system system /data/fota
+
+    # Create /data/time folder for time-services
+    mkdir /data/time/ 0700 system system
+
+    setprop vold.post_fs_data_done 1
+
+# Export GPIO56 for fusion targets to enable/disable hub
+service usbhub_init /system/bin/usbhub_init
+   class late_start
+   user root
+   disabled
+   oneshot
+
+on property:ro.board.platform=msm7630_fusion
+    start usbhub_init
+
+on property:init.svc.wpa_supplicant=stopped
+    stop dhcpcd
+
+on property:init.svc.p2p_supplicant=stopped
+    stop dhcpcd
+
+#on property:bluetooth.isEnabled=true
+#    start btwlancoex
+#    start amp_load
+#    write /sys/class/bluetooth/hci0/idle_timeout 7000
+
+#on property:bluetooth.isEnabled=false
+#    start amp_unload
+
+service cnd /system/bin/cnd
+    class late_start
+    socket cnd stream 660 root radio
+	user radio
+	group system radio
+	disabled
+
+service rmt_storage /system/bin/rmt_storage /dev/block/mmcblk0p10 /dev/block/mmcblk0p11 /dev/block/mmcblk0p17
+    class late_start
+    user root
+    disabled
+
+on property:ro.emmc=1
+    start rmt_storage
+
+#service hciattach /system/bin/sh /system/etc/init.qcom.bt.sh
+#    class late_start
+#    user bluetooth
+#    group qcom_oncrpc bluetooth net_bt_admin
+#    disabled
+#    oneshot
+
+#service bt-dun /system/bin/dun-server /dev/smd7 /dev/rfcomm0
+#    class late_start
+#    disabled
+#    oneshot
+
+#service bt-sap /system/bin/sapd 15
+#    class late_start
+#    disabled
+#    oneshot
+
+#BCM
+service hciattach /system/bin/brcm_patchram_plus --enable_hci --enable_lpm \
+   --no2bytes --tosleep=50000 \
+   --use_baudrate_for_download --baudrate 3000000 --patchram /etc/firmware/bcm4330B1.hcd /dev/ttyHS0    
+    class main
+    user bluetooth
+    group bluetooth net_bt_admin
+    disabled
+
+#HCI_ENABLE_BT_DEV_UNDER_TEST_MODE
+service bt_dut_cmd /system/bin/bcm_dut
+    group bluetooth net_bt_admin
+    class main
+    disabled
+    oneshot
+
+#service sapd /system/bin/sdptool add --channel=15 SAP
+#    class late_start
+#    user bluetooth
+#    group bluetooth net_bt_admin
+#    disabled
+#    oneshot
+#service dund /system/bin/sdptool add --channel=1 DUN
+#    class late_start
+#    user bluetooth
+#    group bluetooth net_bt_admin
+#    disabled
+#    oneshot
+service bridgemgrd /system/bin/bridgemgrd
+    class late_start
+    user radio
+    group radio
+    disabled
+
+service port-bridge /system/bin/port-bridge /dev/smd0 /dev/ttyGS0
+    class late_start
+    user system
+    group system inet
+    disabled
+
+on property:ro.baseband="msm"
+    # Enable BT-DUN only for all msms
+    # setprop ro.qualcomm.bluetooth.dun true
+
+service qmiproxy /system/bin/qmiproxy
+    class late_start
+    user radio
+    group radio
+    disabled
+
+service qmuxd /system/bin/qmuxd
+    class late_start
+    user root
+    group radio
+    disabled
+
+service netmgrd /system/bin/netmgrd
+    class late_start
+    disabled
+
+service sensors /system/bin/sensors.qcom
+    class late_start
+    user root
+    group root
+    disabled
+
+on property:ro.use_data_netmgrd=false
+    # netmgr not supported on specific target
+    stop netmgrd
+
+# Adjust socket buffer to enlarge TCP receive window for high bandwidth
+# but only if ro.data.large_tcp_window_size property is set.
+on property:ro.data.large_tcp_window_size=true
+    write /proc/sys/net/ipv4/tcp_adv_win_scale  1
+
+#service btwlancoex /system/bin/sh /system/etc/init.qcom.coex.sh
+#    class late_start
+#    user bluetooth
+#    group bluetooth net_bt_admin inet net_admin net_raw
+#    disabled
+#    oneshot
+
+#service amp_init /system/bin/amploader -i
+#    class late_start
+#    user root
+#    disabled
+#    oneshot
+
+#service amp_load /system/bin/amploader -l 7000
+#    class late_start
+#    user root
+#    disabled
+#    oneshot
+
+#service amp_unload /system/bin/amploader -u
+#    class late_start
+#    user root
+#    disabled
+#    oneshot
+
+service wpa_supplicant /system/bin/wpa_supplicant \
+    -Dnl80211 -iwlan0 -puse_p2p_group_interface=1 -e/data/misc/wifi/entropy.bin
+    #   we will start as root and wpa_supplicant will switch to user wifi
+    #   after setting up the capabilities required for WEXT
+    #   user wifi
+    #   group wifi inet keystore
+    class main
+    socket wpa_wlan0 dgram 0660 wifi wifi
+    disabled
+    oneshot
+
+service p2p_supplicant /system/bin/wpa_supplicant \
+    -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf -N \
+    -ip2p0 -Dnl80211 -c/data/misc/wifi/p2p_supplicant.conf -e/data/misc/wifi/entropy.bin -puse_p2p_group_interface=1
+    #   we will start as root and wpa_supplicant will switch to user wifi
+    #   after setting up the capabilities required for WEXT
+    #   user wifi
+    #   group wifi inet keystore
+    class main
+    socket wpa_wlan0 dgram 0660 wifi wifi
+    disabled
+    oneshot
+
+service p2p_supplicant /system/bin/p2p_supplicant \
+    -Dnl80211 -puse_p2p_group_interface=1 -e/data/misc/wifi/entropy.bin
+    #   we will start as root and wpa_supplicant will switch to user wifi
+    #   after setting up the capabilities required for WEXT
+    #   user wifi
+    #   group wifi inet keystore
+    class main
+    socket wpa_wlan0 dgram 0660 wifi wifi
+    disabled
+    oneshot
+
+#for WiFi MFG(TestMode)
+service mfgloader /system/bin/mfgloader
+    class main
+    disabled
+    oneshot
+
+service wlandutservice /system/bin/wlandutservice
+    class main
+    user system
+    group wifi net_raw net_admin system inet
+    disabled
+    oneshot
+
+service macloader /system/bin/macloader
+    class main
+    oneshot
+# end of wifi
+
+service dhcpcd_wlan0 /system/bin/dhcpcd -aABKL
+    class main
+    disabled
+    oneshot
+
+service dhcpcd_p2p /system/bin/dhcpcd -aABKL
+    class main
+    disabled
+    oneshot
+
+service dhcpcd_bnep0 /system/bin/dhcpcd -ABKL
+    class main
+    disabled
+    oneshot
+
+service dhcpcd_eth0 /system/bin/dhcpcd -ABKL
+    class main
+    disabled
+    oneshot
+
+service iprenew_wlan0 /system/bin/dhcpcd -n
+    class main
+    disabled
+    oneshot
+
+service iprenew_p2p /system/bin/dhcpcd -n
+    class main
+    disabled
+    oneshot
+
+service iprenew_bnep0 /system/bin/dhcpcd -n
+    class main
+    disabled
+    oneshot
+
+# I-WLAN
+service iwland /system/bin/iwland
+    class main
+    user root
+    oneshot
+
+service wiperiface /system/bin/wiperiface
+    user location
+    group qcom_oncrpc
+    oneshot
+
+#service gpsone_daemon /system/bin/gpsone_daemon
+#    class late_start
+#    user system
+#    group system qcom_oncrpc inet
+#    disabled
+
+service quipc_igsn /system/bin/quipc_igsn
+    class late_start
+    user gps
+    group inet gps
+    disabled
+
+service quipc_main /system/bin/quipc_main
+    class late_start
+    user gps
+    group net_admin wifi inet gps
+    disabled
+
+service fm_dl /system/bin/sh /system/etc/init.qcom.fm.sh
+    class late_start
+    user root
+    group system qcom_oncrpc
+    disabled
+    oneshot
+
+on property:crypto.driver.load=1
+     insmod /system/lib/modules/qce.ko
+     insmod /system/lib/modules/qcedev.ko
+
+on property:crypto.driver.load=0
+     exec /system/bin/rmmod qcedev.ko
+     exec /system/bin/rmmod qce.ko
+
+service drmdiag /system/bin/drmdiagapp
+    class late_start
+     user root
+     disabled
+     oneshot
+
+on property:drmdiag.load=1
+    start drmdiag
+
+on property:drmdiag.load=0
+    stop drmdiag
+
+service qcom-sh /system/bin/sh /init.qcom.sh
+    class late_start
+    user root
+    oneshot
+
+service qcom-post-boot /system/bin/sh /system/etc/init.qcom.post_boot.sh
+    class late_start
+    user root
+    disabled
+    oneshot
+
+#service qcom-wifi /system/bin/sh /system/etc/init.qcom.wifi.sh
+#    class late_start
+#    oneshot
+
+on property:init.svc.bootanim=stopped
+    start qcom-post-boot
+
+on property:sys.boot_completed=1
+    start qcom-post-boot
+
+service hdmid /system/bin/hdmid
+    class late_start
+	user system
+    group system graphics
+	socket hdmid stream 0660 system system
+    disabled
+
+on property:ro.hdmi.enable=true
+    start hdmid
+
+#HDMID Permission for sys nodes
+chown system graphics /sys/class/graphics/fb1/connected
+chown system graphics /sys/class/graphics/fb1/edid_modes
+chown system graphics /sys/class/graphics/fb1/power_state
+chown system graphics /sys/class/graphics/fb1/hpd
+chown system graphics /sys/class/graphics/fb1/hdcp_present
+chown system graphics /sys/class/graphics/fb1/hdmi_mode
+chmod 0660 /sys/class/graphics/fb1/power_state
+
+#service abld /system/bin/mm-abl-daemon
+#    class late_start
+#    disabled
+
+service ds_fmc_appd /system/bin/ds_fmc_appd -p "rmnet0" -D
+    class late_start
+    group radio
+    disabled
+    oneshot
+
+on property:persist.data.ds_fmc_app.mode=1
+    start ds_fmc_appd
+
+service ims_regmanager /system/bin/exe-ims-regmanagerprocessnative
+    class late_start
+    user system
+    group qcom_oncrpc net_bt_admin inet radio wifi
+    disabled
+
+on property:persist.ims.regmanager.mode=1
+    start ims_regmanager
+
+on property:ro.data.large_tcp_window_size=true
+    # Adjust socket buffer to enlarge TCP receive window for high bandwidth (e.g. DO-RevB)
+    write /proc/sys/net/ipv4/tcp_adv_win_scale  1
+
+service time_daemon /system/bin/time_daemon
+    class late_start
+    user root
+    group root
+    oneshot
+    disabled
+
+on property:persist.timed.enable=true
+    start time_daemon
+
+#service ftp /system/bin/sdptool add --psm=5257 --channel=20 FTP
+#    class late_start
+#    user bluetooth
+#    group bluetooth net_bt_admin
+#    disabled
+#    oneshot
+
+#service map0 /system/bin/sdptool add --channel=16 MAS0
+#    class late_start
+#    user bluetooth
+#    group bluetooth net_bt_admin
+#    disabled
+#    oneshot
+
+#service map1 /system/bin/sdptool add --channel=17 MAS1
+#    class late_start
+#    user bluetooth
+#    group bluetooth net_bt_admin
+#    disabled
+#    oneshot
+
+service ril-daemon1 /system/bin/rild -c 1
+    class late_start
+    socket rild1 stream 660 root radio
+    socket rild-debug1 stream 660 radio system
+    user root
+    disabled
+    group radio cache inet misc audio sdcard_rw qcom_oncrpc diag
+
+service profiler_daemon /system/bin/profiler_daemon
+    class late_start
+    user root
+    group root
+    disabled
+
+service sdcard /system/bin/sdcard /data/media 1023 1023
+    class late_start
+    disabled
+
+on property:persist.fuse_sdcard=true
+    start sdcard
+
+#service hcidump /system/bin/sh /system/etc/hcidump.sh
+#    user bluetooth
+#    group bluetooth system net_bt_admin net_admin
+#    disabled
+#    oneshot
diff --git a/ramdisk/init.qcom.sh b/ramdisk/init.qcom.sh
new file mode 100755
index 0000000..04d7acf
--- /dev/null
+++ b/ramdisk/init.qcom.sh
@@ -0,0 +1,316 @@
+#!/system/bin/sh
+# Copyright (c) 2009-2012, Code Aurora Forum. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#     * Redistributions of source code must retain the above copyright
+#       notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above copyright
+#       notice, this list of conditions and the following disclaimer in the
+#       documentation and/or other materials provided with the distribution.
+#     * Neither the name of Code Aurora nor
+#       the names of its contributors may be used to endorse or promote
+#       products derived from this software without specific prior written
+#       permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+#
+# For controlling console and shell on console on 8960 - perist.serial.enable 8960
+# On other target use default ro.debuggable property.
+#
+target=`getprop ro.board.platform`
+serial=`getprop persist.serial.enable`
+dserial=`getprop ro.debuggable`
+case "$target" in
+    "msm8960")
+        case "$serial" in
+            "0")
+                echo 0 > /sys/devices/platform/msm_serial_hsl.0/console
+                ;;
+            *)
+                echo 1 > /sys/devices/platform/msm_serial_hsl.0/console
+                start console
+                ;;
+        esac
+        ;;
+    *)
+        case "$dserial" in
+            "1")
+                start console
+                ;;
+	esac
+	;;
+esac
+#
+# Function to start sensors for DSPS enabled platforms
+#
+start_sensors()
+{
+    mkdir -p /data/system/sensors
+    touch /data/system/sensors/settings
+    chmod 665 /data/system/sensors
+
+    mkdir -p /data/misc/sensors
+    chmod 775 /data/misc/sensors
+
+    if [ ! -s /data/system/sensors/settings ]; then
+        # If the settings file is empty, enable sensors HAL
+        # Otherwise leave the file with it's current contents
+        echo 1 > /data/system/sensors/settings
+    fi
+    start sensors
+}
+
+#
+# Allow persistent faking of bms
+# User needs to set fake bms charge in persist.bms.fake_batt_capacity
+#
+fake_batt_capacity=`getprop persist.bms.fake_batt_capacity`
+case "$fake_batt_capacity" in
+    "") ;; #Do nothing here
+    * )
+    case $target in
+        "msm8960")
+        echo "$fake_batt_capacity" > /sys/module/pm8921_bms/parameters/bms_fake_battery
+	;;
+    esac
+esac
+
+#
+# start ril-daemon only for targets on which radio is present
+#
+baseband=`getprop ro.baseband`
+multirild=`getprop ro.multi.rild`
+dsds=`getprop persist.dsds.enabled`
+netmgr=`getprop ro.use_data_netmgrd`
+case "$baseband" in
+    "msm" | "csfb" | "svlte2a" | "mdm" | "unknown")
+    start ril-daemon
+    start qmuxd
+    case "$baseband" in
+        "svlte2a" | "csfb")
+        start qmiproxy
+    esac
+    case "$multirild" in
+        "true")
+         case "$dsds" in
+             "true")
+             start ril-daemon1
+         esac
+    esac
+    case "$netmgr" in
+        "true")
+        start netmgrd
+    esac
+esac
+
+#
+# Suppress default route installation during RA for IPV6; user space will take
+# care of this
+#
+for file in /proc/sys/net/ipv6/conf/*
+do
+  echo 0 > $file/accept_ra_defrtr
+done
+
+#
+# Start gpsone_daemon for SVLTE Type I & II devices
+#
+case "$target" in
+        "msm7630_fusion")
+        start gpsone_daemon
+esac
+case "$baseband" in
+        "svlte2a")
+        start gpsone_daemon
+        start bridgemgrd
+esac
+case "$target" in
+        "msm7630_surf" | "msm8660" | "msm8960")
+        start quipc_igsn
+esac
+case "$target" in
+        "msm7630_surf" | "msm8660" | "msm8960")
+        start quipc_main
+esac
+
+case "$target" in
+    "msm7630_surf" | "msm7630_1x" | "msm7630_fusion")
+        insmod /system/lib/modules/ss_mfcinit.ko
+        insmod /system/lib/modules/ss_vencoder.ko
+        insmod /system/lib/modules/ss_vdecoder.ko
+        chmod 0666 /dev/ss_mfc_reg
+        chmod 0666 /dev/ss_vdec
+        chmod 0666 /dev/ss_venc
+
+        value=`cat /sys/devices/system/soc/soc0/hw_platform`
+
+        case "$value" in
+            "FFA" | "SVLTE_FFA")
+             # linking to surf_keypad_qwerty.kcm.bin instead of surf_keypad_numeric.kcm.bin so that
+             # the UI keyboard works fine.
+             ln -s  /system/usr/keychars/surf_keypad_qwerty.kcm.bin /system/usr/keychars/surf_keypad.kcm.bin;;
+            "Fluid")
+             setprop ro.sf.lcd_density 240
+             setprop qcom.bt.dev_power_class 2
+             start profiler_daemon;;
+            *)
+             ln -s  /system/usr/keychars/surf_keypad_qwerty.kcm.bin /system/usr/keychars/surf_keypad.kcm.bin;;
+
+        esac
+
+# Dynamic Memory Managment (DMM) provides a sys file system to the userspace
+# that can be used to plug in/out memory that has been configured as unstable.
+# This unstable memory can be in Active or In-Active State.
+# Each of which the userspace can request by writing to a sys file.
+
+# ro.dev.dmm = 1; Indicates that DMM is enabled in the Android User Space. This
+# property is set in the Android system properties file.
+
+# ro.dev.dmm.dpd.start_address is set when the target has a 2x256Mb memory
+# configuration. This is also used to indicate that the target is capable of
+# setting EBI-1 to Deep Power Down or Self Refresh.
+
+        mem="/sys/devices/system/memory"
+        op=`cat $mem/movable_start_bytes`
+        case "$op" in
+           "0" )
+                log -p i -t DMM DMM Disabled. movable_start_bytes not set: $op
+            ;;
+
+            "$mem/movable_start_bytes: No such file or directory " )
+                log -p i -t DMM DMM Disabled. movable_start_bytes does not exist: $op
+            ;;
+
+            * )
+                log -p i -t DMM DMM available. movable_start_bytes at $op
+                movable_start_bytes=0x`cat $mem/movable_start_bytes`
+                block_size_bytes=0x`cat $mem/block_size_bytes`
+                block=$(($movable_start_bytes/$block_size_bytes))
+
+                echo $movable_start_bytes > $mem/probe
+                case "$?" in
+                    "0" )
+                        log -p i -t DMM $movable_start_bytes to physical hotplug succeeded.
+                    ;;
+                    * )
+                        log -p e -t DMM $movable_start_bytes to physical hotplug failed.
+                        return 1
+                    ;;
+                esac
+
+               chown system system $mem/memory$block/state
+
+                echo online > $mem/memory$block/state
+                case "$?" in
+                    "0" )
+                        log -p i -t DMM \'echo online\' to logical hotplug succeeded.
+                    ;;
+                    * )
+                        log -p e -t DMM \'echo online\' to logical hotplug failed.
+                        return 1
+                    ;;
+                esac
+
+                setprop ro.dev.dmm.dpd.start_address $movable_start_bytes
+                setprop ro.dev.dmm.dpd.block $block
+            ;;
+        esac
+
+        op=`cat $mem/low_power_memory_start_bytes`
+        case "$op" in
+            "0" )
+                log -p i -t DMM Self-Refresh-Only Disabled. low_power_memory_start_bytes not set:$op
+            ;;
+
+            "$mem/low_power_memory_start_bytes No such file or directory " )
+                log -p i -t DMM Self-Refresh-Only Disabled. low_power_memory_start_bytes does not exist:$op
+            ;;
+
+            * )
+                log -p i -t DMM Self-Refresh-Only available. low_power_memory_start_bytes at $op
+            ;;
+        esac
+        ;;
+    "msm8660" )
+        platformvalue=`cat /sys/devices/system/soc/soc0/hw_platform`
+        case "$platformvalue" in
+            "Fluid")
+                start_sensors
+                setprop ro.sf.lcd_density 240
+                start profiler_daemon;;
+            "Dragon")
+                setprop ro.sound.alsa "WM8903";;
+        esac
+        ;;
+    "msm8960")
+        case "$baseband" in
+            "msm")
+                start_sensors;;
+        esac
+
+        platformvalue=`cat /sys/devices/system/soc/soc0/hw_platform`
+        case "$platformvalue" in
+             "Fluid")
+                 start profiler_daemon;;
+        esac
+
+        # lcd density is write-once. Hence the separate switch case
+        case "$platformvalue" in
+             "Liquid")
+                 setprop ro.sf.lcd_density 160;;
+             *)
+                 setprop ro.sf.lcd_density 240;;
+        esac
+
+        # Dynamic Memory Managment (DMM) provides a sys file system to the userspace
+        # that can be used to plug in/out memory that has been configured as 'Movable'.
+        # This unstable memory can be in Active or In-Active State.
+        # Each of which the userspace can request by writing to a sys file.
+
+        # If ro.dev.dmm.dpd.start_address is set here then the target has a memory
+        # configuration that supports DynamicMemoryManagement.
+        mem="/sys/devices/system/memory"
+        op=`cat $mem/movable_start_bytes`
+        case "$op" in
+            "0" )
+                log -p i -t DMM DMM Disabled. movable_start_bytes not set: $op
+            ;;
+
+           "$mem/movable_start_bytes: No such file or directory " )
+                log -p i -t DMM DMM Disabled. movable_start_bytes does not exist: $op
+            ;;
+
+            * )
+                log -p i -t DMM DMM available.
+                movable_start_bytes=0x`cat $mem/movable_start_bytes`
+                log -p i -t DMM movable_start_bytes at $movable_start_bytes
+                block_size_bytes=0x`cat $mem/block_size_bytes`
+                log -p i -t DMM block_size_bytes: $block_size_bytes
+                block=$(($movable_start_bytes/$block_size_bytes))
+                block=11
+
+                chown system.system $mem/memory$block/state
+                chown system.system $mem/probe
+                chown system.system $mem/active
+                chown system.system $mem/remove
+
+                setprop ro.dev.dmm.dpd.start_address $movable_start_bytes
+                setprop ro.dev.dmm.dpd.block $block
+            ;;
+        esac
+        ;;
+
+esac
diff --git a/ramdisk/init.qcom.usb.rc b/ramdisk/init.qcom.usb.rc
new file mode 100644
index 0000000..8851117
--- /dev/null
+++ b/ramdisk/init.qcom.usb.rc
@@ -0,0 +1,450 @@
+# Copyright (c) 2011, Code Aurora Forum. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#     * Redistributions of source code must retain the above copyright
+#       notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above copyright
+#       notice, this list of conditions and the following disclaimer in the
+#       documentation and/or other materials provided with the distribution.
+#     * Neither the name of Code Aurora nor
+#       the names of its contributors may be used to endorse or promote
+#       products derived from this software without specific prior written
+#       permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+on init
+    write /sys/class/android_usb/android0/f_rndis/wceis 1
+
+service qcom-usb-sh /system/bin/sh /init.qcom.usb.sh
+    class core
+    user root
+    oneshot
+
+on boot
+    write /sys/class/android_usb/android0/iManufacturer $ro.manufacturer
+    write /sys/class/android_usb/android0/iProduct $ro.model
+    write /sys/class/android_usb/android0/iSerial $ro.serialno
+    write /sys/class/android_usb/f_mass_storage/inquiry_string "Samsung"
+    write /sys/class/android_usb/f_mass_storage/vendor_string "SAMSUNG"
+    write /sys/class/android_usb/f_mass_storage/product_string "SGH-T989"
+
+# rndis,acm,diag and rmnet,acm,diag are used for IOT Hidden Menu
+on property:sys.usb.config=rndis,acm,diag
+    write /sys/class/android_usb/android0/enable 0
+    write /sys/class/android_usb/android0/idVendor 04E8
+    write /sys/class/android_usb/android0/idProduct 6864
+    write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
+    write /sys/class/android_usb/android0/f_acm/acm_transports tty
+    write /sys/class/android_usb/android0/functions rndis,acm,diag
+    write /sys/class/android_usb/android0/enable 1
+    setprop sys.usb.state $sys.usb.config
+    
+on property:sys.usb.config=rmnet,acm,diag
+    write /sys/class/android_usb/android0/enable 0
+    write /sys/class/android_usb/android0/idVendor 04E8
+    write /sys/class/android_usb/android0/idProduct 685D
+    write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
+    write /sys/class/android_usb/android0/f_acm/acm_transports sdio
+    write /sys/class/android_usb/android0/functions acm,diag,rmnet_sdio
+    write /sys/class/android_usb/android0/enable 1
+    setprop sys.usb.state $sys.usb.config
+
+# USB compositions
+on property:sys.usb.config=diag,adb
+    write /sys/class/android_usb/android0/enable 0
+    write /sys/class/android_usb/android0/idVendor 05C6
+    write /sys/class/android_usb/android0/idProduct 901D
+    write /sys/class/android_usb/android0/f_diag/clients diag
+    write /sys/class/android_usb/android0/functions diag,adb
+    write /sys/class/android_usb/android0/enable 1
+    start adbd
+    setprop sys.usb.state $sys.usb.config
+
+on property:sys.usb.config=diag,serial_smd,serial_tty,rmnet_bam,mass_storage,adb
+    write /sys/class/android_usb/android0/enable 0
+    write /sys/class/android_usb/android0/idVendor 04E8
+    write /sys/class/android_usb/android0/idProduct 685E
+    write /sys/class/android_usb/android0/f_diag/clients diag
+    write /sys/class/android_usb/android0/f_rmnet/transports smd,bam    
+    write /sys/class/android_usb/android0/functions diag,adb,rmnet,mass_storage
+    write /sys/class/android_usb/android0/enable 1
+    start adbd
+    setprop sys.usb.state $sys.usb.config
+
+on property:sys.usb.config=acm,mass_storage
+    write /sys/class/android_usb/android0/enable 0
+    write /sys/class/android_usb/android0/idVendor 04E8
+    write /sys/class/android_usb/android0/idProduct 685E
+    write /sys/class/android_usb/android0/f_acm/acm_transports tty
+    write /sys/class/android_usb/android0/functions mass_storage,acm
+    write /sys/class/android_usb/android0/enable 1
+    setprop sys.usb.state $sys.usb.config
+
+on property:sys.usb.config=acm,mass_storage,adb
+    write /sys/class/android_usb/android0/enable 0
+    write /sys/class/android_usb/android0/idVendor 04E8
+    write /sys/class/android_usb/android0/idProduct 685E
+    write /sys/class/android_usb/android0/f_acm/acm_transports tty
+    write /sys/class/android_usb/android0/functions mass_storage,acm,adb
+    write /sys/class/android_usb/android0/enable 1
+    start adbd
+    setprop sys.usb.state $sys.usb.config
+
+on property:sys.usb.config=acm,diag,diag_mdm,rmnet_sdio
+    write /sys/class/android_usb/android0/enable 0
+    write /sys/class/android_usb/android0/idVendor 04E8
+    write /sys/class/android_usb/android0/idProduct 685E
+    write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
+    write /sys/class/android_usb/android0/f_acm/acm_transports sdio
+    write /sys/class/android_usb/android0/functions acm,diag,rmnet_sdio
+    write /sys/class/android_usb/android0/enable 1
+    setprop sys.usb.state $sys.usb.config
+
+on property:sys.usb.config=acm,diag,diag_mdm,rmnet_sdio,adb
+    write /sys/class/android_usb/android0/enable 0
+    write /sys/class/android_usb/android0/idVendor 04E8
+    write /sys/class/android_usb/android0/idProduct 685E
+    write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
+    write /sys/class/android_usb/android0/f_acm/acm_transports sdio
+    write /sys/class/android_usb/android0/functions acm,adb,diag,rmnet_sdio
+    write /sys/class/android_usb/android0/enable 1
+    start adbd
+    setprop sys.usb.state $sys.usb.config
+
+on property:sys.usb.config=diag,serial_smd,serial_tty,rmnet_bam,mass_storage
+    write /sys/class/android_usb/android0/enable 0
+    write /sys/class/android_usb/android0/idVendor 04E8
+    write /sys/class/android_usb/android0/idProduct 685E
+    write /sys/class/android_usb/android0/f_diag/clients diag
+    write /sys/class/android_usb/android0/f_rmnet/transports smd,bam	
+    write /sys/class/android_usb/android0/functions diag,rmnet,mass_storage
+    write /sys/class/android_usb/android0/enable 1
+    setprop sys.usb.state $sys.usb.config
+
+on property:sys.usb.config=diag,diag_mdm,serial_sdio,serial_smd,rmnet_smd_sdio,mass_storage,adb
+    write /sys/class/android_usb/android0/enable 0
+    write /sys/class/android_usb/android0/idVendor 05C6
+    write /sys/class/android_usb/android0/idProduct 9037
+    write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
+    write /sys/class/android_usb/android0/f_serial/transports sdio,smd
+    write /sys/class/android_usb/android0/functions diag,adb,serial,rmnet_smd_sdio,mass_storage
+    write /sys/class/android_usb/android0/enable 1
+    start adbd
+    setprop sys.usb.state $sys.usb.config
+
+on property:sys.usb.config=diag,diag_mdm,serial_sdio,serial_smd,rmnet_smd_sdio,mass_storage
+    write /sys/class/android_usb/android0/enable 0
+    write /sys/class/android_usb/android0/idVendor 05C6
+    write /sys/class/android_usb/android0/idProduct 9038
+    write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
+    write /sys/class/android_usb/android0/f_serial/transports sdio,smd
+    write /sys/class/android_usb/android0/functions diag,serial,rmnet_smd_sdio,mass_storage
+    write /sys/class/android_usb/android0/enable 1
+    setprop sys.usb.state $sys.usb.config
+
+on property:sys.usb.config=diag,diag_mdm,serial_sdio,serial_tty,rmnet_sdio,mass_storage,adb
+    write /sys/class/android_usb/android0/enable 0
+    write /sys/class/android_usb/android0/idVendor 05C6
+    write /sys/class/android_usb/android0/idProduct 9031
+    write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
+    write /sys/class/android_usb/android0/f_serial/transports sdio,tty
+    write /sys/class/android_usb/android0/functions diag,adb,serial,rmnet_sdio,mass_storage
+    write /sys/class/android_usb/android0/enable 1
+    start adbd
+    setprop sys.usb.state $sys.usb.config
+
+on property:sys.usb.config=diag,diag_mdm,serial_sdio,serial_tty,rmnet_sdio,mass_storage
+    write /sys/class/android_usb/android0/enable 0
+    write /sys/class/android_usb/android0/idVendor 05C6
+    write /sys/class/android_usb/android0/idProduct 9032
+    write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
+    write /sys/class/android_usb/android0/f_serial/transports sdio,tty
+    write /sys/class/android_usb/android0/functions diag,serial,rmnet_sdio,mass_storage
+    write /sys/class/android_usb/android0/enable 1
+    setprop sys.usb.state $sys.usb.config
+
+on property:sys.usb.config=diag,serial_tty,serial_tty,rmnet_smd,mass_storage,adb
+    write /sys/class/android_usb/android0/enable 0
+    write /sys/class/android_usb/android0/idVendor 05C6
+    write /sys/class/android_usb/android0/idProduct 9025
+    write /sys/class/android_usb/android0/f_diag/clients diag
+    write /sys/class/android_usb/android0/f_serial/transports tty,tty
+    write /sys/class/android_usb/android0/functions diag,adb,serial,rmnet_smd,mass_storage
+    write /sys/class/android_usb/android0/enable 1
+    start adbd
+    start port-bridge
+    setprop sys.usb.state $sys.usb.config
+
+on property:sys.usb.config=diag,serial_tty,serial_tty,rmnet_smd,mass_storage
+    write /sys/class/android_usb/android0/enable 0
+    write /sys/class/android_usb/android0/idVendor 05C6
+    write /sys/class/android_usb/android0/idProduct 9026
+    write /sys/class/android_usb/android0/f_diag/clients diag
+    write /sys/class/android_usb/android0/f_serial/transports tty,tty
+    write /sys/class/android_usb/android0/functions diag,serial,rmnet_smd,mass_storage
+    write /sys/class/android_usb/android0/enable 1
+    start port-bridge
+    setprop sys.usb.state $sys.usb.config
+
+on property:sys.usb.config=diag,serial_smd,serial_tty,rmnet_smd,mass_storage,adb
+    write /sys/class/android_usb/android0/enable 0
+    write /sys/class/android_usb/android0/idVendor 05C6
+    write /sys/class/android_usb/android0/idProduct 9025
+    write /sys/class/android_usb/android0/f_diag/clients diag
+    write /sys/class/android_usb/android0/f_serial/transports smd,tty
+    write /sys/class/android_usb/android0/functions diag,adb,serial,rmnet_smd,mass_storage
+    write /sys/class/android_usb/android0/enable 1
+    start adbd
+    setprop sys.usb.state $sys.usb.config
+
+on property:sys.usb.config=diag,serial_smd,serial_tty,rmnet_smd,mass_storage
+    write /sys/class/android_usb/android0/enable 0
+    write /sys/class/android_usb/android0/idVendor 05C6
+    write /sys/class/android_usb/android0/idProduct 9026
+    write /sys/class/android_usb/android0/f_diag/clients diag
+    write /sys/class/android_usb/android0/f_serial/transports smd,tty
+    write /sys/class/android_usb/android0/functions diag,serial,rmnet_smd,mass_storage
+    write /sys/class/android_usb/android0/enable 1
+    setprop sys.usb.state $sys.usb.config
+
+# HSIC-Fusion composition
+on property:sys.usb.config=diag,serial_hsic,serial_tty,rmnet_hsic,mass_storage,adb
+    write /sys/class/android_usb/android0/enable 0
+    write /sys/class/android_usb/android0/idVendor 05C6
+    write /sys/class/android_usb/android0/idProduct 9025
+    write /sys/class/android_usb/android0/f_diag/clients diag
+    write /sys/class/android_usb/android0/f_serial/transports hsic,tty
+    write /sys/class/android_usb/android0/f_rmnet/transports hsic,hsic
+    write /sys/class/android_usb/android0/functions diag,adb,serial,rmnet,mass_storage
+    write /sys/class/android_usb/android0/enable 1
+    start adbd
+    setprop sys.usb.state $sys.usb.config
+
+# HSIC-Fusion composition
+on property:sys.usb.config=diag,serial_hsic,serial_tty,rmnet_hsic,mass_storage,adb
+    write /sys/class/android_usb/android0/enable 0
+    write /sys/class/android_usb/android0/idVendor 04E8
+    write /sys/class/android_usb/android0/idProduct 6863
+    write /sys/class/android_usb/android0/f_diag/clients diag
+    write /sys/class/android_usb/android0/f_serial/transports hsic,tty
+    write /sys/class/android_usb/android0/f_rmnet/transports hsic,hsic
+    write /sys/class/android_usb/android0/functions diag,adb,serial,rmnet,mass_storage
+    write /sys/class/android_usb/android0/enable 1
+    start adbd
+    setprop sys.usb.state $sys.usb.config
+
+on property:sys.usb.config=rndis
+    write /sys/class/android_usb/android0/enable 0
+    write /sys/class/android_usb/android0/idVendor 04E8
+    write /sys/class/android_usb/android0/idProduct 6863
+    write /sys/class/android_usb/android0/functions rndis
+    write /sys/class/android_usb/android0/enable 1
+    setprop sys.usb.state $sys.usb.config
+
+on property:sys.usb.config=rndis,adb
+    write /sys/class/android_usb/android0/enable 0
+    write /sys/class/android_usb/android0/idVendor 04E8
+    write /sys/class/android_usb/android0/idProduct 6864
+    write /sys/class/android_usb/android0/functions rndis,adb
+    write /sys/class/android_usb/android0/enable 1
+    start adbd
+    setprop sys.usb.state $sys.usb.config
+
+on property:sys.usb.config=rndis,diag
+    write /sys/class/android_usb/android0/enable 0
+    write /sys/class/android_usb/android0/idVendor 05C6
+    write /sys/class/android_usb/android0/idProduct 902C
+    write /sys/class/android_usb/android0/f_diag/clients diag
+    write /sys/class/android_usb/android0/functions rndis,diag
+    write /sys/class/android_usb/android0/enable 1
+    setprop sys.usb.state $sys.usb.config
+
+on property:sys.usb.config=rndis,diag,adb
+    write /sys/class/android_usb/android0/enable 0
+    write /sys/class/android_usb/android0/idVendor 05C6
+    write /sys/class/android_usb/android0/idProduct 902D
+    write /sys/class/android_usb/android0/f_diag/clients diag
+    write /sys/class/android_usb/android0/functions rndis,diag,adb
+    write /sys/class/android_usb/android0/enable 1
+    start adbd
+    setprop sys.usb.state $sys.usb.config
+
+on property:sys.usb.config=rndis,diag,diag_mdm
+    write /sys/class/android_usb/android0/enable 0
+    write /sys/class/android_usb/android0/idVendor 05C6
+    write /sys/class/android_usb/android0/idProduct 9041
+    write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
+    write /sys/class/android_usb/android0/functions rndis,diag
+    write /sys/class/android_usb/android0/enable 1
+    setprop sys.usb.state $sys.usb.config
+
+on property:sys.usb.config=rndis,diag,diag_mdm,adb
+    write /sys/class/android_usb/android0/enable 0
+    write /sys/class/android_usb/android0/idVendor 05C6
+    write /sys/class/android_usb/android0/idProduct 9042
+    write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
+    write /sys/class/android_usb/android0/functions rndis,diag,adb
+    write /sys/class/android_usb/android0/enable 1
+    start adbd
+    setprop sys.usb.state $sys.usb.config
+
+on property:sys.usb.config=mass_storage
+    write /sys/class/android_usb/android0/enable 0
+    write /sys/class/android_usb/android0/idVendor 18d1
+    write /sys/class/android_usb/android0/idProduct 4e21
+    write /sys/class/android_usb/android0/functions mass_storage
+    write /sys/class/android_usb/android0/enable 1
+    setprop sys.usb.state $sys.usb.config
+
+on property:sys.usb.config=mass_storage,adb
+    write /sys/class/android_usb/android0/enable 0
+    write /sys/class/android_usb/android0/idVendor 18d1
+    write /sys/class/android_usb/android0/idProduct 4e22
+    write /sys/class/android_usb/android0/functions mass_storage,adb
+    write /sys/class/android_usb/android0/enable 1
+    start adbd
+    setprop sys.usb.state $sys.usb.config
+
+#on property:sys.usb.config=mtp
+#    write /sys/class/android_usb/android0/enable 0
+#    write /sys/class/android_usb/android0/idVendor 04E8
+#    write /sys/class/android_usb/android0/idProduct 6860
+#    write /sys/class/android_usb/android0/functions mtp
+#    write /sys/class/android_usb/android0/enable 1
+#    setprop sys.usb.state $sys.usb.config
+
+#on property:sys.usb.config=mtp,adb
+#    write /sys/class/android_usb/android0/enable 0
+#    write /sys/class/android_usb/android0/idVendor 04E8
+#    write /sys/class/android_usb/android0/idProduct 6860
+#	write /sys/class/android_usb/android0/f_diag/clients diag
+#    write /sys/class/android_usb/android0/f_rmnet/instances 1
+#    write /sys/class/android_usb/android0/functions mtp,adb
+#    write /sys/class/android_usb/android0/enable 1
+#    start adbd
+#    setprop sys.usb.state $sys.usb.config
+
+on property:sys.usb.config=mtp
+    write /sys/class/android_usb/android0/enable 0
+    write /sys/class/android_usb/android0/idVendor 04E8
+    write /sys/class/android_usb/android0/idProduct 6860
+    write /sys/class/android_usb/android0/f_acm/acm_transports tty
+    write /sys/class/android_usb/android0/functions mtp,acm
+    write /sys/class/android_usb/android0/enable 1
+    setprop sys.usb.state $sys.usb.config
+
+on property:sys.usb.config=mtp,adb
+    write /sys/class/android_usb/android0/enable 0
+    write /sys/class/android_usb/android0/idVendor 04E8
+    write /sys/class/android_usb/android0/idProduct 6860
+    write /sys/class/android_usb/android0/f_acm/acm_transports tty
+    write /sys/class/android_usb/android0/functions mtp,acm,adb
+    write /sys/class/android_usb/android0/enable 1
+    start adbd
+    setprop sys.usb.state $sys.usb.config
+
+on property:sys.usb.config=mtp,acm
+    write /sys/class/android_usb/android0/enable 0
+    write /sys/class/android_usb/android0/idVendor 04E8
+    write /sys/class/android_usb/android0/idProduct 6860
+    write /sys/class/android_usb/android0/f_acm/acm_transports tty
+    write /sys/class/android_usb/android0/functions mtp,acm
+    write /sys/class/android_usb/android0/enable 1
+    setprop sys.usb.state $sys.usb.config
+
+on property:sys.usb.config=mtp,acm,adb
+    write /sys/class/android_usb/android0/enable 0
+    write /sys/class/android_usb/android0/idVendor 04E8
+    write /sys/class/android_usb/android0/idProduct 6860
+    write /sys/class/android_usb/android0/f_acm/acm_transports tty
+    write /sys/class/android_usb/android0/functions mtp,acm,adb
+    write /sys/class/android_usb/android0/enable 1
+    start adbd
+    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 04E8
+    write /sys/class/android_usb/android0/idProduct 6865
+    write /sys/class/android_usb/android0/functions ptp
+    write /sys/class/android_usb/android0/enable 1
+    setprop sys.usb.state $sys.usb.config
+
+on property:sys.usb.config=ptp,adb
+    write /sys/class/android_usb/android0/enable 0
+    write /sys/class/android_usb/android0/idVendor 04E8
+    write /sys/class/android_usb/android0/idProduct 6866
+    write /sys/class/android_usb/android0/functions ptp,adb
+    write /sys/class/android_usb/android0/enable 1
+	start adbd
+    setprop sys.usb.state $sys.usb.config
+
+on property:sys.usb.config=mtp,diag
+    write /sys/class/android_usb/android0/enable 0
+    write /sys/class/android_usb/android0/idVendor 05C6
+    write /sys/class/android_usb/android0/idProduct 901B
+    write /sys/class/android_usb/android0/f_diag/clients diag
+    write /sys/class/android_usb/android0/functions mtp,diag
+    write /sys/class/android_usb/android0/enable 1
+    setprop sys.usb.state $sys.usb.config
+
+on property:sys.usb.config=mtp,diag,adb
+    write /sys/class/android_usb/android0/enable 0
+    write /sys/class/android_usb/android0/idVendor 05C6
+    write /sys/class/android_usb/android0/idProduct 903A
+    write /sys/class/android_usb/android0/f_diag/clients diag
+    write /sys/class/android_usb/android0/functions mtp,diag,adb
+    write /sys/class/android_usb/android0/enable 1
+    start adbd
+    setprop sys.usb.state $sys.usb.config
+
+on property:sys.usb.config=mtp,diag,diag_mdm
+    write /sys/class/android_usb/android0/enable 0
+    write /sys/class/android_usb/android0/idVendor 05C6
+    write /sys/class/android_usb/android0/idProduct 9040
+    write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
+    write /sys/class/android_usb/android0/functions mtp,diag
+    write /sys/class/android_usb/android0/enable 1
+    setprop sys.usb.state $sys.usb.config
+
+on property:sys.usb.config=mtp,diag,diag_mdm,adb
+    write /sys/class/android_usb/android0/enable 0
+    write /sys/class/android_usb/android0/idVendor 04E8
+    write /sys/class/android_usb/android0/idProduct 6860
+    write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
+    write /sys/class/android_usb/android0/functions mtp,diag,adb
+    write /sys/class/android_usb/android0/enable 1
+    start adbd
+    setprop sys.usb.state $sys.usb.config
+
+on property:sys.usb.config=diag,diag_mdm,ccid
+    write /sys/class/android_usb/android0/enable 0
+    write /sys/class/android_usb/android0/idVendor 05C6
+    write /sys/class/android_usb/android0/idProduct 9045
+    write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
+    write /sys/class/android_usb/android0/functions diag,ccid
+    write /sys/class/android_usb/android0/enable 1
+    setprop sys.usb.state $sys.usb.config
+
+on property:sys.usb.config=diag,diag_mdm,ccid,adb
+    write /sys/class/android_usb/android0/enable 0
+    write /sys/class/android_usb/android0/idVendor 05C6
+    write /sys/class/android_usb/android0/idProduct 9044
+    write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
+    write /sys/class/android_usb/android0/functions diag,adb,ccid
+    write /sys/class/android_usb/android0/enable 1
+    start adbd
+    setprop sys.usb.state $sys.usb.config
diff --git a/ramdisk/init.qcom.usb.sh b/ramdisk/init.qcom.usb.sh
new file mode 100644
index 0000000..cdd39af
--- /dev/null
+++ b/ramdisk/init.qcom.usb.sh
@@ -0,0 +1,115 @@
+#!/system/bin/sh
+# Copyright (c) 2012, Code Aurora Forum. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#     * Redistributions of source code must retain the above copyright
+#       notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+#       copyright notice, this list of conditions and the following
+#       disclaimer in the documentation and/or other materials provided
+#       with the distribution.
+#     * Neither the name of Code Aurora Forum, Inc. nor the names of its
+#       contributors may be used to endorse or promote products derived
+#      from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+# ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+#
+# Allow unique persistent serial numbers for devices connected via usb
+# User needs to set unique usb serial number to persist.usb.serialno and
+# if persistent serial number is not set then Update USB serial number if
+# passed from command line
+#
+serialno=`getprop persist.usb.serialno`
+case "$serialno" in
+    "")
+    serialnum=`getprop ro.serialno`
+    echo "$serialnum" > /sys/class/android_usb/android0/iSerial
+    ;;
+    * )
+    echo "$serialno" > /sys/class/android_usb/android0/iSerial
+esac
+
+chown root.system /sys/devices/platform/msm_hsusb/gadget/wakeup
+chmod 220 /sys/devices/platform/msm_hsusb/gadget/wakeup
+
+#
+# Allow persistent usb charging disabling
+# User needs to set usb charging disabled in persist.usb.chgdisabled
+#
+target=`getprop ro.board.platform`
+usbchgdisabled=`getprop persist.usb.chgdisabled`
+case "$usbchgdisabled" in
+    "") ;; #Do nothing here
+    * )
+    case $target in
+        "msm8660")
+        echo "$usbchgdisabled" > /sys/module/pmic8058_charger/parameters/disabled
+        echo "$usbchgdisabled" > /sys/module/smb137b/parameters/disabled
+	;;
+        "msm8960")
+        echo "$usbchgdisabled" > /sys/module/pm8921_charger/parameters/disabled
+	;;
+    esac
+esac
+
+#
+# Allow USB enumeration with default PID/VID
+#
+baseband=`getprop ro.baseband`
+echo 1  > /sys/class/android_usb/f_mass_storage/lun/nofua
+usb_config=`getprop persist.sys.usb.config`
+case "$usb_config" in
+    "" | "adb") #USB persist config not set, select default configuration
+        case $target in
+            "msm8960")
+                socid=`cat /sys/devices/system/soc/soc0/id`
+                case "$socid" in
+                    "109")
+                         setprop persist.sys.usb.config diag,adb
+                    ;;
+                    *)
+                        case "$baseband" in
+                            "mdm")
+                                 setprop persist.sys.usb.config diag,diag_mdm,serial_hsic,serial_tty,rmnet_hsic,mass_storage,adb
+                            ;;
+                            *)
+                                 setprop persist.sys.usb.config diag,serial_smd,serial_tty,rmnet_bam,mass_storage,adb
+                            ;;
+                        esac
+                    ;;
+                esac
+            ;;
+            "msm7627a")
+                setprop persist.sys.usb.config diag,serial_smd,serial_tty,rmnet_smd,mass_storage,adb
+            ;;
+            * )
+                case "$baseband" in
+                    "svlte2a")
+                         setprop persist.sys.usb.config mtp,adb
+                    ;;
+                    "csfb")
+                         setprop persist.sys.usb.config mtp,adb
+                    ;;
+                    *)
+                         setprop persist.sys.usb.config mtp,adb
+                    ;;
+                esac
+            ;;
+        esac
+    ;;
+    * ) ;; #USB persist config exists, do nothing
+esac
+
diff --git a/ramdisk/init.target.rc b/ramdisk/init.target.rc
new file mode 100644
index 0000000..df345e1
--- /dev/null
+++ b/ramdisk/init.target.rc
@@ -0,0 +1,123 @@
+# Copyright (c) 2010, Code Aurora Forum. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#     * Redistributions of source code must retain the above copyright
+#       notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+#       copyright notice, this list of conditions and the following
+#       disclaimer in the documentation and/or other materials provided
+#       with the distribution.
+#     * Neither the name of Code Aurora Forum, Inc. nor the names of its
+#       contributors may be used to endorse or promote products derived
+#       from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+# ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+#
+on boot
+    chown system system /dev/accelerometer
+    chown system system /dev/akm8975
+    chmod 664	/dev/accelerometer
+    chmod 664	/dev/akm8975
+    chown system system /sys/class/K3G_GYRO-dev/k3g/gyro_selftest_dps
+    chown system system /sys/class/sec/gsensorcal/calibration
+    chown system system /sys/class/proximity/proximity/proximity_avg
+    chown system system /sys/devices/virtual/K3G_GYRO-dev/k3g/gyro_selftest
+    chown system system /sys/devices/virtual/K3G_GYRO-dev/k3g/gyro_get_temp
+    chown system system /sys/devices/virtual/K3G_GYRO-dev/k3g/gyro_power_on
+    chown system system /sys/devices/virtual/K3G_GYRO-dev/k3g/gyro_selftest_dps
+    chown system system /sys/devices/virtual/accelerometer/accelerometer/acc_file
+    chown system system /sys/devices/virtual/sec/gsensorcal/calibration
+    chown system system /sys/class/sensors/barometer_sensor/sea_level_pressure
+    chown system system /sys/class/sensors/barometer_sensor/eeprom_check
+
+    #bln
+    chown system system /sys/class/misc/backlightnotification/notification_led
+    chown system system /sys/class/misc/backlightnotification/enabled
+
+    #camera
+    chown system camera /sys/class/ledflash/sec_ledflash/torch
+
+# ko files for vibrator (block this cmd temporary. vibrato driver cause reset during boot)
+    insmod /system/lib/modules/vibrator.ko
+    chown system system /sys/class/timed_output/vibrator/enable
+    chmod 0664 /sys/class/timed_output/vibrator/enable    
+
+# on emmc mount the partition containing firmware
+on emmc-fs
+    mount ext3 /dev/block/mmcblk0p24 /system remount rw
+    mkdir /system/etc/firmware/misc 0771 system system
+    mkdir /system/etc/firmware/misc_mdm 0771 system system
+    exec /system/bin/sh /system/etc/init.qcom.modem_links.sh
+    mount ext4 /dev/block/mmcblk0p24 /system remount ro barrier=0
+    mkdir /tombstones 0771 system system
+    mount ext4 /dev/block/mmcblk0p27 /tombstones nosuid nodev barrier=1
+
+
+    write /sys/devices/i2c-0/0-0024/cyttsp_update_fw 1
+service kickstart /system/bin/qcks l
+    oneshot
+    disabled
+
+# Start kickstart if csfb or svlte2a target
+on property:ro.baseband=csfb
+    wait /dev/ttyHSL1
+    mkdir /data/qcks 0770 system system
+    exec /system/bin/sh /system/etc/init.qcom.mdm_links.sh
+    start kickstart
+
+on property:ro.baseband=svlte2a
+    wait /dev/ttyHSL1
+    mkdir /data/qcks 0770 system system
+    exec /system/bin/sh /system/etc/init.qcom.mdm_links.sh
+    start kickstart
+
+
+service dcvsd0 /system/bin/dcvsd -c 0 -f /data/misc/dcvsd/dcvsd0.conf
+    user root
+    disabled
+
+service dcvsd1 /system/bin/dcvsd -c 1 -f /data/misc/dcvsd/dcvsd1.conf
+    user root
+    disabled
+
+service mpdecision /system/bin/mpdecision --no_sleep --avg_comp
+    user root
+    disabled
+
+#service thermald /system/bin/thermald
+#    class main
+#    user root
+#    group root
+
+# qrngd will drop permissions after startup
+service qrngd /system/bin/qrngd -f
+    class main
+    user root
+    group root
+
+on property:ro.baseband=svlte2a
+   setprop ro.config.ehrpd true
+   setprop ro.ril.svlte1x true
+
+on property:sys.radio.shutdown=true
+    write  /sys/devices/platform/rs300000a7.65536/force_sync 1
+    write  /sys/devices/platform/rs300100a7.65536/force_sync 1
+
+# TVout
+service TvoutService_C /system/bin/bintvoutservice
+     class main
+     user system
+     group graphics
diff --git a/ramdisk/ueventd.rc b/ramdisk/ueventd.rc
new file mode 100644
index 0000000..3058a0a
--- /dev/null
+++ b/ramdisk/ueventd.rc
@@ -0,0 +1,177 @@
+/dev/null                 0666   root       root
+/dev/zero                 0666   root       root
+/dev/full                 0666   root       root
+/dev/ptmx                 0666   root       root
+/dev/tty                  0666   root       root
+/dev/random               0666   root       root
+/dev/urandom              0666   root       root
+/dev/ashmem               0666   root       root
+/dev/binder               0666   root       root
+/dev/rtc0                 0600   system     system
+
+# logger should be world writable (for logging) but not readable
+/dev/log/*                0662   root       log
+
+# the msm hw3d client device node is world writable/readable.
+/dev/msm_hw3dc            0666   root       root
+
+# the DIAG device node is not world writable/readable.
+/dev/diag                 0660   system     qcom_diag
+
+# the genlock client device node is world writable/readable.
+/dev/genlock              0666   root      root
+
+# gpu driver for adreno200 is globally accessible
+/dev/kgsl                 0666   root       root
+/dev/kgsl-3d0             0666   root       root
+/dev/kgsl-2d0             0666   root       root
+/dev/kgsl-2d1             0666   root       root
+
+# these should not be world writable
+/dev/diag_arm9            0660   radio      radio
+/dev/android_adb          0660   adb        adb
+/dev/android_adb_enable   0660   adb        adb
+/dev/ttyMSM0              0600   bluetooth  bluetooth
+/dev/ttyHS0               0600   bluetooth  bluetooth
+/dev/ttyGS0               0660   system     system
+/dev/uinput               0660   system     bluetooth
+/dev/alarm                0664   system     radio
+/dev/tty0                 0660   root       system
+/dev/sdio_tty_ciq_00      0660   system     system
+/dev/graphics/*           0660   system     graphics
+/dev/msm_hw3dm            0660   system     graphics
+/dev/msm_rotator          0660   system     graphics
+/dev/hw_random            0660   system     system
+/dev/input/*              0660   root       input
+/dev/eac                  0660   root       audio
+/dev/cam                  0660   root       camera
+/dev/pmem                 0660   system     graphics
+/dev/pmem_audio           0660   system     audio
+/dev/pmem_adsp*           0660   system     audio
+/dev/pmem_smipool*        0660   system     camera
+/dev/pmem_camera*         0660   system     camera
+/dev/oncrpc/*             0660   root       system
+/dev/adsp/*               0660   system     audio
+/dev/snd/*                0660   system     audio
+/dev/mt9t013              0660   system     system
+/dev/msm_camera/*         0660   system     camera
+/dev/akm8976_daemon       0640   compass    system
+/dev/akm8976_aot          0640   compass    system
+/dev/akm8973_daemon       0640   compass    system
+/dev/akm8973_aot          0640   compass    system
+/dev/bma150               0640   compass    system
+/dev/cm3602               0640   compass    system
+/dev/akm8976_pffd         0640   compass    system
+/dev/lightsensor          0640   system     system
+/dev/radio0               0644   fm_radio   fm_radio
+/dev/i2c-0                0664   root       system
+/dev/i2c-1                0664   root       system
+/dev/i2c-2                0664   root       system
+/dev/i2c-4                0664   root       system
+/dev/msm_pcm_out*         0660   system     audio
+/dev/msm_pcm_in*          0660   system     audio
+/dev/msm_mvs              0660   system     audio
+/dev/msm_voicememo        0660   system     audio
+/dev/msm_pcm_ctl*         0660   system     audio
+/dev/msm_snd*             0660   system     audio
+/dev/msm_mp3*             0660   system     audio
+/dev/audience_a1026*      0660   system     audio
+/dev/tpa2018d1*           0660   system     audio
+/dev/msm_audpre           0660   system     audio
+/dev/msm_audio_ctl        0660   system     audio
+/dev/htc-acoustic         0660   system     audio
+/dev/vdec                 0660   system     audio
+/dev/tzcom                0660   system     audio
+/dev/qce                  0660   system     audio
+/dev/q6venc               0660   system     audio
+/dev/snd/dsp              0660   system     audio
+/dev/snd/dsp1             0660   system     audio
+/dev/snd/mixer            0660   system     audio
+/dev/msm_pcm_lp_dec       0660   system     audio
+/dev/smd4                 0660   system     system
+/dev/smd3                 0660   bluetooth      bluetooth
+/dev/smd2                 0660   bluetooth      bluetooth
+/dev/smd0                 0640   radio      radio
+/dev/smd7                 0640   radio      radio
+/dev/smdcntl0             0640   radio      radio
+/dev/smdcntl1             0640   radio      radio
+/dev/smdcntl2             0640   radio      radio
+/dev/smdcntl3             0640   radio      radio
+/dev/smdcntl4             0640   radio      radio
+/dev/smdcntl5             0640   radio      radio
+/dev/smdcntl6             0640   radio      radio
+/dev/smdcntl7             0640   radio      radio
+/dev/sdioctl0             0640   radio      radio
+/dev/sdioctl1             0640   radio      radio
+/dev/sdioctl2             0640   radio      radio
+/dev/sdioctl3             0640   radio      radio
+/dev/sdioctl4             0640   radio      radio
+/dev/sdioctl4             0640   radio      radio
+/dev/sdioctl5             0640   radio      radio
+/dev/sdioctl6             0640   radio      radio
+/dev/sdioctl7             0640   radio      radio
+/dev/sdioctl8             0640   radio      radio
+/dev/rmnet_mux_ctrl       0640   radio      radio
+/dev/hsicctl0             0640   radio      radio
+/dev/hsicctl1             0640   radio      radio
+/dev/hsicctl2             0640   radio      radio
+/dev/hsicctl3             0640   radio      radio
+/dev/qemu_trace           0666   system     system
+/dev/qmi                  0640   radio      radio
+/dev/qmi0                 0640   radio      radio
+/dev/qmi1                 0640   radio      radio
+/dev/qmi2                 0640   radio      radio
+/dev/bus/usb/*            0660   root       usb
+/dev/mtp_usb              0660   root       mtp
+/dev/gemini0              0660   system     camera
+/dev/mdm                  0660   system     system
+/dev/ttyHSL1              0660   system     system
+/dev/tty_sdio_00          0660   system     system
+/dev/block/mmcblk0        0440   system     system
+/dev/block/mmcblk0p18     0660   system     system
+/dev/block/mmcblk0p19     0660   system     system
+/dev/block/mmcblk0p20     0660   system     system
+/dev/usb_accessory        0660   root       usb
+/dev/tspdrv		  0660	 shell	    shell
+/dev/video*	          0660   system     camera 
+/dev/tun                  0660   system     vpn
+#regular apps need to be able to open ion
+/dev/ion                  0664   media     system
+
+# CDMA radio interface MUX
+/dev/ts0710mux*           0640   radio      radio
+/dev/ppp                  0660   radio      vpn
+
+# sysfs properties
+/sys/devices/virtual/input/input*   enable      0660  root   input
+/sys/devices/virtual/input/input*   poll_delay  0660  root   input
+#permissions for video
+/dev/msm_vidc_reg         0660  system       audio
+/dev/msm_vidc_dec         0660  system       audio
+/dev/msm_vidc_dec_sec     0660  system       audio
+/dev/msm_vidc_enc         0660  system       audio
+#permissions for audio
+/dev/msm_amrnb            0660  system       audio
+/dev/msm_amrwb            0660  system       audio
+/dev/msm_aac              0660  system       audio
+/dev/msm_multi_aac        0660  system       audio
+/dev/msm_aac_in           0660  system       audio
+/dev/msm_qcelp            0660  system       audio
+/dev/msm_evrc             0660  system       audio
+/dev/msm_fm               0660  system       audio
+/dev/msm_acdb             0660  system       audio
+/dev/msm_rtac             0660  system       audio
+/dev/msm_wma              0660  system       audio
+/dev/msm_wmapro           0660  system       audio
+/dev/msm_qcelp_in         0660  system       audio
+/dev/msm_evrc_in          0660  system       audio
+/dev/msm_preproc_ctl      0660  system       audio
+/dev/msm_a2dp_in          0640  system       audio
+/dev/msm_amrnb_in         0640  system       audio
+/sys/devices/virtual/usb_composite/*   enable      0664  root   system
+/sys/devices/virtual/smdpkt/smdcntl*       open_timeout   0664 radio radio
+#permissions for sensors
+/dev/msm_dsps             0660  system       system
+# for usb printer
+/dev/bus/usb/*         0660        system        usb
+/dev/usb/lp*           0660        system        usb
diff --git a/recovery.fstab b/recovery.fstab
new file mode 100644
index 0000000..8c87be8
--- /dev/null
+++ b/recovery.fstab
@@ -0,0 +1,8 @@
+/boot       emmc        /dev/block/mmcblk0p8
+/efs        ext4        /dev/block/mmcblk0p21
+/recovery   emmc        /dev/block/mmcblk0p22
+/data       ext4        /dev/block/mmcblk0p25
+/system     ext4        /dev/block/mmcblk0p24
+/cache      ext4        /dev/block/mmcblk0p26
+/emmc       vfat        /dev/block/mmcblk0p28
+/sdcard     vfat        /dev/block/mmcblk1p1    /dev/block/mmcblk1
diff --git a/slim.dependencies b/slim.dependencies
new file mode 100644
index 0000000..adabeee
--- /dev/null
+++ b/slim.dependencies
@@ -0,0 +1,11 @@
+[
+  {
+    "repository": "TheMuppets/proprietary_vendor_samsung",
+    "target_path": "vendor/samsung"
+  },
+  {
+    "repository": "SlimRoms/device_samsung_msm8860-common",
+    "target_path": "device/samsung/msm8860-common"
+  },
+]
+
diff --git a/slim.mk b/slim.mk
new file mode 100644
index 0000000..bb68307
--- /dev/null
+++ b/slim.mk
@@ -0,0 +1,61 @@
+$(call inherit-product, device/samsung/hercules/full_hercules.mk)
+
+# Release name
+PRODUCT_RELEASE_NAME := T989
+
+# Preload bootanimation
+TARGET_BOOTANIMATION_PRELOAD := true
+
+# Inherit some common slim stuff.
+$(call inherit-product, vendor/slim/config/gsm.mk)
+
+# Enhanced NFC
+$(call inherit-product, vendor/slim/config/nfc_enhanced.mk)
+
+# Inherit some common CM stuff.
+$(call inherit-product, vendor/slim/config/common_full_phone.mk)
+
+# Inherit device settings
+$(call inherit-product, vendor/slim/config/common_sgs.mk)
+
+#copy boot animation
+PRODUCT_COPY_FILES +=  \
+    vendor/slim/prebuilt/hdpi/bootanimation.zip:system/media/bootanimation.zip
+
+#copy kernel and modules
+PRODUCT_COPY_FILES += \
+	device/samsung/hercules/prebuilt/boot.img:system/slimkernel/boot.img \
+	device/samsung/hercules/prebuilt/boot.img:kernel \
+	device/samsung/hercules/prebuilt/system/lib/modules/ansi_cprng.ko:system/lib/modules/ansi_cprng.ko \
+	device/samsung/hercules/prebuilt/system/lib/modules/cls_flow.ko:system/lib/modules/cls_flow.ko \
+	device/samsung/hercules/prebuilt/system/lib/modules/dal_remotetest.ko:system/lib/modules/dal_remotetest.ko \
+	device/samsung/hercules/prebuilt/system/lib/modules/dhd.ko:system/lib/modules/dhd.ko \
+	device/samsung/hercules/prebuilt/system/lib/modules/dma_test.ko:system/lib/modules/dma_test.ko \
+	device/samsung/hercules/prebuilt/system/lib/modules/evbug.ko:system/lib/modules/evbug.ko \
+	device/samsung/hercules/prebuilt/system/lib/modules/gspca_main.ko:system/lib/modules/gpsca_main.ko \
+	device/samsung/hercules/prebuilt/system/lib/modules/ksapi.ko:system/lib/modules/ksapi.ko \
+	device/samsung/hercules/prebuilt/system/lib/modules/lcd.ko:system/lib/modules/lcd.ko \
+	device/samsung/hercules/prebuilt/system/lib/modules/mmc_test.ko:system/lib/modules/mmc_test.ko \
+	device/samsung/hercules/prebuilt/system/lib/modules/msm-buspm-dev.ko:system/lib/modules/msm-buspm-dev.ko \
+	device/samsung/hercules/prebuilt/system/lib/modules/msm_tsif.ko:system/lib/modules/msm_tsif.ko \
+	device/samsung/hercules/prebuilt/system/lib/modules/qce.ko:system/lib/modules/qce.ko \
+	device/samsung/hercules/prebuilt/system/lib/modules/qcedev.ko:system/lib/modules/qcedev.ko \
+	device/samsung/hercules/prebuilt/system/lib/modules/qcrypto.ko:system/lib/modules/qcrypto.ko \
+	device/samsung/hercules/prebuilt/system/lib/modules/sch_dsmark.ko:system/lib/modules/sch_dsmark.ko \
+	device/samsung/hercules/prebuilt/system/lib/modules/scsi_wait_scan.ko:system/lib/modules/scsi_wait_scan.ko \
+	device/samsung/hercules/prebuilt/system/lib/modules/spidev.ko:system/lib/modules/spidev.ko \
+	device/samsung/hercules/prebuilt/system/lib/modules/tsif_chrdev.ko:system/lib/modules/tsif_chrdev.ko \
+	device/samsung/hercules/prebuilt/system/lib/modules/vibrator.ko:system/lib/modules/vibrator.ko \
+	device/samsung/hercules/prebuilt/system/lib/hw/lights.msm8660.so:system/lib/hw/lights.msm8660.so
+
+#copy 00check
+PRODUCT_COPY_FILES += \
+	vendor/slim/prebuilt/common/etc/init.d/00check:system/etc/init.d/00check
+
+PRODUCT_BUILD_PROP_OVERRIDES += PRODUCT_NAME=SGH-T989 TARGET_DEVICE=SGH-T989 BUILD_FINGERPRINT="samsung/SGH-T989/SGH-T989:4.0.4/IMM76D/UVLH1:user/release-keys" PRIVATE_BUILD_DESC="SGH-T989-user 4.0.4 IMM76D UVLH1 release-keys"
+
+#TARGET_BOOTANIMATION_NAME := vertical-800x1280
+
+PRODUCT_NAME := slim_hercules
+PRODUCT_DEVICE := hercules
+
diff --git a/system.prop b/system.prop
new file mode 100644
index 0000000..3521060
--- /dev/null
+++ b/system.prop
@@ -0,0 +1,99 @@
+#
+# system.prop for SGH-T989
+#
+
+rild.libpath=/system/lib/libril-qc-qmi-1.so
+rild.libargs=-d /dev/smd0
+persist.rild.nitz_plmn=
+persist.rild.nitz_long_ons_0=
+persist.rild.nitz_long_ons_1=
+persist.rild.nitz_long_ons_2=
+persist.rild.nitz_long_ons_3=
+persist.rild.nitz_short_ons_0=
+persist.rild.nitz_short_ons_1=
+persist.rild.nitz_short_ons_2=
+persist.rild.nitz_short_ons_3=
+ril.subscription.types=NV,RUIM
+DEVICE_PROVISIONED=1
+
+dev.pm.dyn_samplingrate=1
+
+#system props for the MM modules
+
+media.stagefright.enable-player=true
+media.stagefright.enable-http=true
+media.stagefright.enable-fma2dp=false
+media.stagefright.enable-aac=true
+media.stagefright.enable-qcp=true
+
+ro.vendor.extension_library=/system/lib/libqc-opt.so
+
+#
+# system props for the data modules
+#
+ro.use_data_netmgrd=true
+persist.data_netmgrd_nint=16
+
+#
+# system props for SD card emulation of emmc partition
+#
+ro.emmc.sdcard.partition=17
+
+#system props for time-services
+persist.timed.enable=true
+
+# System props for audio
+persist.audio.fluence.mode=endfire
+persist.audio.vr.enable=false
+
+#
+# system prop for opengles version
+#
+# 131072 is decimal for 0x20000 to report version 2
+ro.opengles.version=131072
+
+#
+# System prop for sending transmit power request to RIL during WiFi hotspot on/off
+#
+ro.ril.transmitpower=true
+
+#
+# Needed to match behavior of stock rom
+#      D/PHONE: mDoesRilSendMultipleCallRing=false
+#
+ro.telephony.call_ring.multiple=0
+
+# for 480x800 panel
+ro.sf.lcd_density=240
+
+# Fields for custom RIL
+# MAX PROP NAME is 31 chars --|
+ro.telephony.ril_class=SamsungQualcommUiccRIL
+telephony.lteOnGsmDevice=1
+
+# System property for SIM
+persist.radio.apm_sim_not_pwdn=1
+
+# System prop for qmi adb log
+persist.radio.adb_log_on=1
+
+# System proverty for sys info indication
+persist.radio.add_power_save=1
+
+# System proverty snapshot disable
+persist.radio.snapshot_disabled=1
+
+# tweaks
+persist.sys.ui.hw=1
+dalvik.vm.verify_bytecode=false
+
+# data tweaks
+ro.ril.hsxpa=1
+ro.ril.gprsclass=10
+
+# hardware info
+ro.device.cpu=1.5 GHz dual-core Qualcomm APQ8060 (S3) Snapdragon
+ro.device.gpu=Qualcomm Adreno 220
+ro.device.rear_cam=8 MP
+ro.device.front_cam=2 MP
+ro.device.screen_res=480x800
diff --git a/vold.fstab b/vold.fstab
new file mode 100644
index 0000000..e52e8a1
--- /dev/null
+++ b/vold.fstab
@@ -0,0 +1,22 @@
+## Vold 2.0 Generic fstab
+## - San Mehat (san@android.com)
+## 
+
+#######################
+## Regular device mount
+##
+## Format: dev_mount <label> <mount_point> <part> <sysfs_path1...> 
+## label        - Label for the volume
+## mount_point  - Where the volume will be mounted
+## part         - Partition # (1 based), or 'auto' for first usable partition.
+## <sysfs_path> - List of sysfs paths to source devices
+## storage_struct - ex) series, "/mnt/sdcard/extStorages" / parallel
+######################
+# internal sdcard
+dev_mount sdcard /storage/sdcard0 28 /devices/platform/msm_sdcc.1/mmc_host/mmc0/mmc0
+
+# external sdcard
+dev_mount external_sd /storage/sdcard1 auto /devices/platform/msm_sdcc.3/mmc_host/mmc2/mmc2
+
+#otg sdcard
+dev_mount sda /mnt/usbdisk auto /devices/platform/msm_hsusb_host.0