*nixシステムにのみアクセスできます。 NetBSDおよび/またはLinuxベースのベアオペレーティングシステム。
ADB
したがって、私の問題はすべてのプラットフォームで広く利用可能ではなく、使用可能であってもインストールまたは取得(インターネットアクセス、スーパーユーザーアクセスなど)が困難であるという事実に由来します。
それにもかかわらず、ほとんどRNDIS
すべてのAndroidデバイスはすでにこの機能を提供しています。電話を「ルーター」として許可すると、netcatを使用するためのオプションが提供されます。これは、「サーバー」を設定して介入することなく、双方向にファイルをインポートまたは受信できるためですADB
。
このように:
NetBSD
dhcpcd -n urndis0
Linux
udhcpd -i usb0
これにより、Androidで設定したサブネット内のIPが提供されます。それは次のとおりです。192.168.32.225/24
したがって、本質的に電話機はルータとして機能し、私の*nixコンピュータに電話機自体によって設定されたサブネットに属するIPを提供します。 localhostでポート127.0.0.1
を開いてファイルを転送したいですnetcat
。
このような:
On Android device:
busybox nc -v -w3 -l -p 3838
On *nix system (Linux in the example below):
nc -v -w3 **(upper higher loopdevice outside subnetted network) 127.0.0.24** 3838
そして、Android自体のローカルネットワークにすでに存在する「親」ネットワーク/ループデバイスにアクセスできます。
Android携帯が接続を共有する別のホストであると仮定し、マイ* nixボックスがインターネットにアクセスできるように、マイコンピュータにサブネットIPを割り当てます。
だから私の質問は:Android携帯電話のRNDISインターフェースによって提供されるIP(サブネット内)を使用して* nixの標準ツールを介して携帯電話自体のローカルネットワークにアクセスできますか?
解決策 @FrédéricLoyer ありがとうございます!
いいですね。この方法では、使用しているすべてのコンピュータにアクセスする必要はなく、adb
ほとんどの場合busybox nc
およびまたはssh
。これは完璧です。これにより、携帯電話自体でアクティブな接続を必要とせずに、AndroidにSSHで接続できます。驚きじゃないですか!
これが私がすることです。
# This makes my computer to request an IP to my phone.
$sudo udhcpc -i usb0
# Since I got access to busybox-only most of the time, this gives me the IP from the "router" which is the phone.
$route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.42.129 0.0.0.0 UG 0 0 0 usb0
127.0.0.1 * 255.255.255.255 UH 0 0 0 lo
192.168.42.0 * 255.255.255.0 U 0 0 0 usb0
# ifconfig output shows me the new IP assigned to usb0 on my computer.
その後、私の電話にSSHを接続するか、Termuxを使用してポートを開く問題です。素晴らしい! :)
答え1
Android携帯では、次のように入力します。
busybox nc -v -w3 -l -p 3838
大丈夫そうです。
Linuxでは、ip route
次のように入力する必要があります。
default via 37.59.40.254 dev enp1s0 onlink
37.59.40.0/24 dev enp1s0 proto kernel scope link src 37.59.40.118
パスのある行はdefault
ルーターのアドレスを示します。 (ここ37.59.40.254
)。nc
このルーターアドレスはRNDISサブネットのAndroidアドレスなので、Linuxで入力してください。 IPアドレスは1つだけ入力する必要があります(127.0.0.24ではありません)。 (127個のアドレスはLinuxシステム内で内部移行用に予約されています。)
ここにはスライスのようなものはありません。 Androidはおそらくネットワークを作成します192.168.32.0/24
。このネットワークには2つのアドレスが定義されています(両側に1つずつ)。他のアドレスは機能しない可能性があります。