Search in sources :

Example 1 with ZipRef

use of jadx.api.ResourceFile.ZipRef in project jadx by skylot.

the class ResourcesLoader method addEntry.

private void addEntry(List<ResourceFile> list, File zipFile, ZipEntry entry) {
    if (entry.isDirectory()) {
        return;
    }
    String name = entry.getName();
    ResourceType type = ResourceType.getFileType(name);
    ResourceFile rf = new ResourceFile(jadxRef, name, type);
    rf.setZipRef(new ZipRef(zipFile, name));
    list.add(rf);
}
Also used : ZipRef(jadx.api.ResourceFile.ZipRef)

Example 2 with ZipRef

use of jadx.api.ResourceFile.ZipRef in project jadx by skylot.

the class ResourcesLoader method decodeStream.

public static ResContainer decodeStream(ResourceFile rf, ResourceDecoder decoder) throws JadxException {
    ZipRef zipRef = rf.getZipRef();
    if (zipRef == null) {
        return null;
    }
    ZipFile zipFile = null;
    InputStream inputStream = null;
    ResContainer result = null;
    try {
        zipFile = new ZipFile(zipRef.getZipFile());
        ZipEntry entry = zipFile.getEntry(zipRef.getEntryName());
        if (entry == null) {
            throw new IOException("Zip entry not found: " + zipRef);
        }
        inputStream = new BufferedInputStream(zipFile.getInputStream(entry));
        result = decoder.decode(entry.getSize(), inputStream);
    } catch (Exception e) {
        throw new JadxException("Error decode: " + zipRef.getEntryName(), e);
    } finally {
        try {
            if (zipFile != null) {
                zipFile.close();
            }
        } catch (Exception e) {
            LOG.error("Error close zip file: {}", zipRef, e);
        }
        close(inputStream);
    }
    return result;
}
Also used : JadxException(jadx.core.utils.exceptions.JadxException) ResContainer(jadx.core.xmlgen.ResContainer) ZipFile(java.util.zip.ZipFile) BufferedInputStream(java.io.BufferedInputStream) BufferedInputStream(java.io.BufferedInputStream) InputStream(java.io.InputStream) ZipEntry(java.util.zip.ZipEntry) IOException(java.io.IOException) ZipRef(jadx.api.ResourceFile.ZipRef) JadxException(jadx.core.utils.exceptions.JadxException) IOException(java.io.IOException)

Aggregations

ZipRef (jadx.api.ResourceFile.ZipRef)2 JadxException (jadx.core.utils.exceptions.JadxException)1 ResContainer (jadx.core.xmlgen.ResContainer)1 BufferedInputStream (java.io.BufferedInputStream)1 IOException (java.io.IOException)1 InputStream (java.io.InputStream)1 ZipEntry (java.util.zip.ZipEntry)1 ZipFile (java.util.zip.ZipFile)1