# Copyright (c) 2009-2012, 2014-2015, 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.usb.rc
import init.target.rc

on early-init
    mount debugfs debugfs /sys/kernel/debug
    write /sys/block/mmcblk0/queue/scheduler noop
# additionaly for init.trace.rc
# Allow shell group to enable tgid prints
    chown root shell /sys/kernel/debug/tracing/options/print-tgid
    chmod 0664 /sys/kernel/debug/tracing/options/print-tgid

on init
    # Set permissions for persist partition
    mkdir /persist 0771 system system

    mkdir /preload 0771 system system
    # See storage config details at http://source.android.com/tech/storage/
    mkdir /mnt/shell/emulated 0700 shell shell
    mkdir /storage/emulated 0555 root root
    mkdir /mnt/media_rw/sdcard1 0700 media_rw media_rw
    mkdir /mnt/media_rw/usbotg 0700 media_rw media_rw
    mkdir /mnt/media_rw/uicc0 0700 media_rw media_rw
    mkdir /mnt/media_rw/uicc1 0700 media_rw media_rw
    mkdir /storage/sdcard1 0700 root root
    mkdir /storage/uicc0 0700 root root
    mkdir /storage/uicc1 0700 root root
    mkdir /storage/usbotg 0700 root root

    export EXTERNAL_STORAGE /storage/emulated/legacy
    export SECONDARY_STORAGE /storage/sdcard1
    export EMULATED_STORAGE_SOURCE /mnt/shell/emulated
    export EMULATED_STORAGE_TARGET /storage/emulated

    # Support legacy paths
    symlink /storage/emulated/legacy /sdcard
    symlink /storage/emulated/legacy /mnt/sdcard
    symlink /storage/emulated/legacy /storage/sdcard0
    symlink /mnt/shell/emulated/0 /storage/emulated/legacy

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 net_bt_stack /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

    chown bluetooth bluetooth /sys/class/rfkill/rfkill0/device/extldo
    chmod 0660 /sys/class/rfkill/rfkill0/device/extldo

    # for BT MAC address
    mkdir /efs/bluetooth 0775 radio system
    # if already exist
    chown radio system /efs/bluetooth
    chmod 0775 /efs/bluetooth

    #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

    setprop wifi.interface wlan0

    chown system system /proc/sched_orig_load_balance_enable
    chmod 0660 /proc/sched_orig_load_balance_enable

#   Define TCP buffer sizes for various networks
#   ReadMin, ReadInitial, ReadMax, WriteMin, WriteInitial, WriteMax,
    setprop net.tcp.buffersize.wifi    524288,2097152,4194304,262144,524288,1048576


    setprop ro.telephony.call_ring.multiple false

    #Remove SUID bit for iproute2 ip tool
    chmod 0755 /system/bin/ip


    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
    
 # For setting tcp delayed ack
    chown system system /sys/kernel/ipv4/tcp_delack_seg
    chown system system /sys/kernel/ipv4/tcp_use_userconfig

#   Define TCP buffer sizes for various networks
#   ReadMin, ReadInitial, ReadMax, WriteMin, WriteInitial, WriteMax,
    setprop net.tcp.buffersize.default 4096,87380,524288,4096,16384,110208
    setprop net.tcp.buffersize.lte     2097152,4194304,8388608,262144,524288,1048576
    setprop net.tcp.buffersize.umts    4094,87380,110208,4096,16384,110208
    setprop net.tcp.buffersize.hspa    4094,87380,1220608,4096,16384,1220608
    setprop net.tcp.buffersize.hsupa   4094,87380,1220608,4096,16384,1220608
    setprop net.tcp.buffersize.hsdpa   4094,87380,1220608,4096,16384,1220608
    setprop net.tcp.buffersize.hspap   4094,87380,1220608,4096,16384,1220608
    setprop net.tcp.buffersize.edge    4093,26280,35040,4096,16384,35040
    setprop net.tcp.buffersize.gprs    4092,8760,11680,4096,8760,11680
    setprop net.tcp.buffersize.evdo    4094,87380,524288,4096,16384,262144

