mirror of
https://github.com/revanced/multidexlib2.git
synced 2025-04-30 14:44:39 +02:00
Expose WrappingMultiDexFile in MultiDexIO.readMultiDexContainer methods
This commit is contained in:
parent
2a79c6d3e0
commit
f59046497d
@ -16,6 +16,7 @@ import java.io.IOException;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.jf.dexlib2.Opcodes;
|
import org.jf.dexlib2.Opcodes;
|
||||||
|
import org.jf.dexlib2.dexbacked.DexBackedDexFile;
|
||||||
import org.jf.dexlib2.iface.DexFile;
|
import org.jf.dexlib2.iface.DexFile;
|
||||||
import org.jf.dexlib2.iface.MultiDexContainer;
|
import org.jf.dexlib2.iface.MultiDexContainer;
|
||||||
|
|
||||||
@ -29,22 +30,25 @@ public class MultiDexIO {
|
|||||||
|
|
||||||
public static DexFile readDexFile(boolean multiDex, File file, DexFileNamer namer, Opcodes opcodes,
|
public static DexFile readDexFile(boolean multiDex, File file, DexFileNamer namer, Opcodes opcodes,
|
||||||
DexIO.Logger logger) throws IOException {
|
DexIO.Logger logger) throws IOException {
|
||||||
MultiDexContainer<? extends DexFile> container = readMultiDexContainer(multiDex, file, namer, opcodes, logger);
|
MultiDexContainer<WrappingMultiDexFile<DexBackedDexFile>> container =
|
||||||
|
readMultiDexContainer(multiDex, file, namer, opcodes, logger);
|
||||||
return new MultiDexContainerBackedDexFile<>(container);
|
return new MultiDexContainerBackedDexFile<>(container);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static MultiDexContainer<? extends DexFile> readMultiDexContainer(boolean multiDex, File file,
|
public static MultiDexContainer<WrappingMultiDexFile<DexBackedDexFile>> readMultiDexContainer(boolean multiDex,
|
||||||
DexFileNamer namer, Opcodes opcodes, DexIO.Logger logger) throws IOException {
|
File file, DexFileNamer namer, Opcodes opcodes, DexIO.Logger logger) throws IOException {
|
||||||
MultiDexContainer<? extends DexFile> container = readMultiDexContainer(file, namer, opcodes, logger);
|
MultiDexContainer<WrappingMultiDexFile<DexBackedDexFile>> container =
|
||||||
|
readMultiDexContainer(file, namer, opcodes, logger);
|
||||||
int entries = container.getDexEntryNames().size();
|
int entries = container.getDexEntryNames().size();
|
||||||
if (entries == 0) throw new EmptyMultiDexContainerException(file.toString());
|
if (entries == 0) throw new EmptyMultiDexContainerException(file.toString());
|
||||||
if (!multiDex && entries > 1) throw new MultiDexDetectedException(file.toString());
|
if (!multiDex && entries > 1) throw new MultiDexDetectedException(file.toString());
|
||||||
return container;
|
return container;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static MultiDexContainer<? extends DexFile> readMultiDexContainer(File file, DexFileNamer namer,
|
public static MultiDexContainer<WrappingMultiDexFile<DexBackedDexFile>> readMultiDexContainer(File file,
|
||||||
Opcodes opcodes, DexIO.Logger logger) throws IOException {
|
DexFileNamer namer, Opcodes opcodes, DexIO.Logger logger) throws IOException {
|
||||||
MultiDexContainer<? extends DexFile> container = readMultiDexContainer(file, namer, opcodes);
|
MultiDexContainer<WrappingMultiDexFile<DexBackedDexFile>> container =
|
||||||
|
readMultiDexContainer(file, namer, opcodes);
|
||||||
if (logger != null) {
|
if (logger != null) {
|
||||||
for (String name : container.getDexEntryNames()) {
|
for (String name : container.getDexEntryNames()) {
|
||||||
logger.log(file, name, container.getEntry(name).getClasses().size());
|
logger.log(file, name, container.getEntry(name).getClasses().size());
|
||||||
@ -53,8 +57,8 @@ public class MultiDexIO {
|
|||||||
return container;
|
return container;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static MultiDexContainer<? extends DexFile> readMultiDexContainer(File file, DexFileNamer namer,
|
public static MultiDexContainer<WrappingMultiDexFile<DexBackedDexFile>> readMultiDexContainer(File file,
|
||||||
Opcodes opcodes) throws IOException {
|
DexFileNamer namer, Opcodes opcodes) throws IOException {
|
||||||
if (file.isDirectory()) return new DirectoryDexContainer(file, namer, opcodes);
|
if (file.isDirectory()) return new DirectoryDexContainer(file, namer, opcodes);
|
||||||
if (!file.isFile()) throw new FileNotFoundException(file.toString());
|
if (!file.isFile()) throw new FileNotFoundException(file.toString());
|
||||||
if (ZipFileDexContainer.isZipFile(file)) return new ZipFileDexContainer(file, namer, opcodes);
|
if (ZipFileDexContainer.isZipFile(file)) return new ZipFileDexContainer(file, namer, opcodes);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user