Что такое формат файла OBB?
Файл .obb содержит ресурсы для приложения Android, хранящиеся в виде непрозрачного двоичного объекта (opaque binary blob) - отсюда и название BLOB. Введенные как часть системы файлов расширения Android APK для преодоления ограничения Play Store на размер APK, файлы .obb содержат крупные игровые ресурсы, такие как текстуры, аудио и данные уровней, которые превышают объем базового пакета .apk. Файлы могут быть зашифрованы и обычно хранятся в папке Android/obb/<package.name>/ во внутренней памяти или на SD-карте.
Один файл .obb может использоваться только одним приложением или совместно приложениями, которым предоставлен к нему доступ. Управление файлами .obb осуществляется через интерфейс Android StorageManager. Если файл .obb зашифрован, расшифровать его может только приложение, создавшее этот файл. Не рекомендуется вручную удалять файлы .obb, так как это может негативно сказаться на работе использующего их приложения.
Внутренне многие файлы .obb следуют формату контейнера ZIP (идентифицируемому по магическим байтам PK) и могут быть открыты инструментами архивации путем переименования файла. Когда разработчики применяют шифрование или используют такие движки, как Unity или Unreal Engine, структура является нестандартной, а формат - действительно «непрозрачным» по задумке. В настоящее время Google рекомендует использовать Play Asset Delivery с пакетами приложений .aab в качестве современной замены.
Безопасность и защита
РИСК: MEDIUMФайлы OBB из Google Play безопасны. Риск заключается в сторонней загрузке: OBB в паре со взломанным или модифицированным APK с пиратского сайта может содержать измененные или вредоносные ресурсы, при этом именно соответствующий APK (а не OBB) является реальным вектором вредоносного ПО. Размещайте только те файлы OBB, источникам которых вы доверяете, следите, чтобы APK и OBB были из одного релиза, и никогда не запускайте модифицированные игровые APK, которые вы не можете проверить. Данные внутри непрозрачны, поэтому их трудно проверить на безопасность.
Детали формата
в двух словахПрограммы, открывающие файлы OBB
Технические подробности
глубокая спецификация| Формат контейнера | Архив ZIP (сигнатура PK), если не зашифрован; непрозрачный пользовательский двоичный файл для зашифрованных или специфичных для движка вариантов - гарантированная сигнатура файла отсутствует |
| Типичные магические байты | 50 4B 03 04 (заголовок ZIP PK) для незашифрованных файлов; фиксированная сигнатура отсутствует для зашифрованных или кастомных вариантов |
| MIME-тип | application/octet-stream |
| Путь хранения на устройстве | Android/obb/<package.name>/ во внутренней памяти или на съемной SD-карте |
| Соглашение об именовании файлов | [main|patch].<version-code>.<package-name>.obb |
| Варианты файлов расширения | Два типа на приложение: main (основные крупные ресурсы) и patch (небольшое инкрементное обновление) |
| Максимальный размер файла | До 2 ГБ на файл; Play Store разрешает один основной и один патч-файл расширения на приложение |
| Шифрование | Опциональное шифрование на уровне приложения; только владеющее приложение может расшифровать его, используя ключ, встроенный в APK |
| Android API | StorageManager.mountObb() / unmountObb() для монтирования; APK Expansion Downloader Library для доставки через Play |
| Типичное содержимое ресурсов | Игровые текстуры, аудиодорожки, видеовставки, 3D-модели, данные уровней |
| Поддержка движков | Unity (плагин расширения Gradle), Unreal Engine (данные PAK внутри OBB) и кастомные игровые движки |
| Назначение | Преодоление ограничения размера APK в Play Store (изначально 50 МБ) путем размещения крупных ресурсов отдельно на серверах Google |
| Технология-преемник | Google Play Asset Delivery в сочетании с пакетами AAB, рекомендованная Google с 2019 года |
| Требования к платформе | Android 2.3 (API level 9) или выше; API загрузки файлов расширения требует Google Play Services |
| Выпущен | 2012 (Android APK Expansion Files, to bypass the early 50 MB Play Store APK size limit) |
| Открыть стандартное | Да · без роялти |
| Спецификация | developer.android.com |