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