Call getKernelLevel() only if kernel is GKI 2.0

Non-GKI or pre-S vendor wouldn't define kernel level, thus
getKernelLevel() would fail.
GKI 2.0 kernel release string format ensures getKernelLevel() to return
a valid value
https://source.android.com/devices/architecture/kernel/gki-versioning

Bug: 215380606
Test: atest vts_gki_compliance_test
Change-Id: I290d8c7a25dccacc47823c30d551ef530f70e002
diff --git a/avb/vts_gki_compliance_test.cpp b/avb/vts_gki_compliance_test.cpp
index 69b276c..2577dd5 100644
--- a/avb/vts_gki_compliance_test.cpp
+++ b/avb/vts_gki_compliance_test.cpp
@@ -435,11 +435,6 @@
     runtime_info = android::vintf::VintfObject::GetRuntimeInfo();
     ASSERT_NE(nullptr, runtime_info);
 
-    std::string error_msg;
-    kernel_level =
-        android::vintf::VintfObject::GetInstance()->getKernelLevel(&error_msg);
-    ASSERT_NE(android::vintf::Level::UNSPECIFIED, kernel_level) << error_msg;
-
     product_first_api_level =
         android::base::GetIntProperty("ro.product.first_api_level", 0);
     ASSERT_NE(0, product_first_api_level)
@@ -466,7 +461,6 @@
   }
 
   std::shared_ptr<const android::vintf::RuntimeInfo> runtime_info;
-  android::vintf::Level kernel_level;
   int product_first_api_level;
 };
 
@@ -527,6 +521,12 @@
                  << runtime_info->kernelVersion();
   }
 
+  // GKI 2.0 ensures getKernelLevel() to return valid value.
+  std::string error_msg;
+  const auto kernel_level =
+      android::vintf::VintfObject::GetInstance()->getKernelLevel(&error_msg);
+  ASSERT_NE(android::vintf::Level::UNSPECIFIED, kernel_level) << error_msg;
+
   std::vector<android::fs_mgr::VBMetaData> boot_signature_images;
   std::unique_ptr<GkiBootImage> boot_image =
       LoadAndVerifyGkiBootImage("boot", &boot_signature_images);