2012-05-30 18 views
52

Fondamentalmente questo è il mio problema/Wipe data/factory reset tramite ADB

ho 200+ telefoni che eseguono Android magazzino che devono essere spazzato via (nella Wipe data/factory reset modo) e poi una nuova ROM installato con alcuni apk aggiuntivi.

Attualmente ho tutto automatizzato tranne la parte Wipe Data. Tutto il resto può essere fatto attraverso un bat con una serie di comandi abbastanza felicemente, ma non riesco a capire come imitare o forzare la modalità di recupero per cancellare i dati.

cose che ho provato al momento:

  • Pulendo i dati io stesso utilizzando rm -r * sulle cartelle che si suppone di fare (dati, cache, sd-ext etc.). Questo non funziona, ma la ROM non funziona correttamente e rimane bloccata in un bootloop.
  • Provare a utilizzare "adb input keyevent" per simulare la pressione dei tasti. Non ho idea di cosa siano mappati perché sono fondamentalmente in una shell UNIX e anche in questo caso non c'è "input" perché il sistema operativo non è stato caricato comunque.
  • Cercando di trovare il file/script sul sistema che esegue effettivamente il wipe/reset e quindi eseguirlo manualmente. Questo potrebbe essere il modo più semplice in cui è già stato scritto per me da qualche parte, ma non riesco a vedere dove è nascosto, anche in qualcosa come CWM.

Se qualcuno ha un metodo con cui posso eseguire il ripristino di fabbrica tramite un .bat o tramite la shell adb, lo apprezzerei molto. Ho provato a risolvere questo problema per circa 2 giorni con pochi progressi.

+0

Questo sarebbe probabilmente fare meglio su http://android.stackexchange.com – styler1972

+0

Grazie :) Io in realtà penso di essere riuscito a risolvere questo problema, quindi aggiornerò la domanda nel caso in cui qualcun altro lo sapesse e lo trovi da Google. –

+0

questo codice ha funzionato per me: adb shell am broadcast -a android.intent.action.MASTER_CLEAR –

risposta

54

Dopo un sacco di ricerche ho finalmente scaricato il codice sorgente della sezione di ripristino di Android. Risulta che è possibile inviare comandi al recupero.

* The arguments which may be supplied in the recovery.command file: 
* --send_intent=anystring - write the text out to recovery.intent 
* --update_package=path - verify install an OTA package file 
* --wipe_data - erase user data (and cache), then reboot 
* --wipe_cache - wipe cache (but not user data), then reboot 
* --set_encrypted_filesystem=on|off - enables/diasables encrypted fs 

Questi sono i comandi che è possibile utilizzare in base a quello trovato ma che potrebbe essere diverso per i file modificati. Quindi, utilizzando adb si può fare questo:

adb shell 
recovery --wipe_data 

Utilizzando --wipe_data sembrava fare quello che stavo cercando per il quale è stato a portata di mano anche se non ho completamente testato questo come ancora.

EDIT:

Per tutti coloro che ancora utilizzando questo argomento, questi comandi possono cambiare in base al quale il recupero che si sta utilizzando. Se si utilizza il recupero di Clockword, questi comandi dovrebbero comunque funzionare. Si possono trovare altri comandi a/cache/recupero/comando

Per ulteriori informazioni si prega di consultare qui: https://github.com/CyanogenMod/android_bootable_recovery/blob/cm-10.2/recovery.c

+6

Just FYI - Il mio telefono personale, Samsung Galaxy S2 I9100 (sono uno sviluppatore, ma non su Android) ha smesso di rispondere dopo aver provato usare ROM Manager per fare un backup. Non riuscivo nemmeno ad avviare il recupero né la modalità download. Dopo aver cercato su Internet, ho provato a usare Odin, ma non ha riconosciuto il telefono. ADB ha fatto, e poi ho trovato questo post. Dopo aver usato questo comando, finalmente il mio telefono risponde! Grazie mille, anche se non lo intendevi.Spero che altri possano trovare il tuo post tramite il mio elogio. –

+5

* ripristino: non trovato * Android Debug Bridge versione 1.0.31 | Droid 2 Global | CyanogenMod 7.2 – earthmeLon

+5

Prova invece il comando 'wipe'. Devi essere root per cancellare i dati ('adb shell, su' o' adb root'), ma se non puoi diventare root, questo non funzionerà. –

Problemi correlati