← Wszystkie artykuły

Budowa pakietu firmware TV z USB

Plik firmware do aktualizacji z USB wygląda jak jedna nieprzejrzysta bryła, ale w środku jest stos kontenerów: zewnętrzna otoczka, skrypt lub tablica i obrazy partycji, często skompresowane. Znajomość warstw podpowiada, co można odczytać, zmienić i zbudować ponownie.

Część cyklu: Przewodnik po firmware i zrzutach.

Po co zaglądać do środka

  • Aby znaleźć ciągi z wersją, modelem i SoC, zanim wgrasz plik do niewłaściwego telewizora.
  • Aby zobaczyć, które partycje pakiet aktualizuje, a których nie rusza.
  • Aby dostosować pakiet do innego panelu lub pilota, zobacz stronę funkcji.

Warstwy

  1. Zewnętrzny kontener. W zależności od producenta może to być zwykłe archiwum (tar, zip), format producenta (program rozpoznaje LG EPK, Philips UPG i Android OTA) albo surowy plik binarny z nagłówkiem.
  2. Skrypt lub tablica. Pakiety oparte na MStar zaczynają się od skryptu tekstowego (polecenia takie jak filepartload), który mówi bootloaderowi, która część pliku trafia do którego obszaru flash. Inne rodziny używają tablicy w nagłówku.
  3. Obrazy partycji. Typowa zawartość to kernel, DTB, initramfs (cpio) i obrazy systemów plików, takie jak squashfs, cramfs, ext4, UBI/UBIFS lub JFFS2, a także obrazy Android sparse i boot.img.
  4. Kompresja. gzip, xz, lzma, bzip2, zstd i lz4 to częste opakowania tych obrazów, które mogą być zagnieżdżone.

Czytanie nieznanego pliku krok po kroku

  1. Zapisz rozmiar i sumę kontrolną (MD5 lub SHA-256), żeby później móc stwierdzić, czy plik się zmienił.
  2. Obejrzyj bajty nagłówka i czytelne ciągi znaków: wersje, nazwy modeli, nazwy SoC, linie skryptu.
  3. Przeszukaj plik pod kątem sygnatur. Sama liczba magiczna niewiele dowodzi, dlatego dobry skaner sprawdza też strukturę, którą znalazł (rozmiary, nagłówki), aby uniknąć fałszywych trafień.
  4. Sprawdź entropię. Wysoka, równa entropia oznacza dane skompresowane lub zaszyfrowane; bardzo niska oznacza puste wypełnienie; obszary mieszane zwykle oznaczają prawdziwą zawartość systemu plików.
  5. Rozpakowuj warstwa po warstwie, z ograniczeniem głębokości zagnieżdżenia, do czystego folderu.

Jeśli obraz ma wysoką entropię i nie ma rozpoznawalnej sygnatury, prawdopodobnie jest zaszyfrowany lub używa własnej kompresji. Nie traktuj tego jako uszkodzenia i nie próbuj wgrywać go z powrotem po edycji w edytorze hex: kontrola sygnatury lub sumy kontrolnej w bootloaderze może go odrzucić albo, co gorsza, przyjąć uszkodzony plik. NIEZWERYFIKOWANE To, które rodziny sprawdzają sygnatury, zależy od modelu; sprawdź dokumentację producenta.

Typowe błędy

  • Wgranie pliku wybranego tylko według przekątnej ekranu. Porównaj w ciągach identyfikatory płyty i panelu.
  • Edycja obrazu w miejscu z pozostawieniem starej sumy kontrolnej lub pola rozmiaru.
  • Dwukrotne rozpakowanie do tego samego folderu, przez co stare pliki mieszają się z nowymi.
  • Założenie, że „rozpakowano bez błędów” oznacza „można spakować identycznie”. Poziomy kompresji i kolejność plików zmieniają wynik.

Jak to wygląda w FW Tool

  • Zakładka „Firmware” pokazuje podsumowanie: rozmiar, MD5 i SHA-256, nagłówek, ciekawe ciągi znaków.
  • Program szuka wymienionych wyżej sygnatur i je weryfikuje; analizuje też skrypty MStar i dzieli plik na partycje.
  • Mapa entropii zaznacza obszary skompresowane lub zaszyfrowane oraz wypełnienie (pole wyboru, domyślnie włączone).
  • Rozpakowywanie rekurencyjne ma ustawienie głębokości zagnieżdżenia (od 0 do 8, domyślnie 3). Niektóre systemy plików wymagają zewnętrznych narzędzi, takich jak 7-Zip lub unsquashfs, jeśli są zainstalowane.
  • Dla pakietów opartych na tar program może zbudować pakiet ponownie po wymianie plików.
  • Zakładka „Adaptacja” odczytuje obsługiwany pakiet, pokazuje znalezione ustawienia panelu i pilota oraz buduje zmieniony pakiet. Zobacz też mapowanie LVDS i głębię bitową.

Zanim ruszysz pakiet, wykonaj zrzut działającego urządzenia, jeśli to możliwe: zobacz porównywanie zrzutów i sum kontrolnych.

FAQ

Czy każdy plik firmware da się rozpakować?

Nie. Zaszyfrowane lub podpisane kontenery pokażą wysoką entropię i brak użytecznej struktury. Program podaje to, co udało mu się zidentyfikować; nie odszyfruje tego, do czego nie ma klucza.

Jakiej głębokości użyć?

Zacznij od wartości domyślnej i zwiększaj ją tylko wtedy, gdy wynik nadal zawiera archiwa. Większa głębokość to więcej miejsca na dysku i więcej czasu.

Czy rozpakowane dane można bezpiecznie wgrać?

Rozpakowane pliki służą do oględzin. Wgrywaj tylko kompletny pakiet, który sam zbudowałeś ponownie lub dostałeś nienaruszony, na urządzeniu, dla którego masz zrzut pozwalający wrócić do poprzedniego stanu.

Praktyczna lista kontrolna przed wgraniem

  • Identyfikatory modelu, płyty i panelu w pliku zgadzają się z naprawianym telewizorem.
  • Rozmiar pliku i suma kontrolna zgadzają się z tym, co podaje źródło, jeśli je podaje. Pobieranie przerwane w połowie to częsta przyczyna nieudanych aktualizacji.
  • Pendrive jest sformatowany tak, jak wymaga producent (zwykle FAT32) i zawiera tylko plik aktualizacji w oczekiwanym folderze lub pod oczekiwaną nazwą. NIEZWERYFIKOWANE Nazwy plików i zasady dotyczące folderów różnią się zależnie od platformy; sprawdź instrukcję producenta.
  • Masz zrzut bieżącej zawartości pamięci, więc nieudaną aktualizację można odwrócić.
  • Zasilanie sieciowe jest stabilne, a telewizor nie zostanie wyłączony w trakcie aktualizacji.

Pakiet, który na komputerze wygląda dobrze, może mimo to zawieść w telewizorze z powodów niewidocznych dla komputera, na przykład z powodu sprawdzania wersji w bootloaderze. Traktuj analizę jako sposób na zmniejszenie ryzyka, a nie na jego usunięcie.

Pobierz demo


Wypróbuj FW Tool (demo)