| # |
| # 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 |
| # Lock to lowest freqency on charger mode |
| write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor powersave |
| write /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor powersave |
| # 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/cpu4/online 0 |
| write /sys/devices/system/cpu/cpu5/online 0 |
| write /sys/devices/system/cpu/cpu7/online 0 |
| wait /dev/block/bootdevice |
| 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 |
| |
| 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 |
| |
| # 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-1-citadel |
| |
| # Disable powersaving |
| write /sys/module/lpm_levels/parameters/sleep_disabled 1 |
| |
| # 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/cpu6/cpufreq/scaling_governor schedutil |
| write /sys/devices/system/cpu/cpu6/cpufreq/schedutil/up_rate_limit_us 500 |
| write /sys/devices/system/cpu/cpu6/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 |
| |
| # set default schedTune value for camera-daemon |
| write /dev/stune/camera-daemon/schedtune.prefer_idle 1 |
| write /dev/stune/camera-daemon/schedtune.boost 0 |
| |
| # 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} |
| |
| # Thermal config file per product |
| setprop vendor.sys.qcom.thermalcfg /vendor/etc/thermal-engine-${ro.hardware}.conf |
| |
| # 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} |
| |
| # Battery Defender |
| chown system system /sys/devices/platform/soc/soc:google,charger/charge_stop_level |
| chown system system /sys/devices/platform/soc/soc:google,charger/charge_start_level |
| chown system system /sys/devices/platform/soc/soc:google,charger/bd_drainto_soc |
| chown system system /sys/devices/platform/soc/soc:google,charger/bd_recharge_soc |
| chown system system /sys/devices/platform/soc/soc:google,charger/bd_recharge_voltage |
| chown system system /sys/devices/platform/soc/soc:google,charger/bd_resume_abs_temp |
| chown system system /sys/devices/platform/soc/soc:google,charger/bd_resume_soc |
| chown system system /sys/devices/platform/soc/soc:google,charger/bd_resume_temp |
| chown system system /sys/devices/platform/soc/soc:google,charger/bd_resume_time |
| chown system system /sys/devices/platform/soc/soc:google,charger/bd_trigger_temp |
| chown system system /sys/devices/platform/soc/soc:google,charger/bd_trigger_time |
| chown system system /sys/devices/platform/soc/soc:google,charger/bd_trigger_voltage |
| chown system system /sys/devices/platform/soc/soc:google,charger/bd_temp_enable |
| chown system system /sys/devices/platform/soc/soc:google,charger/bd_clear |
| |
| on late-init |
| chown system system /sys/devices/virtual/thermal/tz-by-name/mb-therm-monitor/trip_point_0_temp |
| chown system system /sys/devices/virtual/thermal/tz-by-name/mb-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 |
| chown system system /sys/devices/virtual/thermal/tz-by-name/soc/mode |
| |
| on fs |
| mount_all /vendor/etc/fstab.${ro.boot.hardware.platform} --early |
| |
| mkdir /mnt/vendor/persist/audio 0770 media audio |
| mkdir /mnt/vendor/persist/data 0700 system system |
| mkdir /mnt/vendor/persist/display 0770 system graphics |
| mkdir /mnt/vendor/persist/rfs 0770 root system |
| mkdir /mnt/vendor/persist/hlos_rfs 0770 root system |
| chmod 0770 /mnt/vendor/persist/rfs |
| chmod 0770 /mnt/vendor/persist/rfs/shared |
| chmod 0770 /mnt/vendor/persist/rfs/msm |
| chmod 0770 /mnt/vendor/persist/rfs/msm/adsp |
| chmod 0770 /mnt/vendor/persist/rfs/msm/mpss |
| chmod 0770 /mnt/vendor/persist/rfs/msm/slpi |
| chmod 0770 /mnt/vendor/persist/rfs/mdm |
| chmod 0770 /mnt/vendor/persist/rfs/mdm/adsp |
| chmod 0770 /mnt/vendor/persist/rfs/mdm/mpss |
| chmod 0770 /mnt/vendor/persist/rfs/mdm/slpi |
| chmod 0770 /mnt/vendor/persist/rfs/mdm/tn |
| chmod 0770 /mnt/vendor/persist/rfs/apq |
| chmod 0770 /mnt/vendor/persist/rfs/apq/gnss |
| chmod 0770 /mnt/vendor/persist/hlos_rfs |
| restorecon /mnt/vendor/persist/rfs |
| restorecon /mnt/vendor/persist/hlos_rfs |
| restorecon_recursive /mnt/vendor/persist/ |
| |
| # for cycle count backup |
| mkdir /mnt/vendor/persist/battery 0700 system system |
| |
| on late-fs |
| # Start devices by sysfs trigger, including sensor related script. |
| start devstart_sh |
| |
| # Start services for bootanim |
| start vendor.power-hal-1-3 |
| start surfaceflinger |
| start bootanim |
| start vendor.hwcomposer-2-2 |
| start vendor.configstore-hal |
| start vendor.qti.hardware.display.allocator |
| |
| # 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 |
| |
| # Required for time_daemon |
| mkdir /mnt/vendor/persist/time 0770 system system |
| |
| # Start time daemon early so that the system time can be set early |
| start time_daemon |
| |
| # Write build info to kdebuginfo. |
| write /sys/module/kdebuginfo/parameters/build_info "${ro.product.name}-${ro.build.type} ${ro.build.version.incremental}" |
| |
| 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 |
| |
| # Resume-on-Reboot after we have the data dir and keymaster |
| mkdir /data/vendor/rebootescrow 0770 hsm hsm |
| start vendor.rebootescrow-citadel |
| |
| # 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 |
| |
| # 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 |
| |
| # Mounting of persist is moved to 'on emmc-fs' and 'on fs' sections |
| # We chown/chmod /mnt/vendor/persist/ again so because mount is run as root + defaults |
| chown root system /mnt/vendor/persist/ |
| chmod 0771 /mnt/vendor/persist/ |
| |
| # 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 /mnt/vendor/persist/sensors |
| chmod 664 /mnt/vendor/persist/sensors/sensors_settings |
| chown root system /mnt/vendor/persist/sensors/registry |
| chmod 775 /mnt/vendor/persist/sensors/registry |
| chown root system /mnt/vendor/persist/sensors/registry/registry |
| chmod 775 /mnt/vendor/persist/sensors/registry/registry |
| |
| chown system root /mnt/vendor/persist/sensors/sensors_settings |
| chown root root /mnt/vendor/persist/sensors/registry/registry/sensors_settings |
| |
| mkdir /data/vendor/sensors 0770 |
| chown system system /data/vendor/sensors |
| mkdir /data/vendor/sensors/log 0770 |
| chown system system /data/vendor/sensors/log |
| |
| # Restore SeLinux Context for preventing temp.json with |
| # incorrect security context |
| restorecon /mnt/vendor/persist/sensors/registry/temp.json |
| |
| chmod 770 /mnt/vendor/persist/audio |
| chmod 660 /mnt/vendor/persist/audio/audio.cal |
| chown media audio /mnt/vendor/persist/audio |
| chown audioserver audio /mnt/vendor/persist/audio/audio.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 |
| |
| # 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 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 |
| |
| # 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 |
| |
| # FG cycle counts read from dumpstate + backup restore from health HAL |
| chown system system /sys/devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-00/c440000.qcom,spmi:qcom,pm660@0:qpnp,fg/cycle_counts_bins |
| |
| # HardwareInfo needs to be able to read CC bins |
| chmod 644 /sys/devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-00/c440000.qcom,spmi:qcom,pm660@0:qpnp,fg/cycle_counts_bins |
| |
| # Permission for Pixelstats |
| chown system system /sys/devices/platform/soc/7c4000.sdhci/mmc_host/mmc0/slowio_read_cnt |
| chown system system /sys/devices/platform/soc/7c4000.sdhci/mmc_host/mmc0/slowio_write_cnt |
| chown system system /sys/devices/platform/soc/7c4000.sdhci/mmc_host/mmc0/slowio_discard_cnt |
| chown system system /sys/devices/platform/soc/7c4000.sdhci/mmc_host/mmc0/slowio_flush_cnt |
| |
| # Permission for Health Storage HAL |
| chown system system /sys/devices/platform/soc/7c4000.sdhci/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 |
| |
| # 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 |
| |
| # Default enable uicc_se |
| setprop persist.vendor.radio.uicc_se_enabled true |
| |
| service init-radio-sh /vendor/bin/init.radio.sh |
| class late_start |
| user radio |
| group root radio |
| oneshot |
| |
| service vendor.thermal-engine /vendor/bin/thermal-engine -c ${vendor.sys.qcom.thermalcfg} |
| 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 vendor.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 3f |
| |
| # 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 cpuset |
| write /dev/cpuset/top-app/cpus 0-7 |
| write /dev/cpuset/foreground/cpus 0-5,7 |
| write /dev/cpuset/background/cpus 4-5 |
| write /dev/cpuset/system-background/cpus 2-5 |
| write /dev/cpuset/restricted/cpus 2-5 |
| |
| # 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 |
| |
| # 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 |
| |
| # dumpstate needs to read, vendor.health-hal needs to be able to RW |
| chown system system /sys/devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-00/c440000.qcom,spmi:qcom,pm660@0:qpnp,fg/power_supply/bms/charge_full |
| |
| # HardwareInfo needs to be able to read charge_full |
| chmod 644 /sys/devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-00/c440000.qcom,spmi:qcom,pm660@0:qpnp,fg/power_supply/bms/charge_full |
| |
| # eMMC health |
| chmod 755 /sys/kernel/debug/mmc0 |
| chmod 755 /sys/kernel/debug/mmc0/mmc0:0001 |
| chmod 644 /sys/kernel/debug/mmc0/mmc0:0001/ext_csd |
| chmod 644 /sys/kernel/debug/mmc0/ring_buffer |
| chmod 644 /sys/kernel/debug/mmc0/err_stats |
| chmod 644 /sys/kernel/debug/mmc0/show_host |
| chmod 644 /sys/kernel/debug/mmc0/io_stats |
| chmod 644 /sys/kernel/debug/mmc0/req_stats |
| |
| # Disable sched_boost |
| write /proc/sys/kernel/sched_boost 0 |
| |
| # Enable PowerHAL hint processing |
| setprop vendor.powerhal.init 1 |
| |
| on property:init.svc.vendor.per_mgr=running |
| start vendor.per_proxy |
| |
| on property:sys.shutdown.requested=* |
| stop vendor.per_proxy |
| |
| service vendor.qseecomd /vendor/bin/qseecomd |
| 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 775 root system |
| start ss_ramdump |
| |
| on property:persist.vendor.sys.ssr.enable_ramdumps=0 |
| write /sys/module/subsystem_restart/parameters/enable_ramdumps 0 |
| |
| service adsprpcd /vendor/bin/adsprpcd rootpd |
| class main |
| user system |
| group system |
| |
| service cdsprpcd /vendor/bin/cdsprpcd |
| class main |
| user system |
| group system |
| |
| service adsprpcd_audiopd /vendor/bin/adsprpcd audiopd |
| class main |
| user media |
| group media |
| |
| service adsprpcd_sensorspd /vendor/bin/adsprpcd sensorspd |
| class main |
| user system |
| group system |
| |
| service irsc_util /vendor/bin/irsc_util "/vendor/etc/sec_config" |
| class core |
| user root |
| oneshot |
| |
| service vendor.rmt_storage /vendor/bin/rmt_storage |
| class core |
| user root |
| ioprio rt 0 |
| shutdown critical |
| |
| service vendor.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 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 qti /vendor/bin/qti |
| class main |
| user radio |
| group radio net_raw diag usb net_admin |
| |
| service loc_launcher /vendor/bin/loc_launcher |
| class late_start |
| group gps inet diag wifi |
| |
| service pd_mapper /vendor/bin/pd-mapper |
| class core |
| |
| # bugreport is triggered by holding down volume down, volume up and power |
| service bugreport /system/bin/dumpstate -d -p -z |
| class main |
| disabled |
| oneshot |
| keycodes 114 115 116 |
| |
| service devstart_sh /vendor/bin/init.qcom.devstart.sh |
| class main |
| user root |
| group root system |
| disabled |
| oneshot |
| |
| service vendor.wlan_sh /vendor/bin/init.qcom.wlan.sh |
| class main |
| user root |
| group root |
| 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 |
| task_profiles ServiceCapacityLow |
| |
| 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-2=stopped |
| stop ppd |
| |
| on property:init.svc.vendor.hwcomposer-2-2=running |
| start ppd |
| |
| on property:wlan.driver.status=ok |
| # Get the wlan driver/fw version |
| start vendor.wlan_sh |
| |
| on property:ro.boot.mode=sota |
| setprop ro.boot.sota enabled |
| |
| on property:ro.boot.hardware.sku=G020D |
| start vendor.secure_element_hal_service_1_1 |
| on property:ro.boot.hardware.sku=G020H |
| 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 exited by wiping 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 |
| |
| # 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=0 |
| setprop audio.camerasound.force true |
| |
| # Touch |
| on property:vendor.all.modules.ready=1 |
| wait /sys/devices/platform/soc/a84000.i2c/i2c-2/2-0020/input/input2/read_report |
| chown system system /sys/devices/platform/soc/a84000.i2c/i2c-2/2-0020/input/input2/read_report |
| chown system system /sys/devices/platform/soc/a84000.i2c/i2c-2/2-0020/input/input2/suspend |
| |
| # DSDS feature |
| # Restart 1st qcrild after SIM config changed |
| on property:vendor.radio.sim_num.switch=1to2 && property:persist.radio.multisim.config=dsds |
| restart vendor.qcrild |
| |
| on property:vendor.radio.sim_num.switch=2to1 && property:persist.radio.multisim.config= |
| restart vendor.qcrild |
| |
| # Enable 2nd qcrild when the property set to dsds |
| on property:persist.radio.multisim.config=dsds |
| start vendor.qcrild2 |
| |
| # Stop 2nd qcrild when the property set to empty string |
| on property:persist.radio.multisim.config= |
| stop vendor.qcrild2 |
| |
| 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 |
| |
| # Write the dark theme magic to /misc partition. |
| service vendor.theme_set /vendor/bin/misc_writer --set-dark-theme |
| disabled |
| oneshot |
| |
| # Set dark boot flag when the device is provisioned. |
| on property:persist.sys.device_provisioned=1 |
| start vendor.theme_set |
| |
| 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 |