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