initializing tree with aospdtgen just fr skeleton

This commit is contained in:
PROPGSP
2025-06-22 13:42:34 +05:30
commit da7bb29bf7
73 changed files with 14353 additions and 0 deletions

23
rootdir/etc/apanic.rc Normal file
View File

@ -0,0 +1,23 @@
on init
# split minidump and full ramdump
setprop ro.vendor.aee.splict_framdump yes
service vendor.apanic_annotate /vendor/bin/apanic_mtk.sh
class late_start
user root
group log
oneshot
disabled
on property:ro.boot.bootreason=kernel_panic
setprop ro.vendor.boot.apanic.reason "boot"
start vendor.apanic_annotate
on property:ro.boot.bootreason=watchdog
setprop ro.vendor.boot.apanic.reason "boot"
start vendor.apanic_annotate
on property:vendor.debug.mtk.aeev.db=*
setprop ro.vendor.boot.apanic.reason "prop"
setprop ro.vendor.boot.apanic.prop "1"
start vendor.apanic_annotate

View File

@ -0,0 +1,86 @@
on post-fs-data
#
# Connectivity related modules and character device nodes (Begin)
#
#/dev/ttyMT2 for Connectivity BT/FM/GPS usage
chmod 0660 /dev/ttyMT2
chown system system /dev/ttyMT2
# GPS
mkdir /data/vendor/gps 0770 gps system
chown gps gps /dev/stpgps
chown gps gps /dev/stpgps2
chmod 0660 /dev/stpgps
chmod 0660 /dev/stpgps2
# GPS EMI
chmod 666 /dev/gps_emi
# WiFi
mkdir /data/misc/wifi 0770 wifi wifi
mkdir /data/misc/wifi/sockets 0770 wifi wifi
mkdir /data/misc/wpa_supplicant 0770 wifi wifi
#
# Connectivity related device nodes & configuration (end)
#
on boot
#
# Connectivity related services (Begin)
#
# GPS
#service mnld /vendor/bin/mnld
# class main
# user gps
# group gps inet misc sdcard_rw sdcard_r media_rw system radio
# socket mnld stream 660 gps system
#service BGW /vendor/bin/BGW
# user system
# group gps system radio
# class main
service wlan_assistant /vendor/bin/wlan_assistant
class main
user wifi
group system gps inet
#
# Connectivity related services (End)
#
#
# Connectivity related kernel objects (Begin)
#
# load connfem driver
on boot
insmod /vendor/lib/modules/connfem.ko
# load bt_drv
on property:vendor.connsys.driver.ready=yes
insmod /vendor/lib/modules/bt_drv_${ro.vendor.bt.platform}.ko
# load wifi chrdev driver and wlan driver after wmt_loader finish
on property:vendor.connsys.driver.ready=yes
insmod /vendor/lib/modules/${ro.vendor.wlan.chrdev}.ko
insmod /vendor/lib/modules/wlan_drv_${ro.vendor.wlan.gen}.ko
start wlan_assistant
# load fmradio_drv
on property:vendor.connsys.driver.ready=yes
insmod /vendor/lib/modules/fmradio_drv_${ro.vendor.fm.platform}.ko
# load gps_drv
on property:vendor.connsys.driver.ready=yes
insmod /vendor/lib/modules/${ro.vendor.gps.chrdev}.ko
#
# Connectivity related kernel objects (End)
#

View File

@ -0,0 +1,34 @@
import /vendor/etc/init/hw/factory_init.connectivity.common.rc
on boot
#
# Connectivity related services (Begin)
#
# WMT
service wmt_loader /vendor/bin/wmt_loader
user system
group system
oneshot
service wmt_launcher /vendor/bin/wmt_launcher -p /vendor/firmware/
user system
group system
#
# Connectivity related services (End)
#
#
# Connectivity related kernel objects (Begin)
#
# load wmt_drv
on boot
insmod /vendor/lib/modules/wmt_drv.ko
#
# Connectivity related kernel objects (End)
#

View File

@ -0,0 +1,42 @@
import /vendor/etc/init/hw/init.mtkgki.rc
mkdir /data/misc/sensors 0664 system system
service msensord /system/bin/msensord
user system
group system
oneshot
service akmd8963 /system/bin/akmd8963
disabled
user system
group system
on post-fs
# disable HPS
write /proc/hps/enabled 0
chmod 0660 /dev/spm
chown system system /dev/spm
on boot
service spm_script /vendor/bin/spm_loader
user system
group system
oneshot
on property:sys.usb.config=gs1gs3
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor ${sys.usb.vid}
write /sys/class/android_usb/android0/idProduct 2029
write /sys/class/android_usb/android0/f_acm/port_index 2,4
write /sys/devices/platform/mt_usb/saving 1
write /sys/class/android_usb/android0/functions mass_storage,adb,acm
write /sys/class/android_usb/android0/enable 1
start adbd
setprop sys.usb.state ${sys.usb.config}
setprop sys.usb.acm_idx 2,4

890
rootdir/etc/factory_init.rc Normal file
View File

