import init.stingray.usb.rc

on early-init
    mount debugfs debugfs /sys/kernel/debug

    # EXTERNAL_STORAGE and SECONDARY_STORAGE are needed for sqlite3 _DELETE_FILE trigger
    export EXTERNAL_STORAGE /mnt/sdcard
    export SECONDARY_STORAGE /mnt/external1
    mkdir /mnt/sdcard 0000 system system
    # for backwards compatibility
    symlink /mnt/sdcard /sdcard
    mkdir /pds 0777 system system
    mkdir /mnt/external1 0000 system system

on fs
    mount ext4 /dev/block/platform/sdhci-tegra.3/by-name/system /system wait ro
    setprop ro.crypto.tmpfs_options size=128m,mode=0771,uid=1000,gid=1000
    mount ext4 /dev/block/platform/sdhci-tegra.3/by-name/userdata /data wait noatime nosuid nodev nomblk_io_submit
    mount ext4 /dev/block/platform/sdhci-tegra.3/by-name/cache /cache wait noatime nosuid nodev nomblk_io_submit
    mount ext2 /dev/block/platform/sdhci-tegra.3/by-name/pdsb /pds wait ro
    setprop ro.crypto.fuse_sdcard true

on post-fs-data
    mkdir /data/misc/wifi 0770 wifi wifi
    mkdir /data/misc/wifi/sockets 0770 wifi wifi
    mkdir /data/misc/dhcp 0770 dhcp dhcp
    chown dhcp dhcp /data/misc/dhcp

    mkdir /data/tpapi 0771 system system
    mkdir /data/tpapi/etc 0771 system system
    mkdir /data/tpapi/etc/tpa 0771 system system
    mkdir /data/tpapi/etc/tpa/persistent 0771 system system
    chown system system /data/tpapi/etc/tpa/mmap_vars.dat
    chmod 0660 /data/tpapi/etc/tpa/mmap_vars.dat
    chown system system /data/tpapi/etc/tpa/keymgr.lock
    chmod 0660 /data/tpapi/etc/tpa/keymgr.lock
    chown system system /data/tpapi/etc/tpa/persistent/keymaptable.lock
    chmod 0660 /data/tpapi/etc/tpa/persistent/keymaptable.lock
    chown system system /data/tpapi/etc/tpa/persistent/keyring.lock
    chmod 0660 /data/tpapi/etc/tpa/persistent/keyring.lock
    chown system system /data/tpapi/etc/tpa/persistent/iprm.lock
    chmod 0660 /data/tpapi/etc/tpa/persistent/iprm.lock

    # cleanup obsolete symlink hack that may be lying around
    rm /data/misc/ril

    # 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

    # GPS
    #Create location directory, BRCM guci library stores LTO file and read/write
    # config file.
    mkdir /data/location 0770 radio radio

    # Set indication (checked by vold) that we have finished this action
    setprop vold.post_fs_data_done 1

on boot
# bluetooth
    # power up/down interface
    chown bluetooth bluetooth /sys/class/rfkill/rfkill0/type
    chown bluetooth bluetooth /sys/class/rfkill/rfkill0/state
    chmod 0660                /sys/class/rfkill/rfkill0/state

    # UART device
    chown bluetooth bluetooth /dev/ttyHS2
    chmod 0660                /dev/ttyHS2

    # bluetooth MAC address programming
    chown bluetooth bluetooth /sys/module/board_stingray/parameters/bdaddr
    setprop ro.bt.bdaddr_path /sys/module/board_stingray/parameters/bdaddr

# Sensor
    chown compass compass /dev/kxtf9
    chmod 660 /dev/kxtf9
    chown compass compass /dev/max9635
    chmod 660 /dev/max9635
    chown compass compass /dev/bmp085
    chmod 660 /dev/bmp085
    chown compass compass /dev/l3g4200d
    chmod 660 /dev/l3g4200d
    chown compass compass /dev/akm8975_dev
    chmod 660 /dev/akm8975_dev
    chown compass compass /dev/akm8975_aot
    chmod 660 /dev/akm8975_aot

