Add S extensions
Update the tests to ensure it is set on S+ but not otherwise.
Note that the implementation of how the version is derived is still a
placeholder (see b/173188089 for plans).
Bug: 173114427
Test: presubmit (SdkExtensionsTest on R and HEAD)
Merged-In: Ifc46e785a005e12cacb7ad86e8c7798e1d00b37f
Change-Id: Ifc46e785a005e12cacb7ad86e8c7798e1d00b37f
diff --git a/derive_sdk/derive_sdk.cpp b/derive_sdk/derive_sdk.cpp
index d8ab519..89c9adf 100644
--- a/derive_sdk/derive_sdk.cpp
+++ b/derive_sdk/derive_sdk.cpp
@@ -25,6 +25,7 @@
#include <android-base/file.h>
#include <android-base/logging.h>
#include <android-base/properties.h>
+#include <android-modules-utils/sdk_level.h>
#include "packages/modules/SdkExtensions/derive_sdk/sdk.pb.h"
@@ -70,10 +71,16 @@
std::string prop_value = itr == versions.end() ? "0" : std::to_string(*itr);
if (!android::base::SetProperty("build.version.extensions.r", prop_value)) {
- LOG(ERROR) << "failed to set sdk_info prop";
+ LOG(ERROR) << "failed to set r sdk_info prop";
return EXIT_FAILURE;
}
+ if (android::modules::sdklevel::IsAtLeastS()) {
+ if (!android::base::SetProperty("build.version.extensions.s", prop_value)) {
+ LOG(ERROR) << "failed to set s sdk_info prop";
+ return EXIT_FAILURE;
+ }
+ }
- LOG(INFO) << "R extension version is " << prop_value;
+ LOG(INFO) << "Extension version is " << prop_value;
return EXIT_SUCCESS;
}