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

on init
    # NFC streset tool name
    setprop persist.vendor.nfc.streset libstreset21
    setprop persist.vendor.se.streset libstreset21

on init && property:ro.build.flavor=factory_whitefin-userdebug
    import /vendor/etc/init/hw/init.factory.rc

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

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

on fs
    # Fingerprint
    chown system system /dev/goodix_fp

# charger driver exposes now finer grain control, map demo mode to those properties
# NOTE: demo mode can only be exit wiping data (which reset the persist properties)
on property:sys.retaildemo.enabled=1
    setprop persist.vendor.charge.stop.level 35
    setprop persist.vendor.charge.start.level 30
