OSDN Git Service

Add Cronet namespace
authorLuke Huang <huangluke@google.com>
Tue, 17 Dec 2019 05:10:09 +0000 (13:10 +0800)
committerLuke Huang <huangluke@google.com>
Tue, 17 Dec 2019 06:38:04 +0000 (14:38 +0800)
Bug: 139397529
Test: build
Test: manual test with Cronet
Change-Id: I1728747fcb6e04bf528266957695378f8d2b28fa

contents/include/linkerconfig/namespacebuilder.h
contents/namespace/cronet.cc [new file with mode: 0644]
contents/section/legacy.cc
contents/section/system.cc
contents/section/unrestricted.cc

index 73c8699..c5be269 100644 (file)
@@ -28,6 +28,7 @@ NamespaceBuilder BuildSystemDefaultNamespace;
 NamespaceBuilder BuildMediaNamespace;
 NamespaceBuilder BuildArtNamespace;
 NamespaceBuilder BuildConscryptNamespace;
+NamespaceBuilder BuildCronetNamespace;
 NamespaceBuilder BuildResolvNamespace;
 NamespaceBuilder BuildSphalNamespace;
 NamespaceBuilder BuildRsNamespace;
diff --git a/contents/namespace/cronet.cc b/contents/namespace/cronet.cc
new file mode 100644 (file)
index 0000000..26ff47c
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+// This namespace is for libraries within the NNAPI APEX.
+
+#include "linkerconfig/namespacebuilder.h"
+
+#include "linkerconfig/environment.h"
+#include "linkerconfig/namespace.h"
+
+using android::linkerconfig::modules::AsanPath;
+using android::linkerconfig::modules::Namespace;
+
+namespace android {
+namespace linkerconfig {
+namespace contents {
+Namespace BuildCronetNamespace([[maybe_unused]] const Context& ctx) {
+  Namespace ns("cronet", /*is_isolated=*/true, /*is_visible=*/true);
+  ns.AddSearchPath("/apex/com.android.cronet/${LIB}", AsanPath::SAME_PATH);
+  ns.AddPermittedPath("/system/${LIB}");
+
+  ns.GetLink(ctx.GetSystemNamespaceName())
+      .AddSharedLib(
+          "libandroid.so", "libc.so", "libdl.so", "libm.so", "liblog.so");
+  return ns;
+}
+}  // namespace contents
+}  // namespace linkerconfig
+}  // namespace android
index c3d0940..1ae81e5 100644 (file)
@@ -35,6 +35,7 @@ Section BuildLegacySection(Context& ctx) {
   namespaces.emplace_back(BuildArtNamespace(ctx));
   namespaces.emplace_back(BuildMediaNamespace(ctx));
   namespaces.emplace_back(BuildConscryptNamespace(ctx));
+  namespaces.emplace_back(BuildCronetNamespace(ctx));
   namespaces.emplace_back(BuildResolvNamespace(ctx));
   namespaces.emplace_back(BuildNeuralNetworksNamespace(ctx));
   namespaces.emplace_back(BuildRuntimeNamespace(ctx));
index d944f5f..162c517 100644 (file)
@@ -36,6 +36,7 @@ Section BuildSystemSection(Context& ctx) {
   namespaces.emplace_back(BuildArtNamespace(ctx));
   namespaces.emplace_back(BuildMediaNamespace(ctx));
   namespaces.emplace_back(BuildConscryptNamespace(ctx));
+  namespaces.emplace_back(BuildCronetNamespace(ctx));
   namespaces.emplace_back(BuildResolvNamespace(ctx));
   namespaces.emplace_back(BuildSphalNamespace(ctx));
   namespaces.emplace_back(BuildRsNamespace(ctx));
index e7335fc..6ee8725 100644 (file)
@@ -41,6 +41,7 @@ Section BuildUnrestrictedSection(Context& ctx) {
   namespaces.emplace_back(BuildArtNamespace(ctx));
   namespaces.emplace_back(BuildMediaNamespace(ctx));
   namespaces.emplace_back(BuildConscryptNamespace(ctx));
+  namespaces.emplace_back(BuildCronetNamespace(ctx));
   namespaces.emplace_back(BuildResolvNamespace(ctx));
   namespaces.emplace_back(BuildNeuralNetworksNamespace(ctx));
   namespaces.emplace_back(BuildRuntimeNamespace(ctx));