# Copyright (c) 2009-2012, Code Aurora Forum. 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 Code Aurora 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.mako.usb.rc

on early-init
    # for backwards compatibility
    export EXTERNAL_STORAGE /storage/sdcard0
    mkdir /storage 0050 system sdcard_r
    mkdir /storage/sdcard0 0000 system system
    symlink /storage/sdcard0 /sdcard
    symlink /storage/sdcard0 /mnt/sdcard

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

on fs

    mount_all ./fstab.mako

    # TODO: Move the following mount commands into the fstab. /system has
    #       been moved to the fstab but is probably missing some options
    #       to run a fsck.
    # wait /dev/block/platform/msm_sdcc.1/by-name/system
    # chmod 0777 /sbin/e2fsck_static
    # exec /sbin/e2fsck_static -y /dev/block/platform/msm_sdcc.1/by-name/system
    # mount ext4 /dev/block/platform/msm_sdcc.1/by-name/system /system ro barrier=1

    #userdata
    wait /dev/block/platform/msm_sdcc.1/by-name/userdata
    exec /system/bin/e2fsck -y /dev/block/platform/msm_sdcc.1/by-name/userdata
    mount ext4 /dev/block/platform/msm_sdcc.1/by-name/userdata /data nosuid nodev barrier=1 data=ordered noauto_da_alloc

    #persist
    mkdir /persist 0771 system system
    wait /dev/block/platform/msm_sdcc.1/by-name/persist
    exec /system/bin/e2fsck -y /dev/block/platform/msm_sdcc.1/by-name/persist
    mount ext4 /dev/block/platform/msm_sdcc.1/by-name/persist /persist nosuid nodev barrier=1 data=ordered nodelalloc

    #modem firmware files
    mkdir /firmware 0771 system system
    wait /dev/block/platform/msm_sdcc.1/by-name/modem
    mount vfat /dev/block/platform/msm_sdcc.1/by-name/modem /firmware ro dmask=177 fmask=177

    #cache
    wait /dev/block/platform/msm_sdcc.1/by-name/cache
    exec /system/bin/e2fsck -y /dev/block/platform/msm_sdcc.1/by-name/cache
    mount ext4 /dev/block/platform/msm_sdcc.1/by-name/cache /cache nosuid nodev barrier=1 data=ordered

    #persist-lg
    mkdir /persist-lg 0771 system system
    wait /dev/block/platform/msm_sdcc.1/by-name/drm
    exec /system/bin/e2fsck -y /dev/block/platform/msm_sdcc.1/by-name/drm
    mount ext4 /dev/block/platform/msm_sdcc.1/by-name/drm /persist-lg nosuid nodev barrier=1 data=ordered

    #mpt
    mkdir /mpt 0775 system system
    wait /dev/block/platform/msm_sdcc.1/by-name/mpt
    exec /system/bin/e2fsck -y /dev/block/platform/msm_sdcc.1/by-name/mpt
    mount ext4 /dev/block/platform/msm_sdcc.1/by-name/mpt /mpt nosuid nodev barrier=1 data=ordered

    #factory
    mkdir /factory 0775 system system
    wait /dev/block/platform/msm_sdcc.1/by-name/factory
    exec /system/bin/e2fsck -y /dev/block/platform/msm_sdcc.1/by-name/factory
    mount ext4 /dev/block/platform/msm_sdcc.1/by-name/factory /factory nosuid nodev barrier=1 data=ordered
	chmod 0775 /factory
	chown system system /factory

    #sns
    mkdir /sns 0775 system system
    wait /dev/block/platform/msm_sdcc.1/by-name/sns
    exec /system/bin/e2fsck -y /dev/block/platform/msm_sdcc.1/by-name/sns
    mount ext4 /dev/block/platform/msm_sdcc.1/by-name/sns /sns nosuid nodev barrier=1 data=ordered
    mkdir /sns/cal 0771 system system

    setprop ro.crypto.fuse_sdcard true

