Read VSR level from correct property. am: e5364d7617

Original change: https://googleplex-android-review.googlesource.com/c/platform/hardware/interfaces/+/18931908

Change-Id: Ie533b8429c1e923e2289c2b7fb89e1a2c48047e1
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Shawn Willden 2022-06-20 06:46:09 +00:00 committed by Automerger Merge Worker
commit e81f6bbb11
2 changed files with 36 additions and 30 deletions

View file

@ -388,25 +388,28 @@ bool avb_verification_enabled() {
} }
int get_vsr_api_level() { int get_vsr_api_level() {
int api_level = ::android::base::GetIntProperty("ro.board.api_level", -1); int vendor_api_level = ::android::base::GetIntProperty("ro.vendor.api_level", -1);
if (api_level == -1) { if (vendor_api_level != -1) {
api_level = ::android::base::GetIntProperty("ro.board.first_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 int product_api_level = ::android::base::GetIntProperty("ro.product.first_api_level", -1);
// wrong, it should go wrong in the direction of being too strict rather than too lenient, which if (product_api_level == -1) {
// should provoke someone to examine why we don't have proper VSR API level properties. product_api_level = ::android::base::GetIntProperty("ro.build.version.sdk", -1);
if (api_level == -1) { EXPECT_NE(product_api_level, -1) << "Could not find ro.build.version.sdk";
api_level = ::android::base::GetIntProperty("ro.product.first_api_level", -1);
} }
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 vendor_api_level;
return api_level;
} }
bool is_gsi() { bool is_gsi() {

View file

@ -1461,25 +1461,28 @@ void verify_subject(const X509* cert, //
} }
int get_vsr_api_level() { int get_vsr_api_level() {
int api_level = ::android::base::GetIntProperty("ro.board.api_level", -1); int vendor_api_level = ::android::base::GetIntProperty("ro.vendor.api_level", -1);
if (api_level == -1) { if (vendor_api_level != -1) {
api_level = ::android::base::GetIntProperty("ro.board.first_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 int product_api_level = ::android::base::GetIntProperty("ro.product.first_api_level", -1);
// wrong, it should go wrong in the direction of being too strict rather than too lenient, which if (product_api_level == -1) {
// should provoke someone to examine why we don't have proper VSR API level properties. product_api_level = ::android::base::GetIntProperty("ro.build.version.sdk", -1);
if (api_level == -1) { EXPECT_NE(product_api_level, -1) << "Could not find ro.build.version.sdk";
api_level = ::android::base::GetIntProperty("ro.product.first_api_level", -1);
} }
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 vendor_api_level;
return api_level;
} }
bool is_gsi_image() { bool is_gsi_image() {