Passpoint to protokół Wi-Fi Alliance (WFA), który umożliwia urządzeniom mobilnym wykrywanie i uwierzytelnianie się w hotspotach Wi-Fi zapewniających dostęp do internetu.
Pomoc dotycząca urządzenia
Aby obsługiwać Passpoint, producenci urządzeń muszą wdrożyć interfejs Supplicant. Począwszy od Androida 13 interfejs używa AIDL do definicji HAL.
W przypadku wersji starszych niż Android 13 interfejsy i partycje dostawców używają HIDL.
Pliki HIDL znajdują się w folderze hardware/interfaces/supplicant/1.x
, a pliki AIDL – w folderze hardware/interfaces/supplicant/aidl
.
Użytkownik zapewnia obsługę standardu 802.11u, w szczególności funkcji wykrywania i wyboru sieci, takich jak Generic Advertisement Service (GAS) i protokół zapytań sieci dostępowej (ANQP).
Implementacja
Android 11 lub nowszy
Aby obsługiwać Passpoint na urządzeniach z Androidem 11 lub nowszym, producenci urządzeń muszą zapewnić obsługę oprogramowania układowego dla 802.11u. Wszystkie pozostałe wymagania dotyczące obsługi Passpoint są zawarte w AOSP.
Android 10 lub starszy
W przypadku urządzeń z Androidem 10 lub starszym producenci muszą zapewnić obsługę zarówno frameworku, jak i interfejsu HAL/firmware:
- Framework: Włącz Passpoint (wymaga flagi funkcji)
- Oprogramowanie: obsługa 802.11u
Aby obsługiwać Passpoint, zaimplementuj interfejs HAL Wi-Fi i włącz flagę funkcji Passpoint. W regionie device.mk
w regionie device/<oem>/<device>
zmodyfikuj zmienną środowiskową PRODUCT_COPY_FILES
, aby uwzględnić obsługę funkcji Passpoint:
PRODUCT_COPY_FILES +=
frameworks/native/data/etc/android.hardware.wifi.passpoint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.passpoint.xml
Wszystkie inne wymagania dotyczące obsługi Passpoint są uwzględnione w AOSP.
Weryfikacja
Aby sprawdzić implementację funkcji Passpoint, uruchom te testy jednostkowe pakietu Passpoint:
Testy usługi:
atest com.android.server.wifi.hotspot2
Testy menedżera:
atest android.net.wifi.hotspot2
Konfiguracja Passpoint R1
Android obsługuje Passpoint R1 od Androida 6.0, co umożliwia udostępnianie danych uwierzytelniających Passpoint R1 (wersja 1) przez pobranie przez internet specjalnego pliku zawierającego informacje o profilu i danych logowania. Klient automatycznie uruchamia specjalny instalator z informacjami o sieci Wi-Fi i pozwala użytkownikowi przejrzeć te informacje przed zaakceptowaniem lub odrzuceniem treści.
Informacje o profilu zawarte w pliku są używane do dopasowywania do danych pobieranych z punktów dostępu obsługujących Passpoint, a dane logowania są automatycznie stosowane w każdej dopasowanej sieci.
Implementacja referencyjna na Androida obsługuje protokoły EAP-TTLS, EAP-TLS, EAP-SIM, EAP-AKA i EAP-AKA'.
Mechanizm pobierania
Plik konfiguracji Passpoint musi być hostowany na serwerze internetowym i chroniony za pomocą protokołu TLS (HTTPS), ponieważ może zawierać hasło w postaci zwykłego tekstu lub dane klucza prywatnego. Treść składa się z zawiniętego tekstu MIME w wielu częściach reprezentowanego w UTF-8 i zaszyfrowanego w formacie base64 zgodnie z sekcją 6.8 standardu RFC-2045.
Te pola nagłówka HTTP są używane przez klienta do automatycznego uruchamiania instalatora Wi-Fi na urządzeniu:
- Wartość
Content-Type
musi być ustawiona naapplication/x-wifi-config
. - Pole
Content-Transfer-Encoding
musi mieć wartośćbase64
. - Opcja
Content-Disposition
nie może być ustawiona.
Do pobierania pliku należy użyć metody HTTP GET. Za każdym razem, gdy przeglądarka otrzyma odpowiedź z tymi nagłówkami MIME, uruchamiana jest aplikacja do instalacji. Pobieranie musi być uruchamiane przez kliknięcie elementu HTML, takiego jak przycisk (nieobsługiwane są automatyczne przekierowania do adresu URL pobierania). Takie działanie jest charakterystyczne dla przeglądarki Google Chrome. Inne przeglądarki mogą, ale nie muszą mieć podobne funkcje.
Skład pliku
Treść zakodowana w formacie Base64 musi składać się z treści wieloczęściowych MIME z Content-Type
multipart/mixed
. Poszczególne części treści złożonych składają się z tych elementów.
Część | Content-Type (bez cudzysłowów) | Wymagany | Opis |
---|---|---|---|
Profil |
application/x-passpoint-profile
|
Zawsze | Dane w formacie OMA-DM SyncML zawierające plik MO w formacie PerProviderSubscription Passpoint R1 dla HomeSP i Credential . |
Certyfikat zaufania |
application/x-x509-ca-cert
|
Wymagane w przypadku protokołów EAP-TLS i EAP-TTLS | Jedno skompresowane w formacie base64 o wartości X.509v3. |
Klucz EAP-TLS |
application/x-pkcs12
|
Wymagane w przypadku EAP-TLS | Struktura PKCS #12 ASN.1 zakodowana w base64 zawierająca łańcuch certyfikatów klienta z co najmniej certyfikatem klienta i powiązanym kluczem prywatnym. Kontener PKCS 12, a także klucz prywatny i certyfikaty muszą być w postaci zwykłego tekstu bez hasła. |
Sekcja Profile musi być przesyłana jako tekst XML z kodowaniem base64 i UTF-8, który określa części poddrzewi HomeSP
i Credential
w specyfikacji technicznej Passpoint R2 w wersji 1.0.0, sekcja 9.1.
Węzeł najwyższego poziomu musi być węzłem MgmtTree
, a bezpośredni podrzędny węzeł musi być węzłem PerProviderSubscription
. Przykładowy plik XML znajdziesz w sekcji Przykładowy profil XML OMA-DM.
W HomeSP
używane są te węzły podrzędne:
FriendlyName
: musi być ustawiony; jest używany jako wyświetlany tekst;FQDN
: wymaganeRoamingConsortiumOI
W Credential
używane są te węzły podrzędne:
Realm
: musi być niepustym ciągiem znaków.UsernamePassword
: wymagany w przypadku EAP-TTLS z tymi węzłami:Username
: ciąg znaków zawierający nazwę użytkownikaPassword
: ciąg znaków zakodowany w formacie Base64 (ustawiony nacGFzc3dvcmQ=
, ciąg znaków zakodowany w formacie Base64 dla „hasło” w przykładzie poniżej)EAPMethod/EAPType
: musi mieć wartość21
.EAPMethod/InnerMethod
: musi być ustawiony na jedną z wartościPAP
,CHAP
,MS-CHAP
lubMS-CHAP-V2
.
DigitalCertificate
: wymagane w przypadku protokołu EAP-TLS. Musisz ustawić te węzły:- W zakresie
CertificateType
ustawiono formułęx509v3
CertSHA256Fingerprint
ustawiony na prawidłowy skrót SHA-256 certyfikatu klienta w sekcji klucza MIME EAP-TLS.
- W zakresie
SIM
: wymagany w przypadku sieci EAP-SIM, EAP-AKA i EAP-AKA. W poluEAPType
należy ustawić odpowiedni typ EAP, aIMSI
musi być zgodny z IMSI jednej z kart SIM zainstalowanych w urządzeniu w momencie obsługi administracyjnej. Ciąg IMSI może składać się z cyfr dziesiętnych (aby wymusić pełne dopasowanie), 5 lub 6 cyfr dziesiętnych z gwiazdką (*) (aby dopasowanie IMSI obejmowało tylko MCC/MNC). Na przykład ciąg znaków IMSI 123456* pasuje do dowolnej karty SIM z identyfikatorem MCC 123 i MNC 456.
Android 11 wprowadza funkcje, które zwiększają elastyczność udostępniania protokołu Passpoint R1.
- Oddzielna nazwa domeny do uwierzytelniania, autoryzacji i księgowości (AAA)
Administratorzy sieci Passpoint, którzy wymagają nazwy domeny AAA określonej niezależnie od pełnej i jednoznacznej nazwy domeny (FQDN) reklamowanej przez sieć za pomocą protokołu ANQP (Access Network Query Protocol), mogą określić listę pełnych i jednoznacznych nazw domen (FQDN) oddzielonych średnikami w nowym węźle podrzędnym w poddrzewie
Extension
. To węzeł opcjonalny, a urządzenia z Androidem w wersji 10 lub starszej ignorują ten węzeł.
Android
: drzewo rozszerzenia na AndroidaAAAServerTrustedNames
: wymagane dla nazw zaufanych serwera AAA z tymi węzłami:FQDN
: ciąg znaków zawierający zaufane nazwy serwera AAA. Nazwy zaufanych użytkowników rozdzielaj średnikami. Na przykład:example.org;example.com
.
- prywatne główne urzędy certyfikacji z podpisami własnymi
- Administratorzy sieci Passpoint, którzy zarządzają certyfikatami wewnętrznie, mogą udostępniać profile za pomocą prywatnego urzędu certyfikacji z własnym podpisem do uwierzytelniania AAA.
- Zezwalanie na instalowanie profili bez certyfikatu głównego urzędu certyfikacji
- Certyfikat głównego urzędu certyfikacji dołączony do profilu jest używany do uwierzytelniania serwera AAA. Administratorzy sieci Passpoint, którzy chcą korzystać z publicznych zaufanych urzędów certyfikacji głównych do uwierzytelniania serwera AAA, mogą udostępniać profile bez certyfikatu głównego urzędu certyfikacji. W takim przypadku system sprawdza certyfikaty serwera AAA z urzędem głównym CA zainstalowanym w magazynie zaufanych certyfikatów.
Konfigurowanie Passpoint R2
W Androidzie 10 wprowadzono obsługę funkcji Passpoint R2. Passpoint R2 implementuje rejestrację online (OSU), czyli standardową metodę tworzenia nowych profili Passpoint. Android 10 i nowsze wersje obsługują wdrażanie profili EAP-TTLS za pomocą protokołu SOAP-XML w ramach otwartego interfejsu OSU ESS.
Obsługiwane funkcje Passpoint R2 wymagają tylko kodu referencyjnego AOSP (nie jest wymagane dodatkowe sterowniki ani oprogramowanie sprzętowe). Kod referencyjny AOSP zawiera też domyślną implementację interfejsu użytkownika Passpoint R2 w aplikacji Ustawienia.
Gdy Android wykryje punkt dostępu Passpoint R2, platforma Android:
- Wyświetla listę dostawców usług reklamowanych przez punkt dostępu w selektorze Wi-Fi (oprócz wyświetlania identyfikatorów SSID).
- Prośba o kliknięcie jednego z dostawców usług w celu skonfigurowania profilu Passpoint.
- Przeprowadza użytkownika przez proces konfiguracji profilu Passpoint.
- Po zakończeniu instalacji zainstaluje utworzony profil Passpoint.
- Połącza się z siecią Passpoint za pomocą nowo utworzonego profilu Passpoint.
Funkcje Passpoint R3
Android 12 wprowadza te funkcje Passpoint R3, które zwiększają wygodę użytkowników i umożliwiają sieciom przestrzeganie przepisów lokalnych:
- Warunki usługi
W niektórych miejscach i przy niektórych usługach zaakceptowanie warunków jest wymagane przez prawo. Ta funkcja umożliwia zastąpienie niezabezpieczonych portali przechwytujących, które korzystają z otwartych sieci, bezpieczną siecią Passpoint. Gdy konieczne będzie zaakceptowanie warunków korzystania z usługi, wyświetla się użytkownikowi powiadomienie.
Adres URL warunków korzystania z usługi musi wskazywać na bezpieczną witrynę, która używa protokołu HTTPS. Jeśli adres URL wskazuje niezabezpieczoną witrynę, platforma natychmiast rozłącza się i blokuje sieć.
- Adres URL informacji o miejscu
Umożliwia operatorom sieci i obiektom przekazywanie użytkownikom dodatkowych informacji, takich jak mapy obiektów, katalogi, promocje i kupony. Po połączeniu z siecią wyświetla się powiadomienie.
Adres URL informacji o miejscu musi wskazywać bezpieczną witrynę za pomocą protokołu HTTPS. Jeśli adres URL wskazuje niezabezpieczoną witrynę, platforma go zignoruje i nie wyświetli powiadomienia.
Inne funkcje Passpoint
Android 11 wprowadza poniższe funkcje Passpoint, które zwiększają wygodę użytkowników, zużycie energii i elastyczność wdrażania.
- Egzekwowanie i powiadomienie o dacie ważności
- Wymuszanie daty ważności w profilach pozwala uniknąć automatycznego łączenia się z punktami dostępu przy użyciu wygasłych danych logowania, które z pewnością się nie uda. Zapobiega to wykorzystywaniu czasu antenowego, a także oszczędza baterię i pasmo na zapleczu. Gdy sieć dopasowująca profil użytkownika znajduje się w zasięgu, a profil wygasł, wyświetla powiadomienie.
- Wiele profili z identyczną pełną i jednoznaczną nazwą domeny
- Operatorzy, którzy wdrażają sieci Passpoint i korzystają z wielu publicznych identyfikatorów sieci komórkowych (PLMN), mogą udostępniać wiele profili Passpoint z tym samym FQDN, po jednym dla każdego identyfikatora PLMN, który jest automatycznie dopasowywany do zainstalowanej karty SIM i używany do łączenia się z siecią.
Android 12 wprowadza te funkcje Passpoint, które poprawiają wygodę użytkowników, zużycie energii i elastyczność wdrożenia:
- Prefiks dekorowanej tożsamości
- Podczas uwierzytelniania w sieciach z ozdobą prefiksu operatorzy sieci mogą aktualizować identyfikator dostępu do sieci (NAI), aby przeprowadzić jawne przekierowywanie przez wiele serwerów proxy w sieci AAA (patrz RFC 7542). Android 12 implementuje tę funkcję zgodnie ze specyfikacją WBA dotyczącymi rozszerzeń PPS-MO.
- Obsługa zbliżającego się wylogowania
- Pozwala operatorom sieci sygnalizować urządzeniu, że usługa jest niedostępna dla danych logowania używanych do uwierzytelniania w sieci przez określony czas (określony przez czas oczekiwania). Po otrzymaniu tego sygnału urządzenia nie będą próbować ponownie łączyć się z siecią przy użyciu tych samych danych logowania, dopóki nie upłynie czas oczekiwania. Z kolei urządzenia, które nie obsługują tej funkcji, mogą wielokrotnie próbować nawiązać połączenie z siecią, gdy usługa jest niedostępna.
Przykłady profili XML OMA-DM PerProviderSubscription-MO
Profil z danymi logowania (nazwą użytkownika i hasłem) (EAP-TTLS)
Ten przykład pokazuje profil sieci z:
- Ustawiono nazwę przyjazną dla sieci:
Example Network
- Pełna i jednoznaczna nazwa domeny została ustawiona na
hotspot.example.net
- Konsorcjum OI w roamingu (na potrzeby roamingu)
- Dane logowania z nazwą użytkownika
user
, hasłempassword
zakodowanym w formacie Base64 oraz domenąexample.net
- Metoda EAP ustawiona na
21
(EAP-TTLS) - Ustawiono wewnętrzną metodę fazy 2 na
MS-CHAP-V2
- Ustawiono alternatywne nazwy domen AAA:
trusted.com
itrusted.net
<MgmtTree xmlns="syncml:dmddf1.2">
<VerDTD>1.2</VerDTD>
<Node>
<NodeName>PerProviderSubscription</NodeName>
<RTProperties>
<Type>
<DDFName>urn:wfa:mo:hotspot2dot0-perprovidersubscription:1.0</DDFName>
</Type>
</RTProperties>
<Node>
<NodeName>i001</NodeName>
<Node>
<NodeName>HomeSP</NodeName>
<Node>
<NodeName>FriendlyName</NodeName>
<Value>Example Network</Value>
</Node>
<Node>
<NodeName>FQDN</NodeName>
<Value>hotspot.example.net</Value>
</Node>
<Node>
<NodeName>RoamingConsortiumOI</NodeName>
<Value>112233,445566</Value>
</Node>
</Node>
<Node>
<NodeName>Credential</NodeName>
<Node>
<NodeName>Realm</NodeName>
<Value>example.net</Value>
</Node>
<Node>
<NodeName>UsernamePassword</NodeName>
<Node>
<NodeName>Username</NodeName>
<Value>user</Value>
</Node>
<Node>
<NodeName>Password</NodeName>
<Value>cGFzc3dvcmQ=</Value>
</Node>
<Node>
<NodeName>EAPMethod</NodeName>
<Node>
<NodeName>EAPType</NodeName>
<Value>21</Value>
</Node>
<Node>
<NodeName>InnerMethod</NodeName>
<Value>MS-CHAP-V2</Value>
</Node>
</Node>
</Node>
</Node>
<Node>
<NodeName>Extension</NodeName>
<Node>
<NodeName>Android</NodeName>
<Node>
<NodeName>AAAServerTrustedNames</NodeName>
<Node>
<NodeName>FQDN</NodeName>
<Value>trusted.com;trusted.net</Value>
</Node>
</Node>
</Node>
</Node>
</Node>
</Node>
</MgmtTree>
Profil z kwalifikującymi się certyfikatami cyfrowymi (EAP-TLS)
Ten przykład pokazuje profil sieci z:
- Ustawiono nazwę przyjazną dla sieci:
GlobalRoaming
- Pełna i jednoznaczna nazwa domeny ustawiona na
globalroaming.net
- OIs konsorcja roamingu (do roamingu)
- Ustawiono królestwo:
users.globalroaming.net
- Uwierzytelnienie z certyfikatem cyfrowym, który ma określony odcisk cyfrowy
<MgmtTree xmlns="syncml:dmddf1.2">
<VerDTD>1.2</VerDTD>
<Node>
<NodeName>PerProviderSubscription</NodeName>
<RTProperties>
<Type>
<DDFName>urn:wfa:mo:hotspot2dot0-perprovidersubscription:1.0</DDFName>
</Type>
</RTProperties>
<Node>
<NodeName>i001</NodeName>
<Node>
<NodeName>HomeSP</NodeName>
<Node>
<NodeName>FriendlyName</NodeName>
<Value>GlobalRoaming</Value>
</Node>
<Node>
<NodeName>FQDN</NodeName>
<Value>globalroaming.net</Value>
</Node>
<Node>
<NodeName>RoamingConsortiumOI</NodeName>
<Value>FFEEDDCC0,FFEEDDCC1,009999,008888</Value>
</Node>
</Node>
<Node>
<NodeName>Credential</NodeName>
<Node>
<NodeName>Realm</NodeName>
<Value>users.globalroaming.net</Value>
</Node>
<Node>
<NodeName>DigitalCertificate</NodeName>
<Node>
<NodeName>CertificateType</NodeName>
<Value>x509v3</Value>
</Node>
<Node>
<NodeName>CertSHA256Fingerprint</NodeName>
<Value>0ef08a3d2118700474ca51fa25dc5e6d3d63d779aaad8238b608a853761da533</Value>
</Node>
</Node>
</Node>
</Node>
</Node>
</MgmtTree>
Profil z danymi uwierzytelniania SIM (EAP-AKA)
Ten przykład pokazuje profil sieci z:
- Nazwa dostosowana do sieci ustawiono na
Purple Passpoint
- Pełna i jednoznaczna nazwa domeny została ustawiona na
wlan.mnc888.mcc999.3gppnetwork.org
- Dane uwierzytelniające karty SIM z identyfikatorem PLMN o identyfikatorze
999888
- Metoda EAP ustawiona na
23
(EAP-AKA)
<MgmtTree xmlns="syncml:dmddf1.2">
<VerDTD>1.2</VerDTD>
<Node>
<NodeName>PerProviderSubscription</NodeName>
<RTProperties>
<Type>
<DDFName>urn:wfa:mo:hotspot2dot0-perprovidersubscription:1.0</DDFName>
</Type>
</RTProperties>
<Node>
<NodeName>i001</NodeName>
<Node>
<NodeName>HomeSP</NodeName>
<Node>
<NodeName>FriendlyName</NodeName>
<Value>Purple Passpoint</Value>
</Node>
<Node>
<NodeName>FQDN</NodeName>
<Value>purplewifi.com</Value>
</Node>
</Node>
<Node>
<NodeName>Credential</NodeName>
<Node>
<NodeName>Realm</NodeName>
<Value>wlan.mnc888.mcc999.3gppnetwork.org</Value>
</Node>
<Node>
<NodeName>SIM</NodeName>
<Node>
<NodeName>IMSI</NodeName>
<Value>999888*</Value>
</Node>
<Node>
<NodeName>EAPType</NodeName>
<Value>23</Value>
</Node>
</Node>
</Node>
</Node>
</Node>
</MgmtTree>
Zalecenie dotyczące uwierzytelniania
Urządzenia z Androidem 8.x lub 9.0 z profilem Passpoint R1 EAP-SIM, EAP-AKA lub EAP-AKA nie będą się automatycznie łączyć z siecią Passpoint. Ten problem wpływa na użytkowników, operatorów i usługi, ponieważ zmniejsza wykorzystanie Wi-Fi.
Segment | Wpływ | Rozmiar wpływu |
---|---|---|
Operatorzy i dostawcy usług Passpoint | Zwiększone obciążenie sieci komórkowej. | dowolny operator korzystający z protokołu Passpoint R1. |
Użytkownicy | Brak możliwości automatycznego łączenia się z punktami dostępu Wi-Fi operatora, co powoduje wyższe koszty transmisji danych. | Każdy użytkownik z urządzeniem działającym w ramach sieci operatora obsługującej Passpoint R1. |
Przyczyna niepowodzenia
Passpoint określa mechanizm dopasowywania reklamowanego dostawcy usług (ANQP) do profilu zainstalowanego na urządzeniu. Podane niżej reguły dopasowywania do EAP-SIM, EAP-AKA i EAP-AKA to częściowy zestaw reguł skupiający się na błędach EAP-SIM/AKA/AKA:
If the FQDN (Fully Qualified Domain Name) matches
then the service is a Home Service Provider.
Else: If the PLMN ID (3GPP Network) matches
then the service is a Roaming Service Provider.
W Androidzie 8.0 zmieniono drugie kryterium:
Else: If the PLMN ID (3GPP Network) matches AND the NAI Realm matches
then the service is a Roaming Service Provider.
W związku z tą zmianą system nie znalazł żadnych dopasowań do wcześniejszych dostawców usług, więc urządzenia Passpoint nie łączyły się automatycznie.
Obejścia
Aby obejść problem zmodyfikowanych kryteriów dopasowania, operatorzy i dostawcy usług muszą dodać obszar identyfikatorów dostępu do sieci (NAI) do informacji publikowanych przez Passpoint AP.
Zalecane rozwiązanie to dla dostawców usług sieciowych wdrożenie obejścia po stronie sieci, które maksymalnie przyspieszy wdrożenie. Rozwiązanie na poziomie urządzenia zależy od OEM-ów, którzy pobierają listę zmian (CL) z AOSP, a następnie aktualizują urządzenia w polu.
Rozwiązanie problemu z siecią dla operatorów i dostawców usług Passpoint
Rozwiązanie problemu po stronie sieci wymaga zmiany konfiguracji sieci w celu dodania elementu NAIrealm ANQP zgodnie z opisem poniżej. Specyfikacje Passpoint nie wymagają elementu ANQP obszaru NAI, ale dodanie tej właściwości jest zgodne ze specyfikacjami Passpoint, więc wdrożenia klienckie zgodne ze specyfikacją nie powinny działać.
- Dodaj element ANQP domeny NAI.
- Ustaw podpole domeny NAI tak, aby odpowiadało wartości
Realm
profilu zainstalowanego na urządzeniu. W przypadku każdego typu programu EAP ustaw te informacje:
- EAP-TTLS: ustaw
EAPMethod(21)
i obsługiwane typy uwierzytelniania wewnętrznego (PAP
,CHAP
,MS-CHAP
lubMS-CHAP-V2
). - EAP-TLS: ustaw
EAPMethod(13)
- EAP-SIM: ustaw
EAPMethod(18)
- EAP-AKA: ustaw
EAPMethod(23)
- EAP-AKA': ustaw
EAPMethod(50)
- EAP-TTLS: ustaw
Poprawka dotycząca urządzenia/AOSP dla producentów OEM
Aby wdrożyć obejście na poziomie urządzenia, producenci OEM muszą wybrać wersję poprawki aosp/718508. Ta poprawka może być stosowana na tych wersjach: (nie dotyczy Androida 10 ani nowszych):
- Android 9
- Android 8.x
Po pobraniu poprawki producenci OEM muszą zaktualizować urządzenia w terenie.