Wi-Fi Hotspot (Soft AP)-Unterstützung für Tethering

Android unterstützt Tethering über einen Wi-Fi-Hotspot (Soft AP). Ab Android 11 unterstützt die für Gerätehersteller verfügbare Soft-AP-Konfiguration mehr Anwendungsfälle und Anpassungen bei Mobilfunkanbietern, einschließlich der Konfiguration der folgenden:

  • SSID und BSSID
  • Sicherheitstyp (einschließlich WPA3)
  • Versteckte SSID
  • Betriebsband und Kanal (einschließlich ACS)
  • Maximale Anzahl zulässiger Clients
  • Zeitüberschreitungswert für automatisches Herunterfahren
  • Zulassungsliste und Sperrliste, um die Benutzersteuerung der zugehörigen Geräte zu ermöglichen

Die Gerätefunktionen bestimmen die Verfügbarkeit dieser Steuerelemente. Android 11 führt APIs ein, um diese Funktionen zu erhalten. Gerätehersteller können auch die Funktionen von Basisgeräten mithilfe von Overlays angeben.

Beachten Sie, dass einige der APIs System-APIs sind und durch Berechtigungen eingeschränkt sind, sodass nur die Einstellungs-App des Systems darauf zugreifen kann.

Beispiele und Quelle

Eine Standardimplementierung wird von der AOSP-Einstellungs-App bereitgestellt, die jedoch nicht alle APIs für die Soft-AP-Konfiguration ausübt. Eine aufrufende App muss diese drei Funktionen ausführen:

  1. Registrieren Sie einen Rückruf der Gerätefunktionen unter Verwendung zu erhalten WifiManager#registerSoftApCallback . Der SoftApCallback Rückruf bietet verschiedene Methoden:

    • SoftApCallback#onCapabilityChanged : Liefert Informationen über Gerätefähigkeiten, die maximale Anzahl der unterstützten Clients einschließlich, und ob SAE oder ACS unterstützt.
    • SoftApCallback#onInfoChanged : Liefert Informationen über die laufende Soft - AP (nur gültig , wenn der Autor), einschließlich Band und Frequenzinformationen.
    • SoftApCallback#onConnectedClientsChanged : Bietet eine Liste der angeschlossenen Clients. Für jeden Client können Sie die MAC-Adresse abrufen. Um die IP - Informationen zu erhalten, verwenden die TetheringEventCallback#onClientsChanged Rückruf.
    • SoftApCallback#onStateChanged : Updates auf dem Stand der Soft - AP - Sorgt wie es aktiviert und deaktiviert wird.
    • SoftApCallback#onBlockedClientConnecting : Bietet die blockierten Client - Informationen mit einem der folgenden Gründe für den Block: das Gerät die maximale Anzahl von Clients erreicht , dass sie oder der Client die Verbindung nicht explizit autorisiert unterstützen kann.
  2. Die Soft - AP - Konfiguration konfigurieren , um für durch den Aufruf der Anbindehaltung verwendet werden WifiManager#setSoftApConfiguration Verfahren und Bereitstellen einer SoftApConfiguration Instanz. Sie können bauen SoftApConfiguration mit der SoftApConfiguration.Builder Klasse.

  3. Starten Sie das Anbinden der Tethering - Methode bei durch den Aufruf TetheringManager#startTethering .

Implementieren von Zulassungs- und Sperrlisten

Eine typische Betreiberanforderung besteht darin, dem Benutzer die Steuerung der Geräte bereitzustellen, die mit dem Soft-AP verbunden werden dürfen. Dafür gibt es mehrere Mechanismen:

  • Begrenzt die maximale Anzahl von Geräten, die mit der Soft - AP assoziieren können mit SoftApConfiguration.Builder#setMaxNumberOfClients . Stellen Sie sicher, dass Sie eine Zahl angeben, die niedriger ist als die maximale Anzahl von Clients, die vom Gerät unterstützt werden. Sie können die maximale Anzahl von erhalten SoftApCapability#getMaxSupportedClients .
  • Stellen Sie mithilfe von Zulassungs- und Sperrlisten eine dynamische Kontrolle bereit:

    • Die Standardkonfiguration einer Soft - AP kann alle Geräte an der Soft - AP mit Ausnahme der Geräte , deren MAC - Adressen werden assoziieren SoftApConfiguration.Builder#setBlockedClientList .
    • Wenn die Soft - AP mit konfiguriert ist SoftApConfiguration.Builder#setClientControlByUserEnabled( true ) , wird die Zulassungsliste verwendet.

      • Alle Geräte , deren MAC - Adressen sind in SoftApConfiguration.Builder#setBlockedClientList aus Verband blockiert.
      • Alle Geräte , deren MAC - Adressen sind in SoftApConfiguration.Builder#setAllowedClientList sind Verband erlaubt.
      • Alle anderen Geräte (dh, Geräte , deren MAC - Adressen ist , die nicht in der Liste erlauben oder zu blockieren) sind aus der Assoziierung blockiert aber SoftApCallback#onBlockedClientConnecting genannt wird, so dass die Steuer app (das heißt, die Einstellungen app) eine Aktion zu ergreifen, zum B. den Benutzer um Bestätigung zu bitten und das Gerät dann je nach Verhalten des Benutzers zur Zulassungsliste oder zur Sperrliste hinzuzufügen.

    Beachten Sie, dass Geräte die Zulassungslistenfunktion nur verwenden können, wenn sie auf dem Gerät unterstützt wird. Sie können Geräteunterstützung unter Verwendung überprüfen SoftApCapability#areFeaturesSupported( SOFTAP_FEATURE_CLIENT_FORCE_DISCONNECT ) .