# light
    chown system system /sys/class/leds/notification-led/brightness
    chmod 660 /sys/class/leds/notification-led/brightness
    chown system system /sys/class/leds/notification-led/blink
    chmod 660 /sys/class/leds/notification-led/blink

    chmod 666 /dev/nvhost-ctrl
    chmod 666 /dev/nvhost-display
    chmod 666 /dev/nvhost-dsi
    chmod 666 /dev/nvhost-gr2d
    chmod 666 /dev/nvhost-gr3d
    chmod 666 /dev/nvhost-isp
    chmod 666 /dev/nvhost-mpe
    chmod 666 /dev/nvhost-vi

# Camera
    chown media camera /sys/class/leds/privacy-led/brightness
    chown media camera /sys/class/leds/flash/brightness
    chown media camera /sys/class/leds/torch/brightness
    chmod 660 /sys/class/leds/privacy-led/brightness
    chmod 660 /sys/class/leds/flash/brightness
    chmod 660 /sys/class/leds/torch/brightness

# UART Device
    chown radio radio /dev/ttyHS4
    chmod 640 /dev/ttyHS4

# broadcom 4750 device
    chown radio radio /dev/gps_brcm4750
    chmod 660 /dev/gps_brcm4750

# Whisper UART Device
    chown radio radio /dev/ttyHS0
    chmod 640 /dev/ttyHS0

# Whisper audio settings
    chown media media /sys/class/switch/dock/dock_prop
    chmod 660 /sys/class/switch/dock/dock_prop

# Modem Control CDMA
    chown radio radio /sys/class/radio/mdm6600/command
    chmod 220 /sys/class/radio/mdm6600/command
    chown radio radio /sys/bus/usb/devices/usb2/power/control
    chmod 660 /sys/bus/usb/devices/usb2/power/control

# Modem Control LTE
    chown radio radio /sys/class/radio/wrigley/command
    chmod 220 /sys/class/radio/wrigley/command
    chown radio radio /sys/bus/usb/devices/usb1/power/control
    chmod 660 /sys/bus/usb/devices/usb1/power/control

# Power Management Settings
    #write /sys/devices/platform/ohci.0/usb2/2-3/power/level auto
    write /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq 216000
    write /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq 1000000
    write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor interactive
    write /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq 216000
    write /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq 1000000
    write /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor interactive
    # timer 20ms, min sample 80ms, go max at 80%
    write /sys/devices/system/cpu/cpufreq/interactive/timer_rate 20000
    write /sys/devices/system/cpu/cpufreq/interactive/min_sample_time 80000
    write /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load 80
    # Wakelock debug
    write /sys/module/wakelock/parameters/debug_mask 7
    # No need to continuously scan w1 bus
    write /sys/devices/w1\ bus\ master/w1_master_search 1
    # Disable charging LED
    write /sys/class/gpio/gpio168/value 1

# LTE specific TCP buffer setting for stingray
    # ReadMin, ReadInitial, ReadMax, WriteMin, WriteInitial, WriteMax,
    setprop net.tcp.buffersize.lte     524288,1048576,2097152,262144,524288,1048576

# make binder state/stats readable by root only, so that they are not
# captured by default in bugreports
    chmod 0400 /sys/kernel/debug/binder/stats
    chmod 0400 /sys/kernel/debug/binder/state

# Ecompass daemon
service akmd2 /system/bin/akmd2
    class late_start
    user compass
    group compass misc input

service wpa_supplicant /system/bin/wpa_supplicant \
    -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 dhcpcd_wlan0 /system/bin/dhcpcd -aABKL
    class main
    disabled
    oneshot

service dhcpcd_p2p /system/bin/dhcpcd -aABKL
    class main
    disabled
    oneshot

service dhcpcd_eth0 /system/bin/dhcpcd -ABKL
    class main
    disabled
    oneshot

# bluetooth
service dhcpcd_bnep0 /system/bin/dhcpcd -ABKL
    disabled
    oneshot

service iprenew_wlan0 /system/bin/dhcpcd -n
    disabled
    oneshot

service iprenew_p2p /system/bin/dhcpcd -n
    disabled
    oneshot

service iprenew_eth0 /system/bin/dhcpcd -n
    disabled
    oneshot

# bluetooth
service iprenew_bnep0 /system/bin/dhcpcd -n
    disabled
    oneshot

