[SIZE=“4”]Operazioni preliminari:[/SIZE]
-
Assicurarsi di avere openssh installato e attivo sull’iphone ed essere in grado di connettersi senza problemi.
La connessione ssh dovete poterla utilizzare sia per scambiare file (protocollo scp, utilizzate client come winscp su win e cyberduck su mac) sia come terminal vero e proprio per inviare comandi! (su windows utilizzate putty, su mac il terminal integrato) -
Scaricare sul computer gli headers per la compilazione (versione per firmware 2.2 aggiornati con tutto l’immaginabile): iphone headers sdk 2.2 + api + substrate
[SIZE=“4”]Creare l’ambiente di sviluppo:[/SIZE]
-
Installate sull’iphone tramite cydia il pacchetto ldid.
-
Installate sull’iphone tramite cydia il pacchetto gcc
-
Installate sull’iphone tramite cydia il pacchetto make
-
Con un client ssh (scp) trasferire la cartella include (scompattata dall’archivio scaricato) dentro /private/var in modo da avere dentro /private/var/include tutti i file .h e le varie sottocartelle (se la cartella esiste già per vide del gcc installato, sovrascrivete pure :D).
[SIZE=“4”]Prima applicazione - Ciao mondo da linea di comando:[/SIZE]
-
Scaricate il progetto di esempio hello.zip, è un semplice printf("Ciao mondo
"); con il relativo makefile. Decomprimetelo e mettere la cartella hello sotto la root / dell’iphone. -
Connettetevi in ssh al telefono, questa volta per lanciare comandi (quindi o putty o terminal) login root pw alpine e digitate i seguenti comandi:
cd …
cd …
Ora sarete nell root vera e propria, cioè /. Digitate il comando
cd hello
ed entrerete nella dir appena copiata con il mio progetto, digitate:
make all
Il programma hello sarà compilato e signato dall’ldid di saurik
- A questo punto se la compilazione va a buon fine potrete avviare il vostro programa digitanto:
./hello
[SIZE=“4”]Seconda applicazione - Ciao mondo grafico:[/SIZE]
-
Scaricate il programma MyApp.zip e decomprimete la cartella MyApp sempre sotto la root dell’iphone (/MyApp).
-
Entrate in questa dir con i soliti comandi “cd” sempre via putty
-
Compilate con il comando “make package” che si preoccuperà di copiarvi anche i file dentro /Applications/MyApp.app e impostare tutto
-
Respringate
PS: Si possono utilizzare anche le librerie non documentate e quindi avere completo accesso a tutte le funzioni del firmware iphone
PS2: Lanciare i comandi su iphone tramite la connessione ssh con putty o terminal potrebbe essere evitato se si utilizza l’applicazione MobileTerminal scaricabile da cydia (se lo fate dovrete però loggarvi come root, con il comando “su root”, pw alpine). E’ comunque molto più comodo utilizzare la tastiera di un computer e lavorare in remoto.
[SIZE=“4”]Aggiornare toolchain firmware 3.x:[/SIZE]
Col nuovo 3.x non è più possibile installare il compilatore GCC su iphone in quanto non è più disponibile la libreria libgcc necessaria per il funzionamento (saurik non la ha portata in quanto ha detto che non è compatibile, quindi ha riscritto le applicazioni che la usavano senza dire niente in merito al compilatore).
Esiste un modo per far credere a cydia di avere la liggcc installata e quindi poter scaricare e usare il compilatore gcc su 3.x.
Per farlo occorre installare manualmente il pacchetto fake-libgcc_1.0 (dell’autore Ryan Petrich, lo stesso del vecchio Clippy) tramite ssh, scaricandolo da qui e lanciando il solito comando dpkg -i.
Una volta fatto sarete in grado di installare gcc tramite cydia e seguire la guida.
Gli headers:
Ovviamente gli headers sono cambiati (non tutti) col nuovo firmware ed è necessario estrarre i nuovi .h e librerie dal nuovo SDK (scaricabile gratuitamente dal sito della apple).
Poi successivamente gli headers privati per usare le funzioni non documentate dovranno essere estratti manualmente dal firmware iphone, usando il tool classdump.
Questa volta il processo non lo faccio io, lo farete voi.
(Una da dumpare sicuramente è la springboard, quindi con class-dump-x-iphone -H /System/Library/CoreServices/SpringBoard.app/SpringBoard)