From e8f94e37f644aa90501db322b4dec618a886b73f Mon Sep 17 00:00:00 2001 From: Zheng Pan Date: Thu, 16 Nov 2023 19:54:12 -0800 Subject: [PATCH] Add init.p24.zuma.rc For P24 proto devices, they use zuma soc, it should load init.zuma.rc. However due to hw difference between P23 and P24, init.zuma.rc cannot be used on P24 directly. As P24 is brought up using init.zumapro.rc. Fork init.p24.zuma.rc from init.zumapro.rc for P24 only. Bug: 311016628 Test: flash KM4 proto and make sure init.zuma.rc is loaded. Change-Id: Ib28b7ed5cf8b6f1bad1a7494a31a4eeaab608b67 --- conf/init.p24.zuma.rc | 1098 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1098 insertions(+) create mode 100644 conf/init.p24.zuma.rc diff --git a/conf/init.p24.zuma.rc b/conf/init.p24.zuma.rc new file mode 100644 index 0000000..30430d7 --- /dev/null +++ b/conf/init.p24.zuma.rc @@ -0,0 +1,1098 @@ +import /vendor/etc/init/hw/init.zumapro.usb.rc +import android.hardware.drm@1.2-service.widevine.rc +import init.exynos.sensorhub.rc + +on early-init + mount_all /vendor/etc/fstab.persist --early + write /proc/sys/kernel/sched_pelt_multiplier 1 + write /sys/kernel/mm/lru_gen/enabled n + +on init + # CPU0 cannot be offline + chmod 0444 /sys/devices/system/cpu/cpu0/online + + # Set teo as cpu idle governor + write /sys/devices/system/cpu/cpuidle/current_governor teo + + # Boot time fs tuning + write /sys/block/sda/queue/iostats 0 + write /sys/block/sda/queue/scheduler bfq + write /sys/block/sda/queue/iosched/slice_idle 0 + write /sys/block/sda/queue/nr_requests 256 + write /dev/sys/fs/by-name/userdata/data_io_flag 56 + write /dev/sys/fs/by-name/userdata/node_io_flag 56 + + chown system system /proc/vendor_sched/groups/bg/set_task_group + chown system system /proc/vendor_sched/groups/cam/set_task_group + chown system system /proc/vendor_sched/groups/fg/set_task_group + chown system system /proc/vendor_sched/groups/nnapi/set_task_group + chown system system /proc/vendor_sched/groups/sys/set_task_group + chown system system /proc/vendor_sched/groups/sys_bg/set_task_group + chown system system /proc/vendor_sched/groups/ta/set_task_group + chown system system /proc/vendor_sched/groups/rt/set_task_group + chown system system /proc/vendor_sched/groups/sf/set_task_group + chown system system /proc/vendor_sched/groups/dex2oat/set_task_group + chown system system /proc/vendor_sched/groups/cam_power/set_task_group + chown system system /proc/vendor_sched/groups/ota/set_task_group + chown system system /proc/vendor_sched/groups/bg/set_proc_group + chown system system /proc/vendor_sched/groups/cam/set_proc_group + chown system system /proc/vendor_sched/groups/fg/set_proc_group + chown system system /proc/vendor_sched/groups/nnapi/set_proc_group + chown system system /proc/vendor_sched/groups/sys/set_proc_group + chown system system /proc/vendor_sched/groups/sys_bg/set_proc_group + chown system system /proc/vendor_sched/groups/ta/set_proc_group + chown system system /proc/vendor_sched/groups/rt/set_proc_group + chown system system /proc/vendor_sched/groups/sf/set_proc_group + chown system system /proc/vendor_sched/groups/dex2oat/set_proc_group + chown system system /proc/vendor_sched/groups/cam_power/set_proc_group + chown system system /proc/vendor_sched/groups/ota/set_proc_group + chown system system /proc/vendor_sched/prefer_idle_set + chown system system /proc/vendor_sched/prefer_idle_clear + chown system system /proc/vendor_sched/pmu_poll_enable + chown system system /proc/vendor_sched/pmu_poll_time + chown system system /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/lcpi_threshold + chown system system /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/spc_threshold + chown system system /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/limit_frequency + chown system system /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/pmu_limit_enable + chown system system /sys/devices/system/cpu/cpufreq/policy4/sched_pixel/lcpi_threshold + chown system system /sys/devices/system/cpu/cpufreq/policy4/sched_pixel/spc_threshold + chown system system /sys/devices/system/cpu/cpufreq/policy4/sched_pixel/limit_frequency + chown system system /sys/devices/system/cpu/cpufreq/policy4/sched_pixel/pmu_limit_enable + chown system system /sys/devices/system/cpu/cpufreq/policy7/sched_pixel/lcpi_threshold + chown system system /sys/devices/system/cpu/cpufreq/policy7/sched_pixel/spc_threshold + chown system system /sys/devices/system/cpu/cpufreq/policy7/sched_pixel/limit_frequency + chown system system /sys/devices/system/cpu/cpufreq/policy7/sched_pixel/pmu_limit_enable + + # FIXME(b/301212469) these nodes missing on zuma pro + # TODO(b/308973423) these values need to be tuned + chown system system /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu0_memlat@17000010/memlat_cpuidle_state_aware + chown system system /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu1_memlat@17000010/memlat_cpuidle_state_aware + chown system system /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu2_memlat@17000010/memlat_cpuidle_state_aware + chown system system /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu3_memlat@17000010/memlat_cpuidle_state_aware + chown system system /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu4_memlat@17000010/memlat_cpuidle_state_aware + chown system system /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu5_memlat@17000010/memlat_cpuidle_state_aware + chown system system /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu6_memlat@17000010/memlat_cpuidle_state_aware + chown system system /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu7_memlat@17000010/memlat_cpuidle_state_aware + + chmod 0220 /proc/vendor_sched/groups/bg/set_task_group + chmod 0220 /proc/vendor_sched/groups/cam/set_task_group + chmod 0220 /proc/vendor_sched/groups/fg/set_task_group + chmod 0220 /proc/vendor_sched/groups/nnapi/set_task_group + chmod 0220 /proc/vendor_sched/groups/sys/set_task_group + chmod 0220 /proc/vendor_sched/groups/sys_bg/set_task_group + chmod 0220 /proc/vendor_sched/groups/ta/set_task_group + chmod 0220 /proc/vendor_sched/groups/rt/set_task_group + chmod 0220 /proc/vendor_sched/groups/sf/set_task_group + chmod 0220 /proc/vendor_sched/groups/dex2oat/set_task_group + chmod 0220 /proc/vendor_sched/groups/cam_power/set_task_group + chmod 0220 /proc/vendor_sched/groups/ota/set_task_group + chmod 0220 /proc/vendor_sched/groups/bg/set_proc_group + chmod 0220 /proc/vendor_sched/groups/cam/set_proc_group + chmod 0220 /proc/vendor_sched/groups/fg/set_proc_group + chmod 0220 /proc/vendor_sched/groups/nnapi/set_proc_group + chmod 0220 /proc/vendor_sched/groups/sys/set_proc_group + chmod 0220 /proc/vendor_sched/groups/sys_bg/set_proc_group + chmod 0220 /proc/vendor_sched/groups/ta/set_proc_group + chmod 0220 /proc/vendor_sched/groups/rt/set_proc_group + chmod 0220 /proc/vendor_sched/groups/sf/set_proc_group + chmod 0220 /proc/vendor_sched/groups/dex2oat/set_proc_group + chmod 0220 /proc/vendor_sched/groups/cam_power/set_proc_group + chmod 0220 /proc/vendor_sched/groups/ota/set_proc_group + chmod 0220 /proc/vendor_sched/prefer_idle_set + chmod 0220 /proc/vendor_sched/prefer_idle_clear + chmod 0660 /proc/vendor_sched/pmu_poll_enable + chmod 0220 /proc/vendor_sched/pmu_poll_time + + wait /dev/block/platform/${ro.boot.boot_devices} + symlink /dev/block/platform/${ro.boot.boot_devices} /dev/block/bootdevice + + # to access UFS/eMMC sysfs directly + symlink /sys/devices/platform/${ro.boot.boot_devices} /dev/sys/block/bootdevice + + # Disable UFS powersaving + write /dev/sys/block/bootdevice/clkgate_enable 0 + + start vendor.keymaster-4-0 + + # ZRAM setup + write /sys/block/zram0/comp_algorithm lz77eh + write /proc/sys/vm/page-cluster 0 + + # Some user code relies on ro.boot.hardware.revision + setprop ro.boot.hardware.revision ${ro.revision} + + # Allow PAI targeting per hardware SKU + setprop ro.oem.key1 ${ro.boot.hardware.sku} + + # Property used by vintf for sku specific manifests + # Property used by NFC for sku specific configurations + setprop ro.boot.product.hardware.sku ${ro.boot.hardware.sku} + + # Support legacy paths + symlink /data/app /factory + + # Apply network parameters for high data performance. + write /proc/sys/net/core/rmem_default 327680 + write /proc/sys/net/core/rmem_max 8388608 + write /proc/sys/net/core/wmem_default 327680 + write /proc/sys/net/core/wmem_max 8388608 + write /proc/sys/net/core/optmem_max 20480 + write /proc/sys/net/core/netdev_max_backlog 10000 + write /proc/sys/net/ipv4/tcp_rmem "2097152 4194304 8388608" + write /proc/sys/net/ipv4/tcp_wmem "262144 524288 8388608" + write /proc/sys/net/ipv4/tcp_mem "44259 59012 88518" + write /proc/sys/net/ipv4/udp_mem "88518 118025 177036" + + write /sys/class/net/rmnet0/queues/rx-0/rps_cpus fe + write /sys/class/net/rmnet1/queues/rx-0/rps_cpus fe + write /sys/class/net/rmnet2/queues/rx-0/rps_cpus fe + write /sys/class/net/rmnet3/queues/rx-0/rps_cpus fe + write /sys/class/net/rmnet4/queues/rx-0/rps_cpus fe + write /sys/class/net/rmnet5/queues/rx-0/rps_cpus fe + write /sys/class/net/rmnet6/queues/rx-0/rps_cpus fe + write /sys/class/net/rmnet7/queues/rx-0/rps_cpus fe + + # Create UDS structure for base VR services. + mkdir /dev/socket/pdx 0775 system system + mkdir /dev/socket/pdx/system 0775 system system + mkdir /dev/socket/pdx/system/buffer_hub 0775 system system + mkdir /dev/socket/pdx/system/performance 0775 system system + mkdir /dev/socket/pdx/system/vr 0775 system system + mkdir /dev/socket/pdx/system/vr/display 0775 system system + mkdir /dev/socket/pdx/system/vr/pose 0775 system system + mkdir /dev/socket/pdx/system/vr/sensors 0775 system system + + # Boot time tuning + # Set uclamp_min to capacity of little core + 1 to avoid little core + write /proc/vendor_sched/groups/ta/uclamp_min 190 + write /proc/vendor_sched/groups/ta/prefer_idle 1 + write /proc/vendor_sched/groups/fg/uclamp_min 190 + write /proc/vendor_sched/groups/fg/prefer_idle 1 + write /proc/vendor_sched/groups/sys/uclamp_min 190 + write /proc/vendor_sched/groups/sys/prefer_idle 1 + + # governor setting + write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor sched_pixel + write /sys/devices/system/cpu/cpu0/cpufreq/sched_pixel/up_rate_limit_us 500 + write /sys/devices/system/cpu/cpu0/cpufreq/sched_pixel/down_rate_limit_us 5000 + write /sys/devices/system/cpu/cpu0/cpufreq/sched_pixel/down_rate_limit_scale_pow 2 + write /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor sched_pixel + write /sys/devices/system/cpu/cpu4/cpufreq/sched_pixel/up_rate_limit_us 500 + write /sys/devices/system/cpu/cpu4/cpufreq/sched_pixel/down_rate_limit_us 20000 + write /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor sched_pixel + write /sys/devices/system/cpu/cpu7/cpufreq/sched_pixel/up_rate_limit_us 500 + write /sys/devices/system/cpu/cpu7/cpufreq/sched_pixel/down_rate_limit_us 20000 + + + # memlat cpuidle awareness setting + # FIXME(b/301212469) these nodes missing on zuma pro + # TODO(b/308973423) these values need to be tuned + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu0_memlat@17000010/memlat_cpuidle_state_aware 2 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu1_memlat@17000010/memlat_cpuidle_state_aware 2 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu2_memlat@17000010/memlat_cpuidle_state_aware 2 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu3_memlat@17000010/memlat_cpuidle_state_aware 2 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu4_memlat@17000010/memlat_cpuidle_state_aware 2 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu5_memlat@17000010/memlat_cpuidle_state_aware 2 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu6_memlat@17000010/memlat_cpuidle_state_aware 2 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu7_memlat@17000010/memlat_cpuidle_state_aware 2 + + # RT uclamp setting + write /proc/sys/kernel/sched_util_clamp_min_rt_default 0 + + # change permissions and default values for camera-daemon cpu controller + chown system system /dev/cpuctl/camera-daemon/cpu.uclamp.min + chown system system /dev/cpuctl/camera-daemon/cpu.uclamp.max + chown root root /dev/cpuctl/camera-daemon/cpu.uclamp.latency_sensitive + chown system system /dev/cpuctl/camera-daemon/cgroup.procs + + mkdir /dev/cpuset/camera-daemon-high-group + write /dev/cpuset/camera-daemon-high-group/cpus 0-7 + write /dev/cpuset/camera-daemon-high-group/mems 0 + chown system system /dev/cpuset/camera-daemon-high-group/tasks + chmod 0664 /dev/cpuset/camera-daemon-high-group/tasks + + mkdir /dev/cpuset/camera-daemon-mid-group + write /dev/cpuset/camera-daemon-mid-group/cpus 0-7 + write /dev/cpuset/camera-daemon-mid-group/mems 0 + chown system system /dev/cpuset/camera-daemon-mid-group/tasks + chmod 0664 /dev/cpuset/camera-daemon-mid-group/tasks + + mkdir /dev/cpuset/camera-daemon-mid-high-group + write /dev/cpuset/camera-daemon-mid-high-group/cpus 0-7 + write /dev/cpuset/camera-daemon-mid-high-group/mems 0 + chown system system /dev/cpuset/camera-daemon-mid-high-group/tasks + chmod 0664 /dev/cpuset/camera-daemon-mid-high-group/tasks + + write /proc/vendor_sched/groups/cam/prefer_idle 1 + write /proc/vendor_sched/groups/cam/uclamp_min 1 + + chown system system /dev/cpuset/cgroup.procs + + # nanohub sensor + chmod 0664 /dev/nanohub + chmod 0664 /dev/nanohub_comms + chown system system /dev/nanohub + chown system system /dev/nanohub_comms + + # Loading common kernel modules in background + start init_display + + # Power Stats HAL + chown system system /dev/bbd_pwrstat + + # Add a boost for NNAPI HAL + write /proc/vendor_sched/groups/nnapi/prefer_idle 0 + write /proc/vendor_sched/groups/nnapi/uclamp_min 512 + + # Add memlat governor settings + # FIXME(b/301212469) these nodes missing on zuma pro + # TODO(b/308973423) these values need to be tuned + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu0_memlat@17000010/polling_interval 10 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu1_memlat@17000010/polling_interval 10 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu2_memlat@17000010/polling_interval 10 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu3_memlat@17000010/polling_interval 10 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu4_memlat@17000010/polling_interval 10 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu5_memlat@17000010/polling_interval 10 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu6_memlat@17000010/polling_interval 10 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu7_memlat@17000010/polling_interval 10 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu0_memlat@17000010/mem_latency/ratio_ceil 1800 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu1_memlat@17000010/mem_latency/ratio_ceil 1800 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu2_memlat@17000010/mem_latency/ratio_ceil 1800 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu3_memlat@17000010/mem_latency/ratio_ceil 1800 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu4_memlat@17000010/mem_latency/ratio_ceil 3700 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu5_memlat@17000010/mem_latency/ratio_ceil 3700 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu6_memlat@17000010/mem_latency/ratio_ceil 3700 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu7_memlat@17000010/mem_latency/ratio_ceil 3700 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu0_memlat@17000010/mem_latency/stall_floor 3000 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu1_memlat@17000010/mem_latency/stall_floor 3000 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu2_memlat@17000010/mem_latency/stall_floor 3000 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu3_memlat@17000010/mem_latency/stall_floor 3000 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu4_memlat@17000010/mem_latency/stall_floor 2400 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu5_memlat@17000010/mem_latency/stall_floor 2400 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu6_memlat@17000010/mem_latency/stall_floor 2400 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu7_memlat@17000010/mem_latency/stall_floor 2400 + + # Set boost_adpf_prio, -1 by default + # write /proc/vendor_sched/boost_adpf_prio ${persist.device_config.vendor_system_native_boot.boost_adpf_prio:--1} + + # Add dsulat governor settings + # TODO(b/308970898): tune these values + write /sys/class/devfreq/gs_dsulat_devfreq:devfreq_dsu_lat@17000090/dsu_latency/ratio_ceil_cl0 700 + write /sys/class/devfreq/gs_dsulat_devfreq:devfreq_dsu_lat@17000090/dsu_latency/ratio_ceil_cl1 1000 + write /sys/class/devfreq/gs_dsulat_devfreq:devfreq_dsu_lat@17000090/dsu_latency/ratio_ceil_cl2 3000 + + write /sys/class/devfreq/gs_dsulat_devfreq:devfreq_dsu_lat@17000090/dsu_latency/mem_stall_floor_cl0 1750 + write /sys/class/devfreq/gs_dsulat_devfreq:devfreq_dsu_lat@17000090/dsu_latency/mem_stall_floor_cl1 1750 + write /sys/class/devfreq/gs_dsulat_devfreq:devfreq_dsu_lat@17000090/dsu_latency/mem_stall_floor_cl2 1750 + + write /sys/class/devfreq/gs_dsulat_devfreq:devfreq_dsu_lat@17000090/dsu_latency/dsulat_cpuidle_state_aware_cl0 2 + write /sys/class/devfreq/gs_dsulat_devfreq:devfreq_dsu_lat@17000090/dsu_latency/dsulat_cpuidle_state_aware_cl1 2 + write /sys/class/devfreq/gs_dsulat_devfreq:devfreq_dsu_lat@17000090/dsu_latency/dsulat_cpuidle_state_aware_cl2 2 + + # Give pixelstats group access to PCIe link statistics counters + chown system system /sys/devices/platform/12100000.pcie/link_stats/complete_timeout_irqs + chown system system /sys/devices/platform/12100000.pcie/link_stats/link_down_irqs + chown system system /sys/devices/platform/12100000.pcie/link_stats/link_recovery_failures + chown system system /sys/devices/platform/12100000.pcie/link_stats/link_up_failures + chown system system /sys/devices/platform/13120000.pcie/link_stats/complete_timeout_irqs + chown system system /sys/devices/platform/13120000.pcie/link_stats/link_down_irqs + chown system system /sys/devices/platform/13120000.pcie/link_stats/link_recovery_failures + chown system system /sys/devices/platform/13120000.pcie/link_stats/link_up_failures + + # Change GSA log group for dumpstate + chown root system /sys/devices/platform/16490000.gsa-ns/log_main + chown root system /sys/devices/platform/16490000.gsa-ns/log_intermediate + +on post-fs + # Ensure device is ready and start storageproxyd + wait /dev/sg1 + start storageproxyd + +on late-fs + # Start bootanimation class before mount + start bootanim + class_start animation + + # Mount RW partitions which need run fsck + mount_all --late + +on post-fs-data + # Modem temperature driver + chown radio system /sys/devices/platform/cp-tm1/cp_temp + + # Log data folder + mkdir /data/vendor 0771 radio system + mkdir /data/vendor/log 0771 radio system + mkdir /data/vendor/log/cbd 0771 radio system + mkdir /data/vendor/log/rfsd 0771 radio system + + mkdir /data/exynos/log 0771 radio system + mkdir /data/vendor/rild 0771 radio system + mkdir /data/vendor/dump 0771 radio system + mkdir /data/vendor/slog 0771 system system + + # PixelLogger log paths. + mkdir /data/vendor/radio 773 system radio + mkdir /data/vendor/radio/logs 773 system radio + mkdir /data/vendor/radio/logs/always-on 777 system radio + + # Modem extended log folder + mkdir /data/vendor/radio/extended_logs 0770 radio system + + # Modem MDS log folder + mkdir /data/vendor/radio/mds 0771 radio system + + # Modem SIM log folder + mkdir /data/vendor/radio/sim 0771 radio system + + # Unzipped modem images folder + mkdir /data/vendor/radio/image 0771 radio system + + # Modem stat folder + mkdir /data/vendor/modem_stat 0771 radio system + write /data/vendor/modem_stat/debug.txt "" + chown radio system /data/vendor/modem_stat/debug.txt + chmod 0664 /data/vendor/modem_stat/debug.txt + + # Modem replay folder + mkdir /mnt/vendor/modem_userdata/replay 0775 radio system + + # Write display MIPI frequency from Modem + chown system system /sys/devices/platform/19440000.drmdsim/hs_clock + chown system system /sys/devices/platform/19450000.drmdsim/hs_clock + chmod 0664 /sys/devices/platform/19440000.drmdsim/hs_clock + chmod 0664 /sys/devices/platform/19450000.drmdsim/hs_clock + + # IPSEC PIDDIR for VoWiFi + mkdir /data/vendor/misc 0771 root system + mkdir /data/vendor/misc/vpn 0771 root system + + # Permissions Camera + mkdir /data/vendor/camera 0770 system camera + mkdir /data/vendor/camera/catpipe 0770 system camera + chmod 0755 /sys/kernel/debug/tracing + restorecon /sys/kernel/debug/tracing/trace_marker + + # ranging sensor + chown system system /dev/ispolin_ranging + chmod 0660 /dev/ispolin_ranging + + # Factory calibration files + chmod 0771 /mnt/vendor/persist/camera + chmod 0771 /mnt/vendor/persist/camera/OTP_calibration + chmod 0771 /mnt/vendor/persist/camera/pdaf_calibration_data + mkdir /mnt/vendor/persist/camera/rear 0771 system camera + chmod 0771 /mnt/vendor/persist/camera/rear + + # Audio dump and debug + mkdir /data/vendor/audio 0770 audio audio + + # Create the directories for Darwinn HAL. + mkdir /data/vendor/hal_neuralnetworks_darwinn 0770 system system + mkdir /data/vendor/hal_neuralnetworks_darwinn/checksum_cache 0770 system system + mkdir /data/vendor/edgetpu 0770 system system + mkdir /data/vendor/edgetpu/cache 0770 system system + + # Compatibility path for TPU + symlink /dev/edgetpu-soc /dev/edgetpu + +on zygote-start + # For PixelLogger configuration file. + chmod 0771 /data/vendor/wifi + write /proc/vendor_sched/groups/ta/uclamp_min 1 + write /proc/vendor_sched/groups/fg/uclamp_min 0 + write /proc/vendor_sched/groups/sys/uclamp_min 0 + write /proc/vendor_sched/groups/ta/preferred_idle_mask_low 0x3f + write /proc/vendor_sched/groups/ta/preferred_idle_mask_mid 0xf0 + write /proc/vendor_sched/groups/ta/preferred_idle_mask_high 0xf0 + write /proc/vendor_sched/groups/ta/prefer_idle 1 + write /proc/vendor_sched/groups/fg/preferred_idle_mask_low 0x3f + write /proc/vendor_sched/groups/fg/preferred_idle_mask_mid 0xf0 + write /proc/vendor_sched/groups/fg/preferred_idle_mask_high 0xf0 + write /proc/vendor_sched/groups/fg/prefer_idle 1 + write /proc/vendor_sched/groups/sys/preferred_idle_mask_low 0x3f + write /proc/vendor_sched/groups/sys/preferred_idle_mask_mid 0xf0 + write /proc/vendor_sched/groups/sys/preferred_idle_mask_high 0xf0 + write /proc/vendor_sched/groups/sys/prefer_idle 1 + + write /proc/vendor_sched/groups/bg/ug 0 + write /proc/vendor_sched/groups/sys_bg/ug 0 + write /proc/vendor_sched/groups/ota/ug 0 + write /proc/vendor_sched/groups/dex2oat/ug 1 + write /proc/vendor_sched/groups/ta/ug 2 + write /proc/vendor_sched/groups/fg/ug 2 + write /proc/vendor_sched/groups/nnapi/ug 2 + write /proc/vendor_sched/groups/rt/ug 2 + write /proc/vendor_sched/groups/sf/ug 2 + write /proc/vendor_sched/groups/sys/ug 2 + +on post-fs-data + # Create the directories used by the Wireless subsystem + mkdir /data/vendor/wifi 0771 wifi wifi + mkdir /data/vendor/wifi/wpa 0770 wifi wifi + mkdir /data/vendor/wifi/wpa/sockets 0770 wifi wifi + +# Gatekeeper data + mkdir /data/vendor/gk 0771 system system + +# HWC data + mkdir /data/vendor/log/hwc 0771 system graphics + +# Video data + mkdir /data/vendor/media 0700 mediacodec mediacodec + +on post-fs-data + # GPS + mkdir /data/vendor/gps 0771 system system + chown system system /data/vendor/gps + rm /data/vendor/gps/gps_started + rm /data/vendor/gps/glonass_started + rm /data/vendor/gps/beidou_started + rm /data/vendor/gps/smd_started + rm /data/vendor/gps/sv_cno.info + + chown gps system /sys/devices/platform/111e0000.spi/spi_master/spi21/spi21.0/nstandby + chmod 0664 /dev/ttyBCM + chown gps system /dev/ttyBCM + chmod 0664 /dev/bbd_control + chown gps system /dev/bbd_control + chmod 0664 /dev/bbd_patch + chown gps system /dev/bbd_patch + chmod 0664 /dev/bbd_sensor + chown gps system /dev/bbd_sensor + +on early-boot + # Wait for insmod_sh to finish all common modules + wait_for_prop vendor.common.modules.ready 1 + + # Permission for Health Storage HAL + chown system system /dev/sys/block/bootdevice/manual_gc + + # Permission for Pixelstats + chown system system /dev/sys/block/bootdevice/slowio_read_cnt + chown system system /dev/sys/block/bootdevice/slowio_write_cnt + chown system system /dev/sys/block/bootdevice/slowio_unmap_cnt + chown system system /dev/sys/block/bootdevice/slowio_sync_cnt + + # logbuffer + chown system system /dev/logbuffer_pcie0 + chown system system /dev/logbuffer_pcie1 + chown system system /dev/logbuffer_bd + +on boot + + # Allow to access debugfs for system:system + chmod 0755 /sys/kernel/debug + chown system system /sys/kernel/debug + + #setprop ro.radio.noril no + + # default country code + setprop ro.boot.wificountrycode 00 + + # Set up kernel tracing, but disable it by default + chmod 0222 /sys/kernel/debug/tracing/trace_marker + write /sys/kernel/debug/tracing/tracing_on 0 + + # Trigger TMU to ACPM pi table update + write /sys/module/gs_thermal/parameters/update_acpm_pi_table 1 + + # Change permission for A-Box firmware logs file & GPR dump + chown audioserver system /sys/devices/platform/17c50000.abox/reset + chown audioserver system /sys/devices/platform/17c50000.abox/service + chown audioserver system /sys/devices/platform/17c50000.abox/0.abox_debug/gpr + chown audioserver system /sys/devices/platform/17c50000.abox/0.abox_debug/calliope_sram + chown audioserver system /sys/devices/platform/17c50000.abox/0.abox_debug/calliope_dram + chown audioserver system /sys/devices/platform/17c50000.abox/0.abox_debug/calliope_iva + chown audioserver system /sys/kernel/debug/abox/log-00 + +# Permission for USB SELECT + chown system system /sys/class/android_usb/android0/enable + chmod 0660 /sys/class/android_usb/android0/enable + chown system system /sys/class/android_usb/android0/idVendor + chmod 0660 /sys/class/android_usb/android0/idVendor + chown system system /sys/class/android_usb/android0/idProduct + chmod 0660 /sys/class/android_usb/android0/idProduct + chown system system /sys/class/android_usb/android0/f_diag/clients + chmod 0660 /sys/class/android_usb/android0/f_diag/clients + chown system system /sys/class/android_usb/android0/functions + chmod 0660 /sys/class/android_usb/android0/functions + chown system system /sys/class/android_usb/android0/bDeviceClass + chmod 0660 /sys/class/android_usb/android0/bDeviceClass + +# Permission for UART SWITCH + chmod 0660 /sys/class/sec/switch/uart_sel + chown system system /sys/class/sec/switch/uart_sel + +# VTS sysfs file permission + chown audioserver system /sys/devices/platform/13810000.vts/vts_svoice_model + chown audioserver system /sys/devices/platform/13810000.vts/vts_google_model + chmod 0660 /sys/devices/platform/13810000.vts/vts_svoice_model + chmod 0660 /sys/devices/platform/13810000.vts/vts_google_model + +on property:persist.vendor.radio.no_modem_board=1 + setprop ro.radio.noril yes + +on fs + mount_all --early + restorecon_recursive /mnt/vendor/efs + chown radio system /mnt/vendor/efs + restorecon_recursive /mnt/vendor/efs_backup + chown radio system /mnt/vendor/efs_backup + restorecon_recursive /mnt/vendor/modem_userdata + chown radio system /mnt/vendor/modem_userdata + + # for battery defender + mkdir /mnt/vendor/persist/battery 0700 system system + + # Mount modem partition + mount_all /vendor/etc/fstab.modem --early + restorecon_recursive /mnt/vendor/modem_img + + restorecon_recursive /mnt/vendor/persist + restorecon_recursive /mnt/vendor/persist/aoc + restorecon_recursive /mnt/vendor/persist/audio + restorecon_recursive /mnt/vendor/persist/sensors + restorecon_recursive /mnt/vendor/persist/battery + restorecon_recursive /mnt/vendor/persist/camera + restorecon_recursive /mnt/vendor/persist/modem + # Set up display-related directories and permissions + # Add restorecon_recursive command to make sure the restorecon label is persist_display_file. + restorecon_recursive /mnt/vendor/persist/display + mkdir /mnt/vendor/persist/data/sfs 0700 system system + mkdir /mnt/vendor/persist/data/tz 0700 system system + mkdir /mnt/vendor/persist/touch 0770 system system + +# Permissions for ION + chmod 0660 /sys/class/ion_cma/ion_video_ext/isolated + chown system system /sys/class/ion_cma/ion_video_ext/isolated + +# Permissions for hwcomposer + chown system system /sys/class/backlight/panel0-backlight/als_table + chown system system /sys/class/backlight/panel0-backlight/brightness + chown system system /sys/class/backlight/panel0-backlight/dimming_on + chown system system /sys/class/backlight/panel0-backlight/hbm_mode + chown system system /sys/class/backlight/panel0-backlight/local_hbm_mode + chown system system /sys/devices/platform/exynos-drm/primary-panel/gamma + chown system system /sys/devices/platform/exynos-drm/primary-panel/min_vrefresh + chown system system /sys/devices/platform/exynos-drm/primary-panel/idle_delay_ms + chown system system /sys/devices/platform/exynos-drm/primary-panel/panel_idle + chown system system /sys/devices/platform/exynos-drm/primary-panel/panel_need_handle_idle_exit + chown system system /sys/devices/platform/exynos-drm/primary-panel/op_hz + chown system system /sys/devices/platform/exynos-drm/primary-panel/refresh_ctrl + chown system system /sys/module/drm/parameters/vblankoffdelay + chown system system /sys/module/drm/parameters/debug + chown system system /sys/class/dqe0/atc/ambient_light + chown system system /sys/class/dqe0/atc/st + chown system system /sys/class/dqe0/atc/en + chown system system /sys/class/dqe0/atc/lt + chown system system /sys/class/dqe0/atc/ns + chown system system /sys/class/dqe0/atc/dither + chown system system /sys/class/dqe0/atc/pl_w1 + chown system system /sys/class/dqe0/atc/pl_w2 + chown system system /sys/class/dqe0/atc/ctmode + chown system system /sys/class/dqe0/atc/pp_en + chown system system /sys/class/dqe0/atc/upgrade_on + chown system system /sys/class/dqe0/atc/tdr_max + chown system system /sys/class/dqe0/atc/tdr_min + chown system system /sys/class/dqe0/atc/back_light + chown system system /sys/class/dqe0/atc/dstep + chown system system /sys/class/dqe0/atc/scale_mode + chown system system /sys/class/dqe0/atc/threshold_1 + chown system system /sys/class/dqe0/atc/threshold_2 + chown system system /sys/class/dqe0/atc/threshold_3 + chown system system /sys/class/dqe0/atc/gain_limit + chown system system /sys/class/dqe0/atc/lt_calc_ab_shift + + chown system system /sys/devices/platform/19470000.drmdecon/early_wakeup + chmod 0660 /sys/devices/platform/19470000.drmdecon/early_wakeup + + chown system system /sys/devices/platform/19470000.drmdecon/hibernation + chmod 0644 /sys/devices/platform/19470000.drmdecon/hibernation + +# Copy DRM Key +# copy /system/app/wv.keys /factory/wv.keys + +# Permission for DRM Key +# chmod 0644 /factory/wv.keys + +# Permission for flashlight control for HAL3.3 +# The Istor espresso board does not have the flash led h/w, So the below permission line are blocked. +# If you want to test the flashlight in board which have the flash led h/w, Enable the below blocked lines. + chmod 0660 /sys/class/camera/flash/rear_torch_flash + chown system camera /sys/class/camera/flash/rear_torch_flash +#load ecd firmware + write /proc/ecd/load_firmware 1 + +service abox /vendor/bin/main_abox 17c50000.abox + class late_start + user audioserver + group audioserver + seclabel u:r:abox:s0 + +# on userdebug and eng builds, enable kgdb on the serial console +on property:ro.debuggable=1 + write /sys/module/kgdboc/parameters/kgdboc ttyFIQ1 + write /sys/module/fiq_debugger/parameters/kgdb_enable 1 + +# Touch +on property:vendor.device.modules.ready=1 + chown system system /sys/class/spi_master/spi20/spi20.0/stm_fts_cmd + chown system system /sys/class/spi_master/spi20/spi20.0/glove_mode + chown system system /sys/devices/virtual/sec/tsp/fw_version + chown system system /sys/devices/virtual/sec/tsp/cmd + chown system system /sys/devices/virtual/sec/tsp/cmd_result + chown system system /sys/devices/virtual/sec/tsp/status + chown system system /sys/devices/virtual/goog_touch_interface/gti.0/force_active + chown system system /sys/devices/virtual/goog_touch_interface/gti.0/fw_ver + chown system system /sys/devices/virtual/goog_touch_interface/gti.0/ms_base + chown system system /sys/devices/virtual/goog_touch_interface/gti.0/ms_diff + chown system system /sys/devices/virtual/goog_touch_interface/gti.0/ms_raw + chown system system /sys/devices/virtual/goog_touch_interface/gti.0/self_test + chown system system /sys/devices/virtual/goog_touch_interface/gti.0/ss_base + chown system system /sys/devices/virtual/goog_touch_interface/gti.0/ss_diff + chown system system /sys/devices/virtual/goog_touch_interface/gti.0/ss_raw + # Allow access to touch + chown system input /dev/touch_offload + chmod 660 /dev/touch_offload + +# Route touch_sensitivity_mode to persist +on property:debug.touch_sensitivity_mode=0 + setprop persist.vendor.touch_sensitivity_mode 0 + +on property:debug.touch_sensitivity_mode=1 + setprop persist.vendor.touch_sensitivity_mode 1 + +on property:init.svc.vendor.charger=running + stop keymaster-4-0 + + setprop sys.usb.configfs 1 + setprop vendor.setup.power 1 + + # keep one little and one big + write /sys/devices/system/cpu/cpu1/online 0 + write /sys/devices/system/cpu/cpu2/online 0 + write /sys/devices/system/cpu/cpu3/online 0 + write /sys/devices/system/cpu/cpu4/online 0 + write /sys/devices/system/cpu/cpu5/online 0 + write /sys/devices/system/cpu/cpu7/online 0 + +on property:sys.boot_completed=1 + + # Runtime fs tuning + write /sys/block/sda/queue/nr_requests 128 + write /sys/block/sda/queue/iostats 1 + write /sys/block/sda/queue/iosched/slice_idle 0 + write /dev/sys/fs/by-name/userdata/data_io_flag 8 + write /dev/sys/fs/by-name/userdata/node_io_flag 8 + + # Permission for Pixelstats + chown system system /dev/sys/fs/by-name/userdata/compr_written_block + chown system system /dev/sys/fs/by-name/userdata/compr_saved_block + chown system system /dev/sys/fs/by-name/userdata/compr_new_inode + chown system system /dev/sys/fs/by-name/userdata/gc_segment_mode + chown system system /dev/sys/fs/by-name/userdata/gc_reclaimed_segments + chown system system /dev/sys/fs/by-name/userdata/peak_atomic_write + chown system system /dev/sys/fs/by-name/userdata/committed_atomic_block + chown system system /dev/sys/fs/by-name/userdata/revoked_atomic_block + + # Enable ZRAM on boot_complete + swapon_all /vendor/etc/fstab.${ro.board.platform} + write /proc/sys/vm/swappiness 60 + + # Set kswapd affinity + write /sys/kernel/vendor_mm/kswapd_cpu_affinity 7f + + # Adjust watermark level + write /proc/sys/vm/watermark_scale_factor 200 + + # Back to default VM settings + write /proc/sys/vm/dirty_expire_centisecs 3000 + write /proc/sys/vm/dirty_background_ratio 10 + + # Enable UFS powersaving + write /dev/sys/block/bootdevice/clkgate_enable 1 + + # Cancel boot devfreq + write /sys/devices/platform/17000010.devfreq_mif/devfreq/17000010.devfreq_mif/exynos_data/cancel_boot_freq 1 + + # Restore prefer idle + write /proc/vendor_sched/groups/ta/preferred_idle_mask_low 0xff + write /proc/vendor_sched/groups/ta/preferred_idle_mask_mid 0xff + write /proc/vendor_sched/groups/ta/preferred_idle_mask_high 0xff + write /proc/vendor_sched/groups/fg/preferred_idle_mask_low 0xff + write /proc/vendor_sched/groups/fg/preferred_idle_mask_mid 0xff + write /proc/vendor_sched/groups/fg/preferred_idle_mask_high 0xff + write /proc/vendor_sched/groups/sys/preferred_idle_mask_low 0xff + write /proc/vendor_sched/groups/sys/preferred_idle_mask_mid 0xff + write /proc/vendor_sched/groups/sys/preferred_idle_mask_high 0xff + + # Setup final cpuset + write /dev/cpuset/top-app/cpus 0-7 + write /dev/cpuset/foreground/cpus 0-6 + write /dev/cpuset/background/cpus 0-3 + write /dev/cpuset/system-background/cpus 0-3 + write /dev/cpuset/restricted/cpus 0-3 + write /dev/cpuset/camera-daemon/cpus 0-7 + setprop vendor.powerhal.init 1 + + # Setup final cpu.uclamp + write /proc/vendor_sched/groups/ta/uclamp_min 1 + write /proc/vendor_sched/groups/fg/uclamp_min 0 + write /proc/vendor_sched/groups/sys/prefer_idle 0 + + # Set ug group + write /proc/vendor_sched/groups/bg/ug 0 + write /proc/vendor_sched/groups/sys_bg/ug 0 + write /proc/vendor_sched/groups/ota/ug 0 + write /proc/vendor_sched/groups/dex2oat/ug 1 + write /proc/vendor_sched/groups/ta/ug 1 + + # Set bg group throttle + write /proc/vendor_sched/ug_bg_group_throttle ${persist.device_config.vendor_system_native.ug_bg_group_throttle:-308} + + # Set uclamp.max for some groups, which could indicate cpu importance used in scheduling + write /proc/vendor_sched/auto_uclamp_max "130 130 130 130 512 512 512 670" + write /proc/vendor_sched/groups/bg/uclamp_max 130 + write /proc/vendor_sched/groups/sys_bg/uclamp_max 512 + write /proc/vendor_sched/groups/ota/uclamp_max 512 + write /proc/vendor_sched/groups/dex2oat/uclamp_max -2 + + write /proc/vendor_sched/uclamp_max_filter_divider 4 + write /proc/vendor_sched/uclamp_max_filter_rt 16 + write /proc/vendor_sched/uclamp_max_filter_enable 1 + + # Set PMU freq limit parameters + write /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/lcpi_threshold 0 + write /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/spc_threshold 76 + write /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/limit_frequency 1328000 + write /sys/devices/system/cpu/cpufreq/policy4/sched_pixel/lcpi_threshold 0 + write /sys/devices/system/cpu/cpufreq/policy4/sched_pixel/spc_threshold 73 + write /sys/devices/system/cpu/cpufreq/policy4/sched_pixel/limit_frequency 1836000 + write /sys/devices/system/cpu/cpufreq/policy7/sched_pixel/lcpi_threshold 0 + write /sys/devices/system/cpu/cpufreq/policy7/sched_pixel/spc_threshold 68 + write /sys/devices/system/cpu/cpufreq/policy7/sched_pixel/limit_frequency 2363000 + write /proc/vendor_sched/pmu_poll_time 10 + + # Disable PMU freq limit + write /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/pmu_limit_enable 1 + write /sys/devices/system/cpu/cpufreq/policy4/sched_pixel/pmu_limit_enable 1 + write /sys/devices/system/cpu/cpufreq/policy7/sched_pixel/pmu_limit_enable 1 + write /proc/vendor_sched/pmu_poll_enable 0 + + # Make devices on the critical path for suspend/resume asynchronous + write /sys/devices/platform/fixedregulator@0/regulator/regulator.2/power/async "enabled" + write /sys/devices/platform/fixedregulator@0/power/async "enabled" + write /sys/devices/platform/26040000.clock-controller/power/async "enabled" + write /sys/devices/platform/10840000.pinctrl/power/async "enabled" + write /sys/devices/platform/13060000.pinctrl/power/async "enabled" + + # Setup cpu.shares to throttle background groups (bg ~ 5% sysbg ~ 5% dex2oat ~2.5%) + write /dev/cpuctl/background/cpu.shares 1024 + write /dev/cpuctl/system-background/cpu.shares 1024 + write /dev/cpuctl/dex2oat/cpu.shares 512 + write /dev/cpuctl/system/cpu.shares 20480 + # We only have system and background groups holding tasks and the groups below are empty + write /dev/cpuctl/camera-daemon/cpu.shares 20480 + write /dev/cpuctl/foreground/cpu.shares 20480 + write /dev/cpuctl/nnapi-hal/cpu.shares 20480 + write /dev/cpuctl/rt/cpu.shares 20480 + write /dev/cpuctl/top-app/cpu.shares 20480 + + # gvotables for dumpstate + chown system system /sys/kernel/debug/gvotables + + # AOC reset permission + chown root system /sys/devices/platform/19000000.aoc/reset + chmod 0220 /sys/devices/platform/19000000.aoc/reset + + # AOC UDFPS clock compensation permission + chown system system /sys/devices/platform/17000000.aoc/control/udfps_set_clock_source + chmod 220 /sys/devices/platform/17000000.aoc/control/udfps_set_clock_source + chown system system /sys/devices/platform/17000000.aoc/control/udfps_get_osc_freq + chmod 440 /sys/devices/platform/17000000.aoc/control/udfps_get_osc_freq + chown system system /sys/devices/platform/17000000.aoc/control/udfps_get_disp_freq + chmod 440 /sys/devices/platform/17000000.aoc/control/udfps_get_disp_freq + + # Disable GPU firmware logging + write /sys/devices/platform/1f000000.mali/firmware_config/Log\ verbosity/cur 0 + +#Enable SICD + write /sys/devices/system/cpu/cpupm/cpupm/sicd 1 + +on property:sys.boot_completed=1 && property:persist.sys.device_provisioned=1 + write /sys/class/power_supply/battery/first_usage_date 0 + +# IMS WiFi Calling + service charonservice /system/vendor/bin/charon + class main + user root + disabled + seclabel u:r:charonservice:s0 + +on property:vendor.charon.exec=1 + rm /data/vendor/misc/vpn/charon.pid + chmod 0666 /dev/tun + start charonservice + +on property:vendor.charon.exec=0 + stop charonservice + rm /data/vendor/misc/vpn/charon.pid + +# charger driver exposes now finer grain control, map demo mode to those properties +# NOTE: demo mode can only be exit wiping data (which reset the persist properties) +on property:sys.retaildemo.enabled=1 + setprop persist.vendor.charge.stop.level 35 + setprop persist.vendor.charge.start.level 30 +# Test Harness Mode default battery profile. +on property:persist.sys.test_harness=1 && property:persist.vendor.testing_battery_profile=0 + setprop persist.vendor.charge.stop.level 70 + setprop persist.vendor.charge.start.level 35 + setprop vendor.battery.defender.disable 1 + +# Extremely restricted battery profile. +on property:persist.sys.test_harness=1 && property:persist.vendor.testing_battery_profile=1 + setprop persist.vendor.charge.stop.level 50 + setprop persist.vendor.charge.start.level 35 + setprop vendor.battery.defender.disable 1 + +# Normal behavior (as if the device was a regular device) +on property:persist.sys.test_harness=1 && property:persist.vendor.testing_battery_profile=2 + setprop persist.vendor.charge.stop.level 100 + setprop persist.vendor.charge.start.level 0 + +# Unrestricted, allows charging to 100% +on property:persist.sys.test_harness=1 && property:persist.vendor.testing_battery_profile=3 + setprop persist.vendor.charge.stop.level 100 + setprop persist.vendor.charge.start.level 0 + setprop vendor.battery.defender.disable 1 + +# bugreport is triggered by holding down volume down, volume up and power +service bugreport /system/bin/dumpstate -d -p -z + class main + disabled + oneshot + keycodes 114 115 116 + +# Proxy for Secure Storage +on post-fs-data + mkdir /data/vendor/rebootescrow 0770 hsm hsm + mkdir /data/vendor/ss 0770 root system + mkdir /mnt/vendor/persist/ss 0770 root system + restorecon_recursive /mnt/vendor/persist/ss + symlink /mnt/vendor/persist/ss /data/vendor/ss/persist + chown root system /data/vendor/ss/persist + chmod 0770 /data/vendor/ss/persist + symlink /dev/block/platform/13200000\.ufs/by-name/trusty_persist /data/vendor/ss/persist/0 + symlink /dev/block/platform/13200000\.ufs/by-name/trusty_userdata /data/vendor/ss/0 + chown system system /data/vendor/ss/0 + chown system system /data/vendor/ss/persist/0 + chown system system /data/vendor/ss/persist/nsp + + restart storageproxyd + +service storageproxyd /vendor/bin/storageproxyd -d /dev/trusty-ipc-dev0 \ + -r /dev/sg1 -p /data/vendor/ss -t ufs + class early_hal + user system + group system + +# Write build info to kdebuginfo +on property:ro.build.fingerprint=* + write /sys/module/debug_kinfo/parameters/build_info ${ro.build.fingerprint} + +# Bluetooth +on early-boot + chown bluetooth system /sys/devices/platform/175b0000.serial/serial0/serial0-0/bluetooth/hci0/rfkill0/state + chown bluetooth system /sys/devices/platform/odm/odm:btbcm/rfkill/rfkill0/state + chown bluetooth system /sys/devices/platform/odm/odm:btbcm/rfkill/rfkill2/state + +on post-fs-data + chown bluetooth system /proc/bluetooth/sleep/btwake + chown bluetooth system /proc/bluetooth/sleep/lpm + chown bluetooth system /proc/bluetooth/sleep/btwrite + mkdir /data/vendor/bluetooth 0770 bluetooth system + +# ODPM +on fs + chown system system /sys/devices/platform/acpm_mfd_bus@18100000/i2c-7/i2c-s2mpg12mfd/s2mpg12-meter/s2mpg12-odpm/iio\:device0/enabled_rails + chown system system /sys/devices/platform/acpm_mfd_bus@18110000/i2c-8/i2c-s2mpg13mfd/s2mpg13-meter/s2mpg13-odpm/iio\:device1/enabled_rails + +on post-fs-data + mkdir /data/vendor/powerstats 0771 system system + chown system system /data/vendor/powerstats + # Thermal Residency Stats (write 1 to reset) + chown system system /sys/kernel/metrics/thermal/tr_by_group/tmu/stats_reset + chown system system /sys/kernel/metrics/thermal/tr_by_group/spmic/stats_reset + +on property:vendor.thermal.link_ready=1 + # BCL + write /sys/devices/platform/cpupm/cpupm/cpd_cl1 0 #Disable power down + write /sys/devices/platform/cpupm/cpupm/cpd_cl2 0 #Disable power down + write /sys/devices/virtual/pmic/mitigation/clock_ratio/tpu_light_clk_ratio 0xfff041c1 #OCP + write /sys/devices/virtual/pmic/mitigation/clock_ratio/cpu1_heavy_clk_ratio 0xfff041c0 #DFS + write /sys/devices/virtual/pmic/mitigation/clock_ratio/cpu2_heavy_clk_ratio 0xfff041c0 #DFS + write /sys/devices/virtual/pmic/mitigation/clock_ratio/gpu_light_clk_ratio 0xfff041c1 #OCP + write /sys/devices/virtual/pmic/mitigation/clock_ratio/cpu2_light_clk_ratio 0xfff041c3 #OCP + write /sys/devices/virtual/pmic/mitigation/clock_ratio/gpu_heavy_clk_ratio 0xfff04380 #DFS + write /sys/devices/virtual/pmic/mitigation/clock_ratio/tpu_heavy_clk_ratio 0xfff041c0 #DFS + write /sys/devices/virtual/pmic/mitigation/triggered_lvl/smpl_lvl 3000 + write /sys/devices/virtual/pmic/mitigation/triggered_lvl/soft_ocp_cpu2_lvl 12000 + write /sys/devices/virtual/pmic/mitigation/triggered_lvl/soft_ocp_gpu_lvl 9000 + write /sys/devices/virtual/pmic/mitigation/triggered_lvl/soft_ocp_tpu_lvl 8500 + write /sys/devices/virtual/pmic/mitigation/clock_div/tpu_clk_div 0x1 + write /sys/devices/virtual/pmic/mitigation/clock_div/gpu_clk_div 0x1 + write /sys/devices/virtual/pmic/mitigation/clock_div/cpu2_clk_div 0x1 + write /sys/devices/platform/cpupm/cpupm/cpd_cl1 1 #Enable power down + write /sys/devices/platform/cpupm/cpupm/cpd_cl2 1 #Enable power down + chown system system /dev/thermal/tz-by-name/soc/mode + chown system system /dev/thermal/tz-by-name/vdroop2/trip_point_0_temp + chown system system /dev/thermal/tz-by-name/vdroop2/trip_point_0_hyst + chown system system /dev/thermal/tz-by-name/vdroop1/trip_point_0_temp + chown system system /dev/thermal/tz-by-name/vdroop1/trip_point_0_hyst + chown system system /dev/thermal/tz-by-name/smpl_gm/trip_point_0_temp + chown system system /dev/thermal/tz-by-name/smpl_gm/trip_point_0_hyst + chown system system /dev/thermal/tz-by-name/ocp_cpu1/trip_point_0_temp + chown system system /dev/thermal/tz-by-name/ocp_cpu1/trip_point_0_hyst + chown system system /dev/thermal/tz-by-name/ocp_cpu2/trip_point_0_temp + chown system system /dev/thermal/tz-by-name/ocp_cpu2/trip_point_0_hyst + chown system system /dev/thermal/tz-by-name/ocp_tpu/trip_point_0_temp + chown system system /dev/thermal/tz-by-name/ocp_tpu/trip_point_0_hyst + chown system system /dev/thermal/tz-by-name/ocp_gpu/trip_point_0_temp + chown system system /dev/thermal/tz-by-name/ocp_gpu/trip_point_0_hyst + chown system system /dev/thermal/tz-by-name/soft_ocp_cpu1/trip_point_0_temp + chown system system /dev/thermal/tz-by-name/soft_ocp_cpu1/trip_point_0_hyst + chown system system /dev/thermal/tz-by-name/soft_ocp_cpu2/trip_point_0_temp + chown system system /dev/thermal/tz-by-name/soft_ocp_cpu2/trip_point_0_hyst + chown system system /dev/thermal/tz-by-name/soft_ocp_tpu/trip_point_0_temp + chown system system /dev/thermal/tz-by-name/soft_ocp_tpu/trip_point_0_hyst + chown system system /dev/thermal/tz-by-name/soft_ocp_gpu/trip_point_0_temp + chown system system /dev/thermal/tz-by-name/soft_ocp_gpu/trip_point_0_hyst + chown system system /dev/thermal/tz-by-name/soc/trip_point_0_temp + chown system system /dev/thermal/tz-by-name/soc/trip_point_0_hyst + chown system system /dev/thermal/tz-by-name/batoilo/trip_point_0_temp + chown system system /dev/thermal/tz-by-name/batoilo/trip_point_0_hyst + # Thermal + chown system system /dev/thermal/tz-by-name/disp_therm/trip_point_0_temp + chown system system /dev/thermal/tz-by-name/disp_therm/trip_point_0_hyst + chown system system /dev/thermal/tz-by-name/north_therm/trip_point_0_temp + chown system system /dev/thermal/tz-by-name/north_therm/trip_point_0_hyst + chown system system /dev/thermal/tz-by-name/cam_therm/trip_point_0_temp + chown system system /dev/thermal/tz-by-name/cam_therm/trip_point_0_hyst + chown system system /dev/thermal/tz-by-name/charging_therm/trip_point_0_temp + chown system system /dev/thermal/tz-by-name/charging_therm/trip_point_0_hyst + chown system system /dev/thermal/tz-by-name/soc_therm/trip_point_0_temp + chown system system /dev/thermal/tz-by-name/soc_therm/trip_point_0_hyst + chown system system /dev/thermal/tz-by-name/neutral_therm/trip_point_0_temp + chown system system /dev/thermal/tz-by-name/neutral_therm/trip_point_0_hyst + chown system system /dev/thermal/tz-by-name/usb_pwr_therm/trip_point_0_temp + chown system system /dev/thermal/tz-by-name/usb_pwr_therm/trip_point_0_hyst + chown system system /dev/thermal/tz-by-name/quiet_therm/trip_point_0_temp + chown system system /dev/thermal/tz-by-name/quiet_therm/trip_point_0_hyst + chown system system /dev/thermal/tz-by-name/usb_conn_therm/trip_point_0_temp + chown system system /dev/thermal/tz-by-name/usb_conn_therm/trip_point_0_hyst + chown system system /dev/thermal/tz-by-name/btmspkr_therm/trip_point_0_temp + chown system system /dev/thermal/tz-by-name/btmspkr_therm/trip_point_0_hyst + chown system system /dev/thermal/tz-by-name/rfpa_therm/trip_point_0_temp + chown system system /dev/thermal/tz-by-name/rfpa_therm/trip_point_0_hyst + chown system system /dev/thermal/cdev-by-name/thermal-cpufreq-0/user_vote + chown system system /dev/thermal/cdev-by-name/thermal-cpufreq-1/user_vote + chown system system /dev/thermal/cdev-by-name/thermal-cpufreq-2/user_vote + chown system system /dev/thermal/cdev-by-name/thermal-gpufreq-0/user_vote + chown system system /dev/thermal/cdev-by-name/gxp-cooling/user_vote + chown system system /dev/thermal/cdev-by-name/tpu_cooling/user_vote + chown system system /dev/thermal/cdev-by-name/fcc/cur_state + chown system system /dev/thermal/cdev-by-name/dc_icl/cur_state + chown system system /dev/thermal/cdev-by-name/wlc_fcc/cur_state + chown system system /dev/thermal/cdev-by-name/chg_mdis/cur_state + chown system system /dev/thermal/cdev-by-name/usbc-port/cur_state + +on charger + # Use charger thermal config + setprop vendor.thermal.config "thermal_info_config_charge.json" + + # Wait for insmod_sh to finish all common modules + wait_for_prop vendor.common.modules.ready 1 + + # Create thermal symlink in off charging mode + mkdir /dev/thermal 0750 system system + mkdir /dev/thermal/tz-by-name 0750 system system + mkdir /dev/thermal/cdev-by-name 0750 system system + start vendor.thermal.symlinks + +on property:vendor.disable.bcl.control=1 + write /sys/devices/virtual/pmic/mitigation/instruction/enable_mitigation 0 + +on property:vendor.disable.bcl.control=0 + write /sys/devices/virtual/pmic/mitigation/instruction/enable_mitigation 1 + +# UDFPS +on post-fs-data && property:ro.vendor.factory=1 + # HBM mode for UDFPS factory apk + chmod 666 /d/dri/0/DSI-1/panel/reg/payload + chmod 666 /d/dri/0/DSI-1/panel/reg/count + chmod 666 /d/dri/0/DSI-1/panel/reg/address + chmod 666 /d/dri/0/DSI-1/panel/hbm_mode + chmod 666 /sys/class/backlight/panel0-backlight/local_hbm_max_timeout + chmod 666 /sys/class/backlight/panel0-backlight/local_hbm_mode + chmod 666 /sys/class/backlight/panel0-backlight/hbm_mode + +# UFS +on property:ro.boot.mode=charger && property:init.svc.vendor.charger=running + # Enable UFS powersaving in Off Mode Charger + write /dev/sys/block/bootdevice/clkgate_enable 1 + # Disable dock-defend in Off Mode Charger + write /sys/devices/platform/google,charger/dd_state -1 + +# Haptics +on property:vendor.all.modules.ready=1 + mkdir /mnt/vendor/persist/haptics 0770 system system + chmod 770 /mnt/vendor/persist/haptics + chmod 440 /mnt/vendor/persist/haptics/cs40l26.cal + chown system system /mnt/vendor/persist/haptics + chown system system /mnt/vendor/persist/haptics/cs40l26.cal + + chown system system /sys/bus/i2c/devices/9-0043/calibration/f0_stored + chown system system /sys/bus/i2c/devices/9-0043/calibration/q_stored + chown system system /sys/bus/i2c/devices/9-0043/calibration/redc_stored + chown system system /sys/bus/i2c/devices/9-0043/default/vibe_state + chown system system /sys/bus/i2c/devices/9-0043/default/num_waves + chown system system /sys/bus/i2c/devices/9-0043/default/f0_offset + chown system system /sys/bus/i2c/devices/9-0043/default/owt_free_space + chown system system /sys/bus/i2c/devices/9-0043/default/f0_comp_enable + chown system system /sys/bus/i2c/devices/9-0043/default/redc_comp_enable + chown system system /sys/bus/i2c/devices/9-0043/default/delay_before_stop_playback_us + chown system system /sys/bus/i2c/devices/9-0043/dbc/dbc_env_rel_coef + chown system system /sys/bus/i2c/devices/9-0043/dbc/dbc_rise_headroom + chown system system /sys/bus/i2c/devices/9-0043/dbc/dbc_fall_headroom + chown system system /sys/bus/i2c/devices/9-0043/dbc/dbc_enable + chown system system /sys/bus/i2c/devices/9-0043/dbc/dbc_tx_lvl_thresh_fs + chown system system /sys/bus/i2c/devices/9-0043/dbc/dbc_tx_lvl_hold_off_ms + chown system system /sys/bus/i2c/devices/9-0043/default/pm_active_timeout_ms + enable vendor.vibrator.cs40l26 + +# MTE +on property:persist.device_config.runtime_native_boot.mode_override=sync + # Per-core mode overrides. + # Little Cores: sync + write /sys/devices/system/cpu/cpu0/mte_tcf_preferred sync + write /sys/devices/system/cpu/cpu1/mte_tcf_preferred sync + write /sys/devices/system/cpu/cpu2/mte_tcf_preferred sync + write /sys/devices/system/cpu/cpu3/mte_tcf_preferred sync + # Mid Cores: sync + write /sys/devices/system/cpu/cpu4/mte_tcf_preferred sync + write /sys/devices/system/cpu/cpu5/mte_tcf_preferred sync + write /sys/devices/system/cpu/cpu6/mte_tcf_preferred sync + # Big Core: sync + write /sys/devices/system/cpu/cpu7/mte_tcf_preferred sync + +on property:persist.device_config.runtime_native_boot.mode_override=asymm + # Per-core mode overrides. + write /sys/devices/system/cpu/cpu0/mte_tcf_preferred asymm + write /sys/devices/system/cpu/cpu1/mte_tcf_preferred asymm + write /sys/devices/system/cpu/cpu2/mte_tcf_preferred asymm + write /sys/devices/system/cpu/cpu3/mte_tcf_preferred asymm + write /sys/devices/system/cpu/cpu4/mte_tcf_preferred asymm + write /sys/devices/system/cpu/cpu5/mte_tcf_preferred asymm + write /sys/devices/system/cpu/cpu6/mte_tcf_preferred asymm + write /sys/devices/system/cpu/cpu7/mte_tcf_preferred asymm