diff --git a/BoardConfig.mk b/BoardConfig.mk index 74f9769..5ea2841 100644 --- a/BoardConfig.mk +++ b/BoardConfig.mk @@ -69,6 +69,9 @@ TARGET_BOARD_PLATFORM := mt6785 # Power TARGET_POWERHAL_AIDL_VERSION := 1 +# Recovery +TARGET_RECOVERY_FSTAB := $(DEVICE_PATH)/rootdir/etc/fstab.mt6785 + # RIL ENABLE_VENDOR_RIL_SERVICE := true diff --git a/device.mk b/device.mk index f4c78e9..ea34903 100644 --- a/device.mk +++ b/device.mk @@ -94,6 +94,17 @@ PRODUCT_ENFORCE_RRO_TARGETS := * PRODUCT_PACKAGES += \ android.hardware.power-service-mediatek +# Rootdir +PRODUCT_PACKAGES += \ + fstab.mt6785 \ + init.ago.rc \ + init.connectivity.rc \ + init.modem.rc \ + init.mt6785.rc \ + init.mt6785.usb.rc \ + init.sensor_1_0.rc \ + ueventd.mtk.rc + # Shipping API level PRODUCT_SHIPPING_API_LEVEL := 30 diff --git a/rootdir/Android.bp b/rootdir/Android.bp new file mode 100644 index 0000000..e7a38d4 --- /dev/null +++ b/rootdir/Android.bp @@ -0,0 +1,59 @@ +// +// Copyright (C) 2022 The LineageOS Project +// +// SPDX-License-Identifier: Apache-2.0 +// + +prebuilt_etc { + name: "fstab.mt6785", + src: "etc/fstab.mt6785", + vendor: true, +} + +prebuilt_etc { + name: "init.ago.rc", + src: "etc/init.ago.rc", + vendor: true, +} + +prebuilt_etc { + name: "init.connectivity.rc", + src: "etc/init.connectivity.rc", + sub_dir: "init/hw", + vendor: true, +} + +prebuilt_etc { + name: "init.modem.rc", + src: "etc/init.modem.rc", + sub_dir: "init/hw", + vendor: true, +} + +prebuilt_etc { + name: "init.mt6785.rc", + src: "etc/init.mt6785.rc", + sub_dir: "init/hw", + vendor: true, +} + +prebuilt_etc { + name: "init.mt6785.usb.rc", + src: "etc/init.mt6785.usb.rc", + sub_dir: "init/hw", + vendor: true, +} + +prebuilt_etc { + name: "init.sensor_1_0.rc", + src: "etc/init.sensor_1_0.rc", + sub_dir: "init/hw", + vendor: true, +} + +prebuilt_etc { + name: "ueventd.mtk.rc", + filename: "ueventd.rc", + src: "etc/ueventd.mtk.rc", + vendor: true, +} diff --git a/rootdir/etc/fstab.mt6785 b/rootdir/etc/fstab.mt6785 new file mode 100644 index 0000000..9796431 --- /dev/null +++ b/rootdir/etc/fstab.mt6785 @@ -0,0 +1,106 @@ +# 1 "vendor/mediatek/proprietary/hardware/fstab/mt6785/fstab.in.mt6785" +# 1 "" 1 +# 1 "" 3 +# 341 "" 3 +# 1 "" 1 +# 1 "" 2 +# 1 "vendor/mediatek/proprietary/hardware/fstab/mt6785/fstab.in.mt6785" 2 +# 149 "vendor/mediatek/proprietary/hardware/fstab/mt6785/fstab.in.mt6785" +system /system ext4 ro wait,slotselect,avb=vbmeta_system,logical,first_stage_mount,avb_keys=/avb/q-gsi.avbpubkey:/avb/r-gsi.avbpubkey:/avb/s-gsi.avbpubkey + +vendor /vendor ext4 ro wait,slotselect,avb,logical,first_stage_mount + + +product /product ext4 ro wait,slotselect,avb,logical,first_stage_mount + + + + + +/dev/block/platform/bootdevice/by-name/md_udc /metadata ext4 noatime,nosuid,nodev,discard wait,check,formattable,first_stage_mount + +/dev/block/platform/bootdevice/by-name/userdata /data f2fs noatime,nosuid,nodev,discard,flush_merge,reserve_root=134217,resgid=1065,alloc_mode=reuse,fsync_mode=nobarrier,inlinecrypt wait,check,formattable,quota,latemount,resize,reservedsize=128m,checkpoint=fs,fileencryption=aes-256-xts:aes-256-cts:v2+inlinecrypt_optimized,keydirectory=/metadata/vold/metadata_encryption,fsverity + + + +/dev/block/platform/bootdevice/by-name/rescue /cache ext4 noatime,nosuid,nodev,noauto_da_alloc,discard wait,check,formattable + +/dev/block/platform/bootdevice/by-name/protect1 /mnt/vendor/protect_f ext4 noatime,nosuid,nodev,noauto_da_alloc,commit=1,nodelalloc wait,check,formattable +/dev/block/platform/bootdevice/by-name/protect2 /mnt/vendor/protect_s ext4 noatime,nosuid,nodev,noauto_da_alloc,commit=1,nodelalloc wait,check,formattable +/dev/block/platform/bootdevice/by-name/nvdata /mnt/vendor/nvdata ext4 noatime,nosuid,nodev,noauto_da_alloc,commit=1,nodelalloc wait,check,formattable +/dev/block/platform/bootdevice/by-name/nvcfg /mnt/vendor/nvcfg ext4 noatime,nosuid,nodev,noauto_da_alloc,commit=1,nodelalloc wait,check,formattable +/dev/block/platform/bootdevice/by-name/rescue /mnt/rescue ext4 noatime,nosuid,nodev,noauto_da_alloc,commit=1,nodelalloc wait,check,formattable + + +/dev/block/platform/bootdevice/by-name/persist /mnt/vendor/persist ext4 noatime,nosuid,nodev,noauto_da_alloc,commit=1,nodelalloc wait,check,formattable + + +/devices/platform/externdevice* auto auto defaults voldmanaged=sdcard1:auto,encryptable=userdata +/devices/platform/usb3_xhci* auto vfat defaults voldmanaged=usbotg:auto + +/dev/block/platform/bootdevice/by-name/frp /persistent emmc defaults defaults + +/dev/block/platform/bootdevice/by-name/nvram /nvram emmc defaults defaults +/dev/block/platform/bootdevice/by-name/proinfo /proinfo emmc defaults defaults +/dev/block/platform/bootdevice/by-name/lk /bootloader emmc defaults defaults +/dev/block/platform/bootdevice/by-name/lk2 /bootloader2 emmc defaults defaults +/dev/block/platform/bootdevice/by-name/para /para emmc defaults defaults +/dev/block/platform/bootdevice/by-name/misc /misc emmc defaults defaults + + + + +/dev/block/platform/bootdevice/by-name/boot /boot emmc defaults first_stage_mount,nofail,slotselect + + + + + +/dev/block/platform/bootdevice/by-name/vbmeta_vendor /vbmeta_vendor emmc defaults first_stage_mount,nofail,slotselect +/dev/block/platform/bootdevice/by-name/vbmeta_system /vbmeta_system emmc defaults first_stage_mount,nofail,slotselect,avb=vbmeta + +/dev/block/platform/bootdevice/by-name/logo /logo emmc defaults defaults +/dev/block/platform/bootdevice/by-name/expdb /expdb emmc defaults defaults +/dev/block/platform/bootdevice/by-name/seccfg /seccfg emmc defaults defaults + +/dev/block/platform/bootdevice/by-name/tee1 /tee1 emmc defaults defaults +/dev/block/platform/bootdevice/by-name/tee2 /tee2 emmc defaults defaults + + +/dev/block/platform/bootdevice/by-name/scp1 /scp1 emmc defaults defaults +/dev/block/platform/bootdevice/by-name/scp2 /scp2 emmc defaults defaults + + +/dev/block/platform/bootdevice/by-name/sspm_1 /sspm_1 emmc defaults defaults +/dev/block/platform/bootdevice/by-name/sspm_2 /sspm_2 emmc defaults defaults + + + + +/dev/block/platform/bootdevice/by-name/md1img /md1img emmc defaults defaults +/dev/block/platform/bootdevice/by-name/md1dsp /md1dsp emmc defaults defaults + +/dev/block/platform/bootdevice/by-name/cam_vpu1 /cam_vpu1 emmc defaults defaults +/dev/block/platform/bootdevice/by-name/cam_vpu2 /cam_vpu2 emmc defaults defaults +/dev/block/platform/bootdevice/by-name/cam_vpu3 /cam_vpu3 emmc defaults defaults + +/dev/block/platform/bootdevice/by-name/gz1 /gz1 emmc defaults defaults +/dev/block/platform/bootdevice/by-name/gz2 /gz2 emmc defaults defaults + +/dev/block/platform/bootdevice/by-name/spmfw /spmfw emmc defaults defaults + + + + + +/dev/block/platform/bootdevice/by-name/audio_dsp /audio_dsp emmc defaults defaults + +/dev/block/platform/bootdevice/by-name/boot_para /boot_para emmc defaults defaults + +/dev/block/platform/bootdevice/by-name/dtbo /dtbo emmc defaults defaults + + +/dev/block/platform/bootdevice/by-name/otp /otp emmc defaults defaults + + +/dev/block/platform/bootdevice/by-name/vbmeta /vbmeta emmc defaults defaults diff --git a/rootdir/etc/init.ago.rc b/rootdir/etc/init.ago.rc new file mode 100644 index 0000000..948dc7e --- /dev/null +++ b/rootdir/etc/init.ago.rc @@ -0,0 +1,8 @@ +# default is the init flow for the project without AGO settings + +on post-fs-data + write /sys/block/zram0/comp_algorithm lz4 + write /proc/sys/vm/page-cluster 0 + write /proc/sys/vm/swappiness 100 + write /sys/kernel/mm/swap/vma_ra_enabled false + swapon_all /vendor/etc/fstab.enableswap diff --git a/rootdir/etc/init.connectivity.rc b/rootdir/etc/init.connectivity.rc new file mode 100644 index 0000000..550029b --- /dev/null +++ b/rootdir/etc/init.connectivity.rc @@ -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) +# + diff --git a/rootdir/etc/init.modem.rc b/rootdir/etc/init.modem.rc new file mode 100644 index 0000000..40e8381 --- /dev/null +++ b/rootdir/etc/init.modem.rc @@ -0,0 +1,20 @@ +# 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 "0f" + write /sys/class/net/ccmni1/queues/rx-0/rps_cpus "0f" + write /sys/class/net/ccmni2/queues/rx-0/rps_cpus "0f" + +on post-fs-data + + write /proc/bootprof "post-fs-data: on modem start" + +# Encrypt phone function + setprop vold.post_fs_data_done 1 + + + diff --git a/rootdir/etc/init.mt6785.rc b/rootdir/etc/init.mt6785.rc new file mode 100644 index 0000000..e250a2b --- /dev/null +++ b/rootdir/etc/init.mt6785.rc @@ -0,0 +1,1265 @@ +# MTK platform .rc configure + +import ${ro.vendor.rc}init.connectivity.rc +import ${ro.vendor.rc}init.mt6785.usb.rc +import /vendor/etc/init/hw/init.project.rc +import /system_ext/etc/init/hw/init.aee.rc +import /FWUpgradeInit.rc +import /vendor/etc/init/hw/init.aee.rc +import ${ro.vendor.rc}init.volte.rc +import ${ro.vendor.rc}init.mal.rc +import ${ro.vendor.rc}init.sensor_1_0.rc +import /vendor/etc/init/hw/init.stnfc.rc +import /system/etc/init/hw/init.stnfc.rc +import init.mishow.ctl.rc + +# init.modem.rc must be the LAST rc file because vold.post_fs_data_done is set in it +import ${ro.vendor.rc}init.modem.rc +# *** DO NOT import the new rc file after this line *** + +on early-init + write /proc/bootprof "INIT:early-init" + # boot perf. tune + write /proc/perfmgr/boost_ctrl/cpu_ctrl/boot_freq "0 0 0 0" + write /sys/devices/platform/10012000.dvfsrc/helio-dvfsrc/dvfsrc_req_ddr_opp 0 + mount debugfs debugfs /sys/kernel/debug + chmod 0755 /sys/kernel/debug + +on init + write /proc/bootprof "INIT:init" + # Support legacy paths + symlink /sdcard /mnt/sdcard + + # if primary storage is physical, set ro.vold.primary_physical to 1 + # setprop ro.vold.primary_physical 1 + + # M306 Add for sensor calibration command in 20201124 start + mkdir /mnt/vendor/persist 0771 system system + mkdir /mnt/cd-rom 0000 system system + mkdir /mnt/vendor/rescue 0771 system system + +# change lk_env permission + chown root system /proc/lk_env + chmod 0660 /proc/lk_env + +# increase sysctl_rmem_max and sysctl_wmem_max values to 2M + write /proc/sys/net/core/wmem_max 8388608 + write /proc/sys/net/core/rmem_max 8388608 + +# update cpus for cpuset cgroup + write /dev/cpuset/foreground/cpus 0-7 + write /dev/cpuset/foreground/boost/cpus 0-7 + write /dev/cpuset/background/cpus 0-3 + write /dev/cpuset/system-background/cpus 0-5 + write /dev/cpuset/top-app/cpus 0-7 + +on late-init + write /proc/bootprof "INIT:late-init" +# enable rcu_expedited + write /sys/kernel/rcu_expedited 1 + +# mount different fs start + +#lcd feature ++ start + +on property:odm.display_hbm=0 + write /sys/display_hbm/hbm_mode 0 + +on property:odm.display_hbm=1 + write /sys/display_hbm/hbm_mode 1 + +on property:odm.display_hbm=2 + write /sys/display_hbm/hbm_mode 2 + +#lcd feature ++ end + +on charger + write /proc/perfmgr/boost_ctrl/cpu_ctrl/boot_freq "-1 -1 -1 -1" + write /sys/devices/platform/10012000.dvfsrc_top/helio-dvfsrc/dvfsrc_debug "kir_emi -1" + exec /system/bin/e2fsck -f -p /dev/block/platform/bootdevice/by-name/cache + mount ext4 /dev/block/platform/bootdevice/by-name/cache /cache rw wait + chmod 0660 /dev/spm + chown system system /dev/spm + start spm_script + chmod 0666 /dev/kmsg + chmod 0775 /mnt/vendor + mkdir /mnt/vendor/nvcfg + mount ext4 /dev/block/platform/bootdevice/by-name/nvcfg /mnt/vendor/nvcfg rw wait + chown system system /mnt/vendor/nvcfg + chmod 0771 /mnt/vendor/nvcfg + restorecon_recursive /mnt/vendor/nvcfg + write /sys/devices/platform/battery_meter/FG_daemon_log_level 7 + write /sys/bus/platform/devices/battery/FG_daemon_log_level 7 + # 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 + write /sys/power/pm_async 0 + write /sys/power/pm_freeze_timeout 2000 + start fuelgauged + start fuelgauged_nvram + start mi_thermald + + chmod 0666 /sys/class/power_supply/battery/cycle_count + chmod 0666 /sys/class/power_supply/battery/resistance + chmod 0666 /sys/class/power_supply/battery/charge_full_design + chmod 0666 /sys/class/power_supply/battery/charge_full + chmod 0666 /sys/class/power_supply/battery/typec_mode + mkdir /data/vendor/charge_logger 0775 system system + start charge_logger + + chown system system /sys/class/leds/lcd-backlight/brightness + chown system system /sys/class/leds/red/brightness + chown system system /sys/class/leds/green/brightness + + start vendor.light-default + + # M306 run batterysecret in off-charge mode + start batterysecret + chmod 0664 /sys/class/Charging_Adapter/pd_adapter/usbpd_verifed + chmod 0664 /sys/class/Charging_Adapter/pd_adapter/request_vdm_cmd + chmod 0664 /sys/class/Charging_Adapter/pd_adapter/verify_process + chmod 0664 /sys/class/power_supply/usb/pd_authentication + chmod 0664 /sys/class/power_supply/bms/authentic + + # Stop bootprof + write /proc/bootprof "0" + +on early-fs + write /proc/bootprof "INIT:early-fs" + +on fs + write /proc/bootprof "INIT:fs" + + wait_for_prop hwservicemanager.ready "true" + start vendor.boot-hal-1-1 + write /proc/bootprof "INIT:Mount_START" + write /sys/kernel/tracing/trace_marker "B|1|Mount" + mount_all --early + exec /system/bin/tune2fs -O has_journal -u 10010 -r 4096 /dev/block/platform/bootdevice/by-name/userdata + write /sys/kernel/tracing/trace_marker "E" + write /proc/bootprof "INIT:Mount_END" + write /sys/block/zram0/comp_algorithm lz4 + write /proc/sys/vm/page-cluster 0 + write /proc/sys/vm/swappiness 100 + write /sys/kernel/mm/swap/vma_ra_enabled false + #Thermal + mkdir /data/vendor/.tp/ 0775 system system + mkdir /data/vendor/thermal 0771 root system + mkdir /data/vendor/thermal/config 0771 root system + +on fs + mount iso9660 loop@/vendor/etc/iAmCdRom.iso /mnt/cd-rom ro + +on late-fs + write /proc/bootprof "INIT:late-fs" + wait_for_prop hwservicemanager.ready "true" + exec_start wait_for_keymaster + write /proc/bootprof "INIT:Mount_START --late" + write /sys/kernel/tracing/trace_marker "B|1|Mount late" + mount_all --late + write /sys/kernel/tracing/trace_marker "E" + write /proc/bootprof "INIT:Mount_END --late" +# M306 Add for sensor calibration command in 20201123 start + chown system system /mnt/vendor/persist + chmod 0771 /mnt/vendor/persist + restorecon_recursive /mnt/vendor/persist +# M306 Add for sensor calibration command in 20201123 end + +on post-fs + write /proc/bootprof "INIT:post-fs" + + # boot perf. tune + write /proc/perfmgr/boost_ctrl/eas_ctrl/boot_boost "0 100" + write /proc/perfmgr/boost_ctrl/eas_ctrl/boot_boost "1 100" + write /proc/perfmgr/boost_ctrl/eas_ctrl/boot_boost "2 100" + write /proc/perfmgr/boost_ctrl/eas_ctrl/boot_boost "3 100" + write /proc/sys/kernel/sched_stune_task_threshold 0 + + # Support legacy paths + symlink /sdcard /storage/sdcard0 + + #change permissions for mediaserver + chown root media /proc/clkmgr/mipi_test + + #change permission for engineer mode + chown radio system /proc/clkmgr/pll_test + chown radio system /proc/clkmgr/pll_fsel + chmod 0664 /proc/clkmgr/pll_test + chmod 0664 /proc/clkmgr/pll_fsel + #change permission for engineer mode + chown radio system /proc/freqhopping/dramc + chown radio system /proc/freqhopping/dumpregs + chown radio system /proc/freqhopping/freqhopping_debug + chown radio system /proc/freqhopping/status + chown radio system /proc/freqhopping/userdef + + chown system system /mnt/vendor/rescue + chmod 0771 /mnt/vendor/rescue + restorecon_recursive /mnt/vendor/rescue + +# change owner + chown system system /proc/bootprof + chmod 0664 /proc/bootprof + chown root system /proc/mtprof/cputime + chown root system /proc/mtprof/reboot_pid + + 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 + + # Support A/B feature for EMMC and UFS boot region + symlink /dev/block/sda /dev/block/mmcblk0boot0 + symlink /dev/block/sdb /dev/block/mmcblk0boot1 + symlink /dev/block/mmcblk0boot0 /dev/block/platform/bootdevice/by-name/preloader_a + symlink /dev/block/mmcblk0boot1 /dev/block/platform/bootdevice/by-name/preloader_b + + # Support A/B feature for combo emmc and ufs OTA update + symlink /dev/block/platform/bootdevice/by-name/preloader_a /dev/block/platform/bootdevice/by-name/preloader_emmc_a + symlink /dev/block/platform/bootdevice/by-name/preloader_b /dev/block/platform/bootdevice/by-name/preloader_emmc_b + symlink /dev/block/platform/bootdevice/by-name/preloader_a /dev/block/platform/bootdevice/by-name/preloader_ufs_a + symlink /dev/block/platform/bootdevice/by-name/preloader_b /dev/block/platform/bootdevice/by-name/preloader_ufs_b + +# add charge_logger service for dump charge message +service charge_logger /vendor/bin/charge_logger + class last_start + user system + group system system wakelock + disabled + oneshot + +on property:sys.boot_completed=1 + start charge_logger + +# M306 Add for pd charge batterysecret +on property:sys.boot_completed=1 + chmod 0664 /sys/class/Charging_Adapter/pd_adapter/usbpd_verifed + chmod 0664 /sys/class/Charging_Adapter/pd_adapter/request_vdm_cmd + chmod 0664 /sys/class/Charging_Adapter/pd_adapter/verify_process + chmod 0664 /sys/class/power_supply/usb/pd_authentication + chmod 0664 /sys/class/power_supply/bms/authentic + +service batterysecret /vendor/bin/batterysecret + class last_start + user root + group system system wakelock + disabled + seclabel u:r:batterysecret:s0 + +on property:sys.boot_completed=1 + start batterysecret + +on post-fs-data + write /proc/bootprof "INIT:post-fs-data" + + # boot time fs tune + write /sys/block/mmcblk0/queue/iostats 0 + write /sys/block/mmcblk0/queue/read_ahead_kb 2048 + write /sys/block/mmcblk0/queue/nr_requests 256 + write /sys/block/sdc/queue/iostats 0 + write /sys/block/sdc/queue/read_ahead_kb 2048 + write /sys/block/sdc/queue/nr_requests 256 + write /sys/block/dm-0/queue/read_ahead_kb 2048 + write /sys/block/dm-1/queue/read_ahead_kb 2048 + write /sys/block/dm-2/queue/read_ahead_kb 2048 + write /sys/block/dm-3/queue/read_ahead_kb 2048 + write /sys/block/dm-4/queue/read_ahead_kb 2048 + write /sys/block/dm-5/queue/read_ahead_kb 2048 + + chown system system /mnt/vendor/nvcfg + chmod 0771 /mnt/vendor/nvcfg + restorecon_recursive /mnt/vendor/nvcfg + chown system system /mnt/vendor/nvcfg/fg + chown system system /mnt/vendor/nvcfg/fg/old_fg_data + chown system system /mnt/vendor/nvcfg/fg/car_tune_value + +#M306 add for audio usnd calibration + + mkdir /mnt/vendor/persist/audio + chown system system /mnt/vendor/persist/audio + chmod 0777 /mnt/vendor/persist/audio + restorecon_recursive /mnt/vendor/persist/audio + + + +# M306 Add for sensor calibration command in 20201123 start + mkdir /mnt/vendor/persist/sensor + chown system system /mnt/vendor/persist/sensor + chmod 0777 /mnt/vendor/persist/sensor + restorecon_recursive /mnt/vendor/persist/sensor + + chown system system /mnt/vendor/persist/sensor/proximity_cal_data.txt + chown system system /mnt/vendor/persist/sensor/accel_cal_data.txt + chown system system /mnt/vendor/persist/sensor/gyro_cal_data.txt + chown system system /mnt/vendor/persist/sensor/sensor_history.txt + chown system system /mnt/vendor/persist/sensor/default_cal_data.txt + chown system system /mnt/vendor/persist/.sn.bin +# M306 Add for sensor calibration command in 20201123 end + + #add camera calidata + mkdir /vendor/etc/camera + chown root system /vendor/etc/camera + chmod 0777 /vendor/etc/camera + + mkdir /mnt/vendor/persist/camera + chown system system /mnt/vendor/persist/camera + chmod 0777 /mnt/vendor/persist/camera + chmod 0644 /mnt/vendor/persist/camera/rear_dc_cal_wd.bin + restorecon_recursive /mnt/vendor/persist/camera + +# M306 add for saving files of TP selftest + mkdir /data/vendor/touchpad + chown system system /data/vendor/touchpad + chmod 0775 /data/vendor/touchpad + + # create basic filesystem structure + # We chown/chmod /mnt/vendor/nvdata again so because mount is run as root + defaults + chown root system /mnt/vendor/nvdata + chmod 0771 /mnt/vendor/nvdata + mkdir /mnt/vendor/nvdata/media 0771 media audio + + #Create cct mount point + mkdir /mnt/vendor/cct + chown root system /mnt/vendor/cct + chmod 0771 /mnt/vendor/cct + + #Create Camera Dip Debug Folder + mkdir /data/vendor/dipdebug + chown root system /data/vendor/dipdebug + chmod 0771 /data/vendor/dipdebug + + #Create flash folder + mkdir /data/vendor/flash + chown root system /data/vendor/flash + chmod 0771 /data/vendor/flash + + #Create shading mount point + mkdir /data/vendor/shading + chown root system /data/vendor/shading + chmod 0771 /data/vendor/shading + + #Create shading_otp mount point + mkdir /data/vendor/shading_otp + chown root system /data/vendor/shading_otp + chmod 0771 /data/vendor/shading_otp + + #Create NDD mount point + mkdir /data/vendor/camera_dump + chown root system /data/vendor/camera_dump + chmod 0771 /data/vendor/camera_dump + + mkdir /data/vendor/camera + chown root system /data/vendor/camera + chmod 0771 /data/vendor/camera + + #Create flicker mount point + mkdir /data/vendor/flicker + chown root system /data/vendor/flicker + chmod 0771 /data/vendor/flicker + + # Set SELinux security contexts on upgrade or policy update. + restorecon_recursive /mnt/vendor/nvdata + + #give system access to rfkill device node + chmod 0660 /dev/rfkill + + # create for muxd pts device node , to operate without root + mkdir /dev/radio 0770 radio radio + + chmod 0660 /dev/spm + chown system system /dev/spm + +# GPS + chmod 0775 /vendor/xbin/MPED + chmod 0666 /dev/gps_emi + +# ----------------------- +# Add by MTK + # SCP log + chmod 0660 /sys/class/misc/scp/scp_mobile_log + chown root system /sys/class/misc/scp/scp_mobile_log + chmod 0220 /sys/class/misc/scp/scp_log_flush + chown root system /sys/class/misc/scp/scp_log_flush + chmod 0440 /dev/scp + chown root system /dev/scp + chmod 0664 /sys/class/misc/scp/scp_ee_force_ke + chown root system /sys/class/misc/scp/scp_ee_force_ke + + # ADSP log + chmod 0660 /sys/class/misc/adsp_0/log_enable + chown root system /sys/class/misc/adsp_0/log_enable + chmod 0660 /dev/adsp + chown root media /dev/adsp + chmod 0440 /dev/adsp_0 + chown system media /dev/adsp_0 + + # SSPM log + chmod 0620 /sys/class/misc/sspm/sspm_mobile_log + chown root system /sys/class/misc/sspm/sspm_mobile_log + chmod 0440 /dev/sspm + chown root system /dev/sspm + + # radvd + chmod 444 /etc/radvd/radvd.conf + + # Mali 3D GPU driver + #insmod /vendor/lib/modules/mali.ko + chmod 666 /dev/mali0 + #chown system graphics /dev/mali + + + + # Touch Panel + # chmod 0664 /dev/touch + 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_setting/parameters/tpd_mode + chown root diag /sys/module/tpd_setting/parameters/tpd_em_debounce_time0 + chown root diag /sys/module/tpd_setting/parameters/tpd_em_debounce_time1 + chown root diag /sys/module/tpd_setting/parameters/tpd_em_spl_num + chown root diag /sys/module/tpd_setting/parameters/tpd_em_pressure_threshold + chown root diag /sys/module/tpd_setting/parameters/tpd_em_auto_time_interval + chown root diag /sys/module/tpd_setting/parameters/tpd_em_sample_cnt + chown root diag /sys/module/tpd_setting/parameters/tpd_em_asamp + chown root diag /sys/module/tpd_debug/parameters/tpd_em_log + chown root diag /sys/module/tpd_debug/parameters/tpd_em_log_to_fs + + chmod 0666 /dev/pmem_multimedia + + # set ptmx group to non-root + chown root radio /dev/ptmx + + #mishow + chmod 0777 /sys/class/power_supply/battery/charging_enabled + chown system system /sys/class/power_supply/battery/charging_enabled + + # M4U + #insmod /vendor/lib/modules/m4u.ko + #mknod /dev/M4U_device c 188 0 + chmod 0444 /dev/m4u + #chown system media /dev/M4U_device + chmod 0640 /proc/m4u + chown system media /proc/m4u + + #set mlock to 64MB for netd + setrlimit 8 67108864 67108864 + + #set mlock limit to infinate (for m4u operation) + setrlimit 8 -1 -1 + + # CMDQ + chmod 0640 /dev/mtk_cmdq + chown system system /dev/mtk_cmdq + + # MDP SYNC + chmod 0640 /dev/mdp_sync + chown system system /dev/mdp_sync + + #OFFLOAD SERVICE + chmod 0640 /dev/offloadservice + chown media media /dev/offloadservice + + #OPEN DSP + chmod 0640 /dev/audio_ipi + chown media media /dev/audio_ipi + + #SmartPA + chmod 0640 /dev/audio_scp + chown media media /dev/audio_scp + chown audioserver audio /sys/bus/platform/devices/rt5509_param.0/prop_param + chown audioserver audio /sys/bus/platform/devices/rt5509_param.1/prop_param + chown audioserver audio /sys/bus/platform/devices/mt6660-param.0/prop_params + + #AAudio Boost + write /dev/stune/rt/schedtune.boost 30 + + #Accdet + chown root radio /sys/devices/platform/Accdet_Driver/driver/accdet_call_state + + #Fingerprint + chmod 0666 /dev/goodix_fp + + #VideoCodec + chmod 0660 /dev/vcu + chown media system /dev/vcu + chmod 0660 /dev/video0 + chown media system /dev/video0 + chmod 0660 /dev/video1 + chown media system /dev/video1 + mkdir /data/vendor/vcodec 0770 media system + mkdir /data/vendor/vcodec/log 0770 media system + mkdir /data/vendor/vcodec/in 0770 media system + mkdir /data/vendor/vcodec/out 0770 media system + + #MJC + #insmod /vendor/lib/modules/mjc_kernel_driver.ko + #mknod /dev/MJC c 168 0 + chmod 0660 /dev/MJC + chown media system /dev/MJC + + #kpd + chown radio radio /sys/devices/platform/mtk-kpd/driver/kpd_call_state + + #Charging Battery + chown radio radio /sys/devices/platform/battery/Charging_CallState + + # PMIC property + chown radio system /sys/devices/platform/mt-pmic/low_battery_protect_stop + chown radio system /sys/devices/platform/mt-pmic/low_battery_protect_ut + + #MDDB + mkdir /data/vendor_de/meta 0770 system system + mkdir /data/vendor_de/meta/mddb 0770 system system + + chmod 0660 /data/misc/acdapi/calib.dat + chmod 0660 /data/misc/acdapi/param.dat + chmod 0660 /data/misc/acdapi/sensors.dat + chown system /sys/devices/platform/msensor/driver/cpsopmode + chown system /sys/devices/platform/msensor/driver/cpsreptxy + chown system /sys/devices/platform/msensor/driver/cpsreptz + chown system /sys/devices/platform/gsensor/driver/cpsopmode + chown system /sys/devices/platform/gsensor/driver/cpsrange + + chown system /sys/class/input/input1/enable + chown system /sys/class/input/input1/delay + chown system /sys/class/input/input1/wake + chown system /sys/class/input/input1/offsets + chown system /sys/class/input/input2/enable + chown system /sys/class/input/input2/delay + chown system /sys/class/input/input2/wake + chown system /sys/class/input/input2/offsets + chown system /sys/class/input/input3/enable + chown system /sys/class/input/input3/delay + chown system /sys/class/input/input3/wake + chown system /sys/class/input/input3/offsets + chown system /sys/class/input/input4/enable + chown system /sys/class/input/input4/delay + chown system /sys/class/input/input4/wake + chown system /sys/class/input/input4/offsets + chown system /sys/class/input/input5/enable + chown system /sys/class/input/input5/delay + chown system /sys/class/input/input5/wake + chown system /sys/class/input/input5/offsets + chown system /sys/class/input/input6/enable + chown system /sys/class/input/input6/delay + chown system /sys/class/input/input6/wake + chown system /sys/class/input/input6/offsets + chown system /sys/class/input/input7/enable + chown system /sys/class/input/input7/delay + chown system /sys/class/input/input7/wake + chown system /sys/class/input/input7/offsets + chown system /sys/class/input/input8/enable + chown system /sys/class/input/input8/delay + chown system /sys/class/input/input8/wake + chown system /sys/class/input/input8/offsets + chown system /sys/class/input/input9/enable + chown system /sys/class/input/input9/delay + chown system /sys/class/input/input9/wake + chown system /sys/class/input/input9/offsets + chown system /sys/class/input/input10/enable + chown system /sys/class/input/input10/delay + chown system /sys/class/input/input10/wake + chown system /sys/class/input/input10/offsets + + #EM eint + chown root diag /sys/bus/platform/drivers/eint/current_eint + + # Display + chmod 0660 /dev/graphics/fb0 + chown system graphics /dev/graphics/fb0 + + chmod 0660 /dev/mtk_disp_mgr + chown system graphics /dev/mtk_disp_mgr + + chmod 0660 /dev/mtkfb_vsync + chown system graphics /dev/mtkfb_vsync + + chmod 0660 /dev/sw_sync + chown system graphics /dev/sw_sync + + # EM baseband file + chown root diag /vendor/bin/baseband_regdump + chmod 4750 /vendor/bin/baseband_regdump + + #pmu + chown root radio /sys/devices/platform/mt-pmic/pmic_access_bank0 + chown root radio /sys/devices/platform/mt-pmic/pmic_access_bank1 + chown root radio /sys/devices/platform/mt6311-user/mt6311_access + chown root radio /sys/devices/platform/mt-pmic/pmic_access + chmod 0664 /sys/devices/platform/mt-pmic/pmic_access_bank0 + chmod 0664 /sys/devices/platform/mt-pmic/pmic_access_bank1 + chmod 0664 /sys/devices/platform/mt6311-user/mt6311_access + chmod 0664 /sys/devices/platform/mt-pmic/pmic_access + + # EM CPU Speed Stress + chown root radio /proc/cpu_ss/cpu_ss_debug_mode + chown root radio /proc/cpu_ss/cpu_ss_mode + chown root radio /proc/cpu_ss/cpu_ss_period + chown root radio /proc/cpu_ss/cpu_ss_period_mode + chmod 0664 /proc/cpu_ss/cpu_ss_debug_mode + chmod 0664 /proc/cpu_ss/cpu_ss_mode + chmod 0664 /proc/cpu_ss/cpu_ss_period + chmod 0664 /proc/cpu_ss/cpu_ss_period_mode + + #EM eint + chown root diag /sys/bus/platform/drivers/eint/current_eint + + # Android SEC related device nodes + chmod 0660 /dev/sec + chown root system /dev/sec + + # FM Radio device node + chmod 0660 /dev/fm + chown media media /dev/fm + + # device apc settings + + # device info /proc interface + chmod 0440 /dev/devmap + chown root system /dev/devmap + + # bluetooth + chown bluetooth bluetooth /dev/hid-keyboard + chmod 0660 /dev/hid-keyboard + #Use uinput's default permission + chown system net_bt_admin /dev/uinput + + # UIBC + chown system media /dev/uibc + chmod 0660 /dev/uibc + + #TV-out + chmod 0664 /dev/TV-out + + #HDMI + chown media system /dev/hdmitx + chmod 0664 /dev/hdmitx + + + # JPEG + #chmod 0444 /dev/mtk_jpeg + + # almk + chmod 0440 /dev/mtk_almk + + # DISP + chmod 0444 /dev/mtk_disp + + #ANC SERVICE + chmod 0640 /dev/ancservice + chown media media /dev/ancservice + + # gz device + chmod 0660 /dev/gz_kree + chown system camera /dev/gz_kree +#Creat charger log + mkdir /data/vendor/charge_logger 0775 system system + #Camera + chmod 0660 /dev/camera-sysram + chmod 0660 /dev/camera-isp + chmod 0660 /dev/camera-dip + chmod 0660 /dev/camera-tsf + chmod 0660 /dev/camera-dpe + chmod 0660 /dev/camera-mfb + chmod 0660 /dev/camera-rsc + chmod 0660 /dev/camera-owe + chmod 0660 /dev/camera-fdvt + chmod 0660 /dev/camera-wpe + chmod 0660 /dev/camera-pipemgr + chmod 0660 /dev/kd_camera_hw + chmod 0660 /dev/seninf + chmod 0660 /dev/flashlight + chmod 0660 /dev/kd_camera_hw_bus2 + chmod 0660 /dev/FM50AF + chmod 0660 /dev/CAM_CAL_DRV + chmod 0660 /dev/MAINAF + chmod 0660 /dev/MAIN2AF + chmod 0660 /dev/SUBAF + chmod 0660 /dev/vpu + + chown system camera /dev/camera-sysram + chown system camera /dev/camera-isp + chown system camera /dev/camera-dip + chown system camera /dev/camera-dpe + chown system camera /dev/camera-mfb + chown system camera /dev/camera-rsc + chown system camera /dev/camera-owe + chown system camera /dev/camera-tsf + chown system camera /dev/camera-fdvt + chown system camera /dev/camera-wpe + chown system camera /dev/camera-pipemgr + chown system camera /dev/kd_camera_hw + chown system camera /dev/seninf + chown system camera /dev/flashlight + chown system camera /dev/kd_camera_hw_bus2 + chown system camera /dev/FM50AF + chown system camera /dev/CAM_CAL_DRV + chown system camera /dev/MAINAF + chown system camera /dev/MAIN2AF + chown system camera /dev/SUBAF + chown system camera /dev/vpu + + #CCU + chmod 0660 /dev/ccu + chown system camera /dev/ccu + + chmod 0660 /sys/devices/platform/flashlights_mt6360/torch_brightness + chown system system /sys/devices/platform/flashlights_mt6360/torch_brightness + + #VOW + chmod 0640 /dev/vow + chown media media /dev/vow + + #MATV + chmod 0660 /dev/MATV + chown system media /dev/MATV + + # otg_test + chown root radio /dev/mt_otg_test + chmod 0660 /dev/mt_otg_test + + # MDP + chmod 0660 /dev/mt-mdp + chown system media /dev/mt-mdp + + # SMI + chmod 0660 /dev/MTK_SMI + chown media media /dev/MTK_SMI + + # RRC + chmod 0660 /dev/mtk_rrc + chown media system /dev/mtk_rrc + + # DFRC + chmod 0660 /dev/mtk_dfrc + chown system graphics /dev/mtk_dfrc + + + #change partition permission + + chmod 0640 /mtd@sec_ro + chown root system /mtd@sec_ro + + chmod 0640 /mtd@preloader + chown root system /mtd@preloader + + chmod 0660 /mtd@pro_info + chown root system /mtd@pro_info + + chmod 0640 /mtd@bootimg + chown root system /mtd@bootimg + + chmod 0640 /mtd@recovery + chown root system /mtd@recovery + + chmod 0660 /mtd@nvram + chown root system /mtd@nvram + + chmod 0660 /mtd@seccfg + chown root system /mtd@seccfg + + chmod 0660 /mtd@misc + chown root system /mtd@misc + + chmod 0664 /sys/bus/platform/drivers/emi_ctrl/concurrency_scenario + chown media media /sys/bus/platform/drivers/emi_ctrl/concurrency_scenario + + #mtk_sched + chmod 0660 /dev/mtk_sched + chown system media /dev/mtk_sched + + #BT SCO CVSD, for MT6572 and MT6582 CVSD codec on AP + chmod 0660 /dev/ebc + chown media media /dev/ebc + + #usip + chmod 0660 /dev/usip + chown media media /dev/usip + + chmod 0666 /dev/uio0 + + #otp + chmod 0660 /proc/driver/otp + chown root system /proc/driver/otp + + # secure memory + chown system system /proc/secmem0 + + chmod 0666 /dev/exm0 + + #Thermal + mkdir /data/vendor/.tp/ 0775 system system + # power manager + write /sys/power/pm_async 0 + write /sys/power/pm_freeze_timeout 2000 + + # RTC + chmod 660 /dev/alarm + chown root system /dev/alarm + + #EM of MT6360 + chmod 0664 sys/kernel/debug/rt-regmap/mt6360_pmu.5-0034/data + chmod 0664 sys/kernel/debug/rt-regmap/mt6360_pmic.5-001a/data + chmod 0664 sys/kernel/debug/rt-regmap/mt6360_ldo.5-0064/data + chmod 0664 sys/kernel/debug/rt-regmap/mt6360-4e/data + chmod 0664 sys/kernel/debug/rt-regmap/mt6360_pmu.5-0034/reg_addr + chmod 0664 sys/kernel/debug/rt-regmap/mt6360_pmic.5-001a/reg_addr + chmod 0664 sys/kernel/debug/rt-regmap/mt6360_ldo.5-0064/reg_addr + chmod 0664 sys/kernel/debug/rt-regmap/mt6360-4e/reg_addr + +# End of adding by MTK drivers +# ----------------------- + +on zygote-start + write /proc/bootprof "INIT:zygote-start" + +on early-boot + write /proc/bootprof "INIT:early-boot" + +on boot + write /proc/bootprof "INIT:boot" + + write /proc/sys/vm/dirty_writeback_centisecs 300 + chmod 0660 /sys/power/autosleep + + chmod 0664 /sys/class/leds/lcd-backlight/brightness + chown system system /sys/class/leds/lcd-backlight/brightness + chmod 0664 /sys/class/leds/red/brightness + chown system system /sys/class/leds/red/brightness + chmod 0664 /sys/class/leds/green/brightness + chown system system /sys/class/leds/green/brightness + chmod 0664 /sys/class/leds/blue/brightness + chown system system /sys/class/leds/blue/brightness + chmod 0666 /sys/devices/platform/mtkfb/disp_param + chown system system /sys/devices/platform/mtkfb/disp_param + + chmod 0777 /sys/class/ant_class/ant_state + chmod 0777 /sys/class/ant_div_class/ant_div_state + chown system system /sys/class/ant_class/ant_state + chown system system /sys/class/ant_div_class/ant_div_state + + chown system system /sys/devices/system/cpu/cpufreq/hotplug/cpu_num_base + chmod 0660 /sys/devices/system/cpu/cpufreq/hotplug/cpu_num_base + chown system system /sys/devices/system/cpu/cpufreq/policy0/scaling_governor + chmod 0660 /sys/devices/system/cpu/cpufreq/policy0/scaling_governor + chown system system /sys/devices/system/cpu/cpufreq/policy4/scaling_governor + chmod 0660 /sys/devices/system/cpu/cpufreq/policy4/scaling_governor + chown root system /sys/kernel/debug/binder/transaction_log_enable + chown root system /sys/kernel/debug/binder/perf_evalue + chown system system /sys/devices/system/cpu/rq-stats/htasks_thresh + chmod 0660 /sys/devices/system/cpu/rq-stats/htasks_thresh + chown system system /sys/devices/system/cpu/rq-stats/avg_htasks_thresh + chmod 0660 /sys/devices/system/cpu/rq-stats/avg_htasks_thresh + + chown system /sys/module/mlog/parameters/do_mlog + chown system /sys/module/mlog/parameters/timer_intval + + chown root radio /sys/class/leds/lcd-backlight/duty + chown root radio /sys/class/leds/lcd-backlight/div + chown system system /sys/class/leds/lcd-backlight/trigger + chown system system /sys/class/leds/button-backlight/trigger + chown system system /sys/class/leds/keyboard-backlight/trigger + chown system system /sys/class/leds/jogball-backlight/trigger + chown system system /sys/class/leds/red/trigger + chown system system /sys/class/leds/green/trigger + chown system system /sys/class/leds/blue/trigger + + # Permission for hibernation + chown radio system /sys/power/tuxonice + chown radio system /sys/power/tuxonice/do_hibernate + chmod 0770 /sys/power/tuxonice + chmod 0220 /sys/power/tuxonice/do_hibernate + + # Permission for cit sarsensor + chmod 0666 /sys/devices/platform/sar_hub_s/sar_trace + + +# Smartbook Handler Framework + chown system system /sys/power/sb_state + chmod 0660 /sys/power/sb_state + +# HMP CPU hotplug strategy + chown system system /proc/hps/num_base_perf_serv + chmod 0660 /proc/hps/num_base_perf_serv + chown system system /proc/hps/num_limit_power_serv + chmod 0660 /proc/hps/num_limit_power_serv + chown system system /proc/hps/num_limit_ultra_power_saving + chmod 0660 /proc/hps/num_limit_ultra_power_saving + chown system system /proc/hps/down_threshold + chmod 0660 /proc/hps/down_threshold + chown system system /proc/hps/up_threshold + chmod 0660 /proc/hps/up_threshold + chown system system /proc/hps/rush_boost_enabled + chmod 0660 /proc/hps/rush_boost_enabled + chown system system /proc/hps/heavy_task_enabled + chmod 0660 /proc/hps/heavy_task_enabled + chown system system /proc/hps/power_mode + chmod 0660 /proc/hps/power_mode + chown system system /proc/hps/up_times + chmod 0660 /proc/hps/up_times + chown system system /proc/hps/down_times + chmod 0660 /proc/hps/down_times + +# PPM + chown system system /proc/ppm/mode + chmod 0660 /proc/ppm/mode + chown system system /proc/ppm/policy/perfserv_min_perf_idx + chmod 0440 /proc/ppm/policy/perfserv_min_perf_idx + chown system system /proc/ppm/policy/perfserv_max_perf_idx + chmod 0440 /proc/ppm/policy/perfserv_max_perf_idx + chown system system /proc/ppm/policy/perfserv_perf_idx + chmod 0660 /proc/ppm/policy/perfserv_perf_idx + chown system system /proc/ppm/policy/userlimit_min_cpu_freq + chmod 0660 /proc/ppm/policy/userlimit_min_cpu_freq + chown system system /proc/ppm/policy/userlimit_max_cpu_freq + chmod 0660 /proc/ppm/policy/userlimit_max_cpu_freq + chown system system /proc/ppm/policy/userlimit_min_cpu_core + chmod 0660 /proc/ppm/policy/userlimit_min_cpu_core + chown system system /proc/ppm/policy/userlimit_max_cpu_core + chmod 0660 /proc/ppm/policy/userlimit_max_cpu_core + chown system system /proc/ppm/policy/userlimit_cpu_core + chmod 0660 /proc/ppm/policy/userlimit_cpu_core + chown system system /proc/ppm/policy/userlimit_cpu_freq + chmod 0660 /proc/ppm/policy/userlimit_cpu_freq + chown system system /proc/ppm/dump_cluster_0_dvfs_table + chmod 0440 /proc/ppm/dump_cluster_0_dvfs_table + chown system system /proc/ppm/dump_cluster_1_dvfs_table + chmod 0440 /proc/ppm/dump_cluster_1_dvfs_table + chown system system /proc/ppm/dump_cluster_2_dvfs_table + chmod 0440 /proc/ppm/dump_cluster_2_dvfs_table + chown system system /proc/ppm/root_cluster + chmod 0660 /proc/ppm/root_cluster + chown system system /proc/ppm/policy/hica_variant + chmod 0660 /proc/ppm/policy/hica_variant + chown system system /proc/ppm/policy/hica_settings/L_ONLY_to_4L_LL/loading_hold_time + chmod 0660 /proc/ppm/policy/hica_settings/L_ONLY_to_4L_LL/loading_hold_time + +# cpu_loading + chown system system /proc/cpu_loading/onoff + chmod 0664 /proc/cpu_loading/onoff + chown system system /proc/cpu_loading/overThrhld + chmod 0664 /proc/cpu_loading/overThrhld + chown system system /proc/cpu_loading/poltime_nsecs + chmod 0664 /proc/cpu_loading/poltime_nsecs + chown system system /proc/cpu_loading/poltime_secs + chmod 0664 /proc/cpu_loading/poltime_secs + chown system system /proc/cpu_loading/uevent_enable + chmod 0664 /proc/cpu_loading/uevent_enable + +# CPU freq + chown system system /proc/cpufreq/cpufreq_limited_by_hevc + chmod 0660 /proc/cpufreq/cpufreq_limited_by_hevc + chown system system /proc/cpufreq/cpufreq_limited_max_freq_by_user + chmod 0660 /proc/cpufreq/cpufreq_limited_max_freq_by_user + chown system system /proc/cpufreq/cpufreq_power_mode + chmod 0660 /proc/cpufreq/cpufreq_power_mode + chown system system /proc/cpufreq/enable_hw_gov + chmod 0660 /proc/cpufreq/enable_hw_gov + +# BW monitor + chown system system /proc/fliperfs/cg_enable + chmod 0664 /proc/fliperfs/cg_enable + chown system system /proc/fliperfs/cg_threshold + chmod 0664 /proc/fliperfs/cg_threshold + chown system system /proc/fliperfs/cg_threshold_ddr3 + chmod 0664 /proc/fliperfs/cg_threshold_ddr3 + chown system system /proc/fliperfs/perf + chmod 0664 /proc/fliperfs/perf + +# perfmgr + chown system system /proc/perfmgr/smart/hps_is_heavy + chmod 0660 /proc/perfmgr/smart/hps_is_heavy + chown system system /proc/perfmgr/smart/hps_check_duration + chmod 0660 /proc/perfmgr/smart/hps_check_duration + chown system system /proc/perfmgr/smart/hps_check_last_duration + chmod 0660 /proc/perfmgr/smart/hps_check_last_duration + chown system system /proc/perfmgr/smart/hps_uevent_enable + chmod 0660 /proc/perfmgr/smart/hps_uevent_enable + chown system system /sys/power/dcm_state + chmod 0660 /sys/power/dcm_state + +##Netlog tool + #change permissions about terminal + chown root radio /proc/net/vlan/config + chmod 0640 /proc/net/vlan/config + chown root radio /proc/net/ip6_tables_matches + chown root radio /proc/net/ip6_tables_names + chown root radio /proc/net/ip6_tables_targets + chown root radio /proc/net/arp_tables_targets + chown root radio /proc/net/arp_tables_matches + chown root radio /proc/net/arp_tables_names + chown root radio /proc/net/ip_tables_targets + chown root radio /proc/net/ip_tables_matches + chown root radio /proc/net/ip_tables_names + chown root radio /proc/net/ip_conntrack_expect + chown root radio /proc/net/ip_conntrack + chown root radio /proc/net/nf_conntrack + chown root radio /proc/net/nf_conntrack_expect + chown root radio /proc/net/netfilter/nfnetlink_log + chown root radio /proc/net/netfilter/nfnetlink_queue + + chown system system /sys/class/thermal/thermal_message/sconfig +# WMT proc + chown shell system /proc/driver/wmt_dbg + chown shell system /proc/driver/wmt_aee + +# define device for EMCSMDLOGGER + chown system radio /dev/ttyGS3 + chmod 0660 /dev/ttyGS3 + +#Define device for ATCID + chmod 660 /dev/ttyGS0 + chown system radio /dev/ttyGS0 + chmod 660 /dev/ttyGS1 + chown system radio /dev/ttyGS1 + +#on boot + chown system system /sys/bus/platform/devices/aw8622/activate + chown system system /sys/bus/platform/devices/aw8622/index + chown system system /sys/bus/platform/devices/aw8622/duration + chown system system /sys/bus/platform/devices/aw8622/hwen + chown system system /sys/bus/platform/devices/aw8622/load_wavefile_ctrl + chown system system /sys/bus/platform/devices/aw8622/debug_val_ctrl + chown system system /sys/bus/platform/devices/aw8622/pwm_ctrl + chown system system /sys/bus/platform/devices/aw8622/test_cnt + +on property:vold.decrypt=trigger_reset_main + write /proc/bootprof "INIT:vold.decrypt=trigger_reset_main" + setprop sys.boot_completed 0 + setprop dev.bootcomplete 0 + +on property:vold.decrypt=trigger_post_fs_data + write /proc/bootprof "INIT:vold.decrypt=trigger_post_fs_data" + +on property:vold.decrypt=trigger_restart_min_framework + write /proc/bootprof "INIT:vold.decrypt=trigger_restart_min_framework" + start nvram_daemon + start msensord + +on property:vold.decrypt=trigger_restart_framework + write /proc/bootprof "INIT:vold.decrypt=trigger_restart_framework" + start nvram_daemon + start msensord + +on property:vold.decrypt=trigger_shutdown_framework + write /proc/bootprof "INIT:vold.decrypt=trigger_shutdown_framework" + setprop sys.boot_completed 0 + setprop dev.bootcomplete 0 + + +# Stop bootprof +on property:sys.boot_completed=1 + write /proc/bootprof "0" + +#bluetooth property parameters + setprop persist.bluetooth.a2dp_offload.disabled false + +# bugreport is triggered by holding down volume down, volume up and power +service bugreport /system/bin/dumpstate -d -p -B -z \ + -o /data/user_de/0/com.android.shell/files/bugreports/bugreport + class late_start + disabled + oneshot + keycodes 114 115 116 + +# end boot time fs tune +on property:sys.boot_completed=1 + write /sys/block/mmcblk0/queue/iostats 1 + write /sys/block/mmcblk0/queue/read_ahead_kb 512 + write /sys/block/mmcblk0/queue/nr_requests 128 + write /sys/block/sdc/queue/iostats 1 + write /sys/block/sdc/queue/read_ahead_kb 512 + write /sys/block/sdc/queue/nr_requests 128 + write /sys/block/dm-0/queue/read_ahead_kb 128 + write /sys/block/dm-1/queue/read_ahead_kb 128 + write /sys/block/dm-2/queue/read_ahead_kb 128 + write /sys/block/dm-3/queue/read_ahead_kb 128 + write /sys/block/dm-4/queue/read_ahead_kb 128 + write /sys/block/dm-5/queue/read_ahead_kb 128 + + +# start EAS+ +on property:sys.boot_completed=1 + + write /sys/devices/system/cpu/eas/enable 2 + write /proc/cpufreq/cpufreq_sched_disable 0 + chown system system /dev/stune/foreground/schedtune.prefer_idle + chown system system /dev/stune/top-app/schedtune.prefer_idle + chown system system /dev/stune/rt/schedtune.prefer_idle + write /dev/stune/foreground/schedtune.prefer_idle 0 + write /dev/stune/top-app/schedtune.prefer_idle 0 + write /dev/stune/rt/schedtune.prefer_idle 0 + write /proc/sys/kernel/sched_migration_cost_ns 200000 + write /proc/sys/net/ipv4/tcp_mtu_probing 1 + write /proc/sys/net/ipv4/ip_no_pmtu_disc 0 + + # restore perf. parameters + write /proc/perfmgr/boost_ctrl/eas_ctrl/boot_boost "0 0" + write /proc/perfmgr/boost_ctrl/eas_ctrl/boot_boost "1 0" + write /proc/perfmgr/boost_ctrl/eas_ctrl/boot_boost "2 0" + write /proc/perfmgr/boost_ctrl/eas_ctrl/boot_boost "3 0" + write /proc/sys/kernel/sched_stune_task_threshold -1 + write /proc/perfmgr/boost_ctrl/cpu_ctrl/boot_freq "-1 -1 -1 -1" + write /sys/devices/platform/10012000.dvfsrc/helio-dvfsrc/dvfsrc_req_ddr_opp -1 + + # switch to sched-dvfs + write /sys/devices/system/cpu/cpufreq/policy0/scaling_governor "schedplus" + write /sys/devices/system/cpu/cpufreq/policy4/scaling_governor "schedplus" + +#service dpfd /vendor/bin/dpfd +# user root +# group system media + +# +# External Modme control related services +# + +# +# Modem related services (Begin) +# +##Add by T.Zh for ppp daemon +#service pppd /system/bin/pppd file /data/misc/ppp/ppp_options +# user root +# disabled +# oneshot +# +## +# +# Modem related services (End) +# + +#add for power-off alarm +#service poad /vendor/bin/poad +# class main +# user system +# group system +# oneshot + +#service BGW /vendor/xbin/BGW +# user system +# group gps system radio +# class main + +# Battery info +on property:persist.vendor.mediatek.fg.disable=1 + write /sys/devices/platform/battery_meter/FG_daemon_disable 1 + write /sys/bus/platform/devices/battery/FG_daemon_disable 1 + +on property:persist.vendor.mediatek.fg.force25c=1 + write /sys/devices/platform/battery_meter/FG_drv_force25c 1 + write /sys/bus/platform/devices/battery/Battery_Temperature 25 + +on property:persist.vendor.mediatek.fg.force25c=0 + write /sys/devices/platform/battery_meter/FG_drv_force25c 0 + write /sys/bus/platform/devices/battery/Battery_Temperature 65535 + +on property:persist.vendor.mediatek.fg.log.enable=1 + write /sys/devices/platform/battery_meter/FG_daemon_log_level 7 + write /sys/bus/platform/devices/battery/FG_daemon_log_level 7 + write /proc/sys/kernel/printk 8 + +# add meta_tst for ATM +service meta_tst /vendor/bin/meta_tst + class main + user system + group radio gps system wifi audio bluetooth media + capabilities NET_RAW NET_ADMIN + disabled + oneshot + +# start meta_tst for ATM +on property:sys.boot_completed=1 && property:ro.boot.atm=enable + start meta_tst + +# reset mdmode when modem crash happens in ATM +on property:vendor.mtk.md1.status=reset + setprop persist.vendor.atm.mdmode normal + +#2019.12.30 tianyajun add pocket mode +on property:odm.pocket.mode.keygurad.locked=1 + write /proc/tp_palm 1 + +on property:odm.pocket.mode.keygurad.locked=0 + write /proc/tp_palm 0 + +# add mi_thermald for thermal +service mi_thermald /system/vendor/bin/mi_thermald + class main + user root + group system + seclabel u:r:mi_thermald:s0 + +# FPSGO FBT Game +on boot + insmod /vendor/lib/modules/fpsgo.ko + insmod /vendor/lib/modules/mi_memory.ko + +# add this link for cust mount +on init + symlink /dev/block/platform/bootdevice /dev/block/bootdevice + +# VSIM service (vendor OSI) +service osi /system/bin/osi + class main + user root + disabled + oneshot + #seclabel u:r:osi:s0 + +# Ultrasound SQT test +service ellipticEngineRecord /system/bin/elliptic_engine_record -s /dev/elliptic1:device -f binpayload -p /sdcard/elliptic/ + class main + user root + oneshot + disabled +on property:vendor.elliptic.engine.record=1 + start ellipticEngineRecord +on property:vendor.elliptic.engine.record=0 + stop ellipticEngineRecord + +service ellipticSensorTest /system/bin/elliptic_sensor_test + class main + user root + oneshot + disabled +on property:vendor.elliptic.sensor.test=1 + start ellipticSensorTest +on property:vendor.elliptic.sensor.test=0 + stop ellipticSensorTest + +service displayfeature /system/bin/displayfeature + class late_start + user root + group root + +on property:init.svc.surfaceflinger=stopped + stop displayfeature + +on property:init.svc.surfaceflinger=running + start displayfeature + +on property:init.svc.surfaceflinger=restarting + stop displayfeature + +on property:sys.boot_completed="" && property:persist.radio.op.name=AT && property:persist.vendor.op.name.last=UN + setprop persist.vendor.op.name.last "AT" + setprop sys.powerctl "reboot" + +on property:sys.boot_completed="" && property:persist.radio.op.name=UN && property:persist.vendor.op.name.last=AT + setprop persist.vendor.op.name.last "UN" + setprop sys.powerctl "reboot" + +on property:sys.boot_completed="" && property:persist.radio.op.name=UN && property:persist.vendor.op.name.last="" + setprop persist.vendor.op.name.last "UN" + setprop sys.powerctl "reboot" + +on property:sys.boot_completed=1 && property:persist.radio.op.name=* + setprop persist.vendor.op.name.last ${persist.radio.op.name} diff --git a/rootdir/etc/init.mt6785.usb.rc b/rootdir/etc/init.mt6785.usb.rc new file mode 100644 index 0000000..7343e0e --- /dev/null +++ b/rootdir/etc/init.mt6785.usb.rc @@ -0,0 +1,933 @@ +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 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 0x2717 + write /config/usb_gadget/g1/bcdDevice 0x0404 + 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/mtp.gs0 + write /config/usb_gadget/g1/functions/mtp.gs0/os_desc/interface.MTP/compatible_id "MTP" + mkdir /config/usb_gadget/g1/functions/ptp.gs1 + mkdir /config/usb_gadget/g1/functions/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/functions/via_modem.gs0 + mkdir /config/usb_gadget/g1/functions/via_ets.gs0 + mkdir /config/usb_gadget/g1/functions/via_atc.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 uid=2000,gid=2000 + +on boot + setprop sys.usb.configfs 1 + setprop sys.usb.ffs.aio_compat 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 + write /sys/class/android_usb/android0/f_mtp/cpu_mask 0xF0 + 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 UAC MAX dpidle time + write /sys/module/xhci_hcd/parameters/dpidle_fs_max 0 + write /sys/module/xhci_hcd/parameters/dpidle_hs_max 0 + + # 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 0x2717 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + write /sys/class/udc/musb-hdrc/device/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} + +on property:dev.bootcomplete=1 + write /config/usb_gadget/g1/strings/0x409/product ${ro.product.marketname} + +### 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 0xFF0C + write /sys/class/udc/musb-hdrc/device/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 0xFF08 + 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 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "mtp_acm" + write /config/usb_gadget/g1/idProduct 0xFF44 + write /config/usb_gadget/g1/os_desc/use 1 + write /sys/class/udc/musb-hdrc/device/saving 1 + symlink /config/usb_gadget/g1/functions/mtp.gs0 /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 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "mtp" + write /config/usb_gadget/g1/idProduct 0xFF40 + write /config/usb_gadget/g1/os_desc/use 1 + symlink /config/usb_gadget/g1/functions/mtp.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} + +### 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 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "mtp_adb_acm" + write /config/usb_gadget/g1/idProduct 0xFF4C + write /config/usb_gadget/g1/os_desc/use 1 + write /sys/class/udc/musb-hdrc/device/saving 1 + symlink /config/usb_gadget/g1/functions/mtp.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} + +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=mtp,adb && \ +property:vendor.usb.acm_enable=0 && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "mtp_adb" + write /config/usb_gadget/g1/idProduct 0xFF48 + write /config/usb_gadget/g1/os_desc/use 1 + symlink /config/usb_gadget/g1/functions/mtp.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 + 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 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ptp_acm" + write /config/usb_gadget/g1/idProduct 0xFF14 + write /sys/class/udc/musb-hdrc/device/saving 1 + symlink /config/usb_gadget/g1/functions/ptp.gs1 /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 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ptp" + write /config/usb_gadget/g1/idProduct 0xFF10 + symlink /config/usb_gadget/g1/functions/ptp.gs1 /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 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ptp_adb_acm" + write /config/usb_gadget/g1/idProduct 0xFF1C + write /sys/class/udc/musb-hdrc/device/saving 1 + symlink /config/usb_gadget/g1/functions/ptp.gs1 /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 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ptp_adb" + write /config/usb_gadget/g1/idProduct 0xFF18 + symlink /config/usb_gadget/g1/functions/ptp.gs1 /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/rndis.gs4 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ums_acm" + write /config/usb_gadget/g1/idProduct 0xFF84 + write /sys/class/udc/musb-hdrc/device/saving 1 + symlink /config/usb_gadget/g1/functions/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/rndis.gs4 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis" + write /config/usb_gadget/g1/idProduct 0xFF80 + symlink /config/usb_gadget/g1/functions/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/rndis.gs4 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_adb_acm" + write /config/usb_gadget/g1/idProduct 0xFF8C + write /sys/class/udc/musb-hdrc/device/saving 1 + symlink /config/usb_gadget/g1/functions/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/rndis.gs4 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_adb" + write /config/usb_gadget/g1/idProduct 0xFF88 + symlink /config/usb_gadget/g1/functions/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/class/udc/musb-hdrc/device/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/class/udc/musb-hdrc/device/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/class/udc/musb-hdrc/device/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/class/udc/musb-hdrc/device/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/class/udc/musb-hdrc/device/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 0xFF24 + write /sys/class/udc/musb-hdrc/device/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 0xFF20 + 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 0xFF2C + write /sys/class/udc/musb-hdrc/device/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 0xFF28 + 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/class/udc/musb-hdrc/device/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/class/udc/musb-hdrc/device/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/rndis.gs4 + write /sys/class/udc/musb-hdrc/device/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/class/udc/musb-hdrc/device/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/mtp.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.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/class/udc/musb-hdrc/device/saving 1 + write /config/usb_gadget/g1/idProduct 0x2026 + symlink /config/usb_gadget/g1/functions/mtp.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.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/mtp.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} + setprop vendor.usb.pid 0x2008 + +on property:sys.usb.config=charging_yes + setprop vendor.usb.state ${sys.usb.state} + setprop vendor.usb.charging yes + setprop sys.usb.config none + setprop sys.usb.config ${vendor.usb.state} + +on property:sys.usb.config=charging_no + setprop vendor.usb.state ${sys.usb.state} + setprop sys.usb.config none + setprop sys.usb.config ${vendor.usb.state} + setprop vendor.usb.charging no + +on property:vendor.usb.charging=yes + write /sys/class/udc/musb-hdrc/device/cmode 2 +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/class/udc/musb-hdrc/device/portmode 0 +on property:vendor.usb.port.mode=uart + write /sys/class/udc/musb-hdrc/device/portmode 1 + +on property:vendor.em.usb.set=USB_DRIVING_CAPABILITY + write /sys/kernel/debug/usb20_phy/USB_DRIVING_CAPABILITY ${mediatek.em.usb.value} +on property:vendor.em.usb.set=RG_USB20_TERM_VREF_SEL + write /sys/kernel/debug/usb20_phy/RG_USB20_TERM_VREF_SEL ${mediatek.em.usb.value} +on property:vendor.em.usb.set=RG_USB20_HSTX_SRCTRL + write /sys/kernel/debug/usb20_phy/RG_USB20_HSTX_SRCTRL ${mediatek.em.usb.value} +on property:vendor.em.usb.set=RG_USB20_VRT_VREF_SEL + write /sys/kernel/debug/usb20_phy/RG_USB20_VRT_VREF_SEL ${mediatek.em.usb.value} +on property:vendor.em.usb.set=RG_USB20_INTR_EN + write /sys/kernel/debug/usb20_phy/RG_USB20_INTR_EN ${mediatek.em.usb.value} +on property:vendor.em.usb.set=RG_USB20_PHY_REV6 + write /sys/kernel/debug/usb20_phy/RG_USB20_PHY_REV6 ${mediatek.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/module/musb_hdrc/parameters/speed 1 + write /sys/class/udc/musb-hdrc/device/cmode 0 + write /sys/class/udc/musb-hdrc/device/cmode 1 + +on property:vendor.usb.speed.mode=u2 + write /sys/module/musb_hdrc/parameters/speed 0 + write /sys/class/udc/musb-hdrc/device/cmode 0 + write /sys/class/udc/musb-hdrc/device/cmode 1 + +on property:persist.vendor.usb.speed.mode=u3 + write /sys/module/musb_hdrc/parameters/speed 1 + write /sys/class/udc/musb-hdrc/device/cmode 0 + write /sys/class/udc/musb-hdrc/device/cmode 1 + +on property:persist.vendor.usb.speed.mode=u2 + write /sys/module/musb_hdrc/parameters/speed 0 + write /sys/class/udc/musb-hdrc/device/cmode 0 + write /sys/class/udc/musb-hdrc/device/cmode 1 + +on property:vendor.usb.sib_enable=1 + write /sys/class/udc/musb-hdrc/device/sib_enable 1 + +on property:vendor.usb.sib_enable=0 + write /sys/class/udc/musb-hdrc/device/sib_enable 0 + +on property:persist.vendor.usb.dbg.lv=* + setprop vendor.usb.dbg.lv ${persist.vendor.usb.dbg.lv} + +on property:vendor.usb.dbg.lv=* + write /sys/module/musb_hdrc/parameters/debug_level ${vendor.usb.dbg.lv} + +### PLATFORM VARIANT, cat $rc_file | grep write | sort | grep -vE "android0|usb20_phy" | awk '{print $2}' | uniq ### diff --git a/rootdir/etc/init.sensor_1_0.rc b/rootdir/etc/init.sensor_1_0.rc new file mode 100644 index 0000000..2920b56 --- /dev/null +++ b/rootdir/etc/init.sensor_1_0.rc @@ -0,0 +1,195 @@ +# MTK platform .rc configure +on post-fs-data + # calibration + mkdir /data/vendor/sensor 0774 system system + # Sensor + chmod 0660 /dev/hwmsensor + chmod 0660 /dev/msensor + chmod 0666 /dev/gsensor + chmod 0666 /dev/als_ps + chmod 0666 /dev/lightsecondary + chmod 0666 /dev/gyroscope + chmod 0660 /dev/aal_als + chmod 0660 /dev/humidity + chmod 0660 /dev/barometer + chmod 0660 /dev/m_als_misc + chmod 0660 /dev/m_baro_misc + chmod 0660 /dev/m_hmdy_misc + chmod 0660 /dev/m_ps_misc + chmod 0660 /dev/m_acc_misc + chmod 0660 /dev/m_mag_misc + chmod 0660 /dev/m_gyro_misc + chmod 0660 /dev/m_act_misc + chmod 0660 /dev/m_pedo_misc + chmod 0660 /dev/m_situ_misc + chmod 0660 /dev/m_step_c_misc + chmod 0660 /dev/m_fusion_misc + chmod 0660 /dev/m_bio_misc + chmod 0660 /dev/biometric + chmod 0660 /dev/sensorlist + + chown system system /dev/hwmsensor + chown system system /dev/msensor + chown radio system /dev/gsensor + chown radio system /dev/als_ps + chown radio system /dev/lightsecondary + chown radio system /dev/gyroscope + chown system system /dev/aal_als + chown system system /dev/humidity + chown system system /dev/barometer + chown system system /dev/m_als_misc + chown system system /dev/m_baro_misc + chown system system /dev/m_hmdy_misc + chown system system /dev/m_ps_misc + chown system system /dev/m_acc_misc + chown system system /dev/m_mag_misc + chown system system /dev/m_gyro_misc + chown system system /dev/m_act_misc + chown system system /dev/m_pedo_misc + chown system system /dev/m_situ_misc + chown system system /dev/m_step_c_misc + chown system system /dev/m_fusion_misc + chown system system /dev/m_bio_misc + chown system system /dev/biometric + chown system system /dev/sensorlist + + chmod 0660 /sys/class/sensor/m_acc_misc/accenablenodata + chmod 0660 /sys/class/sensor/m_acc_misc/accactive + chmod 0660 /sys/class/sensor/m_acc_misc/accdelay + chmod 0660 /sys/class/sensor/m_acc_misc/accbatch + chmod 0660 /sys/class/sensor/m_acc_misc/accflush + chmod 0660 /sys/class/sensor/m_acc_misc/acccali + chown system system /sys/class/sensor/m_acc_misc/accenablenodata + chown system system /sys/class/sensor/m_acc_misc/accactive + chown system system /sys/class/sensor/m_acc_misc/accdelay + chown system system /sys/class/sensor/m_acc_misc/accbatch + chown system system /sys/class/sensor/m_acc_misc/accflush + chown system system /sys/class/sensor/m_acc_misc/acccali + + chmod 0660 /sys/class/sensor/m_mag_misc/magactive + chmod 0660 /sys/class/sensor/m_mag_misc/magdelay + chmod 0660 /sys/class/sensor/m_mag_misc/magbatch + chmod 0660 /sys/class/sensor/m_mag_misc/magflush + chmod 0660 /sys/class/sensor/m_mag_misc/magcali + chmod 0660 /sys/class/sensor/m_mag_misc/maglibinfo + chown system system /sys/class/sensor/m_mag_misc/magactive + chown system system /sys/class/sensor/m_mag_misc/magdelay + chown system system /sys/class/sensor/m_mag_misc/magbatch + chown system system /sys/class/sensor/m_mag_misc/magflush + chown system system /sys/class/sensor/m_mag_misc/magcali + chown system system /sys/class/sensor/m_mag_misc/maglibinfo + + chmod 0660 /sys/class/sensor/m_gyro_misc/gyroenablenodata + chmod 0660 /sys/class/sensor/m_gyro_misc/gyroactive + chmod 0660 /sys/class/sensor/m_gyro_misc/gyrodelay + chmod 0660 /sys/class/sensor/m_gyro_misc/gyrobatch + chmod 0660 /sys/class/sensor/m_gyro_misc/gyroflush + chmod 0660 /sys/class/sensor/m_gyro_misc/gyrocali + chown system system /sys/class/sensor/m_gyro_misc/gyroenablenodata + chown system system /sys/class/sensor/m_gyro_misc/gyroactive + chown system system /sys/class/sensor/m_gyro_misc/gyrodelay + chown system system /sys/class/sensor/m_gyro_misc/gyrobatch + chown system system /sys/class/sensor/m_gyro_misc/gyroflush + chown system system /sys/class/sensor/m_gyro_misc/gyrocali + + chmod 0660 /sys/class/sensor/m_als_misc/alsactive + chmod 0660 /sys/class/sensor/m_als_misc/alsdelay + chmod 0660 /sys/class/sensor/m_als_misc/alsbatch + chmod 0660 /sys/class/sensor/m_als_misc/alsflush + chmod 0660 /sys/class/sensor/m_als_misc/alscali + chmod 0660 /sys/class/sensor/m_ps_misc/psactive + chmod 0660 /sys/class/sensor/m_ps_misc/psdelay + chmod 0660 /sys/class/sensor/m_ps_misc/psbatch + chmod 0660 /sys/class/sensor/m_ps_misc/psflush + chmod 0660 /sys/class/sensor/m_ps_misc/pscali + chown system system /sys/class/sensor/m_als_misc/alsactive + chown system system /sys/class/sensor/m_als_misc/alsdelay + chown system system /sys/class/sensor/m_als_misc/alsbatch + chown system system /sys/class/sensor/m_als_misc/alsflush + chown system system /sys/class/sensor/m_als_misc/alscali + chown system system /sys/class/sensor/m_ps_misc/psactive + chown system system /sys/class/sensor/m_ps_misc/psdelay + chown system system /sys/class/sensor/m_ps_misc/psbatch + chown system system /sys/class/sensor/m_ps_misc/psflush + chown system system /sys/class/sensor/m_ps_misc/pscali + + chmod 0660 /sys/class/sensor/m_baro_misc/baroenablenodata + chmod 0660 /sys/class/sensor/m_baro_misc/baroactive + chmod 0660 /sys/class/sensor/m_baro_misc/barodelay + chmod 0660 /sys/class/sensor/m_baro_misc/barobatch + chmod 0660 /sys/class/sensor/m_baro_misc/baroflush + chmod 0660 /sys/class/sensor/m_baro_misc/barocali + chown system system /sys/class/sensor/m_baro_misc/baroenablenodata + chown system system /sys/class/sensor/m_baro_misc/baroactive + chown system system /sys/class/sensor/m_baro_misc/barodelay + chown system system /sys/class/sensor/m_baro_misc/barobatch + chown system system /sys/class/sensor/m_baro_misc/baroflush + chown system system /sys/class/sensor/m_baro_misc/barocali + + chmod 0660 /sys/class/sensor/m_hmdy_misc/hmdyenablenodata + chmod 0660 /sys/class/sensor/m_hmdy_misc/hmdyactive + chmod 0660 /sys/class/sensor/m_hmdy_misc/hmdydelay + chmod 0660 /sys/class/sensor/m_hmdy_misc/hmdybatch + chmod 0660 /sys/class/sensor/m_hmdy_misc/hmdyflush + + chown system system /sys/class/sensor/m_hmdy_misc/hmdyenablenodata + chown system system /sys/class/sensor/m_hmdy_misc/hmdyactive + chown system system /sys/class/sensor/m_hmdy_misc/hmdydelay + chown system system /sys/class/sensor/m_hmdy_misc/hmdybatch + chown system system /sys/class/sensor/m_hmdy_misc/hmdyflush + + chmod 0660 /sys/class/sensor/m_pedo_misc/pedoactive + chmod 0660 /sys/class/sensor/m_pedo_misc/pedodelay + chmod 0660 /sys/class/sensor/m_pedo_misc/pedobatch + chmod 0660 /sys/class/sensor/m_pedo_misc/pedoflush + chown system system /sys/class/sensor/m_pedo_misc/pedoactive + chown system system /sys/class/sensor/m_pedo_misc/pedodelay + chown system system /sys/class/sensor/m_pedo_misc/pedobatch + chown system system /sys/class/sensor/m_pedo_misc/pedoflush + + chmod 0660 /sys/class/sensor/m_situ_misc/situactive + chmod 0660 /sys/class/sensor/m_situ_misc/situdelay + chmod 0660 /sys/class/sensor/m_situ_misc/situbatch + chmod 0660 /sys/class/sensor/m_situ_misc/situflush + chmod 0660 /sys/class/sensor/m_situ_misc/lightsecondaryCali + chown system system /sys/class/sensor/m_situ_misc/situactive + chown system system /sys/class/sensor/m_situ_misc/situdelay + chown system system /sys/class/sensor/m_situ_misc/situbatch + chown system system /sys/class/sensor/m_situ_misc/situflush + chown system system /sys/class/sensor/m_situ_misc/lightsecondaryCali + + chmod 0660 /sys/class/sensor/m_act_misc/actactive + chmod 0660 /sys/class/sensor/m_act_misc/actdelay + chmod 0660 /sys/class/sensor/m_act_misc/actbatch + chmod 0660 /sys/class/sensor/m_act_misc/actflush + chown system system /sys/class/sensor/m_act_misc/actactive + chown system system /sys/class/sensor/m_act_misc/actdelay + chown system system /sys/class/sensor/m_act_misc/actbatch + chown system system /sys/class/sensor/m_act_misc/actflush + + chmod 0660 /sys/class/sensor/m_step_c_misc/step_cactive + chmod 0660 /sys/class/sensor/m_step_c_misc/step_cdelay + chmod 0660 /sys/class/sensor/m_step_c_misc/step_cbatch + chmod 0660 /sys/class/sensor/m_step_c_misc/step_cflush + chown system system /sys/class/sensor/m_step_c_misc/step_cactive + chown system system /sys/class/sensor/m_step_c_misc/step_cdelay + chown system system /sys/class/sensor/m_step_c_misc/step_cbatch + chown system system /sys/class/sensor/m_step_c_misc/step_cflush + + chmod 0660 /sys/class/sensor/m_fusion_misc/fusionactive + chmod 0660 /sys/class/sensor/m_fusion_misc/fusiondelay + chmod 0660 /sys/class/sensor/m_fusion_misc/fusionbatch + chmod 0660 /sys/class/sensor/m_fusion_misc/fusionflush + chown system system /sys/class/sensor/m_fusion_misc/fusionactive + chown system system /sys/class/sensor/m_fusion_misc/fusiondelay + chown system system /sys/class/sensor/m_fusion_misc/fusionbatch + chown system system /sys/class/sensor/m_fusion_misc/fusionflush + + chmod 0660 /sys/class/sensor/m_bio_misc/bioactive + chmod 0660 /sys/class/sensor/m_bio_misc/biodelay + chmod 0660 /sys/class/sensor/m_bio_misc/biobatch + chmod 0660 /sys/class/sensor/m_bio_misc/bioflush + chown system system /sys/class/sensor/m_bio_misc/bioactive + chown system system /sys/class/sensor/m_bio_misc/biodelay + chown system system /sys/class/sensor/m_bio_misc/biobatch + chown system system /sys/class/sensor/m_bio_misc/bioflush diff --git a/rootdir/etc/ueventd.mtk.rc b/rootdir/etc/ueventd.mtk.rc new file mode 100644 index 0000000..1387054 --- /dev/null +++ b/rootdir/etc/ueventd.mtk.rc @@ -0,0 +1,155 @@ +#change partition permission +# eMMC only +/dev/block/mmcblk0 0660 root system +/dev/block/mmcblk0boot0 0660 root system +/dev/block/mmcblk0boot1 0660 root system +/dev/misc-sd 0660 root system + +# UFS only +/dev/block/sda 0660 root system +/dev/block/sdb 0660 root system +/dev/block/sdc 0660 root system + +# eMMC/UFS common +/dev/block/platform/bootdevice/by-name/misc2 0660 root system +/dev/block/platform/bootdevice/by-name/boot 0640 root system +/dev/block/platform/bootdevice/by-name/recovery 0640 root system +/dev/block/platform/bootdevice/by-name/secro 0640 root system +/dev/block/platform/bootdevice/by-name/seccfg 0660 root system +/dev/block/platform/bootdevice/by-name/proinfo 0660 root system +/dev/block/platform/bootdevice/by-name/nvram 0660 root system +/dev/block/platform/bootdevice/by-name/para 0660 root system +/dev/block/platform/bootdevice/by-name/logo 0660 root system +/dev/block/platform/bootdevice/by-name/frp 0660 root system +/dev/block/platform/bootdevice/by-name/md1img 0640 root system +/dev/block/platform/bootdevice/by-name/md1img_a 0640 root system +/dev/block/platform/bootdevice/by-name/md1img_b 0640 root system +/dev/block/platform/bootdevice/by-name/md1dsp 0660 root system +/dev/block/platform/bootdevice/by-name/boot_para 0640 root system + +# OTP +/dev/otp 0660 system system +/dev/block/platform/bootdevice/by-name/otp 0660 root system + +# Connectivity +/dev/stpwmt 0660 system system +/dev/wmtdetect 0660 system system +/dev/fw_log_wmt 0660 system system + +# BT +/dev/stpbt 0660 bluetooth bluetooth +/dev/fw_log_bt 0660 bluetooth bluetooth + +# GPS +/dev/stpgps 0660 gps gps +/dev/gps 0660 gps system +/dev/fw_log_gps 0660 gps gps +/dev/gps_emi 0660 gps gps + +# ANT +/dev/stpant 0660 system system + +# WIFI +/dev/wmtWifi 0660 wifi wifi +/dev/fw_log_wifi 0660 wifi wifi + +# FMRadio +/dev/fm 0660 media media + +# NFC +/dev/st21nfc 0660 nfc radio +/dev/st54spi 0660 secure_element secure_element + +# MTK BTIF driver +/dev/btif 0600 system system + +# Trusty driver +/dev/trusty-ipc-dev0 0660 system system +/dev/nebula-ipc-dev0 0660 system system + +# RPMB (for Trusty) +/dev/block/mmcblk0rpmb 0660 root system + +# TrustonicTEE driver +/dev/mobicore 0600 system system +/dev/mobicore-user 0666 system system +/dev/t-base-tui 0666 system system + +#elliptic sensor +/dev/elliptic0 0644 system system +/dev/elliptic1 0644 system system + +# add the read write right of ttyUSB* +/dev/bus/usb/* 0660 root usb +/dev/ttyUSB0 0660 radio radio +/dev/ttyUSB1 0660 radio radio +/dev/ttyUSB2 0660 radio radio +/dev/ttyUSB3 0660 radio radio +/dev/ttyUSB4 0660 radio radio + +# Anyone can read the logs, but if they're not in the "logs" +# group, then they'll only see log entries for their UID. +/dev/log/ksystem 0600 root log + +/dev/ccci* 0660 radio radio +/dev/ttyC* 0660 radio radio +/sys/kernel/ccci modem_info 0644 radio radio +/sys/kernel/ccci md1_postfix 0644 radio radio +/sys/kernel/ccci md2_postfix 0644 radio radio +/dev/eemcs* 0660 radio radio +/dev/emd* 0660 radio radio +/dev/ccci_pcm_rx 0660 audio audio +/dev/ccci_pcm_tx 0660 audio audio +/dev/ccci_aud 0660 audio audio +/dev/ccci2_aud 0660 audio audio +/dev/ccci3_aud 0660 audio audio +/dev/ccci_raw_audio 0660 audio audio +/dev/ccci3_raw_audio 0660 audio audio +/dev/eemcs_aud 0660 audio audio +/dev/irtx 0660 system system +/dev/ir-learning 0660 system system +# SGX device node +/dev/pvrsrvkm 0666 root root +/dev/pvr_sync 0666 root root + + +/sys/devices/platform/leds-mt65xx/leds/green delay_on 0664 system system +/sys/devices/platform/leds-mt65xx/leds/green delay_off 0664 system system +/sys/devices/platform/leds-mt65xx/leds/red delay_on 0664 system system +/sys/devices/platform/leds-mt65xx/leds/red delay_off 0664 system system +/sys/devices/platform/leds-mt65xx/leds/blue delay_on 0664 system system +/sys/devices/platform/leds-mt65xx/leds/blue delay_off 0664 system system +/sys/class/leds/green delay_on 0664 system system +/sys/class/leds/green delay_off 0664 system system +/sys/class/leds/red delay_on 0664 system system +/sys/class/leds/red delay_off 0664 system system +/sys/class/leds/blue delay_on 0664 system system +/sys/class/leds/blue delay_off 0664 system system + +#GPIO +/dev/mtgpio 0600 radio root + + +#FOR VIA MODEM +/dev/ttySDIO* 0660 radio sdcard_rw +/dev/ttyRB* 0660 radio radio + +# Mali node +/dev/mali 0666 system graphics + +# Change ION driver permission +/dev/ion 0666 system graphics + +#touch +/dev/touch 0660 root system +/dev/hotknot 0660 root system + +#hang_detect +/dev/RT_Monitor 0660 system system +/dev/kick_powerkey 0660 system system + +#MTK In-House TEE +/dev/ttyACM0 0660 radio radio + +#ir +/dev/spidev3.0 0660 system system