# Copyright (c) 2013-2018, 2020, 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. # # on early-init # Disable EAS write /proc/sys/kernel/sched_energy_aware 0 on init # Disable powersaving write /sys/module/lpm_levels/parameters/sleep_disabled 1 # Alarm write /sys/module/qpnp_rtc/parameters/poweron_alarm 1 # Add a cpuset for the camera daemon mkdir /dev/cpuset/camera-daemon 0750 cameraserver cameraserver write /dev/cpuset/camera-daemon/cpus 0-7 write /dev/cpuset/camera-daemon/mems 0 chown cameraserver cameraserver /dev/cpuset/camera-daemon/tasks chmod 0660 /dev/cpuset/camera-daemon/tasks # Create an stune group for camera-specific processes mkdir /dev/stune/camera-daemon chown system system /dev/stune/camera-daemon chown system system /dev/stune/camera-daemon/tasks chmod 0664 /dev/stune/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 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 # Setup permission for Power HAL chown system system /sys/class/kgsl/kgsl-3d0/devfreq/min_freq chown system system /sys/class/kgsl/kgsl-3d0/devfreq/max_freq chown system system /sys/class/kgsl/kgsl-3d0/force_rail_on chown system system /sys/class/kgsl/kgsl-3d0/force_clk_on chown system system /sys/class/kgsl/kgsl-3d0/idle_timer chown system system /sys/class/devfreq/soc:qcom,gpubw/min_freq chown system system /sys/class/devfreq/soc:qcom,cpu-cpu-ddr-bw/max_freq chown system system /sys/class/devfreq/soc:qcom,cpu-cpu-ddr-bw/min_freq chown system system /sys/class/devfreq/soc:qcom,cpu-cpu-ddr-bw/bw_hwmon/hist_memory chown system system /sys/class/devfreq/soc:qcom,cpu-cpu-ddr-bw/bw_hwmon/hyst_length chown system system /sys/class/devfreq/soc:qcom,cpu-cpu-ddr-bw/bw_hwmon/hyst_trigger_count chown system system /sys/class/devfreq/soc:qcom,cpu-cpu-ddr-bw/bw_hwmon/io_percent chown system system /sys/class/devfreq/soc:qcom,cpu-cpu-ddr-bw/bw_hwmon/sample_ms chown system system /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq chown system system /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq chown system system /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq chown system system /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq chmod 0664 /sys/class/kgsl/kgsl-3d0/devfreq/min_freq chmod 0664 /sys/class/kgsl/kgsl-3d0/devfreq/max_freq chmod 0664 /sys/class/kgsl/kgsl-3d0/force_rail_on chmod 0664 /sys/class/kgsl/kgsl-3d0/force_clk_on chmod 0664 /sys/class/kgsl/kgsl-3d0/idle_timer chmod 0664 /sys/class/devfreq/soc:qcom,gpubw/min_freq chmod 0664 /sys/class/devfreq/soc:qcom,cpu-cpu-ddr-bw/max_freq chmod 0664 /sys/class/devfreq/soc:qcom,cpu-cpu-ddr-bw/min_freq chmod 0664 /sys/class/devfreq/soc:qcom,cpu-cpu-ddr-bw/bw_hwmon/hist_memory chmod 0664 /sys/class/devfreq/soc:qcom,cpu-cpu-ddr-bw/bw_hwmon/hyst_length chmod 0664 /sys/class/devfreq/soc:qcom,cpu-cpu-ddr-bw/bw_hwmon/hyst_trigger_count chmod 0664 /sys/class/devfreq/soc:qcom,cpu-cpu-ddr-bw/bw_hwmon/io_percent chmod 0664 /sys/class/devfreq/soc:qcom,cpu-cpu-ddr-bw/bw_hwmon/sample_ms chmod 0664 /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq chmod 0664 /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq chmod 0664 /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq chmod 0664 /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq chown system system /sys/module/battery_saver/parameters/enabled chmod 0664 /sys/module/battery_saver/parameters/enabled # Change permissions for /dev/diag chmod 0666 /dev/diag on fs wait /dev/block/platform/soc/${ro.boot.bootdevice} symlink /dev/block/platform/soc/${ro.boot.bootdevice} /dev/block/bootdevice mount_all /vendor/etc/fstab.qcom swapon_all /vendor/etc/fstab.qcom chown root system /mnt/vendor/persist chmod 0771 /mnt/vendor/persist mkdir /mnt/vendor/persist/data 0700 system system mkdir /mnt/vendor/persist/bms 0700 root system restorecon_recursive /mnt/vendor/persist write /sys/kernel/boot_adsp/boot 1 mkdir /mnt/vendor/dsp 0770 root root copy /vendor/dsp/cdsp/fastrpc_shell_3 /mnt/vendor/dsp/fastrpc_shell_3 chmod 0644 /mnt/vendor/dsp/fastrpc_shell_3 mount none /mnt/vendor/dsp/fastrpc_shell_3 /vendor/dsp/cdsp/fastrpc_shell_3 bind on post-fs start vendor.qseecomd wait_for_prop vendor.sys.listeners.registered true on post-fs-data mkdir /data/vendor/tombstones/modem 0771 system system mkdir /data/vendor/tombstones/lpass 0771 system system mkdir /data/vendor/tombstones/wcnss 0771 system system mkdir /data/vendor/tombstones/dsps 0771 system system mkdir /data/vendor/misc/seemp 0700 system system on early-boot write /dev/ipa 1 # Enable charging led trigger write /sys/class/leds/red/trigger battery-charging-or-full on boot start vendor.rmt_storage # Thermal chmod 0664 /sys/class/thermal/thermal_message/sconfig chown system system /sys/class/thermal/thermal_message/sconfig chmod 0666 /sys/class/thermal/thermal_message/temp_state chown system system /sys/class/thermal/thermal_message/temp_state # Cpusets write /dev/cpuset/top-app/cpus 0-7 write /dev/cpuset/foreground/cpus 0-7 write /dev/cpuset/foreground/boost/cpus 0-7 write /dev/cpuset/background/cpus 0-7 write /dev/cpuset/system-background/cpus 0-7 ####Regionalization config and prop files#### chmod 0644 /persist/speccfg/spec chmod 0644 /persist/speccfg/devicetype chmod 0644 /persist/speccfg/mbnversion chmod 0644 /persist/speccfg/.not_triggered chmod 0644 /persist/speccfg/vendor_ro.prop chmod 0644 /persist/speccfg/vendor_persist.prop chmod 0644 /persist/speccfg/submask chmod 0644 /persist/speccfg/partition chown system system /persist/speccfg/spec chown system system /persist/speccfg/devicetype chown system system /persist/speccfg/mbnversion chown system system /persist/speccfg/.not_triggered chown system system /persist/speccfg/vendor_ro.prop chown system system /persist/speccfg/vendor_persist.prop chown system system /persist/speccfg/submask chown system system /persist/speccfg/partition # Turn on sleep modes write /sys/module/lpm_levels/parameters/sleep_disabled 0 #Create folder dump yuv images while debugging mkdir /data/vendor/camera 0770 camera camera #USB controller configuration setprop vendor.usb.rndis.func.name "rndis_bam" setprop vendor.usb.rmnet.func.name "rmnet_bam" setprop vendor.usb.rmnet.inst.name "rmnet" setprop vendor.usb.dpl.inst.name "dpl" setprop vendor.usb.qdss.inst.name "qdss" setprop vendor.usb.controller a800000.dwc3 setprop sys.usb.configfs 1 write /sys/module/usb_f_qcrndis/parameters/rndis_dl_max_xfer_size 15916 on boot && property:persist.vendor.usb.controller.default=* setprop vendor.usb.controller ${persist.vendor.usb.controller.default} on property:vendor.usb.controller=* setprop sys.usb.controller ${vendor.usb.controller} write /sys/module/usb_f_qcrndis/parameters/rndis_dl_max_xfer_size 15916 # Touchpanel chown system system /sys/touchpanel/double_tap chmod 0664 /sys/touchpanel/double_tap # SmartCharging chown system system /sys/class/power_supply/battery/charging_enabled chmod 0666 /sys/class/power_supply/battery/charging_enabled #Peripheral manager service vendor.per_mgr /system/vendor/bin/pm-service class core user system group system ioprio rt 4 service vendor.per_proxy /system/vendor/bin/pm-proxy class core user system group system disabled on property:init.svc.vendor.per_mgr=running start vendor.per_proxy on property:sys.shutdown.requested=* stop vendor.per_proxy #start camera server as daemon #service qcamerasvr /system/bin/mm-qcamera-daemon # class late_start # user camera # group camera system inet input graphics ## import cne init file #on post-fs # export LD_PRELOAD /vendor/lib/libNimsWrap.so # ## Allow usb charging to be disabled peristently #on property:persist.usb.chgdisabled=1 # write /sys/class/power_supply/battery/charging_enabled 0 # #on property:persist.usb.chgdisabled=0 # write /sys/class/power_supply/battery/charging_enabled 1 # #service qrngd /system/bin/qrngd -f # class main # user root # group root # #service qrngp /system/bin/qrngp # class main # user root # group root # oneshot # disabled # #on property:sys.boot_completed=1 # start qrngp # service vendor.qseecomd /vendor/bin/qseecomd class core user root group root #service qosmgrd /system/bin/qosmgr /system/etc/qosmgr_rules.xml # user system # group system # disabled # #service security-check1 /sbin/security_boot_check system # class core # oneshot # #service security-check2 /sbin/security_boot_check recovery # class core # oneshot # # #service usf_tester /system/vendor/bin/usf_tester # user system # group system inet # disabled # #service usf_epos /system/vendor/bin/usf_epos # user system # group system inet # disabled # #service usf_gesture /system/vendor/bin/usf_gesture # user system # group system inet # disabled # #service usf_sync_gesture /system/vendor/bin/usf_sync_gesture # user system # group system inet # disabled # #service usf_p2p /system/vendor/bin/usf_p2p # user system # group system inet # disabled # #service usf_hovering /system/vendor/bin/usf_hovering # user system # group system inet # disabled # #service usf_proximity /system/vendor/bin/usf_proximity # user system # group system inet # disabled # #service usf-post-boot /system/vendor/bin/sh /system/etc/usf_post_boot.sh # class late_start # user root # disabled # oneshot # #on property:init.svc.bootanim=stopped # start usf-post-boot # # #on boot # insmod /system/lib/modules/adsprpc.ko # insmod /system/lib/modules/mhi.ko ## access permission for secure touch # chmod 0660 /sys/devices/f9966000.i2c/i2c-1/1-004a/secure_touch_enable # chmod 0440 /sys/devices/f9966000.i2c/i2c-1/1-004a/secure_touch # chmod 0660 /sys/devices/f9966000.i2c/i2c-1/1-0020/secure_touch_enable # chmod 0440 /sys/devices/f9966000.i2c/i2c-1/1-0020/secure_touch # chown system drmrpc /sys/devices/f9966000.i2c/i2c-1/1-004a/secure_touch_enable # chown system drmrpc /sys/devices/f9966000.i2c/i2c-1/1-004a/secure_touch # chown system drmrpc /sys/devices/f9966000.i2c/i2c-1/1-0020/secure_touch_enable # chown system drmrpc /sys/devices/f9966000.i2c/i2c-1/1-0020/secure_touch # # # service vendor-sensor-sh /vendor/bin/init.qcom.sensors.sh class core user root oneshot # #service mdm_helper /system/bin/mdm_helper # class core # onrestart setprop ro.service.mdm_helper_restarted "true" # disabled # #service mdm_helper_proxy /system/bin/mdm_helper_proxy # class core # disabled # #service mdm_launcher /system/bin/sh /init.mdm.sh # class main # oneshot # #service qcamerasvr /system/bin/mm-qcamera-daemon # class late_start # user camera # group camera system inet input graphics # # Stop mdm_helper_proxy in case of shutdown #on property:sys.shutdown.requested=* # stop mdm_helper_proxy # # Stop mdm_helper_proxy on APQ target #on property:ro.radio.noril=yes # stop mdm_helper_proxy # #on property:persist.airplane.mode.pwr.svg=enabled # setprop ro.mdm_helper_proxy_req false # #on property:init.svc.ril-daemon=running # setprop ro.mdm_helper_proxy_req true # ## Start mdm_helper_proxy #on property:ro.mdm_helper_proxy_req=true # start mdm_helper_proxy # ## QCA1530 SoC core detect #service gnss-detect /system/vendor/bin/gnss.qca1530.sh detect # class core # oneshot service mdtpd /system/vendor/bin/mdtpd class late_start user root group system radio drmrpc service vendor.pd_mapper /system/vendor/bin/pd-mapper class core # ## QCA1530 SoC late_start group trigger #service gnss-init /system/vendor/bin/gnss.qca1530.sh init # class late_start # oneshot # ## QCA1530 SoC Service Daemon #service gnss-svcd /system/vendor/bin/gnss.qca1530.sh start # class late_start # user root # group gps system qcom_diag diag log inet net_raw # disabled on property:vold.decrypt=trigger_restart_framework start cnss_diag service 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 service dcvs-sh /vendor/bin/init.qti.dcvs.sh class late_start user root group root system disabled oneshot on property:vendor.dcvs.prop=1 start dcvs-sh service folio_daemon /system/bin/folio_daemon class late_start user system group system uhid disabled on property:persist.service.folio_daemon=0 stop folio_daemon on property:persist.service.folio_daemon=1 start folio_daemon service ppd /system/vendor/bin/mm-pp-dpps class late_start user system group system graphics socket pps stream 0660 system system disabled on property:sys.boot_completed=1 # Enable PowerHAL hint processing setprop vendor.powerhal.init 1 # Stop bootanimation stop bootanim on property:init.svc.surfaceflinger=stopped stop ppd on property:init.svc.surfaceflinger=running start ppd on property:init.svc.surfaceflinger=restarting stop ppd on property:init.svc.zygote=stopped stop ppd on property:init.svc.zygote=running start ppd on property:init.svc.zygote=restarting stop ppd on charger start qcom-post-boot start vendor.hvdcp_opti setprop vendor.usb.controller a800000.dwc3 setprop sys.usb.configfs 1 start vendor.power_off_alarm service vendor.hvdcp_opti /vendor/bin/hvdcp_opti class main user system group system wakelock capabilities BLOCK_SUSPEND WAKE_ALARM # #service nqs /system/bin/nqs # class late_start # socket nqs_qsb_comm stream 660 system system # user system # group drmrpc # #service adsprpcd /system/vendor/bin/adsprpcd # class main # user media # group media # ##Start picture quality tuning service #service vqttoolservice /system/bin/vqttoolservice # class late_start # socket vqtss stream 0660 system system # user system # group system service seempd /system/bin/seempd class late_start user system group system sdcard_rw socket seempdw dgram 0666 system system on property:sys.boot_completed=1 # Enable EAS write /proc/sys/kernel/sched_energy_aware 1 # Setup final cpuset write /dev/cpuset/top-app/cpus 0-7 write /dev/cpuset/foreground/cpus 0-7 write /dev/cpuset/background/cpus 0-3 write /dev/cpuset/system-background/cpus 0-3 write /dev/cpuset/restricted/cpus 0-3 # MIUI camera flag on property:sys.camera.miui.apk=* setprop vendor.camera.miui.apk ${sys.camera.miui.apk} on property:sys.boot_completed=1 && property:ro.boot.fpsensor=gdx # stop fps_hal stop vendor.fps_hal