DnsResolver - improve api level detection for aosp

Use the maximum of ro.build.version.sdk & ro.product.first_api_level
to determine api level to use.

This makes AOSP master be >=R (technically already S) instead of ==Q.

See:                                        rvc-dev   aosp
  ro.build.version.sdk:                     [30]   vs [29]
  ro.product.first_api_level:               [29]   vs [31]
  ro.build.version.preview_sdk:             [0]    vs [1]
  ro.build.version.preview_sdk_fingerprint: [REL]  vs [...sha1...]

This does require us to treat aosp as the source of truth for netd,
but we do that anyway.

Test: builds, atest, dnsresolver tests, TreeHugger
Bug: 159994981
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I169529e883c570af351f00403f8ce13bb763c6db
diff --git a/DnsResolver.cpp b/DnsResolver.cpp
index 9dba693..8c087b6 100644
--- a/DnsResolver.cpp
+++ b/DnsResolver.cpp
@@ -30,8 +30,11 @@
     LOG(INFO) << __func__ << ": Initializing resolver";
     resolv_set_log_severity(android::base::WARNING);
 
+    uint64_t buildVersionSdk = android::base::GetUintProperty<uint64_t>("ro.build.version.sdk", 0);
+    uint64_t firstApiLevel =
+            android::base::GetUintProperty<uint64_t>("ro.product.first_api_level", 0);
     using android::net::gApiLevel;
-    gApiLevel = android::base::GetUintProperty<uint64_t>("ro.build.version.sdk", 0);
+    gApiLevel = std::max(buildVersionSdk, firstApiLevel);
     using android::net::gResNetdCallbacks;
     gResNetdCallbacks.check_calling_permission = callbacks->check_calling_permission;
     gResNetdCallbacks.get_network_context = callbacks->get_network_context;