#   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

# Define TCP delayed ack settings for WiFi
    setprop net.tcp.delack.default     1
    setprop net.tcp.delack.wifi        20
    setprop net.tcp.usercfg.default    0
    setprop net.tcp.usercfg.wifi       1
    setprop persist.tcp.delack.enable  true

    #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
#
# start qmuxd and qmiproxy for appropriate targets
#
on property:ro.baseband=msm
    start qmuxd

on property:ro.baseband=mdm
    start qmuxd

on property:ro.baseband=unknown
    start qmuxd

# msm specific files that need to be created on /data
on post-fs-data
    # Create directory for TZ Apps
    mkdir /data/misc/qsee 0770 system system

    # we will remap this as /mnt/sdcard with the sdcard fuse tool
    mkdir /data/misc/camera 0770 camera camera

    mkdir /data/media 0770 media_rw media_rw
    chown media_rw media_rw /data/media

    mkdir /data/misc/ipa 0700 net_admin net_admin

    mkdir /data/misc/bluetooth 0770 bluetooth bluetooth

    # Create the directories used by the Wireless subsystem
    mkdir /data/misc/wifi 0770 wifi system
    mkdir /data/misc/wifi/sockets 0770 wifi wifi
    mkdir /data/misc/wifi/wpa_supplicant 0770 wifi wifi
    mkdir /data/misc/dhcp 0775 dhcp dhcp
    chown dhcp dhcp /data/misc/dhcp

    # for WIFI MAC address
    mkdir /efs/wifi 0775 radio system
    chown system wifi /efs/wifi/.mac.info
    chmod 0660 /efs/wifi/.mac.info
    chmod 0660 /efs/wifi/.mac.cob

    # for WIFI TRP/TIS
    chown system root /data/.psm.info
    chmod 0664 /data/.psm.info

    # for WIFI Antena Selection
    chown system root /data/.ant.info
    chmod 0664 /data/.ant.info

    # for WIFI Version
    write /data/.wifiver.info 0
    chown system root /data/.wifiver.info
    chmod 0666 /data/.wifiver.info
    # Create the directories used by CnE subsystem
    mkdir /data/connectivity 0771 system system
    chown system system /data/connectivity

    # Create the directories used by DPM subsystem
    mkdir /data/dpm 0771 system system
    chown system system /data/dpm

    mkdir /data/dpm/fdMgr 0771 system system
    chown system system /data/dpm/fdMgr

    mkdir /data/dpm/nsrm 0771 system system
    chown system system /data/dpm/nsrm

    # Create directory used by audio subsystem
    mkdir /data/misc/audio 0770 audio audio

    # Create directory used by the DASH client
    mkdir /data/misc/dash 0770 media audio

    # Create directory used by display clients
    mkdir /data/misc/display 0770 system graphics

    # 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

    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

    #Create folder for mm-qcamera-daemon
    mkdir /data/camera 0770 media camera

    #Create PERFD deamon related dirs
    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

    # DCT(Display Clock Tunning)	- Interface 2.0
    chown radio system /sys/class/dct/dct_node/data
    chown radio system /sys/class/dct/dct_node/state
    chown radio system /sys/class/dct/dct_node/log
    chown radio system /sys/class/dct/dct_node/enabled
    chown radio system /sys/class/dct/dct_node/interface
    chown radio system /sys/class/dct/dct_node/libname
    chown radio system /sys/class/dct/dct_node/tunned

#service qcomsysd /system/bin/qcom-system-daemon
#    class main
#    user root
#    group root qcom_diag

service ssr_setup /system/bin/ssr_setup
    oneshot
    disabled

service ss_ramdump /system/bin/subsystem_ramdump
    class main
    user system
    group system
    disabled

on property:persist.sys.ssr.restart_level=*
    start ssr_setup

on property:persist.sys.ssr.enable_ramdumps=1
    write /sys/module/subsystem_restart/parameters/enable_ramdumps 1
    start ss_ramdump