# bugreport is triggered by the VOLUME-DOWN and VOLUME-UP keys.
# bugtogo.sh tool will invoke bugreport and propt email composer
# if not in user build.
service bugreport /system/bin/bugmailer.sh -b /system/media/audio/ui/Dock.ogg -e /system/media/audio/ui/Undock.ogg
    class main
    disabled
    oneshot
    keycodes 115 114

service hciattach /system/bin/brcm_patchram_plus --enable_hci --enable_lpm \
    --baudrate 3000000 --use_baudrate_for_download --scopcm 0,2,0,0,0,0,0,0,0,0 \
    --patchram /etc/firmware/bcm4329.hcd /dev/ttyHS2
    class main
    user bluetooth
    group bluetooth net_bt_admin
    disabled

service location /system/bin/location
    class late_start
    socket gpshal_socket stream 660 radio system
    socket location_shim stream 660 system system
    socket gps_tcmd stream 660 radio system
    user radio
    group radio system mot_accy
    oneshot

service locDrv /system/bin/brcm_guci_drv -config /system/etc/gpsconfig.xml
    class late_start
    user radio
    group radio inet sdcard_rw

service tcmd /system/bin/tcmd
    class core
    socket local_tcmd stream 0660 root root
    socket batch_socket stream 0600 root root
    disabled

service ftmipcd /system/bin/ftmipcd
    class core
    disabled

# Immediately drops to user radio, after starting the real-time thread
service whisper /system/bin/whisperd
    class late_start
    group radio system mot_accy

# create virtual SD card at /mnt/sdcard, 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

service motolocation /system/bin/sh /system/bin/am startservice -n com.motorola.android.locationproxy/com.motorola.android.locationproxy.LocationProxyService
    class late_start
    disabled
    oneshot

on property:gsm.mot.locatonproxy=start
    start motolocation

# Get BP version and save to misc
service savebpver /system/bin/savebpver
   class main
   oneshot
   disabled

on property:dev.bootcomplete=1
   start savebpver

service gadget-lte-modem /system/bin/tty2ttyd ril.wrigley.modem.tty /dev/ttyGS0 0 512
    disabled

service gadget-qbp-modem /system/bin/tty2ttyd persist.ril.modem.ttydevice /dev/ttyGS1 0 1024
    disabled

service gadget-qbp-diag /system/bin/tty2ttyd persist.ril.diag.ttydevice /dev/ttyGS2 0 1024
    disabled

service wrigley-diag /system/bin/wrigley-diag.sh
    oneshot
    disabled

service logcatd-blan /system/bin/logcatd-blan
    user root
    # Immediately drops root, keeps CAP_SYS_ADMIN, and runs as below
    # user system
    # group system log inet
    disabled

on property:ro.bootmode=factorycable
    start tcmd
    start ftmipcd

on property:ro.bootmode=qbp-hw-bypass
    setprop ril.moto-qc.usb-hw-bypass.state "on"

on property:ro.bootmode=bp-tools
    start tcmd
    start gadget-lte-modem
    start gadget-qbp-diag
    start gadget-qbp-modem
    start wrigley-diag
    start logcatd-blan

service wlan_prod /system/bin/insmod /system/lib/modules/bcm4329.ko "firmware_path=/vendor/firmware/fw_bcm4329.bin nvram_path=/system/etc/wifi/bcm4329.cal"
    group wifi mot_tcmd system
    oneshot
    disabled

service wlan_mfg /system/bin/insmod /system/lib/modules/bcm4329.ko "firmware_path=/vendor/firmware/fw_bcm4329_mfg.bin nvram_path=/system/etc/wifi/bcm4329.cal"
    group wifi mot_tcmd system
    oneshot
    disabled

service wlan_unload /system/bin/rmmod bcm4329
    group wifi mot_tcmd system
    oneshot
    disabled

# turn on wifi for tcmd load production firmware
on property:tcmd.load_wlan="production"
    start wlan_prod

# turn on wifi for tcmd load manufacturing firmware
on property:tcmd.load_wlan="manufacturing"
    start wlan_mfg

# turn off wifi for tcmd
on property:tcmd.load_wlan="unload"
    start wlan_unload
