Co to jest format pliku OBB?
Plik .obb zawiera zasoby aplikacji na system Android przechowywane jako nieprzezroczysty obiekt binarny (ang. opaque binary blob) - stąd nazwa BLOB. Wprowadzone jako część systemu plików rozszerzeń Android APK, aby obejść limit rozmiaru APK w sklepie Play Store, pliki .obb przenoszą duże zasoby gier, takie jak tekstury, dźwięk i dane poziomów, które wykraczają poza podstawowy pakiet .apk. Pliki te są opcjonalnie szyfrowane i zazwyczaj przechowywane w folderze Android/obb/<package.name>/ w pamięci wewnętrznej lub na karcie SD.
Pojedynczy plik .obb może być używany tylko przez jedną aplikację lub udostępniany aplikacjom, którym przyznano do niego dostęp. Zarządzanie plikami .obb odbywa się za pośrednictwem interfejsu StorageManager systemu Android. Jeśli plik .obb jest zaszyfrowany, tylko aplikacja, która go utworzyła, może go odszyfrować. Odradza się ręczne usuwanie plików .obb, ponieważ może to mieć negatywny wpływ na działanie aplikacji, która z nich korzysta.
Wewnętrznie wiele plików .obb wykorzystuje format kontenera ZIP (identyfikowalny po sygnaturze magic bytes PK) i można je otworzyć za pomocą narzędzi archiwizujących po zmianie nazwy pliku. Gdy deweloperzy stosują szyfrowanie lub używają silników takich jak Unity lub Unreal Engine, układ jest niestandardowy, a format jest celowo nieprzezroczysty. Google zaleca obecnie Play Asset Delivery wraz z pakietami .aab App Bundles jako nowoczesny zamiennik.
Bezpieczeństwo
RYZYKO: MEDIUMPliki OBB z Google Play są bezpieczne. Ryzyko wiąże się z instalacją z nieoficjalnych źródeł (sideloading): plik OBB sparowany ze złamanym/zmodyfikowanym APK z pirackiej strony może zawierać naruszone lub złośliwe zasoby, a pasujący plik APK (nie sam OBB) jest właściwym wektorem złośliwego oprogramowania. Umieszczaj tylko pliki OBB z zaufanych źródeł, dbaj o to, by APK i OBB pochodziły z tego samego wydania i nigdy nie uruchamiaj zmodyfikowanych APK gier, których nie możesz zweryfikować. Dane wewnątrz są nieprzezroczyste, więc nie można ich łatwo skontrolować.
Szczegóły formatu
w pigułceProgramy otwierające pliki OBB
Szczegóły techniczne
specyfikacja| Format kontenera | Archiwum ZIP (sygnatura PK), gdy niezaszyfrowane; nieprzezroczysty niestandardowy plik binarny dla wariantów zaszyfrowanych lub specyficznych dla silnika - brak gwarantowanej sygnatury pliku |
| Typowe magic bytes | 50 4B 03 04 (nagłówek ZIP PK) dla plików niezaszyfrowanych; brak stałej sygnatury dla wariantów zaszyfrowanych lub z niestandardowym kontenerem |
| Typ MIME | application/octet-stream |
| Ścieżka przechowywania na urządzeniu | Android/obb/<package.name>/ w pamięci wewnętrznej lub na wymiennej karcie SD |
| Konwencja nazewnictwa plików | [main|patch].<kod-wersji>.<nazwa-pakietu>.obb |
| Warianty plików rozszerzeń | Dwa typy na aplikację: main (główne, duże zasoby) i patch (mniejsza, przyrostowa aktualizacja) |
| Maksymalny rozmiar pliku | Do 2 GB na plik; Play Store zezwala na jeden główny i jeden uzupełniający plik rozszerzenia na aplikację |
| Szyfrowanie | Opcjonalne szyfrowanie na poziomie aplikacji; tylko aplikacja właścicielska może odszyfrować dane za pomocą klucza dołączonego do APK |
| Interfejs API Androida | StorageManager.mountObb() / unmountObb() do montowania; Biblioteka APK Expansion Downloader dla dostarczania przez Play |
| Typowa zawartość zasobów | Tekstury gier, ścieżki dźwiękowe, przerywniki filmowe, modele 3D, dane poziomów |
| Wsparcie silników | Unity (wtyczka rozszerzenia Gradle), Unreal Engine (dane PAK wewnątrz OBB) oraz niestandardowe silniki gier |
| Cel | Obejście limitu rozmiaru APK w Play Store (pierwotnie 50 MB) poprzez hostowanie dużych zasobów oddzielnie na serwerach Google |
| Następca technologii | Google Play Asset Delivery w połączeniu z pakietami AAB App Bundles, zalecane przez Google od 2019 roku |
| Wymagania platformy | Android 2.3 (poziom API 9) lub nowszy; API pobierania plików rozszerzeń wymaga Google Play Services |
| Wydano | 2012 (Android APK Expansion Files, to bypass the early 50 MB Play Store APK size limit) |
| Otwarty standard | Tak · bezpłatny (royalty-free) |
| Specyfikacja | developer.android.com |