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     # See storage config details at http://source.android.com/tech/storage/
     29     mkdir /mnt/shell/emulated 0700 shell shell
     30     mkdir /storage/emulated 0555 root root
     31 
     32     mkdir /oem 0550 root root
     33 
     34     # Set permissions for persist partition
     35     mkdir /persist 0771 system system
     36 
     37     export EXTERNAL_STORAGE /storage/emulated/legacy
     38     export EMULATED_STORAGE_SOURCE /mnt/shell/emulated
     39     export EMULATED_STORAGE_TARGET /storage/emulated
     40 
     41     # Support legacy paths
     42     symlink /storage/emulated/legacy /sdcard
     43     symlink /storage/emulated/legacy /mnt/sdcard
     44     symlink /storage/emulated/legacy /storage/sdcard0
     45     symlink /mnt/shell/emulated/0 /storage/emulated/legacy
     46 
     47 on fs
     48     mount_all fstab.shamu
     49     setprop ro.crypto.fuse_sdcard true
     50 
     51     # Keeping following partitions outside fstab file. As user may not have
     52     # these partition flashed on the device. Failure to mount any partition in fstab file
     53     # results in failure to launch late-start class.
     54 
     55     wait /dev/block/platform/msm_sdcc.1/by-name/persist
     56     mount ext4 /dev/block/platform/msm_sdcc.1/by-name/persist /persist nosuid nodev barrier=1
     57     restorecon_recursive /persist
     58     mkdir /persist/data 0700 system system
     59     mkdir /persist/data/sfs 0700 system system
     60     mkdir /persist/data/tz 0700 system system
     61     mkdir /persist/public 0755 system radio
     62     mkdir /persist/public/hiddenmenu 0775 system radio
     63     mkdir /persist/public/hiddenmenu/data 0775 system radio
     64 
     65     wait /dev/block/platform/msm_sdcc.1/by-name/oem
     66     mount ext4 /dev/block/platform/msm_sdcc.1/by-name/oem /oem ro nosuid nodev context=u:object_r:oemfs:s0
     67 
     68     mkdir /fsg 0755 root root
     69     mount ext4 /dev/block/platform/msm_sdcc.1/by-name/mdm1m9kefs3 /fsg ro nosuid nodev barrier=0 context=u:object_r:fsg_file:s0
     70 
     71     # Enable rmnet data and aggregation
     72     setprop persist.rmnet.mux enabled
     73     setprop persist.rmnet.data.enable true
     74     setprop persist.data.wda.enable true
     75     setprop persist.data.df.agg.dl_pkt 10
     76     setprop persist.data.df.agg.dl_size 4096
     77 
     78 on post-fs-data
     79     mkdir /data/tombstones 0771 system system
     80     mkdir /tombstones/modem 0771 system system
     81     mkdir /tombstones/lpass 0771 system system
     82     mkdir /tombstones/wcnss 0771 system system
     83     mkdir /tombstones/dsps 0771 system system
     84 
     85     # SENSORS
     86     #Create directory used by sensor subsystem(dsps)
     87     mkdir /data/system/sensors
     88     chmod 0775 /data/system/sensors
     89 
     90     # AKM setting data
     91     mkdir /data/misc/sensors
     92     chmod 0775 /data/misc/sensors
     93 
     94     mkdir /persist/sensors
     95     chmod 0775 /persist/sensors
     96 
     97     mkdir /persist/mdm 0770 radio radio
     98 
     99     #Subsystem RAM-dumps
    100     mkdir /data/ss-ram-dumps 0750 radio log
    101     mkdir /data/ss-ram-dumps/bp-dumps 0750 radio log
    102 
    103     # rild files
    104     mkdir /data/misc/audio_cutback 0770 radio audio
    105 
    106 on early-boot
    107     # set RLIMIT_MEMLOCK to 64MB
    108     setrlimit 8 67108864 67108864
    109     # Allow subsystem (modem etc) debugging
    110     write /sys/module/subsystem_restart/parameters/enable_debug ${persist.sys.ssr.enable_debug}
    111     write /sys/kernel/boot_adsp/boot 1
    112 
    113     # Subsytem Restart
    114     #venus
    115     write /sys/bus/msm_subsys/devices/subsys0/restart_level "related"
    116     write /sys/bus/msm_subsys/devices/subsys0/recovery_policy "skip_restart"
    117     #adsp
    118     write /sys/bus/msm_subsys/devices/subsys1/restart_level "related"
    119     write /sys/bus/msm_subsys/devices/subsys1/recovery_policy "skip_restart"
    120     #vpu
    121     write /sys/bus/msm_subsys/devices/subsys2/restart_level "related"
    122     write /sys/bus/msm_subsys/devices/subsys2/recovery_policy "skip_restart"
    123     #esoc0 (mdm)
    124     write /sys/bus/msm_subsys/devices/subsys3/restart_level "related"
    125     write /sys/bus/msm_subsys/devices/subsys3/recovery_policy "skip_restart"
    126 
    127 on boot
    128     insmod /system/lib/modules/adsprpc.ko
    129     insmod /system/lib/modules/mhi.ko
    130     chown bluetooth net_bt_stack /sys/module/bluetooth_power/parameters/power
    131     chown bluetooth net_bt_stack /sys/class/rfkill/rfkill0/type
    132     chown bluetooth net_bt_stack /sys/class/rfkill/rfkill0/state
    133     chown bluetooth net_bt_stack /proc/bluetooth/sleep/proto
    134     chown bluetooth net_bt_stack /proc/bluetooth/sleep/lpm
    135     chown bluetooth net_bt_stack /proc/bluetooth/sleep/btwrite
    136     chown bluetooth net_bt_stack /sys/module/hci_uart/parameters/ath_lpm
    137     chown bluetooth net_bt_stack /sys/module/hci_uart/parameters/ath_btwrite
    138     chown system system /sys/module/sco/parameters/disable_esco
    139     chown bluetooth net_bt_stack /sys/module/hci_smd/parameters/hcismd_set
    140     chmod 0660 /sys/module/bluetooth_power/parameters/power
    141     chmod 0660 /sys/module/hci_smd/parameters/hcismd_set
    142     chmod 0660 /sys/class/rfkill/rfkill0/state
    143     chmod 0660 /proc/bluetooth/sleep/proto
    144     chown bluetooth net_bt_stack /dev/ttyHS0
    145     chmod 0660 /sys/module/hci_uart/parameters/ath_lpm
    146     chmod 0660 /sys/module/hci_uart/parameters/ath_btwrite
    147     chmod 0660 /dev/ttyHS0
    148     chown bluetooth net_bt_stack /sys/devices/platform/msm_serial_hs.0/clock
    149     chmod 0660 /sys/devices/platform/msm_serial_hs.0/clock
    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     # we will remap this as /mnt/sdcard with the sdcard fuse tool
    259     mkdir /data/media 0770 media_rw media_rw
    260     chown media_rw media_rw /data/media
    261 
    262     mkdir /data/misc/bluetooth 0770 bluetooth bluetooth
    263 
    264     # Create the directories used by the Wireless subsystem
    265     mkdir /data/misc/wifi 0770 wifi wifi
    266     mkdir /data/misc/wifi/sockets 0770 wifi wifi
    267     mkdir /data/misc/wifi/wpa_supplicant 0770 wifi wifi
    268     mkdir /data/misc/dhcp 0770 dhcp dhcp
    269     chown dhcp dhcp /data/misc/dhcp
    270 
    271     # Create the directories used by CnE subsystem
    272     mkdir /data/connectivity 0771 system system
    273     chown system system /data/connectivity
    274 
    275     mkdir /data/connectivity/nsrm 0771 system system
    276     chown system system /data/connectivity/nsrm
    277 
    278     # Create directory used by audio subsystem
    279     mkdir /data/misc/audio 0770 audio audio
    280 
    281     # Mounting of persist is moved to 'on emmc-fs' and 'on fs' sections
    282     # We chown/chmod /persist again so because mount is run as root + defaults
    283     chown system system /persist
    284     chmod 0771 /persist
    285     chmod 0664 /sys/devices/platform/msm_sdcc.1/polling
    286     chmod 0664 /sys/devices/platform/msm_sdcc.2/polling
    287     chmod 0664 /sys/devices/platform/msm_sdcc.3/polling
    288     chmod 0664 /sys/devices/platform/msm_sdcc.4/polling
    289 
    290     # Chown polling nodes as needed from UI running on system server
    291     chown system system /sys/devices/platform/msm_sdcc.1/polling
    292     chown system system /sys/devices/platform/msm_sdcc.2/polling
    293     chown system system /sys/devices/platform/msm_sdcc.3/polling
    294     chown system system /sys/devices/platform/msm_sdcc.4/polling
    295 
    296     #Create the symlink to qcn wpa_supplicant folder for ar6000 wpa_supplicant
    297     mkdir /data/system 0775 system system
    298     #symlink /data/misc/wifi/wpa_supplicant /data/system/wpa_supplicant
    299 
    300     #Create directories for Location services
    301     mkdir /data/misc/location 0770 gps gps
    302     mkdir /data/misc/location/mq 0770 gps gps
    303     mkdir /data/misc/location/xtwifi 0770 gps gps
    304     mkdir /data/misc/location/quipc 0770 gps system
    305     mkdir /data/misc/location/gsiff 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     #Create a folder for SRS to be able to create a usercfg file
    326     mkdir /data/data/media 0770 media media
    327 
    328     # NFC local data and nfcee xml storage
    329     mkdir /data/nfc 0770 nfc nfc
    330     mkdir /data/nfc/param 0770 nfc nfc
    331 
    332     # Audio DSP permissions
    333     mkdir /data/adspd 0770 media media
    334     mkdir /data/adspd/1 0770 media media
    335 
    336 on property:init.svc.wpa_supplicant=stopped
    337     stop dhcpcd
    338 
    339 on property:bluetooth.isEnabled=true
    340     start btwlancoex
    341     write /sys/class/bluetooth/hci0/idle_timeout 7000
    342 
    343 on property:ro.bluetooth.ftm_enabled=true
    344     start ftmd
    345 
    346 on property:persist.env.fastdorm.enabled=true
    347     setprop persist.radio.data_no_toggle 1
    348 
    349 service irsc_util /system/bin/irsc_util "/etc/sec_config"
    350     class main
    351     user root
    352     oneshot
    353 
    354 service mdm_helper /system/bin/mdm_helper
    355     user root
    356     group root system radio
    357     class core
    358     onrestart setprop ro.service.mdm_helper_restarted "true"
    359 
    360 service tcmd /system/bin/tcmd_mini
    361     class core
    362     user radio
    363     group radio net_raw net_admin
    364     disabled
    365 
    366 service bridgemgrd /system/bin/bridgemgrd
    367     class late_start
    368     user radio
    369     group radio
    370 
    371 # QMUX must be in multiple groups to support external process connections
    372 service qmuxd /system/bin/qmuxd
    373     class main
    374     user root
    375     group radio audio bluetooth gps
    376 
    377 service netmgrd /system/bin/netmgrd
    378     class main
    379     group radio
    380 
    381 service sensors /system/bin/sensors.qcom
    382     class core
    383     user root
    384     group root
    385 
    386 on property:ro.use_data_netmgrd=false
    387     # netmgr not supported on specific target
    388     stop netmgrd
    389 
    390 # Adjust socket buffer to enlarge TCP receive window for high bandwidth
    391 # but only if ro.data.large_tcp_window_size property is set.
    392 on property:ro.data.large_tcp_window_size=true
    393     write /proc/sys/net/ipv4/tcp_adv_win_scale  2
    394 
    395 service p2p_supplicant /system/bin/wpa_supplicant \
    396     -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \
    397     -I/system/etc/wifi/p2p_supplicant_overlay.conf  \
    398     -puse_p2p_group_interface=1p2p_device=1 \
    399     -m/data/misc/wifi/p2p_supplicant.conf \
    400     -e/data/misc/wifi/entropy.bin -g@android:wpa_wlan0
    401 #   we will start as root and wpa_supplicant will switch to user wifi
    402 #   after setting up the capabilities required for WEXT
    403 #   user wifi
    404 #   group wifi inet keystore
    405     class main
    406     socket wpa_wlan0 dgram 660 wifi wifi
    407     disabled
    408     oneshot
    409 
    410 service wpa_supplicant /system/bin/wpa_supplicant \
    411     -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \
    412     -I/system/etc/wifi/wpa_supplicant_overlay.conf \
    413     -e/data/misc/wifi/entropy.bin -g@android:wpa_wlan0
    414     #   we will start as root and wpa_supplicant will switch to user wifi
    415     #   after setting up the capabilities required for WEXT
    416     #   user wifi
    417     #   group wifi inet keystore
    418     class main
    419     socket wpa_wlan0 dgram 660 wifi wifi
    420     disabled
    421     oneshot
    422 
    423 service dhcpcd_wlan0 /system/bin/dhcpcd -ABKLG
    424     class late_start
    425     disabled
    426     oneshot
    427 
    428 service dhcpcd_p2p /system/bin/dhcpcd -ABKLG
    429     class late_start
    430     disabled
    431     oneshot
    432 
    433 service iprenew_wlan0 /system/bin/dhcpcd -n
    434     class late_start
    435     disabled
    436     oneshot
    437 
    438 service iprenew_p2p /system/bin/dhcpcd -n
    439     class late_start
    440     disabled
    441     oneshot
    442 
    443 service dhcpcd_bt-pan /system/bin/dhcpcd -BKLG
    444     class late_start
    445     disabled
    446     oneshot
    447 
    448 service iprenew_bt-pan /system/bin/dhcpcd -n
    449     class late_start
    450     disabled
    451     oneshot
    452 
    453 service dhcpcd_bnep0 /system/bin/dhcpcd -BKLG
    454     disabled
    455     oneshot
    456 
    457 service dhcpcd_bnep1 /system/bin/dhcpcd -BKLG
    458     disabled
    459     oneshot
    460 
    461 service dhcpcd_bnep2 /system/bin/dhcpcd -BKLG
    462     disabled
    463     oneshot
    464 
    465 service dhcpcd_bnep3 /system/bin/dhcpcd -BKLG
    466     disabled
    467     oneshot
    468 
    469 service dhcpcd_bnep4 /system/bin/dhcpcd -BKLG
    470     disabled
    471     oneshot
    472 
    473 service dhcpcd_eth0 /system/bin/dhcpcd -aABDKL
    474     class late_start
    475     disabled
    476     oneshot
    477 
    478 service iprenew_eth0 /system/bin/dhcpcd -n
    479     class late_start
    480     disabled
    481     oneshot
    482 
    483 service adspd /system/bin/adspd /dev/ttyHS3
    484    class late_start
    485    socket adspdsock stream 0660 media media
    486    user media
    487    group media input
    488 
    489 #start GNSS/Sensor interface daemon
    490 service gsiff_daemon /system/vendor/bin/gsiff_daemon
    491     class late_start
    492     user gps
    493     group gps net_raw
    494 
    495 on property:sys.boot_completed=1
    496     start qcom-post-boot
    497 
    498 on property:ro.debuggable=1
    499     start ss_ramdump
    500 
    501 on property:ro.data.large_tcp_window_size=true
    502     # Adjust socket buffer to enlarge TCP receive window for high bandwidth (e.g. DO-RevB)
    503     write /proc/sys/net/ipv4/tcp_adv_win_scale  2
    504 
    505 # virtual sdcard daemon running as media_rw (1023)
    506 service sdcard /system/bin/sdcard -u 1023 -g 1023 -l /data/media /mnt/shell/emulated
    507     class late_start
    508 
    509 on charger
    510     write /sys/class/leds/lcd-backlight/brightness 100
    511     mount ext4 /dev/block/platform/msm_sdcc.1/by-name/system /system ro barrier=1
    512     start thermal-engine
    513 
    514 service charger /charger
    515     class charger
    516     group log
    517     seclabel u:r:healthd:s0
    518 
    519 # Allow usb charging to be disabled peristently
    520 on property:persist.usb.chgdisabled=1
    521     write /sys/class/power_supply/battery/charging_enabled 0
    522 
    523 on property:persist.usb.chgdisabled=0
    524     write /sys/class/power_supply/battery/charging_enabled 1
    525 
    526 service qseecomd /system/bin/qseecomd
    527    class core
    528    user root
    529    group root
    530 
    531 service mpdecision /system/bin/mpdecision --avg_comp
    532    class main
    533    user root
    534 
    535 service ss_ramdump /system/bin/subsystem_ramdump
    536     class main
    537     user root
    538     group root
    539     disabled
    540 
    541 service thermal-engine /system/bin/thermal-engine
    542    class main
    543    user root
    544    group root
    545 
    546 service time_daemon /system/bin/time_daemon
    547    class late_start
    548    user root
    549    group root
    550 
    551 on property:init.svc.bootanim=stopped
    552     start usf-post-boot
    553 
    554 service qcamerasvr /system/bin/mm-qcamera-daemon
    555     class late_start
    556     user camera
    557     group camera system inet input graphics
    558 
    559 service bdAddrLoader /system/bin/bdAddrLoader -p ro.boot.btmacaddr -s -x
    560     class main
    561     user bluetooth
    562     group system bluetooth
    563     oneshot
    564 
    565 on property:vold.decrypt=trigger_reset_main
    566     stop gnss-svcd
    567 
    568 # When QCA1530 is known not to present
    569 on property:persist.qca1530=no
    570    stop gnss-svcd
    571    stop gnss-detect
    572    write /sys/kernel/qca1530/chip_state 0
    573 
    574 on property:init.svc.surfaceflinger=stopped
    575     stop ppd
    576 
    577 service mmi-touch-sh /system/bin/sh /init.mmi.touch.sh atmel
    578     class main
    579     user root
    580     oneshot
    581 
    582 # bugreport is triggered by holding down volume down, volume up and power
    583 service bugreport /system/bin/dumpstate -d -p -B \
    584         -o /data/data/com.android.shell/files/bugreports/bugreport
    585     class main
    586     disabled
    587     oneshot
    588     keycodes 114 115 116
    589 
    590 service mdm_helper_proxy /system/bin/mdm_helper_proxy
    591     class core
    592     user system
    593     group system
    594     disabled
    595 
    596 # Stop mdm_helper_proxy in case of shutdown
    597 on property:sys.shutdown.requested=*
    598     stop mdm_helper_proxy
    599 
    600 # Start mdm_helper_proxy after RIL.
    601 on property:ro.mdm_helper_proxy_req=true
    602     start mdm_helper_proxy
    603 
    604 on property:init.svc.ril-daemon=running
    605     setprop ro.mdm_helper_proxy_req true
    606