Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

jak zrozumieć Panic Full log w iPhone i iPad

bert_studionapraw 31 Dec 2022 14:44 1497 2
  • Halo, cześć.

    Świątecznie i noworocznie: Jak zrozumieć panic full log w iPhone i iPad
    Było już trochę o tym na forum jakiś czas temu ale ciągle sporo w tym temacie nieporozumień. Rozwiewam więc niedomówienia i mity (o znikających elementach), podpowiedziach w stylu "powiedz mi jak wymienić ten thermalmonitord" - przy okaji: Thermal Monitor Daemon to funkcja logiczna pisana w SWIFT.

    Jak zwykle, graficzna wersja na moim blogu studionapraw.pl to którego zapraszam także w każdej, innej sprawie.


    iPhone Kernel Panic Full Log, bo tak brzmi pełna tego nazwa (oraz obligatoryjnie dla iPada lub Mac’a), to zapis stanu jądra i dziennik awarii w systemie twojego urządzenia. Nie jest to jednak pełne repozytorium problemu. Te ciągle są tworzone przez inżynierów kodu w Cupertino a co ważniejsze, ciągle się zmienia, zależnie od potrzeb badanych zasobów sprzętowych.

    Panic full lub crash log to dokumentacja zdarzeń w systemach unix’owych (twój IOS to przecież Unix based OS)

    Przez analogie do moich doświadczeń z maszynami unixowymi, problem z czytelnością Panic Full Log przestał być przerażający. Wszystko zaczęło się układać dopiero, kiedy skojarzyłem wspólne cechy, niedostrzegalne wcześniej z powodu zakodowania istotnych informacji. Na teraz, wydaje mi się, że mam zgodność do wersji 16 i chyba wiem gdzie patrzeć, kiedy pojawi się i 17’ta.

    Panic Full Log (lub crash.log – zależnie od urządzenia) pojawia się zawsze, kiedy jądro systemu ma problem sprzętowy z funkcją sterownika, strukturą danych albo potokiem przychodzącym z czujników. W wielu przypadkach można się bez tego obejść, jednak od jakiegoś czasu (iOS 14.5) jest to wystarczający powód by w kilku przypadkach uruchomić procedurę ponownego startu (… wydaje mi się, że ma to raczej związek ekonomiczny niż technologiczny).

    Lokalizacja nie zmieniła się od wielu wydań, przejdź do ustawienia --->> prywatność i ochrona -->> analizy i udoskonalenia -->> dane analiz. W katalogu danych znajdą się wszystkie raporty analityczne, Feedback’i pomiary i inne, posegregowane alfabetycznie pliki. Znajdź literę ” P ” – Panic.Log lub Panic.Full zakończone numerami (data, godzina).

    Czytanie zapisu dziennika jest proste choć poszczególne sekcje, zależnie od wersji mogą zmieniać swoje położenie. Nie powinno być trudności ze zlokalizowaniem poszczególnych miejsc. W przypadku wątpliwości napisz <a href="mailto:tojaert@studionapraw.pl">e-mail'a</a>, postaram się pomóc.
    Zaczyna się od umiejscowienia raportu w czasie. Potem przedstawienie warunków brzegowych urządzenia i wskazanie miejsca problemu. Istotne robi się od sekcji „panicString”. Znajdziesz tam dość czytelny opis problemu z jego sygnaturą pamięci operacyjnej. Poniżej, to już tylko zakodowane informacje debuggera projektowego, zrzut pamięci i inne, istotne dla inżynierów systemu szczegóły. W pliku poniżej, dwa przykłady: z zegarka (watchOS to też pro’unixOS) po lewej i telefonu po prawej. Zaznaczone sekcje rozwiążą wątpliwości.

    Na marginesie zwrócę uwagę na dwie rzeczy – sekcje są podzielone zgodnie z „informacją bitową” (dla programistów Swift) oraz zastrzeżenie, że zapisy takiego raportu należy (w tej sekcji) traktować jako wskazówkę, nic więcej. Budowa raportu i jego kod zmienia się razem z wydaniem wersji systemu.


    RODZAJE PANIC FULL LOG I ICH ROZSZYFROWANE WSKAZANIA


    ANS2 Recoverable Panic Full log
    Apple NAND Storage v.2 – kontroler przechowywania danych NORD lub NAND. Dziennik może wskazywać na uszkodzenie samego układu. Przykład zwarcia lub zakłócenia harmonicznego sygnału sterującego/ logicznego.

    AOP NMI POWER (Non-Maskable Interrupt)
    Rodzaj przerwania IRQ o nadanych uprawnieniach nadzwyczajnych. Posiada pierwszeństwo w udziałach pamięci i prawo do przerywania transmisji o niższym priorytecie. Wszystko wskazuje na to, że jest związana z mechanizmem AP.SEP „Secure Enclave”, zespołem przednich czujników Face.ID i przedniej kamery.

    AOP Panic Full log
    AOP to cały podzbiór typów funkcji. Informacje o tym, do czego konkretnie odnosi się AOP, nie są powszechnie znane. Przedarły się jednak informacje, że cały segment (APsoc) procesora jest przeznaczona do nadzorowania funkcji AOP.

    AppleSoc: Hot Hot Hot
    komunikat typu alarm. Informuje o krytycznym odczycie temperatury z wewnętrznego mechanizmu autokontroli procesora głównego i pamięci RAM. Kiedy go zobaczysz, prawdopodobnie jest już za późno.

    i2c (i2c0-5) Panic Full log
    protokół komunikacyjny typu master – slaves. Więcej o tym będzie za jakiś czas, w dziale teoretycznym blogu studionarpaw.pl z uwagi na spory zakres zagadnienia. Na teraz niech wystarczy to, że urządzeniem MASTER w tej architekturze zawsze jest procesor główny a odbiornikami (SLAVE) sterowniki obwodowe i podukładowe. Jeśli instrukcja nie dociera lub brakuje sumy kontrolnej sygnału, musi dziać się coś złego fizycznie „na trasie”.

    SEP.Rom Panic Full log
    The Secure Enclave Processor (AP.SEP) to wydzielona warstwa procesora do przechowywania danych ultra-chronionych. Wskazuje na uszkodzenia w przestrzeni transmisji lub warstwy fizycznej urządzeń podukładu „Secure”. W skład podukładu wchodzą procesor główny, urządzenia zespołu Face.ID/Touch.ID, NAND, Baseband, Stockholm i eeprom.

    SMC Assertion Failed
    SMC to znane urządzenie wszystkim technikom Mac i MacBook. W iPad i iPhone urządzenie SMC także występuje, jednak od modelu 11, wkomponowane do układowego PMU, w późniejszych przeniesione do CPU. Ten typ błędu zazwyczaj ma string BSC FAILURE. W modelach od 13 błąd powoduje restarty systemu w interwale 180 sekund (wydaje się być nową wersją Watchdog). Zawsze występuje z parametrem tablicy czujników. ( DOTYCZY wyłącznie modeli od 13 )

    Watchdog Timeout Thermalmonitord Missing Sensor (brak czujnika)
    proces systemowy Watchdog ma zaprogramowany cykl badania danych zewnętrznych czujników. Cykl jest cykliczny, jak nazwa wskazuje i ma wartość 180 sekund. Jeśli interwał pomiarowy nie zostanie przerwany przez napływające dane (potwierdzone), system rozpocznie awaryjne uruchomienie, licząc że ponowny start systemu i bieżące uruchomienie czujnika rozwiąże problem. By odnaleźć brakujący sygnał z czujnika analizuj napływające dane z Panic.Log. ( DOTYCZY wyłącznie modeli 7-12pro/Max )

    PRSo – czujnik napięcia portu ładującego (room=dock)
    Mic1 – czujnik (funkcja nieznana) dolnej taśmy łączącej (room=dock_flex)
    Mic2 – czujnik (funkcja nieznana) górnej taśmy łączącej (room=power_flex/strobe)
    TG0V – czujnik napięcia baterii (room=battery)
    TG0B – czujnik temperatury baterii (room=battery)
    TT0D-TT9D – czujnik sterownika ekranu (występuje tylko w tabletach)

    Watchdog Timeout No Check In (brak meldunku)
    Proces Timeout sprawdza ogólną funkcjonalność systemu. Jeśli czas „między zameldowaniami „sub-check” przekroczy wartość maksymalną, urządzenie uruchomi się ponownie, aby spróbować to naprawić. Łatwe do namierzenia, jeśli w instrukcji Springboard, logd, wifid lub Thermalmonitord nie występuje fizyczna lokalizacja czujnika. Zakładam, że w takim przypadku chodzi o komponent softwarowy. Szczególnie widoczny w pierwszych wydaniach wersji 16.0. Od wersji 16.2 nie odnotowałem żadnego przypadku (wnioski?)
    ( DOTYCZY wyłącznie modeli 7-12pro/Max )

    Undefined Kernel Instruction (niezidentyfikowana funkcja jądra)
    Kernel jest tym, na co wskazuje nazwa (serce systemu). Niezidentyfikowane instrukcje, funkcje i tablice to stały fragment zabawy inżyniera systemu. Jeśli napotkasz ten błąd, najprawdopodobniej jest związany z samym systemem lub niekompatybilną aplikacją (co już się zdarzało).


    Na koniec, jeszcze w kilku słowach o robotach (przydatnych aplikacjach). Jest ich kilka w użyciu. W mojej ocenie, najbardziej popularny wskazuje ciągle tą samą grupę błędów (choć może mam za mało doświadczenia by to ocenić). Zawsze winien ma być port ładowania i taśma Power. W innym, popularnym urządzeniu (3uT) liczona jest tylko liczba logów ale może to tylko tymczasowe. Informacja także jest taka sama: „odwiedź warsztat naprawczy”.

    Mam nadzieję, że nieco przybliżyłem problem. Jeśli wpłynie to pozytywnie na jakość naprawianych przez Ciebie (czytelniku) urządzeń, zostaw komentarz i pochwal się tym. Będzie mi niezmiernie miło, że moja praca jest potrzebna.


    - pozdrawiam,
    About Author
    bert_studionapraw
    Specialist - Apple
    Offline 
    Has specialization in: specjalizacja w Apple
    bert_studionapraw wrote 459 posts with rating 118, helped 85 times. Live in city Warszawa. Been with us since 2021 year.
  • #2
    staś pytalski
    Level 39  
    Dziękuję Kolego Bert, za ciekawy artykuł-poradnik. Dzisiaj sprawdzić chciałem kondycję baterii narzędziem 3u tools. Co ciekawe, sam program sugeruje, że nastąpiły nieoczekiwane błędy i wskazuje ile tych "Crash" logów jest dostępnych.
    U mnie były kilka tych samych, wklejam zrzut z programu wspomnianego błędu, bo nie widzę rozpiski w Twoim artykule, albo źle czytam log. Ciekawy jestem z czym mój błąd jest związany.

    jak zrozumieć Panic Full log w iPhone i iPad


    Dziękuję i pozdrawiam :)
  • #3
    bert_studionapraw
    Specialist - Apple
    Halo, cześć.

    Niestety, ten standardowy reader z 3uT to dopiero przymiarka do wersji, która zostanie wydana najwcześniej za kilka miesięcy (od grudnia 2022, powołując się na moją korespondencję z Akacy -jedngo z programistów 3uT, którego zagadnąłem, kiedy powstawał ten artykuł). Możesz się teraz dowiedzieć tylko tyle, że system zarejestrował Panic.log ale nie podaje jeszcze rozwiązania. Nie znam powodów. Podobnie, choć nieco lepiej będzie z Panic.full - aplikacją dla WIN, nieco lepiej jest napisana pomoc ale (przynajmniej w moim przypadku) większość komunikatów o błędzie sprowadza się do "wymień taśmę ładującą" lub "... taśmę trigger'a". Innych nie widziałem i nawet nie sądzę by takie istniały (choć czasem się mylę).

    Popatrz także na daty, widzę na zdjęciu, że to zeszły rok więc pewnie powiązane z błędem iTunes lub wcześniejszymi naprawami. Dla ciebie będzie ważny ten, z datą ostatniego restartu, wcześniejsze z powodu upgrade'u IOS i iTunes mogą być nieaktualne.

    Dodatkowo, plik (wg mojej instrukcji) należy czytać z systemu: ustawienia-->>prywatność-->>analizy i udoskonalenia-->> dane analiz by wyciągnąć wiarygodną informację z sekcji: "Panic.string". Możesz zrobić zrzut ekranu i pokazać to tutaj (lub wysłać do mnie mailem, jeśli obawiasz się pokazywania trzewi telefonu - w przyszłości, rzeczywiście ktoś może tam znaleźć kopalnię istotnych informacji systemowych), postaram się pomóc to przeczytać.

    chyba tyle... pozdrawiam.

    PS, niestety plik, który załączyłeś jest dla mnie zakodowany. Widzę tylko kod... :)

    " p a n i c S t r i n g " : " p a n i c ( c p u 1 c a l l e r 0 x f f f f f f f 0 1 e 1 5 5 d 9 4 ) : K e r n e l d a t a a b o r t . ( s a v e d s t a t e : 0 x f f f f f f f 0 0 0 8 8 2 d 1 0 ) \ n \ t x 0 : 0 x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 x 1 : 0 x 0 0 0 0 0 0 0 0 e 0 0 0 5 0 0 0 x 2 : 0 x f f f f f f f 0 1 e a a d a e 8 x 3 : 0 x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 \ n \ t x 4 : 0 x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 x 5 : 0 x f f f f f f f 0 0 1 8 5 e a 6 0 x 6 : 0 x f f f f f f f 0 0 0 d 5 4 5 3 0 x 7 : 0 x f f f f f f f 0 1 e f 5 a 7 a 4 \ n \ t x 8 : 0 x f f f f f f f 0 1 d e 8 f e f 0 x 9 : 0 x 0 0 0 0 0 0 0 0 0 0 0 3 8 0 0 1 x 1 0 : 0 x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 x 1 1 : 0 x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 7 \ n \ t x 1 2 : 0 x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 8 x 1 3 : 0 x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 x 1 4 : 0 x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 x 1 5 : 0 x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \ n \ t x 1 6 : 0 x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 x 1 7 : 0 x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 x 1 8 : 0 x f f f f f f f 0 1 d f a 1 0 0 0 x 1 9 : 0 x f f f f f f f 0 1 6 4 2 2 0 0 0 \ n \ t x 2 0 : 0 x f f f f f f f 0 0 1 2 f 1 0 0 0 x 2 1 : 0 x 0 0 0 0 0 0 0 0 0 0 0 0 0 7 d c x 2 2 : 0 x f f f f f f f 0 0 3 f 5 5 8 0 0 x 2 3 : 0 x f f f f f f f 0 0 0 8 8 3 3 6 8 \ n \ t x 2 4 : 0 x 0 0 0 0 0 0 0 0 e 0 0 0 5 0 0 0 x 2 5 : 0 x f f f f f f f 0 1 d c 4 2 3 0 d x 2 6 : 0 x 0 0 0 0 0 0 0 0 0 0 0 0 0 7 d 3 x 2 7 : 0 x f f f f f f f 0 1 6 4 2 2 a 2 8 \ n \ t