2009-08-07 14 views

risposta

42

Bene, ho trovato il file subito dopo aver sollevato la domanda sopra. (Sembrare domande mi stimola pubblicamente a cercare le risposte da solo molto più diligentemente, dal momento che non voglio che i miei cari colleghi mi vedano come un pigro programmatore.)

È un file XML sotto /data/data/your.app.package.name/shared_prefs e il file il nome è your.app.package.name_preferences.xml. È davvero facile modificare le preferenze quando si capisce che il contenuto è solo una mappa valore-chiave.

+1

Come faccio a modificare il file XML utilizzando adb? – Fred

+1

Come richiesto, come puoi modificarlo ?! Gli editor VI e Nano non sono installati. Come lo modifichi di ??? – susparsy

+1

adb pull , modifica sul dispositivo, adb push joecks

24

Se l'applicazione è debugable si potrebbe fare:

$ adb shell 
$ run-as <app-package-id> 
$ cat /data/data/<app-package-id>/shared_prefs/prefs.xml 

Nota che la preferenza potrebbe essere memorizzata in un altro file in modo da meglio controllare la directory per trovarlo:

$ ls /data/data/<app-package-id>/shared_prefs/ 
6

I sto usando questo conveniente one-liner per estrarre, modificare in vim e spingere le preferenze condivise per un'app:

APP_ID=com.myapp; adb pull /data/data/${APP_ID}/shared_prefs/${APP_ID}_preferences.xml /tmp/${APP_ID}_preferences.xml && vim /tmp/${APP_ID}_preferences.xml && adb push /tmp/${APP_ID}_preferences.xml /data/data/${APP_ID}/shared_prefs/ 

Basta impostare APP_ID per l'ID applicazione.

Si noti che questo presuppone che si stia utilizzando il nome file predefinito per le preferenze condivise, come ottenuto da PreferenceManager.getDefaultSharedPreferences(context). Inoltre, ADB deve essere in esecuzione in modalità root: adb root

0

Prima estrarre il file delle preferenze condivise dal dispositivo. Ciò richiede la permessi di root.

adb pull /data/data/org.test/shared_prefs/MyKeys.xml MyKeys.xml 

Ora MyKeys.xml è memorizzato nella directory corrente del sistema.

valori Modifica di

vim MyKeys.xml 

Dopo aver modificato file di salvare le modifiche e spingere al dispositivo.

adb push MyKeys.xml /data/data/org.test/shared_prefs/MyKeys.xml 

per verificare le modifiche

adb shell 
cat /data/data/org.test/shared_prefs/MyKeys.xml 
Problemi correlati