Free AAB test files and sample generator
Google Play's publishing format, which replaced the APK for distribution. A ZIP of per-module directories that Play turns into device-specific APKs.
What is a .aab file?
AAB: Android App Bundle. The Android App Bundle replaced the APK as Google Play's publishing format. Rather than one installable package, a bundle carries each module's pieces separately, manifest, code and resources under base/, and Play generates device-specific APKs from it at install time. That means anything accepting a bundle is doing a different job from anything accepting an APK, and the two are worth testing separately.
Why generate a test AAB file?
- Test a Play Console upload flow or an internal build pipeline.
- Check that a tool distinguishes a bundle from an installable APK.
- Exercise size limits, bundles are typically the largest artefact in a release.
How a .aab file is identified
Every .aab file begins with 50 4B 03 04, the ASCII letters "PK", the initials of Phil Katz, who created the ZIP format. That is what a validator inspecting content rather than the file name looks for.
How the size lands on the exact byte
The package is a ZIP, so the padding is trailing whitespace inside one of the XML parts it already contains. Extractors and Office readers both ignore it, so the document opens unchanged.
Negative testing with broken AAB files
- Invalid. Identifiable, but wrong inside, so it fails during parsing.
- Corrupted. The leading bytes are destroyed, so the
50 4B 03 04identifying a .aab is gone. Same length as the valid file. - Incomplete. Truncated part-way, so it is genuinely shorter.
- Empty. Chosen under Content rather than File Condition: valid structure, no data.
Which failure to reach for, and what to assert for each, is covered in how to make a corrupted file for testing. For upload limits and type checks see testing file upload validation.
Sample AAB content
[Android bundle], ZIP with BundleConfig.pb and base/ module directories.
This shows the shape of the file. Your download is generated fresh at the size you choose, so the values will differ.
How to open and verify the file
List it with `unzip -l file.aab`, or inspect it with bundletool. Files here carry the same genuine binary manifest as the APK under base/manifest/, plus a checksummed classes.dex. BundleConfig.pb is an empty protobuf message, which is the valid encoding of an all-defaults configuration. Not signed, and not something Play would accept for a real release.
Media type application/octet-stream · extension .aab · category Scripts & OS
Generate a .aab file → · questions about sizes, privacy or cost are answered on the site FAQ.
Frequently asked questions about AAB files
What identifies a .aab file?
A .aab file begins with the bytes 50 4B 03 04, the ASCII letters "PK", the initials of Phil Katz, who created the ZIP format. Those bytes are what a content-sniffing validator looks for, and what the Corrupted condition destroys.
How can a .aab file be an exact number of bytes?
The package is a ZIP, so the padding is trailing whitespace inside one of the XML parts it already contains. Extractors and Office readers both ignore it, so the document opens unchanged.
Can I download several broken AAB files at once?
Yes, select more than one File Condition and you get one ZIP containing a .aab per condition, each named after its condition.
Can the AAB file use UTF-16 or a byte-order mark?
No, and deliberately. A .aab file is a container rather than plain text, so rewriting its bytes as UTF-16 would not produce a UTF-16 document. It would produce a broken file. Use a text format such as CSV, JSON or XML for encoding tests.
How do I open or verify the AAB file?
List it with unzip -l file.aab, or inspect it with bundletool. Files here carry the same genuine binary manifest as the APK under base/manifest/, plus a checksummed classes.dex. BundleConfig.pb is an empty protobuf message, which is the valid encoding of an all-defaults configuration. Not signed, and not something Play would accept for a real release.