網絡共享

網絡共享模塊與其他連接的客戶端設備共享 Android 設備的互聯網連接,這些客戶端設備可以通過 Wi-Fi、USB、藍牙或以太網連接到網絡共享設備。該模塊包括系鏈組件(USB,Wi-Fi接入點,藍牙等)和它的依賴(與栓系的權利,相互作用IpServer ,和offloadController )。此模塊是可更新的,這意味著它可以在正常的 Android 發布週期之外接收功能更新。

Tethering 模塊使整個 Android 生態系統的 OEM 能夠使用具有以下優勢的單一標準參考實現。

  • 最終用戶在 Android 設備上獲得一致的體驗,並通過模塊更新修復互操作性問題。

  • OEM 可以滿足運營商的要求,同時還可以降低個別定制的成本(因為他們不需要以不同的方式對相同的要求進行不同的實施)。

IPv4 和 IPv6 支持

網絡共享模塊支持 IPv4 和 IPv6 雙棧。

  • 對於 IPv4 網絡,模塊設置網絡地址轉換 (NAT) 並採用動態主機配置協議 (DHCP) 進行 IP 地址分配。

  • 對於 IPv6 網絡,模塊採用 IPv6 無狀態地址自動配置(SLAAC)進行 IP 地址分配。

模塊邊界

在Android中11中,系栓模塊下面的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

模塊格式

束縛模塊( com.google.android.tethering )是APEX格式並且可用於運行Android 11或更高的設備。

模塊依賴

Tethering 模塊具有以下依賴項:

  • 系統服務器中的公共和系統 API 方法
  • 穩定的 AIDL IPC 與系統服務器接口
  • tetheroffload HIDL(定義在hardware/interfaces/tetheroffload/
  • DHCP 服務器(網絡堆棧模塊的一部分)

定制

網絡共享模塊不支持自定義。

測試

Android 兼容性測試套件 (CTS) 驗證網絡共享模塊的功能。