Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e9495bb0 authored by Przemyslaw Szczepaniak's avatar Przemyslaw Szczepaniak Committed by android-build-merger
Browse files

Merge "ld.config for com.android.neuralnetworks APEX." am: 2f40aa0f am: d91345d6

am: 18c64a08

Change-Id: I522cb101e0dfbcd5a37b47a0f733a1e1aeddfc40
parents 01c9903c 18c64a08
Loading
Loading
Loading
Loading
+9 −0
Original line number Original line Diff line number Diff line
@@ -43,6 +43,7 @@ namespace {
constexpr const char* kVendorNamespaceName = "sphal";
constexpr const char* kVendorNamespaceName = "sphal";
constexpr const char* kVndkNamespaceName = "vndk";
constexpr const char* kVndkNamespaceName = "vndk";
constexpr const char* kRuntimeNamespaceName = "runtime";
constexpr const char* kRuntimeNamespaceName = "runtime";
constexpr const char* kNeuralNetworksNamespaceName = "neuralnetworks";


// classloader-namespace is a linker namespace that is created for the loaded
// classloader-namespace is a linker namespace that is created for the loaded
// app. To be specific, it is created for the app classloader. When
// app. To be specific, it is created for the app classloader. When
@@ -238,6 +239,14 @@ NativeLoaderNamespace* LibraryNamespaces::Create(JNIEnv* env, uint32_t target_sd
    }
    }
  }
  }


  // Give access to NNAPI libraries (apex-updated LLNDK library).
  auto nnapi_ns =
      NativeLoaderNamespace::GetExportedNamespace(kNeuralNetworksNamespaceName, is_bridged);
  if (!app_ns.Link(nnapi_ns, neuralnetworks_public_libraries())) {
    *error_msg = app_ns.GetError();
    return nullptr;
  }

  // Give access to VNDK-SP libraries from the 'vndk' namespace.
  // Give access to VNDK-SP libraries from the 'vndk' namespace.
  if (unbundled_vendor_or_product_app && !vndksp_libraries().empty()) {
  if (unbundled_vendor_or_product_app && !vndksp_libraries().empty()) {
    auto vndk_ns = NativeLoaderNamespace::GetExportedNamespace(kVndkNamespaceName, is_bridged);
    auto vndk_ns = NativeLoaderNamespace::GetExportedNamespace(kVndkNamespaceName, is_bridged);
+17 −0
Original line number Original line Diff line number Diff line
@@ -51,6 +51,8 @@ const std::vector<const std::string> kRuntimePublicLibraries = {


constexpr const char* kRuntimeApexLibPath = "/apex/com.android.runtime/" LIB;
constexpr const char* kRuntimeApexLibPath = "/apex/com.android.runtime/" LIB;


constexpr const char* kNeuralNetworksApexPublicLibrary = "libneuralnetworks.so";

// TODO(b/130388701): do we need this?
// TODO(b/130388701): do we need this?
std::string root_dir() {
std::string root_dir() {
  static const char* android_root_env = getenv("ANDROID_ROOT");
  static const char* android_root_env = getenv("ANDROID_ROOT");
@@ -219,6 +221,12 @@ static std::string InitDefaultPublicLibraries() {
      sonames.erase(it);
      sonames.erase(it);
    }
    }
  }
  }

  // Remove the public libs in the nnapi namespace.
  auto it = std::find(sonames.begin(), sonames.end(), kNeuralNetworksApexPublicLibrary);
  if (it != sonames.end()) {
    sonames.erase(it);
  }
  return android::base::Join(sonames, ':');
  return android::base::Join(sonames, ':');
}
}


@@ -267,6 +275,10 @@ static std::string InitVndkspLibraries() {
  return android::base::Join(sonames, ':');
  return android::base::Join(sonames, ':');
}
}


static std::string InitNeuralNetworksPublicLibraries() {
  return kNeuralNetworksApexPublicLibrary;
}

}  // namespace
}  // namespace


