2010-12-30 2 views
26

Я пытаюсь подключиться с моего устройства Android к хосту, используя usb и ppp.Как использовать "adb ppp"?

Возможно, существует опция «adb ppp», которая может использоваться. Но я не могу найти объяснение о том, как его использовать. Здесь есть старая дискуссия. Но они закончили исправление adb. Я не могу поверить, что это пока не фиксируется.

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

Это объяснение ADB команды, и что вся документация, я смог найти.

 
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 

Я не совсем понимаю, что такое аргумент tty. Глядя на источники, похоже, это такая служба, как «оболочка», «хост: версия» и т. Д. Или это может быть (как говорит doc) dev:/dev/*, но я не знаю, что использовать.

Кроме того, команда, похоже, развивает ppp в хосте. Но я не знаю, как это работает на устройстве Android.

+1

Надеюсь, что кто-то ответит, это тоже исказило меня. – num1

+0

Эй, не могли бы вы предоставить некоторую информацию о своей среде? [OS, Android SDK версия и т. Д.] – defbyte

ответ

9

PTY/TTY - это, в основном, туннель последовательной линии с использованием ручек файлов. Как и сокеты, PTY - это серверная сторона и TTY клиент.

Ниже приведен пример команды, которая могла бы работать.

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

К сожалению, это не работает с Windows: «error: adb ppp не реализован на Win32». Любые идеи с Windows? –

+0

Что вы подразумеваете под локальным и удаленным IP? Нужно ли определять новые? Нужно ли использовать существующие? – Evi1M4chine

3

Хорошо и использовать это для f.e. сделать резервную копию системного раздела (альтернативу для распаковки резервной копии Nandroid с unyaffs2):

  1. подключение устройство с отладкой USB включено
  2. запустить сервер SSH (через приложение или deb s с DEBiAN комплекта создан)
  3. для передачи пароля без подключения к компьютеру ключ хоста к устройству fe через

    adb push /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys 
    
  4. Настройка сетевого моста между хостом (10.0.0.1) и устройство (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. системы резервного копирования раздела (потребностей Rsync исполняемый на устройстве, то есть полной или Debian пользовательские BusyBox строить):

    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 
    

Сводится до 9 минут для моего Xperia Mini Pro с Android 4.04/RealICS пользовательских прошивками:

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

+0

Это бесполезно. команда adb ppp ничего не делает. И какие IP-адреса я выбираю? Существующие? Новые? – Evi1M4chine

0

Если adb ppp неудачу на устройстве, и у вас есть корень разрешения, попробуйте это:

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

adp's ppp не работает для меня. Вот как я обошел это ...

Возможно, вам понадобится установить busybox на устройстве, чтобы получить команду «nc».

В одном окне введите ...

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

В другом окне введите ...

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

Сейчас там сети от устройства к компьютеру. Запустите «ifconfig», чтобы проверить.

Если вы хотите, чтобы устройство получило нормальный доступ в Интернет, вам необходимо настроить некоторую маршрутизацию SNAT на хост-машине.

Смежные вопросы