@ -0,0 +1,890 @@
# Copyright (C) 2012 The Android Open Source Project
#
# IMPORTANT: Do not create world writable files or directories.
# This is a common source of Android security bugs.
#
import /system_ext/etc/init/hw/vendor_init_as_system.rc
import ${ro.vendor.rc}factory_init.connectivity.rc
import ${ro.vendor.rc}factory_init.thp.rc
import /init.environ.rc
import /vendor/etc/init/trustonic.rc
import ${ro.vendor.rc}init.nvdata.rc
import /vendor/etc/init/microtrust.rc
import /vendor/etc/init/hw/init.aee.rc
import /system_ext/etc/init/hw/init.aee.rc
import /vendor/etc/init/vendor.mediatek.hardware.mtkpower@1.0-service.rc
import /vendor/etc/init/android.hardware.boot@1.2-service.rc
import /vendor/etc/init/android.hardware.boot@1.2-service-lazy.rc
import /vendor/etc/init/vendor.mediatek.hardware.thp@1.0-service.rc
import /vendor/etc/init/android.hardware.health@2.1-service.rc
#NFC
import /vendor/etc/init/hw/init.stnfc.rc
#copy from system/etc for APEX
import /system/etc/init/apexd.rc
import /system/etc/init/art_apex_boot_integrity.rc
import /system/etc/init/vold.rc
import /vendor/etc/init/hw/factory_init.project.rc
import /system/etc/init/servicemanager.rc
import /system/etc/init/hwservicemanager.rc
import /system/etc/init/android.hidl.allocator@1.0-service.rc
import ${ro.vendor.rc}multi_init.rc
on early-init
# Set init and its forked children's oom_adj.
write /proc/1/oom_score_adj -1000
# Disable sysrq from keyboard
write /proc/sys/kernel/sysrq 0
# Set the security context of /adb_keys if present.
restorecon /adb_keys
# Set the security context of /postinstall if present.
restorecon /postinstall
# Set up linker config subdirectories based on mount namespaces
mkdir /linkerconfig/bootstrap 0755
mkdir /linkerconfig/default 0755
# Generate ld.config.txt for early executed processes
exec -- /system/bin/bootstrap/linkerconfig --target /linkerconfig/bootstrap
chmod 644 /linkerconfig/bootstrap/ld.config.txt
copy /linkerconfig/bootstrap/ld.config.txt /linkerconfig/default/ld.config.txt
chmod 644 /linkerconfig/default/ld.config.txt
# Mount bootstrap linker configuration as current
mount none /linkerconfig/bootstrap /linkerconfig bind rec
start ueventd
# Run apexd-bootstrap so that APEXes that provide critical libraries
# become available. Note that this is executed as exec_start to ensure that
# the libraries are available to the processes started after this statement.
exec_start apexd-bootstrap
# Generate linker config based on apex mounted in bootstrap namespace
update_linker_config
#INTERNAL_START
mount debugfs debugfs /sys/kernel/debug
chmod 0755 /sys/kernel/debug
#INTERNAL_END
# initialize vendor.all.modules.ready to 1 here to prevent NOT GKI project blocked
setprop vendor.all.modules.ready 1
on init
sysclktz 0
# Mix device-specific information into the entropy pool
copy /proc/cmdline /dev/urandom
copy /default.prop /dev/urandom
write /proc/bootprof "INIT: on init start"
# Backward compatibility.
symlink /system/bin /bin
symlink /system/etc /etc
# Backward compatibility.
symlink /sys/kernel/debug /d
# Link /vendor to /system/vendor for devices without a vendor partition.
symlink /system/vendor /vendor
# Temp Backward compatibility
symlink /dev/block/by-name/boot /dev/bootimg
symlink /dev/block/by-name/recovery /dev/recovery
symlink /dev/block/by-name/secro /dev/sec_ro
symlink /dev/block/by-name/kb /dev/kb
symlink /dev/block/by-name/dkb /dev/dkb
symlink /dev/block/by-name/seccfg /dev/seccfg
symlink /dev/block/by-name/proinfo /dev/pro_info
symlink /dev/block/by-name/nvram /dev/nvram
symlink /dev/block/by-name/para /dev/misc
symlink /dev/block/by-name/logo /dev/logo
# Mount cgroup mount point for cpu accounting
mount cgroup none /acct cpuacct
mkdir /acct/uid
# Create energy-aware scheduler tuning nodes
mkdir /dev/stune
mount cgroup none /dev/stune nodev noexec nosuid schedtune
mkdir /dev/stune/foreground
mkdir /dev/stune/background
mkdir /dev/stune/top-app
mkdir /dev/stune/rt
chown system system /dev/stune
chown system system /dev/stune/foreground
chown system system /dev/stune/background
chown system system /dev/stune/top-app
chown system system /dev/stune/rt
chown system system /dev/stune/tasks
chown system system /dev/stune/foreground/tasks
chown system system /dev/stune/background/tasks
chown system system /dev/stune/top-app/tasks
chown system system /dev/stune/rt/tasks
chmod 0664 /dev/stune/tasks
chmod 0664 /dev/stune/foreground/tasks
chmod 0664 /dev/stune/background/tasks
chmod 0664 /dev/stune/top-app/tasks
chmod 0664 /dev/stune/rt/tasks
# Permissions for System Server and daemons.
chown system system /sys/power/autosleep
chown system system /sys/power/state
chown system system /sys/power/wakeup_count
chown radio wakelock /sys/power/wake_lock
chown radio wakelock /sys/power/wake_unlock
chmod 0660 /sys/power/state
chmod 0660 /sys/power/wake_lock
chmod 0660 /sys/power/wake_unlock
chmod 0660 /sys/power/wakeup_count
restorecon_recursive /mnt
# Support legacy paths
symlink /sdcard /mnt/sdcard
mount configfs none /config nodev noexec nosuid
chmod 0770 /config/sdcardfs
chown system package_info /config/sdcardfs
# Mount binderfs
mkdir /dev/binderfs
mount binder binder /dev/binderfs stats=global
chmod 0755 /dev/binderfs
# Mount fusectl
mount fusectl none /sys/fs/fuse/connections
symlink /dev/binderfs/binder /dev/binder
symlink /dev/binderfs/hwbinder /dev/hwbinder
symlink /dev/binderfs/vndbinder /dev/vndbinder
chmod 0666 /dev/binderfs/hwbinder
chmod 0666 /dev/binderfs/binder
chmod 0666 /dev/binderfs/vndbinder
mkdir /mnt/secure 0700 root root
mkdir /mnt/secure/asec 0700 root root
mkdir /mnt/asec 0755 root system
mkdir /mnt/obb 0755 root system
mkdir /mnt/media_rw 0750 root media_rw
mkdir /mnt/user 0755 root root
mkdir /mnt/user/0 0755 root root
mkdir /mnt/expand 0771 system system
mkdir /mnt/appfuse 0711 root root
# Storage views to support runtime permissions
mkdir /mnt/runtime 0700 root root
mkdir /mnt/runtime/default 0755 root root
mkdir /mnt/runtime/default/self 0755 root root
mkdir /mnt/runtime/read 0755 root root
mkdir /mnt/runtime/read/self 0755 root root
mkdir /mnt/runtime/write 0755 root root
mkdir /mnt/runtime/write/self 0755 root root
# Symlink to keep legacy apps working in multi-user world
symlink /storage/self/primary /sdcard
symlink /storage/self/primary /mnt/sdcard
symlink /mnt/user/0/primary /mnt/runtime/default/self/primary
# root memory control cgroup, used by lmkd
mkdir /dev/memcg 0700 root system
mount cgroup none /dev/memcg memory
# app mem cgroups, used by activity manager, lmkd and zygote
mkdir /dev/memcg/apps/ 0755 system system
write /proc/sys/kernel/panic_on_oops 1
write /proc/sys/kernel/hung_task_timeout_secs 0
write /proc/cpu/alignment 4
# scheduler tunables
# Disable auto-scaling of scheduler tunables with hotplug. The tunables
# will vary across devices in unpredictable ways if allowed to scale with
# cpu cores.
write /proc/sys/kernel/sched_tunable_scaling 0
write /proc/sys/kernel/sched_latency_ns 10000000
write /proc/sys/kernel/sched_wakeup_granularity_ns 2000000
write /proc/sys/kernel/sched_child_runs_first 0
write /proc/sys/kernel/randomize_va_space 2
write /proc/sys/vm/mmap_min_addr 32768
write /proc/sys/net/ipv4/ping_group_range "0 2147483647"
write /proc/sys/net/unix/max_dgram_qlen 600
write /proc/sys/kernel/sched_rt_runtime_us 950000
write /proc/sys/kernel/sched_rt_period_us 1000000
# Assign reasonable ceiling values for socket rcv/snd buffers.
# These should almost always be overridden by the target per the
# the corresponding technology maximums.
write /proc/sys/net/core/rmem_max 262144
write /proc/sys/net/core/wmem_max 262144
# reflect fwmark from incoming packets onto generated replies
write /proc/sys/net/ipv4/fwmark_reflect 1
write /proc/sys/net/ipv6/fwmark_reflect 1
# set fwmark on accepted sockets
write /proc/sys/net/ipv4/tcp_fwmark_accept 1
# disable icmp redirects
write /proc/sys/net/ipv4/conf/all/accept_redirects 0
write /proc/sys/net/ipv6/conf/all/accept_redirects 0
#INTERNAL_START
mkdir /mnt/cd-rom 0000 system system
#INTERNAL_END
# enable armv8_deprecated instruction hooks
write /proc/sys/abi/swp 1
# Linux's execveat() syscall may construct paths containing /dev/fd
# expecting it to point to /proc/self/fd
symlink /proc/self/fd /dev/fd
# set RLIMIT_NICE to allow priorities from 19 to -20
setrlimit nice 40 40
start servicemanager
start hwservicemanager
start hidl_memory
# Healthd can trigger a full boot from charger mode by signaling this
# property when the power button is held.
on property:sys.boot_from_charger_mode=1
class_stop charger
trigger late-init
# Load properties from /system/ + /factory after fs mount.
on load_system_props_action
load_system_props
on load_persist_props_action
load_persist_props
start logd
start logd-reinit
# Indicate to fw loaders that the relevant mounts are up.
on firmware_mounts_complete
rm /dev/.booting
# Mount filesystems and start core system services.
on late-init
trigger early-fs
# Mount fstab in init.{$device}.rc by mount_all command. Optional parameter
# '--early' can be specified to skip entries with 'latemount'.
# /system and /vendor must be mounted by the end of the fs stage,
# while /data is optional.
trigger fs
trigger post-fs
# Load properties from /system/ + /factory after fs mount. Place
# this in another action so that the load will be scheduled after the prior
# issued fs triggers have completed.
trigger load_system_props_action
# 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
# 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
on early-fs
# Once metadata has been mounted, we'll need vold to deal with userdata checkpointing
start vold
# mount different fs start
on fs
#USB configfs
mkdir /dev/usb-ffs 0770 shell shell
mkdir /dev/usb-ffs/adb 0770 shell shell
mkdir /config/usb_gadget/g1 0770 shell shell
write /config/usb_gadget/g1/idVendor 0x0E8D
write /config/usb_gadget/g1/bcdDevice 0xFFFF
write /config/usb_gadget/g1/bcdUSB 0x0200
mkdir /config/usb_gadget/g1/strings/0x409 0770
write /config/usb_gadget/g1/strings/0x409/manufacturer "Android"
write /config/usb_gadget/g1/strings/0x409/product "Android"
write /config/usb_gadget/g1/bDeviceClass 0
write /config/usb_gadget/g1/bDeviceSubClass 0
write /config/usb_gadget/g1/bDeviceProtocol 0
mkdir /config/usb_gadget/g1/functions/mass_storage.usb0
mkdir /config/usb_gadget/g1/functions/ffs.adb
mkdir /config/usb_gadget/g1/functions/acm.gs0
mkdir /config/usb_gadget/g1/functions/acm.gs1
mkdir /config/usb_gadget/g1/functions/acm.gs2
mkdir /config/usb_gadget/g1/functions/acm.gs3
mkdir /config/usb_gadget/g1/configs/b.1 0770 shell shell
mkdir /config/usb_gadget/g1/configs/b.1/strings/0x409 0770 shell shell
write /config/usb_gadget/g1/configs/b.1/MaxPower 500
symlink /config/usb_gadget/g1/configs/b.1 /config/usb_gadget/g1/os_desc/b.1
mount functionfs adb /dev/usb-ffs/adb uid=2000,gid=2000
#INTERNAL_START
write /proc/bootprof "INIT:Mount_START"
start vendor.boot-hal-1-2
mount_all --early
write /proc/bootprof "INIT:Mount_END"
#INTERNAL_END
# mount different fs end
on post-fs
start logd
start light-default
start system_suspend
start merged_hal_service
start capi-2-0
start health-hal-2-1
# Once everything is setup, no need to modify /.
# The bind+ro combination avoids modifying any other mount flags.
# mount rootfs rootfs / remount bind ro
# Mount shared so changes propagate into child namespaces
mount rootfs rootfs / shared rec
# Mount default storage into root namespace
mount none /mnt/runtime/default /storage bind rec
mount none none /storage slave rec
# Make sure /sys/kernel/debug (if present) is labeled properly
# Note that tracefs may be mounted under debug, so we need to cross filesystems
restorecon --recursive --cross-filesystems /sys/kernel/debug
# Support legacy paths
symlink /sdcard /storage/sdcard0
chown system system /system/data
mkdir /system/cache 0770 system cache
# We restorecon /cache in case the cache partition has been reset.
restorecon_recursive /cache
# Same reason as /data above
chown system cache /cache
chmod 0770 /cache
# This may have been created by the recovery system with odd permissions
chown system cache /cache/recovery
chmod 0770 /cache/recovery
#change permissions on vmallocinfo so we can grab it from bugreports
chown root log /proc/vmallocinfo
chmod 0440 /proc/vmallocinfo
#change permissions on kmsg & sysrq-trigger so bugreports can grab kthread stacks
chown root system /proc/kmsg
chmod 0440 /proc/kmsg
chown root system /proc/sysrq-trigger
chmod 0220 /proc/sysrq-trigger
chown system log /proc/last_kmsg
chmod 0440 /proc/last_kmsg
# make the selinux kernel policy world-readable
chmod 0444 /sys/fs/selinux/policy
# create the lost+found directories, so as to enforce our permissions
mkdir /cache/lost+found 0770 root root
#INTERNAL_START
mkdir /cache/recovery 0770 system system
chown system system /mnt/vendor/protect_f
chmod 0770 /mnt/vendor/protect_f
chown system system /mnt/vendor/protect_s
chmod 0770 /mnt/vendor/protect_s
chown system system /mnt/vendor/nvcfg
chmod 0771 /mnt/vendor/nvcfg
restorecon_recursive /mnt/vendor/nvcfg
chown root system /mnt/vendor/nvdata
chmod 0771 /mnt/vendor/nvdata
mkdir /mnt/vendor/nvdata/media 0771 media audio
restorecon_recursive /mnt/vendor/nvdata
#INTERNAL_END
on late-fs
# HALs required before storage encryption can get unlocked (FBE/FDE)
class_start early_hal
wait_for_prop hwservicemanager.ready "true"
start vendor.keymaster-3-0
start vendor.keymaster-3-0-trustonic
start vendor.keymaster-4-0
start vendor.keymaster-4-0-trustonic
start vendor.keymaster-4-0-beanpod
start vendor.keymaster-4-1-beanpod
start vendor.keymint-default
start keymaster_attestation-1-1
exec_start wait_for_keymaster
mount_all --late
on post-fs-data
write /proc/bootprof "INIT:post-fs-data"
wait_for_prop vendor.all.modules.ready 1
write /proc/bootprof "modprobe: Load_Module_DONE"
#Thermal
mkdir /data/.tp/ 0775 system system
# symlink to bugreport storage location
rm /data/bugreports
symlink /data/user_de/0/com.android.shell/files/bugreports /data/bugreports
# VIA flashlessd service
mkdir /data/flashless 0770 radio nvram
mkdir /mnt/vendor/nvdata/md_via 0770 root nvram
chmod 0660 /dev/ttyMT4
chown radio radio /dev/ttyMT4
chmod 0660 /dev/vmodem
chown radio radio /dev/vmodem
#VIA pppd service
mkdir /data/pppd_via 0770 radio system
# md32 boot
chown root system /dev/md32
chmod 0440 /dev/md32
chown root system /sys/class/misc/md32/md32_mobile_log
chmod 0660 /sys/class/misc/md32/md32_mobile_log
write /sys/class/misc/md32/md32_boot 1
# dhcp server
mkdir /data/misc/dhcp 0770 dhcp dhcp
chown dhcp dhcp /data/misc/dhcp
# device info interface
chmod 0440 /dev/devmap
chown root system /dev/devmap
#change partition permission
exec /vendor/etc/partition_permission.sh
#INTERNAL_START
#SeLinux
mkdir /data/ccci_cfg 0770 system radio
restorecon /data/ccci_cfg
restorecon_recursive /mnt/vendor/protect_f
restorecon_recursive /mnt/vendor/protect_s
## Custom pos-fs area (START)
# Please add custom fs operation below
# Touch Panel
chown root diag /sys/module/tpd_setting/parameters/tpd_calmat
chown root diag /sys/module/tpd_setting/parameters/tpd_em_debounce_time
chown root diag /sys/module/tpd_debug/parameters/tpd_em_log
chown root diag /sys/module/tpd_debug/parameters/tpd_em_log_to_fs
# RTC
mkdir /data/misc/rtc 0770 system system
# Modem related device nodes
mkdir /mnt/vendor/nvdata/md 0770 root system
mkdir /mnt/vendor/nvdata/md2 0770 root system
mkdir /mnt/vendor/nvdata/md3 0770 root system
mkdir /data/md3 0770 root system
chown radio radio /sys/kernel/ccci/boot
#set mlock limit to infinate (for m4u operation)
setrlimit 8 -1 -1
#VideoCodec
chmod 0666 /dev/Vcodec
mkdir /data/amit/
# GPIO
chmod 0666 /dev/mtgpio
chmod 0666 /dev/exm0
#NFC
rm /data/mtknfc_server
## Custom pos_fs area (END)
#INTERNAL_END
# Separate location for storing security policy files on data
mkdir /data/security 0711 system system
# It is recommended to put unnecessary data/ initialization from post-fs-data
# to start-zygote in device's init.rc to unblock zygote start.
on zygote-start && property:ro.crypto.state=unencrypted
# A/B update verifier that marks a successful boot.
exec_start update_verifier_nonencrypted
start netd
start zygote
start zygote_secondary
on zygote-start && property:ro.crypto.state=unsupported
# A/B update verifier that marks a successful boot.
exec_start update_verifier_nonencrypted
start netd
start zygote
start zygote_secondary
on zygote-start && property:ro.crypto.state=encrypted && property:ro.crypto.type=file
# A/B update verifier that marks a successful boot.
exec_start update_verifier_nonencrypted
start netd
start zygote
start zygote_secondary
on boot
setprop sys.usb.configfs 1
setprop sys.usb.controller "11201000.usb0"
setprop sys.usb.ffs.aio_compat 1
setprop vendor.usb.clear boot
# TTY
chmod 0660 /dev/ttyGS0
chown system radio /dev/ttyGS0
chmod 0660 /dev/ttyGS1
chown system radio /dev/ttyGS1
# For BT relayer
chown bluetooth radio /dev/ttyGS2
chmod 0660 /dev/ttyGS2
# For MD Logger
chown system radio /dev/ttyGS3
chmod 0660 /dev/ttyGS3
#VIA device property
setprop viatel.device.asci uart.4.ttyMT
setprop viatel.device.fls sdio.3.ttySDIO
setprop viatel.device.at sdio.4.ttySDIO
setprop viatel.device.data sdio.1.ttySDIO
# For backlight
chmod 0664 /sys/class/leds/lcd-backlight/brightness
chown system system /sys/class/leds/lcd-backlight/brightness
# Power Manager
write /sys/power/pm_freeze_timeout 2000
# basic network init
ifup lo
hostname localhost
domainname localdomain
#INTERNAL_START
# Start default class, this line is very important!!
class_start default
#INTERNAL_END
# Start standard binderized HAL daemons
class_start hal
class_start core
on nonencrypted
class_start main
class_start late_start
on property:vold.decrypt=trigger_default_encryption
start defaultcrypto
on property:vold.decrypt=trigger_encryption
start surfaceflinger
start encrypt
on property:vold.decrypt=trigger_reset_main
class_reset main
on property:vold.decrypt=trigger_load_persist_props
load_persist_props
start logd
start logd-reinit
on property:vold.decrypt=trigger_post_fs_data
trigger post-fs-data
trigger zygote-start
on property:vold.decrypt=trigger_restart_min_framework
# A/B update verifier that marks a successful boot.
exec_start update_verifier
class_start main
on property:vold.decrypt=trigger_restart_framework
stop surfaceflinger
start surfaceflinger
# A/B update verifier that marks a successful boot.
exec_start update_verifier
class_start main
class_start late_start
on property:vold.decrypt=trigger_shutdown_framework
class_reset late_start
class_reset main
# One shot invocation to deal with encrypted volume.
on defaultcrypto
exec - root -- /system/bin/vdc --wait cryptfs mountdefaultencrypted
# vold will set vold.decrypt to trigger_restart_framework (default
# encryption) or trigger_restart_min_framework (other encryption)
# One shot invocation to encrypt unencrypted volumes
# mtk modification:
# To speed up the booting in meta/factory mode, we don't encrypt the device.
# And then handle it as 'unencrypted' state.
on encrypt
mount ext4 /dev/block/by-name/userdata /data noatime nosuid nodev noauto_da_alloc discard wait
setprop vendor.crypto.fake_encrypt 1
setprop vold.post_fs_data_done 0
trigger post-fs-data
on property:vendor.crypto.fake_encrypt=1 && property:vold.post_fs_data_done=1
trigger load_persist_props_action
# setprop ro.crypto.state unencrypted
setprop vendor.soter.teei.crypto.state unencrypted
exec_start update_verifier
class_start main
class_start late_start
start mount_all_storages
service ueventd /system/bin/ueventd
class core
critical
seclabel u:r:ueventd:s0
service console /system/bin/sh
class core
console
disabled
user shell
group shell log readproc
seclabel u:r:shell:s0
on property:sys.powerctl=*
powerctl ${sys.powerctl}
#Log too much setting
on property:ro.vendor.mtklog_internal=1
setprop vendor.logmuch.value 10000
on property:ro.debuggable=1
# Give writes to anyone for the trace folder on debug builds.
# The folder is used to store method traces.
chmod 0773 /data/misc/trace
start console
# adbd is controlled via property triggers in init.<platform>.usb.rc
service adbd /apex/com.android.adbd/bin/adbd --root_seclabel=u:r:su:s0
class core
socket adbd seqpacket 660 system system
disabled
override
seclabel u:r:adbd:s0
#INTERNAL_START
## Custom service area (START)
# Please add custom service below
service thermal_manager /vendor/bin/thermal_manager
user root
group system
oneshot
service permission_check /vendor/bin/permission_check
user root
group system radio
oneshot
service ccci_mdinit /vendor/bin/ccci_mdinit 0
user system
group radio system
oneshot
service ccci_rpcd /vendor/bin/ccci_rpcd 0
user radio
group radio system
oneshot
service fuelgauged /vendor/bin/fuelgauged
class main
user system
group system
service mdlogger /system/bin/mdlogger
class main
user shell
group shell system radio sdcard_rw inet
disabled
oneshot
service dualmdlogger /system/bin/dualmdlogger
class main
user shell
group shell system radio sdcard_rw inet
disabled
oneshot
service factory_no_image /vendor/bin/factory
user root
group radio system wifi media gps audio bluetooth wakelock nfc
capabilities BLOCK_SUSPEND NET_RAW NET_ADMIN SYS_ADMIN SYS_BOOT
service emdlogger1 /system/system_ext/bin/emdlogger1
class main
user shell
group system shell radio sdcard_rw inet sdcard_r media_rw
disabled
oneshot
service emdlogger2 /system/bin/emdlogger2
class main
user shell
group system shell radio sdcard_rw inet sdcard_r media_rw
disabled
oneshot
service emdlogger3 /system/bin/emdlogger3
class main
user shell
group system shell radio sdcard_rw inet sdcard_r media_rw
disabled
oneshot
service emdlogger5 /system/bin/emdlogger5
class main
user shell
group system shell radio sdcard_rw inet sdcard_r media_rw
disabled
oneshot
service emdlogger6 /system/bin/emdlogger6
class main
user shell
group system shell radio sdcard_rw inet sdcard_r media_rw
disabled
oneshot
## Custom service area (END)
on property:vendor.usb.clear=1 && property:sys.usb.configfs=1
stop adbd
setprop sys.usb.ffs.ready 0
write /config/usb_gadget/g1/UDC "none"
write /config/usb_gadget/g1/bDeviceClass 0
write /config/usb_gadget/g1/bDeviceSubClass 0
write /config/usb_gadget/g1/bDeviceProtocol 0
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
write /sys/devices/platform/mt_usb/saving 0
setprop vendor.usb.clear 2
start adbd
#mass_storage,adb,acm
on property:ro.boot.usbconfig=0 && property:sys.usb.configfs=1 && property:vendor.usb.clear=boot
start adbd
on property:sys.usb.ffs.ready=1 && property:ro.boot.usbconfig=0 && \
property:sys.usb.configfs=1 && property:vendor.usb.clear=boot
write /config/usb_gadget/g1/UDC "none"
write /config/usb_gadget/g1/strings/0x409/serialnumber ${ro.serialno}
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "adb_acm"
write /config/usb_gadget/g1/idProduct 0x2006
symlink /config/usb_gadget/g1/functions/mass_storage.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
symlink /config/usb_gadget/g1/functions/acm.gs0 /config/usb_gadget/g1/configs/b.1/f3
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop vendor.usb.acm_idx "1"
on property:ro.boot.usbconfig=1 && property:sys.usb.configfs=1 && property:vendor.usb.clear=boot
start adbd
on property:sys.usb.ffs.ready=1 && property:ro.boot.usbconfig=1 && \
property:sys.usb.configfs=1 && property:vendor.usb.clear=boot
write /config/usb_gadget/g1/UDC "none"
write /config/usb_gadget/g1/strings/0x409/serialnumber ${ro.serialno}
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "adb_acm"
write /config/usb_gadget/g1/idProduct 0x2006
symlink /config/usb_gadget/g1/functions/mass_storage.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
symlink /config/usb_gadget/g1/functions/acm.gs0 /config/usb_gadget/g1/configs/b.1/f3
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop vendor.usb.acm_idx "1"
#singloe modem comport for factory mode
on property:sys.usb.config=gs3,dual_acm && property:sys.usb.configfs=1
setprop vendor.usb.clear 1
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=gs3,dual_acm && \
property:vendor.usb.clear=2 && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "gs3_dual_acm"
write /config/usb_gadget/g1/idProduct 0x202E
write /sys/devices/platform/mt_usb/saving 1
symlink /config/usb_gadget/g1/functions/mass_storage.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
symlink /config/usb_gadget/g1/functions/acm.gs0 /config/usb_gadget/g1/configs/b.1/f3
symlink /config/usb_gadget/g1/functions/acm.gs3 /config/usb_gadget/g1/configs/b.1/f4
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
setprop vendor.usb.clear 0
setprop vendor.usb.acm_idx "1,4"
on property:sys.usb.config=gs1gs3,dual_acm && property:sys.usb.configfs=1
setprop vendor.usb.clear 1
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=gs1gs3,dual_acm && \
property:vendor.usb.clear=2 && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "gs1gs3_dual_acm"
write /config/usb_gadget/g1/idProduct 0x202F
write /sys/devices/platform/mt_usb/saving 1
symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/acm.gs0 /config/usb_gadget/g1/configs/b.1/f2
symlink /config/usb_gadget/g1/functions/acm.gs1 /config/usb_gadget/g1/configs/b.1/f3
symlink /config/usb_gadget/g1/functions/acm.gs3 /config/usb_gadget/g1/configs/b.1/f4
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
setprop vendor.usb.clear 0
setprop vendor.usb.acm_idx "1,2,4"
on property:sys.usb.config=gs1gs3 && property:sys.usb.configfs=1
setprop vendor.usb.clear 1
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=gs1gs3 && \
property:vendor.usb.clear=2 && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "gs1gs3"
write /config/usb_gadget/g1/idProduct 0x2029
write /sys/devices/platform/mt_usb/saving 1
symlink /config/usb_gadget/g1/functions/mass_storage.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
symlink /config/usb_gadget/g1/functions/acm.gs1 /config/usb_gadget/g1/configs/b.1/f3
symlink /config/usb_gadget/g1/functions/acm.gs3 /config/usb_gadget/g1/configs/b.1/f4
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop vendor.usb.clear 0
setprop vendor.usb.acm_idx "1,4"
# MTK fast charging support
on property:persist.vendor.mediatek.fast_charging.support=*
write /sys/devices/platform/charger/fast_chg_indicator ${persist.vendor.mediatek.fast_charging.support}
#INTERNAL_END

View File

@ -0,0 +1 @@
/dev/block/zram0 none swap defaults zramsize=75%,max_comp_streams=8,zram_backingdev_size=prop

2
rootdir/etc/init.aee.rc Normal file
View File

@ -0,0 +1,2 @@
on init
write /proc/aed/generate-oops aee0

View File

@ -0,0 +1,67 @@
on early-init
# boot perf. tune
write /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq 2000000
write /sys/devices/system/cpu/cpufreq/policy6/scaling_min_freq 2200000
write /sys/class/devfreq/mtk-dvfsrc-devfreq/userspace/set_freq 5500000000
on charger
write /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq 0
write /sys/devices/system/cpu/cpufreq/policy6/scaling_min_freq 0
write /sys/class/devfreq/mtk-dvfsrc-devfreq/userspace/set_freq 0
on post-fs-data && property:ro.bootmode=charger
# set governor.
write /sys/devices/system/cpu/cpufreq/policy0/scaling_governor sugov_ext
write /sys/devices/system/cpu/cpufreq/policy6/scaling_governor sugov_ext
write /proc/sys/kernel/sched_util_clamp_min_rt_default 0
# restore boot perf.
write /proc/sys/kernel/sched_migration_cost_ns 200000
write /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq 0
write /sys/devices/system/cpu/cpufreq/policy6/scaling_min_freq 0
write /sys/class/devfreq/mtk-dvfsrc-devfreq/userspace/set_freq 0
write /dev/cpuctl/system/cpu.uclamp.min 0
write /dev/cpuctl/system/cpu.uclamp.latency_sensitive 0
write /dev/cpuctl/system-background/cpu.uclamp.min 0
write /dev/cpuctl/system-background/cpu.uclamp.latency_sensitive 0
write /dev/cpuctl/foreground/cpu.uclamp.min 0
write /dev/cpuctl/foreground/cpu.uclamp.latency_sensitive 0
write /dev/cpuctl/top-app/cpu.uclamp.min 0
write /dev/cpuctl/top-app/cpu.uclamp.latency_sensitive 0
write /dev/cpuctl/background/cpu.uclamp.min 0
write /dev/cpuctl/background/cpu.uclamp.latency_sensitive 0
on boot
# boot perf. tune
write /dev/cpuctl/system/cpu.uclamp.min 100
write /dev/cpuctl/system/cpu.uclamp.latency_sensitive 1
write /dev/cpuctl/system-background/cpu.uclamp.min 100
write /dev/cpuctl/system-background/cpu.uclamp.latency_sensitive 1
write /dev/cpuctl/foreground/cpu.uclamp.min 100
write /dev/cpuctl/foreground/cpu.uclamp.latency_sensitive 1
write /dev/cpuctl/top-app/cpu.uclamp.min 100
write /dev/cpuctl/top-app/cpu.uclamp.latency_sensitive 1
write /dev/cpuctl/background/cpu.uclamp.min 100
write /dev/cpuctl/background/cpu.uclamp.latency_sensitive 1
on property:sys.boot_completed=1
write /sys/devices/system/cpu/cpufreq/policy0/scaling_governor sugov_ext
write /sys/devices/system/cpu/cpufreq/policy6/scaling_governor sugov_ext
write /proc/sys/kernel/sched_util_clamp_min_rt_default 0
write /proc/sys/kernel/sched_migration_cost_ns 200000
# restore boot perf. tune
write /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq 0
write /sys/devices/system/cpu/cpufreq/policy6/scaling_min_freq 0
write /sys/class/devfreq/mtk-dvfsrc-devfreq/userspace/set_freq 0
write /dev/cpuctl/system/cpu.uclamp.min 0
write /dev/cpuctl/system/cpu.uclamp.latency_sensitive 0
write /dev/cpuctl/system-background/cpu.uclamp.min 0
write /dev/cpuctl/system-background/cpu.uclamp.latency_sensitive 0
write /dev/cpuctl/foreground/cpu.uclamp.min 0
write /dev/cpuctl/foreground/cpu.uclamp.latency_sensitive 0
write /dev/cpuctl/top-app/cpu.uclamp.min 0
write /dev/cpuctl/top-app/cpu.uclamp.latency_sensitive 0
write /dev/cpuctl/background/cpu.uclamp.min 0
write /dev/cpuctl/background/cpu.uclamp.latency_sensitive 0

View File

