Cómo depurar el kernel de iOS
Autor: zhuliang
Hora: 2012-10-23,11:38:56
La depuración del El kernel de iOS no es tan fácil de depurar los kernels de Win y Linux, pero es más problemático de operar. Este artículo presenta cómo depurar el kernel de iOS y cómo depurar el kernel de iOS en la versión Word. rar.
Cómo depurar el kernel de iOS
Autor: zhuliang
Asegúrese de que el artículo esté completo e indique la fuente al reimprimir
Este artículo explica cómo depurar. Una breve introducción al kernel de iOS (iPhone OS), los pasos de depuración para configurar el entorno de depuración del kernel de iOS, etc.
iOS usa el kernel XNU. El código de XNU para mac se puede descargar desde el sitio web oficial de Apple. Por supuesto, no es la última versión. El kernel XNU tiene tres componentes que son independientes entre sí. interactúan entre sí:
El primero es la preparación del hardware y software.
En términos de hardware, un dispositivo con jailbreak es imprescindible. Se recomienda utilizar el iPhone 4 (tenga en cuenta que el iPad2 o el iPhone 4S utilizan la CPU A5 de Apple y su ROM de arranque actualmente no tiene vulnerabilidades públicas, por lo que no puede hacerlo). use Hongxue para configurar los parámetros de inicio, no puede usarlo para depurar). Línea de depuración del kernel, esta línea contiene un circuito de puerto USB a serie, puede soldarlo usted mismo consultando la Referencia 1. La línea de depuración que hice se muestra en la siguiente figura. Debido a limitaciones de espacio, no discutiré cómo hacerla. línea de depuración aquí. 1 computadora, que puede ser de escritorio o portátil, es mejor mac.
Software, máquina virtual VMware, sistema operativo mac como Lion, XCode, etc.
El siguiente paso es construir el entorno.
Entorno Mac, dado que la depuración del kernel de iOS debe realizarse en la plataforma del sistema operativo Mac, primero debe configurar un entorno Mac. Es mejor utilizar una máquina Mac real, pero también lo es una máquina virtual. Aceptable. Este artículo es para comodidad de aquellos que no tienen una máquina Mac. Tomemos como ejemplo una máquina virtual. Los amigos que tienen una máquina Mac real pueden adaptarse a la situación específica. Los pasos específicos son los siguientes: primero instale el software de una máquina virtual (como VMware) en la computadora y luego instale el sistema operativo mac (como Lion) en la máquina virtual. Después de instalar el sistema mac, descargue XCode e instálelo. . Si le resulta problemático, puede descargar directamente la máquina virtual con Lion instalado desde eDonkey.
Después de ingresar al entorno mac, instale el controlador del chip USB al puerto serie en el sistema operativo mac (se puede descargar desde /Drivers/VCP.htm). Después de instalar el controlador, puede usar ls /dev). /tty.usb * Compruebe si se reconoce el puerto serie. Los resultados del reconocimiento se muestran en la siguiente figura. Luego descargue el código fuente del programa SerialKDPProxy SerialKDPProxy_m.rar (el código fuente lo proporciona Albert_liuwei, SerialKDPProxy ha sido modificado desde la referencia 1, declarado por la presente), y hágalo, ya sabe. Mueva el archivo SerialKDPProxy generado a /bin para no tener que cambiar a este directorio cada vez para ejecutarlo.
Finalmente, después de configurar un entorno de depuración, hay tres pasos principales:
Primero, use la siguiente línea de comando para ejecutar el programa SerialKDPProxy.
SerialKDPProxy /dev/tty.usbserial-A900c0xb
Aquí tty.usbserial-A900c0xb debe reemplazarse con el nombre del dispositivo específico en el sistema, es decir, el ls /dev/ anterior. resultado de tty.usb*.
El segundo paso es configurar los parámetros de inicio usando Red Snow. Este paso se puede realizar en Windows en el host físico, porque la línea de comando implica un archivo de varios cientos de megabytes, que es complicado de copiar a la máquina virtual. Puede utilizar la siguiente línea de comando en Win.
redsn0w.exe -i "D:\Apple\iPhone3,1_4.3.3_8J2_Restore.ipsw" -j -a "-v debug=0x09"
Después de escribir e ingresar el comando, Redsnowsnow le pedirá que siga sus indicaciones para ingresar al modo dfu. Después de ingresar a dfu y esperar un momento, verás al hombrecito de la piña en la pantalla de tu teléfono. Si no lo ve, puede haber un error al ingresar al modo dfu.
A continuación, cambie a trabajar en un entorno Mac. Antes de ingresar al entorno de la máquina virtual, asegúrese de que el punto de montaje frente al dispositivo USB a serie esté montado. Como se muestra en la siguiente figura:
El tercer paso es usar gdb para depurar el kernel de ios. Los parámetros de línea de comando utilizados son los siguientes:
gdb -arch armv7 (gdb) target remoto-kdp (gdb) adjuntar 127.0.0.1
La siguiente imagen muestra Win.Net. El puerto serie en el Administrador de dispositivos es COM8. El agente utiliza la siguiente línea de comando: ./SerialKDPProxy.exe /dev/com8
El comando para iniciar gdb es ./arm-apple-darwin-gdb.exe
Todo lo demás es lo mismo que el ppt de se.
En cuanto a cómo depurar específicamente, los usuarios que estén familiarizados con el uso de la depuración de gdb en Linux pueden dominarlo, o también pueden consultar mi otro artículo "Cómo usar ARM's". MMU para iOS" Mapeo de direcciones".