Mobile Substrate: Quesito Sconosciuto

In questi giorni di trepidante attesa per l’uscita dell’ iOS 4, molti stanno parlando del Mobile Substrate e dei problemi legati alla non totale compatibilità con il nuovo Firmware. Il termine “Mobile Substrate” suona bene e fà tanto Geek, ma sappiamo davvero a cosa serve, e perchè è così indispensabile per il corretto funzionamento delle applicazioni Cydia?

Il concetto non è dei più semplici e cercherò di spiegarlo in maniera chiara.

Il Mobile Substrate è un sistema di librerie dinamiche condivise composta da file dylib (simili alle DLL di Windows), che permette agli sviluppatori di scrivere applicazioni che estendono le funzionalità di applicazioni non scritte da loro.

Per esempio, la SpringBoard, (La shell dell’iPhone, iPad, ed iPod Touch che ci permette di lanciare applicazioni), ha al suo interno del codice che ci permette di avviare le App ogni volta che tocchiamo la relativa icona. Usando il Mobile Substrate gli sviluppatori Cydia sono in grado di scrivere applicazioni che “iniettano” se stesse nel codice originale della SpringBoard, permettendo la corretta esecuzione del codice e al tempo stesso l’esecuzione di codice non certificato.

In questo modo è possibile modificare il comportamento delle applicazioni scritte da altri, quindi anche le stesse applicazioni native di Apple, tutto questo senza conoscere il loro codice sorgente.

Il Mobile Substrate carica librerie dylib scritte da terze parti ( “MS extensions” o “MS libraries” o “MS plugins”), e le inserisce nell’applicazione “target”. Nel caso in cui gli sviluppatori commettano errori, è del tutto possibile che l’iniezione di una istruzione errata nella SpringBoard la farà crashare (e quindi avremmo bisogno di riavviare il telefono). Se accadesse una cosa del genere, MobileSubstrate fornisce anche una modalità sicura (Safe Mode) per la SpringBoard, che disabilita qualsiasi estensione di terze parti.

La “Safe Mode” è molto simile alla modalità provvisoria di Windows (scusate il paragone ma è d’obbligo!), che avvia la macchina disabilitando tutti i driver di terze parti e caricando soltanto quelli essenziali al corretto funzionamento del sistema.

Il Mobile Substrate, scritto da Saurik, è un componente indispensabile (chiamata dipendenza) della maggior parte delle applicazioni Cydia, come ad esempio Winterboard, QuickGold, SBSettings, Five Icon Dock, Clippy, Backgrounder, etc.

Allora perchè il Mobile Substrate non è compatibile con iOS 4?

Con la creazione dell’ iOS 4, molte librerie Apple sono cambiate, e anche il codice delle applicazioni è stato modificato per una migliore stabilità e migliori performance. Le librerie del Mobile Substrate andranno quindi riadattate per lavorare a braccetto con  il nuovo codice di iOS 4. Non preoccupatevi, se sarà possibile il jailbreak, l’adattamento del Mobile Substrate sarà l’ultimo dei problemi!


24 commenti

  1. Scusate l’off topic ma nessuno mi risponde io volevo mettere la GM dell’ios4 su 3gs ho windows ora che è uscito iTunes 9,2 posso farlo e poi posso effettuare il jailbreak
    per favore rispondetemi

  2. @Basqualeocasquale. lo vuoi un piccolo consiglio? ma piccolo eh… tra 4 giorni uscirà la release ufficiale di iOS4… sicuramente dovrai rifare tutte le procedure…. aspetta che è meglio! ❗ ❗ ❗ ❗ 😉

  3. @Basqualeocasquale: vuoi un altro piccolo consiglio??!!: USA il forum per domande così specifiche e vedrai che qualcuno ti risponderà.

  4. veramente…………… ho appena installato la GM non ho resistito… (non vi dico come ho fatto il JB non avendo il mac altrimenti mi ammazzate :D) 😈
    e volevo dirvi che mobile substrate e sbsettings per esempio funzionano perfettamente……. sto facendo un po’ di prove.. per ora mobile terminal crasha, ifile anche…. attivando lo sfondo in effetti la springboard è un po’ lentina…

  5. Certo che il paragone colla modalità provvisoria di winzoz 😯

    E mooolto diverso, la modalità provvisoria di winzoz disabilita addirittura dei servizi proprietari, vedi ad esempio l’msi installer.

    La Safe-Mode dell’iphone avvia il telefonino limitandosi a non caricare le risorse di terze parti e a lasciare inibiti i servizi non fondamentali… ma non solo… infatti utilizza una configurazione “di base” ovvero una configurazione nella quale è possibile accedere comunque alle risorse del sistema, proprio per garantire la rimozione senza terze parti del codice malevolo, è molto più simile al safemode del kernel linux (guarda caso 😛 )… E non vorrei sbagliarmi ma una volta c’era un firmware che abilitava le funzioni basilari del mobile substrate nel safe-mode… 😉

  6. @Black_Codec@hotmail.it: quoto la parte del paragone 😉 era per estremizzare la semplificazione della spiegazione. Per quanto riguarda il safe-mode con il mobile substrate attivo non so… ma non sarebbe niente male come feature 🙂

  7. Scusate ma come si può utilizzare global.aq x mandare SMS se appena lancio l’app dice che devo cancellare il mobilesubstrate??

  8. @Celebris: una volta con un “trucchetto” si potevevano inviare infiniti sms gratis grazie a global.aq e udidfaker ma a quanto pare si sono fatti furbi…

  9. Complimenti per l’articolo, hai aiutato a farmi chiarezza. Alle volte le cose più banali possono essere complicate se non insegnate! Speriamo solo che gli addons e gli aggiornamenti alle nostre applicazioni arrivino in fretta! 😎

  10. @orsobz: non preoccuparti… sicuramente si sono attivati per la compatibilità… il 21 è vicino, manca davvero poco 😉

  11. mi spiegate una cosa?
    ho un 3GS… posso fare il jailbreak dell’ios4 gm con pwnage o con un altro tool ed essere a posto per i prossimi giorni, oppure resta ancora qualcosa di non sbloccato e quindi comunque dovrò fare un altro ripristino + jailbreak poi?

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.