SharedLibraryLoader: prioritize ABI ordering

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
This commit is contained in:
Jason A. Donenfeld 2019-10-13 10:28:18 +02:00
parent 749efcde21
commit 6d01296e8b

View File

@ -41,17 +41,17 @@ public final class SharedLibraryLoader {
if (context.getApplicationInfo().splitSourceDirs != null) if (context.getApplicationInfo().splitSourceDirs != null)
apks.addAll(Arrays.asList(context.getApplicationInfo().splitSourceDirs)); apks.addAll(Arrays.asList(context.getApplicationInfo().splitSourceDirs));
for (final String apk : apks) { for (final String abi : Build.SUPPORTED_ABIS) {
final ZipFile zipFile; for (final String apk : apks) {
try { final ZipFile zipFile;
zipFile = new ZipFile(new File(apk), ZipFile.OPEN_READ); try {
} catch (final IOException e) { zipFile = new ZipFile(new File(apk), ZipFile.OPEN_READ);
throw new RuntimeException(e); } catch (final IOException e) {
} throw new RuntimeException(e);
}
final String mappedLibName = System.mapLibraryName(libName); final String mappedLibName = System.mapLibraryName(libName);
final byte[] buffer = new byte[1024 * 32]; final byte[] buffer = new byte[1024 * 32];
for (final String abi : Build.SUPPORTED_ABIS) {
final String libZipPath = "lib" + File.separatorChar + abi + File.separatorChar + mappedLibName; final String libZipPath = "lib" + File.separatorChar + abi + File.separatorChar + mappedLibName;
final ZipEntry zipEntry = zipFile.getEntry(libZipPath); final ZipEntry zipEntry = zipFile.getEntry(libZipPath);
if (zipEntry == null) if (zipEntry == null)