40 lines
1.4 KiB
Diff
40 lines
1.4 KiB
Diff
From efbdeeea6ac6ac7e6a33ba9034d0d26a2da2c92e Mon Sep 17 00:00:00 2001
|
|
From: Danny Baumann <dannybaumann@web.de>
|
|
Date: Wed, 29 Aug 2018 11:21:52 +0200
|
|
Subject: [PATCH 1/6] Implement per-process target SDK version override.
|
|
|
|
Change-Id: I65bbdbe96541d8aacdd4de125cdb9c1435129413
|
|
|
|
This is only partial cherry-pick. Value won't be set via Android.bp
|
|
---
|
|
linker/linker.cpp | 13 ++++++++++++-
|
|
1 file changed, 12 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/linker/linker.cpp b/linker/linker.cpp
|
|
index b59df7302..ccdb131ca 100644
|
|
--- a/linker/linker.cpp
|
|
+++ b/linker/linker.cpp
|
|
@@ -4217,7 +4217,18 @@ std::vector<android_namespace_t*> init_default_namespaces(const char* executable
|
|
// somain and ld_preloads are added to these namespaces after LD_PRELOAD libs are linked
|
|
}
|
|
|
|
- set_application_target_sdk_version(config->target_sdk_version());
|
|
+ uint32_t target_sdk = config->target_sdk_version();
|
|
+#ifdef SDK_VERSION_OVERRIDES
|
|
+ for (const auto& entry : android::base::Split(SDK_VERSION_OVERRIDES, " ")) {
|
|
+ auto splitted = android::base::Split(entry, "=");
|
|
+ if (splitted.size() == 2 && splitted[0] == executable_path) {
|
|
+ target_sdk = static_cast<uint32_t>(std::stoul(splitted[1]));
|
|
+ break;
|
|
+ }
|
|
+ }
|
|
+ DEBUG("Target SDK for %s = %d", executable_path, target_sdk);
|
|
+#endif
|
|
+ set_application_target_sdk_version(target_sdk);
|
|
|
|
std::vector<android_namespace_t*> created_namespaces;
|
|
created_namespaces.reserve(namespaces.size());
|
|
--
|
|
2.17.1
|
|
|