What is the OBB file format?
An .obb file contains resources for an Android app stored as an opaque binary blob - hence the name BLOB. Introduced as part of the Android APK Expansion File system to overcome the Play Store's APK size limit, .obb files carry large game assets such as textures, audio, and level data that overflow the base .apk package. Files are optionally encrypted and are typically stored in the Android/obb/<package.name>/ folder on internal storage or SD card.
A single .obb file can only be used by a single application, or shared by applications that have been granted access to it. Managing .obb files is done via Android's StorageManager interface. If an .obb file is encrypted, only the application that created the file can decrypt it. It is advised not to manually remove .obb files, as doing so can have a negative impact on the application that uses them.
Internally, many .obb files follow the ZIP container format (identifiable by PK magic bytes) and can be opened with archive tools by renaming the file. When developers apply encryption or use engines such as Unity or Unreal Engine, the layout is custom and the format is truly opaque by design. Google now recommends Play Asset Delivery with .aab App Bundles as the modern replacement.
Security & safety
RISK: MEDIUMOBBs from Google Play are safe. The risk is sideloading: an OBB paired with a cracked/modded APK from a piracy site can carry tampered or malicious assets, and the matching APK (not the OBB) is the real malware vector. Only place OBB files from sources you trust, keep the APK and OBB from the same release, and never run a modded game APK you can't verify. The data inside is opaque, so you can't easily audit it.
Format details
in a nutshellPrograms that open OBB files
Technical details
deep spec| Container format | ZIP archive (PK signature) when unencrypted; opaque custom binary for encrypted or engine-specific variants - no guaranteed file signature |
| Typical magic bytes | 50 4B 03 04 (ZIP PK header) for unencrypted files; no fixed signature for encrypted or custom-container variants |
| MIME type | application/octet-stream |
| On-device storage path | Android/obb/<package.name>/ on internal storage or removable SD card |
| File naming convention | [main|patch].<version-code>.<package-name>.obb |
| Expansion file variants | Two types per app: main (large primary assets) and patch (smaller incremental update) |
| Maximum file size | Up to 2 GB per file; Play Store permits one main and one patch expansion file per app |
| Encryption | Optional application-level encryption; only the owning app can decrypt using a key bundled in the APK |
| Android API | StorageManager.mountObb() / unmountObb() for mounting; APK Expansion Downloader Library for Play delivery |
| Typical asset content | Game textures, audio tracks, video cutscenes, 3D models, level data |
| Engine support | Unity (Gradle expansion plugin), Unreal Engine (PAK data inside OBB), and custom game engines |
| Purpose | Overcomes the Play Store APK size cap (originally 50 MB) by hosting large assets separately on Google's servers |
| Successor technology | Google Play Asset Delivery paired with AAB App Bundles, recommended by Google since 2019 |
| Platform requirement | Android 2.3 (API level 9) or later; expansion file download API requires Google Play Services |
| Released | 2012 (Android APK Expansion Files, to bypass the early 50 MB Play Store APK size limit) |
| Open standard | Yes · royalty-free |
| Specification | developer.android.com |