# # Copyright (C) 2016 The Android Open-Source Project # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # import /vendor/etc/init/hw/init.${ro.boot.hardware.platform}.power.rc import /vendor/etc/init/hw/init.${ro.boot.hardware.platform}.usb.rc import /vendor/etc/init/hw/init.${ro.boot.hardware.platform}.diag.rc import /vendor/etc/init/hw/init.${ro.boot.hardware.platform}.logging.rc import /vendor/etc/init/hw/init.${ro.boot.hardware.platform}.mpssrfs.rc on property:init.svc.vendor.charger=running # keep one LITTLE and one big write /sys/devices/system/cpu/cpu1/online 0 write /sys/devices/system/cpu/cpu2/online 0 write /sys/devices/system/cpu/cpu3/online 0 write /sys/devices/system/cpu/cpu5/online 0 write /sys/devices/system/cpu/cpu6/online 0 write /sys/devices/system/cpu/cpu7/online 0 # Enable UFS powersaving write /sys/devices/platform/soc/${ro.boot.bootdevice}/clkgate_enable 1 write /sys/devices/platform/soc/${ro.boot.bootdevice}/hibern8_on_idle_enable 1 write /sys/class/typec/port0/port_type sink write /sys/module/lpm_levels/parameters/sleep_disabled 0 # Disable sched_boost write /proc/sys/kernel/sched_boost 0 # Enable thermal mitigation write /sys/devices/virtual/thermal/tz-by-name/backup-charge/mode enabled # Ensure 100% reporting is sticky write /sys/class/power_supply/maxfg/offmode_charger 1 service vendor.charger /system/bin/charger class charger seclabel u:r:charger:s0 user system group system wakelock input capabilities SYS_BOOT file /dev/kmsg w file /sys/fs/pstore/console-ramoops-0 r file /sys/fs/pstore/console-ramoops r file /proc/last_kmsg r on early-init mount debugfs debugfs /sys/kernel/debug chmod 0755 /sys/kernel/debug # Enable sched_boost write /proc/sys/kernel/sched_boost 1 mount_all /vendor/etc/fstab.persist --early # Skip init trigger for charger mode on early-init && property:ro.boot.mode=charger setprop vendor.skip.init 1 # We need vold early for metadata encryption on early-fs start vold on init && property:vendor.skip.init=0 start logd # QSEE rpmb listener need symlink for bootdevice wait /dev/block/platform/soc/${ro.boot.bootdevice} symlink /dev/block/platform/soc/${ro.boot.bootdevice} /dev/block/bootdevice # start qseecomd early as we mount system/ vendor/ early # vold needs keymaster that needs qseecomd start vendor.qseecomd start keymaster-4-0 # start Citadel keymaster (StrongBox) early start vendor.citadeld start vendor.keymaster-4-0-citadel # Boot time fs tune write /sys/block/sda/queue/iostats 0 write /sys/block/sda/queue/scheduler cfq write /sys/block/sda/queue/iosched/slice_idle 0 write /sys/block/sda/queue/read_ahead_kb 2048 write /sys/block/sda/queue/nr_requests 256 write /sys/block/sdf/queue/iostats 0 write /sys/block/sdf/queue/scheduler cfq write /sys/block/sdf/queue/iosched/slice_idle 0 write /sys/block/sdf/queue/read_ahead_kb 2048 write /sys/block/sdf/queue/nr_requests 256 write /sys/block/dm-0/queue/read_ahead_kb 2048 write /sys/block/dm-1/queue/read_ahead_kb 2048 write /sys/block/dm-2/queue/read_ahead_kb 2048 write /sys/block/dm-3/queue/read_ahead_kb 2048 write /sys/block/dm-4/queue/read_ahead_kb 2048 write /sys/block/dm-5/queue/read_ahead_kb 2048 # Disable UFS powersaving write /sys/devices/platform/soc/${ro.boot.bootdevice}/clkgate_enable 0 write /sys/devices/platform/soc/${ro.boot.bootdevice}/hibern8_on_idle_enable 0 # Loading kernel modules in background start insmod_sh # Support legacy paths symlink /sdcard /mnt/sdcard symlink /sdcard /storage/sdcard0 # bring back all cores write /sys/devices/system/cpu/cpu0/online 1 write /sys/devices/system/cpu/cpu1/online 1 write /sys/devices/system/cpu/cpu2/online 1 write /sys/devices/system/cpu/cpu3/online 1 write /sys/devices/system/cpu/cpu4/online 1 write /sys/devices/system/cpu/cpu5/online 1 write /sys/devices/system/cpu/cpu6/online 1 write /sys/devices/system/cpu/cpu7/online 1 # configure governor settings for little cluster write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor schedutil write /sys/devices/system/cpu/cpu0/cpufreq/schedutil/up_rate_limit_us 500 write /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us 20000 # configure governor settings for big cluster write /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor schedutil write /sys/devices/system/cpu/cpu4/cpufreq/schedutil/up_rate_limit_us 500 write /sys/devices/system/cpu/cpu4/cpufreq/schedutil/down_rate_limit_us 20000 # set default schedTune value for foreground/top-app write /dev/stune/foreground/schedtune.prefer_idle 1 write /dev/stune/top-app/schedtune.boost 10 write /dev/stune/top-app/schedtune.prefer_idle 1 # Setup cpusets used by the VR services. mkdir /dev/cpuset/kernel 0750 root system write /dev/cpuset/kernel/cpus 0 write /dev/cpuset/kernel/mems 0 chown system system /dev/cpuset/kernel/tasks chown system system /dev/cpuset/kernel/cpus chmod 0660 /dev/cpuset/kernel/tasks chmod 0660 /dev/cpuset/kernel/cpus mkdir /dev/cpuset/camera-daemon write /dev/cpuset/camera-daemon/cpus 0-7 write /dev/cpuset/camera-daemon/mems 0 chown system system /dev/cpuset/camera-daemon chown system system /dev/cpuset/camera-daemon/tasks chmod 0664 /dev/cpuset/camera-daemon/tasks mkdir /dev/cpuset/system 0750 root system write /dev/cpuset/system/cpus 0 write /dev/cpuset/system/mems 0 chown system system /dev/cpuset/system/tasks chmod 0660 /dev/cpuset/system/tasks mkdir /dev/cpuset/system/performance 0750 root system write /dev/cpuset/system/performance/cpus 0 write /dev/cpuset/system/performance/mems 0 chown system system /dev/cpuset/system/performance/tasks chmod 0660 /dev/cpuset/system/performance/tasks mkdir /dev/cpuset/system/background 0750 root system write /dev/cpuset/system/background/cpus 0 write /dev/cpuset/system/background/mems 0 chown system system /dev/cpuset/system/background/tasks chmod 0660 /dev/cpuset/system/background/tasks mkdir /dev/cpuset/application 0750 root system write /dev/cpuset/application/cpus 0 write /dev/cpuset/application/mems 0 chown system system /dev/cpuset/application/tasks chmod 0660 /dev/cpuset/application/tasks mkdir /dev/cpuset/application/performance 0750 root system write /dev/cpuset/application/performance/cpus 0 write /dev/cpuset/application/performance/mems 0 chown system system /dev/cpuset/application/performance/tasks chmod 0660 /dev/cpuset/application/performance/tasks mkdir /dev/cpuset/application/background 0750 root system write /dev/cpuset/application/background/cpus 0 write /dev/cpuset/application/background/mems 0 chown system system /dev/cpuset/application/background/tasks chmod 0660 /dev/cpuset/application/background/tasks # Create UDS structure for base VR services. mkdir /dev/socket/pdx 0775 system system mkdir /dev/socket/pdx/system 0775 system system mkdir /dev/socket/pdx/system/buffer_hub 0775 system system mkdir /dev/socket/pdx/system/performance 0775 system system mkdir /dev/socket/pdx/system/vr 0775 system system mkdir /dev/socket/pdx/system/vr/display 0775 system system mkdir /dev/socket/pdx/system/vr/pose 0775 system system mkdir /dev/socket/pdx/system/vr/sensors 0775 system system # b/37682684 Enable suspend clock reporting write /sys/kernel/debug/clk/debug_suspend 1 # ZRAM setup write /sys/block/zram0/comp_algorithm lz4 write /proc/sys/vm/page-cluster 0 # Some user code relies on ro.boot.hardware.revision setprop ro.boot.hardware.revision ${ro.revision} # Allow PAI targeting per hardware SKU setprop ro.oem.key1 ${ro.boot.hardware.sku} # Property used by vintf for sku specific manifests setprop ro.boot.product.hardware.sku ${ro.boot.hardware.sku} # Property used by pointing to thermal-engine config file setprop vendor.thermal.vr_mode -novr setprop vendor.thermal.hw_mode -prod setprop vendor.thermal.config "thermal_info_config.json" on late-init write /sys/devices/virtual/thermal/tz-by-name/fps-therm-adc/mode enabled chown system system /sys/devices/virtual/thermal/tz-by-name/fps-therm-monitor/trip_point_0_temp chown system system /sys/devices/virtual/thermal/tz-by-name/fps-therm-monitor/trip_point_0_hyst chown system system /sys/devices/virtual/thermal/tz-by-name/usbc-therm-monitor/trip_point_0_temp chown system system /sys/devices/virtual/thermal/tz-by-name/usbc-therm-monitor/trip_point_0_hyst on fs mount_all /vendor/etc/fstab.${ro.boot.hardware.platform} --early mkdir /persist/data 0700 system system mkdir /persist/display 0770 system graphics mkdir /persist/rfs 0770 root system mkdir /persist/hlos_rfs 0770 root system chmod 0770 /persist/rfs chmod 0770 /persist/rfs/shared chmod 0770 /persist/rfs/msm chmod 0770 /persist/rfs/msm/adsp chmod 0770 /persist/rfs/msm/mpss chmod 0770 /persist/rfs/msm/slpi chmod 0770 /persist/rfs/mdm chmod 0770 /persist/rfs/mdm/adsp chmod 0770 /persist/rfs/mdm/mpss chmod 0770 /persist/rfs/mdm/slpi chmod 0770 /persist/rfs/mdm/tn chmod 0770 /persist/rfs/apq chmod 0770 /persist/rfs/apq/gnss chmod 0770 /persist/hlos_rfs # for cycle count backup mkdir /persist/battery 0700 system system restorecon_recursive /mnt/vendor/persist on late-fs # Start devices by sysfs trigger, including SLPI. SLPI waits for sscrpcd to # read /persist, so to prevent SLPI startup delays, start both here. start devstart_sh start vendor.sscrpcd # Start services for bootanim start surfaceflinger start bootanim start vendor.hwcomposer-2-3 start vendor.configstore-hal start vendor.qti.hardware.display.allocator start vendor.light-1-0 # Wait for hwservicemanager ready since fsck might be triggered in mount_all --late # In such case, init won't responce the property_set from hwservicemanager and then # cause services for bootanim not running. wait_for_prop hwservicemanager.ready true # Wait for keymaster HALs (TEE and StrongBox) exec_start wait_for_strongbox # Mount RW partitions which need run fsck mount_all /vendor/etc/fstab.${ro.boot.hardware.platform} --late # Boot time fs tune write /sys/block/dm-3/queue/read_ahead_kb 2048 write /sys/block/dm-4/queue/read_ahead_kb 2048 write /sys/block/dm-6/queue/read_ahead_kb 2048 # Required for time_daemon mkdir /persist/time 0770 system system # Start time daemon early so that the system time can be set early start time_daemon on post-fs # Disable sched autogroup write /proc/sys/kernel/sched_autogroup_enabled 0 # set RLIMIT_MEMLOCK to 64MB setrlimit 8 67108864 67108864 chmod 0664 /sys/devices/virtual/graphics/fb0/idle_time chown system graphics /sys/devices/virtual/graphics/fb0/idle_time write /sys/devices/virtual/graphics/fb0/idle_time 100 # turn off vblank irq immediately after turning off write /sys/module/drm/parameters/vblankoffdelay -1 on post-fs-data # We can start netd here before in is launched in common init.rc on zygote-start start netd # b/38048356 Setup debug folders for camera mkdir /data/vendor/camera 0770 camera camera # b/38496103 Setup debug folders for display mkdir /data/vendor/display 0770 system graphics # Setup folder for modem fdr mkdir /data/vendor/modem_fdr 0700 root system # keep that at the end of on post-fs-data # Set indication (checked by vold) that we have finished this action setprop vold.post_fs_data_done 1 # Wait until the system time is set wait_for_prop vendor.qcom.time.set true # Wait qseecomd started wait_for_prop vendor.sys.listeners.registered true # load IPA FWs # This must be started when vendor.sys.listeners.registered is true start ipastart_sh mkdir /data/vendor/nnhal 0700 system system # zygote need to be started after otapreopt which will be done on post-fs-data on zygote-start # zygote is started in common init.rc # and now we can continue initialize /data/ mkdir /data/vendor/ipa 0770 radio radio chown radio radio /data/vendor/ipa # Create the directories used by the Wireless subsystem mkdir /data/vendor/wifi 0771 wifi wifi mkdir /data/vendor/wifi/wpa 0770 wifi wifi mkdir /data/vendor/wifi/wpa/sockets 0770 wifi wifi chown system system /persist/WCNSS_qcom_wlan_nv.bin # Trigger WLAN driver load write /sys/kernel/boot_wlan/boot_wlan 1 #create netmgr log dir mkdir /data/vendor/netmgr 0771 radio radio chmod 0771 /data/vendor/netmgr # Create netmgr recovery folder mkdir /data/vendor/netmgr/recovery 0700 radio radio chmod 0770 /data/vendor/netmgr/recovery write /data/vendor/netmgr/recovery/recovery_info "" chown radio radio /data/vendor/netmgr/recovery/recovery_info # Create directory used by audio subsystem mkdir /data/vendor/audio 0770 audio audio # Create directory for audio delta files mkdir /data/vendor/audio/acdbdata 0770 media audio mkdir /data/vendor/audio/acdbdata/delta 0770 media audio # Create directory for radio mkdir /data/vendor/radio 0773 system radio mkdir /data/vendor/modem_stat 0771 system radio write /data/vendor/modem_stat/debug.txt "" chown system radio /data/vendor/modem_stat/debug.txt chmod 0664 /data/vendor/modem_stat/debug.txt # Set up sensors-related directories and permissions chmod 775 /persist/sensors chmod 664 /persist/sensors/sensors_settings chown root system /persist/sensors/registry chmod 775 /persist/sensors/registry chown root system /persist/sensors/registry/registry chmod 775 /persist/sensors/registry/registry chown system root /persist/sensors/sensors_settings chown root root /persist/sensors/registry/registry/sensors_settings mkdir /data/vendor/sensors 0770 chown system system /data/vendor/sensors chmod 770 /persist/audio chmod 660 /persist/audio/audio.cal chown media audio /persist/audio chown audioserver audio /persist/audio/audio.cal chmod 770 /persist/haptics chmod 440 /persist/haptics/cs40l20.cal chown system system /persist/haptics chown system system /persist/haptics/cs40l20.cal # Mark the copy complete flag to not completed write /data/vendor/radio/copy_complete 0 chown radio radio /data/vendor/radio/copy_complete chmod 0660 /data/vendor/radio/copy_complete # File flags for prebuilt ril db file write /data/vendor/radio/prebuilt_db_support 1 chown radio radio /data/vendor/radio/prebuilt_db_support chmod 0400 /data/vendor/radio/prebuilt_db_support write /data/vendor/radio/db_check_done 0 chown radio radio /data/vendor/radio/db_check_done chmod 0660 /data/vendor/radio/db_check_done # Create directories for Location services mkdir /data/vendor/location 0770 gps gps mkdir /data/vendor/location/mq 0770 gps gps mkdir /data/vendor/location/xtwifi 0770 gps gps mkdir /dev/socket/location 0770 gps gps mkdir /dev/socket/location/mq 0770 gps gps mkdir /dev/socket/location/xtra 0770 gps gps # NFC local data and nfcee xml storage mkdir /data/vendor/nfc 0770 nfc nfc # Secure Element directory for loader service functionality mkdir /data/vendor/secure_element 0770 secure_element secure_element on early-boot # wait for devices wait_for_prop vendor.qcom.devup 1 # wait for insmod_sh to finish all modules wait_for_prop vendor.all.modules.ready 1 write /sys/kernel/boot_adsp/boot 1 write /sys/kernel/boot_cdsp/boot 1 # Update dm-verity state and set partition.*.verified properties verity_update_state # Permission for rainbow sensor chown cameraserver camera /sys/devices/platform/soc/ac4a000.qcom,cci/ac4a000.qcom,cci:qcom,rainbow@20/rainbow_enable chmod 0660 /sys/devices/platform/soc/ac4a000.qcom,cci/ac4a000.qcom,cci:qcom,rainbow@20/rainbow_enable chown cameraserver camera /sys/devices/platform/soc/ac4a000.qcom,cci/ac4a000.qcom,cci:qcom,rainbow@20/rainbow_read_byte chmod 0660 /sys/devices/platform/soc/ac4a000.qcom,cci/ac4a000.qcom,cci:qcom,rainbow@20/rainbow_read_byte chown cameraserver camera /sys/devices/platform/soc/ac4a000.qcom,cci/ac4a000.qcom,cci:qcom,rainbow@20/rainbow_write_byte chmod 0660 /sys/devices/platform/soc/ac4a000.qcom,cci/ac4a000.qcom,cci:qcom,rainbow@20/rainbow_write_byte chown cameraserver camera /dev/vd6281 chmod 0660 /dev/vd6281 # Permission for Vibrator chown system system /sys/class/leds/vibrator/device/comp_enable chown system system /sys/class/leds/vibrator/device/cp_dig_scale chown system system /sys/class/leds/vibrator/device/cp_trigger_index chown system system /sys/class/leds/vibrator/device/cp_trigger_queue chown system system /sys/class/leds/vibrator/device/dig_scale chown system system /sys/class/leds/vibrator/device/f0_stored chown system system /sys/class/leds/vibrator/device/heartbeat chown system system /sys/class/leds/vibrator/device/num_waves chown system system /sys/class/leds/vibrator/device/redc_stored chown system system /sys/class/leds/vibrator/device/standby_timeout # Permission for LED driver chown system system /sys/class/leds/red/on_off_ms chown system system /sys/class/leds/green/on_off_ms chown system system /sys/class/leds/blue/on_off_ms chown system system /sys/class/leds/red/rgb_start chown system system /sys/class/leds/green/rgb_start chown system system /sys/class/leds/blue/rgb_start chown system system /sys/class/backlight/panel0-backlight/brightness chown system system /sys/class/backlight/panel0-backlight/vr_mode chown system system /sys/class/backlight/panel0-backlight/hbm_mode # Permission for Wireless charger chown system system /sys/devices/platform/soc/a88000.i2c/i2c-0/0-0061/rxdata chown system system /sys/devices/platform/soc/a88000.i2c/i2c-0/0-0061/txdata chown system system /sys/devices/platform/soc/a88000.i2c/i2c-0/0-0061/txlen chown system system /sys/devices/platform/soc/a88000.i2c/i2c-0/0-0061/ccreset chown system system /sys/devices/platform/soc/a88000.i2c/i2c-0/0-0061/status chown system system /sys/devices/platform/soc/a88000.i2c/i2c-0/0-0061/version chown system system /sys/class/power_supply/wireless/capacity # FG cycle counts read from dumpstate + backup restore from health HAL chown system system /sys/devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-02/c440000.qcom,spmi:qcom,pmi8998@2:qpnp,fg/cycle_counts_bins chown system system /sys/devices/platform/soc/a90000.i2c/i2c-4/4-0036/power_supply/maxfg/cycle_counts_bins # HardwareInfo needs to be able to read CC bins chmod 644 /sys/devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-02/c440000.qcom,spmi:qcom,pmi8998@2:qpnp,fg/cycle_counts_bins chmod 644 /sys/devices/platform/soc/a90000.i2c/i2c-4/4-0036/power_supply/maxfg/cycle_counts_bins # Permission for Pixelstats chown system system /sys/class/misc/msm_cirrus_playback/resistance_left_right chown system system /sys/devices/platform/soc/1d84000.ufshc/slowio_read_cnt chown system system /sys/devices/platform/soc/1d84000.ufshc/slowio_write_cnt chown system system /sys/devices/platform/soc/1d84000.ufshc/slowio_unmap_cnt chown system system /sys/devices/platform/soc/1d84000.ufshc/slowio_sync_cnt chown system system /sys/devices/platform/soc/soc:qcom,wcd-dsp-mgr/wdsp_stat # Permission for Health Storage HAL chown system system /sys/devices/platform/soc/1d84000.ufshc/manual_gc on boot mkdir /dev/socket/qmux_radio 0770 radio radio chmod 2770 /dev/socket/qmux_radio mkdir /dev/socket/qmux_audio 0770 media audio chmod 2770 /dev/socket/qmux_audio mkdir /dev/socket/qmux_bluetooth 0770 bluetooth bluetooth chmod 2770 /dev/socket/qmux_bluetooth mkdir /dev/socket/qmux_gps 0770 gps gps chmod 2770 /dev/socket/qmux_gps # Create NETMGR daemon socket area mkdir /dev/socket/netmgr 0750 radio radio setprop wifi.interface wlan0 # Assign TCP buffer thresholds to be ceiling value of technology maximums # Increased technology maximums should be reflected here. write /proc/sys/net/core/rmem_max 8388608 write /proc/sys/net/core/wmem_max 8388608 # Update DVR cpusets to boot-time values. write /dev/cpuset/kernel/cpus 0-7 write /dev/cpuset/system/cpus 0-7 write /dev/cpuset/system/performance/cpus 0-7 write /dev/cpuset/system/background/cpus 0-7 write /dev/cpuset/system/cpus 0-7 write /dev/cpuset/application/cpus 0-7 write /dev/cpuset/application/performance/cpus 0-7 write /dev/cpuset/application/background/cpus 0-7 write /dev/cpuset/application/cpus 0-7 # Bluetooth chown bluetooth net_bt /sys/class/rfkill/rfkill0/type chown bluetooth net_bt /sys/class/rfkill/rfkill0/state chmod 0660 /sys/class/rfkill/rfkill0/state chown bluetooth net_bt /sys/class/rfkill/rfkill0/device/extldo chmod 0660 /sys/class/rfkill/rfkill0/device/extldo # Wifi firmware reload path chown wifi wifi /sys/module/wlan/parameters/fwpath # default country code setprop ro.boot.wificountrycode 00 # WLAN debug access chown system system /d/icnss/stats service init-radio-sh /vendor/bin/init.radio.sh class late_start user radio group root radio oneshot # reset thermal-engine when changed profile on property:vendor.thermal.vr_mode=* restart vendor.thermal-engine service vendor.thermal-engine /vendor/bin/thermal-engine -c /vendor/etc/thermal-engine-${ro.hardware}${vendor.thermal.vr_mode}${vendor.thermal.hw_mode}.conf class main user root group root system socket thermal-send-client stream 0666 system system socket thermal-recv-client stream 0660 system system socket thermal-recv-passive-client stream 0666 system system on property:persist.vendor.sys.ssr.restart_level=* start vendor.ssr_setup service vendor.ssr_setup /vendor/bin/ssr_setup oneshot disabled service vendor.ssr_diag /vendor/bin/ssr_diag class late_start user system group system disabled service vendor.per_mgr /vendor/bin/pm-service class core user system group system ioprio rt 4 service per_proxy /vendor/bin/pm-proxy class core user system group system disabled on property:sys.boot_completed=1 # Set the default IRQ affinity to the silver cluster. write /proc/irq/default_smp_affinity f # Enable UFS powersaving write /sys/devices/platform/soc/${ro.boot.bootdevice}/clkgate_enable 1 write /sys/devices/platform/soc/${ro.boot.bootdevice}/hibern8_on_idle_enable 1 # Enable ZRAM on boot_complete rm /data/unencrypted/zram_swap swapon_all /vendor/etc/fstab.${ro.boot.hardware.platform} write /proc/sys/vm/swappiness 100 # Setup final blkio # value for group_idle is us write /dev/blkio/blkio.weight 1000 write /dev/blkio/background/blkio.weight 200 write /dev/blkio/blkio.group_idle 2000 write /dev/blkio/background/blkio.group_idle 0 # Setup final cpuset write /dev/cpuset/top-app/cpus 0-7 write /dev/cpuset/foreground/boost/cpus 0-3,6-7 write /dev/cpuset/foreground/cpus 0-3,6-7 write /dev/cpuset/background/cpus 0-1 write /dev/cpuset/system-background/cpus 0-3 write /dev/cpuset/restricted/cpus 0-3 # Update DVR cpusets to runtime values. # Kernel cpuset will be apply on PowerHAL write /dev/cpuset/system/performance/cpus 6-7 write /dev/cpuset/system/background/cpus 0-1 write /dev/cpuset/system/cpus 0-1,6-7 write /dev/cpuset/application/performance/cpus 4-5 write /dev/cpuset/application/background/cpus 0-1 write /dev/cpuset/application/cpus 0-1,4-5 # Runtime fs tuning: as we have init boottime setting and kernel patch setting # default readahead to 2048KB. We should adjust the setting upon boot_complete # for runtime performance write /sys/block/sda/queue/read_ahead_kb 128 write /sys/block/sda/queue/nr_requests 128 write /sys/block/sda/queue/iostats 1 write /sys/block/sdf/queue/read_ahead_kb 128 write /sys/block/sdf/queue/nr_requests 128 write /sys/block/sdf/queue/iostats 1 write /sys/block/dm-0/queue/read_ahead_kb 128 write /sys/block/dm-1/queue/read_ahead_kb 128 write /sys/block/dm-2/queue/read_ahead_kb 128 write /sys/block/dm-3/queue/read_ahead_kb 128 write /sys/block/dm-4/queue/read_ahead_kb 128 write /sys/block/dm-5/queue/read_ahead_kb 128 write /sys/block/dm-6/queue/read_ahead_kb 128 # QCOM FG SRAM dump for dumpstate chown system system /d/fg/sram/data chown system system /d/fg/sram/count chown system system /d/fg/sram/address # Maxim FG dump for dumpstate chown system system /d/regmap/4-0036/registers chown system system /d/regmap/4-000b/registers # UFS health chmod 755 /sys/kernel/debug/ufshcd0 chmod 644 /sys/kernel/debug/ufshcd0/show_hba chmod 644 /sys/kernel/debug/ufshcd0/stats/err_stats chmod 644 /sys/kernel/debug/ufshcd0/stats/io_stats chmod 644 /sys/kernel/debug/ufshcd0/stats/req_stats # Disable sched_boost write /proc/sys/kernel/sched_boost 0 # Enable PowerHAL hint processing setprop vendor.powerhal.init 1 start per_proxy # Create pixel-trace. # At this moment, only mm_event is available. If others want to put more, # it should get hard review from pixel-perf-team. mkdir /sys/kernel/debug/tracing/instances/pixel-trace 0755 system system chown system system /sys/kernel/debug/tracing/instances/pixel-trace/trace chmod 0660 /sys/kernel/debug/tracing/instances/pixel-trace/trace chown system system /sys/kernel/debug/tracing/instances/pixel-trace/tracing_on chmod 0660 /sys/kernel/debug/tracing/instances/pixel-trace/tracing_on write /sys/kernel/debug/tracing/instances/pixel-trace/buffer_size_kb 64 write /sys/kernel/debug/tracing/instances/pixel-trace/events/mm_event/enable 1 on property:sys.shutdown.requested=* stop per_proxy service vendor.qseecomd /vendor/bin/qseecomd class core user root group root service time_daemon /vendor/bin/time_daemon class core user root group root service ss_ramdump /vendor/bin/subsystem_ramdump class main user root group system disabled on property:persist.vendor.sys.ssr.enable_ramdumps=1 write /sys/module/subsystem_restart/parameters/enable_ramdumps 1 mkdir /data/vendor/wifidump 771 root system mkdir /data/vendor/ramdump 771 root system mkdir /data/vendor/ssrdump 771 root system mkdir /data/vendor/ssrlog 771 root system start ss_ramdump on property:persist.vendor.sys.ssr.enable_ramdumps=0 write /sys/module/subsystem_restart/parameters/enable_ramdumps 0 service sensors.qti /vendor/bin/sensors.qti class core user system group system # Grants the ability for this daemon to bind IPC router ports so it can # register QMI services capabilities NET_BIND_SERVICE service vendor.sscrpcd /vendor/bin/sscrpcd class core user system group system service adsprpcd /vendor/bin/adsprpcd class main user media group media service cdsprpcd /vendor/bin/cdsprpcd class main user system group system service irsc_util /vendor/bin/irsc_util "/vendor/etc/sec_config" class core user root oneshot service rmt_storage /vendor/bin/rmt_storage class core user root ioprio rt 0 shutdown critical service tftp_server /vendor/bin/tftp_server class core user root group root system service modem_svc /vendor/bin/modem_svc -q class core user root group system capabilities NET_BIND_SERVICE service wpa_supplicant /vendor/bin/hw/wpa_supplicant \ -O/data/vendor/wifi/wpa/sockets -puse_p2p_group_interface=1 -dd \ -g@android:wpa_wlan0 # we will start as root and wpa_supplicant will switch to user wifi # after setting up the capabilities required for WEXT # user wifi # group wifi inet keystore interface android.hardware.wifi.supplicant@1.0::ISupplicant default interface android.hardware.wifi.supplicant@1.1::ISupplicant default interface android.hardware.wifi.supplicant@1.2::ISupplicant default class main socket wpa_wlan0 dgram 660 wifi wifi disabled oneshot service cnss-daemon /vendor/bin/cnss-daemon -n -l class late_start user system group system inet wifi service imsqmidaemon /vendor/bin/imsqmidaemon class main user system socket ims_qmid stream 0660 system radio group radio log diag service imsdatadaemon /vendor/bin/imsdatadaemon class main user system socket ims_datad stream 0660 system radio group system wifi radio inet log disabled on property:vendor.ims.QMI_DAEMON_STATUS=1 start imsdatadaemon service ims_rtp_daemon /vendor/bin/ims_rtp_daemon class main user system group radio diag inet log disabled service imsrcsservice /vendor/bin/imsrcsd class main user system group radio diag inet log disabled on property:vendor.ims.DATA_DAEMON_STATUS=1 start ims_rtp_daemon start imsrcsservice service cnd /vendor/bin/cnd class main user radio group system wifi inet radio wakelock service netmgrd /vendor/bin/netmgrd class main user root group root wifi wakelock radio inet service port-bridge /vendor/bin/port-bridge class main user radio group radio system inet oneshot service ipacm /vendor/bin/ipacm class main user radio group radio inet service loc_launcher /vendor/bin/loc_launcher class late_start group gps inet diag wifi service pd_mapper /vendor/bin/pd-mapper class core # turns off tracing right before bugreporting to keep more traces on property:init.svc.dumpstatez=running write /d/tracing/instances/pixel-trace/tracing_on 0 on property:init.svc.dumpstatez=stopped write /d/tracing/instances/pixel-trace/tracing_on 1 on property:init.svc.bugreport=running write /d/tracing/instances/pixel-trace/tracing_on 0 on property:init.svc.bugreport=stopped write /d/tracing/instances/pixel-trace/tracing_on 1 # bugreport is triggered by holding down volume down, volume up and power service bugreport /system/bin/dumpstate -d -p -B -z \ -o /data/user_de/0/com.android.shell/files/bugreports/bugreport class main disabled oneshot keycodes 114 115 116 service vendor.chre /vendor/bin/chre class late_start user system group system wakelock capabilities BLOCK_SUSPEND socket chre seqpacket 0660 root system shutdown critical service devstart_sh /vendor/bin/init.qcom.devstart.sh class main user root group root system disabled oneshot service ipastart_sh /vendor/bin/init.qcom.ipastart.sh class main user system group net_admin disabled oneshot service insmod_sh /vendor/bin/init.insmod.sh class main user root group root system disabled oneshot service msm_irqbalance /vendor/bin/msm_irqbalance -f /vendor/etc/msm_irqbalance.conf socket msm_irqbalance seqpacket 660 root system class core user root group root writepid /dev/cpuset/system-background/tasks service ppd /vendor/bin/mm-pp-dpps class late_start user graphics group graphics socket pps stream 0660 system system disabled service wait_for_strongbox /vendor/bin/hw/wait_for_strongbox user root group root system priority -20 ioprio rt 0 on property:init.svc.vendor.hwcomposer-2-3=stopped stop ppd on property:init.svc.vendor.hwcomposer-2-3=running start ppd on property:ro.boot.mode=sota setprop ro.boot.sota enabled on property:ro.boot.hardware.sku=G013B start vendor.secure_element_hal_service_1_1 on property:ro.boot.hardware.sku=G013D start vendor.secure_element_hal_service_1_1 # charger driver exposes now finer grain control, map demo mode to those properties # demo mode can only be exit wipping data which will also reset the persist properties on property:sys.retaildemo.enabled=1 setprop persist.vendor.charge.stop.level 35 setprop persist.vendor.charge.start.level 30 on property:persist.vendor.charge.stop.level=* write /sys/devices/platform/soc/soc:google,charger/charge_stop_level ${persist.vendor.charge.stop.level} on property:persist.vendor.charge.start.level=* write /sys/devices/platform/soc/soc:google,charger/charge_start_level ${persist.vendor.charge.start.level} # For Japan radio builds, always enforce camera shutter sound # Since this property is read by the audio server in system service, # it should be written by the system init. on property:ro.boot.hardware.radio.subtype=1 setprop audio.camerasound.force true on property:sys.boot_completed=1 && property:ro.boot.mode=firstboot start init-firstboot-sh service init-firstboot-sh /vendor/bin/init.firstboot.sh user nobody disabled oneshot # init-fingerprint-sh is for stopping fps_hal after init retry fail serval times # It keeps running until max init retry or fps_hal running successfully # vendor.fps_hal restarts until max init retry times # # /vendor/bin/init.fingerprint.sh [max_init_retry_times] service init-fingerprint-sh /vendor/bin/init.fingerprint.sh 10 group root user root disabled oneshot on property:sys.boot_completed=1 start init-fingerprint-sh on property:vendor.fps.init.succeed=true && property:init.svc.vendor.fps_hal=stopped start init-fingerprint-sh on boot && property:persist.radio.multisim.config=dsds && property:persist.vendor.radio.multisim_switch_support=true start vendor.qcrild2 # Disable DSDS if multisim_switch_support is not enabled on boot && property:persist.radio.multisim.config=dsds && property:persist.vendor.radio.multisim_switch_support=false setprop persist.radio.multisim.config "" stop vendor.qcrild2 # Write the dark theme magic to /misc partition. service vendor.theme_set /vendor/bin/misc_writer --set-dark-theme disabled oneshot # Clear the dark theme magic in /misc partition. service vendor.theme_clear /vendor/bin/misc_writer --clear-dark-theme disabled oneshot # Set dark boot flag on dark mode (UiModeManager.MODE_NIGHT_YES == 2). on property:persist.sys.theme=2 start vendor.theme_set # Clear the dark boot flag on light mode (UiModeManager.MODE_NIGHT_NO == 1) or auto mode # (UiModeManager.MODE_NIGHT_AUTO == 0). on property:persist.sys.theme=1 start vendor.theme_clear on property:persist.sys.theme=0 start vendor.theme_clear on init && property:ro.boot.slot_successful=no write /sys/module/msm_poweroff/parameters/warm_reset 1 # Set or clear the warm reset flag upon the change of system property. The flag itself is set # by writing a sysfs file; and the file will be read by kernel. on property:ota.warm_reset=1 write /sys/module/msm_poweroff/parameters/warm_reset 1 on property:ota.warm_reset=0 write /sys/module/msm_poweroff/parameters/warm_reset 0