#
# Copyright 2014 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

import init.shamu.usb.rc
import init.shamu.power.rc
import init.shamu.diag.rc

on early-init
    mkdir /firmware 0771 system system
    symlink /data/tombstones /tombstones
    mount debugfs debugfs /sys/kernel/debug
    chown system system /sys/kernel/debug/kgsl/proc

on init
    # 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 /oem 0550 root root

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

    export EXTERNAL_STORAGE /storage/emulated/legacy
    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 fs
    mount_all fstab.shamu
    setprop ro.crypto.fuse_sdcard true

    # Keeping following partitions outside fstab file. As user may not have
    # these partition flashed on the device. Failure to mount any partition in fstab file
    # results in failure to launch late-start class.
    wait /dev/block/platform/msm_sdcc.1/by-name/oem
    mount ext4 /dev/block/platform/msm_sdcc.1/by-name/oem /oem ro nosuid nodev context=u:object_r:oemfs:s0

    mkdir /fsg 0755 root root
    mount ext4 /dev/block/platform/msm_sdcc.1/by-name/mdm1m9kefs3 /fsg ro nosuid nodev barrier=0 context=u:object_r:fsg_file:s0

    restorecon_recursive /persist
    mkdir /persist/data 0700 system system
    mkdir /persist/data/sfs 0700 system system
    mkdir /persist/data/tz 0700 system system
    mkdir /persist/public 0755 system radio
    mkdir /persist/public/hiddenmenu 0775 system radio
    mkdir /persist/public/hiddenmenu/data 0775 system radio

    # Enable rmnet data and aggregation
    setprop persist.rmnet.mux enabled
    setprop persist.rmnet.data.enable true
    setprop persist.data.wda.enable true
    setprop persist.data.df.agg.dl_pkt 10
    setprop persist.data.df.agg.dl_size 4096

on post-fs-data
    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

    # SENSORS
    #Create directory used by sensor subsystem(dsps)
    mkdir /data/system/sensors
    chmod 0775 /data/system/sensors

    # AKM setting data
    mkdir /data/misc/sensors
    chmod 0775 /data/misc/sensors

    mkdir /persist/sensors
    chmod 0775 /persist/sensors

    mkdir /persist/mdm 0770 radio radio

    #Subsystem RAM-dumps
    mkdir /data/ss-ram-dumps 0750 radio log
    mkdir /data/ss-ram-dumps/bp-dumps 0750 radio log

    # rild files
    mkdir /data/misc/audio_cutback 0770 radio audio

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/kernel/boot_adsp/boot 1

    # Subsytem Restart
    #venus
    write /sys/bus/msm_subsys/devices/subsys0/restart_level "related"
    write /sys/bus/msm_subsys/devices/subsys0/recovery_policy "skip_restart"
    #adsp
    write /sys/bus/msm_subsys/devices/subsys1/restart_level "related"
    write /sys/bus/msm_subsys/devices/subsys1/recovery_policy "skip_restart"
    #vpu
    write /sys/bus/msm_subsys/devices/subsys2/restart_level "related"
    write /sys/bus/msm_subsys/devices/subsys2/recovery_policy "skip_restart"
    #esoc0 (mdm)
    write /sys/bus/msm_subsys/devices/subsys3/restart_level "related"
    write /sys/bus/msm_subsys/devices/subsys3/recovery_policy "skip_restart"

on boot
    insmod /system/lib/modules/adsprpc.ko
    insmod /system/lib/modules/mhi.ko
    chown bluetooth net_bt_stack /sys/module/bluetooth_power/parameters/power
    chown bluetooth net_bt_stack /sys/class/rfkill/rfkill0/type
    chown bluetooth net_bt_stack /sys/class/rfkill/rfkill0/state
    chown bluetooth net_bt_stack /proc/bluetooth/sleep/proto
    chown bluetooth net_bt_stack /proc/bluetooth/sleep/lpm
    chown bluetooth net_bt_stack /proc/bluetooth/sleep/btwrite
    chown bluetooth net_bt_stack /sys/module/hci_uart/parameters/ath_lpm
    chown bluetooth net_bt_stack /sys/module/hci_uart/parameters/ath_btwrite
    chown system system /sys/module/sco/parameters/disable_esco
    chown bluetooth net_bt_stack /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 net_bt_stack /sys/devices/platform/msm_serial_hs.0/clock
    chmod 0660 /sys/devices/platform/msm_serial_hs.0/clock

    chmod 0660 /dev/ttyHS2
    chown bluetooth net_bt_stack /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

    mkdir /dev/socket/mpdecision 2775 root system
    chmod 2775 /dev/socket/mpdecision

    setprop wifi.interface wlan0

    #readable symlinks for video nodes
    mkdir /dev/video
    symlink /dev/video32 /dev/video/venus_dec
    symlink /dev/video33 /dev/video/venus_enc

    setprop ro.telephony.call_ring.multiple false

    chown system system /sys/bus/i2c/devices/1-004a/tsp

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

    # Allow QMUX daemon to assign port open wait time
    chown radio radio /sys/devices/virtual/hsicctl/hsicctl0/modem_wait

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

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

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

    write /sys/bus/platform/drivers/xhci_msm_hsic/unbind msm_hsic_host
    write /sys/module/rmnet_usb/parameters/mux_enabled 1
    write /sys/module/rmnet_usb/parameters/no_fwd_rmnet_links 8
    write /sys/module/rmnet_usb/parameters/no_rmnet_insts_per_dev 17
    write /sys/module/rmnet_usb/parameters/rmnet_data_init 1
    chown radio radio /sys/devices/virtual/hsicctl/hsicctl0/modem_wait

    # Audio DSP permissions
    chown media media /dev/ttyHS3
    chown media media /sys/devices/c55_ctrl/gpio_ap_int/edge
    chown media media /sys/devices/c55_ctrl/gpio_ap_int/value
    chown media media /sys/devices/c55_ctrl/gpio_c55_int/value
    chown media media /sys/devices/c55_ctrl/gpio_core/value
    chown media media /sys/devices/c55_ctrl/gpio_reset/value

