sm8250-common: add initial rootdir

This commit is contained in:
SGCMarkus 2022-02-17 10:25:08 +01:00
parent 3155670b6d
commit 35e7abf473
15 changed files with 3766 additions and 0 deletions

View File

@ -0,0 +1,31 @@
# Wait for the USB init shell script to finish, to prevent enumeration issues
on property:init.svc.vendor.mmi-usb-sh=stopped && property:ro.boot.mode=charger
setprop sys.usb.configfs 1
setprop sys.usb.config charging
on moto-charger
stop vendor.sensors
chown radio wakelock /sys/power/wake_lock
chmod 0660 /sys/power/wake_lock
chown radio wakelock /sys/power/wake_unlock
chmod 0660 /sys/power/wake_unlock
trigger firmware_mounts_complete
start vendor.charge_only_mode
start vendor.batt_health
start vendor.thermal-com
start system_suspend
# Enable only CPU core 0 to keep current drain to a minimum
write /sys/devices/system/cpu/cpu0/online 1
write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor "interactive"
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/devices/system/cpu/cpu4/online 0
write /sys/devices/system/cpu/cpu5/online 0
write /sys/devices/system/cpu/cpu6/online 0
write /sys/devices/system/cpu/cpu7/online 0
# Allow system to sleep when in COM
write /sys/module/lpm_levels/parameters/sleep_disabled 0
write /proc/sys/kernel/sched_boost 0

View File

@ -0,0 +1,13 @@
# Charge only mode configuration
import /vendor/etc/init/hw/init.mmi.charge_only.rc
on post-fs
# MOT_LED_CALIBRATION
chown camera /mnt/vendor/persist/camera/mot_ledcal
on early-init
exec u:r:vendor_modprobe:s0 -- /vendor/bin/modprobe -a -d /vendor/lib/modules exfat
#Enable qpnp_smbcharger_mmi debug
write /sys/module/qpnp_smbcharger_mmi/parameters/debug_enabled Y

View File

@ -0,0 +1,5 @@
on boot && property:ro.boot.adb_early=1
start vendor.mmi-usb-sh
on post-fs && property:ro.boot.force_aplogd_enable=1
setprop persist.vendor.log.aplogd.enable 1

View File

@ -0,0 +1 @@

View File

@ -0,0 +1,45 @@
on post-fs-data
mkdir /data/vendor/diag_mdlog 0770 system log
mkdir /data/vendor/diag_mdlog/logs 0750 log log
on property:persist.vendor.sys.reduce_qdss_log=1
write /sys/bus/coresight/reset_source_sink 1
write /sys/kernel/tracing/instances/usb/tracing_on 0
write /sys/kernel/debug/tracing/tracing_on 0
write /sys/kernel/debug/tracing/events/enable 0
chmod 660 /sys/bus/coresight/devices/coresight-tmc-etr/block_size
chown log vendor_qdss /sys/bus/coresight/devices/coresight-tmc-etr/block_size
on property:persist.vendor.sys.diag_mdlog.on=1
start vendor.diag_mdlog
on property:persist.vendor.sys.diag_mdlog.on=0
start vendor.safe_stop_mdlog
on property:vendor.log.diag_mdlog.invld_mode_stop=1
stop vendor.diag_mdlog
on property:persist.vendor.radio.usbdiag=1
setprop persist.vendor.sys.diag_mdlog.on 0
service vendor.diag_mdlog /vendor/bin/diag_mdlog-wrap
class late_start
socket mdlog_cmd stream 0660 log diag
user log
group log sdcard_rw sdcard_r media_rw oem_2901 mount vendor_qdss
disabled
service vendor.safe_stop_mdlog /vendor/bin/diag_mdlog-getlogs -s
class late_start
user log
group log sdcard_rw sdcard_r media_rw oem_2901
oneshot
disabled
service vendor.mdlog-getlogs /vendor/bin/init.mmi.mdlog-getlogs.sh
class late_start
user log
group log sdcard_rw sdcard_r media_rw oem_2901
oneshot
disabled

View File

