Tethering

Tethering モジュールは、接続されている他のクライアント デバイス(Wi-Fi、USB、Bluetooth、イーサネット経由でテザリング デバイスに接続可能)と、Android デバイスのインターネット接続を共有します。このモジュールには、テザリング コンポーネント(USB、Wi-Fi アクセス ポイント、Bluetooth など)とその依存関係(テザリング利用資格、IpServeroffloadController の操作)が含まれます。このモジュールは更新可能です。つまり、通常の Android リリース サイクル外で機能のアップデートを受信できます。

Tethering モジュールにより、OEM は Android エコシステム全体で、単一の標準リファレンス実装を使用できます。これには次のような利点があります。

  • エンドユーザーが、Android デバイス全体で一貫したエクスペリエンスを得られ、モジュール アップデートを通じて相互運用性の問題を修正できる。

  • OEM が、携帯通信会社の要件を完全に満たしつつ、個別のカスタマイズのコストを削減できる(同じ要件を異なる方法で実装する必要がないため)。

IPv4 と IPv6 のサポート

Tethering モジュールは、IPv4 と IPv6 のデュアル スタックをサポートしています。

  • IPv4 ネットワークの場合、モジュールはネットワーク アドレス変換(NAT)を設定し、IP アドレス割り当てに動的ホスト構成プロトコル(DHCP)を採用します。

  • IPv6 ネットワークの場合、モジュールは IP アドレス割り当てに IPv6 のステートレス アドレス自動設定(SLAAC)を採用します。

モジュールの境界

Android 11 では、Tethering モジュールによって次の Android 10 ファイルが packages/modules/Tethering に移動されます。

  • frameworks/base/services/core/java/com/android/server/connectivity/Tethering.java
  • frameworks/base/services/core/java/com/android/server/connectivity/tethering/
  • frameworks/base/services/core/java/com/android/server/NetworkManagementService.java
  • frameworks/base/services/net/java/android/net/ip/{InterfaceController,IpServer,RouterAdvertisementDaemon}.java
  • frameworks/base/services/net/java/android/net/{netlink,dhcp}/*
  • frameworks/base/services/net/java/android/net/util/{InterfaceSet,InterfaceParams,NetdService,PrefixUtils,SharedLog,VersionedBroadcastListener}.java
  • frameworks/base/core/java/android/net/{ITetheringEventCallback,ITetheringStatsProvider}.aidl
  • frameworks/base/core/java/android/net/{NetworkUtils,util/IpUtils}.java
  • frameworks/base/core/java/com/android/internal/util/{BitUtils,IndentingPrintWriter,State,StateMachine}.java
  • frameworks/base/core/java/com/android/server/connectivity/MockableSystemProperties.java
  • frameworks/base/core/java/android/os/INetworkManagementService.aidl
  • frameworks/base/core/java/android/bluetooth/BluetoothPan.java
  • frameworks/base/services/core/jni/com_android_server_connectivity_tethering_OffloadHardwareInterface.cpp
  • packages/apps/Settings/src/com/android/settings/wifi/tether/TetherService.java
  • packages/apps/Settings/src/com/android/settings/network/TetherProvisioningActivity.java

モジュールの形式

Tethering モジュール(com.google.android.tethering)は APK 形式であり、Android 11 以降を搭載したデバイスで使用できます。

モジュールの依存関係

Tethering モジュールには次の依存関係があります。

  • システム サーバーの公開 API メソッドとシステム API メソッド
  • システム サーバーとの安定版 AIDL IPC インターフェース
  • tetheroffload HIDL(hardware/interfaces/tetheroffload/ で定義)
  • DHCP サーバー(Network Stack モジュールの一部)

カスタマイズ

Tethering モジュールはカスタマイズをサポートしていません。

テスト

Android 互換性テストスイート(CTS)は、Tethering モジュールの機能を検証します。