Implement per-process target SDK version override.

Change-Id: I65bbdbe96541d8aacdd4de125cdb9c1435129413
diff --git a/linker/linker.cpp b/linker/linker.cpp
index c6588d2..8f1fcbe 100644
--- a/linker/linker.cpp
+++ b/linker/linker.cpp
@@ -3536,7 +3536,18 @@
     }
   }
 
-  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());