# subsystem ramdump collection
on property:persist.sys.qc.sub.rdump.on=*
    write /sys/module/subsystem_restart/parameters/enable_ramdumps ${persist.sys.qc.sub.rdump.on}

# permissions for CapSense firmware update
    chown radio radio /sys/devices/cycapsense_prog.1/cycapsense_fw
    chmod 0220 /sys/devices/cycapsense_prog.1/cycapsense_fw

# 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 0770 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
    chown dhcp dhcp /data/misc/dhcp

    # Create the directories used by CnE subsystem
    mkdir /data/connectivity 0771 system system
    chown system system /data/connectivity

    mkdir /data/connectivity/nsrm 0771 system system
    chown system system /data/connectivity/nsrm

    # 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

    #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 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
    mkdir /data/misc/location/xtwifi 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

    # NFC local data and nfcee xml storage
    mkdir /data/nfc 0770 nfc nfc
    mkdir /data/nfc/param 0770 nfc nfc

    # Audio DSP permissions
    mkdir /data/adspd 0770 media media
    mkdir /data/adspd/1 0770 media media

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:ro.bluetooth.ftm_enabled=true
    start ftmd

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 mdm_helper /system/bin/mdm_helper
    user root
    group root system radio
    class core
    onrestart setprop ro.service.mdm_helper_restarted "true"

service tcmd /system/bin/tcmd_mini
    class core
    user radio
    group radio net_raw net_admin
    disabled

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

# 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

service netmgrd /system/bin/netmgrd
    class main
    group radio

service sensors /system/bin/sensors.qcom
    class core
    user root
    group root

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 \
    -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \
    -I/system/etc/wifi/p2p_supplicant_overlay.conf  \
    -puse_p2p_group_interface=1p2p_device=1 \
    -m/data/misc/wifi/p2p_supplicant.conf \
    -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 \
    -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 adspd /system/bin/adspd /dev/ttyHS3
   class late_start
   socket adspdsock stream 0660 media media
   user media
   group media input

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

on property:ro.debuggable=1
    start ss_ramdump

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

# 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

on charger
    write /sys/class/leds/lcd-backlight/brightness 100
    mount ext4 /dev/block/platform/msm_sdcc.1/by-name/system /system ro barrier=1
    start thermal-engine

service charger /charger
    class charger
    group log
    seclabel u:r:healthd:s0

# 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 mpdecision /system/bin/mpdecision --avg_comp
   class main
   user root

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

service thermal-engine /system/bin/thermal-engine
   class main
   user root
   group root

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

on property:init.svc.bootanim=stopped
    start usf-post-boot

service qcamerasvr /system/bin/mm-qcamera-daemon
    class late_start
    user camera
    group camera system inet input graphics

service bdAddrLoader /system/bin/bdAddrLoader -p ro.boot.btmacaddr -s -x
    class main
    user bluetooth
    group system bluetooth
    oneshot

on property:vold.decrypt=trigger_reset_main
    stop gnss-svcd

# When QCA1530 is known not to present
on property:persist.qca1530=no
   stop gnss-svcd
   stop gnss-detect
   write /sys/kernel/qca1530/chip_state 0

on property:init.svc.surfaceflinger=stopped
    stop ppd

service mmi-touch-sh /system/bin/sh /init.mmi.touch.sh atmel
    class main
    user root
    oneshot

# bugreport is triggered by holding down volume down, volume up and power
service bugreport /system/bin/dumpstate -d -p -B \
        -o /data/data/com.android.shell/files/bugreports/bugreport
    class main
    disabled
    oneshot
    keycodes 114 115 116

service mdm_helper_proxy /system/bin/mdm_helper_proxy
    class core
    user system
    group system
    disabled

# Stop mdm_helper_proxy in case of shutdown
on property:sys.shutdown.requested=*
    stop mdm_helper_proxy

# Start mdm_helper_proxy after RIL.
on property:ro.mdm_helper_proxy_req=true
    start mdm_helper_proxy

on property:init.svc.ril-daemon=running
    setprop ro.mdm_helper_proxy_req true

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