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