@ -0,0 +1,83 @@
# MTK connectivity .rc configure
on post-fs-data
#
# Connectivity related device nodes & configuration (begin)
#
#/dev/ttyMT2 for Connectivity BT/FM/GPS usage
chmod 0660 /dev/ttyMT2
chown system system /dev/ttyMT2
#/dev/ttyMT1 for GPS 3337 usage
chmod 0660 /dev/ttyMT1
chown system system /dev/ttyMT1
# GPS
mkdir /data/vendor/gps 0770 gps system
mkdir /data/vendor/log 0770 gps system
mkdir /data/vendor/log/gps 0770 gps system
# GPS EMI
chmod 0660 /dev/gps_emi
# WiFi
mkdir /data/vendor/wifi 0770 wifi wifi
mkdir /data/vendor/wifi/wpa 0770 wifi wifi
mkdir /data/vendor/wifi/wpa/sockets 0770 wifi wifi
# BT relayer mode used VCOM
chown bluetooth bluetooth /dev/ttyGS2
chmod 0660 /dev/ttyGS2
#
# Connectivity related device nodes & configuration (end)
#
on boot
#
# Connectivity related services (Begin)
#
# GPS
service mnld /vendor/bin/mnld
class main
user gps
capabilities WAKE_ALARM
group gps inet misc sdcard_rw sdcard_r media_rw system radio wakelock
socket mnld stream 660 gps system
# GPS Debug Process
service lbs_dbg /system/bin/lbs_dbg
class main
user shell
group log system gps inet misc sdcard_rw sdcard_r media_rw radio
socket lbs_dbg stream 660 gps system
on property:persist.vendor.em.dy.debug=1
stop lbs_dbg
#service BGW /vendor/bin/BGW
# user system
# group gps system radio
# class main
# Wlan
#service wpa_supplicant /vendor/bin/hw/wpa_supplicant \
# -g@android:wpa_wlan0
# 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
# socket wpa_wlan0 dgram 660 wifi wifi
# class main
# disabled
# oneshot
#
# Connectivity related services (End)
#

View File

@ -0,0 +1,4 @@
# MTK connectivity .rc configure
import /vendor/etc/init/hw/init_connectivity.rc
import /vendor/etc/init/hw/init.connectivity.common.rc

View File

@ -0,0 +1,14 @@
on post-fs
chown system system /mnt/vendor/tzapp
chmod 0770 /mnt/vendor/tzapp
restorecon_recursive /mnt/vendor/tzapp
service trustlet_backup /vendor/bin/init.mmi.backup.trustlet.sh
class main
user system
group system
oneshot
disabled
on property:sys.boot_completed=1
start trustlet_backup

View File

@ -0,0 +1,25 @@
import /vendor/etc/init/hw/init.mmi.backup.trustlet.rc
#insmod usbnet.ko when on factory mode
on early-init && property:ro.boot.atm=enable && property:ro.bootmode=mot-factory
insmod /vendor/lib/modules/moto_f_usbnet.ko
on early-init
insmod /vendor/lib/modules/mmi_info.ko
on early-boot && property:ro.vendor.build.motfactory=1
wait /sys/devices/platform/moto_chg_tcmd/force_chg_usb_suspend
chown system system /sys/devices/platform/moto_chg_tcmd/force_chg_usb_suspend
on post-fs-data
# for batt_health server
mkdir /mnt/vendor/persist/batt_health 0770 vendor_pwric vendor_pwric
on property:sys.boot_completed=1 && property:ro.build.type=userdebug
start vendor.batt_health
on charger && property:ro.build.type=userdebug
start vendor.batt_health
service vendor.batt_health /vendor/bin/batt_health
class late_start
user vendor_pwric
group vendor_pwric cache net_admin log system
disabled

View File

@ -0,0 +1,210 @@
on early-init
insmod /vendor/lib/modules/sensors_class.ko
insmod /vendor/lib/modules/sx937x_sar.ko
insmod /vendor/lib/modules/bq25980_mmi.ko
insmod /vendor/lib/modules/mmi_decrete_charger_cp_qc3p.ko
insmod /vendor/lib/modules/moto_mmap_fault.ko
exec_background u:r:vendor_modprobe:s0 -- /vendor/bin/modprobe -a -d /vendor/lib/modules qpnp_adaptive_charge leds-gpio pn557
exec u:r:vendor_modprobe:s0 -- /vendor/bin/modprobe -r -d /vendor/lib/modules zram
on post-fs-data
# calibration
mkdir /data/vendor/sensor 0774 system system
# Sensor
chmod 0660 /dev/hf_manager
chown system system /dev/hf_manager
# config fingerprint
mkdir /data/vendor/.fps 0770 system vendor_fingerp
mkdir /mnt/vendor/persist/fps 0770 system system
mkdir /data/vendor/egis 0770 system vendor_fingerp
mkdir /data/vendor/egis/cqa 0770 system vendor_fingerp
mkdir /mnt/vendor/persist/egis 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
service vendor.modem-rfs-sh /vendor/bin/init.mmi.modem-rfs.sh loop 600
class late_start
user root
group log system radio
oneshot
on late-init
#moto algo params
chmod 0660 /sys/bus/platform/drivers/mtk_nanohub/algo_params
chown system system /sys/bus/platform/drivers/mtk_nanohub/algo_params
chown system system /sys/class/sensors/capsense_bottom_left/enable
chown system system /sys/class/sensors/capsense_bottom_left/poll_delay
chown system system /sys/class/sensors/capsense_bottom_right/enable
chown system system /sys/class/sensors/capsense_bottom_right/poll_delay
chown system system /sys/class/sensors/capsense_top_left/enable
chown system system /sys/class/sensors/capsense_top_left/poll_delay
chown system system /sys/class/sensors/capsense_top_mid/enable
chown system system /sys/class/sensors/capsense_top_mid/poll_delay
chown system system /sys/class/sensors/capsense_top_right/enable
chown system system /sys/class/sensors/capsense_top_right/poll_delay
exec u:r:vendor_modprobe:s0 -- /vendor/bin/modprobe -a -d /vendor/lib/modules moto_mm moto_swap
service capsense_reset /vendor/bin/capsense_reset
class core
user system
group system input
disabled
on property:sys.boot_completed=1
start capsense_reset
# Turn on led to indicate device on in factory mode
on property:ro.bootmode=mot-factory
write /sys/class/leds/charging/brightness 255
on early-boot
# Permission for Health Storage HAL
chown system system /sys/devices/platform/soc/112b0000.ufshci/manual_gc
chown system system /sys/devices/platform/soc/112b0000.ufshci/ufshid/trigger
service nxpnfcinfo /system/vendor/bin/nxpnfcinfo
class late_start
group nfc
user system
oneshot
on property:ro.vendor.hw.nfc=ese_nq
insmod /vendor/lib/modules/nxp_i2c.ko
insmod /vendor/lib/modules/nxp_ese.ko
wait /dev/nq-nci
chown nfc nfc /dev/nq-nci
chmod 0666 /dev/nq-nci
wait /dev/p73
chown secure_element secure_element /dev/p73
chmod 0666 /dev/p73
on property:ro.vendor.hw.nfc=samsung
insmod /vendor/lib/modules/sec_nfc.ko
wait /dev/sec-nfc
chown nfc nfc /dev/sec-nfc
chmod 0770 /dev/sec-nfc
on boot
write /sys/class/i2c-dev/i2c-9/device/9-0030/wireless_fw_update 1
# Set wls perms for HAL
chown system system /sys/class/power_supply/wireless/device/pen_control
chown system system /sys/class/power_supply/wireless/device/tx_mode
chown system system /sys/class/power_supply/wireless/device/wls_input_current_limit
chown system system /sys/class/power_supply/wireless/device/folio_mode
chmod 0660 /sys/class/power_supply/wireless/device/pen_control
chmod 0660 /sys/class/power_supply/wireless/device/tx_mode
chmod 0660 /sys/class/power_supply/wireless/device/wls_input_current_limit
chmod 0660 /sys/class/power_supply/wireless/device/folio_mode
# change permission for capsensor
chown system system /sys/class/capsense/reset
chown system system /sys/class/capsense/int_state
chown radio system /sys/class/capsense/reg
chown radio system /sys/class/capsense/fw_download_status
chmod 0660 /sys/class/capsense/reset
chmod 0660 /sys/class/capsense/int_state
chmod 0660 /sys/class/capsense/reg
chmod 0660 /sys/class/capsense/fw_download_status
# change dir permission
mkdir /data/vendor/camera_dump
chown root camera /data/vendor/camera_dump
chmod 0770 /data/vendor/camera_dump
# Change ownership and permission for cp-standalone factory testing
chown system system /sys/class/power_supply/cp-standalone/voltage_now
chown system system /sys/class/power_supply/cp-standalone/device/force_chg_auto_enable
chmod 0644 /sys/class/power_supply/cp-standalone/voltage_now
# Set adaptive charging perms for HAL
chown system system /sys/module/qpnp_adaptive_charge/parameters/upper_limit
chown system system /sys/module/qpnp_adaptive_charge/parameters/lower_limit
# touch api
chown system system /sys/class/touchscreen/primary/interpolation
chmod 0660 /sys/class/touchscreen/primary/interpolation
chown system system /sys/class/touchscreen/primary/first_filter
chmod 0660 /sys/class/touchscreen/primary/first_filter
chown system system /sys/class/touchscreen/primary/edge
chmod 0660 /sys/class/touchscreen/primary/edge
chown system system /sys/class/touchscreen/primary/gesture
chmod 0660 /sys/class/touchscreen/primary/gesture
chmod 0664 /proc/cts_tool
write /sys/block/sdc/queue/scheduler bfq
write /sys/block/sdc/queue/iosched/slice_idle 0
write /proc/sys/vm/dirty_background_bytes 26214400
write /proc/sys/vm/dirty_bytes 104857600
on fs
exec_background u:r:vendor_modprobe:s0 -- /vendor/bin/modprobe -a -d /vendor/lib/modules mmi_relay nova_0flash_mmi_v2 focaltech_0flash_mmi_v2 ilitek_v3_mmi
# camera eeprom calibration
on property:sys.boot_completed=1
chmod 0644 /data/vendor/camera_dump/mot_gt24p128f_ov50d_eeprom.bin
chmod 0644 /data/vendor/camera_dump/mot_gt24p128f_s5kjns_eeprom.bin
chmod 0644 /data/vendor/camera_dump/serial_number_main.bin
chmod 0644 /data/vendor/camera_dump/mot_gt24p64ba2_hi1634q_eeprom.bin
chmod 0644 /data/vendor/camera_dump/mot_gt24p64ba2_s5k3p9sp04_eeprom.bin
chmod 0644 /data/vendor/camera_dump/serial_number_front.bin
chmod 0644 /data/vendor/camera_dump/mot_cancunf_s5k4h7_otp.bin
chmod 0644 /data/vendor/camera_dump/serial_number_wide.bin
chmod 0644 /data/vendor/camera_dump/mot_cancunf_sc202acs_otp.bin
on moto-post-fs-data-fs-tune
write /sys/block/${dev.mnt.dev.system_ext}/queue/read_ahead_kb 2048
write /sys/block/${dev.mnt.dev.vendor}/queue/read_ahead_kb 2048
write /sys/block/${dev.mnt.dev.product}/queue/read_ahead_kb 2048
write /sys/block/${dev.mnt.dev.data}/queue/read_ahead_kb 2048
write /sys/block/${dev.mnt.dev.root}/queue/read_ahead_kb 2048
write /sys/block/${dev.mnt.dev.vendor_dlkm}/queue/read_ahead_kb 2048
on moto-boot-completed-fs-tune
write /sys/block/dm-0/queue/read_ahead_kb 512
write /sys/block/dm-1/queue/read_ahead_kb 512
write /sys/block/dm-2/queue/read_ahead_kb 512
write /sys/block/dm-3/queue/read_ahead_kb 512
write /sys/block/dm-4/queue/read_ahead_kb 512
write /sys/block/dm-5/queue/read_ahead_kb 512
write /sys/block/${dev.mnt.dev.system_ext}/queue/read_ahead_kb 512
write /sys/block/${dev.mnt.dev.vendor}/queue/read_ahead_kb 512
write /sys/block/${dev.mnt.dev.product}/queue/read_ahead_kb 512
write /sys/block/${dev.mnt.dev.data}/queue/read_ahead_kb 512
write /sys/block/${dev.mnt.dev.root}/queue/read_ahead_kb 512
write /sys/block/${dev.mnt.dev.vendor_dlkm}/queue/read_ahead_kb 512
# === DEBUGGING FEATURE ===
# Redirect LOG[E|W|I] logs to uart in case system server keeps rebooting without adb connection
# Pass logcat buffer names to androidboot.loge2uart by cmdl under fastboot.
# For example: fastboot oem config cmdl "androidboot.loge2uart=system,main"
# Of course, console must be enabled to make this work
service loge2uart /system/bin/logcat -b ${ro.boot.loge2uart} -v threadtime -f /dev/ttyS0 *:E
user root
group root
disabled
service logw2uart /system/bin/logcat -b ${ro.boot.logw2uart} -v threadtime -f /dev/ttyS0 *:W
user root
group root
disabled
service logi2uart /system/bin/logcat -b ${ro.boot.logi2uart} -v threadtime -f /dev/ttyS0 *:I
user root
group root
disabled
on late-init && property:ro.boot.loge2uart=*
setprop persist.vendor.uartconsole.enable 1
start loge2uart
on late-init && property:ro.boot.logw2uart=*
setprop persist.vendor.uartconsole.enable 1
start logw2uart
on late-init && property:ro.boot.logi2uart=*
setprop persist.vendor.uartconsole.enable 1
start logi2uart

314
rootdir/etc/init.mmi.rc Normal file
View File

@ -0,0 +1,314 @@
# Test commands
import /vendor/etc/init/hw/init.mmi.tcmd.rc
import /vendor/etc/init/hw/apanic.rc
# Chipset-specific file
import /vendor/etc/init/hw/init.mmi.chipset.rc
# Target-specific file
import /vendor/etc/init/hw/init.mmi.overlay.rc
#USB rc
import /vendor/etc/init/hw/init.mmi.usb.configfs.rc
# Add debug specific - currently used for install attestation keys on userdebug builds
import /vendor/etc/init/hw/init.mmi.debug.rc
on early-init
wait /dev/block/by-name/hw
exec_start vendor.oem-hw-sh
# Make sure ro.boot.product.hardware.sku is set before hwservicemanager startup.
setprop ro.boot.product.hardware.sku ${ro.vendor.product.hardware.sku.variant}
# Map oem properties, this must follow
# execution of vendor.oem-hw-sh to set
# required properties.
setprop ro.vendor.hw.radio ${ro.boot.radio}
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.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.boot.nal_id ${ro.boot.nal_id}
setprop ro.vendor.zygote ${ro.zygote}
setprop ro.carrier unknown
on property:sys.boot_completed=1 && property:ro.vendor.zram.product_swapon=""
write /sys/block/zram0/comp_algorithm lz4
write /proc/sys/vm/page-cluster 0
swapon_all /vendor/etc/fstab.${ro.hardware.soc.manufacturer}
write /proc/sys/vm/swappiness 100
setprop sys.sysctl.swappiness 100
on post-fs
# for batt_health server
mkdir /mnt/vendor/persist/batt_health 0770 vendor_pwric vendor_pwric
restorecon_recursive /mnt/vendor/persist
# Set dm-verity property for dm-verified partitions
verity_update_state
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 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
mkdir /data/vendor/misc 0771 system system
# Create directory for cutback
mkdir /data/vendor/misc/cutback 0770 radio wifi
# Imager tuning data for camera subsystem
mkdir /data/vendor/misc/imager 0771 camera system
# Imager tuning metadata for camera subsystem
mkdir /data/vendor/misc/imager/metadata 0771 camera camera
# Imager tuning data for rescue Feature
mkdir /mnt/vendor/persist/camera/iqtuning 0771 camera camera
# Create bug2go folder
mkdir /data/vendor/bug2go 0770 log log
# Setup folder for aplogd
mkdir /data/vendor/aplogd 0770 log log
# 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
mkdir /data/vendor/hardware_revisions 0755 system system
copy /data/vendor_de/power_supply_logger/memtest.log /data/vendor/power_supply_logger/memtest.log
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 tks-charger
class_stop main
class_stop late_start
chown system system /sys/class/leds/lcd-backlight/max_brightness
on tks-charger && property:persist.sys.tksautoboot=1
setprop sys.powerctl "reboot,tks-charger"
on boot
# Change ownership and permission for leds backlight
chown system system /sys/class/leds/charging/brightness
chmod 0664 /sys/class/leds/charging/brightness
# Change ownership and permission for charge
chown system system /sys/class/power_supply/battery/charging_enabled
chmod 0664 /sys/class/power_supply/battery/charging_enabled
# Change ownership and permission for vibrator
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
# change permission for widevine L1
chmod 0664 /mnt/vendor/persist/wv.keys
#change ownership and permission for capsense
chown radio system /sys/class/capsense/reg
chown radio system /sys/class/capsense/fw_download_status
chmod 0660 /sys/class/capsense/reg
chmod 0660 /sys/class/capsense/fw_download_status
# change ownership and permission for lcd-backlight
chown system system /sys/class/leds/lcd-backlight/max_brightness
on property:sys.boot_completed=*
setprop vendor.boot_completed ${sys.boot_completed}
setprop ro.vendor.boot.uid ${ro.boot.uid}
setprop ro.vendor.boot.secure_hardware ${ro.boot.secure_hardware}
service vendor.mmi-block-perm /vendor/bin/init.mmi.block_perm.sh
class main
user root
oneshot
service vendor.mmi-touch-sh /vendor/bin/init.mmi.touch.sh
class core
user root
oneshot
service vendor.mmi-shutdown-sh /vendor/bin/init.mmi.shutdown.sh
class core
user root
oneshot
disabled
service vendor.hal-fps-sh /vendor/bin/init.oem.fingerprint2.sh
class late_start
user root
group system
oneshot
service vendor.oem-hw-sh /vendor/bin/init.oem.hw.sh
class core
user root
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.mbm_spy /vendor/bin/mbm_spy
class late_start
user system
group system
oneshot
service vendor.hw_revs /vendor/bin/hardware_revisions.sh
class late_start
user system
group system
oneshot
service vendor.mmi-boot-sh /vendor/bin/init.mmi.boot.sh
class core
user root
oneshot
# set rkp csr indicatory property
on property:ro.vendor.mot.hw.rkp_csr_uploaded=* && property:sys.boot_completed=1
setprop ro.rkp.csr_uploaded ${ro.vendor.mot.hw.rkp_csr_uploaded}
on property:ro.boot.force_aplogd_enable=1
setprop ro.logd.kernel true
stop logd
start logd
on post-fs && property:ro.boot.force_aplogd_enable=1
setprop persist.vendor.log.aplogd.enable 1
on property:persist.vendor.log.aplogd.enable=1
start vendor.aplogd
on property:persist.vendor.log.aplogd.enable=0
stop vendor.aplogd
on property:ro.vendor.hw.dualsim=true
setprop persist.radio.multisim.config dsds
setprop persist.vendor.radio.msimmode dsds
setprop telephony.active_modems.max_count 2
setprop ro.vendor.radio.max.multisim dsds
setprop ro.telephony.sim.count 2
setprop persist.vendor.mims_support 2
setprop persist.vendor.radio.smart.data.switch 1
setprop ro.vendor.mtk_disable_cap_switch 0
setprop ro.vendor.mtk_data_config 1
on property:ro.vendor.hw.dualsim=false
setprop persist.radio.multisim.config ss
setprop persist.vendor.radio.msimmode ss
setprop telephony.active_modems.max_count 1
setprop ro.vendor.radio.max.multisim ss
setprop ro.telephony.sim.count 1
setprop persist.vendor.mims_support 1
setprop persist.vendor.radio.smart.data.switch 0
setprop ro.vendor.mtk_disable_cap_switch 1
setprop ro.vendor.mtk_data_config 0
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}
on property:ro.vendor.build.motfactory=1
write /sys/devices/platform/charger/factory_image_mode 1
on property:sys.sysctl.swappiness=*
write /proc/sys/vm/swappiness ${sys.sysctl.swappiness}
# IKSWU-152028: Force shutter tone on Japan softbank carrier
on property:ro.carrier=softbank
setprop audio.camerasound.force true
# IKSWT-90913: Force shutter tone on Japan ymobile carrier
on property:ro.carrier=ymobile
setprop audio.camerasound.force true
# IKSWU-148561: Force shutter tone on Japan Docomo carrier
on property:ro.carrier=docomo
setprop audio.camerasound.force true
# IKSWU-165346: Force shutter tone on Korea carriers
on property:ro.carrier=retkr
setprop audio.camerasound.force true
on property:ro.sys.force_max_chrg_temp=*
write /sys/devices/platform/charger/force_max_chrg_temp ${ro.sys.force_max_chrg_temp}
on property:ro.sys.force_demo_mode=*
write /sys/devices/platform/charger/force_demo_mode ${ro.sys.force_demo_mode}
on shutdown
exec_start vendor.mmi-shutdown-sh
# Sync the system MSI property of RKP state onto vendor
on property:sys.rkp.enable=* && property:sys.boot_completed=1
setprop persist.vendor.moto.rkp.enable ${sys.rkp.enable}
start vendor.mbm_spy