on property:persist.sys.ssr.enable_ramdumps=0
    write /sys/module/subsystem_restart/parameters/enable_ramdumps 0

on property:sys.boot_completed=1
    write /dev/kmsg "Boot completed "

on property:persist.radio.atfwd.start=false
    stop atfwd

# corefile limit and ETB enabling
on property:persist.debug.trace=1
    mkdir /data/core 0777 root root
    write /proc/sys/kernel/core_pattern "/data/core/%E.%p.%e"
    write /sys/devices/system/cpu/cpu1/online 1
    write /sys/devices/system/cpu/cpu2/online 1
    write /sys/devices/system/cpu/cpu3/online 1
    write /sys/bus/coresight/devices/coresight-etm0/enable 0
    write /sys/bus/coresight/devices/coresight-etm1/enable 0
    write /sys/bus/coresight/devices/coresight-etm2/enable 0
    write /sys/bus/coresight/devices/coresight-etm3/enable 0
    write /sys/bus/coresight/devices/coresight-etm0/reset 1
    write /sys/bus/coresight/devices/coresight-etm1/reset 1
    write /sys/bus/coresight/devices/coresight-etm2/reset 1
    write /sys/bus/coresight/devices/coresight-etm3/reset 1
    write /sys/bus/coresight/devices/coresight-etm0/enable 1
    write /sys/bus/coresight/devices/coresight-etm1/enable 1
    write /sys/bus/coresight/devices/coresight-etm2/enable 1
    write /sys/bus/coresight/devices/coresight-etm3/enable 1
    write /sys/module/coresight_event/parameters/event_abort_enable 1

on property:init.svc.wpa_supplicant=stopped
    stop dhcpcd

on property:bluetooth.isEnabled=true
    start btwlancoex
    write /sys/class/bluetooth/hci0/idle_timeout 7000

on property:bluetooth.sap.status=running
    start bt-sap

on property:bluetooth.sap.status=stopped
    stop bt-sap

on property:bluetooth.dun.status=running
    start bt-dun

on property:bluetooth.dun.status=stopped
    stop bt-dun

on property:ro.bluetooth.ftm_enabled=true
    start ftmd

on property:bluetooth.startbtsnoop=true
    start btsnoop

on property:bluetooth.startbtsnoop=false
    stop btsnoop

service qcom-c_core-sh /system/bin/sh /init.qcom.class_core.sh
    class core
    user root
    oneshot

service qcom-c_main-sh /system/bin/sh /init.class_main.sh
    class main
    user root
    oneshot

on property:vold.decrypt=trigger_restart_framework
    start qcom-c_main-sh
    start config_bluetooth
    start wcnss-service

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
    disabled

service rfs_access /system/bin/rfs_access
   class core
   user root
   group system net_raw

on property:wc_transport.start_hci=true
    start start_hci_filter

on property:wc_transport.start_hci=false
    stop start_hci_filter

service config_bluetooth /system/bin/sh /system/etc/init.qcom.bt.sh "onboot"
    class core
    user root
    oneshot

service hciattach /system/bin/sh /system/etc/init.qcom.bt.sh
    class late_start
    user bluetooth
    group bluetooth net_bt_admin net_bt_stack
    disabled
    oneshot

on property:bluetooth.hciattach=true
    start hciattach

on property:bluetooth.hciattach=false
    setprop bluetooth.status off

service hciattach_ath3k /system/bin/sh /system/etc/init.ath3k.bt.sh
     class late_start
     user bluetooth
     group system bluetooth net_bt_admin misc
     disabled
     oneshot

service bt-dun /system/bin/dun-server /dev/smd7 /dev/rfcomm0
    class late_start
    user bluetooth
    group bluetooth net_bt_admin inet
    disabled
    oneshot

service bt-sap /system/bin/sapd 15
    user bluetooth
    group bluetooth net_bt_admin
    class late_start
    disabled
    oneshot