@ -0,0 +1,647 @@
# Chipset-specific file
import /vendor/etc/init/hw/init.mmi.chipset.rc
# Target-specific file
import /vendor/etc/init/hw/init.mmi.overlay.rc
# Moto USB configuration
import /vendor/etc/init/hw/init.mmi.usb.rc
# Moto debugging
import /vendor/etc/init/hw/init.mmi.debug.rc
# Moto diag_mdlog configuration
import /vendor/etc/init/hw/init.mmi.diag_mdlog.rc
import /vendor/etc/init/hw/init.oem.rc
import /vendor/etc/init/hw/init.mmi.common.rc
import /vendor/etc/init/hw/init.mmi.nonab.rc
#Moto wlan configuration
import /vendor/etc/init/hw/init.mmi.wlan.rc
# Moto verified boot extension
import /vendor/etc/init/hw/init.mmi.hab.rc
# Test commands
import /vendor/etc/init/hw/init.mmi.tcmd.rc
# Carrier specific script
import /vendor/etc/init/carrier/init.${ro.boot.carrier}.rc
import /vendor/etc/init/carrier/init.default.rc
on early-boot
write /sys/module/subsystem_restart/parameters/disable_restart_work 0x0
on init
chown system log /sys/fs/pstore/console-ramoops-0
chmod 0440 /sys/fs/pstore/console-ramoops-0
chown system log /sys/fs/pstore/annotate-ramoops-0
chmod 0640 /sys/fs/pstore/annotate-ramoops-0
chown system log /sys/fs/pstore/dmesg-ramoops-0
chmod 0640 /sys/fs/pstore/dmesg-ramoops-0
chown system log /proc/driver/mmi_annotate
chmod 0640 /proc/driver/mmi_annotate
on early-init && property:ro.bootmode=mot-factory
setprop ro.vendor.mot.factory true
on early-init && property:ro.vendor.build.motfactory=1
setprop ro.vendor.mot.factory true
on early-init
# Need to wait for platform path for UTAGs driver to succeed
wait /dev/block/platform/soc/${ro.boot.bootdevice}/by-name/hw
# initialize ro.vendor.mot.factory with default value when it is not set
setprop ro.vendor.mot.factory false
# If utags driver is DLKM, script will load it,
# otherwise it has to be already loaded
exec_start vendor.oem-hw-sh
# Map oem properties, this must follow
# execution of vendor.oem-hw-sh to set
# required properties.
setprop ro.carrier ${ro.boot.carrier}
setprop ro.sf.lcd_density ${ro.boot.lcd_density}
setprop ro.vendor.fsg-id ${ro.boot.fsg-id}
setprop ro.vendor.hw.device ${ro.boot.device}
setprop ro.vendor.hw.hwrev ${ro.boot.hwrev}
setprop ro.vendor.hw.modelno ${ro.boot.modelno}
setprop ro.vendor.hw.revision ${ro.boot.revision}
setprop ro.vendor.hw.nav_keys ${ro.boot.nav_keys}
setprop ro.product.vendor.device ${ro.vendor.product.device}
setprop ro.product.vendor.name ${ro.vendor.product.name}
setprop ro.product.vendor.model ${ro.vendor.product.model}
setprop ro.vendor.boot.cid ${ro.boot.cid}
setprop ro.vendor.boot.powerup_reason ${ro.boot.powerup_reason}
setprop ro.vendor.boot.bl_state ${ro.boot.bl_state}
setprop ro.vendor.boot.serialno ${ro.boot.serialno}
setprop ro.vendor.zygote ${ro.zygote}
# Make sure ro.boot.product.hardware.sku is set before hwservicemanager startup.
setprop ro.boot.product.hardware.sku ${ro.vendor.product.hardware.sku.variant}
# Trigger priority stage of MMI init
trigger mmi-priority
# Log kernel wake-up source
write /sys/module/msm_show_resume_irq/parameters/debug_mask 1
on fs
insmod /vendor/lib/modules/cci_intf.ko
mkdir /mnt/vendor/persist/fps 0770 system system
exec_start vendor.ident-fps-sh
on fs && property:ro.vendor.hw.modem_version=*
# Super modem detection
exec_start vendor.oem-super-image-detector-sh
on property:ro.vendor.hw.super_image_failure=yes
setprop sys.powerctl reboot,recovery
on post-fs && property:ro.vendor.hw.modem_super_image=yes
umount /vendor/firmware_mnt
mount ext4 /dev/block/bootdevice/by-name/modem${ro.boot.slot_suffix} /vendor/super_modem ro nosuid nodev context=u:object_r:firmware_file:s0
mount ext4 loop@/vendor/super_modem/${ro.vendor.hw.modem_mount_file} /vendor/firmware_mnt ro nosuid nodev context=u:object_r:firmware_file:s0
on post-fs && property:ro.vendor.hw.fsg_super_image=yes
umount /vendor/fsg
mount ext4 /dev/block/bootdevice/by-name/fsg${ro.boot.slot_suffix} /vendor/super_fsg ro nosuid nodev context=u:object_r:fsg_file:s0
mount ext4 loop@/vendor/super_fsg/${ro.vendor.hw.fsg_mount_file} /vendor/fsg ro nosuid nodev context=u:object_r:fsg_file:s0
on post-fs
mkdir /mnt/vendor/persist/camera 0755 vendor_tcmd vendor_tcmd
mkdir /mnt/vendor/persist/camera/dualcal 0775 camera vendor_tcmd
mkdir /mnt/vendor/persist/camera/focus 0775 camera vendor_tcmd
mkdir /mnt/vendor/persist/camera/ledcal 0775 camera vendor_tcmd
mkdir /mnt/vendor/persist/camera/mot_ledcal 0775 camera camera
mkdir /mnt/vendor/persist/camera/mot_gyrocal 0775 camera camera
mkdir /mnt/vendor/persist/batt_health 0775 vendor_pwric vendor_pwric
mkdir /mnt/vendor/persist/mdm 0770 radio radio
mkdir /mnt/vendor/persist/factory 0755 vendor_tcmd vendor_tcmd
mkdir /mnt/vendor/persist/factory/audio 0755 vendor_tcmd system
mkdir /mnt/vendor/persist/factory/wlan 0755 vendor_tcmd vendor_tcmd
mkdir /mnt/vendor/persist/factory/regulatory 0755 vendor_tcmd system
mkdir /mnt/vendor/persist/public 0755 vendor_tcmd vendor_tcmd
mkdir /mnt/vendor/persist/public/att_dm 0775 radio vendor_tcmd
mkdir /mnt/vendor/persist/public/hiddenmenu 0775 radio vendor_tcmd
mkdir /mnt/vendor/persist/public/hiddenmenu/data 0775 system vendor_tcmd
mkdir /persist/public/locale 0700 system system
mkdir /persist/public/omadm 0700 radio radio
mkdir /persist/public/svcs 0770 system system
mkdir /mnt/vendor/persist/wifi 0755 vendor_tcmd vendor_tcmd
mkdir /mnt/vendor/persist/bt 0755 vendor_tcmd bluetooth
mkdir /persist/public/usc_dm 0775 radio radio
mkdir /mnt/vendor/persist/rfs/msm/mpss/mot_rfs 0771 vendor_rfs system
mkdir /mnt/vendor/persist/rfs/mdm/mpss/mot_rfs 0771 vendor_rfs system
# This dir is used to store any OMA(both DM and CP) files in persist partition
# Any app with radio UID or vendor_tcmd GID can read/write/execute files in this dir.
mkdir /mnt/vendor/persist/public/oma 0775 radio vendor_tcmd
chown vendor_tcmd vendor_tcmd /mnt/vendor/persist/factory/fti
chmod 0664 /mnt/vendor/persist/factory/fti
chown vendor_tcmd vendor_tcmd /mnt/vendor/persist/factory/byte
chmod 0660 /mnt/vendor/persist/factory/byte
chmod 0660 /mnt/vendor/persist/wifi/wlan_mac.bin
chown vendor_tcmd vendor_tcmd /mnt/vendor/persist/bt/bt_bdaddr
chmod 0664 /mnt/vendor/persist/bt/bt_bdaddr
# Set life_calls and life_timer file permissions
chown radio vendor_tcmd /mnt/vendor/persist/public/hiddenmenu/life_calls
chmod 0775 /mnt/vendor/persist/public/hiddenmenu/life_calls
chown radio vendor_tcmd /mnt/vendor/persist/public/hiddenmenu/life_timer
chmod 0775 /mnt/vendor/persist/public/hiddenmenu/life_timer
chmod 0711 /mnt/vendor/persist/rfs
chmod 0711 /mnt/vendor/persist/rfs/msm
chmod 0711 /mnt/vendor/persist/rfs/msm/mpss
chmod 0771 /mnt/vendor/persist/rfs/msm/mpss/mot_rfs
chmod 0711 /mnt/vendor/persist/rfs/mdm
chmod 0711 /mnt/vendor/persist/rfs/mdm/mpss
chmod 0771 /mnt/vendor/persist/rfs/mdm/mpss/mot_rfs
# Set dm-verity property for system partition
verity_update_state
# Set capsensor calibration sysfs for MDMCTBK
chown radio radio /sys/class/capsense/calibrate
chmod 0660 /sys/class/capsense/calibrate
on post-fs-data
setprop ro.vendor.build.fingerprint ${ro.product.vendor.brand}/${ro.product.vendor.name}/${ro.product.vendor.device}:${ro.vendor.build.version.release}/${ro.vendor.build.id}/${ro.vendor.build.version.incremental}:${ro.vendor.build.type}/${ro.vendor.build.tags}
# Setup folders for security
mkdir /mnt/vendor/persist/security 02770 drmrpc drmrpc
mkdir /data/vendor/dbvc 0750 vendor_tcmd shell
chown drmrpc vendor_tcmd /mnt/vendor/persist/security
# Setup folder for Pre-Activation Kill Switch app (PAKS)
mkdir /mnt/vendor/persist/paks 02770 vendor_tcmd vendor_tcmd
# Create directory used by power_supply_logger
mkdir /data/vendor/power_supply_logger 0750 vendor_pwric log
# Create directory power_supply_logger used by memtest and batt_health
mkdir /data/vendor_de/power_supply_logger 0770 root log
chown vendor_pwric vendor_pwric /sys/class/power_supply/battery/cycle_count
chmod 0664 /sys/class/power_supply/battery/cycle_count
chmod 0664 /sys/class/power_supply/battery/charge_control_limit
# Permissions for Factory Test of Charging Paths
chown vendor_pwric vendor_pwric /sys/class/power_supply/battery/device/force_chg_auto_enable
chown vendor_pwric vendor_pwric /sys/class/power_supply/battery/device/force_chg_ibatt
chown vendor_pwric vendor_pwric /sys/class/power_supply/battery/device/force_chg_itrick
chown vendor_pwric vendor_pwric /sys/class/power_supply/battery/device/force_chg_iusb
chown vendor_pwric vendor_pwric /sys/class/power_supply/battery/device/force_chg_idc
chown vendor_pwric vendor_pwric /sys/class/power_supply/battery/device/force_chg_usb_suspend
chown vendor_pwric vendor_pwric /sys/class/power_supply/battery/device/force_chg_fail_clear
chown vendor_pwric vendor_pwric /sys/class/power_supply/battery/device/force_chg_usb_otg_ctl
chown vendor_pwric vendor_pwric /sys/class/power_supply/mmi_battery/device/force_chg_auto_enable
chown vendor_pwric vendor_pwric /sys/class/power_supply/mmi_battery/device/force_chg_ibatt
chown vendor_pwric vendor_pwric /sys/class/power_supply/mmi_battery/device/force_chg_itrick
chown vendor_pwric vendor_pwric /sys/class/power_supply/mmi_battery/device/force_chg_iusb
chown vendor_pwric vendor_pwric /sys/class/power_supply/mmi_battery/device/force_chg_idc
chown vendor_pwric vendor_pwric /sys/class/power_supply/mmi_battery/device/force_chg_usb_suspend
chown vendor_pwric vendor_pwric /sys/class/power_supply/mmi_battery/device/force_chg_fail_clear
chown vendor_pwric vendor_pwric /sys/class/power_supply/mmi_battery/device/force_chg_usb_otg_ctl
chown vendor_pwric vendor_pwric /sys/class/power_supply/wireless/device/chip_id
chown vendor_pwric vendor_pwric /sys/class/power_supply/wireless/current_now
chown vendor_pwric vendor_pwric /sys/class/power_supply/wireless/voltage_now
chown vendor_pwric vendor_pwric /sys/class/power_supply/wireless/voltage_max
chmod 0664 /sys/class/power_supply/wireless/voltage_max
chown vendor_pwric vendor_pwric /sys/kernel/debug/pmic-votable/CHG_DISABLE/force_val
chmod 0664 /sys/kernel/debug/pmic-votable/CHG_DISABLE/force_val
chown vendor_pwric vendor_pwric /sys/kernel/debug/pmic-votable/CHG_DISABLE/force_active
chmod 0664 /sys/kernel/debug/pmic-votable/CHG_DISABLE/force_active
chown vendor_pwric vendor_pwric /sys/kernel/debug/regulator/smb5-vconn/enable
chmod 0664 /sys/kernel/debug/regulator/smb5-vconn/enable
chown root vendor_mod /sys/module/qpnp_smbcharger_mmi/parameters/eb_rechrg_start_soc
chown root vendor_mod /sys/module/qpnp_smbcharger_mmi/parameters/eb_rechrg_stop_soc
chown root vendor_mod /sys/module/qpnp_smbcharger_mmi/parameters/eb_attach_start_soc
chown root vendor_mod /sys/module/qpnp_smbcharger_mmi/parameters/eb_attach_stop_soc
chown root vendor_mod /sys/module/qpnp_smbcharger_mmi/parameters/eb_low_start_soc
chown root vendor_mod /sys/module/qpnp_smbcharger_mmi/parameters/eb_low_stop_soc
chown root vendor_mod /sys/module/qpnp_smbcharger_mmi/parameters/eb_on_sw
chmod 0664 /sys/module/qpnp_smbcharger_mmi/parameters/eb_rechrg_start_soc
chmod 0664 /sys/module/qpnp_smbcharger_mmi/parameters/eb_rechrg_stop_soc
chmod 0664 /sys/module/qpnp_smbcharger_mmi/parameters/eb_attach_start_soc
chmod 0664 /sys/module/qpnp_smbcharger_mmi/parameters/eb_attach_stop_soc
chmod 0664 /sys/module/qpnp_smbcharger_mmi/parameters/eb_low_start_soc
chmod 0664 /sys/module/qpnp_smbcharger_mmi/parameters/eb_low_stop_soc
chmod 0664 /sys/module/qpnp_smbcharger_mmi/parameters/eb_on_sw
chown root vendor_mod /sys/class/power_supply/usb/usb_priority
chmod 0660 /sys/class/power_supply/usb/usb_priority
chown root vendor_mod /sys/module/dwc3_msm/parameters/usb_priority
chmod 0660 /sys/module/dwc3_msm/parameters/usb_priority
chown root vendor_mod /sys/module/usbnet/parameters/force_on
chmod 0666 /sys/module/usbnet/parameters/force_on
# Setup folder for native to transfer data to NativeDropBoxAgent
mkdir /data/vendor/dropbox-add 0730 log diag
# Create panic dump dir.
mkdir /data/vendor/dontpanic 0750 root log
# Create directory for cutback
mkdir /data/vendor/misc/cutback 0770 radio wifi
# Create bug2go folder
mkdir /data/vendor/bug2go 0770 log log
# Setup folder for aplogd
mkdir /data/vendor/aplogd 0750 log log
# Create directory used by chargeonlymode
mkdir /data/vendor/chargeonly 0750 root log
# Subsystem RAM-dumps
mkdir /data/vendor/ss-ram-dumps 0750 system log
mkdir /data/vendor/ss-ram-dumps/bp-dumps 0750 system log
mkdir /data/vendor/ss-ram-dumps/riva-dumps 0750 system log
# folder for Blueooth ramdump
mkdir /data/vendor/bt-ram-dumps 0750 bluetooth log
# folder for ssrdumps
mkdir /data/vendor/ssrdump 0775 root system
#Folder for hardware properties
mkdir /data/vendor/hardware_revisions 0755 system system
# Imager tuning data for camera subsystem
mkdir /data/vendor/misc/imager 0771 camera camera
# NFC vendor data
mkdir /data/vendor/nfc 0770 nfc nfc
# Required by FingerPrint Cards (FPC) via init so we don't need to give qseecomd or fingerprintd permissions to create them
mkdir /data/vendor/fpc 0700 system system
mkdir /data/vendor/.fps 0770 system vendor_fingerp
# Required by touchRec for write the touch data
mkdir /data/vendor/touchrec 0770 input input
chown input input /data/vendor/touchrec/bootindex
chown input input /data/vendor/touchrec/lastbootuuid
chown input input /data/vendor/touchrec/touch_data.txt
chmod 0664 /data/vendor/touchrec/touch_data.txt
on boot
# restore default console_loglevel to KERN_DEBUG
# restore default_message_loglevel to KERN_WARNING
write /proc/sys/kernel/printk "7 4 1 7"
# MOTO, NJH348, IKHALFMWK-1864, change system max tcp buffer sizes based on RAT changes
# Define system changable TCP buffer max values
chown system system /proc/sys/net/core/rmem_max
chown system system /proc/sys/net/core/wmem_max
# Change ownership and permission for leds backlight
chmod 0664 /sys/class/leds/lcd-backlight/brightness
chown system system /sys/class/leds/charging/brightness
chmod 0664 /sys/class/leds/charging/brightness
# change permission of red leds
chown system system /sys/class/leds/red/brightness
chmod 0664 /sys/class/leds/red/brightness
# Change ownership and permission for vibrator
chown system system /sys/class/timed_output/vibrator/enable
chmod 0660 /sys/class/timed_output/vibrator/enable
chown system system /sys/class/leds/vibrator/state
chmod 0660 /sys/class/leds/vibrator/state
chown system system /sys/class/leds/vibrator/activate
chmod 0660 /sys/class/leds/vibrator/activate
chown system system /sys/class/leds/vibrator/duration
chmod 0660 /sys/class/leds/vibrator/duration
chown system system /sys/class/leds/vibrator/seq
chmod 0660 /sys/class/leds/vibrator/seq
chown system system /sys/class/leds/vibrator/extra
chmod 0660 /sys/class/leds/vibrator/extra
chown root vendor_mod /sys/bus/i2c/devices/2-005a/reduce
# Change ownership of aov related sysfs entries
chown audio audio /sys/kernel/aov/trigger
chown audio audio /sys/kernel/aov/register
chown audio audio /sys/kernel/aov/event
# Quiet binder logs
write /sys/module/binder/parameters/debug_mask 0x5
# Clear cooldown state
mkdir /mnt/vendor/persist/chargeonly 0770 system system
write /mnt/vendor/persist/chargeonly/cooldown n
chown system system /mnt/vendor/persist/chargeonly/cooldown
chmod 0660 /mnt/vendor/persist/chargeonly/cooldown
# Change owner ship of l5 laser calibration
chown camera vendor_tcmd /mnt/vendor/persist/camera/focus/offset_cal
chmod 0660 /mnt/vendor/persist/camera/focus/offset_cal
# change ownership of capsensor related sysfs node
chown system system /sys/class/capsense/reset
chown system system /sys/class/capsense/int_state
service vendor.mmi-block-perm /vendor/bin/init.mmi.block_perm.sh
class main
user root
oneshot
service vendor.pstore_annotate /vendor/bin/pstore_annotate.sh build
class main
user system
group log
oneshot
service vendor.apanic_copy /vendor/bin/apanic_copy.sh
class late_start
group log
oneshot
disabled
service vendor.bl_logs_copy /vendor/bin/apanic_copy.sh -i
class late_start
group log
oneshot
disabled
on charger
trigger early-fs
trigger fs
trigger post-fs
trigger late-fs
trigger post-fs-data
trigger moto-charger
class_stop main
class_stop late_start
service vendor.apanic_annotate /vendor/bin/apanic_save.sh build
class late_start
group log
oneshot
disabled
service vendor.batt_health /vendor/bin/batt_health
class late_start
user vendor_pwric
group vendor_pwric cache net_admin log
disabled
on property:sys.boot_completed=1
start vendor.batt_health
on property:sys.boot_completed=1 && property:ro.vendor.zram.product_swapon=""
write /proc/sys/vm/page-cluster 0
swapon_all /vendor/etc/fstab.qcom
write /proc/sys/vm/swappiness 100
setprop sys.sysctl.swappiness 100
on property:sys.boot_completed=1 && property:ro.vendor.bootreason=coldboot
start vendor.apanic_copy
on property:ro.vendor.bootreason=watchdog
stop surfaceflinger
stop zygote
stop zygote_secondary
stop sensors
start vendor.apanic_annotate
on property:ro.vendor.bootreason=pmic_watchdog
stop surfaceflinger
stop zygote
stop zygote_secondary
stop sensors
start vendor.apanic_annotate
on property:ro.vendor.bootreason=kernel_panic
stop surfaceflinger
stop zygote
stop zygote_secondary
stop sensors
start vendor.apanic_annotate
on property:ro.vendor.bootreason=hw_warmreset
stop surfaceflinger
stop zygote
stop zygote_secondary
stop sensors
start vendor.apanic_annotate
on property:persist.vendor.log.aplogd.enable=1
start vendor.aplogd
on property:persist.vendor.log.aplogd.enable=0
stop vendor.aplogd
service vendor.aplogd /vendor/bin/aplogd
class late_start
#user log
#group log system sdcard_rw sdcard_r media_rw mount
# The user and group definitions above are intentionally disabled and left
# only as documentation. It actually starts as root and immediately drops
# to log plus those groups after preserving CAP_SYS_ADMIN, which is required
# for kernel logging.
disabled
# from P onwards aplogd cannot read vold.post_fs_data_done so a new property
# shall be used to allow aplogd checking if FBE has finished /data decryption
on property:vold.post_fs_data_done=*
setprop vendor.vold.post_fs_data_done ${vold.post_fs_data_done}
service vendor.mmi-boot-sh /vendor/bin/init.mmi.boot.sh
class core
user root
oneshot
service vendor.mmi-shutdown-sh /vendor/bin/init.mmi.shutdown.sh
class core
user root
oneshot
disabled
# translate to qcom property name in order to keep the consistent with
# our legacy property
on property:persist.vendor.qc.sub.rdump.on=*
setprop persist.vendor.ssr.enable_ramdumps ${persist.vendor.qc.sub.rdump.on}
# translate MMI property in order to keep the consistent with QCOM
on property:ro.vendor.hw.dualsim=true
setprop persist.radio.multisim.config dsds
on property:persist.vendor.qc.sub.rdump.on=*
setprop persist.vendor.ssr.enable_ramdumps ${persist.vendor.qc.sub.rdump.on}
on property:ro.vendor.hw.dualsim=false
setprop persist.radio.multisim.config ""
on property:sys.sysctl.swappiness=*
write /proc/sys/vm/swappiness ${sys.sysctl.swappiness}
service vendor.mbm_spy /vendor/bin/mbm_spy
class late_start
user system
group system
oneshot
disabled
on property:sys.boot_completed=1
start vendor.mbm_spy
service vendor.hw_revs /vendor/bin/hardware_revisions.sh
class late_start
user system
group system
oneshot
service vendor.mmi-touch-sh /vendor/bin/init.mmi.touch.sh
class core
user root
oneshot
service vendor.touchUpg /vendor/bin/touchUpg
class core
user root
oneshot
disabled
service vendor.oem-hw-sh /vendor/bin/init.oem.hw.sh
class core
user root
oneshot
disabled
service vendor.oem-super-image-detector-sh /vendor/bin/init.oem.hw.sh -M
class core
user root
oneshot
disabled
service vendor.ident-fps-sh /vendor/bin/init.oem.fingerprint.sh
class core
user root
group drmrpc system
oneshot
disabled
service vendor.hal-fps-sh /vendor/bin/init.oem.fingerprint2.sh
class late_start
user root
group system
oneshot
service fpc_ident /vendor/bin/hw/fpc_ident
class late_start
user system
group system
oneshot
disabled
service egis_ident /vendor/bin/hw/egis_ident
class late_start
user system
group system
oneshot
disabled
service vendor.touch-dead-sh /vendor/bin/init.oem.hw.sh -f
class main
user root
oneshot
disabled
service vendor.touch-ready-sh /vendor/bin/init.oem.hw.sh -r
class main
user root
oneshot
disabled
service vendor.oem-hw-config-sh /vendor/bin/init.oem.hw.sh -p
class main
user root
oneshot
disabled
on property:vendor.hw.touch.status="dead"
start vendor.touch-dead-sh
on property:vendor.hw.touch.status="ready"
start vendor.touch-ready-sh
service vendor.charge_only_mode /vendor/bin/charge_only_mode
user root
group graphics system input
disabled
service vendor.thermal-com /vendor/bin/thermal-engine --minimode
class main
user root
group root system oem_2907
socket thermal-send-client stream 0666 system oem_2907
socket thermal-recv-client stream 0660 system oem_2907
socket thermal-recv-passive-client stream 0666 system oem_2907
socket thermal-send-rule stream 0660 system oem_2907
disabled
# bugreport is triggered by holding down volume down, volume up and power
service bugreport /system/bin/dumpstate -d -p -B -z \
-o /data/user_de/0/com.android.shell/files/bugreports/bugreport
class main
disabled
oneshot
keycodes 114 115 116
# touchRec
service vendor.touchRec /vendor/bin/touchRec
class late_start
user input
group input
oneshot
disabled
on property:vendor.wifi.tethering=false
write /sys/module/wlan/parameters/sar_mhs disabled
on property:vendor.wifi.tethering=true
write /sys/module/wlan/parameters/sar_mhs enabled
# Override the AOSP sensor HAL service definition
# from hardware/interfaces/sensors/2.0/multihal
# to add input and uhid group access
service vendor.sensors-hal-2-0-multihal /vendor/bin/hw/android.hardware.sensors@2.0-service.multihal
class hal
user system
group system wakelock context_hub input uhid
writepid /dev/cpuset/system-background/tasks
capabilities BLOCK_SUSPEND
rlimit rtprio 10 10
#Override fwpath string when wpa_supplicant server was killed
on property:vendor.wifi.station=true
write /sys/module/wlan/parameters/sar_sta enabled
on property:vendor.wifi.station=false
write /sys/module/wlan/parameters/sar_sta disabled
on shutdown
exec_start vendor.mmi-shutdown-sh
on property:persist.sys.locale=*
mkdir /mnt/vendor/persist/chargeonly 0770 system system
write /mnt/vendor/persist/chargeonly/locale ${persist.sys.locale}
chown system system /mnt/vendor/persist/chargeonly/locale
chmod 0660 /mnt/vendor/persist/chargeonly/locale
# IKSWQ-149109: Force shutter tone on Japan softbank carrier
on property:ro.carrier=softbank
setprop audio.camerasound.force true
on property:ro.sys.force_max_chrg_temp=*
write /sys/class/power_supply/battery/device/force_max_chrg_temp ${ro.sys.force_max_chrg_temp}
on property:ro.sys.force_demo_mode=*
write /sys/class/power_supply/battery/device/force_demo_mode ${ro.sys.force_demo_mode}

View File

