Hoe een lijst van alle IPSW-bestanden van Apple-servers met behulp van de opdrachtregel

Veel geavanceerde gebruikers geven er de voorkeur aan om firmwarebestanden te gebruiken bij het bijwerken van hun iOS-apparaten naar de nieuwste versie en elke keer als er een iOS-update verschijnt, plaatsen we directe downloadkoppelingen voor de nieuwste versies. Af en toe krijgen we vragen van gebruikers die zich afvragen hoe we die bestandskoppelingen vinden, omdat ze weggestopt zijn op de downloadservers van Apple, schijnbaar verborgen voor de publieke opinie. Nou, daar is geen magie voor en het is gemakkelijk te doen via de commandoregel met een eenvoudige truc die een volledige lijst van IPSW-bestanden haalt die rechtstreeks bij Apple verkrijgbaar zijn. Op zijn meest eenvoudige vorm bevat het letterlijk alles, maar met een paar kleine wijzigingen in de commandosyntaxis die je kunt sorteren voor specifieke iOS-versies of voor bestanden die overeenkomen met een specifiek stuk hardware.



Dit zal waarschijnlijk niet voor iedereen nuttig zijn, maar voor gebruikers die graag met IPSW werken, of voor systeembeheerders die een heleboel verschillende firmwarebestanden moeten downloaden om bulkupdates op een aantal hardware uit te voeren, zou dit nuttig moeten zijn. Voor alle anderen kan het een les zijn om verder te bewijzen dat we bij osxdaily nerds zijn die te veel tijd besteden aan het nadenken over dit spul.

Als u deze zelf gaat proberen, kopieert u het volledige syntaxisblok en plakt u het in de opdrachtregel. De commando's zien er uit elkaar op het web, maar ze moeten prima in de commandoregel plakken als een enkele commandotekenreeks op een enkele regel.

Krijg een lijst Alle IPSW-bestanden voor alle iOS-apparaten

De volgende opdrachtreeks retourneert een redelijk schone lijst van vrij letterlijk elk IPSW-bestand voor elk iOS-apparaat, iPad, iPhone, iPod, noem maar op, gehost door de servers van Apple:

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

Om door de syntaxis te lopen, heeft curl toegang tot de "versie" -lijst van de server-URL van Apple (dit is dezelfde URL die wordt geraakt door iTunes wanneer het detecteert dat er overigens een update beschikbaar is). Die lijst wordt vervolgens doorgegeven aan de grep-opdracht om overeen te komen met "ipsw", maar korting 'beschermd', sort -u zorgt ervoor dat de geretourneerde lijstitems uniek zijn en tenslotte worden de resultaten doorgegeven 'sed' om wat nutteloze XML op te ruimen uit de resultaten. Het uitvoeren van die opdracht dumpt alles gewoon naar de commandoregel, je kunt het door 'meer' sturen om het leesbaarder te maken, of misschien is het beter om sommige gebruikers het om te leiden naar een tekstbestand zoals:

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

Dat dumpt alles in een tekstbestand met de naam 'ipswlist.txt' op het bureaublad.

Krijg een lijst met alle iPhone IPSW-bestanden van de opdrachtregel

Maakt u zich niet druk om de andere iOS-bestanden en wilt u gewoon een lijst met iPhone IPSW? Gebruik grep voor iPhone en de rest van het commando blijft hetzelfde:

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

Voeg "> ~ / Desktop / iPhoneIPSW.txt" toe aan het einde om de resultaten naar een tekstbestand op het bureaublad te sturen.

Haal een lijst op van alle iPad IPSW die beschikbaar is op de servers van Apple

Vergelijkbaar met het gebruik van grep om te zoeken naar een iPhone, geeft het opgeven van 'iPad' alleen iPad-firmwarebestanden als resultaat:

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

Zoals eerder, kunt u desgewenst een tekstbestand naar dit bestand sturen door "> ~ / path / to / text.txt" aan het einde toe te voegen.

Krijg een lijst met alleen een specifieke iOS-versie van Apple

Net als bij het zoeken naar specifieke iOS-hardware, kunt u desgewenst specifieke iOS-versies retourneren. De volgende syntaxis retourneert bijvoorbeeld alleen alle IPSW-resultaten die overeenkomen met iOS 7.0.4, opgemerkt door die versiestring in de tweede 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 is snel met het uitdragen van updates en vanwege het Over-the-Air-mechanisme merken de meeste mensen bijna meteen nieuwe updates wanneer ze beschikbaar komen. Niettemin gebruiken sommige gebruikers een variatie op bovenstaande truc om te controleren op nieuwe iOS-releases door periodiek te zoeken naar verschillende versiereeksen die nog niet bestaan ​​op de servers van Apple. Dat is echter een beetje buiten het bestek van dit artikel.

Er kunnen schonere en / of betere manieren zijn om dit te doen, denk aan de opmerkingen als je een andere oplossing hebt.