Slik lister du alle IPSW-filer fra Apple-servere ved hjelp av kommandolinjen

Mange avanserte brukere foretrekker å bruke firmwarefiler når de oppdaterer deres iOS-enheter til den nyeste versjonen, og hver gang en iOS-oppdatering kommer ut, legger vi direkte nedlastede koblinger til de nyeste versjonene. Hver gang en gang får vi spørsmål fra brukere som lurer på hvordan vi finner de fillinkene, siden de er gjemt bort på Apples nedlastingsservere, tilsynelatende skjult for offentlig visning. Vel, det er ikke noe magi til dette, og det gjøres enkelt gjennom kommandolinjen med et enkelt triks som trekker en fullstendig liste over IPSW-filer som er tilgjengelige direkte fra Apple. På det mest grunnleggende skjemaet står det bokstavelig talt alt, men med noen mindre endringer i kommandosyntaxen kan du sortere for bestemte iOS-versjoner eller for filer som samsvarer med et bestemt maskinvare.



Dette vil trolig ikke være nyttig for alle, men for brukere som liker å jobbe med IPSW, eller for systemadministratorer som trenger å laste ned en haug med forskjellige firmwarefiler for å utføre masseoppdateringer på en haug med maskinvare, bør dette være nyttig. For alle andre kan det være en leksjon for å bevise at vi på osxdaily er nørder som bruker for mye tid på å tenke på dette.

Hvis du skal prøve disse selvene, kopier du hele syntaxblokken og lim den inn i kommandolinjen. Kommandoene ser ut fra hverandre på nettet, men de må limes fint inn i kommandolinjen som en enkelt kommandostreng på en enkelt linje.

Få en liste over alle IPSW-filer for alle iOS-enheter

Følgende kommando streng returnerer en ganske ren liste med ganske bokstavelig talt hver eneste IPSW-fil for hver iOS-enhet, iPad, iPhone, iPod, du nevner den, hostes av Apples servere:

curl http://ax.phobos.apple.com.edgesuite.net/WebObjects/MZStore.woa/wa/com.apple.jingle.appserver.client.MZITunesClientCheck/version | grep ipsw | sort -u | sed 's///g' | sed 's///g' | grep -v protected

For å gå gjennom syntaksen, kommer curl til å se "versjon" -listen fra Apples serveradresse (dette er den samme nettadressen som blir rammet av iTunes når den oppdager en oppdatering er tilgjengelig forresten). Denne listen blir deretter sendt gjennom grep-kommandoen for å matche for "ipsw", men rabatt "beskyttet", sorter -u gjør at de returnerte listepunktene er unike, og til slutt blir resultatene sendt gjennom "sed" for å rydde opp noen ubrukelige XML fra resultatene. Utfør den kommandoen bare dumper alt til kommandolinjen, du kan sende det gjennom "mer" for å gjøre det mer lesbart, eller kanskje det er bedre for enkelte brukere å omdirigere det til en tekstfil som slik:

curl http://ax.phobos.apple.com.edgesuite.net/WebObjects/MZStore.woa/wa/com.apple.jingle.appserver.client.MZITunesClientCheck/version | grep ipsw | sort -u | sed 's///g' | sed 's///g'| grep -v protected > ~/Desktop/ipswlist.txt

Det vil dumpe alt i en tekstfil med navnet 'ipswlist.txt' på skrivebordet.

Få en liste over alle iPhone IPSW-filer fra kommandolinjen

Ikke bryr deg om de andre iOS-filene og vil bare ha en liste over iPhone IPSW? Bruk grep for iPhone og resten av kommandoen forblir den samme:

curl http://ax.phobos.apple.com.edgesuite.net/WebObjects/MZStore.woa/wa/com.apple.jingle.appserver.client.MZITunesClientCheck/version | grep ipsw | grep iPhone | sort -u | sed 's///g' | sed 's///g' | grep -v protected

Legg til "> ~ / Desktop / iPhoneIPSW.txt" til slutt for å sende resultatene til en tekstfil på skrivebordet.

Hent en liste over alle iPad IPSW tilgjengelig på Apples servere

I likhet med å bruke grep for å søke etter iPhone, vil du spesifisere "iPad" bare i stedet for iPad-firmwarefiler:

curl http://ax.phobos.apple.com.edgesuite.net/WebObjects/MZStore.woa/wa/com.apple.jingle.appserver.client.MZITunesClientCheck/version | grep ipsw | grep iPad | sort -u | sed 's///g' | sed 's///g' | grep -v protected

Som før kan du sende det til en tekstfil hvis ønskelig ved å legge til "> ~ / path / to / text.txt" til slutten.

Få en liste over bare en bestemt iOS-versjon fra Apple

I likhet med å søke etter bestemt iOS-maskinvare, kan du også returnere bestemte iOS-versjoner hvis ønskelig. For eksempel vil følgende syntaks bare returnere alle IPSW-resultatene som samsvarer med iOS 7.0.4, notert av denne versjonstrengen i den andre grep:

curl http://ax.phobos.apple.com.edgesuite.net/WebObjects/MZStore.woa/wa/com.apple.jingle.appserver.client.MZITunesClientCheck/version | grep ipsw | grep 7.0.4 | sort -u | sed 's///g' | sed 's///g' | grep -v protected | awk '{$1=$1}1'

Apple er rask med å skyve ut oppdateringer og på grunn av Over-the-Air-mekanismen oppdager folk flest nye oppdateringer nesten med en gang når de blir tilgjengelige. Ikke desto mindre bruker noen brukere en variant av det ovennevnte trikset for å overvåke nye iOS-utgivelser ved periodisk å spørre om forskjellige versjonstrenger som ennå ikke finnes på Apples servere. Det er litt utover omfanget av denne artikkelen skjønt.

Det kan være renere og / eller bedre måter å gjøre dette på, lur i kommentarene hvis du har en annen løsning.