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