Datum z roku 1970 dokáže zmrazit iPhone

Před dvěma dny se na jednom z fór Redditu objevil příspěvek informující, že změnit svoje iOS zařízení s 64bitovými procesory (iPhone 5S a novější, iPad Air a iPad mini 2 a novější) na statický designový objekt dokáže každý s trochou volného času. Stačí v nastavení vypnout automatické nastavení data, ručně ho změnit na 1. ledna 1970 a poté zařízení restartovat.

K dokončení restartu totiž v takovém případě nikdy nedojde – spouštění zařízení se zasekne na bílé obrazovce s logem Applu. Nepomůže obnova ze zálohy ani návrat do továrního nastavení. Lidé, kteří svoje iPhony a iPady zanesli do Apple Storu ve snaze učinit je opět užitečnými po několikaminutovém sledování zmatených tváří Apple techniků obdrželi nové zařízení.

Ačkoliv se tato chyba může zdát jako vcelku banální (kolik lidí má nutkání na svém iOS zařízení nastavovat právě toto datum?), může být využita k hromadné tvorbě neužitečných designových objektů. Automatické nastavování času totiž při připojení k Wi-Fi v iOS zařízeních probíhá skrze NTP (protokol pro synchronizaci hodin počítačů v síti) servery.

Ten, kdo by měl přístup k NTP serveru dané Wi-Fi sítě, může na všechna zařízení k ní připojená zaslat pokyn ke změně data. Tento scénář zatím neproběhl a není jisté, zda by byl možný. Data NTP jsou ale zasílána nekódovaná a neověřená a zjistit, co by takto iniciovaná hromadná změna data způsobila, by tedy nemělo být příliš náročné.

systemclock

Problém má pravděpodobně zdroj ve způsobu, jakým unixové operační systémy určují čas. Ten je v nich totiž ukládán v 32bitovém formátu jako počet sekund uběhnuvší od začátku unixového času, 1. ledna roku 1970. Podle aktuálních spekulací 64bitová iOS zařízení dělají něco zvláštního se systémovými časy blízkými nule, jejich nastavení tedy způsobí při spouštění systému smyčku.

Jediným způsobem, jak nastavený čas resetovat, je zcela vybít baterii, nebo ji odpojit a znovu připojit. Nefunkční zařízení je tedy uživatel schopen uvést opět do správného běhu prostým počkáním na jeho úplné vybití, to ovšem nemění nic na nutnosti problému věnovat pozornost. Na Macu se uživatelé bát nemusí, protože počítačový systém má zabudovanou ochranu, kdy vás při snaze změnit datum na výše zmíněný termín upozorní, abyste možným problémům předešli.

Zdroj: Reddit, Ars Technica
Předchozí článekDalší článek
  • MrBejky

    Dobrý den, opravdu stačí pouze počkat na vybití?

    • Tomáš Chlebek

      Ehm…sám jsem to raději nezkoušel, ale zdroje vskutku uvádí, že úplné vybití baterie problém napraví. Úplné vybití se ale nerovná vypnutí telefonu kvůli nízkému množství energie v baterii. Baterie se zcela vyprázdní až za několik dnů po tom, co se telefon nezapne.

  • Töchtle Möchtle

    Co to znamená „adresovat problém“?
    Kluci jablíčkářský, když už něco překládáte z cizinštiny a nevíte, co jaké slovo znamená, podívejte se třeba do Slovník.app, kde ve třetím bodu u slovesa „address“ máte napsáno, co to je. Česky se tohle sloveso překládá jako „řešit“.

    • Tomáš Chlebek

      Samozřejmě vím, co v daném kontextu „address znamená“, ale nenapadlo mě, že se stejný jazykový obrat v češtině neužívá. „Adresovat problém“ jsem chápal jako rétoricky sofistikovanější verzi „věnovat se problému“, „zabývat se problémem“.

      • Töchtle Möchtle

        Adresují se signály např. v tiskové hlavě. Problém se neadresuje. Problém se hlásí, nahlašuje, oznamuje, předává se k řešení nebo se řeší. Uvažujme česky, pišme česky. Překládejme a nepočešťujme.