Cómo enumerar todos los archivos IPSW de los servidores de Apple mediante la línea de comandos
Tabla de contenido:
Muchos usuarios avanzados prefieren usar archivos de firmware cuando actualizan sus dispositivos iOS a la última versión, y cada vez que sale una actualización de iOS, publicamos enlaces de descarga directa para las últimas versiones. De vez en cuando recibimos preguntas de usuarios que se preguntan cómo encontramos esos enlaces de archivos, ya que están escondidos en los servidores de descarga de Apple, aparentemente ocultos a la vista del público.Bueno, esto no tiene nada de mágico y se hace fácilmente a través de la línea de comandos con un simple truco que extrae una lista completa de archivos IPSW que están disponibles directamente desde Apple. En su forma más básica, enumera literalmente todo, pero con algunos cambios menores en la sintaxis de los comandos, puede ordenar versiones específicas de iOS o archivos que coincidan con una pieza específica de hardware.
Es probable que esto no sea útil para todos, pero para los usuarios a los que les gusta trabajar con IPSW o para los administradores de sistemas que necesitan descargar un montón de archivos de firmware diferentes para realizar actualizaciones masivas en un montón de hardware , esto debería ser útil. Para todos los demás, puede ser una lección para demostrar aún más que en osxdaily somos nerds que pasan demasiado tiempo pensando en estas cosas.
Si va a intentarlo usted mismo, copie el bloque de sintaxis completo y péguelo en la línea de comando. Los comandos se ven separados en la web, pero deben pegarse bien en la línea de comando como una sola cadena de comando en una sola línea.
Obtener una lista de todos los archivos IPSW para todos los dispositivos iOS de Apple
La siguiente cadena de comando devuelve una lista bastante limpia de literalmente todos los archivos IPSW para cada dispositivo iOS, iPad, iPhone, iPod, lo que sea, alojados en los servidores de Apple:
curl http://ax.phobos.apple.com.edgesuite.net/WebObjects/MZStore.woa/wa/com.apple.jingle.appserver.client .MZITunesClientCheck/versión | grep ipsw | ordenar -u | sed 's///g' | sed 's///g' | grep -v protegido
Para explicar la sintaxis, curl está accediendo a la lista de "versiones" desde la URL del servidor de Apple (por cierto, esta es la misma URL a la que iTunes accede cuando detecta que hay una actualización disponible). Luego, esa lista se pasa a través del comando grep para que coincida con "ipsw" pero descuenta 'protegido', sort -u se asegura de que los elementos de la lista devueltos sean únicos y, finalmente, los resultados se pasan a través de 'sed' para limpiar algunos XML inútiles de los resultadosEjecutar ese comando simplemente vuelca todo a la línea de comando, puede pasarlo a través de 'más' para que sea más legible, o tal vez sea preferible para algunos usuarios redirigirlo a un archivo de texto así:
curl http://ax.phobos.apple.com.edgesuite.net/WebObjects/MZStore.woa/wa/com.apple.jingle.appserver.client .MZITunesClientCheck/versión | grep ipsw | ordenar -u | sed 's///g' | sed 's///g'| grep -v protegido > ~/Escritorio/ipswlist.txt
Eso volcará todo en un archivo de texto llamado 'ipswlist.txt' en el escritorio.
Obtener una lista de todos los archivos IPSW de iPhone desde la línea de comandos
¿No te importan los otros archivos de iOS y solo quieres una lista de iPhone IPSW? Use grep para iPhone y el resto del comando permanece igual:
curl http://ax.phobos.apple.com.edgesuite.net/WebObjects/MZStore.woa/wa/com.apple.jingle.appserver.client .MZITunesClientCheck/versión | grep ipsw | iPhone grep | ordenar -u | sed 's///g' | sed 's///g' | grep -v protegido
Agregue “> ~/Desktop/iPhoneIPSW.txt” al final para enviar los resultados a un archivo de texto en el escritorio.
Recuperar una lista de todos los iPad IPSW disponibles en los servidores de Apple
Al igual que usar grep para buscar un iPhone, especificar 'iPad' devolverá solo los archivos de firmware del iPad:
curl http://ax.phobos.apple.com.edgesuite.net/WebObjects/MZStore.woa/wa/com.apple.jingle.appserver.client .MZITunesClientCheck/versión | grep ipsw | iPad grep | ordenar -u | sed 's///g' | sed 's///g' | grep -v protegido
Como antes, puede enviarlo a un archivo de texto si lo desea agregando "> ~/ruta/al/texto.txt" al final.
Obtener una lista de solo una versión específica de iOS de Apple
Al igual que en la búsqueda de hardware iOS específico, también puede obtener versiones específicas de iOS si lo desea. Por ejemplo, la siguiente sintaxis solo devolverá todos los resultados de IPSW que coincidan con iOS 7.0.4, indicados por esa cadena de versión en el segundo grep:
curl http://ax.phobos.apple.com.edgesuite.net/WebObjects/MZStore.woa/wa/com.apple.jingle.appserver.client .MZITunesClientCheck/versión | grep ipsw | grep 7.0.4 | ordenar -u | sed 's///g' | sed 's///g' | grep -v protegido | awk '{$1=$1}1'
Apple es rápido con las actualizaciones y debido al mecanismo Over-the-Air, la mayoría de las personas notan las nuevas actualizaciones casi de inmediato cuando están disponibles. No obstante, algunos usuarios usan una variación del truco anterior para monitorear las nuevas versiones de iOS consultando periódicamente varias cadenas de versión que aún no existen en los servidores de Apple. Sin embargo, eso está un poco más allá del alcance de este artículo.
Puede haber formas más limpias y/o mejores de hacer esto, comente en los comentarios si tiene otra solución.