View File

@ -0,0 +1,247 @@
service vendor.tcmd /vendor/bin/tcmd
class core
# Total number of supplementary groups below is 14 now. Limit defined in service.h is 32.
# Please update the current number if you add more groups.
group vendor_tcmd vendor_pwric system radio input log sdcard_rw inet graphics audio mount media shell media_rw bluetooth camera
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 tcmd_system /system_ext/bin/tcmd_system
class main
user root
group vendor_prod_persist
oneshot
disabled
# Power up to suspend
on property:vendor.tcmd.suspend=1
stop zygote
stop surfaceflinger
stop sensors
# Normal to suspend
on property:vendor.tcmd.suspend=2
stop vendor.hwcomposer-2-1
stop vendor.hwcomposer-2-2
stop aee_aed
stop aee_aedv
stop surfaceflinger
stop sensors
stop cameraserver
stop zygote
write /proc/monitor_hang 0
on property:vendor.tcmd.suspend=3
write /proc/monitor_hang 1
start zygote
start cameraserver
start sensors
start surfaceflinger
start aee_aedv
start aee_aed
start vendor.hwcomposer-2-2
start vendor.hwcomposer-2-1
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_system.action=*
setprop sys.tcmd_system.action ${vendor.tcmd_system.action}
start tcmd_system
on property:vendor.tcmd.update_keyperm=1
chown vendor_tcmd system /mnt/vendor/persist/wv.keys
chmod 0640 /mnt/vendor/persist/wv.keys
chown vendor_tcmd system /mnt/vendor/persist/attest_keybox.so
chmod 0640 /mnt/vendor/persist/attest_keybox.so
chown vendor_tcmd system /mnt/vendor/persist/attestation_ids.so
chmod 0640 /mnt/vendor/persist/attestation_ids.so
on early-boot && property:ro.vendor.build.motfactory=1
write /proc/sys/kernel/poweroff_cmd "/system/bin/reboot -p"
on post-fs
mkdir /mnt/vendor/persist/factory 0755 vendor_tcmd vendor_tcmd
chown vendor_tcmd vendor_tcmd /mnt/vendor/persist/factory/fti
chmod 0664 /mnt/vendor/persist/factory/fti
mkdir /mnt/vendor/persist/camera 0775 vendor_tcmd vendor_tcmd
mkdir /mnt/vendor/persist/camera/dualcal 0775 camera vendor_tcmd
mkdir /mnt/vendor/persist/camera/focus 0775 camera vendor_tcmd
restorecon /mnt/vendor/persist/camera
restorecon /mnt/vendor/persist/camera/focus
restorecon /mnt/vendor/persist/camera/focus/offset_cal
restorecon /mnt/vendor/persist/camera/focus/xtalk_cal
mkdir /mnt/vendor/persist/camera/ledcal 0775 camera vendor_tcmd
mkdir /mnt/vendor/persist/camera/ois 0775 cameraserver vendor_tcmd
mkdir /mnt/vendor/persist/camera/iqtuning 0775 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 /mnt/vendor/persist/wifi 0755 vendor_tcmd vendor_tcmd
mkdir /mnt/vendor/persist/bt 0755 vendor_tcmd bluetooth
# 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 camera vendor_tcmd /mnt/vendor/persist/camera/dualcal/dual_cal_data.bin
chown camera vendor_tcmd /mnt/vendor/persist/camera/dualcal/dual_cal_data_depth.bin
chown camera vendor_tcmd /mnt/vendor/persist/camera/dualcal/dual_cal_data_wide.bin
chown camera vendor_tcmd /mnt/vendor/persist/camera/dualcal/module_id_aux.bin
chown camera vendor_tcmd /mnt/vendor/persist/camera/dualcal/module_id_main.bin
chown camera vendor_tcmd /mnt/vendor/persist/camera/dualcal/module_id_depth.bin
chown camera vendor_tcmd /mnt/vendor/persist/camera/dualcal/module_id_wide.bin
chmod 0664 /mnt/vendor/persist/camera/dualcal/dual_cal_data.bin
chmod 0664 /mnt/vendor/persist/camera/dualcal/dual_cal_data_depth.bin
chmod 0664 /mnt/vendor/persist/camera/dualcal/dual_cal_data_wide.bin
chmod 0664 /mnt/vendor/persist/camera/dualcal/module_id_aux.bin
chmod 0664 /mnt/vendor/persist/camera/dualcal/module_id_main.bin
chmod 0664 /mnt/vendor/persist/camera/dualcal/module_id_depth.bin
chmod 0664 /mnt/vendor/persist/camera/dualcal/module_id_wide.bin
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
# 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
chown vendor_tcmd vendor_tcmd /sys/devices/platform/moto_chg_tcmd/address
chmod 660 /sys/devices/platform/moto_chg_tcmd/address
chown vendor_tcmd vendor_tcmd /sys/devices/platform/moto_chg_tcmd/data
chmod 660 /sys/devices/platform/moto_chg_tcmd/data
chown vendor_tcmd vendor_tcmd /sys/devices/platform/moto_chg_tcmd/bat_voltage
chmod 660 /sys/devices/platform/moto_chg_tcmd/bat_voltage
chown vendor_tcmd vendor_tcmd /sys/devices/platform/moto_chg_tcmd/bat_id
chmod 660 /sys/devices/platform/moto_chg_tcmd/bat_id
chown vendor_tcmd vendor_tcmd /sys/devices/platform/moto_chg_tcmd/bat_ocv
chmod 660 /sys/devices/platform/moto_chg_tcmd/bat_ocv
chown vendor_tcmd vendor_tcmd /sys/devices/platform/moto_chg_tcmd/bat_temp
chmod 660 /sys/devices/platform/moto_chg_tcmd/bat_temp
chown vendor_tcmd vendor_tcmd /sys/devices/platform/moto_chg_tcmd/bat_cycle
chmod 660 /sys/devices/platform/moto_chg_tcmd/bat_cycle
chown vendor_tcmd vendor_tcmd /sys/devices/platform/moto_chg_tcmd/usb_voltage
chmod 660 /sys/devices/platform/moto_chg_tcmd/usb_voltage
chown vendor_tcmd vendor_tcmd /sys/devices/platform/moto_chg_tcmd/force_chg_auto_enable
chmod 660 /sys/devices/platform/moto_chg_tcmd/force_chg_auto_enable
chown vendor_tcmd vendor_tcmd /sys/devices/platform/moto_chg_tcmd/force_chg_iusb
chmod 660 /sys/devices/platform/moto_chg_tcmd/force_chg_iusb
chown vendor_tcmd vendor_tcmd /sys/devices/platform/moto_chg_tcmd/force_chg_usb_suspend
chmod 660 /sys/devices/platform/moto_chg_tcmd/force_chg_usb_suspend
chown vendor_tcmd vendor_tcmd /sys/devices/platform/moto_chg_tcmd/force_chg_ibatt
chmod 660 /sys/devices/platform/moto_chg_tcmd/force_chg_ibatt
chown vendor_tcmd vendor_tcmd /sys/devices/platform/moto_chg_tcmd/force_chg_fail_clear
chmod 660 /sys/devices/platform/moto_chg_tcmd/force_chg_fail_clear
chown vendor_tcmd vendor_tcmd /sys/devices/platform/moto_chg_tcmd/factory_kill_disable
chmod 660 /sys/devices/platform/moto_chg_tcmd/factory_kill_disable
chown vendor_tcmd vendor_tcmd /sys/devices/platform/moto_chg_tcmd/wireless_en
chmod 660 /sys/devices/platform/moto_chg_tcmd/wireless_en
chown vendor_tcmd vendor_tcmd /sys/devices/platform/moto_chg_tcmd/wireless_chip_id
chmod 660 /sys/devices/platform/moto_chg_tcmd/wireless_chip_id
on post-fs-data
# 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 DAC for WFD HDCP sfs file
chown vendor_tcmd system /mnt/vendor/persist/data
chmod 0750 /mnt/vendor/persist/data
chown vendor_tcmd system /mnt/vendor/persist/data/dxhdcp2
chmod 0750 /mnt/vendor/persist/data/dxhdcp2
chown vendor_tcmd system /mnt/vendor/persist/data/dxhdcp2/dxhdcp2
chmod 0750 /mnt/vendor/persist/data/dxhdcp2/dxhdcp2
chown vendor_tcmd system /mnt/vendor/persist/data/dxhdcp2/dxhdcp2/dxhdcp2.sfs
chmod 0640 /mnt/vendor/persist/data/dxhdcp2/dxhdcp2/dxhdcp2.sfs
# Setup folder for Pre-Activation Kill Switch app (PAKS)
mkdir /mnt/vendor/persist/paks 02770 vendor_tcmd vendor_tcmd
on property:ro.bootmode=mot-factory
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
on post-fs-data && property:ro.bootmode=mot-factory
restorecon /mnt/vendor/mot_factory
on property:sys.bootbroadcast_completed=*
setprop vendor.sys.bootbroadcast_completed ${sys.bootbroadcast_completed}
on property:ro.vendor.build.motfactory=1
# Change ownership and permission for current_cmd factory testing
chown system system /proc/mtk_battery_cmd/current_cmd
chmod 0664 /proc/mtk_battery_cmd/current_cmd
on property:vendor.boot_completed=1
setprop ro.vendor.boot.hwrev ${ro.boot.hwrev}
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 vendor.init.svc.adbd ${init.svc.adbd}
setprop ro.vendor.boot.secure_hardware ${ro.boot.secure_hardware}
setprop ro.vendor.sys.adb_reset_protected ${ro.sys.adb_reset_protected}

View File