@ -0,0 +1,171 @@
on early-boot && property:ro.vendor.build.motfactory=1
write /proc/sys/kernel/poweroff_cmd "/system/bin/reboot -p"
on post-fs && property:ro.vendor.build.motfactory=1
write /sys/class/power_supply/battery/device/factory_image_mode 1
on post-fs
# change permission of utag for tcmd daemon
chown root system /proc/config
chown root system /proc/config/all
chown root system /proc/config/all/new
chown root system /proc/config/all/lock
chown root system /proc/config/all/.delete
chown root system /proc/config/barcode/ascii
chown root system /proc/config/battid/ascii
chown root system /proc/config/bootmode/ascii
chown root system /proc/config/bt_mac/ascii
chown root system /proc/config/carrier_sku/ascii
chown root system /proc/config/date/ascii
chown root system /proc/config/fti/ascii
chown root system /proc/config/imei/ascii
chown root system /proc/config/sku/ascii
chown root system /proc/config/reload
chown root system /proc/config/wifi_mac/ascii
chown root system /proc/hw
chown root system /proc/hw/all
chown root system /proc/hw/all/new
chown root system /proc/hw/all/lock
chown root system /proc/hw/all/.delete
chown root system /proc/hw/dualsim/ascii
chown root system /proc/hw/frontcolor/ascii
chown root system /proc/hw/reload
# change permission of backlight brightness for tcmd daemon
chmod 664 /sys/class/backlight/panel0-backlight/brightness
service vendor.tcmd /vendor/bin/tcmd
class core
# Total number of supplementary groups below is 32 now. Limit defined in service.h is 64.
# Please update the current number if you add more groups.
group vendor_tcmd radio vendor_pwric input system log camera graphics sdcard_r sdcard_rw audio inet bluetooth wifi compass net_bt_admin drmrpc mount net_raw net_admin media shell nfc oem_2901 vendor_dbvc cache media_rw vendor_dtv vendor_mod
socket local_tcmd stream 0660 vendor_tcmd vendor_tcmd
socket batch_socket stream 0600 vendor_tcmd vendor_tcmd
oneshot
disabled
service vendor.tcmdhelp /vendor/bin/tcmdhelp
class main
user root
group system oem_2901 root vendor_pwric
socket tcmdhelp stream 0600 vendor_tcmd vendor_tcmd
oneshot
disabled
service vendor.ftmipcd /vendor/bin/ftmipcd
user radio
group radio net_raw inet oem_2901
capabilities NET_RAW
disabled
oneshot
service tcmd_system /system_ext/bin/tcmd_system
class main
user root
group vendor_prod_persist
oneshot
disabled
on property:ro.bootmode=factory
start vendor.ftmipcd
on property:ro.bootmode=mot-factory
start vendor.ftmipcd
mkdir /mnt/vendor/mot_factory
mount tmpfs tmpfs /mnt/vendor/mot_factory
chown vendor_tcmd vendor_tcmd /mnt/vendor/mot_factory
chmod 0770 /mnt/vendor/mot_factory
# Normal to suspend
on property:vendor.tcmd.suspend=2
stop iorapd
stop surfaceflinger
stop zygote
stop sensors
stop qcamerasvr
stop vendor.hwcomposer-2-1
stop vendor.hwcomposer-2-2
stop vendor.hwcomposer-2-3
stop vendor.qti.hardware.display.composer
on property:vendor.tcmd.suspend=3
start vendor.qti.hardware.display.composer
start vendor.hwcomposer-2-3
start vendor.hwcomposer-2-2
start vendor.hwcomposer-2-1
start qcamerasvr
start sensors
start zygote
start surfaceflinger
start iorapd
on property:vendor.tcmd.start_tcmdhelp=1
start vendor.tcmdhelp
on property:vendor.tcmd.start_tcmd=0
stop vendor.tcmd
on property:vendor.tcmd.start_tcmd=1
start vendor.tcmd
on property:vendor.tcmd.start_ftmipcd=0
stop vendor.ftmipcd
on property:vendor.tcmd.start_ftmipcd=1
start vendor.ftmipcd
on property:vendor.tcmd.start_ftmdaemon=1
start vendor.mot.ftmd
on property:vendor.tcmd.start_wdsdaemon=1
start vendor.wdsdaemon
on property:vendor.tcmd.start_wdsdaemon=0
stop vendor.wdsdaemon
service vendor.wdsdaemon /vendor/bin/wdsdaemon -us
class late_start
user root
group vendor_tcmd bluetooth net_bt_admin misc oem_2901 net_bt
disabled
oneshot
on property:vendor.tcmd.start_fm_wdsdaemon=1
start vendor.fm_wdsdaemon
on property:vendor.tcmd.start_fm_wdsdaemon=0
stop vendor.fm_wdsdaemon
service vendor.fm_wdsdaemon /vendor/bin/wdsdaemon -ms
class late_start
user root
group vendor_tcmd
disabled
oneshot
service vendor.mot.ftmd /vendor/bin/ftmdaemon -n
class late_start
user root
group oem_2901 bluetooth net_bt_admin misc diag net_bt
disabled
oneshot
on property:vendor.tcmd_system.action=*
setprop sys.tcmd_system.action ${vendor.tcmd_system.action}
start tcmd_system
on property:sys.bootbroadcast_completed=*
setprop vendor.sys.bootbroadcast_completed ${sys.bootbroadcast_completed}
on property:vendor.boot_completed=1
setprop ro.vendor.boot.hwrev ${ro.boot.hwrev}
setprop ro.vendor.boot.secure_hardware ${ro.boot.secure_hardware}
setprop ro.vendor.carrier ${ro.carrier}
setprop ro.vendor.build.version.sdk ${ro.build.version.sdk}
setprop ro.vendor.sys.adb_reset_protected ${ro.sys.adb_reset_protected}
setprop ro.vendor.telephony.default_network ${ro.telephony.default_network}
setprop ro.vendor.boot.radio ${ro.boot.radio}
setprop ro.vendor.build.description ${ro.build.description}
setprop ro.vendor.blan.interface ${ro.blan.interface}
setprop vendor.init.svc.adbd ${init.svc.adbd}
setprop persist.vendor.sys.motdpm.allow_adb ${persist.sys.motdpm.allow_adb}

View File

