1#
2# Copyright (C) 2018 The Android Open-Source Project
3#
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8#      http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15#
16
17import /vendor/etc/init/hw/init.${ro.boot.hardware.platform}.usb.rc
18import /vendor/etc/init/hw/init.${ro.boot.hardware.platform}.diag.rc
19import /vendor/etc/init/hw/init.${ro.boot.hardware.platform}.logging.rc
20import /vendor/etc/init/hw/init.${ro.boot.hardware.platform}.mpssrfs.rc
21import /vendor/etc/init/hw/init.${ro.boot.hardware.platform}.power.rc
22
23service vendor.charger /system/bin/charger
24    class charger
25    user system
26    group system wakelock input
27    capabilities SYS_BOOT
28    file /dev/kmsg w
29    file /sys/fs/pstore/console-ramoops-0 r
30    file /sys/fs/pstore/console-ramoops r
31    file /proc/last_kmsg r
32
33on early-init
34    mount debugfs debugfs /sys/kernel/debug
35    chmod 0755 /sys/kernel/debug
36
37    # Disable EAS
38    write /proc/sys/kernel/sched_energy_aware 0
39    mount_all /vendor/etc/fstab.persist --early
40
41# Skip init trigger for charger mode
42on early-init && property:ro.boot.mode=charger
43    setprop vendor.skip.init 1
44
45on init
46    # Load display primaries
47    start color_init
48
49    # Boot time fs tuning
50    write /sys/block/sda/queue/iostats 0
51    write /sys/block/sda/queue/scheduler cfq
52    write /sys/block/sda/queue/iosched/slice_idle 0
53    write /sys/block/sda/queue/nr_requests 256
54    write /sys/block/sde/queue/iostats 0
55    write /sys/block/sde/queue/scheduler cfq
56    write /sys/block/sde/queue/iosched/slice_idle 0
57    write /sys/block/sde/queue/nr_requests 256
58    write /sys/block/sdf/queue/iostats 0
59    write /sys/block/sdf/queue/scheduler cfq
60    write /sys/block/sdf/queue/iosched/slice_idle 0
61    write /sys/block/sdf/queue/nr_requests 256
62
63    # Disable powersaving
64    write /sys/module/lpm_levels/parameters/sleep_disabled 1
65
66    wait /dev/block/platform/${ro.boot.boot_devices}
67    symlink /dev/block/platform/${ro.boot.boot_devices} /dev/block/bootdevice
68
69    # to access UFS/eMMC sysfs directly
70    symlink /sys/devices/platform/${ro.boot.boot_devices} /dev/sys/block/bootdevice
71
72    # Disable UFS powersaving
73    write /dev/sys/block/bootdevice/clkgate_enable 0
74
75    # start qseecomd early as we mount system/ vendor/ early
76    # vold needs keymaster that needs qseecomd
77    start vendor.qseecomd
78    start keymaster-4-0
79
80    start vendor.citadeld
81    start vendor.keymaster-4-1-citadel
82
83    # Loading kernel modules in background
84    start insmod_sh
85
86    # bring back all cores
87    write /sys/devices/system/cpu/cpu0/online 1
88    write /sys/devices/system/cpu/cpu1/online 1
89    write /sys/devices/system/cpu/cpu2/online 1
90    write /sys/devices/system/cpu/cpu3/online 1
91    write /sys/devices/system/cpu/cpu4/online 1
92    write /sys/devices/system/cpu/cpu5/online 1
93    write /sys/devices/system/cpu/cpu6/online 1
94    write /sys/devices/system/cpu/cpu7/online 1
95
96    # configure governor settings for little cluster
97    write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor schedutil
98    write /sys/devices/system/cpu/cpu0/cpufreq/schedutil/up_rate_limit_us 500
99    write /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us 20000
100
101    # configure governor settings for big cluster
102    write /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor schedutil
103    write /sys/devices/system/cpu/cpu4/cpufreq/schedutil/up_rate_limit_us 500
104    write /sys/devices/system/cpu/cpu4/cpufreq/schedutil/down_rate_limit_us 20000
105
106    # configure governor settings for big big CPU
107    write /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor schedutil
108    write /sys/devices/system/cpu/cpu7/cpufreq/schedutil/up_rate_limit_us 500
109    write /sys/devices/system/cpu/cpu7/cpufreq/schedutil/down_rate_limit_us 20000
110
111    # ZRAM setup
112    write /sys/block/zram0/comp_algorithm lz4
113    write /proc/sys/vm/page-cluster 0
114
115    # Some user code relies on ro.boot.hardware.revision
116    setprop ro.boot.hardware.revision ${ro.revision}
117
118    # set default schedTune value for foreground/top-app
119    write /dev/stune/foreground/schedtune.prefer_idle 1
120    write /dev/stune/top-app/schedtune.boost 10
121    write /dev/stune/top-app/schedtune.prefer_idle 1
122
123    # set default schedTune value for camera-daemon
124    write /dev/stune/camera-daemon/schedtune.prefer_idle 1
125    write /dev/stune/camera-daemon/schedtune.boost 0
126
127    # Allow PAI targeting per hardware SKU
128    setprop ro.oem.key1 ${ro.boot.hardware.sku}
129
130    # Property used by vintf for sku specific manifests
131    setprop ro.boot.product.hardware.sku ${ro.boot.hardware.sku}
132
133    # Report max frequency to unity tasks.
134    write /proc/sys/kernel/sched_lib_name "UnityMain,libunity.so"
135    write /proc/sys/kernel/sched_lib_mask_force 255
136
137    # NFC streset tool name
138    setprop persist.vendor.nfc.streset libstreset
139
140# b/134578585
141on charger
142    trigger fs
143    start system_suspend
144    start vendor.qrtr-ns
145    start irsc_util
146    start tftp_server
147    start rmt_storage
148    start modem_svc
149    start vendor.per_mgr
150
151    # Health HAL
152    chown system system /sys/devices/virtual/thermal/tz-by-name/soc/mode
153
154on late-init
155    chown system system /sys/devices/virtual/thermal/tz-by-name/sdm-therm-monitor/trip_point_0_temp
156    chown system system /sys/devices/virtual/thermal/tz-by-name/sdm-therm-monitor/trip_point_0_hyst
157    chown system system /sys/devices/virtual/thermal/tz-by-name/usbc-therm-monitor/trip_point_0_temp
158    chown system system /sys/devices/virtual/thermal/tz-by-name/usbc-therm-monitor/trip_point_0_hyst
159    chown system system /sys/devices/virtual/thermal/tz-by-name/soc/mode
160    chown system system /sys/devices/virtual/thermal/tz-by-name/bcl-virt-monitor/trip_point_0_temp
161    chown system system /sys/devices/virtual/thermal/tz-by-name/bcl-virt-monitor/trip_point_0_hyst
162
163# Override thermal HAL config for JAWS board
164on fs && property:ro.revision="DEV1.0"
165    setprop vendor.thermal.config thermal_info_config_jaws.json
166
167on fs
168    mount_all /vendor/etc/fstab.${ro.boot.hardware.platform} --early
169
170    mkdir /mnt/vendor/persist/audio 0770 media audio
171    mkdir /mnt/vendor/persist/data 0700 system system
172    mkdir /mnt/vendor/persist/display 0770 system graphics
173    mkdir /mnt/vendor/persist/rfs 0770 root system
174    mkdir /mnt/vendor/persist/hlos_rfs 0770 root system
175    mkdir /mnt/vendor/persist/secnvm 0770 system system
176    mkdir /mnt/vendor/persist/oslo 0755 system system
177    mkdir /mnt/vendor/persist/touch 0770 system system
178    chmod 0770 /mnt/vendor/persist/rfs
179    chmod 0770 /mnt/vendor/persist/rfs/shared
180    chmod 0770 /mnt/vendor/persist/rfs/msm
181    chmod 0770 /mnt/vendor/persist/rfs/msm/adsp
182    chmod 0770 /mnt/vendor/persist/rfs/msm/mpss
183    chmod 0770 /mnt/vendor/persist/rfs/msm/slpi
184    chmod 0770 /mnt/vendor/persist/rfs/mdm
185    chmod 0770 /mnt/vendor/persist/rfs/mdm/adsp
186    chmod 0770 /mnt/vendor/persist/rfs/mdm/mpss
187    chmod 0770 /mnt/vendor/persist/rfs/mdm/slpi
188    chmod 0770 /mnt/vendor/persist/rfs/mdm/tn
189    chmod 0770 /mnt/vendor/persist/rfs/apq
190    chmod 0770 /mnt/vendor/persist/rfs/apq/gnss
191    chmod 0770 /mnt/vendor/persist/hlos_rfs
192
193    # for cycle count backup
194    mkdir /mnt/vendor/persist/battery 0700 system system
195
196    restorecon_recursive /mnt/vendor/persist
197
198on post-fs
199    # set RLIMIT_MEMLOCK to 64MB
200    setrlimit 8 67108864 67108864
201
202    # Wait qseecomd started
203    wait_for_prop vendor.sys.listeners.registered true
204
205    # load IPA FWs
206    # This must be started when vendor.sys.listeners.registered is true
207    write /dev/ipa 1
208
209on late-fs
210    # Start services for bootanim
211    wait_for_prop vendor.display.native_display_primaries_ready 1
212    setprop ro.surface_flinger.display_primary_red ${vendor.display.primary_red}
213    setprop ro.surface_flinger.display_primary_green ${vendor.display.primary_green}
214    setprop ro.surface_flinger.display_primary_blue ${vendor.display.primary_blue}
215    setprop ro.surface_flinger.display_primary_white ${vendor.display.primary_white}
216    # Permission for hwcomposer
217    chown system system /sys/class/backlight/panel0-backlight/brightness
218    chown system system /sys/class/backlight/panel0-backlight/max_brightness
219    chown system system /sys/class/backlight/panel0-backlight/vr_mode
220    chown system system /sys/class/backlight/panel0-backlight/hbm_mode
221    start vendor.power-hal-aidl
222    start surfaceflinger
223    start bootanim
224    start vendor.hwcomposer-2-4
225    start vendor.configstore-hal
226    start vendor.qti.hardware.display.allocator
227    start vendor.light-1-1
228
229    # Wait for keymaster HALs (TEE and StrongBox)
230    exec_start wait_for_strongbox
231
232
233    # Mount RW partitions which need run fsck
234    mount_all /vendor/etc/fstab.${ro.boot.hardware.platform} --late
235
236    # Required for time_daemon
237    mkdir /mnt/vendor/persist/time 0770 system system
238
239    # Start time daemon early so that the system time can be set early
240    start time_daemon
241
242    # Init sensor specific services
243    start init-sensors-sh
244
245    # turn off vblank irq immediately after turning off
246    write /sys/module/drm/parameters/vblankoffdelay -1
247
248    # Write build info to kdebuginfo.
249    write /sys/module/kdebuginfo/parameters/build_info "${ro.product.name}-${ro.build.type} ${ro.build.version.incremental}"
250
251on post-fs-data
252    mkdir /vendor/data/tombstones 0771 system system
253    mkdir /tombstones/modem 0771 system system
254    mkdir /tombstones/lpass 0771 system system
255    mkdir /tombstones/wcnss 0771 system system
256    mkdir /tombstones/dsps 0771 system system
257    mkdir /data/vendor/hbtp 0750 system system
258    mkdir /data/vendor/tloc 0700 system drmrpc
259    mkdir /data/vendor/nnhal 0700 system system
260    mkdir /data/vendor/time 0770 system system
261    mkdir /data/vendor/modem_fdr 0700 root system
262    mkdir /data/vendor/display 0770 system graphics
263    mkdir /data/vendor/camera 0770 system system
264    mkdir /data/vendor/hardware/airbrush 0770 vendor_airbrush vendor_airbrush
265    mkdir /data/vendor/hardware/airbrush/manager 0770 vendor_airbrush vendor_airbrush
266    mkdir /data/vendor/hal_neuralnetworks_darwinn 0770 system system
267    mkdir /data/vendor/hal_neuralnetworks_darwinn/hal_camera 0770 system system
268    mkdir /data/vendor/hal_neuralnetworks_darwinn/hal_camera/facessd 0770 system system
269    mkdir /data/vendor/hal_neuralnetworks_darwinn/hal_camera/ultradepth 0770 system system
270    mkdir /data/vendor/rebootescrow 0770 hsm hsm
271    start vendor.rebootescrow-citadel
272
273on zygote-start
274    # zygote is started in common init.rc
275    # and now we can continue initialize /data/
276    mkdir /data/vendor/ipa 0770 radio radio
277    chown radio radio /data/vendor/ipa
278
279    # Create the directories used by the Wireless subsystem
280    mkdir /data/vendor/wifi 0771 wifi wifi
281    mkdir /data/vendor/wifi/wpa 0770 wifi wifi
282    mkdir /data/vendor/wifi/wpa/sockets 0770 wifi wifi
283
284    # Create the directories used by CnE subsystem
285    mkdir /data/vendor/connectivity 0771 radio radio
286    chown radio radio /data/vendor/connectivity
287
288    # Create directory for radio
289    mkdir /data/vendor/radio 0773 system radio
290    mkdir /data/vendor/modem_stat 0771 system radio
291    write /data/vendor/modem_stat/debug.txt ""
292    chown system radio /data/vendor/modem_stat/debug.txt
293    chmod 0664 /data/vendor/modem_stat/debug.txt
294
295    # Mark the copy complete flag to not completed
296    write /data/vendor/radio/copy_complete 0
297    chown radio radio /data/vendor/radio/copy_complete
298    chmod 0660 /data/vendor/radio/copy_complete
299
300    # File flags for prebuilt ril db file
301    write /data/vendor/radio/prebuilt_db_support 1
302    chown radio radio /data/vendor/radio/prebuilt_db_support
303    chmod 0400 /data/vendor/radio/prebuilt_db_support
304    write /data/vendor/radio/db_check_done 0
305    chown radio radio /data/vendor/radio/db_check_done
306    chmod 0660 /data/vendor/radio/db_check_done
307
308    # Create directories for Location services
309    mkdir /data/vendor/location 0770 gps gps
310    mkdir /data/vendor/location/mq 0770 gps gps
311    mkdir /data/vendor/location/xtwifi 0770 gps gps
312    mkdir /dev/socket/location 0770 gps gps
313    mkdir /dev/socket/location/mq 0770 gps gps
314    mkdir /dev/socket/location/xtra 0770 gps gps
315
316    #Create directories for wifihal services
317    mkdir /dev/socket/wifihal 0770 wifi wifi
318    chmod 2770 /dev/socket/wifihal
319
320    # Create directory for audio delta files
321    mkdir /data/vendor/audio 0770 audio audio
322    mkdir /data/vendor/audio/acdbdata 0770 media audio
323    mkdir /data/vendor/audio/acdbdata/delta 0770 media audio
324
325on early-boot
326    # Set up sensors-related directories and permissions
327    chmod 775 /mnt/vendor/persist/sensors
328    chmod 664 /mnt/vendor/persist/sensors/sensors_settings
329    chown root system /mnt/vendor/persist/sensors/registry
330    chmod 775 /mnt/vendor/persist/sensors/registry
331    chown root system /mnt/vendor/persist/sensors/registry/registry
332    chmod 775 /mnt/vendor/persist/sensors/registry/registry
333    chmod 664 /mnt/vendor/persist/sensors/registry/registry/sensors_registry
334    chown system root /mnt/vendor/persist/sensors/sensors_settings
335    chown root root /mnt/vendor/persist/sensors/registry/registry/sensors_settings
336
337    mkdir /data/vendor/sensors 0770
338    chown system system /data/vendor/sensors
339
340    # Restore SeLinux Context for preventing temp.json with
341    # incorrect security context
342    restorecon /mnt/vendor/persist/sensors/registry/temp.json
343
344    chmod 770 /mnt/vendor/persist/audio
345    chmod 660 /mnt/vendor/persist/audio/audio.cal
346    chown media audio /mnt/vendor/persist/audio
347    chown audioserver audio /mnt/vendor/persist/audio/audio.cal
348
349    # Set up oslo-related directories and permissions
350    chmod 755 /mnt/vendor/persist/oslo
351    chmod 660 /mnt/vendor/persist/oslo/oslo.cal
352    chmod 644 /mnt/vendor/persist/oslo/tx_power.cal
353    chown system system /mnt/vendor/persist/oslo
354    chown system system /mnt/vendor/persist/oslo/oslo.cal
355    chown system system /mnt/vendor/persist/oslo/tx_power.cal
356
357    # Set up touch directories and permissions
358    chmod 770 /mnt/vendor/persist/touch
359    chown system system /mnt/vendor/persist/touch
360
361    # Wait for insmod_sh to finish all modules
362    wait_for_prop vendor.all.modules.ready 1
363
364    # Wait for insmod_sh to finish all boot devices
365    wait_for_prop vendor.all.devices.ready 1
366
367    # Permission for Rainbow sensor
368    chown system system /sys/devices/platform/soc/ac4b000.qcom,cci/ac4b000.qcom,cci:st,rainbow@20/rainbow_enable
369    chmod 0660 /sys/devices/platform/soc/ac4a000.qcom,cci/ac4a000.qcom,cci:qcom,rainbow@20/rainbow_enable
370    chown system system /sys/devices/platform/soc/ac4b000.qcom,cci/ac4b000.qcom,cci:st,rainbow@20/rainbow_read_byte
371    chmod 0660 /sys/devices/platform/soc/ac4a000.qcom,cci/ac4a000.qcom,cci:qcom,rainbow@20/rainbow_read_byte
372    chown system system /sys/devices/platform/soc/ac4b000.qcom,cci/ac4b000.qcom,cci:st,rainbow@20/rainbow_write_byte
373    chmod 0660 /sys/devices/platform/soc/ac4b000.qcom,cci/ac4b000.qcom,cci:st,rainbow@20/rainbow_write_byte
374    chown system system /dev/vd6281
375    chmod 0660 /dev/vd6281
376    chown system system /mnt/vendor/persist/camera/rals_fac_test
377    chmod 0660 /mnt/vendor/persist/camera/rals_fac_test
378
379    # Permission for Dot and Flood
380    chown system system /sys/devices/platform/soc/ac4a000.qcom,cci/ac4a000.qcom,cci:qcom,cam-led-laser-flood@64/led_laser_enable
381    chmod 0660 /sys/devices/platform/soc/ac4a000.qcom,cci/ac4a000.qcom,cci:qcom,cam-led-laser-flood@64/led_laser_enable
382    chown system system /sys/devices/platform/soc/ac4a000.qcom,cci/ac4a000.qcom,cci:qcom,cam-led-laser-flood@64/is_certified
383    chmod 0660 /sys/devices/platform/soc/ac4a000.qcom,cci/ac4a000.qcom,cci:qcom,cam-led-laser-flood@64/is_certified
384    chown system system /sys/devices/platform/soc/ac4a000.qcom,cci/ac4a000.qcom,cci:qcom,cam-led-laser-flood@64/led_laser_write_byte
385    chmod 0660 /sys/devices/platform/soc/ac4a000.qcom,cci/ac4a000.qcom,cci:qcom,cam-led-laser-flood@64/led_laser_write_byte
386    chown system system /sys/devices/platform/soc/ac4a000.qcom,cci/ac4a000.qcom,cci:qcom,cam-led-laser-flood@64/is_silego_validated
387    chmod 0660 /sys/devices/platform/soc/ac4a000.qcom,cci/ac4a000.qcom,cci:qcom,cam-led-laser-flood@64/is_silego_validated
388    chown system system /sys/devices/platform/soc/ac4a000.qcom,cci/ac4a000.qcom,cci:qcom,cam-led-laser-flood@64/led_laser_read_byte
389    chmod 0660 /sys/devices/platform/soc/ac4a000.qcom,cci/ac4a000.qcom,cci:qcom,cam-led-laser-flood@64/led_laser_read_byte
390    chown system system /sys/devices/platform/soc/ac4a000.qcom,cci/ac4a000.qcom,cci:qcom,cam-led-laser-flood@64/itoc_cali_data_store
391    chmod 0660 /sys/devices/platform/soc/ac4a000.qcom,cci/ac4a000.qcom,cci:qcom,cam-led-laser-flood@64/itoc_cali_data_store
392    chown system system /sys/devices/platform/soc/ac4a000.qcom,cci/ac4a000.qcom,cci:qcom,cam-led-laser-flood@64/get_silego_state
393    chmod 0660 /sys/devices/platform/soc/ac4a000.qcom,cci/ac4a000.qcom,cci:qcom,cam-led-laser-flood@64/get_silego_state
394    chown system system /dev/lm36011_flood
395    chmod 0660 /dev/lm36011_flood
396    chown system system /sys/devices/platform/soc/ac4a000.qcom,cci/ac4a000.qcom,cci:qcom,cam-led-laser-dot@64/led_laser_enable
397    chmod 0660 /sys/devices/platform/soc/ac4a000.qcom,cci/ac4a000.qcom,cci:qcom,cam-led-laser-dot@64/led_laser_enable
398    chown system system /sys/devices/platform/soc/ac4a000.qcom,cci/ac4a000.qcom,cci:qcom,cam-led-laser-dot@64/is_certified
399    chmod 0660 /sys/devices/platform/soc/ac4a000.qcom,cci/ac4a000.qcom,cci:qcom,cam-led-laser-dot@64/is_certified
400    chown system system /sys/devices/platform/soc/ac4a000.qcom,cci/ac4a000.qcom,cci:qcom,cam-led-laser-dot@64/led_laser_write_byte
401    chmod 0660 /sys/devices/platform/soc/ac4a000.qcom,cci/ac4a000.qcom,cci:qcom,cam-led-laser-dot@64/led_laser_write_byte
402    chown system system /sys/devices/platform/soc/ac4a000.qcom,cci/ac4a000.qcom,cci:qcom,cam-led-laser-dot@64/is_silego_validated
403    chmod 0660 /sys/devices/platform/soc/ac4a000.qcom,cci/ac4a000.qcom,cci:qcom,cam-led-laser-dot@64/is_silego_validated
404    chown system system /sys/devices/platform/soc/ac4a000.qcom,cci/ac4a000.qcom,cci:qcom,cam-led-laser-dot@64/led_laser_read_byte
405    chmod 0660 /sys/devices/platform/soc/ac4a000.qcom,cci/ac4a000.qcom,cci:qcom,cam-led-laser-dot@64/led_laser_read_byte
406    chown system system /sys/devices/platform/soc/ac4a000.qcom,cci/ac4a000.qcom,cci:qcom,cam-led-laser-dot@64/itoc_cali_data_store
407    chmod 0660 /sys/devices/platform/soc/ac4a000.qcom,cci/ac4a000.qcom,cci:qcom,cam-led-laser-dot@64/itoc_cali_data_store
408    chown system system /sys/devices/platform/soc/ac4a000.qcom,cci/ac4a000.qcom,cci:qcom,cam-led-laser-dot@64/get_silego_state
409    chmod 0660 /sys/devices/platform/soc/ac4a000.qcom,cci/ac4a000.qcom,cci:qcom,cam-led-laser-dot@64/get_silego_state
410    chown system system /dev/lm36011_dot
411    chmod 0660 /dev/lm36011_dot
412
413    # Permission for camera sensor
414    chown system system /sys/devices/platform/soc/ac4a000.qcom,cci/ac4a000.qcom,cci:qcom,cam-sensor@3/set_strobe_type
415    chmod 0660 sys/devices/platform/soc/ac4a000.qcom,cci/ac4a000.qcom,cci:qcom,cam-sensor@3/set_strobe_type
416    chown system system /sys/devices/platform/soc/ac4a000.qcom,cci/ac4a000.qcom,cci:qcom,cam-sensor@4/set_strobe_type
417    chmod 0660 sys/devices/platform/soc/ac4a000.qcom,cci/ac4a000.qcom,cci:qcom,cam-sensor@4/set_strobe_type
418
419    # FG cycle count read from dumpstate + backup restore from health HAL (and pixelstats)
420    chown system system /sys/class/power_supply/maxfg/cycle_counts_bins
421    chown system system /sys/devices/platform/soc/soc:google,battery/power_supply/battery/cycle_counts
422
423    # Battery Defender
424    chown system system /sys/devices/platform/soc/soc:google,charger/charge_stop_level
425    chown system system /sys/devices/platform/soc/soc:google,charger/charge_start_level
426    chown system system /sys/devices/platform/soc/soc:google,charger/bd_clear
427    chown system system /sys/devices/platform/soc/soc:google,battery/power_supply/battery/bd_clear
428
429    # Charge stats (write 0)
430    chown system system /sys/class/power_supply/battery/charge_stats
431
432    # Wireless charging
433    chown system system /sys/devices/platform/soc/880000.i2c/i2c-1/1-0061/rxdata
434    chown system system /sys/devices/platform/soc/880000.i2c/i2c-1/1-0061/txdata
435    chown system system /sys/devices/platform/soc/880000.i2c/i2c-1/1-0061/rxlen
436    chown system system /sys/devices/platform/soc/880000.i2c/i2c-1/1-0061/txlen
437    chown system system /sys/devices/platform/soc/880000.i2c/i2c-1/1-0061/ccreset
438    chown system system /sys/devices/platform/soc/880000.i2c/i2c-1/1-0061/status
439    chown system system /sys/devices/platform/soc/880000.i2c/i2c-1/1-0061/version
440    chown system system /sys/class/power_supply/wireless/capacity
441
442    # Permission for Pixelstats
443    chown system system /sys/class/misc/msm_cirrus_playback/resistance_left_right
444    chown system system /dev/sys/block/bootdevice/slowio_read_cnt
445    chown system system /dev/sys/block/bootdevice/slowio_write_cnt
446    chown system system /dev/sys/block/bootdevice/slowio_unmap_cnt
447    chown system system /dev/sys/block/bootdevice/slowio_sync_cnt
448    chown system system /sys/devices/platform/soc/a8c000.spi/spi_master/spi4/spi4.0/iaxxx-dev/iaxxx_misc/codec_state
449    chown system system /sys/devices/platform/soc/a8c000.spi/spi_master/spi4/spi4.0/iaxxx-dev/iaxxx_misc/wdsp_stat
450    chown system system /sys/devices/platform/soc/a8c000.spi/spi_master/spi5/spi5.0/iaxxx-dev/iaxxx_misc/codec_state
451    chown system system /sys/devices/platform/soc/a8c000.spi/spi_master/spi5/spi5.0/iaxxx-dev/iaxxx_misc/wdsp_stat
452
453    # iaxxx dsp pn for HardwareInfo
454    chmod 0444 /sys/devices/platform/soc/a8c000.spi/spi_master/spi4/spi4.0/iaxxx-dev/iaxxx_misc/hwinfo_part_number
455    chmod 0444 /sys/devices/platform/soc/a8c000.spi/spi_master/spi5/spi5.0/iaxxx-dev/iaxxx_misc/hwinfo_part_number
456
457    # Permission for Health Storage HAL
458    chown system system /dev/sys/block/bootdevice/manual_gc
459
460    # Permissions for reading display native color gamut
461    chown system graphics /mnt/vendor/persist/display/native_gamut.csv
462
463    # Permission to report knowles framework info
464    chown system system /sys/devices/platform/soc/a8c000.spi/spi_master/spi5/spi5.0/iaxxx/fw_version
465    chown system system /sys/devices/platform/soc/a8c000.spi/spi_master/spi5/spi5.0/iaxxx/host_version
466    chown system system /sys/devices/platform/soc/a8c000.spi/spi_master/spi5/spi5.0/iaxxx/package_version
467    chown system system /sys/devices/platform/soc/a8c000.spi/spi_master/spi5/spi5.0/iaxxx/plugin_version
468
469    chmod 0444 /sys/devices/platform/soc/a8c000.spi/spi_master/spi5/spi5.0/iaxxx/file_version
470    chmod 0444 /sys/devices/platform/soc/a8c000.spi/spi_master/spi5/spi5.0/iaxxx/host_version
471    chmod 0444 /sys/devices/platform/soc/a8c000.spi/spi_master/spi5/spi5.0/iaxxx/package_version
472    chmod 0444 /sys/devices/platform/soc/a8c000.spi/spi_master/spi5/spi5.0/iaxxx/plugin_version
473
474on boot
475    # This location is used by QCRIL to host UNIX domain
476    # socket files used for internal IPC within QCRIL
477    # modules
478    mkdir /dev/socket/qmux_radio 0770 radio radio
479    chmod 2770 /dev/socket/qmux_radio
480
481    setprop wifi.interface wlan0
482
483    chown system system /sys/kernel/hbtp/display_pwr
484    start rfs_access
485
486    # default country code
487    setprop ro.boot.wificountrycode 00
488
489    # WLAN debug access
490    chown system system /d/icnss/stats
491
492service init-radio-sh /vendor/bin/init.radio.sh
493    class late_start
494    user radio
495    group root radio
496    oneshot
497
498on property:init.svc.vendor.charger=running
499    stop vendor.qseecomd
500    stop keymaster-4-0
501
502    setprop sys.usb.configfs 1
503    setprop vendor.setup.power 1
504
505    # keep one LITTLE and one big
506    write /sys/devices/system/cpu/cpu1/online 0
507    write /sys/devices/system/cpu/cpu2/online 0
508    write /sys/devices/system/cpu/cpu3/online 0
509    write /sys/devices/system/cpu/cpu5/online 0
510    write /sys/devices/system/cpu/cpu6/online 0
511    write /sys/devices/system/cpu/cpu7/online 0
512
513    # Enable thermal mitigation
514    write /sys/devices/virtual/thermal/tz-by-name/backup-charge/mode enabled
515
516on property:sys.boot_completed=1
517    setprop vendor.setup.power 1
518
519    # Permission for Pixelstats
520    chown system system /dev/sys/fs/by-name/userdata/gc_segment_mode
521    chown system system /dev/sys/fs/by-name/userdata/gc_reclaimed_segments
522
523    # Runtime fs tuning
524    write /sys/block/sda/queue/nr_requests 128
525    write /sys/block/sda/queue/iostats 1
526    write /sys/block/sde/queue/nr_requests 128
527    write /sys/block/sde/queue/iostats 1
528    write /sys/block/sdf/queue/nr_requests 128
529    write /sys/block/sdf/queue/iostats 1
530
531    # Limit 4KB discards to 2GB of space
532    write /dev/sys/fs/by-name/userdata/max_small_discards 5120
533
534    # Back to default VM settings
535    write /proc/sys/vm/dirty_expire_centisecs 3000
536    write /proc/sys/vm/dirty_background_ratio 10
537
538    # Enable ZRAM on boot_complete
539    rm /data/unencrypted/zram_swap
540    swapon_all /vendor/etc/fstab.${ro.boot.hardware.platform}
541    write /proc/sys/vm/swappiness 100
542
543    # Setup runtime cpusets
544    write /dev/cpuset/top-app/cpus 0-7
545    write /dev/cpuset/foreground/cpus 0-3,5-6
546    write /dev/cpuset/background/cpus 0-1
547    write /dev/cpuset/system-background/cpus 0-3
548    write /dev/cpuset/restricted/cpus 0-3
549
550    # Setup runtime blkio
551    # value for group_idle is us
552    write /dev/blkio/blkio.weight 1000
553    write /dev/blkio/background/blkio.weight 200
554    write /dev/blkio/blkio.group_idle 2000
555    write /dev/blkio/background/blkio.group_idle 0
556
557    # UFS health
558    chmod 755 /sys/kernel/debug/ufshcd0
559    chmod 644 /sys/kernel/debug/ufshcd0/show_hba
560    chmod 644 /sys/kernel/debug/ufshcd0/stats/err_stats
561    chmod 644 /sys/kernel/debug/ufshcd0/stats/io_stats
562    chmod 644 /sys/kernel/debug/ufshcd0/stats/req_stats
563
564    # HardwareInfo files
565    chmod 444 /sys/devices/platform/soc/soc:qcom,dsi-display-primary/panel_info/panel0/serial_number
566    chmod 444 /sys/devices/platform/soc/soc:qcom,dsi-display-primary/panel_info/panel0/panel_vendor_name
567    chmod 444 /sys/devices/platform/soc/soc:qcom,dsi-display-primary/panel_info/panel0/panel_extinfo
568    chmod 644 /sys/kernel/debug/regmap/1-0036/registers
569    chmod 644 /sys/kernel/debug/regmap/1-000b/registers
570    chmod 644 /sys/kernel/debug/regmap/2-0036/registers
571    chmod 644 /sys/kernel/debug/regmap/2-000b/registers
572
573    # Maxim FG dump for dumpstate
574    chown system system /sys/kernel/debug/regmap/1-0036/registers
575    chown system system /sys/kernel/debug/regmap/1-000b/registers
576    chown system system /sys/kernel/debug/google_battery/cycle_count_bins
577    chown system system /sys/kernel/debug/google_battery/ssoc_gdf
578    chown system system /sys/kernel/debug/google_battery/ssoc_rls
579    chown system system /sys/kernel/debug/google_battery/ssoc_uic
580    chown system system /sys/kernel/debug/google_battery/ssoc_uicurve
581    chown system system /sys/kernel/debug/google_charger/pps_op_ua
582    chown system system /sys/kernel/debug/google_charger/pps_out_uv
583
584    # Permission for Athletico
585    chown system system /dev/sensor_tunnel
586    chmod 0660 /dev/sensor_tunnel
587    chown system system /dev/iaxxx-module-celldrv
588    chmod 0660 /dev/iaxxx-module-celldrv
589
590service vendor.per_mgr /vendor/bin/pm-service
591    user system
592    group system
593    ioprio rt 4
594
595service per_proxy /vendor/bin/pm-proxy
596    class core
597    user system
598    group system
599    disabled
600
601on property:persist.vendor.modem.esim.reset=done && property:persist.vendor.se.pixel_aram=skipped
602    start vendor.per_mgr
603
604on property:persist.vendor.modem.esim.reset=done && property:persist.vendor.se.pixel_aram=removed
605    start vendor.per_mgr
606
607on property:persist.vendor.modem.esim.reset=noneed && property:persist.vendor.se.pixel_aram=skipped
608    start vendor.per_mgr
609
610on property:persist.vendor.modem.esim.reset=noneed && property:persist.vendor.se.pixel_aram=removed
611    start vendor.per_mgr
612
613on property:sys.boot_completed=1
614    start vendor.per_mgr
615
616on property:init.svc.vendor.per_mgr=running
617    start per_proxy
618
619on property:sys.shutdown.requested=*
620    stop per_proxy
621
622service vendor.qseecomd /vendor/bin/qseecomd
623    class core
624    user root
625    group root
626
627service vendor.thermal-engine /vendor/bin/thermal-engine -c /vendor/etc/thermal-engine-${ro.hardware}-${vendor.thermal.mode:-normal}_mode.conf
628   class main
629   user root
630   group root
631
632service init-sensors-sh /vendor/bin/init.sensors.sh
633    class main
634    user root
635    group root system
636    disabled
637    oneshot
638
639service vendor.adsprpcd /vendor/bin/adsprpcd
640   class main
641   user root
642   group media
643   setenv ADSP_LIBRARY_PATH /vendor/dsp;/vendor/lib/rfsa/adsp;/system/lib/rfsa/adsp
644
645service vendor.adsprpcd_audiopd /vendor/bin/adsprpcd audiopd
646   class main
647   user media
648   group media
649
650service vendor.cdsprpcd /vendor/bin/cdsprpcd
651   class main
652   user system
653   group system
654
655service vendor.lowi /vendor/bin/sscrpcd
656   class core
657   user system
658   group system wakelock
659   capabilities BLOCK_SUSPEND
660
661service vendor.imsqmidaemon /system/vendor/bin/imsqmidaemon
662    class main
663    user radio
664    socket ims_qmid stream 0660 system radio
665    group radio log diag
666
667service vendor.imsdatadaemon /system/vendor/bin/imsdatadaemon
668    class main
669    user radio
670    socket ims_datad stream 0660 system radio
671    group radio wifi inet log diag
672    disabled
673
674service vendor.imsrcsservice /system/vendor/bin/imsrcsd
675    class main
676    user radio
677    group radio diag inet log wakelock
678
679on property:vendor.ims.QMI_DAEMON_STATUS=1
680    start vendor.imsdatadaemon
681
682service vendor.ims_rtp_daemon /system/vendor/bin/ims_rtp_daemon
683   class main
684   user radio
685   group radio inet log
686
687service wait_for_strongbox /vendor/bin/hw/wait_for_strongbox
688    user root
689    group root system
690    priority -20
691    ioprio rt 0
692
693on property:vendor.ims.DATA_DAEMON_STATUS=1
694    restart vendor.ims_rtp_daemon
695
696service vendor.qrtr-ns /vendor/bin/qrtr-ns -f
697   class core
698   user vendor_qrtr
699   group vendor_qrtr
700   capabilities NET_BIND_SERVICE
701
702service irsc_util /vendor/bin/irsc_util "/vendor/etc/sec_config"
703   class core
704   user root
705   oneshot
706
707service rmt_storage /vendor/bin/rmt_storage
708    user root
709    ioprio rt 0
710    shutdown critical
711
712service tftp_server /vendor/bin/tftp_server
713   class core
714   user root
715   group root system
716
717service modem_svc /vendor/bin/modem_svc -q
718   class core
719   user root
720   group system
721   capabilities NET_BIND_SERVICE
722
723service vendor.ss_ramdump /vendor/bin/subsystem_ramdump
724    class main
725    user root
726    group system
727    disabled
728
729service vendor.ssr_setup /vendor/bin/ssr_setup
730    oneshot
731    disabled
732
733on property:persist.vendor.sys.ssr.restart_level=*
734    start vendor.ssr_setup
735
736on post-fs-data && property:persist.vendor.sys.ssr.enable_ramdumps=1 && property:vendor.skip.init=0
737    write /sys/module/subsystem_restart/parameters/enable_ramdumps 1
738    mkdir /data/vendor/wifidump 771 root system
739    mkdir /data/vendor/ramdump 771 root system
740    mkdir /data/vendor/ssrdump 771 root system
741    mkdir /data/vendor/ssrlog  775 root system
742    start vendor.ss_ramdump
743    start vendor.crash_event_logger
744
745on property:persist.vendor.sys.ssr.enable_ramdumps=0
746    write /sys/module/subsystem_restart/parameters/enable_ramdumps 0
747
748on property:init.svc.vendor.hwcomposer-2-4=stopped
749    stop ppd
750
751on property:init.svc.vendor.hwcomposer-2-4=running
752    start ppd
753
754service insmod_sh /vendor/bin/init.insmod.sh /vendor/etc/init.insmod.${ro.hardware}.cfg
755    class main
756    user root
757    group root system
758    disabled
759    oneshot
760
761service vendor.msm_irqbalance /vendor/bin/msm_irqbalance -f /vendor/etc/msm_irqbalance.conf
762    socket msm_irqbalance seqpacket 660 root system
763    class core
764    user root
765    group root
766    task_profiles ServiceCapacityLow
767
768service pd_mapper /vendor/bin/pd-mapper
769     class core
770     user system
771     group system
772     capabilities NET_BIND_SERVICE
773
774service cnss-daemon /vendor/bin/cnss-daemon -n -l
775   class late_start
776   user system
777   group system inet wifi
778
779service loc_launcher /vendor/bin/loc_launcher
780    class late_start
781    user gps
782    group gps
783
784# Allow access to touch glove_mode sysfs node
785on property:vendor.all.modules.ready=1
786    chown system system /sys/class/spi_master/spi1/spi1.0/glove_mode
787
788# Toggle glove_mode according to touch_sensitivity_mode
789on property:persist.vendor.touch_sensitivity_mode=0 && property:sys.boot_completed=1
790    write /sys/class/spi_master/spi1/spi1.0/glove_mode 00
791
792on property:persist.vendor.touch_sensitivity_mode=1 && property:sys.boot_completed=1
793    write /sys/class/spi_master/spi1/spi1.0/glove_mode 01
794
795# Route touch_sensitivity_mode to persist
796on property:debug.touch_sensitivity_mode=0
797    setprop persist.vendor.touch_sensitivity_mode 0
798
799on property:debug.touch_sensitivity_mode=1
800    setprop persist.vendor.touch_sensitivity_mode 1
801
802# bugreport is triggered by holding down volume down, volume up and power
803service bugreport /system/bin/dumpstate -d -p -z
804    class main
805    disabled
806    oneshot
807    keycodes 114 115 116
808
809on property:ro.boot.hardware.dsds=1
810    setprop persist.radio.multisim.config dsds
811
812# DSDS feature
813# Restart 1st qcrild after SIM config changed
814on property:vendor.radio.sim_num.switch=1to2 && property:persist.radio.multisim.config=dsds
815    restart vendor.qcrild
816
817on property:vendor.radio.sim_num.switch=2to1 && property:persist.radio.multisim.config=
818    restart vendor.qcrild
819
820# Enable 2nd qcrild when the property set to dsds
821on property:persist.radio.multisim.config=dsds
822    start vendor.qcrild2
823
824# Stop 2nd qcrild when the property set to empty string
825on property:persist.radio.multisim.config=
826    stop vendor.qcrild2
827
828on property:sys.retaildemo.enabled=1
829    setprop vendor.thermal.mode retail
830    restart vendor.thermal-engine
831
832# charger driver exposes now finer grain control, map demo mode to those properties
833# NOTE: demo mode can only be exit wiping data (which reset the persist properties)
834on property:sys.retaildemo.enabled=1
835    setprop persist.vendor.charge.stop.level 35
836    setprop persist.vendor.charge.start.level 30
837
838# Athletico ramdump monitor
839service vendor.crash_event_logger /vendor/bin/crash_event_logger -m
840    class main
841    user audio
842    group audio system
843    disabled
844
845# For Japan radio builds, always enforce camera shutter sound
846# Since this property is read by the audio server in system service,
847# it should be written by the system init.
848on property:ro.boot.hardware.radio.subtype=1
849    setprop audio.camerasound.force true
850