general: device tree for source kernel; dt.img

This commit is contained in:
2026-09-13 20:04:15 +02:00
parent d7ad50bab4
commit 9d574fb316
17 changed files with 3817 additions and 3 deletions
+5
View File
@@ -0,0 +1,5 @@
LOCAL_PATH := $(call my-dir)
ifeq ($(TARGET_DEVICE),rubenslte)
include $(call all-subdir-makefiles,$(LOCAL_PATH))
endif
+2
View File
@@ -0,0 +1,2 @@
PRODUCT_MAKEFILES := \
$(LOCAL_DIR)/omni_rubenslte.mk
+74
View File
@@ -0,0 +1,74 @@
DEVICE_TREE := device/samsung/rubenslte
# Architecture
TARGET_ARCH := arm
TARGET_ARCH_VARIANT := armv7-a-neon
TARGET_CPU_VARIANT := krait
TARGET_CPU_ABI := armeabi-v7a
TARGET_CPU_ABI2 := armeabi
TARGET_CPU_SMP := true
ARCH_ARM_HAVE_TLS_REGISTER := true
# Board
TARGET_BOARD_PLATFORM := msm8226
TARGET_BOARD_PLATFORM_GPU := qcom-adreno305
TARGET_BOOTLOADER_BOARD_NAME := MSM8226
# Bootloader
TARGET_NO_BOOTLOADER := true
BOARD_VENDOR := samsung
# Kernel (built from source)
TARGET_KERNEL_SOURCE := kernel/samsung/rubenslte
TARGET_KERNEL_ARCH := arm
TARGET_KERNEL_HEADER_ARCH := arm
TARGET_KERNEL_CONFIG := msm8226-sec_defconfig
TARGET_KERNEL_VARIANT_CONFIG := msm8926-sec_rubenslte_defconfig
TARGET_KERNEL_SELINUX_CONFIG := selinux_defconfig
KERNEL_TOOLCHAIN_PREFIX := arm-eabi-
# Boot image with separate device tree blob (dt.img via dtbtool)
BOARD_CUSTOM_BOOTIMG_MK := $(DEVICE_TREE)/mkbootimg.mk
BOARD_KERNEL_SEPARATED_DT := true
INSTALLED_DTIMAGE_TARGET := $(PRODUCT_OUT)/dt.img
BOARD_KERNEL_CMDLINE := console=null androidboot.console=null androidboot.hardware=qcom user_debug=23 androidboot.selinux=permissive
BOARD_KERNEL_BASE := 0x00000000
BOARD_KERNEL_PAGESIZE := 2048
BOARD_MKBOOTIMG_ARGS := --kernel_offset 0x00008000 --ramdisk_offset 0x02000000 --tags_offset 0x01e00000 --dt $(INSTALLED_DTIMAGE_TARGET)
# Filesystems
BOARD_HAS_LARGE_FILESYSTEM := true
TARGET_USERIMAGES_USE_EXT4 := true
TARGET_USERIMAGES_USE_F2FS := true
BOARD_SUPPRESS_SECURE_ERASE := true
# Partitions
BOARD_BOOTIMAGE_PARTITION_SIZE := 10485248
BOARD_RECOVERYIMAGE_PARTITION_SIZE := 10485248
BOARD_SYSTEMIMAGE_PARTITION_SIZE := 2411724288
BOARD_USERDATAIMAGE_PARTITION_SIZE := 12843662336
BOARD_CACHEIMAGE_PARTITION_SIZE := 314572288
BOARD_FLASH_BLOCK_SIZE := 131072
# Time services
BOARD_USES_QC_TIME_SERVICES := true
TARGET_RECOVERY_QCOM_RTC_FIX := true
# TWRP
TW_THEME := portrait_mdpi
RECOVERY_SDCARD_ON_DATA := true
TARGET_RECOVERY_PIXEL_FORMAT := "RGBX_8888"
TW_BRIGHTNESS_PATH := "/sys/class/leds/lcd-backlight/brightness"
TARGET_USE_CUSTOM_LUN_FILE_PATH := "/sys/devices/platform/msm_hsusb/gadget/lun%d/file"
TW_MAX_BRIGHTNESS := 255
TW_DEFAULT_BRIGHTNESS := 128
TW_NO_REBOOT_BOOTLOADER := true
TW_HAS_DOWNLOAD_MODE := true
TW_MTP_DEVICE := "/dev/mtp_usb"
TW_EXCLUDE_TWRPAPP := true
TW_NO_EXFAT_FUSE := true
TW_EXCLUDE_BASH := true
TW_EXCLUDE_TZDATA := true
TW_EXCLUDE_NANO := true
TW_NO_SSH := true
-3
View File
@@ -1,3 +0,0 @@
# twrp_device_samsung_rubenslte
Based on https://github.com/matteo0026/twrp_device_samsung_milletlte.
+17
View File
@@ -0,0 +1,17 @@
ifeq ($(BOARD_KERNEL_SEPARATED_DT),true)
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := \
dtbtool.c
LOCAL_CFLAGS += \
-Wall
## Hybrid v1/v2 dtbTool. Use a different name to avoid conflicts with copies in device repos
LOCAL_MODULE := dtbToolLineage
LOCAL_MODULE_TAGS := optional
include $(BUILD_HOST_EXECUTABLE)
endif
+1054
View File
File diff suppressed because it is too large Load Diff
+235
View File
@@ -0,0 +1,235 @@
Copyright (c) 2012-2014, The Linux Foundation. All rights reserved.
Redistribution and use in source form and compiled forms (SGML, HTML,
PDF, PostScript, RTF and so forth) with or without modification, are
permitted provided that the following conditions are met:
Redistributions in source form must retain the above copyright
notice, this list of conditions and the following disclaimer as the
first lines of this file unmodified.
Redistributions in compiled form (transformed to other DTDs,
converted to PDF, PostScript, RTF and other formats) 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.
THIS DOCUMENTATION IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE AND
NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD
DOCUMENTATION PROJECT 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 DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
DAMAGE.
Android - Table of Device Tree
==============================
0) Document revision
v1.0 - Initial version (dng)
v1.1 - Add v2 format to allow subtype (dng)
1) Android boot image:
----------------------
1.1) Header:
1) Magic (8B)
2) kernel size (4B)
3) kernel addr (4B)
4) ramdisk size (4B)
5) ramdisk addr (4B)
6) 2ndary size (4B)
7) 2ndary addr (4B)
8) tags addr (4B)
9) page size (4B)
10) unused #1 (4B) (zero in standard Android)
11) unused #2 (4B) (zero in standard Android)
12) product name (16B)
13) kernel cmdline (512B)
14) id (8B)
1.2) Layout:
A) header (as above - 1 page)
B) kernel (n pages)
C) ramdisk (m pages)
D) second stage (o pages)
2) QC table of device tree
--------------------------
2.1) Changes:
i) use "unused #1, #2" members in existing boot image
header to point to new table of device tree
(#1 - size of QC table of DT)
ii) append table of device tree (described later)
after "D) second stage"
2.2) Format:
size
x +------------------+
| | MAGIC ("QCDT") | 4B
| +------------------+
header | VERSION | uint32 (version 3)
| +------------------+
| | num of DTBs | uint32 (number of DTB entries)
x +------------------+
| | platform id #1 | uint32 (e.g. ID for MSM8974)
| +------------------+
| | variant id #1 | uint32 (e.g. ID for CDP, MTP)
| +------------------+
| | subtype id #1 | uint32 (e.g. ID for subtype) (QCDT v2)
device +------------------+
#1 | soc rev #1 | uint32 (e.g. MSM8974 v2)
entry +------------------+
| | pmic0 #1 | uint32 (pmic0-> first smallest SID of existing pmic)
| +------------------+
| | pmic1 #1 | uint32 (pmic1-> secondary smallest SID of existing pmic)
| +------------------+
| | pmic2 #1 | uint32 (pmic2-> third smallest SID of existing pmic)
| +------------------+
| | pmic3 #1 | uint32 (pmic3-> fourth smallest SID of existing pmic)
| +------------------+
| | offset #1 | uint32 (byte offset from start/before MAGIC
| +------------------+ to DTB entry)
| | size #1 | uint32 (size in bytes of DTB blob)
x +------------------+
. .
. . (repeat)
. .
x +------------------+
| | platform id #Z | uint32 (e.g. ID for MSM8974)
| +------------------+
device | variant id #Z | uint32 (e.g. ID for CDP, MTP)
#Z +------------------+
entry | subtype id #Z | uint32 (e.g. ID for subtype) (QCDT v2)
(last) +------------------+
| | soc rev #Z | uint32 (e.g. MSM8974 v2)
| +------------------+
| | pmic0 #1 | uint32 (pmic0-> first smallest SID of existing pmic)
| +------------------+
| | pmic1 #1 | uint32 (pmic1-> secondary smallest SID of existing pmic)
| +------------------+
| | pmic2 #1 | uint32 (pmic2-> third smallest SID of existing pmic)
| +------------------+
| | pmic3 #1 | uint32 (pmic3-> fourth smallest SID of existing pmic)
| +------------------+
| | offset #Z | uint32 (byte offset from start/before MAGIC
x +------------------+ to DTB entry)
| 0 ("zero") | uint32 (end of list delimiter)
+------------------+ to DTB entry)
| padding | variable length for next DTB to start on
+------------------+ page boundary
| DTB #1 | variable (start is page aligned)
| |
| |
+------------------+
| padding | variable length for next DTB to start on
+------------------+ page boundary
.
.
.
+------------------+
| DTB #Z (last) | variable (start is page aligned)
| |
| |
+------------------+
3) Operations
-------------
3.1) Build-time:
1) Each DTS per device will add a "qcom,msm-id" entry
e.g. for msm8974-sim.dts, add
qcom,msm-id = <x y z>;
or
qcom,msm-id = <x z>;
qcom,board-id = <y y'>;
or
qcom,msm-id = <x z>;
qcom,board-id = <y y'>;
qcom,pmic-id = <a b c d>;
x = ID for msm8974
y = ID for CDP, MTP, etc.
y' = ID for subtype (assumed zero if absent)
z = ID for soc revision
a = pmic0
b = pmic1
c = pmic2
d = pmic3
SBL populates the pmic entries always in ascending order of SID, so
pmic0-> SID0, pmic1-> SID1, pmic2-> SID2, pmic3-> SID3.
e.g. for qcom,pmic-id = <pmic0 pmic1 pmic2 pmic3>
Board X = MSM8994 + PM8994 + PMI8994 (Existing boards [ROW])
Board Y = MSM8994 + PM8994 + PMI8994 + PM8004 (Internal SS board variant)
Board Z = MSM8994 + PM8994 + PM8004 (Boards that SS will be making)
For all boards X, Y, and Z, PMICs have the following SIDs and REVID SUBTYPEs
(i.e. PMIC Model):
PM8994 - SID 0 and 1; subtype = 9
PMI8994 - SID 2 and 3; subtype = 10
PM8004 - SID 4 and 5; subtype = 12
LK using SMEM PMIC info(1 as major and 0 as minor version for example):
Board X: qcom,pmic-id = <0x0109 0x010A 0x0 0x0>;
Board Y: qcom,pmic-id = <0x0109 0x010A 0x010C 0x0>;
Board Z: qcom,pmic-id = <0x0109 0x010C 0x0 0x0>;
The entry can optionally be an array:
qcom,msm-id = <x1 y1 z1>, <x2 y2 z2>, ...;
or
qcom,msm-id = <x1 z1>, <x2 z2>, ...;
qcom,board-id = <y1 y1'>, ...;
or
qcom,msm-id = <x1 z1>, <x2 z2>, ...;
qcom,board-id = <y1 y1'>, ...;
qcom,pmic-id = <a1 b1 c1 d1>, ...;
Note that qcom,msm-id, qcom,board-id and qcom,pmic-id are not matched pairs.
2) Kernel compile will generate the DTB
3) Android build will run a new tool (dtbTool)
a) scan the DTB output directory for all compiled DTB
b) decompile the DTB for "qcom,msm-id"/"qcom,board-id"/"qcom,pmic-id"
c) generate the QC table of device tree in sorted
order (platform, variant, subtype, soc rev, pmic0, pmic1, pmic2, pmic3)
d) modified mkbootimg will merge new table of DT
3.2) Run-time:
1) LK bootloader will obtain platform id/variant/subtype/soc rev/major ver/minor ver
/pmic0/pmic1/pmic2/pmic3 info either from early bootloaders or via other means
2) LK bootloader will check entries #10 for non-zero
value (set to zero for standard boot.img). If the
value is non-zero, refer to page section after
the "second stage" in the boot.img layout
3) Check QCDT magic
4) Check QCDT version (optional LK to handle multiple
QCDT version)
5) LK scans through the QCDT table to look for matching
entry. Search order is:
1) msm ID exact match
2) Platform type exact match
3) subtype ID exact match
4) HLOS subtype exact match
5) Pmic0 model ID exact match
6) Pmic1 model ID exact match
7) Pmic2 model ID exact match
8) Pmic3 model ID exact match
9) foundry ID, look for exact match, if not found choose
device tree with foundry-id(0x0)
10) select the highest soc rev in QCDT that is
equal to or lower than the runtime detected soc rev
11) select the highest major&minor ver in QCDT that is
equal to or lower than the runtime detected major ver
12) select the highest pmic0 major&minor in QCDT that is
equal to or lower than the runtime detected pmic0
13) select the highest pmic1 major&minor in QCDT that is
equal to or lower than the runtime detected pmic1
14) select the highest pmic2 major&minor in QCDT that is
equal to or lower than the runtime detected pmic2
15) select the highest pmic3 major&minor in QCDT that is
equal to or lower than the runtime detected pmic3
6) Load the matching DTB blob to the tags addr
7) LK pass the correct DTB to the kernel
+44
View File
@@ -0,0 +1,44 @@
LOCAL_PATH := $(call my-dir)
# Build dt.img from the kernel's compiled .dtb files using dtbToolLineage
ifeq ($(strip $(BOARD_KERNEL_SEPARATED_DT)),true)
DTBTOOL := $(HOST_OUT_EXECUTABLES)/dtbToolLineage$(HOST_EXECUTABLE_SUFFIX)
# dtbToolCM searches the given directory recursively
possible_dtb_dirs = $(KERNEL_OUT)/arch/$(KERNEL_ARCH)/boot/
define build-dtimage-target
$(call pretty,"Target dt image: $@")
$(hide) for dir in $(possible_dtb_dirs); do \
if [ -d "$$dir" ]; then \
dtb_dir="$$dir"; \
break; \
fi; \
done; \
$(DTBTOOL) $(BOARD_DTBTOOL_ARGS) -o $@ -s $(BOARD_KERNEL_PAGESIZE) -p $(KERNEL_OUT)/scripts/dtc/ "$$dtb_dir";
$(hide) chmod a+r $@
endef
$(INSTALLED_DTIMAGE_TARGET): $(DTBTOOL) $(TARGET_PREBUILT_INT_KERNEL)
$(build-dtimage-target)
@echo "Made DT image: $@"
.PHONY: dtimage
dtimage: $(INSTALLED_DTIMAGE_TARGET)
endif
$(INSTALLED_BOOTIMAGE_TARGET): $(MKBOOTIMG) $(INTERNAL_BOOTIMAGE_FILES) $(INSTALLED_DTIMAGE_TARGET)
$(call pretty,"Target boot image: $@")
$(hide) $(MKBOOTIMG) $(INTERNAL_BOOTIMAGE_ARGS) $(BOARD_MKBOOTIMG_ARGS) --output $@
$(hide) echo -n "SEANDROIDENFORCE" >> $@
$(hide) $(call assert-max-image-size,$@,$(BOARD_BOOTIMAGE_PARTITION_SIZE),raw)
@echo "Made boot image: $@"
$(INSTALLED_RECOVERYIMAGE_TARGET): $(MKBOOTIMG) $(recovery_ramdisk) $(recovery_kernel) $(INSTALLED_DTIMAGE_TARGET)
@echo "----- Making recovery image ------"
$(hide) $(MKBOOTIMG) $(INTERNAL_RECOVERYIMAGE_ARGS) $(BOARD_MKBOOTIMG_ARGS) --output $@
$(hide) echo -n "SEANDROIDENFORCE" >> $@
$(hide) $(call assert-max-image-size,$@,$(BOARD_RECOVERYIMAGE_PARTITION_SIZE),raw)
@echo "Made recovery image: $@"
+20
View File
@@ -0,0 +1,20 @@
$(call inherit-product, $(SRC_TARGET_DIR)/product/embedded.mk)
$(call inherit-product, vendor/omni/config/common.mk)
PRODUCT_COPY_FILES += \
bionic/libc/zoneinfo/tzdata:recovery/root/system/usr/share/zoneinfo/tzdata
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/recovery/root/fstab.qcom:root/fstab.qcom \
$(LOCAL_PATH)/recovery/root/init.qcom.rc:root/init.qcom.rc \
$(LOCAL_PATH)/recovery/root/init.qcom.usb.rc:root/init.qcom.usb.rc \
$(LOCAL_PATH)/recovery/root/init.target.rc:root/init.target.rc \
$(LOCAL_PATH)/recovery/root/ueventd.qcom.rc:root/ueventd.qcom.rc
PRODUCT_BRAND := samsung
PRODUCT_MANUFACTURER := samsung
PRODUCT_MODEL := SM-T365
PRODUCT_DEVICE := rubenslte
PRODUCT_RELEASE_NAME := rubenslte
PRODUCT_NAME := omni_rubenslte
+13
View File
@@ -0,0 +1,13 @@
/boot emmc /dev/block/platform/msm_sdcc.1/by-name/boot
/recovery emmc /dev/block/platform/msm_sdcc.1/by-name/recovery flags=display="Recovery";backup=1
/system ext4 /dev/block/platform/msm_sdcc.1/by-name/system
/data ext4 /dev/block/platform/msm_sdcc.1/by-name/userdata
/cache ext4 /dev/block/platform/msm_sdcc.1/by-name/cache
/firmware emmc /dev/block/platform/msm_sdcc.1/by-name/modem flags=display="Modem";backup=0
/efs ext4 /dev/block/platform/msm_sdcc.1/by-name/efs flags=display="EFS";backup=1
/persist ext4 /dev/block/platform/msm_sdcc.1/by-name/persist flags=display="Persist";backup=1
/preload ext4 /dev/block/platform/msm_sdcc.1/by-name/hidden flags=display="Preload";backup=0
/misc emmc /dev/block/platform/msm_sdcc.1/by-name/fota flags=display="Misc"
/external_sd auto /dev/block/mmcblk1p1 /dev/block/mmcblk1 flags=display="Micro SDcard";storage;wipeingui;removable
/usb-otg auto /dev/block/sda1 /dev/block/sda flags=display="USB OTG";storage;wipeingui;removable
+19
View File
@@ -0,0 +1,19 @@
# Android fstab file.
# 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
#TODO: Add 'check' as fs_mgr_flags with data partition.
# Currently we dont have e2fsck compiled. So fs check would failed.
#<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
/dev/block/platform/msm_sdcc.1/by-name/system /system ext4 ro,errors=panic wait
/dev/block/platform/msm_sdcc.1/by-name/userdata /data ext4 nosuid,nodev,noatime,noauto_da_alloc,discard,journal_async_commit,errors=panic wait,check,encryptable=footer
# VOLD
/devices/msm_sdcc.2/mmc_host/mmc1/ auto vfat default voldmanaged=extSdCard:auto,noemulatedsd
/devices/platform/msm_hsusb_host/usb1*sda,/devices/platform/msm_hsusb_host/usb2*sda auto vfat default voldmanaged=UsbDriveA:auto
/devices/platform/msm_hsusb_host/usb1*sdb,/devices/platform/msm_hsusb_host/usb2*sdb auto vfat default voldmanaged=UsbDriveB:auto
/devices/platform/msm_hsusb_host/usb1*sdc,/devices/platform/msm_hsusb_host/usb2*sdc auto vfat default voldmanaged=UsbDriveC:auto
/devices/platform/msm_hsusb_host/usb1*sdd,/devices/platform/msm_hsusb_host/usb2*sdd auto vfat default voldmanaged=UsbDriveD:auto
/devices/platform/msm_hsusb_host/usb1*sde,/devices/platform/msm_hsusb_host/usb2*sde auto vfat default voldmanaged=UsbDriveE:auto
/devices/platform/msm_hsusb_host/usb1*sdf,/devices/platform/msm_hsusb_host/usb2*sdf auto vfat default voldmanaged=UsbDriveF:auto
+963
View File
@@ -0,0 +1,963 @@
# Copyright (c) 2009-2012,2014 The Linux Foundation. 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 The Linux Foundation 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
import init.target.rc
import init.carrier.rc
on early-init
mount debugfs debugfs /sys/kernel/debug
on init
# Support Preload install apks
mkdir /preload 0771 system system
# See storage config details at http://source.android.com/tech/storage/
mkdir /mnt/media_rw/extSdCard 0700 media_rw media_rw
mkdir /mnt/media_rw/UsbDriveA 0700 media_rw media_rw
mkdir /mnt/media_rw/UsbDriveB 0700 media_rw media_rw
mkdir /mnt/media_rw/UsbDriveC 0700 media_rw media_rw
mkdir /mnt/media_rw/UsbDriveD 0700 media_rw media_rw
mkdir /mnt/media_rw/UsbDriveE 0700 media_rw media_rw
mkdir /mnt/media_rw/UsbDriveF 0700 media_rw media_rw
# Set permissions for persist partition
mkdir /persist 0771 system system
# See storage config details at http://source.android.com/tech/storage/
mkdir /mnt/shell/emulated 0700 shell shell
mkdir /storage/emulated 0555 root root
export EXTERNAL_STORAGE /storage/emulated/legacy
export EMULATED_STORAGE_SOURCE /mnt/shell/emulated
export EMULATED_STORAGE_TARGET /storage/emulated
export SECONDARY_STORAGE /storage/extSdCard
mkdir /storage/extSdCard 0555 root root
# Support legacy paths
symlink /storage/emulated/legacy /sdcard
symlink /storage/emulated/legacy /mnt/sdcard
symlink /storage/emulated/legacy /storage/sdcard0
symlink /mnt/shell/emulated/0 /storage/emulated/legacy
# map "real" external storages paths also in same way. backwards compatibility.
symlink /storage/extSdCard /mnt/extSdCard
symlink /storage/UsbDriveA /mnt/UsbDriveA
symlink /storage/UsbDriveB /mnt/UsbDriveB
symlink /storage/UsbDriveC /mnt/UsbDriveC
symlink /storage/UsbDriveD /mnt/UsbDriveD
symlink /storage/UsbDriveE /mnt/UsbDriveE
symlink /storage/UsbDriveF /mnt/UsbDriveF
mkdir /storage/extSdCard 0700 root root
mkdir /storage/UsbDriveA 0700 root root
mkdir /storage/UsbDriveB 0700 root root
mkdir /storage/UsbDriveC 0700 root root
mkdir /storage/UsbDriveD 0700 root root
mkdir /storage/UsbDriveE 0700 root root
mkdir /storage/UsbDriveF 0700 root root
on early-boot
# set RLIMIT_MEMLOCK to 64MB
setrlimit 8 67108864 67108864
# Allow subsystem (modem etc) debugging
write /sys/module/subsystem_restart/parameters/enable_debug ${persist.sys.ssr.enable_debug}
write /sys/kernel/boot_adsp/boot 1
on boot
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 bluetooth bluetooth /sys/module/hci_uart/parameters/ath_lpm
chown bluetooth bluetooth /sys/module/hci_uart/parameters/ath_btwrite
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 net_bt_stack /dev/ttyHS0
chmod 0660 /sys/module/hci_uart/parameters/ath_lpm
chmod 0660 /sys/module/hci_uart/parameters/ath_btwrite
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
chmod 0660 /dev/ttyHS2
chown bluetooth bluetooth /dev/ttyHS2
# for BT MAC address
mkdir /efs/bluetooth 0775 radio system
# if already exist
chown radio system /efs/bluetooth
chmod 0775 /efs/bluetooth
#Audience ES705 UART
chmod 0660 /dev/ttyHS3
chown system system /dev/ttyHS3
#Create QMUX deamon socket area
mkdir /dev/socket/qmux_radio 0770 radio radio
chmod 2770 /dev/socket/qmux_radio
mkdir /dev/socket/qmux_audio 0770 media audio
chmod 2770 /dev/socket/qmux_audio
mkdir /dev/socket/qmux_bluetooth 0770 bluetooth bluetooth
chmod 2770 /dev/socket/qmux_bluetooth
mkdir /dev/socket/qmux_gps 0770 gps gps
chmod 2770 /dev/socket/qmux_gps
#Create PERFD deamon related dirs
mkdir /data/misc/perfd 0755 root system
chmod 2755 /data/misc/perfd
mkdir /data/system/perfd 0770 root system
chmod 2770 /data/system/perfd
mkdir /persist/drm 0770 system system
setprop wifi.interface wlan0
# Define TCP buffer sizes for various networks
# ReadMin, ReadInitial, ReadMax, WriteMin, WriteInitial, WriteMax,
setprop net.tcp.buffersize.wifi 524288,1048576,4525824,524288,1048576,4525824
setprop ro.telephony.call_ring.multiple false
#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
chmod 0444 /sys/devices/platform/msm_hsusb/gadget/usb_state
# For setting tcp delayed ack
chown system system /sys/kernel/ipv4/tcp_delack_seg
chown system system /sys/kernel/ipv4/tcp_use_userconfig
# Define TCP delayed ack settings for WiFi & LTE
setprop net.tcp.delack.default 1
setprop net.tcp.delack.wifi 20
setprop net.tcp.delack.lte 8
setprop net.tcp.usercfg.default 0
setprop net.tcp.usercfg.wifi 1
setprop net.tcp.usercfg.lte 1
# 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 2097152
write /proc/sys/net/core/wmem_max 2097152
#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
write /proc/sys/net/ipv6/conf/rmnet_usb0/accept_ra 2
write /proc/sys/net/ipv6/conf/rmnet_usb1/accept_ra 2
write /proc/sys/net/ipv6/conf/rmnet_usb2/accept_ra 2
write /proc/sys/net/ipv6/conf/rmnet_usb3/accept_ra 2
# To prevent out of order acknowledgements from making
# connection tracking to treat them as not belonging to
# the connection they belong to.
# Otherwise, a weird issue happens in which some long
# connections on high-throughput links get dropped when
# an ack packet comes out of order
write /proc/sys/net/netfilter/nf_conntrack_tcp_be_liberal 1
# NFC local data and nfcee xml storage
mkdir /data/nfc 0770 nfc nfc
mkdir /data/nfc/param 0770 nfc nfc
# Set the console loglevel to < KERN_INFO
# Set the default message loglevel to KERN_INFO
write /proc/sys/kernel/printk "6 6 1 7"
# msm specific files that need to be created on /data
on post-fs-data
# Create directory for TZ Apps
mkdir /data/misc/qsee 0770 system system
# we will remap this as /mnt/sdcard with the sdcard fuse tool
mkdir /data/misc/camera 0770 camera camera
mkdir /data/media 0770 media_rw media_rw
chown media_rw media_rw /data/media
mkdir /data/misc/bluetooth 0770 bluetooth bluetooth
# Create the directories used by the Wireless subsystem
mkdir /data/misc/wifi 0770 wifi system
mkdir /data/misc/wifi/sockets 0770 wifi wifi
mkdir /data/misc/wifi/wpa_supplicant 0770 wifi wifi
mkdir /data/misc/dhcp 0775 dhcp dhcp
chown dhcp dhcp /data/misc/dhcp
# for WIFI TRP/TIS
chown system root /data/.psm.info
chmod 0664 /data/.psm.info
# for WIFI Antena Selection
chown system root /data/.ant.info
chmod 0664 /data/.ant.info
# for WIFI MAC address
mkdir /efs/wifi 0775 radio system
chown system wifi /efs/wifi/.mac.info
chmod 0660 /efs/wifi/.mac.info
chmod 0660 /efs/wifi/.mac.cob
# for WIFI Version
write /data/.wifiver.info 0
chown system root /data/.wifiver.info
chmod 0666 /data/.wifiver.info
# Create the directories used by CnE subsystem
mkdir /data/connectivity 0771 system system
chown system system /data/connectivity
# Create the directories used by DPM subsystem
mkdir /data/dpm 0771 system system
chown system system /data/dpm
mkdir /data/dpm/nsrm 0771 system system
chown system system /data/dpm/nsrm
# Create directory used by audio subsystem
mkdir /data/misc/audio 0770 audio audio
# Create directory used by the DASH client
mkdir /data/misc/dash 0770 media audio
# Create directory used by display clients
mkdir /data/misc/display 0770 root system
# 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 Location services
mkdir /data/misc/location 0770 gps gps
mkdir /data/misc/location/mq 0770 gps gps
mkdir /data/misc/location/xtwifi 0770 gps gps
mkdir /data/misc/location/gpsone_d 0770 system gps
mkdir /data/misc/location/quipc 0770 gps system
mkdir /data/misc/location/gsiff 0770 gps gps
#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 directory for hostapd
mkdir /data/hostapd 0770 system wifi
# Create /data/time folder for time-services
mkdir /data/time/ 0700 system system
mkdir /data/audio/ 0770 media audio
setprop vold.post_fs_data_done 1
#Create a folder for SRS to be able to create a usercfg file
mkdir /data/data/media 0770 media media
# Export GPIO56 for fusion targets to enable/disable hub
service usbhub_init /system/bin/usbhub_init
class late_start
user root
disabled
oneshot
#service qcomsysd /system/bin/qcom-system-daemon
# class main
service ssr_setup /system/bin/ssr_setup
oneshot
disabled
on property:persist.sys.ssr.restart_level=*
start ssr_setup
on property:sys.boot_completed=1
write /dev/kmsg "Boot completed "
on property:persist.radio.atfwd.start=false
stop atfwd
on property:radio.atfwd.start=false
stop atfwd
# corefile limit and ETB enabling
on property:persist.debug.trace=1
mkdir /data/core 0777 root root
write /proc/sys/kernel/core_pattern "/data/core/%E.%p.%e"
write /sys/devices/system/cpu/cpu1/online 1
write /sys/devices/system/cpu/cpu2/online 1
write /sys/devices/system/cpu/cpu3/online 1
write /sys/bus/coresight/devices/coresight-etm0/enable 0
write /sys/bus/coresight/devices/coresight-etm1/enable 0
write /sys/bus/coresight/devices/coresight-etm2/enable 0
write /sys/bus/coresight/devices/coresight-etm3/enable 0
write /sys/bus/coresight/devices/coresight-etm0/reset 1
write /sys/bus/coresight/devices/coresight-etm1/reset 1
write /sys/bus/coresight/devices/coresight-etm2/reset 1
write /sys/bus/coresight/devices/coresight-etm3/reset 1
write /sys/bus/coresight/devices/coresight-etm0/enable 1
write /sys/bus/coresight/devices/coresight-etm1/enable 1
write /sys/bus/coresight/devices/coresight-etm2/enable 1
write /sys/bus/coresight/devices/coresight-etm3/enable 1
on property:ro.board.platform=msm7630_fusion
start usbhub_init
on property:init.svc.wpa_supplicant=stopped
stop dhcpcd
on property:bluetooth.isEnabled=true
start btwlancoex
write /sys/class/bluetooth/hci0/idle_timeout 7000
on property:bluetooth.sap.status=running
start bt-sap
on property:bluetooth.sap.status=stopped
stop bt-sap
on property:bluetooth.dun.status=running
start bt-dun
on property:bluetooth.dun.status=stopped
stop bt-dun
on property:ro.bluetooth.ftm_enabled=true
start ftmd
on property:bluetooth.startbtsnoop=true
start btsnoop
on property:bluetooth.startbtsnoop=false
stop btsnoop
service qcom-c_core-sh /system/bin/sh /init.qcom.class_core.sh
class core
user root
oneshot
service qcom-c_main-sh /system/bin/sh /init.class_main.sh
class main
user root
oneshot
on property:vold.decrypt=trigger_restart_framework
start qcom-c_main-sh
start config_bluetooth
on property:persist.env.fastdorm.enabled=true
setprop persist.radio.data_no_toggle 1
service cnd /system/bin/cnd
class late_start
socket cnd stream 660 root inet
service dpmd /system/bin/dpmd
class late_start
socket dpmd stream 660 root system
service irsc_util /system/bin/irsc_util "/etc/sec_config"
class main
user root
oneshot
service rmt_storage /system/bin/rmt_storage
class core
user root
disabled
on property:ro.boot.emmc=true
start rmt_storage
service rfs_access /system/bin/rfs_access
class core
user system
group system net_raw
on property:ro.boot.emmc=true
start rfs_access
on property:bluetooth.start_hci=true
start start_hci_filter
on property:bluetooth.start_hci=false
stop start_hci_filter
service start_hci_filter /system/bin/wcnss_filter
class late_start
user bluetooth
group bluetooth
disabled
service config_bluetooth /system/bin/sh /system/etc/init.qcom.bt.sh "onboot"
class core
user root
oneshot
service hciattach /system/bin/sh /system/etc/init.qcom.bt.sh
class late_start
user bluetooth
group bluetooth net_bt_admin net_bt_stack
disabled
oneshot
on property:bluetooth.hciattach=true
start hciattach
on property:bluetooth.hciattach=false
setprop bluetooth.status off
service hciattach_ath3k /system/bin/sh /system/etc/init.ath3k.bt.sh
class late_start
user bluetooth
group system bluetooth net_bt_admin misc
disabled
oneshot
service bt-dun /system/bin/dun-server /dev/smd7 /dev/rfcomm0
class late_start
user bluetooth
group bluetooth net_bt_admin inet
disabled
oneshot
service bt-sap /system/bin/sapd 15
user bluetooth
group bluetooth net_bt_admin
class late_start
disabled
oneshot
service btsnoop /system/bin/btsnoop
user bluetooth
group bluetooth net_bt_admin sdcard_rw sdcard_r
class late_start
disabled
oneshot
service ftmd /system/bin/logwrapper /system/bin/ftmdaemon
class late_start
user root
group bluetooth net_bt_admin misc net_bt_stack qcom_diag
disabled
oneshot
# QMUX must be in multiple groups to support external process connections
service qmuxd /system/bin/qmuxd
class main
user radio
group radio audio bluetooth gps qcom_diag
disabled
service netmgrd /system/bin/netmgrd
class main
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 2
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 p2p_supplicant /system/bin/wpa_supplicant \
-iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \
-I/system/etc/wifi/wpa_supplicant_overlay.conf -O/data/misc/wifi/sockets -N \
-ip2p0 -Dnl80211 -c/data/misc/wifi/p2p_supplicant.conf \
-I/system/etc/wifi/p2p_supplicant_overlay.conf \
-puse_p2p_group_interface=1 -puse_multi_chan_concurrent=1 \
-e/data/misc/wifi/entropy.bin -g@android:wpa_wlan0
# we will start as root and wpa_supplicant will switch to user wifi
# after setting up the capabilities required for WEXT
# user wifi
# group wifi inet keystore
class main
socket wpa_wlan0 dgram 660 wifi wifi
disabled
oneshot
service wpa_supplicant /system/bin/wpa_supplicant \
-iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \
-I/system/etc/wifi/wpa_supplicant_overlay.conf \
-O/data/misc/wifi/sockets \
-e/data/misc/wifi/entropy.bin -g@android:wpa_wlan0
# we will start as root and wpa_supplicant will switch to user wifi
# after setting up the capabilities required for WEXT
# user wifi
# group wifi inet keystore
class main
socket wpa_wlan0 dgram 660 wifi wifi
disabled
oneshot
service olsrd /system/bin/olsrd -f /etc/wifi/olsrd.conf
class main
disabled
oneshot
service dhcpcd_wlan0 /system/bin/dhcpcd -ABKL
class late_start
disabled
oneshot
service dhcpcd_p2p /system/bin/dhcpcd -ABKLG
class late_start
disabled
oneshot
service dhcpcd_ibss /system/bin/dhcpcd -BKM
class late_start
disabled
oneshot
service iprenew_wlan0 /system/bin/dhcpcd -n
class late_start
disabled
oneshot
service iprenew_p2p /system/bin/dhcpcd -n
class late_start
disabled
oneshot
#service ptt_socket_app /system/bin/ptt_socket_app -d
# class main
# user root
# group root
# oneshot
#service ptt_ffbm /system/bin/ptt_socket_app -f -d
# user root
# group root
# disabled
# oneshot
service dhcpcd_bt-pan /system/bin/dhcpcd -BKLG
class late_start
disabled
oneshot
service iprenew_bt-pan /system/bin/dhcpcd -n
class late_start
disabled
oneshot
service dhcpcd_bnep0 /system/bin/dhcpcd -BKLG
disabled
oneshot
service dhcpcd_bnep1 /system/bin/dhcpcd -BKLG
disabled
oneshot
service dhcpcd_bnep2 /system/bin/dhcpcd -BKLG
disabled
oneshot
service dhcpcd_bnep3 /system/bin/dhcpcd -BKLG
disabled
oneshot
service dhcpcd_bnep4 /system/bin/dhcpcd -BKLG
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
on property:init.svc.macloader=stopped
chown system root /data/.cid.info
chmod 0664 /data/.cid.info
chown system root /data/.rev
chmod 0664 /data/.rev
# end of wifi
service sec-sh /system/bin/sh /system/etc/init.sec.boot.sh
class main
user root
oneshot
service loc_launcher /system/bin/loc_launcher
#loc_launcher will start as root and set its uid to gps
class late_start
group gps qcom_oncrpc inet net_raw qcom_diag net_admin wifi
service fm_dl /system/bin/sh /system/etc/init.qcom.fm.sh
class late_start
user root
group system fm_radio
disabled
oneshot
on property:crypto.driver.load=1
insmod /system/lib/modules/qce.ko
insmod /system/lib/modules/qcedev.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 wifi-sdio-on /system/bin/sh /system/etc/init.qcom.sdio.sh
class late_start
group wifi inet
disabled
oneshot
service wifi-crda /system/bin/sh /system/etc/init.crda.sh
class late_start
user root
disabled
oneshot
on property:sys.boot_completed=1
start qcom-post-boot
service atfwd /system/bin/ATFWD-daemon
class late_start
user system
group system radio
service hostapd /system/bin/hostapd -dd /data/hostapd/hostapd.conf
class late_start
user root
group root
oneshot
disabled
service ims_regmanager /system/bin/exe-ims-regmanagerprocessnative
class late_start
group 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 2
service battery_monitor /system/bin/battery_monitor
user system
group system
disabled
#service ril-daemon2 /system/bin/rild -c 2
# class main
# socket rild2 stream 660 root radio
# socket rild-debug2 stream 660 radio system
# user root
# disabled
# group radio cache inet misc audio sdcard_r sdcard_rw diag qcom_diag log
#service ril-daemon3 /system/bin/rild -c 3
# class main
# socket rild3 stream 660 root radio
# socket rild-debug3 stream 660 radio system
# user root
# disabled
# group radio cache inet misc audio sdcard_r sdcard_rw diag qcom_diag log
service usb_uicc_enable /system/bin/sh /system/etc/init.qcom.uicc.sh
class late_start
user root
disabled
oneshot
service usb_uicc_daemon /system/bin/usb_uicc_client
class main
user system
group system log
oneshot
on property:usb_uicc.enabled=1
start usb_uicc_enable
on property:usb_uicc.enabled=0
start usb_uicc_enable
service profiler_daemon /system/bin/profiler_daemon
class late_start
user root
group root
disabled
# virtual sdcard daemon running as media_rw (1023)
service sdcard /system/bin/sdcard -u 1023 -g 1023 -l -r /data/media /mnt/shell/emulated
class late_start
oneshot
service fuse_extSdCard /system/bin/sdcard -u 1023 -g 1023 -w 1023 -d -f /mnt/media_rw/extSdCard /storage/extSdCard
class late_start
disabled
oneshot
service fuse_UsbDriveA /system/bin/sdcard -u 1023 -g 1023 -d -f /mnt/media_rw/UsbDriveA /storage/UsbDriveA
class late_start
disabled
oneshot
service fuse_UsbDriveB /system/bin/sdcard -u 1023 -g 1023 -d -f /mnt/media_rw/UsbDriveB /storage/UsbDriveB
class late_start
disabled
oneshot
service fuse_UsbDriveC /system/bin/sdcard -u 1023 -g 1023 -d -f /mnt/media_rw/UsbDriveC /storage/UsbDriveC
class late_start
disabled
oneshot
service fuse_UsbDriveD /system/bin/sdcard -u 1023 -g 1023 -d -f /mnt/media_rw/UsbDriveD /storage/UsbDriveD
class late_start
disabled
oneshot
service fuse_UsbDriveE /system/bin/sdcard -u 1023 -g 1023 -d -f /mnt/media_rw/UsbDriveE /storage/UsbDriveE
class late_start
disabled
oneshot
service fuse_UsbDriveF /system/bin/sdcard -u 1023 -g 1023 -d -f /mnt/media_rw/UsbDriveF /storage/UsbDriveF
class late_start
disabled
oneshot
on property:ro.fuse_sdcard=true
start sdcard
# Binding fuse mount point to /storage/emulated/legacy
#on property:init.svc.sdcard=running
# wait /mnt/shell/emulated/0
# mount none /mnt/shell/emulated/0 /storage/emulated/legacy bind
service hcidump /system/bin/sh /system/etc/hcidump.sh
user bluetooth
group bluetooth system net_bt_admin net_admin
disabled
oneshot
service charger /charger
class charger
service ssr_diag /system/bin/ssr_diag
class late_start
user system
group system
disabled
# Define fastmmi
service fastmmi /system/bin/mmi
user root
group root
disabled
service fastmmisrv /system/bin/sh /init.qcom.factory.sh
user root
disabled
oneshot
on ffbm
start fastmmisrv
service hvdcp /system/bin/hvdcp
class core
user root
disabled
on property:persist.usb.hvdcp.detect=true
start hvdcp
on property:persist.usb.hvdcp.detect=false
stop hvdcp
service charger_monitor /system/bin/charger_monitor qpnp_charger 300000 48
user system
group system
disabled
service qbcharger /charger -m 1
disabled
oneshot
on property:sys.qbcharger.enable=true
start qbcharger
on property:sys.qbcharger.enable=false
stop qbcharger
service diag_mdlog_start /system/bin/diag_mdlog
class late_start
user shell
group system qcom_diag sdcard_rw sdcard_r media_rw
disabled
oneshot
service diag_mdlog_stop /system/bin/diag_mdlog -k
class late_start
user shell
group system qcom_diag sdcard_rw sdcard_r media_rw
disabled
oneshot
service qlogd /system/xbin/qlogd
class main
disabled
on property:persist.sys.qlogd=1
start qlogd
on property:persist.sys.qlogd=0
stop qlogd
service rootagent /system/bin/sh /system/etc/init.qcom.rootagent.sh
disabled
oneshot
on property:persist.sys.rootagent=1
start rootagent
on property:persist.sys.rootagent=0
stop rootagent
# umount service
service umount_service /system/bin/umount /preload
disabled
oneshot
# Support Preload install apks
on property:persist.sys.storage_preload=1
mount ext4 /dev/block/platform/msm_sdcc.1/by-name/hidden /preload nosuid nodev ro barrier=1
setprop storage.preload.complete 1
on property:persist.sys.storage_preload=0
start umount_service
+926
View File
@@ -0,0 +1,926 @@
# Copyright (c) 2011-2012, The Linux Foundation. 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 The Linux Foundation 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
write /sys/class/android_usb/android0/iSerial ${ro.serialno}
chown system system /sys/class/android_usb/android0/usb30en
chmod 0660 /sys/class/android_usb/android0/usb30en
chown system system /sys/class/android_usb/android0/terminal_version
chmod 0660 /sys/class/android_usb/android0/terminal_version
on charger
setprop sys.usb.config mass_storage
on fs
mkdir /dev/usb-ffs 0770 shell shell
mkdir /dev/usb-ffs/adb 0770 shell shell
mount functionfs adb /dev/usb-ffs/adb uid=2000,gid=2000
write /sys/class/android_usb/android0/f_ffs/aliases adb
mkdir /dev/bus 0755 root root
mkdir /dev/bus/usb 0755 root root
service qcom-usb-sh /system/bin/sh /init.qcom.usb.sh
class main
user root
oneshot
# Following are the parameters required for usb functionality. They provide configurable options like
# product_id/vendor id and allows specifying required functions:
#
# Required parameters:
#
# /sys/class/android_usb/android0/enable: Enables/disables usb composition
# Value: 0 (disable), 1 (enable)
#
# /sys/class/android_usb/android0/idVendor: Stores Vendor ID
# Value: 05c6 (Vendor id for Qualcomm Inc)
#
# /sys/class/android_usb/android0/idProduct: Stores Product id corresponding to usb composition
# Value: 0x9xxx for composite interface, 0xFxxx for single interface
#
# /sys/class/android_usb/android0/f_diag/clients: Stores name of clients representing a diag interface.
# Value: Passed one per interface. e.g. diag[,diag_mdm, diag_qsc, diag_mdm2]
#
# /sys/class/android_usb/android0/functions: Stores name of the function drivers used in usb composition.
# Value: Passed one per function driver. e.g. diag[,adb]
#
#Optional parameters:
#
# /sys/class/android_usb/android0/f_serial/transports: Stores type of underlying transports used to
# communicate to serial interface.
# Value: Passed one per interface. One value represents control and data transport together.
# e.g. smd[,sdio,tty,hsic]
# Only required if serial interface is present.
#
# /sys/class/android_usb/android0/f_serial/transport_names: Stores name of the underlying transports
# used to communicate to serial interface. This is used to distinguish between more than one interface
# using same transport type.
# Value: Passed one per interface. One value represents control and data transport together.
# e.g. serial_hsic[,serial_hsusb]
# Only required for transport type hsic, optional for other transport types.
#
# /sys/class/android_usb/android0/f_rmnet/transports: Stores type of underlying transports used to
# communicate to rmnet interface.
# Value: Passed two per interface as control, data transport type pair.
# e.g. smd,bam[,hsuart,hsuart]
# Only required if rmnet interface is present.
#
# /sys/class/android_usb/android0/f_rmnet/transport_names: Stores name of the underlying transports
# used to communicate to rmnet interface. This is used to distinguish between more than one interface
# using same transport type.
# Value: Passed one per interface. One value represents control and data transport together.
# e.g. rmnet_hsic[,rmnet_hsusb]
# Only required for transport type hsic, optional for other transport types.
# USB Composite for Samsung USB Driver
on property:sys.usb.config=mtp,conn_gadget
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/instances 1
write /sys/class/android_usb/android0/functions mtp,acm,conn_gadget
write /sys/class/android_usb/android0/enable 1
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=mtp,conn_gadget,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/instances 1
write /sys/class/android_usb/android0/functions mtp,acm,conn_gadget,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/instances 1
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/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,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/instances 1
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=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/bDeviceClass 224
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/bDeviceClass 224
write /sys/class/android_usb/android0/enable 1
start adbd
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=ncm
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/functions ncm
write /sys/class/android_usb/android0/bDeviceClass 2
write /sys/class/android_usb/android0/enable 1
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=ncm,adb
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/functions ncm,adb
write /sys/class/android_usb/android0/bDeviceClass 2
write /sys/class/android_usb/android0/enable 1
start adbd
setprop sys.usb.state ${sys.usb.config}
# 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
write /sys/class/android_usb/android0/f_acm/instances 1
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
write /sys/class/android_usb/android0/f_acm/instances 1
write /sys/class/android_usb/android0/f_rmnet/transports smd,bam
write /sys/class/android_usb/android0/functions diag,acm,rmnet
write /sys/class/android_usb/android0/enable 1
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=diag,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 685D
write /sys/class/android_usb/android0/f_diag/clients diag
write /sys/class/android_usb/android0/f_acm/instances 1
write /sys/class/android_usb/android0/functions diag,acm,adb
write /sys/class/android_usb/android0/enable 1
start adbd
setprop sys.usb.state ${sys.usb.config}
# For CDFS composite
on property:sys.usb.config=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 685B
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 04E8
write /sys/class/android_usb/android0/idProduct 685E
write /sys/class/android_usb/android0/f_acm/instances 1
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=mass_storage,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,mass_storage
write /sys/class/android_usb/android0/enable 1
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=mass_storage,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/functions mtp,mass_storage,adb
write /sys/class/android_usb/android0/enable 1
start adbd
setprop sys.usb.state ${sys.usb.config}
# As request from the CHINA GOVERNMENT SECURITY POLICY
on property:sys.usb.config=askon
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/functions ${sys.usb.config}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=askon,adb
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/functions ${sys.usb.config}
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 05C6
write /sys/class/android_usb/android0/idProduct 9025
write /sys/class/android_usb/android0/f_diag/clients diag
write /sys/class/android_usb/android0/f_serial/transports smd,tty
write /sys/class/android_usb/android0/f_rmnet/transports smd,bam
write /sys/class/android_usb/android0/functions diag,adb,serial,rmnet,mass_storage
write /sys/class/android_usb/android0/enable 1
start adbd
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=diag,acm_smd,acm_tty,rmnet_bam,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 903D
write /sys/class/android_usb/android0/f_diag/clients diag
write /sys/class/android_usb/android0/f_acm/acm_transports smd,tty
write /sys/class/android_usb/android0/f_rmnet/transports smd,bam
write /sys/class/android_usb/android0/functions diag,adb,acm,rmnet,mass_storage
write /sys/class/android_usb/android0/enable 1
start adbd
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=diag,serial_smd,serial_tty,rmnet_bam,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/f_rmnet/transports smd,bam
write /sys/class/android_usb/android0/functions diag,serial,rmnet,mass_storage
write /sys/class/android_usb/android0/enable 1
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=diag,acm_smd,acm_tty,rmnet_bam,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 903E
write /sys/class/android_usb/android0/f_diag/clients diag
write /sys/class/android_usb/android0/f_acm/acm_transports smd,tty
write /sys/class/android_usb/android0/f_rmnet/transports smd,bam
write /sys/class/android_usb/android0/functions diag,serial,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,acm_sdio,acm_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 903B
write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
write /sys/class/android_usb/android0/f_acm/acm_transports sdio,smd
write /sys/class/android_usb/android0/functions diag,adb,acm,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,acm_sdio,acm_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 903C
write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
write /sys/class/android_usb/android0/f_acm/acm_transports sdio,smd
write /sys/class/android_usb/android0/functions diag,acm,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,acm_sdio,acm_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 903B
write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
write /sys/class/android_usb/android0/f_acm/acm_transports sdio,tty
write /sys/class/android_usb/android0/functions diag,adb,acm,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,diag_mdm,acm_sdio,acm_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 903C
write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
write /sys/class/android_usb/android0/f_acm/acm_transports sdio,tty
write /sys/class/android_usb/android0/functions diag,acm,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,acm_tty,acm_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 903D
write /sys/class/android_usb/android0/f_diag/clients diag
write /sys/class/android_usb/android0/f_acm/acm_transports tty,tty
write /sys/class/android_usb/android0/functions diag,adb,acm,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,acm_tty,acm_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 903E
write /sys/class/android_usb/android0/f_diag/clients diag
write /sys/class/android_usb/android0/f_acm/acm_transports tty,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}
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,acm_smd,acm_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 903D
write /sys/class/android_usb/android0/f_diag/clients diag
write /sys/class/android_usb/android0/f_acm/acm_transports smd,tty
write /sys/class/android_usb/android0/functions diag,adb,acm,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_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}
on property:sys.usb.config=diag,acm_smd,acm_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 903E
write /sys/class/android_usb/android0/f_diag/clients diag
write /sys/class/android_usb/android0/f_acm/acm_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}
# Fusion 3 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_serial/transport_names serial_hsic
write /sys/class/android_usb/android0/f_rmnet/transports hsic,hsic
write /sys/class/android_usb/android0/f_rmnet/transport_names rmnet_hsic
write /sys/class/android_usb/android0/functions diag,adb,serial,rmnet,mass_storage
write /sys/class/android_usb/android0/enable 1
start adbd
setprop sys.usb.state ${sys.usb.config}
# Fusion 3 composition with diag_mdm and adb
on property:sys.usb.config=diag,diag_mdm,serial_hsic,serial_tty,rmnet_hsic,mass_storage,adb
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 05C6
write /sys/class/android_usb/android0/idProduct 9031
write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
write /sys/class/android_usb/android0/f_serial/transports hsic,tty
write /sys/class/android_usb/android0/f_serial/transport_names serial_hsic
write /sys/class/android_usb/android0/f_rmnet/transports hsic,hsic
write /sys/class/android_usb/android0/f_rmnet/transport_names rmnet_hsic
write /sys/class/android_usb/android0/functions diag,adb,serial,rmnet,mass_storage
write /sys/class/android_usb/android0/enable 1
start adbd
setprop sys.usb.state ${sys.usb.config}
# Fusion 3 composition with diag_mdm
on property:sys.usb.config=diag,diag_mdm,serial_hsic,serial_tty,rmnet_hsic,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 hsic,tty
write /sys/class/android_usb/android0/f_serial/transport_names serial_hsic
write /sys/class/android_usb/android0/f_rmnet/transports hsic,hsic
write /sys/class/android_usb/android0/f_rmnet/transport_names rmnet_hsic
write /sys/class/android_usb/android0/functions diag,serial,rmnet,mass_storage
write /sys/class/android_usb/android0/enable 1
setprop sys.usb.state ${sys.usb.config}
# Fusion 3 DSDA composition with adb
on property:sys.usb.config=diag,diag_mdm,diag_qsc,serial_hsic,serial_hsuart,rmnet_hsic,rmnet_hsuart,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 9065
write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm,diag_qsc
write /sys/class/android_usb/android0/f_serial/transports hsic,hsuart
write /sys/class/android_usb/android0/f_serial/transport_names serial_hsic,serial_hsuart
write /sys/class/android_usb/android0/f_rmnet/transports hsic,hsic,hsuart,hsuart
write /sys/class/android_usb/android0/f_rmnet/transport_names rmnet_hsic,rmnet_hsuart
write /sys/class/android_usb/android0/functions diag,adb,serial,rmnet,mass_storage
write /sys/class/android_usb/android0/enable 1
start adbd
setprop sys.usb.state ${sys.usb.config}
# Fusion 3 DSDA composition without adb
on property:sys.usb.config=diag,diag_mdm,diag_qsc,serial_hsic,serial_hsuart,rmnet_hsic,rmnet_hsuart,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 9066
write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm,diag_qsc
write /sys/class/android_usb/android0/f_serial/transports hsic,hsuart
write /sys/class/android_usb/android0/f_serial/transport_names serial_hsic,serial_hsuart
write /sys/class/android_usb/android0/f_rmnet/transports hsic,hsic,hsuart,hsuart
write /sys/class/android_usb/android0/f_rmnet/transport_names rmnet_hsic,rmnet_hsuart
write /sys/class/android_usb/android0/functions diag,serial,rmnet,mass_storage
write /sys/class/android_usb/android0/enable 1
setprop sys.usb.state ${sys.usb.config}
# Fusion 3 DSDA2 composition with adb
on property:sys.usb.config=diag,diag_mdm,diag_mdm2,serial_hsic,serial_hsusb,rmnet_hsic,rmnet_hsusb,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 9065
write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm,diag_mdm2
write /sys/class/android_usb/android0/f_serial/transports hsic,hsic
write /sys/class/android_usb/android0/f_serial/transport_names serial_hsic,serial_hsusb
write /sys/class/android_usb/android0/f_rmnet/transports hsic,hsic,hsic,hsic
write /sys/class/android_usb/android0/f_rmnet/transport_names rmnet_hsic,rmnet_hsusb
write /sys/class/android_usb/android0/functions diag,adb,serial,rmnet,mass_storage
write /sys/class/android_usb/android0/enable 1
start adbd
setprop sys.usb.state ${sys.usb.config}
# Fusion 3 DSDA2 composition without adb
on property:sys.usb.config=diag,diag_mdm,diag_mdm2,serial_hsic,serial_hsusb,rmnet_hsic,rmnet_hsusb,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 9066
write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm,diag_mdm2
write /sys/class/android_usb/android0/f_serial/transports hsic,hsic
write /sys/class/android_usb/android0/f_serial/transport_names serial_hsic,serial_hsusb
write /sys/class/android_usb/android0/f_rmnet/transports hsic,hsic,hsic,hsic
write /sys/class/android_usb/android0/f_rmnet/transport_names rmnet_hsic,rmnet_hsusb
write /sys/class/android_usb/android0/functions diag,serial,rmnet,mass_storage
write /sys/class/android_usb/android0/enable 1
setprop sys.usb.state ${sys.usb.config}
# Fusion 2.2 composition with diag_qsc and adb
on property:sys.usb.config=diag,diag_qsc,serial_smd,serial_tty,serial_hsuart,rmnet_hsuart,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 9053
write /sys/class/android_usb/android0/f_diag/clients diag,diag_qsc
write /sys/class/android_usb/android0/f_serial/transports smd,tty,hsuart
write /sys/class/android_usb/android0/f_rmnet/transports smd,bam,hsuart,hsuart
write /sys/class/android_usb/android0/functions diag,adb,serial,rmnet,mass_storage
write /sys/class/android_usb/android0/enable 1
start adbd
setprop sys.usb.state ${sys.usb.config}
# Fusion 2.2 composition with diag_qsc
on property:sys.usb.config=diag,diag_qsc,serial_smd,serial_tty,serial_hsuart,rmnet_hsuart,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 9054
write /sys/class/android_usb/android0/f_diag/clients diag,diag_qsc
write /sys/class/android_usb/android0/f_serial/transports smd,tty,hsuart
write /sys/class/android_usb/android0/f_rmnet/transports smd,bam,hsuart,hsuart
write /sys/class/android_usb/android0/functions diag,serial,rmnet,mass_storage
write /sys/class/android_usb/android0/enable 1
setprop sys.usb.state ${sys.usb.config}
#on property:sys.usb.config=rndis
# setprop sys.usb.config rndis,${persist.sys.usb.config.extra}
#on property:sys.usb.config=rndis,none
# write /sys/class/android_usb/android0/enable 0
# write /sys/class/android_usb/android0/idVendor 05C6
# write /sys/class/android_usb/android0/idProduct F00E
# write /sys/class/android_usb/android0/functions rndis
# write /sys/class/android_usb/android0/enable 1
# setprop sys.usb.state rndis
#on property:sys.usb.config=rndis,adb
# setprop sys.usb.config rndis,${persist.sys.usb.config.extra},adb
#on property:sys.usb.config=rndis,none,adb
# write /sys/class/android_usb/android0/enable 0
# write /sys/class/android_usb/android0/idVendor 05C6
# write /sys/class/android_usb/android0/idProduct 9024
# write /sys/class/android_usb/android0/functions rndis,adb
# write /sys/class/android_usb/android0/enable 1
# start adbd
# setprop sys.usb.state rndis,adb
#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 rndis
#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 rndis,adb
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 rndis
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 rndis,adb
on property:sys.usb.config=rndis,diag,diag_mdm,diag_qsc
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 05C6
write /sys/class/android_usb/android0/idProduct 9086
write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm,diag_qsc
write /sys/class/android_usb/android0/functions rndis,diag
write /sys/class/android_usb/android0/enable 1
setprop sys.usb.state rndis
on property:sys.usb.config=rndis,diag,diag_mdm,diag_qsc,adb
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 05C6
write /sys/class/android_usb/android0/idProduct 9087
write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm,diag_qsc
write /sys/class/android_usb/android0/functions rndis,diag,adb
write /sys/class/android_usb/android0/enable 1
start adbd
setprop sys.usb.state rndis,adb
#on property:sys.usb.config=ptp
# write /sys/class/android_usb/android0/enable 0
# write /sys/class/android_usb/android0/idVendor 05C6
# write /sys/class/android_usb/android0/idProduct 904D
# 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 05C6
# write /sys/class/android_usb/android0/idProduct 904E
# 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
# write /sys/class/android_usb/android0/enable 0
# write /sys/class/android_usb/android0/idVendor 05C6
# write /sys/class/android_usb/android0/idProduct F003
# 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 05C6
# write /sys/class/android_usb/android0/idProduct 9039
# 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,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 05C6
write /sys/class/android_usb/android0/idProduct 903F
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=mtp,diag,diag_mdm,diag_qsc
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 05C6
write /sys/class/android_usb/android0/idProduct 9088
write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm,diag_qsc
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,diag_qsc,adb
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 05C6
write /sys/class/android_usb/android0/idProduct 9089
write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm,diag_qsc
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}
#on property:sys.usb.config=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 9015
# write /sys/class/android_usb/android0/functions adb,mass_storage
# write /sys/class/android_usb/android0/enable 1
# start adbd
# setprop sys.usb.state ${sys.usb.config}
#Mass-storage only composition
#on property:sys.usb.config=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 F000
# 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=diag,qdss
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 05C6
write /sys/class/android_usb/android0/idProduct 904A
write /sys/class/android_usb/android0/f_diag/clients diag
write /sys/class/android_usb/android0/functions diag,qdss
write /sys/class/android_usb/android0/enable 1
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=diag,qdss,adb
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 05C6
write /sys/class/android_usb/android0/idProduct 9060
write /sys/class/android_usb/android0/f_diag/clients diag
write /sys/class/android_usb/android0/functions diag,qdss,adb
write /sys/class/android_usb/android0/enable 1
start adbd
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=diag,qdss,rmnet_bam
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 05C6
write /sys/class/android_usb/android0/idProduct 9083
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,qdss,rmnet
write /sys/class/android_usb/android0/enable 1
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=diag,qdss,rmnet_bam,adb
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 05C6
write /sys/class/android_usb/android0/idProduct 9084
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,qdss,adb,rmnet
write /sys/module/dwc3/parameters/tx_fifo_resize_enable 1
write /sys/class/android_usb/android0/enable 1
start adbd
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=rndis,diag,qdss
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 05C6
write /sys/class/android_usb/android0/idProduct 9081
write /sys/class/android_usb/android0/f_diag/clients diag
write /sys/class/android_usb/android0/functions rndis,diag,qdss
write /sys/class/android_usb/android0/enable 1
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=rndis,diag,qdss,adb
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 05C6
write /sys/class/android_usb/android0/idProduct 9082
write /sys/class/android_usb/android0/f_diag/clients diag
write /sys/class/android_usb/android0/functions rndis,diag,qdss,adb
write /sys/module/dwc3/parameters/tx_fifo_resize_enable 1
write /sys/class/android_usb/android0/enable 1
start adbd
setprop sys.usb.state ${sys.usb.config}
#on property:sys.usb.config=ncm
# write /sys/class/android_usb/android0/enable 0
# write /sys/class/android_usb/android0/idVendor 0525
# write /sys/class/android_usb/android0/idProduct A4A1
# write /sys/class/android_usb/android0/functions ncm
# write /sys/class/android_usb/android0/enable 1
# setprop sys.usb.state ${sys.usb.config}
#on property:sys.usb.config=ncm,adb
# write /sys/class/android_usb/android0/enable 0
# write /sys/class/android_usb/android0/idVendor 05C6
# write /sys/class/android_usb/android0/idProduct 908C
# write /sys/class/android_usb/android0/functions ncm,adb
# write /sys/class/android_usb/android0/enable 1
# start adbd
# setprop sys.usb.state ${sys.usb.config}
+245
View File
@@ -0,0 +1,245 @@
# Copyright (c) 2012, 2014, The Linux Foundation. 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 The Linux Foundation 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 early-init
mkdir /firmware 0771 system system
mkdir /firmware-modem 0771 system system
symlink /data/tombstones /tombstones
on fs
mount_all fstab.qcom
swapon_all fstab.qcom
# Keeping following partitions outside fstab file. As user may not have
# these partition flashed on the device. Failure to mount any partition in fstab file
# results in failure to launch late-start class.
wait /dev/block/platform/msm_sdcc.1/by-name/cache
check_fs /dev/block/platform/msm_sdcc.1/by-name/cache ext4
mount ext4 /dev/block/platform/msm_sdcc.1/by-name/cache /cache nosuid nodev noatime noauto_da_alloc,discard,journal_async_commit,errors=panic
wait /dev/block/platform/msm_sdcc.1/by-name/persist
check_fs /dev/block/platform/msm_sdcc.1/by-name/persist ext4
mount ext4 /dev/block/platform/msm_sdcc.1/by-name/persist /persist nosuid nodev noatime noauto_da_alloc,discard,journal_async_commit,errors=panic
wait /dev/block/platform/msm_sdcc.1/by-name/efs
check_fs /dev/block/platform/msm_sdcc.1/by-name/efs ext4
mount ext4 /dev/block/platform/msm_sdcc.1/by-name/efs /efs nosuid nodev noatime noauto_da_alloc,discard,journal_async_commit,errors=panic
chown system radio /efs
chmod 0771 /efs
restorecon -R /efs
chmod 0644 /dev/hw_random
on fs_sec_selinux
wait /dev/block/platform/msm_sdcc.1/by-name/modem
mount vfat /dev/block/platform/msm_sdcc.1/by-name/modem /firmware-modem ro shortname=lower,uid=1000,gid=1000,dmask=227,fmask=337,context=u:object_r:firmware:s0
wait /dev/block/platform/msm_sdcc.1/by-name/apnhlos
mount vfat /dev/block/platform/msm_sdcc.1/by-name/apnhlos /firmware ro shortname=lower,uid=1000,gid=1000,dmask=227,fmask=337,context=u:object_r:firmware:s0
on fs_selinux
wait /dev/block/platform/msm_sdcc.1/by-name/modem
mount vfat /dev/block/platform/msm_sdcc.1/by-name/modem /firmware-modem ro shortname=lower,uid=1000,gid=1000,dmask=227,fmask=337
wait /dev/block/platform/msm_sdcc.1/by-name/apnhlos
mount vfat /dev/block/platform/msm_sdcc.1/by-name/apnhlos /firmware ro shortname=lower,uid=1000,gid=1000,dmask=227,fmask=337
on post-fs-data
mkdir /data/tombstones 0771 system system
mkdir /tombstones/modem 0771 system system
# Mobicore
export MC_AUTH_TOKEN_PATH /efs
# set device node permissions for TLC apps
chmod 700 /dev/mobicore
chmod 666 /dev/mobicore-user
chown system system /dev/mobicore
chown radio system /dev/mobicore-user
on boot
insmod /system/lib/modules/adsprpc.ko
# Enable writing to led blink node from userspace
chown system system /sys/class/leds/red/blink
chown system system /sys/class/leds/green/blink
# Enable writing to brightness node under torch-light from userspace
chown system system /sys/class/leds/torch-light/brightness
# Enable Focaltech touch controller auto firmware update
write /sys/bus/i2c/drivers/ft5x06_ts/5-0038/update_fw 1
#Start the qcom-system-daemon service
service qcomsysd /system/bin/qcom-system-daemon
class main
#start camera server as daemon
service qcamerasvr /system/bin/mm-qcamera-daemon
class main
user camera
group camera system inet input graphics
# Allow usb charging to be disabled persistently
on property:persist.usb.chgdisabled=1
write /sys/class/power_supply/battery/charging_enabled 0
on property:persist.usb.chgdisabled=0
write /sys/class/power_supply/battery/charging_enabled 1
service time_daemon /system/bin/time_daemon
class late_start
user root
group root
service mpdecision /system/bin/mpdecision --avg_comp
class main
user root
disabled
service thermal-engine /system/bin/thermal-engine
class main
user root
socket thermal-send-client stream 0666 system system
socket thermal-recv-client stream 0660 system system
socket thermal-recv-passive-client stream 0666 system system
group root
service qrngp /system/bin/qrngp
class main
user root
group root
oneshot
disabled
on property:sys.boot_completed=1
start qrngp
service qseecomd /system/bin/qseecomd
class core
user root
group root
service audiod /system/bin/audiod
class late_start
user system
group system
service adsprpcd /system/bin/adsprpcd
class main
user media
group media
service mcStarter /system/bin/mcStarter tbase300
class core
user root
group root
disabled
oneshot
service run-mobicore /system/bin/mcDriverDaemon
class core
user system
group system
disabled
on property:sys.qseecomd.enable=true
start mcStarter
on property:sys.mobicore.loaded=true
start run-mobicore
service imsqmidaemon /system/bin/imsqmidaemon
class main
user system
socket ims_qmid stream 0660 system radio
group radio net_raw log qcom_diag
service imsdatadaemon /system/bin/imsdatadaemon
class main
user system
socket ims_datad stream 0660 system radio
group system wifi radio inet net_raw log qcom_diag net_admin
disabled
on property:sys.ims.QMI_DAEMON_STATUS=1
start imsdatadaemon
service ims_rtp_daemon /system/bin/ims_rtp_daemon
class main
user system
socket ims_rtpd stream 0660 system radio
group radio net_raw diag qcom_diag log
disabled
on property:sys.ims.DATA_DAEMON_STATUS=1
start ims_rtp_daemon
service wcnss-service /system/bin/wcnss_service
class main
user system
group system wifi radio
oneshot
#service ppd /system/bin/mm-pp-daemon
# class late_start
# SecEDS
service TvoutService_C /system/bin/bintvoutservice
class main
user system
group graphics
on property:ro.SecEDS.enable=false
stop TvoutService_C
disabled
user system
socket pps stream 0660 system system
group system graphics
#on property:init.svc.surfaceflinger=stopped
# stop ppd
#on property:init.svc.surfaceflinger=running
# start ppd
# Secure Storage startup
service secure_storage /system/bin/secure_storage_daemon
class core
user system
group system
disabled
on property:ro.securestorage.support=true
mkdir /dev/.secure_storage
chmod 0711 /dev/.secure_storage
chown system system /dev/.secure_storage
restorecon -R /dev/.secure_storage
start secure_storage
on property:ro.securestorage.knox=true
mkdir /dev/.secure_storage
chmod 0711 /dev/.secure_storage
chown system system /dev/.secure_storage
restorecon -R /dev/.secure_storage
start secure_storage
+186
View File
@@ -0,0 +1,186 @@
# Copyright (c) 2012-2013, The Linux Foundation. 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 The Linux Foundation 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.
#
# the DIAG device node is not world writable/readable.
/dev/diag 0660 system qcom_diag
/dev/genlock 0666 system system
/dev/kgsl 0666 system system
/dev/kgsl-3d0 0666 system system
/dev/kgsl-2d0 0666 root root
/dev/kgsl-2d1 0666 root root
/dev/ion 0664 system system
/dev/rtc0 0600 system system
/dev/smd0 0660 system system
/dev/smd4 0660 system system
/dev/smd_cxm_qmi 0640 radio radio
/dev/smd5 0660 system system
/dev/smd6 0660 system system
/dev/smd7 0660 bluetooth bluetooth
/dev/ccid_bridge 0660 system system
#permissions for CSVT
/dev/smd11 0660 loop_radio loop_radio
/dev/radio0 0640 system system
/dev/rfcomm0 0660 bluetooth bluetooth
/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/smdcnt_rev0 0640 radio radio
/dev/smdcnt_rev1 0640 radio radio
/dev/smdcnt_rev2 0640 radio radio
/dev/smdcnt_rev3 0640 radio radio
/dev/smdcnt_rev4 0640 radio radio
/dev/smdcnt_rev5 0640 radio radio
/dev/smdcnt_rev6 0640 radio radio
/dev/smdcnt_rev7 0640 radio radio
/dev/smdcnt_rev8 0640 radio radio
/dev/smuxctl32 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/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/hsicctl4 0640 radio radio
/dev/hsicctl5 0640 radio radio
/dev/hsicctl6 0640 radio radio
/dev/hsicctl7 0640 radio radio
/dev/hsicctl8 0640 radio radio
/dev/hsicctl9 0640 radio radio
/dev/hsicctl10 0640 radio radio
/dev/hsicctl11 0640 radio radio
/dev/hsicctl12 0640 radio radio
/dev/hsicctl13 0640 radio radio
/dev/hsicctl14 0640 radio radio
/dev/hsicctl15 0640 radio radio
/dev/hsicctl16 0640 radio radio
/dev/video* 0660 system camera
/dev/media* 0660 system camera
/dev/v4l-subdev* 0660 system camera
/dev/qseecom 0660 system drmrpc
/dev/pft 0660 system drmrpc
/dev/gemini0 0660 system camera
/dev/jpeg0 0660 system camera
/dev/jpeg1 0660 system camera
/dev/jpeg2 0660 system camera
/dev/adsprpc-smd 0664 system system
/dev/system_health_monitor 0644 radio system
/dev/msm_camera/* 0660 system camera
/dev/gemini/ 0660 system camera
/dev/mercury0 0660 system camera
/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
/dev/msm_rotator 0660 system system
/dev/hw_random 0600 root root
/dev/adsprpc-smd 0664 system system
#permissions for audio
/dev/msm_qcelp 0660 system audio
/dev/msm_evrc 0660 system audio
/dev/msm_wma 0660 system audio
/dev/msm_wmapro 0660 system audio
/dev/msm_amrnb 0660 system audio
/dev/msm_amrwb 0660 system audio
/dev/msm_amrwbplus 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_in 0660 system audio
/dev/msm_evrc_in 0660 system audio
/dev/msm_amrnb_in 0640 system audio
/dev/msm_a2dp_in 0660 system audio
/dev/msm_ac3 0660 system audio
/dev/msm_acdb 0660 system audio
/dev/msm_cad 0660 system audio
/dev/msm_fm 0660 system audio
/dev/msm_mvs 0660 system audio
/dev/msm_pcm_lp_dec 0660 system audio
/dev/msm_preproc_ctl 0660 system audio
/dev/msm_rtac 0660 system audio
/dev/msm_voicememo 0660 system audio
*/
/dev/radio0 0640 fm_radio fm_radio
/dev/smd3 0660 bluetooth net_bt_stack
/dev/smd2 0660 bluetooth net_bt_stack
/*
/dev/ttyHSL1 0660 system system
/dev/mdm 0660 system radio
/sys/devices/virtual/smdpkt/smdcntl* open_timeout 0664 radio radio
/dev/sdio_tty_ciq_00 0660 system system
/dev/tty_sdio_00 0660 system system
/dev/ttyGS0 0660 system system
/dev/i2c-5 0660 media media
/dev/voice_svc 0660 system audio
# DVB devices
/dev/dvb/adapter0/demux* 0440 media media
/dev/dvb/adapter0/dvr* 0660 media media
/dev/dvb/adapter0/video* 0660 media media
# Broadcast devices
/dev/tsc_mux0 0660 media media
/dev/tsc_ci0 0660 media media
# sensors
/sys/devices/i2c-12/12-* pollrate_ms 0664 system system
/sys/devices/f9925000.i2c/i2c-0/0-* enable 0660 input system
/sys/devices/f9925000.i2c/i2c-0/0-* poll_delay 0660 input system
/sys/devices/virtual/optical_sensors/proximity ps_adc 0660 input system
/sys/devices/virtual/optical_sensors/proximity ps_poll_delay 0660 input system
/sys/devices/virtual/optical_sensors/lightsensor ls_auto 0660 input system
/sys/devices/virtual/optical_sensors/lightsensor ls_poll_delay 0660 input system
/sys/devices/virtual/input/input* poll 0660 input system
/sys/devices/virtual/input/input* pollrate_ms 0660 input system
# wlan
/dev/wcnss_wlan 0660 system system
/dev/wcnss_ctrl 0660 system system
#nfc permissions
/dev/nfc-nci 0660 nfc nfc
/dev/assd 0660 nfc nfc
# UIO devices
/dev/uio0 0660 system system
/dev/uio1 0660 system system
/dev/uio2 0660 system system
+12
View File
@@ -0,0 +1,12 @@
ro.hardware=qcom
ro.boot.bootdevice=msm_sdcc.1
ro.sf.lcd_density=213
ro.lcd_min_brightness=0
ro.lcd_brightness=128
persist.sys.usb.config=mtp,adb
debug.sf.hw=1
debug.egl.hw=1
debug.composition.type=gpu
persist.hwc.mdpcomp.enable=true
persist.fuse_sdcard=true
persist.timed.enable=true
+2
View File
@@ -0,0 +1,2 @@
add_lunch_combo omni_rubenslte-eng
add_lunch_combo omni_rubenslte-userdebug