service ftmd /system/bin/logwrapper /system/bin/ftmdaemon
    class late_start
    user root
    group bluetooth net_bt_admin misc net_bt_stack qcom_diag
    disabled
    oneshot

service bridgemgrd /system/bin/bridgemgrd
    class late_start
    user radio
    group radio qcom_diag
    disabled

service port-bridge /system/bin/port-bridge /dev/mhi_pipe_32 /dev/ttyGS0
    class main
    user radio system
    group radio system inet
    disabled

service qmiproxy /system/bin/qmiproxy
    class main
    user radio
    group radio qcom_diag
    disabled

# 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
    disabled

service netmgrd /system/bin/netmgrd
    class main
    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 btwlancoex /system/bin/sh /system/etc/init.qcom.coex.sh
    class late_start
    user bluetooth
    group bluetooth net_bt_admin inet net_admin net_raw
    disabled
    oneshot

service p2p_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 -N \
    -ip2p0 -Dnl80211 -c/data/misc/wifi/p2p_supplicant.conf \
    -I/system/etc/wifi/p2p_supplicant_overlay.conf \
    -puse_p2p_group_interface=1 -puse_multi_chan_concurrent=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 -g@android:wpa_wlan0 \
    -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf -e/data/misc/wifi/entropy.bin
    #   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 olsrd /system/bin/olsrd -f /etc/wifi/olsrd.conf
    class main
    disabled
    oneshot

service dhcpcd_wlan0 /system/bin/dhcpcd -ABKL
    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 ptt_socket_app /system/bin/ptt_socket_app -d
    class main
    user root
    group root
    disabled
    oneshot

service ptt_ffbm /system/bin/ptt_socket_app -f -d
    user root
    group root
    disabled
    oneshot

service ftm_ffbm /system/bin/ftmdaemon
    user root
    group root
    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

#for WiFi MFG(TestMode)
service mfgloader /system/bin/mfgloader
    class main
    disabled
    oneshot

service wlandutservice /system/bin/wlandutservice
    class main
    user system
    group wifi net_raw net_admin system inet
    disabled
    oneshot

service macloader /system/bin/macloader
    class main
    oneshot

on property:init.svc.macloader=stopped
    chown system root /data/.cid.info
    chmod 0664 /data/.cid.info
    chown system root /data/.rev
    chmod 0664 /data/.rev
# end of wifi


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 fm_dl /system/bin/sh /system/etc/init.qcom.fm.sh
    class late_start
    user root
    group system
    disabled
    oneshot

on property:crypto.driver.load=1
     insmod /system/lib/modules/qce.ko
     insmod /system/lib/modules/qcedev.ko

service qcom-sh /system/bin/sh /init.qcom.sh
    class late_start
    user root
    oneshot

service qcom-post-boot /system/bin/sh /system/etc/init.qcom.post_boot.sh
    class late_start
    user root
    disabled
    oneshot

service wifi-sdio-on /system/bin/sh /system/etc/init.qcom.sdio.sh
    class late_start
    group wifi inet
    disabled
    oneshot

service wifi-crda /system/bin/sh /system/etc/init.crda.sh
   class late_start
   user root
   disabled
   oneshot

service config-zram /system/bin/sh /system/etc/init.qcom.zram.sh
   class late_start
   user root
   disabled
   oneshot

on property:sys.boot_completed=1
    start qcom-post-boot
    start config-zram

service atfwd /system/bin/ATFWD-daemon
    class late_start
    user system
    group system radio

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

#
# start multiple rilds based on multisim property
#
on property:ro.multisim.simslotcount=2
    stop ril-daemon
    start ril-daemon
    start ril-daemon1

on property:persist.radio.multisim.config=dsds
    stop ril-daemon
    start ril-daemon
    start ril-daemon1

on property:persist.radio.multisim.config=dsda
    stop ril-daemon
    start ril-daemon
    start ril-daemon1

#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
#    disabled
#    group radio cache inet misc audio sdcard_r sdcard_rw diag qcom_diag log

