WOW, non c'è come una notte insonne per sistemare ciò che hai incasinato nella notte insonne prima.
Sistemato tutto usando di nuovo il bug in verifier.c.
Lascio un breve how-to nel caso qualcuno dovesse avere problemi simili o fosse interessato a pasticciare
L'idea di base di usare un update.zip modificato per ripristinare i file danneggiati era giusta, ma non c'era bisogno come pensavo di inserire i file, poichè ogni update.zip contiene un file "updater-script" che esegue una serie di comandi, e ha tra le sue possibilità sia delete() (per cancellare un file) sia symlink() (per creare un link simbolico).
Ciò che serve:
- L'update.zip originale della 2.0.1 e il payload con su (presi qui)
- Volez, che permette di creare update.zip da "accodare" agli aggiornamenti ufficiali (preso qui)
- Cygwin, per compilare ed utilizzare Volez su Windows (con make e gcc almeno)
Ho preso il payload che contiene su e Superuser.apk, ho rimosso entrambi, poi ho editato il file updater-script in questo modo:
codice:
mount("MTD", "system", "/system");
ui_print("Deleting previous symlinks...");
delete("/system/bin/cat");
delete("/system/bin/chmod");
[... e tutti gli altri file]
ui_print("Creating new symlinks...");
symlink("SYSTEM:bin/toolbox", "/system/bin/cat");
symlink("SYSTEM:bin/toolbox", "/system/bin/chmod");
[... e tutti gli altri file]
ui_print("Fixing permissions for good measure...");
set_perm_recursive(0, 0, 0755, 0644, "/system");
set_perm_recursive(0, 2000, 0755, 0755, "/system/bin");
set_perm(0, 3003, 02755, "/system/bin/netcfg");
set_perm(0, 3004, 02755, "/system/bin/ping");
unmount("/system");
Poi ho usato Volez per attaccare il payload personalizzato all'update ufficiale, l'ho caricato sulla sd e via!
Detto così è un po' semplicistico, mi ci sono volute 5 ore di tentativi, spero di poterle evitare a qualcun altro
Come effetto secondario di quello che ho imparato, vi posto un update.zip per unrootare qualsiasi Milestone 2.0.
Questo file rimuove semplicemente /system/app/Superuser.apk e /system/bin/su, annullando quindi le modifiche che ha fatto il root.
Se root non vi serve, dovete mandare il cellulare in garanzia, o per qualsiasi altro motivo, e non sapete come rimuovere il root a mano, usate questo che è più semplice! L'ho testato più e più volte ed è perfettamente funzionante
download update.zip per rimuovere root
Buona giornata a tutti!