diff options
Diffstat (limited to 'rootdir/etc/init.qcom.rc')
| -rw-r--r-- | rootdir/etc/init.qcom.rc | 586 |
1 files changed, 586 insertions, 0 deletions
diff --git a/rootdir/etc/init.qcom.rc b/rootdir/etc/init.qcom.rc new file mode 100644 index 0000000..a6dc09a --- /dev/null +++ b/rootdir/etc/init.qcom.rc @@ -0,0 +1,586 @@ +# Copyright (c) 2009-2012, 2014, 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 init.qcom.power.rc +import init.qcom.ssr.rc +import init.qcom.usb.rc +import init.target.rc + +on early-init + mkdir /firmware 0771 system system + mkdir /system 0777 root root + symlink /data/tombstones /tombstones + + # Turn off backlight on blank + write /sys/class/leds/lcd-backlight/trigger "backlight" + +on init + # Set permissions for persist partition + mkdir /persist 0771 system system + + symlink /sdcard /mnt/sdcard + symlink /sdcard /storage/sdcard0 + +on fs + mount_all fstab.qcom + wait /dev/block/bootdevice/by-name/persist + mkdir /persist/data 0700 system system + restorecon_recursive /persist + wait /dev/block/bootdevice/by-name/dsp + restorecon_recursive /dsp + +# msm specific files that need to be created on /data +on post-fs-data + + mkdir /data/fdAlbum 0770 camera camera + mkdir /data/misc/camera 0770 camera camera + + #Create PERFD deamon related dirs + mkdir /data/misc/perfd 0770 root system + chmod 2770 /data/misc/perfd + mkdir /data/misc/perfd 0755 root system + chmod 2755 /data/misc/perfd + mkdir /data/system/perfd 0770 root system + chmod 2770 /data/system/perfd + + # NFC local data and nfcee xml storage + mkdir /data/nfc 0770 nfc nfc + mkdir /data/nfc/param 0770 nfc nfc + + mkdir /data/tombstones 0771 system system + mkdir /tombstones/modem 0771 system system + mkdir /tombstones/lpass 0771 system system + mkdir /tombstones/wcnss 0771 system system + mkdir /tombstones/dsps 0771 system system + + mkdir /persist/data/sfs 0700 system system + mkdir /persist/data/tz 0700 system system + + mkdir /data/misc/bluetooth 0770 bluetooth bluetooth + + # Create the directories used by the Wireless subsystem + mkdir /data/misc/wifi 0770 wifi wifi + mkdir /data/misc/wifi/sockets 0770 wifi wifi + mkdir /data/misc/wifi/wpa_supplicant 0770 wifi wifi + mkdir /data/misc/dhcp 0770 dhcp dhcp + chown dhcp dhcp /data/misc/dhcp + + # Create the directories used by CnE subsystem + mkdir /data/connectivity 0771 system system + mkdir /data/connectivity/nsrm 0771 system system + + # Create the directories used by DPM subsystem + mkdir /data/dpm 0771 system system + mkdir /data/dpm/fdMgr 0771 system system + mkdir /data/dpm/nsrm 0771 system system + + # Create directory used by audio subsystem + mkdir /data/misc/audio 0770 audio audio + restorecon_recursive /data/misc/audio + + # Create directory used by the DASH client + mkdir /data/misc/dash 0770 media audio + + # Mounting of persist is moved to 'on emmc-fs' and 'on fs' sections + # We chown/chmod /persist again so because mount is run as root + defaults + chown system system /persist + chmod 0771 /persist + chmod 0664 /sys/devices/platform/msm_sdcc.1/polling + chmod 0664 /sys/devices/platform/msm_sdcc.2/polling + chmod 0664 /sys/devices/platform/msm_sdcc.3/polling + chmod 0664 /sys/devices/platform/msm_sdcc.4/polling + + # Chown polling nodes as needed from UI running on system server + chown system system /sys/devices/platform/msm_sdcc.1/polling + chown system system /sys/devices/platform/msm_sdcc.2/polling + chown system system /sys/devices/platform/msm_sdcc.3/polling + chown system system /sys/devices/platform/msm_sdcc.4/polling + + #Create the symlink to qcn wpa_supplicant folder for ar6000 wpa_supplicant + mkdir /data/system 0775 system system + #symlink /data/misc/wifi/wpa_supplicant /data/system/wpa_supplicant + + #Create directories for Location services + mkdir /data/misc/location 0770 gps gps + mkdir /data/misc/location/mq 0770 gps gps + mkdir /data/misc/location/xtwifi 0770 gps gps + mkdir /data/misc/location/gpsone_d 0770 system gps + mkdir /data/misc/location/quipc 0770 gps system + mkdir /data/misc/location/gsiff 0770 gps gps + + #Create directory from IMS services + mkdir /data/shared 0755 + chown system system /data/shared + + #Create directory for FOTA + mkdir /data/fota 0771 + chown system system /data/fota + + #Create directory for hostapd + mkdir /data/hostapd 0770 system wifi + + # Create /data/time folder for time-services + mkdir /data/time/ 0700 system system + restorecon_recursive /data/time + + mkdir /data/audio/ 0770 media audio + + setprop vold.post_fs_data_done 1 + + #Create a folder for SRS to be able to create a usercfg file + mkdir /data/data/media 0770 media media + + mkdir /data/diag_logs 0777 system system + +on early-boot + # set RLIMIT_MEMLOCK to 64MB + setrlimit 8 67108864 67108864 + # Allow subsystem (modem etc) debugging + write /sys/module/subsystem_restart/parameters/enable_debug ${persist.sys.ssr.enable_debug} + write /sys/module/pil_msa/parameters/pbl_mba_boot_timeout_ms ${persist.sys.mba_boot_timeout} + write /sys/module/pil_msa/parameters/modem_auth_timeout_ms ${persist.sys.modem_auth_timeout} + write /sys/module/peripheral_loader/parameters/proxy_timeout_ms ${persist.sys.pil_proxy_timeout} + write /sys/kernel/boot_adsp/boot 1 + +on boot + chown bluetooth bluetooth /sys/module/bluetooth_power/parameters/power + chown bluetooth bluetooth /sys/class/rfkill/rfkill0/type + chown bluetooth bluetooth /sys/class/rfkill/rfkill0/state + chown bluetooth bluetooth /proc/bluetooth/sleep/proto + chown bluetooth bluetooth /sys/module/hci_uart/parameters/ath_lpm + chown bluetooth bluetooth /sys/module/hci_uart/parameters/ath_btwrite + chown system system /sys/module/sco/parameters/disable_esco + chown bluetooth bluetooth /sys/module/hci_smd/parameters/hcismd_set + chmod 0660 /sys/module/bluetooth_power/parameters/power + chmod 0660 /sys/module/hci_smd/parameters/hcismd_set + chmod 0660 /sys/class/rfkill/rfkill0/state + chmod 0660 /proc/bluetooth/sleep/proto + chown bluetooth bluetooth /dev/ttyHS0 + chmod 0660 /sys/module/hci_uart/parameters/ath_lpm + chmod 0660 /sys/module/hci_uart/parameters/ath_btwrite + chmod 0660 /dev/ttyHS0 + chown bluetooth bluetooth /sys/devices/platform/msm_serial_hs.0/clock + chmod 0660 /sys/devices/platform/msm_serial_hs.0/clock + + chmod 0660 /dev/ttyHS2 + chown bluetooth bluetooth /dev/ttyHS2 + + #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 + + #Create NETMGR daemon socket area + mkdir /dev/socket/netmgr 0750 radio radio + + chmod 0444 /sys/devices/platform/msm_hsusb/gadget/usb_state + + #For bridgemgr daemon to inform the USB driver of the correct transport + chown radio radio /sys/class/android_usb/f_rmnet_smd_sdio/transport + +# 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 + + #To allow interfaces to get v6 address when tethering is enabled + write /proc/sys/net/ipv6/conf/rmnet0/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet1/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet2/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet3/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet4/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet5/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet6/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet7/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet_sdio0/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet_sdio1/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet_sdio2/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet_sdio3/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet_sdio4/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet_sdio5/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet_sdio6/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet_sdio7/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet_usb0/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet_usb1/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet_usb2/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet_usb3/accept_ra 2 + + # 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_INFO + # Set the default message loglevel to KERN_INFO + write /proc/sys/kernel/printk "6 6 1 7" + + # Allow access for CCID command/response timeout configuration + chown system system /sys/module/ccid_bridge/parameters/bulk_msg_timeout + + # camera sockets + mkdir /data/misc/camera 0770 camera camera + + # Create directory used by display clients + mkdir /data/misc/display 0770 system graphics + mkdir /persist/display 0770 system graphics + + # Graphics node permissions + chmod 0664 /sys/class/graphics/fb0/dyn_pu + chmod 0664 /sys/class/graphics/fb0/dynamic_fps + chmod 0664 /sys/class/graphics/fb0/idle_time + chmod 0664 /sys/class/graphics/fb0/mode + chmod 0664 /sys/class/graphics/fb0/modes + + chown system graphics /sys/class/graphics/fb0/dyn_pu + chown system graphics /sys/class/graphics/fb0/dynamic_fps + chown system graphics /sys/class/graphics/fb0/idle_time + chown system graphics /sys/class/graphics/fb0/mode + chown system graphics /sys/class/graphics/fb0/modes + +on property:init.svc.wpa_supplicant=stopped + stop dhcpcd + +on property:bluetooth.isEnabled=true + write /sys/class/bluetooth/hci0/idle_timeout 7000 + +on property:vold.decrypt=trigger_restart_framework + start config_bt_addr + start config_bluetooth + +on property:persist.env.fastdorm.enabled=true + setprop persist.radio.data_no_toggle 1 + +service irsc_util /system/bin/irsc_util "/etc/sec_config" + class main + user root + oneshot + +service rmt_storage /system/bin/rmt_storage + class core + user root + +service rfs_access /system/bin/rfs_access + class core + user system + group system net_raw + +service config_bt_addr /system/bin/btnvtool -O + class core + user bluetooth + group bluetooth radio + oneshot + +service config_bluetooth /system/bin/sh /system/etc/init.qcom.bt.sh "onboot" + class core + user root + seclabel u:r:bluetooth_loader:s0 + oneshot + +service cnd /system/bin/cnd + class late_start + socket cnd stream 660 root inet + +service dpmd /system/bin/dpmd + class main + socket dpmd stream 660 root system + +service hciattach /system/bin/sh /system/etc/init.qcom.bt.sh + class late_start + user bluetooth + group bluetooth net_bt_admin + disabled + seclabel u:r:bluetooth_loader:s0 + oneshot + +on property:bluetooth.hciattach=true + start hciattach + +# FM +on property:hw.fm.init=0 + write /sys/module/radio_iris_transport/parameters/fmsmd_set 0 + +on property:hw.fm.init=1 + write /sys/module/radio_iris_transport/parameters/fmsmd_set 1 + +# QMUX must be in multiple groups to support external process connections +service qmuxd /system/bin/qmuxd + class main + user root + group radio audio bluetooth gps qcom_diag + +service netmgrd /system/bin/netmgrd + class main + +service qti /vendor/bin/qti + class main + user radio + group radio net_raw qcom_diag usb net_admin + +service sensors /system/bin/sensors.qcom + class late_start + user root + group root + disabled + +on property:ro.use_data_netmgrd=false + # netmgr not supported on specific target + stop netmgrd + +# 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 + +service p2p_supplicant /system/bin/wpa_supplicant \ + -ip2p0 -Dnl80211 -c/data/misc/wifi/p2p_supplicant.conf \ + -I/system/etc/wifi/p2p_supplicant_overlay.conf -N \ + -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \ + -I/system/etc/wifi/wpa_supplicant_overlay.conf \ + -O/data/misc/wifi/sockets -puse_p2p_group_interface=1 \ + -e/data/misc/wifi/entropy.bin -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 + class main + socket wpa_wlan0 dgram 660 wifi wifi + disabled + oneshot + +service wpa_supplicant /system/bin/wpa_supplicant \ + -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \ + -I/system/etc/wifi/wpa_supplicant_overlay.conf \ + -O/data/misc/wifi/sockets \ + -e/data/misc/wifi/entropy.bin -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 + class main + socket wpa_wlan0 dgram 660 wifi wifi + disabled + oneshot + +service dhcpcd_wlan0 /system/bin/dhcpcd -ABKLG + class late_start + disabled + oneshot + +service dhcpcd_p2p /system/bin/dhcpcd -ABKLG + class late_start + disabled + oneshot + +service iprenew_wlan0 /system/bin/dhcpcd -n + class late_start + disabled + oneshot + +service iprenew_p2p /system/bin/dhcpcd -n + class late_start + disabled + oneshot + +service dhcpcd_bt-pan /system/bin/dhcpcd -BKLG + class late_start + disabled + oneshot + +service iprenew_bt-pan /system/bin/dhcpcd -n + class late_start + disabled + oneshot + +service dhcpcd_bnep0 /system/bin/dhcpcd -BKLG + disabled + oneshot + +service dhcpcd_bnep1 /system/bin/dhcpcd -BKLG + disabled + oneshot + +service dhcpcd_bnep2 /system/bin/dhcpcd -BKLG + disabled + oneshot + +service dhcpcd_bnep3 /system/bin/dhcpcd -BKLG + disabled + oneshot + +service dhcpcd_bnep4 /system/bin/dhcpcd -BKLG + disabled + oneshot + +service dhcpcd_eth0 /system/bin/dhcpcd -aABDKL + class late_start + disabled + oneshot + +service iprenew_eth0 /system/bin/dhcpcd -n + class late_start + disabled + oneshot + +service loc_launcher /system/bin/loc_launcher + #loc_launcher will start as root and set its uid to gps + class late_start + group gps inet net_raw qcom_diag net_admin wifi + +service qcom-sh /system/bin/sh /init.qcom.sh + class late_start + user root + oneshot + +service hostapd /system/bin/hostapd -dd /data/hostapd/hostapd.conf + class late_start + user root + group root + oneshot + disabled + +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 /system/bin/rild -c 2 + class main + socket rild2 stream 660 root radio + socket rild-debug2 stream 660 radio system + user root + group radio cache inet misc audio sdcard_r sdcard_rw diag qcom_diag log + +service charger /charger + class charger + group log + seclabel u:r:healthd:s0 + +service ssr_diag /system/bin/ssr_diag + class late_start + user system + group system + +service hvdcp /system/bin/hvdcp + class core + user root + disabled + +on property:persist.usb.hvdcp.detect=true + start hvdcp + +on property:persist.usb.hvdcp.detect=false + stop hvdcp + +#start camera server as daemon +service qcamerasvr /system/bin/mm-qcamera-daemon + class late_start + user camera + group camera system inet input graphics + writepid /dev/cpuset/system-background/tasks + +# 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 qseecomd /system/bin/qseecomd + class core + user root + group root + +service perfd /vendor/bin/perfd + class main + user root + group root + disabled + writepid /dev/cpuset/system-background/tasks + +service thermal-engine /vendor/bin/thermal-engine + class main + user root + group root + +service time_daemon /system/bin/time_daemon + class late_start + user root + group root + +service audiod /system/bin/audiod + class late_start + user system + group system + +service ppd /system/bin/mm-pp-daemon + class late_start + disabled + user system + socket pps stream 0660 system system + group system graphics + +on property:init.svc.surfaceflinger=stopped + stop ppd + +on property:init.svc.surfaceflinger=running + start ppd + +service wcnss-service /system/bin/wcnss_service + class main + user system + group system wifi radio + oneshot + +service adsprpcd /system/bin/adsprpcd + class main + user media + group media + +service per_mgr /system/bin/pm-service + class core + user system + group system net_raw + +service msm_irqbalance /system/bin/msm_irqbalance -f /vendor/etc/msm_irqbalance.conf + class core + user root + group root + disabled + +service msm_irqbal_lb /system/bin/msm_irqbalance -f /vendor/etc/msm_irqbalance_little_big.conf + class core + user root + group root + disabled + writepid /dev/cpuset/system-background/tasks |