@ -0,0 +1,967 @@
# Copyright (c) 2011-2016, 2018-2020 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
mount configfs none /config
mkdir /config/usb_gadget/g1 0770
mkdir /config/usb_gadget/g2 0770
mkdir /config/usb_gadget/g1/strings/0x409 0770
mkdir /config/usb_gadget/g2/strings/0x409 0770
write /config/usb_gadget/g1/bcdUSB 0x0200
write /config/usb_gadget/g2/bcdUSB 0x0200
write /config/usb_gadget/g1/os_desc/use 1
mkdir /config/usb_gadget/g1/functions/usbnet.usb0
mkdir /config/usb_gadget/g1/functions/mass_storage.0
mkdir /config/usb_gadget/g1/functions/mtp.gs0
mkdir /config/usb_gadget/g1/functions/ptp.gs1
mkdir /config/usb_gadget/g1/functions/accessory.gs2
mkdir /config/usb_gadget/g1/functions/audio_source.gs3
mkdir /config/usb_gadget/g1/functions/midi.gs5
mkdir /config/usb_gadget/g1/functions/ffs.adb
mkdir /config/usb_gadget/g1/functions/ffs.diag
mkdir /config/usb_gadget/g1/functions/ffs.diag_mdm
mkdir /config/usb_gadget/g1/functions/ffs.diag_mdm2
mkdir /config/usb_gadget/g1/functions/diag.diag
mkdir /config/usb_gadget/g1/functions/diag.diag_mdm
mkdir /config/usb_gadget/g1/functions/diag.diag_mdm2
mkdir /config/usb_gadget/g1/functions/cser.dun.0
mkdir /config/usb_gadget/g1/functions/cser.nmea.1
mkdir /config/usb_gadget/g1/functions/cser.dun.2
mkdir /config/usb_gadget/g1/functions/gsi.rmnet
mkdir /config/usb_gadget/g1/functions/gsi.rndis
mkdir /config/usb_gadget/g1/functions/gsi.dpl
mkdir /config/usb_gadget/g1/functions/qdss.qdss
mkdir /config/usb_gadget/g1/functions/qdss.qdss_mdm
mkdir /config/usb_gadget/g1/functions/rndis_bam.rndis
mkdir /config/usb_gadget/g1/functions/rndis.rndis
mkdir /config/usb_gadget/g1/functions/rmnet_bam.rmnet
mkdir /config/usb_gadget/g1/functions/rmnet_bam.dpl
mkdir /config/usb_gadget/g1/functions/rmnet_bam.rmnet_bam_dmux
mkdir /config/usb_gadget/g1/functions/rmnet_bam.dpl_bam_dmux
mkdir /config/usb_gadget/g1/functions/ncm.0
mkdir /config/usb_gadget/g1/functions/ccid.ccid
mkdir /config/usb_gadget/g1/functions/uac2.0
mkdir /config/usb_gadget/g1/functions/uvc.0
mkdir /config/usb_gadget/g1/functions/uvc.0/control/header/h
symlink /config/usb_gadget/g1/functions/uvc.0/control/header/h /config/usb_gadget/g1/functions/uvc.0/control/class/fs/h
symlink /config/usb_gadget/g1/functions/uvc.0/control/header/h /config/usb_gadget/g1/functions/uvc.0/control/class/ss/h
mkdir /config/usb_gadget/g1/functions/uvc.0/streaming/uncompressed/u
mkdir /config/usb_gadget/g1/functions/uvc.0/streaming/uncompressed/u/360p
write /config/usb_gadget/g1/functions/uvc.0/streaming/uncompressed/u/360p/dwFrameInterval \
"333333
666666
"
write /config/usb_gadget/g1/functions/uvc.0/streaming/uncompressed/u/360p/wWidth 640
write /config/usb_gadget/g1/functions/uvc.0/streaming/uncompressed/u/360p/wHeight 360
write /config/usb_gadget/g1/functions/uvc.0/streaming/uncompressed/u/360p/dwMaxVideoFrameBufferSize 345600
write /config/usb_gadget/g1/functions/uvc.0/streaming/uncompressed/u/360p/dwMinBitRate 41472000
write /config/usb_gadget/g1/functions/uvc.0/streaming/uncompressed/u/360p/dwMaxBitRate 82944000
mkdir /config/usb_gadget/g1/functions/uvc.0/streaming/uncompressed/u/720p
write /config/usb_gadget/g1/functions/uvc.0/streaming/uncompressed/u/720p/dwFrameInterval \
"1000000
"
write /config/usb_gadget/g1/functions/uvc.0/streaming/uncompressed/u/720p/wWidth 1280
write /config/usb_gadget/g1/functions/uvc.0/streaming/uncompressed/u/720p/wHeight 720
write /config/usb_gadget/g1/functions/uvc.0/streaming/uncompressed/u/720p/dwMaxVideoFrameBufferSize 1382400
write /config/usb_gadget/g1/functions/uvc.0/streaming/uncompressed/u/720p/dwMinBitRate 110592000
write /config/usb_gadget/g1/functions/uvc.0/streaming/uncompressed/u/720p/dwMaxBitRate 165888000
mkdir /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m
mkdir /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/dwFrameInterval \
"333333
666666
"
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/wWidth 640
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/wHeight 360
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/dwMaxVideoFrameBufferSize 345600
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/dwMinBitRate 41472000
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/dwMaxBitRate 82944000
mkdir /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwFrameInterval \
"333333
666666
"
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/wWidth 1280
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/wHeight 720
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwMaxVideoFrameBufferSize 1382400
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwMinBitRate 165888000
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwMaxBitRate 331776000
mkdir /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwFrameInterval \
"333333
666666
"
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/wWidth 1920
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/wHeight 1080
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwMaxVideoFrameBufferSize 3110400
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwMinBitRate 373248000
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwMaxBitRate 746496000
mkdir /config/usb_gadget/g1/functions/uvc.0/streaming/header/h
symlink /config/usb_gadget/g1/functions/uvc.0/streaming/uncompressed/u /config/usb_gadget/g1/functions/uvc.0/streaming/header/h/u
symlink /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m /config/usb_gadget/g1/functions/uvc.0/streaming/header/h/m
symlink /config/usb_gadget/g1/functions/uvc.0/streaming/header/h /config/usb_gadget/g1/functions/uvc.0/streaming/class/fs/h
symlink /config/usb_gadget/g1/functions/uvc.0/streaming/header/h /config/usb_gadget/g1/functions/uvc.0/streaming/class/hs/h
symlink /config/usb_gadget/g1/functions/uvc.0/streaming/header/h /config/usb_gadget/g1/functions/uvc.0/streaming/class/ss/h
write /config/usb_gadget/g1/functions/uvc.0/streaming_maxburst 15
write /config/usb_gadget/g1/functions/uvc.0/streaming_maxpacket 3072
write /config/usb_gadget/g1/functions/uvc.0/streaming_interval 2
write /config/usb_gadget/g1/functions/uvc.0/streaming_txfifo_hint 9
mkdir /config/usb_gadget/g1/configs/b.1 0770
mkdir /config/usb_gadget/g2/configs/b.1 0770
mkdir /config/usb_gadget/g1/configs/b.1/strings/0x409 0770
mkdir /config/usb_gadget/g2/configs/b.1/strings/0x409 0770
write /config/usb_gadget/g1/configs/b.1/MaxPower 900
write /config/usb_gadget/g1/os_desc/b_vendor_code 0x1
write /config/usb_gadget/g1/os_desc/qw_sign "MSFT100"
symlink /config/usb_gadget/g1/configs/b.1 /config/usb_gadget/g1/os_desc/b.1
mkdir /dev/usb-ffs 0775 shell system
mkdir /dev/usb-ffs/adb 0770 shell shell
mount functionfs adb /dev/usb-ffs/adb uid=2000,gid=2000,rmode=0770,fmode=0660
mkdir /dev/ffs-diag 0770 system system
mount functionfs diag /dev/ffs-diag uid=1000,gid=1000,rmode=0770,fmode=0660,no_disconnect=1
mkdir /dev/ffs-diag-1 0770 system system
mount functionfs diag_mdm /dev/ffs-diag-1 uid=1000,gid=1000,rmode=0770,fmode=0660,no_disconnect=1
mkdir /dev/ffs-diag-2 0770 system system
mount functionfs diag_mdm2 /dev/ffs-diag-2 uid=1000,gid=1000,rmode=0770,fmode=0660,no_disconnect=1
setprop sys.usb.mtp.device_type 3
chown system system /sys/class/android_usb/android0/secure
chmod 0660 /sys/class/android_usb/android0/secure
on boot && property:vendor.usb.use_ffs_mtp=1
mkdir /config/usb_gadget/g1/functions/ffs.mtp
mkdir /config/usb_gadget/g1/functions/ffs.ptp
mkdir /dev/usb-ffs/mtp 0770 mtp mtp
mount functionfs mtp /dev/usb-ffs/mtp rmode=0770,fmode=0660,uid=1024,gid=1024,no_disconnect=1
mkdir /dev/usb-ffs/ptp 0770 mtp mtp
mount functionfs ptp /dev/usb-ffs/ptp rmode=0770,fmode=0660,uid=1024,gid=1024,no_disconnect=1
# This is a good place to write these, since system props would be loaded.
on firmware_mounts_complete
write /config/usb_gadget/g1/strings/0x409/serialnumber ${ro.serialno}
write /config/usb_gadget/g1/strings/0x409/manufacturer ${ro.product.manufacturer}
write /config/usb_gadget/g1/strings/0x409/product ${ro.product.model}
on load_persist_props_action
setprop vendor.usb.config ${sys.usb.config}
setprop persist.vendor.mot.usb.config ${persist.sys.usb.config:-" "}
setprop persist.sys.usb.config " "
setprop persist.vendor.usb.config ${persist.sys.usb.config}
on property:ro.boot.console=ttyGS0 && property:sys.usb.configfs=1
write /config/usb_gadget/g1/UDC "none"
mkdir /config/usb_gadget/g1/functions/acm.0
# "f0" is used here so that we won't take anything from f1 ~ f9
symlink /config/usb_gadget/g1/functions/acm.0 /config/usb_gadget/g1/configs/b.1/f0
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
on property:ro.vendor.bootreason=watchdog
setprop persist.vendor.usb.config ${persist.vendor.mot.usb.config}
setprop persist.sys.usb.config ${persist.vendor.mot.usb.config}
on property:ro.vendor.bootreason=pmic_watchdog
setprop persist.vendor.usb.config ${persist.vendor.mot.usb.config}
setprop persist.sys.usb.config ${persist.vendor.mot.usb.config}
on property:ro.vendor.bootreason=kernel_panic
setprop persist.vendor.usb.config ${persist.vendor.mot.usb.config}
setprop persist.sys.usb.config ${persist.vendor.mot.usb.config}
on property:sys.boot_completed=*
setprop vendor.boot_completed ${sys.boot_completed}
on property:persist.vendor.usb.config=*
setprop persist.sys.usb.config ${persist.vendor.usb.config}
on property:vendor.usb.config=*
setprop sys.usb.config ${vendor.usb.config}
on property:vendor.usb.controller=*
setprop sys.usb.controller ${vendor.usb.controller}
on property:persist.vendor.usb.qcom.config=*
setprop persist.sys.usb.qcom.config ${persist.vendor.usb.qcom.config}
setprop persist.sys.usb.qcom.func ${persist.vendor.usb.qcom.config}
on property:persist.vendor.usb.bp-tools.config=*
setprop persist.sys.usb.bp-tools.config ${persist.vendor.usb.bp-tools.config}
setprop persist.sys.usb.bp-tools.func ${persist.vendor.usb.bp-tools.config}
on property:persist.vendor.usb.mot-factory.config=*
setprop persist.sys.usb.mot-factory.config ${persist.vendor.usb.mot-factory.config}
setprop persist.sys.usb.mot-factory.func ${persist.vendor.usb.mot-factory.config}
service vendor.mmi-usb-sh /vendor/bin/init.mmi.usb.sh
class late_start
user root
group system
oneshot
on property:vendor.tcmd.ctrl_adb=1 && property:sys.usb.config=usbnet
setprop sys.usb.config none
setprop sys.usb.config usbnet,adb
on property:vendor.tcmd.ctrl_adb=0 && property:sys.usb.config=usbnet,adb
setprop sys.usb.config none
setprop sys.usb.config usbnet
on property:vendor.tcmd.ctrl_adb=1 && property:sys.usb.config=diag,usbnet
setprop sys.usb.config none
setprop sys.usb.config diag,usbnet,adb
on property:vendor.tcmd.ctrl_adb=0 && property:sys.usb.config=diag,usbnet,adb
setprop sys.usb.config none
setprop sys.usb.config diag,usbnet
### Factory Compositions
on property:sys.usb.config=usbnet,adb && property:sys.usb.configfs=1
start adbd
start vendor.tcmd
on property:sys.usb.config=diag,usbnet,adb && property:sys.usb.configfs=1
start adbd
start vendor.tcmd
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=usbnet,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "Motorola Test Command"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
write /config/usb_gadget/g1/idVendor 0x22b8
write /config/usb_gadget/g1/idProduct 0x2e2d
write /config/usb_gadget/g1/os_desc/use 1
symlink /config/usb_gadget/g1/functions/usbnet.usb0 /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=usbnet && property:sys.usb.configfs=1
start vendor.tcmd
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "Motorola Test Command without ADB"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
write /config/usb_gadget/g1/idVendor 0x22b8
write /config/usb_gadget/g1/idProduct 0x2e2c
write /config/usb_gadget/g1/os_desc/use 0
symlink /config/usb_gadget/g1/functions/usbnet.usb0 /config/usb_gadget/g1/configs/b.1/f1
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
## factory mode usbnet and diag work together
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=diag,usbnet,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "Motorola Test Command"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
write /config/usb_gadget/g1/idVendor 0x22b8
write /config/usb_gadget/g1/idProduct 0x2e35
write /config/usb_gadget/g1/os_desc/use 1
symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/usbnet.usb0 /config/usb_gadget/g1/configs/b.1/f2
symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f3
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=diag,usbnet && property:sys.usb.configfs=1
start vendor.tcmd
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "Motorola Test Command without ADB"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
write /config/usb_gadget/g1/idVendor 0x22b8
write /config/usb_gadget/g1/idProduct 0x2e34
write /config/usb_gadget/g1/os_desc/use 0
symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/usbnet.usb0 /config/usb_gadget/g1/configs/b.1/f2
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
### Charging Compositions
on property:sys.usb.config=charging && property:sys.usb.configfs=1
write /config/usb_gadget/g1/strings/0x409/serialnumber ${ro.serialno}
write /config/usb_gadget/g1/UDC "none"
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "Motorola Charge Only"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
write /config/usb_gadget/g1/idVendor 0x22b8
write /config/usb_gadget/g1/idProduct 0x2eb7
symlink /config/usb_gadget/g1/functions/mass_storage.0 /config/usb_gadget/g1/configs/b.1/f1
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
### Android Compositions
on property:sys.usb.config=mtp && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idProduct 0x2e82
write /config/usb_gadget/g1/idVendor 0x22b8
on property:sys.usb.config=mtp,adb && property:sys.usb.configfs=1
start vendor.tcmd
write /config/usb_gadget/g1/idProduct 0x2e76
write /config/usb_gadget/g1/idVendor 0x22b8
on property:sys.usb.config=mtp && property:vendor.usb.use_ffs_mtp=0 && property:sys.usb.configfs=1
write /config/usb_gadget/g1/functions/mtp.gs0/os_desc/interface.MTP/compatible_id "MTP"
on property:sys.usb.config=mtp && property:vendor.usb.use_ffs_mtp=1 && property:sys.usb.configfs=1
symlink /config/usb_gadget/g1/functions/ffs.mtp /config/usb_gadget/g1/configs/b.1/f1
on property:sys.usb.config=mtp,adb && property:vendor.usb.use_ffs_mtp=0 && property:sys.usb.configfs=1
write /config/usb_gadget/g1/functions/mtp.gs0/os_desc/interface.MTP/compatible_id "MTP"
on property:sys.usb.config=mtp,adb && property:vendor.usb.use_ffs_mtp=1 && property:sys.usb.configfs=1
symlink /config/usb_gadget/g1/functions/ffs.mtp /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
on init && property:ro.carrier=vzw
mkdir /config/usb_gadget/g1/functions/mass_storage.0/lun.1
on init && property:ro.carrier=vzwpre
mkdir /config/usb_gadget/g1/functions/mass_storage.0/lun.1
on property:sys.usb.config=mtp,cdrom && property:sys.usb.configfs=1
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "mtp, cdrom"
write /config/usb_gadget/g1/idProduct 0x2e61
write /config/usb_gadget/g1/idVendor 0x22b8
write /config/usb_gadget/g1/functions/mass_storage.0/lun.0/file ""
write /config/usb_gadget/g1/functions/mass_storage.0/lun.0/cdrom 1
write /config/usb_gadget/g1/functions/mass_storage.0/lun.0/file "/product/etc/cdrom"
on property:sys.usb.config=mtp,cdrom,adb && property:sys.usb.configfs=1
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "mtp, cdrom"
write /config/usb_gadget/g1/idProduct 0x2e61
write /config/usb_gadget/g1/idVendor 0x22b8
write /config/usb_gadget/g1/functions/mass_storage.0/lun.0/file ""
write /config/usb_gadget/g1/functions/mass_storage.0/lun.0/cdrom 1
write /config/usb_gadget/g1/functions/mass_storage.0/lun.0/file "/product/etc/cdrom"
on property:sys.usb.config=mtp,cdrom && property:sys.usb.configfs=1 && property:ro.carrier=vzw
write /config/usb_gadget/g1/functions/mass_storage.0/lun.1/file ""
write /config/usb_gadget/g1/functions/mass_storage.0/lun.1/cdrom 1
write /config/usb_gadget/g1/functions/mass_storage.0/lun.1/file "/product/etc/vzw_cdrom"
on property:sys.usb.config=mtp,cdrom,adb && property:sys.usb.configfs=1 && property:ro.carrier=vzw
write /config/usb_gadget/g1/functions/mass_storage.0/lun.1/file ""
write /config/usb_gadget/g1/functions/mass_storage.0/lun.1/cdrom 1
write /config/usb_gadget/g1/functions/mass_storage.0/lun.1/file "/product/etc/vzw_cdrom"
on property:sys.usb.config=mtp,cdrom && property:sys.usb.configfs=1 && property:ro.carrier=vzwpre
write /config/usb_gadget/g1/functions/mass_storage.0/lun.1/file ""
write /config/usb_gadget/g1/functions/mass_storage.0/lun.1/cdrom 1
write /config/usb_gadget/g1/functions/mass_storage.0/lun.1/file "/product/etc/vzw_cdrom"
on property:sys.usb.config=mtp,cdrom,adb && property:sys.usb.configfs=1 && property:ro.carrier=vzwpre
write /config/usb_gadget/g1/functions/mass_storage.0/lun.1/file ""
write /config/usb_gadget/g1/functions/mass_storage.0/lun.1/cdrom 1
write /config/usb_gadget/g1/functions/mass_storage.0/lun.1/file "/product/etc/vzw_cdrom"
on property:sys.usb.config=mtp,cdrom && property:vendor.usb.use_ffs_mtp=0 && property:sys.usb.configfs=1
symlink /config/usb_gadget/g1/functions/mtp.gs0 /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/mass_storage.0 /config/usb_gadget/g1/configs/b.1/f2
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=mtp,cdrom && property:vendor.usb.use_ffs_mtp=1 && property:sys.usb.configfs=1
symlink /config/usb_gadget/g1/functions/ffs.mtp /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/mass_storage.0 /config/usb_gadget/g1/configs/b.1/f2
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=mtp,cdrom,adb && property:vendor.usb.use_ffs_mtp=0 && property:sys.usb.configfs=1
symlink /config/usb_gadget/g1/functions/mtp.gs0 /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/mass_storage.0 /config/usb_gadget/g1/configs/b.1/f2
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=mtp,cdrom,adb && property:vendor.usb.use_ffs_mtp=1 && property:sys.usb.configfs=1
symlink /config/usb_gadget/g1/functions/ffs.mtp /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/mass_storage.0 /config/usb_gadget/g1/configs/b.1/f2
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=rndis && property:sys.usb.configfs=1
setprop sys.usb.config rndis,${persist.vendor.usb.config.extra}
on property:sys.usb.config=rndis,none && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
write /config/usb_gadget/g1/idVendor 0x22b8
write /config/usb_gadget/g1/idProduct 0x2e24
symlink /config/usb_gadget/g1/functions/${vendor.usb.rndis.func.name}.rndis /config/usb_gadget/g1/configs/b.1/f1
write /config/usb_gadget/g1/configs/b.1/f1/wceis 1
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state rndis
on property:sys.usb.config=rndis,adb && property:sys.usb.configfs=1
setprop sys.usb.config rndis,${persist.vendor.usb.config.extra},adb
on property:sys.usb.config=rndis,none,adb && property:sys.usb.configfs=1
start adbd
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=rndis,none,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_adb"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
write /config/usb_gadget/g1/idVendor 0x22b8
write /config/usb_gadget/g1/idProduct 0x2e25
symlink /config/usb_gadget/g1/functions/${vendor.usb.rndis.func.name}.rndis /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
write /config/usb_gadget/g1/configs/b.1/f1/wceis 1
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state rndis,adb
on property:sys.usb.config=rndis,webcam && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
write /config/usb_gadget/g1/idVendor 0x22b8
write /config/usb_gadget/g1/idProduct 0x2e24
symlink /config/usb_gadget/g1/functions/uvc.0 /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/${vendor.usb.rndis.func.name}.rndis /config/usb_gadget/g1/configs/b.1/f2
write /config/usb_gadget/g1/configs/b.1/f2/wceis 1
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=rndis,webcam,adb && property:sys.usb.configfs=1
start adbd
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=rndis,webcam,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_adb"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
write /config/usb_gadget/g1/idVendor 0x22b8
write /config/usb_gadget/g1/idProduct 0x2e25
symlink /config/usb_gadget/g1/functions/uvc.0 /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/${vendor.usb.rndis.func.name}.rndis /config/usb_gadget/g1/configs/b.1/f2
symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f3
write /config/usb_gadget/g1/configs/b.1/f2/wceis 1
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=ncm && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ncm"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
rm /config/usb_gadget/g1/configs/b.1/f6
rm /config/usb_gadget/g1/configs/b.1/f7
rm /config/usb_gadget/g1/configs/b.1/f8
rm /config/usb_gadget/g1/configs/b.1/f9
write /config/usb_gadget/g1/idVendor 0x22b8
write /config/usb_gadget/g1/idProduct 0x2e44
write /config/usb_gadget/g1/functions/ncm.0/os_desc/interface.ncm/compatible_id "WINNCM"
symlink /config/usb_gadget/g1/functions/ncm.0 /config/usb_gadget/g1/configs/b.1/f1
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=ncm,adb && property:sys.usb.configfs=1
start adbd
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=ncm,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ncm_adb"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
rm /config/usb_gadget/g1/configs/b.1/f6
rm /config/usb_gadget/g1/configs/b.1/f7
rm /config/usb_gadget/g1/configs/b.1/f8
rm /config/usb_gadget/g1/configs/b.1/f9
write /config/usb_gadget/g1/idVendor 0x22b8
write /config/usb_gadget/g1/idProduct 0x2e45
write /config/usb_gadget/g1/functions/ncm.0/os_desc/interface.ncm/compatible_id "WINNCM"
symlink /config/usb_gadget/g1/functions/ncm.0 /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=ncm,webcam && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ncm"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
rm /config/usb_gadget/g1/configs/b.1/f6
rm /config/usb_gadget/g1/configs/b.1/f7
rm /config/usb_gadget/g1/configs/b.1/f8
rm /config/usb_gadget/g1/configs/b.1/f9
write /config/usb_gadget/g1/idVendor 0x22b8
write /config/usb_gadget/g1/idProduct 0x2e44
write /config/usb_gadget/g1/functions/ncm.0/os_desc/interface.ncm/compatible_id "WINNCM"
symlink /config/usb_gadget/g1/functions/uvc.0 /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/ncm.0 /config/usb_gadget/g1/configs/b.1/f2
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=ncm,webcam,adb && property:sys.usb.configfs=1
start adbd
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=ncm,webcam,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ncm_adb"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
rm /config/usb_gadget/g1/configs/b.1/f6
rm /config/usb_gadget/g1/configs/b.1/f7
rm /config/usb_gadget/g1/configs/b.1/f8
rm /config/usb_gadget/g1/configs/b.1/f9
write /config/usb_gadget/g1/idVendor 0x22b8
write /config/usb_gadget/g1/idProduct 0x2e45
write /config/usb_gadget/g1/functions/ncm.0/os_desc/interface.ncm/compatible_id "WINNCM"
symlink /config/usb_gadget/g1/functions/uvc.0 /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/ncm.0 /config/usb_gadget/g1/configs/b.1/f2
symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f3
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=ptp && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idProduct 0x2e83
write /config/usb_gadget/g1/idVendor 0x22b8
on property:sys.usb.config=ptp,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idProduct 0x2e84
write /config/usb_gadget/g1/idVendor 0x22b8
on property:sys.usb.config=ptp && property:vendor.usb.use_ffs_mtp=0 && property:sys.usb.configfs=1
write /config/usb_gadget/g1/functions/ptp.gs1/os_desc/interface.MTP/compatible_id "PTP"
on property:sys.usb.config=ptp,adb && property:vendor.usb.use_ffs_mtp=0 && property:sys.usb.configfs=1
write /config/usb_gadget/g1/functions/ptp.gs1/os_desc/interface.MTP/compatible_id "PTP"
on property:sys.usb.config=ptp && property:vendor.usb.use_ffs_mtp=1 && property:sys.usb.configfs=1
write /config/usb_gadget/g1/functions/ffs.ptp/os_desc/interface.MTP/compatible_id "PTP"
symlink /config/usb_gadget/g1/functions/ffs.ptp /config/usb_gadget/g1/configs/b.1/f1
on property:sys.usb.config=ptp,adb && property:vendor.usb.use_ffs_mtp=1 && property:sys.usb.configfs=1
write /config/usb_gadget/g1/functions/ffs.ptp/os_desc/interface.MTP/compatible_id "PTP"
symlink /config/usb_gadget/g1/functions/ffs.ptp /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
### Debug Compositions (BP-Tools)
on property:sys.usb.config=diag,serial,rmnet,adb && property:sys.usb.configfs=1
start adbd
start vendor.tcmd
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=diag,serial,rmnet,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "BP-tools"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
write /config/usb_gadget/g1/idVendor 0x22b8
write /config/usb_gadget/g1/idProduct 0x2ee6
symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f2
symlink /config/usb_gadget/g1/functions/cser.nmea.1 /config/usb_gadget/g1/configs/b.1/f3
symlink /config/usb_gadget/g1/functions/${vendor.usb.rmnet.func.name}.rmnet /config/usb_gadget/g1/configs/b.1/f4
symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f5
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=diag,serial,rmnet && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "BP-tools without ADB"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
write /config/usb_gadget/g1/idVendor 0x22b8
write /config/usb_gadget/g1/idProduct 0x2ee5
symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f2
symlink /config/usb_gadget/g1/functions/cser.nmea.1 /config/usb_gadget/g1/configs/b.1/f3
symlink /config/usb_gadget/g1/functions/${vendor.usb.rmnet.func.name}.rmnet /config/usb_gadget/g1/configs/b.1/f4
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=rndis,diag,serial,adb && property:sys.usb.configfs=1
start adbd
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=rndis,diag,serial,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "BP-tools Tethering"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
write /config/usb_gadget/g1/idVendor 0x22b8
write /config/usb_gadget/g1/idProduct 0x2ee8
symlink /config/usb_gadget/g1/functions/${vendor.usb.rndis.func.name}.rndis /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f2
symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f3
symlink /config/usb_gadget/g1/functions/cser.nmea.1 /config/usb_gadget/g1/configs/b.1/f4
symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f5
write /config/usb_gadget/g1/configs/b.1/f1/wceis 1
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=rndis,diag,serial && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "BP-tools Tethering without ADB"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
write /config/usb_gadget/g1/idVendor 0x22b8
write /config/usb_gadget/g1/idProduct 0x2ee7
symlink /config/usb_gadget/g1/functions/${vendor.usb.rndis.func.name}.rndis /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f2
symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f3
symlink /config/usb_gadget/g1/functions/cser.nmea.1 /config/usb_gadget/g1/configs/b.1/f4
write /config/usb_gadget/g1/configs/b.1/f1/wceis 1
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
### QCOM Default Compositions
on property:sys.usb.config=diag,serial_cdev,rmnet,adb && property:sys.usb.configfs=1
start adbd
on boot
chown root system /sys/module/uvcvideo/parameters/quirks
chmod 0660 /sys/module/uvcvideo/parameters/quirks
setprop sys.usb.configfs 1
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=diag,serial_cdev,rmnet,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "Default composition"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
write /config/usb_gadget/g1/idVendor 0x05C6
write /config/usb_gadget/g1/idProduct 0x9091
symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f2
symlink /config/usb_gadget/g1/functions/${vendor.usb.rmnet.func.name}.rmnet /config/usb_gadget/g1/configs/b.1/f3
symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f4
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=diag,serial_cdev,rmnet && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "Default comp without ADB"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
write /config/usb_gadget/g1/idVendor 0x05C6
write /config/usb_gadget/g1/idProduct 0x9092
symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f2
symlink /config/usb_gadget/g1/functions/${vendor.usb.rmnet.func.name}.rmnet /config/usb_gadget/g1/configs/b.1/f3
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idVendor 0x22b8
write /config/usb_gadget/g1/idProduct 0x2E81
on property:sys.usb.config=diag,diag_mdm,qdss,qdss_mdm,serial_cdev,serial_cdev_mdm,dpl,rmnet && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_diag_mdm,qdss_qdss_mdm_dun_dun_mdm_dpl_rmnet"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
rm /config/usb_gadget/g1/configs/b.1/f6
rm /config/usb_gadget/g1/configs/b.1/f7
rm /config/usb_gadget/g1/configs/b.1/f8
rm /config/usb_gadget/g1/configs/b.1/f9
write /config/usb_gadget/g1/idVendor 0x05C6
write /config/usb_gadget/g1/idProduct 0x90DD
symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag_mdm /config/usb_gadget/g1/configs/b.1/f2
symlink /config/usb_gadget/g1/functions/qdss.qdss /config/usb_gadget/g1/configs/b.1/f3
symlink /config/usb_gadget/g1/functions/qdss.qdss_mdm /config/usb_gadget/g1/configs/b.1/f4
symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f5
symlink /config/usb_gadget/g1/functions/cser.dun.2 /config/usb_gadget/g1/configs/b.1/f6
symlink /config/usb_gadget/g1/functions/${vendor.usb.rmnet.func.name}.${vendor.usb.dpl.inst.name} /config/usb_gadget/g1/configs/b.1/f7
symlink /config/usb_gadget/g1/functions/${vendor.usb.rmnet.func.name}.${vendor.usb.rmnet.inst.name} /config/usb_gadget/g1/configs/b.1/f8
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=diag,diag_mdm,qdss,qdss_mdm,serial_cdev,serial_cdev_mdm,dpl,rmnet,adb && property:sys.usb.configfs=1
start adbd
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=diag,diag_mdm,qdss,qdss_mdm,serial_cdev,serial_cdev_mdm,dpl,rmnet,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_diag_mdm,qdss_qdss_mdm_dun_dun_mdm_dpl_rmnet_adb"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
rm /config/usb_gadget/g1/configs/b.1/f6
rm /config/usb_gadget/g1/configs/b.1/f7
rm /config/usb_gadget/g1/configs/b.1/f8
rm /config/usb_gadget/g1/configs/b.1/f9
write /config/usb_gadget/g1/idVendor 0x05C6
write /config/usb_gadget/g1/idProduct 0x90DE
symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag_mdm /config/usb_gadget/g1/configs/b.1/f2
symlink /config/usb_gadget/g1/functions/qdss.qdss /config/usb_gadget/g1/configs/b.1/f3
symlink /config/usb_gadget/g1/functions/qdss.qdss_mdm /config/usb_gadget/g1/configs/b.1/f4
symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f5
symlink /config/usb_gadget/g1/functions/cser.dun.2 /config/usb_gadget/g1/configs/b.1/f6
symlink /config/usb_gadget/g1/functions/${vendor.usb.rmnet.func.name}.${vendor.usb.dpl.inst.name} /config/usb_gadget/g1/configs/b.1/f7
symlink /config/usb_gadget/g1/functions/${vendor.usb.rmnet.func.name}.${vendor.usb.rmnet.inst.name} /config/usb_gadget/g1/configs/b.1/f8
symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f9
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=rndis,diag,diag_mdm,qdss,qdss_mdm,serial_cdev,dpl && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_diag_diag_mdm_qdss_qdss_mdm_dun_dpl"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
rm /config/usb_gadget/g1/configs/b.1/f6
rm /config/usb_gadget/g1/configs/b.1/f7
rm /config/usb_gadget/g1/configs/b.1/f8
rm /config/usb_gadget/g1/configs/b.1/f9
write /config/usb_gadget/g1/idVendor 0x05C6
write /config/usb_gadget/g1/idProduct 0x90E6
rmdir /config/usb_gadget/g2/functions/gsi.rndis
mkdir /config/usb_gadget/g1/functions/gsi.rndis
symlink /config/usb_gadget/g1/functions/${vendor.usb.rndis.func.name}.rndis /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f2
symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag_mdm /config/usb_gadget/g1/configs/b.1/f3
symlink /config/usb_gadget/g1/functions/qdss.qdss /config/usb_gadget/g1/configs/b.1/f4
symlink /config/usb_gadget/g1/functions/qdss.qdss_mdm /config/usb_gadget/g1/configs/b.1/f5
symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f6
symlink /config/usb_gadget/g1/functions/${vendor.usb.rmnet.func.name}.${vendor.usb.dpl.inst.name} /config/usb_gadget/g1/configs/b.1/f7
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=rndis,diag,diag_mdm,qdss,qdss_mdm,serial_cdev,dpl,adb && property:sys.usb.configfs=1
start adbd
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=rndis,diag,diag_mdm,qdss,qdss_mdm,serial_cdev,dpl,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_diag_diag_mdm_qdss_qdss_mdm_dun_dpl_adb"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
rm /config/usb_gadget/g1/configs/b.1/f6
rm /config/usb_gadget/g1/configs/b.1/f7
rm /config/usb_gadget/g1/configs/b.1/f8
rm /config/usb_gadget/g1/configs/b.1/f9
write /config/usb_gadget/g1/idVendor 0x05C6
write /config/usb_gadget/g1/idProduct 0x90E7
rmdir /config/usb_gadget/g2/functions/gsi.rndis
mkdir /config/usb_gadget/g1/functions/gsi.rndis
symlink /config/usb_gadget/g1/functions/${vendor.usb.rndis.func.name}.rndis /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f2
symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag_mdm /config/usb_gadget/g1/configs/b.1/f3
symlink /config/usb_gadget/g1/functions/qdss.qdss /config/usb_gadget/g1/configs/b.1/f4
symlink /config/usb_gadget/g1/functions/qdss.qdss_mdm /config/usb_gadget/g1/configs/b.1/f5
symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f6
symlink /config/usb_gadget/g1/functions/${vendor.usb.rmnet.func.name}.${vendor.usb.dpl.inst.name} /config/usb_gadget/g1/configs/b.1/f7
symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f8
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=diag,diag_mdm,qdss,qdss_mdm,serial_cdev,serial_cdev_mdm,mass_storage && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_diag_mdm,qdss_qdss_mdm_dun_dun_mdm_dpl_rmnet"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
rm /config/usb_gadget/g1/configs/b.1/f6
rm /config/usb_gadget/g1/configs/b.1/f7
rm /config/usb_gadget/g1/configs/b.1/f8
rm /config/usb_gadget/g1/configs/b.1/f9
write /config/usb_gadget/g1/idVendor 0x05C6
write /config/usb_gadget/g1/idProduct 0x90DD
symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag_mdm /config/usb_gadget/g1/configs/b.1/f2
symlink /config/usb_gadget/g1/functions/qdss.qdss /config/usb_gadget/g1/configs/b.1/f3
symlink /config/usb_gadget/g1/functions/qdss.qdss_mdm /config/usb_gadget/g1/configs/b.1/f4
symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f5
symlink /config/usb_gadget/g1/functions/cser.dun.2 /config/usb_gadget/g1/configs/b.1/f6
write /config/usb_gadget/g1/functions/mass_storage.0/lun.0/cdrom 1
write /config/usb_gadget/g1/functions/mass_storage.0/lun.0/file "/product/etc/cdrom"
symlink /config/usb_gadget/g1/functions/mass_storage.0 /config/usb_gadget/g1/configs/b.1/f7
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=diag,diag_mdm,qdss,qdss_mdm,serial_cdev,serial_cdev_mdm,mass_storage,adb && property:sys.usb.configfs=1
start adbd
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=diag,diag_mdm,qdss,qdss_mdm,serial_cdev,serial_cdev_mdm,mass_storage,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_diag_mdm,qdss_qdss_mdm_dun_dun_mdm_dpl_rmnet_adb"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
rm /config/usb_gadget/g1/configs/b.1/f6
rm /config/usb_gadget/g1/configs/b.1/f7
rm /config/usb_gadget/g1/configs/b.1/f8
rm /config/usb_gadget/g1/configs/b.1/f9
write /config/usb_gadget/g1/idVendor 0x05C6
write /config/usb_gadget/g1/idProduct 0x90DE
symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag_mdm /config/usb_gadget/g1/configs/b.1/f2
symlink /config/usb_gadget/g1/functions/qdss.qdss /config/usb_gadget/g1/configs/b.1/f3
symlink /config/usb_gadget/g1/functions/qdss.qdss_mdm /config/usb_gadget/g1/configs/b.1/f4
symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f5
symlink /config/usb_gadget/g1/functions/cser.dun.2 /config/usb_gadget/g1/configs/b.1/f6
write /config/usb_gadget/g1/functions/mass_storage.0/lun.0/cdrom 1
write /config/usb_gadget/g1/functions/mass_storage.0/lun.0/file "/product/etc/cdrom"
symlink /config/usb_gadget/g1/functions/mass_storage.0 /config/usb_gadget/g1/configs/b.1/f7
symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f8
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
on property:sys.usb.config=diag,serial_cdev,rmnet,dpl,qdss && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_dun_rmnet_dpl_qdss"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
rm /config/usb_gadget/g1/configs/b.1/f6
rm /config/usb_gadget/g1/configs/b.1/f7
rm /config/usb_gadget/g1/configs/b.1/f8
rm /config/usb_gadget/g1/configs/b.1/f9
write /config/usb_gadget/g1/idVendor 0x05C6
write /config/usb_gadget/g1/idProduct 0x90DC
symlink /config/usb_gadget/g1/functions/diag.diag /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f2
symlink /config/usb_gadget/g1/functions/${vendor.usb.rmnet.func.name}.${vendor.usb.rmnet.inst.name} /config/usb_gadget/g1/configs/b.1/f3
symlink /config/usb_gadget/g1/functions/${vendor.usb.rmnet.func.name}.${vendor.usb.dpl.inst.name} /config/usb_gadget/g1/configs/b.1/f4
symlink /config/usb_gadget/g1/functions/qdss.qdss /config/usb_gadget/g1/configs/b.1/f5
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
on property:sys.usb.config=diag,serial_cdev,rmnet,dpl,qdss,adb && property:sys.usb.configfs=1
start adbd
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=diag,serial_cdev,rmnet,dpl,qdss,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_dun_rmnet_dpl_qdss_adb"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
rm /config/usb_gadget/g1/configs/b.1/f6
rm /config/usb_gadget/g1/configs/b.1/f7
rm /config/usb_gadget/g1/configs/b.1/f8
rm /config/usb_gadget/g1/configs/b.1/f9
write /config/usb_gadget/g1/idVendor 0x05C6
write /config/usb_gadget/g1/idProduct 0x90DB
write /config/usb_gadget/g1/functions/diag.diag/pid 0x90db
symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f2
symlink /config/usb_gadget/g1/functions/${vendor.usb.rmnet.func.name}.${vendor.usb.rmnet.inst.name} /config/usb_gadget/g1/configs/b.1/f3
symlink /config/usb_gadget/g1/functions/${vendor.usb.rmnet.func.name}.${vendor.usb.dpl.inst.name} /config/usb_gadget/g1/configs/b.1/f4
symlink /config/usb_gadget/g1/functions/qdss.${vendor.usb.qdss.inst.name} /config/usb_gadget/g1/configs/b.1/f5
symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f6
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=webcam && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "Webcam"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
rm /config/usb_gadget/g1/configs/b.1/f6
rm /config/usb_gadget/g1/configs/b.1/f7
rm /config/usb_gadget/g1/configs/b.1/f8
rm /config/usb_gadget/g1/configs/b.1/f9
write /config/usb_gadget/g1/idVendor 0x22b8
write /config/usb_gadget/g1/idProduct 0x2e85
symlink /config/usb_gadget/g1/functions/uvc.0 /config/usb_gadget/g1/configs/b.1/f1
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=webcam,adb && property:sys.usb.configfs=1
start adbd
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=webcam,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "Webcam"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
rm /config/usb_gadget/g1/configs/b.1/f6
rm /config/usb_gadget/g1/configs/b.1/f7
rm /config/usb_gadget/g1/configs/b.1/f8
rm /config/usb_gadget/g1/configs/b.1/f9
write /config/usb_gadget/g1/idVendor 0x22b8
write /config/usb_gadget/g1/idProduct 0x2e85
symlink /config/usb_gadget/g1/functions/uvc.0 /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}

