diff options
| author | Naveen Kumar <kumarn@codeaurora.org> | 2016-12-07 20:12:33 +0530 |
|---|---|---|
| committer | Naveen Kumar <kumarn@codeaurora.org> | 2016-12-08 00:23:54 +0530 |
| commit | 20c90d3d72fe6e3b092e1e779ff2d0ac4569cd38 (patch) | |
| tree | 95a97885e67b28cad7bf80d13236d1b4320e030f | |
| parent | 85a0b46b25d6411b62f0badf3904f9cd22aa5f73 (diff) | |
| parent | d0d4c3ea59dec4e381b97c723c29807985a28df7 (diff) | |
| download | android_system_keymaster-20c90d3d72fe6e3b092e1e779ff2d0ac4569cd38.tar.gz android_system_keymaster-20c90d3d72fe6e3b092e1e779ff2d0ac4569cd38.tar.bz2 android_system_keymaster-20c90d3d72fe6e3b092e1e779ff2d0ac4569cd38.zip | |
Merge N-MR1 to remote branch.
Change-Id: I2f4074cf02a25bcc611bef79e07c17b866bd96d6
| -rw-r--r-- | soft_keymaster_context.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/soft_keymaster_context.cpp b/soft_keymaster_context.cpp index 087439a..10ce893 100644 --- a/soft_keymaster_context.cpp +++ b/soft_keymaster_context.cpp @@ -493,6 +493,21 @@ keymaster_error_t SoftKeymasterContext::UpgradeKeyBlob(const KeymasterKeyBlob& k // Handle cases 1 & 2. bool set_changed = false; + + if (os_version_ == 0) { + // We need to allow "upgrading" OS version to zero, to support upgrading from proper + // numbered releases to unnumbered development and preview releases. + + int key_os_version_pos = sw_enforced.find(TAG_OS_VERSION); + if (key_os_version_pos != -1) { + uint32_t key_os_version = sw_enforced[key_os_version_pos].integer; + if (key_os_version != 0) { + sw_enforced[key_os_version_pos].integer = os_version_; + set_changed = true; + } + } + } + if (!UpgradeIntegerTag(TAG_OS_VERSION, os_version_, &sw_enforced, &set_changed) || !UpgradeIntegerTag(TAG_OS_PATCHLEVEL, os_patchlevel_, &sw_enforced, &set_changed)) // One of the version fields would have been a downgrade. Not allowed. |
