Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.

Dukungan Wi-Fi Hotspot (Soft AP) untuk Penambatan

Android mendukung penambatan melalui hotspot Wi-Fi (Soft AP). Dari Android 11, konfigurasi Soft AP yang tersedia untuk produsen perangkat mendukung lebih banyak kasus penggunaan dan penyesuaian operator, termasuk konfigurasi berikut ini:

  • SSID dan BSSID
  • Jenis keamanan (termasuk WPA3)
  • SSID tersembunyi
  • Pita dan saluran operasi (termasuk ACS)
  • Jumlah maksimum klien yang diizinkan
  • Nilai batas waktu penghentian otomatis
  • Allowlist dan blocklist untuk memungkinkan kontrol pengguna atas perangkat terkait

Kemampuan perangkat menentukan ketersediaan kontrol ini. Android 11 memperkenalkan API untuk mendapatkan kemampuan ini. Produsen perangkat juga dapat menentukan kemampuan perangkat dasar menggunakan overlay.

Perhatikan bahwa beberapa API adalah API sistem dan dibatasi melalui izin sehingga hanya aplikasi Pengaturan sistem yang dapat mengaksesnya.

Contoh dan sumber

Implementasi default disediakan oleh aplikasi Pengaturan AOSP, namun tidak menggunakan semua API untuk konfigurasi Soft AP. Aplikasi pemanggil harus melakukan tiga fungsi berikut:

  1. Daftarkan callback untuk mendapatkan kemampuan perangkat menggunakan WifiManager#registerSoftApCallback . Callback SoftApCallback menyediakan beberapa metode:

    • SoftApCallback#onCapabilityChanged : Memberikan informasi tentang kemampuan perangkat, termasuk jumlah maksimum klien yang didukung, dan apakah SAE atau ACS didukung.
    • SoftApCallback#onInfoChanged : Memberikan informasi tentang Soft AP yang sedang berjalan (hanya berlaku setelah dimulai), termasuk informasi pita dan frekuensi.
    • SoftApCallback#onConnectedClientsChanged : Menyediakan daftar klien yang terhubung. Untuk setiap klien, Anda bisa mendapatkan alamat MAC. Untuk mendapatkan informasi IP, gunakan callback TetheringEventCallback#onClientsChanged .
    • SoftApCallback#onStateChanged : Menyediakan pembaruan tentang status Soft AP saat diaktifkan dan dinonaktifkan.
    • SoftApCallback#onBlockedClientConnecting : Memberikan informasi klien yang diblokir dengan salah satu alasan berikut untuk pemblokiran: perangkat mencapai jumlah maksimum klien yang dapat didukung atau klien tidak secara eksplisit diizinkan untuk terhubung.
  2. Konfigurasikan konfigurasi Soft AP yang akan digunakan untuk penambatan dengan memanggil metode WifiManager#setSoftApConfiguration dan memberikan contoh SoftApConfiguration . Anda dapat membuat SoftApConfiguration menggunakan kelas SoftApConfiguration.Builder .

  3. Mulai tethering dengan memanggil metode tethering di TetheringManager#startTethering .

Menerapkan izinkan dan blokir daftar

Persyaratan operator yang khas adalah untuk memberikan pengguna kontrol atas perangkat yang diizinkan untuk dihubungkan ke Soft AP. Ada beberapa mekanisme untuk melakukan ini:

  • Batasi jumlah maksimum perangkat yang dapat dikaitkan ke soft AP menggunakan SoftApConfiguration.Builder#setMaxNumberOfClients . Pastikan untuk menentukan angka yang lebih rendah dari jumlah maksimum klien yang didukung oleh perangkat. Anda bisa mendapatkan jumlah maksimum dari SoftApCapability#getMaxSupportedClients .
  • Berikan kontrol dinamis menggunakan izinkan dan blokir daftar:

    • Konfigurasi default dari Soft AP memungkinkan semua perangkat untuk menghubungkan ke Soft AP kecuali untuk perangkat yang alamat MAC-nya ditambahkan ke SoftApConfiguration.Builder#setBlockedClientList .
    • Jika Soft AP dikonfigurasi dengan SoftApConfiguration.Builder#setClientControlByUserEnabled( true ) , daftar yang diizinkan akan digunakan.

      • Semua perangkat yang alamat MAC-nya ada di SoftApConfiguration.Builder#setBlockedClientList diblokir dari asosiasi.
      • Semua perangkat yang alamat MAC-nya ada di SoftApConfiguration.Builder#setAllowedClientList diizinkan untuk dikaitkan.
      • Semua perangkat lain (yaitu, perangkat yang alamat MAC-nya tidak ada dalam daftar perbolehkan atau blokir) diblokir dari asosiasi tetapi SoftApCallback#onBlockedClientConnecting dipanggil, memungkinkan aplikasi pengontrol (yaitu, aplikasi Pengaturan) untuk mengambil tindakan, untuk Misalnya, meminta konfirmasi pengguna dan kemudian menambahkan perangkat ke daftar yang diizinkan atau ke daftar blokir tergantung pada perilaku pengguna.

    Perhatikan bahwa perangkat hanya dapat menggunakan fungsionalitas daftar yang diizinkan jika didukung pada perangkat. Anda dapat memverifikasi dukungan perangkat menggunakan SoftApCapability#areFeaturesSupported( SOFTAP_FEATURE_CLIENT_FORCE_DISCONNECT ) .