View File

@ -0,0 +1,7 @@
service vendor.wlan-getlogs /vendor/bin/init.mmi.wlan-getlogs.sh
class late_start
user log
group log system wifi
oneshot
disabled

View File

@ -0,0 +1,258 @@
#
# Copyright (c) 2009-2016, 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.
#
# Define fastmmi
service fastmmi /system_ext/bin/mmi
user root
group root
disabled
service vendor.mmid /vendor/bin/mmid
user root
group root
disabled
service mmi_diag /system_ext/bin/mmi_diag
class main
user root
group root oem_2901
disabled
on property:vendor.sys.boot_mode=ffbm
write ${persist.vendor.mmi.misc_dev_path} "ffbm-01"
on property:vendor.sys.boot_mode=qmmi
write ${persist.vendor.mmi.misc_dev_path} "qmmi"
on property:vendor.sys.boot_mode=normal
write ${persist.vendor.mmi.misc_dev_path} "normal"
# Creating a scratch storage on /data for factory testing.
on factory-fs && property:ro.bootmode=ffbm-00
mount tmpfs tmpfs /data
on factory-fs && property:ro.bootmode=ffbm-01
mount tmpfs tmpfs /data
# aligned the usb port with system standard, otherwise if only diag be added
# Then in QMMI mode, the whole Andoid be booted, but due to the ro.bootmode is
# not normal/unknow, then when it apply the default funcs, it will turn to MTP
# which cause the diag/Wwan/modem port all be lost in qmmi mode. Details:
# UsbDeviceManager.java---->getDefaultFunctions and trySetEnabledFunctions
on property:persist.vendor.usb.config=*
setprop persist.sys.usb.qmmi.func ${persist.vendor.usb.config}
on mmi && property:ro.bootmode=ffbm-00
# ========================================================
# This is FFBM only settings.
# ========================================================
#mkdir for factory data files.
mkdir /mnt/vendor/persist/FTM_AP 0750 system system
start fastmmi
# start qcom-post-boot to set the misc partition path property value
start qcom-post-boot
start mmi_diag
on mmi && property:ro.bootmode=ffbm-01
# ========================================================
# This is FFBM only settings.
# ========================================================
#mkdir for factory data files.
mkdir /mnt/vendor/persist/FTM_AP 0750 system system
start fastmmi
## start qcom-post-boot to set the misc partition path property value
start qcom-post-boot
start mmi_diag
on property:persist.vendor.usb.config=* && property:ro.bootmode=ffbm-00
setprop sys.usb.config ${persist.vendor.usb.config}
on property:persist.vendor.usb.config=* && property:ro.bootmode=ffbm-01
setprop sys.usb.config ${persist.vendor.usb.config}
on property:persist.vendor.usb.config=* && property:ro.bootmode=ffbm-02
setprop sys.usb.config ${persist.vendor.usb.config}
on property:persist.vendor.usb.config=* && property:ro.bootmode=qmmi
setprop sys.usb.config ${persist.vendor.usb.config}
on ffbm
trigger early-fs
trigger factory-fs
trigger fs
trigger post-fs
# Mount fstab in init.{$device}.rc by mount_all with '--late' parameter
# to only mount entries with 'latemount'. This is needed if '--early' is
# specified in the previous mount_all command on the fs stage.
# With /system mounted and properties form /system + /factory available,
# some services can be started.
trigger late-fs
# Now we can mount /data. File encryption requires keymaster to decrypt
# /data, which in turn can only be loaded when system properties are present.
trigger post-fs-data
# Now we can start zygote for devices with file based encryption
trigger zygote-start
# Load persist properties and override properties (if enabled) from /data.
trigger load_persist_props_action
# Remove a file to wake up anything waiting for firmware.
trigger firmware_mounts_complete
trigger early-boot
trigger boot
trigger mmi
# ========================================================
# Start for audio TC
# ========================================================
service vendor.audio_tc53 /vendor/bin/mm-audio-ftm -tc 53
user audio
group audio
disabled
oneshot
service vendor.audio_tc51 /vendor/bin/mm-audio-ftm -tc 51
user audio
group audio
disabled
oneshot
service vendor.audio_tc56 /vendor/bin/mm-audio-ftm -tc 56
user audio
group audio
disabled
oneshot
service vendor.audio_tc222 /vendor/bin/mm-audio-ftm -tc 222
user audio
group audio
disabled
oneshot
service vendor.audio_tc228 /vendor/bin/mm-audio-ftm -tc 228
user audio
group audio
disabled
oneshot
service vendor.audio_tc229 /vendor/bin/mm-audio-ftm -tc 229
user audio
group audio
disabled
oneshot
service vendor.audio_tc230 /vendor/bin/mm-audio-ftm -tc 230
user audio
group audio
disabled
oneshot
service vendor.audio_tc225 /vendor/bin/mm-audio-ftm -tc 225
user audio
group audio
disabled
oneshot
service vendor.audio_tc246 /vendor/bin/mm-audio-ftm -tc 246
user audio
group audio
disabled
oneshot
service vendor.audio_tc247 /vendor/bin/mm-audio-ftm -tc 247
user audio
group audio
disabled
oneshot
service vendor.audio_tc250 /vendor/bin/mm-audio-ftm -tc 250
user audio
group audio
disabled
oneshot
service vendor.audio_tc251 /vendor/bin/mm-audio-ftm -tc 251
user audio
group audio
disabled
oneshot
service vendor.audio_tc252 /vendor/bin/mm-audio-ftm -tc 252
user audio
group audio
disabled
oneshot
service vendor.audio_tc253 /vendor/bin/mm-audio-ftm -tc 253
user audio
group audio
disabled
oneshot
service vendor.audio_tc11 /vendor/bin/mm-audio-ftm -tc 11 -file /data/vendor/audio/ftm_headset_mic_record.wav
user audio
group audio
disabled
oneshot
service vendor.audio_tc101 /vendor/bin/mm-audio-ftm -tc 101 -file /data/vendor/audio/ftm_mic1_record.wav
user audio
group audio
disabled
oneshot
service vendor.audio_tc102 /vendor/bin/mm-audio-ftm -tc 102 -file /data/vendor/audio/ftm_mic2_record.wav
user audio
group audio
disabled
oneshot
service vendor.audio_tc103 /vendor/bin/mm-audio-ftm -tc 103 -file /data/vendor/audio/ftm_mic3_record.wav
user audio
group audio
disabled
oneshot
service vendor.audio_tc104 /vendor/bin/mm-audio-ftm -tc 104 -file /data/vendor/audio/ftm_mic4_record.wav
user audio
group audio
disabled
oneshot
# ========================================================
# End for audio TC
# ========================================================

