# Slider specific init.rc
import /vendor/etc/init/hw/init.gs101.rc

# When ro.build.flavor=factory_slider-userdebug, add vendor/bin/factory to default path
on init && property:ro.build.flavor=factory_slider-userdebug
    import /vendor/etc/init/hw/init.factory.rc

on init
    # logbuffer
    chown system system /dev/logbuffer_6-0057

on early-boot
    # Wait for insmod_sh to finish all common modules
    wait_for_prop vendor.common.modules.ready 1
    start insmod_sh_slider


service insmod_sh_slider /vendor/bin/init.insmod.sh /vendor/etc/init.insmod.slider.cfg
    class main
    user root
    group root system
    disabled
    oneshot
