WLAN-Hotspot (Soft AP)

Android bietet Unterstützung für WLAN-Hotspots (Soft AP), einschließlich Tethering über einen WLAN-Hotspot und nur lokale WLAN-Hotspots.

Die Soft-AP-Funktion ermöglicht die Konfiguration von Folgendem:

  • 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
  • Grad der MAC-Randomisierung für die AP-BSSID
  • 802.11ax und 802.11be

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

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

Entwickeln von Apps mit Hotspot-APIs

Eine Standardimplementierung eines angebundenen WLAN-Hotspots wird von der AOSP-Einstellungen-App bereitgestellt, nutzt jedoch nicht alle APIs für die Soft-AP-Konfiguration.

Um Tethering über einen Hotspot oder einen rein lokalen Hotspot zu unterstützen, muss die App die folgenden Funktionen ausführen:

  1. Registrieren Sie einen Rückruf, um die Gerätefunktionen zu erhalten, indem Sie WifiManager#registerSoftApCallback für einen angebundenen Hotspot oder WifiManager#registerLocalOnlyHotspotSoftApCallback für einen nur lokalen Hotspot verwenden.

    Der SoftApCallback -Rückruf bietet die folgenden Methoden:

    • SoftApCallback#onCapabilityChanged : Stellt Informationen zu Gerätefunktionen bereit, einschließlich der maximalen Anzahl unterstützter Clients und ob SAE oder ACS unterstützt werden.
    • SoftApCallback#onInfoChanged : Stellt Informationen über den laufenden Soft AP bereit (nur gültig, wenn er gestartet wurde), einschließlich Band- und Frequenzinformationen.
    • SoftApCallback#onConnectedClientsChanged : Stellt eine Liste der verbundenen Clients bereit. Für jeden Client können Sie die MAC-Adresse erhalten. Um die IP-Informationen zu erhalten, verwenden Sie den Rückruf TetheringEventCallback#onClientsChanged .
    • SoftApCallback#onStateChanged : Stellt Aktualisierungen zum Status des Soft AP bereit, wenn dieser aktiviert und deaktiviert wird.
    • SoftApCallback#onBlockedClientConnecting : Stellt die blockierten Clientinformationen mit einem der folgenden Gründe für die Blockierung bereit: Das Gerät hat die maximale Anzahl von Clients erreicht, die es unterstützen kann, oder der Client ist nicht ausdrücklich zum Herstellen einer Verbindung autorisiert.

Für einen angebundenen Hotspot:

  1. Konfigurieren Sie die Soft-AP-Konfiguration für Tethering, indem Sie die Methode WifiManager#setSoftApConfiguration aufrufen und eine SoftApConfiguration Instanz bereitstellen. Erstellen Sie SoftApConfiguration mithilfe der SoftApConfiguration.Builder -Klasse.
  2. Starten Sie das Tethering, indem Sie die Tethering-Methode unter TetheringManager#startTethering aufrufen.

Für nur lokalen Hotspot:

  1. Starten Sie den rein lokalen Hotspot mit einer bestimmten Soft-AP-Konfiguration, indem Sie die Methode WifiManager#startLocalOnlyHotspot aufrufen.

Implementieren von Zulassungs- und Sperrlisten

Eine typische Anforderung eines Netzbetreibers besteht darin, dem Benutzer die Steuerung der Geräte zur Verfügung zu stellen, die eine Verbindung zum Soft AP herstellen dürfen. Dafür gibt es mehrere Mechanismen:

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

    • Die Standardkonfiguration eines Soft-AP ermöglicht die Verbindung aller Geräte mit dem Soft-AP, mit Ausnahme der Geräte, deren MAC-Adressen zu SoftApConfiguration.Builder#setBlockedClientList hinzugefügt werden.
    • Wenn der Soft AP mit SoftApConfiguration.Builder#setClientControlByUserEnabled( true ) konfiguriert ist, wird die Zulassungsliste verwendet.

      • Alle Geräte, deren MAC-Adressen in SoftApConfiguration.Builder#setBlockedClientList enthalten sind, werden für die Zuordnung gesperrt.
      • Alle Geräte, deren MAC-Adressen in SoftApConfiguration.Builder#setAllowedClientList enthalten sind, dürfen zugeordnet werden.
      • Alle anderen Geräte (d. h. Geräte, deren MAC-Adressen nicht in der Zulassungs- oder Sperrliste enthalten sind) werden von der Zuordnung ausgeschlossen, aber SoftApCallback#onBlockedClientConnecting wird aufgerufen, wodurch die steuernde App (d. h. die Einstellungs-App) eine Aktion ausführen kann, z Sie können beispielsweise den Benutzer um eine Bestätigung bitten und das Gerät dann je nach Verhalten des Benutzers zur Zulassungsliste oder Sperrliste hinzufügen.

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

Implementierung

Um Tethering über einen Hotspot oder einen nur lokalen Hotspot zu unterstützen, müssen Gerätehersteller Unterstützung für Einstellungen-App, Framework und HAL/Firmware bereitstellen:

  • Einstellungen-App: Die AOSP-Einstellungen-App bietet eine Basis für die Konfiguration eines Tethering-Hotspots mit SSID und Sicherheitsanmeldeinformationen. Dieser Code kann unverändert verwendet oder geändert werden, um zusätzliche Funktionen bereitzustellen, wie unter Entwickeln von Apps mit Hotspot-APIs beschrieben.

  • Framework: Der AOSP-Framework-Code unterstützt alle unter Apps mit Hotspot-APIs entwickeln beschriebenen Funktionen.

  • HAL/Firmware für Hotspot: Entweder die HIDL IHostapd.hal Version 1.2 oder höher oder die AIDL IHostapd.aidl .

