2012-07-10 7 views
7

Molto occasionalmente, desidero modificare un file, ad esempio /system/build.prop o/etc/hosts sul mio dispositivo Android. Trovo che il modo più semplice per farlo è:Esecuzione di vi in ​​adb sotto Windows

c:\> adb shell 
$ su 
# vi /etc/hosts 

Questo funziona bene se sto usando Linux. Tuttavia, il tentativo di eseguire vi sul mio telefono quando si utilizza Windows risulta in una schermata vi borked con caratteri strani. Presumo che ciò sia dovuto al fatto che cmd non supporta i caratteri di controllo ANSI.

C'è un modo per risolvere questo problema (ad esempio, un'alternativa CMD che fa il lavoro)?

+0

[ConEmu] (http://superuser.com/a/446320/144961) sembra che dovrebbe fare il lavoro. –

+0

Impara [ed] (http://blog.sanctum.geek.nz/actually-using-ed/)? – ephemient

+1

@MichaelHampton: questo _nearly_ funziona, ma non gestisce correttamente la chiave , rendendo impossibile l'accesso alla modalità normale. –

risposta

7

È possibile farlo con PuTTYTray. È una versione migliorata di PuTTY che offre una serie di funzionalità aggiuntive. Una di queste funzionalità è il supporto per Android adb. Per utilizzarlo:

  • Selezionare Adb come Tipo di connessione
  • Enter -d (per il dispositivo USB singola) o device serial number nel ospite campo
  • ???
  • PROFITTO !!!

PuTTYTray configuration

+1

Solo questa risposta ha risolto il mio problema di tentare di utilizzare applicazioni a schermo intero attraverso il listener di adb sotto Windows 7. Per quanto posso dire, ConEmu non fa nulla per risolvere il problema descritto. Ho anche provato ad eseguire 'adb shell' sotto bash da Windows senza alcun risultato. Sospetto che il problema sia con il comando 'adb shell' di Windows stesso. PuTTYTray implementa la propria connessione al listener di adb, che a quanto pare include l'emulazione di terminale a schermo intero dove 'adb shell' non lo fa. ** Nota: ** Sopra, tu dici di usare -d nel campo host, ma la tua istantanea mostra -a come opzione. Ho usato -un successo. –

+0

@ Code-Read yes, '-d' e' -a' sono equivalenti quando è connesso un solo dispositivo. Per quanto riguarda 'adb shell' hai ragione pure.AFAIK, PuTTYTray è l'unico modo affidabile per utilizzare 'vi' e altre app a schermo intero sul dispositivo Android quando ci si connette da Windows. – Idolon

2

Non ho mai avuto il tuo problema esatto, ma sembra che Cygwin sia una buona scommessa.

+0

Non mi piace cygwin, quindi speravo di evitarlo. Ma sembra l'unica scelta praticabile qui. –

+1

Non ero in grado di usare la chiave 'ESC' in' vi' all'interno del terminale Cygwin – Idolon

0

Quello che vi serve è fondamentalmente un vero e proprio riga di comando ... Unix-style tools on Windows? MinGW http://www.mingw.org/ è un'alternativa a Cygwin che vale la pena di essere esaminata.

+1

sarebbe buono ma non c'è nessun adb per quelli e il normale Windows ADB fa ancora schifo in una shell cygwin e MSYS. – Wyatt8740

2

Questa è una risposta tardiva alla domanda nel 2012. Ho scoperto che se eseguo Windows PowerShell, posso eseguire "vi" sotto la shell di adb.

lancio PowerShell (utilizzare la posizione SDK di Android, non mio)

PS C:\Users\Me> cd Downloads\Android\Sdk\Platform-Tools 
PS C:\Users\Me\Downloads\Android\Sdk\Platform-Tools> .\adb shell 
[email protected]:/ # cd data/data/com.mycorporation.myproj/shared_prefs 
[email protected]:/data/data/com.mycorporation.myproj/shared_prefs # vi log_prefs 

ho usato solo semplici comandi di vi, come 'o', 'esc' e ': wq', ma ha funzionato bene con il schermo intero (nessuno dei rifiuti che vedresti nel prompt dei comandi di Windows).