# Copyright (c) 2009-2012, 2014-2018, 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 BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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. # import /vendor/etc/init/hw/init.msm.usb.configfs.rc import /vendor/etc/init/hw/init.qcom.power.rc import /vendor/etc/init/hw/init.qcom.usb.rc import /vendor/etc/init/hw/init.zuk.rc on early-init chown root system /dev/kmsg chmod 0620 /dev/kmsg # ZRAM setup write /sys/block/zram0/comp_algorithm lz4 write /proc/sys/vm/page-cluster 0 on init # Create cgroup mount point for memory mkdir /sys/fs/cgroup/memory/bg 0750 root system write /sys/fs/cgroup/memory/bg/memory.swappiness 140 write /sys/fs/cgroup/memory/bg/memory.move_charge_at_immigrate 1 chown root system /sys/fs/cgroup/memory/bg/tasks chmod 0660 /sys/fs/cgroup/memory/bg/tasks write /sys/module/qpnp_rtc/parameters/poweron_alarm 1 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 --early # Start HW service manager early start hwservicemanager # Set permissions for persist partition chown root system /mnt/vendor/persist chmod 0771 /mnt/vendor/persist mkdir /mnt/vendor/persist/bms 0700 root system mkdir /mnt/vendor/persist/data 0700 system system restorecon_recursive /mnt/vendor/persist on late-fs # Start services for bootanim start servicemanager start surfaceflinger start bootanim start vendor.configstore-hal start vendor.gralloc-2-0 # Mount RW partitions which need run fsck mount_all /vendor/etc/fstab.qcom --late # 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/nr_requests 256 on post-fs start vendor.qseecomd # msm specific files that need to be created on /data on post-fs-data mkdir /data/vendor/misc 01771 system system # Create directory used by display clients mkdir /data/vendor/display 0770 system graphics # Create directory used by media clients mkdir /data/vendor/media 0770 mediacodec media # Create directories for tombstones mkdir /data/tombstones/modem 0771 system system mkdir /data/tombstones/lpass 0771 system system mkdir /data/tombstones/wcnss 0771 system system mkdir /data/tombstones/dsps 0771 system system # Create directory for tftp mkdir /data/vendor/tombstones 0771 system system # Create folder for mm-qcamera-daemon mkdir /data/vendor/qcam 0770 camera camera mkdir /data/media 0770 media_rw media_rw chown media_rw media_rw /data/media mkdir /data/vendor/ramdump 0771 root system mkdir /data/vendor/bluetooth 0770 bluetooth bluetooth mkdir /data/vendor/ramdump/bluetooth 0770 bluetooth bluetooth # Create the directories used by the Wireless subsystem mkdir /data/vendor/wifi 0770 wifi wifi mkdir /data/vendor/wifi/wpa 0770 wifi wifi mkdir /data/vendor/wifi/wpa/sockets 0770 wifi wifi # Create the directories used by CnE subsystem mkdir /data/vendor/connectivity 0771 radio radio chown radio radio /data/vendor/connectivity # 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 0770 system radio # Create directory for modem_config mkdir /data/vendor/modem_config 0570 radio root # 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 # SSC/SLPI sensors mkdir /mnt/vendor/persist/sensors 0775 root system chown root system /mnt/vendor/persist/sensors/sensors_settings chmod 0664 /mnt/vendor/persist/sensors/sensors_settings chown root system /mnt/vendor/persist/sensors/sns.reg chmod 0664 /mnt/vendor/persist/sensors/sns.reg # /dev/sensors only supports an ioctl to get the current SLPI timestamp; # allow the sensors daemon to perform this as non-root chown root system /dev/sensors chmod 0660 /dev/sensors # Create /data/vendor/time folder for time-services mkdir /data/vendor/time/ 0700 system system setprop vold.post_fs_data_done 1 # Create PERFD deamon related dirs mkdir /data/vendor/perfd 0770 root system chmod 2770 /data/vendor/perfd rm /data/vendor/perfd/default_values # Create IOP deamon related dirs mkdir /data/vendor/iop 0770 root system # 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 on early-boot # Set RLIMIT_MEMLOCK to 64MB setrlimit 8 67108864 67108864 start vendor.qseecomd wait_for_prop sys.listeners.registered true write /dev/ipa 1 # Allow subsystem (modem etc) debugging write /sys/kernel/boot_adsp/boot 1 write /sys/kernel/boot_slpi/boot 1 chown root audio /sys/kernel/boot_adsp/boot # SSR setup write /sys/bus/msm_subsys/devices/subsys0/restart_level "related" write /sys/bus/msm_subsys/devices/subsys1/restart_level "related" write /sys/bus/msm_subsys/devices/subsys2/restart_level "related" write /sys/bus/msm_subsys/devices/subsys3/restart_level "related" write /sys/bus/msm_subsys/devices/subsys4/restart_level "related" write /sys/bus/msm_subsys/devices/subsys5/restart_level "related" on boot # U-Touch disable - KeyDisabler chown system system /sys/devices/soc/soc:fpc1020/utouch_disable chmod 0660 /sys/devices/soc/soc:fpc1020/utouch_disable #added touch gesture wake node permission chown system system /sys/devices/virtual/touch/tp_dev/gesture_on chmod 0660 /sys/devices/virtual/touch/tp_dev/gesture_on # Access permission for Bluetooth chown bluetooth bluetooth /sys/module/bluetooth_power/parameters/power chown bluetooth net_bt /sys/class/rfkill/rfkill0/type chown bluetooth net_bt /sys/class/rfkill/rfkill0/state chown bluetooth net_bt /sys/class/rfkill/rfkill0/device/extldo chown bluetooth net_bt /dev/ttyHS0 chmod 0660 /sys/module/bluetooth_power/parameters/power chmod 0660 /sys/class/rfkill/rfkill0/device/extldo chmod 0660 /sys/class/rfkill/rfkill0/state chmod 0660 /dev/ttyHS0 chown system system /sys/module/msm_core/parameters/polling_interval chown system system /sys/module/msm_core/parameters/disabled chown system system /sys/kernel/debug/msm_core/enable chown system system /sys/kernel/debug/msm_core/ptable # Access permission for fingerprint chown system system /sys/devices/soc/soc:fpc1020/irq chmod 0660 /sys/devices/soc/soc:fpc1020/irq chown system system /sys/devices/soc/soc:fpc1020/wakeup chmod 0660 /sys/devices/soc/soc:fpc1020/wakeup chown system system /sys/devices/soc/soc:fpc1020/key chmod 0660 /sys/devices/soc/soc:fpc1020/key chown system system /sys/devices/soc/soc:fpc1020/wl chmod 0660 /sys/devices/soc/soc:fpc1020/wl chown system system /sys/devices/soc/soc:fpc1020/screen chmod 0660 /sys/devices/soc/soc:fpc1020/screen chmod 0660 /sys/devices/soc/soc:fpc1020/proximity_state chown system system /sys/devices/soc/soc:fpc1020/proximity_state chmod 0660 /sys/devices/soc/soc:fpc1020/enable_wakeup chown system system /sys/devices/soc/soc:fpc1020/enable_wakeup # Access permission for secure touch chmod 0660 /sys/devices/soc/75ba000.i2c/i2c-12/12-0020/secure_touch_enable chmod 0440 /sys/devices/soc/75ba000.i2c/i2c-12/12-0020/secure_touch chown system drmrpc /sys/devices/soc/75ba000.i2c/i2c-12/12-0020/secure_touch_enable chown system drmrpc /sys/devices/soc/75ba000.i2c/i2c-12/12-0020/secure_touch # Create QMUX deamon socket area 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 mkdir /mnt/vendor/persist/drm 0770 system system mkdir /mnt/vendor/persist/bluetooth 0770 bluetooth bluetooth mkdir /mnt/vendor/persist/misc 0770 system system mkdir /mnt/vendor/persist/alarm 0777 system system chmod 0666 /mnt/vendor/persist/alarm/data mkdir /mnt/vendor/persist/time 0770 system system mkdir /mnt/vendor/persist/data/sfs 0700 system system mkdir /mnt/vendor/persist/data/tz 0700 system system mkdir /mnt/vendor/persist/qc_senseid 0700 system system mkdir /mnt/vendor/persist/wlan_bt 0770 system system mkdir /mnt/vendor/persist/audio 0777 media audio mkdir /mnt/vendor/persist/display 0770 system graphics # LED torch permissions chown system system /sys/class/leds/led:torch_0/brightness chmod 0666 /sys/class/leds/led:torch_0/brightness chown system system /sys/class/leds/led:torch_1/brightness chmod 0666 /sys/class/leds/led:torch_1/brightness chown system system /sys/class/leds/led:switch/brightness chmod 0666 /sys/class/leds/led:switch/brightness # Graphic node permissions chown system graphics /sys/class/graphics/fb0/idle_time chown system graphics /sys/class/graphics/fb0/dyn_pu chown system graphics /sys/class/graphics/fb0/modes chown system graphics /sys/class/graphics/fb0/mode chown system graphics /sys/class/graphics/fb0/msm_cmd_autorefresh_en chmod 0664 /sys/class/graphics/fb0/idle_time chmod 0664 /sys/class/graphics/fb0/dyn_pu chmod 0664 /sys/class/graphics/fb0/modes chmod 0664 /sys/class/graphics/fb0/mode chmod 0664 /sys/class/graphics/fb0/msm_cmd_autorefresh_en # Enable default router information in RA write /proc/sys/net/ipv6/conf/default/accept_ra_defrtr 1 # To prevent out of order acknowledgements from making # connection tracking to treat them as not belonging to # the connection they belong to. # Otherwise, a weird issue happens in which some long # connections on high-throughput links get dropped when # an ack packet comes out of order write /proc/sys/net/netfilter/nf_conntrack_tcp_be_liberal 1 # Set the console loglevel to < KERN_WARNING # Set the default message loglevel to KERN_WARNING write /proc/sys/kernel/printk "4 4 1 7" # Allow access for CCID command/response timeout configuration chown system system /sys/module/ccid_bridge/parameters/bulk_msg_timeout # Enable HAL3 thanks to OSS camera HAL setprop persist.camera.HAL3.enabled 1 # Enable camera read sensors data. setprop persist.camera.gyro.disable 0 # Our RIL doesn't send multiple RIL_UNSOL_CALL_RING so # without this it may trigger the phone ring tone only once. setprop ro.telephony.call_ring.multiple false # Wifi firmware reload path chown wifi wifi /sys/module/wlan/parameters/fwpath start vendor.qcrild start vendor.qcrild2 on property:sys.boot_completed=1 # Enable ZRAM on boot_complete swapon_all /vendor/etc/fstab.qcom # end boot time fs tune # UFS write /sys/block/sda/queue/read_ahead_kb 128 write /sys/block/sda/queue/nr_requests 128 write /sys/block/dm-0/queue/read_ahead_kb 128 write /sys/block/dm-1/queue/read_ahead_kb 128 write /sys/block/sda/queue/iostats 1 # MMC write /sys/block/mmcblk0/bdi/read_ahead_kb 128 write /sys/block/mmcblk0/queue/read_ahead_kb 128 write /sys/block/mmcblk0rpmb/bdi/read_ahead_kb 128 write /sys/block/mmcblk0rpmb/queue/read_ahead_kb 128 # CPE fw_name used by sound trigger HAL chown media audio /sys/kernel/wcd_cpe0/fw_name 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 group system wakelock shutdown critical ioprio rt 0 writepid /dev/cpuset/background/tasks service vendor.tftp_server /vendor/bin/tftp_server class core user root writepid /dev/cpuset/system-background/tasks service vendor.atfwd /vendor/bin/ATFWD-daemon class late_start user system group system radio writepid /dev/cpuset/system-background/tasks service vendor.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 writepid /dev/cpuset/system-background/tasks # Adjust socket buffer to enlarge TCP receive window for high bandwidth # but only if ro.data.large_tcp_window_size property is set. on property:ro.data.large_tcp_window_size=true write /proc/sys/net/ipv4/tcp_adv_win_scale 2 on property:sys.sysctl.tcp_adv_win_scale=* write /proc/sys/net/ipv4/tcp_adv_win_scale ${sys.sysctl.tcp_adv_win_scale} service vendor.qrtr-ns /vendor/bin/qrtr-ns -f class core user vendor_qrtr group vendor_qrtr capabilities NET_BIND_SERVICE service loc_launcher /vendor/bin/loc_launcher class late_start user gps group gps writepid /dev/cpuset/system-background/tasks on property:persist.sys.xtra-daemon.enabled=* restart vendor.loc_launcher service qcom-sh /vendor/bin/init.qcom.sh class late_start user root group root system radio oneshot on property:ro.vendor.ril.mbn_copy_completed=1 write /data/vendor/radio/copy_complete 1 on property:ro.data.large_tcp_window_size=true # Adjust socket buffer to enlarge TCP receive window for high bandwidth (e.g. DO-RevB) write /proc/sys/net/ipv4/tcp_adv_win_scale 2 service ril-daemon2 /vendor/bin/hw/rild -c 2 class main user radio group radio cache inet misc audio log readproc wakelock capabilities BLOCK_SUSPEND NET_ADMIN NET_RAW writepid /dev/cpuset/system-background/tasks service vendor.qseecomd /vendor/bin/qseecomd class core user root group root writepid /dev/cpuset/system-background/tasks on property:sys.listeners.registered=* setprop sys.keymaster.loaded ${sys.listeners.registered} setprop vendor.sys.keymaster.loaded ${sys.listeners.registered} service time_daemon /vendor/bin/time_daemon class main user system group system capabilities SYS_TIME writepid /dev/cpuset/system-background/tasks # Start camera server as daemon service qcamerasvr /vendor/bin/mm-qcamera-daemon class late_start user camera group camera system inet input graphics writepid /dev/cpuset/camera-daemon/tasks # Start up peripheral manager service vendor.per_mgr /vendor/bin/pm-service class core user system group system writepid /dev/cpuset/system-background/tasks service vendor.per_proxy /vendor/bin/pm-proxy class core user system group system writepid /dev/cpuset/system-background/tasks disabled on property:init.svc.vendor.per_mgr=running start vendor.per_proxy on property:sys.shutdown.requested=* stop vendor.per_proxy stop vendor.ims_rtp_daemon service thermal-engine /vendor/bin/thermal-engine -c /vendor/etc/thermal-engine.conf class main user root 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 socket thermal-send-rule stream 0660 system system group system root diag writepid /dev/cpuset/system-background/tasks service adsprpcd /vendor/bin/adsprpcd class main user media group media writepid /dev/cpuset/system-background/tasks # imsdatadaemon starts with root and UID will be downgraded to SYSTEM. service vendor.imsqmidaemon /vendor/bin/imsqmidaemon class main user system socket ims_qmid stream 0660 system radio group radio log diag writepid /dev/cpuset/system-background/tasks # imsdatadaemon starts with root and UID will be downgraded to SYSTEM. service vendor.imsdatadaemon /vendor/bin/imsdatadaemon class main user system socket ims_datad stream 0660 system radio group system wifi radio inet log diag writepid /dev/cpuset/system-background/tasks disabled on property:vendor.ims.QMI_DAEMON_STATUS=1 start vendor.imsdatadaemon service vendor.ims_rtp_daemon /vendor/bin/ims_rtp_daemon class main user system group radio diag inet log writepid /dev/cpuset/system-background/tasks disabled service vendor.imsrcsservice /vendor/bin/imsrcsd class main user system group radio diag inet log writepid /dev/cpuset/system-background/tasks disabled on property:vendor.ims.DATA_DAEMON_STATUS=1 restart vendor.ims_rtp_daemon service vendor.ppd /vendor/bin/mm-pp-dpps class late_start user system group system graphics socket pps stream 0660 system system disabled writepid /dev/cpuset/system-background/tasks service wlan-sh /vendor/bin/init.wlan.sh class late_start user root group root disabled oneshot service bt-sh /vendor/bin/init.bt.sh class late_start user bluetooth group bluetooth disabled oneshot on property:sys.boot_completed=1 start wlan-sh start bt-sh on property:ro.vendor.bt.bdaddr_path=/data/vendor/bluetooth/bdaddr # Correct perms for bdaddr chmod 0644 /data/vendor/bluetooth/bdaddr chown bluetooth bluetooth /data/vendor/bluetooth/bdaddr on property:init.svc.vendor.hwcomposer-2-1=stopped stop vendor.ppd on property:init.svc.vendor.hwcomposer-2-1=running start vendor.ppd on property:init.svc.vendor.hwcomposer-2-1=restarting stop vendor.ppd on property:init.svc.surfaceflinger=restarting restart vendor.hwcomposer-2-1 on property:slpi.restart=1 write /sys/kernel/debug/msm_subsys/slpi restart on property:vold.decrypt=trigger_reset_main stop audio-hal-2-0 on property:vold.decrypt=trigger_shutdown_framework stop audio-hal-2-0 on property:vold.decrypt=trigger_restart_min_framework start time_daemon start audio-hal-2-0 on property:vold.decrypt=trigger_restart_framework start audio-hal-2-0 restart vendor.camera-provider-2-4