Điểm phát sóng Wi-Fi (AP mềm)

Android cung cấp hỗ trợ cho điểm phát sóng Wi-Fi (AP mềm) bao gồm chia sẻ kết nối qua điểm phát sóng Wi-Fi và điểm phát sóng Wi-Fi chỉ cục bộ.

Tính năng AP mềm cho phép cấu hình như sau:

  • SSID và BSSID
  • Loại bảo mật (bao gồm cả WPA3)
  • SSID ẩn
  • Băng tần và kênh hoạt động (bao gồm cả ACS)
  • Số lượng khách hàng tối đa được phép
  • Giá trị thời gian chờ tự động tắt máy
  • Danh sách cho phép và danh sách chặn để cho phép người dùng kiểm soát các thiết bị được liên kết
  • Mức độ ngẫu nhiên hóa MAC cho AP BSSID
  • 802.11ax và 802.11be

Khả năng của thiết bị xác định tính khả dụng của các điều khiển này. Android 11 giới thiệu các API để có được những khả năng này. Các nhà sản xuất thiết bị cũng có thể chỉ định các khả năng của thiết bị cơ bản bằng cách sử dụng các lớp phủ.

Lưu ý rằng một số API là API hệ thống và bị hạn chế thông qua các quyền để chỉ ứng dụng Cài đặt của hệ thống mới có thể truy cập chúng.

Phát triển ứng dụng với API điểm phát sóng

Việc triển khai mặc định điểm phát sóng Wi-Fi được kết nối được cung cấp bởi ứng dụng Cài đặt AOSP, tuy nhiên, ứng dụng này không thực hiện tất cả các API cho cấu hình Soft AP.

Để hỗ trợ chia sẻ kết nối qua điểm phát sóng hoặc điểm phát sóng chỉ cục bộ, ứng dụng phải thực hiện các chức năng sau:

  1. Đăng ký gọi lại để nhận các chức năng của thiết bị bằng cách sử dụng WifiManager#registerSoftApCallback cho điểm phát sóng được chia sẻ kết nối hoặc WifiManager#registerLocalOnlyHotspotSoftApCallback cho điểm phát sóng chỉ cục bộ.

    Cuộc gọi lại SoftApCallback cung cấp các phương thức sau:

    • SoftApCallback#onCapabilityChanged : Cung cấp thông tin về khả năng của thiết bị, bao gồm số lượng máy khách được hỗ trợ tối đa và liệu SAE hoặc ACS có được hỗ trợ hay không.
    • SoftApCallback#onInfoChanged : Cung cấp thông tin về Soft AP đang chạy (chỉ hợp lệ sau khi bắt đầu), bao gồm thông tin về băng tần và tần số.
    • SoftApCallback#onConnectedClientsChanged : Cung cấp danh sách các máy khách được kết nối. Đối với mỗi khách hàng, bạn có thể lấy địa chỉ MAC. Để lấy thông tin IP, hãy sử dụng lệnh gọi lại TetheringEventCallback#onClientsChanged .
    • SoftApCallback#onStateChanged : Cung cấp các cập nhật về trạng thái của Soft AP khi nó được bật và tắt.
    • SoftApCallback#onBlockedClientConnecting : Cung cấp thông tin máy khách bị chặn kèm theo một trong những lý do chặn sau: thiết bị đã đạt đến số lượng máy khách tối đa mà thiết bị có thể hỗ trợ hoặc máy khách không được phép kết nối một cách rõ ràng.

Đối với một điểm truy cập được kết nối:

  1. Định cấu hình cấu hình AP mềm để chia sẻ kết nối bằng cách gọi phương thức WifiManager#setSoftApConfiguration và cung cấp phiên bản SoftApConfiguration . Xây dựng SoftApConfiguration bằng lớp SoftApConfiguration.Builder .
  2. Bắt đầu chia sẻ kết nối bằng cách gọi phương thức chia sẻ kết nối tại TetheringManager#startTethering .

Đối với điểm phát sóng chỉ cục bộ:

  1. Bắt đầu điểm phát sóng chỉ cục bộ với cấu hình AP mềm cụ thể bằng cách gọi phương thức WifiManager#startLocalOnlyHotspot .

Triển khai danh sách cho phép và chặn

