public List<Pkg> parse() throws IOException {
        if (fileSize < 0) {
            Chunk head = new Chunk();
            if (head.type != RES_TABLE_TYPE) {
                throw new RuntimeException();
            }
            fileSize = head.size;
            in.getInt();// packagecount
        }
        while (in.hasRemaining()) {
            Chunk chunk = new Chunk();
            switch (chunk.type) {
                case RES_STRING_POOL_TYPE:
                    strings = StringItems.read(in);
                    if (DEBUG) {
                        for (int i = 0; i < strings.length; i++) {
                            D("STR [%08x] %s", i, strings[i]);
                        }
                    }
                    break;
                case RES_TABLE_PACKAGE_TYPE:
                    readPackage(in);
            }
            in.position(chunk.location + chunk.size);
        }
        return pkgs;
    }
If set, this is a complex entry, holding a set of name/value mappings. It
is followed by an array of ResTable_map structures.
android/third_party/apkbuilder/src/main/java/pxb/android/arsc/ArscParser.java