on early-boot
    # set RLIMIT_MEMLOCK to 64MB
    setrlimit 8 67108864 67108864

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 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 0666 /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 /dev/ttyHS0
    chown bluetooth bluetooth /sys/devices/platform/msm_serial_hs.0/clock
    chmod 0660 /sys/devices/platform/msm_serial_hs.0/clock

    #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
    # Allow QMUX daemon to assign port open wait time
    chown radio radio /sys/devices/virtual/hsicctl/hsicctl0/modem_wait

    setprop wifi.interface wlan0

    # Enable Bluetooth 802.11 PAL when Bluetooth is turned on
    setprop ro.config.bt.amp no

    #Set SUID bit for usbhub
    chmod 4755 /system/bin/usbhub
    chmod 755 /system/bin/usbhub_init

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

    #port-bridge
    chmod 0660 /dev/smd0
    chown system system /dev/smd0

    #BT DUN port-bridge
    chmod 0660 /dev/smd7
    chown bluetooth bluetooth /dev/smd7

    chmod 0444 /sys/devices/platform/msm_hsusb/gadget/usb_state

    # create symlink for fb1 as HDMI
    symlink /dev/graphics/fb1 /dev/graphics/hdmi

    # Remove write permissions to video related nodes
    chmod 0664 /sys/devices/virtual/graphics/fb1/hpd
    chmod 0664 /sys/devices/virtual/graphics/fb1/video_mode
    chmod 0664 /sys/devices/virtual/graphics/fb1/format_3d

    # Change owner and group for media server and surface flinger
    chown system system /sys/devices/virtual/graphics/fb1/format_3d

    #For bridgemgr daemon to inform the USB driver of the correct transport
    chown radio radio /sys/class/android_usb/f_rmnet_smd_sdio/transport

    chmod 660 /dev/rtc0
    chown system system /dev/rtc0

    chown root system /proc/net/ip_conntrack


    #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 /sys/class/leds/lcd-backlight/brightness 255

# import cne init file
on post-fs
    export_rc /persist/init.cne.rc

# msm specific files that need to be created on /data
on post-fs-data
    # we will remap this as /mnt/sdcard with the sdcard fuse tool
    mkdir /data/media 0775 media_rw media_rw
    chown media_rw media_rw /data/media

    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
# to observe dnsmasq.leases file for dhcp information of soft ap.
    chown dhcp system /data/misc/dhcp

    write /dev/wcnss_wlan 1

    # Create directory used by audio subsystem
    mkdir /data/misc/audio 0770 audio 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

    # Mobile DM Router
    chmod 0660 /dev/lge_dm_tty0
    chown system system /dev/lge_dm_tty0

    #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 wiper services
    mkdir /data/wpstiles/ 0755 shell
    mkdir /data/wiper 0755 location qcom_oncrpc

    #Create directories for gpsone_daemon services
    mkdir /data/misc/gpsone_d 0770 system gps

    #Create directories for QuIPS
    mkdir /data/misc/quipc 0770 gps system

    #Create directories for Location services
    mkdir /data/misc/location 0770 gps gps
    mkdir /data/misc/location/mq 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

    #Provide the access to hostapd.conf only to root and group
    chmod 0660 /data/hostapd/hostapd.conf

    # Create /data/time folder for time-services
    mkdir /data/time/ 0700 system system

    mkdir /data/audio 0770 media audio
    # Enable the setgid bit on the directory
    chmod 2770 /data/audio

    mkdir /data/bluetooth 0770 bluetooth bluetooth
    # Enable the setgid bit on the directory
    chmod 2770 /data/bluetooth

    mkdir /data/logger 0775 system system
    exec /system/bin/smpl_count

    mkdir /data/qcks 0770 system system
    setprop vold.post_fs_data_done 1

# Export GPIO56 for fusion targets to enable/disable hub
service usbhub_init /system/bin/usbhub_init
   class late_start
   user root
   disabled
   oneshot

on property:ro.board.platform=msm7630_fusion
    start usbhub_init

on property:init.svc.wpa_supplicant=stopped
    stop dhcpcd
    
on property:bluetooth.isEnabled=true
    start btwlancoex
    start amp_load
    write /sys/class/bluetooth/hci0/idle_timeout 7000

on property:bluetooth.isEnabled=false
    start amp_unload
    stop btwlancoex

service cnd /system/bin/cnd
    class late_start
    socket cnd stream 666 root radio

service rmt_storage /system/bin/rmt_storage
    class main
    user root

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

service bridgemgrd /system/bin/bridgemgrd
    class main
    user radio
    group radio

# QMUX must be in multiple groups to support external process connections
service qmuxd /system/bin/qmuxd
    class main
    user radio
    group radio audio bluetooth

service kickstart /system/bin/qcks -i /firmware/image/
    class main
    oneshot

service netmgrd /system/bin/netmgrd
    class main


service sensors /system/bin/sensors.qcom
    class late_start
    user root
    group root
    disabled

service amp_init /system/bin/amploader -i
    class late_start
    user root
    disabled
    oneshot

service amp_load /system/bin/amploader -l 7000
    class late_start
    user root
    disabled
    oneshot

service amp_unload /system/bin/amploader -u
    class late_start
    user root
    disabled
    oneshot

service wpa_supplicant /system/bin/wpa_supplicant \
	-Dnl80211 -iwlan0 -c/system/etc/wifi/wpa_supplicant.conf \
	-C/data/misc/wifi/sockets -ddd
    class main
    group wifi inet
    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 p2p
    class late_start
    disabled
    oneshot