View File

@ -0,0 +1,956 @@
# Copyright (c) 2009-2012, 2014-2021, 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 /vendor/etc/init/hw/init.qti.ufs.rc
import /vendor/etc/init/hw/init.qcom.usb.rc
import /vendor/etc/init/hw/init.qcom.test.rc
import /vendor/etc/init/hw/init.target.rc
import /vendor/etc/init/hw/init.qcom.factory.rc
on early-init
mount debugfs debugfs /sys/kernel/debug
chmod 0755 /sys/kernel/debug
mount tracefs tracefs /sys/kernel/tracing
chmod 0755 /sys/kernel/tracing
# create symlink for vendor mount points
symlink /vendor/firmware_mnt /firmware
symlink /vendor/bt_firmware /bt_firmware
symlink /vendor/dsp /dsp
# Change ownership of hw_recovery related nodes
chown system graphics /sys/kernel/debug/dri/0/debug/dump
chown system graphics /sys/kernel/debug/dri/0/debug/recovery_reg
chown system graphics /sys/kernel/debug/dri/0/debug/recovery_dbgbus
chown system graphics /sys/kernel/debug/dri/0/debug/recovery_vbif_dbgbus
chown system graphics /sys/kernel/debug/dri/0/debug/recovery_dsi_dbgbus
# Change ownership of sysfs power control node
chown system graphics /sys/class/drm/card0/device/power/control
# Change ownership of sw_sync node
chown system graphics /sys/kernel/debug/sync/sw_sync
chmod 0666 /sys/kernel/debug/sync/sw_sync
#Disable UFS clock scaling
write /sys/bus/platform/devices/1d84000.ufshc/clkscale_enable 0
chown root system /dev/kmsg
chmod 0620 /dev/kmsg
# Load WIGIG platform driver
# exec u:r:vendor_modprobe:s0 -- /vendor/bin/modprobe -a -d /vendor/lib/modules msm_11ad_proxy
on init
# Support legacy paths
symlink /sdcard /mnt/sdcard
symlink /sdcard /storage/sdcard0
# Create cgroup mount point for memory
mkdir /sys/fs/cgroup/memory/bg 0750 root system
write /sys/fs/cgroup/memory/bg/memory.swappiness 140
write /sys/fs/cgroup/memory/bg/memory.move_charge_at_immigrate 1
chown root system /sys/fs/cgroup/memory/bg/tasks
write /sys/kernel/icnss/wpss_boot 1
chmod 0660 /sys/fs/cgroup/memory/bg/tasks
on post-fs
chmod 0755 /sys/kernel/debug/tracing
on early-boot
# set RLIMIT_MEMLOCK to 64MB
setrlimit 8 67108864 67108864
# Allow subsystem (modem etc) debugging
write /sys/kernel/boot_adsp/boot 1
write /sys/kernel/boot_cdsp/boot 1
write /sys/devices/virtual/npu/msm_npu/boot 1
write /sys/devices/virtual/cvp/cvp/boot 1
exec u:r:vendor_qti_init_shell:s0 -- /vendor/bin/init.qcom.early_boot.sh
exec u:r:vendor_qti_init_shell:s0 -- /vendor/bin/init.qti.can.sh
setprop ro.sf.lcd_density ${vendor.display.lcd_density}
chown system system /mnt/vendor/persist/data/pfm/licenses
chmod 0775 /mnt/vendor/persist/data/pfm/licenses
chown system system /mnt/vendor/persist/data/pfm/licenses/store_0
chmod 0664 /mnt/vendor/persist/data/pfm/licenses/store_0
chown system system /mnt/vendor/persist/data/pfm/licenses/store_1
chmod 0664 /mnt/vendor/persist/data/pfm/licenses/store_1
chown system system /mnt/vendor/persist/data/pfm/licenses/store_2
chmod 0664 /mnt/vendor/persist/data/pfm/licenses/store_2
chown system system /mnt/vendor/persist/data/pfm/licenses/store_3
chmod 0664 /mnt/vendor/persist/data/pfm/licenses/store_3
chown system system /mnt/vendor/persist/data/pfm/licenses/store_4
chmod 0664 /mnt/vendor/persist/data/pfm/licenses/store_4
on boot
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/msm_core/parameters/polling_interval
chown system system /sys/module/msm_core/parameters/disabled
chown system system /sys/kernel/debug/msm_core/enable
chown system system /sys/kernel/debug/msm_core/ptable
chown system system /sys/kernel/boot_slpi/ssr
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
# This location is used by QCRIL to host UNIX domain
# socket files used for internal IPC within QCRIL
# modules
mkdir /dev/socket/qmux_radio 0770 radio radio
chmod 2770 /dev/socket/qmux_radio
mkdir /persist/drm 0770 system system
mkdir /persist/bluetooth 0770 bluetooth bluetooth
mkdir /persist/misc 0770 system system
mkdir /persist/alarm 0770 system system
mkdir /mnt/vendor/persist/time 0770 system system
mkdir /mnt/vendor/persist/secnvm 0770 system system
mkdir /mnt/vendor/persist/iar_db 0770 system system
mkdir /mnt/vendor/spunvm 0770 system system
#Create WIGIG socket area
mkdir /dev/socket/wigig 0770 wifi wifi
setprop wifi.interface wlan0
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
setprop net.tcp.2g_init_rwnd 10
# 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_WARN
# Set the default message loglevel to KERN_INFO
write /proc/sys/kernel/printk "4 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
# Allow access to emmc rawdump block partition and dload sysfs node
chown root system /dev/block/bootdevice/by-name/rawdump
chmod 0660 /dev/block/bootdevice/by-name/rawdump
chown root system /sys/kernel/dload/emmc_dload
chmod 0660 /sys/kernel/dload/emmc_dload
chown root system /dev/block/bootdevice/by-name/ramdump
chmod 0660 /dev/block/bootdevice/by-name/ramdump
chown root system /sys/kernel/dload/dload_mode
chmod 0660 /sys/kernel/dload/dload_mode
chown system system /sys/class/backlight/panel0-backlight/brightness
chown system system /sys/class/backlight/panel0-backlight/max_brightness
chown system system /sys/class/backlight/panel1-backlight/brightness
chown system system /sys/class/backlight/panel1-backlight/max_brightness
# Allow access to sensors device attributes
chown system system /sys/class/sensors/MPU6050-accel/enable
chown system system /sys/class/sensors/MPU6050-accel/poll_delay
chown system system /sys/class/sensors/MPU6050-gyro/enable
chown system system /sys/class/sensors/MPU6050-gyro/poll_delay
chown system system /sys/class/sensors/apds9930-light/enable
chown system system /sys/class/sensors/apds9930-light/poll_delay
chown system system /sys/class/sensors/apds9930-proximity/enable
chown system system /sys/class/sensors/apds9930-proximity/poll_delay
# Create directory used for display
# for backward compatibility
mkdir /persist/display 0770 system graphics
mkdir /mnt/vendor/persist/display 0770 system graphics
# Create vpp directory
mkdir /mnt/vendor/persist/vpp 0770 media media
# Create hvdcp_opti directory
mkdir /mnt/vendor/persist/hvdcp_opti 0770 root system
# limit discard size to 128MB in order to avoid long IO latency
write /sys/block/sda/queue/discard_max_bytes 134217728
# msm specific files that need to be created on /data
on post-fs-data
mkdir /data/vendor/misc 01771 system system
# Create directory used for dump collection
mkdir /data/vendor/ssrdump 0770 root system
# Create directory used by display clients
mkdir /data/vendor/display 0770 system graphics
# Change lm related dirs
mkdir /data/vendor/lm 0700 root root
# Create directory used by powermodule
mkdir /data/vendor/pwr 0700 root root
# Create directory used by media clients
mkdir /data/vendor/media 0775 mediacodec media
# Create /data/vendor/tzstorage directory for SFS listener
mkdir /data/vendor/tzstorage 0770 system system
# Create directory for apps access via QTEEConnector
mkdir /data/vendor/qtee 0770 system system
#Create folder of camera
mkdir /data/vendor/camera 0770 camera camera
#Create directory for tftp
mkdir /data/vendor/tombstones 0771 system system
mkdir /data/vendor/tombstones/rfs 0771 system system
mkdir /data/vendor/ramdump 0771 root system
mkdir /data/vendor/bluetooth 0770 bluetooth bluetooth
mkdir /data/vendor/ramdump/bluetooth 0770 bluetooth bluetooth
# Create the directories used by the Wireless subsystem
mkdir /data/vendor/wifi 0770 wifi wifi
mkdir /data/vendor/wifi/sockets 0770 wifi wifi
mkdir /data/vendor/wifi/hostapd 0770 wifi wifi
mkdir /data/vendor/wifi/hostapd/ctrl 0770 wifi wifi
mkdir /data/vendor/wifi/wpa_supplicant 0770 wifi wifi
mkdir /data/vendor/wifi/wigig_hostapd 0770 wifi wifi
mkdir /data/vendor/wifi/wpa 0770 wifi wifi
mkdir /data/vendor/wifi/wpa/sockets 0770 wifi wifi
# Create the directories used by WiGig Sensing
mkdir /data/vendor/sensing 0770 system wifi
# Create the directories used by CnE subsystem
mkdir /data/vendor/connectivity 0771 radio radio
chown radio radio /data/vendor/connectivity
# Create directory used by audio subsystem
mkdir /data/vendor/audio 0770 audio audio
# Create directory for audio delta files
mkdir /data/vendor/audio/acdbdata 0770 media audio
mkdir /data/vendor/audio/acdbdata/delta 0770 media audio
# Create directory for radio
mkdir /data/vendor/radio 0770 system radio
rm /data/vendor/radio/shmbus
# Create directory for modem_config
mkdir /data/vendor/modem_config 0570 radio root
# 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 root system /persist
chmod 0771 /persist
chown system system /persist/WCNSS_qcom_wlan_nv.bin
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
#symlink /data/misc/wifi/wpa_supplicant /data/system/wpa_supplicant
#Create directories for Location services
mkdir /data/vendor/location 0770 gps gps
mkdir /data/vendor/location/mq 0770 gps gps
mkdir /data/vendor/location/xtwifi 0770 gps gps
mkdir /dev/socket/location 0770 gps gps
mkdir /dev/socket/location/mq 0770 gps gps
mkdir /dev/socket/location/xtra 0770 gps gps
mkdir /dev/socket/location/dgnss 0770 gps gps
#Create directories for wifihal services
mkdir /dev/socket/wifihal 0770 wifi wifi
chmod 2770 /dev/socket/wifihal
# Create /data/time folder for time-services
mkdir /data/vendor/time/ 0700 system system
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/vendor/fm 0770 system system
chmod 0770 /data/vendor/fm
#Create PERFD deamon related dirs
mkdir /data/vendor/perfd 0770 root system
chmod 2770 /data/vendor/perfd
rm /data/vendor/perfd/default_values
mkdir /data/vendor/secure_element 0777 system system
#Create IOP deamon related dirs
mkdir /data/vendor/iop 0700 root system
# Mark the copy complete flag to not completed
write /data/vendor/radio/copy_complete 0
chown radio radio /data/vendor/radio/copy_complete
chmod 0660 /data/vendor/radio/copy_complete
# copy prebuilt qcril.db files always
copy /vendor/radio/qcril_database/qcril.db /data/vendor/radio/qcril_prebuilt.db
chown radio radio /data/vendor/radio/qcril_prebuilt.db
chmod 0660 /data/vendor/radio/qcril_prebuilt.db
copy /vendor/radio/qcril_database/qcrilNr.db /data/vendor/radio/qcrilNr_prebuilt.db
copy /vendor/etc/qcril_database/qcrilNr.db /data/vendor/radio/qcrilNr_prebuilt.db
chown radio radio /data/vendor/radio/qcrilNr_prebuilt.db
chmod 0660 /data/vendor/radio/qcrilNr_prebuilt.db
# File flags for prebuilt ril db file
write /data/vendor/radio/prebuilt_db_support 1
chown radio radio /data/vendor/radio/prebuilt_db_support
chmod 0400 /data/vendor/radio/prebuilt_db_support
write /data/vendor/radio/db_check_done 0
chown radio radio /data/vendor/radio/db_check_done
chmod 0660 /data/vendor/radio/db_check_done
# qti-logkit data
mkdir /data/vendor/qti-logkit/ 0771 system system
mkdir /data/vendor/qti-logkit/shared-privileged/ 2770 system system
mkdir /data/vendor/qti-logkit/shared-public/ 2770 system diag
mkdir /data/vendor/qti-logkit/socket-privileged/ 2770 system system
mkdir /data/vendor/qti-logkit/socket-public/ 2750 system diag
mkdir /data/vendor/qti-logkit/logdata/ 2750 system shell
#Create SWAP related dirs
mkdir /data/vendor/swap 0770 root system
chmod 2770 /data/vendor/swap
# set aggressive read ahead for dm-0 and dm-1 during boot up
write /sys/block/dm-0/queue/read_ahead_kb 2048
write /sys/block/dm-1/queue/read_ahead_kb 2048
write /sys/block/dm-2/queue/read_ahead_kb 2048
# Create vpp directory
mkdir /data/vendor/vpp 0770 media media
#Create dir for TUI
mkdir /data/vendor/tui 0700 system drmrpc
service nqnfcinfo /system/vendor/bin/nqnfcinfo
class late_start
group nfc
user system
oneshot
service iop /system/vendor/bin/iop
class main
user root
group root
disabled
socket iop seqpacket 0666 root system
#service qcomsysd /system/vendor/bin/qcom-system-daemon
# class main
# user root
# group root diag oem_2901
# disabled
#on property:persist.vendor.qcomsysd.enabled=1
# enable qcomsysd
on property:ro.vendor.hw.dualsim=true
setprop persist.vendor.radio.multisim.config dsds
on property:ro.vendor.hw.dualsim=false
setprop persist.vendor.radio.multisim.config ""
#on property:persist.vendor.qcomsysd.enabled=0
# stop qcomsysd
service vendor.ssr_setup /system/vendor/bin/ssr_setup
oneshot
disabled
service vendor.ss_ramdump /system/vendor/bin/subsystem_ramdump
class main
user system
group log sdcard_rw sdcard_r diag system
ioprio rt 4
disabled
on property:ro.vendor.iocgrp.config=1
mkdir /dev/blkio
mount cgroup none /dev/blkio blkio
chown system system /dev/blkio
chown system system /dev/blkio/tasks
chmod 0664 /dev/blkio/tasks
mkdir /dev/blkio/bg 0755 system system
chown system system /dev/blkio/bg/tasks
chmod 0664 /dev/blkio/bg/tasks
write /dev/blkio/blkio.weight 1000
write /dev/blkio/bg/blkio.weight 100
on property:persist.sys.ssr.enable_debug=*
write /sys/module/subsystem_restart/parameters/enable_debug ${persist.sys.ssr.enable_debug}
on property:persist.sys.mba_boot_timeout=*
write /sys/module/pil_msa/parameters/pbl_mba_boot_timeout_ms ${persist.sys.mba_boot_timeout}
on property:persist.sys.modem_auth_timeout=*
write /sys/module/pil_msa/parameters/modem_auth_timeout_ms ${persist.sys.modem_auth_timeout}
on property:persist.sys.pil_proxy_timeout=*
write /sys/module/peripheral_loader/parameters/proxy_timeout_ms ${persist.sys.pil_proxy_timeout}
on property:persist.vendor.ssr.restart_level=*
start vendor.ssr_setup
on property:persist.vendor.ssr.enable_ramdumps=1
write /sys/module/subsystem_restart/parameters/enable_ramdumps 1
mkdir /data/vendor/ramdump_ssr 770 system system
start vendor.ss_ramdump
on property:persist.vendor.ssr.enable_ramdumps=0
write /sys/module/subsystem_restart/parameters/enable_ramdumps 0
on property:persist.vendor.sys.rawdump_copy=1
write /sys/kernel/dload/emmc_dload 1
on property:persist.vendor.sys.rawdump_copy=0
write /sys/kernel/dload/emmc_dload 0
on property:sys.boot_completed=1
write /dev/kmsg "Boot completed "
#Enable UFS clock scaling back
write /sys/bus/platform/devices/1d84000.ufshc/clkscale_enable 1
#Reset read ahead for dm-0 and dm-1 to 512kb
write /sys/block/dm-0/queue/read_ahead_kb 512
write /sys/block/dm-1/queue/read_ahead_kb 512
#WDSP FW boot sysfs node used by STHAL
chown media audio /sys/kernel/wdsp0/boot
chown media audio /sys/kernel/wcd_cpe0/fw_name
#Reinit lmkd to reconfigure lmkd properties
setprop lmkd.reinit 1
on property:persist.vendor.radio.atfwd.start=false
stop vendor.atfwd
on property:vendor.radio.atfwd.start=false
stop vendor.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:vendor.media.target.version=*
setprop vendor.sys.media.target.version ${vendor.media.target.version}
on property:vendor.netflix.bsp_rev=*
setprop ro.netflix.bsp_rev ${vendor.netflix.bsp_rev}
on property:vendor.media.target_variant=*
setprop ro.media.xml_variant.codecs ${vendor.media.target_variant}
setprop ro.media.xml_variant.codecs_performance ${vendor.media.target_variant}
service qcom-c_core-sh /vendor/bin/init.qcom.class_core.sh
class core
user root
oneshot
service qcom-c_main-sh /vendor/bin/init.class_main.sh
class main
user root
group root system
oneshot
on property:vold.decrypt=trigger_restart_framework
start qcom-c_main-sh
start wcnss-service
service vendor.qrtr-ns /vendor/bin/qrtr-ns -f
class core
user vendor_qrtr
group vendor_qrtr
capabilities NET_BIND_SERVICE
service irsc_util /vendor/bin/irsc_util "/vendor/etc/sec_config"
class core
user root
oneshot
service qmiproxy /system/bin/qmiproxy
class main
user radio
group radio diag
disabled
service wpa_supplicant /vendor/bin/hw/wpa_supplicant \
-O/data/vendor/wifi/wpa/sockets -puse_p2p_group_interface=1 -dd \
-g@android:vendor_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
interface android.hardware.wifi.supplicant@1.0::ISupplicant default
interface android.hardware.wifi.supplicant@1.1::ISupplicant default
interface android.hardware.wifi.supplicant@1.2::ISupplicant default
interface android.hardware.wifi.supplicant@1.3::ISupplicant default
interface vendor.qti.hardware.wifi.supplicant@2.0::ISupplicantVendor default
interface vendor.qti.hardware.wifi.supplicant@2.1::ISupplicantVendor default
interface vendor.qti.hardware.wifi.supplicant@2.2::ISupplicantVendor default
class main
socket vendor_wpa_wlan0 dgram 660 wifi wifi
disabled
oneshot
service vendor.wigig_supplicant /vendor/bin/hw/wpa_supplicant \
-iwigig0 -Dnl80211 -c/data/vendor/wifi/wigig_supplicant.conf \
-m/data/vendor/wifi/wigig_p2p_supplicant.conf \
-O/data/vendor/wifi/wigig_sockets -dd \
-e/data/vendor/wifi/wigig_entropy.bin -g@android:wigig/wpa_wigig0 \
-S wigigsvc
# 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 wigig/wpa_wigig0 dgram 660 wifi wifi
disabled
oneshot
# Data Migration
service vendor.move_wifi_data /system/bin/move_wifi_data.sh
class main
user wifi
group wifi
disabled
oneshot
service wigignpt /vendor/bin/wigignpt
interface vendor.qti.hardware.wigig.netperftuner@1.0::INetPerfTuner default
class hal
socket wigig/wigignpt stream 660 system wifi
user system
group wifi
capabilities NET_ADMIN
disabled
on property:persist.vendor.wigig.npt.enable=1
start wigignpt
service vendor.sensingdaemon /vendor/bin/sensingdaemon
class hal
socket wigig/sensingdaemon stream 660 system wifi
user system
group wifi
disabled
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 dhcpcd_wigig0 /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 iprenew_wigig0 /system/bin/dhcpcd -n
class late_start
disabled
oneshot
service ptt_socket_app /system/vendor/bin/ptt_socket_app -d
class main
user wifi
group wifi system inet net_admin
capabilities NET_ADMIN
oneshot
service ptt_ffbm /system/vendor/bin/ptt_socket_app -f -d
user root
group root
disabled
oneshot
service wifi_ftmd /system/vendor/bin/wifi_ftmd
user system
group system inet net_admin
socket wififtmd_server dgram 0660 system system
disabled
oneshot
on property:vendor.wifi.ftmd.load=true
insmod /system/lib/modules/pronto/pronto_wlan.ko con_mode=5
service cnss-daemon /system/vendor/bin/cnss-daemon -n -l
class late_start
user system
group system inet net_admin wifi
capabilities NET_ADMIN
on property:sys.shutdown.requested=*
write /sys/kernel/shutdown_wlan/shutdown 1
stop cnss-daemon
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 ssgqmigd /vendor/bin/ssgqmigd
# class late_start
# user radio
# group radio gps system
# socket ssgqmig seqpacket 0660 radio inet
service mlid /vendor/bin/mlid
class late_start
user gps
group gps
socket mlid stream 0666 gps gps
service loc_launcher /system/vendor/bin/loc_launcher
class late_start
user gps
group gps
service qcom-sh /vendor/bin/init.qcom.sh
class late_start
user root
group root system radio
oneshot
# Remove since is deprecated but throws AVC denial.
# service crashdata-sh /vendor/bin/init.qcom.crashdata.sh
# class late_start
# user root
# oneshot
service qcom-post-boot /vendor/bin/init.qcom.post_boot.sh
class late_start
user root
group root system wakelock graphics
disabled
oneshot
service qti-testscripts /system/bin/sh /product/etc/init.qcom.testscripts.sh
class late_start
user root
disabled
oneshot
seclabel u:r:qti-testscripts:s0
service wifi-sdio-on /vendor/bin/init.qcom.sdio.sh
class late_start
group wifi inet
disabled
oneshot
service wifi-crda /vendor/bin/init.crda.sh
class late_start
user root
disabled
oneshot
on property:sys.boot_completed=1
start qcom-post-boot
start qti-testscripts
on property:ro.vendor.ril.mbn_copy_completed=1
write /data/vendor/radio/copy_complete 1
service qvop-daemon /vendor/bin/qvop-daemon
class late_start
user system
group system drmrpc
service vendor.atfwd /vendor/bin/ATFWD-daemon
class late_start
user system
group system radio
service hostapd_fst /vendor/bin/hw/hostapd -dd -g /data/vendor/wifi/hostapd/global
class main
capabilities NET_ADMIN NET_RAW
user wifi
group wifi
disabled
oneshot
service battery_monitor /system/bin/battery_monitor
user system
group system
disabled
service vendor.ril-daemon2 /vendor/bin/hw/rild -c 2
class main
user radio
disabled
group radio cache inet misc audio sdcard_r sdcard_rw diag oem_2901 log
capabilities BLOCK_SUSPEND NET_ADMIN NET_RAW
service vendor.ril-daemon3 /vendor/bin/hw/rild -c 3
class main
user radio
disabled
group radio cache inet misc audio sdcard_r sdcard_rw diag oem_2901 log
capabilities BLOCK_SUSPEND NET_ADMIN NET_RAW
service profiler_daemon /system/bin/profiler_daemon
class late_start
user root
group root
disabled
service vendor.ssr_diag /system/vendor/bin/ssr_diag
class late_start
user system
group system
disabled
#service diag_mdlog_start /system/vendor/bin/diag_mdlog
# class late_start
# user shell
# group system oem_2901 sdcard_rw sdcard_r media_rw
# disabled
# oneshot
#service diag_mdlog_stop /system/vendor/bin/diag_mdlog -k
# class late_start
# user shell
# group system oem_2901 sdcard_rw sdcard_r media_rw
# disabled
# oneshot
service qlogd /system/xbin/qlogd
socket qlogd stream 0662 system system
class main
disabled
on property:persist.sys.qlogd=1
start qlogd
on property:persist.sys.qlogd=0
stop qlogd
service vm_bms /vendor/bin/vm_bms
class main
user root
group system wakelock
service vendor.msm_irqbalance /vendor/bin/msm_irqbalance -f /system/vendor/etc/msm_irqbalance.conf
class core
user root
group root
disabled
service vendor.msm_irqbal_lb /vendor/bin/msm_irqbalance -f /system/vendor/etc/msm_irqbalance_little_big.conf
class core
user root
group root
disabled
service vendor.msm_irqbl_sdm630 /vendor/bin/msm_irqbalance -f /system/vendor/etc/msm_irqbalance_sdm630.conf
class core
user root
group root
disabled
# service for USERDEBUG
service vendor.LKCore-dbg /vendor/bin/LKCore
class late_start
oneshot
disabled
user root
group root system log diag net_raw
# service for USER
service vendor.LKCore-rel /vendor/bin/LKCore
class late_start
oneshot
disabled
user system
group system log diag
service qseeproxydaemon /system/vendor/bin/qseeproxydaemon
class late_start
user system
group system
service esepmdaemon /system/vendor/bin/esepmdaemon
class core
user system
group nfc
#add poweroffhandler
service poweroffhandler /system/vendor/bin/poweroffhandler
class core
user media
group graphics audio
disabled
oneshot
service time_daemon /vendor/bin/time_daemon
class main
user system
group system
capabilities SYS_TIME
# Set vendor-ril lib path based on Meta version
on property:vendor.rild.libpath=*
setprop rild.libpath ${vendor.rild.libpath}
on property:ro.vendor.radio.noril=*
setprop ro.radio.noril ${ro.vendor.radio.noril}
service vendor.power_off_alarm /vendor/bin/power_off_alarm
class core
group system
disabled
oneshot
service vendor.hbtp /vendor/bin/hbtp_daemon
class main
user system
group system
capabilities SYS_NICE
disabled
#service chre /vendor/bin/chre
# class late_start
# user system
# group system
# socket chre seqpacket 0660 root system
# shutdown critical
on property:vendor.chre.enabled=0
stop chre
service bugreport /system/bin/dumpstate -d -p -B -z -o /data/user_de/0/com.android.shell/files/bugreports/bugreport
class main
disabled
oneshot
keycodes 114 115 116
#Set GPU Opengles version
on property:vendor.opengles.version=*
setprop ro.opengles.version ${vendor.opengles.version}
#Set gpu available frequencies property
on property:vendor.gpu.available_frequencies=*
setprop ro.vendor.gpu.available_frequencies ${vendor.gpu.available_frequencies}
# huangzq2: GPU trubo
on property:vendor.gpu.turbo_enabled=1
setprop vendor.thermal.mode perf
stop thermal-engine
start thermal-engine
on property:vendor.gpu.turbo_enabled=0
setprop vendor.thermal.mode normal
stop thermal-engine
start thermal-engine
on property:vendor.gpu.turbo_supported=1 && property:vendor.gpu.turbo_enabled=1
write /sys/class/kgsl/kgsl-3d0/max_pwrlevel 0
on property:vendor.gpu.turbo_supported=1 && property:vendor.gpu.turbo_enabled=0
write /sys/class/kgsl/kgsl-3d0/max_pwrlevel 1
service vendor.audio-hal /vendor/bin/hw/android.hardware.audio.service
override
class hal
user audioserver
# media gid needed for /dev/fm (radio) and for /data/misc/media (tee)
group audio camera drmrpc inet media mediadrm net_bt net_bt_admin net_bw_acct oem_2901 wakelock
capabilities BLOCK_SUSPEND
ioprio rt 4
writepid /dev/cpuset/foreground/tasks /dev/stune/foreground/tasks
onrestart restart audioserver

