2010-12-30 14 views
26

Estoy tratando de conectarme desde mi dispositivo Android al host usando usb y ppp.¿Cómo usar "adb ppp"?

Parece haber una opción "adb ppp" que se puede usar. Pero no puedo encontrar una explicación sobre cómo usarlo. Hay una vieja discusión aquí. Pero terminaron de parchear adb. No puedo creer que esto no haya sido arreglado por ahora.

http://forum.xda-developers.com/showthread.php?p=4537323

Esta es la explicación del comando adb, y que es toda la documentación que he podido encontrar.

 
networking: 
    adb ppp [parameters] - Run PPP over USB. 
Note: you should not automatically start a PPP connection. 
    refers to the tty for PPP stream. Eg. dev:/dev/omap_csmi_tty1 
[parameters] - Eg. defaultroute debug dump local notty usepeerdns 

No tengo claro cuál es el argumento de tty. En cuanto a las fuentes, parece que se trata de un servicio como "shell", "host: version", etc. O podría ser (como dice el documento) dev:/dev/* pero no sé cuál usar.

Además, el comando parece bifurcar un ppp en el host. Pero, no sé cómo se ejecuta en el dispositivo Android.

+1

Espero que alguien responda, esto me ha estado molestando por un tiempo también. – num1

+0

Oye, ¿podrías darnos alguna información sobre tu entorno? [SO, versión de Android SDK, etc.] – defbyte

Respuesta

9

PTY/TTY es básicamente un túnel de línea serie que utiliza identificadores de archivo. Al igual que los sockets, el PTY es el lado del servidor y el TTY el cliente.

Debajo de un comando de ejemplo que podría funcionar.

adb ppp "shell:pppd nodetach noauth noipdefault /dev/tty" nodetach noauth noipdefault notty <local-ip>:<remote-ip> 
+1

Lamentablemente, no funciona con Windows: "error: adb ppp no ​​implementado en Win32". Alguna idea con Windows? –

+0

¿Qué quiere decir con IP local y remota? ¿Debo definir nuevos? ¿Debo usar los existentes? – Evi1M4chine

3

Ok y para usar esto para f.e. hacer una copia de seguridad de la partición del sistema (alternativa a desempacar una copia de seguridad nandroid con unyaffs2):

  1. dispositivo de conexión con la depuración USB activado
  2. iniciar un servidor SSH (a través de la aplicación o deb s con debian-kit establecido)
  3. para la transferencia de inicio de sesión sin contraseña clave de host al dispositivo fe a través de

    adb push /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys 
    
  4. puente de red de configuración entre el anfitrión (10.0.0.1) y el dispositivo (10.0.0.2):

    adb ppp "shell:pppd nodetach noauth noipdefault /dev/tty" \ 
    nodetach noauth noipdefault notty 10.0.0.1:10.0.0.2 
    
  5. partición del sistema de copia de seguridad (necesidades ejecutable rsync en el dispositivo, es decir, debian completo o busybox generación personalizada):

    rsync -vaiuhhP 10.0.0.2:/system /where/to/backup/

    -a, --archive    archive mode; equals -rlptgoD (no -H,-A,-X) 
    -P       same as --partial --progress 
        --partial    keep partially transferred files 
        --progress    show progress during transfer 
    -u, --update    skip files that are newer on the receiver 
    -i, --itemize-changes  output a change-summary for all updates 
    -v, --verbose    increase verbosity 
    -h, --human-readable  output numbers in a human-readable format 
              (if the option is repeated, the 
              units are powers of 1024 instead of 1000.) 
    -z, --compress    compress file data during the transfer 
    

se reduce a cerca de 9 minutos para mi Xperia Mini Pro con Android 4.04/RealICS Custom Firmware:

sent 27.94K bytes received 215.94M bytes 413.75K bytes/sec total size is 321.52M speedup is 1.49

+0

Esto es inútil. el comando adb ppp no ​​parece hacer nada. ¿Y qué direcciones IP elijo? ¿Los que existen? ¿Nuevos? – Evi1M4chine

0

Si adb ppp fallar en su dispositivo, y tiene permisos de root, intente esto:

adb ppp "shell:su -c 'pppd nodetach noauth noipdefault /dev/tty'" \ 
nodetach noauth noipdefault notty 10.0.0.1:10.0.0.2 
0

La opción de adb's ppp no ​​funciona para mí. Así es como lo solucioné ...

Es posible que deba instalar busybox en el dispositivo para obtener el comando "nc".

en una ventana, escribir ...

adb shell 
su 
nc -ll -p 7001 -e pppd notty defaultroute nodetach 

En otra ventana escriba en ...

adb forward tcp:7001 tcp:7001 
sudo /usr/sbin/pppd nodetach 10.0.1.1:10.0.1.2 pty "nc localhost 7001" 

Ahora hay una red desde el dispositivo al ordenador. Ejecute "ifconfig" para verificar.

Si desea que el dispositivo tenga acceso a Internet normal, deberá configurar algunas rutas de SNAT en la máquina host.