@ -0,0 +1,910 @@
# 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 0775
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/mtk_rndis.gs4
mkdir /config/usb_gadget/g1/functions/acm.gs0
mkdir /config/usb_gadget/g1/functions/acm.gs1
mkdir /config/usb_gadget/g1/functions/acm.gs2
mkdir /config/usb_gadget/g1/functions/acm.gs3
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/rndis_bam.rndis
mkdir /config/usb_gadget/g1/functions/rndis.rndis
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 460800
write /config/usb_gadget/g1/functions/uvc.0/streaming/uncompressed/u/360p/dwMinBitRate 55296000
write /config/usb_gadget/g1/functions/uvc.0/streaming/uncompressed/u/360p/dwMaxBitRate 110592000
mkdir /config/usb_gadget/g1/functions/uvc.0/streaming/uncompressed/u/480p
write /config/usb_gadget/g1/functions/uvc.0/streaming/uncompressed/u/480p/dwFrameInterval \
"500000
666666
"
write /config/usb_gadget/g1/functions/uvc.0/streaming/uncompressed/u/480p/wWidth 640
write /config/usb_gadget/g1/functions/uvc.0/streaming/uncompressed/u/480p/wHeight 480
write /config/usb_gadget/g1/functions/uvc.0/streaming/uncompressed/u/480p/dwMaxVideoFrameBufferSize 614400
write /config/usb_gadget/g1/functions/uvc.0/streaming/uncompressed/u/480p/dwMinBitRate 73728000
write /config/usb_gadget/g1/functions/uvc.0/streaming/uncompressed/u/480p/dwMaxBitRate 98304000
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 1843200
write /config/usb_gadget/g1/functions/uvc.0/streaming/uncompressed/u/720p/dwMinBitRate 147456000
write /config/usb_gadget/g1/functions/uvc.0/streaming/uncompressed/u/720p/dwMaxBitRate 147456000
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/480p
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/dwFrameInterval \
"333333
666666
"
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/wWidth 640
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/wHeight 480
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/dwMaxVideoFrameBufferSize 460800
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/dwMinBitRate 55296000
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/dwMaxBitRate 110592000
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/960p
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/960p/dwFrameInterval \
"333333
666666
"
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/960p/wWidth 1280
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/960p/wHeight 960
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/960p/dwMaxVideoFrameBufferSize 1843200
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/960p/dwMinBitRate 221184000
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/960p/dwMaxBitRate 442368000
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
write /config/usb_gadget/g1/functions/uvc.0/function_name "Moto Webcam
"
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
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 firmware_mounts_complete && property:ro.vendor.product.display.plain_text=*
write /config/usb_gadget/g1/strings/0x409/product ${ro.vendor.product.display.plain_text}
on load_bpf_programs
setprop vendor.usb.config ${sys.usb.config}
setprop persist.vendor.mot.usb.config ${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: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.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}
### Support USB Secure Mode
on property:sys.usb.secure_mode=*
setprop vendor.usb.secure_mode ${sys.usb.secure_mode}
on property:vendor.usb.secure_mode=1
setprop sys.usb.controller none
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
on property:vendor.usb.secure_mode=0
setprop sys.usb.controller ${vendor.usb.controller}
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
service vendor.mmi-usb-sh /vendor/bin/init.mmi.usb.sh
class late_start
user root
group system
oneshot
on userspace-reboot-resume
setprop persist.vendor.mot.usb.config ${persist.sys.usb.config}
setprop persist.vendor.usb.config ${persist.sys.usb.config}
on charger
insmod /vendor/lib/modules/moto_f_mass_storage.ko
setprop vendor.usb.adb_early ${ro.boot.adb_early:-"0"}
setprop vendor.usb.charging.func.name moto_mass_storage
start vendor.mmi-usb-sh
# 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 && property:vendor.usb.adb_early=0
setprop sys.usb.configfs 1
setprop sys.usb.config charging
on property:init.svc.vendor.mmi-usb-sh=stopped && property:ro.boot.mode=charger && property:vendor.usb.adb_early=1
setprop sys.usb.configfs 1
setprop sys.usb.config charging,adb
### Factory Compositions
on property:sys.usb.config=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}
on property:sys.usb.config=atm_gs0gs3 && property:sys.usb.configfs=1
write /config/usb_gadget/g1/UDC "none"
write /config/usb_gadget/g1/bDeviceClass 0
write /config/usb_gadget/g1/bDeviceSubClass 0
write /config/usb_gadget/g1/bDeviceProtocol 0
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
rmdir /config/usb_gadget/g1/functions/${vendor.usb.rndis.func.name}
start adbd
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=atm_gs0gs3 && \
property:sys.usb.configfs=1 && property:ro.bootmode=mot-factory
start vendor.tcmd
setprop vendor.usb.acm_port0 0
setprop vendor.usb.acm_port1 3
setprop vendor.usb.acm_cnt 2
setprop vendor.usb.acm_enable 1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "adb_acm"
write /sys/class/udc/${sys.usb.controller}/device/saving 1
write /sys/devices/platform/soc/mt_usb/saving 1
write /config/usb_gadget/g1/idVendor 0x22b8
write /config/usb_gadget/g1/idProduct 0x2e2d
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
symlink /config/usb_gadget/g1/functions/acm.gs0 /config/usb_gadget/g1/configs/b.1/f3
symlink /config/usb_gadget/g1/functions/acm.gs3 /config/usb_gadget/g1/configs/b.1/f4
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
on property:sys.usb.config=adb && property:vendor.usb.acm_enable=1 && \
property:sys.usb.configfs=1 && property:ro.bootmode=mot-factory
write /config/usb_gadget/g1/UDC "none"
write /config/usb_gadget/g1/bDeviceClass 0
write /config/usb_gadget/g1/bDeviceSubClass 0
write /config/usb_gadget/g1/bDeviceProtocol 0
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
rmdir /config/usb_gadget/g1/functions/${vendor.usb.rndis.func.name}
start adbd
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=adb && \
property:vendor.usb.acm_enable=1 && property:sys.usb.configfs=1 && property:ro.bootmode=mot-factory
start vendor.tcmd
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "adb_acm"
write /config/usb_gadget/g1/idVendor 0x22b8
write /config/usb_gadget/g1/idProduct 0x2e2d
write /sys/class/udc/${sys.usb.controller}/device/saving 1
write /sys/devices/platform/soc/mt_usb/saving 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
symlink /config/usb_gadget/g1/functions/acm.gs0 /config/usb_gadget/g1/configs/b.1/f3
symlink /config/usb_gadget/g1/functions/acm.gs3 /config/usb_gadget/g1/configs/b.1/f4
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
### ATCI
on property:persist.vendor.radio.port_index=1 && property:sys.boot_completed=1
setprop vendor.usb.acm_port0 0
setprop vendor.usb.acm_enable 1
setprop vendor.usb.acm_idx 1
setprop vendor.usb.acm_cnt 1
setprop sys.usb.config none
setprop sys.usb.config ${sys.usb.state}
on property:persist.vendor.radio.port_index=0 && property:vendor.usb.acm_enable=1
setprop vendor.usb.acm_enable 0
setprop vendor.usb.acm_idx ""
setprop vendor.usb.acm_cnt 0
setprop sys.usb.config none
setprop sys.usb.config ${sys.usb.state}
setprop persist.vendor.radio.port_index ""
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=adb && property:sys.usb.configfs=1 && \
property:vendor.usb.acm_enable=1 && property:persist.vendor.radio.port_index=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "atci"
write /config/usb_gadget/g1/idVendor 0x0e8d
write /config/usb_gadget/g1/idProduct 0x2006
write /sys/class/udc/${sys.usb.controller}/device/saving 1
write /sys/devices/platform/soc/mt_usb/saving 1
symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/acm.gs0 /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.ffs.ready=1 && property:sys.usb.config=mtp,adb && property:sys.usb.configfs=1 && \
property:vendor.usb.acm_enable=1 && property:persist.vendor.radio.port_index=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "atci"
write /config/usb_gadget/g1/idVendor 0x0e8d
write /config/usb_gadget/g1/idProduct 0x200a
write /sys/class/udc/${sys.usb.controller}/device/saving 1
write /sys/devices/platform/soc/mt_usb/saving 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
symlink /config/usb_gadget/g1/functions/acm.gs0 /config/usb_gadget/g1/configs/b.1/f3
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
### Bell
on property:sys.usb.config=acm_gs0gs3 && property:sys.usb.configfs=1
write /config/usb_gadget/g1/UDC "none"
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
start adbd
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=acm_gs0gs3 && \
property:sys.usb.configfs=1
setprop vendor.usb.acm_port0 0
setprop vendor.usb.acm_port1 3
setprop vendor.usb.acm_cnt 2
setprop vendor.usb.acm_enable 1
setprop vendor.usb.acm_idx "1,4"
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "acm_gs0gs3"
write /sys/class/udc/${sys.usb.controller}/device/saving 1
write /sys/devices/platform/soc/mt_usb/saving 1
write /config/usb_gadget/g1/idVendor 0x0e8d
write /config/usb_gadget/g1/idProduct 0x2029
symlink /config/usb_gadget/g1/functions/mass_storage.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
symlink /config/usb_gadget/g1/functions/acm.gs0 /config/usb_gadget/g1/configs/b.1/f3
symlink /config/usb_gadget/g1/functions/acm.gs3 /config/usb_gadget/g1/configs/b.1/f4
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
### ELT Logging port
on property:persist.vendor.radio.port_index=4 && property:sys.boot_completed=1
setprop vendor.usb.acm_port0 3
setprop vendor.usb.acm_enable 1
setprop vendor.usb.acm_idx 4
setprop vendor.usb.acm_cnt 1
setprop sys.usb.config none
setprop sys.usb.config ${sys.usb.state}
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=adb && property:sys.usb.configfs=1 && \
property:vendor.usb.acm_enable=1 && property:persist.vendor.radio.port_index=4
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ELT"
write /config/usb_gadget/g1/idVendor 0x0e8d
write /config/usb_gadget/g1/idProduct 0x2006
write /sys/class/udc/${sys.usb.controller}/device/saving 1
write /sys/devices/platform/soc/mt_usb/saving 1
symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/acm.gs3 /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.ffs.ready=1 && property:sys.usb.config=mtp,adb && property:sys.usb.configfs=1 && \
property:vendor.usb.acm_enable=1 && property:persist.vendor.radio.port_index=4
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ELT"
write /config/usb_gadget/g1/idVendor 0x0e8d
write /config/usb_gadget/g1/idProduct 0x200a
write /sys/class/udc/${sys.usb.controller}/device/saving 1
write /sys/devices/platform/soc/mt_usb/saving 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
symlink /config/usb_gadget/g1/functions/acm.gs3 /config/usb_gadget/g1/configs/b.1/f3
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
### Charging Compositions
on property:vendor.usb.charging.func.name=moto_mass_storage
mkdir /config/usb_gadget/g1/functions/moto_mass_storage.0
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
write /config/usb_gadget/g1/os_desc/use 0
symlink /config/usb_gadget/g1/functions/${vendor.usb.charging.func.name:-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}
on property:sys.usb.config=charging,adb
start adbd
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=charging,adb && 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
write /config/usb_gadget/g1/os_desc/use 1
symlink /config/usb_gadget/g1/functions/${vendor.usb.charging.func.name:-mass_storage}.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}
### 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
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 early-init && property:ro.vendor.usb.cdrom.func=moto_mass_storage
insmod /vendor/lib/modules/moto_f_mass_storage.ko
on init && property:ro.vendor.usb.cdrom.func=moto_mass_storage
mkdir /config/usb_gadget/g1/functions/moto_mass_storage.0
on init && property:ro.carrier=vzw
mkdir /config/usb_gadget/g1/functions/${ro.vendor.usb.cdrom.func:-mass_storage}.0/lun.1
on init && property:ro.carrier=vzwpre
mkdir /config/usb_gadget/g1/functions/${ro.vendor.usb.cdrom.func:-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/${ro.vendor.usb.cdrom.func:-mass_storage}.0/lun.0/file ""
write /config/usb_gadget/g1/functions/${ro.vendor.usb.cdrom.func:-mass_storage}.0/lun.0/cdrom 1
write /config/usb_gadget/g1/functions/${ro.vendor.usb.cdrom.func:-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/${ro.vendor.usb.cdrom.func:-mass_storage}.0/lun.0/file ""
write /config/usb_gadget/g1/functions/${ro.vendor.usb.cdrom.func:-mass_storage}.0/lun.0/cdrom 1
write /config/usb_gadget/g1/functions/${ro.vendor.usb.cdrom.func:-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/${ro.vendor.usb.cdrom.func:-mass_storage}.0/lun.1/file ""
write /config/usb_gadget/g1/functions/${ro.vendor.usb.cdrom.func:-mass_storage}.0/lun.1/cdrom 1
write /config/usb_gadget/g1/functions/${ro.vendor.usb.cdrom.func:-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/${ro.vendor.usb.cdrom.func:-mass_storage}.0/lun.1/file ""
write /config/usb_gadget/g1/functions/${ro.vendor.usb.cdrom.func:-mass_storage}.0/lun.1/cdrom 1
write /config/usb_gadget/g1/functions/${ro.vendor.usb.cdrom.func:-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/${ro.vendor.usb.cdrom.func:-mass_storage}.0/lun.1/file ""
write /config/usb_gadget/g1/functions/${ro.vendor.usb.cdrom.func:-mass_storage}.0/lun.1/cdrom 1
write /config/usb_gadget/g1/functions/${ro.vendor.usb.cdrom.func:-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/${ro.vendor.usb.cdrom.func:-mass_storage}.0/lun.1/file ""
write /config/usb_gadget/g1/functions/${ro.vendor.usb.cdrom.func:-mass_storage}.0/lun.1/cdrom 1
write /config/usb_gadget/g1/functions/${ro.vendor.usb.cdrom.func:-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/${ro.vendor.usb.cdrom.func:-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/${ro.vendor.usb.cdrom.func:-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/${ro.vendor.usb.cdrom.func:-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/${ro.vendor.usb.cdrom.func:-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} /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} /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} /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} /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}
wait /config/usb_gadget/uvc_delay_300ms 0.3
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}
wait /config/usb_gadget/uvc_delay_100ms 0.1
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=readyfor && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "readyfor"
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 0x2e46
symlink /config/usb_gadget/g1/functions/${vendor.usb.rndis.func.name} /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 ${sys.usb.config}
on property:sys.usb.config=readyfor,adb && property:sys.usb.configfs=1
start adbd
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=readyfor,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "readyfor_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 0x2e47
symlink /config/usb_gadget/g1/functions/${vendor.usb.rndis.func.name} /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 ${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
on init
setprop sys.usb.controller none
chown root system /sys/module/uvcvideo/parameters/quirks
chmod 0660 /sys/module/uvcvideo/parameters/quirks
setprop sys.usb.configfs 1
setprop ro.vendor.usb.moto_common_rc 1
on boot && property:ro.boot.adb_early=1
start vendor.mmi-usb-sh
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=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}
wait /config/usb_gadget/uvc_delay_300ms 0.3
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}
wait /config/usb_gadget/uvc_delay_100ms 0.1
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=adb,acm && property:sys.usb.configfs=1
start adbd
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=adb,acm && property:sys.usb.configfs=1
mkdir /config/usb_gadget/g1/functions/acm.0
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 0x1d6b
write /config/usb_gadget/g1/idProduct 0x0104
symlink /config/usb_gadget/g1/functions/acm.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=acm && property:sys.usb.configfs=1
mkdir /config/usb_gadget/g1/functions/acm.0
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 0x1d6b
write /config/usb_gadget/g1/idProduct 0x0104
symlink /config/usb_gadget/g1/functions/acm.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:vendor.em.usb.set=*
write /proc/mtk_usb/usb-phy0/u2_phy/${vendor.em.usb.set} ${vendor.em.usb.value}

42
rootdir/etc/init.modem.rc Normal file
View File

@ -0,0 +1,42 @@
# Copyright (C) 2012 The Android Open Source Project
#
# IMPORTANT: Do not create world writable files or directories.
# This is a common source of Android security bugs.
#
on early-init
write /sys/class/net/ccmni0/queues/rx-0/rps_cpus "0D"
write /sys/class/net/ccmni1/queues/rx-0/rps_cpus "0D"
write /sys/class/net/ccmni2/queues/rx-0/rps_cpus "0D"
write /sys/class/net/ccmni3/queues/rx-0/rps_cpus "0D"
write /sys/class/net/ccmni4/queues/rx-0/rps_cpus "0D"
write /sys/class/net/ccmni5/queues/rx-0/rps_cpus "0D"
write /sys/class/net/ccmni6/queues/rx-0/rps_cpus "0D"
write /sys/class/net/ccmni7/queues/rx-0/rps_cpus "0D"
write /sys/class/net/ccmni9/queues/rx-0/rps_cpus "0D"
write /sys/class/net/ccmni10/queues/rx-0/rps_cpus "0D"
write /sys/class/net/ccmni11/queues/rx-0/rps_cpus "0D"
write /sys/class/net/ccmni12/queues/rx-0/rps_cpus "0D"
write /sys/class/net/ccmni13/queues/rx-0/rps_cpus "0D"
write /sys/class/net/ccmni14/queues/rx-0/rps_cpus "0D"
write /sys/class/net/ccmni15/queues/rx-0/rps_cpus "0D"
write /sys/class/net/ccmni16/queues/rx-0/rps_cpus "0D"
write /sys/class/net/ccmni17/queues/rx-0/rps_cpus "0D"
write /sys/class/net/ccmni18/queues/rx-0/rps_cpus "0D"
write /sys/class/net/ccmni19/queues/rx-0/rps_cpus "0D"
write /sys/class/net/ccmni20/queues/rx-0/rps_cpus "0D"
write /proc/sys/net/core/netdev_max_backlog 50000
write /proc/sys/net/ipv4/ipfrag_high_thresh 20971520
setprop ro.vendor.net.upload.mark.default blocking
on post-fs-data
write /proc/bootprof "post-fs-data: on modem start"
# Encrypt phone function
setprop vold.post_fs_data_done 1

1088
rootdir/etc/init.mt6855.rc Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,938 @@
on early-init
write /sys/module/musb_hdrc/parameters/kernel_init_done 1
on post-fs
setprop vendor.usb.vid "0x0E8D"
mkdir /dev/usb-ffs 0775 shell shell
mkdir /dev/usb-ffs/adb 0770 shell shell
mkdir /config/usb_gadget/g1 0770 shell shell
write /config/usb_gadget/g1/idVendor ${vendor.usb.vid}
write /config/usb_gadget/g1/bcdDevice 0x0223
write /config/usb_gadget/g1/bcdUSB 0x0200
write /config/usb_gadget/g1/os_desc/use 1
mkdir /config/usb_gadget/g1/strings/0x409 0770
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}
mkdir /config/usb_gadget/g1/functions/accessory.gs2
mkdir /config/usb_gadget/g1/functions/audio_source.gs3
mkdir /config/usb_gadget/g1/functions/ffs.adb
mkdir /config/usb_gadget/g1/functions/ffs.mtp
write /config/usb_gadget/g1/functions/ffs.mtp/os_desc/interface.MTP/compatible_id "MTP"
mkdir /config/usb_gadget/g1/functions/ffs.ptp
mkdir /config/usb_gadget/g1/functions/mtk_rndis.gs4
mkdir /config/usb_gadget/g1/functions/midi.gs5
mkdir /config/usb_gadget/g1/functions/acm.gs0
mkdir /config/usb_gadget/g1/functions/acm.gs1
mkdir /config/usb_gadget/g1/functions/acm.gs2
mkdir /config/usb_gadget/g1/functions/acm.gs3
mkdir /config/usb_gadget/g1/functions/mass_storage.usb0
mkdir /config/usb_gadget/g1/functions/hid.gs0
mkdir /config/usb_gadget/g1/configs/b.1 0770 shell shell
mkdir /config/usb_gadget/g1/configs/b.1/strings/0x409 0770 shell shell
write /config/usb_gadget/g1/os_desc/b_vendor_code 0x1
write /config/usb_gadget/g1/os_desc/qw_sign "MSFT100"
write /config/usb_gadget/g1/configs/b.1/MaxPower 500
symlink /config/usb_gadget/g1/configs/b.1 /config/usb_gadget/g1/os_desc/b.1
mount functionfs adb /dev/usb-ffs/adb rmode=0770,fmode=0660,uid=2000,gid=2000,no_disconnect=1
mkdir /dev/usb-ffs/mtp 0770 mtp mtp
mkdir /dev/usb-ffs/ptp 0770 mtp mtp
mount functionfs mtp /dev/usb-ffs/mtp rmode=0770,fmode=0660,uid=1024,gid=1024,no_disconnect=1
mount functionfs ptp /dev/usb-ffs/ptp rmode=0770,fmode=0660,uid=1024,gid=1024,no_disconnect=1
on post-fs-data
mkdir /config/usb_gadget/g1/functions/via_modem.gs0
mkdir /config/usb_gadget/g1/functions/via_ets.gs0
mkdir /config/usb_gadget/g1/functions/via_atc.gs0
on boot
setprop sys.usb.configfs 1
setprop sys.usb.controller "musb-hdrc"
setprop vendor.usb.controller "musb-hdrc"
setprop sys.usb.ffs.aio_compat 0
setprop vendor.usb.acm_cnt 0
setprop vendor.usb.acm_port0 ""
setprop vendor.usb.acm_port1 ""
setprop vendor.usb.acm_enable 0
write /sys/class/android_usb/android0/f_mtp/cpu_mask 0x80
write /sys/module/usb_f_mtp/parameters/mtp_rx_cont 1
chmod 0664 /sys/class/android_usb/android0/iSerial
chown root system /sys/class/android_usb/android0/iSerial
chown radio system /sys/class/usb_rawbulk/data/enable
chmod 0660 /sys/class/usb_rawbulk/data/enable
chown radio system /sys/class/usb_rawbulk/ets/enable
chmod 0660 /sys/class/usb_rawbulk/ets/enable
chown radio system /sys/class/usb_rawbulk/atc/enable
chmod 0660 /sys/class/usb_rawbulk/atc/enable
chown radio system /sys/class/usb_rawbulk/pcv/enable
chmod 0660 /sys/class/usb_rawbulk/pcv/enable
chown radio system /sys/class/usb_rawbulk/gps/enable
chmod 0660 /sys/class/usb_rawbulk/gps/enable
chown system radio /dev/ttyGS0
chmod 0660 /dev/ttyGS0
chown system radio /dev/ttyGS1
chmod 0660 /dev/ttyGS1
chown system radio /dev/ttyGS2
chmod 0660 /dev/ttyGS2
chown system radio /dev/ttyGS3
chmod 0660 /dev/ttyGS3
# for usb otg sdcard hot plug detection
write /sys/module/block/parameters/events_dfl_poll_msecs 1000
on charger
mkdir /config/usb_gadget/g1 0770 shell shell
write /config/usb_gadget/g1/idVendor 0x0E8D
write /config/usb_gadget/g1/bcdDevice 0x0223
write /config/usb_gadget/g1/bcdUSB 0x0200
write /config/usb_gadget/g1/os_desc/use 1
mkdir /config/usb_gadget/g1/strings/0x409 0770
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}
mkdir /config/usb_gadget/g1/functions/hid.gs0
mkdir /config/usb_gadget/g1/configs/b.1 0770 shell shell
mkdir /config/usb_gadget/g1/configs/b.1/strings/0x409 0770 shell shell
write /config/usb_gadget/g1/configs/b.1/MaxPower 500
mount functionfs adb /dev/usb-ffs/adb uid=2000,gid=2000
setprop sys.usb.configfs 1
setprop vendor.usb.controller "musb-hdrc"
setprop vendor.usb.acm_cnt 0
setprop vendor.usb.acm_port0 ""
setprop vendor.usb.acm_port1 ""
setprop vendor.usb.acm_enable 0
setprop sys.usb.config hid
### more command at init.usb.configfs.rc ###
on property:sys.usb.config=none && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idVendor ${vendor.usb.vid}
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
rmdir /config/usb_gadget/g1/functions/mtk_rndis.gs4
write /sys/devices/platform/soc/mt_usb/saving 0
### HID for KPOC ###
on property:sys.usb.config=hid && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "HID"
write /config/usb_gadget/g1/idProduct 0x20FF
write /config/usb_gadget/g1/functions/hid.gs0/protocol 0
write /config/usb_gadget/g1/functions/hid.gs0/subclass 0
#write /config/usb_gadget/g1/functions/hid.gs0/report_length 4
#write /config/usb_gadget/g1/functions/hid.gs0/report_desc \\x05\\x01\\x09\\x00\\xa1\\x01\\xc0
symlink /config/usb_gadget/g1/functions/hid.gs0 /config/usb_gadget/g1/configs/b.1/f1
write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
setprop sys.usb.state ${sys.usb.config}
### main function : adb ###
### start adbd at init.usb.configfs.rc ###
on property:sys.usb.config=adb && property:vendor.usb.acm_cnt=0 && \
property:sys.usb.configfs=1
setprop vendor.usb.pid 0x201C
on property:sys.usb.config=adb && property:vendor.usb.acm_cnt=1 && \
property:sys.usb.configfs=1
setprop vendor.usb.pid 0x2006
setprop vendor.usb.acm_port1 ""
on property:sys.usb.config=adb && property:vendor.usb.acm_cnt=2 && \
property:sys.usb.configfs=1
setprop vendor.usb.pid 0x2029
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=adb && \
property:vendor.usb.acm_enable=1 && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "adb_acm"
write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
write /sys/devices/platform/soc/mt_usb/saving 1
symlink /config/usb_gadget/g1/functions/mass_storage.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
symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f3
symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port1} /config/usb_gadget/g1/configs/b.1/f4
write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=adb && \
property:vendor.usb.acm_enable=0 && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "adb"
write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f1
write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
setprop sys.usb.state ${sys.usb.config}
### main function : mtp ###
on property:sys.usb.config=mtp && property:vendor.usb.acm_cnt=0 && \
property:sys.usb.configfs=1
setprop vendor.usb.pid 0x2008
on property:sys.usb.config=mtp && property:vendor.usb.acm_cnt=1 && \
property:sys.usb.configfs=1
setprop vendor.usb.pid 0x2012
setprop vendor.usb.acm_port1 ""
on property:sys.usb.config=mtp && property:vendor.usb.acm_cnt=2 && \
property:sys.usb.configfs=1
setprop vendor.usb.pid 0x202A
on property:sys.usb.config=mtp && property:vendor.usb.acm_enable=1 && \
property:sys.usb.configfs=1 && property:vendor.usb.ffs.mtp.ready=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "mtp_acm"
write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
write /config/usb_gadget/g1/os_desc/use 1
write /sys/devices/platform/soc/mt_usb/saving 1
symlink /config/usb_gadget/g1/functions/ffs.mtp /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f2
symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port1} /config/usb_gadget/g1/configs/b.1/f3
write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=mtp && property:vendor.usb.acm_enable=0 && \
property:sys.usb.configfs=1 && property:vendor.usb.ffs.mtp.ready=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "mtp"
write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
write /config/usb_gadget/g1/os_desc/use 1
symlink /config/usb_gadget/g1/functions/ffs.mtp /config/usb_gadget/g1/configs/b.1/f1
write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
setprop sys.usb.state ${sys.usb.config}
### start adbd at init.usb.configfs.rc ###
on property:sys.usb.config=mtp,adb && property:vendor.usb.acm_cnt=0 && \
property:sys.usb.configfs=1
setprop vendor.usb.pid 0x201D
on property:sys.usb.config=mtp,adb && property:vendor.usb.acm_cnt=1 && \
property:sys.usb.configfs=1
setprop vendor.usb.pid 0x200A
setprop vendor.usb.acm_port1 ""
on property:sys.usb.config=mtp,adb && property:vendor.usb.acm_cnt=2 && \
property:sys.usb.configfs=1
setprop vendor.usb.pid 0x2026
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=mtp,adb && \
property:vendor.usb.acm_enable=1 && property:sys.usb.configfs=1 && property:vendor.usb.ffs.mtp.ready=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "mtp_adb_acm"
write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
write /config/usb_gadget/g1/os_desc/use 1
write /sys/devices/platform/soc/mt_usb/saving 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
symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f3
symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port1} /config/usb_gadget/g1/configs/b.1/f4
write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=mtp,adb && \
property:vendor.usb.acm_enable=0 && property:sys.usb.configfs=1 && property:vendor.usb.ffs.mtp.ready=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "mtp_adb"
write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
write /config/usb_gadget/g1/os_desc/use 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
write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
setprop sys.usb.state ${sys.usb.config}
### main function : ptp ###
on property:sys.usb.config=ptp && property:vendor.usb.acm_cnt=0 && \
property:sys.usb.configfs=1
setprop vendor.usb.pid 0x200B
on property:sys.usb.config=ptp && property:vendor.usb.acm_cnt=1 && \
property:sys.usb.configfs=1
setprop vendor.usb.pid 0x2013
setprop vendor.usb.acm_port1 ""
on property:sys.usb.config=ptp && property:vendor.usb.acm_cnt=2 && \
property:sys.usb.configfs=1
setprop vendor.usb.pid 0x202B
on property:sys.usb.config=ptp && property:vendor.usb.acm_enable=1 && \
property:sys.usb.configfs=1 && property:vendor.usb.ffs.ptp.ready=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ptp_acm"
write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
write /sys/devices/platform/soc/mt_usb/saving 1
symlink /config/usb_gadget/g1/functions/ffs.ptp /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f2
symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port1} /config/usb_gadget/g1/configs/b.1/f3
write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=ptp && property:vendor.usb.acm_enable=0 && \
property:sys.usb.configfs=1 && property:vendor.usb.ffs.ptp.ready=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ptp"
write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
symlink /config/usb_gadget/g1/functions/ffs.ptp /config/usb_gadget/g1/configs/b.1/f1
write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
setprop sys.usb.state ${sys.usb.config}
### start adbd at init.usb.configfs.rc ###
on property:sys.usb.config=ptp,adb && property:vendor.usb.acm_cnt=0 && \
property:sys.usb.configfs=1
setprop vendor.usb.pid 0x200C
on property:sys.usb.config=ptp,adb && property:vendor.usb.acm_cnt=1 && \
property:sys.usb.configfs=1
setprop vendor.usb.pid 0x200D
setprop vendor.usb.acm_port1 ""
on property:sys.usb.config=ptp,adb && property:vendor.usb.acm_cnt=2 && \
property:sys.usb.configfs=1
setprop vendor.usb.pid 0x2027
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=ptp,adb && \
property:vendor.usb.acm_enable=1 && property:sys.usb.configfs=1 && property:vendor.usb.ffs.ptp.ready=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ptp_adb_acm"
write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
write /sys/devices/platform/soc/mt_usb/saving 1
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
symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f3
symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port1} /config/usb_gadget/g1/configs/b.1/f4
write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=ptp,adb && \
property:vendor.usb.acm_enable=0 && property:sys.usb.configfs=1 && property:vendor.usb.ffs.ptp.ready=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ptp_adb"
write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
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
write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
setprop sys.usb.state ${sys.usb.config}
### main function : rndis ###
on property:sys.usb.config=rndis && property:vendor.usb.acm_cnt=0 && \
property:sys.usb.configfs=1
setprop vendor.usb.pid 0x2004
on property:sys.usb.config=rndis && property:vendor.usb.acm_cnt=1 && \
property:sys.usb.configfs=1
setprop vendor.usb.pid 0x2011
setprop vendor.usb.acm_port1 ""
on property:sys.usb.config=rndis && property:vendor.usb.acm_cnt=2 && \
property:sys.usb.configfs=1
setprop vendor.usb.pid 0x202C
on property:sys.usb.config=rndis && property:vendor.usb.acm_enable=1 && \
property:sys.usb.configfs=1
mkdir /config/usb_gadget/g1/functions/mtk_rndis.gs4
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ums_acm"
write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
write /sys/devices/platform/soc/mt_usb/saving 1
symlink /config/usb_gadget/g1/functions/mtk_rndis.gs4 /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f2
symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port1} /config/usb_gadget/g1/configs/b.1/f3
write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=rndis && property:vendor.usb.acm_enable=0 && \
property:sys.usb.configfs=1
mkdir /config/usb_gadget/g1/functions/mtk_rndis.gs4
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis"
write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
symlink /config/usb_gadget/g1/functions/mtk_rndis.gs4 /config/usb_gadget/g1/configs/b.1/f1
write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=rndis,adb && property:vendor.usb.acm_cnt=0 && \
property:sys.usb.configfs=1
setprop vendor.usb.pid 0x2005
on property:sys.usb.config=rndis,adb && property:vendor.usb.acm_cnt=1 && \
property:sys.usb.configfs=1
setprop vendor.usb.pid 0x2010
setprop vendor.usb.acm_port1 ""
on property:sys.usb.config=rndis,adb && property:vendor.usb.acm_cnt=2 && \
property:sys.usb.configfs=1
setprop vendor.usb.pid 0x2028
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=rndis,adb && \
property:vendor.usb.acm_enable=1 && property:sys.usb.configfs=1
mkdir /config/usb_gadget/g1/functions/mtk_rndis.gs4
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_adb_acm"
write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
write /sys/devices/platform/soc/mt_usb/saving 1
symlink /config/usb_gadget/g1/functions/mtk_rndis.gs4 /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f3
symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port1} /config/usb_gadget/g1/configs/b.1/f4
write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=rndis,adb && \
property:vendor.usb.acm_enable=0 && property:sys.usb.configfs=1
mkdir /config/usb_gadget/g1/functions/mtk_rndis.gs4
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_adb"
write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
symlink /config/usb_gadget/g1/functions/mtk_rndis.gs4 /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 ${vendor.usb.controller}
setprop sys.usb.state ${sys.usb.config}
### main function : midi ###
on property:sys.usb.config=midi && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idProduct 0x2046
on property:sys.usb.config=midi,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idProduct 0x2048
### main function : accessory ###
on property:sys.usb.config=accessory && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idVendor 0x18d1
write /config/usb_gadget/g1/idProduct 0x2d00
on property:sys.usb.config=accessory,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idVendor 0x18d1
write /config/usb_gadget/g1/idProduct 0x2d01
### main function : audio_source ###
on property:sys.usb.config=audio_source && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idVendor 0x18d1
write /config/usb_gadget/g1/idProduct 0x2d02
on property:sys.usb.config=audio_source,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idVendor 0x18d1
write /config/usb_gadget/g1/idProduct 0x2d03
### main function : accessory,audio_source ###
on property:sys.usb.config=accessory,audio_source && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idVendor 0x18d1
write /config/usb_gadget/g1/idProduct 0x2d04
on property:sys.usb.config=accessory,audio_source,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idVendor 0x18d1
write /config/usb_gadget/g1/idProduct 0x2d05
on property:sys.usb.config=via_bypass && property:vendor.usb.acm_cnt=0 && \
property:sys.usb.configfs=1
setprop vendor.usb.pid 0x2031
on property:sys.usb.config=via_bypass && property:vendor.usb.acm_cnt=1 && \
property:sys.usb.configfs=1
setprop vendor.usb.pid 0x2033
setprop vendor.usb.acm_port1 ""
##via_modem,via_ets,via_atc,acm
on property:sys.usb.config=via_bypass && property:vendor.usb.acm_enable=1 && \
property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "via_bypass"
write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
write /sys/devices/platform/soc/mt_usb/saving 1
symlink /config/usb_gadget/g1/functions/via_modem.gs0 /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/via_ets.gs0 /config/usb_gadget/g1/configs/b.1/f2
symlink /config/usb_gadget/g1/functions/via_atc.gs0 /config/usb_gadget/g1/configs/b.1/f3
symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f4
write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
setprop sys.usb.state ${sys.usb.config}
##via_modem,via_ets,via_atc,adb
on property:sys.usb.config=via_bypass && property:vendor.usb.acm_enable=0 && \
property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "via_bypass"
write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
write /sys/devices/platform/soc/mt_usb/saving 1
symlink /config/usb_gadget/g1/functions/via_modem.gs0 /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/via_ets.gs0 /config/usb_gadget/g1/configs/b.1/f2
symlink /config/usb_gadget/g1/functions/via_atc.gs0 /config/usb_gadget/g1/configs/b.1/f3
write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=via_bypass,adb && property:vendor.usb.acm_cnt=0 && \
property:sys.usb.configfs=1
setprop vendor.usb.pid 0x2032
on property:sys.usb.config=via_bypass,adb && property:vendor.usb.acm_cnt=1 && \
property:sys.usb.configfs=1
setprop vendor.usb.pid 0x2034
setprop vendor.usb.acm_port1 ""
on property:sys.usb.config=via_bypass,adb && property:vendor.usb.acm_cnt=2 && \
property:sys.usb.configfs=1
setprop vendor.usb.pid 0x2050
on property:sys.usb.config=via_bypass,adb && property:sys.usb.configfs=1
start adbd
##via_modem,via_ets,via_atc,adb,acm
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=via_bypass,adb && \
property:vendor.usb.acm_enable=1 && property:vendor.usb.acm_cnt=1 && \
property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_adb_acm"
write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
write /sys/devices/platform/soc/mt_usb/saving 1
symlink /config/usb_gadget/g1/functions/via_modem.gs0 /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/via_ets.gs0 /config/usb_gadget/g1/configs/b.1/f2
symlink /config/usb_gadget/g1/functions/via_atc.gs0 /config/usb_gadget/g1/configs/b.1/f3
symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f4
symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f5
write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
setprop sys.usb.state ${sys.usb.config}
##via_modem,acm,adb
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=via_bypass,adb && \
property:vendor.usb.acm_enable=1 && property:vendor.usb.acm_cnt=2 && \
property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_adb_acm2"
write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
write /sys/devices/platform/soc/mt_usb/saving 1
symlink /config/usb_gadget/g1/functions/via_modem.gs0 /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f3
symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port1} /config/usb_gadget/g1/configs/b.1/f4
write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
setprop sys.usb.state ${sys.usb.config}
##via_modem,via_ets,via_atc,adb
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=via_bypass,adb && \
property:vendor.usb.acm_enable=0 && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_adb"
write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
write /sys/devices/platform/soc/mt_usb/saving 1
symlink /config/usb_gadget/g1/functions/via_modem.gs0 /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/via_ets.gs0 /config/usb_gadget/g1/configs/b.1/f2
symlink /config/usb_gadget/g1/functions/via_atc.gs0 /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 ${vendor.usb.controller}
setprop sys.usb.state ${sys.usb.config}
### main function : mass_storage ###
on property:sys.usb.config=mass_storage && property:vendor.usb.acm_cnt=0 && \
property:sys.usb.configfs=1
setprop vendor.usb.pid 0x2002
on property:sys.usb.config=mass_storage && property:vendor.usb.acm_cnt=1 && \
property:sys.usb.configfs=1
setprop vendor.usb.pid 0x200F
setprop vendor.usb.acm_port1 ""
on property:sys.usb.config=mass_storage && property:vendor.usb.acm_cnt=2 && \
property:sys.usb.configfs=1
setprop vendor.usb.pid 0x202D
on property:sys.usb.config=mass_storage && property:vendor.usb.acm_enable=1 && \
property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ums_acm"
write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
write /sys/devices/platform/soc/mt_usb/saving 1
symlink /config/usb_gadget/g1/functions/mass_storage.usb0 /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f2
symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port1} /config/usb_gadget/g1/configs/b.1/f3
write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=mass_storage && property:vendor.usb.acm_enable=0 && \
property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ums"
write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
symlink /config/usb_gadget/g1/functions/mass_storage.usb0 /config/usb_gadget/g1/configs/b.1/f1
write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=mass_storage,adb && property:vendor.usb.acm_cnt=0 && \
property:sys.usb.configfs=1
setprop vendor.usb.pid 0x2003
on property:sys.usb.config=mass_storage,adb && property:vendor.usb.acm_cnt=1 && \
property:sys.usb.configfs=1
setprop vendor.usb.pid 0x2006
setprop vendor.usb.acm_port1 ""
on property:sys.usb.config=mass_storage,adb && property:vendor.usb.acm_cnt=2 && \
property:sys.usb.configfs=1
setprop vendor.usb.pid 0x2029
on property:sys.usb.config=mass_storage,adb && property:sys.usb.configfs=1
start adbd
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=mass_storage,adb && \
property:vendor.usb.acm_enable=1 && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ums_adb_acm"
write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
write /sys/devices/platform/soc/mt_usb/saving 1
symlink /config/usb_gadget/g1/functions/mass_storage.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
symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f3
symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port1} /config/usb_gadget/g1/configs/b.1/f4
write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=mass_storage,adb && \
property:vendor.usb.acm_enable=0 && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ums_adb"
write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
symlink /config/usb_gadget/g1/functions/mass_storage.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 ${vendor.usb.controller}
setprop sys.usb.state ${sys.usb.config}
### main function : bicr ###
on property:sys.usb.config=bicr && property:vendor.usb.acm_cnt=0 && \
property:sys.usb.configfs=1
setprop vendor.usb.pid 0x2002
on property:sys.usb.config=bicr && property:vendor.usb.acm_cnt=1 && \
property:sys.usb.configfs=1
setprop vendor.usb.pid 0x200F
setprop vendor.usb.acm_port1 ""
on property:sys.usb.config=bicr && property:vendor.usb.acm_cnt=2 && \
property:sys.usb.configfs=1
setprop vendor.usb.pid 0x202D
on property:sys.usb.config=bicr && property:vendor.usb.acm_enable=1 && \
property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ums_acm"
write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
write /sys/devices/platform/soc/mt_usb/saving 1
write /config/usb_gadget/g1/functions/mass_storage.usb0/lun.0/cdrom 1
write /config/usb_gadget/g1/functions/mass_storage.usb0/lun.0/file "/dev/block/loop0"
symlink /config/usb_gadget/g1/functions/mass_storage.usb0 /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f2
symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port1} /config/usb_gadget/g1/configs/b.1/f3
write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=bicr && property:vendor.usb.acm_enable=0 && \
property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ums"
write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
write /config/usb_gadget/g1/functions/mass_storage.usb0/lun.0/cdrom 1
write /config/usb_gadget/g1/functions/mass_storage.usb0/lun.0/file "/dev/block/loop0"
symlink /config/usb_gadget/g1/functions/mass_storage.usb0 /config/usb_gadget/g1/configs/b.1/f1
write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=bicr,adb && property:vendor.usb.acm_cnt=0 && \
property:sys.usb.configfs=1
setprop vendor.usb.pid 0x2003
on property:sys.usb.config=bicr,adb && property:vendor.usb.acm_cnt=1 && \
property:sys.usb.configfs=1
setprop vendor.usb.pid 0x2006
setprop vendor.usb.acm_port1 ""
on property:sys.usb.config=bicr,adb && property:vendor.usb.acm_cnt=2 && \
property:sys.usb.configfs=1
setprop vendor.usb.pid 0x2029
on property:sys.usb.config=bicr,adb && property:sys.usb.configfs=1
start adbd
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=bicr,adb && \
property:vendor.usb.acm_enable=1 && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ums_adb_acm"
write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
write /sys/devices/platform/soc/mt_usb/saving 1
write /config/usb_gadget/g1/functions/mass_storage.usb0/lun.0/cdrom 1
write /config/usb_gadget/g1/functions/mass_storage.usb0/lun.0/file "/dev/block/loop0"
symlink /config/usb_gadget/g1/functions/mass_storage.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
symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f3
symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port1} /config/usb_gadget/g1/configs/b.1/f4
write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=bicr,adb && \
property:vendor.usb.acm_enable=0 && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ums_adb"
write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
write /config/usb_gadget/g1/functions/mass_storage.usb0/lun.0/cdrom 1
write /config/usb_gadget/g1/functions/mass_storage.usb0/lun.0/file "/dev/block/loop0"
symlink /config/usb_gadget/g1/functions/mass_storage.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 ${vendor.usb.controller}
setprop sys.usb.state ${sys.usb.config}
### ACM APPEND SERIES ###
on property:persist.vendor.radio.port_index="0" && property:sys.boot_completed=1
setprop vendor.usb.acm_idx ""
setprop vendor.usb.acm_cnt 0
setprop vendor.usb.acm_enable 0
setprop sys.usb.config none
setprop sys.usb.config ${sys.usb.state}
on property:persist.vendor.radio.port_index="1" && property:sys.boot_completed=1
setprop sys.usb.config acm_gs0
on property:sys.usb.config=mass_storage,adb,acm
setprop sys.usb.config acm_gs0
on property:sys.usb.config=acm_gs0
setprop vendor.usb.acm_port0 0
setprop vendor.usb.acm_port1 ""
setprop vendor.usb.acm_cnt 1
setprop vendor.usb.acm_enable 1
setprop sys.usb.config none
setprop sys.usb.config ${sys.usb.state}
setprop vendor.usb.acm_idx "1"
on property:persist.vendor.radio.port_index="2" && property:sys.boot_completed=1
setprop sys.usb.config acm_gs1
on property:sys.usb.config=acm_gs1
setprop vendor.usb.acm_port0 1
setprop vendor.usb.acm_port1 ""
setprop vendor.usb.acm_cnt 1
setprop vendor.usb.acm_enable 1
setprop sys.usb.config none
setprop sys.usb.config ${sys.usb.state}
setprop vendor.usb.acm_idx "2"
on property:persist.vendor.radio.port_index="3" && property:sys.boot_completed=1
setprop sys.usb.config acm_gs2
on property:sys.usb.config=acm_third
setprop sys.usb.config acm_gs2
on property:sys.usb.config=acm_gs2
setprop vendor.usb.acm_port0 2
setprop vendor.usb.acm_port1 ""
setprop vendor.usb.acm_cnt 1
setprop vendor.usb.acm_enable 1
setprop sys.usb.config none
setprop sys.usb.config ${sys.usb.state}
setprop vendor.usb.acm_idx "3"
on property:persist.vendor.radio.port_index="4" && property:sys.boot_completed=1
setprop sys.usb.config acm_gs3
on property:sys.usb.config=gs3
setprop sys.usb.config acm_gs3
on property:sys.usb.config=mtp,gs3
setprop sys.usb.config acm_gs3
on property:sys.usb.config=acm_gs3
setprop vendor.usb.acm_port0 3
setprop vendor.usb.acm_port1 ""
setprop vendor.usb.acm_cnt 1
setprop vendor.usb.acm_enable 1
setprop sys.usb.config none
setprop sys.usb.config ${sys.usb.state}
setprop vendor.usb.acm_idx "4"
on property:sys.usb.config=mtp,gs0gs1
setprop sys.usb.config acm_gs0gs1
on property:sys.usb.config=gs0gs1
setprop sys.usb.config acm_gs0gs1
on property:sys.usb.config=rndis,gs0gs1
setprop sys.usb.config acm_gs0gs1
on property:sys.usb.config=rndis,adb,gs0gs1
setprop sys.usb.config acm_gs0gs1
on property:sys.usb.config=acm_gs0gs1
setprop vendor.usb.acm_port0 0
setprop vendor.usb.acm_port1 1
setprop vendor.usb.acm_cnt 2
setprop vendor.usb.acm_enable 1
setprop sys.usb.config none
setprop sys.usb.config ${sys.usb.state}
setprop vendor.usb.acm_idx "1,2"
on property:sys.usb.config=gs3,dual_acm
setprop sys.usb.config acm_gs0gs3
on property:sys.usb.config=mtp,gs3,dual_acm
setprop sys.usb.config acm_gs0gs3
on property:sys.usb.config=mtp,gs0gs3
setprop sys.usb.config acm_gs0gs3
on property:sys.usb.config=gs0gs3
setprop sys.usb.config acm_gs0gs3
on property:sys.usb.config=rndis,gs0gs3
setprop sys.usb.config acm_gs0gs3
on property:sys.usb.config=rndis,adb,gs0gs3
setprop sys.usb.config acm_gs0gs3
on property:sys.usb.config=acm_gs0gs3
setprop vendor.usb.acm_port0 0
setprop vendor.usb.acm_port1 3
setprop vendor.usb.acm_cnt 2
setprop vendor.usb.acm_enable 1
setprop sys.usb.config none
setprop sys.usb.config ${sys.usb.state}
setprop vendor.usb.acm_idx "1,4"
on property:sys.usb.config=gs1gs3
setprop sys.usb.config acm_gs1gs3
on property:sys.usb.config=mtp,gs1gs3
setprop sys.usb.config acm_gs1gs3
on property:sys.usb.config=via_bypass,gs1gs3
setprop sys.usb.config acm_gs1gs3
on property:sys.usb.config=rndis,gs1gs3
setprop sys.usb.config acm_gs1gs3
on property:sys.usb.config=acm_gs1gs3
setprop vendor.usb.acm_port0 1
setprop vendor.usb.acm_port1 3
setprop vendor.usb.acm_cnt 2
setprop vendor.usb.acm_enable 1
setprop sys.usb.config none
setprop sys.usb.config ${sys.usb.state}
setprop vendor.usb.acm_idx "2,4"
# For ATM (Android Test Mode)
on property:vendor.usb.clear=1 && property:sys.usb.configfs=1
write /config/usb_gadget/g1/UDC "none"
write /config/usb_gadget/g1/bDeviceClass 0
write /config/usb_gadget/g1/bDeviceSubClass 0
write /config/usb_gadget/g1/bDeviceProtocol 0
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
rmdir /config/usb_gadget/g1/functions/mtk_rndis.gs4
write /sys/devices/platform/soc/mt_usb/saving 0
setprop vendor.usb.clear 2
# has permission issue when read from ${sys.usb.ffs.ready}
on property:sys.usb.ffs.ready=0
setprop vendor.usb.ffs.ready 0
on property:sys.usb.ffs.ready=1
setprop vendor.usb.ffs.ready 1
on property:sys.usb.config=atm_gs0 && property:sys.usb.configfs=1
stop adbd
setprop vendor.usb.ffs.ready 0
setprop vendor.usb.clear 1
on property:vendor.usb.ffs.ready=0 && property:sys.usb.config=atm_gs0 && \
property:vendor.usb.clear=2 && property:sys.usb.configfs=1
start adbd
on property:vendor.usb.ffs.ready=1 && property:sys.usb.config=atm_gs0 && \
property:vendor.usb.clear=2 && property:sys.usb.configfs=1
setprop vendor.usb.acm_port0 0
setprop vendor.usb.acm_port1 ""
setprop vendor.usb.acm_cnt 1
setprop vendor.usb.acm_enable 1
write /sys/devices/platform/soc/mt_usb/saving 1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "atm_gs0"
write /config/usb_gadget/g1/idProduct 0x200A
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
symlink /config/usb_gadget/g1/functions/acm.gs0 /config/usb_gadget/g1/configs/b.1/f3
write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
#setprop sys.usb.state ${sys.usb.config}
setprop vendor.usb.pid 0x200A
#setprop vendor.usb.clear 0
setprop vendor.usb.acm_idx "1"
on property:sys.usb.config=atm_gs0gs3 && property:sys.usb.configfs=1
stop adbd
setprop vendor.usb.ffs.ready 0
setprop vendor.usb.clear 1
on property:vendor.usb.ffs.ready=0 && property:sys.usb.config=atm_gs0gs3 && \
property:vendor.usb.clear=2 && property:sys.usb.configfs=1
start adbd
on property:vendor.usb.ffs.ready=1 && property:sys.usb.config=atm_gs0gs3 && \
property:vendor.usb.clear=2 && property:sys.usb.configfs=1
setprop vendor.usb.acm_port0 0
setprop vendor.usb.acm_port1 3
setprop vendor.usb.acm_cnt 2
setprop vendor.usb.acm_enable 1
write /sys/devices/platform/soc/mt_usb/saving 1
write /config/usb_gadget/g1/idProduct 0x2026
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
symlink /config/usb_gadget/g1/functions/acm.gs0 /config/usb_gadget/g1/configs/b.1/f3
symlink /config/usb_gadget/g1/functions/acm.gs3 /config/usb_gadget/g1/configs/b.1/f4
write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
#setprop sys.usb.state ${sys.usb.config}
setprop vendor.usb.pid 0x2026
#setprop vendor.usb.clear 0
setprop vendor.usb.acm_idx "1,4"
### CHARGING ###
on property:sys.usb.config=cdp && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "mtp"
write /config/usb_gadget/g1/idProduct 0x2008
write /config/usb_gadget/g1/os_desc/use 1
symlink /config/usb_gadget/g1/functions/ffs.mtp /config/usb_gadget/g1/configs/b.1/f1
write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
setprop sys.usb.state ${sys.usb.config}
setprop vendor.usb.pid 0x2008
on property:sys.usb.config=charging_yes
setprop vendor.usb.charging yes
setprop sys.usb.config none
setprop sys.usb.config ${sys.usb.state}
on property:sys.usb.config=charging_no
setprop sys.usb.config none
setprop sys.usb.config ${sys.usb.state}
setprop vendor.usb.charging no
on property:vendor.usb.charging=yes
write /sys/class/udc/musb-hdrc/device/cmode 0
on property:vendor.usb.charging=no
write /sys/class/udc/musb-hdrc/device/cmode 1
on property:vendor.usb.bicr=yes
write /sys/class/android_usb/android0/f_mass_storage/bicr 1
write /sys/class/android_usb/android0/f_mass_storage/lun/file "/dev/block/loop0"
on property:vendor.usb.bicr=no
write /sys/class/android_usb/android0/f_mass_storage/bicr 0
write /sys/class/android_usb/android0/f_mass_storage/lun/file "off"
on property:vendor.usb.port.mode=usb
write /sys/devices/platform/soc/mt_usb/portmode 0
on property:vendor.usb.port.mode=uart
write /sys/devices/platform/soc/mt_usb/portmode 1
on property:vendor.em.usb.set=term_sel
write /proc/mtk_usb/usb-phy0/u2_phy/term_sel ${vendor.em.usb.value}
on property:vendor.em.usb.set=vrt_sel
write /proc/mtk_usb/usb-phy0/u2_phy/vrt_sel ${vendor.em.usb.value}
on property:vendor.em.usb.set=phy_rev6
write /proc/mtk_usb/usb-phy0/u2_phy/phy_rev6 ${vendor.em.usb.value}
on property:vendor.em.usb.set=discth
write /proc/mtk_usb/usb-phy0/u2_phy/discth ${vendor.em.usb.value}
on property:vendor.em.usb.bypass.enable=0
write /sys/class/usb_rawbulk/gps/enable 1
on property:vendor.em.usb.bypass.enable=1
write /sys/class/usb_rawbulk/pcv/enable 1
on property:vendor.em.usb.bypass.enable=2
write /sys/class/usb_rawbulk/atc/enable 1
on property:vendor.em.usb.bypass.enable=3
write /sys/class/usb_rawbulk/ets/enable 1
on property:vendor.em.usb.bypass.enable=4
write /sys/class/usb_rawbulk/data/enable 1
on property:vendor.em.usb.bypass.disable=0
write /sys/class/usb_rawbulk/gps/enable 0
on property:vendor.em.usb.bypass.disable=1
write /sys/class/usb_rawbulk/pcv/enable 0
on property:vendor.em.usb.bypass.disable=2
write /sys/class/usb_rawbulk/atc/enable 0
on property:vendor.em.usb.bypass.disable=3
write /sys/class/usb_rawbulk/ets/enable 0
on property:vendor.em.usb.bypass.disable=4
write /sys/class/usb_rawbulk/data/enable 0
### vendor process start ###
on property:vendor.usb.config=*
setprop sys.usb.config ${vendor.usb.config}
### vendor process end ###
### test command start ###
on property:vendor.usb.test=*
setprop sys.usb.config none
setprop sys.usb.config ${vendor.usb.test}
### test command end ###
on property:vendor.usb.printk=*
write /proc/sys/kernel/printk ${vendor.usb.printk}
on property:persist.vendor.usb.printk=*
setprop vendor.usb.printk ${persist.vendor.usb.printk}
on property:vendor.usb.speed.mode=u3
write /sys/class/udc/${vendor.usb.controller}/device/max_speed super-speed
write /sys/class/udc/${vendor.usb.controller}/device/mode 0
write /sys/class/udc/${vendor.usb.controller}/device/mode 1
on property:vendor.usb.speed.mode=u2
write /sys/class/udc/${vendor.usb.controller}/device/max_speed high-speed
write /sys/class/udc/${vendor.usb.controller}/device/mode 0
write /sys/class/udc/${vendor.usb.controller}/device/mode 1
on property:persist.vendor.usb.speed.mode=u3
write /sys/class/udc/${vendor.usb.controller}/device/max_speed super-speed
write /sys/class/udc/${vendor.usb.controller}/device/mode 0
write /sys/class/udc/${vendor.usb.controller}/device/mode 1
on property:persist.vendor.usb.speed.mode=u2
write /sys/class/udc/${vendor.usb.controller}/device/max_speed high-speed
write /sys/class/udc/${vendor.usb.controller}/device/mode 0
write /sys/class/udc/${vendor.usb.controller}/device/mode 1
on property:vendor.usb.sib_enable=1
write /proc/mtk_usb/usb-phy0/u3_phy/sib 1
on property:vendor.usb.sib_enable=0
write /proc/mtk_usb/usb-phy0/u3_phy/sib 0
on property:vendor.usb.testmode=0
write /proc/mtk_usb/xhci0/testmode "0"
on property:vendor.usb.testmode=1
write /proc/mtk_usb/xhci0/testmode "test SE0 NAK"
on property:vendor.usb.testmode=2
write /proc/mtk_usb/xhci0/testmode "test J"
on property:vendor.usb.testmode=3
write /proc/mtk_usb/xhci0/testmode "test K"
on property:vendor.usb.testmode=4
write /proc/mtk_usb/xhci0/testmode "test packet"
on property:vendor.usb.device.wakeup=*
write ${vendor.usb.device.wakeup} "enabled"
### PLATFORM VARIANT, cat $rc_file | grep write | sort | grep -vE "android0|usb20_phy" | awk '{print $2}' | uniq ###

