- 4.4: Added to kernel. OEMs can enable
- 6: In 'Warning' mode
- 7: In 'Enforcing' mode
- Phone wont boot if verified boot fails
- Unless bootloader unlocked
- No direct APIs to check bootloader status
- SafetyNet seems to now check bootloader lock status
- Key Attestion checks bootloader status with hardware-based certs [verify source] signing the response
- Unless bootloader unlocked
- Phone wont boot if verified boot fails
- 8: Android Verified Boot
- Rollback prevention
- 9: Devices shipping with Android 9 MUST support verified boot link
- The Android CDD states that if a device supports verified boot then it MUST set the
android.software.verified_boot
prop flag. - Key Attestion API can be used to check bootloader / verified boot status.
- "Bootloader must provide Verified Boot public key and lock status to TEE" from bootcamp
- There is a kernal command line param
androidboot.verifiedbootstate
(seeCommunicating boot state
) but this can only be read by root it seems
"Make persistence across reboots extraordinarily difficult"
Verified Boot, introduced in Android 4.4, provides a hardware-based root of trust, and confirms the state of each stage of the boot process. During boot, Android warns the user if the operating system has been modified from the factory version, provides information about what the warning means, and offers solutions to correct it. Depending on device implementation, Verified Boot will either allow the boot to proceed, stop the device from booting so the user can take action on the issue, or prevent the device from booting up until the issue is resolved. Starting from Android 6.0, device implementations with Advanced Encryption Standard (AES) crypto performance above 50MiB/ seconds support Verified Boot for device integrity.
Details on Android Verified Boot implementation and features can be found in the Verified Boot section on source.android.com.
From Android Security 2015 Year in Review
- Verified Boot googlesource README
- Signing boot images for Android Verified Boot (AVB)
- [source.android.com] https://source.android.com/security/verifiedboot/index.html
- Verified boot in Android 7.0 won't let your phone boot if the software is corrupt
- Strictly Enforced Verified Boot with Error Correction
- CTS doc entry for M-6-23