28

我正在尝试使用 USB 和 ppp 从我的 Android 设备连接到主机。

似乎有一个可以使用的选项“adb ppp”。但我找不到关于如何使用它的解释。这里有一个古老的讨论。但他们结束了对 adb 的修补。我不敢相信这个问题现在还没有解决。

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

这是 adb 命令的解释,也是我能找到的所有文档。

联网:
  adb ppp [参数] - 通过 USB 运行 PPP。
 注意:您不应自动启动 PPP 连接。
  指 PPP 流的 tty。例如。开发:/dev/omap_csmi_tty1
 [参数] - 例如。defaultroute 调试转储本地 notty usepeerdns

我不清楚 tty 参数是什么。查看源代码,它似乎是“shell”、“host:version”等服务。或者它可能是(如文档所述)dev:/dev/*,但我不知道该使用哪个。

此外,该命令似乎在主机中分叉了一个 ppp。但是,我不知道它是如何在安卓设备上运行的。

4

4 回答 4

10

PTY/TTY 基本上是使用文件句柄的串行线路隧道。就像套接字一样,PTY 是服务器端,TTY 是客户端。

下面是一个可以工作的示例命令。

adb ppp "shell:pppd nodetach noauth noipdefault /dev/tty" nodetach noauth noipdefault notty <local-ip>:<remote-ip>
于 2011-04-19T14:32:45.087 回答
4

好的,并使用它来备份您的系统分区(替代使用 unyaffs2 解压 nandroid 备份):

  1. 连接启用 USB 调试的设备
  2. 启动 SSH 服务器(通过应用程序或deb s设置 debian-kit)
  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
    

我的 xperia mini pro 使用 Android 4.04/RealICS 自定义固件大约需要 9 分钟:

发送 27.94K 字节 接收 215.94M 字节 413.75K 字节/秒 总大小为 321.52M 加速为 1.49

于 2012-08-13T16:28:18.150 回答
1

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 路由。

于 2016-01-09T10:13:50.720 回答
0

如果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
于 2015-06-20T08:34:00.823 回答