tools / verify

APK inspector

Before you send an APK to anyone, check what is inside it: the package name that identifies it forever, the version number an update must exceed, the permissions a user will be asked for, and the certificate fingerprint Firebase, Google Sign-In and app links need. All read from the file, in this tab.

Inspect an APK

Reads the binary manifest and the APK Signing Block directly. Works for any APK, not only ones built here. (AAB files use a different manifest format and are not supported.)

Drop an .apk file .apk · parsed in this tab, never uploaded

What an APK is, physically

An APK is a ZIP archive with a fixed layout: AndroidManifest.xml (in a compiled binary format, not text), classes.dex (the app's code), resources.arsc and res/ (icons, strings, layouts), assets/ (arbitrary files — for a site built from a ZIP, your site lives in assets/web/), and a signature. The inspector opens that archive, decodes the binary manifest and reads the signature, all in your browser.

The fields worth checking before you share a build

FieldWhy it matters
packageThe app's permanent identity. Google Play, Android and every user's installed copy key on it. It can never change for a published app.
versionCodeAn integer every update must increase. Android refuses to install an APK over one with a higher versionCode.
versionNameWhat users see ("1.4.2"). Free text; does not affect updates.
minSdkVersionThe oldest Android the app installs on. 21 means Android 5.0.
targetSdkVersionThe Android behaviour the app opts in to. Google Play requires a recent target for new apps and updates.
debuggableMust be false for release. Play rejects debuggable uploads.
PermissionsWhat the app may request. Runtime ones (camera, location, microphone) are still asked for at the moment of use.

Signing schemes and fingerprints

Android has used several signature formats: v1 (JAR signing, files in META-INF/), v2 (Android 7+, a signing block covering the whole file) and v3/v3.1 (Android 9+, adds key rotation). A modern APK usually carries v2 and v3; v1 is added when the app supports Android versions older than 7.

The certificate's SHA-256 and SHA-1 fingerprints are what other services use to recognise your app: Firebase (for Google Sign-In, Dynamic Links and App Check), the Google Cloud console for Maps and OAuth clients, and assetlinks.json for Android App Links. Copy them from here instead of installing the JDK to run keytool.

Google Play re-signs your app. With Play App Signing, the APK users download is signed with Google's app signing key, not the upload key you signed the AAB with — so it has a different fingerprint. Register both fingerprints with Firebase: the upload key's (from your APK or keystore) and the app signing key's (Play Console → Setup → App integrity).

Is the APK uploaded?

No. The file is read with FileReader, the manifest and the ASN.1 certificate are parsed in JavaScript, and fingerprints are computed with the browser's built-in Web Crypto. Nothing leaves your machine.

Frequently asked questions

Can I read an AAB with this?

No. An Android App Bundle stores its manifest as a protocol buffer, not the binary XML an APK uses. Inspect an APK generated from the bundle, or the one users download from Play (via Play Console's App bundle explorer).

Why does my app's label say 'resource reference'?

Most apps store their name in resources so it can be translated; the manifest only holds a pointer to it. The name users see is in resources.arsc, which this tool does not decode.

Which fingerprint does Firebase want?

Both, when the app is on Google Play: the SHA-1/SHA-256 of the key you signed with (shown here for that APK) and of Google's app signing key (in Play Console). Sideloaded APKs only need the first.

The inspector says 'debuggable: true' — what now?

Rebuild as a release build. Debuggable APKs are fine for testing on your own phone but are rejected by Google Play and let anyone attach a debugger to the app.

Read in the docs

Related tools

Unzip it on a phone today

Upload the ZIP, name the app, pick an icon — and download a signed APK a few minutes later. Free builds, no watermark, no Android Studio.

Convert a ZIP — free site.zip → app-release.apk