nov 28

iOS 4.2.1 és a recovery loop

By jadeye 4.2.1, iPhone 4 Hozzászólások kikapcsolva

Mivel vannak, akiknek a 4.2.1-re való update vagy restore után recovery loop-ban ragad az iPhone 4 készülékük, így leírnánk, mi ennek az oka, és hogyan lehet kivédeni.

Az okok

Az Apple a 4.2.1-es firmware kiadásával bevezette, hogy a rendszer ellenőrzi betöltés közben, hogy milyen verziós a baseband, és ha nem egyezik meg azzal, ami a firmware-hez tartozik, akkor nem tölt be. A készülék ilyenkor recovery módban ragad, amiből hiába ugrasztanánk ki bármilyen módszerrel, ugyan úgy visszaesne bele, hiszen a baseband verziója ismételten ellenőrzésre kerül, és elbukik ezen a vizsgán, mert korábbi verziós, mint aminek hivatalosan lennie kellene.

Technikailag ez úgy néz ki, hogy:

  • akinek iPhone 4 esetén 01.59.00-s, tehát az eredeti, és így függetleníthető baseband van a készülékén
  • ezt korábban a TinyUmbrella segítségével frissítette, így a baseband nem változott
  • vagy bentvan a hosts fájljában Saurik szervere

…majd erre ráteszi a 4.2.1-et, akkor az alapesetben 1013-as hibával elszáll a restore végén, mert a baseband nem frissül, hiszen korábban ez volt a lényeg.

Ilyenkor viszont betöltéskor az iOS érzékeli, hogy a 4.2.1 által elvárt 03.10.01-es baseband helyett a 01.59.00-t találja, így hibásnak minősíti a rendszert, és recovery módba dobja. Hiába szedjük ki a recovery-ből, a baseband verziója minden alkalommal ugyan úgy 01.59.00 marad, így ebből a helyzetből a készülék nem rángatható ki egyszerűen.

Kiket érint?

Jelenleg csak az iPhone 4 tulajdonosoknál jön elő ez a recovery loop gond, hiszen egyedül az ő esetükben lehetséges jelenleg baseband-frissítés nélkül feltenni a gyári 4.2.1-et, köszönhetően az Umbrellának, vagy annak, ha Saurik szerverét beleírták a hosts fájlukba.

A 3G és 3GS tulajokat ez azért nem érinti jelenleg, mert ők ma majd frissíthetnek a gyári 4.2.1-re, és frissíthetik a baseband-et is, hiszen ezekre a készülékekre ma estére ígérte a dev-team az új ultransn0w-t. Esetükben viszont a gyári 4.2.1-es firmware telepítése még az Umbrella használata mellett is frissíti a basebandet, így számukra ez a recovery loop-probléma sem jelentkezik.

A megoldás

Ha gyári független a készülékünk, és így nem érdekes a baseband verziója, akkor szedjük ki a hosts fájlunkból azt a sort, amiben megtalálható a gs.apple.com cím, majd töröljük a DNS-cache-t:

  • hosts fájl helye (mindkét esetben rendszergazda/root jog kell a szerkesztéshez és mentéshez):
    - OSX: /private/etc/hosts
    - Windows: %SystemRoot%\system32\drivers\etc\
  • DNS-cache törlése parancssorból (vagy csak indítsuk újra a gépet):
    - OSX: dscacheutil -flushcache
    - Windows: ipconfig /flushdns

Ha ezt megtettük, már hiba nélkül le fog futni a restore, és frissül a baseband. Így bootoláskor a rendszer a megfelelő baseband-verziót fogja megtalálni, és betölt probléma nélkül.

Akinek pedig fontos a függetlenítés, azok valószínűleg eddig sem frissítettek 4.2.1-re, így őket mindez nem érinti. (…hiszen bár az Umbrella miatt a baseband maradt a függetleníthető, az ultrasn0w ettől függetlenül még nem futott az új rendszeren, mert nem volt optimalizálva iOS 4.2.1-re, és a jailbreak is csak tethered.)

Custom firware-ek

A custom firmware-ekben az egyik fontos szempont, hogy ne frissüljön a baseband, így ez itt okozhat némi nehézséget. Ugyanakkor mivel a 3G/3GS-re megérkezik ma a függetlenítés, és azt követi hamarosan az iPhone 4-re való is. Tehát úgyis érdemes lesz majd frissíteni a basebandet, amivel a gyári 4.2.1 is nyugodtan felmehet a készülékre akkor.

Az elkövetkezendő firmware-verziók esetén pedig a dev-team biztosan ki fog találni valamit, hogy a baseband-verzió ellenőrzését is patchelje a custom firmware-ben. Így ha esetleg az Apple frissíti a baseband-et, úgyis megoldják majd, hogy ne foglalkozzon a rendszer azzal, hogy nem a legfrissebb baseband van fent, ha esetleg közben nem találnának függetlenítést az új verzióhoz.

nov 23

Megjelent a Redsn0w 0.9.6b4, amivel jailbreakelhetjük a 4.2.1-es rendszereket. Az új redsn0w ugyan azt tudja mint a régi, de már támogatja az új iOS-t. A friss Redsn0w még mindig a Geohot’s féle Limera1n bootrom exploit-ot használja, az egyetlen probléma, hogy az Apple befoltozta a Comex féle untethered hibát. Így a 4.2.1-es jailbreak jelenleg az új eszközökre tethered!

Ez azt jelenti, hogy ismét számítógép szükséges az újraindításkor. Természetesen itt is érvényes az, hogy csak az új iboot-os és az új iOS eszközökön van csak tethered jailbreak.

Mégpedig:

  • iPhone 3GS (new bootrom)
  • iPhone 4
  • iPad
  • iPod touch 2G (MC Model)

A többi régebbi modellen simán működik a jailbreak nem kell hozzá számítógép mikor újraindítjuk.

Letöltés Redsn0w 0.9.6b4 – Windows
Letöltés Redsn0w 0.9.6b4 – Mac

A 4.2.1 újdonságait (Changelog) Angelday tollából a plastik.hu-n érdemes elolvasni:


preload preload preload