#service ril-daemon3 /system/bin/rild -c 3
#    class main
#    socket rild3 stream 660 root radio
#    socket rild-debug3 stream 660 radio system
#    user root
#    disabled
#    group radio cache inet misc audio sdcard_r sdcard_rw diag qcom_diag log

service usb_uicc_enable /system/bin/sh /system/etc/init.qcom.uicc.sh
    class late_start
    user root
    disabled
    oneshot

service usb_uicc_daemon /system/bin/usb_uicc_client
    class main
    user system
    group system log net_raw
    oneshot

on property:sys.usb_uicc.enabled=1
    start usb_uicc_enable

on property:sys.usb_uicc.enabled=0
    start usb_uicc_enable

# virtual sdcard daemon running as media_rw (1023)
service sdcard /system/bin/sdcard -u 1023 -g 1023 -l /data/media /mnt/shell/emulated
    class late_start

service fuse_sdcard1 /system/bin/sdcard -u 1023 -g 1023 -w 1023 -d /mnt/media_rw/sdcard1 /storage/sdcard1
    class late_start
    disabled

service fuse_uicc0 /system/bin/sdcard -u 1023 -g 1023 -w 1023 -d /mnt/media_rw/uicc0 /storage/uicc0
    class late_start

service fuse_uicc1 /system/bin/sdcard -u 1023 -g 1023 -w 1023 -d /mnt/media_rw/uicc1 /storage/uicc1
    class late_start
    disabled

service fuse_usbotg /system/bin/sdcard -u 1023 -g 1023 -w 1023 -d /mnt/media_rw/usbotg /storage/usbotg
    class late_start
    disabled

# Binding fuse mount point to /storage/emulated/legacy
on property:init.svc.sdcard=running
    wait /mnt/shell/emulated/0
    mount none /mnt/shell/emulated/0 /storage/emulated/legacy bind


service charger /charger
    class charger

service ssr_diag /system/bin/ssr_diag
    class late_start
    user system
    group system
    disabled

# Define fastmmi
service fastmmi /system/bin/mmi
    user root
    group root
    disabled

service fastmmisrv /system/bin/sh /init.qcom.factory.sh
    user root
    disabled
    oneshot

on mmi
    start fastmmisrv

on ffbm
    trigger early-fs
    trigger fs
    trigger post-fs
    trigger post-fs-data

    # Load properties from /system/ + /factory after fs mount. Place
    # this in another action so that the load will be scheduled after the prior
    # issued fs triggers have completed.
    trigger load_all_props_action

    trigger early-boot
    trigger mmi

service qbcharger /charger -m 1
    disabled
    oneshot

on property:sys.qbcharger.enable=true
    start qbcharger

on property:sys.qbcharger.enable=false
    stop qbcharger

service diag_mdlog_start /system/bin/diag_mdlog
    class late_start
    user shell
    group system qcom_diag sdcard_rw sdcard_r media_rw
    disabled
    oneshot

service diag_mdlog_stop /system/bin/diag_mdlog -k
    class late_start
    user shell
    group system qcom_diag sdcard_rw sdcard_r media_rw
    disabled
    oneshot

service bms-sh /system/bin/sh /init.qcom.bms.sh
    class core
    user root
    oneshot

service vm_bms /system/bin/vm_bms
    user root
    group root
    disabled

service msm_irqbalance /system/bin/msm_irqbalance -f /system/vendor/etc/msm_irqbalance.conf
    class core
    user root
    group root
    disabled

# Change IO scheduler to CFQ after boot_complete
on property:sys.boot_completed=1
    write /sys/block/mmcblk0/queue/scheduler cfq


# umount service
service umount_service /system/bin/umount /preload
     disabled
     oneshot

# Support Preload install apks
on property:persist.sys.storage_preload=1
    mount ext4 /dev/block/bootdevice/by-name/hidden /preload nosuid nodev ro barrier=1
    setprop storage.preload.complete 1

on property:persist.sys.storage_preload=0
    start umount_service

