import init.grouper.usb.rc

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

    # 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

    # create directory for mounting usb drives
    mkdir /mnt/usbdrive 0666 system system
    symlink /mnt/usbdrive /usbdrive

on fs
    setprop ro.crypto.umount_sd false
    mount_all /fstab.grouper

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

    # we will remap this as /storage/sdcard0 with the sdcard fuse tool
    mkdir /data/media 0770 media_rw media_rw
    chown media_rw media_rw /data/media

    # change back to bluetooth from system
    chown bluetooth bluetooth /data/misc/bluetooth

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

on boot

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

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

    # bluetooth MAC address programming
    chown bluetooth bluetooth ro.bt.bdaddr_path
    chown bluetooth bluetooth /system/etc/bluetooth
    chown bluetooth bluetooth /data/misc/bluetooth
    setprop ro.bt.bdaddr_path "/data/misc/bluetooth/bdaddr"

# NFC
    setprop ro.nfc.port "I2C"
    chmod 0660 /dev/pn544
    chown nfc nfc /dev/pn544

# backlight
    chown system system /sys/class/backlight/pwm-backlight/brightness

# didim
    chown system system /sys/class/graphics/fb0/device/smartdimmer/enable
    chown system system /sys/class/graphics/fb0/device/smartdimmer/aggressiveness

# power
    chown system system /sys/kernel/tegra_cap/core_cap_level
    chown system system /sys/kernel/tegra_cap/core_cap_state
    chown system system /sys/module/cpu_tegra/parameters/cpu_user_cap

# Sensor
    insmod /system/lib/modules/mpu6050b1.ko
    insmod /system/lib/modules/inv_mpu_ak89xx.ko

# Power management settings
    write /sys/module/cpu_tegra3/parameters/no_lp 0
    #write /sys/module/tegra3_emc/parameters/emc_enable 0
    #write /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq 1000000
    write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor interactive
    write /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor interactive
    write /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor interactive
    write /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor interactive
    write /sys/devices/system/cpu/cpufreq/interactive/boost_factor 2
    write /sys/devices/system/cpu/cpufreq/interactive/input_boost 1
    write /sys/devices/system/cpu/cpufreq/interactive/sustain_load 80
    write /sys/module/cpu_tegra3/parameters/auto_hotplug 1
    #write /sys/module/cpuidle_t3/parameters/lp2_0_in_idle 0
    write /sys/module/cpuidle/parameters/lp2_in_idle 0

# Default Read Ahead value for sdcards
    write /sys/block/mmcblk0/queue/read_ahead_kb 2048
    write /sys/block/mmcblk1/queue/read_ahead_kb 2048

# GPS init
    write /sys/class/gpio/export 162
    write /sys/class/gpio/gpio162/value 0
    write /sys/class/gpio/gpio162/direction out
    chown gps gps /sys/class/gpio/gpio162/value
    chmod 0664 /sys/class/gpio/gpio162/value
    mkdir /data/gps
    chown gps gps /data/gps
    chmod 770 /data/gps
    chown gps gps /dev/ttyHS1
    chmod 0660 /dev/ttyHS1


# Load WiFi driver

# BB mapping symbolic name to the logging ttyACM port
    symlink /dev/ttyACM2 /dev/log_modem

# Touch
    chown system system /dev/elan-iap
    chown system system /proc/ektf_dbg  
    start touch_fw_update
 
# Write BT BD_ADDR
service btmacreader /system/bin/btmacreader
    class main
    oneshot

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 p2p_supplicant /system/bin/wpa_supplicant \
    -iwlan0 -Dnl80211 -iwlan0 -c/data/misc/wifi/wpa_supplicant.conf -N \
    -ip2p0 -Dnl80211 -c /data/misc/wifi/p2p_supplicant.conf -e/data/misc/wifi/entropy.bin -puse_p2p_group_interface=1
#   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 -f/system/etc/dhcpcd/dhcpcd.conf
    class main
    disabled
    oneshot

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

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

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

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

#Sensor: load calibration files.
    service sensors-config /system/bin/sensors-config
    class main
    user root
    oneshot
#Sensor load calibration files end

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

# bugreport is triggered by the VOLUME-DOWN and VOLUME-UP keys
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

#BCM
service hciattach /system/bin/brcm_patchram_plus --enable_hci --scopcm=0,2,0,0,0,0,0,0,0,0 \
    --baudrate 3000000 --use_baudrate_for_download --patchram /etc/firmware/bcm4330.hcd --no2bytes --enable_lpm --tosleep=50000 /dev/ttyHS2
    class main
    user bluetooth
    group bluetooth net_bt_admin
    disabled

# Start GPS daemon
  on boot
  service gps-daemon /system/bin/glgps -c /system/etc/gps/gpsconfig.xml
  socket gps seqpacket 0666 gps gps
  user gps
  group gps
  class late_start

# Recovery daemon: configure MSC partition
service recoveryd /system/bin/recoveryd /dev/block/platform/sdhci-tegra.3/by-name/MSC
    disabled
    class main
    user root
    group root
    oneshot

on property:sys.shutdown.requested=1recovery
    start recoveryd

# start tf_daemon service
service tf_daemon /system/bin/tf_daemon -storageDir /data/tf -d
    class main
    user root
    group shell	

# may restart due to /data/tf not existing yet
on property:init.svc.tf_daemon=restarting
    mkdir /data/tf

#Raydium touch setting
service rm_ts_service    /system/bin/rm_ts_server
    class main

# create filesystems if necessary
service setup_fs /system/bin/setup_fs \
        /dev/block/platform/sdhci-tegra.3/by-name/UDA \
        /dev/block/platform/sdhci-tegra.3/by-name/CAC
    class core
    user root
    group root
    oneshot

service touch_fw_update /system/bin/sh -c "echo /system/etc/firmware/touch_fw.ekt > /sys/bus/i2c/drivers/elan-ktf3k/1-0010/update_fw"
    class main
    disabled
    user root
    group root
    oneshot

