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