Read system_ext partition for partner defined public libraries.
Let partners define system libraries in system_ext for their apps.
They can list the libraries in
/system_ext/etc/public.libraries-<companyname>.txt for their apps to
use.
Bug: 134909174
Bug: 134359158
Test: build and boot
Change-Id: I4edc6c19c4e23e2fec2d98aca7a1e4fd64fd5f2e
diff --git a/libnativeloader/public_libraries.cpp b/libnativeloader/public_libraries.cpp
index 11c3070..1ab9a30 100644
--- a/libnativeloader/public_libraries.cpp
+++ b/libnativeloader/public_libraries.cpp
@@ -232,13 +232,15 @@
return android::base::Join(*sonames, ':');
}
-// read /system/etc/public.libraries-<companyname>.txt and
+// read /system/etc/public.libraries-<companyname>.txt,
+// /system_ext/etc/public.libraries-<companyname>.txt and
// /product/etc/public.libraries-<companyname>.txt which contain partner defined
// system libs that are exposed to apps. The libs in the txt files must be
// named as lib<name>.<companyname>.so.
static std::string InitExtendedPublicLibraries() {
std::vector<std::string> sonames;
ReadExtensionLibraries("/system/etc", &sonames);
+ ReadExtensionLibraries("/system_ext/etc", &sonames);
ReadExtensionLibraries("/product/etc", &sonames);
return android::base::Join(sonames, ':');
}