Yêu cầu điển hình của nhà cung cấp dịch vụ là cung cấp cho người dùng quyền kiểm soát các thiết bị được phép liên kết với AP mềm. Có một số cơ chế để làm điều này:

  • Giới hạn số lượng thiết bị tối đa có thể liên kết với AP mềm bằng cách sử dụng SoftApConfiguration.Builder#setMaxNumberOfClients . Đảm bảo chỉ định một số thấp hơn số lượng khách hàng tối đa mà thiết bị hỗ trợ. Bạn có thể lấy số lượng tối đa từ SoftApCapability#getMaxSupportedClients .
  • Cung cấp khả năng kiểm soát động bằng cách sử dụng danh sách cho phép và chặn:

    • Cấu hình mặc định của AP mềm cho phép tất cả các thiết bị liên kết với AP mềm ngoại trừ các thiết bị có địa chỉ MAC được thêm vào SoftApConfiguration.Builder#setBlockedClientList .
    • Nếu AP mềm được định cấu hình bằng SoftApConfiguration.Builder#setClientControlByUserEnabled( true ) , thì danh sách cho phép sẽ được sử dụng.

      • Tất cả các thiết bị có địa chỉ MAC nằm trong SoftApConfiguration.Builder#setBlockedClientList đều bị chặn liên kết.
      • Tất cả các thiết bị có địa chỉ MAC nằm trong SoftApConfiguration.Builder#setAllowedClientList đều được phép liên kết.
      • Tất cả các thiết bị khác (nghĩa là thiết bị có địa chỉ MAC không nằm trong danh sách cho phép hoặc chặn) đều bị chặn liên kết nhưng SoftApCallback#onBlockedClientConnecting được gọi, cho phép ứng dụng kiểm soát (tức là ứng dụng Cài đặt) thực hiện hành động, để ví dụ: yêu cầu người dùng xác nhận rồi thêm thiết bị vào danh sách cho phép hoặc danh sách chặn tùy thuộc vào hành vi của người dùng.

    Lưu ý rằng các thiết bị chỉ có thể sử dụng chức năng danh sách cho phép nếu nó được hỗ trợ trên thiết bị. Bạn có thể xác minh hỗ trợ thiết bị bằng cách sử dụng SoftApCapability#areFeaturesSupported( SOFTAP_FEATURE_CLIENT_FORCE_DISCONNECT ) .

Thực hiện

Để hỗ trợ chia sẻ kết nối qua điểm phát sóng hoặc để hỗ trợ điểm phát sóng chỉ cục bộ, nhà sản xuất thiết bị phải cung cấp ứng dụng Cài đặt, khung và hỗ trợ HAL/phần sụn:

  • Ứng dụng cài đặt: Ứng dụng Cài đặt AOSP cung cấp đường cơ sở để định cấu hình điểm phát sóng chia sẻ kết nối bằng SSID và thông tin đăng nhập bảo mật. Mã này có thể được sử dụng nguyên trạng hoặc được sửa đổi để cung cấp các khả năng bổ sung như được mô tả trong Phát triển ứng dụng với API điểm phát sóng .

  • Khung: Mã khung AOSP hỗ trợ tất cả các chức năng được mô tả trong Phát triển ứng dụng với API điểm phát sóng .

  • HAL/phần sụn cho điểm phát sóng: HIDL IHostapd.hal phiên bản 1.2 trở lên hoặc AIDL IHostapd.aidl .

tùy biến

