TrustyKeyMint: support boot, vendor patchlevels am: 830ea32e77
Original change: https://googleplex-android-review.googlesource.com/c/platform/system/core/+/15341992 Change-Id: Ibd1d3fc1b0529a15bae62a4ce917c81ee392e1ca
This commit is contained in:
commit
9a67d7331e
|
@ -79,6 +79,16 @@ int TrustyKeymaster::Initialize(KmVersion version) {
|
|||
return -1;
|
||||
}
|
||||
|
||||
// Set the vendor patchlevel to value retrieved from system property (which
|
||||
// requires SELinux permission).
|
||||
ConfigureVendorPatchlevelRequest vendor_req(message_version());
|
||||
vendor_req.vendor_patchlevel = GetVendorPatchlevel();
|
||||
ConfigureVendorPatchlevelResponse vendor_rsp = ConfigureVendorPatchlevel(vendor_req);
|
||||
if (vendor_rsp.error != KM_ERROR_OK) {
|
||||
LOG(ERROR) << "Failed to configure keymaster vendor patchlevel: " << vendor_rsp.error;
|
||||
// Don't fail if this message isn't understood.
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -262,4 +272,11 @@ DeviceLockedResponse TrustyKeymaster::DeviceLocked(const DeviceLockedRequest& re
|
|||
return response;
|
||||
}
|
||||
|
||||
ConfigureVendorPatchlevelResponse TrustyKeymaster::ConfigureVendorPatchlevel(
|
||||
const ConfigureVendorPatchlevelRequest& request) {
|
||||
ConfigureVendorPatchlevelResponse response(message_version());
|
||||
ForwardCommand(KM_CONFIGURE_VENDOR_PATCHLEVEL, request, &response);
|
||||
return response;
|
||||
}
|
||||
|
||||
} // namespace keymaster
|
||||
|
|
|
@ -64,6 +64,8 @@ class TrustyKeymaster {
|
|||
GetVersion2Response GetVersion2(const GetVersion2Request& request);
|
||||
EarlyBootEndedResponse EarlyBootEnded();
|
||||
DeviceLockedResponse DeviceLocked(const DeviceLockedRequest& request);
|
||||
ConfigureVendorPatchlevelResponse ConfigureVendorPatchlevel(
|
||||
const ConfigureVendorPatchlevelRequest& request);
|
||||
|
||||
uint32_t message_version() const { return message_version_; }
|
||||
|
||||
|
|
|
@ -58,6 +58,7 @@ enum keymaster_command : uint32_t {
|
|||
KM_DEVICE_LOCKED = (30 << KEYMASTER_REQ_SHIFT),
|
||||
KM_GENERATE_RKP_KEY = (31 << KEYMASTER_REQ_SHIFT),
|
||||
KM_GENERATE_CSR = (32 << KEYMASTER_REQ_SHIFT),
|
||||
KM_CONFIGURE_VENDOR_PATCHLEVEL = (33 << KEYMASTER_REQ_SHIFT),
|
||||
|
||||
// Bootloader/provisioning calls.
|
||||
KM_SET_BOOT_PARAMS = (0x1000 << KEYMASTER_REQ_SHIFT),
|
||||
|
@ -71,7 +72,8 @@ enum keymaster_command : uint32_t {
|
|||
KM_SET_PRODUCT_ID = (0x9000 << KEYMASTER_REQ_SHIFT),
|
||||
KM_CLEAR_ATTESTATION_CERT_CHAIN = (0xa000 << KEYMASTER_REQ_SHIFT),
|
||||
KM_SET_WRAPPED_ATTESTATION_KEY = (0xb000 << KEYMASTER_REQ_SHIFT),
|
||||
KM_SET_ATTESTATION_IDS = (0xc000 << KEYMASTER_REQ_SHIFT)
|
||||
KM_SET_ATTESTATION_IDS = (0xc000 << KEYMASTER_REQ_SHIFT),
|
||||
KM_CONFIGURE_BOOT_PATCHLEVEL = (0xd000 << KEYMASTER_REQ_SHIFT),
|
||||
};
|
||||
|
||||
#ifdef __ANDROID__
|
||||
|
|
Loading…
Reference in New Issue