View File

@ -0,0 +1,30 @@
# Copyright (c) 2011-2016, 2018-2020 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 init
exec u:r:vendor-qti-testscripts:s0 -- /vendor/bin/sh /vendor/bin/init.qti.ufs.debug.sh

View File

@ -0,0 +1,186 @@
# Copyright (c) 2018-2020, 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.
#
#
import /vendor/etc/init/hw/init.mmi.rc
on early-init
exec u:r:vendor_modprobe:s0 -- /vendor/bin/modprobe -a -d /vendor/lib/modules audio_q6_pdr audio_q6_notifier audio_snd_event audio_apr audio_adsp_loader audio_q6 audio_native audio_usf audio_pinctrl_wcd audio_pinctrl_lpi audio_swr audio_platform audio_hdmi audio_stub audio_wcd_core audio_wsa881x audio_bolero_cdc audio_wsa_macro audio_va_macro audio_rx_macro audio_tx_macro audio_wcd938x audio_wcd938x_slave audio_machine_kona
write /proc/sys/kernel/sched_boost 1
on init
write /dev/stune/foreground/schedtune.sched_boost_no_override 1
write /dev/stune/top-app/schedtune.sched_boost_no_override 1
write /dev/stune/schedtune.colocate 0
write /dev/stune/background/schedtune.colocate 0
write /dev/stune/system-background/schedtune.colocate 0
write /dev/stune/foreground/schedtune.colocate 0
write /dev/stune/top-app/schedtune.colocate 1
wait /dev/block/platform/soc/1d84000.ufshc
symlink /dev/block/platform/soc/1d84000.ufshc /dev/block/bootdevice
chown system system /sys/devices/platform/soc/1d84000.ufshc/auto_hibern8
chmod 0660 /sys/devices/platform/soc/1d84000.ufshc/auto_hibern8
start logd
on early-fs
start vold
on fs
start hwservicemanager
mkdir /mnt/vendor/spunvm 0660 system system
mount_all /vendor/etc/fstab.qcom --early
chown root system /mnt/vendor/persist
chmod 0771 /mnt/vendor/persist
restorecon_recursive /mnt/vendor/persist
mkdir /mnt/vendor/persist/data 0700 system system
on post-fs
# set RLIMIT_MEMLOCK to 64MB
setrlimit 8 67108864 67108864
write /dev/ipa 1
on late-fs
wait_for_prop hwservicemanager.ready true
exec_start wait_for_keymaster
mount_all /vendor/etc/fstab.qcom --late
on post-fs-data
mkdir /vendor/data/tombstones 0771 system system
# Enable WLAN cold boot calibration
write /sys/devices/platform/soc/b0000000.qcom,cnss-qca6390/fs_ready 1
# Motorola: disable vendor.sensors by default and move the start to init.qcom.rc
# Disabling by default will ensure that we do not start vendor.sensors in
# Charge-Only-Mode
#on early-boot
# start vendor.sensors
on boot
# CPUset policy is "spread" for foreground/top, "pack" for background/system
# Cores 0-3 are silver, 4-6 are gold, 7 is gold+
# Keep 1 reserved for top (gold+)
# Keep 1 for system/background (silver)
write /dev/cpuset/top-app/cpus 0-7
write /dev/cpuset/foreground/cpus 1-6
write /dev/cpuset/background/cpus 0-3
write /dev/cpuset/system-background/cpus 0-3
write /dev/cpuset/audio-app/cpus 1-2
# Add a cpuset for the camera daemon
# We want all cores for camera
mkdir /dev/cpuset/camera-daemon
write /dev/cpuset/camera-daemon/cpus 0-3
write /dev/cpuset/camera-daemon/mems 0
chown cameraserver cameraserver /dev/cpuset/camera-daemon
chown cameraserver cameraserver /dev/cpuset/camera-daemon/tasks
chmod 0660 /dev/cpuset/camera-daemon/tasks
#USB controller configuration
setprop vendor.usb.rndis.func.name "gsi"
setprop vendor.usb.rmnet.func.name "gsi"
setprop vendor.usb.rmnet.inst.name "rmnet"
setprop vendor.usb.dpl.inst.name "dpl"
setprop vendor.usb.qdss.inst.name "qdss"
setprop vendor.usb.controller a600000.dwc3
# Load all wlan drivers
exec_background u:r:vendor_modprobe:s0 -- /vendor/bin/modprobe -a -d /vendor/lib/modules/ qca_cld3_qca6390 qca_cld3_qca6490
on property:vendor.display.lcd_density=560
setprop dalvik.vm.heapgrowthlimit 256m
on property:vendor.display.lcd_density=640
setprop dalvik.vm.heapgrowthlimit 512m
on boot && property:persist.vendor.usb.controller.default=*
setprop vendor.usb.controller ${persist.vendor.usb.controller.default}
on charger
start vendor.power_off_alarm
setprop sys.usb.controller a600000.dwc3
setprop sys.usb.configfs 1
service vendor.lowi /vendor/bin/sscrpcd
class core
user system
group system wakelock
capabilities BLOCK_SUSPEND
#pd-mapper
service vendor.pd_mapper /vendor/bin/pd-mapper
class core
user system
group system
#Peripheral manager
service vendor.per_mgr /vendor/bin/pm-service
class core
user system
group system
ioprio rt 4
service vendor.per_proxy /vendor/bin/pm-proxy
class core
user system
group system
disabled
service vendor.mdm_helper /vendor/bin/mdm_helper
class core
group log system wakelock diag vendor_rfs
disabled
service vendor.mdm_launcher /vendor/bin/sh /vendor/bin/init.mdm.sh
class core
oneshot
on property:init.svc.vendor.per_mgr=running
start vendor.per_proxy
on property:sys.shutdown.requested=*
stop vendor.per_proxy
on property:vendor.vold.post_fs_data_done=1 && property:ro.debuggable=1
start vendor.wlan_logging
on property:vendor.vold.post_fs_data_done=1 && property:persist.wlan.debug_log=1
start vendor.wlan_logging
service vendor.wlan_logging /system/vendor/bin/cnss_diag -q -f -b 128 -t HELIUM
class main
user system
group system wifi inet sdcard_rw media_rw diag
oneshot
disabled
service dcvs-sh /vendor/bin/init.qti.dcvs.sh
class late_start
user root
group root system
disabled
oneshot
on property:vendor.dcvs.prop=1
start dcvs-sh

