Updated Oct 19, 2026

Utilities

Decode an APK manifest into readable XML

androguard-manifest is an offline Android manifest decoding adapter using Androguard AXML.

Agent

overview

What androguard-manifest does

Decode the binary AndroidManifest.xml in one APK into readable XML. Inspect declarations such as the package identifier and permissions without installing or running the application.

A file containing native Androguard XML. The adapter requires a manifest root with a package attribute and rejects a missing result or output above 4 MiB.

The current adapter checks ZIP file size up to 20 MiB, entry count up to 2000 and a declared expanded total up to 64 MiB. It rejects repeated raw paths, absolute paths, parent traversal and symlink entries. Normalized path aliases and inconsistent archive metadata remain under targeted review. Native execution has a 90-second timeout; output-size checks occur after the native process finishes and do not establish peak memory or temporary-disk containment.

Packaged upstream version: 4.1.4. The native CLI is Apache-2.0; the custom first-party adapter has separate proprietary licensing. The source/notices download includes the adapter, recipe, applicable dependency locks, pinned upstream references and installed notices.

source github.com/androguard/androguard/tree/d594fd39beb934e438a5bf8089b206d5800d81e0

use cases

Where androguard-manifest fits

Read package metadata

Inspect the package identifier declared in an owned APK.

Review declared permissions

Read permission declarations as input to a separate static review.

Inspect component declarations

Retain readable manifest XML for comparison; declarations alone do not establish runtime exposure.

reference

androguard-manifest inputs and flags

1 inputs
NameTypeFlagDescription
apkFILE--apkLocal APK ZIP file: at most 20 MiB, 2000 entries and 64 MiB declared expanded. Must contain AndroidManifest.xml.

Showing key inputs. androguard-manifest exposes 1 inputs in total.

example

Run androguard-manifest

androguard-manifest · command
python3 /app/run.py --apk ./owned-demo.apk ./output
sample output
  <uses-sdk android:minSdkVersion="21" android:targetSdkVersion="28"/>
  <application android:label="@7F020000" android:hasCode="true"/>

guidance

Choosing androguard-manifest

Use this operation when manifest XML is enough. Choose Apktool for the wider smali/resources tree or JADX for reconstructed Java. This operation does not expose interactive analysis, callgraphs or APKiD compiler detection.

faq

androguard-manifest questions

Local APK ZIP file: at most 20 MiB, 2000 entries and 64 MiB expanded. Must contain AndroidManifest.xml.

A file containing native Androguard XML. The adapter requires a manifest root with a package attribute and rejects a missing result or output above 4 MiB. The registered platform definition also exposes a FOLDER output; this adapter’s advertised result is the FILE. The accepted platform smoke downloaded the native FILE artifact as output.txt within the converted artifact folder.

The current adapter checks ZIP file size up to 20 MiB, entry count up to 2000 and a declared expanded total up to 64 MiB. It rejects repeated raw paths, absolute paths, parent traversal and symlink entries. Normalized path aliases and inconsistent archive metadata remain under targeted review. Native execution has a 90-second timeout; output-size checks occur after the native process finishes and do not establish peak memory or temporary-disk containment.

Use this operation when manifest XML is enough. Choose Apktool for the wider smali/resources tree or JADX for reconstructed Java. This operation does not expose interactive analysis, callgraphs or APKiD compiler detection.

Yes. The public Library entry uses the same ID as the accepted private fixture-tool-verifier run. Public image and source/notices downloads are verified. The sample comes from the owned platform fixture; it does not establish compatibility with every application.

The public image repository provides immutable image and ORAS download commands, an exact source/notices bundle checksum and pinned upstream source directions. The bundle retains the custom adapter, Dockerfile, applicable locks, installed notices and embedded Java notices where applicable. Java bundles also include the exact official Debian OpenJDK source descriptor and payloads. First-party adapter licensing is separate from upstream licensing. Follow the published local-tag alias instructions to reproduce the native fixture without a GHCR account. Image, source and license notice downloads.

Run androguard-manifest yourself

Exact two-line excerpt from native manifest XML; root and namespace line omitted, so this is not a complete XML document downloaded from an actual private fixture-tool-verifier workflow. All three nodes succeeded and the downloaded native artifact matched the verifier and local native fixture hash. Separate local malformed-input tests produced native failure and adapter exit 2; invalid ZIP input was rejected before native parsing. The public Library entry retains the same tested tool ID.

Facts on this page come from the live Trickest tool library.