The Michelasso's Production Proudly Presents:
Switch2SD™ (S2SD™ )
MAI PIU' PROBLEMI DI MEMORIA INTERNA PIENA!!
Novità:
- Aggiunto il mount della directory /data/cache in /sd-ext (apparentemente usata dall'installazione di applicazioni come Angry Birds).
Questo script è un sostituto ai vari script/applicazioni come A2SD, Link2SD e via dicendo. Il suo principio è semplice: nei telefoni low cost la memoria interna non è sufficiente, montiamo nella SDext le directory /data/app e /data/dalvik-cache.
I dati (SMS, rubrica, ecc.) si trovano in /data/data e li rimangono. Perciò il telefono vedrà DUE partizioni (/data e /sd-ext) e metterà a disposizione la memoria di entrambe per funzionalità diverse. Se la SD card fallisce il telefono sarà ancora perfettamente funzionale per le operazioni primarie quali telefonate, SMS, mail.
Differisce da altre soluzioni perché semplicemente monta in SDext le due directory sovramenzionate senza far uso di link alcuno. Android le vede come interne e agisce normalmente. Gira nella maggioranza dei telefoni GingerBread con custom kernel o CM (funziona anche con CM10!!), purché siano rispettati i vincoli descritti in seguito. Quindi purtroppo non può funzionare con le stock ROM.
Testato con:
- Galaxy Next Turbo (GT-S5570I)
- Galaxy Next (GT-S5570)
- HTC HD2 (Leo)
- Galaxy Ace (GT-S5830)
- HTC Explorer A310
Requisiti:
- La ROM deve avere Busybox installata
- Il kernel deve supportare /etc/init.d
- Il kernel deve supportare almeno uno dei formati ext2/ext3/ext4
- La scheda SD deve avere una seconda partizione in un formato ext supportato dal kernel
Note per l'installazione:
- Se avete una ROM CM e S2E è installata RIMUOVETELA
- Richiede come detto un kernel (o ROM) custom. Per il Next Turbo potete installare Cor Optimi™. Altrimenti chiedete nella sezione del vostro telefono
- Per partizionare la scheda SD potete seguire questa guida. Essendo S2SD™ compatibile con Link2SD valgono le stesse considerazioni. 512MB-1GB per la SD ext sono più che sufficienti. Nel Next Turbo si consiglia il formato ext3 per un problema con i wakelock causato da ext2.
Non utilizzate Minitool partition! Usate la CWM
Caratteristiche:
- Lo script è non distruttivo
- Se riscontra un qualsiasi problema in esecuzione prima di montare le partizioni esce. Per il telefono è come se non esistesse.
- Non richiede alcun wipe
- /data/app viene montata sulla SDext
- /data/dalvik-cache viene montata sulla SDext
- /data/cache viene montata sulla SDext
- Dati e app-private rimangono nella memoria interna
- Non fa uso alcuno di link: Entrambe /data e SDext restano pulite con una organizzazione standard
- E' compatibile con tutte le applicazioni di backup. Niente link, niente problemi!
- Le dalvik cache nella memoria interna (e quindi anche di sistema) vengono cancellate per guadagnare spazio e anche per questioni di pulizia
- Le applicazioni nella memoria interna vengono spostate in SDext se non già presenti
- E' COMPATIBILE con Link2SD: Disabilitando/cancellando S2SD basta re-installare e configurare Link2SD. Ma perché vorreste complicarvi la vita? ^_^
- Disinstalla Link2SD quando presente per evitare potenziali bootloop e/o conflitti
- Se la scheda SD viene rimossa/bruciata/persa il telefono continua a funzionare normalmente con le applicazioni di sistema e quelle già presenti nella memoria interna mantenendo tutti i dati
- RIMOSSO: Setta il package manager al boot time per installare le nuove applicazioni nella memoria interna (e quindi in questo caso in SDext) - Purtroppo a livello di /etc/init.d non è possibile. Il package manager crolla miseramente. Benvenuti nel mondo Java/Android.
- Logging in /data/log/S2SD_log.txt. Per ogni problema controllate quel file.
Installazione
- Fare un full backup con CWM. E' sempre bene essere prudenti.
- Disinstallare Link2SD (OPZIONALE. Lo script lo fa in automatico se presente)
- Fate il reboot in stock recovery oppure in CWM.
- Se in CWM controllate che /system sia montata. Se non lo è, montatela manualmente.
- Installate il file S2SD_<versione>.zip
- Reboot del telefono
- Il telefono rivedrà tutte le applicazioni come se nulla fosse successo, tanto che vi chiederete se si è installata correttamente..
Aggiornamenti
- Semplicemente eseguite l'installazione del file zip aggiornato
Ripristino
- Fate il reboot in stock recovery oppure in CWM
- Se in CWM controllate che /system sia montata. Se non lo è, montatela manualmente.
- Installate il file S2SD_uninstall.zip
- Reboot del telefono
- Attenzione che per forza di cose le applicazioni scaricate non saranno più visibili. Restano comunque presenti nella SDext. In ogni caso non ci sarebbe spazio per contenerle...
TROUBLESHOOTING:
- Serve un file manager rooted (Root Browser se già non ce l'avete)
- Controllate che esista il file /etc/init.d/01Switch2SD
- Controllate che esista il file /data/log/S2SD_log.txt e copiatene il contenuto in un post quando richiedete aiuto.
- Installate FreeSpace per vedere lo spazio occupato dalle partizioni
NOTE
- Lo script è stato pienamente testato nei telefoni descritti sopra
- L'ho testata con la scheda SD originale del telefono e non ho notato particolari problemi di prestazioni. Si consiglia comunque di acquistare una SD Card Class 10 se già non lo si è fatto
- Applicazioni come "ROM Toolbox" permettono di definire la posizione di default di installazione delle applicazioni. altrimenti da terminale potete dare il comando (come superuser):
codice:pm setInstallLocation 1
- Sfortunatamente sembra che Android nei telefoni Samsung installi comunque le nuove applicazioni di Google Play nella SD FAT. Gli aggiornamenti e le applicazioni installate da telefono tramite file .apk invece funzionano correttamente.
- Per tale motivo consiglio di installare Titanium backup o simile applicazione per spostare le eventuali applicazioni che finiscono nella SD-FAT32
- Consiglio caldamente di installare Freespace per poter monitorare l'utilizzo delle partizioni, in special modo /sd-ext, non visibile da Android standard.
- Attenzione ai Wipe Data da CWM!! Se CWM funziona come deve cancellerà pure tutta la SDext. Per questo motivo consiglio prima di un Wipe Data di fare come il punto sopra. O in alternativa di fare un semplice "format /data" da CWM per resettare il telefono alle impostazioni di fabbrica.
Ovviamente al primo reboot dopo l'installazione/ripristino ci vorrà un po' di tempo per spostare le applicazioni in /data/app e ricreare tutte le dalvik cache. Quindi aspettate nel caso fino a una decina di minuti, ma potrebbe essere molto meno, a seconda del numero totale di applicazioni presenti. Meglio se monitorate con "adb logcat" cosa succede.
Questi sono i risultati della memoria con 120 applicazioni installate:
DOWNLOAD
- Installazione:
Versione 1.07: S2SD_v1.07.zip
Versione 1.05: S2SD_v1.05.zip
Versione 1.04: S2SD_v1.04.zip
Versione 1.03: S2SD_v1.03.zip
Versione 1.02: S2SD_v1.02.zip
Versione 1.01: S2SD_v1.01.zip
Versione 1.00: S2SD_v1.00.zip
Ti sei ricordato il Thanks? No Thanks, No Party!!- Rimozione:
Tutte le versioni: S2SD_uninstall.zip
Changelog:
- v1.07: Aggiunto il mount della directory /data/cache in /sd-ext (apparentemente usata dall'installazione di applicazioni come Angry Birds).
- v1.05: Codice rivisto e semplificato
Aggiunto un loop finito di attesa di 1 secondo per volta nel caso che la SD card non sia pronta (molto improbabile se non impossibile).
Se non riesce a stabilire quale sia la partizione SDext assume che sia /dev/blk/mmcblk0p2, stanrda in (quasi?) tutti i dispositivi
Migliorato il controllo e rimozione per la proprietà "huge_file" di ext4 (file >2TB. Non supportato da vari kernel)
Logging rivisto, corretto e migliorato- v1.04: Risolta piccola bug. Se una app è già presente in SDext la rimuove dalla memoria interna
Modificato il relativo logging- v1.03: Ulteriore logging per i casi in cui il telefono non è compatibile o la SD card è corrotta.
- v1.02: Controlla che la directory /data/log sia presente e la rende scrivibile a tutti
Se busybox non è installata avvisa ed esce
Riorganizzazione generale del codice di partenza dello script per adattarsi alle nuove modifiche e renderlo più logico- v1.01: Inserisce nel log /data/log/S2SD_log.txt il device della partizione SD FAT. Utile per poter adattare lo script a tutti i dipositivi
- v1.00:
Rimuove la proprietà "huge file" se presente in ext4. Richiede "tune2fs". E' presente nel kernel Cor Optimus™ per S5570I, nelle CM e in ogni custom ROM che si rispetti
Logging in /data/log/S2SD_log.txt ancora più completo
Rimossa una bug minore
Resto ovviamente a disposizione.![]()