Как использовать "adb ppp"?
Я пытаюсь подключиться с моего устройства Android к хосту, используя usb и 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
PTY/TTY - это, в основном, туннель последовательной линии с использованием дескрипторов файлов.
Точно так же, как сокеты, PTY - это серверная сторона и TTY клиент.
Ниже пример команды, которая может работать.
adb ppp "shell:pppd nodetach noauth noipdefault /dev/tty" nodetach noauth noipdefault notty <local-ip>:<remote-ip>
Ответ 2
Хорошо и использовать это для f.e. сделайте резервную копию своего системного раздела (альтернатив распаковке резервной копии nandroid с unyaffs2):
- подключить устройство с включенной отладкой USB
- запустите SSH-сервер (через приложение или
deb s
с настройкой debian-kit)
-
для пароля без доступа к паролю для входа в систему f.e. с помощью
adb push /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys
-
установить сетевой мост между хостом (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
-
резервный системный раздел (требуется исполняемый файл 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:
отправлено 27.94K байт получено 215.94M байт 413.75K байт/с общий размер - 321,52M ускорение 1,49
Ответ 3
Если adb ppp
выйдет из строя на вашем устройстве и у вас есть разрешение root, попробуйте следующее:
adb ppp "shell:su -c 'pppd nodetach noauth noipdefault /dev/tty'" \
nodetach noauth noipdefault notty 10.0.0.1:10.0.0.2
Ответ 4
adb 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 на главной машине.