438
rootdir/etc/ueventd.rc Normal file
View File

@ -0,0 +1,438 @@
# Copyright (c) 2012-2015, 2017-2019, 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.
#
# Firmware directory Path
# Below macro will be read by uevent and path will
# be added to search path for firmware loading
firmware_directories /vendor/firmware_mnt/image/
# the DIAG device node is not world writable/readable.
/dev/diag 0660 system oem_2901
/dev/ttydiag0 0660 system oem_2901
/dev/ttydiag1 0660 system oem_2901
/dev/ttydiag2 0660 system oem_2901
/dev/ttydiag3 0660 system oem_2901
/dev/genlock 0666 system system
/dev/wlan 0660 wifi wifi
/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 0660 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 radio radio
/dev/wwan_ioctl 0660 radio radio
/dev/ipaNatTable 0660 radio radio
/dev/rmnet_ctrl 0660 usb usb
/dev/dpl_ctrl 0660 usb usb
/dev/ipa_odl_ctl 0660 radio radio
/dev/ipa_adpl 0660 system oem_2905
/dev/synx_device 0660 root camera
/dev/hab 0666 system system
#permissions for CSVT
/dev/smd11 0660 radio radio
#permsissions for BT/FM
/dev/smd2 0660 bluetooth bluetooth
/dev/smd3 0660 bluetooth bluetooth
/dev/btpower 0660 bluetooth system
#permissions for pta
/dev/pta 0660 system system
/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/at_usb0 0640 radio radio
/dev/at_mdm0 0640 radio radio
/dev/video* 0660 system camera
/dev/cvp* 0660 system camera
/dev/media* 0660 system camera
/dev/v4l-subdev* 0660 system camera
/dev/cci_intf 0660 system camera
/dev/qseecom 0660 system drmrpc
/dev/qce 0660 system drmrpc
/dev/smcinvoke 0660 system drmrpc
/dev/qsee_ipc_irq_spss 0660 system drmrpc
/dev/seemplog 0660 system system
/dev/pft 0660 system drmrpc
/dev/spcom 0660 system system
/dev/spss_utils 0660 system system
/dev/sp_kernel 0660 system system
/dev/sp_nvm 0660 system system
/dev/sp_ssr 0660 system system
/dev/sp_keymaster 0660 system system
/dev/sec_nvm_* 0660 system system
/dev/cryptoapp 0660 system system
/dev/spdaemon_ssr 0660 system system
/dev/iuicc 0660 system system
/dev/iuicc0 0660 system system
/dev/iuicc1 0660 system system
/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/adsprpc-smd-secure 0644 system system
/dev/system_health_monitor 0644 radio system
/dev/mdss_rotator 0664 system system
#QDSS
/dev/byte-cntr 0660 system oem_2902
/dev/mhi_qdss 0660 system oem_2902
/sys/class/qdss_bridge/mhi_qdss mode 0660 system oem_2902
#qg
/dev/qg 0660 system system
/dev/qg_battery 0660 system system
#qvr
/dev/qvr_external_sensor_ioctl 0660 system system
/sys/kernel/qvr_external_sensor/fd 0660 system system
# wlan
/dev/wcnss_wlan 0660 system system
/dev/wcnss_ctrl 0660 system system
/sys/devices/soc/a000000.qcom,wcnss-wlan/net/wlan0/queues/rx-* rps_cpus 0660 system system
/sys/devices/soc/a000000.qcom,wcnss-wlan/net/p2p0/queues/rx-* rps_cpus 0660 system system
/dev/spidev0.0 0660 system audio
/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/sdsprpc-smd 0660 system system
#permissions for audio
/dev/wcd_dsp0_control 0660 system audio
/dev/wcd-dsp-glink 0660 system 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 0660 system audio
/dev/msm_amrwb_in 0660 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/ttyHSL1 0660 system system
/dev/ttyHS1 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/avtimer 0660 system audio
/dev/spidev2.0 0660 system audio
# DVB devices
/dev/dvb/adapter0/demux* 0440 media media
/dev/dvb/adapter0/dvr* 0660 media media
/dev/dvb/adapter0/video* 0660 media media
# Broadcast devices
/dev/tsc_mux0 0660 media media
/dev/tsc_ci0 0660 media media
# sensors
/dev/sensors 0660 system system
/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 root input
/sys/devices/virtual/input/input* pollrate_ms 0660 root input
/sys/devices/virtual/input/input* enable 0660 root input
/sys/devices/virtual/input/input* enable_wakeup 0660 root input
/sys/devices/virtual/input/input* flush 0660 root input
/sys/devices/virtual/input/input* max_latency 0660 root input
/sys/devices/virtual/input/input* poll_delay 0660 root input
/sys/devices/soc/78b7000.i2c/i2c-3/3-0020/input/input* secure_touch 0440 system drmrpc
/sys/devices/soc/78b7000.i2c/i2c-3/3-0020/input/input* secure_touch_enable 0660 system drmrpc
/sys/devices/soc/78b7000.i2c/i2c-3/3-0038/input/input* secure_touch 0440 system drmrpc
/sys/devices/soc/78b7000.i2c/i2c-3/3-0038/input/input* secure_touch_enable 0660 system drmrpc
/sys/devices/soc/78b7000.i2c/i2c-3/3-004b/input/input* secure_touch 0440 system drmrpc
/sys/devices/soc/78b7000.i2c/i2c-3/3-004b/input/input* secure_touch_enable 0660 system drmrpc
/sys/devices/soc/c179000.i2c/i2c-5/5-0020/input/input* secure_touch 0440 system drmrpc
/sys/devices/soc/c179000.i2c/i2c-5/5-0020/input/input* secure_touch_enable 0660 system drmrpc
/sys/devices/platform/soc/a98000.i2c/i2c-2/2-0020/input/input* secure_touch 0440 system drmrpc
/sys/devices/platform/soc/a98000.i2c/i2c-2/2-0020/input/input* secure_touch_enable 0660 system drmrpc
/sys/devices/platform/soc/a84000.i2c/i2c-2/2-0020/input/input* secure_touch 0440 system drmrpc
/sys/devices/platform/soc/a84000.i2c/i2c-2/2-0020/input/input* secure_touch_enable 0660 system drmrpc
# GNSS Device premissions
/dev/gnss_sirf 0660 gps gps
# laser sensor access
/sys/devices/virtual/input/input* enable_ps_sensor 0660 system input
/sys/devices/virtual/input/input* set_delay_ms 0660 system input
/sys/devices/virtual/input/input* do_flush 0660 system input
/dev/laser 0660 system camera
# 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
# wigig
/sys/bus/pci/drivers/wil6210* 0000:01:00.0/wil6210/fst_link_loss 0660 wifi wifi
/sys/bus/pci/drivers/wil6210* 0000:01:00.0/wil6210/thermal_throttling 0660 system system
/sys/bus/pci/drivers/wil6210* 0000:01:00.0/wil6210/snr_thresh 0660 wifi wifi
/sys/bus/pci/drivers/wil6210* 0000:01:00.0/net/wigig0/queues/rx-0/rps_cpus 0660 system system
/sys/bus/pci/drivers/wil6210* 0000:01:00.0/net/wigig0/gro_flush_timeout 0660 system system
/sys/devices/virtual/net/bond0 queues/rx-0/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/qbt* 0660 system system
/sys/class/fts/touch_aoi aoi_set 0660 root system
/sys/class/fts/touch_aoi power_set 0660 root system
#ImproveTouch device
/dev/hbtp_input 0660 system system
/dev/hbtp_vm 0660 system system
# Add device block for FRP
/dev/block/platform/soc/7824900.sdhci/by-name/config 0600 system system
/dev/block/platform/soc/7464900.sdhci/by-name/frp 0600 system system
/dev/block/platform/soc/624000.ufshc/by-name/frp 0600 system system
/dev/block/platform/soc/1da4000.ufshc/by-name/frp 0600 system system
/dev/block/platform/soc/c0c4000.sdhci/by-name/frp 0600 system system
/dev/block/platform/soc/1d84000.ufshc/by-name/frp 0600 system system
/dev/block/platform/soc/7c4000.sdhci/by-name/frp 0600 system system
/dev/block/platform/soc/4744000.sdhci/by-name/frp 0600 system system
/dev/block/platform/soc/4804000.ufshc/by-name/frp 0600 system system
# This is temporary while using SD card for initial bring-up
/dev/block/platform/soc/8804000.sdhci/by-name/frp 0600 system system
# Add device block for MISC
/dev/block/platform/soc/1d84000.ufshc/by-name/misc 0660 root system
# Kmsg device
/dev/kmsg 0620 root system
# LED class devices
/sys/class/leds/red delay_on 0640 system system
/sys/class/leds/red delay_off 0640 system system
/sys/class/leds/red breath 0640 system system
/sys/class/leds/green delay_on 0640 system system
/sys/class/leds/green delay_off 0640 system system
/sys/class/leds/green breath 0640 system system
/sys/class/leds/blue delay_on 0640 system system
/sys/class/leds/blue delay_off 0640 system system
/sys/class/leds/blue breath 0640 system system
# NPU device
/dev/msm_npu 0644 system system
# USB role switch
/sys/class/dual_role_usb/* data_role 0660 system system
/sys/class/dual_role_usb/* power_role 0660 system system
/sys/class/dual_role_usb/* mode 0660 system system
#Memory Offline
/sys/devices/system/memory/memory* state 0660 system system
/sys/devices/virtual/hdcp/msm_hdcp min_level_change 0664 system graphics
# sys-fs display
/sys/class/graphics/fb* hpd 0664 system graphics
/sys/class/graphics/fb* res_info 0664 system graphics
/sys/class/graphics/fb* vendor_name 0664 system graphics
/sys/class/graphics/fb* product_description 0664 system graphics
/sys/class/graphics/fb* video_mode 0664 system graphics
/sys/class/graphics/fb* format_3d 0664 system graphics
/sys/class/graphics/fb* s3d_mode 0664 system graphics
/sys/class/graphics/fb* dynamic_fps 0664 system graphics
/sys/class/graphics/fb* msm_fb_dfps_mode 0664 system graphics
/sys/class/graphics/fb* hdr_stream 0664 system graphics
/sys/class/graphics/fb* cec/enable 0664 system graphics
/sys/class/graphics/fb* cec/logical_addr 0664 system graphics
/sys/class/graphics/fb* cec/rd_msg 0664 system graphics
/sys/class/graphics/fb* pa 0664 system graphics
/sys/class/graphics/fb* cec/wr_msg 0600 system graphics
/sys/class/graphics/fb* hdcp/tp 0664 system graphics
/sys/class/graphics/fb* hdcp2p2/min_level_change 0660 system graphics
/sys/class/graphics/fb* hdmi_audio_cb 0600 audioserver audio
/sys/class/graphics/fb* lineptr_value 0664 system graphics
/sys/class/graphics/fb* msm_fb_persist_mode 0664 system graphics
/sys/class/graphics/fb0 idle_time 0664 system graphics
/sys/class/graphics/fb0 dynamic_fps 0664 system graphics
/sys/class/graphics/fb0 dyn_pu 0664 system graphics
/sys/class/graphics/fb0 modes 0664 system graphics
/sys/class/graphics/fb0 mode 0664 system graphics
/sys/class/graphics/fb0 msm_cmd_autorefresh_en 0664 system graphics
# I2C
/dev/i2c-* 0660 system system
# Egistec fingerprint
/dev/esfp0 0660 system system
# Goodix FPS
/dev/goodix_fp 0664 system system
# Change permission for FPC fingerprint
/sys/class/fingerprint/fpc1020 nav 0440 system system
/sys/class/fingerprint/fpc1020 irq 0440 system system
/sys/class/fingerprint/fpc1020 irq_cnt 0440 system system
/sys/class/fingerprint/fpc1020 dev_enable 0220 system system
/sys/class/fingerprint/fpc1020 vendor 0444 system system
# Motorola: Add for QVR(qvrservice) to access the glass usb device
/dev/bus/usb/001/* 0660 system system
/dev/bus/usb/002/* 0660 system system
# Motorola: Add for HIDRAW to access the glass usb device
/dev/hidraw* 0660 uhid uhid
# NFC ST Driver permissions
/dev/st21nfc 0660 nfc nfc

View File

@ -147,6 +147,17 @@ PRODUCT_PACKAGES += \
android.hardware.health@2.1-impl-qti \ android.hardware.health@2.1-impl-qti \
android.hardware.health@2.1-service android.hardware.health@2.1-service
# Init
PRODUCT_COPY_FILES += \
$(COMMON_PATH)/rootdir/etc/ueventd.rc:$(TARGET_COPY_OUT_VENDOR)/ueventd.rc
$(foreach f,$(wildcard $(COMMON_PATH)/rootdir/etc/init/hw/*.rc),\
$(eval PRODUCT_COPY_FILES += $(f):$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/$(notdir $f)))
$(foreach f,$(wildcard $(COMMON_PATH)/rootdir/etc/init/*.rc),\
$(eval PRODUCT_COPY_FILES += $(f):$(TARGET_COPY_OUT_VENDOR)/etc/init/$(notdir $f)))
$(foreach f,$(wildcard $(COMMON_PATH)/rootdir/bin/*.sh),\
$(eval PRODUCT_COPY_FILES += $(f):$(TARGET_COPY_OUT_VENDOR)/bin/$(notdir $f)))
# IPACM # IPACM
PRODUCT_PACKAGES += \ PRODUCT_PACKAGES += \
ipacm \ ipacm \