aboutsummaryrefslogtreecommitdiff
path: root/rootdir/etc/init.qcom.rc
diff options
context:
space:
mode:
Diffstat (limited to 'rootdir/etc/init.qcom.rc')
-rw-r--r--rootdir/etc/init.qcom.rc586
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