# Copyright (C) 2012 The Android Open Source Project
#
# IMPORTANT: Do not create world writable files or directories.
# This is a common source of Android security bugs.
#

# service can not be overwritten except SPRINT
# Thus, rilcarrier is imported before common rc, like init.rilchip.rc
import /init.rilcarrier.rc
import /init.rilchip.rc
import /init.rilepdg.rc

on boot

# AT Distributor for factory test
service at_distributor /system/bin/at_distributor
    class late_start
    user root
    group radio misc log

service DR-daemon /system/bin/ddexe
    class main
    user root
    group system radio inet net_raw

service SMD-daemon /system/bin/smdexe
    class main
    user root
    group system radio inet net_raw

service BCS-daemon /system/bin/connfwexe
    class main
    user root
    group system radio inet net_raw

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

# for Wi-Fi only models
on property:ro.radio.noril=yes
stop ril-daemon