Để tùy chỉnh việc triển khai, nhà sản xuất thiết bị nên định cấu hình các lớp phủ và cấu hình mạng di động sau, được ghi lại trong packages/modules/Wifi/service/ServiceWifiResources/res/values/config.xml :

  • config_wifiFrameworkSoftApShutDownTimeoutMilliseconds : Khoảng thời gian chờ tắt máy mặc định. Chỉ hợp lệ nếu SoftApConfiguration#setAutoShutdownEnabled được bật. Có thể được ghi đè bằng cách sử dụng SoftApConfiguration#setShutdownTimeoutMillis .
  • config_wifiHardwareSoftapMaxClientCount : Giới hạn phần cứng cho số lượng máy khách được hỗ trợ tối đa. Số lượng máy khách tối đa mà thiết bị hỗ trợ là số lượng hạn chế tối thiểu về phần cứng và nhà cung cấp dịch vụ (được chỉ định bởi CarrierConfigManager.Wifi#KEY_HOTSPOT_MAX_CLIENT_COUNT ). Kết quả cuối cùng được cung cấp cho ứng dụng với SoftApCapabilities#getMaxSupportedClients .
  • config_wifiSofapClientForceDisconnectSupported : Liệu thiết bị có khả năng buộc ngắt kết nối máy khách hay không. Bắt buộc phải bật danh sách cho phép và chặn. Đã giao tiếp với ứng dụng kiểm soát (ứng dụng Cài đặt) thông qua SoftApCapabilities#areFeaturesSupported( SOFTAP_FEATURE_CLIENT_FORCE_DISCONNECT ) .
  • (Có sẵn từ 13) config_wifiSoftapPassphraseAsciiEncodableCheck : Cụm mật khẩu AP mềm có bắt buộc phải mã hóa ASCII hay không.
  • config_wifiSoftapAutoUpgradeToBridgedConfigWhenSupported WhenSupported : Có hay không tự động nâng cấp cấu hình cài đặt băng tần lên băng tần kép trong quá trình khôi phục cấu hình đám mây khi một thiết bị mới được hỗ trợ.
  • (Có sẵn từ 13) config_wifiSoftapAutoAppendLowerBandsToBandConfigurationEnabled : Khung có tự động thêm các dải thấp hơn vào cấu hình dải để tránh xử lý cùng tồn tại hay không.
  • config_wifiSoftApDynamicCountryCodeUpdateSupported : Cập nhật mã quốc gia động ở chế độ AP có được hỗ trợ trên thiết bị hay không
  • Hỗ trợ kênh: config_wifiSoftap2gChannelList , config_wifiSoftap5gChannelList , config_wifiSoftap6gChannelListconfig_wifiSoftap60gChannelList .
  • Hỗ trợ khôi phục chỉ định xem các mục tương ứng có được đặt lại về mặc định hay không khi khôi phục cấu hình điểm phát sóng sang thiết bị mới: config_wifiSoftapResetChannelConfig , config_wifiSoftapResetHiddenConfig , config_wifiSoftapResetUserControlConfig , config_wifiSoftapResetAutoShutdownTimerConfig , config_wifiSoftapResetMaxClientSettingConfig . Lưu ý rằng những giá trị này được đặt thành true theo mặc định, nghĩa là các giá trị được đặt lại. Điều này rất quan trọng nếu thiết bị mới không hỗ trợ cấu hình.
  • Khả năng phần cứng:
    • config_wifi_softap_acs_supported
    • config_wifi_softap_sae_supported
    • (Có sẵn từ 13) config_wifiSoftapOweTransitionSupported
    • (Có sẵn từ 13) config_wifiSoftapOweSupported
    • config_wifi_softap_ieee80211ac_supported
    • config_wifiSoftapIeee80211axSupported
    • (Có sẵn từ 13) config_wifiSoftapIeee80211beSupported
    • config_wifiSoftapMacAddressCustomizationSupported
    • config_wifiSoftapHeSuBeamformerSupported
    • config_wifiSoftapHeSuBeamformeeSupported
    • config_wifiSoftapHeMuBeamformerSupported
    • config_wifiSoftapHeTwtSupported
    • config_wifiSoftap24ghzSupported
    • config_wifiSoftap5ghzSupported
    • config_wifiSoftap6ghzSupported
    • config_wifiSoftap60ghzSupported
    • config_wifiSoftapAcsIncludeDfs

Thẩm định

Android cung cấp một bộ kiểm tra đơn vị, kiểm tra tích hợp (Bộ kiểm tra kết nối Android hoặc ACTS) và kiểm tra Bộ kiểm tra khả năng tương thích (CTS) để xác thực tính năng điểm phát sóng. Tính năng điểm phát sóng cũng có thể được kiểm tra bằng Bộ kiểm tra nhà cung cấp (VTS).

bài kiểm tra đơn vị

Xác minh gói điểm phát sóng bằng các kiểm tra sau.

  • Kiểm tra dịch vụ:

    atest packages/modules/Wifi/service/tests/wifitests/
    
  • Kiểm tra người quản lý:

    atest packages/modules/Wifi/framework/tests/
    

Các bài kiểm tra tích hợp (ACTS)

Bộ kiểm tra điểm phát sóng ACTS , nằm trong tools/test/connectivity/acts_tests/tests/google/wifi/WifiSoftApTest.py , thực hiện các kiểm tra chức năng của tính năng điểm phát sóng.

Kiểm tra bộ kiểm tra khả năng tương thích (CTS)

Sử dụng các bài kiểm tra CTS để xác thực tính năng điểm phát sóng. CTS phát hiện khi tính năng này được bật và tự động bao gồm các kiểm tra liên quan.

Để kích hoạt các bài kiểm tra CTS, hãy chạy:

atest android.net.wifi.cts.WifiManagerTest

Bộ kiểm tra nhà cung cấp (VTS)

Nếu giao diện HIDL được triển khai, hãy chạy:

atest VtsHalWifiHostapdV1_2Target

Nếu giao diện AIDL được triển khai, hãy chạy:

atest VtsHalHostapdTargetTest