Co to jest format pliku ARSC?
Plik .arsc to skompilowana tabela zasobów Androida. Pliki .arsc są używane przez programistów do przechowywania zasobów aplikacji w kompaktowej formie binarnej, którą system operacyjny może efektywnie odczytać w czasie rzeczywistym. Pliki zasobów .arsc zawierają dane statyczne - ciągi znaków, wymiary, kolory, style i wartości konfiguracji układu - które nie zmieniają się podczas działania aplikacji. W przeciwieństwie do surowych zasobów źródłowych, plik .arsc nie osadza obrazów bezpośrednio; binarne elementy graficzne (drawables) są przechowywane jako oddzielne wpisy w innym miejscu pakietu. Kod źródłowy i pliki zasobów są kompilowane przez aapt2 w jeden instalowalny pakiet .apk. Wynikowy plik może być następnie użyty do zainstalowania danej aplikacji na urządzeniu z systemem Android.
Wewnątrz pliku .apk (lub .aab), skompilowana tabela zawsze nosi nazwę resources.arsc i jest przechowywana bez kompresji - od wersji Android 11 system mapuje ją bezpośrednio w pamięci zamiast dekompresować, więc musi być wyrównana do 4 bajtów. Wszystkie środowiska programistyczne używają jakiegoś rodzaju plików zasobów, ale tylko Android korzysta z formatu tabeli zasobów .arsc. Pliki zasobów są zaprojektowane tak, aby można było uzyskać do nich dostęp w dowolnym miejscu projektu - do zasobów można odwoływać się w całym kodzie źródłowym za pomocą stałych R.*, takich jak R.string.app_name. Takie podejście pozwala na modyfikację bazy kodu bez zmiany każdej linii, w której występuje odwołanie do danego zasobu. Skompilowana tabela może być również zdekodowana z zapakowanej aplikacji za pomocą narzędzi takich jak apktool lub APK Analyzer wbudowany w Android Studio.
Bezpieczeństwo
RYZYKO: LOWresources.arsc to dane obojętne - nie zawiera kodu ani makr - więc sam plik jest bezpieczny do badania. Jedynym realnym problemem jest APK, z którego pochodzi: dekompilacja aplikacji może być sprzeczna z jej licencją, a ręczna edycja tabeli i ponowne podpisywanie APK to sposób, w jaki złośliwe oprogramowanie jest czasem przepakowywane, więc należy traktować zmodyfikowane pliki APK z niezaufanych źródeł z podejrzliwością.
Szczegóły formatu
w pigułceProgramy otwierające pliki ARSC
Szczegóły techniczne
specyfikacja| Kodowanie pliku | Binarny, little-endian |
| Magiczne bajty | 02 00 0C 00 pod offsetem 0 (ResChunk_header: type=0x0002 RES_TABLE_TYPE, header size=0x000C) |
| Typ MIME | application/octet-stream |
| Kontener | Przechowywany bez kompresji (metoda ZIP STORED, nie DEFLATE) wewnątrz archiwum APK lub AAB |
| Typowy rozmiar pliku | 10 KB - 5 MB, zależnie od liczby wersji językowych, gęstości ekranu i rozmiaru puli ciągów znaków |
| Wewnętrzna nazwa pliku | resources.arsc (stała nazwa wewnątrz ZIP APK/AAB) |
| Format identyfikatora zasobu | Wartość 32-bitowa 0xPPTTEEEE: 8-bitowy pakiet, 8-bitowy typ, 16-bitowy wpis; obsługuje do 255 typów i 65 535 wpisów na typ |
| Struktura najwyższego poziomu | Segment RES_TABLE zawierający globalną pulę ciągów znaków oraz jeden segment pakietu na aplikację, z których każdy zawiera podsegmenty specyfikacji typu i typu |
| Wymiary konfiguracji | Mapuje każdy identyfikator zasobu na wartości w wielu konfiguracjach urządzenia: język/lokalizacja, gęstość ekranu, orientacja, najmniejsza szerokość, poziom API i inne |
| Kodowanie rzadkie (sparse) | Domyślnie klasyczna gęsta tabela wpisów; opcjonalne kodowanie rzadkie dostępne od Android 14 (SDK 34, 2023) w celu zmniejszenia rozmiaru |
| Dostęp w czasie rzeczywistym | Mapowany w pamięci (mmap) od wersji Android 11; musi być wyrównany do 4 bajtów i przechowywany bez kompresji, aby umożliwić dostęp typu zero-copy |
| Ochrona integralności | Brak wbudowanej sumy kontrolnej; blok podpisu APK v2/v3 obejmuje całe archiwum, w tym resources.arsc |
| Narzędzia kompilacji | Generowany przez aapt (starszy) lub aapt2 (obecne narzędzia budowania Androida) z plików źródłowych XML w res/values |
| Powiązana platforma | Tylko Android; nieużywany przez iOS, Windows ani inne platformy mobilne |
| Deweloper | Google / Android Open Source Project (AOSP) |
| Wydano | 2008 (Android 1.0, part of the APK/aapt toolchain) |
| Najnowsza wersja | AAPT2 binary table (current with the Android build tools); sparse-encoding option added Android 14 / SDK 34, 2023 |
| Otwarty standard | Tak · bezpłatny (royalty-free) |
| Specyfikacja | android.googlesource.com |
Konwersje ARSC
Pytania i odpowiedzi społeczności
pytania użytkownikówBrak pytań - bądź pierwszą osobą, która zapyta o pliki ARSC.