Anpassung

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

  • config_wifiFrameworkSoftApShutDownTimeoutMilliseconds : Das Standard-Timeout-Intervall für das Herunterfahren. Nur gültig, wenn SoftApConfiguration#setAutoShutdownEnabled aktiviert ist. Kann mit SoftApConfiguration#setShutdownTimeoutMillis überschrieben werden.
  • config_wifiHardwareSoftapMaxClientCount : Die Hardwarebeschränkung für die maximale Anzahl unterstützter Clients. Die maximale Anzahl von Clients, die das Gerät unterstützt, ist das Minimum der Hardware- und Netzbetreiberbeschränkungen (angegeben durch CarrierConfigManager.Wifi#KEY_HOTSPOT_MAX_CLIENT_COUNT ). Das Endergebnis wird der App mit SoftApCapabilities#getMaxSupportedClients bereitgestellt.
  • config_wifiSofapClientForceDisconnectSupported : Ob das Gerät die Möglichkeit hat, die Trennung eines Clients zu erzwingen. Erforderlich, um Zulassungs- und Sperrlisten zu aktivieren. Wird der steuernden App (Einstellungs-App) über SoftApCapabilities#areFeaturesSupported( SOFTAP_FEATURE_CLIENT_FORCE_DISCONNECT ) mitgeteilt.
  • (Verfügbar ab 13) config_wifiSoftapPassphraseAsciiEncodableCheck : Ob die Soft-AP-Passphrase ASCII-kodierbar sein muss oder nicht.
  • config_wifiSoftapAutoUpgradeToBridgedConfigWhenSupported : Ob die Bandeinstellungskonfiguration während der Cloud-Konfigurationswiederherstellung automatisch auf Dualband aktualisiert werden soll, wenn ein neues Gerät unterstützt wird.
  • (Verfügbar ab 13) config_wifiSoftapAutoAppendLowerBandsToBandConfigurationEnabled : Ob das Framework automatisch untere Bänder an die Bandkonfiguration anhängt, um Koexistenzbehandlung zu vermeiden.
  • config_wifiSoftApDynamicCountryCodeUpdateSupported : Ob dynamische Ländercodeaktualisierungen im AP-Modus auf dem Gerät unterstützt werden oder nicht
  • Kanalunterstützung: config_wifiSoftap2gChannelList , config_wifiSoftap5gChannelList , config_wifiSoftap6gChannelList und config_wifiSoftap60gChannelList .
  • Wiederherstellungsunterstützung, die angibt, ob die entsprechenden Einträge beim Wiederherstellen der Hotspot-Konfiguration auf einem neuen Gerät auf die Standardeinstellungen zurückgesetzt werden: config_wifiSoftapResetChannelConfig , config_wifiSoftapResetHiddenConfig , config_wifiSoftapResetUserControlConfig , config_wifiSoftapResetAutoShutdownTimerConfig , config_wifiSoftapResetMaxClientSettingConfig . Beachten Sie, dass diese standardmäßig auf true gesetzt sind, was bedeutet, dass die Werte zurückgesetzt werden. Dies ist wichtig, wenn das neue Gerät die Konfiguration nicht unterstützt.
  • Hardwarefunktionen:
    • config_wifi_softap_acs_supported
    • config_wifi_softap_sae_supported
    • (Verfügbar ab 13) config_wifiSoftapOweTransitionSupported
    • (Verfügbar ab 13) config_wifiSoftapOweSupported
    • config_wifi_softap_ieee80211ac_supported
    • config_wifiSoftapIeee80211axSupported
    • (Verfügbar ab 13) config_wifiSoftapIeee80211beSupported
    • config_wifiSoftapMacAddressCustomizationSupported
    • config_wifiSoftapHeSuBeamformerSupported
    • config_wifiSoftapHeSuBeamformeeSupported
    • config_wifiSoftapHeMuBeamformerSupported
    • config_wifiSoftapHeTwtSupported
    • config_wifiSoftap24ghzSupported
    • config_wifiSoftap5ghzSupported
    • config_wifiSoftap6ghzSupported
    • config_wifiSoftap60ghzSupported
    • config_wifiSoftapAcsIncludeDfs

Validierung

Android bietet eine Reihe von Unit-Tests, Integrationstests (Android Connectivity Test Suite oder ACTS) und Compatibility Test Suite (CTS)-Tests zur Validierung der Hotspot-Funktion. 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-Testsuite, die sich unter tools/test/connectivity/acts_tests/tests/google/wifi/WifiSoftApTest.py befindet, implementiert Funktionstests der Hotspot-Funktion.

Tests der Compatibility Test Suite (CTS).

Verwenden Sie CTS-Tests, um die Hotspot-Funktion zu validieren. 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

Vendor Test Suite (VTS)

Wenn die HIDL-Schnittstelle implementiert ist, führen Sie Folgendes aus:

atest VtsHalWifiHostapdV1_2Target

Wenn die AIDL-Schnittstelle implementiert ist, führen Sie Folgendes aus:

atest VtsHalHostapdTargetTest