Implementierung

Um Tethering über einen Wi-Fi-Hotspot (Soft AP) zu unterstützen, müssen Gerätehersteller Einstellungen für App, Framework und HAL/Firmware-Unterstützung bereitstellen:

  • Einstellungen App: Die AOSP Einstellungen App bietet eine Grundlage für ein Tethering - Hotspot mit SSID und Sicherheitsdaten zu konfigurieren. Dieser Code kann wie es ist oder geändert werden zusätzliche Funktionen zur Verfügung zu stellen , wie beschrieben in den Beispielen und Quelle .

  • Framework: Der Code AOSP Framework unterstützt alle Funktionen in beschriebenen Beispielen und Quelle .

  • HAL / Firmware für Hotspot: IHostapd.HAL Version 1.2 oder höher.

Anpassung

Um die Implementierung anpassen, Gerätehersteller sollten die folgenden Overlays und Trägerkonfigurationen konfigurieren, die in dokumentiert packages/modules/Wifi/service/ServiceWifiResources/res/values/config.xml :

  • config_wifiFrameworkSoftApShutDownTimeoutMilliseconds : Das Standard - Shutdown Timeout - Intervall. Nur gültig , wenn SoftApConfiguration#setAutoShutdownEnabled aktiviert ist. Kann sein , überschrieben mit SoftApConfiguration#setShutdownTimeoutMillis .
  • config_wifiHardwareSoftapMaxClientCount : Die Hardware - Begrenzung für die maximale Anzahl von unterstützten Clients. Die maximale Anzahl der Clients, die das Gerät unterstützt ist das Minimum der Hardware und Träger Constraints (spezifiziert durch CarrierConfigManager.Wifi#KEY_HOTSPOT_MAX_CLIENT_COUNT ). Das Endergebnis wird mit an die App zur Verfügung gestellt SoftApCapabilities#getMaxSupportedClients .
  • config_wifiSofapClientForceDisconnectSupported : Ob das Gerät die Möglichkeit , einen Client zu erzwingen trennen muss. Erforderlich, um Zulassungs- und Sperrlisten zu aktivieren. Mitgeteilt an die Steuer App (App Einstellungen) durch SoftApCapabilities#areFeaturesSupported( SOFTAP_FEATURE_CLIENT_FORCE_DISCONNECT ) .
  • Channel - Unterstützung: config_wifiSoftap2gChannelList , config_wifiSoftap5gChannelList und config_wifiSoftap6gChannelList .
  • Wiederherstellung Unterstützung der angibt , ob die entsprechenden Einträge zurückgesetzt werden auf Standard wenn die Hotspot - Konfiguration auf ein neues Gerät wieder herstellt: config_wifiSoftapResetChannelConfig , config_wifiSoftapResetHiddenConfig , config_wifiSoftapResetUserControlConfig , config_wifiSoftapResetAutoShutdownTimerConfig , config_wifiSoftapResetMaxClientSettingConfig . Beachten Sie, dass diese festgelegt sind true standardmäßig, was bedeutet , dass die Werte zurückgesetzt. Dies ist wichtig, wenn das neue Gerät die Konfiguration nicht unterstützt.
  • Hardware-Fähigkeiten:

    • config_wifi_softap_acs_supported
    • config_wifi_softap_sae_supported
    • config_wifi_softap_ieee80211ac_supported
    • config_wifiSoftapIeee80211axSupported
    • config_wifiSoftapHeSuBeamformerSupported
    • config_wifiSoftapHeSuBeamformeeSupported
    • config_wifiSoftapHeMuBeamformerSupported
    • config_wifiSoftapHeTwtSupported
    • config_wifiSoftap6ghzSupported
    • config_wifiSoftapAcsIncludeDfs

Validierung

Android bietet eine Reihe von Komponententests, Integrationstests (Android Connectivity Test Suite oder ACTS) und Compatibility Test Suite (CTS)-Tests, um die Hotspot-Funktion zu validieren. Die Hotspot-Funktion kann auch mit der Vendor Test Suite (VTS) getestet werden.

Unit-Tests

Überprüfen Sie das Hotspot-Paket mithilfe der folgenden Tests.

  • Servicetests:

    atest packages/modules/Wifi/service/tests/wifitests/
    
  • Managertests:

    atest packages/modules/Wifi/framework/tests/
    

Integrationstests (ACTS)

Die ACTS - Hotspot - Test - Suite, in tools/test/connectivity/acts/tests/google/wifi/WifiSoftApTest.py , implementiert Funktionstests der Hotspot - Funktion.

Compatibility Test Suite (CTS)-Tests

Verwenden CTS testet die Hotspot - Funktion zu überprüfen. CTS erkennt, wenn die Funktion aktiviert ist und schließt automatisch die zugehörigen Tests ein.

Um die CTS-Tests auszulösen, führen Sie Folgendes aus:

atest android.net.wifi.cts.WifiManagerTest

Anbieter-Testsuite (VTS)

Um die VTS-Tests auszuführen, führen Sie Folgendes aus:

atest VtsHalWifiHostapdV1_2Target