View File

@ -0,0 +1,11 @@
service insmod_sh /vendor/bin/init.insmod.sh /vendor/etc/init.insmod.${ro.hardware}.cfg
class main
user root
group root system
disabled
oneshot
on early-init
setprop vendor.all.modules.ready 0
write /proc/bootprof "modprobe: Load_Module_START"
start insmod_sh

View File

@ -0,0 +1,61 @@
import /vendor/etc/init/hw/init.mtkgki.rc
# MTK project .rc configure
on init
mkdir /mnt/media_rw/usbotg 0700 media_rw media_rw
mkdir /storage/usbotg 0700 root root
on post-fs-data
#Camera
chmod 0660 /dev/MAINAF
chown system camera /dev/MAINAF
chmod 0660 /dev/MAINAF2
chown system camera /dev/MAINAF2
chmod 0660 /dev/SUBAF
chown system camera /dev/SUBAF
chmod 0660 /dev/GAF001AF
chown system camera /dev/GAF001AF
chmod 0660 /dev/DW9714AF
chown system camera /dev/DW9714AF
chmod 0660 /dev/LC898212AF
chown system camera /dev/LC898212AF
chmod 0660 /dev/BU64745GWZAF
chown system camera /dev/BU64745GWZAF
#SMB
chown system system /proc/smb/ScreenComm
chmod 0660 /proc/smb/ScreenComm
chmod 0660 /dev/spm
chown system system /dev/spm
on init
# Refer to http://source.android.com/devices/tech/storage/index.html
# It said, "Starting in Android 4.4, multiple external storage devices are surfaced to developers through
# Context.getExternalFilesDirs(), Context.getExternalCacheDirs(), and Context.getObbDirs().
# External storage devices surfaced through these APIs must be a semi-permanent part of the device (such as an SD card slot in a battery compartment).
# Developers expect data stored in these locations to be available over long periods of time."
# Therefore, if the target doesn't support sd hot-plugging (Ex: the SD card slot in a battery compartment), we need to export SECONDARY_STORAGE in 'boot' section
#
# export SECONDARY_STORAGE /storage/sdcard1
service fuse_usbotg /system/bin/sdcard -u 1023 -g 1023 -w 1023 -d /mnt/media_rw/usbotg /storage/usbotg
class late_start
disabled
# start mmstat
on property:sys.boot_completed=1
mkdir /sys/kernel/tracing/instances/mmstat 711
write /sys/kernel/tracing/instances/mmstat/tracing_on 0
write /sys/kernel/tracing/instances/mmstat/buffer_size_kb 16
write /sys/kernel/tracing/instances/mmstat/events/mmstat/enable 1
write /sys/kernel/tracing/instances/mmstat/tracing_on 1

