Flesh out direct-boot tests.

These tests are designed to verify that direct-boot capable devices
conform to the public API contract.

When a direct-boot device with a secure lock screen starts, the
default data storage must be "locked" until valid user credentials
are entered.  The LOCKED_BOOT_COMPLETED broadcast must be sent while
in this state, and once unlocked the USER_UNLOCKED and normal
BOOT_COMPLETED broadcasts must be sent.

This test runs and verifies three possible FBE modes: native,
emulated, and none.  It sets a user PIN, and then reboots to ensure
that keys are evicted from the kernel.  When finished, it restores
the device to its original state without a PIN.

Bug: 26498834
Change-Id: I57b63e5f118a5b5878080d2ec107f0406b226ab9
13 files changed