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