View File

@ -0,0 +1,7 @@
# MTK platform .rc configure
on post-fs-data
# calibration
mkdir /data/vendor/sensor 0774 system system
# Sensor
chmod 0660 /dev/hf_manager
chown system system /dev/hf_manager

View File

@ -0,0 +1,46 @@
# MTK connectivity .rc configure
on post-fs-data
mkdir /data/vendor/stp_dump 0755 system system
mkdir /data/vendor/connsyslog 0755 system system
on boot
# WMT
service wmt_loader /vendor/bin/wmt_loader
class early_hal
user system
group system
oneshot
service wmt_launcher /vendor/bin/wmt_launcher -p /vendor/firmware/ -o 1
class early_hal
user system
group system
on property:ro.build.type=eng
write /sys/kernel/debug/tracing/tracing_on 1
on property:persist.vendor.connsys.coredump.mode=1
start stp_dump
on property:persist.vendor.connsys.coredump.mode=2
start stp_dump
on property:persist.vendor.connsys.coredump.mode=0
stop stp_dump
on property:vendor.connsys.driver.ready=yes && property:persist.vendor.connsys.coredump.mode=*
write /proc/driver/wmt_user_proc "0x1 ${persist.vendor.connsys.coredump.mode}"
on property:vendor.connsys.driver.ready=yes && property:debug.vendor.connsys.suspend.alarm=*
write /proc/driver/wmt_user_proc "0x2 ${debug.vendor.connsys.suspend.alarm}"
on property:persist.vendor.em.dy.debug=1
setprop persist.vendor.connsys.coredump.mode 0
service stp_dump /vendor/bin/stp_dump3
user system
group system sdcard_rw misc
class core
disabled

View File

@ -0,0 +1,80 @@
#INTERNAL_START
on post-fs-data
#
# Connectivity related modules and character device nodes (Begin)
#
#/dev/ttyMT2 for Connectivity BT/FM/GPS usage
chmod 0660 /dev/ttyMT2
chown system system /dev/ttyMT2
# GPS
mkdir /data/vendor/gps 0770 gps system
mkdir /data/vendor/log 0770 gps system
mkdir /data/vendor/log/gps 0770 gps system
# GPS EMI
chmod 666 /dev/gps_emi
# WiFi
mkdir /data/misc/wifi 0770 wifi wifi
mkdir /data/misc/wifi/sockets 0770 wifi wifi
mkdir /data/misc/wpa_supplicant 0770 wifi wifi
#
# Connectivity related device nodes & configuration (end)
#
on boot
#
# Connectivity related services (Begin)
#
# GPS
service mnld /vendor/bin/mnld 1Hz=y meta log_ctrl
class main
user gps
group gps inet misc sdcard_rw sdcard_r media_rw system radio wakelock
socket mnld stream 660 gps system
#service BGW /vendor/bin/BGW
# user system
# group gps system radio
# class main
#
# Connectivity related services (End)
#
#
# Connectivity related kernel objects (Begin)
#
# load connfem driver
on boot
insmod /vendor/lib/modules/connfem.ko
# load bt_drv
on property:vendor.connsys.driver.ready=yes
insmod /vendor/lib/modules/bt_drv_${ro.vendor.bt.platform}.ko
# load wifi chrdev driver and wlan driver after wmt_loader finish
on property:vendor.connsys.driver.ready=yes
insmod /vendor/lib/modules/${ro.vendor.wlan.chrdev}.ko
insmod /vendor/lib/modules/wlan_drv_${ro.vendor.wlan.gen}.ko
# load fmradio_drv
on property:vendor.connsys.driver.ready=yes
insmod /vendor/lib/modules/fmradio_drv_${ro.vendor.fm.platform}.ko
# load gps_drv
on property:vendor.connsys.driver.ready=yes
insmod /vendor/lib/modules/${ro.vendor.gps.chrdev}.ko
#
# Connectivity related kernel objects (End)
#
#INTERNAL_END

View File

@ -0,0 +1,37 @@
import /vendor/etc/init/hw/meta_init.connectivity.common.rc
#INTERNAL_START
on boot
#
# Connectivity related services (Begin)
#
# WMT
service wmt_loader /vendor/bin/wmt_loader
user system
group system
oneshot
service wmt_launcher /vendor/bin/wmt_launcher -p /vendor/firmware/
user system
group system
#
# Connectivity related services (End)
#
#
# Connectivity related kernel objects (Begin)
#
# load wmt_drv
on boot
insmod /vendor/lib/modules/wmt_drv.ko
#
# Connectivity related kernel objects (End)
#
#INTERNAL_END

View File

@ -0,0 +1,39 @@
# Copyright (C) 2012 The Android Open Source Project
#
# IMPORTANT: Do not create world writable files or directories.
# This is a common source of Android security bugs.
#
on post-fs-data
write /proc/bootprof "post-fs-data: on meta modem start"
# Modem related device nodes
mkdir /mnt/vendor/nvdata/md 0770 root system
mkdir /mnt/vendor/nvdata/md3 0770 root system
mkdir /data/md3 0770 root system
# Build-in Modified - S
# insmod /vendor/lib/modules/ccci_plat.ko
# insmod /vendor/lib/modules/ccci.ko
# Build-in Modified - E
chown radio radio /sys/kernel/ccci/boot
#SeLinux
mkdir /data/ccci_cfg 0770 system radio
restorecon /data/ccci_cfg
restorecon_recursive /mnt/vendor/protect_f
restorecon_recursive /mnt/vendor/protect_s
# Encrypt phone function
setprop vold.post_fs_data_done 1
service ccci_mdinit /vendor/bin/ccci_mdinit 0
user system
group radio system
oneshot
service ccci_rpcd /vendor/bin/ccci_rpcd 0
user radio
group radio system
oneshot

View File

@ -0,0 +1,15 @@
import /vendor/etc/init/hw/init.mtkgki.rc
#INTERNAL_START
on post-fs
chmod 0660 /dev/spm
chown system system /dev/spm
service spm_script /vendor/bin/spm_loader
user system
group system
oneshot
#INTERNAL_END

378
rootdir/etc/meta_init.rc Normal file
View File

