Witam
Ostatnio trafiłem TV opartego na płycie podanej w tytule. Problem - standardowo - logo, reboot, logo, reboot...
Wylutowałem SPI i chcę flashować... ale okazało się że mój programator trochę tak tego nie chce dla mnie zrobić. Ech, chińska jakości.
Programator zamówiony, ale znów trzeba będzie trochę zaczekać, więc zacząłem walczyć poprzez aktualizację przez USB.
Rozwiązanie dobre, ale ma jedną wadę - przyjmuje tylko pliki przeznaczone do aktualizacji USB. Jeśli mamy dump od kogoś, nie uda się w ten sposób wgrać. I tu właśnie przydał się ogromny research w tym temacie, jako że jeśli mamy jakąś Mantę popularną, to spoko, znajdzie się i dump, i bin do aktualizacji. Gorzej, gdy trafiamy na model firmy która nie ma nawej swojej strony internetowej, a o modelu jedyne informacje to prezentacja na Youtube. Każdy firmware był do góry nogami/mniejsza rozdzielczość/brak obrazu etc.
Więc co zrobić, gdy nie ma programatora?
Potrzebujemy:
-edytor HEX; polecam HxD ( https://mh-nexus.de/en/hxd/ )
-CRC-32 generator - polecam GFSW ( http://esrg.sourceforge.net/utils_win_up/md5sum/ )
-oczywiście jakikolwiek dump
Dump od pliku aktualizacji można odróżnić po rozmiarze. Dump ma 8MB, plik aktualizacji - około 6.
Jeśli plik ma rozmiar okolo 6mb, poprawną nazwę (SISEU23X8M.bin), a mimo to telewizor nie chce go przyjąć - to prawdopodobnie bieżące FW nie przyjmuje tej nazwy pliku, trzeba ją zmienić na inną, najlepiej taką samą, jaką miał poprzedni plik aktualizacji, np. SISEU23X8M_70.bin
Plik o rozmiarze 8MB należy przemielić przez hex editor
Następnie, szukamy w nim frazy "CODE", pisane "naszym" ASCII
Zaznaczamy wszystko od nawiasu kwadratowego, aż do końca pliku. Najłatwiej ustawić sobie kursor na początku tego offsetu, a następnie nacisnąć razem na klawiaturze: ctrl+shift+end
Wycinamy za pomocą ctrl+X to wszystko, by zostawić nam czysty plik aktualizacji, bez certyfikatu na końcu, i zapisujemy go.
W przypadku HxD edytor zapyta się nas najpierw, czy wyrażamy na to zgodę, bo to zmieni rozmiar pliku. Zgadzamy się, bo właśnie o to nam chodzi!
Potem poda informację o kodowaniu, spokojnie, kodowanie się nie zmieni
Zostanie nam plik kończący się samymi FF
Zapisujemy go (ctrl+S), a następnie otwieramy poprzez generator sum kontrolnych. Nie zamykamy hex editora!
Jak widać, plik zajmuje znacznie mniej.
Zdobyliśmy sumę kontrolną samego wsadu. Zostawiamy otwarte okno na później. Nie kopiuj teraz sumy kontrolnej, bo wyrzucisz ze schowka fragment kodu, który nadal potrzebujesz!
Wklejamy na końcu pliku znów fragment, który wycięliśmy. Znów dostajemy komunikat o zmianie rozmiaru pliku. Akceptujemy. Mamy teraz na czerwono oznaczone zmiany, które nie zostały jeszcze zapisane w pliku. Szukamy teraz wartości HEX 00080000. Powinna być tylko jedna, jest ona o kilkanaście offsetów niżej od sygnatury (CODE). Kasujemy wszystko, co jest za ostatnim zerem:
Oczywiście, znów pytanie o zmianę rozmiaru pliku. Oczywiście, zgadzamy się.
Wracamy trochę wyżej, do sygnatury. Szukamy CRC-32
Oczywiście "0x" przed CRC ma zostać! Samą wartość natomiast kopiujemy z generatora i wklejamy na podmianę za starą wartość
Plik jest gotowy! Zapisujemy go pod nazwą: SISEU23X8M.bin
Wrzucamy na pendrive, sformatowanego pod FAT32, wskazane jest, by pendrive nie zawierał żadnych innych danych.
Wspomniałem już, że czasem telewizor nie chce przyjąć w ogóle takiego pliku. Wtedy musimy się przygotować, że będzie trzeba zmienić nazwę pliku. Jako, że do mojego modelu poprawnego oprogramowania szukałem 3 dni, i sprawdziłem ponad 100 różnych oprogramowań zanim znalazłem jakiekolwiek działające, ułatwiłem sobie życie i stworzyłem skrypt, który automatycznie kopiuje mi pliki z pliku bazowego i zmienia ich nazwę na inną możliwą. Skrypt ze spoilera należy wkleić do notatnika, i zapisać jako skrypt.bat w folderze głównym na pendrive
Wystarczy wtedy tylko dwukrotnie kliknąć na skrypt i poczekać chwilkę
Odłączamy pendrive, wyłączamy TV z prądu, czekamy aż zgaśnie LED stanu, podłączamy pendrive do USB w TV, i podłączamy do prądu.
Po kilku sekundach LED stanu zacznie naprzemiennie zmieniać kolory z częstotliwością około 2hz.
Jeśli aktualizacja przebiegła poprawnie (trwa to około 20 sekund), LED stanu zacznie zmieniać kolory szybciej, jakieś 10hz.
Jeśli się nie udało, zacznie błyskać na czerwono.
Niezależnie od powodzenia sytuacji, odłączamy TV od prądu, odpinamy pendrive, czekamy aż LED przestanie błyskać, podłączamy do prądu, czekamy 5s i uruchamiamy TV z nowym oprogramowaniem.
Możliwość aktualizacji przez USB zdaje się być wbudowana w CPU, więc nawet po nieudanej próbie flasha możemy spróbować ponownie z innym plikiem. Zauważyłem to, gdy podczas aktualizacji wywaliło mi korki w mieszkaniu, a TV nie umarł
Jeśli się przydało, to dobrze. Jeśli nie, to moderatorze, nie usuwaj. Pewnie mi się kiedyś przyda, a jestem leniwy i nie zapisuję tego nigdzie indziej niż tu
Ostatnio trafiłem TV opartego na płycie podanej w tytule. Problem - standardowo - logo, reboot, logo, reboot...
Wylutowałem SPI i chcę flashować... ale okazało się że mój programator trochę tak tego nie chce dla mnie zrobić. Ech, chińska jakości.
Programator zamówiony, ale znów trzeba będzie trochę zaczekać, więc zacząłem walczyć poprzez aktualizację przez USB.
Rozwiązanie dobre, ale ma jedną wadę - przyjmuje tylko pliki przeznaczone do aktualizacji USB. Jeśli mamy dump od kogoś, nie uda się w ten sposób wgrać. I tu właśnie przydał się ogromny research w tym temacie, jako że jeśli mamy jakąś Mantę popularną, to spoko, znajdzie się i dump, i bin do aktualizacji. Gorzej, gdy trafiamy na model firmy która nie ma nawej swojej strony internetowej, a o modelu jedyne informacje to prezentacja na Youtube. Każdy firmware był do góry nogami/mniejsza rozdzielczość/brak obrazu etc.
Więc co zrobić, gdy nie ma programatora?
Potrzebujemy:
-edytor HEX; polecam HxD ( https://mh-nexus.de/en/hxd/ )
-CRC-32 generator - polecam GFSW ( http://esrg.sourceforge.net/utils_win_up/md5sum/ )
-oczywiście jakikolwiek dump
Dump od pliku aktualizacji można odróżnić po rozmiarze. Dump ma 8MB, plik aktualizacji - około 6.
Jeśli plik ma rozmiar okolo 6mb, poprawną nazwę (SISEU23X8M.bin), a mimo to telewizor nie chce go przyjąć - to prawdopodobnie bieżące FW nie przyjmuje tej nazwy pliku, trzeba ją zmienić na inną, najlepiej taką samą, jaką miał poprzedni plik aktualizacji, np. SISEU23X8M_70.bin
Plik o rozmiarze 8MB należy przemielić przez hex editor
Następnie, szukamy w nim frazy "CODE", pisane "naszym" ASCII
Zaznaczamy wszystko od nawiasu kwadratowego, aż do końca pliku. Najłatwiej ustawić sobie kursor na początku tego offsetu, a następnie nacisnąć razem na klawiaturze: ctrl+shift+end
Wycinamy za pomocą ctrl+X to wszystko, by zostawić nam czysty plik aktualizacji, bez certyfikatu na końcu, i zapisujemy go.
W przypadku HxD edytor zapyta się nas najpierw, czy wyrażamy na to zgodę, bo to zmieni rozmiar pliku. Zgadzamy się, bo właśnie o to nam chodzi!
Potem poda informację o kodowaniu, spokojnie, kodowanie się nie zmieni
Zostanie nam plik kończący się samymi FF
Zapisujemy go (ctrl+S), a następnie otwieramy poprzez generator sum kontrolnych. Nie zamykamy hex editora!
Jak widać, plik zajmuje znacznie mniej.
Zdobyliśmy sumę kontrolną samego wsadu. Zostawiamy otwarte okno na później. Nie kopiuj teraz sumy kontrolnej, bo wyrzucisz ze schowka fragment kodu, który nadal potrzebujesz!
Wklejamy na końcu pliku znów fragment, który wycięliśmy. Znów dostajemy komunikat o zmianie rozmiaru pliku. Akceptujemy. Mamy teraz na czerwono oznaczone zmiany, które nie zostały jeszcze zapisane w pliku. Szukamy teraz wartości HEX 00080000. Powinna być tylko jedna, jest ona o kilkanaście offsetów niżej od sygnatury (CODE). Kasujemy wszystko, co jest za ostatnim zerem:
Oczywiście, znów pytanie o zmianę rozmiaru pliku. Oczywiście, zgadzamy się.
Wracamy trochę wyżej, do sygnatury. Szukamy CRC-32
Oczywiście "0x" przed CRC ma zostać! Samą wartość natomiast kopiujemy z generatora i wklejamy na podmianę za starą wartość
Plik jest gotowy! Zapisujemy go pod nazwą: SISEU23X8M.bin
Wrzucamy na pendrive, sformatowanego pod FAT32, wskazane jest, by pendrive nie zawierał żadnych innych danych.
Wspomniałem już, że czasem telewizor nie chce przyjąć w ogóle takiego pliku. Wtedy musimy się przygotować, że będzie trzeba zmienić nazwę pliku. Jako, że do mojego modelu poprawnego oprogramowania szukałem 3 dni, i sprawdziłem ponad 100 różnych oprogramowań zanim znalazłem jakiekolwiek działające, ułatwiłem sobie życie i stworzyłem skrypt, który automatycznie kopiuje mi pliki z pliku bazowego i zmienia ich nazwę na inną możliwą. Skrypt ze spoilera należy wkleić do notatnika, i zapisać jako skrypt.bat w folderze głównym na pendrive
Spoiler:
@echo off
title Multiplikator
copy SISEU23X8M.bin SISEU23X8M_70.bin
copy SISEU23X8M.bin SISEU23X8M_82.bin
copy SISEU23X8M.bin SISEU23X8M_92.bin
copy SISEU23X8M.bin SISEU23X8M_43.bin
copy SISEU23X8M.bin SISEU23X8M_79.bin
copy SISEU23X8M.bin SISEU23X8M_30.bin
copy SISEU23X8M.bin SISEU23X8M_43.bin
copy SISEU23X8M.bin SISEU23X8M_46.bin
echo Gotowe! Mozesz mnie zamknac, odlaczyc pendrive, i podlaczyc do TV
pause
title Multiplikator
copy SISEU23X8M.bin SISEU23X8M_70.bin
copy SISEU23X8M.bin SISEU23X8M_82.bin
copy SISEU23X8M.bin SISEU23X8M_92.bin
copy SISEU23X8M.bin SISEU23X8M_43.bin
copy SISEU23X8M.bin SISEU23X8M_79.bin
copy SISEU23X8M.bin SISEU23X8M_30.bin
copy SISEU23X8M.bin SISEU23X8M_43.bin
copy SISEU23X8M.bin SISEU23X8M_46.bin
echo Gotowe! Mozesz mnie zamknac, odlaczyc pendrive, i podlaczyc do TV
pause
Wystarczy wtedy tylko dwukrotnie kliknąć na skrypt i poczekać chwilkę
Odłączamy pendrive, wyłączamy TV z prądu, czekamy aż zgaśnie LED stanu, podłączamy pendrive do USB w TV, i podłączamy do prądu.
Po kilku sekundach LED stanu zacznie naprzemiennie zmieniać kolory z częstotliwością około 2hz.
Jeśli aktualizacja przebiegła poprawnie (trwa to około 20 sekund), LED stanu zacznie zmieniać kolory szybciej, jakieś 10hz.
Jeśli się nie udało, zacznie błyskać na czerwono.
Niezależnie od powodzenia sytuacji, odłączamy TV od prądu, odpinamy pendrive, czekamy aż LED przestanie błyskać, podłączamy do prądu, czekamy 5s i uruchamiamy TV z nowym oprogramowaniem.
Możliwość aktualizacji przez USB zdaje się być wbudowana w CPU, więc nawet po nieudanej próbie flasha możemy spróbować ponownie z innym plikiem. Zauważyłem to, gdy podczas aktualizacji wywaliło mi korki w mieszkaniu, a TV nie umarł
Jeśli się przydało, to dobrze. Jeśli nie, to moderatorze, nie usuwaj. Pewnie mi się kiedyś przyda, a jestem leniwy i nie zapisuję tego nigdzie indziej niż tu