# Copyright (c) 2019-2021, The Linux Foundation. All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are # met: # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above # copyright notice, this list of conditions and the following # disclaimer in the documentation and/or other materials provided # with the distribution. # * Neither the name of The Linux Foundation nor the names of its # contributors may be used to endorse or promote products derived # from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS # BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR # BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE # OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN # IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # # # Changes from Qualcomm Innovation Center are provided under the following license: # Copyright (c) 2022, 2024 Qualcomm Innovation Center, Inc. All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted (subject to the limitations in the # disclaimer below) provided that the following conditions are met: # # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # # * Redistributions in binary form must reproduce the above # copyright notice, this list of conditions and the following # disclaimer in the documentation and/or other materials provided # with the distribution. # # * Neither the name of Qualcomm Innovation Center, Inc. nor the names of # its contributors may be used to endorse or promote products derived # from this software without specific prior written permission. # # NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE # GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT # HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. # IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER # IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN # IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. import /vendor/etc/init/hw/init.qti.kernel.rc import /vendor/etc/init/hw/init.${ro.product.vendor.brand}.rc import /vendor/etc/init/hw/init.${ro.product.vendor.device}.rc import /vendor/etc/init/hw/init.${ro.product.vendor.name}.rc on early-init write /proc/sys/kernel/printk_devkmsg ratelimited export MEMTAG_OPTIONS off write /proc/sys/kernel/sched_util_clamp_min_rt_default 0 # foreground-boost mkdir /dev/cpuctl/foreground-boost chown system system /dev/cpuctl/foreground-boost chown system system /dev/cpuctl/foreground-boost/tasks chmod 0664 /dev/cpuctl/foreground-boost/tasks chown system system /dev/cpuctl/foreground-boost/cgroup.procs chmod 0664 /dev/cpuctl/foreground-boost/cgroup.procs mkdir /dev/cpuset/foreground-boost copy /dev/cpuset/cpus /dev/cpuset/foreground-boost/cpus copy /dev/cpuset/mems /dev/cpuset/foreground-boost/mems chown root system /dev/cpuset/foreground-boost chown root system /dev/cpuset/foreground-boost/tasks chmod 0664 /dev/cpuset/foreground-boost/tasks chown root system /dev/cpuset/foreground-boost/cgroup.procs chmod 0664 /dev/cpuset/foreground-boost/cgroup.procs chown root system /dev/cpuset/foreground-boost/cpus chmod 0664 /dev/cpuset/foreground-boost/cpus chown root system /dev/cpuctl/foreground-boost/cpu.shares chmod 0664 /dev/cpuctl/foreground-boost/cpu.shares # set property to boost-optimize setprop sys.perf.boostopt true # set property to animation vi boost setprop sys.perf.viboost true # midground set mkdir /dev/cpuset/midground copy /dev/cpuset/cpus /dev/cpuset/midground/cpus copy /dev/cpuset/mems /dev/cpuset/midground/mems chown root system /dev/cpuset/midground/cgroup.procs chmod 0664 /dev/cpuset/midground/cgroup.procs chown root system /dev/cpuset/midground/cpus chmod 0664 /dev/cpuset/midground/cpus write /dev/cpuset/midground/cpus 0-5 on init wait /dev/block/platform/soc/${ro.boot.bootdevice} symlink /dev/block/platform/soc/${ro.boot.bootdevice} /dev/block/bootdevice chown system system /sys/devices/platform/soc/1d84000.ufshc/auto_hibern8 chmod 0660 /sys/devices/platform/soc/1d84000.ufshc/auto_hibern8 start logd mkdir /dev/cpuctl/general copy_per_line /dev/cpuctl/tasks /dev/cpuctl/general/tasks chown root system /dev/cpuctl/general chown root system /dev/cpuctl/general/tasks chmod 0644 /dev/cpuctl/general/tasks chown root system /dev/cpuctl/general/cpu.shares chmod 0664 /dev/cpuctl/general/cpu.shares chown root system /dev/cpuctl/foreground-boost/cpu.shares chmod 0664 /dev/cpuctl/foreground-boost/cpu.shares # hyper for VIDEO_POWER_EFFICIENCY chmod 0660 /sys/devices/system/cpu/cpu6/core_ctl/assist_cpu_min_misfit chown root system /sys/devices/system/cpu/cpu6/core_ctl/assist_cpu_min_misfit chmod 0660 /sys/devices/system/cpu/cpu6/core_ctl/nrrun_cpu_min_misfit chown root system /sys/devices/system/cpu/cpu6/core_ctl/nrrun_cpu_min_misfit # set property for auto sched pipeline setprop sys.perf.asp true on early-fs start vold on fs mount_all /vendor/etc/fstab.qcom --early chown root system /mnt/vendor/persist chmod 0771 /mnt/vendor/persist restorecon_recursive /mnt/vendor/persist mkdir /mnt/vendor/persist/data 0700 system system on post-fs #Execute virtualization manager on property:ro.vendor.vm.ssr.enable= enable vendor.qvirtservice_rs start vendor.qvirtservice_rs on property:ro.vendor.vm.ssr.enable=false enable vendor.qvirtservice_rs start vendor.qvirtservice_rs on property:ro.vendor.vm.ssr.enable=true enable vendor.qvirtservice_rs start vendor.qvirtservice_rs enable vendor.qvirtvendorservice start vendor.qvirtvendorservice on late-fs #exec_start wait_for_keymaster mount_all /vendor/etc/fstab.qcom --late on post-fs-data mkdir /vendor/data/tombstones 0771 system system # Wait (1 second at most) for 'fs_ready' entry to be created wait /sys/kernel/cnss/fs_ready 1 # Enable WLAN cold boot calibration write /sys/kernel/cnss/fs_ready 1 on early-boot verity_update_state on boot write /dev/cpuset/audio-app/cpus 0-1 # Add a cpuset for the camera daemon # We want all cores for camera mkdir /dev/cpuset/camera-daemon write /dev/cpuset/camera-daemon/cpus 0-7 write /dev/cpuset/camera-daemon/mems 0 chown cameraserver cameraserver /dev/cpuset/camera-daemon chown cameraserver cameraserver /dev/cpuset/camera-daemon/tasks chmod 0664 /dev/cpuset/camera-daemon/tasks chown cameraserver system /dev/cpuctl/camera-daemon/cpu.shares chmod 0664 /dev/cpuctl/camera-daemon/cpu.shares chown system /sys/devices/platform/soc/990000.i2c/i2c-0/0-0038/trusted_touch_enable chmod 0660 /sys/devices/platform/soc/990000.i2c/i2c-0/0-0038/trusted_touch_enable chown system /sys/devices/platform/soc/990000.spi/spi_master/spi0/spi0.0/trusted_touch_enable chmod 0660 /sys/devices/platform/soc/990000.spi/spi_master/spi0/spi0.0/trusted_touch_enable chown system /sys/devices/system/cpu/hyp_core_ctl/enable chown system /sys/devices/system/cpu/hyp_core_ctl/hcc_min_freq # Hyper Permission for SM8750 chmod 0664 /sys/devices/system/cpu/bus_dcvs/DDR/soc:qcom,memlat:ddr:prime-latfloor/max_freq chown root system /sys/devices/system/cpu/bus_dcvs/DDR/soc:qcom,memlat:ddr:prime-latfloor/max_freq chmod 0664 /sys/devices/system/cpu/bus_dcvs/DDR/memlat/adaptive_high_freq chown root system /sys/devices/system/cpu/bus_dcvs/DDR/memlat/adaptive_high_freq chmod 0664 /sys/devices/system/cpu/bus_dcvs/DDR/memlat/adaptive_low_freq chown root system /sys/devices/system/cpu/bus_dcvs/DDR/memlat/adaptive_low_freq chmod 0664 /dev/cpuctl/top-app/cpu.uclamp.min chown root system /dev/cpuctl/top-app/cpu.uclamp.min # bg uclamp set write /dev/cpuctl/background/cpu.uclamp.max 26 # CPUSET by system performance write /dev/cpuset/foreground-boost/cpus 0-7 write /dev/cpuset/foreground/cpus 0-5 write /dev/cpuset/sf/cpus 0-5 write /dev/cpuset/midground/cpus 0-1,4-5 write /dev/cpuset/restricted/cpus 0-1,4-5 write /dev/cpuset/system-background/cpus 0-1,4-5 write /dev/cpuset/background/cpus 0-1,4-5 # For CDSP crash on property:ro.boot.debug_level=0x494d setprop vendor.fastrpc.process.attrs 1 setprop vendor.fastrpc.debug.trace 1 setprop persist.vendor.fastrpc.process.clockvote 4 on property:ro.boot.debug_level=0x4f4c setprop persist.vendor.fastrpc.process.clockvote 4 on property:vendor.display.lcd_density=560 setprop dalvik.vm.heapgrowthlimit 256m on property:vendor.display.lcd_density=640 setprop dalvik.vm.heapgrowthlimit 512m on init && property:ro.boot.mode=charger wait_for_prop vendor.all.modules.ready 1 mount_all /vendor/etc/charger_fw_fstab.qti --early on charger start vendor.power_off_alarm write /sys/kernel/cnss/charger_mode 1 #service vendor.lowi /vendor/bin/sscrpcd # class core # user system # group system wakelock # capabilities BLOCK_SUSPEND #pd-mapper service vendor.pd_mapper /vendor/bin/pd-mapper class core user system group system #Peripheral manager 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 #service vendor.mdm_helper /vendor/bin/mdm_helper # class core # group system wakelock # disabled service vendor.mdm_launcher /vendor/bin/sh /vendor/bin/init.mdm.sh class core oneshot on property:init.svc.vendor.per_mgr=running start vendor.per_proxy on property:sys.shutdown.requested=* write /sys/kernel/qcom_rproc/shutdown_in_progress 1 stop vendor.per_proxy on property:vold.decrypt=trigger_restart_framework start vendor.cnss_diag service vendor.cnss_diag /system/vendor/bin/cnss_diag -q -f -t HELIUM class main user system group system wifi inet sdcard_rw media_rw diag oneshot on early-boot && property:persist.vendor.pcie.boot_option=* write /sys/bus/platform/devices/1c00000.qcom,pcie/debug/boot_option ${persist.vendor.pcie.boot_option} write /sys/bus/platform/devices/1c08000.qcom,pcie/debug/boot_option ${persist.vendor.pcie.boot_option}