in java/com/facebook/soloader/DirectApkSoSource.java [119:142]
private void loadDependencies(String soName, int loadFlags, StrictMode.ThreadPolicy threadPolicy)
throws IOException {
try (ZipFile mZipFile = new ZipFile(mApkFile)) {
Enumeration<? extends ZipEntry> entries = mZipFile.entries();
while (entries.hasMoreElements()) {
ZipEntry entry = entries.nextElement();
if (entry != null && entry.getName().endsWith("/" + soName)) {
try (ElfByteChannel bc = new ElfZipFileChannel(mZipFile, entry)) {
for (String dependency : getDependencies(soName, bc)) {
if (mLibsInApk.contains(dependency) || dependency.startsWith("/")) {
// Bionic dynamic linker could correctly resolving dependencies, we don't need
// load them by ourselves.
continue;
}
SoLoader.loadLibraryBySoName(
dependency, loadFlags | LOAD_FLAG_ALLOW_IMPLICIT_PROVISION, threadPolicy);
}
}
break;
}
}
}
}