diff options
Diffstat (limited to 'rootdir/etc')
-rw-r--r-- | rootdir/etc/fstab.qcom | 21 | ||||
-rw-r--r-- | rootdir/etc/init.qcom.bt.sh | 334 | ||||
-rw-r--r-- | rootdir/etc/init.qcom.power.rc | 129 | ||||
-rwxr-xr-x | rootdir/etc/init.qcom.rc | 1418 | ||||
-rwxr-xr-x | rootdir/etc/init.qcom.sh | 83 | ||||
-rwxr-xr-x | rootdir/etc/init.qcom.usb.rc | 1342 | ||||
-rwxr-xr-x | rootdir/etc/init.qcom.usb.sh | 281 | ||||
-rwxr-xr-x | rootdir/etc/init.target.rc | 280 | ||||
-rw-r--r-- | rootdir/etc/recovery/recovery.fstab | 21 | ||||
-rw-r--r-- | rootdir/etc/ueventd.qcom.rc | 246 |
10 files changed, 4155 insertions, 0 deletions
diff --git a/rootdir/etc/fstab.qcom b/rootdir/etc/fstab.qcom new file mode 100644 index 0000000..55e2669 --- /dev/null +++ b/rootdir/etc/fstab.qcom @@ -0,0 +1,21 @@ +# 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/bootdevice/by-name/boot /boot emmc defaults defaults +/dev/block/bootdevice/by-name/recovery /recovery emmc defaults defaults +/dev/block/bootdevice/by-name/system /system ext4 ro,barrier=1,discard wait +/dev/block/bootdevice/by-name/userdata /data f2fs nosuid,nodev,noatime,nodiratime,inline_xattr,data_flush wait,check,encryptable=footer,formattable,length=-16384 +/dev/block/bootdevice/by-name/userdata /data ext4 nosuid,nodev,noatime,nodiratime,barrier=1,noauto_da_alloc wait,check,encryptable=footer,formattable,length=-16384 +/dev/block/bootdevice/by-name/cache /cache f2fs nosuid,nodev,noatime,nodiratime,inline_xattr,flush_merge,data_flush wait,check,formattable +/dev/block/bootdevice/by-name/cache /cache ext4 nosuid,nodev,noatime,nodiratime,barrier=1 wait,check,formattable +/dev/block/bootdevice/by-name/persist /persist ext4 nosuid,nodev,barrier=1 wait +/dev/block/bootdevice/by-name/dsp /dsp ext4 ro,nosuid,nodev,barrier=1 wait +/dev/block/bootdevice/by-name/modem /firmware vfat ro,shortname=lower,uid=1000,gid=1000,dmask=227,fmask=337,context=u:object_r:firmware_file:s0 wait +/dev/block/bootdevice/by-name/bluetooth /bt_firmware vfat ro,shortname=lower,uid=1002,gid=3002,dmask=222,fmask=333,context=u:object_r:bt_firmware_file:s0 wait + +/devices/soc/6a00000.ssusb/6a00000.dwc3/xhci-hcd.0.auto/usb* auto auto defaults voldmanaged=usbdisk:auto diff --git a/rootdir/etc/init.qcom.bt.sh b/rootdir/etc/init.qcom.bt.sh new file mode 100644 index 0000000..0cc5dc7 --- /dev/null +++ b/rootdir/etc/init.qcom.bt.sh @@ -0,0 +1,334 @@ +#!/system/bin/sh +# Copyright (c) 2009-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. +# + +#Read the arguments passed to the script +config="$1" + +BLUETOOTH_SLEEP_PATH=/proc/bluetooth/sleep/proto +LOG_TAG="qcom-bluetooth" +LOG_NAME="${0}:" + +hciattach_pid="" + +loge () +{ + /system/bin/log -t $LOG_TAG -p e "$LOG_NAME $@" +} + +logi () +{ + /system/bin/log -t $LOG_TAG -p i "$LOG_NAME $@" +} + +failed () +{ + loge "$1: exit code $2" + exit $2 +} + +# +# enable bluetooth profiles dynamically +# +config_bt () +{ + baseband=`getprop ro.baseband` + target=`getprop ro.board.platform` + if [ -f /sys/devices/soc0/soc_id ]; then + soc_hwid=`cat /sys/devices/soc0/soc_id` + else + soc_hwid=`cat /sys/devices/system/soc/soc0/id` + fi + btsoc=`getprop qcom.bluetooth.soc` + + case $baseband in + "apq") + setprop ro.qualcomm.bluetooth.opp true + setprop ro.qualcomm.bluetooth.ftp true + setprop ro.qualcomm.bluetooth.nap false + setprop ro.bluetooth.sap false + setprop ro.bluetooth.dun false + # For MPQ as baseband is same for both + case $soc_hwid in + "130") + setprop ro.qualcomm.bluetooth.hsp true + setprop ro.qualcomm.bluetooth.hfp true + setprop ro.qualcomm.bluetooth.pbap false + setprop ro.qualcomm.bluetooth.map false + ;; + *) + setprop ro.qualcomm.bluetooth.hsp false + setprop ro.qualcomm.bluetooth.hfp false + setprop ro.qualcomm.bluetooth.pbap true + setprop ro.qualcomm.bluetooth.map true + ;; + esac + ;; + "mdm" | "svlte2a" | "svlte1" | "csfb") + setprop ro.qualcomm.bluetooth.opp true + setprop ro.qualcomm.bluetooth.hfp true + setprop ro.qualcomm.bluetooth.hsp true + setprop ro.qualcomm.bluetooth.pbap true + setprop ro.qualcomm.bluetooth.ftp true + setprop ro.qualcomm.bluetooth.map true + setprop ro.qualcomm.bluetooth.nap true + setprop ro.bluetooth.sap true + case $target in + "apq8084") + setprop ro.bluetooth.dun true + logi "Enabling BT-DUN for APQ8084" + ;; + *) + setprop ro.bluetooth.dun false + ;; + esac + ;; + "msm") + setprop ro.qualcomm.bluetooth.opp true + setprop ro.qualcomm.bluetooth.hfp true + setprop ro.qualcomm.bluetooth.hsp true + setprop ro.qualcomm.bluetooth.pbap true + setprop ro.qualcomm.bluetooth.ftp true + setprop ro.qualcomm.bluetooth.nap true + setprop ro.bluetooth.sap true + setprop ro.bluetooth.dun true + case $btsoc in + "ath3k") + setprop ro.qualcomm.bluetooth.map false + ;; + *) + setprop ro.qualcomm.bluetooth.map true + ;; + esac + ;; + *) + setprop ro.qualcomm.bluetooth.opp true + setprop ro.qualcomm.bluetooth.hfp true + setprop ro.qualcomm.bluetooth.hsp true + setprop ro.qualcomm.bluetooth.pbap true + setprop ro.qualcomm.bluetooth.ftp true + setprop ro.qualcomm.bluetooth.map true + setprop ro.qualcomm.bluetooth.nap true + setprop ro.bluetooth.sap true + setprop ro.bluetooth.dun true + ;; + esac + + #Enable Bluetooth Profiles specific to target Dynamically + case $target in + "msm8960") + if [ "$btsoc" != "ath3k" ] && [ "$soc_hwid" != "130" ] + then + setprop ro.bluetooth.hfp.ver 1.6 + setprop ro.qualcomm.bt.hci_transport smd + fi + ;; + "msm8974" | "msm8226" | "msm8610" | "msm8916" | "msm8909" | "msm8952" | "msm8937" ) + if [ "$btsoc" != "ath3k" ] + then + setprop ro.bluetooth.hfp.ver 1.7 + setprop ro.qualcomm.bt.hci_transport smd + fi + ;; + "apq8084" | "mpq8092" | "msm8994" | "msm8992" | "msm8996" ) + if [ "$btsoc" != "rome" ] + then + setprop ro.qualcomm.bt.hci_transport smd + elif [ "$btsoc" = "rome" ] + then + setprop ro.bluetooth.hfp.ver 1.6 + fi + ;; + *) + ;; + esac + +if [ -f /system/etc/bluetooth/stack.conf ]; then +stack=`cat /system/etc/bluetooth/stack.conf` +fi + +case "$stack" in + "bluez") + logi "Bluetooth stack is $stack" + setprop ro.qc.bluetooth.stack $stack + reason=`getprop vold.decrypt` + case "$reason" in + "trigger_restart_framework") + start dbus + ;; + esac + ;; + *) + logi "Bluetooth stack is Bluedroid" + ;; +esac + +} + +start_hciattach () +{ + /system/bin/hciattach -n $BTS_DEVICE $BTS_TYPE $BTS_BAUD & + hciattach_pid=$! + logi "start_hciattach: pid = $hciattach_pid" + echo 1 > $BLUETOOTH_SLEEP_PATH +} + +kill_hciattach () +{ + echo 0 > $BLUETOOTH_SLEEP_PATH + logi "kill_hciattach: pid = $hciattach_pid" + ## careful not to kill zero or null! + kill -TERM $hciattach_pid + # this shell doesn't exit now -- wait returns for normal exit +} + +logi "init.qcom.bt.sh config = $config" +case "$config" in + "onboot") + config_bt + exit 0 + ;; + *) + ;; +esac + +# mimic hciattach options parsing -- maybe a waste of effort +USAGE="hciattach [-n] [-p] [-b] [-t timeout] [-s initial_speed] <tty> <type | id> [speed] [flow|noflow] [bdaddr]" + +while getopts "blnpt:s:" f +do + case $f in + b | l | n | p) opt_flags="$opt_flags -$f" ;; + t) timeout=$OPTARG;; + s) initial_speed=$OPTARG;; + \?) echo $USAGE; exit 1;; + esac +done +shift $(($OPTIND-1)) + +# Note that "hci_qcomm_init -e" prints expressions to set the shell variables +# BTS_DEVICE, BTS_TYPE, BTS_BAUD, and BTS_ADDRESS. + +#Selectively Disable sleep +BOARD=`getprop ro.board.platform` +STACK=`getprop ro.qc.bluetooth.stack` + +# BR/EDR & LE power class configurations +POWER_CLASS=`getprop qcom.bt.dev_power_class` +LE_POWER_CLASS=`getprop qcom.bt.le_dev_pwr_class` + +#find the transport type +TRANSPORT=`getprop ro.qualcomm.bt.hci_transport` +logi "Transport : $TRANSPORT" +case $STACK in + "bluez") + logi "** Bluez stack **" + ;; + *) + logi "** Bluedroid stack **" + setprop bluetooth.status off + ;; +esac + + +case $POWER_CLASS in + 1) PWR_CLASS="-p 0" ; + logi "Power Class: 1";; + 2) PWR_CLASS="-p 1" ; + logi "Power Class: 2";; + 3) PWR_CLASS="-p 2" ; + logi "Power Class: CUSTOM";; + *) PWR_CLASS=""; + logi "Power Class: Ignored. Default(1) used (1-CLASS1/2-CLASS2/3-CUSTOM)"; + logi "Power Class: To override, Before turning BT ON; setprop qcom.bt.dev_power_class <1 or 2 or 3>";; +esac + +case $LE_POWER_CLASS in + 1) LE_PWR_CLASS="-P 0" ; + logi "LE Power Class: 1";; + 2) LE_PWR_CLASS="-P 1" ; + logi "LE Power Class: 2";; + 3) LE_PWR_CLASS="-P 2" ; + logi "LE Power Class: CUSTOM";; + *) LE_PWR_CLASS="-P 1"; + logi "LE Power Class: Ignored. Default(2) used (1-CLASS1/2-CLASS2/3-CUSTOM)"; + logi "LE Power Class: To override, Before turning BT ON; setprop qcom.bt.le_dev_pwr_class <1 or 2 or 3>";; +esac + +eval $(/system/bin/hci_qcomm_init -e $PWR_CLASS $LE_PWR_CLASS && echo "exit_code_hci_qcomm_init=0" || echo "exit_code_hci_qcomm_init=1") + +case $exit_code_hci_qcomm_init in + 0) logi "Bluetooth QSoC firmware download succeeded, $BTS_DEVICE $BTS_TYPE $BTS_BAUD $BTS_ADDRESS";; + *) failed "Bluetooth QSoC firmware download failed" $exit_code_hci_qcomm_init; + case $STACK in + "bluez") + logi "** Bluez stack **" + ;; + *) + logi "** Bluedroid stack **" + setprop bluetooth.status off + ;; + esac + + exit $exit_code_hci_qcomm_init;; +esac + +# init does SIGTERM on ctl.stop for service +trap "kill_hciattach" TERM INT + +case $TRANSPORT in + "smd") + case $STACK in + "bluez") + logi "** Bluez stack **" + echo 1 > /sys/module/hci_smd/parameters/hcismd_set + ;; + *) + logi "** Bluedroid stack **" + setprop bluetooth.status on + ;; + esac + ;; + *) + logi "start hciattach" + start_hciattach + case $STACK in + "bluez") + logi "Bluetooth is turning On with Bluez stack " + ;; + *) + logi "** Bluedroid stack **" + setprop bluetooth.status on + ;; + esac + + wait $hciattach_pid + logi "Bluetooth stopped" + ;; +esac + +exit 0 diff --git a/rootdir/etc/init.qcom.power.rc b/rootdir/etc/init.qcom.power.rc new file mode 100644 index 0000000..293e7de --- /dev/null +++ b/rootdir/etc/init.qcom.power.rc @@ -0,0 +1,129 @@ +on boot + # Update foreground and background cpusets + write /dev/cpuset/foreground/cpus 0-3 + write /dev/cpuset/foreground/boost/cpus 2-3 + write /dev/cpuset/background/cpus 0-1 + write /dev/cpuset/system-background/cpus 0-3 + + # Enable sched boost + write /proc/sys/kernel/sched_boost 1 + +on enable-low-power + # Disable thermal bcl hotplug to switch governor + write /sys/module/msm_thermal/core_control/enabled 0 + write /sys/devices/soc/soc:qcom,bcl/mode "disable" + write /sys/devices/soc/soc:qcom,bcl/hotplug_mask 0 + write /sys/devices/soc/soc:qcom,bcl/hotplug_soc_mask 0 + write /sys/devices/soc/soc:qcom,bcl/mode "enable" + + # Enable Adaptive LMK + write /sys/module/lowmemorykiller/parameters/enable_adaptive_lmk 1 + write /sys/module/lowmemorykiller/parameters/vmpressure_file_min 81250 + + # Configure governor settings for little cluster + write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor "interactive" + write /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_sched_load 1 + write /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_migration_notif 1 + write /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay 19000 + write /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load 90 + write /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate 20000 + write /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq 960000 + write /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy 1 + write /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads 80 + write /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time 19000 + write /sys/devices/system/cpu/cpu0/cpufreq/interactive/max_freq_hysteresis 79000 + write /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq 307200 + write /sys/devices/system/cpu/cpu0/cpufreq/interactive/ignore_hispeed_on_notif 1 + write /sys/devices/system/cpu/cpu0/cpufreq/interactive/enable_prediction 1 + + # Online CPU2 + write /sys/devices/system/cpu/cpu2/online 1 + + # Configure governor settings for big cluster + write /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor "interactive" + write /sys/devices/system/cpu/cpu2/cpufreq/interactive/use_sched_load 1 + write /sys/devices/system/cpu/cpu2/cpufreq/interactive/use_migration_notif 1 + write /sys/devices/system/cpu/cpu2/cpufreq/interactive/above_hispeed_delay "19000 1400000:39000 1700000:19000 2100000:79000" + write /sys/devices/system/cpu/cpu2/cpufreq/interactive/go_hispeed_load 90 + write /sys/devices/system/cpu/cpu2/cpufreq/interactive/timer_rate 20000 + write /sys/devices/system/cpu/cpu2/cpufreq/interactive/hispeed_freq 1248000 + write /sys/devices/system/cpu/cpu2/cpufreq/interactive/io_is_busy 1 + write /sys/devices/system/cpu/cpu2/cpufreq/interactive/target_loads "85 1500000:90 1800000:70 2100000:95" + write /sys/devices/system/cpu/cpu2/cpufreq/interactive/min_sample_time 19000 + write /sys/devices/system/cpu/cpu2/cpufreq/interactive/max_freq_hysteresis 79000 + write /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq 307200 + write /sys/devices/system/cpu/cpu2/cpufreq/interactive/ignore_hispeed_on_notif 1 + write /sys/devices/system/cpu/cpu2/cpufreq/interactive/enable_prediction 1 + + # Re-enable thermal and BCL hotplug + write /sys/module/msm_thermal/core_control/enabled 1 + write /sys/devices/soc/soc:qcom,bcl/mode "disable" + write /sys/devices/soc/soc:qcom,bcl/hotplug_mask 12 + write /sys/devices/soc/soc:qcom,bcl/hotplug_soc_mask 8 + write /sys/devices/soc/soc:qcom,bcl/mode "enable" + + # Input boost configuration + write /sys/module/cpu_boost/parameters/input_boost_freq "0:1324800 2:1324800" + write /sys/module/cpu_boost/parameters/input_boost_ms 40 + + # Setting b.L scheduler parameters + write /proc/sys/kernel/sched_boost 0 + write /proc/sys/kernel/sched_downmigrate 45 + write /proc/sys/kernel/sched_upmigrate 45 + write /proc/sys/kernel/sched_freq_inc_notify 400000 + write /proc/sys/kernel/sched_freq_dec_notify 400000 + write /proc/sys/kernel/sched_spill_nr_run 3 + write /proc/sys/kernel/sched_init_task_load 100 + write /proc/sys/kernel/sched_upmigrate_min_nice 9 + + # Enable bus-dcvs + write /sys/class/devfreq/soc:qcom,cpubw/governor "bw_hwmon" + write /sys/class/devfreq/soc:qcom,cpubw/polling_interval 50 + write /sys/class/devfreq/soc:qcom,cpubw/min_freq 1525 + write /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/mbps_zones "1525 5195 11863 13763" + write /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/sample_ms 4 + write /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/io_percent 34 + write /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/hist_memory 20 + write /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/hyst_length 10 + write /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/low_power_ceil_mbps 0 + write /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/low_power_io_percent 34 + write /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/low_power_delay 20 + write /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/guard_band_mbps 0 + write /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/up_scale 250 + write /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/idle_mbps 1600 + + write /sys/class/devfreq/soc:qcom,memlat-cpu0/governor "mem_latency" + write /sys/class/devfreq/soc:qcom,memlat-cpu0/polling_interval 10 + write /sys/class/devfreq/soc:qcom,memlat-cpu2/governor "mem_latency" + write /sys/class/devfreq/soc:qcom,memlat-cpu2/polling_interval 10 + write /sys/class/devfreq/soc:qcom,mincpubw/governor "cpufreq" + + write /sys/module/lpm_levels/parameters/sleep_disabled "N" + + # Set perfd properties + rm /data/system/perfd/default_values + start perfd + + # Starting io prefetcher service + start iop + +on charger + write /sys/devices/system/cpu/cpu1/online 0 + write /sys/devices/system/cpu/cpu2/online 0 + write /sys/devices/system/cpu/cpu3/online 0 + write /sys/module/msm_thermal/core_control/cpus_offlined 14 + write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor "powersave" + write /sys/module/lpm_levels/parameters/sleep_disabled 0 + +on class_start:late_start + write /proc/sys/kernel/sched_boost 1 + + + trigger enable-low-power + +on property:init.svc.recovery=running + trigger enable-low-power + +on property:dev.bootcomplete=1 + write /proc/sys/kernel/sched_boost 0 + setprop sys.io.scheduler "bfq" diff --git a/rootdir/etc/init.qcom.rc b/rootdir/etc/init.qcom.rc new file mode 100755 index 0000000..f6e0c03 --- /dev/null +++ b/rootdir/etc/init.qcom.rc @@ -0,0 +1,1418 @@ +# Copyright (c) 2009-2012, 2014-2015, 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.power.rc +import init.qcom.usb.rc + +on early-init + mkdir /firmware 0771 system system + mkdir /bt_firmware 0771 system system + symlink /data/tombstones /tombstones + mkdir /dsp 0771 media media + chmod 0755 /sys/kernel/debug + +on init + + # Set permissions for persist partition + mkdir /persist 0771 system system + + # Support legacy paths + symlink /sdcard /mnt/sdcard + symlink /sdcard /storage/sdcard0 + +on early-boot + # set RLIMIT_MEMLOCK to 64MB + setrlimit 8 67108864 67108864 + + # set aggressive read ahead during boot up. + write /sys/block/dm-0/queue/read_ahead_kb 2048 + write /sys/block/sda/queue/read_ahead_kb 2048 + write /sys/block/sde/queue/read_ahead_kb 2048 + + # Allow subsystem (modem etc) debugging + write /sys/module/subsystem_restart/parameters/enable_debug ${persist.sys.ssr.enable_debug} + write /sys/module/pil_msa/parameters/pbl_mba_boot_timeout_ms ${persist.sys.mba_boot_timeout} + write /sys/module/pil_msa/parameters/modem_auth_timeout_ms ${persist.sys.modem_auth_timeout} + write /sys/module/peripheral_loader/parameters/proxy_timeout_ms ${persist.sys.pil_proxy_timeout} + write /sys/kernel/boot_adsp/boot 1 + write /sys/kernel/boot_slpi/boot 1 + +on fs + wait /dev/block/bootdevice + mount_all fstab.qcom + +on boot + # Update foreground and background cpusets + write /dev/cpuset/foreground/cpus 0-3 + write /dev/cpuset/foreground/boost/cpus 2-3 + write /dev/cpuset/background/cpus 0-1 + write /dev/cpuset/system-background/cpus 0-3 + + # Secure touch + chmod 0660 /sys/devices/soc/75ba000.i2c/i2c-12/12-004a/secure_touch_enable + chmod 0440 /sys/devices/soc/75ba000.i2c/i2c-12/12-004a/secure_touch + chown system drmrpc /sys/devices/soc/75ba000.i2c/i2c-12/12-004a/secure_touch_enable + chown system drmrpc /sys/devices/soc/75ba000.i2c/i2c-12/12-004a/secure_touch + write /sys/devices/soc/75ba000.i2c/i2c-12/12-0020/input/input0/update_fw 1 + + # Torch + chown system system /sys/class/leds/led:torch_0/brightness + chmod 666 /sys/class/leds/led:torch_0/brightness + chown system system /sys/class/leds/led:torch_1/brightness + chmod 666 /sys/class/leds/led:torch_1/brightness + chown system system /sys/class/leds/led:switch/brightness + chmod 666 /sys/class/leds/led:switch/brightness + + # Touchscreen + chown system radio /proc/touchpanel/double_tap_enable + chmod 0660 /proc/touchpanel/double_tap_enable + + chown root system /proc/touchpanel/camera_enable + chmod 0660 /proc/touchpanel/camera_enable + + chown root system /proc/touchpanel/music_enable + chmod 0660 /proc/touchpanel/music_enable + + chown root system /proc/touchpanel/flashlight_enable + chmod 0660 /proc/touchpanel/flashlight_enable + + # Buttons + chown root system /proc/s1302/key_rep + chmod 0660 /proc/s1302/key_rep + + chown root system /proc/s1302/virtual_key + chmod 0660 /proc/s1302/virtual_key + + chown root system /proc/tri-state-key/keyCode_top + chmod 0660 /proc/tri-state-key/keyCode_top + + chown root system /proc/tri-state-key/keyCode_middle + chmod 0660 /proc/tri-state-key/keyCode_middle + + chown root system /proc/tri-state-key/keyCode_bottom + chmod 0660 /proc/tri-state-key/keyCode_bottom + + # Graphics + chown system graphics /sys/class/graphics/fb0/dyn_pu + chmod 0664 /sys/class/graphics/fb0/dyn_pu + chown system graphics /sys/class/graphics/fb0/dynamic_fps + chmod 0664 /sys/class/graphics/fb0/dynamic_fps + chown system graphics /sys/class/graphics/fb0/idle_time + chmod 0664 /sys/class/graphics/fb0/idle_time + chown system graphics /sys/class/graphics/fb0/mode + chmod 0664 /sys/class/graphics/fb0/mode + chown system graphics /sys/class/graphics/fb0/modes + chmod 0664 /sys/class/graphics/fb0/modes + chown system graphics /sys/class/graphics/fb0/sre + chmod 0664 /sys/class/graphics/fb0/sre + + symlink /data/local /local + + # Fingerprint + chown system system /sys/devices/soc/soc:fpc1020/irq + chmod 0660 /sys/devices/soc/soc:fpc1020/irq + chown system system /sys/devices/soc/soc:fpc1020/wakeup + chmod 0660 /sys/devices/soc/soc:fpc1020/wakeup + chown system system /sys/devices/soc/soc:fpc1020/key + chmod 0660 /sys/devices/soc/soc:fpc1020/key + chown system system /sys/devices/soc/soc:fpc1020/wl + chmod 0660 /sys/devices/soc/soc:fpc1020/wl + chown system system /sys/devices/soc/soc:fpc1020/screen + chmod 0660 /sys/devices/soc/soc:fpc1020/screen + chmod 0666 /dev/qseecom + + #add for board test + chown root root /dev/i2c-5 + chmod 0660 /dev/i2c-5 + + #added touch gesture wake node permission + chown system system /sys/devices/virtual/touch/tp_dev/gesture_on + chmod 0660 /sys/devices/virtual/touch/tp_dev/gesture_on + + # USB + chown system system /sys/module/dwc3/parameters/usb30_disabled + chmod 0660 /sys/module/dwc3/parameters/usb30_disabled + + # RGB light + chown system system /sys/class/leds/led:rgb_red/brightness + chmod 0660 /sys/class/leds/led:rgb_red/brightness + chown system system /sys/class/leds/led:rgb_red/rgbblink + chmod 0660 /sys/class/leds/led:rgb_red/rgbblink + chown system system /sys/class/leds/led:rgb_red/rgbbreath + chmod 0660 /sys/class/leds/led:rgb_red/rgbbreath + + chown bluetooth bluetooth /sys/module/bluetooth_power/parameters/power + chown bluetooth net_bt /sys/class/rfkill/rfkill0/type + chown bluetooth net_bt /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 + chown system system /sys/module/radio_iris_transport/parameters/fmsmd_set + chmod 0660 /sys/module/bluetooth_power/parameters/power + chmod 0660 /sys/module/hci_smd/parameters/hcismd_set + chmod 0660 /sys/module/radio_iris_transport/parameters/fmsmd_set + chmod 0660 /sys/class/rfkill/rfkill0/state + chmod 0660 /proc/bluetooth/sleep/proto + chown bluetooth net_bt /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 + + chown bluetooth net_bt /sys/class/rfkill/rfkill0/device/extldo + chmod 0660 /sys/class/rfkill/rfkill0/device/extldo + + # 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 + + mkdir /persist/drm 0770 system system + + mkdir /persist/bluetooth 0770 bluetooth bluetooth + + # Create NETMGR daemon socket area + mkdir /dev/socket/netmgr 0750 radio radio + + setprop wifi.interface wlan0 + +# Define TCP buffer sizes for various networks +# ReadMin, ReadInitial, ReadMax, WriteMin, WriteInitial, WriteMax, + setprop net.tcp.buffersize.wifi 524288,2097152,4194304,262144,524288,1048576 + + + setprop ro.telephony.call_ring.multiple false + + #Remove SUID bit for iproute2 ip tool + chmod 0755 /system/bin/ip + + chmod 0444 /sys/devices/platform/msm_hsusb/gadget/usb_state + + # For bridgemgr daemon to inform the USB driver of the correct transport + chown radio radio /sys/class/android_usb/f_rmnet_smd_sdio/transport + +# Define TCP buffer sizes for various networks +# ReadMin, ReadInitial, ReadMax, WriteMin, WriteInitial, WriteMax, + setprop net.tcp.buffersize.default 4096,87380,524288,4096,16384,110208 + setprop net.tcp.buffersize.lte 2097152,4194304,8388608,262144,524288,1048576 + setprop net.tcp.buffersize.umts 4094,87380,110208,4096,16384,110208 + setprop net.tcp.buffersize.hspa 4094,87380,1220608,4096,16384,1220608 + setprop net.tcp.buffersize.hsupa 4094,87380,1220608,4096,16384,1220608 + setprop net.tcp.buffersize.hsdpa 4094,87380,1220608,4096,16384,1220608 + setprop net.tcp.buffersize.hspap 4094,87380,1220608,4096,16384,1220608 + setprop net.tcp.buffersize.edge 4093,26280,35040,4096,16384,35040 + setprop net.tcp.buffersize.gprs 4092,8760,11680,4096,8760,11680 + setprop net.tcp.buffersize.evdo 4094,87380,524288,4096,16384,262144 + + setprop net.tcp.2g_init_rwnd 10 + +# 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 8388608 + write /proc/sys/net/core/wmem_max 8388608 + + # 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 + + # Set the console loglevel to < KERN_INFO + # Set the default message loglevel to KERN_INFO + write /proc/sys/kernel/printk "6 6 1 7" + + # Allow access for CCID command/response timeout configuration + chown system system /sys/module/ccid_bridge/parameters/bulk_msg_timeout + + # bond0 used by FST Manager + chown wifi wifi /sys/class/net/bond0/bonding/queue_id + +# msm specific files that need to be created on /data +on post-fs-data + mkdir /data/tombstones 0771 system system + mkdir /tombstones/modem 0771 system system + mkdir /tombstones/lpass 0771 system system + mkdir /tombstones/wcnss 0771 system system + mkdir /tombstones/dsps 0771 system system + mkdir /persist/data/sfs 0700 system system + mkdir /persist/data/tz 0700 system system + mkdir /persist/qc_senseid 0700 system system + mkdir /data/misc/dts 0770 media audio + mkdir /data/usf 0700 system system + mkdir /data/misc/tloc/ 0700 system drmrpc + mkdir /data/misc/qvop 0660 system system + mkdir /data/misc/audio_pp 0771 media audio + + # Sensors + mkdir /data/misc/sensors + chmod 0775 /data/misc/sensors + chmod 0755 /persist/sensors + chmod 0644 /persist/sensors/sensors_settings + chmod 0644 /persist/sensors/gyro_sensitity_cal + chown system root /persist/sensors/sensors_settings + chown system root /persist/sensors/gyro_sensitity_cal + + # Create directories for Fingerprint + mkdir /data/fpc_images 0770 system system + mkdir /data/fpc_images/verify 0770 system system + mkdir /data/fpc_images/enroll 0770 system system + mkdir /data/fpc 0770 system system + mkdir /data/misc/stargate 0770 system system + mkdir /data/misc/stargate/bg_estimation 0770 system system + mkdir /data/misc/stargate/calib_test 0770 system system + mkdir /data/misc/stargate/database 0770 system system + + # Create directory for TZ Apps + mkdir /data/misc/qsee 0770 system system + + # Create folder for mm-qcamera-daemon + 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/ipa 0700 net_admin net_admin + + mkdir /data/misc/bluetooth 0770 bluetooth bluetooth + + # Create the directories used by the Wireless subsystem + mkdir /data/misc/wifi 0770 wifi wifi + mkdir /data/misc/wifi/sockets 0770 wifi wifi + mkdir /data/misc/wifi/wpa_supplicant 0770 wifi wifi + mkdir /data/misc/dhcp 0770 dhcp dhcp + chown dhcp dhcp /data/misc/dhcp + + # Create port-bridge log dir + mkdir /data/misc/port_bridge 0770 radio radio + chmod 0770 /data/misc/port_bridge + + # 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 for audio delta files + mkdir /data/misc/audio/acdbdata 0770 media audio + mkdir /data/misc/audio/acdbdata/delta 0770 media 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 system graphics + + # 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 + + # Create a folder for audio delta files + mkdir /data/audio/acdbdata 0770 media audio + mkdir /data/audio/acdbdata/delta 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 + + # Create FM dir for patchdownloader + mkdir /data/misc/fm 0770 system system + chmod 0770 /data/misc/fm + + # RIDL data + mkdir /data/misc/SelfHost/ 0710 system shell + mkdir /data/misc/SelfHost/QCLogs/ 2750 system shell + mkdir /data/misc/SelfHost/QCLogs/temp/ 0700 system shell + mkdir /data/misc/SelfHost/storage/ 0700 system shell + mkdir /data/misc/SelfHost/Running/ 2750 system shell + mkdir /data/misc/SelfHost/socket/ 2770 system system + + # 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 + + # NFC local data and nfcee xml storage + mkdir /data/nfc 0770 nfc nfc + mkdir /data/nfc/param 0770 nfc nfc + + #Create IOP deamon related dirs + mkdir /data/misc/iop 0770 root system + + # Mark the copy complete flag to not completed + write /data/misc/radio/copy_complete 0 + chown radio radio /data/misc/radio/copy_complete + chmod 0660 /data/misc/radio/copy_complete + + # File flags for prebuilt ril db file + write /data/misc/radio/prebuilt_db_support 1 + chown radio radio /data/misc/radio/prebuilt_db_support + chmod 0400 /data/misc/radio/prebuilt_db_support + write /data/misc/radio/db_check_done 0 + chown radio radio /data/misc/radio/db_check_done + chmod 0660 /data/misc/radio/db_check_done + +# start camera server as daemon +service qcamerasvr /system/bin/mm-qcamera-daemon + class main + user camera + group camera system inet input graphics + writepid /dev/cpuset/system-background/tasks + +# fingerprint service +service fingerprintd /system/bin/fingerprintd + class late_start + user system + group system + +service qfp-daemon /system/bin/qfp-daemon + class late_start + user system + group system drmrpc diag input + +service qvop-daemon /system/bin/qvop-daemon + class late_start + user system + group system drmrpc + +# start up peripheral manager +service per_mgr system/bin/pm-service + class late_start + user system + group system net_raw + ioprio rt 4 + +service per_proxy /system/bin/pm-proxy + class late_start + user system + group system + disabled + +on property:init.svc.per_mgr=running + start per_proxy + +on property:sys.shutdown.requested=* + stop per_proxy + +service qseecomd /system/bin/qseecomd + class core + user root + group root + +service perfd /system/vendor/bin/perfd + class main + user root + socket perfd seqpacket 0666 root system + disabled + writepid /dev/cpuset/system-background/tasks + +service seempd /system/bin/seempd + class late_start + user system + group system + socket seempdw dgram 0666 system system + +service secotad /system/bin/secotad + class late_start + user system + group system + +service thermal-engine /system/vendor/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 + 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 + +service time_daemon /system/bin/time_daemon + class late_start + user root + group root + +service adsprpcd /system/bin/adsprpcd + class main + user media + group media + +service audiod /system/bin/audiod + class late_start + user system + group system + +service usf_tester /system/bin/usf_tester + user system + group system inet + disabled + oneshot + +service usf_epos /system/bin/usf_epos + class main + user system + group system inet + disabled + oneshot + +service usf_gesture /system/bin/usf_gesture + user system + group system inet + disabled + oneshot + +service usf_sync_gesture /system/bin/usf_sync_gesture + user system + group system inet audio + disabled + oneshot + +service usf_p2p /system/bin/usf_p2p + user system + group system inet + disabled + oneshot + +service usf_hovering /system/bin/usf_hovering + user system + group system inet + disabled + oneshot + +service usf_proximity /system/bin/usf_proximity + class late_start + user system + group system inet audio + +service usf_pairing /system/bin/usf_pairing + user system + group system inet + disabled + oneshot + +service usf_sw_calib /system/bin/usf_sw_calib + user system + group system inet + disabled + oneshot + +service usf-post-boot /system/bin/sh /system/etc/usf_post_boot.sh + class late_start + user root + disabled + oneshot + +on property:init.svc.bootanim=stopped + start usf-post-boot + +service imsqmidaemon /system/bin/imsqmidaemon + class main + user system + socket ims_qmid stream 0660 system radio + group radio net_raw log 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 diag net_admin + disabled + +service pd_mapper /system/vendor/bin/pd-mapper + class core + disabled + +on property:persist.sys.pd_enable=1 + start pd_mapper + write /sys/class/service_locator/service_locator_status 1 + +on property:persist.sys.pd_enable=0 + write /sys/class/service_locator/service_locator_status 0 + +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 inet log + disabled + +service imscmservice /system/bin/imscmservice + class main + user system + group radio net_raw diag diag log + disabled + +on property:sys.ims.DATA_DAEMON_STATUS=1 + start ims_rtp_daemon + start imscmservice + +service dts_configurator /system/bin/dts_configurator + class late_start + user system + group system media audio + oneshot + +service dtseagleservice /system/bin/dts_eagle_service + class late_start + user system + group audio media + disabled + +on property:init.svc.dts_configurator=stopped + start dtseagleservice + +service ppd /system/vendor/bin/mm-pp-dpps + class late_start + user system + group system graphics + socket pps stream 0660 system system + disabled + +on property:init.svc.surfaceflinger=stopped + stop ppd + +on property:init.svc.surfaceflinger=running + start ppd + +on property:init.svc.surfaceflinger=restarting + stop ppd + +on property:init.svc.zygote=stopped + stop ppd + +on property:init.svc.zygote=running + start ppd + +on property:init.svc.zygote=restarting + stop ppd + +service tlocd /system/bin/tloc_daemon + class late_start + user system + group drmrpc gps net_raw + +service energy-awareness /system/bin/energy-awareness + class main + user root + group system + oneshot + +service mdtpd /system/vendor/bin/mdtpd + class late_start + user root + group system radio drmrpc + +service iop /system/bin/iop + class main + user root + group root + disabled + socket iop seqpacket 0666 root system + writepid /dev/cpuset/system-background/tasks + +service qcomsysd /system/bin/qcom-system-daemon + class main + user root + group root qcom_diag + +service ssr_setup /system/bin/ssr_setup + oneshot + disabled + +service ss_ramdump /system/bin/subsystem_ramdump + class main + user system + group system + disabled + +on property:persist.sys.ssr.restart_level=* + start ssr_setup + +on property:persist.sys.ssr.enable_ramdumps=1 + write /sys/module/subsystem_restart/parameters/enable_ramdumps 1 + mkdir /data/ramdump 770 system system + start ss_ramdump + +on property:persist.sys.ssr.enable_ramdumps=0 + write /sys/module/subsystem_restart/parameters/enable_ramdumps 0 + +on property:sys.boot_completed=1 + write /dev/kmsg "Boot completed " + # Reset the read_ahead_kb to 512 + write /sys/block/dm-0/queue/read_ahead_kb 512 + write /sys/block/sda/queue/read_ahead_kb 512 + write /sys/block/sde/queue/read_ahead_kb 512 + + # CPE fw_name used by sound trigger HAL + chown media audio /sys/kernel/wcd_cpe0/fw_name + +on property:persist.radio.atfwd.start=false + stop atfwd + +on property:radio.atfwd.start=false + stop atfwd + +# corefile limit +on property:persist.debug.trace=1 + mkdir /data/core 0777 root root + write /proc/sys/kernel/core_pattern "/data/core/%E.%p.%e" + +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_bt_addr + start config_bluetooth + +on property:persist.env.fastdorm.enabled=true + setprop persist.radio.data_no_toggle 1 + +service cnd /system/bin/cnd + class main + 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 core + user root + oneshot + +service rmt_storage /system/bin/rmt_storage + class core + user root + +service rfs_access /system/bin/rfs_access + class core + user root + group system net_raw + +service tftp_server /system/bin/tftp_server + class main + user root + +on property:wc_transport.start_hci=true + start start_hci_filter + +on property:wc_transport.start_hci=false + stop start_hci_filter + +service start_hci_filter /system/bin/wcnss_filter + class late_start + user bluetooth + group bluetooth qcom_diag + disabled + +service config_bt_addr /system/bin/btnvtool -O + class core + user bluetooth + group bluetooth radio + oneshot + +on property:wc_transport.start_root=true + start hci_filter_root + +on property:wc_transport.start_root=false + stop hci_filter_root + +service hci_filter_root /system/bin/wcnss_filter + class late_start + user bluetooth + group bluetooth qcom_diag system + 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 + 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 media_rw + 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 net_bt + disabled + oneshot + +service bridgemgrd /system/bin/bridgemgrd + class late_start + user radio + group radio qcom_diag + disabled + +service port-bridge /system/bin/port-bridge + class main + user radio system + group radio system inet + oneshot + +service qmiproxy /system/bin/qmiproxy + class main + user radio + group radio qcom_diag + disabled + +# QMUX must be in multiple groups to support external process connections +service qmuxd /system/bin/qmuxd + class main + user root + group radio audio bluetooth gps nfc qcom_diag + +service netmgrd /system/bin/netmgrd + class main + +service ipacm-diag /system/bin/ipacm-diag + class main + user system + socket ipacm_log_file dgram 660 system net_admin + group net_admin qcom_diag + +service ipacm /system/bin/ipacm + class main + user net_admin + group net_admin inet + +service qti /system/vendor/bin/qti + class main + user radio + group radio net_raw qcom_diag usb net_admin + +service sensors /system/bin/sensors.qcom + class core + user root + group root + +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 + +on property:sys.sysctl.tcp_adv_win_scale=* + write /proc/sys/net/ipv4/tcp_adv_win_scale ${sys.sysctl.tcp_adv_win_scale} + +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 \ + -ip2p0 -Dnl80211 -c/data/misc/wifi/p2p_supplicant.conf \ + -I/system/etc/wifi/p2p_supplicant_overlay.conf -N \ + -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \ + -I/system/etc/wifi/wpa_supplicant_overlay.conf \ + -O/data/misc/wifi/sockets -puse_p2p_group_interface=1 -dd \ + -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 -dd \ + -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 wigig_supplicant /system/bin/wpa_supplicant \ + -iwigig0 -Dnl80211 -c/data/misc/wifi/wigig_supplicant.conf \ + -m/data/misc/wifi/wigig_p2p_supplicant.conf \ + -O/data/misc/wifi/wigig_sockets -dd \ + -e/data/misc/wifi/wigig_entropy.bin -g@android:wpa_wigig0 + # 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_wigig0 dgram 660 wifi wifi + disabled + oneshot + +# FST Manager can be started by property_set("ctl.start", "fstman:<hostap ctrl iface>"); +service fstman /system/bin/fstman -B -ddd -c /data/misc/wifi/fstman.ini + user wifi + group wifi net_admin net_raw + class main + disabled + oneshot + +on property:netd.fstman.start=true + start fstman + +on property:netd.fstman.start=false + stop fstman + +service dhcpcd_wlan0 /system/bin/dhcpcd -ABKLG + class late_start + disabled + oneshot + +service dhcpcd_bond0 /system/bin/dhcpcd -ABKLG + class late_start + disabled + oneshot + +service dhcpcd_p2p /system/bin/dhcpcd -ABKLG + class late_start + disabled + oneshot + +service iprenew_wlan0 /system/bin/dhcpcd -n + class late_start + disabled + oneshot + +service iprenew_bond0 /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 wifi_fccutild /system/bin/wifi_fccutild + user system + group system inet net_admin + socket wififccutild_server dgram 0660 system system + disabled + oneshot + +on property:wifi.fccutild.load.qcacld=true + insmod /system/lib/modules/qca_cld/qca_cld_wlan.ko con_mode=5 + +service cnss_diag /system/bin/cnss_diag -q -f + class main + user root + group root + #ifdef VENDOR_EDIT + # cnss diag cause power consumption bigger sometimes, so disable it until solve it + disabled + #endif + oneshot + +service cnss-daemon /system/bin/cnss-daemon -n -l + class late_start + +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 + +service loc_launcher /system/bin/loc_launcher + # loc_launcher will start as root and set its uid to gps + class late_start + group gps inet net_raw qcom_diag net_admin wifi + +service fm_dl /system/bin/sh /system/etc/init.qcom.fm.sh + class late_start + user system + group system + 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 sensor-sh /system/bin/sh /init.qcom.sensors.sh + class core + 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 qti-testscripts /system/bin/sh /system/etc/init.qcom.testscripts.sh + class late_start + user root + disabled + oneshot + seclabel u:r:qti-testscripts:s0 + +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 + +service config-zram /system/bin/sh /system/etc/init.qcom.zram.sh + class late_start + user root + disabled + oneshot + +on property:sys.boot_completed=1 + start qcom-post-boot + start qti-testscripts + start config-zram + +service atfwd /system/bin/ATFWD-daemon + class late_start + user system + group system radio + +service hostapd /system/bin/hostapd /data/hostapd/hostapd.conf + class late_start + user root + group root + oneshot + disabled + +service ds_fmc_appd /system/bin/ds_fmc_appd -p "rmnet0" -D + class late_start + group radio wifi inet + disabled + oneshot + +on property:persist.data.ds_fmc_app.mode=1 + start ds_fmc_appd + +service ims_regmanager /system/bin/exe-ims-regmanagerprocessnative + class late_start + 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 late_start + socket rild2 stream 660 root radio + socket rild-debug2 stream 660 radio system + user root + group radio cache inet misc audio sdcard_r sdcard_rw qcom_diag diag log net_raw + +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 net_raw + oneshot + +on property:sys.usb_uicc.enabled=1 + start usb_uicc_enable + +on property:sys.usb_uicc.enabled=0 + start usb_uicc_enable + +service profiler_daemon /system/bin/profiler_daemon + class late_start + user root + group root + disabled + +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 + seclabel u:r:healthd:s0 + +service ssr_diag /system/bin/ssr_diag + class late_start + user system + group system + disabled + +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 + user root + group root + 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 -c + 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 vm_bms /system/bin/vm_bms + user root + group root + disabled + +service msm_irqbalance /system/bin/msm_irqbalance -f /system/vendor/etc/msm_irqbalance.conf + class main + user root + group root + disabled + writepid /dev/cpuset/system-background/tasks + +service wfdservice /system/bin/wfdservice + class main + user system + group audio camera inet net_bt_stack drmrpc media_rw media input net_admin + # removed these because of limit of 12 groups + #graphics net_bt net_bt_admin bluetooth + +# Coresight early boot service +service cs-early-boot /system/bin/sh /persist/coresight/qdss.agent.sh early-boot /system/etc/init.qcom.debug.sh + class core + user root + oneshot + +# Coresight post boot servive +service cs-post-boot /system/bin/sh /persist/coresight/qdss.agent.sh + user root + disabled + oneshot + +on property:sys.boot_completed=1 + start cs-post-boot + +on property:sys.dbg.coresight.enable=1 + write /persist/coresight/enable 1 + +on property:sys.dbg.coresight.enable=0 + write /persist/coresight/enable 0 + +service qseeproxydaemon /system/vendor/bin/qseeproxydaemon + class late_start + user system + group system + +# Seemp health service +service seemp_healthd /system/vendor/bin/seemp_healthd + class late_start + user system + group system + +#IFAA service +service ifaad /system/bin/ifaad + class late_start + user system + group system diff --git a/rootdir/etc/init.qcom.sh b/rootdir/etc/init.qcom.sh new file mode 100755 index 0000000..c3511f6 --- /dev/null +++ b/rootdir/etc/init.qcom.sh @@ -0,0 +1,83 @@ +#!/system/bin/sh +# Copyright (c) 2009-2015, 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. +# + +start_msm_irqbalance() +{ + if [ -f /system/bin/msm_irqbalance ]; then + start msm_irqbalance + fi +} + +start_copying_prebuilt_qcril_db() +{ + if [ -f /system/vendor/qcril.db -a ! -f /data/misc/radio/qcril.db ]; then + cp /system/vendor/qcril.db /data/misc/radio/qcril.db + chown -h radio.radio /data/misc/radio/qcril.db + fi +} + +bootmode=`getprop ro.bootmode` +emmc_boot=`getprop ro.boot.emmc` +case "$emmc_boot" + in "true") + if [ "$bootmode" != "charger" ]; then # start rmt_storage and rfs_access + start rmt_storage + start rfs_access + fi + ;; +esac + +# +# Copy qcril.db if needed for RIL +# +start_copying_prebuilt_qcril_db +echo 1 > /data/misc/radio/db_check_done + +# +# Make modem config folder and copy firmware config to that folder for RIL +# +if [ -f /data/misc/radio/ver_info.txt ]; then + prev_version_info=`cat /data/misc/radio/ver_info.txt` +else + prev_version_info="" +fi + +cur_version_info=`cat /firmware/verinfo/ver_info.txt` +if [ ! -f /firmware/verinfo/ver_info.txt -o "$prev_version_info" != "$cur_version_info" ]; then + rm -rf /data/misc/radio/modem_config + mkdir /data/misc/radio/modem_config + chmod 770 /data/misc/radio/modem_config +#[Begin][public][PLAT-127][modem][mbn][wangxg7][20160121] Modify default mbn location + #cp -r /firmware/image/modem_pr/mcfg/configs/* /data/misc/radio/modem_config + cp -r /firmware/image/modem_pr/mcfg/fancy_co/* /data/misc/radio/modem_config +#[End][public][PLAT-127][modem][mbn][wangxg7][20160121] Modify default mbn location + chown -hR radio.radio /data/misc/radio/modem_config + cp /firmware/verinfo/ver_info.txt /data/misc/radio/ver_info.txt + chown radio.radio /data/misc/radio/ver_info.txt +fi +echo 1 > /data/misc/radio/copy_complete diff --git a/rootdir/etc/init.qcom.usb.rc b/rootdir/etc/init.qcom.usb.rc new file mode 100755 index 0000000..9fe0e25 --- /dev/null +++ b/rootdir/etc/init.qcom.usb.rc @@ -0,0 +1,1342 @@ +# 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} + +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 + +service qcom-usb-sh /system/bin/sh /init.qcom.usb.sh + class core + 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 compositions +on property:sys.usb.config=diag,serial_tty,serial_smd + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 05C6 + write /sys/class/android_usb/android0/idProduct 9002 + write /sys/class/android_usb/android0/f_diag/clients diag + write /sys/class/android_usb/android0/f_serial/transports tty,smd + write /sys/class/android_usb/android0/functions diag,serial + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,serial_tty,serial_smd,adb + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 05C6 + write /sys/class/android_usb/android0/idProduct 9020 + 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 + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,adb + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 05C6 + write /sys/class/android_usb/android0/idProduct 676C + 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 + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 05C6 + write /sys/class/android_usb/android0/idProduct 900E + write /sys/class/android_usb/android0/f_diag/clients diag + write /sys/class/android_usb/android0/functions diag + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,serial_smd,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 9091 + write /sys/class/android_usb/android0/f_diag/clients diag + write /sys/class/android_usb/android0/f_serial/transports smd + write /sys/class/android_usb/android0/f_rmnet/transports smd,bam + write /sys/class/android_usb/android0/functions diag,serial,rmnet,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,rmnet_qti_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 9091 + write /sys/class/android_usb/android0/f_diag/clients diag + write /sys/class/android_usb/android0/f_serial/transports smd + write /sys/class/android_usb/android0/f_rmnet/transports qti,bam + write /sys/class/android_usb/android0/functions diag,serial,rmnet,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,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 9092 + write /sys/class/android_usb/android0/f_diag/clients diag + write /sys/class/android_usb/android0/f_serial/transports smd + write /sys/class/android_usb/android0/f_rmnet/transports smd,bam + write /sys/class/android_usb/android0/functions diag,serial,rmnet + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,serial_smd,rmnet_qti_bam + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 05C6 + write /sys/class/android_usb/android0/idProduct 9092 + write /sys/class/android_usb/android0/f_diag/clients diag + write /sys/class/android_usb/android0/f_serial/transports smd + write /sys/class/android_usb/android0/f_rmnet/transports qti,bam + write /sys/class/android_usb/android0/functions diag,serial,rmnet + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,serial_cdev,serial_tty,rmnet_ipa,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 char_bridge,tty + write /sys/class/android_usb/android0/f_rmnet/transports qti,bam2bam_ipa + 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,serial_cdev,serial_tty,rmnet_ipa,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 char_bridge,tty + write /sys/class/android_usb/android0/f_rmnet/transports qti,bam2bam_ipa + 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,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} + +# RmNet using USB BAM to IPA BAM +on property:sys.usb.config=diag,serial_smd,serial_tty,rmnet_ipa,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 qti,bam2bam_ipa + 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,serial_smd,serial_tty,rmnet_ipa,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 qti,bam2bam_ipa + 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,serial_smd,rmnet_ipa,adb + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 05C6 + write /sys/class/android_usb/android0/idProduct 9091 + write /sys/class/android_usb/android0/f_diag/clients diag + write /sys/class/android_usb/android0/f_serial/transports smd + write /sys/class/android_usb/android0/f_rmnet/transports qti,bam2bam_ipa + write /sys/class/android_usb/android0/functions diag,serial,rmnet,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,rmnet_ipa + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 05C6 + write /sys/class/android_usb/android0/idProduct 9092 + write /sys/class/android_usb/android0/f_diag/clients diag + write /sys/class/android_usb/android0/f_serial/transports smd + write /sys/class/android_usb/android0/f_rmnet/transports qti,bam2bam_ipa + write /sys/class/android_usb/android0/functions diag,serial,rmnet + 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/module/mdm_bridge/parameters/rx_rmnet_buffer_size 16384 + write /sys/module/mdm_bridge/parameters/max_rx_urbs 20 + write /sys/module/g_android/parameters/ghsic_data_rx_req_size 16384 + write /sys/module/g_android/parameters/ghsic_data_rmnet_rx_q_size 20 + 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/module/mdm_bridge/parameters/rx_rmnet_buffer_size 16384 + write /sys/module/mdm_bridge/parameters/max_rx_urbs 20 + write /sys/module/g_android/parameters/ghsic_data_rx_req_size 16384 + write /sys/module/g_android/parameters/ghsic_data_rmnet_rx_q_size 20 + 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/module/mdm_bridge/parameters/rx_rmnet_buffer_size 16384 + write /sys/module/mdm_bridge/parameters/max_rx_urbs 20 + write /sys/module/g_android/parameters/ghsic_data_rx_req_size 16384 + write /sys/module/g_android/parameters/ghsic_data_rmnet_rx_q_size 20 + 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/module/mdm_bridge/parameters/rx_rmnet_buffer_size 16384 + write /sys/module/mdm_bridge/parameters/max_rx_urbs 20 + write /sys/module/g_android/parameters/ghsic_data_rx_req_size 16384 + write /sys/module/g_android/parameters/ghsic_data_rmnet_rx_q_size 20 + 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/module/mdm_bridge/parameters/rx_rmnet_buffer_size 16384 + write /sys/module/mdm_bridge/parameters/max_rx_urbs 20 + write /sys/module/g_android/parameters/ghsic_data_rx_req_size 16384 + write /sys/module/g_android/parameters/ghsic_data_rmnet_rx_q_size 20 + 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/module/mdm_bridge/parameters/rx_rmnet_buffer_size 16384 + write /sys/module/mdm_bridge/parameters/max_rx_urbs 20 + write /sys/module/g_android/parameters/ghsic_data_rx_req_size 16384 + write /sys/module/g_android/parameters/ghsic_data_rmnet_rx_q_size 20 + 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/module/mdm_bridge/parameters/rx_rmnet_buffer_size 16384 + write /sys/module/mdm_bridge/parameters/max_rx_urbs 20 + write /sys/module/g_android/parameters/ghsic_data_rx_req_size 16384 + write /sys/module/g_android/parameters/ghsic_data_rmnet_rx_q_size 20 + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +# Fusion PCIe composition with diag_mdm and adb +# Serial & RmNet bridged in userspace with tty and qti/ether +on property:sys.usb.config=diag,diag_mdm,serial_tty,rmnet_qti_ether,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 9035 + write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm + write /sys/class/android_usb/android0/f_serial/transports tty + write /sys/class/android_usb/android0/f_rmnet/transports qti,ether + 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 PCIe composition with diag_mdm +# Serial & RmNet bridged in userspace with tty and qti/ether +on property:sys.usb.config=diag,diag_mdm,serial_hsic,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 9036 + write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm + write /sys/class/android_usb/android0/f_serial/transports tty + write /sys/class/android_usb/android0/f_rmnet/transports qti,ether + 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 HSIC/PCIe Hybrid composition with diag_mdm and adb +# RmNet is bridged over PCIe using qti,ether ctrl/data transports +on property:sys.usb.config=diag,diag_mdm,serial_hsic,rmnet_qti_ether,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 9035 + write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm + write /sys/class/android_usb/android0/f_serial/transports hsic + write /sys/class/android_usb/android0/f_serial/transport_names serial_hsic + write /sys/class/android_usb/android0/f_rmnet/transports qti,ether + 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 HSIC/PCIe Hybrid composition with diag_mdm +# RmNet is bridged over PCIe using qti,ether ctrl/data transports +on property:sys.usb.config=diag,diag_mdm,serial_hsic,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 9036 + write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm + write /sys/class/android_usb/android0/f_serial/transports hsic + write /sys/class/android_usb/android0/f_serial/transport_names serial_hsic + write /sys/class/android_usb/android0/f_rmnet/transports qti,ether + 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 PCIe composition with diag_mdm +# Serial & RmNet bridged in userspace with port bridge and qti/ether +on property:sys.usb.config=diag,diag_mdm,serial_cdev,rmnet_qti_ether,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 9036 + write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm + write /sys/class/android_usb/android0/f_serial/transports char_bridge + write /sys/class/android_usb/android0/f_rmnet/transports qti,ether + 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_cdev,rmnet_qti_ether,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 9035 + write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm + write /sys/class/android_usb/android0/f_serial/transports char_bridge + write /sys/class/android_usb/android0/f_rmnet/transports qti,ether + 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 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.tethering=true + write /sys/class/net/rndis0/queues/rx-0/rps_cpus ${sys.usb.rps_mask} + +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 2A70#modify from 05C6 to 2A70 by jiachenghui for USB VID customized,2015-10-23 #VENDOR_EDIT + 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,serial_smd + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 05C6 + write /sys/class/android_usb/android0/idProduct 90B3 + write /sys/class/android_usb/android0/f_serial/transports smd + write /sys/class/android_usb/android0/functions rndis,serial + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state rndis + +on property:sys.usb.config=rndis,serial_smd,adb + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 05C6 + write /sys/class/android_usb/android0/idProduct 90B4 + write /sys/class/android_usb/android0/f_serial/transports smd + write /sys/class/android_usb/android0/functions rndis,serial,adb + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state rndis,adb + +on property:sys.usb.config=rndis,serial_smd,diag + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 05C6 + write /sys/class/android_usb/android0/idProduct 90B5 + write /sys/class/android_usb/android0/f_diag/clients diag + write /sys/class/android_usb/android0/f_serial/transports smd + write /sys/class/android_usb/android0/functions rndis,serial,diag + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state rndis + +on property:sys.usb.config=rndis,serial_smd,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 90B6 + write /sys/class/android_usb/android0/f_diag/clients diag + write /sys/class/android_usb/android0/f_serial/transports smd + write /sys/class/android_usb/android0/functions rndis,serial,diag,adb + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state rndis,adb + +on property:sys.usb.config=rndis,serial_cdev,diag + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 05C6 + write /sys/class/android_usb/android0/idProduct 90B5 + write /sys/class/android_usb/android0/f_diag/clients diag + write /sys/class/android_usb/android0/f_serial/transports char_bridge + write /sys/class/android_usb/android0/functions rndis,serial,diag + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state rndis + +on property:sys.usb.config=rndis,serial_cdev,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 90B6 + write /sys/class/android_usb/android0/f_diag/clients diag + write /sys/class/android_usb/android0/f_serial/transports char_bridge + write /sys/class/android_usb/android0/functions rndis,serial,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 2A70#modify from 05C6 to 2A70 by jiachenghui for USB VID customized,2015-10-23 #VENDOR_EDIT + 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 2A70#modify from 05C6 to 2A70 by jiachenghui for USB VID customized,2015-10-23 #VENDOR_EDIT + 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/f_qdss/debug_intf 1 + write /sys/class/android_usb/android0/f_qdss/transports bam + write /sys/class/android_usb/android0/f_qdss/transport_names qdss_bam + 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/f_qdss/debug_intf 1 + write /sys/class/android_usb/android0/f_qdss/transports bam + write /sys/class/android_usb/android0/f_qdss/transport_names qdss_bam + 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,diag_mdm,qdss + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 05C6 + write /sys/class/android_usb/android0/idProduct 9099 + write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm + write /sys/class/android_usb/android0/f_qdss/debug_intf 1 + write /sys/class/android_usb/android0/f_qdss/transports bam + write /sys/class/android_usb/android0/f_qdss/transport_names qdss_bam + 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,diag_mdm,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 9098 + write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm + write /sys/class/android_usb/android0/f_qdss/debug_intf 1 + write /sys/class/android_usb/android0/f_qdss/transports bam + write /sys/class/android_usb/android0/f_qdss/transport_names qdss_bam + 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/f_qdss/debug_intf 1 + write /sys/class/android_usb/android0/f_qdss/transports bam + write /sys/class/android_usb/android0/f_qdss/transport_names qdss_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_qti_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 qti,bam + write /sys/class/android_usb/android0/f_qdss/debug_intf 1 + write /sys/class/android_usb/android0/f_qdss/transports bam + write /sys/class/android_usb/android0/f_qdss/transport_names qdss_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/f_qdss/debug_intf 1 + write /sys/class/android_usb/android0/f_qdss/transports bam + write /sys/class/android_usb/android0/f_qdss/transport_names qdss_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=diag,qdss,rmnet_qti_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 qti,bam + write /sys/class/android_usb/android0/f_qdss/debug_intf 1 + write /sys/class/android_usb/android0/f_qdss/transports bam + write /sys/class/android_usb/android0/f_qdss/transport_names qdss_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=diag,qdss,rmnet_ipa + 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 qti,bam2bam_ipa + write /sys/class/android_usb/android0/f_qdss/debug_intf 1 + write /sys/class/android_usb/android0/f_qdss/transports bam + write /sys/class/android_usb/android0/f_qdss/transport_names qdss_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_ipa,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 qti,bam2bam_ipa + write /sys/class/android_usb/android0/f_qdss/debug_intf 1 + write /sys/class/android_usb/android0/f_qdss/transports bam + write /sys/class/android_usb/android0/f_qdss/transport_names qdss_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=diag,diag_mdm,qdss,rmnet_hsic + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 05C6 + write /sys/class/android_usb/android0/idProduct 909B + write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm + write /sys/class/android_usb/android0/f_rmnet/transports hsic,hsic + write /sys/class/android_usb/android0/f_qdss/debug_intf 1 + write /sys/class/android_usb/android0/f_qdss/transports bam + write /sys/class/android_usb/android0/f_qdss/transport_names qdss_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,diag_mdm,qdss,rmnet_hsic,adb + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 05C6 + write /sys/class/android_usb/android0/idProduct 909A + write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm + write /sys/class/android_usb/android0/f_rmnet/transports hsic,hsic + write /sys/class/android_usb/android0/f_qdss/debug_intf 1 + write /sys/class/android_usb/android0/f_qdss/transports bam + write /sys/class/android_usb/android0/f_qdss/transport_names qdss_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=diag,diag_mdm,qdss_apq,qdss_mdm,rmnet_hsic + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 05C6 + write /sys/class/android_usb/android0/idProduct 90A3 + write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm + write /sys/class/android_usb/android0/f_rmnet/transports hsic,hsic + write /sys/class/android_usb/android0/f_qdss/debug_intf 0 + write /sys/class/android_usb/android0/f_qdss/transports bam,hsic + write /sys/class/android_usb/android0/f_qdss/transport_names qdss_bam,qdss_hsic + 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,diag_mdm,qdss_apq,qdss_mdm,rmnet_hsic,adb + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 05C6 + write /sys/class/android_usb/android0/idProduct 90A2 + write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm + write /sys/class/android_usb/android0/f_rmnet/transports hsic,hsic + write /sys/class/android_usb/android0/f_qdss/debug_intf 0 + write /sys/class/android_usb/android0/f_qdss/transports bam,hsic + write /sys/class/android_usb/android0/f_qdss/transport_names qdss_bam,qdss_hsic + 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/f_qdss/debug_intf 1 + write /sys/class/android_usb/android0/f_qdss/transports bam + write /sys/class/android_usb/android0/f_qdss/transport_names qdss_bam + 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/f_qdss/debug_intf 1 + write /sys/class/android_usb/android0/f_qdss/transports bam + write /sys/class/android_usb/android0/f_qdss/transport_names qdss_bam + 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} + +# same as 9025, plus data packet logging (DPL) using QDSS +on property:sys.usb.config=diag,serial_smd,serial_tty,rmnet_ipa,mass_storage,dpl,adb + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 05C6 + write /sys/class/android_usb/android0/idProduct 90AD + write /sys/class/android_usb/android0/f_diag/clients diag + write /sys/class/android_usb/android0/f_serial/transports smd,tty +# DPL is implemented using QDSS + write /sys/class/android_usb/android0/f_qdss/debug_intf 0 + write /sys/class/android_usb/android0/f_qdss/transports qti,bam2bam_ipa + write /sys/class/android_usb/android0/f_qdss/transport_names qdss_bam + write /sys/class/android_usb/android0/f_rmnet/transports qti,bam2bam_ipa + write /sys/class/android_usb/android0/functions diag,adb,serial,rmnet,mass_storage,qdss + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +# same as 9026, plus data packet logging (DPL) +on property:sys.usb.config=diag,serial_smd,serial_tty,rmnet_ipa,mass_storage,dpl + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 05C6 + write /sys/class/android_usb/android0/idProduct 90B0 + write /sys/class/android_usb/android0/f_diag/clients diag + write /sys/class/android_usb/android0/f_serial/transports smd,tty +# DPL is implemented using QDSS + write /sys/class/android_usb/android0/f_qdss/debug_intf 0 + write /sys/class/android_usb/android0/f_qdss/transports qti,bam2bam_ipa + write /sys/class/android_usb/android0/f_qdss/transport_names qdss_bam + write /sys/class/android_usb/android0/f_rmnet/transports qti,bam2bam_ipa + write /sys/class/android_usb/android0/functions diag,serial,rmnet,mass_storage,qdss + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,serial_cdev,serial_tty,rmnet_ipa,mass_storage,dpl,adb + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 05C6 + write /sys/class/android_usb/android0/idProduct 90AD + write /sys/class/android_usb/android0/f_diag/clients diag + write /sys/class/android_usb/android0/f_serial/transports char_bridge,tty +# DPL is implemented using QDSS + write /sys/class/android_usb/android0/f_qdss/debug_intf 0 + write /sys/class/android_usb/android0/f_qdss/transports qti,bam2bam_ipa + write /sys/class/android_usb/android0/f_qdss/transport_names qdss_bam + write /sys/class/android_usb/android0/f_rmnet/transports qti,bam2bam_ipa + write /sys/class/android_usb/android0/functions diag,adb,serial,rmnet,mass_storage,qdss + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,serial_cdev,serial_tty,rmnet_ipa,mass_storage,dpl + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 05C6 + write /sys/class/android_usb/android0/idProduct 90B0 + write /sys/class/android_usb/android0/f_diag/clients diag + write /sys/class/android_usb/android0/f_serial/transports char_bridge,tty +# DPL is implemented using QDSS + write /sys/class/android_usb/android0/f_qdss/debug_intf 0 + write /sys/class/android_usb/android0/f_qdss/transports qti,bam2bam_ipa + write /sys/class/android_usb/android0/f_qdss/transport_names qdss_bam + write /sys/class/android_usb/android0/f_rmnet/transports qti,bam2bam_ipa + write /sys/class/android_usb/android0/functions diag,serial,rmnet,mass_storage,qdss + write /sys/class/android_usb/android0/enable 1 + 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} + +on property:sys.usb.config=charging + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 05C6 + write /sys/class/android_usb/android0/idProduct F006 + write /sys/class/android_usb/android0/functions charging + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,serial_smd,rmnet_qti_bam,dpl_qti_bam_dmux + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 05C6 + write /sys/class/android_usb/android0/idProduct 90B7 + write /sys/class/android_usb/android0/f_diag/clients diag + write /sys/class/android_usb/android0/f_serial/transports smd + write /sys/class/android_usb/android0/f_rmnet/transports qti,bam + write /sys/class/android_usb/android0/f_qdss/transports qti,bam_dmux + write /sys/class/android_usb/android0/functions diag,serial,rmnet,qdss + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=diag,serial_smd,rmnet_qti_bam,dpl_qti_bam_dmux,adb + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 05C6 + write /sys/class/android_usb/android0/idProduct 90B8 + write /sys/class/android_usb/android0/f_diag/clients diag + write /sys/class/android_usb/android0/f_serial/transports smd + write /sys/class/android_usb/android0/f_rmnet/transports qti,bam + write /sys/class/android_usb/android0/f_qdss/transports qti,bam_dmux + write /sys/class/android_usb/android0/functions diag,serial,rmnet,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,diag_cnss,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 90B2 + write /sys/class/android_usb/android0/f_diag/clients diag,diag_cnss + 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,diag_cnss,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,diag_cnss,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 90B3 + write /sys/class/android_usb/android0/f_diag/clients diag,diag_cnss + 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,diag_cnss,serial,rmnet,mass_storage + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=midi + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 05C6 + write /sys/class/android_usb/android0/idProduct 90BA + write /sys/class/android_usb/android0/functions midi + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=midi,adb + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 05C6 + write /sys/class/android_usb/android0/idProduct 90BB + write /sys/class/android_usb/android0/functions midi,adb + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} diff --git a/rootdir/etc/init.qcom.usb.sh b/rootdir/etc/init.qcom.usb.sh new file mode 100755 index 0000000..6d31504 --- /dev/null +++ b/rootdir/etc/init.qcom.usb.sh @@ -0,0 +1,281 @@ +#!/system/bin/sh +# Copyright (c) 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 "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. +# +# +chown -h root.system /sys/devices/platform/msm_hsusb/gadget/wakeup +chmod -h 220 /sys/devices/platform/msm_hsusb/gadget/wakeup + +# Set platform variables +if [ -f /sys/devices/soc0/hw_platform ]; then + soc_hwplatform=`cat /sys/devices/soc0/hw_platform` 2> /dev/null +else + soc_hwplatform=`cat /sys/devices/system/soc/soc0/hw_platform` 2> /dev/null +fi + +# Get hardware revision +if [ -f /sys/devices/soc0/revision ]; then + soc_revision=`cat /sys/devices/soc0/revision` 2> /dev/null +else + soc_revision=`cat /sys/devices/system/soc/soc0/revision` 2> /dev/null +fi + +# +# Allow persistent usb charging disabling +# User needs to set usb charging disabled in persist.usb.chgdisabled +# +target=`getprop ro.board.platform` +usbchgdisabled=`getprop persist.usb.chgdisabled` +case "$usbchgdisabled" in + "") ;; #Do nothing here + * ) + case $target in + "msm8660") + echo "$usbchgdisabled" > /sys/module/pmic8058_charger/parameters/disabled + echo "$usbchgdisabled" > /sys/module/smb137b/parameters/disabled + ;; + "msm8960") + echo "$usbchgdisabled" > /sys/module/pm8921_charger/parameters/disabled + ;; + esac +esac + +usbcurrentlimit=`getprop persist.usb.currentlimit` +case "$usbcurrentlimit" in + "") ;; #Do nothing here + * ) + case $target in + "msm8960") + echo "$usbcurrentlimit" > /sys/module/pm8921_charger/parameters/usb_max_current + ;; + esac +esac + +# +# Check ESOC for external MDM +# +# Note: currently only a single MDM is supported +# +if [ -d /sys/bus/esoc/devices ]; then +for f in /sys/bus/esoc/devices/*; do + if [ -d $f ]; then + if [ `grep "^MDM" $f/esoc_name` ]; then + esoc_link=`cat $f/esoc_link` + break + fi + fi +done +fi + +target=`getprop ro.board.platform` + +#ifdef VENDOR_EDIT +boot_mode=`getprop ro.boot.ftm_mode` +echo "boot_mode: $boot_mode" > /dev/kmsg +case "$boot_mode" in + "ftm_at" | "ftm_rf" | "ftm_wlan" | "ftm_mos") + usb_config=`getprop persist.sys.usb.config` + echo "BEFORE boot_mode: $usb_config" > /dev/kmsg + if [ "$usb_config" != "diag,adb" ] ; then + setprop persist.sys.usb.config diag,adb + fi + ;; +esac +usb_config=`getprop persist.sys.usb.config` +echo "AFTER boot_mode: $usb_config" > /dev/kmsg +#endif + +# +# Allow USB enumeration with default PID/VID +# +baseband=`getprop ro.baseband` +echo 1 > /sys/class/android_usb/f_mass_storage/lun/nofua +usb_config=`getprop persist.sys.usb.config` +echo "BEFORE: $usb_config" > /dev/kmsg +case "$usb_config" in + "" | "adb" | "none") #USB persist config not set, select default configuration + case "$esoc_link" in + "PCIe") + setprop persist.sys.usb.config diag,diag_mdm,serial_cdev,rmnet_qti_ether,mass_storage,adb + ;; + *) + case "$soc_hwplatform" in + "Dragon") + setprop persist.sys.usb.config diag,adb + ;; + *) + case "$target" in + "msm8916") + setprop persist.sys.usb.config diag,serial_smd,rmnet_bam,adb + ;; + "msm8994" | "msm8992") + if [ "$soc_hwplatform" == "Dragon" ]; then + setprop persist.sys.usb.config diag,adb + else + setprop persist.sys.usb.config diag,serial_smd,serial_tty,rmnet_ipa,mass_storage,adb + fi + ;; + "msm8996") + if [ "$soc_revision" == "1.0" -o "$soc_hwplatform" == "Dragon" ] + then + setprop persist.sys.usb.config diag,adb + #[BSP-66]-Anderson-Disable_set_the_property. + #This will ause BSP-66 issue and cause all the port enable in default. + #else + #setprop persist.sys.usb.config diag,serial_cdev,serial_tty,rmnet_ipa,mass_storage,adb + fi + ;; + "msm8909" | "msm8937") + setprop persist.sys.usb.config diag,serial_smd,rmnet_qti_bam,adb + ;; + "msm8952" | "titanium") + setprop persist.sys.usb.config diag,serial_smd,rmnet_ipa,adb + ;; + *) + setprop persist.sys.usb.config diag,adb + ;; + esac + ;; + esac + ;; + esac + ;; + * ) ;; #USB persist config exists, do nothing +esac + + + +# +# Do target specific things +# +case "$target" in + "msm8974") +# Select USB BAM - 2.0 or 3.0 + echo ssusb > /sys/bus/platform/devices/usb_bam/enable + ;; + "apq8084") + if [ "$baseband" == "apq" ]; then + echo "msm_hsic_host" > /sys/bus/platform/drivers/xhci_msm_hsic/unbind + fi + ;; + "msm8226") + if [ -e /sys/bus/platform/drivers/msm_hsic_host ]; then + if [ ! -L /sys/bus/usb/devices/1-1 ]; then + echo msm_hsic_host > /sys/bus/platform/drivers/msm_hsic_host/unbind + fi + fi + ;; + "msm8994" | "msm8992" | "msm8996" | "titanium") + echo BAM2BAM_IPA > /sys/class/android_usb/android0/f_rndis_qc/rndis_transports + echo 131072 > /sys/module/g_android/parameters/mtp_tx_req_len + echo 131072 > /sys/module/g_android/parameters/mtp_rx_req_len + ;; +esac + +# +# set module params for embedded rmnet devices +# +rmnetmux=`getprop persist.rmnet.mux` +case "$baseband" in + "mdm" | "dsda" | "sglte2") + case "$rmnetmux" in + "enabled") + echo 1 > /sys/module/rmnet_usb/parameters/mux_enabled + echo 8 > /sys/module/rmnet_usb/parameters/no_fwd_rmnet_links + echo 17 > /sys/module/rmnet_usb/parameters/no_rmnet_insts_per_dev + ;; + esac + echo 1 > /sys/module/rmnet_usb/parameters/rmnet_data_init + # Allow QMUX daemon to assign port open wait time + chown -h radio.radio /sys/devices/virtual/hsicctl/hsicctl0/modem_wait + ;; + "dsda2") + echo 2 > /sys/module/rmnet_usb/parameters/no_rmnet_devs + echo hsicctl,hsusbctl > /sys/module/rmnet_usb/parameters/rmnet_dev_names + case "$rmnetmux" in + "enabled") #mux is neabled on both mdms + echo 3 > /sys/module/rmnet_usb/parameters/mux_enabled + echo 8 > /sys/module/rmnet_usb/parameters/no_fwd_rmnet_links + echo 17 > write /sys/module/rmnet_usb/parameters/no_rmnet_insts_per_dev + ;; + "enabled_hsic") #mux is enabled on hsic mdm + echo 1 > /sys/module/rmnet_usb/parameters/mux_enabled + echo 8 > /sys/module/rmnet_usb/parameters/no_fwd_rmnet_links + echo 17 > /sys/module/rmnet_usb/parameters/no_rmnet_insts_per_dev + ;; + "enabled_hsusb") #mux is enabled on hsusb mdm + echo 2 > /sys/module/rmnet_usb/parameters/mux_enabled + echo 8 > /sys/module/rmnet_usb/parameters/no_fwd_rmnet_links + echo 17 > /sys/module/rmnet_usb/parameters/no_rmnet_insts_per_dev + ;; + esac + echo 1 > /sys/module/rmnet_usb/parameters/rmnet_data_init + # Allow QMUX daemon to assign port open wait time + chown -h radio.radio /sys/devices/virtual/hsicctl/hsicctl0/modem_wait + ;; +esac + +# +# Add support for exposing lun0 as cdrom in mass-storage +# +cdromname="/system/etc/cdrom_install.iso" +platformver=`cat /sys/devices/soc0/hw_platform` +case "$target" in + "msm8226" | "msm8610" | "msm8916") + case $platformver in + "QRD") + echo "mounting usbcdrom lun" + echo $cdromname > /sys/class/android_usb/android0/f_mass_storage/rom/file + chmod 0444 /sys/class/android_usb/android0/f_mass_storage/rom/file + ;; + esac + ;; +esac + +# +# Initialize RNDIS Diag option. If unset, set it to 'none'. +# +diag_extra=`getprop persist.sys.usb.config.extra` +if [ "$diag_extra" == "" ]; then + setprop persist.sys.usb.config.extra none +fi + +# soc_ids for 8937 +if [ -f /sys/devices/soc0/soc_id ]; then + soc_id=`cat /sys/devices/soc0/soc_id` +else + soc_id=`cat /sys/devices/system/soc/soc0/id` +fi + +# enable rps cpus on msm8937 target +setprop sys.usb.rps_mask 0 +case "$soc_id" in + "294" | "295") + setprop sys.usb.rps_mask 10 + ;; +esac + diff --git a/rootdir/etc/init.target.rc b/rootdir/etc/init.target.rc new file mode 100755 index 0000000..628c6a5 --- /dev/null +++ b/rootdir/etc/init.target.rc @@ -0,0 +1,280 @@ +# Copyright (c) 2013-2015, 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 /bt_firmware 0771 system system + symlink /data/tombstones /tombstones + mkdir /dsp 0771 media media + chown system root /sys/module/msm_thermal/core_control/cpus_offlined + chmod 666 /sys/module/msm_thermal/core_control/cpus_offlined + +on post-fs + export LD_PRELOAD libNimsWrap.so + +on init + write /sys/module/qpnp_rtc/parameters/poweron_alarm 1 + +on fs + wait /dev/block/bootdevice + mount_all fstab.qcom + swapon_all fstab.qcom + + restorecon_recursive /persist + mkdir /persist/data 0700 system system + mkdir /persist/wlan_bt 0700 system system + mkdir /persist/audio 0777 media audio + +on post-fs-data + mkdir /data/tombstones 0771 system system + mkdir /tombstones/modem 0771 system system + mkdir /tombstones/lpass 0771 system system + mkdir /tombstones/wcnss 0771 system system + mkdir /tombstones/dsps 0771 system system + mkdir /persist/data/sfs 0700 system system + mkdir /persist/data/tz 0700 system system + mkdir /persist/qc_senseid 0700 system system + mkdir /data/misc/dts 0770 media audio + mkdir /data/nfc 0770 nfc nfc + mkdir /data/misc/tloc/ 0700 system drmrpc + mkdir /data/misc/qvop 0660 system system + mkdir /data/misc/qvr 0770 system system + mkdir /data/misc/audio_pp 0771 media audio + chown system system /dev/sysmatdrv + chmod 0660 /dev/sysmatdrv + mkdir /data/fpc 0770 system system + mkdir /data/fpc/s 0770 system system + +on boot + start rmt_storage + + # Access permission for secure touch + chmod 0660 /sys/devices/soc/75ba000.i2c/i2c-12/12-0020/secure_touch_enable + chmod 0440 /sys/devices/soc/75ba000.i2c/i2c-12/12-0020/secure_touch + chown system drmrpc /sys/devices/soc/75ba000.i2c/i2c-12/12-0020/secure_touch_enable + chown system drmrpc /sys/devices/soc/75ba000.i2c/i2c-12/12-0020/secure_touch + + # Access permission for led torch + chmod 0666 /sys/class/leds/led:torch_0/brightness + chmod 0666 /sys/class/leds/led:torch_1/brightness + chmod 0666 /sys/class/leds/led:switch/brightness + + # Access permission for smartPA + chmod 0666 /dev/i2c-3 + chmod 0666 /dev/i2c-9 + +# Audio smartPA cold boot +service tfa_cold_boot /system/bin/sh /system/bin/tfa_coldboot.sh /etc/silence_short.wav 15 1 + class main + user system + group system + disabled + oneshot + +on property:service.soundcard.detected=1 + start tfa_cold_boot + +# Start camera server as daemon +service qcamerasvr /system/bin/mm-qcamera-daemon + class late_start + user camera + group camera system inet input graphics + writepid /dev/cpuset/system-background/tasks + +# Fingerprint service +service fingerprintd /system/bin/fingerprintd + class late_start + user system + group system sdcard_rw + +service qvop-daemon /system/bin/qvop-daemon + class late_start + user system + group system drmrpc + +# Start up peripheral manager +service per_mgr system/bin/pm-service + class core + user system + group system net_raw + ioprio rt 4 + +service per_proxy /system/bin/pm-proxy + class core + user system + group system + disabled + +on property:init.svc.per_mgr=running + start per_proxy + +on property:sys.shutdown.requested=* + stop per_proxy + +service qseecomd /system/bin/qseecomd + class core + user root + group root + +service thermal-engine /system/vendor/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 time_daemon /system/bin/time_daemon + class late_start + user root + group root + +service adsprpcd /system/bin/adsprpcd + class main + user media + group media + +service audiod /system/bin/audiod + class late_start + user system + group system + +service imsqmidaemon /system/bin/imsqmidaemon + class main + user system + socket ims_qmid stream 0660 system radio + group radio net_raw log 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 diag net_admin + disabled + +service pd_mapper /system/vendor/bin/pd-mapper + class core + disabled + +on property:persist.sys.pd_enable=1 + start pd_mapper + write /sys/class/service_locator/service_locator_status 1 + +on property:persist.sys.pd_enable=0 + write /sys/class/service_locator/service_locator_status 0 + +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 inet log + disabled + +service imscmservice /system/bin/imscmservice + class main + user system + group radio net_raw diag diag log + disabled + +on property:sys.ims.DATA_DAEMON_STATUS=1 + start ims_rtp_daemon + start imscmservice + +service ppd /system/vendor/bin/mm-pp-dpps + class late_start + user system + group system graphics + socket pps stream 0660 system system + disabled + +on property:init.svc.surfaceflinger=stopped + stop displayfeature + stop ppd + +on property:init.svc.surfaceflinger=running + start displayfeature + start ppd + +on property:init.svc.surfaceflinger=restarting + stop displayfeature + stop ppd + +on property:init.svc.zygote=stopped + stop displayfeature + stop ppd + +on property:init.svc.zygote=running + start displayfeature + start ppd + +on property:init.svc.zygote=restarting + stop displayfeature + stop ppd + +service tlocd /system/bin/tloc_daemon + class late_start + user system + group drmrpc gps net_raw + +service displayfeature /system/bin/displayfeature + class late_start + user root + group root + +service qpaydaemon /system/vendor/bin/qpaydaemon + class late_start + user system + group system + +service nv_fem /system/bin/nv_fem + class main + user root + group net_raw + oneshot + +service nv_mac /system/bin/nv_mac + class main + user root + group net_raw + oneshot + +service mmbn-daemon /system/bin/mmbn-daemon + class main + oneshot + +on property:slpi.restart=1 + write /sys/kernel/debug/msm_subsys/slpi restart + +on property:persist.sys.display_oled_hbm=0 + write /sys/devices/virtual/graphics/fb0/msm_fb_dispparam 0xE00 + +on property:persist.sys.display_oled_hbm=1 + write /sys/devices/virtual/graphics/fb0/msm_fb_dispparam 0xD00 diff --git a/rootdir/etc/recovery/recovery.fstab b/rootdir/etc/recovery/recovery.fstab new file mode 100644 index 0000000..55e2669 --- /dev/null +++ b/rootdir/etc/recovery/recovery.fstab @@ -0,0 +1,21 @@ +# 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/bootdevice/by-name/boot /boot emmc defaults defaults +/dev/block/bootdevice/by-name/recovery /recovery emmc defaults defaults +/dev/block/bootdevice/by-name/system /system ext4 ro,barrier=1,discard wait +/dev/block/bootdevice/by-name/userdata /data f2fs nosuid,nodev,noatime,nodiratime,inline_xattr,data_flush wait,check,encryptable=footer,formattable,length=-16384 +/dev/block/bootdevice/by-name/userdata /data ext4 nosuid,nodev,noatime,nodiratime,barrier=1,noauto_da_alloc wait,check,encryptable=footer,formattable,length=-16384 +/dev/block/bootdevice/by-name/cache /cache f2fs nosuid,nodev,noatime,nodiratime,inline_xattr,flush_merge,data_flush wait,check,formattable +/dev/block/bootdevice/by-name/cache /cache ext4 nosuid,nodev,noatime,nodiratime,barrier=1 wait,check,formattable +/dev/block/bootdevice/by-name/persist /persist ext4 nosuid,nodev,barrier=1 wait +/dev/block/bootdevice/by-name/dsp /dsp ext4 ro,nosuid,nodev,barrier=1 wait +/dev/block/bootdevice/by-name/modem /firmware vfat ro,shortname=lower,uid=1000,gid=1000,dmask=227,fmask=337,context=u:object_r:firmware_file:s0 wait +/dev/block/bootdevice/by-name/bluetooth /bt_firmware vfat ro,shortname=lower,uid=1002,gid=3002,dmask=222,fmask=333,context=u:object_r:bt_firmware_file:s0 wait + +/devices/soc/6a00000.ssusb/6a00000.dwc3/xhci-hcd.0.auto/usb* auto auto defaults voldmanaged=usbdisk:auto diff --git a/rootdir/etc/ueventd.qcom.rc b/rootdir/etc/ueventd.qcom.rc new file mode 100644 index 0000000..1851518 --- /dev/null +++ b/rootdir/etc/ueventd.qcom.rc @@ -0,0 +1,246 @@ +# Copyright (c) 2012-2015, 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 +/dev/ipa 0660 system net_admin +/dev/wwan_ioctl 0660 system net_admin +/dev/ipaNatTable 0660 net_admin net_admin +/dev/rmnet_ctrl 0660 usb usb +/dev/dpl_ctrl 0660 usb usb + +#permissions for CSVT +/dev/smd11 0660 radio radio + +/dev/radio0 0640 system system +/dev/rfcomm0 0660 bluetooth bluetooth +/dev/ttyUSB0 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/smdcntl8 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/mhi_pipe_14 0640 radio radio +/dev/mhi_pipe_16 0640 radio radio +/dev/mhi_pipe_32 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/seemplog 0660 system system +/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/jpeg3 0660 system camera +/dev/adsprpc-smd 0664 system system +/dev/system_health_monitor 0644 radio system +/dev/mdss_rotator 0664 system 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/audio_slimslave 0660 system 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_alac 0660 system audio +/dev/msm_ape 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_audio_cal 0660 system audio +/dev/msm_hweffects 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/smd3 0660 bluetooth net_bt_stack +/dev/smd2 0660 bluetooth net_bt_stack +/dev/ttyHSL1 0660 system system +/dev/ttyHS1 0660 system system +/dev/ttyGS1 0660 system system +/dev/smd8 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 +/dev/avtimer 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 + +# ultrasonic fingerprint +/sys/devices/soc/757a000.i2c/i2c-6/* eeprom 0440 system system + +# 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/soc.0/78b6000.i2c/i2c-0/0-* enable 0660 input system +/sys/devices/soc.0/78b6000.i2c/i2c-0/0-* poll_delay 0660 input system +/sys/devices/soc.0/78b6000.i2c/i2c-0/0-* enable_wakeup 0660 input system +/sys/devices/soc.0/78b6000.i2c/i2c-0/0-* max_latency 0660 input system +/sys/devices/soc.0/78b6000.i2c/i2c-0/0-* flush 0660 input system +/sys/devices/soc.0/78b6000.i2c/i2c-0/0-* calibrate 0660 input system +/sys/devices/soc.0/78b5000.i2c/i2c-1/1-* enable 0660 input system +/sys/devices/soc.0/78b5000.i2c/i2c-1/1-* poll_delay 0660 input system +/sys/devices/soc.0/78b5000.i2c/i2c-1/1-* enable_wakeup 0660 input system +/sys/devices/soc.0/78b5000.i2c/i2c-1/1-* max_latency 0660 input system +/sys/devices/soc.0/78b5000.i2c/i2c-1/1-* flush 0660 input system +/sys/devices/soc.0/78b5000.i2c/i2c-1/1-* calibrate 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 + +# vm_bms +/dev/vm_bms 0660 system system +/dev/battery_data 0660 system system + +# wlan +/dev/wcnss_wlan 0660 system system +/dev/wcnss_ctrl 0660 system system +/sys/devices/soc/600000.qcom,pcie/pci0000:00/0000:00:00.0/0000:01:00.0/net/wlan0/queues/rx-* rps_cpus 0660 system system +/sys/devices/soc/600000.qcom,pcie/pci0000:00/0000:00:00.0/0000:01:00.0/net/p2p0/queues/rx-* rps_cpus 0660 system system + +# nfc permissions +/dev/nfc-nci 0660 nfc nfc +/dev/nq-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 + +# SSR devices +/dev/subsys_* 0640 system system + +# Ultrasound device +/dev/usf1 0660 system system + +# Ramdump devices +/dev/ramdump* 0640 system system + +# Fingerprint device +/dev/qbt1000 0660 system system + +# ImproveTouch device +/dev/hbtp_input 0660 system system +/dev/hbtp_vm 0660 system system + +# TFA9890 FOR SMARTPA +/dev/tfa9890 0660 media media |