2011-08-18 7 views
9

Tengo algunas preguntas sobre el desarrollo de ajustes de sustrato móvil.
Antes que nada, ¿cómo se hacen?Desarrollo de ajustes de sustrato móvil

¿Tienes que usar XCode?

¿Qué tipo de archivos se necesitan y dónde coloca el código?

¿Cómo se conecta a una aplicación?

Por ejemplo, si deseo cambiar algo en la aplicación Mensajes, ¿cómo podría programarlo para engancharme en Messages.app?

Estoy muy familiarizado con el desarrollo de aplicaciones regulares para la tienda de aplicaciones, y estoy muy interesado en el sustrato móvil. Realmente me gustaría saber cómo hacerlo y por dónde empezar. ¡Gracias!

Respuesta

12

By far, the easiest way to develop MS tweaks is to use Theos

Siga las instrucciones dadas en el enlace anterior para instalar theos, navegue a la carpeta que desea guardar el proyecto y ejecutar $THEOS/bin/nic.pl para generar una plantilla para su pellizco.

El archivo Tweak.xm generado es donde coloca su código. Para compilar el proyecto solo navegue hasta el directorio del proyecto en Terminal y ejecute make. Si tiene dpkg en su sistema, puede empaquetar e instalar el proyecto fácilmente. Asegúrese de OpenSSH está instalado en su iDevice y añadir esta línea al archivo MAKE de su proyecto:

THEOS_DEVICE_IP = [INSERTDEVICESIPHERE] 

A continuación, ejecute make package install para construir su proyecto, empaquetarlo en un .deb, transferirla a su dispositivo e instalarlo.

El código que realmente se encuentra en el archivo Tweak.xm es objetivo-C con un lenguaje que simplifica las tareas de sustrato móvil llamado Logos, que se explica aquí: http://iphonedevwiki.net/index.php/Logos. En general, sin embargo, el código sigue este formato:

%hook classname //declares the class from your application you're going to override 

-(void)functionyouwanttooveride { 

    dosomethingnew(); //put all your new code for the method here 
    return %orig;  //this calls the original definition of the method and returns the result 
} 
%end //end hooking classname 

Para averiguar qué clases y métodos que necesita para reemplazar a hacer lo que quiere hacer, instalar desde Cydia class-dump, SSH en el dispositivo y se ejecutan class-dump -H path/to/your/binary -o /path/where/you/want/your/classheaders. Luego solo tiene que mirar a través de los encabezados resultantes para encontrar clases y métodos que tienen nombres que parecen relevantes para lo que está haciendo, y experimentar con ellos.

¡Buena suerte!

+0

Gracias amigo! ¿Pero cómo puedo encontrar una 'funciónyouwanttooverride'? ¿Cómo puedo obtener el código original para la función, para poder modificarlo? – JonasG

+3

¡Sin preocupaciones! Esa es la parte más difícil, no tiene el código fuente, por lo que no puede ver la implementación de ninguna de las funciones, por lo que se necesitan muchas conjeturas. Si instala el paquete "syslogd en/var/log/syslog" de cydia, entonces puede usar '% log' en su código y escribirá en el registro del sistema (ubicado en/var/log/syslog) que el método tenía ha sido llamado, y registre los argumentos con los que fue llamado para darle una mejor idea de lo que está sucediendo. También instale gdb desde cydia y puede establecer puntos de interrupción en métodos interesantes para averiguar qué está sucediendo. Es difícil, ¡solo sigue experimentando! – stonesam92

+2

También tenga en cuenta que, una vez que se habilita la escritura en syslog, muchos otros procesos también escribirán y se llenará bastante rápido y podría consumir un poco de espacio, por lo que puede querer eliminarlo de vez en cuando o deshabilitar el registro cuando no lo necesitas, puedes ver más sobre eso en [theiphonewiki] (http://theiphonewiki.com/wiki/index.php?title=System_Log) – stonesam92

Cuestiones relacionadas