3

Androidフォンで設定->ワイヤレスとネットワークオプションに移動し、usbテザーオプションを確認すると、すぐに1つのネットワークデバイスrndis0が作成され、adb shell netcfgから確認できます

私は基本的に、このネットワークデバイスがどのように作成されるかを知りたいのですが、アプリケーションを設定して rndis0 インターフェイスを作成することによってどの API が呼び出されるのか

ありがとう

4

1 に答える 1

3

rndis0は、テザリング用のNICとして使用する場合の USB ポートの名前です。これはおそらく、コンピューターと接続するときに使用するRNDISプロトコルにちなんで名付けられました。これをプログラムで変更するルート以外のメソッドを見つけることはできませんでした (したがって、API メソッドは見つかりませんでした)。また、これを変更できるルート以外のアプリも見つかりませんでした。

あなたの質問に適切に答えるには、直接的ではない方法で Android ネットワーク インターフェイスを操作するためのルート化された方法とルート化されていない方法の両方が存在するため、あなたが何をしようとしているのかを正確に知る必要があります。例を含むいくつかのリンクを以下に示します。

プログラムで USB テザリングのオン/オフを切り替える:
Android で USB または Wifi テザリングをプログラムで有効/無効に
する

プログラムでWIFIをオン/オフにする:
AndroidデバイスでプログラムでWiFiをオフにする方法?

root を持っていて、Linux ターミナルで手を汚してもかまわない場合は、手動で設定してみてください。ただし、2 つの主な問題は、1) 一部の Android カーネルでは主要な Linux 機能が単純に切り取られていること、および 2) いくつかのデフォルト機能を手動でインポートしたとしても (おそらくBusyboxなどのツールを使用して)、Android が常にすべての Linux ルールに従うとは限らないことです。通常のコンピューターと同じように。たとえば、S2 の DHCP 範囲を設定しようとしたことがあります (Linux ベースのコンピューターのさまざまなディストリビューションで簡単に行ったことです) が、どんなに頑張っても、電話は私のルールに従うことを拒否しました。一方で、iptables のようなツールで失敗したことは一度もありません。

便利な Linux リンク:

ArchWiki - 私が学んだすべての Linux (Ubuntu、CentOS、Arch Linux、いくつかの Android、バニラ Linux..) の 90% はここから来ました。多くの場合、それらのディストリビューション自体よりも詳細に他のディストリビューションをカバーしています。

iptablesiptablesさらに iptables..

一般的なネットワーク構成IP ルーティングその他のルーティング..

Android はその機能の一部しか実装していないため、上記のリンクの一部の情報の多くは Android には適用されないことに注意してください。ただし、読む価値があることは間違いありません。

それが役立つことを願っています。

于 2013-09-22T15:05:35.303 に答える