Penerapan

Untuk mendukung penambatan melalui hotspot Wi-Fi (Soft AP), produsen perangkat harus menyediakan aplikasi Pengaturan, kerangka kerja, dan dukungan HAL / firmware:

  • Aplikasi Pengaturan: Aplikasi Pengaturan AOSP menyediakan dasar untuk mengonfigurasi hotspot tethering dengan SSID dan kredensial keamanan. Kode ini dapat digunakan apa adanya atau dimodifikasi untuk memberikan kemampuan tambahan seperti yang dijelaskan dalam Contoh dan sumber .

  • Kerangka: Kode kerangka kerja AOSP mendukung semua fungsi yang dijelaskan dalam Contoh dan sumber .

  • HAL / firmware untuk hotspot: IHostapd.HAL versi 1.2 atau lebih tinggi.

Kustomisasi

Untuk menyesuaikan penerapan, produsen perangkat harus mengonfigurasi overlay dan konfigurasi operator berikut, yang didokumentasikan dalam packages/modules/Wifi/service/ServiceWifiResources/res/values/config.xml :

  • config_wifiFrameworkSoftApShutDownTimeoutMilliseconds : Interval batas waktu shutdown default. Hanya valid jika SoftApConfiguration#setAutoShutdownEnabled diaktifkan. Dapat diganti menggunakan SoftApConfiguration#setShutdownTimeoutMillis .
  • config_wifiHardwareSoftapMaxClientCount : Batasan perangkat keras untuk jumlah maksimum klien yang didukung. Jumlah maksimum klien yang didukung perangkat adalah batasan minimum perangkat keras dan operator (ditentukan oleh CarrierConfigManager.Wifi#KEY_HOTSPOT_MAX_CLIENT_COUNT ). Hasil akhir diberikan ke aplikasi dengan SoftApCapabilities#getMaxSupportedClients .
  • config_wifiSofapClientForceDisconnectSupported : Apakah perangkat memiliki kemampuan untuk memutuskan sambungan klien secara paksa. Diperlukan untuk mengaktifkan izinkan dan blokir daftar. SoftApCapabilities#areFeaturesSupported( SOFTAP_FEATURE_CLIENT_FORCE_DISCONNECT ) ke aplikasi pengontrol (aplikasi Pengaturan) melalui SoftApCapabilities#areFeaturesSupported( SOFTAP_FEATURE_CLIENT_FORCE_DISCONNECT ) .
  • Dukungan saluran: config_wifiSoftap2gChannelList , config_wifiSoftap5gChannelList , dan config_wifiSoftap6gChannelList .
  • Kembalikan dukungan menentukan apakah entri yang sesuai adalah reset ke default ketika memulihkan konfigurasi hotspot untuk perangkat baru: config_wifiSoftapResetChannelConfig , config_wifiSoftapResetHiddenConfig , config_wifiSoftapResetUserControlConfig , config_wifiSoftapResetAutoShutdownTimerConfig , config_wifiSoftapResetMaxClientSettingConfig . Perhatikan bahwa ini disetel ke true secara default, artinya nilainya disetel ulang. Ini penting jika perangkat baru tidak mendukung konfigurasi.
  • Kemampuan perangkat keras:

    • 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

Validasi

Android menyediakan serangkaian pengujian unit, pengujian integrasi (Android Connectivity Test Suite, atau ACTS), dan pengujian Compatibility Test Suite (CTS) untuk memvalidasi fitur hotspot. Fitur hotspot juga dapat diuji menggunakan Vendor Test Suite (VTS).

Tes unit

Verifikasi paket hotspot menggunakan tes berikut.

  • Tes layanan:

    atest packages/modules/Wifi/service/tests/wifitests/
    
  • Tes manajer:

    atest packages/modules/Wifi/framework/tests/
    

Tes integrasi (ACTS)

Rangkaian pengujian hotspot ACTS , yang terletak di tools/test/connectivity/acts/tests/google/wifi/WifiSoftApTest.py , mengimplementasikan pengujian fungsional fitur hotspot.

Tes Kompatibilitas Test Suite (CTS)

Gunakan tes CTS untuk memvalidasi fitur hotspot. CTS mendeteksi ketika fitur diaktifkan dan secara otomatis menyertakan tes terkait.

Untuk memicu tes CTS, jalankan:

atest android.net.wifi.cts.WifiManagerTest

Vendor Test Suite (VTS)

Untuk menjalankan tes VTS, jalankan:

atest VtsHalWifiHostapdV1_2Target