summaryrefslogtreecommitdiff
path: root/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.cpp
diff options
context:
space:
mode:
authorDeyao Ren <deyaoren@google.com>2022-06-29 21:09:12 +0000
committerDeyao Ren <deyaoren@google.com>2022-06-29 21:13:49 +0000
commitd98063cfde10e80e8e73885cd9ad9613e1ac004b (patch)
tree6b83367fcd616afd8afd67e3816adde5df31bbeb /security/keymint/aidl/vts/functional/KeyMintAidlTestBase.cpp
parentcd155ef07727fad9033149f81ba7a6d47de56bcb (diff)
parent99764f5f7f0bf69b1584ae364073286a58ba3cac (diff)
Merge TP1A.220624.003
Change-Id: I6a3d36f9b277ec85fb7e678e6c3f44a8345fe4f6
Diffstat (limited to 'security/keymint/aidl/vts/functional/KeyMintAidlTestBase.cpp')
-rw-r--r--security/keymint/aidl/vts/functional/KeyMintAidlTestBase.cpp33
1 files changed, 18 insertions, 15 deletions
diff --git a/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.cpp b/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.cpp
index 33945fd0e5..46db4f0c78 100644
--- a/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.cpp
+++ b/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.cpp
@@ -1461,25 +1461,28 @@ void verify_subject(const X509* cert, //
}
int get_vsr_api_level() {
- int api_level = ::android::base::GetIntProperty("ro.board.api_level", -1);
- if (api_level == -1) {
- api_level = ::android::base::GetIntProperty("ro.board.first_api_level", -1);
+ int vendor_api_level = ::android::base::GetIntProperty("ro.vendor.api_level", -1);
+ if (vendor_api_level != -1) {
+ return vendor_api_level;
}
- if (api_level == -1) {
- api_level = ::android::base::GetIntProperty("ro.vndk.version", -1);
+
+ // Android S and older devices do not define ro.vendor.api_level
+ vendor_api_level = ::android::base::GetIntProperty("ro.board.api_level", -1);
+ if (vendor_api_level == -1) {
+ vendor_api_level = ::android::base::GetIntProperty("ro.board.first_api_level", -1);
}
- // We really should have a VSR API level by now. But on cuttlefish, and perhaps other weird
- // devices, we may not. So, we use the SDK first or current API level if needed. If this goes
- // wrong, it should go wrong in the direction of being too strict rather than too lenient, which
- // should provoke someone to examine why we don't have proper VSR API level properties.
- if (api_level == -1) {
- api_level = ::android::base::GetIntProperty("ro.product.first_api_level", -1);
+
+ int product_api_level = ::android::base::GetIntProperty("ro.product.first_api_level", -1);
+ if (product_api_level == -1) {
+ product_api_level = ::android::base::GetIntProperty("ro.build.version.sdk", -1);
+ EXPECT_NE(product_api_level, -1) << "Could not find ro.build.version.sdk";
}
- if (api_level == -1) {
- api_level = ::android::base::GetIntProperty("ro.build.version.sdk", -1);
+
+ // VSR API level is the minimum of vendor_api_level and product_api_level.
+ if (vendor_api_level == -1 || vendor_api_level > product_api_level) {
+ return product_api_level;
}
- EXPECT_NE(api_level, -1) << "Could not find a VSR level, or equivalent.";
- return api_level;
+ return vendor_api_level;
}
bool is_gsi_image() {