Så här listar du alla IPSW-filer från Apple-servrar med kommandoraden

Många avancerade användare föredrar att använda firmwarefiler när de uppdaterar sina iOS-enheter till den senaste versionen, och varje gång en iOS-uppdatering kommer ut skickar vi direktladdningslänkar för de senaste versionerna. Varje gång får vi frågor från användare som undrar hur vi hittar dessa fillänkar, eftersom de är undangömda på Apples nedladdningsservrar, tydligen dolda från den offentliga uppfattningen. Tja, det finns inte någon magi till det här och det går enkelt genom kommandoraden med ett enkelt trick som drar en fullständig lista över IPSW-filer som är tillgängliga direkt från Apple. På det mest grundläggande formuläret listas det bokstavligen allt, men med några mindre ändringar i kommandotyntaxen kan du sortera för specifika iOS-versioner eller för filer som matchar en viss maskinvara.



Det här är troligt inte användbart för alla, men för användare som gillar att arbeta med IPSW eller för systemadministratörer som behöver ladda ner en massa olika firmwarefiler för att utföra massuppdateringar på en massa hårdvara, borde det vara till hjälp. För alla andra kan det vara en lektion att ytterligare bevisa att vi vid osxdaily är nördar som spenderar för mycket tid på att tänka på dessa saker.

Om du ska försöka dessa själv kopierar du hela syntaxblocket och klistrar in det i kommandoraden. Kommandon ser ut sönderdelade på webben, men de borde klistra in fint i kommandoraden som en enda kommandosträng på en enda rad.

Få en lista över alla IPSW-filer för alla iOS-enheter

Följande kommandostring ger en ganska ren lista med ganska bokstavligen varje enskild IPSW-fil för varje iOS-enhet, iPad, iPhone, iPod, du heter den, värd av Apples servrar:

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

För att gå igenom syntaxen kommer curl till "version" -listan från Apples serveradress (det är samma webbadress som drabbats av iTunes när det upptäcker att en uppdatering är tillgänglig förresten). Listan skickas sedan genom grep-kommandot för att matcha för "ipsw" men rabatt "skyddad", sortera -u ser till att de returnerade listobjekten är unika, och slutligen skickas resultaten genom "sed" för att rensa upp några meningslösa XML från resultaten. Om du kör det här kommandot dumpar du allt till kommandoraden, du kan skicka det genom "mer" för att göra det mer läsbart, eller kanske föredra för vissa användare att omdirigera det till en textfil som så:

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 kommer att dumpa allt i en textfil med namnet "ipswlist.txt" på skrivbordet.

Hämta en lista över alla iPhone IPSW-filer från kommandoraden

Bryr dig inte om de andra iOS-filerna och vill bara ha en lista över iPhone IPSW? Använd grep för iPhone och resten av kommandot förblir detsamma:

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

Lägg till "> ~ / Desktop / iPhoneIPSW.txt" till slutet för att skicka resultaten till en textfil på skrivbordet.

Hämta en lista över alla iPad IPSW som finns tillgängliga på Apples servrar

I likhet med att använda grep för att söka efter iPhone, kommer specifikationen "iPad" att returnera endast iPad-firmwarefiler istället:

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 tidigare kan du skicka det till en textfil om så önskas genom att lägga till "> ~ / path / to / text.txt" till slutet.

Få en lista med endast en viss iOS-version från Apple

På samma sätt som att söka efter specifika iOS-maskinvaror, kan du också returnera specifika iOS-versioner om så önskas. Till exempel kommer följande syntax bara att returnera alla IPSW-resultat som matchar iOS 7.0.4, noterat av den versionsträngen i det andra 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 är snabb med att trycka ut uppdateringar och på grund av över-the-air-mekanismen märker de flesta nya uppdateringar nästan omedelbart när de blir tillgängliga. Ändå använder vissa användare en variant av ovanstående trick för att övervaka nya iOS-versioner genom att periodiskt fråga efter olika versionssträngar som ännu inte finns på Apples servrar. Det är lite bortom omfattningen av den här artikeln.

Det kan finnas renare och / eller bättre sätt att göra detta, chime i kommentarerna om du har en annan lösning.