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