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