Sådan listes alle IPSW-filer fra Apple-servere ved hjælp af kommandolinjen

Mange avancerede brugere foretrækker at bruge firmwarefiler, når de opdaterer deres iOS-enheder til den nyeste version, og hver gang en iOS-opdatering kommer ud, sender vi direkte download-links til de nyeste versioner. Hver gang imellem får vi spørgsmål fra brugere, der spekulerer på, hvordan vi finder disse filforbindelser, da de er gemt væk på Apples downloadservers, tilsyneladende skjult for offentligheden. Nå er der ikke nogen magi til dette, og det gøres nemt gennem kommandolinjen med et simpelt trick, der trækker en komplet liste over IPSW-filer, der er tilgængelige direkte fra Apple. På den mest basale form er det bogstaveligt talt alt, men med nogle mindre ændringer i kommandosyntaxen kan du sortere til bestemte iOS-versioner eller til filer der matcher et bestemt hardware.



Dette vil sandsynligvis ikke være nyttigt for alle, men for brugere, der kan lide at arbejde med IPSW eller systemadministratorer, der skal downloade en masse forskellige firmwarefiler til at udføre bulkopdateringer på en masse hardware, bør det være nyttigt. For alle andre kan det være en lektion at bevise, at vi på osxdaily er nørder, der bruger for meget tid på at tænke på disse ting.

Hvis du vil prøve disse selv, skal du kopiere hele syntaxblokken og indsætte den i kommandolinjen. Kommandoerne ser op adskilt på nettet, men de skal indsætte fint i kommandolinjen som en enkelt kommandostreng på en enkelt linje.

Få en liste over alle IPSW-filer til alle iOS-enheder

Følgende kommandostreng returnerer en ret ren liste over ret bogstaveligt hver eneste IPSW-fil til hver iOS-enhed, iPad, iPhone, iPod, du navngiver den, hostet af 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 at gå igennem syntaksen får curl adgang til "version" -listen fra Apples server-URL (dette er den samme webadresse, som er ramt af iTunes, når det opdager, at en opdatering er tilgængelig forresten). Denne liste sendes derefter gennem grep-kommandoen for at matche for "ipsw", men rabat "beskyttet", sort -u sikrer, at de returnerede lister er unikke, og til sidst sendes resultaterne gennem 'sed' for at rydde op nogle ubrugelige XML fra resultaterne. Hvis du gennemfører den kommando, dumper du alt til kommandolinjen, du kan sende det gennem "mere" for at gøre det mere læseligt, eller måske foretrækker nogle brugere at omdirigere det til en tekstfil som sådan:

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

Er ligeglad med de andre iOS-filer og vil bare have en liste over iPhone IPSW? Brug grep til iPhone, og resten af ​​kommandoen forbliver 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

Tilføj "> ~ / Desktop / iPhoneIPSW.txt" til slutningen for at sende resultaterne til en tekstfil på skrivebordet.

Hent en liste over alle iPad IPSW tilgængelige på Apples servere

I lighed med at bruge grep til at søge efter iPhone, angives 'iPad' kun i stedet for firmwarefiler til iPad:

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 det ønskes, ved at tilføje "> ~ / path / to / text.txt" til slutningen.

Få en liste over kun en bestemt iOS-version fra Apple

På samme måde som at søge efter specifik iOS-hardware, kan du også returnere bestemte iOS-versioner, hvis det ønskes. F.eks. Returnerer følgende syntaks kun alle IPSW-resultater, der matcher iOS 7.0.4, noteret af denne versionsstreng i det andet 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 hurtig med at skubbe opdateringer ud, og på grund af Over-the-Air-mekanismen opdager de fleste mennesker nyheder næsten med det samme, når de bliver tilgængelige. Ikke desto mindre bruger nogle brugere en variant af ovenstående trick til at overvåge nye iOS-udgivelser ved regelmæssigt at spørge om forskellige versionsstrenge, der endnu ikke findes på Apples servere. Det er dog lidt ud over denne artikels anvendelsesområde.

Der kan være renere og / eller bedre måder at gøre dette, chime i kommentarerne, hvis du har en anden løsning.