From 5103b6e0df7e59dc276a678f2ccd986206b1165e Mon Sep 17 00:00:00 2001 From: dodyirawan85 <40514988+dodyirawan85@users.noreply.github.com> Date: Wed, 6 Dec 2023 09:29:48 +0700 Subject: [PATCH] X6833B: Import rootdir from 231102V2897 Signed-off-by: dodyirawan85 <40514988+dodyirawan85@users.noreply.github.com> --- device.mk | 30 +- rootdir/Android.bp | 173 +++ rootdir/bin/init.insmod.sh | 34 + rootdir/etc/init.insmod.mt6789.cfg | 11 + .../hw/factory_init.connectivity.common.rc | 86 ++ .../etc/init/hw/factory_init.connectivity.rc | 34 + rootdir/etc/init/hw/factory_init.project.rc | 42 + rootdir/etc/init/hw/factory_init.rc | 890 +++++++++++++ rootdir/etc/init/hw/init.aee.rc | 31 + rootdir/etc/init/hw/init.cgroup.rc | 46 + .../etc/init/hw/init.connectivity.common.rc | 84 ++ rootdir/etc/init/hw/init.connectivity.rc | 4 + rootdir/etc/init/hw/init.modem.rc | 42 + rootdir/etc/init/hw/init.mt6789.rc | 1179 +++++++++++++++++ rootdir/etc/init/hw/init.mt6789.usb.rc | 949 +++++++++++++ rootdir/etc/init/hw/init.mtkgki.rc | 35 + rootdir/etc/init/hw/init.project.rc | 107 ++ rootdir/etc/init/hw/init.sensor_2_0.rc | 7 + rootdir/etc/init/hw/init_connectivity.rc | 46 + .../init/hw/meta_init.connectivity.common.rc | 82 ++ rootdir/etc/init/hw/meta_init.connectivity.rc | 37 + rootdir/etc/init/hw/meta_init.modem.rc | 44 + rootdir/etc/init/hw/meta_init.project.rc | 15 + rootdir/etc/init/hw/meta_init.rc | 422 ++++++ rootdir/etc/init/hw/meta_init.vendor.rc | 11 + rootdir/etc/init/hw/multi_init.rc | 56 + rootdir/etc/ueventd.mt6789.rc | 196 +++ 27 files changed, 4691 insertions(+), 2 deletions(-) create mode 100644 rootdir/bin/init.insmod.sh create mode 100644 rootdir/etc/init.insmod.mt6789.cfg create mode 100644 rootdir/etc/init/hw/factory_init.connectivity.common.rc create mode 100644 rootdir/etc/init/hw/factory_init.connectivity.rc create mode 100644 rootdir/etc/init/hw/factory_init.project.rc create mode 100644 rootdir/etc/init/hw/factory_init.rc create mode 100644 rootdir/etc/init/hw/init.aee.rc create mode 100644 rootdir/etc/init/hw/init.cgroup.rc create mode 100644 rootdir/etc/init/hw/init.connectivity.common.rc create mode 100644 rootdir/etc/init/hw/init.connectivity.rc create mode 100644 rootdir/etc/init/hw/init.modem.rc create mode 100644 rootdir/etc/init/hw/init.mt6789.rc create mode 100644 rootdir/etc/init/hw/init.mt6789.usb.rc create mode 100644 rootdir/etc/init/hw/init.mtkgki.rc create mode 100644 rootdir/etc/init/hw/init.project.rc create mode 100644 rootdir/etc/init/hw/init.sensor_2_0.rc create mode 100644 rootdir/etc/init/hw/init_connectivity.rc create mode 100644 rootdir/etc/init/hw/meta_init.connectivity.common.rc create mode 100644 rootdir/etc/init/hw/meta_init.connectivity.rc create mode 100644 rootdir/etc/init/hw/meta_init.modem.rc create mode 100644 rootdir/etc/init/hw/meta_init.project.rc create mode 100644 rootdir/etc/init/hw/meta_init.rc create mode 100644 rootdir/etc/init/hw/meta_init.vendor.rc create mode 100644 rootdir/etc/init/hw/multi_init.rc create mode 100644 rootdir/etc/ueventd.mt6789.rc diff --git a/device.mk b/device.mk index 1ba9ccb..541a171 100644 --- a/device.mk +++ b/device.mk @@ -71,8 +71,34 @@ PRODUCT_PACKAGES += \ # Init files PRODUCT_PACKAGES += \ - fstab.mt6789.vendor_ramdisk \ - init.recovery.usb.rc + factory_init.connectivity.common.rc \ + factory_init.connectivity.rc \ + factory_init.project.rc \ + factory_init.rc \ + fstab.mt6789 \ + fstab.mt6789.vendor_ramdisk \ + init_connectivity.rc \ + init.aee.rc \ + init.cgroup.rc \ + init.connectivity.common.rc \ + init.connectivity.rc \ + init.insmod.sh \ + init.insmod.mt6789.cfg \ + init.modem.rc \ + init.mt6789.rc \ + init.mt6789.usb.rc \ + init.mtkgki.rc \ + init.project.rc \ + init.recovery.usb.rc \ + init.sensor_2_0.rc \ + meta_init.connectivity.common.rc \ + meta_init.connectivity.rc \ + meta_init.modem.rc \ + meta_init.project.rc \ + meta_init.rc \ + meta_init.vendor.rc \ + multi_init.rc \ + ueventd.mt6789.rc # Include GSI keys $(call inherit-product, $(SRC_TARGET_DIR)/product/developer_gsi_keys.mk) diff --git a/rootdir/Android.bp b/rootdir/Android.bp index 6df22bd..5e1866b 100644 --- a/rootdir/Android.bp +++ b/rootdir/Android.bp @@ -4,15 +4,188 @@ // SPDX-License-Identifier: Apache-2.0 // +prebuilt_etc { + name: "factory_init.connectivity.common.rc", + src: "etc/init/hw/factory_init.connectivity.common.rc", + sub_dir: "init/hw", + vendor: true +} + +prebuilt_etc { + name: "factory_init.connectivity.rc", + src: "etc/init/hw/factory_init.connectivity.rc", + sub_dir: "init/hw", + vendor: true +} + +prebuilt_etc { + name: "factory_init.project.rc", + src: "etc/init/hw/factory_init.project.rc", + sub_dir: "init/hw", + vendor: true +} + +prebuilt_etc { + name: "factory_init.rc", + src: "etc/init/hw/factory_init.rc", + sub_dir: "init/hw", + vendor: true +} + +prebuilt_etc { + name: "init_connectivity.rc", + src: "etc/init/hw/init_connectivity.rc", + sub_dir: "init/hw", + vendor: true +} + prebuilt_etc { name: "fstab.mt6789", src: "etc/fstab.mt6789", vendor_ramdisk_available: true } +prebuilt_etc { + name: "init.aee.rc", + src: "etc/init/hw/init.aee.rc", + sub_dir: "init/hw", + vendor: true +} + +prebuilt_etc { + name: "init.cgroup.rc", + src: "etc/init/hw/init.cgroup.rc", + sub_dir: "init/hw", + vendor: true +} + +prebuilt_etc { + name: "init.connectivity.common.rc", + src: "etc/init/hw/init.connectivity.common.rc", + sub_dir: "init/hw", + vendor: true +} + +prebuilt_etc { + name: "init.connectivity.rc", + src: "etc/init/hw/init.connectivity.rc", + sub_dir: "init/hw", + vendor: true +} + +prebuilt_etc { + name: "init.insmod.mt6789.cfg", + src: "etc/init.insmod.mt6789.cfg", + vendor: true +} + +prebuilt_etc { + name: "init.modem.rc", + src: "etc/init/hw/init.modem.rc", + sub_dir: "init/hw", + vendor: true +} + +prebuilt_etc { + name: "init.mt6789.rc", + src: "etc/init/hw/init.mt6789.rc", + sub_dir: "init/hw", + vendor: true +} + +prebuilt_etc { + name: "init.mt6789.usb.rc", + src: "etc/init/hw/init.mt6789.usb.rc", + sub_dir: "init/hw", + vendor: true +} + +prebuilt_etc { + name: "init.mtkgki.rc", + src: "etc/init/hw/init.mtkgki.rc", + sub_dir: "init/hw", + vendor: true +} + +prebuilt_etc { + name: "init.project.rc", + src: "etc/init/hw/init.project.rc", + sub_dir: "init/hw", + vendor: true +} + prebuilt_etc { name: "init.recovery.usb.rc", src: "etc/init.recovery.usb.rc", recovery: true, sub_dir: "init" } + +prebuilt_etc { + name: "init.sensor_2_0.rc", + src: "etc/init/hw/init.sensor_2_0.rc", + sub_dir: "init/hw", + vendor: true +} + +prebuilt_etc { + name: "meta_init.connectivity.common.rc", + src: "etc/init/hw/meta_init.connectivity.common.rc", + sub_dir: "init/hw", + vendor: true +} + +prebuilt_etc { + name: "meta_init.connectivity.rc", + src: "etc/init/hw/meta_init.connectivity.rc", + sub_dir: "init/hw", + vendor: true +} + +prebuilt_etc { + name: "meta_init.modem.rc", + src: "etc/init/hw/meta_init.modem.rc", + sub_dir: "init/hw", + vendor: true +} + +prebuilt_etc { + name: "meta_init.project.rc", + src: "etc/init/hw/meta_init.project.rc", + sub_dir: "init/hw", + vendor: true +} + +prebuilt_etc { + name: "meta_init.rc", + src: "etc/init/hw/meta_init.rc", + sub_dir: "init/hw", + vendor: true +} + +prebuilt_etc { + name: "meta_init.vendor.rc", + src: "etc/init/hw/meta_init.vendor.rc", + sub_dir: "init/hw", + vendor: true +} + +prebuilt_etc { + name: "multi_init.rc", + src: "etc/init/hw/multi_init.rc", + sub_dir: "init/hw", + vendor: true +} + +prebuilt_etc { + name: "ueventd.mt6789.rc", + filename: "ueventd.rc", + src: "etc/ueventd.mt6789.rc", + vendor: true +} + +sh_binary { + name: "init.insmod.sh", + src: "bin/init.insmod.sh", + vendor: true +} diff --git a/rootdir/bin/init.insmod.sh b/rootdir/bin/init.insmod.sh new file mode 100644 index 0000000..67b6b2f --- /dev/null +++ b/rootdir/bin/init.insmod.sh @@ -0,0 +1,34 @@ +#!/vendor/bin/sh + +######################################################## +### init.insmod.cfg format: ### +### ----------------------------------------------- ### +### [insmod|setprop|enable/moprobe] [path|prop name] ### +### ... ### +######################################################## + +if [ $# -eq 1 ]; then + cfg_file=$1 +else + exit 1 +fi + +if [ -f $cfg_file ]; then + while IFS="|" read -r action arg + do + case $action in + "insmod") insmod $arg ;; + "setprop") setprop $arg 1 ;; + "enable") echo 1 > $arg ;; + "modprobe") + case ${arg} in + "-b *" | "-b") + arg="-b $(cat /vendor/lib/modules/modules.load)" ;; + "*" | "") + arg="$(cat /vendor/lib/modules/modules.load)" ;; + esac + modprobe -a -d /vendor/lib/modules $arg ;; + esac + done < $cfg_file +fi + diff --git a/rootdir/etc/init.insmod.mt6789.cfg b/rootdir/etc/init.insmod.mt6789.cfg new file mode 100644 index 0000000..0e44b82 --- /dev/null +++ b/rootdir/etc/init.insmod.mt6789.cfg @@ -0,0 +1,11 @@ +############################################# +# init.insmod.cfg # +# This file contains kernel modules to load # +# at init time by init.insmod.sh script # +############################################# + +# Load kernel modules here, add your KO behind +modprobe|* + +# All modules loaded +setprop|vendor.all.modules.ready diff --git a/rootdir/etc/init/hw/factory_init.connectivity.common.rc b/rootdir/etc/init/hw/factory_init.connectivity.common.rc new file mode 100644 index 0000000..5c3e00b --- /dev/null +++ b/rootdir/etc/init/hw/factory_init.connectivity.common.rc @@ -0,0 +1,86 @@ +on post-fs-data +# +# Connectivity related modules and character device nodes (Begin) +# + +#/dev/ttyMT2 for Connectivity BT/FM/GPS usage + chmod 0660 /dev/ttyMT2 + chown system system /dev/ttyMT2 + +# GPS + mkdir /data/vendor/gps 0770 gps system + chown gps gps /dev/stpgps + chown gps gps /dev/stpgps2 + chmod 0660 /dev/stpgps + chmod 0660 /dev/stpgps2 + +# GPS EMI + chmod 666 /dev/gps_emi + +# WiFi + mkdir /data/misc/wifi 0770 wifi wifi + mkdir /data/misc/wifi/sockets 0770 wifi wifi + mkdir /data/misc/wpa_supplicant 0770 wifi wifi + +# +# Connectivity related device nodes & configuration (end) +# + + +on boot + +# +# Connectivity related services (Begin) +# + +# GPS +#service mnld /vendor/bin/mnld +# class main +# user gps +# group gps inet misc sdcard_rw sdcard_r media_rw system radio +# socket mnld stream 660 gps system + +#service BGW /vendor/bin/BGW +# user system +# group gps system radio +# class main + +service wlan_assistant /vendor/bin/wlan_assistant + class main + user wifi + group system gps inet + +# +# Connectivity related services (End) +# + +# +# Connectivity related kernel objects (Begin) +# + +# load connfem driver +on boot + insmod /vendor/lib/modules/connfem.ko + +# load bt_drv +on property:vendor.connsys.driver.ready=yes + insmod /vendor/lib/modules/bt_drv_${ro.vendor.bt.platform}.ko + +# load wifi chrdev driver and wlan driver after wmt_loader finish +on property:vendor.connsys.driver.ready=yes + insmod /vendor/lib/modules/${ro.vendor.wlan.chrdev}.ko + insmod /vendor/lib/modules/wlan_drv_${ro.vendor.wlan.gen}.ko + start wlan_assistant + +# load fmradio_drv +on property:vendor.connsys.driver.ready=yes + insmod /vendor/lib/modules/fmradio_drv_${ro.vendor.fm.platform}.ko + +# load gps_drv +on property:vendor.connsys.driver.ready=yes + insmod /vendor/lib/modules/${ro.vendor.gps.chrdev}.ko + +# +# Connectivity related kernel objects (End) +# + diff --git a/rootdir/etc/init/hw/factory_init.connectivity.rc b/rootdir/etc/init/hw/factory_init.connectivity.rc new file mode 100644 index 0000000..03c57f0 --- /dev/null +++ b/rootdir/etc/init/hw/factory_init.connectivity.rc @@ -0,0 +1,34 @@ +import /vendor/etc/init/hw/factory_init.connectivity.common.rc + +on boot + +# +# Connectivity related services (Begin) +# + +# WMT +service wmt_loader /vendor/bin/wmt_loader + user system + group system + oneshot + +service wmt_launcher /vendor/bin/wmt_launcher -p /vendor/firmware/ + user system + group system + +# +# Connectivity related services (End) +# + +# +# Connectivity related kernel objects (Begin) +# + +# load wmt_drv +on boot + insmod /vendor/lib/modules/wmt_drv.ko + +# +# Connectivity related kernel objects (End) +# + diff --git a/rootdir/etc/init/hw/factory_init.project.rc b/rootdir/etc/init/hw/factory_init.project.rc new file mode 100644 index 0000000..4ef73bf --- /dev/null +++ b/rootdir/etc/init/hw/factory_init.project.rc @@ -0,0 +1,42 @@ +import /vendor/etc/init/hw/init.mtkgki.rc + +mkdir /data/misc/sensors 0664 system system + +service msensord /system/bin/msensord + user system + group system + oneshot + +service akmd8963 /system/bin/akmd8963 + disabled + user system + group system + + +on post-fs + # disable HPS + write /proc/hps/enabled 0 + + + chmod 0660 /dev/spm + chown system system /dev/spm + +on boot + +service spm_script /vendor/bin/spm_loader + user system + group system + oneshot + +on property:sys.usb.config=gs1gs3 + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor ${sys.usb.vid} + write /sys/class/android_usb/android0/idProduct 2029 + write /sys/class/android_usb/android0/f_acm/port_index 2,4 + write /sys/devices/platform/mt_usb/saving 1 + write /sys/class/android_usb/android0/functions mass_storage,adb,acm + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + setprop sys.usb.acm_idx 2,4 + diff --git a/rootdir/etc/init/hw/factory_init.rc b/rootdir/etc/init/hw/factory_init.rc new file mode 100644 index 0000000..710dd7d --- /dev/null +++ b/rootdir/etc/init/hw/factory_init.rc @@ -0,0 +1,890 @@ +# Copyright (C) 2012 The Android Open Source Project +# +# IMPORTANT: Do not create world writable files or directories. +# This is a common source of Android security bugs. +# +import /system_ext/etc/init/hw/vendor_init_as_system.rc +import ${ro.vendor.rc}factory_init.connectivity.rc +import ${ro.vendor.rc}factory_init.thp.rc +import /init.environ.rc +import /vendor/etc/init/trustonic.rc +import ${ro.vendor.rc}init.nvdata.rc +import /vendor/etc/init/microtrust.rc +import /vendor/etc/init/hw/init.aee.rc +import /system_ext/etc/init/hw/init.aee.rc +import /vendor/etc/init/vendor.mediatek.hardware.mtkpower@1.0-service.rc +import /vendor/etc/init/android.hardware.boot@1.2-service.rc +import /vendor/etc/init/android.hardware.boot@1.2-service-lazy.rc +import /vendor/etc/init/vendor.mediatek.hardware.thp@1.0-service.rc +import /vendor/etc/init/android.hardware.health@2.1-service.rc + +#NFC +import /vendor/etc/init/hw/init.stnfc.rc + +#copy from system/etc for APEX +import /system/etc/init/apexd.rc +import /system/etc/init/art_apex_boot_integrity.rc + +import /system/etc/init/vold.rc + +import /vendor/etc/init/hw/factory_init.project.rc +import /system/etc/init/servicemanager.rc +import /system/etc/init/hwservicemanager.rc +import /system/etc/init/android.hidl.allocator@1.0-service.rc + +import ${ro.vendor.rc}multi_init.rc + +on early-init + # Set init and its forked children's oom_adj. + write /proc/1/oom_score_adj -1000 + + # Disable sysrq from keyboard + write /proc/sys/kernel/sysrq 0 + + # Set the security context of /adb_keys if present. + restorecon /adb_keys + + # Set the security context of /postinstall if present. + restorecon /postinstall + + + # Set up linker config subdirectories based on mount namespaces + mkdir /linkerconfig/bootstrap 0755 + mkdir /linkerconfig/default 0755 + + # Generate ld.config.txt for early executed processes + exec -- /system/bin/bootstrap/linkerconfig --target /linkerconfig/bootstrap + + chmod 644 /linkerconfig/bootstrap/ld.config.txt + copy /linkerconfig/bootstrap/ld.config.txt /linkerconfig/default/ld.config.txt + chmod 644 /linkerconfig/default/ld.config.txt + + # Mount bootstrap linker configuration as current + mount none /linkerconfig/bootstrap /linkerconfig bind rec + + start ueventd + + + # Run apexd-bootstrap so that APEXes that provide critical libraries + # become available. Note that this is executed as exec_start to ensure that + # the libraries are available to the processes started after this statement. + exec_start apexd-bootstrap + + # Generate linker config based on apex mounted in bootstrap namespace + update_linker_config + +#INTERNAL_START + mount debugfs debugfs /sys/kernel/debug + chmod 0755 /sys/kernel/debug +#INTERNAL_END + + # initialize vendor.all.modules.ready to 1 here to prevent NOT GKI project blocked + setprop vendor.all.modules.ready 1 + +on init + +sysclktz 0 + + # Mix device-specific information into the entropy pool + copy /proc/cmdline /dev/urandom + copy /default.prop /dev/urandom + + write /proc/bootprof "INIT: on init start" + + # Backward compatibility. + symlink /system/bin /bin + symlink /system/etc /etc + + # Backward compatibility. + symlink /sys/kernel/debug /d + + +# Link /vendor to /system/vendor for devices without a vendor partition. + symlink /system/vendor /vendor +# Temp Backward compatibility + symlink /dev/block/by-name/boot /dev/bootimg + symlink /dev/block/by-name/recovery /dev/recovery + symlink /dev/block/by-name/secro /dev/sec_ro + symlink /dev/block/by-name/kb /dev/kb + symlink /dev/block/by-name/dkb /dev/dkb + symlink /dev/block/by-name/seccfg /dev/seccfg + symlink /dev/block/by-name/proinfo /dev/pro_info + symlink /dev/block/by-name/nvram /dev/nvram + symlink /dev/block/by-name/para /dev/misc + symlink /dev/block/by-name/logo /dev/logo + + + # Mount cgroup mount point for cpu accounting + mount cgroup none /acct cpuacct + mkdir /acct/uid + + # Create energy-aware scheduler tuning nodes + mkdir /dev/stune + mount cgroup none /dev/stune nodev noexec nosuid schedtune + mkdir /dev/stune/foreground + mkdir /dev/stune/background + mkdir /dev/stune/top-app + mkdir /dev/stune/rt + chown system system /dev/stune + chown system system /dev/stune/foreground + chown system system /dev/stune/background + chown system system /dev/stune/top-app + chown system system /dev/stune/rt + chown system system /dev/stune/tasks + chown system system /dev/stune/foreground/tasks + chown system system /dev/stune/background/tasks + chown system system /dev/stune/top-app/tasks + chown system system /dev/stune/rt/tasks + chmod 0664 /dev/stune/tasks + chmod 0664 /dev/stune/foreground/tasks + chmod 0664 /dev/stune/background/tasks + chmod 0664 /dev/stune/top-app/tasks + chmod 0664 /dev/stune/rt/tasks + + # Permissions for System Server and daemons. + chown system system /sys/power/autosleep + chown system system /sys/power/state + chown system system /sys/power/wakeup_count + chown radio wakelock /sys/power/wake_lock + chown radio wakelock /sys/power/wake_unlock + chmod 0660 /sys/power/state + chmod 0660 /sys/power/wake_lock + chmod 0660 /sys/power/wake_unlock + chmod 0660 /sys/power/wakeup_count + + restorecon_recursive /mnt + # Support legacy paths + symlink /sdcard /mnt/sdcard + + mount configfs none /config nodev noexec nosuid + chmod 0770 /config/sdcardfs + chown system package_info /config/sdcardfs + + # Mount binderfs + mkdir /dev/binderfs + mount binder binder /dev/binderfs stats=global + chmod 0755 /dev/binderfs + + # Mount fusectl + mount fusectl none /sys/fs/fuse/connections + + symlink /dev/binderfs/binder /dev/binder + symlink /dev/binderfs/hwbinder /dev/hwbinder + symlink /dev/binderfs/vndbinder /dev/vndbinder + + chmod 0666 /dev/binderfs/hwbinder + chmod 0666 /dev/binderfs/binder + chmod 0666 /dev/binderfs/vndbinder + + mkdir /mnt/secure 0700 root root + mkdir /mnt/secure/asec 0700 root root + mkdir /mnt/asec 0755 root system + mkdir /mnt/obb 0755 root system + mkdir /mnt/media_rw 0750 root media_rw + mkdir /mnt/user 0755 root root + mkdir /mnt/user/0 0755 root root + mkdir /mnt/expand 0771 system system + mkdir /mnt/appfuse 0711 root root + + # Storage views to support runtime permissions + mkdir /mnt/runtime 0700 root root + mkdir /mnt/runtime/default 0755 root root + mkdir /mnt/runtime/default/self 0755 root root + mkdir /mnt/runtime/read 0755 root root + mkdir /mnt/runtime/read/self 0755 root root + mkdir /mnt/runtime/write 0755 root root + mkdir /mnt/runtime/write/self 0755 root root + + # Symlink to keep legacy apps working in multi-user world + symlink /storage/self/primary /sdcard + symlink /storage/self/primary /mnt/sdcard + symlink /mnt/user/0/primary /mnt/runtime/default/self/primary + + # root memory control cgroup, used by lmkd + mkdir /dev/memcg 0700 root system + mount cgroup none /dev/memcg memory + # app mem cgroups, used by activity manager, lmkd and zygote + mkdir /dev/memcg/apps/ 0755 system system + + write /proc/sys/kernel/panic_on_oops 1 + write /proc/sys/kernel/hung_task_timeout_secs 0 + write /proc/cpu/alignment 4 + + # scheduler tunables + # Disable auto-scaling of scheduler tunables with hotplug. The tunables + # will vary across devices in unpredictable ways if allowed to scale with + # cpu cores. + write /proc/sys/kernel/sched_tunable_scaling 0 + write /proc/sys/kernel/sched_latency_ns 10000000 + write /proc/sys/kernel/sched_wakeup_granularity_ns 2000000 + write /proc/sys/kernel/sched_child_runs_first 0 + + write /proc/sys/kernel/randomize_va_space 2 + write /proc/sys/vm/mmap_min_addr 32768 + write /proc/sys/net/ipv4/ping_group_range "0 2147483647" + write /proc/sys/net/unix/max_dgram_qlen 600 + write /proc/sys/kernel/sched_rt_runtime_us 950000 + write /proc/sys/kernel/sched_rt_period_us 1000000 + + # Assign reasonable ceiling values for socket rcv/snd buffers. + # These should almost always be overridden by the target per the + # the corresponding technology maximums. + write /proc/sys/net/core/rmem_max 262144 + write /proc/sys/net/core/wmem_max 262144 + + # reflect fwmark from incoming packets onto generated replies + write /proc/sys/net/ipv4/fwmark_reflect 1 + write /proc/sys/net/ipv6/fwmark_reflect 1 + + # set fwmark on accepted sockets + write /proc/sys/net/ipv4/tcp_fwmark_accept 1 + + # disable icmp redirects + write /proc/sys/net/ipv4/conf/all/accept_redirects 0 + write /proc/sys/net/ipv6/conf/all/accept_redirects 0 + + #INTERNAL_START + mkdir /mnt/cd-rom 0000 system system + #INTERNAL_END + # enable armv8_deprecated instruction hooks + write /proc/sys/abi/swp 1 + # Linux's execveat() syscall may construct paths containing /dev/fd + # expecting it to point to /proc/self/fd + symlink /proc/self/fd /dev/fd + # set RLIMIT_NICE to allow priorities from 19 to -20 + setrlimit nice 40 40 + + start servicemanager + start hwservicemanager + start hidl_memory + + # Healthd can trigger a full boot from charger mode by signaling this + # property when the power button is held. + on property:sys.boot_from_charger_mode=1 + class_stop charger + trigger late-init + +# Load properties from /system/ + /factory after fs mount. + on load_system_props_action + load_system_props + + on load_persist_props_action + load_persist_props + start logd + start logd-reinit + +# Indicate to fw loaders that the relevant mounts are up. +on firmware_mounts_complete + rm /dev/.booting + + # Mount filesystems and start core system services. + on late-init + trigger early-fs + + # Mount fstab in init.{$device}.rc by mount_all command. Optional parameter + # '--early' can be specified to skip entries with 'latemount'. + # /system and /vendor must be mounted by the end of the fs stage, + # while /data is optional. + trigger fs + trigger post-fs + + # Load properties from /system/ + /factory after fs mount. Place + # this in another action so that the load will be scheduled after the prior + # issued fs triggers have completed. + trigger load_system_props_action + + # Mount fstab in init.{$device}.rc by mount_all with '--late' parameter + # to only mount entries with 'latemount'. This is needed if '--early' is + # specified in the previous mount_all command on the fs stage. + # With /system mounted and properties form /system + /factory available, + # some services can be started. + trigger late-fs + + # Now we can mount /data. File encryption requires keymaster to decrypt + # /data, which in turn can only be loaded when system properties are present. + trigger post-fs-data + + # Load persist properties and override properties (if enabled) from /data. + trigger load_persist_props_action + + # Remove a file to wake up anything waiting for firmware. + trigger firmware_mounts_complete + + trigger early-boot + trigger boot + + on early-fs + # Once metadata has been mounted, we'll need vold to deal with userdata checkpointing + start vold + +# mount different fs start +on fs + #USB configfs + mkdir /dev/usb-ffs 0770 shell shell + mkdir /dev/usb-ffs/adb 0770 shell shell + mkdir /config/usb_gadget/g1 0770 shell shell + write /config/usb_gadget/g1/idVendor 0x0E8D + write /config/usb_gadget/g1/bcdDevice 0xFFFF + write /config/usb_gadget/g1/bcdUSB 0x0200 + mkdir /config/usb_gadget/g1/strings/0x409 0770 + write /config/usb_gadget/g1/strings/0x409/manufacturer "Android" + write /config/usb_gadget/g1/strings/0x409/product "Android" + write /config/usb_gadget/g1/bDeviceClass 0 + write /config/usb_gadget/g1/bDeviceSubClass 0 + write /config/usb_gadget/g1/bDeviceProtocol 0 + mkdir /config/usb_gadget/g1/functions/mass_storage.usb0 + mkdir /config/usb_gadget/g1/functions/ffs.adb + mkdir /config/usb_gadget/g1/functions/acm.gs0 + mkdir /config/usb_gadget/g1/functions/acm.gs1 + mkdir /config/usb_gadget/g1/functions/acm.gs2 + mkdir /config/usb_gadget/g1/functions/acm.gs3 + mkdir /config/usb_gadget/g1/configs/b.1 0770 shell shell + mkdir /config/usb_gadget/g1/configs/b.1/strings/0x409 0770 shell shell + write /config/usb_gadget/g1/configs/b.1/MaxPower 500 + symlink /config/usb_gadget/g1/configs/b.1 /config/usb_gadget/g1/os_desc/b.1 + mount functionfs adb /dev/usb-ffs/adb uid=2000,gid=2000 + +#INTERNAL_START + write /proc/bootprof "INIT:Mount_START" + start vendor.boot-hal-1-2 + mount_all --early + write /proc/bootprof "INIT:Mount_END" +#INTERNAL_END +# mount different fs end + +on post-fs + start logd + start light-default + start system_suspend + start merged_hal_service + start capi-2-0 + start health-hal-2-1 + # Once everything is setup, no need to modify /. + # The bind+ro combination avoids modifying any other mount flags. + # mount rootfs rootfs / remount bind ro + # Mount shared so changes propagate into child namespaces + mount rootfs rootfs / shared rec + # Mount default storage into root namespace + mount none /mnt/runtime/default /storage bind rec + mount none none /storage slave rec + + # Make sure /sys/kernel/debug (if present) is labeled properly + # Note that tracefs may be mounted under debug, so we need to cross filesystems + restorecon --recursive --cross-filesystems /sys/kernel/debug + + # Support legacy paths + symlink /sdcard /storage/sdcard0 + + chown system system /system/data + mkdir /system/cache 0770 system cache + # We restorecon /cache in case the cache partition has been reset. + restorecon_recursive /cache + + # Same reason as /data above + chown system cache /cache + chmod 0770 /cache + + # This may have been created by the recovery system with odd permissions + chown system cache /cache/recovery + chmod 0770 /cache/recovery + + #change permissions on vmallocinfo so we can grab it from bugreports + chown root log /proc/vmallocinfo + chmod 0440 /proc/vmallocinfo + + #change permissions on kmsg & sysrq-trigger so bugreports can grab kthread stacks + chown root system /proc/kmsg + chmod 0440 /proc/kmsg + chown root system /proc/sysrq-trigger + chmod 0220 /proc/sysrq-trigger + chown system log /proc/last_kmsg + chmod 0440 /proc/last_kmsg + + # make the selinux kernel policy world-readable + chmod 0444 /sys/fs/selinux/policy + + # create the lost+found directories, so as to enforce our permissions + mkdir /cache/lost+found 0770 root root + +#INTERNAL_START + mkdir /cache/recovery 0770 system system + chown system system /mnt/vendor/protect_f + chmod 0770 /mnt/vendor/protect_f + + chown system system /mnt/vendor/protect_s + chmod 0770 /mnt/vendor/protect_s + + chown system system /mnt/vendor/nvcfg + chmod 0771 /mnt/vendor/nvcfg + restorecon_recursive /mnt/vendor/nvcfg + + chown root system /mnt/vendor/nvdata + chmod 0771 /mnt/vendor/nvdata + mkdir /mnt/vendor/nvdata/media 0771 media audio + restorecon_recursive /mnt/vendor/nvdata + +#INTERNAL_END + +on late-fs + + # HALs required before storage encryption can get unlocked (FBE/FDE) + class_start early_hal + wait_for_prop hwservicemanager.ready "true" + start vendor.keymaster-3-0 + start vendor.keymaster-3-0-trustonic + start vendor.keymaster-4-0 + start vendor.keymaster-4-0-trustonic + start vendor.keymaster-4-0-beanpod + start vendor.keymaster-4-1-beanpod + start vendor.keymint-default + start keymaster_attestation-1-1 + exec_start wait_for_keymaster + mount_all --late + +on post-fs-data + write /proc/bootprof "INIT:post-fs-data" + wait_for_prop vendor.all.modules.ready 1 + write /proc/bootprof "modprobe: Load_Module_DONE" + + #Thermal + mkdir /data/.tp/ 0775 system system + + # symlink to bugreport storage location + rm /data/bugreports + symlink /data/user_de/0/com.android.shell/files/bugreports /data/bugreports + + # VIA flashlessd service + mkdir /data/flashless 0770 radio nvram + mkdir /mnt/vendor/nvdata/md_via 0770 root nvram + chmod 0660 /dev/ttyMT4 + chown radio radio /dev/ttyMT4 + chmod 0660 /dev/vmodem + chown radio radio /dev/vmodem + + #VIA pppd service + mkdir /data/pppd_via 0770 radio system + + # md32 boot + chown root system /dev/md32 + chmod 0440 /dev/md32 + chown root system /sys/class/misc/md32/md32_mobile_log + chmod 0660 /sys/class/misc/md32/md32_mobile_log + write /sys/class/misc/md32/md32_boot 1 + + # dhcp server + mkdir /data/misc/dhcp 0770 dhcp dhcp + chown dhcp dhcp /data/misc/dhcp + + # device info interface + chmod 0440 /dev/devmap + chown root system /dev/devmap + + + + #change partition permission + exec /vendor/etc/partition_permission.sh +#INTERNAL_START +#SeLinux + mkdir /data/ccci_cfg 0770 system radio + restorecon /data/ccci_cfg + restorecon_recursive /mnt/vendor/protect_f + restorecon_recursive /mnt/vendor/protect_s + +## Custom pos-fs area (START) +# Please add custom fs operation below + + # Touch Panel + chown root diag /sys/module/tpd_setting/parameters/tpd_calmat + chown root diag /sys/module/tpd_setting/parameters/tpd_em_debounce_time + chown root diag /sys/module/tpd_debug/parameters/tpd_em_log + chown root diag /sys/module/tpd_debug/parameters/tpd_em_log_to_fs + + # RTC + mkdir /data/misc/rtc 0770 system system + + # Modem related device nodes + mkdir /mnt/vendor/nvdata/md 0770 root system + mkdir /mnt/vendor/nvdata/md2 0770 root system + mkdir /mnt/vendor/nvdata/md3 0770 root system + mkdir /data/md3 0770 root system + + chown radio radio /sys/kernel/ccci/boot + + #set mlock limit to infinate (for m4u operation) + setrlimit 8 -1 -1 + + + #VideoCodec + chmod 0666 /dev/Vcodec + + + mkdir /data/amit/ + + # GPIO + chmod 0666 /dev/mtgpio + + chmod 0666 /dev/exm0 + + #NFC + rm /data/mtknfc_server + +## Custom pos_fs area (END) +#INTERNAL_END + + # Separate location for storing security policy files on data + mkdir /data/security 0711 system system + +# It is recommended to put unnecessary data/ initialization from post-fs-data +# to start-zygote in device's init.rc to unblock zygote start. +on zygote-start && property:ro.crypto.state=unencrypted + # A/B update verifier that marks a successful boot. + exec_start update_verifier_nonencrypted + start netd + start zygote + start zygote_secondary + +on zygote-start && property:ro.crypto.state=unsupported + # A/B update verifier that marks a successful boot. + exec_start update_verifier_nonencrypted + start netd + start zygote + start zygote_secondary + +on zygote-start && property:ro.crypto.state=encrypted && property:ro.crypto.type=file + # A/B update verifier that marks a successful boot. + exec_start update_verifier_nonencrypted + start netd + start zygote + start zygote_secondary + +on boot + setprop sys.usb.configfs 1 + setprop sys.usb.controller "11201000.usb0" + setprop sys.usb.ffs.aio_compat 1 + setprop vendor.usb.clear boot + + # TTY + chmod 0660 /dev/ttyGS0 + chown system radio /dev/ttyGS0 + chmod 0660 /dev/ttyGS1 + chown system radio /dev/ttyGS1 + # For BT relayer + chown bluetooth radio /dev/ttyGS2 + chmod 0660 /dev/ttyGS2 + # For MD Logger + chown system radio /dev/ttyGS3 + chmod 0660 /dev/ttyGS3 + + #VIA device property + setprop viatel.device.asci uart.4.ttyMT + setprop viatel.device.fls sdio.3.ttySDIO + setprop viatel.device.at sdio.4.ttySDIO + setprop viatel.device.data sdio.1.ttySDIO + + # For backlight + chmod 0664 /sys/class/leds/lcd-backlight/brightness + chown system system /sys/class/leds/lcd-backlight/brightness + + # Power Manager + write /sys/power/pm_freeze_timeout 2000 + +# basic network init + ifup lo + hostname localhost + domainname localdomain + + #INTERNAL_START + # Start default class, this line is very important!! + class_start default + #INTERNAL_END + + # Start standard binderized HAL daemons + class_start hal + + class_start core + +on nonencrypted + class_start main + class_start late_start + +on property:vold.decrypt=trigger_default_encryption + start defaultcrypto + +on property:vold.decrypt=trigger_encryption + start surfaceflinger + start encrypt + +on property:vold.decrypt=trigger_reset_main + class_reset main + +on property:vold.decrypt=trigger_load_persist_props + load_persist_props + start logd + start logd-reinit + +on property:vold.decrypt=trigger_post_fs_data + trigger post-fs-data + trigger zygote-start + +on property:vold.decrypt=trigger_restart_min_framework + # A/B update verifier that marks a successful boot. + exec_start update_verifier + class_start main + +on property:vold.decrypt=trigger_restart_framework + stop surfaceflinger + start surfaceflinger + # A/B update verifier that marks a successful boot. + exec_start update_verifier + class_start main + class_start late_start + +on property:vold.decrypt=trigger_shutdown_framework + class_reset late_start + class_reset main + +# One shot invocation to deal with encrypted volume. +on defaultcrypto + exec - root -- /system/bin/vdc --wait cryptfs mountdefaultencrypted + # vold will set vold.decrypt to trigger_restart_framework (default + # encryption) or trigger_restart_min_framework (other encryption) + +# One shot invocation to encrypt unencrypted volumes +# mtk modification: +# To speed up the booting in meta/factory mode, we don't encrypt the device. +# And then handle it as 'unencrypted' state. +on encrypt + mount ext4 /dev/block/by-name/userdata /data noatime nosuid nodev noauto_da_alloc discard wait + setprop vendor.crypto.fake_encrypt 1 + setprop vold.post_fs_data_done 0 + trigger post-fs-data +on property:vendor.crypto.fake_encrypt=1 && property:vold.post_fs_data_done=1 + trigger load_persist_props_action + # setprop ro.crypto.state unencrypted + setprop vendor.soter.teei.crypto.state unencrypted + exec_start update_verifier + class_start main + class_start late_start + start mount_all_storages + +service ueventd /system/bin/ueventd + class core + critical + seclabel u:r:ueventd:s0 + +service console /system/bin/sh + class core + console + disabled + user shell + group shell log readproc + seclabel u:r:shell:s0 + +on property:sys.powerctl=* + powerctl ${sys.powerctl} + +#Log too much setting +on property:ro.vendor.mtklog_internal=1 + setprop vendor.logmuch.value 10000 + +on property:ro.debuggable=1 + # Give writes to anyone for the trace folder on debug builds. + # The folder is used to store method traces. + chmod 0773 /data/misc/trace + start console + +# adbd is controlled via property triggers in init..usb.rc +service adbd /apex/com.android.adbd/bin/adbd --root_seclabel=u:r:su:s0 + class core + socket adbd seqpacket 660 system system + disabled + override + seclabel u:r:adbd:s0 + +#INTERNAL_START +## Custom service area (START) +# Please add custom service below + +service thermal_manager /vendor/bin/thermal_manager + user root + group system + oneshot + +service permission_check /vendor/bin/permission_check + user root + group system radio + oneshot + +service ccci_mdinit /vendor/bin/ccci_mdinit 0 + user system + group radio system + oneshot + +service ccci_rpcd /vendor/bin/ccci_rpcd 0 + user radio + group radio system + oneshot + + +service fuelgauged /vendor/bin/fuelgauged + class main + user system + group system + +service mdlogger /system/bin/mdlogger + class main + user shell + group shell system radio sdcard_rw inet + disabled + oneshot + +service dualmdlogger /system/bin/dualmdlogger + class main + user shell + group shell system radio sdcard_rw inet + disabled + oneshot + +service factory_no_image /vendor/bin/factory + user root + group radio system wifi media gps audio bluetooth wakelock nfc + capabilities BLOCK_SUSPEND NET_RAW NET_ADMIN SYS_ADMIN SYS_BOOT + +service emdlogger1 /system/system_ext/bin/emdlogger1 + class main + user shell + group system shell radio sdcard_rw inet sdcard_r media_rw + disabled + oneshot + +service emdlogger2 /system/bin/emdlogger2 + class main + user shell + group system shell radio sdcard_rw inet sdcard_r media_rw + disabled + oneshot + +service emdlogger3 /system/bin/emdlogger3 + class main + user shell + group system shell radio sdcard_rw inet sdcard_r media_rw + disabled + oneshot + +service emdlogger5 /system/bin/emdlogger5 + class main + user shell + group system shell radio sdcard_rw inet sdcard_r media_rw + disabled + oneshot + +service emdlogger6 /system/bin/emdlogger6 + class main + user shell + group system shell radio sdcard_rw inet sdcard_r media_rw + disabled + oneshot + +## Custom service area (END) +on property:vendor.usb.clear=1 && property:sys.usb.configfs=1 + stop adbd + setprop sys.usb.ffs.ready 0 + write /config/usb_gadget/g1/UDC "none" + write /config/usb_gadget/g1/bDeviceClass 0 + write /config/usb_gadget/g1/bDeviceSubClass 0 + write /config/usb_gadget/g1/bDeviceProtocol 0 + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + write /sys/devices/platform/mt_usb/saving 0 + setprop vendor.usb.clear 2 + start adbd + +#mass_storage,adb,acm +on property:ro.boot.usbconfig=0 && property:sys.usb.configfs=1 && property:vendor.usb.clear=boot + start adbd + +on property:sys.usb.ffs.ready=1 && property:ro.boot.usbconfig=0 && \ +property:sys.usb.configfs=1 && property:vendor.usb.clear=boot + write /config/usb_gadget/g1/UDC "none" + write /config/usb_gadget/g1/strings/0x409/serialnumber ${ro.serialno} + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "adb_acm" + write /config/usb_gadget/g1/idProduct 0x2006 + symlink /config/usb_gadget/g1/functions/mass_storage.usb0 /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/acm.gs0 /config/usb_gadget/g1/configs/b.1/f3 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop vendor.usb.acm_idx "1" + +on property:ro.boot.usbconfig=1 && property:sys.usb.configfs=1 && property:vendor.usb.clear=boot + start adbd + +on property:sys.usb.ffs.ready=1 && property:ro.boot.usbconfig=1 && \ +property:sys.usb.configfs=1 && property:vendor.usb.clear=boot + write /config/usb_gadget/g1/UDC "none" + write /config/usb_gadget/g1/strings/0x409/serialnumber ${ro.serialno} + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "adb_acm" + write /config/usb_gadget/g1/idProduct 0x2006 + symlink /config/usb_gadget/g1/functions/mass_storage.usb0 /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/acm.gs0 /config/usb_gadget/g1/configs/b.1/f3 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop vendor.usb.acm_idx "1" + +#singloe modem comport for factory mode +on property:sys.usb.config=gs3,dual_acm && property:sys.usb.configfs=1 + setprop vendor.usb.clear 1 + +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=gs3,dual_acm && \ +property:vendor.usb.clear=2 && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "gs3_dual_acm" + write /config/usb_gadget/g1/idProduct 0x202E + write /sys/devices/platform/mt_usb/saving 1 + symlink /config/usb_gadget/g1/functions/mass_storage.usb0 /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/acm.gs0 /config/usb_gadget/g1/configs/b.1/f3 + symlink /config/usb_gadget/g1/functions/acm.gs3 /config/usb_gadget/g1/configs/b.1/f4 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state ${sys.usb.config} + setprop vendor.usb.clear 0 + setprop vendor.usb.acm_idx "1,4" + +on property:sys.usb.config=gs1gs3,dual_acm && property:sys.usb.configfs=1 + setprop vendor.usb.clear 1 + +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=gs1gs3,dual_acm && \ +property:vendor.usb.clear=2 && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "gs1gs3_dual_acm" + write /config/usb_gadget/g1/idProduct 0x202F + write /sys/devices/platform/mt_usb/saving 1 + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/acm.gs0 /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/acm.gs1 /config/usb_gadget/g1/configs/b.1/f3 + symlink /config/usb_gadget/g1/functions/acm.gs3 /config/usb_gadget/g1/configs/b.1/f4 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state ${sys.usb.config} + setprop vendor.usb.clear 0 + setprop vendor.usb.acm_idx "1,2,4" + +on property:sys.usb.config=gs1gs3 && property:sys.usb.configfs=1 + setprop vendor.usb.clear 1 + +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=gs1gs3 && \ +property:vendor.usb.clear=2 && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "gs1gs3" + write /config/usb_gadget/g1/idProduct 0x2029 + write /sys/devices/platform/mt_usb/saving 1 + symlink /config/usb_gadget/g1/functions/mass_storage.usb0 /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/acm.gs1 /config/usb_gadget/g1/configs/b.1/f3 + symlink /config/usb_gadget/g1/functions/acm.gs3 /config/usb_gadget/g1/configs/b.1/f4 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop vendor.usb.clear 0 + setprop vendor.usb.acm_idx "1,4" + +# MTK fast charging support +on property:persist.vendor.mediatek.fast_charging.support=* + write /sys/devices/platform/charger/fast_chg_indicator ${persist.vendor.mediatek.fast_charging.support} + +#INTERNAL_END diff --git a/rootdir/etc/init/hw/init.aee.rc b/rootdir/etc/init/hw/init.aee.rc new file mode 100644 index 0000000..1b16980 --- /dev/null +++ b/rootdir/etc/init/hw/init.aee.rc @@ -0,0 +1,31 @@ +on post-fs-data + + mkdir /data/vendor/aee_exp 0775 root root + mkdir /data/vendor/dumpsys 0775 system system + mkdir /data/vendor/core 0775 system system + mkdir /data/vendor/tombstones 0775 system system + +on post-fs && property:ro.vendor.aee.convert64=0 + start aee_aedv + start aee_aedv64 + setprop ro.vendor.aee.enforcing no + +on post-fs && property:ro.vendor.aee.convert64=1 + start aee_aedv64_v2 + setprop ro.vendor.aee.enforcing no + +on property:ro.vendor.aeev.dynamic.switch=disable && property:ro.vendor.aee.convert64=0 + stop aee_aedv + stop aee_aedv64 + +on property:ro.vendor.aeev.dynamic.switch=disable && property:ro.vendor.aee.convert64=1 + stop aee_aedv64_v2 + +on property:sys.boot_completed=1 + setprop persist.vendor.aeev.log.status 1 + +on property:persist.vendor.aeev.boot.reason.status=done && property:ro.vendor.aee.convert64=0 + start aeev_set_last_shutdown + +on property:persist.vendor.aeev.boot.reason.status=done && property:ro.vendor.aee.convert64=1 + start aeev_set_last_shutdown_v2 diff --git a/rootdir/etc/init/hw/init.cgroup.rc b/rootdir/etc/init/hw/init.cgroup.rc new file mode 100644 index 0000000..71e2c2a --- /dev/null +++ b/rootdir/etc/init/hw/init.cgroup.rc @@ -0,0 +1,46 @@ +on early-init + # boot perf. tune + write /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq 2000000 + write /sys/devices/system/cpu/cpufreq/policy6/scaling_min_freq 2200000 + write /sys/class/devfreq/mtk-dvfsrc-devfreq/userspace/set_freq 5500000000 + +on charger + write /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq 0 + write /sys/devices/system/cpu/cpufreq/policy6/scaling_min_freq 0 + write /sys/class/devfreq/mtk-dvfsrc-devfreq/userspace/set_freq 0 + + +on post-fs-data + write /sys/devices/system/cpu/cpufreq/policy0/scaling_governor sugov_ext + write /sys/devices/system/cpu/cpufreq/policy6/scaling_governor sugov_ext + write /proc/sys/kernel/sched_util_clamp_min_rt_default 0 + + # boot perf. tune + write /dev/cpuctl/system/cpu.uclamp.min 100 + write /dev/cpuctl/system/cpu.uclamp.latency_sensitive 1 + write /dev/cpuctl/system-background/cpu.uclamp.min 100 + write /dev/cpuctl/system-background/cpu.uclamp.latency_sensitive 1 + write /dev/cpuctl/foreground/cpu.uclamp.min 100 + write /dev/cpuctl/foreground/cpu.uclamp.latency_sensitive 1 + write /dev/cpuctl/top-app/cpu.uclamp.min 100 + write /dev/cpuctl/top-app/cpu.uclamp.latency_sensitive 1 + write /dev/cpuctl/background/cpu.uclamp.min 100 + write /dev/cpuctl/background/cpu.uclamp.latency_sensitive 1 + +on property:sys.boot_completed=1 + write /proc/sys/kernel/sched_migration_cost_ns 200000 + + # restore boot perf. tune + write /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq 0 + write /sys/devices/system/cpu/cpufreq/policy6/scaling_min_freq 0 + write /sys/class/devfreq/mtk-dvfsrc-devfreq/userspace/set_freq 0 + write /dev/cpuctl/system/cpu.uclamp.min 0 + write /dev/cpuctl/system/cpu.uclamp.latency_sensitive 0 + write /dev/cpuctl/system-background/cpu.uclamp.min 0 + write /dev/cpuctl/system-background/cpu.uclamp.latency_sensitive 0 + write /dev/cpuctl/foreground/cpu.uclamp.min 0 + write /dev/cpuctl/foreground/cpu.uclamp.latency_sensitive 0 + write /dev/cpuctl/top-app/cpu.uclamp.min 0 + write /dev/cpuctl/top-app/cpu.uclamp.latency_sensitive 0 + write /dev/cpuctl/background/cpu.uclamp.min 0 + write /dev/cpuctl/background/cpu.uclamp.latency_sensitive 0 diff --git a/rootdir/etc/init/hw/init.connectivity.common.rc b/rootdir/etc/init/hw/init.connectivity.common.rc new file mode 100644 index 0000000..2e379d0 --- /dev/null +++ b/rootdir/etc/init/hw/init.connectivity.common.rc @@ -0,0 +1,84 @@ +# MTK connectivity .rc configure +#NFBD:add for nfc by yunfei.wu 20211218 +import /vendor/etc/init/hw/init.stnfc.rc +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/hw/init.connectivity.rc b/rootdir/etc/init/hw/init.connectivity.rc new file mode 100644 index 0000000..08b3a51 --- /dev/null +++ b/rootdir/etc/init/hw/init.connectivity.rc @@ -0,0 +1,4 @@ +# MTK connectivity .rc configure + +import /vendor/etc/init/hw/init_connectivity.rc +import /vendor/etc/init/hw/init.connectivity.common.rc diff --git a/rootdir/etc/init/hw/init.modem.rc b/rootdir/etc/init/hw/init.modem.rc new file mode 100644 index 0000000..cca7f48 --- /dev/null +++ b/rootdir/etc/init/hw/init.modem.rc @@ -0,0 +1,42 @@ +# Copyright (C) 2012 The Android Open Source Project +# +# IMPORTANT: Do not create world writable files or directories. +# This is a common source of Android security bugs. +# + +on early-init + write /sys/class/net/ccmni0/queues/rx-0/rps_cpus "0D" + write /sys/class/net/ccmni1/queues/rx-0/rps_cpus "0D" + write /sys/class/net/ccmni2/queues/rx-0/rps_cpus "0D" + write /sys/class/net/ccmni3/queues/rx-0/rps_cpus "0D" + write /sys/class/net/ccmni4/queues/rx-0/rps_cpus "0D" + write /sys/class/net/ccmni5/queues/rx-0/rps_cpus "0D" + write /sys/class/net/ccmni6/queues/rx-0/rps_cpus "0D" + write /sys/class/net/ccmni7/queues/rx-0/rps_cpus "0D" + write /sys/class/net/ccmni9/queues/rx-0/rps_cpus "0D" + write /sys/class/net/ccmni10/queues/rx-0/rps_cpus "0D" + write /sys/class/net/ccmni11/queues/rx-0/rps_cpus "0D" + write /sys/class/net/ccmni12/queues/rx-0/rps_cpus "0D" + write /sys/class/net/ccmni13/queues/rx-0/rps_cpus "0D" + write /sys/class/net/ccmni14/queues/rx-0/rps_cpus "0D" + write /sys/class/net/ccmni15/queues/rx-0/rps_cpus "0D" + write /sys/class/net/ccmni16/queues/rx-0/rps_cpus "0D" + write /sys/class/net/ccmni17/queues/rx-0/rps_cpus "0D" + write /sys/class/net/ccmni18/queues/rx-0/rps_cpus "0D" + write /sys/class/net/ccmni19/queues/rx-0/rps_cpus "0D" + write /sys/class/net/ccmni20/queues/rx-0/rps_cpus "0D" + + write /proc/sys/net/core/netdev_max_backlog 50000 + write /proc/sys/net/ipv4/ipfrag_high_thresh 20971520 + + setprop ro.vendor.net.upload.mark.default blocking + +on post-fs-data + + write /proc/bootprof "post-fs-data: on modem start" + +# Encrypt phone function + setprop vold.post_fs_data_done 1 + + + diff --git a/rootdir/etc/init/hw/init.mt6789.rc b/rootdir/etc/init/hw/init.mt6789.rc new file mode 100644 index 0000000..cbae563 --- /dev/null +++ b/rootdir/etc/init/hw/init.mt6789.rc @@ -0,0 +1,1179 @@ +# MTK platform .rc configure + +import ${ro.vendor.rc}init.connectivity.rc +import ${ro.vendor.rc}init.mt6789.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}${ro.vendor.init.sensor.rc} +import ${ro.vendor.rc}init.cgroup.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" + + # initialize vendor.all.modules.ready to 1 here to prevent NOT GKI project blocked + setprop vendor.all.modules.ready 1 + +# Keep debugfs mounted in non-user builds +on early-init && property:ro.build.type=eng + mount debugfs debugfs /sys/kernel/debug + chmod 0755 /sys/kernel/debug + setprop persist.dbg.keep_debugfs_mounted true + +on early-init && property:ro.build.type=userdebug + mount debugfs debugfs /sys/kernel/debug + chmod 0755 /sys/kernel/debug + setprop persist.dbg.keep_debugfs_mounted true + +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 + + mkdir /mnt/cd-rom 0000 system system + +#MD:add XLQYXLQS-5252 for tranfs by xiaoxiang.xiong 20220404 start +mkdir /tranfs 0771 system system +#MD:add XLQYXLQS-5252 for tranfs by xiaoxiang.xiong 20220404 end + +# 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-3 + 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 + +on charger + + #MD:delete XLBELHQQS-6425 for cache by xiaoxiang.xiong 20220616 start + #exec /system/bin/e2fsck -f -p /dev/block/by-name/cache + #mount ext4 /dev/block/by-name/cache /cache rw wait + #MD:delete XLBELHQQS-6425 for cache by xiaoxiang.xiong 20220616 end + 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/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_freeze_timeout 2000 + + start fuelgauged + start fuelgauged_nvram + + 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 + + # Stop bootprof + write /proc/bootprof "0" + +on early-fs + write /proc/bootprof "INIT:early-fs" + +on fs + write /proc/bootprof "INIT:fs" + start vendor.boot-hal-1-2 + + # mount fstab + 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/by-name/userdata + write /sys/kernel/tracing/trace_marker "E" + write /proc/bootprof "INIT:Mount_END" + +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" + + 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" + + +on post-fs + write /proc/bootprof "INIT:post-fs" + + # 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 + +# 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 + chown root log /proc/ccci_sib + + # allow ccci_mdinit access ccci_dump + chown root system /proc/ccci_dump + + #STD:add ffu upgrade KFLJHLEYB-2005 by xiaoxiang.xiong 20221017 start + restorecon_recursive /tranfs + mkdir /tranfs/ffu 0700 system shell + chmod 0777 /tranfs/ffu + #STD:add ffu upgrade KFLJHLEYB-2005 by xiaoxiang.xiong 20221017 end + + #STD:add XLLWCHLYEL-738 kfp by hao.lv5 20220907 start + restorecon_recursive /tranfs + mkdir /tranfs/tranf2fs 0700 root shell + chmod 0771 /tranfs/tranf2fs + mkdir /tranfs/tranf2fs/kfp 0700 root shell + chmod 0771 /tranfs/tranf2fs/kfp + #STD:add XLLWCHLYEL-738 kfp by hao.lv5 20220907 end + +on post-fs-data + write /proc/bootprof "INIT:post-fs-data" + wait_for_prop vendor.all.modules.ready 1 + write /proc/bootprof "modprobe: Load_Module_DONE" + + # Disable watermark boost + write /proc/sys/vm/watermark_boost_factor 0 + + # zram + 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 + + # 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 + +#MD:add XLQYXLQS-5252 for tranfs by xiaoxiang.xiong 20220404 start + chown system system /tranfs + chmod 0777 /tranfs +#MD:add XLQYXLQS-5252 for tranfs by xiaoxiang.xiong 20220404 end + + # 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 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 + + #Create Camera Dip Debug Folder + mkdir /data/vendor/dipdebug + chown root system /data/vendor/dipdebug + chmod 0771 /data/vendor/dipdebug + + #Create flicker mount point + mkdir /data/vendor/flicker + chown root system /data/vendor/flicker + chmod 0771 /data/vendor/flicker + +#ITD:modify for cam SN bind by huihang.zhou 20230302 start +#CAM OTP SN + chown root root /sys/class/sensordrv/tran_imgsensor/tran_imgsensor_sn + chmod 0666 /sys/class/sensordrv/tran_imgsensor/tran_imgsensor_sn +#ITD:modify for cam SN bind by huihang.zhou 20230302 end + +#MD:add XLQYXLQS-5252 for tranfs by xiaoxiang.xiong 20220404 start + restorecon_recursive /tranfs +#MD:add XLQYXLQS-5252 for tranfs by xiaoxiang.xiong 20220404 end + + # 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 /sys/class/misc/adsp_1/log_enable + chown root system /sys/class/misc/adsp_1/log_enable + chmod 0660 /dev/adsp + chown root media /dev/adsp + chmod 0440 /dev/adsp_0 + chown system media /dev/adsp_0 + chmod 0440 /dev/adsp_1 + chown system media /dev/adsp_1 + + # 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 + + # RTC + chmod 660 /dev/alarm + chown root system /dev/alarm + + # 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 limit to infinate (for m4u operation) + setrlimit 8 -1 -1 + + # CMDQ + chmod 0640 /dev/mtk_mdp + chown system system /dev/mtk_mdp + + # MDP SYNC + chmod 0640 /dev/mdp_sync + chown system system /dev/mdp_sync + + # MML PQ + chmod 0640 /dev/mml_pq + chown system system /dev/mml_pq + + #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 + + #Accdet + chown root radio /sys/devices/platform/Accdet_Driver/driver/accdet_call_state + + #Fingerprint + chmod 0666 /dev/goodix_fp + #qing.li ck7n p1 bring up start + chmod 0666 /sys/class/leds/lcd-backlight/brightness + chmod 0666 /sys/devices/platform/soc/14013000.dsi/lcm_hbm_state + #qing.li ck7n p1 bring up end + + + #v4l2 codec + 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 0777 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 + 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 + + 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 0666 /proc/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 system /dev/gz_kree + + #Camera + chmod 0660 /dev/camera-sysram + chmod 0660 /dev/camera-isp + chmod 0660 /dev/camera-mem + 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/seninf_n3d + 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/MAIN3AF + chmod 0660 /dev/SUBAF + chmod 0660 /dev/vpu + chmod 0660 /dev/apusys + chmod 0660 /dev/mtk_ccd + +#ITD: Modify Camera By Yingji.Wang 220426 Start + #OIS + chmod 0660 /dev/dw9781_ois + #OIS + chown system camera /dev/dw9781_ois + #DualCam + mkdir /data/vendor/arcsoft 0777 system system + #tranDualCam + mkdir /data/vendor/multicam 0777 system system + mkdir /data/vendor/multicam/dualcam 0777 system system + #tranSAT + mkdir /data/vendor/multicam/sat 0777 system system +#ITD: Modify Camera By Yingji.Wang 220426 end + +#ITD:modify by camera driver junfeng.qin5 20220501 start + #MEG-fullHDR + mkdir /data/vendor/meg_working_dir 0777 system system + mkdir /data/vendor/meg_working_dir/anc_fullhdr 0777 system system + #MEG-HUMANEFFECT + mkdir /data/vendor/meghumaneffect 0777 system system + #watermark 2.0 + mkdir /data/vendor/camera_watermark 0777 system system +#ITD:modify by camera driver junfeng.qin5 20220501 end + + chown system camera /dev/camera-sysram + chown system camera /dev/camera-isp + chown system camera /dev/camera-mem + 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/seninf_n3d + 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/MAIN3AF +#fake dual camera + chown root root /sys/class/main2_light/main2_light/main2_light + chmod 0666 /sys/class/main2_light/main2_light/main2_light + chown system camera /dev/SUBAF + chown system camera /dev/vpu + chown system camera /dev/apusys + chown system camera /dev/mtk_ccd + chown system camera /sys/kernel/debug/mtk_cam_dbg/0/ctrl + chown system camera /sys/kernel/debug/mtk_cam_dbg/1/ctrl + chown system camera /sys/kernel/debug/mtk_cam_dbg/2/ctrl + + #CCU + chmod 0660 /dev/ccu + chown system camera /dev/ccu + + #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 + + # MMQoS + chmod 0660 /sys/devices/platform/soc/soc:interconnect/mmqos_hrt/camera_max_bw + chown media media /sys/devices/platform/soc/soc:interconnect/mmqos_hrt/camera_max_bw + + # 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 + mkdir /data/vendor/thermal/ 0775 system system + + #MCUPM log + chmod 0620 /sys/class/misc/mcupm/mcupm_mobile_log + chown root system /sys/class/misc/mcupm/mcupm_mobile_log + chmod 0440 /dev/mcupm + chown root system /dev/mcupm + + #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 + + #widevine driver node + chmod 0660 /dev/drm_wv + chown media system /dev/drm_wv + +# End of adding by MTK drivers +# ----------------------- +on zygote-start + write /proc/bootprof "INIT:zygote-start" + +on early-boot + write /proc/bootprof "INIT:early-boot" + verity_update_state + +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 + + #BSP:add for charger&led midtest by lei.shi5 20220505 start + chmod 0666 /dev/MT_pmic_adc_cali + chmod 0666 /sys/class/leds/red/brightness + chmod 0666 /sys/class/leds/blue/brightness + chmod 0666 /sys/class/leds/green/brightness + chmod 0666 /sys/devices/platform/odm/odm:tran_battery/tran_bat_temp + chmod 0666 /sys/devices/platform/odm/odm:tran_battery/CHG_CAPACITY_TEST + chmod 0666 /sys/devices/platform/odm/odm:tran_battery/tran_set_current + chmod 0666 /sys/devices/platform/charger/Charger_Type + chown system system /sys/devices/platform/charger/tran_aichg_bigdata + chmod 0666 /sys/devices/platform/charger/tran_aichg_bigdata + #BSP:add for charger&led midtest by lei.shi5 20220505 end + #MG-CHG(Bypass):wireless function by yongqing 20221008 start + chmod 0666 /sys/wireless/wireless/Rx/brushFW + chmod 0666 /sys/wireless/wireless/Rx/reverse_charger + chmod 0666 /sys/wireless/wireless/Rx/rxdetect + chmod 0666 /sys/wireless/wireless/Rx/fake_rx_detect + #MG-CHG(Bypass):wireless function by yongqing 20221008 start + + + #MG-CHG(Bypass):bypass function by yongqing 20221008 start + chown system system /sys/devices/platform/charger/tran_aichg_disable_charger + chmod 0666 /sys/devices/platform/charger/tran_aichg_disable_charger + #MG-CHG(Bypass):bypass function by yongqing 20221008 start + + 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 + +#ITD:add flashlight by isp team 20220412 start + chmod 0666 /sys/devices/virtual/torch/torch/torch_level + chmod 0666 /sys/devices/virtual/sub_torch/sub_torch/sub_torch_level +#ITD:add flashlight by isp team 20220412 end + # gauge symbolic + symlink /sys/devices/platform/soc/10026000.pwrap/10026000.pwrap:mt6366/mt6358-gauge /dev/gauge + + # 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 + + +# 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 + +# 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 +#Power Manager + write /sys/power/pm_freeze_timeout 2000 + +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 msensord + start permission_check + +on property:vold.decrypt=trigger_restart_framework + write /proc/bootprof "INIT:vold.decrypt=trigger_restart_framework" + start msensord + start permission_check + +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 + +# 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 + +on property:sys.boot_completed=1 + write /proc/perfmgr/boost_ctrl/cpu_ctrl/boot_freq "-1 -1 -1 -1 -1 -1" + write /sys/devices/platform/boot_dramboost/dramboost/dramboost 0 + + # stop bootprof + write /proc/bootprof 0 + +#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 /dev/gauge/FG_daemon_disable 1 + +on property:persist.vendor.mediatek.fg.force25c=1 + write /dev/gauge/Battery_Temperature 25 + +on property:persist.vendor.mediatek.fg.force25c=0 + write /dev/gauge/Battery_Temperature 65535 + +on property:persist.vendor.mediatek.fg.log.enable=1 + write /dev/gauge/FG_daemon_log_level 7 + +# add loghidl client +service loghidlsysservice /system/bin/loghidlsysservice + class main + user root + group system + disabled + +# add meta_tst for ATM +service meta_tst /vendor/bin/meta_tst + class core + user root + group radio gps system wifi audio bluetooth media + capabilities NET_RAW NET_ADMIN + socket meta-atci stream 660 radio system + disabled + oneshot + +service factory_no_image /vendor/bin/factory + user root + group radio system wifi media gps audio bluetooth wakelock nfc + capabilities BLOCK_SUSPEND NET_RAW NET_ADMIN SYS_ADMIN SYS_BOOT + socket factory-atci stream 660 radio system + disabled + oneshot + +# start meta_tst for ATM +on property:sys.boot_completed=1 && property:ro.boot.atm=enable + start meta_tst + start loghidlvendorservice + start loghidlsysservice + +# reset mdmode when modem crash happens in ATM +on property:vendor.mtk.md1.status=reset + setprop persist.vendor.atm.mdmode normal + +# MTK fast charging support +on property:persist.vendor.mediatek.fast_charging.support=* + write /sys/devices/platform/charger/fast_chg_indicator ${persist.vendor.mediatek.fast_charging.support} + +# FPSGO FBT Game +on boot + insmod /vendor/lib/modules/fpsgo.ko + +# VSIM service (vendor OSI) +service osi /system/bin/osi + class main + user root + disabled + oneshot + #seclabel u:r:osi:s0 + +#BSP:add meta features XLQLBH-14 by wang.qin 20220412 start +on property:persist.vendor.tran.wipedata=1 && property:ro.boot.atm=enable + tran_factory_reset +#BSP:add meta features XLQLBH-14 by wang.qin 20220412 end + +#SPD: add resmonitor and smartpanel bind small core by rui.fu 20230117 start +service spd_cpu_set_sh /vendor/bin/init.spd_cpu_set.sh + class main + user root + group root system + disabled + oneshot + +on property:sys.boot_completed=1 + start spd_cpu_set_sh +#SPD: add resmonitor and smartpanel bind small core by rui.fu 20230117 end + +#SPD: add for watermark_scale_factor at 20230302 start +on property:sys.boot_completed=1 + write /proc/sys/vm/watermark_scale_factor 200 + setprop vendor.tran.cur_max_process 72 +#SPD: add for watermark_scale_factor at 20230302 end diff --git a/rootdir/etc/init/hw/init.mt6789.usb.rc b/rootdir/etc/init/hw/init.mt6789.usb.rc new file mode 100644 index 0000000..80fcf6e --- /dev/null +++ b/rootdir/etc/init/hw/init.mt6789.usb.rc @@ -0,0 +1,949 @@ +on early-init + write /sys/module/musb_hdrc/parameters/kernel_init_done 1 + # write /sys/module/musb_hdrc/parameters/musb_force_on 1 + # write /sys/class/udc/musb-hdrc/device/cmode 3 + +on post-fs + setprop vendor.usb.vid "0x0E8D" + mkdir /dev/usb-ffs 0775 shell shell + mkdir /dev/usb-ffs/adb 0770 shell shell + mkdir /config/usb_gadget/g1 0770 shell shell + write /config/usb_gadget/g1/idVendor ${vendor.usb.vid} + write /config/usb_gadget/g1/bcdDevice 0x0223 + write /config/usb_gadget/g1/bcdUSB 0x0200 + write /config/usb_gadget/g1/os_desc/use 1 + mkdir /config/usb_gadget/g1/strings/0x409 0770 + write /config/usb_gadget/g1/strings/0x409/serialnumber ${ro.serialno} + write /config/usb_gadget/g1/strings/0x409/manufacturer ${ro.product.manufacturer} + #SDD: add multi device name by lijia.chen 2020.08.10 start + write /config/usb_gadget/g1/strings/0x409/product "Android ADB Interface" + #SDD: add multi device name by lijia.chen 2020.08.10 end + mkdir /config/usb_gadget/g1/functions/accessory.gs2 + mkdir /config/usb_gadget/g1/functions/audio_source.gs3 + mkdir /config/usb_gadget/g1/functions/ffs.adb + mkdir /config/usb_gadget/g1/functions/ffs.mtp + write /config/usb_gadget/g1/functions/ffs.mtp/os_desc/interface.MTP/compatible_id "MTP" + mkdir /config/usb_gadget/g1/functions/ffs.ptp + mkdir /config/usb_gadget/g1/functions/mtk_rndis.gs4 + mkdir /config/usb_gadget/g1/functions/midi.gs5 + mkdir /config/usb_gadget/g1/functions/acm.gs0 + mkdir /config/usb_gadget/g1/functions/acm.gs1 + mkdir /config/usb_gadget/g1/functions/acm.gs2 + mkdir /config/usb_gadget/g1/functions/acm.gs3 + mkdir /config/usb_gadget/g1/functions/mass_storage.usb0 + mkdir /config/usb_gadget/g1/functions/hid.gs0 + mkdir /config/usb_gadget/g1/configs/b.1 0770 shell shell + mkdir /config/usb_gadget/g1/configs/b.1/strings/0x409 0770 shell shell + write /config/usb_gadget/g1/os_desc/b_vendor_code 0x1 + write /config/usb_gadget/g1/os_desc/qw_sign "MSFT100" + write /config/usb_gadget/g1/configs/b.1/MaxPower 500 + symlink /config/usb_gadget/g1/configs/b.1 /config/usb_gadget/g1/os_desc/b.1 + mount functionfs adb /dev/usb-ffs/adb rmode=0770,fmode=0660,uid=2000,gid=2000,no_disconnect=1 + mkdir /dev/usb-ffs/mtp 0770 mtp mtp + mkdir /dev/usb-ffs/ptp 0770 mtp mtp + mount functionfs mtp /dev/usb-ffs/mtp rmode=0770,fmode=0660,uid=1024,gid=1024,no_disconnect=1 + mount functionfs ptp /dev/usb-ffs/ptp rmode=0770,fmode=0660,uid=1024,gid=1024,no_disconnect=1 + +on post-fs-data + mkdir /config/usb_gadget/g1/functions/via_modem.gs0 + mkdir /config/usb_gadget/g1/functions/via_ets.gs0 + mkdir /config/usb_gadget/g1/functions/via_atc.gs0 + +on boot + setprop sys.usb.configfs 1 + setprop sys.usb.controller "musb-hdrc" + setprop vendor.usb.controller "musb-hdrc" + setprop sys.usb.ffs.aio_compat 0 + setprop vendor.usb.acm_cnt 0 + setprop vendor.usb.acm_port0 "" + setprop vendor.usb.acm_port1 "" + setprop vendor.usb.acm_enable 0 + write /sys/class/android_usb/android0/f_mtp/cpu_mask 0x80 + write /sys/module/usb_f_mtp/parameters/mtp_rx_cont 1 + chmod 0664 /sys/class/android_usb/android0/iSerial + chown root system /sys/class/android_usb/android0/iSerial + + chown radio system /sys/class/usb_rawbulk/data/enable + chmod 0660 /sys/class/usb_rawbulk/data/enable + chown radio system /sys/class/usb_rawbulk/ets/enable + chmod 0660 /sys/class/usb_rawbulk/ets/enable + chown radio system /sys/class/usb_rawbulk/atc/enable + chmod 0660 /sys/class/usb_rawbulk/atc/enable + chown radio system /sys/class/usb_rawbulk/pcv/enable + chmod 0660 /sys/class/usb_rawbulk/pcv/enable + chown radio system /sys/class/usb_rawbulk/gps/enable + chmod 0660 /sys/class/usb_rawbulk/gps/enable + chown system radio /dev/ttyGS0 + chmod 0660 /dev/ttyGS0 + chown system radio /dev/ttyGS1 + chmod 0660 /dev/ttyGS1 + chown system radio /dev/ttyGS2 + chmod 0660 /dev/ttyGS2 + chown system radio /dev/ttyGS3 + chmod 0660 /dev/ttyGS3 + #SDD: add multi device name by lijia.chen 2020.08.10 start + chmod a+x config/usb_gadget/g1 + chmod a+x config/usb_gadget/g1/strings/0x409 + chmod 0666 /config/usb_gadget/g1/strings/0x409/product + #SDD: add multi device name by lijia.chen 2020.08.10 end + + # 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} + #SDD: add multi device name by lijia.chen 2020.08.10 start + #write /config/usb_gadget/g1/strings/0x409/product ${ro.product.model} + #SDD: add multi device name by lijia.chen 2020.08.10 end + mkdir /config/usb_gadget/g1/functions/hid.gs0 + mkdir /config/usb_gadget/g1/configs/b.1 0770 shell shell + mkdir /config/usb_gadget/g1/configs/b.1/strings/0x409 0770 shell shell + write /config/usb_gadget/g1/configs/b.1/MaxPower 500 + mount functionfs adb /dev/usb-ffs/adb uid=2000,gid=2000 + setprop sys.usb.configfs 1 + setprop vendor.usb.controller "musb-hdrc" + setprop vendor.usb.acm_cnt 0 + setprop vendor.usb.acm_port0 "" + setprop vendor.usb.acm_port1 "" + setprop vendor.usb.acm_enable 0 + setprop sys.usb.config hid + +### more command at init.usb.configfs.rc ### +on property:sys.usb.config=none && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/idVendor ${vendor.usb.vid} + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rmdir /config/usb_gadget/g1/functions/mtk_rndis.gs4 + write /sys/devices/platform/soc/mt_usb/saving 0 + +### HID for KPOC ### +on property:sys.usb.config=hid && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "HID" + write /config/usb_gadget/g1/idProduct 0x20FF + write /config/usb_gadget/g1/functions/hid.gs0/protocol 0 + write /config/usb_gadget/g1/functions/hid.gs0/subclass 0 + #write /config/usb_gadget/g1/functions/hid.gs0/report_length 4 + #write /config/usb_gadget/g1/functions/hid.gs0/report_desc \\x05\\x01\\x09\\x00\\xa1\\x01\\xc0 + symlink /config/usb_gadget/g1/functions/hid.gs0 /config/usb_gadget/g1/configs/b.1/f1 + write /config/usb_gadget/g1/UDC ${vendor.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +### main function : adb ### +### start adbd at init.usb.configfs.rc ### +on property:sys.usb.config=adb && property:vendor.usb.acm_cnt=0 && \ +property:sys.usb.configfs=1 + setprop vendor.usb.pid 0x201C +on property:sys.usb.config=adb && property:vendor.usb.acm_cnt=1 && \ +property:sys.usb.configfs=1 + setprop vendor.usb.pid 0x2006 + setprop vendor.usb.acm_port1 "" +on property:sys.usb.config=adb && property:vendor.usb.acm_cnt=2 && \ +property:sys.usb.configfs=1 + setprop vendor.usb.pid 0x2029 + +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=adb && \ +property:vendor.usb.acm_enable=1 && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "adb_acm" + write /config/usb_gadget/g1/idProduct ${vendor.usb.pid} + write /sys/devices/platform/soc/mt_usb/saving 1 + symlink /config/usb_gadget/g1/functions/mass_storage.usb0 /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f3 + symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port1} /config/usb_gadget/g1/configs/b.1/f4 + write /config/usb_gadget/g1/UDC ${vendor.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=adb && \ +property:vendor.usb.acm_enable=0 && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "adb" + write /config/usb_gadget/g1/idProduct ${vendor.usb.pid} + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f1 + write /config/usb_gadget/g1/UDC ${vendor.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +### main function : mtp ### +on property:sys.usb.config=mtp && property:vendor.usb.acm_cnt=0 && \ +property:sys.usb.configfs=1 + setprop vendor.usb.pid 0x2008 +on property:sys.usb.config=mtp && property:vendor.usb.acm_cnt=1 && \ +property:sys.usb.configfs=1 + setprop vendor.usb.pid 0x2012 + setprop vendor.usb.acm_port1 "" +on property:sys.usb.config=mtp && property:vendor.usb.acm_cnt=2 && \ +property:sys.usb.configfs=1 + setprop vendor.usb.pid 0x202A + +on property:sys.usb.config=mtp && property:vendor.usb.acm_enable=1 && \ +property:sys.usb.configfs=1 && property:vendor.usb.ffs.mtp.ready=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "mtp_acm" + write /config/usb_gadget/g1/idProduct ${vendor.usb.pid} + write /config/usb_gadget/g1/os_desc/use 1 + write /sys/devices/platform/soc/mt_usb/saving 1 + symlink /config/usb_gadget/g1/functions/ffs.mtp /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port1} /config/usb_gadget/g1/configs/b.1/f3 + write /config/usb_gadget/g1/UDC ${vendor.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=mtp && property:vendor.usb.acm_enable=0 && \ +property:sys.usb.configfs=1 && property:vendor.usb.ffs.mtp.ready=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "mtp" + write /config/usb_gadget/g1/idProduct ${vendor.usb.pid} + write /config/usb_gadget/g1/os_desc/use 1 + symlink /config/usb_gadget/g1/functions/ffs.mtp /config/usb_gadget/g1/configs/b.1/f1 + write /config/usb_gadget/g1/UDC ${vendor.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +### start adbd at init.usb.configfs.rc ### +on property:sys.usb.config=mtp,adb && property:vendor.usb.acm_cnt=0 && \ +property:sys.usb.configfs=1 + setprop vendor.usb.pid 0x201D +on property:sys.usb.config=mtp,adb && property:vendor.usb.acm_cnt=1 && \ +property:sys.usb.configfs=1 + setprop vendor.usb.pid 0x200A + setprop vendor.usb.acm_port1 "" +on property:sys.usb.config=mtp,adb && property:vendor.usb.acm_cnt=2 && \ +property:sys.usb.configfs=1 + setprop vendor.usb.pid 0x2026 + +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=mtp,adb && \ +property:vendor.usb.acm_enable=1 && property:sys.usb.configfs=1 && property:vendor.usb.ffs.mtp.ready=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "mtp_adb_acm" + write /config/usb_gadget/g1/idProduct ${vendor.usb.pid} + write /config/usb_gadget/g1/os_desc/use 1 + write /sys/devices/platform/soc/mt_usb/saving 1 + symlink /config/usb_gadget/g1/functions/ffs.mtp /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f3 + symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port1} /config/usb_gadget/g1/configs/b.1/f4 + write /config/usb_gadget/g1/UDC ${vendor.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=mtp,adb && \ +property:vendor.usb.acm_enable=0 && property:sys.usb.configfs=1 && property:vendor.usb.ffs.mtp.ready=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "mtp_adb" + write /config/usb_gadget/g1/idProduct ${vendor.usb.pid} + write /config/usb_gadget/g1/os_desc/use 1 + symlink /config/usb_gadget/g1/functions/ffs.mtp /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 + write /config/usb_gadget/g1/UDC ${vendor.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +### main function : ptp ### +on property:sys.usb.config=ptp && property:vendor.usb.acm_cnt=0 && \ +property:sys.usb.configfs=1 + setprop vendor.usb.pid 0x200B +on property:sys.usb.config=ptp && property:vendor.usb.acm_cnt=1 && \ +property:sys.usb.configfs=1 + setprop vendor.usb.pid 0x2013 + setprop vendor.usb.acm_port1 "" +on property:sys.usb.config=ptp && property:vendor.usb.acm_cnt=2 && \ +property:sys.usb.configfs=1 + setprop vendor.usb.pid 0x202B + +on property:sys.usb.config=ptp && property:vendor.usb.acm_enable=1 && \ +property:sys.usb.configfs=1 && property:vendor.usb.ffs.ptp.ready=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ptp_acm" + write /config/usb_gadget/g1/idProduct ${vendor.usb.pid} + write /sys/devices/platform/soc/mt_usb/saving 1 + symlink /config/usb_gadget/g1/functions/ffs.ptp /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port1} /config/usb_gadget/g1/configs/b.1/f3 + write /config/usb_gadget/g1/UDC ${vendor.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=ptp && property:vendor.usb.acm_enable=0 && \ +property:sys.usb.configfs=1 && property:vendor.usb.ffs.ptp.ready=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ptp" + write /config/usb_gadget/g1/idProduct ${vendor.usb.pid} + symlink /config/usb_gadget/g1/functions/ffs.ptp /config/usb_gadget/g1/configs/b.1/f1 + write /config/usb_gadget/g1/UDC ${vendor.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +### start adbd at init.usb.configfs.rc ### +on property:sys.usb.config=ptp,adb && property:vendor.usb.acm_cnt=0 && \ +property:sys.usb.configfs=1 + setprop vendor.usb.pid 0x200C +on property:sys.usb.config=ptp,adb && property:vendor.usb.acm_cnt=1 && \ +property:sys.usb.configfs=1 + setprop vendor.usb.pid 0x200D + setprop vendor.usb.acm_port1 "" +on property:sys.usb.config=ptp,adb && property:vendor.usb.acm_cnt=2 && \ +property:sys.usb.configfs=1 + setprop vendor.usb.pid 0x2027 + +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=ptp,adb && \ +property:vendor.usb.acm_enable=1 && property:sys.usb.configfs=1 && property:vendor.usb.ffs.ptp.ready=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ptp_adb_acm" + write /config/usb_gadget/g1/idProduct ${vendor.usb.pid} + write /sys/devices/platform/soc/mt_usb/saving 1 + symlink /config/usb_gadget/g1/functions/ffs.ptp /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f3 + symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port1} /config/usb_gadget/g1/configs/b.1/f4 + write /config/usb_gadget/g1/UDC ${vendor.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=ptp,adb && \ +property:vendor.usb.acm_enable=0 && property:sys.usb.configfs=1 && property:vendor.usb.ffs.ptp.ready=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ptp_adb" + write /config/usb_gadget/g1/idProduct ${vendor.usb.pid} + symlink /config/usb_gadget/g1/functions/ffs.ptp /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 + write /config/usb_gadget/g1/UDC ${vendor.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +### main function : rndis ### +on property:sys.usb.config=rndis && property:vendor.usb.acm_cnt=0 && \ +property:sys.usb.configfs=1 + setprop vendor.usb.pid 0x2004 +on property:sys.usb.config=rndis && property:vendor.usb.acm_cnt=1 && \ +property:sys.usb.configfs=1 + setprop vendor.usb.pid 0x2011 + setprop vendor.usb.acm_port1 "" +on property:sys.usb.config=rndis && property:vendor.usb.acm_cnt=2 && \ +property:sys.usb.configfs=1 + setprop vendor.usb.pid 0x202C + +on property:sys.usb.config=rndis && property:vendor.usb.acm_enable=1 && \ +property:sys.usb.configfs=1 + mkdir /config/usb_gadget/g1/functions/mtk_rndis.gs4 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ums_acm" + write /config/usb_gadget/g1/idProduct ${vendor.usb.pid} + write /sys/devices/platform/soc/mt_usb/saving 1 + symlink /config/usb_gadget/g1/functions/mtk_rndis.gs4 /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port1} /config/usb_gadget/g1/configs/b.1/f3 + write /config/usb_gadget/g1/UDC ${vendor.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=rndis && property:vendor.usb.acm_enable=0 && \ +property:sys.usb.configfs=1 + mkdir /config/usb_gadget/g1/functions/mtk_rndis.gs4 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis" + write /config/usb_gadget/g1/idProduct ${vendor.usb.pid} + symlink /config/usb_gadget/g1/functions/mtk_rndis.gs4 /config/usb_gadget/g1/configs/b.1/f1 + write /config/usb_gadget/g1/UDC ${vendor.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=rndis,adb && property:vendor.usb.acm_cnt=0 && \ +property:sys.usb.configfs=1 + setprop vendor.usb.pid 0x2005 +on property:sys.usb.config=rndis,adb && property:vendor.usb.acm_cnt=1 && \ +property:sys.usb.configfs=1 + setprop vendor.usb.pid 0x2010 + setprop vendor.usb.acm_port1 "" +on property:sys.usb.config=rndis,adb && property:vendor.usb.acm_cnt=2 && \ +property:sys.usb.configfs=1 + setprop vendor.usb.pid 0x2028 + +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=rndis,adb && \ +property:vendor.usb.acm_enable=1 && property:sys.usb.configfs=1 + mkdir /config/usb_gadget/g1/functions/mtk_rndis.gs4 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_adb_acm" + write /config/usb_gadget/g1/idProduct ${vendor.usb.pid} + write /sys/devices/platform/soc/mt_usb/saving 1 + symlink /config/usb_gadget/g1/functions/mtk_rndis.gs4 /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f3 + symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port1} /config/usb_gadget/g1/configs/b.1/f4 + write /config/usb_gadget/g1/UDC ${vendor.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=rndis,adb && \ +property:vendor.usb.acm_enable=0 && property:sys.usb.configfs=1 + mkdir /config/usb_gadget/g1/functions/mtk_rndis.gs4 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_adb" + write /config/usb_gadget/g1/idProduct ${vendor.usb.pid} + symlink /config/usb_gadget/g1/functions/mtk_rndis.gs4 /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 + write /config/usb_gadget/g1/UDC ${vendor.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +### main function : midi ### +on property:sys.usb.config=midi && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/idProduct 0x2046 + +on property:sys.usb.config=midi,adb && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/idProduct 0x2048 + +### main function : accessory ### +on property:sys.usb.config=accessory && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/idVendor 0x18d1 + write /config/usb_gadget/g1/idProduct 0x2d00 + +on property:sys.usb.config=accessory,adb && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/idVendor 0x18d1 + write /config/usb_gadget/g1/idProduct 0x2d01 + +### main function : audio_source ### +on property:sys.usb.config=audio_source && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/idVendor 0x18d1 + write /config/usb_gadget/g1/idProduct 0x2d02 + +on property:sys.usb.config=audio_source,adb && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/idVendor 0x18d1 + write /config/usb_gadget/g1/idProduct 0x2d03 + +### main function : accessory,audio_source ### +on property:sys.usb.config=accessory,audio_source && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/idVendor 0x18d1 + write /config/usb_gadget/g1/idProduct 0x2d04 + +on property:sys.usb.config=accessory,audio_source,adb && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/idVendor 0x18d1 + write /config/usb_gadget/g1/idProduct 0x2d05 + +on property:sys.usb.config=via_bypass && property:vendor.usb.acm_cnt=0 && \ +property:sys.usb.configfs=1 + setprop vendor.usb.pid 0x2031 +on property:sys.usb.config=via_bypass && property:vendor.usb.acm_cnt=1 && \ +property:sys.usb.configfs=1 + setprop vendor.usb.pid 0x2033 + setprop vendor.usb.acm_port1 "" + +##via_modem,via_ets,via_atc,acm +on property:sys.usb.config=via_bypass && property:vendor.usb.acm_enable=1 && \ +property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "via_bypass" + write /config/usb_gadget/g1/idProduct ${vendor.usb.pid} + write /sys/devices/platform/soc/mt_usb/saving 1 + symlink /config/usb_gadget/g1/functions/via_modem.gs0 /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/via_ets.gs0 /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/via_atc.gs0 /config/usb_gadget/g1/configs/b.1/f3 + symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f4 + write /config/usb_gadget/g1/UDC ${vendor.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +##via_modem,via_ets,via_atc,adb +on property:sys.usb.config=via_bypass && property:vendor.usb.acm_enable=0 && \ +property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "via_bypass" + write /config/usb_gadget/g1/idProduct ${vendor.usb.pid} + write /sys/devices/platform/soc/mt_usb/saving 1 + symlink /config/usb_gadget/g1/functions/via_modem.gs0 /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/via_ets.gs0 /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/via_atc.gs0 /config/usb_gadget/g1/configs/b.1/f3 + write /config/usb_gadget/g1/UDC ${vendor.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=via_bypass,adb && property:vendor.usb.acm_cnt=0 && \ +property:sys.usb.configfs=1 + setprop vendor.usb.pid 0x2032 +on property:sys.usb.config=via_bypass,adb && property:vendor.usb.acm_cnt=1 && \ +property:sys.usb.configfs=1 + setprop vendor.usb.pid 0x2034 + setprop vendor.usb.acm_port1 "" +on property:sys.usb.config=via_bypass,adb && property:vendor.usb.acm_cnt=2 && \ +property:sys.usb.configfs=1 + setprop vendor.usb.pid 0x2050 + +on property:sys.usb.config=via_bypass,adb && property:sys.usb.configfs=1 + start adbd + +##via_modem,via_ets,via_atc,adb,acm +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=via_bypass,adb && \ +property:vendor.usb.acm_enable=1 && property:vendor.usb.acm_cnt=1 && \ +property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_adb_acm" + write /config/usb_gadget/g1/idProduct ${vendor.usb.pid} + write /sys/devices/platform/soc/mt_usb/saving 1 + symlink /config/usb_gadget/g1/functions/via_modem.gs0 /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/via_ets.gs0 /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/via_atc.gs0 /config/usb_gadget/g1/configs/b.1/f3 + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f4 + symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f5 + write /config/usb_gadget/g1/UDC ${vendor.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +##via_modem,acm,adb +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=via_bypass,adb && \ +property:vendor.usb.acm_enable=1 && property:vendor.usb.acm_cnt=2 && \ +property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_adb_acm2" + write /config/usb_gadget/g1/idProduct ${vendor.usb.pid} + write /sys/devices/platform/soc/mt_usb/saving 1 + symlink /config/usb_gadget/g1/functions/via_modem.gs0 /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f3 + symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port1} /config/usb_gadget/g1/configs/b.1/f4 + write /config/usb_gadget/g1/UDC ${vendor.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +##via_modem,via_ets,via_atc,adb +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=via_bypass,adb && \ +property:vendor.usb.acm_enable=0 && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_adb" + write /config/usb_gadget/g1/idProduct ${vendor.usb.pid} + write /sys/devices/platform/soc/mt_usb/saving 1 + symlink /config/usb_gadget/g1/functions/via_modem.gs0 /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/via_ets.gs0 /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/via_atc.gs0 /config/usb_gadget/g1/configs/b.1/f3 + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f4 + write /config/usb_gadget/g1/UDC ${vendor.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +### main function : mass_storage ### +on property:sys.usb.config=mass_storage && property:vendor.usb.acm_cnt=0 && \ +property:sys.usb.configfs=1 + setprop vendor.usb.pid 0x2002 +on property:sys.usb.config=mass_storage && property:vendor.usb.acm_cnt=1 && \ +property:sys.usb.configfs=1 + setprop vendor.usb.pid 0x200F + setprop vendor.usb.acm_port1 "" +on property:sys.usb.config=mass_storage && property:vendor.usb.acm_cnt=2 && \ +property:sys.usb.configfs=1 + setprop vendor.usb.pid 0x202D + +on property:sys.usb.config=mass_storage && property:vendor.usb.acm_enable=1 && \ +property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ums_acm" + write /config/usb_gadget/g1/idProduct ${vendor.usb.pid} + write /sys/devices/platform/soc/mt_usb/saving 1 + symlink /config/usb_gadget/g1/functions/mass_storage.usb0 /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port1} /config/usb_gadget/g1/configs/b.1/f3 + write /config/usb_gadget/g1/UDC ${vendor.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=mass_storage && property:vendor.usb.acm_enable=0 && \ +property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ums" + write /config/usb_gadget/g1/idProduct ${vendor.usb.pid} + symlink /config/usb_gadget/g1/functions/mass_storage.usb0 /config/usb_gadget/g1/configs/b.1/f1 + write /config/usb_gadget/g1/UDC ${vendor.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=mass_storage,adb && property:vendor.usb.acm_cnt=0 && \ +property:sys.usb.configfs=1 + setprop vendor.usb.pid 0x2003 +on property:sys.usb.config=mass_storage,adb && property:vendor.usb.acm_cnt=1 && \ +property:sys.usb.configfs=1 + setprop vendor.usb.pid 0x2006 + setprop vendor.usb.acm_port1 "" +on property:sys.usb.config=mass_storage,adb && property:vendor.usb.acm_cnt=2 && \ +property:sys.usb.configfs=1 + setprop vendor.usb.pid 0x2029 + +on property:sys.usb.config=mass_storage,adb && property:sys.usb.configfs=1 + start adbd + +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=mass_storage,adb && \ +property:vendor.usb.acm_enable=1 && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ums_adb_acm" + write /config/usb_gadget/g1/idProduct ${vendor.usb.pid} + write /sys/devices/platform/soc/mt_usb/saving 1 + symlink /config/usb_gadget/g1/functions/mass_storage.usb0 /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f3 + symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port1} /config/usb_gadget/g1/configs/b.1/f4 + write /config/usb_gadget/g1/UDC ${vendor.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=mass_storage,adb && \ +property:vendor.usb.acm_enable=0 && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ums_adb" + write /config/usb_gadget/g1/idProduct ${vendor.usb.pid} + symlink /config/usb_gadget/g1/functions/mass_storage.usb0 /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 + write /config/usb_gadget/g1/UDC ${vendor.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +### main function : bicr ### +on property:sys.usb.config=bicr && property:vendor.usb.acm_cnt=0 && \ +property:sys.usb.configfs=1 + setprop vendor.usb.pid 0x2002 +on property:sys.usb.config=bicr && property:vendor.usb.acm_cnt=1 && \ +property:sys.usb.configfs=1 + setprop vendor.usb.pid 0x200F + setprop vendor.usb.acm_port1 "" +on property:sys.usb.config=bicr && property:vendor.usb.acm_cnt=2 && \ +property:sys.usb.configfs=1 + setprop vendor.usb.pid 0x202D + +on property:sys.usb.config=bicr && property:vendor.usb.acm_enable=1 && \ +property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ums_acm" + write /config/usb_gadget/g1/idProduct ${vendor.usb.pid} + write /sys/devices/platform/soc/mt_usb/saving 1 + write /config/usb_gadget/g1/functions/mass_storage.usb0/lun.0/cdrom 1 + write /config/usb_gadget/g1/functions/mass_storage.usb0/lun.0/file "/dev/block/loop0" + symlink /config/usb_gadget/g1/functions/mass_storage.usb0 /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port1} /config/usb_gadget/g1/configs/b.1/f3 + write /config/usb_gadget/g1/UDC ${vendor.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=bicr && property:vendor.usb.acm_enable=0 && \ +property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ums" + write /config/usb_gadget/g1/idProduct ${vendor.usb.pid} + write /config/usb_gadget/g1/functions/mass_storage.usb0/lun.0/cdrom 1 + write /config/usb_gadget/g1/functions/mass_storage.usb0/lun.0/file "/dev/block/loop0" + symlink /config/usb_gadget/g1/functions/mass_storage.usb0 /config/usb_gadget/g1/configs/b.1/f1 + write /config/usb_gadget/g1/UDC ${vendor.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=bicr,adb && property:vendor.usb.acm_cnt=0 && \ +property:sys.usb.configfs=1 + setprop vendor.usb.pid 0x2003 +on property:sys.usb.config=bicr,adb && property:vendor.usb.acm_cnt=1 && \ +property:sys.usb.configfs=1 + setprop vendor.usb.pid 0x2006 + setprop vendor.usb.acm_port1 "" +on property:sys.usb.config=bicr,adb && property:vendor.usb.acm_cnt=2 && \ +property:sys.usb.configfs=1 + setprop vendor.usb.pid 0x2029 + +on property:sys.usb.config=bicr,adb && property:sys.usb.configfs=1 + start adbd + +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=bicr,adb && \ +property:vendor.usb.acm_enable=1 && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ums_adb_acm" + write /config/usb_gadget/g1/idProduct ${vendor.usb.pid} + write /sys/devices/platform/soc/mt_usb/saving 1 + write /config/usb_gadget/g1/functions/mass_storage.usb0/lun.0/cdrom 1 + write /config/usb_gadget/g1/functions/mass_storage.usb0/lun.0/file "/dev/block/loop0" + symlink /config/usb_gadget/g1/functions/mass_storage.usb0 /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f3 + symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port1} /config/usb_gadget/g1/configs/b.1/f4 + write /config/usb_gadget/g1/UDC ${vendor.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=bicr,adb && \ +property:vendor.usb.acm_enable=0 && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ums_adb" + write /config/usb_gadget/g1/idProduct ${vendor.usb.pid} + write /config/usb_gadget/g1/functions/mass_storage.usb0/lun.0/cdrom 1 + write /config/usb_gadget/g1/functions/mass_storage.usb0/lun.0/file "/dev/block/loop0" + symlink /config/usb_gadget/g1/functions/mass_storage.usb0 /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 + write /config/usb_gadget/g1/UDC ${vendor.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +### ACM APPEND SERIES ### +on property:persist.vendor.radio.port_index="0" && property:sys.boot_completed=1 + setprop vendor.usb.acm_idx "" + setprop vendor.usb.acm_cnt 0 + setprop vendor.usb.acm_enable 0 + setprop sys.usb.config none + setprop sys.usb.config ${sys.usb.state} + +on property:persist.vendor.radio.port_index="1" && property:sys.boot_completed=1 + setprop sys.usb.config acm_gs0 +on property:sys.usb.config=mass_storage,adb,acm + setprop sys.usb.config acm_gs0 +on property:sys.usb.config=acm_gs0 + setprop vendor.usb.acm_port0 0 + setprop vendor.usb.acm_port1 "" + setprop vendor.usb.acm_cnt 1 + setprop vendor.usb.acm_enable 1 + setprop sys.usb.config none + setprop sys.usb.config ${sys.usb.state} + setprop vendor.usb.acm_idx "1" + +on property:persist.vendor.radio.port_index="2" && property:sys.boot_completed=1 + setprop sys.usb.config acm_gs1 +on property:sys.usb.config=acm_gs1 + setprop vendor.usb.acm_port0 1 + setprop vendor.usb.acm_port1 "" + setprop vendor.usb.acm_cnt 1 + setprop vendor.usb.acm_enable 1 + setprop sys.usb.config none + setprop sys.usb.config ${sys.usb.state} + setprop vendor.usb.acm_idx "2" + +on property:persist.vendor.radio.port_index="3" && property:sys.boot_completed=1 + setprop sys.usb.config acm_gs2 +on property:sys.usb.config=acm_third + setprop sys.usb.config acm_gs2 +on property:sys.usb.config=acm_gs2 + setprop vendor.usb.acm_port0 2 + setprop vendor.usb.acm_port1 "" + setprop vendor.usb.acm_cnt 1 + setprop vendor.usb.acm_enable 1 + setprop sys.usb.config none + setprop sys.usb.config ${sys.usb.state} + setprop vendor.usb.acm_idx "3" + +on property:persist.vendor.radio.port_index="4" && property:sys.boot_completed=1 + setprop sys.usb.config acm_gs3 +on property:sys.usb.config=gs3 + setprop sys.usb.config acm_gs3 +on property:sys.usb.config=mtp,gs3 + setprop sys.usb.config acm_gs3 +on property:sys.usb.config=acm_gs3 + setprop vendor.usb.acm_port0 3 + setprop vendor.usb.acm_port1 "" + setprop vendor.usb.acm_cnt 1 + setprop vendor.usb.acm_enable 1 + setprop sys.usb.config none + setprop sys.usb.config ${sys.usb.state} + setprop vendor.usb.acm_idx "4" + +on property:sys.usb.config=mtp,gs0gs1 + setprop sys.usb.config acm_gs0gs1 +on property:sys.usb.config=gs0gs1 + setprop sys.usb.config acm_gs0gs1 +on property:sys.usb.config=rndis,gs0gs1 + setprop sys.usb.config acm_gs0gs1 +on property:sys.usb.config=rndis,adb,gs0gs1 + setprop sys.usb.config acm_gs0gs1 +on property:sys.usb.config=acm_gs0gs1 + setprop vendor.usb.acm_port0 0 + setprop vendor.usb.acm_port1 1 + setprop vendor.usb.acm_cnt 2 + setprop vendor.usb.acm_enable 1 + setprop sys.usb.config none + setprop sys.usb.config ${sys.usb.state} + setprop vendor.usb.acm_idx "1,2" + +on property:sys.usb.config=gs3,dual_acm + setprop sys.usb.config acm_gs0gs3 +on property:sys.usb.config=mtp,gs3,dual_acm + setprop sys.usb.config acm_gs0gs3 +on property:sys.usb.config=mtp,gs0gs3 + setprop sys.usb.config acm_gs0gs3 +on property:sys.usb.config=gs0gs3 + setprop sys.usb.config acm_gs0gs3 +on property:sys.usb.config=rndis,gs0gs3 + setprop sys.usb.config acm_gs0gs3 +on property:sys.usb.config=rndis,adb,gs0gs3 + setprop sys.usb.config acm_gs0gs3 +on property:sys.usb.config=acm_gs0gs3 + setprop vendor.usb.acm_port0 0 + setprop vendor.usb.acm_port1 3 + setprop vendor.usb.acm_cnt 2 + setprop vendor.usb.acm_enable 1 + setprop sys.usb.config none + setprop sys.usb.config ${sys.usb.state} + setprop vendor.usb.acm_idx "1,4" + +on property:sys.usb.config=gs1gs3 + setprop sys.usb.config acm_gs1gs3 +on property:sys.usb.config=mtp,gs1gs3 + setprop sys.usb.config acm_gs1gs3 +on property:sys.usb.config=via_bypass,gs1gs3 + setprop sys.usb.config acm_gs1gs3 +on property:sys.usb.config=rndis,gs1gs3 + setprop sys.usb.config acm_gs1gs3 +on property:sys.usb.config=acm_gs1gs3 + setprop vendor.usb.acm_port0 1 + setprop vendor.usb.acm_port1 3 + setprop vendor.usb.acm_cnt 2 + setprop vendor.usb.acm_enable 1 + setprop sys.usb.config none + setprop sys.usb.config ${sys.usb.state} + setprop vendor.usb.acm_idx "2,4" + +# For ATM (Android Test Mode) +on property:vendor.usb.clear=1 && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/UDC "none" + write /config/usb_gadget/g1/bDeviceClass 0 + write /config/usb_gadget/g1/bDeviceSubClass 0 + write /config/usb_gadget/g1/bDeviceProtocol 0 + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rmdir /config/usb_gadget/g1/functions/mtk_rndis.gs4 + write /sys/devices/platform/soc/mt_usb/saving 0 + setprop vendor.usb.clear 2 + +# has permission issue when read from ${sys.usb.ffs.ready} +on property:sys.usb.ffs.ready=0 + setprop vendor.usb.ffs.ready 0 +on property:sys.usb.ffs.ready=1 + setprop vendor.usb.ffs.ready 1 + +on property:sys.usb.config=atm_gs0 && property:sys.usb.configfs=1 + stop adbd + setprop vendor.usb.ffs.ready 0 + setprop vendor.usb.clear 1 + +on property:vendor.usb.ffs.ready=0 && property:sys.usb.config=atm_gs0 && \ +property:vendor.usb.clear=2 && property:sys.usb.configfs=1 + start adbd + +on property:vendor.usb.ffs.ready=1 && property:sys.usb.config=atm_gs0 && \ +property:vendor.usb.clear=2 && property:sys.usb.configfs=1 + setprop vendor.usb.acm_port0 0 + setprop vendor.usb.acm_port1 "" + setprop vendor.usb.acm_cnt 1 + setprop vendor.usb.acm_enable 1 + write /sys/devices/platform/soc/mt_usb/saving 1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "atm_gs0" + write /config/usb_gadget/g1/idProduct 0x200A + symlink /config/usb_gadget/g1/functions/ffs.mtp /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/acm.gs0 /config/usb_gadget/g1/configs/b.1/f3 + write /config/usb_gadget/g1/UDC ${vendor.usb.controller} + #setprop sys.usb.state ${sys.usb.config} + setprop vendor.usb.pid 0x200A + #setprop vendor.usb.clear 0 + setprop vendor.usb.acm_idx "1" + +on property:sys.usb.config=atm_gs0gs3 && property:sys.usb.configfs=1 + stop adbd + setprop vendor.usb.ffs.ready 0 + setprop vendor.usb.clear 1 + +on property:vendor.usb.ffs.ready=0 && property:sys.usb.config=atm_gs0gs3 && \ +property:vendor.usb.clear=2 && property:sys.usb.configfs=1 + start adbd + +on property:vendor.usb.ffs.ready=1 && property:sys.usb.config=atm_gs0gs3 && \ +property:vendor.usb.clear=2 && property:sys.usb.configfs=1 + setprop vendor.usb.acm_port0 0 + setprop vendor.usb.acm_port1 3 + setprop vendor.usb.acm_cnt 2 + setprop vendor.usb.acm_enable 1 + write /sys/devices/platform/soc/mt_usb/saving 1 + write /config/usb_gadget/g1/idProduct 0x2026 + symlink /config/usb_gadget/g1/functions/ffs.mtp /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/acm.gs0 /config/usb_gadget/g1/configs/b.1/f3 + symlink /config/usb_gadget/g1/functions/acm.gs3 /config/usb_gadget/g1/configs/b.1/f4 + write /config/usb_gadget/g1/UDC ${vendor.usb.controller} + #setprop sys.usb.state ${sys.usb.config} + setprop vendor.usb.pid 0x2026 + #setprop vendor.usb.clear 0 + setprop vendor.usb.acm_idx "1,4" + +### CHARGING ### +on property:sys.usb.config=cdp && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "mtp" + write /config/usb_gadget/g1/idProduct 0x2008 + write /config/usb_gadget/g1/os_desc/use 1 + symlink /config/usb_gadget/g1/functions/ffs.mtp /config/usb_gadget/g1/configs/b.1/f1 + write /config/usb_gadget/g1/UDC ${vendor.usb.controller} + setprop sys.usb.state ${sys.usb.config} + setprop vendor.usb.pid 0x2008 + +on property:sys.usb.config=charging_yes + setprop vendor.usb.charging yes + setprop sys.usb.config none + setprop sys.usb.config ${sys.usb.state} + +on property:sys.usb.config=charging_no + setprop sys.usb.config none + setprop sys.usb.config ${sys.usb.state} + setprop vendor.usb.charging no + +on property:vendor.usb.charging=yes + write /sys/class/udc/musb-hdrc/device/cmode 0 +on property:vendor.usb.charging=no + write /sys/class/udc/musb-hdrc/device/cmode 1 + +on property:vendor.usb.bicr=yes + write /sys/class/android_usb/android0/f_mass_storage/bicr 1 + write /sys/class/android_usb/android0/f_mass_storage/lun/file "/dev/block/loop0" +on property:vendor.usb.bicr=no + write /sys/class/android_usb/android0/f_mass_storage/bicr 0 + write /sys/class/android_usb/android0/f_mass_storage/lun/file "off" + +on property:vendor.usb.port.mode=usb + write /sys/devices/platform/soc/mt_usb/portmode 0 +on property:vendor.usb.port.mode=uart + write /sys/devices/platform/soc/mt_usb/portmode 1 +on property:vendor.em.usb.set=term_sel + write /proc/mtk_usb/usb-phy0/u2_phy/term_sel ${vendor.em.usb.value} +on property:vendor.em.usb.set=vrt_sel + write /proc/mtk_usb/usb-phy0/u2_phy/vrt_sel ${vendor.em.usb.value} +on property:vendor.em.usb.set=phy_rev6 + write /proc/mtk_usb/usb-phy0/u2_phy/phy_rev6 ${vendor.em.usb.value} +on property:vendor.em.usb.set=discth + write /proc/mtk_usb/usb-phy0/u2_phy/discth ${vendor.em.usb.value} + +on property:vendor.em.usb.bypass.enable=0 + write /sys/class/usb_rawbulk/gps/enable 1 +on property:vendor.em.usb.bypass.enable=1 + write /sys/class/usb_rawbulk/pcv/enable 1 +on property:vendor.em.usb.bypass.enable=2 + write /sys/class/usb_rawbulk/atc/enable 1 +on property:vendor.em.usb.bypass.enable=3 + write /sys/class/usb_rawbulk/ets/enable 1 +on property:vendor.em.usb.bypass.enable=4 + write /sys/class/usb_rawbulk/data/enable 1 +on property:vendor.em.usb.bypass.disable=0 + write /sys/class/usb_rawbulk/gps/enable 0 +on property:vendor.em.usb.bypass.disable=1 + write /sys/class/usb_rawbulk/pcv/enable 0 +on property:vendor.em.usb.bypass.disable=2 + write /sys/class/usb_rawbulk/atc/enable 0 +on property:vendor.em.usb.bypass.disable=3 + write /sys/class/usb_rawbulk/ets/enable 0 +on property:vendor.em.usb.bypass.disable=4 + write /sys/class/usb_rawbulk/data/enable 0 + +### vendor process start ### +on property:vendor.usb.config=* + setprop sys.usb.config ${vendor.usb.config} +### vendor process end ### + +### test command start ### +on property:vendor.usb.test=* + setprop sys.usb.config none + setprop sys.usb.config ${vendor.usb.test} +### test command end ### + +on property:vendor.usb.printk=* + write /proc/sys/kernel/printk ${vendor.usb.printk} + +on property:persist.vendor.usb.printk=* + setprop vendor.usb.printk ${persist.vendor.usb.printk} + +on property:vendor.usb.speed.mode=u3 + write /sys/class/udc/${vendor.usb.controller}/device/max_speed super-speed + write /sys/class/udc/${vendor.usb.controller}/device/mode 0 + write /sys/class/udc/${vendor.usb.controller}/device/mode 1 + +on property:vendor.usb.speed.mode=u2 + write /sys/class/udc/${vendor.usb.controller}/device/max_speed high-speed + write /sys/class/udc/${vendor.usb.controller}/device/mode 0 + write /sys/class/udc/${vendor.usb.controller}/device/mode 1 + +on property:persist.vendor.usb.speed.mode=u3 + write /sys/class/udc/${vendor.usb.controller}/device/max_speed super-speed + write /sys/class/udc/${vendor.usb.controller}/device/mode 0 + write /sys/class/udc/${vendor.usb.controller}/device/mode 1 + +on property:persist.vendor.usb.speed.mode=u2 + write /sys/class/udc/${vendor.usb.controller}/device/max_speed high-speed + write /sys/class/udc/${vendor.usb.controller}/device/mode 0 + write /sys/class/udc/${vendor.usb.controller}/device/mode 1 + +on property:vendor.usb.sib_enable=1 + write /proc/mtk_usb/usb-phy0/u3_phy/sib 1 + +on property:vendor.usb.sib_enable=0 + write /proc/mtk_usb/usb-phy0/u3_phy/sib 0 + +on property:vendor.usb.testmode=0 + write /proc/mtk_usb/xhci0/testmode "0" +on property:vendor.usb.testmode=1 + write /proc/mtk_usb/xhci0/testmode "test SE0 NAK" +on property:vendor.usb.testmode=2 + write /proc/mtk_usb/xhci0/testmode "test J" +on property:vendor.usb.testmode=3 + write /proc/mtk_usb/xhci0/testmode "test K" +on property:vendor.usb.testmode=4 + write /proc/mtk_usb/xhci0/testmode "test packet" + +on property:vendor.usb.device.wakeup=* + write ${vendor.usb.device.wakeup} "enabled" + +### PLATFORM VARIANT, cat $rc_file | grep write | sort | grep -vE "android0|usb20_phy" | awk '{print $2}' | uniq ### diff --git a/rootdir/etc/init/hw/init.mtkgki.rc b/rootdir/etc/init/hw/init.mtkgki.rc new file mode 100644 index 0000000..d0e3094 --- /dev/null +++ b/rootdir/etc/init/hw/init.mtkgki.rc @@ -0,0 +1,35 @@ +service insmod_sh /vendor/bin/init.insmod.sh /vendor/etc/init.insmod.${ro.hardware}.cfg + class main + user root + group root system + disabled + oneshot + +on early-init + setprop vendor.all.modules.ready 0 + write /proc/bootprof "modprobe: Load_Module_START" + start insmod_sh + +#SPD: add kswapd0 bind 0~5 core for XLBSSB-2493 by heyuan.li 20230217 start +service tasksetStart_sh /vendor/bin/init.tasksetStart.sh + class main + user root + group root system + disabled + oneshot + +on property:persist.vendor.powerhal.kswapd0_bind_enable=1 + start tasksetStart_sh + setprop persist.vendor.powerhal.kswapd0_bind_enable -1 + +service tasksetEnd_sh /vendor/bin/init.tasksetEnd.sh + class main + user root + group root system + disabled + oneshot + +on property:persist.vendor.powerhal.kswapd0_bind_enable=0 + start tasksetEnd_sh + setprop persist.vendor.powerhal.kswapd0_bind_enable -1 +#SPD: add kswapd0 bind 0~5 core for XLBSSB-2493 by heyuan.li 20230217 end diff --git a/rootdir/etc/init/hw/init.project.rc b/rootdir/etc/init/hw/init.project.rc new file mode 100644 index 0000000..5f21fcb --- /dev/null +++ b/rootdir/etc/init/hw/init.project.rc @@ -0,0 +1,107 @@ +import /vendor/etc/init/hw/init.mtkgki.rc + +# MTK project .rc configure + +on init + mkdir /mnt/media_rw/usbotg 0700 media_rw media_rw + mkdir /storage/usbotg 0700 root root + +on post-fs-data + +#Camera + chmod 0660 /dev/MAINAF + chown system camera /dev/MAINAF + + chmod 0660 /dev/MAINAF2 + chown system camera /dev/MAINAF2 + + chmod 0660 /dev/SUBAF + chown system camera /dev/SUBAF + + chmod 0660 /dev/GAF001AF + chown system camera /dev/GAF001AF + + chmod 0660 /dev/DW9714AF + chown system camera /dev/DW9714AF + + chmod 0660 /dev/LC898212AF + chown system camera /dev/LC898212AF + + chmod 0660 /dev/BU64745GWZAF + chown system camera /dev/BU64745GWZAF + +#SMB + chown system system /proc/smb/ScreenComm + chmod 0660 /proc/smb/ScreenComm + + chmod 0660 /dev/spm + chown system system /dev/spm + + # BSP:modify for LRA XLWYEHLYEL-1 by hongwu.zhan 20221104 start + chown system system /sys/class/leds/vibrator_single/activate + chown system system /sys/class/leds/vibrator_single/activate_mode + chown system system /sys/class/leds/vibrator_single/awrw + chown system system /sys/class/leds/vibrator_single/brightness + chown system system /sys/class/leds/vibrator_single/bullet_nr + chown system system /sys/class/leds/vibrator_single/cali + chown system system /sys/class/leds/vibrator_single/cont + chown system system /sys/class/leds/vibrator_single/cont_brk_time + chown system system /sys/class/leds/vibrator_single/cont_drv_lvl + chown system system /sys/class/leds/vibrator_single/cont_drv_time + chown system system /sys/class/leds/vibrator_single/cont_wait_num + chown system system /sys/class/leds/vibrator_single/duration + chown system system /sys/class/leds/vibrator_single/f0 + chown system system /sys/class/leds/vibrator_single/f0_save + chown system system /sys/class/leds/vibrator_single/gain + chown system system /sys/class/leds/vibrator_single/gun_type + chown system system /sys/class/leds/vibrator_single/haptic_audio + chown system system /sys/class/leds/vibrator_single/haptic_audio_time + chown system system /sys/class/leds/vibrator_single/index + chown system system /sys/class/leds/vibrator_single/loop + chown system system /sys/class/leds/vibrator_single/lra_resistance + chown system system /sys/class/leds/vibrator_single/max_brightness + chown system system /sys/class/leds/vibrator_single/osc_cali + chown system system /sys/class/leds/vibrator_single/osc_save + chown system system /sys/class/leds/vibrator_single/prctmode + chown system system /sys/class/leds/vibrator_single/ram_num + chown system system /sys/class/leds/vibrator_single/ram_update + chown system system /sys/class/leds/vibrator_single/ram_vbat_comp + chown system system /sys/class/leds/vibrator_single/reg + chown system system /sys/class/leds/vibrator_single/rtp + chown system system /sys/class/leds/vibrator_single/seq + chown system system /sys/class/leds/vibrator_single/state + chown system system /sys/class/leds/vibrator_single/trig + chown system system /sys/class/leds/vibrator_single/trigger + chown system system /sys/class/leds/vibrator_single/uevent + chown system system /sys/class/leds/vibrator_single/vbat_monitor + # BSP:modify for LRA XLWYEHLYEL-1 by hongwu.zhan 20221104 end + +on init + # Refer to http://source.android.com/devices/tech/storage/index.html + # It said, "Starting in Android 4.4, multiple external storage devices are surfaced to developers through + # Context.getExternalFilesDirs(), Context.getExternalCacheDirs(), and Context.getObbDirs(). + # External storage devices surfaced through these APIs must be a semi-permanent part of the device (such as an SD card slot in a battery compartment). + # Developers expect data stored in these locations to be available over long periods of time." + # Therefore, if the target doesn't support sd hot-plugging (Ex: the SD card slot in a battery compartment), we need to export SECONDARY_STORAGE in 'boot' section + # + # export SECONDARY_STORAGE /storage/sdcard1 + +service fuse_usbotg /system/bin/sdcard -u 1023 -g 1023 -w 1023 -d /mnt/media_rw/usbotg /storage/usbotg + class late_start + disabled + +# start mmstat +on property:sys.boot_completed=1 + mkdir /sys/kernel/tracing/instances/mmstat 711 + write /sys/kernel/tracing/instances/mmstat/tracing_on 0 + write /sys/kernel/tracing/instances/mmstat/buffer_size_kb 16 + write /sys/kernel/tracing/instances/mmstat/events/mmstat/enable 1 + write /sys/kernel/tracing/instances/mmstat/tracing_on 1 + +#SPD: modify for swap zram write-back by shuang.zhou at 20201020 start +on boot + swapon_all /vendor/etc/memfusion2/fstab.enableswap + +on property:sys.boot_completed=1 + write /sys/module/memfusion/parameters/force_udelay 5000 +#SPD: modify for swap zram write-back by shuang.zhou at 20201020 end diff --git a/rootdir/etc/init/hw/init.sensor_2_0.rc b/rootdir/etc/init/hw/init.sensor_2_0.rc new file mode 100644 index 0000000..0c50656 --- /dev/null +++ b/rootdir/etc/init/hw/init.sensor_2_0.rc @@ -0,0 +1,7 @@ +# MTK platform .rc configure +on post-fs-data + # calibration + mkdir /data/vendor/sensor 0774 system system + # Sensor + chmod 0660 /dev/hf_manager + chown system system /dev/hf_manager diff --git a/rootdir/etc/init/hw/init_connectivity.rc b/rootdir/etc/init/hw/init_connectivity.rc new file mode 100644 index 0000000..5786763 --- /dev/null +++ b/rootdir/etc/init/hw/init_connectivity.rc @@ -0,0 +1,46 @@ +# MTK connectivity .rc configure + +on post-fs-data + mkdir /data/vendor/stp_dump 0755 system system + mkdir /data/vendor/connsyslog 0755 system system + +on boot + +# WMT +service wmt_loader /vendor/bin/wmt_loader + class early_hal + user system + group system + oneshot + +service wmt_launcher /vendor/bin/wmt_launcher -p /vendor/firmware/ -o 1 + class early_hal + user system + group system + +on property:ro.build.type=eng + write /sys/kernel/debug/tracing/tracing_on 1 + +on property:persist.vendor.connsys.coredump.mode=1 + start stp_dump + +on property:persist.vendor.connsys.coredump.mode=2 + start stp_dump + +on property:persist.vendor.connsys.coredump.mode=0 + stop stp_dump + +on property:vendor.connsys.driver.ready=yes && property:persist.vendor.connsys.coredump.mode=* + write /proc/driver/wmt_user_proc "0x1 ${persist.vendor.connsys.coredump.mode}" + +on property:vendor.connsys.driver.ready=yes && property:debug.vendor.connsys.suspend.alarm=* + write /proc/driver/wmt_user_proc "0x2 ${debug.vendor.connsys.suspend.alarm}" + +on property:persist.vendor.em.dy.debug=1 + setprop persist.vendor.connsys.coredump.mode 0 + +service stp_dump /vendor/bin/stp_dump3 + user system + group system sdcard_rw misc + class core + disabled diff --git a/rootdir/etc/init/hw/meta_init.connectivity.common.rc b/rootdir/etc/init/hw/meta_init.connectivity.common.rc new file mode 100644 index 0000000..3bb81ee --- /dev/null +++ b/rootdir/etc/init/hw/meta_init.connectivity.common.rc @@ -0,0 +1,82 @@ +#INTERNAL_START +#NFBD:add for nfc by yunfei.wu 20211218 +import /vendor/etc/init/hw/init.stnfc.rc +on post-fs-data +# +# Connectivity related modules and character device nodes (Begin) +# + +#/dev/ttyMT2 for Connectivity BT/FM/GPS usage + chmod 0660 /dev/ttyMT2 + chown system system /dev/ttyMT2 + +# GPS + mkdir /data/vendor/gps 0770 gps system + mkdir /data/vendor/log 0770 gps system + mkdir /data/vendor/log/gps 0770 gps system + +# GPS EMI + chmod 666 /dev/gps_emi + +# WiFi + mkdir /data/misc/wifi 0770 wifi wifi + mkdir /data/misc/wifi/sockets 0770 wifi wifi + mkdir /data/misc/wpa_supplicant 0770 wifi wifi + +# +# Connectivity related device nodes & configuration (end) +# + + +on boot + +# +# Connectivity related services (Begin) +# + +# GPS +service mnld /vendor/bin/mnld 1Hz=y meta log_ctrl + class main + user gps + group gps inet misc sdcard_rw sdcard_r media_rw system radio wakelock + socket mnld stream 660 gps system + +#service BGW /vendor/bin/BGW +# user system +# group gps system radio +# class main + +# +# Connectivity related services (End) +# + +# +# Connectivity related kernel objects (Begin) +# + +# load connfem driver +on boot + insmod /vendor/lib/modules/connfem.ko + +# load bt_drv +on property:vendor.connsys.driver.ready=yes + insmod /vendor/lib/modules/bt_drv_${ro.vendor.bt.platform}.ko + +# load wifi chrdev driver and wlan driver after wmt_loader finish +on property:vendor.connsys.driver.ready=yes + insmod /vendor/lib/modules/${ro.vendor.wlan.chrdev}.ko + insmod /vendor/lib/modules/wlan_drv_${ro.vendor.wlan.gen}.ko + +# load fmradio_drv +on property:vendor.connsys.driver.ready=yes + insmod /vendor/lib/modules/fmradio_drv_${ro.vendor.fm.platform}.ko + +# load gps_drv +on property:vendor.connsys.driver.ready=yes + insmod /vendor/lib/modules/${ro.vendor.gps.chrdev}.ko + +# +# Connectivity related kernel objects (End) +# + +#INTERNAL_END diff --git a/rootdir/etc/init/hw/meta_init.connectivity.rc b/rootdir/etc/init/hw/meta_init.connectivity.rc new file mode 100644 index 0000000..b5d7c0a --- /dev/null +++ b/rootdir/etc/init/hw/meta_init.connectivity.rc @@ -0,0 +1,37 @@ +import /vendor/etc/init/hw/meta_init.connectivity.common.rc + +#INTERNAL_START + +on boot + +# +# Connectivity related services (Begin) +# + +# WMT +service wmt_loader /vendor/bin/wmt_loader + user system + group system + oneshot + +service wmt_launcher /vendor/bin/wmt_launcher -p /vendor/firmware/ + user system + group system + +# +# Connectivity related services (End) +# + +# +# Connectivity related kernel objects (Begin) +# + +# load wmt_drv +on boot + insmod /vendor/lib/modules/wmt_drv.ko + +# +# Connectivity related kernel objects (End) +# + +#INTERNAL_END diff --git a/rootdir/etc/init/hw/meta_init.modem.rc b/rootdir/etc/init/hw/meta_init.modem.rc new file mode 100644 index 0000000..55f1422 --- /dev/null +++ b/rootdir/etc/init/hw/meta_init.modem.rc @@ -0,0 +1,44 @@ +# Copyright (C) 2012 The Android Open Source Project +# +# IMPORTANT: Do not create world writable files or directories. +# This is a common source of Android security bugs. +# + +on post-fs-data + + write /proc/bootprof "post-fs-data: on meta modem start" + + # Modem related device nodes + mkdir /mnt/vendor/nvdata/md 0770 root system + mkdir /mnt/vendor/nvdata/md3 0770 root system + mkdir /data/md3 0770 root system + +# Build-in Modified - S +# insmod /vendor/lib/modules/ccci_plat.ko +# insmod /vendor/lib/modules/ccci.ko +# Build-in Modified - E + chown radio radio /sys/kernel/ccci/boot + +#SeLinux + mkdir /data/ccci_cfg 0770 system radio + restorecon /data/ccci_cfg + restorecon_recursive /mnt/vendor/protect_f + restorecon_recursive /mnt/vendor/protect_s + + # Encrypt phone function + setprop vold.post_fs_data_done 1 + +service permission_check /vendor/bin/permission_check + user root + group system radio + oneshot + +service ccci_mdinit /vendor/bin/ccci_mdinit 0 + user system + group radio system + oneshot + +service ccci_rpcd /vendor/bin/ccci_rpcd 0 + user radio + group radio system + oneshot diff --git a/rootdir/etc/init/hw/meta_init.project.rc b/rootdir/etc/init/hw/meta_init.project.rc new file mode 100644 index 0000000..46e4a9d --- /dev/null +++ b/rootdir/etc/init/hw/meta_init.project.rc @@ -0,0 +1,15 @@ +import /vendor/etc/init/hw/init.mtkgki.rc + +#INTERNAL_START +on post-fs + + chmod 0660 /dev/spm + chown system system /dev/spm + + +service spm_script /vendor/bin/spm_loader + user system + group system + oneshot +#INTERNAL_END + diff --git a/rootdir/etc/init/hw/meta_init.rc b/rootdir/etc/init/hw/meta_init.rc new file mode 100644 index 0000000..cd4deec --- /dev/null +++ b/rootdir/etc/init/hw/meta_init.rc @@ -0,0 +1,422 @@ +# Copyright (C) 2012 The Android Open Source Project +# +# IMPORTANT: Do not create world writable files or directories. +# This is a common source of Android security bugs. +# + +# I am S vendor meta_init.rc + +import /vendor/etc/init/hw/init.aee.rc +import /vendor/etc/init/trustonic.rc +import ${ro.vendor.rc}meta_init.connectivity.rc +import /vendor/etc/init/hw/meta_init.project.rc +import /vendor/etc/init/microtrust.rc +import /vendor/etc/init/android.hardware.boot@1.2-service.rc +import /vendor/etc/init/android.hardware.boot@1.2-service-lazy.rc +import /vendor/etc/init/android.hardware.health@2.1-service.rc + +#import ${ro.vendor.rc}multi_init.rc +#phase out multi_init.rc, move related vendor rc to here. +#start +import /vendor/etc/init/aee_aedv64_v2.rc +import /vendor/etc/init/storageproxyd.rc +import /vendor/etc/init/android.hardware.keymaster@3.0-service.rc +import /vendor/etc/init/android.hardware.keymaster@3.0-service.trustonic.rc +import /vendor/etc/init/android.hardware.keymaster@4.0-service.rc +import /vendor/etc/init/android.hardware.keymaster@4.0-service.trustonic.rc +import /vendor/etc/init/android.hardware.keymaster@4.0-service.beanpod.rc +import /vendor/etc/init/android.hardware.keymaster@4.0-service.beanpod.lite.rc +import /vendor/etc/init/android.hardware.keymaster@4.0-service.trustkernel.rc +import /vendor/etc/init/android.hardware.keymaster@4.0-service.mtee.rc +import /vendor/etc/init/android.hardware.keymaster@4.1-service.rc +import /vendor/etc/init/android.hardware.keymaster@4.1-service.trustonic.rc +import /vendor/etc/init/android.hardware.keymaster@4.1-service.beanpod.rc +import /vendor/etc/init/android.hardware.keymaster@4.1-service.beanpod.lite.rc +import /vendor/etc/init/android.hardware.keymaster@4.1-service.trustkernel.rc +import /vendor/etc/init/android.hardware.security.keymint-service.rc +#import /vendor/etc/init/vendor.mediatek.hardware.keyinstall@1.0-service.rc +import /vendor/etc/init/vendor.mediatek.hardware.keymanage@1.0-service.rc +import /vendor/etc/init/android.hardware.audio.service.mediatek.rc +import /vendor/etc/init/vendor.mediatek.hardware.keymaster_attestation@1.1-service.rc +import /vendor/etc/init/android.hardware.nfc@1.2-service-st.rc +import /vendor/etc/init/tee.rc +import /vendor/etc/init/vendor.mediatek.hardware.nvram@1.1-sevice.rc +import /vendor/etc/init/vendor.mediatek.hardware.nvram@1.1-sevice-lazy.rc +import /vendor/etc/init/android.hardware.light@2.0-service-mediatek.rc +import /vendor/etc/init/android.hardware.light@2.0-service-mediatek-lazy.rc +import /vendor/etc/init/lights-mtk-default.rc +import /vendor/etc/init/lights-mtk-lazy.rc +import /vendor/etc/init/merged_hal_service.rc +import /vendor/etc/init/spm_script.rc +import /vendor/etc/init/nvram_daemon.rc +import /vendor/etc/init/microtrust.bp_kmsetkey_ca.rc +import /vendor/etc/init/vendor.microtrust.hardware.thh@2.0-service.rc +import /vendor/etc/init/microtrust.init_thh.rc +#BSP:add check attestkey XLQLBH-10 by wang.qin 20220412 start +import /vendor/etc/init/trustonic.mc_kmsetkey_ca.rc +#BSP:add check attestkey XLQLBH-10 by wang.qin 20220412 end +#BSP:add meta features XLQLBH-14 by wang.qin 20220412 start +import /vendor/etc/init/vendor.mediatek.hardware.tranHwInfo@1.0-service.rc +#BSP:add meta features XLQLBH-14 by wang.qin 20220412 end +#end + +#Make sure meta_init.modem.rc is the last rc file. +import ${ro.vendor.rc}meta_init.modem.rc + + +on early-init + write /proc/bootprof "INIT:early-init" + # Set init and its forked children's oom_adj. + write /proc/1/oom_score_adj -1000 + +#INTERNAL_START + mount debugfs debugfs /sys/kernel/debug + chmod 0755 /sys/kernel/debug +#INTERNAL_END + + # initialize vendor.all.modules.ready to 1 here to prevent NOT GKI project blocked + setprop vendor.all.modules.ready 1 + + # force on usb + # write /sys/module/musb_hdrc/parameters/musb_force_on 1 + # write /sys/class/udc/musb-hdrc/device/cmode 3 + +on init + write /proc/bootprof "INIT:init" + write /proc/bootprof "INIT: on init start" + + #BSP:add meta features XLQLBH-14 by wang.qin 20220412 start + chmod 0444 /proc/cmdline + #BSP:add meta features XLQLBH-14 by wang.qin 20220412 end + # Backward compatibility. + symlink /system/bin /bin + symlink /system/etc /etc + + # Backward compatibility. + symlink /sys/kernel/debug /d + + # Link /vendor to /system/vendor for devices without a vendor partition. + symlink /system/vendor /vendor + +# Temp Backward compatibility + symlink /dev/block/by-name/boot /dev/bootimg + symlink /dev/block/by-name/recovery /dev/recovery + symlink /dev/block/by-name/secro /dev/sec_ro + symlink /dev/block/by-name/kb /dev/kb + symlink /dev/block/by-name/dkb /dev/dkb + symlink /dev/block/by-name/seccfg /dev/seccfg + symlink /dev/block/by-name/proinfo /dev/pro_info + symlink /dev/block/by-name/nvram /dev/nvram + symlink /dev/block/by-name/para /dev/misc + symlink /dev/block/by-name/logo /dev/logo + + # Support legacy paths + symlink /sdcard /mnt/sdcard + + +#INTERNAL_START + symlink /sdcard /mnt/sdcard + + mkdir /mnt/cd-rom 0000 system system +#INTERNAL_END + + start hidl_memory + #BSP:add meta features XLQLBH-14 by wang.qin 20220412 start + start vendor.tranhwinfo-1-0 + #BSP:add meta features XLQLBH-14 by wang.qin 20220412 end + + +# Load properties from /system/ + /factory after fs mount. +on load_system_props_action + load_system_props + + + # avoid no log in meta mode due to logd-reinit + # stop keyinstall-1-0 + # start keyinstall-1-0 + + +on fs + ## USB configfs + mkdir /dev/usb-ffs 0770 shell shell + mkdir /dev/usb-ffs/adb 0770 shell shell + mkdir /config/usb_gadget/g1 0770 shell shell + write /config/usb_gadget/g1/idVendor 0x0E8D + write /config/usb_gadget/g1/bcdDevice 0xFFFF + write /config/usb_gadget/g1/bcdUSB 0x0200 + mkdir /config/usb_gadget/g1/strings/0x409 0770 + write /config/usb_gadget/g1/strings/0x409/manufacturer "Android" + write /config/usb_gadget/g1/strings/0x409/product "Android" + write /config/usb_gadget/g1/bDeviceClass 0 + write /config/usb_gadget/g1/bDeviceSubClass 0 + write /config/usb_gadget/g1/bDeviceProtocol 0 + mkdir /config/usb_gadget/g1/functions/mass_storage.usb0 + mkdir /config/usb_gadget/g1/functions/ffs.adb + mkdir /config/usb_gadget/g1/functions/acm.gs0 + mkdir /config/usb_gadget/g1/functions/acm.gs1 + mkdir /config/usb_gadget/g1/functions/acm.gs2 + mkdir /config/usb_gadget/g1/functions/acm.gs3 + mkdir /config/usb_gadget/g1/configs/b.1 0770 shell shell + mkdir /config/usb_gadget/g1/configs/b.1/strings/0x409 0770 shell shell + write /config/usb_gadget/g1/configs/b.1/MaxPower 500 + symlink /config/usb_gadget/g1/configs/b.1 /config/usb_gadget/g1/os_desc/b.1 + setprop vendor.usb.feature 0 + +#INTERNAL_START + write /proc/bootprof "INIT:Mount_START" + + start vendor.boot-hal-1-2 + mount_all --early + write /proc/bootprof "INIT:Mount_END" +#INTERNAL_END + +on post-fs + # start keyinstall-1-0 + start vendor.light-default + start merged_hal_service + start health-hal-2-1 + + # Support legacy paths + symlink /sdcard /storage/sdcard0 + + +#INTERNAL_START + chown system system /mnt/vendor/protect_f + chmod 0770 /mnt/vendor/protect_f + + chown system system /mnt/vendor/protect_s + chmod 0770 /mnt/vendor/protect_s + + chown system system /mnt/vendor/nvcfg + chmod 0771 /mnt/vendor/nvcfg + restorecon_recursive /mnt/vendor/nvcfg + + chown root system /mnt/vendor/nvdata + chmod 0771 /mnt/vendor/nvdata + mkdir /mnt/vendor/nvdata/media 0771 media audio + restorecon_recursive /mnt/vendor/nvdata + +//STD:add by shentao.yang for init tranfs in meta start + restorecon_recursive /tranfs + write /proc/bootprof "INIT:tranfs" + mkdir /tranfs/ffu 0700 system shell + write /proc/bootprof "MKDIR: tranfs/ffu" + chmod 0777 /tranfs/ffu + mkdir /tranfs/MemTestConfig 0700 system shell + write /proc/bootprof "MKDIR: tranfs/MemTestConfig" + chmod 0777 /tranfs/MemTestConfig +//STD:add by shentao.yang for init tranfs in meta end + +#INTERNAL_END + +on late-fs + wait_for_prop hwservicemanager.ready "true" + start keystore2 + start vendor.keymaster-3-0 + start vendor.keymaster-3-0-trustonic + start vendor.keymaster-4-0 + start vendor.keymaster-4-0-trustonic + start vendor.keymaster-4-0-beanpod + start vendor.keymaster-4-1 + start vendor.keymaster-4-1-trustonic + start vendor.keymaster-4-1-beanpod + start vendor.keymint-default + start vendor.keymint-trustonic + start vendor.keymint-beanpod + start keymaster_attestation-1-1 + exec_start wait_for_keymaster + mount_all --late + +on post-fs-data + write /proc/bootprof "INIT:post-fs-data" + wait_for_prop vendor.all.modules.ready 1 + write /proc/bootprof "modprobe: Load_Module_DONE" + + #Thermal + mkdir /data/.tp/ 0775 system system + +#INTERNAL_START + # WiFi + mkdir /data/misc/wifi 0770 system wifi + mkdir /data/misc/wifi/sockets 0770 system wifi + mkdir /data/misc/dhcp 0770 dhcp dhcp + chown dhcp dhcp /data/misc/dhcp + #give system access to rfkill device node + chmod 0660 /dev/rfkill + + # RTC + mkdir /data/misc/rtc 0770 system system + #BSP:add meta features XLQLBH-14 by wang.qin 20220412 start + chmod 0666 /dev/rtc0 + #BSP:add meta features XLQLBH-14 by wang.qin 20220412 end + +#BSP:add enable rtc_test CGCGJHRS-8106 by zheyi.bai 20220405 start + chmod 0666 /dev/rtc0 +#BSP:add enable rtc_test CGCGJHRS-8106 by zheyi.bai 20220405 end + + # Android SEC related device nodes + chmod 0660 /dev/sec + chown root system /dev/sec + + #change partition permission + exec /vendor/etc/partition_permission.sh + + chmod 0666 /dev/exm0 +#INTERNAL_END + +on boot + # For backlight + chmod 0664 /sys/class/leds/lcd-backlight/brightness + chown system system /sys/class/leds/lcd-backlight/brightness + write /sys/class/leds/vibrator/trigger "transient" + + +#INTERNAL_START + class_start default +#INTERNAL_END + +#USB configfs + mount functionfs adb /dev/usb-ffs/adb uid=2000,gid=2000 + chown system radio /dev/ttyGS3 + chmod 0660 /dev/ttyGS3 + setprop sys.usb.configfs 1 + setprop sys.usb.ffs.aio_compat 0 + + +# One shot invocation to encrypt unencrypted volumes +# mtk modification: +# To speed up the booting in meta/factory mode, we don't encrypt the device. +# And then handle it as 'unencrypted' state. +on encrypt + mount ext4 /dev/block/by-name/userdata /data noatime nosuid nodev noauto_da_alloc discard wait + setprop vendor.crypto.fake_encrypt 1 + setprop vold.post_fs_data_done 0 + trigger post-fs-data +on property:vendor.crypto.fake_encrypt=1 && property:vold.post_fs_data_done=1 + trigger load_persist_props_action + # setprop ro.crypto.state unencrypted + setprop vendor.soter.teei.crypto.state unencrypted + exec_start update_verifier + class_start main + class_start late_start + start mount_all_storages + + +#Log too much setting +on property:ro.vendor.mtklog_internal=1 + setprop vendor.logmuch.value 10000 + + +#INTERNAL_START + +service thermal_manager /vendor/bin/thermal_manager + user root + group system + oneshot + +service loghidlvendorservice /vendor/bin/loghidlvendorservice + class main + user shell + group system shell radio + +service meta_tst /vendor/bin/meta_tst + user root + group radio system wifi audio bluetooth media gps + socket meta-atci stream 660 radio system + +service factory_no_image /vendor/bin/factory + user root + group radio system wifi media gps audio bluetooth wakelock nfc +#BSP:add enable rtc_test CGCGJHRS-8106 by zheyi.bai 20220405 start + capabilities BLOCK_SUSPEND NET_RAW NET_ADMIN SYS_ADMIN SYS_BOOT SYS_TIME +#BSP:add enable rtc_test CGCGJHRS-8106 by zheyi.bai 20220405 end + socket factory-atci stream 660 radio system + +service atcid-daemon-u /vendor/bin/atcid + interface vendor.mediatek.hardware.atci@1.0::IAtcid default + class hal + class core + socket adb_atci_socket stream 660 radio system + user root + group radio system + oneshot + +service fuelgauged /vendor/bin/fuelgauged + class main + user system + group system + +on property:vendor.mtk.factory.start=1 + stop factory_no_image + start factory_no_image +#META+ADB +on property:ro.boot.usbconfig=0 && property:sys.usb.configfs=1 + write /proc/bootprof "INIT:start adbd" + start adbd + +on property:sys.usb.ffs.ready=1 && property:ro.boot.usbconfig=0 && property:sys.usb.configfs=1 && \ +property:vendor.usb.feature=0 + write /proc/bootprof "INIT:on property:ro.boot.usbconfig=0" + write /config/usb_gadget/g1/UDC "none" + write /config/usb_gadget/g1/strings/0x409/serialnumber ${ro.serialno} + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "adb_acm" + write /config/usb_gadget/g1/idProduct 0x200E + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/acm.gs0 /config/usb_gadget/g1/configs/b.1/f2 + write /config/usb_gadget/g1/UDC "musb-hdrc" + +#META, move this to kernel driver: CONFIG_USB_CONFIGFS_MTK_FASTMETA +on property:ro.boot.usbconfig=1 && property:sys.usb.configfs=1 && property:vendor.usb.feature=0 + write /proc/bootprof "INIT:on property:ro.boot.usbconfig 1" + #write /config/usb_gadget/g1/UDC "none" + #write /config/usb_gadget/g1/strings/0x409/serialnumber "" + #write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "acm" + #write /config/usb_gadget/g1/idProduct 0x2007 + #write /config/usb_gadget/g1/bDeviceClass 02 + #symlink /config/usb_gadget/g1/functions/acm.gs0 /config/usb_gadget/g1/configs/b.1/f1 + #write /config/usb_gadget/g1/UDC "musb-hdrc" + +#META+ELT, move this to kernel driver: CONFIG_USB_CONFIGFS_MTK_FASTMETA +on property:ro.boot.usbconfig=2 && property:sys.usb.configfs=1 + write /proc/bootprof "INIT:on property:ro.boot.usbconfig 2" + setprop vendor.usb.acm_idx 1,4 + #write /config/usb_gadget/g1/UDC "none" + #write /config/usb_gadget/g1/strings/0x409/serialnumber $ro.serialno + #write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "meta_elt" + #write /config/usb_gadget/g1/idProduct 0x202d + #symlink /config/usb_gadget/g1/functions/mass_storage.usb0 /config/usb_gadget/g1/configs/b.1/f1 + #symlink /config/usb_gadget/g1/functions/acm.gs0 /config/usb_gadget/g1/configs/b.1/f2 + #symlink /config/usb_gadget/g1/functions/acm.gs3 /config/usb_gadget/g1/configs/b.1/f3 + #write /config/usb_gadget/g1/UDC "musb-hdrc" + +#META+ELT+ADB +on property:ro.boot.usbconfig=3 && property:sys.usb.configfs=1 + write /proc/bootprof "INIT:start adbd" + start adbd + +on property:sys.usb.ffs.ready=1 && property:ro.boot.usbconfig=3 && property:sys.usb.configfs=1 + write /proc/bootprof "INIT:on property:ro.boot.usbconfig 3" + write /config/usb_gadget/g1/UDC "none" + write /config/usb_gadget/g1/strings/0x409/serialnumber ${ro.serialno} + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "meta_elt_adb" + write /config/usb_gadget/g1/idProduct 0x2040 + write /sys/devices/platform/soc/mt_usb/saving 1 + symlink /config/usb_gadget/g1/functions/mass_storage.usb0 /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/acm.gs0 /config/usb_gadget/g1/configs/b.1/f3 + symlink /config/usb_gadget/g1/functions/acm.gs3 /config/usb_gadget/g1/configs/b.1/f4 + write /config/usb_gadget/g1/UDC "musb-hdrc" + setprop vendor.usb.acm_idx 1,4 + + +# MTK fast charging support +on property:persist.vendor.mediatek.fast_charging.support=* + write /sys/devices/platform/charger/fast_chg_indicator ${persist.vendor.mediatek.fast_charging.support} + +#INTERNAL_END +#BSP:add meta features XLQLBH-14 by wang.qin 20220412 start +#TRANSSION_START +on property:persist.vendor.tran.wipedata=1 + tran_factory_reset +#TRANSSION_END +#BSP:add meta features XLQLBH-14 by wang.qin 20220412 end diff --git a/rootdir/etc/init/hw/meta_init.vendor.rc b/rootdir/etc/init/hw/meta_init.vendor.rc new file mode 100644 index 0000000..c0b14eb --- /dev/null +++ b/rootdir/etc/init/hw/meta_init.vendor.rc @@ -0,0 +1,11 @@ +# Copyright (C) 2012 The Android Open Source Project +# +# IMPORTANT: Do not create world writable files or directories. +# This is a common source of Android security bugs. +# + +import /vendor/etc/init/android.hardware.keymaster@4.1-service.mtee.rc +import /vendor/etc/init/android.hardware.security.keymint-service.trustonic.rc +import /vendor/etc/init/android.hardware.security.keymint-service.beanpod.rc + +import /vendor/etc/init/hw/meta_init.rc \ No newline at end of file diff --git a/rootdir/etc/init/hw/multi_init.rc b/rootdir/etc/init/hw/multi_init.rc new file mode 100644 index 0000000..38e3794 --- /dev/null +++ b/rootdir/etc/init/hw/multi_init.rc @@ -0,0 +1,56 @@ +# import AOSP service related rc in meta mode and factory mode. +# +import /system_ext/etc/init/aee_aed.rc +import /system_ext/etc/init/aee_aed64.rc +import /vendor/etc/init/aee_aedv.rc +import /vendor/etc/init/aee_aedv64.rc +import /system/etc/init/logd.rc +import /system/etc/init/logd_e.rc +import /system/etc/init/logcatd.rc +import /system/etc/init/storagemanagerd.rc +import /system/etc/init/mobile_log_d.rc +import /system/etc/init/android.system.suspend@1.0-service.rc +import /system/etc/init/wait_for_keymaster.rc +import /system/etc/init/keystore2.rc +import /vendor/etc/init/storageproxyd.rc +import /vendor/etc/init/android.hardware.keymaster@3.0-service.rc +import /vendor/etc/init/android.hardware.keymaster@3.0-service.trustonic.rc +import /vendor/etc/init/android.hardware.keymaster@4.0-service.rc +import /vendor/etc/init/android.hardware.keymaster@4.0-service.trustonic.rc +import /vendor/etc/init/android.hardware.keymaster@4.0-service.beanpod.rc +import /vendor/etc/init/android.hardware.keymaster@4.0-service.beanpod.lite.rc +import /vendor/etc/init/android.hardware.keymaster@4.0-service.trustkernel.rc +import /vendor/etc/init/android.hardware.keymaster@4.0-service.mtee.rc +import /vendor/etc/init/android.hardware.keymaster@4.1-service.rc +import /vendor/etc/init/android.hardware.keymaster@4.1-service.trustonic.rc +import /vendor/etc/init/android.hardware.keymaster@4.1-service.beanpod.rc +import /vendor/etc/init/android.hardware.keymaster@4.1-service.beanpod.lite.rc +import /vendor/etc/init/android.hardware.keymaster@4.1-service.trustkernel.rc +import /vendor/etc/init/android.hardware.keymaster@4.1-service.mtee.rc +import /vendor/etc/init/android.hardware.security.keymint-service.rc +import /vendor/etc/init/android.hardware.security.keymint-service.trustonic.rc +import /vendor/etc/init/android.hardware.security.keymint-service.beanpod.rc +#import /vendor/etc/init/vendor.mediatek.hardware.keyinstall@1.0-service.rc +import /vendor/etc/init/vendor.mediatek.hardware.keymanage@1.0-service.rc +import /vendor/etc/init/android.hardware.audio.service.mediatek.rc +import /vendor/etc/init/vendor.mediatek.hardware.keymaster_attestation@1.1-service.rc +import /vendor/etc/init/android.hardware.nfc@1.2-service-st.rc +import /vendor/etc/init/tee.rc +import /vendor/etc/init/vendor.mediatek.hardware.nvram@1.1-sevice.rc +import /vendor/etc/init/vendor.mediatek.hardware.nvram@1.1-sevice-lazy.rc +import /vendor/etc/init/android.hardware.light@2.0-service-mediatek.rc +import /vendor/etc/init/android.hardware.light@2.0-service-mediatek-lazy.rc +import /vendor/etc/init/lights-mtk-default.rc +import /vendor/etc/init/lights-mtk-lazy.rc +import /vendor/etc/init/merged_hal_service.rc +import /vendor/etc/init/spm_script.rc +import /vendor/etc/init/nvram_daemon.rc +#BSP:add integrate tranHwInfo to meta LCQHLYYLR-2213 by fengshan.wang 20200825 start +import /vendor/etc/init/vendor.mediatek.hardware.tranHwInfo@1.0-service.rc +#BSP:add integrate tranHwInfo to meta LCQHLYYLR-2213 by fengshan.wang 20200825 end +import /vendor/etc/init/microtrust.bp_kmsetkey_ca.rc +import /vendor/etc/init/vendor.microtrust.hardware.thh@2.0-service.rc +import /vendor/etc/init/microtrust.init_thh.rc +#BSP:add check AttestationKey CGCGJHRS-8997 by wang.qin 20211018 start +import /vendor/etc/init/trustonic.mc_kmsetkey_ca.rc +#BSP:add check AttestationKey CGCGJHRS-8997 by wang.qin 20211018 end diff --git a/rootdir/etc/ueventd.mt6789.rc b/rootdir/etc/ueventd.mt6789.rc new file mode 100644 index 0000000..3e1f701 --- /dev/null +++ b/rootdir/etc/ueventd.mt6789.rc @@ -0,0 +1,196 @@ +#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/by-name/misc2 0660 root system +/dev/block/by-name/boot 0640 root system +/dev/block/by-name/recovery 0640 root system +/dev/block/by-name/secro 0640 root system +/dev/block/by-name/seccfg 0660 root system +/dev/block/by-name/proinfo 0660 root system +/dev/block/by-name/nvram 0660 root system +/dev/block/by-name/para 0660 root system +/dev/block/by-name/logo 0660 root system +/dev/block/by-name/frp 0660 root system +/dev/block/by-name/md1img 0640 root system +/dev/block/by-name/md1img_a 0640 root system +/dev/block/by-name/md1img_b 0640 root system +/dev/block/by-name/md1dsp 0660 root system +/dev/block/by-name/boot_para 0640 root system + +# OTP +/dev/otp 0660 system system +/dev/block/by-name/otp 0660 root system + +# Connectivity +/dev/stpwmt 0660 system system +/dev/wmtdetect 0660 system system +/dev/fw_log_wmt 0660 system system +/dev/conninfra_dev 0660 system system +/dev/conn_pwr_dev 0660 system system + +# BT +/dev/stpbt 0660 bluetooth bluetooth +/dev/fw_log_bt 0660 bluetooth bluetooth + +# GPS +/dev/gpsdl0 0660 gps gps +/dev/gpsdl1 0660 gps gps +/dev/stpgps 0660 gps gps +/dev/gps 0660 gps system +/dev/gps_emi 0660 gps gps +/dev/gps2scp 0660 gps gps +/dev/gps_pwr 0660 gps gps +/dev/fw_log_gps 0660 gps gps +# ANT +/dev/stpant 0660 system system + +# WIFI +/dev/wmtWifi 0660 wifi wifi +/dev/fw_log_wifi 0660 wifi wifi + +# FMRadio +# NFBD:modify for dev/fm 0660->0666 by yuguo.zhang 20220406 +/dev/fm 0666 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 + +# teeperf driver +/dev/teeperf 0666 system system + +#v4l2 device +/dev/video* 0660 camera system +/dev/media* 0660 camera system +/dev/v4l-subdev* 0660 camera system + +#v4l2 codec +/dev/vcu 0660 camera system + +#vdec-fmt +/dev/vdec-fmt 0660 media system +/dev/fmt_sync 0660 system system + +#v4l2 camera +/dev/mtk_hcp 0660 camera system + +# DRM node +/dev/dri/card0 0660 system system + +# MDDP node +/dev/mddp 0660 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/lirc* 0660 root 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 + +#GPIO +/dev/mtgpio 0600 radio root + +# Camera +/dev/camera_eeprom* 0660 system camera + +#FOR VIA MODEM +/dev/ttySDIO* 0660 radio sdcard_rw +/dev/ttyRB* 0660 radio radio + +# Mali node +/dev/mali0 0666 system graphics + +# Change ION driver permission +/dev/ion 0666 system graphics + +# Change DMA_HEAP deice permission +# refs: /system/core/rootdir/uevent.rc +# /dev/dma_heap/system 0444 system system +/dev/dma_heap/mtk_mm 0444 system system +/dev/dma_heap/mtk_mm-uncached 0444 system system +/dev/dma_heap/mtk_svp_page-uncached 0444 system system +/dev/dma_heap/mtk_prot_page-uncached 0444 system system +/dev/dma_heap/mtk_svp_region 0444 system system +/dev/dma_heap/mtk_svp_region-aligned 0444 system system +/dev/dma_heap/mtk_prot_region 0444 system system +/dev/dma_heap/mtk_prot_region-aligned 0444 system system +/dev/dma_heap/mtk_2d_fr_region 0444 system system +/dev/dma_heap/mtk_2d_fr_region-aligned 0444 system system +/dev/dma_heap/mtk_wfd_region 0444 system system +/dev/dma_heap/mtk_wfd_region-aligned 0444 system system +/dev/dma_heap/mtk_wfd_page-uncached 0444 system system +/dev/dma_heap/mtk_sapu_data_shm_region 0444 system system +/dev/dma_heap/mtk_sapu_data_shm_region-aligned 0444 system system +/dev/dma_heap/mtk_sapu_engine_shm_region 0444 system system +/dev/dma_heap/mtk_sapu_engine_shm_region-aligned 0444 system system + +#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