I'm interested in understanding the verified boot process in Android, yet I was unable to find insights about some properties of the process.
From what I gathered so far I get that in Android devices the verified boot process is supported using
dm-verity, which checks signed hashes of the memory blocks in which the OS to be loaded is located.
Also, most (if not all) of current ARM processors based devices has the TrustZone feature which is used to create the so called "Secure World" and "Unsecure World".
What I'm trying to understand is how all this is wrapped up:
- When in the Android boot process does
- Does the
dm-verityrun from within the "Secure World"? If so how the "Secure World" OS loading is verified?
- When in the boot process is the first time that the TrustZone "worlds" feature is accessed/activated?