# This file is the LOCAL_INIT_RC file for the bootstat command.

on post-fs-data
    mkdir /data/misc/bootstat 0700 root root

# This marker, boot animation stopped, is considered the point at which the
# the user may interact with the device, so it is a good proxy for the boot
# complete signal.
on property:init.svc.bootanim=stopped
    # Record boot_complete timing event.
    exec - root root -- /system/bin/bootstat -r boot_complete

    # Record the boot reason.
    exec - root root -- /system/bin/bootstat --record_boot_reason

    # Log all boot events.
    exec - root root -- /system/bin/bootstat -l
