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