import init.manta.usb.rc

on init
    start watchdogd

    # See storage config details at http://source.android.com/tech/storage/
    mkdir /mnt/shell/emulated 0700 shell shell
    mkdir /storage/emulated 0555 root root

    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

# KSM
    write /sys/kernel/mm/ksm/pages_to_scan 100
    write /sys/kernel/mm/ksm/sleep_millisecs 500
#    write /sys/kernel/mm/ksm/run 1

on post-fs-data
    mkdir /data/media 0770 media_rw media_rw

    setprop vold.post_fs_data_done 1

# permissions for bluetooth.
	setprop ro.bt.bdaddr_path "/factory/bluetooth/bt_addr"
	chown bluetooth net_bt_stack ro.bt.bdaddr_path
	chown bluetooth net_bt_stack /dev/ttySAC0
	chmod 0660 /dev/ttySAC0
	chmod 0660 /sys/class/rfkill/rfkill0/state
	chown bluetooth net_bt_stack /sys/class/rfkill/rfkill0/state
	chown bluetooth net_bt_stack /sys/class/rfkill/rfkill0/type

on boot
    # override init.rc to keep plenty of large order chunks around
    # to improve allocation times
    write /proc/sys/vm/min_free_order_shift 1

    mount debugfs /sys/kernel/debug /sys/kernel/debug
    setprop ro.radio.noril yes

    # Set up kernel tracing, but disable it by default
    chmod 0222 /sys/kernel/debug/tracing/trace_marker
    write /sys/kernel/debug/tracing/tracing_on 0

    chmod 0444 /sys/kernel/debug/smb347-regs

# Set Mali power policy as Coarse demand
    write /sys/devices/platform/mali.0/power_policy coarse_demand

on fs
    mkdir /factory 0775 radio radio

    mount_all /fstab.manta
    mount ext4 /dev/block/platform/dw_mmc.0/by-name/efs /factory rw remount
    restorecon_recursive /factory
    mount ext4 /dev/block/platform/dw_mmc.0/by-name/efs /factory ro remount
    setprop ro.crypto.fuse_sdcard true

# Permissions for backlight
    chmod 0660 /sys/class/backlight/pwm-backlight.0/brightness
    chown system system /sys/class/backlight/pwm-backlight.0/brightness

# create data/gps for GPS daemon
    chown root system /sys/class/gps/bcm475x/GPS_PWR_EN/value
    chmod 0664 /sys/class/gps/bcm475x/GPS_PWR_EN/value
    chown root system /sys/class/gps/bcm475x/GPS_nRST/value
    chmod 0664 /sys/class/gps/bcm475x/GPS_nRST/value
    mkdir /data/gps 771 system system
    chown system system /data/gps

# NFC: create data/nfc for nv storage
    mkdir /data/nfc 770 nfc nfc
    mkdir /data/nfc/param 770 nfc nfc

# audio: permissions for voice processing
    # global switch for voice processing effects
    chown root audio /sys/class/i2c-dev/i2c-4/device/4-003e/voice_processing
    chmod 0660 /sys/class/i2c-dev/i2c-4/device/4-003e/voice_processing
    # voice processing chip sleep
    chown root audio /sys/class/i2c-dev/i2c-4/device/4-003e/sleep
    chmod 0660 /sys/class/i2c-dev/i2c-4/device/4-003e/sleep
    # voice processing usecase preset
    chown root audio /sys/class/i2c-dev/i2c-4/device/4-003e/preset
    chmod 0660 /sys/class/i2c-dev/i2c-4/device/4-003e/preset
    # voice processing noise suppression level
    chown root audio /sys/class/i2c-dev/i2c-4/device/4-003e/tx_ns_level
    chmod 0660 /sys/class/i2c-dev/i2c-4/device/4-003e/tx_ns_level
    # voice processing AGC enable (TX)
    chown root audio /sys/class/i2c-dev/i2c-4/device/4-003e/tx_agc_enable
    chmod 0660 /sys/class/i2c-dev/i2c-4/device/4-003e/tx_agc_enable
    # voice processing AEC enable
    chown root audio /sys/class/i2c-dev/i2c-4/device/4-003e/aec_enable
    chmod 0660 /sys/class/i2c-dev/i2c-4/device/4-003e/aec_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 p2p_supplicant /system/bin/wpa_supplicant \
    -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \
    -I/system/etc/wifi/wpa_supplicant_overlay.conf -N \
    -ip2p0 -Dnl80211 -c/data/misc/wifi/p2p_supplicant.conf \
    -I/system/etc/wifi/p2p_supplicant_overlay.conf \
    -puse_p2p_group_interface=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 \
    -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 -aABDKL
    class main
    disabled
    oneshot

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

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

service dhcpcd_bt-pan /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

service iprenew_bt-pan /system/bin/dhcpcd -n
    class main
    disabled
    oneshot

service battery_charger /charger
    class charger
    critical
    seclabel u:r:healthd:s0

# Set watchdog timer to 30 seconds and pet it every 10 seconds to get a 20 second margin
service watchdogd /sbin/watchdogd 10 20
    class core
    seclabel u:r:watchdogd:s0

service gpsd /system/vendor/bin/gpsd -c /system/vendor/etc/gps.xml
    class main
    socket gps seqpacket 0660 gps system
    user gps
    group system inet

# MobiCore startup
service mobicore /system/bin/mcDriverDaemon -r /system/vendor/secapp/020a0000000000000000000000000000.drbin
    setenv MC_REGISTRY_PATH /system/vendor/secapp
    user drmrpc
    group drmrpc
    class main

# on userdebug and eng builds, enable kgdb on the serial console
on property:ro.debuggable=1
    write /sys/module/kgdboc/parameters/kgdboc ttyFIQ2
    write /sys/module/fiq_debugger/parameters/kgdb_enable 1

# 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
