# MTK connectivity .rc configure
on post-fs-data
    mkdir /data/misc/firmware 0777 system system
    mkdir /data/misc/firmware/active 0777 system system
    mkdir /data/misc/firmware/push 0777 system system

on post-fs-data
    mkdir /data/vendor/stp_dump 0755 system system
    mkdir /data/vendor/connsyslog 0755 system system

# WMT
service wmt_loader /vendor/bin/wmt_loader
    class early_hal
    user system
    group system
    oneshot

service wmt_launcher /vendor/bin/wmt_launcher -p /vendor/firmware/
    class early_hal
    user system
    group system

on property:persist.vendor.connsys.coredump.mode=1
    start stp_dump

on property:persist.vendor.connsys.coredump.mode=2
    start stp_dump

on property:persist.vendor.connsys.coredump.mode=0
    stop stp_dump

on property:vendor.connsys.driver.ready=yes && property:persist.vendor.connsys.coredump.mode=*
    write /proc/driver/wmt_dbg "0x15 ${persist.vendor.connsys.coredump.mode}"

on property:vendor.connsys.driver.ready=yes && property:debug.vendor.connsys.suspend.alarm=*
    write /proc/driver/wmt_dbg "0x2e ${debug.vendor.connsys.suspend.alarm}"

on property:vendor.connsys.driver.ready=yes
    write /proc/driver/wmt_dbg "0x7 9 1"

on property:vendor.connsys.driver.ready=yes && property:vendor.bluetooth.no_acl_link=*
    write /proc/driver/wmt_dbg "0x2f 0 ${vendor.bluetooth.no_acl_link}"

on property:vendor.connsys.driver.ready=yes && property:vendor.bluetooth.no_br_acl_link=*
    write /proc/driver/wmt_dbg "0x2f 1 ${vendor.bluetooth.no_br_acl_link}"

service stp_dump /vendor/bin/stp_dump3
    user system
    group system sdcard_rw misc
    class core
    disabled
