1import /vendor/etc/init/hw/init.gs101.storage.rc
2import /vendor/etc/init/hw/init.gs101.usb.rc
3import [email protected]
4import init.exynos.sensorhub.rc
5import /vendor/etc/init/hw/init.aoc.rc
6
7on early-init
8    mount_all /vendor/etc/fstab.persist --early
9
10on init
11    # CPU0 cannot be offline
12    chmod 0444 /sys/devices/system/cpu/cpu0/online
13
14    # Set teo as cpu idle governor
15    write /sys/devices/system/cpu/cpuidle/current_governor teo
16    # Disable util-awareness
17    write /proc/vendor_sched/teo_util_threshold "1024 1024 1024"
18
19    chown system system /proc/vendor_sched/groups/bg/set_task_group
20    chown system system /proc/vendor_sched/groups/cam/set_task_group
21    chown system system /proc/vendor_sched/groups/fg/set_task_group
22    chown system system /proc/vendor_sched/groups/nnapi/set_task_group
23    chown system system /proc/vendor_sched/groups/sys/set_task_group
24    chown system system /proc/vendor_sched/groups/sys_bg/set_task_group
25    chown system system /proc/vendor_sched/groups/ta/set_task_group
26    chown system system /proc/vendor_sched/groups/rt/set_task_group
27    chown system system /proc/vendor_sched/groups/sf/set_task_group
28    chown system system /proc/vendor_sched/groups/dex2oat/set_task_group
29    chown system system /proc/vendor_sched/groups/cam_power/set_task_group
30    chown system system /proc/vendor_sched/groups/ota/set_task_group
31    chown system system /proc/vendor_sched/groups/bg/set_proc_group
32    chown system system /proc/vendor_sched/groups/cam/set_proc_group
33    chown system system /proc/vendor_sched/groups/fg/set_proc_group
34    chown system system /proc/vendor_sched/groups/nnapi/set_proc_group
35    chown system system /proc/vendor_sched/groups/sys/set_proc_group
36    chown system system /proc/vendor_sched/groups/sys_bg/set_proc_group
37    chown system system /proc/vendor_sched/groups/ta/set_proc_group
38    chown system system /proc/vendor_sched/groups/rt/set_proc_group
39    chown system system /proc/vendor_sched/groups/sf/set_proc_group
40    chown system system /proc/vendor_sched/groups/dex2oat/set_proc_group
41    chown system system /proc/vendor_sched/groups/cam_power/set_proc_group
42    chown system system /proc/vendor_sched/groups/ota/set_proc_group
43    chown system system /proc/vendor_sched/prefer_idle_set
44    chown system system /proc/vendor_sched/prefer_idle_clear
45    chown system system /proc/vendor_sched/pmu_poll_enable
46    chown system system /proc/vendor_sched/pmu_poll_time
47    chown system system /proc/vendor_sched/uclamp_fork_reset_clear
48    chown system system /proc/vendor_sched/uclamp_fork_reset_set
49    chown system system /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/lcpi_threshold
50    chown system system /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/spc_threshold
51    chown system system /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/limit_frequency
52    chown system system /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/pmu_limit_enable
53    chown system system /sys/devices/system/cpu/cpufreq/policy4/sched_pixel/lcpi_threshold
54    chown system system /sys/devices/system/cpu/cpufreq/policy4/sched_pixel/spc_threshold
55    chown system system /sys/devices/system/cpu/cpufreq/policy4/sched_pixel/limit_frequency
56    chown system system /sys/devices/system/cpu/cpufreq/policy4/sched_pixel/pmu_limit_enable
57    chown system system /sys/devices/system/cpu/cpufreq/policy6/sched_pixel/lcpi_threshold
58    chown system system /sys/devices/system/cpu/cpufreq/policy6/sched_pixel/spc_threshold
59    chown system system /sys/devices/system/cpu/cpufreq/policy6/sched_pixel/limit_frequency
60    chown system system /sys/devices/system/cpu/cpufreq/policy6/sched_pixel/pmu_limit_enable
61    chown system system /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu0_memlat@17000010/memlat_cpuidle_state_aware
62    chown system system /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu1_memlat@17000010/memlat_cpuidle_state_aware
63    chown system system /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu2_memlat@17000010/memlat_cpuidle_state_aware
64    chown system system /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu3_memlat@17000010/memlat_cpuidle_state_aware
65    chown system system /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu4_memlat@17000010/memlat_cpuidle_state_aware
66    chown system system /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu5_memlat@17000010/memlat_cpuidle_state_aware
67    chown system system /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu6_memlat@17000010/memlat_cpuidle_state_aware
68    chown system system /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu7_memlat@17000010/memlat_cpuidle_state_aware
69
70    chmod 0220 /proc/vendor_sched/groups/bg/set_task_group
71    chmod 0220 /proc/vendor_sched/groups/cam/set_task_group
72    chmod 0220 /proc/vendor_sched/groups/fg/set_task_group
73    chmod 0220 /proc/vendor_sched/groups/nnapi/set_task_group
74    chmod 0220 /proc/vendor_sched/groups/sys/set_task_group
75    chmod 0220 /proc/vendor_sched/groups/sys_bg/set_task_group
76    chmod 0220 /proc/vendor_sched/groups/ta/set_task_group
77    chmod 0220 /proc/vendor_sched/groups/rt/set_task_group
78    chmod 0220 /proc/vendor_sched/groups/sf/set_task_group
79    chmod 0220 /proc/vendor_sched/groups/dex2oat/set_task_group
80    chmod 0220 /proc/vendor_sched/groups/cam_power/set_task_group
81    chmod 0220 /proc/vendor_sched/groups/ota/set_task_group
82    chmod 0220 /proc/vendor_sched/groups/bg/set_proc_group
83    chmod 0220 /proc/vendor_sched/groups/cam/set_proc_group
84    chmod 0220 /proc/vendor_sched/groups/fg/set_proc_group
85    chmod 0220 /proc/vendor_sched/groups/nnapi/set_proc_group
86    chmod 0220 /proc/vendor_sched/groups/sys/set_proc_group
87    chmod 0220 /proc/vendor_sched/groups/sys_bg/set_proc_group
88    chmod 0220 /proc/vendor_sched/groups/ta/set_proc_group
89    chmod 0220 /proc/vendor_sched/groups/rt/set_proc_group
90    chmod 0220 /proc/vendor_sched/groups/sf/set_proc_group
91    chmod 0220 /proc/vendor_sched/groups/dex2oat/set_proc_group
92    chmod 0220 /proc/vendor_sched/groups/cam_power/set_proc_group
93    chmod 0220 /proc/vendor_sched/groups/ota/set_proc_group
94    chmod 0220 /proc/vendor_sched/prefer_idle_set
95    chmod 0220 /proc/vendor_sched/prefer_idle_clear
96    chmod 0660 /proc/vendor_sched/pmu_poll_enable
97    chmod 0220 /proc/vendor_sched/pmu_poll_time
98    chmod 0220 /proc/vendor_sched/uclamp_fork_reset_clear
99    chmod 0220 /proc/vendor_sched/uclamp_fork_reset_set
100
101    start vendor.keymaster-3-0
102
103    # Change permission of sched qos nodes
104    chown system system /proc/vendor_sched/sched_qos/adpf_set
105    chown system system /proc/vendor_sched/sched_qos/adpf_clear
106    chown system system /proc/vendor_sched/sched_qos/auto_uclamp_max_set
107    chown system system /proc/vendor_sched/sched_qos/auto_uclamp_max_clear
108    chown system system /proc/vendor_sched/sched_qos/boost_prio_set
109    chown system system /proc/vendor_sched/sched_qos/boost_prio_clear
110    chown system system /proc/vendor_sched/sched_qos/preempt_wakeup_set
111    chown system system /proc/vendor_sched/sched_qos/preempt_wakeup_clear
112    chown system system /proc/vendor_sched/sched_qos/prefer_fit_set
113    chown system system /proc/vendor_sched/sched_qos/prefer_fit_clear
114    chown system system /proc/vendor_sched/sched_qos/prefer_high_cap_set
115    chown system system /proc/vendor_sched/sched_qos/prefer_high_cap_clear
116    chown system system /proc/vendor_sched/sched_qos/prefer_idle_set
117    chown system system /proc/vendor_sched/sched_qos/prefer_idle_clear
118    chown system system /proc/vendor_sched/sched_qos/rampup_multiplier_set
119    chown system system /proc/vendor_sched/sched_qos/rampup_multiplier_clear
120
121    chmod 0220 /proc/vendor_sched/sched_qos/adpf_set
122    chmod 0220 /proc/vendor_sched/sched_qos/adpf_clear
123    chmod 0220 /proc/vendor_sched/sched_qos/auto_uclamp_max_set
124    chmod 0220 /proc/vendor_sched/sched_qos/auto_uclamp_max_clear
125    chmod 0220 /proc/vendor_sched/sched_qos/boost_prio_set
126    chmod 0220 /proc/vendor_sched/sched_qos/boost_prio_clear
127    chmod 0220 /proc/vendor_sched/sched_qos/preempt_wakeup_set
128    chmod 0220 /proc/vendor_sched/sched_qos/preempt_wakeup_clear
129    chmod 0220 /proc/vendor_sched/sched_qos/prefer_fit_set
130    chmod 0220 /proc/vendor_sched/sched_qos/prefer_fit_clear
131    chmod 0220 /proc/vendor_sched/sched_qos/prefer_high_cap_set
132    chmod 0220 /proc/vendor_sched/sched_qos/prefer_high_cap_clear
133    chmod 0220 /proc/vendor_sched/sched_qos/prefer_idle_set
134    chmod 0220 /proc/vendor_sched/sched_qos/prefer_idle_clear
135    chmod 0220 /proc/vendor_sched/sched_qos/rampup_multiplier_set
136    chmod 0220 /proc/vendor_sched/sched_qos/rampup_multiplier_clear
137
138    # Enable sched_qos for some groups
139    write /proc/vendor_sched/groups/ta/qos_adpf_enable 1
140    write /proc/vendor_sched/groups/ta/qos_auto_uclamp_max_enable 1
141    write /proc/vendor_sched/groups/ta/qos_boost_prio_enable 1
142    write /proc/vendor_sched/groups/ta/qos_preempt_wakeup_enable 1
143    write /proc/vendor_sched/groups/ta/qos_prefer_fit_enable 1
144    write /proc/vendor_sched/groups/ta/qos_prefer_high_cap_enable 1
145    write /proc/vendor_sched/groups/ta/qos_prefer_idle_enable 1
146    write /proc/vendor_sched/groups/ta/qos_rampup_multiplier_enable 1
147    write /proc/vendor_sched/groups/fg/qos_adpf_enable 1
148    write /proc/vendor_sched/groups/fg/qos_auto_uclamp_max_enable 1
149    write /proc/vendor_sched/groups/fg/qos_boost_prio_enable 1
150    write /proc/vendor_sched/groups/fg/qos_preempt_wakeup_enable 1
151    write /proc/vendor_sched/groups/fg/qos_prefer_fit_enable 1
152    write /proc/vendor_sched/groups/fg/qos_prefer_high_cap_enable 1
153    write /proc/vendor_sched/groups/fg/qos_prefer_idle_enable 1
154    write /proc/vendor_sched/groups/fg/qos_rampup_multiplier_enable 1
155    write /proc/vendor_sched/groups/fg_wi/qos_adpf_enable 1
156    write /proc/vendor_sched/groups/fg_wi/qos_auto_uclamp_max_enable 1
157    write /proc/vendor_sched/groups/fg_wi/qos_boost_prio_enable 1
158    write /proc/vendor_sched/groups/fg_wi/qos_preempt_wakeup_enable 1
159    write /proc/vendor_sched/groups/fg_wi/qos_prefer_fit_enable 1
160    write /proc/vendor_sched/groups/fg_wi/qos_prefer_high_cap_enable 1
161    write /proc/vendor_sched/groups/fg_wi/qos_prefer_idle_enable 1
162    write /proc/vendor_sched/groups/fg_wi/qos_rampup_multiplier_enable 1
163    write /proc/vendor_sched/groups/cam/qos_adpf_enable 1
164    write /proc/vendor_sched/groups/cam/qos_auto_uclamp_max_enable 1
165    write /proc/vendor_sched/groups/cam/qos_prefer_fit_enable 1
166    write /proc/vendor_sched/groups/cam/qos_prefer_high_cap_enable 1
167    write /proc/vendor_sched/groups/cam/qos_prefer_idle_enable 1
168    write /proc/vendor_sched/groups/cam/qos_rampup_multiplier_enable 1
169    write /proc/vendor_sched/groups/cam_power/qos_adpf_enable 1
170    write /proc/vendor_sched/groups/cam_power/qos_auto_uclamp_max_enable 1
171    write /proc/vendor_sched/groups/cam_power/qos_prefer_fit_enable 1
172    write /proc/vendor_sched/groups/cam_power/qos_prefer_high_cap_enable 1
173    write /proc/vendor_sched/groups/cam_power/qos_prefer_idle_enable 1
174    write /proc/vendor_sched/groups/cam_power/qos_rampup_multiplier_enable 1
175    write /proc/vendor_sched/groups/rt/qos_adpf_enable 1
176    write /proc/vendor_sched/groups/rt/qos_rampup_multiplier_enable 1
177    write /proc/vendor_sched/groups/sf/qos_adpf_enable 1
178    write /proc/vendor_sched/groups/sf/qos_rampup_multiplier_enable 1
179
180    # ZRAM setup
181    write /sys/block/zram0/comp_algorithm lz77eh
182    write /proc/sys/vm/page-cluster 0
183
184    # Some user code relies on ro.boot.hardware.revision
185    setprop ro.boot.hardware.revision ${ro.revision}
186
187    # Allow PAI targeting per hardware SKU
188    setprop ro.oem.key1 ${ro.boot.hardware.sku}
189
190    # Property used by vintf for sku specific manifests
191    # Property used by NFC for sku specific configurations
192    setprop ro.boot.product.hardware.sku ${ro.boot.hardware.sku}
193
194    # Support legacy paths
195    symlink /data/app /factory
196
197    # Apply network parameters for high data performance.
198    write /proc/sys/net/core/rmem_default 327680
199    write /proc/sys/net/core/rmem_max 8388608
200    write /proc/sys/net/core/wmem_default 327680
201    write /proc/sys/net/core/wmem_max 8388608
202    write /proc/sys/net/core/optmem_max 20480
203    write /proc/sys/net/core/netdev_max_backlog 10000
204    write /proc/sys/net/ipv4/tcp_rmem "2097152 4194304 8388608"
205    write /proc/sys/net/ipv4/tcp_wmem "262144 524288 8388608"
206    write /proc/sys/net/ipv4/tcp_mem "44259 59012 88518"
207    write /proc/sys/net/ipv4/udp_mem "88518 118025 177036"
208
209    write /sys/class/net/rmnet0/queues/rx-0/rps_cpus fe
210    write /sys/class/net/rmnet1/queues/rx-0/rps_cpus fe
211    write /sys/class/net/rmnet2/queues/rx-0/rps_cpus fe
212    write /sys/class/net/rmnet3/queues/rx-0/rps_cpus fe
213    write /sys/class/net/rmnet4/queues/rx-0/rps_cpus fe
214    write /sys/class/net/rmnet5/queues/rx-0/rps_cpus fe
215    write /sys/class/net/rmnet6/queues/rx-0/rps_cpus fe
216    write /sys/class/net/rmnet7/queues/rx-0/rps_cpus fe
217
218    # Boot time 183626384
219    write /proc/vendor_sched/groups/ta/uclamp_min 201
220    write /proc/vendor_sched/groups/ta/prefer_idle 1
221    write /proc/vendor_sched/groups/fg/uclamp_min 201
222    write /proc/vendor_sched/groups/fg/prefer_idle 1
223    write /proc/vendor_sched/groups/sys/uclamp_min 201
224    write /proc/vendor_sched/groups/sys/prefer_idle 1
225
226    # governor setting
227    write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor sched_pixel
228    write /sys/devices/system/cpu/cpu0/cpufreq/sched_pixel/up_rate_limit_us 500
229    write /sys/devices/system/cpu/cpu0/cpufreq/sched_pixel/down_rate_limit_scale_pow 2
230    write /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor sched_pixel
231    write /sys/devices/system/cpu/cpu4/cpufreq/sched_pixel/up_rate_limit_us 500
232    write /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor sched_pixel
233    write /sys/devices/system/cpu/cpu6/cpufreq/sched_pixel/up_rate_limit_us 500
234
235    # memlat cpuidle awareness setting
236    write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu0_memlat@17000010/memlat_cpuidle_state_aware 2
237    write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu1_memlat@17000010/memlat_cpuidle_state_aware 2
238    write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu2_memlat@17000010/memlat_cpuidle_state_aware 2
239    write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu3_memlat@17000010/memlat_cpuidle_state_aware 2
240    write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu4_memlat@17000010/memlat_cpuidle_state_aware 2
241    write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu5_memlat@17000010/memlat_cpuidle_state_aware 2
242    write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu6_memlat@17000010/memlat_cpuidle_state_aware 2
243    write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu7_memlat@17000010/memlat_cpuidle_state_aware 2
244
245    # RT uclamp setting
246    write /proc/sys/kernel/sched_util_clamp_min_rt_default 0
247
248    # change permissions and default values for camera-daemon cpu controller
249    chown system system /dev/cpuctl/camera-daemon/cpu.uclamp.min
250    chown system system /dev/cpuctl/camera-daemon/cpu.uclamp.max
251    chown root root /dev/cpuctl/camera-daemon/cpu.uclamp.latency_sensitive
252    chown system system /dev/cpuctl/camera-daemon/cgroup.procs
253
254    mkdir /dev/cpuset/camera-daemon-high-group
255    write /dev/cpuset/camera-daemon-high-group/cpus 0-7
256    write /dev/cpuset/camera-daemon-high-group/mems 0
257    chown system system /dev/cpuset/camera-daemon-high-group/tasks
258    chmod 0664 /dev/cpuset/camera-daemon-high-group/tasks
259
260    mkdir /dev/cpuset/camera-daemon-mid-group
261    write /dev/cpuset/camera-daemon-mid-group/cpus 0-7
262    write /dev/cpuset/camera-daemon-mid-group/mems 0
263    chown system system /dev/cpuset/camera-daemon-mid-group/tasks
264    chmod 0664 /dev/cpuset/camera-daemon-mid-group/tasks
265
266    mkdir /dev/cpuset/camera-daemon-mid-high-group
267    write /dev/cpuset/camera-daemon-mid-high-group/cpus 0-7
268    write /dev/cpuset/camera-daemon-mid-high-group/mems 0
269    chown system system /dev/cpuset/camera-daemon-mid-high-group/tasks
270    chmod 0664 /dev/cpuset/camera-daemon-mid-high-group/tasks
271
272    write /proc/vendor_sched/groups/cam/prefer_idle 1
273    write /proc/vendor_sched/groups/cam/uclamp_min 1
274
275    chown system system /dev/cpuset/cgroup.procs
276
277    # nanohub sensor
278    chmod 0664 /dev/nanohub
279    chmod 0664 /dev/nanohub_comms
280    chown system system /dev/nanohub
281    chown system system /dev/nanohub_comms
282
283    # logbuffer
284    chown system system /dev/logbuffer_maxfg
285    chown system system /dev/logbuffer_maxfg_base
286    chown system system /dev/logbuffer_maxfg_flip
287    chown system system /dev/logbuffer_maxfg_monitor
288    chown system system /dev/logbuffer_maxfg_base_monitor
289    chown system system /dev/logbuffer_maxfg_flip_monitor
290    chown system system /dev/logbuffer_maxq
291    chown system system /dev/logbuffer_google,cpm
292    chown system system /dev/logbuffer_rtx
293    chown system system /dev/logbuffer_ssoc
294    chown system system /dev/logbuffer_ttf
295    chown system system /dev/logbuffer_tcpm
296    chown system system /dev/logbuffer_usbpd
297    chown system system /dev/logbuffer_pogo_transport
298    chown system system /dev/logbuffer_wireless
299    chown system system /dev/logbuffer_pca9468
300    chown system system /dev/logbuffer_cpm
301    chown system system /dev/logbuffer_bd
302    chown system system /dev/logbuffer_cpif
303
304    # Dump maxfg
305    chown system system /sys/class/power_supply/maxfg/m5_model_state
306    chown system system /sys/class/power_supply/maxfg_base/m5_model_state
307
308    # Modem temperature driver
309    chown radio system /sys/devices/platform/cp-tm1/cp_temp
310
311    # insert display module
312    start init_display
313
314    # Charge stats (write 0)
315    chown system system /sys/class/power_supply/battery/charge_stats
316
317    # Pca Charge stats (write 0)
318    chown system system /sys/class/power_supply/pca9468-mains/device/chg_stats
319
320    # Wireless Charge stats (write 0)
321    chown system system /sys/class/power_supply/wireless/device/charge_stats
322
323    # Thermal Charge stats (write 0)
324    chown system system /sys/devices/platform/google,charger/thermal_stats
325
326    # Google Charger stats (write 0)
327    chown system system /sys/devices/platform/google,charger/charge_stats
328
329    # Permission for wireless charging fan
330    chown system system /sys/devices/platform/google,charger/thermal_dc_fan_alarm
331    chown system system /sys/devices/platform/google,cpm/thermal_mdis_fan_alarm
332
333    # Permission for wireless charging
334    chown system system /sys/class/power_supply/wireless/capacity
335    chown system system /sys/class/power_supply/wireless/device/rtx
336    chown system system /sys/class/power_supply/wireless/device/rxdata
337    chown system system /sys/class/power_supply/wireless/device/txdata
338    chown system system /sys/class/power_supply/wireless/device/rxlen
339    chown system system /sys/class/power_supply/wireless/device/txlen
340    chown system system /sys/class/power_supply/wireless/device/ccreset
341    chown system system /sys/class/power_supply/wireless/device/status
342    chown system system /sys/class/power_supply/wireless/device/version
343    chown system system /sys/class/power_supply/wireless/device/features
344    chown system system /sys/class/power_supply/wireless/device/authtype
345    chown system system /sys/class/power_supply/wireless/device/authtstart
346
347    # Adaptive charge
348    chown system system /sys/class/power_supply/battery/charge_deadline
349
350    # Charging policy
351    chown system system /sys/class/power_supply/battery/charging_policy
352
353    # BatteryHealthData
354    chown system system /sys/class/power_supply/battery/first_usage_date
355    chown system system /sys/class/power_supply/battery/swelling_data
356
357    # Battery Defender
358    chown system system /sys/devices/platform/google,battery/power_supply/battery/bd_trickle_cnt
359    chown system system /sys/devices/platform/google,battery/power_supply/battery/bd_trickle_dry_run
360    chown system system /sys/devices/platform/google,battery/power_supply/battery/bd_trickle_enable
361    chown system system /sys/devices/platform/google,battery/power_supply/battery/bd_trickle_recharge_soc
362    chown system system /sys/devices/platform/google,battery/power_supply/battery/bd_trickle_reset_sec
363    chown system system /sys/devices/platform/google,battery/power_supply/battery/bd_clear
364    chown system system /sys/devices/platform/google,battery/power_supply/battery/health_safety_margin
365    chown system system /sys/devices/platform/google,battery/power_supply/battery/aacr_state
366    chown system system /sys/devices/platform/google,battery/power_supply/battery/aacr_cycle_max
367    chown system system /sys/devices/platform/google,battery/power_supply/battery/aacr_cycle_grace
368    chown system system /sys/devices/platform/google,charger/bd_drainto_soc
369    chown system system /sys/devices/platform/google,charger/bd_recharge_soc
370    chown system system /sys/devices/platform/google,charger/bd_recharge_voltage
371    chown system system /sys/devices/platform/google,charger/bd_resume_abs_temp
372    chown system system /sys/devices/platform/google,charger/bd_resume_soc
373    chown system system /sys/devices/platform/google,charger/bd_resume_temp
374    chown system system /sys/devices/platform/google,charger/bd_resume_time
375    chown system system /sys/devices/platform/google,charger/bd_temp_dry_run
376    chown system system /sys/devices/platform/google,charger/bd_temp_enable
377    chown system system /sys/devices/platform/google,charger/bd_trigger_temp
378    chown system system /sys/devices/platform/google,charger/bd_trigger_time
379    chown system system /sys/devices/platform/google,charger/bd_trigger_voltage
380    chown system system /sys/devices/platform/google,charger/bd_clear
381    chown system system /sys/devices/platform/google,charger/bd_state
382    chown system system /sys/devices/platform/google,charger/charge_start_level
383    chown system system /sys/devices/platform/google,charger/charge_stop_level
384    chown system system /sys/devices/platform/google,cpm/dc_ctl
385    # Important to include dd_state as it's used in battery defender in charger mode
386    chown system system /sys/devices/platform/google,charger/dd_state
387    chown system system /sys/devices/platform/google,charger/dd_settings
388
389    # Power Stats HAL
390    chown system system /dev/bbd_pwrstat
391
392    # Add a boost for NNAPI HAL
393    write /proc/vendor_sched/groups/nnapi/prefer_idle 0
394    write /proc/vendor_sched/groups/nnapi/uclamp_min 512
395
396    # Add memlat governor settings
397    write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu0_memlat@17000010/polling_interval 10
398    write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu1_memlat@17000010/polling_interval 10
399    write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu2_memlat@17000010/polling_interval 10
400    write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu3_memlat@17000010/polling_interval 10
401    write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu4_memlat@17000010/polling_interval 10
402    write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu5_memlat@17000010/polling_interval 10
403    write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu6_memlat@17000010/polling_interval 10
404    write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu7_memlat@17000010/polling_interval 10
405    write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu0_memlat@17000010/mem_latency/ratio_ceil 400
406    write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu1_memlat@17000010/mem_latency/ratio_ceil 400
407    write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu2_memlat@17000010/mem_latency/ratio_ceil 400
408    write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu3_memlat@17000010/mem_latency/ratio_ceil 400
409    write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu4_memlat@17000010/mem_latency/ratio_ceil 2700
410    write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu5_memlat@17000010/mem_latency/ratio_ceil 2700
411    write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu6_memlat@17000010/mem_latency/ratio_ceil 3200
412    write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu7_memlat@17000010/mem_latency/ratio_ceil 3200
413
414    # Set boost_adpf_prio, -1 by default
415    write /proc/vendor_sched/boost_adpf_prio ${persist.device_config.vendor_system_native_boot.boost_adpf_prio:--1}
416
417on init && property:ro.boot.hw.soc.rev=0
418    setprop vendor.powerhal.config powerhint_a0.json
419
420on init && property:ro.boot.hw.soc.rev=1
421    setprop vendor.powerhal.config powerhint_a1.json
422
423on init && property:ro.boot.hw.soc.rev=0
424    # STOPSHIP b/177967147 disable SICD
425    write /sys/devices/platform/cpupm/cpupm/sicd 0
426
427on init && property:ro.boot.hw.soc.rev=1
428    # STOPSHIP b/177967147 disable SICD
429    write /sys/devices/platform/cpupm/cpupm/sicd 0
430
431on late-fs
432    # Start bootanimation class before mount
433    start bootanim
434    class_start animation
435
436    # Mount RW partitions which need run fsck
437    mount_all --late
438
439on late-init
440    write /sys/devices/system/cpu/cpu0/cpufreq/sched_pixel/down_rate_limit_us 5000
441    write /sys/devices/system/cpu/cpu4/cpufreq/sched_pixel/down_rate_limit_us 20000
442    write /sys/devices/system/cpu/cpu6/cpufreq/sched_pixel/down_rate_limit_us 20000
443
444on post-fs-data
445    # Log data folder
446    mkdir /data/vendor 0771 radio system
447    mkdir /data/vendor/log 0771 radio system
448    mkdir /data/vendor/log/cbd 0771 radio system
449    mkdir /data/vendor/log/rfsd 0771 radio system
450
451    mkdir /data/exynos/log 0771 radio system
452    mkdir /data/vendor/rild 0771 radio system
453    mkdir /data/vendor/dump 0771 radio system
454    mkdir /data/vendor/slog 0771 system system
455
456    # PixelLogger log paths.
457    mkdir /data/vendor/radio 773 system radio
458    mkdir /data/vendor/radio/logs 773 system radio
459    mkdir /data/vendor/radio/logs/always-on 777 system radio
460
461    # Modem extended log folder
462    mkdir /data/vendor/radio/extended_logs 0771 radio system
463
464    # Modem MDS log folder
465    mkdir /data/vendor/radio/mds 0771 radio system
466
467    # Unzipped modem images folder
468    mkdir /data/vendor/radio/image 0771 radio system
469
470    # Modem stat folder
471    mkdir /data/vendor/modem_stat 0771 radio system
472    write /data/vendor/modem_stat/debug.txt ""
473    chown radio system /data/vendor/modem_stat/debug.txt
474    chmod 0664 /data/vendor/modem_stat/debug.txt
475
476    # Modem replay folder
477    mkdir /mnt/vendor/modem_userdata/replay 0775 radio system
478
479    # Write display MIPI frequency from Modem
480    chown system system /sys/devices/platform/1c2c0000.drmdsim/hs_clock
481    chown system system /sys/devices/platform/1c2d0000.drmdsim/hs_clock
482    chmod 0664 /sys/devices/platform/1c2c0000.drmdsim/hs_clock
483    chmod 0664 /sys/devices/platform/1c2d0000.drmdsim/hs_clock
484
485    setprop wifi.direct.interface p2p-dev-wlan0
486    setprop wifi.aware.interface aware_nmi0
487
488# IPSEC PIDDIR for VoWiFi
489    mkdir /data/vendor/misc 0771 root system
490    mkdir /data/vendor/misc/vpn 0771 root system
491
492# Permissions Camera
493    mkdir /data/vendor/camera 0770 system camera
494    mkdir /data/vendor/camera/catpipe 0770 system camera
495    chmod 0755 /sys/kernel/debug/tracing
496    restorecon /sys/kernel/debug/tracing/trace_marker
497
498    # ranging sensor
499    chown system system /dev/ispolin_ranging
500    chmod 0660 /dev/ispolin_ranging
501
502    # Factory calibration files
503    chmod 0771 /mnt/vendor/persist/camera
504    chmod 0771 /mnt/vendor/persist/camera/OTP_calibration
505    chmod 0771 /mnt/vendor/persist/camera/pdaf_calibration_data
506    chmod 0771 /mnt/vendor/persist/camera/rear
507
508# Audio dump and debug
509    mkdir /data/vendor/audio 0770 audio audio
510
511# Create the directories for Darwinn HAL.
512    mkdir /data/vendor/hal_neuralnetworks_darwinn 0770 system system
513    mkdir /data/vendor/hal_neuralnetworks_darwinn/checksum_cache 0770 system system
514    mkdir /data/vendor/edgetpu 0770 system system
515    mkdir /data/vendor/edgetpu/cache 0770 system system
516
517# Compatibility path for TPU
518    symlink /dev/abrolhos /dev/edgetpu
519
520on zygote-start
521    # For PixelLogger configuration file.
522    chmod 0771 /data/vendor/wifi
523    write /proc/vendor_sched/groups/sys/uclamp_min 0
524
525on post-fs-data
526    # Create the directories used by the Wireless subsystem
527    mkdir /data/vendor/wifi 0771 wifi wifi
528    mkdir /data/vendor/wifi/wpa 0770 wifi wifi
529    mkdir /data/vendor/wifi/wpa/sockets 0770 wifi wifi
530
531# Gatekeeper data
532    mkdir /data/vendor/gk 0771 system system
533
534# HWC data
535    mkdir /data/vendor/log/hwc 0771 system graphics
536
537# Video data
538    mkdir /data/vendor/media 0700 mediacodec mediacodec
539
540on post-fs-data
541    # GPS
542    mkdir /data/vendor/gps 0771 system system
543    chown system system /data/vendor/gps
544    rm /data/vendor/gps/gps_started
545    rm /data/vendor/gps/glonass_started
546    rm /data/vendor/gps/beidou_started
547    rm /data/vendor/gps/smd_started
548    rm /data/vendor/gps/sv_cno.info
549
550    chown gps system /sys/devices/platform/10940000.spi/spi_master/spi5/spi5.0/nstandby
551    chmod 0664 /dev/ttyBCM
552    chown gps system /dev/ttyBCM
553    chmod 0664 /dev/bbd_control
554    chown gps system /dev/bbd_control
555    chmod 0664 /dev/bbd_patch
556    chown gps system /dev/bbd_patch
557    chmod 0664 /dev/bbd_sensor
558    chown gps system /dev/bbd_sensor
559
560on early-boot
561    # Wait for insmod_sh to finish all common modules
562    wait_for_prop vendor.common.modules.ready 1
563
564on boot
565
566    # Allow to access debugfs for system:system
567    chmod 0755 /sys/kernel/debug
568    chown system system /sys/kernel/debug
569
570    #setprop ro.radio.noril no
571
572    # default country code
573    setprop ro.boot.wificountrycode 00
574
575    # Set up kernel tracing, but disable it by default
576    chmod 0222 /sys/kernel/debug/tracing/trace_marker
577    write /sys/kernel/debug/tracing/tracing_on 0
578
579    # Change permission for A-Box firmware logs file & GPR dump
580    chown audioserver system /sys/devices/platform/17c50000.abox/reset
581    chown audioserver system /sys/devices/platform/17c50000.abox/service
582    chown audioserver system /sys/devices/platform/17c50000.abox/0.abox_debug/gpr
583    chown audioserver system /sys/devices/platform/17c50000.abox/0.abox_debug/calliope_sram
584    chown audioserver system /sys/devices/platform/17c50000.abox/0.abox_debug/calliope_dram
585    chown audioserver system /sys/devices/platform/17c50000.abox/0.abox_debug/calliope_iva
586    chown audioserver system /sys/kernel/debug/abox/log-00
587
588# Permission for USB SELECT
589    chown system system /sys/class/android_usb/android0/enable
590    chmod 0660 /sys/class/android_usb/android0/enable
591    chown system system /sys/class/android_usb/android0/idVendor
592    chmod 0660 /sys/class/android_usb/android0/idVendor
593    chown system system /sys/class/android_usb/android0/idProduct
594    chmod 0660 /sys/class/android_usb/android0/idProduct
595    chown system system /sys/class/android_usb/android0/f_diag/clients
596    chmod 0660 /sys/class/android_usb/android0/f_diag/clients
597    chown system system /sys/class/android_usb/android0/functions
598    chmod 0660 /sys/class/android_usb/android0/functions
599    chown system system /sys/class/android_usb/android0/bDeviceClass
600    chmod 0660 /sys/class/android_usb/android0/bDeviceClass
601
602# Permission for UART SWITCH
603    chmod 0660 /sys/class/sec/switch/uart_sel
604    chown system system /sys/class/sec/switch/uart_sel
605
606# VTS sysfs file permission
607    chown audioserver system /sys/devices/platform/13810000.vts/vts_svoice_model
608    chown audioserver system /sys/devices/platform/13810000.vts/vts_google_model
609    chmod 0660 /sys/devices/platform/13810000.vts/vts_svoice_model
610    chmod 0660 /sys/devices/platform/13810000.vts/vts_google_model
611
612# WLAN firmware/driver path
613    chown wifi wifi /sys/module/bcmdhd/parameters/nvram_path
614    chown wifi wifi /sys/module/bcmdhd/parameters/firmware_path
615
616on property:persist.vendor.radio.no_modem_board=1
617    setprop ro.radio.noril yes
618
619on fs
620    mount_all --early
621    restorecon_recursive /mnt/vendor/efs
622    chown radio system /mnt/vendor/efs
623    restorecon_recursive /mnt/vendor/efs_backup
624    chown radio system /mnt/vendor/efs_backup
625    restorecon_recursive /mnt/vendor/modem_userdata
626    chown radio system /mnt/vendor/modem_userdata
627
628    # for cycle count backup
629    mkdir /mnt/vendor/persist/battery 0700 system system
630
631    restorecon_recursive /mnt/vendor/persist
632    restorecon_recursive /mnt/vendor/persist/aoc
633    restorecon_recursive /mnt/vendor/persist/audio
634    restorecon_recursive /mnt/vendor/persist/sensors
635    restorecon_recursive /mnt/vendor/persist/battery
636    restorecon_recursive /mnt/vendor/persist/modem
637    # Set up display-related directories and permissions
638    # Add restorecon_recursive command to make sure the restorecon label is persist_display_file.
639    restorecon_recursive /mnt/vendor/persist/display
640    mkdir /mnt/vendor/persist/data/sfs 0700 system system
641    mkdir /mnt/vendor/persist/data/tz 0700 system system
642    mkdir /mnt/vendor/persist/touch 0770 system system
643    mkdir /mnt/vendor/persist/audio 0770 system system
644    chown media audio /mnt/vendor/persist/audio
645
646# Permissions for ION
647    chmod 0660 /sys/class/ion_cma/ion_video_ext/isolated
648    chown system system /sys/class/ion_cma/ion_video_ext/isolated
649
650# Permissions for hwcomposer
651    chown system system /sys/class/backlight/panel0-backlight/als_table
652    chown system system /sys/class/backlight/panel0-backlight/brightness
653    chown system system /sys/class/backlight/panel0-backlight/dimming_on
654    chown system system /sys/class/backlight/panel0-backlight/hbm_mode
655    chown system system /sys/class/backlight/panel0-backlight/local_hbm_mode
656    chown system system /sys/class/backlight/panel0-backlight/allow_wakeup_by_state_change
657    chown system system /sys/devices/platform/exynos-drm/primary-panel/gamma
658    chown system system /sys/devices/platform/exynos-drm/primary-panel/min_vrefresh
659    chown system system /sys/devices/platform/exynos-drm/primary-panel/idle_delay_ms
660    chown system system /sys/devices/platform/exynos-drm/primary-panel/panel_need_handle_idle_exit
661    chown system system /sys/module/drm/parameters/vblankoffdelay
662    chown system system /sys/module/drm/parameters/debug
663    chown system system /sys/class/dqe0/atc/ambient_light
664    chown system system /sys/class/dqe0/atc/st
665    chown system system /sys/class/dqe0/atc/en
666    chown system system /sys/class/dqe0/atc/lt
667    chown system system /sys/class/dqe0/atc/ns
668    chown system system /sys/class/dqe0/atc/dither
669    chown system system /sys/class/dqe0/atc/pl_w1
670    chown system system /sys/class/dqe0/atc/pl_w2
671    chown system system /sys/class/dqe0/atc/ctmode
672    chown system system /sys/class/dqe0/atc/pp_en
673    chown system system /sys/class/dqe0/atc/upgrade_on
674    chown system system /sys/class/dqe0/atc/tdr_max
675    chown system system /sys/class/dqe0/atc/tdr_min
676    chown system system /sys/class/dqe0/atc/back_light
677    chown system system /sys/class/dqe0/atc/dstep
678    chown system system /sys/class/dqe0/atc/scale_mode
679    chown system system /sys/class/dqe0/atc/threshold_1
680    chown system system /sys/class/dqe0/atc/threshold_2
681    chown system system /sys/class/dqe0/atc/threshold_3
682    chown system system /sys/class/dqe0/atc/gain_limit
683    chown system system /sys/class/dqe0/atc/lt_calc_ab_shift
684    chown system system /sys/devices/platform/1c300000.drmdecon/early_wakeup
685    chmod 0660 /sys/devices/platform/1c300000.drmdecon/early_wakeup
686    chown system system /sys/devices/platform/1c302000.drmdecon/early_wakeup
687    chmod 0660 /sys/devices/platform/1c302000.drmdecon/early_wakeup
688
689# Copy DRM Key
690#    copy /system/app/wv.keys /factory/wv.keys
691
692# Permission for DRM Key
693#    chmod 0644 /factory/wv.keys
694
695# Permission for flashlight control for HAL3.3
696# The Istor espresso board does not have the flash led h/w, So the below permission line are blocked.
697# If you want to test the flashlight in board which have the flash led h/w, Enable the below blocked lines.
698    chmod 0660 /sys/class/camera/flash/rear_torch_flash
699    chown system camera /sys/class/camera/flash/rear_torch_flash
700#load ecd firmware
701    write /proc/ecd/load_firmware 1
702
703service abox /vendor/bin/main_abox 17c50000.abox
704    class late_start
705    user audioserver
706    group audioserver
707    seclabel u:r:abox:s0
708
709# on userdebug and eng builds, enable kgdb on the serial console
710on property:ro.debuggable=1
711    write /sys/module/kgdboc/parameters/kgdboc ttyFIQ1
712    write /sys/module/fiq_debugger/parameters/kgdb_enable 1
713
714# Touch
715on property:vendor.device.modules.ready=1
716    chown system system /sys/class/spi_master/spi11/spi11.0/stm_fts_cmd
717    chown system system /sys/class/spi_master/spi11/spi11.0/glove_mode
718    chown system system /sys/class/spi_master/spi6/spi6.0/stm_fts_cmd
719    chown system system /sys/class/spi_master/spi6/spi6.0/glove_mode
720    chown system system /sys/devices/virtual/sec/tsp/fw_version
721    chown system system /sys/devices/virtual/sec/tsp/cmd
722    chown system system /sys/devices/virtual/sec/tsp/cmd_result
723    chown system system /sys/devices/virtual/sec/tsp/status
724    chown system system /sys/class/spi_master/spi11/spi11.0/input/nvt_touch/force_touch_active
725    chown system system /sys/class/spi_master/spi11/spi11.0/input/nvt_touch/nvt_dttw_mode
726    # Allow access to touch
727    chown system input /dev/touch_offload
728    chmod 660 /dev/touch_offload
729
730# Route touch_sensitivity_mode to persist
731on property:debug.touch_sensitivity_mode=0
732    setprop persist.vendor.touch_sensitivity_mode 0
733
734on property:debug.touch_sensitivity_mode=1
735    setprop persist.vendor.touch_sensitivity_mode 1
736
737on property:init.svc.vendor.charger=running
738    stop keymaster-4-0
739
740    setprop sys.usb.configfs 1
741    setprop vendor.setup.power 1
742
743    # keep one little and one big
744    write /sys/devices/system/cpu/cpu1/online 0
745    write /sys/devices/system/cpu/cpu2/online 0
746    write /sys/devices/system/cpu/cpu3/online 0
747    write /sys/devices/system/cpu/cpu5/online 0
748    write /sys/devices/system/cpu/cpu6/online 0
749    write /sys/devices/system/cpu/cpu7/online 0
750
751on property:sys.boot_completed=1
752    # Enable ZRAM on boot_complete
753    swapon_all /vendor/etc/fstab.${ro.board.platform}
754    write /proc/sys/vm/swappiness 60
755
756    # Force empty CMA
757    write /sys/kernel/vendor_mm/cma/farawimg/force_empty 1
758
759    # Back to default VM settings
760    write /proc/sys/vm/dirty_expire_centisecs 3000
761    write /proc/sys/vm/dirty_background_ratio 10
762
763    # Reset DDR frequency
764    write /sys/devices/platform/17000010.devfreq_mif/devfreq/17000010.devfreq_mif/exynos_data/cancel_boot_freq 1
765    write /sys/devices/platform/17000020.devfreq_int/devfreq/17000020.devfreq_int/exynos_data/cancel_boot_freq 1
766
767    # Setup final cpuset
768    write /dev/cpuset/top-app/cpus ${persist.device_config.vendor_system_native.top-app_cpuset:-0-7}
769    write /dev/cpuset/foreground/cpus ${persist.device_config.vendor_system_native.foreground_cpuset:-0-3,4-5}
770    write /dev/cpuset/background/cpus ${persist.device_config.vendor_system_native.background_cpuset:-0-3}
771    write /dev/cpuset/system-background/cpus ${persist.device_config.vendor_system_native.system-background_cpuset:-0-3}
772    write /dev/cpuset/restricted/cpus ${persist.device_config.vendor_system_native.restricted_cpuset:-0-3}
773    write /dev/cpuset/camera-daemon/cpus ${persist.device_config.vendor_system_native.camera-daemon_cpuset:-0-7}
774    setprop vendor.powerhal.init 1
775
776    # Setup scheduler parameters
777    write /proc/vendor_sched/min_granularity_ns 1000000
778    write /proc/vendor_sched/latency_ns 8000000
779    write /proc/vendor_sched/max_load_balance_interval 1
780    write /proc/vendor_sched/enable_hrtick 1
781
782    # Setup final cpu.uclamp
783    write /proc/vendor_sched/groups/ta/uclamp_min 1
784    write /proc/vendor_sched/groups/fg/uclamp_min 0
785    write /proc/vendor_sched/groups/sys/prefer_idle 0
786
787    # Set ug group
788    write /proc/vendor_sched/groups/bg/ug 0
789    write /proc/vendor_sched/groups/sys_bg/ug 0
790    write /proc/vendor_sched/groups/ota/ug 0
791    write /proc/vendor_sched/groups/dex2oat/ug 1
792    write /proc/vendor_sched/groups/ta/ug 1
793
794    # Set bg group throttle
795    write /proc/vendor_sched/ug_bg_group_throttle ${persist.device_config.vendor_system_native.ug_bg_group_throttle:-308}
796
797    # Set uclamp.max for some groups, which could indicate cpu importance used in scheduling
798    write /proc/vendor_sched/groups/bg/uclamp_max 512
799    write /proc/vendor_sched/groups/sys_bg/uclamp_max 512
800    write /proc/vendor_sched/groups/ota/uclamp_max 512
801    write /proc/vendor_sched/groups/dex2oat/uclamp_max 615
802
803    # Set PMU freq limit parameters
804    write /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/lcpi_threshold 2
805    write /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/spc_threshold 59
806    write /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/limit_frequency 1401000
807    write /sys/devices/system/cpu/cpufreq/policy4/sched_pixel/lcpi_threshold 6
808    write /sys/devices/system/cpu/cpufreq/policy4/sched_pixel/spc_threshold 64
809    write /sys/devices/system/cpu/cpufreq/policy4/sched_pixel/limit_frequency 1826000
810    write /sys/devices/system/cpu/cpufreq/policy6/sched_pixel/lcpi_threshold 5
811    write /sys/devices/system/cpu/cpufreq/policy6/sched_pixel/spc_threshold 69
812    write /sys/devices/system/cpu/cpufreq/policy6/sched_pixel/limit_frequency 2507000
813    write /proc/vendor_sched/pmu_poll_time 10
814
815    # Disable PMU freq limit
816    write /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/pmu_limit_enable 1
817    write /sys/devices/system/cpu/cpufreq/policy4/sched_pixel/pmu_limit_enable 1
818    write /sys/devices/system/cpu/cpufreq/policy6/sched_pixel/pmu_limit_enable 1
819    write /proc/vendor_sched/pmu_poll_enable 0
820
821    # Setup cpu.shares to throttle background groups (bg ~ 5% sysbg ~ 5% dex2oat ~2.5%)
822    write /dev/cpuctl/background/cpu.shares 1024
823    write /dev/cpuctl/system-background/cpu.shares 1024
824    write /dev/cpuctl/dex2oat/cpu.shares 512
825    write /dev/cpuctl/system/cpu.shares 20480
826    # We only have system and background groups holding tasks and the groups below are empty
827    write /dev/cpuctl/camera-daemon/cpu.shares 20480
828    write /dev/cpuctl/foreground/cpu.shares 20480
829    write /dev/cpuctl/nnapi-hal/cpu.shares 20480
830    write /dev/cpuctl/rt/cpu.shares 20480
831    write /dev/cpuctl/top-app/cpu.shares 20480
832
833    # gvotables for dumpstate
834    chown system system /sys/kernel/debug/gvotables
835
836    # AOC reset permission
837    chown root system /sys/devices/platform/19000000.aoc/reset
838    chmod 0220 /sys/devices/platform/19000000.aoc/reset
839
840    # write serialno to battery path for pairing
841    write /sys/class/power_supply/battery/dev_sn ${ro.boot.serialno}
842
843# Test Harness Mode default battery profile.
844on  property:persist.sys.test_harness=1 && property:persist.vendor.testing_battery_profile=0
845    setprop persist.vendor.charge.stop.level 70
846    setprop persist.vendor.charge.start.level 35
847    setprop vendor.battery.defender.disable 1
848
849# Extremely restricted battery profile.
850on  property:persist.sys.test_harness=1 && property:persist.vendor.testing_battery_profile=1
851    setprop persist.vendor.charge.stop.level 50
852    setprop persist.vendor.charge.start.level 35
853    setprop vendor.battery.defender.disable 1
854
855# Normal behavior (as if the device was a regular device)
856on  property:persist.sys.test_harness=1 && property:persist.vendor.testing_battery_profile=2
857    setprop persist.vendor.charge.stop.level 100
858    setprop persist.vendor.charge.start.level 0
859
860# Unrestricted, allows charging to 100%
861on  property:persist.sys.test_harness=1 && property:persist.vendor.testing_battery_profile=3
862    setprop persist.vendor.charge.stop.level 100
863    setprop persist.vendor.charge.start.level 0
864    setprop vendor.battery.defender.disable 1
865
866# ACA (Adaptice Charge Always On) persist properties
867on property:persist.vendor.adaptive.charge.soc=*
868    write /sys/class/power_supply/battery/charge_limit ${persist.vendor.adaptive.charge.soc}
869
870service init_display /vendor/bin/init.display.sh
871    class main
872    user root
873    group root system
874    disabled
875    oneshot
876
877# bugreport is triggered by holding down volume down, volume up and power
878service bugreport /system/bin/dumpstate -d -p -z
879    class main
880    disabled
881    oneshot
882    keycodes 114 115 116
883
884# Proxy for Secure Storage
885on post-fs-data
886    mkdir /data/vendor/rebootescrow 0770 hsm hsm
887    start vendor.rebootescrow-citadel
888    mkdir /data/vendor/ss 0770 root system
889    mkdir /mnt/vendor/persist/ss 0770 root system
890    restorecon_recursive /mnt/vendor/persist/ss
891    symlink /mnt/vendor/persist/ss /data/vendor/ss/persist
892    chown root system /data/vendor/ss/persist
893    chmod 0770 /data/vendor/ss/persist
894    chown system system /data/vendor/ss/persist/nsp
895
896    restart storageproxyd
897
898service storageproxyd /vendor/bin/storageproxyd -d /dev/trusty-ipc-dev0 \
899        -r /dev/sg1 -p /data/vendor/ss -t ufs
900    class early_hal
901    user system
902    group system
903
904# Write build info to kdebuginfo
905on property:ro.build.fingerprint=*
906    write /sys/module/debug_kinfo/parameters/build_info ${ro.build.fingerprint}
907
908# Bluetooth
909on early-boot
910    chown bluetooth system /sys/devices/platform/175b0000.serial/serial0/serial0-0/bluetooth/hci0/rfkill0/state
911    chown bluetooth system /sys/devices/platform/odm/odm:btbcm/rfkill/rfkill0/state
912    chown bluetooth system /sys/devices/platform/odm/odm:btbcm/rfkill/rfkill2/state
913
914on post-fs-data
915    chown bluetooth system /proc/bluetooth/sleep/btwake
916    chown bluetooth system /proc/bluetooth/sleep/lpm
917    chown bluetooth system /proc/bluetooth/sleep/btwrite
918    mkdir /data/vendor/bluetooth 0770 bluetooth system
919
920on post-fs-data
921    mkdir /data/vendor/powerstats 0771 system system
922    chown system system /data/vendor/powerstats
923    # Thermal Residency Stats (write 1 to reset)
924    chown system system /sys/kernel/metrics/thermal/tr_by_group/tmu/stats_reset
925    chown system system /sys/kernel/metrics/thermal/tr_by_group/spmic/stats_reset
926
927on property:vendor.thermal.link_ready=1
928    # BCL
929    write /sys/devices/virtual/pmic/mitigation/clock_ratio/tpu_light_clk_ratio 0x80041c3
930    write /sys/devices/virtual/pmic/mitigation/clock_ratio/cpu2_light_clk_ratio 0xfff041c3
931    write /sys/devices/virtual/pmic/mitigation/clock_ratio/gpu_heavy_clk_ratio 0xfff04385
932    write /sys/devices/virtual/pmic/mitigation/clock_ratio/tpu_heavy_clk_ratio 0xfff041c1
933    write /sys/devices/virtual/pmic/mitigation/clock_ratio/cpu2_heavy_clk_ratio 0xfff041c0
934    write /sys/devices/virtual/pmic/mitigation/triggered_lvl/smpl_lvl 3100
935    write /sys/devices/virtual/pmic/mitigation/triggered_lvl/ocp_cpu1_lvl 7000
936    write /sys/devices/virtual/pmic/mitigation/triggered_lvl/soft_ocp_cpu1_lvl 7000
937    write /sys/devices/virtual/pmic/mitigation/clock_div/tpu_clk_div 0x1
938    write /sys/devices/virtual/pmic/mitigation/clock_div/gpu_clk_div 0x1
939    write /sys/devices/virtual/pmic/mitigation/clock_div/cpu2_clk_div 0x1
940    # Thermal
941    chown system system /dev/thermal/tz-by-name/quiet_therm/trip_point_0_temp
942    chown system system /dev/thermal/tz-by-name/quiet_therm/trip_point_0_hyst
943    chown system system /dev/thermal/tz-by-name/neutral_therm/trip_point_0_temp
944    chown system system /dev/thermal/tz-by-name/neutral_therm/trip_point_0_hyst
945    chown system system /dev/thermal/tz-by-name/usb_pwr_therm2/trip_point_0_temp
946    chown system system /dev/thermal/tz-by-name/usb_pwr_therm2/trip_point_0_hyst
947    chown system system /dev/thermal/tz-by-name/usb_pwr_therm2/emul_temp
948    chmod 664 /dev/thermal/cdev-by-name/thermal-cpufreq-0/user_vote
949    chown system system /dev/thermal/cdev-by-name/thermal-cpufreq-0/user_vote
950    chmod 664 /dev/thermal/cdev-by-name/thermal-cpufreq-1/user_vote
951    chown system system /dev/thermal/cdev-by-name/thermal-cpufreq-1/user_vote
952    chmod 664 /dev/thermal/cdev-by-name/thermal-cpufreq-2/user_vote
953    chown system system /dev/thermal/cdev-by-name/thermal-cpufreq-2/user_vote
954    chmod 664 /dev/thermal/cdev-by-name/thermal-gpufreq-0/user_vote
955    chown system system /dev/thermal/cdev-by-name/thermal-gpufreq-0/user_vote
956    chmod 664 /dev/thermal/cdev-by-name/tpu_cooling/user_vote
957    chown system system /dev/thermal/cdev-by-name/tpu_cooling/user_vote
958    chmod 664 /dev/thermal/cdev-by-name/fcc/cur_state
959    chown system system /dev/thermal/cdev-by-name/fcc/cur_state
960    chmod 664 /dev/thermal/cdev-by-name/dc_icl/cur_state
961    chown system system /dev/thermal/cdev-by-name/dc_icl/cur_state
962    chmod 664 /dev/thermal/cdev-by-name/wlc_fcc/cur_state
963    chown system system /dev/thermal/cdev-by-name/wlc_fcc/cur_state
964    chmod 664 /dev/thermal/cdev-by-name/usbc-port/cur_state
965    chown system system /dev/thermal/cdev-by-name/usbc-port/cur_state
966
967on charger
968    write /proc/vendor_sched/groups/sys/uclamp_min 0
969    write /proc/vendor_sched/groups/sys/prefer_idle 0
970
971    # Use charger thermal config
972    setprop vendor.thermal.config "thermal_info_config_charge.json"
973
974    # Wait for insmod_sh to finish all common modules
975    wait_for_prop vendor.common.modules.ready 1
976
977    # Create thermal symlink in off charging mode
978    mkdir /dev/thermal 0750 system system
979    mkdir /dev/thermal/tz-by-name 0750 system system
980    mkdir /dev/thermal/cdev-by-name 0750 system system
981    start vendor.thermal.symlinks
982
983    # Cancel boot devfreq and uclamp
984    write /sys/devices/platform/17000010.devfreq_mif/devfreq/17000010.devfreq_mif/exynos_data/cancel_boot_freq 1
985    write /sys/devices/platform/17000020.devfreq_int/devfreq/17000020.devfreq_int/exynos_data/cancel_boot_freq 1
986    write /proc/vendor_sched/groups/ta/uclamp_min 0
987    write /proc/vendor_sched/groups/ta/prefer_idle 0
988    write /proc/vendor_sched/groups/fg/uclamp_min 0
989    write /proc/vendor_sched/groups/fg/prefer_idle 0
990    write /proc/vendor_sched/groups/sys/uclamp_min 0
991    write /proc/vendor_sched/groups/sys/prefer_idle 0
992
993    # Enable SICD
994    write /sys/devices/system/cpu/cpupm/cpupm/sicd 1
995
996on property:vendor.disable.bcl.control=1
997    write /sys/devices/virtual/pmic/mitigation/instruction/enable_mitigation 0
998
999on property:vendor.disable.bcl.control=0
1000    write /sys/devices/virtual/pmic/mitigation/instruction/enable_mitigation 1
1001
1002on property:ro.boot.mode=charger && property:init.svc.vendor.charger=running
1003    # Disable dock-defend in Off Mode Charger
1004    write /sys/devices/platform/google,charger/dd_state -1
1005
1006# Cpuset experiment
1007on property:persist.device_config.vendor_system_native.top-app_cpuset=*
1008    write /dev/cpuset/top-app/cpus ${persist.device_config.vendor_system_native.top-app_cpuset:-0-7}
1009on property:persist.device_config.vendor_system_native.foreground_cpuset=*
1010    write /dev/cpuset/foreground/cpus ${persist.device_config.vendor_system_native.foreground_cpuset:-0-3,4-5}
1011on property:persist.device_config.vendor_system_native.background_cpuset=*
1012    write /dev/cpuset/background/cpus ${persist.device_config.vendor_system_native.background_cpuset:-0-3}
1013on property:persist.device_config.vendor_system_native.system-background_cpuset=*
1014    write /dev/cpuset/system-background/cpus ${persist.device_config.vendor_system_native.system-background_cpuset:-0-3}
1015on property:persist.device_config.vendor_system_native.restricted_cpuset=*
1016    write /dev/cpuset/restricted/cpus ${persist.device_config.vendor_system_native.restricted_cpuset:-0-3}
1017on property:persist.device_config.vendor_system_native.camera-daemon_cpuset=*
1018    write /dev/cpuset/camera-daemon/cpus ${persist.device_config.vendor_system_native.camera-daemon_cpuset:-0-7}
1019
1020# Set esim property for LPA
1021on property:persist.vendor.modem.esim_profiles_exist=*
1022    setprop persist.modem.esim_profiles_exist ${persist.vendor.modem.esim_profiles_exist}
1023