service dhcpcd_bnep0 /system/bin/dhcpcd -BKLG
    disabled
    oneshot

service wiperiface /system/bin/wiperiface
    user location
    group qcom_oncrpc
    oneshot

service gpsone_daemon /system/bin/gpsone_daemon
    class late_start
    user gps
    group gps qcom_oncrpc inet
    disabled

service quipc_igsn /system/bin/quipc_igsn
    class late_start
    user gps
    group inet gps
    disabled

service quipc_main /system/bin/quipc_main
    class late_start
    user gps
    group net_admin wifi inet gps
    disabled

service fm_dl /system/bin/sh /system/etc/init.qcom.fm.sh
    class late_start
    user root
    group system qcom_oncrpc
    disabled
    oneshot

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

on property:crypto.driver.load=0
     exec /system/bin/rmmod qcedev.ko
     exec /system/bin/rmmod qce.ko

service drmdiag /system/bin/drmdiagapp
    class late_start
     user root
     disabled
     oneshot

on property:drmdiag.load=1
    start drmdiag

on property:drmdiag.load=0
    stop drmdiag

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 qcom-wifi /system/bin/sh /system/etc/init.qcom.wifi.sh
    class late_start
    oneshot

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

service atfwd /system/bin/ATFWD-daemon
    class late_start
    user system
    group system radio
    onrestart /system/bin/log -t RIL-ATFWD -p w "ATFWD daemon restarted"

service hdmid /system/bin/hdmid
    class late_start
    socket hdmid stream 0660 root system graphics
    disabled

service ppd /system/bin/mm-pp-daemon
    class late_start
    user system
    socket pps stream 0660 system system graphics
    group system graphics

service hostapd /system/bin/hostapd -dddd /data/hostapd/hostapd.conf
    class late_start
    user root
    group root
    oneshot
    disabled

service ds_fmc_appd /system/bin/ds_fmc_appd -p "rmnet0" -D
    class late_start
    group radio wifi inet
    disabled
    oneshot

on property:persist.data.ds_fmc_app.mode=1
    start ds_fmc_appd

service ims_regmanager /system/bin/exe-ims-regmanagerprocessnative
    class late_start
    user system
    group qcom_oncrpc net_bt_admin inet radio wifi
    disabled

on property:persist.ims.regmanager.mode=1
    start ims_regmanager

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  1

service time_daemon /system/bin/time_daemon
    class late_start
    user root
    group root
    oneshot
    disabled

on property:persist.timed.enable=true
    start time_daemon

service battery_monitor /system/bin/battery_monitor
    user system
    group system
    disabled

service ril-daemon1 /system/bin/rild -c 1
    class late_start
    socket rild1 stream 660 root radio
    socket rild-debug1 stream 660 radio system
    user root
    disabled
    group radio cache inet misc audio sdcard_rw qcom_oncrpc diag

service profiler_daemon /system/bin/profiler_daemon
    class late_start
    user root
    group root
    disabled

service hcidump /system/bin/sh /system/etc/hcidump.sh
    user bluetooth
    group bluetooth system net_bt_admin net_admin
    disabled
    oneshot

service charger /charger
    class charger

service wlan-on-off /system/bin/sh /system/etc/init.wlan-on-off.sh
    class late_start
    user root
    disabled
    oneshot

# Workaround to resolve WCNSS power problem in Kernel Mode booting
on property:init.svc.qcom-wifi=stopped
    start wlan-on-off

on property:persist.service.fakebatt=1
    write /sys/devices/platform/msm_ssbi.0/pm8921-core/pm8921-charger/power_supply/battery/pseudo_batt "1 1 100 40 4100 80 1"

on property:persist.service.fakebatt=0
    write /sys/devices/platform/msm_ssbi.0/pm8921-core/pm8921-charger/power_supply/battery/pseudo_batt "0 1 100 40 4100 80 1"
 
# TouchSense Player Service
service immvibed /system/bin/immvibed
    class main
    user root
    group root
    oneshot

# create virtual SD card at /storage/sdcard0, based on the /data/media directory
# daemon will drop to user/group system/media_rw after initializing
# underlying files in /data/media will be created with user and group media_rw (1023)
service sdcard /system/bin/sdcard /data/media 1023 1023
    class late_start

# Create ext4 filesystems when the partitions are empty or corrupted.
service setup_fs /system/bin/setup_fs \
    /dev/block/platform/msm_sdcc.1/by-name/userdata \
    /dev/block/platform/msm_sdcc.1/by-name/cache
    class core
    user root
    group root
    oneshot
