[Dell Venue] social-design-concepts:
[MENTION=4026388]xBIGREDDx[/MENTION] these link cover the new image format used :

http://events.linuxfoundation.org/sites/events/files/slides/ABS Lollipop MR1 Verified Boot.pdf

the pdf is directly link from this article : https://lwn.net/Articles/638627/

it's a good read

this is the part i was asking [MENTION=2472806]vampirefo[/MENTION] about

Bootloader Lock States

• A verified boot capable loader has 3 different security states • Locked, Verified, Unlocked

• State transitions done via Fastboot commands

• Any state transition should erase all user data • Defense against attackers with physical access to the device, so that they cannot flash a hacked boot image and

access userdata contents

• /data partition zeroed out; on next boot, fs_mgr will see this and initiate reboot into Recovery to create a

filesystem

• Any state transition should require the user to physically confirm with the device’s buttons that the

state transition is actually desired • Defense against malware which could otherwise surreptitiously issue ADB and Fastboot commands to unlock the

device without user’s knowledge

• Setting device to “unlocked” state requires option change in Settings app Developer Options • Not enabled by default, user with proximate access must get past the lock screen to change this

• More details later under Persistent Data Block slides

• Specific commands may vary across implementations • In Kernelflinger: “fastboot oem {lock|unlock|verified}

Bootloader States (Continued)

• “Locked” state • Devices ship to the end user in this state

• No images may be flashed or erased with Fastboot

• Boot/Recovery images verified by the bootloader using enrolled keystore

• “Verified” state • A subset of targets/partitions may be flashed or erased with Fastboot • bootloader, boot, system, oem, vendor, recovery, cache, userdata

• Boot/Recovery images verified by the bootloader using enrolled keystore

• Good state for running user-built Android images or third-party images like Cyanogenmod • Device is still secure, may have to deal with a prompt at boot if keystore isn’t signed by OEM

• “Unlocked” state • Device may not be unlocked if flag in Persistent Data Block is not set via Settings app

• All Fastboot commands available

• User keystore may be enrolled or erased • Erasing keystore causes loader to fall back to OEM Keystore for image verification

• “fastboot flash keystore <path to keystore binary>” or “fastboot erase keystore”

• Unlocked devices do not verify boot or recovery images

• User may be warned at boot that the device is unlocked and requires physical interaction to proceed

Persistent Data Block (PDB)

• Implemented as a small “persistent” partition in the fstab • Raw data, does not contain a filesystem

• The very last byte in the partition stores whether unlocking is enabled • Must contain value 0x01 or unlocking is forbidden

• Not all methods of doing a Master Clear are the same • A Master Clear initiated by the Settings app will zero the persistent partition along with user data • Considered trusted as user would have to get past lock screen to do this

• Erasing userdata from Recovery Console or Fastboot in “verified” state does not allow this

• Relevant code • frameworks/base/services/core/java/com/android/server/PersistentDataBlockService.java

• packages/apps/Settings/src/com/android/settings/MasterClearConfirm.java

• packages/apps/Settings/src/com/android/settings/Utils.java

• Devices with Google Mobile Services store additional user data in the PDB • Untrusted resets will require Google account sign-in of an account that has been already used by the device,

before the device can be used again

• Discourages thieves

• All bets are off if the device can be rooted

what we can't tell is if this is the lock state for the anti-theft feature or the bootloader ?