Qualche giorno fa vi abbiamo parlato di iOSOpenDev, un nuovo programma che si basa su Xcode per creare dei progetti per il jailbreak: ma come funziona veramente questo programma? Siamo andati a chiederlo direttamente allo sviluppatore, che ci ha rilasciato una piccola intervista.
Come ti è venuta in mente l’idea di iOSOpenDev?
Mesi fa mi sono imbattuto in alcuni file che si stagliavano all’interno di Xcode, permettendo di configurarlo per consentire build di binari eseguibili solo con jailbreak (invece di vedersi negata tale possibilità dal famoso programma Apple).
Non ci ho fatto molto con le informazioni che ho appreso dato che anche gli altri conoscevano quello che ho scoperto. Alla fine ho cercato su Google ed ho trovato che le mie scoperte non erano realmente così “comuni”: solamente un paio di persone avevano già parlato di ciò di cui ero venuto a conoscenza.
Così recentemente ho deciso di creare un “package installer” (.pkg) che imposterà XCode e l’iOS SDK e installerà un set di template di progetti comuni per il jailbreak, per fornire ciò che ho imparato al pubblico.
Ci saranno dei comandi speciali per provare le cose che i developer creeranno con il tuo programma?
Per quanto riguarda il debugging di Xcode non sono sicuro quanto funzionante sarà con questi tipi di progetti dato che i binari non sono supportati di default, quindi forse il debugger potrebbe avere problemi nel gestirli. Voglio vederci chiaro e render il debugger funzionante con questi tipi di binari.
Per quanto riguarda comandi speciali esterni ad Xcode, la risposta è no. In realtà questi templates utilizzano i motori di Xcode contrapposti ad altri “freamworks per la costruzione” come Theos, che usa dei “makefiles” tradizionali.
iOSOpenDev rischia di “attrarre” principiante e riempire Cydia con tweak malfunzionanti? Per esempio con le API di Twitter, molti hanno creato applicazioni per scrivere tweet velocemente: può succedere qualcosa di simile con il tuo programma?
Questa è una domanda interessante e ci ho riflettuto molto su quest’argomento. Lo sviluppatore (esempio, il “principiante”) deve ancora scrivere il codice manualmente, perché iOSOpenDev non lo fa! Se un utente di Cydia (esempio, il “cliente”) scarica il tweak del principiante e non gli piace, beh, lo cancellerà e tutto tornerà come prima.
Sono comunque realmente intenzionato a proporre una piattaforma di sviluppo basata su Xcode in modo tale che molte più persone avranno la possibilità di creare tool per il jailbreak e, come conseguenze, ci saranno più competizione, più conoscenza e qualità ai fini del miglioramento dato dagli sforzi di questa comunità.
Ci sono pro e contro, però, nel rilascio di una piattaforma di questo tipo, secondo me. Ma ovviamente questo è un discorso che si può fare su qualsiasi cosa venga fornita alle persone. Inoltre per me e per altri, dire che iOSOpenDev non dovrebbe essere rilasciato alle persone per permettere loro di creare progetti per il jailbreak è come se Apple dicesse che il codice non certificato da Apple stessa (un esempio sono appunto le applicazioni per il jailbreak) non dovrebbe girare su iOS e questo non è figlio di una mentalità “aperta”. E io voglio che iOSOpenDev sia “aperto”.
Su Twitter, in una risposta a @Demonic_BLITZ, hai detto che sei in qualche spaventato di fare il gioco “del gatto con il topo” con i futuri aggiornamenti dell’SDK e di Xcode: perché?
Beh, nel mondo dell’hacking per le piattaforme iOS, quando Apple è vicina al rilascio di una nuova versione del sistema operativo, gli exploit trovati di recente sono conservati, in modo che Apple non risolva il problema di quella falla prima che sia rilasciato l’aggiornamento. Una volta rilasciato, tale exploit può essere rilevato e la sua “durata” sarà maggiore per tutti gli utenti prima che Apple rilasci un nuovo update di iOS: il gioco “del gatto con il topo”.
Prendendo questa affermazione in considerazione e assumendo come improbabile il fatto che Apple prenda di bersaglio iOSOpenDev per chiudere le falle sfruttate, spero che le nuove versioni dell’SDK e di Xcode rendano semplice l’update del mio programma, senza la necessità di dover trovare un’altra strada per fornire questa funzionalità.
Ci sono possibilità di vedere anche un porting su Windows?
iOSOpenDev è diviso in due parti:
- Impostazione di Xcode e dell’SDK di iOS;
- Impostazione dei templati per progetti riservati al jailbreak su Xcode
Di seguito l’intervista in lingua originale: [peekaboo name=”english”]
[peekaboo_content name=”english”]
1. Months ago I came across some files deep inside Xcode that I eventually figured out how to configure Xcode to allow builds of jailbreak-type binaries (instead of Xcode denying you ability to build such executables). I didn’t do much with the information I learned at that time since I figured others knew what I found out. I ended up searching Google and finding out that what I knew was actually not all that common, in fact, there are only a couple people that have even mentioned what I learned. So recently I decided to create a package installer (.pkg) that will setup Xcode and the iOS SDK and install a set of templates of commonly found jailbreak-type projects. To provide what I learned to the public.
2. As for Xcode’s debugging I am not sure how functionality it will be with these types of projects since the binary types aren’t supported by default so the debugger may not know how to deal with them. I want to look further into getting debugging working with these types of binaries eventually. As for special commands outside of Xcode, no. These templates actually use Xcode’s build engine opposed to other “building frameworks” like theos which uses traditional makefiles.
3. This is an interesting question and I have thought a lot about it. The developer (i.e. “newbie”) still has to write the raw code, iOSOpenDev doesn’t write it for them! If a user of Cydia (i.e. “customer”) downloads the newbie’s tweak and it sucks, well, the customer is going to remove it and move on. Really I am hoping providing an Xcode-based development platform that more people will begin to attempt jailbreak development thus creating more competition, knowledge and quality of such community efforts. There are Pros and Cons to providing this I guess. But that is with anything provided to people. For me or others to say that iOSOpenDev shouldn’t be released to provide ability for developers to make jailbreak-type projects is like Apple saying non-Apple signed code (i.e. jailbreak-type apps) shouldn’t be run on the iOS platform, that’s not “open.” And I want it to be more “open.”
4. Well in the world of finding userland exploits on the iOS platform, when Apple is nearing a release of a new iOS version, recently found exploits are held onto so that Apple will not quickly “plug that hole” before the iOS version is released. Then once Apple releases the newer version, that exploit can be revealed and its lifespan is longer for users to use it until Apple releases a new iOS version. The “cat and mouse” game. Taking that into consideration and by NO MEANS assuming Apple is going to target iOSOpenDev and plug the holes it uses, I hope that when newer Xcode and iOS SDKs are released that the iOSOpenDev update process itself is relatively simple, not requiring to find a new way to provide the functionality (hence “cat and mouse”).
5. iOSOpenDev is two parts: (1) setup of Xcode and the iOS SDK and (2) a set of jailbreak-type Xcode templates. Because it surrounds around Xcode and Xcode runs on OS X, iOSOpenDev will only be for OS X. Though for non-OS X development, Theo is an excellent building framework as it’s cross-platform supported. Sorry!
[/peekaboo_content]
Ringraziamo lo sviluppatore Spencer W.S. James per il tempo che ci ha dedicato
Leggi o Aggiungi Commenti