const std::string& default_public_libraries() {
const std::string& default_public_libraries() {
@@ -289,6 +301,11 @@ const std::string& extended_public_libraries() {
  return list;
  return list;
}
}


const std::string& neuralnetworks_public_libraries() {
  static std::string list = InitNeuralNetworksPublicLibraries();
  return list;
}

const std::string& llndk_libraries() {
const std::string& llndk_libraries() {
  static std::string list = InitLlndkLibraries();
  static std::string list = InitLlndkLibraries();
  return list;
  return list;
+1 −0
Original line number Original line Diff line number Diff line
@@ -26,6 +26,7 @@ const std::string& default_public_libraries();
const std::string& runtime_public_libraries();
const std::string& runtime_public_libraries();
const std::string& vendor_public_libraries();
const std::string& vendor_public_libraries();
const std::string& extended_public_libraries();
const std::string& extended_public_libraries();
const std::string& neuralnetworks_public_libraries();
const std::string& llndk_libraries();
const std::string& llndk_libraries();
const std::string& vndksp_libraries();
const std::string& vndksp_libraries();


+27 −3
Original line number Original line Diff line number Diff line
@@ -42,7 +42,7 @@ namespace.default.asan.search.paths += /odm/${LIB}
# APEX related namespaces.
# APEX related namespaces.
###############################################################################
###############################################################################


additional.namespaces = runtime,conscrypt,media,resolv
additional.namespaces = runtime,conscrypt,media,neuralnetworks,resolv


# Keep in sync with the "platform" namespace in art/build/apex/ld.config.txt.
# Keep in sync with the "platform" namespace in art/build/apex/ld.config.txt.
# If a shared library or an executable requests a shared library that
# If a shared library or an executable requests a shared library that
@@ -51,8 +51,8 @@ additional.namespaces = runtime,conscrypt,media,resolv
# shared library cannot be loaded from the runtime namespace either, the
# shared library cannot be loaded from the runtime namespace either, the
# dynamic linker tries to load the shared library from the resolv namespace.
# dynamic linker tries to load the shared library from the resolv namespace.
# Finally, if all attempts fail, the dynamic linker returns an error.
# Finally, if all attempts fail, the dynamic linker returns an error.
namespace.default.links = runtime,resolv
namespace.default.links = runtime,resolv,neuralnetworks
namespace.default.asan.links = runtime,resolv
namespace.default.asan.links = runtime,resolv,neuralnetworks
namespace.default.link.runtime.shared_libs  = libandroidicu.so
namespace.default.link.runtime.shared_libs  = libandroidicu.so
namespace.default.link.runtime.shared_libs += libdexfile_external.so
namespace.default.link.runtime.shared_libs += libdexfile_external.so
namespace.default.link.runtime.shared_libs += libdexfiled_external.so
namespace.default.link.runtime.shared_libs += libdexfiled_external.so
@@ -71,6 +71,9 @@ namespace.default.link.runtime.shared_libs += libpac.so
# to be loaded in the default namespace.
# to be loaded in the default namespace.
namespace.default.link.resolv.shared_libs = libnetd_resolv.so
namespace.default.link.resolv.shared_libs = libnetd_resolv.so


# LLNDK library moved into apex
namespace.default.link.neuralnetworks.shared_libs = libneuralnetworks.so

###############################################################################
###############################################################################
# "runtime" APEX namespace
# "runtime" APEX namespace
#
#
@@ -158,6 +161,27 @@ namespace.resolv.link.default.shared_libs += libbinder_ndk.so
namespace.resolv.link.default.shared_libs += liblog.so
namespace.resolv.link.default.shared_libs += liblog.so
namespace.resolv.link.default.shared_libs += libvndksupport.so
namespace.resolv.link.default.shared_libs += libvndksupport.so


###############################################################################
# "neuralnetworks" APEX namespace
#
# This namespace is for libraries within the NNAPI APEX.
###############################################################################
namespace.neuralnetworks.isolated = true
namespace.neuralnetworks.visible = true

namespace.neuralnetworks.search.paths = /apex/com.android.neuralnetworks/${LIB}
namespace.neuralnetworks.asan.search.paths = /apex/com.android.neuralnetworks/${LIB}
namespace.neuralnetworks.links = default
namespace.neuralnetworks.link.default.shared_libs  = libc.so
namespace.neuralnetworks.link.default.shared_libs += libcgrouprc.so
namespace.neuralnetworks.link.default.shared_libs += libdl.so
namespace.neuralnetworks.link.default.shared_libs += liblog.so
namespace.neuralnetworks.link.default.shared_libs += libm.so
namespace.neuralnetworks.link.default.shared_libs += libnativewindow.so
namespace.neuralnetworks.link.default.shared_libs += libsync.so
namespace.neuralnetworks.link.default.shared_libs += libvndksupport.so


###############################################################################
###############################################################################
# Namespace config for binaries under /postinstall.
# Namespace config for binaries under /postinstall.
# Only one default namespace is defined and it has no directories other than
# Only one default namespace is defined and it has no directories other than
+100 −13
Original line number Original line Diff line number Diff line
@@ -35,7 +35,7 @@ dir.postinstall = /postinstall
dir.system = /data
dir.system = /data


[system]
[system]
additional.namespaces = runtime,conscrypt,media,resolv,sphal,vndk,rs
additional.namespaces = runtime,conscrypt,media,neuralnetworks,resolv,sphal,vndk,rs


###############################################################################
###############################################################################
# "default" namespace
# "default" namespace
@@ -132,7 +132,7 @@ namespace.default.asan.permitted.paths += /system/${LIB}/bootstrap
# shared library cannot be loaded from the runtime namespace either, the
# shared library cannot be loaded from the runtime namespace either, the
# dynamic linker tries to load the shared library from the resolv namespace.
# dynamic linker tries to load the shared library from the resolv namespace.
# Finally, if all attempts fail, the dynamic linker returns an error.
# Finally, if all attempts fail, the dynamic linker returns an error.
namespace.default.links = runtime,resolv
namespace.default.links = runtime,resolv,neuralnetworks
namespace.default.link.runtime.shared_libs  = libandroidicu.so
namespace.default.link.runtime.shared_libs  = libandroidicu.so
namespace.default.link.runtime.shared_libs += libdexfile_external.so
namespace.default.link.runtime.shared_libs += libdexfile_external.so
namespace.default.link.runtime.shared_libs += libdexfiled_external.so
namespace.default.link.runtime.shared_libs += libdexfiled_external.so
@@ -152,6 +152,9 @@ namespace.default.link.runtime.shared_libs += %SANITIZER_RUNTIME_LIBRARIES%
# to be loaded in the default namespace.
# to be loaded in the default namespace.
namespace.default.link.resolv.shared_libs = libnetd_resolv.so
namespace.default.link.resolv.shared_libs = libnetd_resolv.so


# LLNDK library moved into apex
namespace.default.link.neuralnetworks.shared_libs = libneuralnetworks.so

###############################################################################
###############################################################################
# "runtime" APEX namespace
# "runtime" APEX namespace
#
#
@@ -186,13 +189,16 @@ namespace.media.asan.search.paths = /apex/com.android.media/${LIB}
namespace.media.permitted.paths = /apex/com.android.media/${LIB}/extractors
namespace.media.permitted.paths = /apex/com.android.media/${LIB}/extractors
namespace.media.asan.permitted.paths = /apex/com.android.media/${LIB}/extractors
namespace.media.asan.permitted.paths = /apex/com.android.media/${LIB}/extractors


namespace.media.links = default
namespace.media.links = default,neuralnetworks
namespace.media.link.default.shared_libs  = %LLNDK_LIBRARIES%
namespace.media.link.default.shared_libs  = %LLNDK_LIBRARIES%
namespace.media.link.default.shared_libs += libbinder_ndk.so
namespace.media.link.default.shared_libs += libbinder_ndk.so
namespace.media.link.default.shared_libs += libcgrouprc.so
namespace.media.link.default.shared_libs += libcgrouprc.so
namespace.media.link.default.shared_libs += libmediametrics.so
namespace.media.link.default.shared_libs += libmediametrics.so
namespace.media.link.default.shared_libs += %SANITIZER_RUNTIME_LIBRARIES%
namespace.media.link.default.shared_libs += %SANITIZER_RUNTIME_LIBRARIES%


# LLNDK library moved into apex
namespace.media.link.neuralnetworks.shared_libs = libneuralnetworks.so

###############################################################################
###############################################################################
# "conscrypt" APEX namespace
# "conscrypt" APEX namespace
#
#
@@ -270,7 +276,7 @@ namespace.sphal.asan.permitted.paths += /vendor/${LIB}
# libs listed here can be used. Order is important here as the namespaces are
# libs listed here can be used. Order is important here as the namespaces are
# tried in this order. rs should be before vndk because both are capable
# tried in this order. rs should be before vndk because both are capable
# of loading libRS_internal.so
# of loading libRS_internal.so
namespace.sphal.links = rs,default,vndk
namespace.sphal.links = rs,default,vndk,neuralnetworks


# Renderscript gets separate namespace
# Renderscript gets separate namespace
namespace.sphal.link.rs.shared_libs = libRS_internal.so
namespace.sphal.link.rs.shared_libs = libRS_internal.so
@@ -280,6 +286,10 @@ namespace.sphal.link.default.shared_libs += %SANITIZER_RUNTIME_LIBRARIES%


namespace.sphal.link.vndk.shared_libs = %VNDK_SAMEPROCESS_LIBRARIES%
namespace.sphal.link.vndk.shared_libs = %VNDK_SAMEPROCESS_LIBRARIES%


# LLNDK library moved into apex
namespace.sphal.link.neuralnetworks.shared_libs = libneuralnetworks.so


###############################################################################
###############################################################################
# "rs" namespace
# "rs" namespace
#
#
@@ -319,7 +329,7 @@ namespace.rs.asan.permitted.paths += /data/asan/vendor/${LIB}
namespace.rs.asan.permitted.paths +=           /vendor/${LIB}
namespace.rs.asan.permitted.paths +=           /vendor/${LIB}
namespace.rs.asan.permitted.paths += /data
namespace.rs.asan.permitted.paths += /data


namespace.rs.links = default,vndk
namespace.rs.links = default,vndk,neuralnetworks


namespace.rs.link.default.shared_libs  = %LLNDK_LIBRARIES%
namespace.rs.link.default.shared_libs  = %LLNDK_LIBRARIES%
namespace.rs.link.default.shared_libs += %SANITIZER_RUNTIME_LIBRARIES%
namespace.rs.link.default.shared_libs += %SANITIZER_RUNTIME_LIBRARIES%
@@ -329,6 +339,10 @@ namespace.rs.link.default.shared_libs += %PRIVATE_LLNDK_LIBRARIES%


namespace.rs.link.vndk.shared_libs = %VNDK_SAMEPROCESS_LIBRARIES%
namespace.rs.link.vndk.shared_libs = %VNDK_SAMEPROCESS_LIBRARIES%


# LLNDK library moved into apex
namespace.rs.link.neuralnetworks.shared_libs = libneuralnetworks.so


###############################################################################
###############################################################################
# "vndk" namespace
# "vndk" namespace
#
#
@@ -374,7 +388,7 @@ namespace.vndk.asan.permitted.paths += /system/${LIB}/vndk-sp%VNDK_VER
# The "vndk" namespace links to "default" namespace for LLNDK libs and links to
# The "vndk" namespace links to "default" namespace for LLNDK libs and links to
# "sphal" namespace for vendor libs.  The ordering matters.  The "default"
# "sphal" namespace for vendor libs.  The ordering matters.  The "default"
# namespace has higher priority than the "sphal" namespace.
# namespace has higher priority than the "sphal" namespace.
namespace.vndk.links = default,sphal,runtime
namespace.vndk.links = default,sphal,runtime,neuralnetworks


# When these NDK libs are required inside this namespace, then it is redirected
# When these NDK libs are required inside this namespace, then it is redirected
# to the default namespace. This is possible since their ABI is stable across
# to the default namespace. This is possible since their ABI is stable across
@@ -387,6 +401,28 @@ namespace.vndk.link.runtime.shared_libs = %SANITIZER_RUNTIME_LIBRARIES%
# Allow VNDK-SP extensions to use vendor libraries
# Allow VNDK-SP extensions to use vendor libraries
namespace.vndk.link.sphal.allow_all_shared_libs = true
namespace.vndk.link.sphal.allow_all_shared_libs = true


# LLNDK library moved into apex
namespace.vndk.link.neuralnetworks.shared_libs = libneuralnetworks.so

###############################################################################
# "neuralnetworks" APEX namespace
#
# This namespace is for libraries within the NNAPI APEX.
###############################################################################
namespace.neuralnetworks.isolated = true
namespace.neuralnetworks.visible = true

namespace.neuralnetworks.search.paths = /apex/com.android.neuralnetworks/${LIB}
namespace.neuralnetworks.asan.search.paths = /apex/com.android.neuralnetworks/${LIB}
namespace.neuralnetworks.links = default
namespace.neuralnetworks.link.default.shared_libs  = libc.so
namespace.neuralnetworks.link.default.shared_libs += libcgrouprc.so
namespace.neuralnetworks.link.default.shared_libs += libdl.so
namespace.neuralnetworks.link.default.shared_libs += liblog.so
namespace.neuralnetworks.link.default.shared_libs += libm.so
namespace.neuralnetworks.link.default.shared_libs += libnativewindow.so
namespace.neuralnetworks.link.default.shared_libs += libsync.so
namespace.neuralnetworks.link.default.shared_libs += libvndksupport.so


###############################################################################
###############################################################################
# Namespace config for vendor processes. In O, no restriction is enforced for
# Namespace config for vendor processes. In O, no restriction is enforced for
@@ -395,7 +431,7 @@ namespace.vndk.link.sphal.allow_all_shared_libs = true
# (LL-NDK only) access.
# (LL-NDK only) access.
###############################################################################
###############################################################################
[vendor]
[vendor]
additional.namespaces = runtime,system,vndk%VNDK_IN_SYSTEM_NS%
additional.namespaces = runtime,system,neuralnetworks,vndk%VNDK_IN_SYSTEM_NS%


###############################################################################
###############################################################################
# "default" namespace
# "default" namespace
@@ -436,7 +472,7 @@ namespace.default.asan.permitted.paths += /odm
namespace.default.asan.permitted.paths += /data/asan/vendor
namespace.default.asan.permitted.paths += /data/asan/vendor
namespace.default.asan.permitted.paths +=           /vendor
namespace.default.asan.permitted.paths +=           /vendor


namespace.default.links = system,vndk%VNDK_IN_SYSTEM_NS%,runtime
namespace.default.links = system,vndk%VNDK_IN_SYSTEM_NS%,runtime,neuralnetworks
namespace.default.link.runtime.shared_libs = %SANITIZER_RUNTIME_LIBRARIES%
namespace.default.link.runtime.shared_libs = %SANITIZER_RUNTIME_LIBRARIES%
namespace.default.link.system.shared_libs  = %LLNDK_LIBRARIES%
namespace.default.link.system.shared_libs  = %LLNDK_LIBRARIES%
namespace.default.link.system.shared_libs += %SANITIZER_RUNTIME_LIBRARIES%
namespace.default.link.system.shared_libs += %SANITIZER_RUNTIME_LIBRARIES%
@@ -444,6 +480,9 @@ namespace.default.link.vndk_in_system.shared_libs = %VNDK_USING_CORE_VARIANT_LIB
namespace.default.link.vndk.shared_libs  = %VNDK_SAMEPROCESS_LIBRARIES%
namespace.default.link.vndk.shared_libs  = %VNDK_SAMEPROCESS_LIBRARIES%
namespace.default.link.vndk.shared_libs += %VNDK_CORE_LIBRARIES%
namespace.default.link.vndk.shared_libs += %VNDK_CORE_LIBRARIES%


# LLNDK library moved into apex
namespace.default.link.neuralnetworks.shared_libs = libneuralnetworks.so

###############################################################################
###############################################################################
# "runtime" APEX namespace
# "runtime" APEX namespace
#
#
@@ -459,6 +498,7 @@ namespace.runtime.links = system
# classloader-namespace for oat files, and tighten this up.
# classloader-namespace for oat files, and tighten this up.
namespace.runtime.link.system.allow_all_shared_libs = true
namespace.runtime.link.system.allow_all_shared_libs = true



###############################################################################
###############################################################################
# "vndk" namespace
# "vndk" namespace
#
#
@@ -492,7 +532,7 @@ namespace.vndk.asan.search.paths += /system/${LIB}/vndk%VNDK_VER%
# Android releases.  The links here should be identical to that of the
# Android releases.  The links here should be identical to that of the
# 'vndk_in_system' namespace, except for the link between 'vndk' and
# 'vndk_in_system' namespace, except for the link between 'vndk' and
# 'vndk_in_system'.
# 'vndk_in_system'.
namespace.vndk.links = system,default%VNDK_IN_SYSTEM_NS%,runtime
namespace.vndk.links = system,default%VNDK_IN_SYSTEM_NS%,runtime,neuralnetworks


namespace.vndk.link.system.shared_libs  = %LLNDK_LIBRARIES%
namespace.vndk.link.system.shared_libs  = %LLNDK_LIBRARIES%
namespace.vndk.link.system.shared_libs += %SANITIZER_RUNTIME_LIBRARIES%
namespace.vndk.link.system.shared_libs += %SANITIZER_RUNTIME_LIBRARIES%
@@ -503,6 +543,9 @@ namespace.vndk.link.runtime.shared_libs = %SANITIZER_RUNTIME_LIBRARIES%


namespace.vndk.link.vndk_in_system.shared_libs = %VNDK_USING_CORE_VARIANT_LIBRARIES%
namespace.vndk.link.vndk_in_system.shared_libs = %VNDK_USING_CORE_VARIANT_LIBRARIES%


# LLNDK library moved into apex
namespace.vndk.link.neuralnetworks.shared_libs = libneuralnetworks.so

###############################################################################
###############################################################################
# "system" namespace
# "system" namespace
#
#
@@ -572,14 +615,34 @@ namespace.vndk_in_system.whitelisted = %VNDK_USING_CORE_VARIANT_LIBRARIES%
#   1. 'vndk_in_system' needs to be freely linked back to 'vndk'.
#   1. 'vndk_in_system' needs to be freely linked back to 'vndk'.
#   2. 'vndk_in_system' does not need to link to 'default', as any library that
#   2. 'vndk_in_system' does not need to link to 'default', as any library that
#      requires anything vendor would not be a vndk_in_system library.
#      requires anything vendor would not be a vndk_in_system library.
namespace.vndk_in_system.links = vndk,system,runtime
namespace.vndk_in_system.links = vndk,system,runtime,neuralnetworks
namespace.vndk_in_system.link.runtime.shared_libs = %SANITIZER_RUNTIME_LIBRARIES%
namespace.vndk_in_system.link.runtime.shared_libs = %SANITIZER_RUNTIME_LIBRARIES%


namespace.vndk_in_system.link.system.shared_libs  = %LLNDK_LIBRARIES%
namespace.vndk_in_system.link.system.shared_libs  = %LLNDK_LIBRARIES%
namespace.vndk_in_system.link.system.shared_libs += %SANITIZER_RUNTIME_LIBRARIES%
namespace.vndk_in_system.link.system.shared_libs += %SANITIZER_RUNTIME_LIBRARIES%


namespace.vndk_in_system.link.vndk.allow_all_shared_libs = true
namespace.vndk_in_system.link.vndk.allow_all_shared_libs = true
namespace.vndk_in_system.link.neuralnetworks.shared_libs = libneuralnetworks.so


###############################################################################
# "neuralnetworks" APEX namespace
#
# This namespace is for libraries within the NNAPI APEX.
###############################################################################
namespace.neuralnetworks.isolated = true
namespace.neuralnetworks.visible = true

namespace.neuralnetworks.search.paths = /apex/com.android.neuralnetworks/${LIB}
namespace.neuralnetworks.asan.search.paths = /apex/com.android.neuralnetworks/${LIB}
namespace.neuralnetworks.links = default
namespace.neuralnetworks.link.default.shared_libs  = libc.so
namespace.neuralnetworks.link.default.shared_libs += libcgrouprc.so
namespace.neuralnetworks.link.default.shared_libs += libdl.so
namespace.neuralnetworks.link.default.shared_libs += liblog.so
namespace.neuralnetworks.link.default.shared_libs += libm.so
namespace.neuralnetworks.link.default.shared_libs += libnativewindow.so
namespace.neuralnetworks.link.default.shared_libs += libsync.so
namespace.neuralnetworks.link.default.shared_libs += libvndksupport.so


###############################################################################
###############################################################################
# Namespace config for native tests that need access to both system and vendor
# Namespace config for native tests that need access to both system and vendor
@@ -588,7 +651,7 @@ namespace.vndk_in_system.link.vndk.allow_all_shared_libs = true
# includes the requisite namespace setup for APEXes.
# includes the requisite namespace setup for APEXes.
###############################################################################
###############################################################################
[unrestricted]
[unrestricted]
additional.namespaces = runtime,media,conscrypt,resolv
additional.namespaces = runtime,media,conscrypt,resolv,neuralnetworks


# Visible to allow links to be created at runtime, e.g. through
# Visible to allow links to be created at runtime, e.g. through
# android_link_namespaces in libnativeloader.
# android_link_namespaces in libnativeloader.
@@ -606,7 +669,7 @@ namespace.default.asan.search.paths += /data/asan/vendor/${LIB}
namespace.default.asan.search.paths +=           /vendor/${LIB}
namespace.default.asan.search.paths +=           /vendor/${LIB}


# Keep in sync with the "platform" namespace in art/build/apex/ld.config.txt.
# Keep in sync with the "platform" namespace in art/build/apex/ld.config.txt.
namespace.default.links = runtime,resolv
namespace.default.links = runtime,resolv,neuralnetworks
namespace.default.link.runtime.shared_libs  = libandroidicu.so
namespace.default.link.runtime.shared_libs  = libandroidicu.so
namespace.default.link.runtime.shared_libs += libdexfile_external.so
namespace.default.link.runtime.shared_libs += libdexfile_external.so
namespace.default.link.runtime.shared_libs += libdexfiled_external.so
namespace.default.link.runtime.shared_libs += libdexfiled_external.so
@@ -622,6 +685,7 @@ namespace.default.link.runtime.shared_libs += libpac.so
namespace.default.link.runtime.shared_libs += %SANITIZER_RUNTIME_LIBRARIES%
namespace.default.link.runtime.shared_libs += %SANITIZER_RUNTIME_LIBRARIES%


namespace.default.link.resolv.shared_libs = libnetd_resolv.so
namespace.default.link.resolv.shared_libs = libnetd_resolv.so
namespace.default.link.neuralnetworks.shared_libs = libneuralnetworks.so


###############################################################################
###############################################################################
# "runtime" APEX namespace
# "runtime" APEX namespace
@@ -655,12 +719,16 @@ namespace.media.asan.search.paths = /apex/com.android.media/${LIB}
namespace.media.permitted.paths = /apex/com.android.media/${LIB}/extractors
namespace.media.permitted.paths = /apex/com.android.media/${LIB}/extractors
namespace.media.asan.permitted.paths = /apex/com.android.media/${LIB}/extractors
namespace.media.asan.permitted.paths = /apex/com.android.media/${LIB}/extractors


namespace.media.links = default
namespace.media.links = default,neuralnetworks
namespace.media.link.default.shared_libs  = %LLNDK_LIBRARIES%
namespace.media.link.default.shared_libs  = %LLNDK_LIBRARIES%
namespace.media.link.default.shared_libs += libbinder_ndk.so
namespace.media.link.default.shared_libs += libbinder_ndk.so
namespace.media.link.default.shared_libs += libmediametrics.so
namespace.media.link.default.shared_libs += libmediametrics.so
namespace.media.link.default.shared_libs += %SANITIZER_RUNTIME_LIBRARIES%
namespace.media.link.default.shared_libs += %SANITIZER_RUNTIME_LIBRARIES%


# LLNDK library moved into apex
namespace.media.link.neuralnetworks.shared_libs = libneuralnetworks.so


###############################################################################
###############################################################################
# "conscrypt" APEX namespace
# "conscrypt" APEX namespace
#
#
@@ -696,6 +764,25 @@ namespace.resolv.link.default.shared_libs += libdl.so
namespace.resolv.link.default.shared_libs += libbinder_ndk.so
namespace.resolv.link.default.shared_libs += libbinder_ndk.so
namespace.resolv.link.default.shared_libs += liblog.so
namespace.resolv.link.default.shared_libs += liblog.so


###############################################################################
# "neuralnetworks" APEX namespace
#
# This namespace is for libraries within the NNAPI APEX.
###############################################################################
namespace.neuralnetworks.isolated = true
namespace.neuralnetworks.visible = true

namespace.neuralnetworks.search.paths = /apex/com.android.neuralnetworks/${LIB}
namespace.neuralnetworks.asan.search.paths = /apex/com.android.neuralnetworks/${LIB}
namespace.neuralnetworks.links = default
namespace.neuralnetworks.link.default.shared_libs  = libc.so
namespace.neuralnetworks.link.default.shared_libs += libcgrouprc.so
namespace.neuralnetworks.link.default.shared_libs += libdl.so
namespace.neuralnetworks.link.default.shared_libs += liblog.so
namespace.neuralnetworks.link.default.shared_libs += libm.so
namespace.neuralnetworks.link.default.shared_libs += libnativewindow.so
namespace.neuralnetworks.link.default.shared_libs += libsync.so
namespace.neuralnetworks.link.default.shared_libs += libvndksupport.so


###############################################################################
###############################################################################
# Namespace config for binaries under /postinstall.
# Namespace config for binaries under /postinstall.
Loading