@ -0,0 +1,378 @@
# Copyright (C) 2012 The Android Open Source Project
#
# IMPORTANT: Do not create world writable files or directories.
# This is a common source of Android security bugs.
#
# I am S vendor meta_init.rc
import /vendor/etc/init/hw/init.aee.rc
import /vendor/etc/init/trustonic.rc
import ${ro.vendor.rc}meta_init.connectivity.rc
import /vendor/etc/init/hw/meta_init.project.rc
import /vendor/etc/init/microtrust.rc
import /vendor/etc/init/android.hardware.boot@1.2-service.rc
import /vendor/etc/init/android.hardware.boot@1.2-service-lazy.rc
import /vendor/etc/init/android.hardware.health@2.1-service.rc
#import ${ro.vendor.rc}multi_init.rc
#phase out multi_init.rc, move related vendor rc to here.
#start
import /vendor/etc/init/aee_aedv.rc
import /vendor/etc/init/aee_aedv64.rc
import /vendor/etc/init/storageproxyd.rc
import /vendor/etc/init/android.hardware.keymaster@3.0-service.rc
import /vendor/etc/init/android.hardware.keymaster@3.0-service.trustonic.rc
import /vendor/etc/init/android.hardware.keymaster@4.0-service.rc
import /vendor/etc/init/android.hardware.keymaster@4.0-service.trustonic.rc
import /vendor/etc/init/android.hardware.keymaster@4.0-service.beanpod.rc
import /vendor/etc/init/android.hardware.keymaster@4.0-service.beanpod.lite.rc
import /vendor/etc/init/android.hardware.keymaster@4.0-service.trustkernel.rc
import /vendor/etc/init/android.hardware.keymaster@4.0-service.mtee.rc
import /vendor/etc/init/android.hardware.keymaster@4.1-service.rc
import /vendor/etc/init/android.hardware.keymaster@4.1-service.trustonic.rc
import /vendor/etc/init/android.hardware.keymaster@4.1-service.beanpod.rc
import /vendor/etc/init/android.hardware.keymaster@4.1-service.beanpod.lite.rc
import /vendor/etc/init/android.hardware.keymaster@4.1-service.trustkernel.rc
import /vendor/etc/init/android.hardware.security.keymint-service.rc
#import /vendor/etc/init/vendor.mediatek.hardware.keyinstall@1.0-service.rc
import /vendor/etc/init/vendor.mediatek.hardware.keymanage@1.0-service.rc
import /vendor/etc/init/android.hardware.audio.service.mediatek.rc
import /vendor/etc/init/vendor.mediatek.hardware.keymaster_attestation@1.1-service.rc
import /vendor/etc/init/android.hardware.nfc@1.2-service-st.rc
import /vendor/etc/init/tee.rc
import /vendor/etc/init/vendor.mediatek.hardware.nvram@1.1-sevice.rc
import /vendor/etc/init/vendor.mediatek.hardware.nvram@1.1-sevice-lazy.rc
import /vendor/etc/init/android.hardware.light@2.0-service-mediatek.rc
import /vendor/etc/init/android.hardware.light@2.0-service-mediatek-lazy.rc
import /vendor/etc/init/lights-mtk-default.rc
import /vendor/etc/init/lights-mtk-lazy.rc
import /vendor/etc/init/merged_hal_service.rc
import /vendor/etc/init/spm_script.rc
import /vendor/etc/init/nvram_daemon.rc
import /vendor/etc/init/microtrust.bp_kmsetkey_ca.rc
import /vendor/etc/init/vendor.microtrust.hardware.thh@2.0-service.rc
import /vendor/etc/init/microtrust.init_thh.rc
#end
#Make sure meta_init.modem.rc is the last rc file.
import ${ro.vendor.rc}meta_init.modem.rc
on early-init
write /proc/bootprof "INIT:early-init"
# Set init and its forked children's oom_adj.
write /proc/1/oom_score_adj -1000
#INTERNAL_START
mount debugfs debugfs /sys/kernel/debug
chmod 0755 /sys/kernel/debug
#INTERNAL_END
# initialize vendor.all.modules.ready to 1 here to prevent NOT GKI project blocked
setprop vendor.all.modules.ready 1
on init
write /proc/bootprof "INIT:init"
write /proc/bootprof "INIT: on init mt6855 start"
# Backward compatibility.
symlink /system/bin /bin
symlink /system/etc /etc
# Backward compatibility.
symlink /sys/kernel/debug /d
# Link /vendor to /system/vendor for devices without a vendor partition.
symlink /system/vendor /vendor
# Temp Backward compatibility
symlink /dev/block/by-name/boot /dev/bootimg
symlink /dev/block/by-name/recovery /dev/recovery
symlink /dev/block/by-name/secro /dev/sec_ro
symlink /dev/block/by-name/kb /dev/kb
symlink /dev/block/by-name/dkb /dev/dkb
symlink /dev/block/by-name/seccfg /dev/seccfg
symlink /dev/block/by-name/proinfo /dev/pro_info
symlink /dev/block/by-name/nvram /dev/nvram
symlink /dev/block/by-name/para /dev/misc
symlink /dev/block/by-name/logo /dev/logo
# Support legacy paths
symlink /sdcard /mnt/sdcard
#INTERNAL_START
symlink /sdcard /mnt/sdcard
mkdir /mnt/cd-rom 0000 system system
#INTERNAL_END
start hidl_memory
# Load properties from /system/ + /factory after fs mount.
on load_system_props_action
load_system_props
# avoid no log in meta mode due to logd-reinit
# stop keyinstall-1-0
# start keyinstall-1-0
on fs
## USB configfs
mkdir /dev/usb-ffs 0770 shell shell
mkdir /dev/usb-ffs/adb 0770 shell shell
mkdir /config/usb_gadget/g1 0770 shell shell
write /config/usb_gadget/g1/idVendor 0x0E8D
write /config/usb_gadget/g1/bcdDevice 0xFFFF
write /config/usb_gadget/g1/bcdUSB 0x0200
mkdir /config/usb_gadget/g1/strings/0x409 0770
write /config/usb_gadget/g1/strings/0x409/manufacturer "Android"
write /config/usb_gadget/g1/strings/0x409/product "Android"
write /config/usb_gadget/g1/bDeviceClass 0
write /config/usb_gadget/g1/bDeviceSubClass 0
write /config/usb_gadget/g1/bDeviceProtocol 0
mkdir /config/usb_gadget/g1/functions/mass_storage.usb0
mkdir /config/usb_gadget/g1/functions/ffs.adb
mkdir /config/usb_gadget/g1/functions/acm.gs0
mkdir /config/usb_gadget/g1/functions/acm.gs1
mkdir /config/usb_gadget/g1/functions/acm.gs2
mkdir /config/usb_gadget/g1/functions/acm.gs3
mkdir /config/usb_gadget/g1/configs/b.1 0770 shell shell
mkdir /config/usb_gadget/g1/configs/b.1/strings/0x409 0770 shell shell
write /config/usb_gadget/g1/configs/b.1/MaxPower 500
symlink /config/usb_gadget/g1/configs/b.1 /config/usb_gadget/g1/os_desc/b.1
setprop vendor.usb.feature 0
#INTERNAL_START
write /proc/bootprof "INIT:Mount_START"
start vendor.boot-hal-1-2
mount_all --early
write /proc/bootprof "INIT:Mount_END"
#INTERNAL_END
on post-fs
# start keyinstall-1-0
start vendor.light-default
start merged_hal_service
start health-hal-2-1
# Support legacy paths
symlink /sdcard /storage/sdcard0
#INTERNAL_START
chown system system /mnt/vendor/protect_f
chmod 0770 /mnt/vendor/protect_f
chown system system /mnt/vendor/protect_s
chmod 0770 /mnt/vendor/protect_s
chown system system /mnt/vendor/nvcfg
chmod 0771 /mnt/vendor/nvcfg
restorecon_recursive /mnt/vendor/nvcfg
chown root system /mnt/vendor/nvdata
chmod 0771 /mnt/vendor/nvdata
mkdir /mnt/vendor/nvdata/media 0771 media audio
restorecon_recursive /mnt/vendor/nvdata
#INTERNAL_END
on late-fs
start keystore2
start vendor.keymaster-3-0
start vendor.keymaster-3-0-trustonic
start vendor.keymaster-4-0
start vendor.keymaster-4-0-trustonic
start vendor.keymaster-4-0-beanpod
start vendor.keymaster-4-1
start vendor.keymaster-4-1-trustonic
start vendor.keymaster-4-1-beanpod
start vendor.keymint-default
start vendor.keymint-trustonic
start vendor.keymint-beanpod
start keymaster_attestation-1-1
exec_start wait_for_keymaster
mount_all --late
on post-fs-data
write /proc/bootprof "INIT:post-fs-data"
wait_for_prop vendor.all.modules.ready 1
write /proc/bootprof "modprobe: Load_Module_DONE"
#Thermal
mkdir /data/.tp/ 0775 system system
#INTERNAL_START
# WiFi
mkdir /data/misc/wifi 0770 system wifi
mkdir /data/misc/wifi/sockets 0770 system wifi
mkdir /data/misc/dhcp 0770 dhcp dhcp
chown dhcp dhcp /data/misc/dhcp
#give system access to rfkill device node
chmod 0660 /dev/rfkill
# RTC
mkdir /data/misc/rtc 0770 system system
# Android SEC related device nodes
chmod 0660 /dev/sec
chown root system /dev/sec
#change partition permission
exec /vendor/etc/partition_permission.sh
chmod 0666 /dev/exm0
#INTERNAL_END
on boot
# For backlight
chmod 0664 /sys/class/leds/lcd-backlight/brightness
chown system system /sys/class/leds/lcd-backlight/brightness
#INTERNAL_START
class_start default
#INTERNAL_END
#USB configfs
mount functionfs adb /dev/usb-ffs/adb uid=2000,gid=2000
chown system radio /dev/ttyGS3
chmod 0660 /dev/ttyGS3
setprop sys.usb.configfs 1
setprop sys.usb.ffs.aio_compat 0
# One shot invocation to encrypt unencrypted volumes
# mtk modification:
# To speed up the booting in meta/factory mode, we don't encrypt the device.
# And then handle it as 'unencrypted' state.
on encrypt
mount ext4 /dev/block/by-name/userdata /data noatime nosuid nodev noauto_da_alloc discard wait
setprop vendor.crypto.fake_encrypt 1
setprop vold.post_fs_data_done 0
trigger post-fs-data
on property:vendor.crypto.fake_encrypt=1 && property:vold.post_fs_data_done=1
trigger load_persist_props_action
# setprop ro.crypto.state unencrypted
setprop vendor.soter.teei.crypto.state unencrypted
exec_start update_verifier
class_start main
class_start late_start
start mount_all_storages
#Log too much setting
on property:ro.vendor.mtklog_internal=1
setprop vendor.logmuch.value 10000
#INTERNAL_START
service thermal_manager /vendor/bin/thermal_manager
user root
group system
oneshot
service loghidlvendorservice /vendor/bin/loghidlvendorservice
class main
user shell
group system shell radio
service meta_tst /vendor/bin/meta_tst
user root
group radio system wifi audio bluetooth media gps
socket meta-atci stream 660 radio system
service factory_no_image /vendor/bin/factory
user root
group radio system wifi media gps audio bluetooth wakelock nfc
capabilities BLOCK_SUSPEND NET_RAW NET_ADMIN SYS_ADMIN SYS_BOOT
socket factory-atci stream 660 radio system
service atcid-daemon-u /vendor/bin/atcid
interface vendor.mediatek.hardware.atci@1.0::IAtcid default
class hal
class core
socket adb_atci_socket stream 660 radio system
user root
group radio system
oneshot
service fuelgauged /vendor/bin/fuelgauged
class main
user system
group system
on property:vendor.mtk.factory.start=1
stop factory_no_image
start factory_no_image
#META+ADB
on property:ro.boot.usbconfig=0 && property:sys.usb.configfs=1
write /proc/bootprof "INIT:start adbd"
start adbd
on property:sys.usb.ffs.ready=1 && property:ro.boot.usbconfig=0 && property:sys.usb.configfs=1 && \
property:vendor.usb.feature=0
write /proc/bootprof "INIT:on property:ro.boot.usbconfig=0"
write /config/usb_gadget/g1/UDC "none"
write /config/usb_gadget/g1/strings/0x409/serialnumber ${ro.serialno}
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "adb_acm"
write /config/usb_gadget/g1/idProduct 0x200E
symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/acm.gs0 /config/usb_gadget/g1/configs/b.1/f2
write /config/usb_gadget/g1/UDC "musb-hdrc"
#META, move this to kernel driver: CONFIG_USB_CONFIGFS_MTK_FASTMETA
on property:ro.boot.usbconfig=1 && property:sys.usb.configfs=1 && property:vendor.usb.feature=0
write /proc/bootprof "INIT:on property:ro.boot.usbconfig 1"
#write /config/usb_gadget/g1/UDC "none"
#write /config/usb_gadget/g1/strings/0x409/serialnumber ""
#write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "acm"
#write /config/usb_gadget/g1/idProduct 0x2007
#write /config/usb_gadget/g1/bDeviceClass 02
#symlink /config/usb_gadget/g1/functions/acm.gs0 /config/usb_gadget/g1/configs/b.1/f1
#write /config/usb_gadget/g1/UDC "musb-hdrc"
#META+ELT, move this to kernel driver: CONFIG_USB_CONFIGFS_MTK_FASTMETA
on property:ro.boot.usbconfig=2 && property:sys.usb.configfs=1
write /proc/bootprof "INIT:on property:ro.boot.usbconfig 2"
setprop vendor.usb.acm_idx 1,4
#write /config/usb_gadget/g1/UDC "none"
#write /config/usb_gadget/g1/strings/0x409/serialnumber $ro.serialno
#write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "meta_elt"
#write /config/usb_gadget/g1/idProduct 0x202d
#symlink /config/usb_gadget/g1/functions/mass_storage.usb0 /config/usb_gadget/g1/configs/b.1/f1
#symlink /config/usb_gadget/g1/functions/acm.gs0 /config/usb_gadget/g1/configs/b.1/f2
#symlink /config/usb_gadget/g1/functions/acm.gs3 /config/usb_gadget/g1/configs/b.1/f3
#write /config/usb_gadget/g1/UDC "musb-hdrc"
#META+ELT+ADB
on property:ro.boot.usbconfig=3 && property:sys.usb.configfs=1
write /proc/bootprof "INIT:start adbd"
start adbd
on property:sys.usb.ffs.ready=1 && property:ro.boot.usbconfig=3 && property:sys.usb.configfs=1
write /proc/bootprof "INIT:on property:ro.boot.usbconfig 3"
write /config/usb_gadget/g1/UDC "none"
write /config/usb_gadget/g1/strings/0x409/serialnumber ${ro.serialno}
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "meta_elt_adb"
write /config/usb_gadget/g1/idProduct 0x2040
write /sys/devices/platform/soc/mt_usb/saving 1
symlink /config/usb_gadget/g1/functions/mass_storage.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
symlink /config/usb_gadget/g1/functions/acm.gs0 /config/usb_gadget/g1/configs/b.1/f3
symlink /config/usb_gadget/g1/functions/acm.gs3 /config/usb_gadget/g1/configs/b.1/f4
write /config/usb_gadget/g1/UDC "musb-hdrc"
setprop vendor.usb.acm_idx 1,4
# MTK fast charging support
on property:persist.vendor.mediatek.fast_charging.support=*
write /sys/devices/platform/charger/fast_chg_indicator ${persist.vendor.mediatek.fast_charging.support}
#INTERNAL_END

View File

@ -0,0 +1,11 @@
# Copyright (C) 2012 The Android Open Source Project
#
# IMPORTANT: Do not create world writable files or directories.
# This is a common source of Android security bugs.
#
import /vendor/etc/init/android.hardware.keymaster@4.1-service.mtee.rc
import /vendor/etc/init/android.hardware.security.keymint-service.trustonic.rc
import /vendor/etc/init/android.hardware.security.keymint-service.beanpod.rc
import /vendor/etc/init/hw/meta_init.rc

50
rootdir/etc/multi_init.rc Normal file
View File

@ -0,0 +1,50 @@
# import AOSP service related rc in meta mode and factory mode.
#
import /system_ext/etc/init/aee_aed.rc
import /system_ext/etc/init/aee_aed64.rc
import /vendor/etc/init/aee_aedv.rc
import /vendor/etc/init/aee_aedv64.rc
import /system/etc/init/logd.rc
import /system/etc/init/logd_e.rc
import /system/etc/init/logcatd.rc
import /system/etc/init/storagemanagerd.rc
import /system/etc/init/mobile_log_d.rc
import /system/etc/init/android.system.suspend@1.0-service.rc
import /system/etc/init/wait_for_keymaster.rc
import /system/etc/init/keystore2.rc
import /vendor/etc/init/storageproxyd.rc
import /vendor/etc/init/android.hardware.keymaster@3.0-service.rc
import /vendor/etc/init/android.hardware.keymaster@3.0-service.trustonic.rc
import /vendor/etc/init/android.hardware.keymaster@4.0-service.rc
import /vendor/etc/init/android.hardware.keymaster@4.0-service.trustonic.rc
import /vendor/etc/init/android.hardware.keymaster@4.0-service.beanpod.rc
import /vendor/etc/init/android.hardware.keymaster@4.0-service.beanpod.lite.rc
import /vendor/etc/init/android.hardware.keymaster@4.0-service.trustkernel.rc
import /vendor/etc/init/android.hardware.keymaster@4.0-service.mtee.rc
import /vendor/etc/init/android.hardware.keymaster@4.1-service.rc
import /vendor/etc/init/android.hardware.keymaster@4.1-service.trustonic.rc
import /vendor/etc/init/android.hardware.keymaster@4.1-service.beanpod.rc
import /vendor/etc/init/android.hardware.keymaster@4.1-service.beanpod.lite.rc
import /vendor/etc/init/android.hardware.keymaster@4.1-service.trustkernel.rc
import /vendor/etc/init/android.hardware.keymaster@4.1-service.mtee.rc
import /vendor/etc/init/android.hardware.security.keymint-service.rc
import /vendor/etc/init/android.hardware.security.keymint-service.trustonic.rc
import /vendor/etc/init/android.hardware.security.keymint-service.beanpod.rc
#import /vendor/etc/init/vendor.mediatek.hardware.keyinstall@1.0-service.rc
import /vendor/etc/init/vendor.mediatek.hardware.keymanage@1.0-service.rc
import /vendor/etc/init/android.hardware.audio.service.mediatek.rc
import /vendor/etc/init/vendor.mediatek.hardware.keymaster_attestation@1.1-service.rc
import /vendor/etc/init/android.hardware.nfc@1.2-service-st.rc
import /vendor/etc/init/tee.rc
import /vendor/etc/init/vendor.mediatek.hardware.nvram@1.1-sevice.rc
import /vendor/etc/init/vendor.mediatek.hardware.nvram@1.1-sevice-lazy.rc
import /vendor/etc/init/android.hardware.light@2.0-service-mediatek.rc
import /vendor/etc/init/android.hardware.light@2.0-service-mediatek-lazy.rc
import /vendor/etc/init/lights-mtk-default.rc
import /vendor/etc/init/lights-mtk-lazy.rc
import /vendor/etc/init/merged_hal_service.rc
import /vendor/etc/init/spm_script.rc
import /vendor/etc/init/nvram_daemon.rc
import /vendor/etc/init/microtrust.bp_kmsetkey_ca.rc
import /vendor/etc/init/vendor.microtrust.hardware.thh@2.0-service.rc
import /vendor/etc/init/microtrust.init_thh.rc