• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#
2# Copyright (C) 2019 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
22import /vendor/etc/init/hw/init.${ro.boot.hardware.platform}.power_debug.rc
23
24service vendor.charger /system/bin/charger
25    class charger
26    seclabel u:r:charger:s0
27    user system
28    group system wakelock input
29    capabilities SYS_BOOT
30    file /dev/kmsg w
31    file /sys/fs/pstore/console-ramoops-0 r
32    file /sys/fs/pstore/console-ramoops r
33    file /proc/last_kmsg r
34
35on early-init
36    mount debugfs debugfs /sys/kernel/debug
37    chmod 0755 /sys/kernel/debug
38
39    # Disable EAS
40    write /proc/sys/kernel/sched_energy_aware 0
41    mount_all /vendor/etc/fstab.persist --early
42
43# Disable VDSO on JAWS boards.
44on early-init && property:ro.revision="DEV1.0"
45    write /sys/module/vdso/parameters/enable_32 0
46
47# Skip init trigger for charger mode
48on early-init && property:ro.boot.mode=charger
49    setprop vendor.skip.init 1
50
51on init && property:vendor.skip.init=0
52    # Disable powersaving
53    write /sys/module/lpm_levels/parameters/sleep_disabled 1
54
55    wait /dev/block/platform/${ro.boot.boot_devices}
56    symlink /dev/block/platform/${ro.boot.boot_devices} /dev/block/bootdevice
57
58    # to access UFS/eMMC sysfs directly
59    symlink /sys/devices/platform/${ro.boot.boot_devices} /dev/sys/block/bootdevice
60
61    # Disable UFS powersaving
62    write /dev/sys/block/bootdevice/clkgate_enable 0
63
64    # start qseecomd early as we mount system/ vendor/ early
65    # vold needs keymaster that needs qseecomd
66    start vendor.qseecomd
67    start keymaster-4-0
68
69    start vendor.citadeld
70    start vendor.keymaster-4-1-citadel
71
72    # Loading kernel modules in background
73    start insmod_sh
74
75    # bring back all cores
76    write /sys/devices/system/cpu/cpu0/online 1
77    write /sys/devices/system/cpu/cpu1/online 1
78    write /sys/devices/system/cpu/cpu2/online 1
79    write /sys/devices/system/cpu/cpu3/online 1
80    write /sys/devices/system/cpu/cpu4/online 1
81    write /sys/devices/system/cpu/cpu5/online 1
82    write /sys/devices/system/cpu/cpu6/online 1
83    write /sys/devices/system/cpu/cpu7/online 1
84
85    # configure governor settings for little cluster
86    write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor schedutil
87    write /sys/devices/system/cpu/cpu0/cpufreq/schedutil/up_rate_limit_us 500
88    write /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us 20000
89
90    # configure governor settings for big cluster
91    write /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor schedutil
92    write /sys/devices/system/cpu/cpu6/cpufreq/schedutil/up_rate_limit_us 500
93    write /sys/devices/system/cpu/cpu6/cpufreq/schedutil/down_rate_limit_us 20000
94
95    # ZRAM setup
96    write /sys/block/zram0/comp_algorithm lz4
97    write /proc/sys/vm/page-cluster 0
98
99    # Some user code relies on ro.boot.hardware.revision
100    setprop ro.boot.hardware.revision ${ro.revision}
101
102    # set default schedTune value for foreground/top-app
103    write /dev/stune/foreground/schedtune.prefer_idle 1
104    write /dev/stune/top-app/schedtune.boost 10
105    write /dev/stune/top-app/schedtune.prefer_idle 1
106
107    # set default schedTune value for camera-daemon
108    write /dev/stune/camera-daemon/schedtune.prefer_idle 1
109    write /dev/stune/camera-daemon/schedtune.boost 0
110
111    # Allow PAI targeting per hardware SKU
112    setprop ro.oem.key1 ${ro.boot.hardware.sku}
113
114    # Battery Defender
115    chown system system /sys/devices/platform/soc/soc:google,charger/charge_stop_level
116    chown system system /sys/devices/platform/soc/soc:google,charger/charge_start_level
117    chown system system /sys/devices/platform/soc/soc:google,charger/bd_drainto_soc
118    chown system system /sys/devices/platform/soc/soc:google,charger/bd_recharge_soc
119    chown system system /sys/devices/platform/soc/soc:google,charger/bd_recharge_voltage
120    chown system system /sys/devices/platform/soc/soc:google,charger/bd_resume_abs_temp
121    chown system system /sys/devices/platform/soc/soc:google,charger/bd_resume_soc
122    chown system system /sys/devices/platform/soc/soc:google,charger/bd_resume_temp
123    chown system system /sys/devices/platform/soc/soc:google,charger/bd_resume_time
124    chown system system /sys/devices/platform/soc/soc:google,charger/bd_trigger_temp
125    chown system system /sys/devices/platform/soc/soc:google,charger/bd_trigger_time
126    chown system system /sys/devices/platform/soc/soc:google,charger/bd_trigger_voltage
127    chown system system /sys/devices/platform/soc/soc:google,charger/bd_temp_enable
128    chown system system /sys/devices/platform/soc/soc:google,charger/bd_temp_dry_run
129    chown system system /sys/devices/platform/soc/soc:google,charger/bd_clear
130    chown system system /sys/devices/platform/soc/soc:google,battery/power_supply/battery/bd_trickle_enable
131    chown system system /sys/devices/platform/soc/soc:google,battery/power_supply/battery/bd_trickle_recharge_soc
132    chown system system /sys/devices/platform/soc/soc:google,battery/power_supply/battery/bd_trickle_cnt
133    chown system system /sys/devices/platform/soc/soc:google,battery/power_supply/battery/bd_trickle_dry_run
134    chown system system /sys/devices/platform/soc/soc:google,battery/power_supply/battery/bd_trickle_reset_sec
135    chown system system /sys/devices/platform/soc/soc:google,battery/power_supply/battery/bd_clear
136    chown system system /sys/devices/platform/soc/soc:google,battery/power_supply/battery/health_safety_margin
137
138    # Charge stats (write 0)
139    chown system system /sys/class/power_supply/battery/charge_stats
140
141    # Report max frequency to unity tasks.
142    write /proc/sys/kernel/sched_lib_name "UnityMain,libunity.so"
143    write /proc/sys/kernel/sched_lib_mask_force 255
144
145    # Nfc streset tool name
146    setprop persist.vendor.nfc.streset libstreset
147
148on late-init
149    chown system system /sys/devices/virtual/thermal/tz-by-name/skin-therm-monitor/trip_point_0_temp
150    chown system system /sys/devices/virtual/thermal/tz-by-name/skin-therm-monitor/trip_point_0_hyst
151    chown system system /sys/devices/virtual/thermal/tz-by-name/usbc-therm-monitor/trip_point_0_temp
152    chown system system /sys/devices/virtual/thermal/tz-by-name/usbc-therm-monitor/trip_point_0_hyst
153
154on fs
155    mount_all /vendor/etc/fstab.${ro.boot.hardware.platform} --early
156
157    mkdir /mnt/vendor/persist/audio 0770 media audio
158    mkdir /mnt/vendor/persist/data 0700 system system
159    mkdir /mnt/vendor/persist/display 0770 system graphics
160    mkdir /mnt/vendor/persist/haptics 0770 system system
161    mkdir /mnt/vendor/persist/rfs 0770 root system
162    mkdir /mnt/vendor/persist/hlos_rfs 0770 root system
163    mkdir /mnt/vendor/persist/touch 0770 system system
164    chmod 0770 /mnt/vendor/persist/rfs
165    chmod 0770 /mnt/vendor/persist/rfs/shared
166    chmod 0770 /mnt/vendor/persist/rfs/msm
167    chmod 0770 /mnt/vendor/persist/rfs/msm/adsp
168    chmod 0770 /mnt/vendor/persist/rfs/msm/mpss
169    chmod 0770 /mnt/vendor/persist/rfs/msm/slpi
170    chmod 0770 /mnt/vendor/persist/rfs/mdm
171    chmod 0770 /mnt/vendor/persist/rfs/mdm/adsp
172    chmod 0770 /mnt/vendor/persist/rfs/mdm/mpss
173    chmod 0770 /mnt/vendor/persist/rfs/mdm/slpi
174    chmod 0770 /mnt/vendor/persist/rfs/mdm/tn
175    chmod 0770 /mnt/vendor/persist/rfs/apq
176    chmod 0770 /mnt/vendor/persist/rfs/apq/gnss
177    chmod 0770 /mnt/vendor/persist/hlos_rfs
178
179    # for cycle count backup
180    mkdir /mnt/vendor/persist/battery 0700 system system
181
182    restorecon_recursive /mnt/vendor/persist
183
184on post-fs
185    # set RLIMIT_MEMLOCK to 64MB
186    setrlimit 8 67108864 67108864
187
188    # Wait qseecomd started
189    wait_for_prop vendor.sys.listeners.registered true
190
191    # load IPA FWs
192    # This must be started when vendor.sys.listeners.registered is true
193    write /dev/ipa 1
194
195on late-fs
196    # Start services for bootanim
197    #start color_init
198    #wait_for_prop vendor.display.native_display_primaries_ready 1
199    #setprop ro.surface_flinger.display_primary_red ${vendor.display.primary_red}
200    #setprop ro.surface_flinger.display_primary_green ${vendor.display.primary_green}
201    #setprop ro.surface_flinger.display_primary_blue ${vendor.display.primary_blue}
202    #setprop ro.surface_flinger.display_primary_white ${vendor.display.primary_white}
203    # Permission for hwcomposer
204    chown system system /sys/class/backlight/panel0-backlight/brightness
205    chown system system /sys/class/backlight/panel0-backlight/max_brightness
206    chown system system /sys/class/backlight/panel0-backlight/vr_mode
207    chown system system /sys/class/backlight/panel0-backlight/hbm_mode
208    start surfaceflinger
209    start bootanim
210    start vendor.hwcomposer-2-4
211    start vendor.configstore-hal
212    start vendor.qti.hardware.display.allocator
213    start vendor.light-1-1
214
215    # Wait for keymaster HALs (TEE and StrongBox)
216    exec_start wait_for_strongbox
217
218
219    # Mount RW partitions which need run fsck
220    mount_all /vendor/etc/fstab.${ro.boot.hardware.platform} --late
221
222    # Required for time_daemon
223    mkdir /mnt/vendor/persist/time 0770 system system
224    chown system system /mnt/vendor/persist/time/ats_1
225    chown system system /mnt/vendor/persist/time/ats_2
226    chown system system /mnt/vendor/persist/time/ats_3
227    chown system system /mnt/vendor/persist/time/ats_4
228    chown system system /mnt/vendor/persist/time/ats_5
229    chown system system /mnt/vendor/persist/time/ats_6
230    chown system system /mnt/vendor/persist/time/ats_7
231    chown system system /mnt/vendor/persist/time/ats_8
232    chown system system /mnt/vendor/persist/time/ats_9
233    chown system system /mnt/vendor/persist/time/ats_10
234    chown system system /mnt/vendor/persist/time/ats_11
235    chown system system /mnt/vendor/persist/time/ats_12
236    chown system system /mnt/vendor/persist/time/ats_13
237    chown system system /mnt/vendor/persist/time/ats_14
238    chown system system /mnt/vendor/persist/time/ats_15
239    chown system system /mnt/vendor/persist/time/ats_16
240
241    # Start time daemon early so that the system time can be set early
242    start time_daemon
243
244    # Init sensor specific services
245    start init-sensors-sh
246
247    # turn off vblank irq immediately after turning off
248    write /sys/module/drm/parameters/vblankoffdelay -1
249
250    # Write build info to kdebuginfo.
251    write /sys/module/kdebuginfo/parameters/build_info "${ro.product.name}-${ro.build.type} ${ro.build.version.incremental}"
252
253on post-fs-data
254    mkdir /vendor/data/tombstones 0771 system system
255    mkdir /tombstones/modem 0771 system system
256    mkdir /tombstones/lpass 0771 system system
257    mkdir /tombstones/wcnss 0771 system system
258    mkdir /tombstones/dsps 0771 system system
259    mkdir /data/vendor/hbtp 0750 system system
260    mkdir /data/vendor/tloc 0700 system drmrpc
261    mkdir /data/vendor/nnhal 0700 system system
262    mkdir /data/vendor/time 0770 system system
263    mkdir /data/vendor/modem_fdr 0700 root system
264    mkdir /data/vendor/display 0770 system graphics
265    mkdir /data/vendor/camera 0770 system system
266    mkdir /data/vendor/rebootescrow 0770 hsm hsm
267    start vendor.rebootescrow-citadel
268
269on zygote-start
270    # zygote is started in common init.rc
271    # and now we can continue initialize /data/
272    mkdir /data/vendor/ipa 0770 radio radio
273    chown radio radio /data/vendor/ipa
274
275    # Create the directories used by the Wireless subsystem
276    mkdir /data/vendor/wifi 0771 wifi wifi
277    mkdir /data/vendor/wifi/wpa 0770 wifi wifi
278    mkdir /data/vendor/wifi/wpa/sockets 0770 wifi wifi
279
280    # Create the directories used by CnE subsystem
281    mkdir /data/vendor/connectivity 0771 radio radio
282    chown radio radio /data/vendor/connectivity
283
284    # Create directory for radio
285    mkdir /data/vendor/radio 0773 system radio
286    mkdir /data/vendor/modem_stat 0771 system radio
287    write /data/vendor/modem_stat/debug.txt ""
288    chown system radio /data/vendor/modem_stat/debug.txt
289    chmod 0664 /data/vendor/modem_stat/debug.txt
290
291    # Mark the copy complete flag to not completed
292    write /data/vendor/radio/copy_complete 0
293    chown radio radio /data/vendor/radio/copy_complete
294    chmod 0660 /data/vendor/radio/copy_complete
295
296    # File flags for prebuilt ril db file
297    write /data/vendor/radio/prebuilt_db_support 1
298    chown radio radio /data/vendor/radio/prebuilt_db_support
299    chmod 0400 /data/vendor/radio/prebuilt_db_support
300    write /data/vendor/radio/db_check_done 0
301    chown radio radio /data/vendor/radio/db_check_done
302    chmod 0660 /data/vendor/radio/db_check_done
303
304    # Create directories for Location services
305    mkdir /data/vendor/location 0770 gps gps
306    mkdir /data/vendor/location/mq 0770 gps gps
307    mkdir /data/vendor/location/xtwifi 0770 gps gps
308    mkdir /dev/socket/location 0770 gps gps
309    mkdir /dev/socket/location/mq 0770 gps gps
310    mkdir /dev/socket/location/xtra 0770 gps gps
311
312    #Create directories for wifihal services
313    mkdir /dev/socket/wifihal 0770 wifi wifi
314    chmod 2770 /dev/socket/wifihal
315
316    # Create directory for audio delta files
317    mkdir /data/vendor/audio 0770 audio audio
318    mkdir /data/vendor/audio/acdbdata 0770 media audio
319    mkdir /data/vendor/audio/acdbdata/delta 0770 media audio
320
321on early-boot
322    # Set up sensors-related directories and permissions
323    chmod 775 /mnt/vendor/persist/sensors
324    chmod 664 /mnt/vendor/persist/sensors/sensors_settings
325    chown root system /mnt/vendor/persist/sensors/registry
326    chmod 775 /mnt/vendor/persist/sensors/registry
327    chown root system /mnt/vendor/persist/sensors/registry/registry
328    chmod 775 /mnt/vendor/persist/sensors/registry/registry
329    chmod 664 /mnt/vendor/persist/sensors/registry/registry/sensors_registry
330    chown system root /mnt/vendor/persist/sensors/sensors_settings
331    chown root root /mnt/vendor/persist/sensors/registry/registry/sensors_settings
332
333    mkdir /data/vendor/sensors 0770
334    chown system system /data/vendor/sensors
335    mkdir /data/vendor/sensors/log 0770
336    chown system system /data/vendor/sensors/log
337
338    # Restore SeLinux Context for preventing temp.json with
339    # incorrect security context
340    restorecon /mnt/vendor/persist/sensors/registry/temp.json
341
342    chmod 770 /mnt/vendor/persist/audio
343    chmod 660 /mnt/vendor/persist/audio/audio.cal
344    chown media audio /mnt/vendor/persist/audio
345    chown audioserver audio /mnt/vendor/persist/audio/audio.cal
346
347    # Set up haptics-related directories and permissions
348    chmod 770 /mnt/vendor/persist/haptics
349    chmod 440 /mnt/vendor/persist/haptics/drv2624.cal
350    chown system system /mnt/vendor/persist/haptics
351    chown system system /mnt/vendor/persist/haptics/drv2624.cal
352
353    # Set up touch directories and permissions
354    chmod 770 /mnt/vendor/persist/touch
355    chown system system /mnt/vendor/persist/touch
356
357    # Wait for insmod_sh to finish all modules
358    wait_for_prop vendor.all.modules.ready 1
359
360    # Update dm-verity state and set partition.*.verified properties
361    verity_update_state
362
363    # Wait for insmod_sh to finish all boot devices
364    wait_for_prop vendor.all.devices.ready 1
365
366    # Permission for Vibrator
367    chown system system /sys/class/leds/vibrator/device/mode
368    chown system system /sys/class/leds/vibrator/device/od_clamp
369    chown system system /sys/class/leds/vibrator/device/rtp_input
370    chown system system /sys/class/leds/vibrator/device/scale
371    chown system system /sys/class/leds/vibrator/device/set_sequencer
372    chown system system /sys/class/leds/vibrator/device/autocal_result
373    chown system system /sys/class/leds/vibrator/device/ctrl_loop
374    chown system system /sys/class/leds/vibrator/device/ol_lra_period
375    chown system system /sys/class/leds/vibrator/device/autocal
376    chown system system /sys/class/leds/vibrator/device/lp_trigger_effect
377    chown system system /sys/class/leds/vibrator/device/lra_wave_shape
378    write /sys/class/leds/vibrator/trigger transient
379
380    # Permission for Rainbow sensor
381    chown system system /sys/devices/platform/soc/ac4b000.qcom,cci/ac4b000.qcom,cci:st,rainbow@20/rainbow_enable
382    chmod 0660 /sys/devices/platform/soc/ac4a000.qcom,cci/ac4a000.qcom,cci:qcom,rainbow@20/rainbow_enable
383    chown system system /sys/devices/platform/soc/ac4b000.qcom,cci/ac4b000.qcom,cci:st,rainbow@20/rainbow_read_byte
384    chmod 0660 /sys/devices/platform/soc/ac4a000.qcom,cci/ac4a000.qcom,cci:qcom,rainbow@20/rainbow_read_byte
385    chown system system /sys/devices/platform/soc/ac4b000.qcom,cci/ac4b000.qcom,cci:st,rainbow@20/rainbow_write_byte
386    chmod 0660 /sys/devices/platform/soc/ac4b000.qcom,cci/ac4b000.qcom,cci:st,rainbow@20/rainbow_write_byte
387    chown system system /dev/vd6281
388    chmod 0660 /dev/vd6281
389
390    # Permission for Athletico
391    chown system system /dev/sensor_tunnel
392    chmod 0660 /dev/sensor_tunnel
393
394    # Permission for camera sensor
395    chown system system /sys/devices/platform/soc/ac4a000.qcom,cci/ac4a000.qcom,cci:qcom,cam-sensor@3/set_strobe_type
396    chmod 0660 sys/devices/platform/soc/ac4a000.qcom,cci/ac4a000.qcom,cci:qcom,cam-sensor@3/set_strobe_type
397    chown system system /sys/devices/platform/soc/ac4a000.qcom,cci/ac4a000.qcom,cci:qcom,cam-sensor@4/set_strobe_type
398    chmod 0660 sys/devices/platform/soc/ac4a000.qcom,cci/ac4a000.qcom,cci:qcom,cam-sensor@4/set_strobe_type
399
400    # FG cycle count read from dumpstate + backup restore from health HAL (and pixelstats)
401    chown system system /sys/class/power_supply/maxfg/cycle_counts_bins
402
403    # Permission for battery eeprom
404    chown system system /sys/devices/platform/soc/a8c000.i2c/i2c-2/2-0050/2-00500/nvmem
405    chmod 0640 /sys/devices/platform/soc/a8c000.i2c/i2c-2/2-0050/2-00500/nvmem
406    chown system system /dev/battery_history
407    chmod 0644 /dev/battery_history
408
409    # Permission for Pixelstats
410    chown system system /sys/class/misc/msm_cirrus_playback/resistance_left_right
411    chown system system /dev/sys/block/bootdevice/slowio_read_cnt
412    chown system system /dev/sys/block/bootdevice/slowio_write_cnt
413    chown system system /dev/sys/block/bootdevice/slowio_unmap_cnt
414    chown system system /dev/sys/block/bootdevice/slowio_sync_cnt
415
416    # Permission for Health Storage HAL
417    chown system system /dev/sys/block/bootdevice/manual_gc
418
419    # Permissions for reading display native color gamut
420    chown system graphics /mnt/vendor/persist/display/native_gamut.csv
421
422on boot
423    # This location is used by QCRIL to host UNIX domain
424    # socket files used for internal IPC within QCRIL
425    # modules
426    mkdir /dev/socket/qmux_radio 0770 radio radio
427    chmod 2770 /dev/socket/qmux_radio
428
429    setprop wifi.interface wlan0
430
431    chown system system /sys/kernel/hbtp/display_pwr
432    start rfs_access
433
434    # default country code
435    setprop ro.boot.wificountrycode 00
436
437    # WLAN debug access
438    chown system system /d/icnss/stats
439
440service init-radio-sh /vendor/bin/init.radio.sh
441    class late_start
442    user radio
443    group root radio
444    oneshot
445
446on property:init.svc.vendor.charger=running
447    stop vendor.qseecomd
448    stop keymaster-4-0
449
450    setprop sys.usb.configfs 1
451    setprop vendor.setup.power 1
452
453    # keep one LITTLE and one big
454    write /sys/devices/system/cpu/cpu1/online 0
455    write /sys/devices/system/cpu/cpu2/online 0
456    write /sys/devices/system/cpu/cpu3/online 0
457    write /sys/devices/system/cpu/cpu4/online 0
458    write /sys/devices/system/cpu/cpu5/online 0
459    write /sys/devices/system/cpu/cpu7/online 0
460
461    # Enable thermal mitigation
462    write /sys/devices/virtual/thermal/tz-by-name/backup-charge/mode enabled
463
464on property:sys.boot_completed=1
465    setprop vendor.setup.power 1
466
467    # Block layer tuning: discard chunk size up to 128MB
468    # Otherwise, contiguous discards can be merged
469    write /sys/block/sda/queue/discard_max_bytes 134217728
470
471    # Back to default VM settings
472    write /proc/sys/vm/dirty_expire_centisecs 3000
473    write /proc/sys/vm/dirty_background_ratio 10
474
475    # Enable ZRAM on boot_complete
476    swapon_all /vendor/etc/fstab.${ro.boot.hardware.platform}
477    write /proc/sys/vm/swappiness 100
478
479    # Setup runtime cpusets
480    write /dev/cpuset/top-app/cpus 0-7
481    write /dev/cpuset/foreground/cpus 0-5,7
482    write /dev/cpuset/background/cpus 4-5
483    write /dev/cpuset/system-background/cpus 2-5
484    write /dev/cpuset/restricted/cpus 2-5
485
486    # Setup runtime blkio
487    # value for group_idle is us
488    write /dev/blkio/blkio.weight 1000
489    write /dev/blkio/background/blkio.weight 200
490    write /dev/blkio/blkio.group_idle 2000
491    write /dev/blkio/background/blkio.group_idle 0
492
493    # UFS health
494    chmod 755 /sys/kernel/debug/ufshcd0
495    chmod 644 /sys/kernel/debug/ufshcd0/show_hba
496    chmod 644 /sys/kernel/debug/ufshcd0/stats/err_stats
497    chmod 644 /sys/kernel/debug/ufshcd0/stats/io_stats
498    chmod 644 /sys/kernel/debug/ufshcd0/stats/req_stats
499
500    # HardwareInfo needs to be able to read display info
501    chmod 444 /sys/devices/platform/soc/soc:qcom,dsi-display/panel_info/panel0/serial_number
502    chmod 444 /sys/devices/platform/soc/soc:qcom,dsi-display/panel_info/panel0/panel_vendor_name
503    chmod 444 /sys/devices/platform/soc/soc:qcom,dsi-display/panel_info/panel0/panel_extinfo
504
505    # Maxim FG dump for dumpstate
506    chown system system /sys/kernel/debug/regmap/1-0036/registers
507    chown system system /sys/kernel/debug/regmap/1-000b/registers
508    chown system system /sys/kernel/debug/google_battery/cycle_count_bins
509    chown system system /sys/kernel/debug/google_battery/ssoc_gdf
510    chown system system /sys/kernel/debug/google_battery/ssoc_rls
511    chown system system /sys/kernel/debug/google_battery/ssoc_uic
512    chown system system /sys/kernel/debug/google_battery/ssoc_uicurve
513    chown system system /sys/kernel/debug/google_charger/pps_op_ua
514    chown system system /sys/kernel/debug/google_charger/pps_out_uv
515
516    # Permission for bootloader logs
517    chown root log /proc/bldrlog
518    chmod 0444 /proc/bldrlog
519
520service vendor.per_mgr /vendor/bin/pm-service
521    class core
522    user system
523    group system
524    ioprio rt 4
525
526service per_proxy /vendor/bin/pm-proxy
527    class core
528    user system
529    group system
530    disabled
531
532on property:init.svc.vendor.per_mgr=running
533    start per_proxy
534
535on property:sys.shutdown.requested=*
536    stop per_proxy
537
538service vendor.qseecomd /vendor/bin/qseecomd
539    class core
540    user root
541    group root
542
543service vendor.thermal-engine /vendor/bin/thermal-engine -c /vendor/etc/thermal-engine-${ro.hardware}.conf
544   class main
545   user root
546   group root
547
548service init-sensors-sh /vendor/bin/init.sensors.sh
549    class main
550    user root
551    group root system
552    disabled
553    oneshot
554
555service vendor.adsprpcd /vendor/bin/adsprpcd
556   class main
557   user system
558   group media
559
560service vendor.adsprpcd_audiopd /vendor/bin/adsprpcd audiopd
561   class main
562   user media
563   group media
564
565service vendor.adsprpcd_sensorspd /vendor/bin/adsprpcd sensorspd
566   class main
567   user system
568   group system
569
570service vendor.cdsprpcd /vendor/bin/cdsprpcd
571   class main
572   user system
573   group system
574
575service vendor.imsqmidaemon /system/vendor/bin/imsqmidaemon
576    class main
577    user radio
578    socket ims_qmid stream 0660 system radio
579    group radio log diag
580
581service vendor.imsdatadaemon /system/vendor/bin/imsdatadaemon
582    class main
583    user radio
584    socket ims_datad stream 0660 system radio
585    group radio wifi inet log diag
586    disabled
587
588service vendor.imsrcsservice /system/vendor/bin/imsrcsd
589    class main
590    user radio
591    group radio diag inet log wakelock
592
593on property:vendor.ims.QMI_DAEMON_STATUS=1
594    start vendor.imsdatadaemon
595
596service vendor.ims_rtp_daemon /system/vendor/bin/ims_rtp_daemon
597   class main
598   user radio
599   group radio inet log
600
601service wait_for_strongbox /vendor/bin/hw/wait_for_strongbox
602    user root
603    group root system
604    priority -20
605    ioprio rt 0
606
607on property:vendor.ims.DATA_DAEMON_STATUS=1
608    restart vendor.ims_rtp_daemon
609
610service vendor.qrtr-ns /vendor/bin/qrtr-ns -f
611   class core
612   user vendor_qrtr
613   group vendor_qrtr
614   capabilities NET_BIND_SERVICE
615
616service irsc_util /vendor/bin/irsc_util "/vendor/etc/sec_config"
617   class core
618   user root
619   oneshot
620
621service tftp_server /vendor/bin/tftp_server
622   class core
623   user root
624   group root system
625
626service modem_svc /vendor/bin/modem_svc -q
627   class core
628   user root
629   group system
630   capabilities NET_BIND_SERVICE
631
632service vendor.ss_ramdump /vendor/bin/subsystem_ramdump
633    class main
634    user root
635    group system
636    disabled
637
638service vendor.ssr_setup /vendor/bin/ssr_setup
639    oneshot
640    disabled
641
642on property:persist.vendor.sys.ssr.restart_level=*
643    start vendor.ssr_setup
644
645on post-fs-data && property:persist.vendor.sys.ssr.enable_ramdumps=1 && property:vendor.skip.init=0
646    write /sys/module/subsystem_restart/parameters/enable_ramdumps 1
647    mkdir /data/vendor/wifidump 771 root system
648    mkdir /data/vendor/ramdump 771 root system
649    mkdir /data/vendor/ssrdump 771 root system
650    mkdir /data/vendor/ssrlog  775 root system
651    start vendor.ss_ramdump
652    start vendor.crash_event_logger
653
654on property:persist.vendor.sys.ssr.enable_ramdumps=0
655    write /sys/module/subsystem_restart/parameters/enable_ramdumps 0
656
657service wpa_supplicant /vendor/bin/hw/wpa_supplicant \
658    -O/data/vendor/wifi/wpa/sockets -puse_p2p_group_interface=1 -dd \
659    -g@android:wpa_wlan0
660    #   we will start as root and wpa_supplicant will switch to user wifi
661    #   after setting up the capabilities required for WEXT
662    #   user wifi
663    #   group wifi inet keystore
664    interface android.hardware.wifi.supplicant@1.0::ISupplicant default
665    interface android.hardware.wifi.supplicant@1.1::ISupplicant default
666    interface android.hardware.wifi.supplicant@1.2::ISupplicant default
667    class main
668    socket wpa_wlan0 dgram 660 wifi wifi
669    disabled
670    oneshot
671
672on property:init.svc.vendor.hwcomposer-2-4=stopped
673    stop ppd
674
675on property:init.svc.vendor.hwcomposer-2-4=running
676    start ppd
677
678# charger driver exposes now finer grain control, map demo mode to those properties
679# NOTE: demo mode can only be exit wiping data (which reset the persist properties)
680on property:sys.retaildemo.enabled=1
681    setprop persist.vendor.charge.stop.level 35
682    setprop persist.vendor.charge.start.level 30
683
684# Test Harness Mode default battery profile. Restricted but not too restricted.
685on  property:persist.sys.test_harness=1 && property:persist.vendor.testing_battery_profile=0
686    setprop persist.vendor.charge.stop.level 70
687    setprop persist.vendor.charge.start.level 35
688    setprop vendor.battery.defender.disable 1
689
690# Extremely restricted battery profile.
691on  property:persist.sys.test_harness=1 && property:persist.vendor.testing_battery_profile=1
692    setprop persist.vendor.charge.stop.level 50
693    setprop persist.vendor.charge.start.level 35
694    setprop vendor.battery.defender.disable 1
695
696# Normal behavior (as if the device was a regular device)
697on  property:persist.sys.test_harness=1 && property:persist.vendor.testing_battery_profile=2
698    setprop persist.vendor.charge.stop.level 100
699    setprop persist.vendor.charge.start.level 0
700
701# Unrestricted, allows charging to 100%
702on  property:persist.sys.test_harness=1 && property:persist.vendor.testing_battery_profile=3
703    setprop persist.vendor.charge.stop.level 100
704    setprop persist.vendor.charge.start.level 0
705    setprop vendor.battery.defender.disable 1
706
707service insmod_sh /vendor/bin/init.insmod.sh /vendor/etc/init.insmod.${ro.hardware}.cfg
708    class main
709    user root
710    group root system
711    disabled
712    oneshot
713
714service vendor.msm_irqbalance /vendor/bin/msm_irqbalance -f /vendor/etc/msm_irqbalance.conf
715    socket msm_irqbalance seqpacket 660 root system
716    class core
717    user root
718    group root
719    writepid /dev/cpuset/system-background/tasks
720
721service pd_mapper /vendor/bin/pd-mapper
722     class core
723     user system
724     group system
725     capabilities NET_BIND_SERVICE
726
727service cnss-daemon /vendor/bin/cnss-daemon -n -l
728   class late_start
729   user system
730   group system inet wifi
731
732service loc_launcher /vendor/bin/loc_launcher
733    class late_start
734    user gps
735    group gps
736
737# bugreport is triggered by holding down volume down, volume up and power
738service bugreport /system/bin/dumpstate -d -p -z
739    class main
740    disabled
741    oneshot
742    keycodes 114 115 116
743
744on property:ro.boot.hardware.dsds=1
745    setprop persist.radio.multisim.config dsds
746
747# DSDS feature
748# Restart 1st qcrild after SIM config changed
749on property:vendor.radio.sim_num.switch=1to2 && property:persist.radio.multisim.config=dsds
750    restart vendor.qcrild
751
752on property:vendor.radio.sim_num.switch=2to1 && property:persist.radio.multisim.config=
753    restart vendor.qcrild
754
755# Enable 2nd qcrild when the property set to dsds
756on property:persist.radio.multisim.config=dsds
757    start vendor.qcrild2
758
759# For Japan radio builds, always enforce camera shutter sound
760# Since this property is read by the audio server in system service,
761# it should be written by the system init.
762on property:ro.boot.hardware.radio.subtype=1
763    setprop audio.camerasound.force true
764
765on property:persist.sys.device_provisioned=1
766    setprop dalvik.vm.dex2oat-cpu-set 0,1,2,3,4,5,7
767    setprop dalvik.vm.dex2oat-threads 6
768