Home | History | Annotate | Download | only in shamu
      1 #
      2 # Copyright 2014 The Android Open Source Project
      3 #
      4 # Licensed under the Apache License, Version 2.0 (the "License");
      5 # you may not use this file except in compliance with the License.
      6 # You may obtain a copy of the License at
      7 #
      8 #      http://www.apache.org/licenses/LICENSE-2.0
      9 #
     10 # Unless required by applicable law or agreed to in writing, software
     11 # distributed under the License is distributed on an "AS IS" BASIS,
     12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13 # See the License for the specific language governing permissions and
     14 # limitations under the License.
     15 #
     16 
     17 import init.shamu.usb.rc
     18 import init.shamu.power.rc
     19 import init.shamu.diag.rc
     20 
     21 on early-init
     22     mkdir /firmware 0771 system system
     23     symlink /data/tombstones /tombstones
     24     mount debugfs debugfs /sys/kernel/debug
     25     chown system system /sys/kernel/debug/kgsl/proc
     26 
     27 on init
     28     # Load persistent dm-verity state
     29     verity_load_state
     30 
     31     mkdir /oem 0550 root root
     32 
     33     # Set permissions for persist partition
     34     mkdir /persist 0771 system system
     35 
     36     symlink /sdcard /storage/sdcard0
     37 
     38 on fs
     39     mount_all fstab.shamu
     40 
     41     # Keeping following partitions outside fstab file. As user may not have
     42     # these partition flashed on the device. Failure to mount any partition in fstab file
     43     # results in failure to launch late-start class.
     44     wait /dev/block/platform/msm_sdcc.1/by-name/oem
     45     mount ext4 /dev/block/platform/msm_sdcc.1/by-name/oem /oem ro nosuid nodev context=u:object_r:oemfs:s0
     46 
     47     mkdir /fsg 0755 root root
     48     mount ext4 /dev/block/platform/msm_sdcc.1/by-name/mdm1m9kefs3 /fsg ro nosuid nodev barrier=0 context=u:object_r:fsg_file:s0
     49 
     50     restorecon_recursive /persist
     51     mkdir /persist/data 0700 system system
     52     mkdir /persist/data/sfs 0700 system system
     53     mkdir /persist/data/tz 0700 system system
     54     mkdir /persist/public 0755 system radio
     55     mkdir /persist/public/hiddenmenu 0775 system radio
     56     mkdir /persist/public/hiddenmenu/data 0775 system radio
     57 
     58     # Enable rmnet data and aggregation
     59     setprop persist.rmnet.mux enabled
     60     setprop persist.rmnet.data.enable true
     61     setprop persist.data.wda.enable true
     62     setprop persist.data.df.agg.dl_pkt 10
     63     setprop persist.data.df.agg.dl_size 4096
     64 
     65     # Adjust parameters for dm-verity device
     66     write /sys/block/dm-0/queue/read_ahead_kb 2048
     67 
     68     # Update dm-verity state and set partition.*.verified properties
     69     verity_update_state
     70 
     71 on post-fs-data
     72     mkdir /tombstones/modem 0771 system system
     73     mkdir /tombstones/lpass 0771 system system
     74     mkdir /tombstones/wcnss 0771 system system
     75     mkdir /tombstones/dsps 0771 system system
     76 
     77     # SENSORS
     78     #Create directory used by sensor subsystem(dsps)
     79     mkdir /data/system/sensors
     80     chmod 0775 /data/system/sensors
     81 
     82     # AKM setting data
     83     mkdir /data/misc/sensors
     84     chmod 0775 /data/misc/sensors
     85 
     86     mkdir /persist/sensors
     87     chmod 0775 /persist/sensors
     88 
     89     mkdir /persist/mdm 0770 radio radio
     90 
     91     #Subsystem RAM-dumps
     92     mkdir /data/ss-ram-dumps 0750 radio log
     93     mkdir /data/ss-ram-dumps/bp-dumps 0750 radio log
     94 
     95     # rild files
     96     mkdir /data/misc/audio_cutback 0770 radio audio
     97 
     98 on early-boot
     99     # set RLIMIT_MEMLOCK to 64MB
    100     setrlimit 8 67108864 67108864
    101 
    102     # Allow subsystem (modem etc) debugging
    103     # write /sys/module/subsystem_restart/parameters/enable_debug ${persist.sys.ssr.enable_debug}
    104 
    105     write /sys/kernel/boot_adsp/boot 1
    106 
    107     # Subsytem Restart
    108     #venus
    109     write /sys/bus/msm_subsys/devices/subsys0/restart_level "related"
    110     write /sys/bus/msm_subsys/devices/subsys0/recovery_policy "skip_restart"
    111     #adsp
    112     write /sys/bus/msm_subsys/devices/subsys1/restart_level "related"
    113     write /sys/bus/msm_subsys/devices/subsys1/recovery_policy "skip_restart"
    114     #vpu
    115     write /sys/bus/msm_subsys/devices/subsys2/restart_level "related"
    116     write /sys/bus/msm_subsys/devices/subsys2/recovery_policy "skip_restart"
    117     #esoc0 (mdm)
    118     write /sys/bus/msm_subsys/devices/subsys3/restart_level "related"
    119     write /sys/bus/msm_subsys/devices/subsys3/recovery_policy "skip_restart"
    120 
    121 on boot
    122     chown bluetooth net_bt_stack /sys/module/bluetooth_power/parameters/power
    123     chown bluetooth net_bt_stack /sys/class/rfkill/rfkill0/type
    124     chown bluetooth net_bt_stack /sys/class/rfkill/rfkill0/state
    125     chown bluetooth net_bt_stack /proc/bluetooth/sleep/proto
    126     chown bluetooth net_bt_stack /proc/bluetooth/sleep/lpm
    127     chown bluetooth net_bt_stack /proc/bluetooth/sleep/btwrite
    128     chown bluetooth net_bt_stack /sys/module/hci_uart/parameters/ath_lpm
    129     chown bluetooth net_bt_stack /sys/module/hci_uart/parameters/ath_btwrite
    130     chown system system /sys/module/sco/parameters/disable_esco
    131     chown bluetooth net_bt_stack /sys/module/hci_smd/parameters/hcismd_set
    132     chmod 0660 /sys/module/bluetooth_power/parameters/power
    133     chmod 0660 /sys/module/hci_smd/parameters/hcismd_set
    134     chmod 0660 /sys/class/rfkill/rfkill0/state
    135     chmod 0660 /proc/bluetooth/sleep/proto
    136     chown bluetooth net_bt_stack /dev/ttyHS0
    137     chmod 0660 /sys/module/hci_uart/parameters/ath_lpm
    138     chmod 0660 /sys/module/hci_uart/parameters/ath_btwrite
    139     chmod 0660 /dev/ttyHS0
    140     chown bluetooth net_bt_stack /sys/devices/platform/msm_serial_hs.0/clock
    141     chmod 0660 /sys/devices/platform/msm_serial_hs.0/clock
    142 
    143     # update foreground cpuset now that processors are up
    144     # reserve CPU 3 for the top app
    145     write /dev/cpuset/foreground/cpus 0-2
    146     write /dev/cpuset/foreground/boost/cpus 0-3
    147     write /dev/cpuset/background/cpus 0
    148     write /dev/cpuset/system-background/cpus 0-1
    149     write /dev/cpuset/top-app/cpus 0-3
    150 
    151     chmod 0660 /dev/ttyHS2
    152     chown bluetooth net_bt_stack /dev/ttyHS2
    153 
    154     #Create QMUX deamon socket area
    155     mkdir /dev/socket/qmux_radio 0770 radio radio
    156     chmod 2770 /dev/socket/qmux_radio
    157     mkdir /dev/socket/qmux_audio 0770 media audio
    158     chmod 2770 /dev/socket/qmux_audio
    159     mkdir /dev/socket/qmux_bluetooth 0770 bluetooth bluetooth
    160     chmod 2770 /dev/socket/qmux_bluetooth
    161     mkdir /dev/socket/qmux_gps 0770 gps gps
    162     chmod 2770 /dev/socket/qmux_gps
    163 
    164     mkdir /dev/socket/mpdecision 2775 root system
    165     chmod 2775 /dev/socket/mpdecision
    166 
    167     setprop wifi.interface wlan0
    168 
    169     #readable symlinks for video nodes
    170     mkdir /dev/video
    171     symlink /dev/video32 /dev/video/venus_dec
    172     symlink /dev/video33 /dev/video/venus_enc
    173 
    174     setprop ro.telephony.call_ring.multiple false
    175 
    176     chown system system /sys/bus/i2c/devices/1-004a/tsp
    177 
    178     chmod 0444 /sys/devices/platform/msm_hsusb/gadget/usb_state
    179 
    180     # Allow QMUX daemon to assign port open wait time
    181     chown radio radio /sys/devices/virtual/hsicctl/hsicctl0/modem_wait
    182 
    183     #port-bridge
    184     chmod 0660 /dev/smd0
    185     chown system system /dev/smd0
    186 
    187     #BT DUN port-bridge
    188     chmod 0660 /dev/smd7
    189     chown bluetooth net_bt_stack /dev/smd7
    190 
    191     #For bridgemgr daemon to inform the USB driver of the correct transport
    192     chown radio radio /sys/class/android_usb/f_rmnet_smd_sdio/transport
    193 
    194 #   Assign TCP buffer thresholds to be ceiling value of technology maximums
    195 #   Increased technology maximums should be reflected here.
    196     write /proc/sys/net/core/rmem_max  8388608
    197     write /proc/sys/net/core/wmem_max  8388608
    198 
    199     #To allow interfaces to get v6 address when tethering is enabled
    200     write /proc/sys/net/ipv6/conf/rmnet0/accept_ra 2
    201     write /proc/sys/net/ipv6/conf/rmnet1/accept_ra 2
    202     write /proc/sys/net/ipv6/conf/rmnet2/accept_ra 2
    203     write /proc/sys/net/ipv6/conf/rmnet3/accept_ra 2
    204     write /proc/sys/net/ipv6/conf/rmnet4/accept_ra 2
    205     write /proc/sys/net/ipv6/conf/rmnet5/accept_ra 2
    206     write /proc/sys/net/ipv6/conf/rmnet6/accept_ra 2
    207     write /proc/sys/net/ipv6/conf/rmnet7/accept_ra 2
    208     write /proc/sys/net/ipv6/conf/rmnet_sdio0/accept_ra 2
    209     write /proc/sys/net/ipv6/conf/rmnet_sdio1/accept_ra 2
    210     write /proc/sys/net/ipv6/conf/rmnet_sdio2/accept_ra 2
    211     write /proc/sys/net/ipv6/conf/rmnet_sdio3/accept_ra 2
    212     write /proc/sys/net/ipv6/conf/rmnet_sdio4/accept_ra 2
    213     write /proc/sys/net/ipv6/conf/rmnet_sdio5/accept_ra 2
    214     write /proc/sys/net/ipv6/conf/rmnet_sdio6/accept_ra 2
    215     write /proc/sys/net/ipv6/conf/rmnet_sdio7/accept_ra 2
    216     write /proc/sys/net/ipv6/conf/rmnet_usb0/accept_ra 2
    217     write /proc/sys/net/ipv6/conf/rmnet_usb1/accept_ra 2
    218     write /proc/sys/net/ipv6/conf/rmnet_usb2/accept_ra 2
    219     write /proc/sys/net/ipv6/conf/rmnet_usb3/accept_ra 2
    220 
    221     # To prevent out of order acknowledgements from making
    222     # connection tracking to treat them as not belonging to
    223     # the connection they belong to.
    224     # Otherwise, a weird issue happens in which some long
    225     # connections on high-throughput links get dropped when
    226     # an ack packet comes out of order
    227     write /proc/sys/net/netfilter/nf_conntrack_tcp_be_liberal 1
    228 
    229     # Set the console loglevel to < KERN_INFO
    230     # Set the default message loglevel to KERN_INFO
    231     # write /proc/sys/kernel/printk "6 6 1 7"
    232 
    233     write /sys/bus/platform/drivers/xhci_msm_hsic/unbind msm_hsic_host
    234     write /sys/module/rmnet_usb/parameters/mux_enabled 1
    235     write /sys/module/rmnet_usb/parameters/no_fwd_rmnet_links 8
    236     write /sys/module/rmnet_usb/parameters/no_rmnet_insts_per_dev 17
    237     write /sys/module/rmnet_usb/parameters/rmnet_data_init 1
    238     chown radio radio /sys/devices/virtual/hsicctl/hsicctl0/modem_wait
    239 
    240     # Audio DSP permissions
    241     chown media media /dev/ttyHS3
    242     chown media media /sys/devices/c55_ctrl/gpio_ap_int/edge
    243     chown media media /sys/devices/c55_ctrl/gpio_ap_int/value
    244     chown media media /sys/devices/c55_ctrl/gpio_c55_int/value
    245     chown media media /sys/devices/c55_ctrl/gpio_core/value
    246     chown media media /sys/devices/c55_ctrl/gpio_reset/value
    247 
    248 # subsystem ramdump collection
    249 on property:persist.sys.qc.sub.rdump.on=*
    250     write /sys/module/subsystem_restart/parameters/enable_ramdumps ${persist.sys.qc.sub.rdump.on}
    251 
    252 # permissions for CapSense firmware update
    253     chown radio radio /sys/devices/cycapsense_prog.1/cycapsense_fw
    254     chmod 0220 /sys/devices/cycapsense_prog.1/cycapsense_fw
    255 
    256 # msm specific files that need to be created on /data
    257 on post-fs-data
    258     mkdir /data/misc/bluetooth 0770 bluetooth bluetooth
    259 
    260     # Create the directories used by the Wireless subsystem
    261     mkdir /data/misc/wifi 0770 wifi wifi
    262     mkdir /data/misc/wifi/sockets 0770 wifi wifi
    263     mkdir /data/misc/wifi/wpa_supplicant 0770 wifi wifi
    264     mkdir /data/misc/dhcp 0770 dhcp dhcp
    265     chown dhcp dhcp /data/misc/dhcp
    266 
    267     # Create the directories used by CnE subsystem
    268     mkdir /data/connectivity 0771 system system
    269     chown system system /data/connectivity
    270 
    271     mkdir /data/connectivity/nsrm 0771 system system
    272     chown system system /data/connectivity/nsrm
    273 
    274     # Create directory used by audio subsystem
    275     mkdir /data/misc/audio 0770 audio audio
    276 
    277     # Mounting of persist is moved to 'on emmc-fs' and 'on fs' sections
    278     # We chown/chmod /persist again so because mount is run as root + defaults
    279     chown system system /persist
    280     chmod 0771 /persist
    281     chmod 0664 /sys/devices/platform/msm_sdcc.1/polling
    282     chmod 0664 /sys/devices/platform/msm_sdcc.2/polling
    283     chmod 0664 /sys/devices/platform/msm_sdcc.3/polling
    284     chmod 0664 /sys/devices/platform/msm_sdcc.4/polling
    285 
    286     # Chown polling nodes as needed from UI running on system server
    287     chown system system /sys/devices/platform/msm_sdcc.1/polling
    288     chown system system /sys/devices/platform/msm_sdcc.2/polling
    289     chown system system /sys/devices/platform/msm_sdcc.3/polling
    290     chown system system /sys/devices/platform/msm_sdcc.4/polling
    291 
    292     #Create the symlink to qcn wpa_supplicant folder for ar6000 wpa_supplicant
    293     mkdir /data/system 0775 system system
    294     #symlink /data/misc/wifi/wpa_supplicant /data/system/wpa_supplicant
    295 
    296     #Create directories for gpsone_daemon services
    297     mkdir /data/misc/gpsone_d 0770 system gps
    298 
    299     #Create directories for QuIPS
    300     mkdir /data/misc/quipc 0770 gps system
    301 
    302     #Create directories for Location services
    303     mkdir /data/misc/location 0770 gps gps
    304     mkdir /data/misc/location/mq 0770 gps gps
    305     mkdir /data/misc/location/xtwifi 0770 gps gps
    306 
    307     #Create directory from IMS services
    308     mkdir /data/shared 0755
    309     chown system system /data/shared
    310 
    311     #Create directory for FOTA
    312     mkdir /data/fota 0771
    313     chown system system /data/fota
    314 
    315     #Create directory for hostapd
    316     mkdir /data/hostapd 0770 system wifi
    317 
    318     # Create /data/time folder for time-services
    319     mkdir /data/time/ 0700 system system
    320 
    321     mkdir /data/audio/ 0770 media audio
    322 
    323     setprop vold.post_fs_data_done 1
    324 
    325     # NFC local data and nfcee xml storage
    326     mkdir /data/nfc 0770 nfc nfc
    327     mkdir /data/nfc/param 0770 nfc nfc
    328 
    329     # Audio DSP permissions
    330     mkdir /data/adspd 0770 media media
    331     mkdir /data/adspd/1 0770 media media
    332 
    333 on property:bluetooth.isEnabled=true
    334     start btwlancoex
    335     write /sys/class/bluetooth/hci0/idle_timeout 7000
    336 
    337 on property:ro.bluetooth.ftm_enabled=true
    338     start ftmd
    339 
    340 on property:persist.env.fastdorm.enabled=true
    341     setprop persist.radio.data_no_toggle 1
    342 
    343 service irsc_util /system/bin/irsc_util "/etc/sec_config"
    344     class main
    345     user root
    346     oneshot
    347 
    348 service mdm_helper /system/bin/mdm_helper
    349     user root
    350     group root system wakelock radio
    351     class core
    352     onrestart setprop ro.service.mdm_helper_restarted "true"
    353 
    354 service tcmd /system/bin/tcmd_mini
    355     class core
    356     user radio
    357     group radio net_raw net_admin
    358     disabled
    359 
    360 service bridgemgrd /system/bin/bridgemgrd
    361     class late_start
    362     user radio
    363     group radio
    364 
    365 # QMUX must be in multiple groups to support external process connections
    366 service qmuxd /system/bin/qmuxd
    367     class main
    368     user radio
    369     group radio audio bluetooth wakelock gps
    370 
    371 service netmgrd /system/bin/netmgrd
    372     class main
    373     group radio
    374 
    375 service imsqmidaemon /system/bin/imsqmidaemon
    376     class main
    377     user system
    378     socket ims_qmid stream 0660 system radio
    379     group radio log
    380 
    381 service imsdatadaemon /system/bin/imsdatadaemon
    382     class main
    383     user root
    384     socket ims_datad stream 0660 system radio
    385     group system wifi radio inet log readproc
    386     disabled
    387 
    388 on property:sys.ims.QMI_DAEMON_STATUS=1
    389     start imsdatadaemon
    390 
    391 service ims_rtp_daemon /system/bin/ims_rtp_daemon
    392     class main
    393     user root
    394     socket ims_rtpd stream 0660 system radio
    395     group system radio inet log
    396     disabled
    397 
    398 on property:sys.ims.DATA_DAEMON_STATUS=1
    399    start ims_rtp_daemon
    400 
    401 service sensors /system/bin/sensors.qcom
    402     class core
    403     user root
    404     group root wakelock
    405     writepid /dev/cpuset/system-background/tasks
    406 
    407 on property:ro.use_data_netmgrd=false
    408     # netmgr not supported on specific target
    409     stop netmgrd
    410 
    411 # Adjust socket buffer to enlarge TCP receive window for high bandwidth
    412 # but only if ro.data.large_tcp_window_size property is set.
    413 on property:ro.data.large_tcp_window_size=true
    414     write /proc/sys/net/ipv4/tcp_adv_win_scale  2
    415 
    416 service p2p_supplicant /system/bin/wpa_supplicant \
    417     -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \
    418     -I/system/etc/wifi/p2p_supplicant_overlay.conf  \
    419     -puse_p2p_group_interface=1p2p_device=1 \
    420     -m/data/misc/wifi/p2p_supplicant.conf \
    421     -e/data/misc/wifi/entropy.bin -g@android:wpa_wlan0
    422 #   we will start as root and wpa_supplicant will switch to user wifi
    423 #   after setting up the capabilities required for WEXT
    424 #   user wifi
    425 #   group wifi inet keystore
    426     class main
    427     socket wpa_wlan0 dgram 660 wifi wifi
    428     disabled
    429     oneshot
    430 
    431 service wpa_supplicant /system/bin/wpa_supplicant \
    432     -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \
    433     -I/system/etc/wifi/wpa_supplicant_overlay.conf \
    434     -e/data/misc/wifi/entropy.bin -g@android:wpa_wlan0
    435     #   we will start as root and wpa_supplicant will switch to user wifi
    436     #   after setting up the capabilities required for WEXT
    437     #   user wifi
    438     #   group wifi inet keystore
    439     class main
    440     socket wpa_wlan0 dgram 660 wifi wifi
    441     disabled
    442     oneshot
    443 
    444 service adspd /system/bin/adspd /dev/ttyHS3
    445    class main
    446    socket adspdsock stream 0660 media media
    447    user media
    448    group media input
    449 
    450 on property:sys.boot_completed=1
    451     start qcom-post-boot
    452 
    453 on property:ro.debuggable=1
    454     start ss_ramdump
    455 
    456 on property:ro.data.large_tcp_window_size=true
    457     # Adjust socket buffer to enlarge TCP receive window for high bandwidth (e.g. DO-RevB)
    458     write /proc/sys/net/ipv4/tcp_adv_win_scale  2
    459 
    460 on charger
    461     write /sys/class/leds/lcd-backlight/brightness 100
    462     mount ext4 /dev/block/platform/msm_sdcc.1/by-name/system /system ro barrier=1
    463     start thermal-engine
    464 
    465 service charger /charger
    466     class charger
    467     group log
    468     seclabel u:r:healthd:s0
    469 
    470 # Allow usb charging to be disabled peristently
    471 on property:persist.usb.chgdisabled=1
    472     write /sys/class/power_supply/battery/charging_enabled 0
    473 
    474 on property:persist.usb.chgdisabled=0
    475     write /sys/class/power_supply/battery/charging_enabled 1
    476 
    477 service qseecomd /system/bin/qseecomd
    478    class core
    479    user root
    480    group root
    481 
    482 service mpdecision /system/bin/mpdecision --avg_comp
    483    class main
    484    user root
    485    group root readproc
    486    writepid /dev/cpuset/system-background/tasks
    487 
    488 service ss_ramdump /system/bin/subsystem_ramdump
    489     class main
    490     user root
    491     group root
    492     disabled
    493 
    494 service thermal-engine /system/bin/thermal-engine
    495    class main
    496    user root
    497    group root
    498 
    499 service time_daemon /system/bin/time_daemon
    500    class late_start
    501    user root
    502    group root
    503 
    504 on property:init.svc.bootanim=stopped
    505     start usf-post-boot
    506 
    507 service qcamerasvr /system/bin/mm-qcamera-daemon
    508     class late_start
    509     user camera
    510     group camera system inet input graphics
    511 
    512 service bdAddrLoader /system/bin/bdAddrLoader -p ro.boot.btmacaddr -s -x
    513     class main
    514     user bluetooth
    515     group system bluetooth
    516     oneshot
    517 
    518 on property:vold.decrypt=trigger_reset_main
    519     stop gnss-svcd
    520 
    521 on verity-logging
    522     exec u:r:slideshow:s0 -- /sbin/slideshow warning/verity_red_1 warning/verity_red_2
    523 
    524 # When QCA1530 is known not to present
    525 on property:persist.qca1530=no
    526    stop gnss-svcd
    527    stop gnss-detect
    528    write /sys/kernel/qca1530/chip_state 0
    529 
    530 on property:init.svc.surfaceflinger=stopped
    531     stop ppd
    532 
    533 service mmi-touch-sh /system/bin/init.mmi.touch.sh atmel
    534     class main
    535     user root
    536     oneshot
    537 
    538 # bugreport is triggered by holding down volume down, volume up and power
    539 service bugreport /system/bin/dumpstate -d -p -B -z \
    540         -o /data/user_de/0/com.android.shell/files/bugreports/bugreport
    541     class main
    542     disabled
    543     oneshot
    544     keycodes 114 115 116
    545 
    546 service mdm_helper_proxy /system/bin/mdm_helper_proxy
    547     class core
    548     user system
    549     group system wakelock
    550     disabled
    551 
    552 # Stop mdm_helper_proxy in case of shutdown
    553 on property:sys.shutdown.requested=*
    554     stop mdm_helper_proxy
    555 
    556 # Start mdm_helper_proxy after RIL.
    557 on property:ro.mdm_helper_proxy_req=true
    558     start mdm_helper_proxy
    559 
    560 on property:init.svc.ril-daemon=running
    561     setprop ro.mdm_helper_proxy_req true
    562 
    563 service atfwd /system/bin/ATFWD-daemon
    564     class late_start
    565     user system
    566     group system radio
    567 
    568 service cnd /system/bin/cnd
    569     class late_start
    570     socket cnd stream 660 root inet
    571