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. Od Androida 13 interfejs używa AIDL do definiowania HAL.
W przypadku wersji starszych niż Android 13 interfejsy i partycje dostawcy korzystają z 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 pliku device.mk
znajdującym się w folderze device/<oem>/<device>
zmień 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 pozostałe wymagania dotyczące obsługi Passpoint są zawarte 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 wersji 6.0, co umożliwia dostarczanie danych logowania Passpoint R1 (wersja 1) przez pobieranie przez przeglądarkę specjalnego pliku zawierającego informacje o profilu i danych logowania. Klient automatycznie uruchamia specjalny instalator informacji o Wi-Fi i pozwala użytkownikowi wyświetlić części informacji przed zaakceptowaniem lub odrzuceniem treści.
Informacje o profilu zawarte w pliku są używane do dopasowywania do danych pobranych z punktów dostępu obsługujących Passpoint, a dane logowania są automatycznie stosowane w przypadku każdej dopasowanej sieci.
Implementacja referencyjna 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 zakodowanego 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
. - Wartość
Content-Transfer-Encoding
musi być ustawiona nabase64
. - Opcja
Content-Disposition
nie może być ustawiona.
Metoda HTTP użyta do pobrania pliku musi być 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ą mieć podobne funkcje, ale nie muszą.
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 MO w formacie PerProviderSubscription Passpoint R1 dla HomeSP i Credential . |
Certyfikat zaufania |
application/x-x509-ca-cert
|
Wymagane w przypadku EAP-TLS i EAP-TTLS | Pojedynczy ładunek certyfikatu X.509v3 zakodowany w formacie base64. |
Klucz EAP-TLS |
application/x-pkcs12
|
Wymagane w przypadku EAP-TLS | Struktura PKCS #12 ASN.1 zakodowana w formacie 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 węźle HomeSP
są używane te węzły poddrzewa:
FriendlyName
: musi być ustawiony; służy jako tekst wyświetlanyFQDN
: wymaganeRoamingConsortiumOI
W węźle Credential
są używane te węzły poddrzewa:
Realm
: musi być niepustym ciągiem znaków.UsernamePassword
: wymagane dla protokołu 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. Należy skonfigurować te węzły:- Ustawiono
CertificateType
nax509v3
CertSHA256Fingerprint
ustawiony na prawidłowy skrót SHA-256 certyfikatu klienta w sekcji klucza MIME EAP-TLS.
- Ustawiono
SIM
: wymagane w przypadku EAP-SIM, EAP-AKA i EAP-AKA'. PoleEAPType
musi być ustawione na odpowiedni typ EAP, a wartośćIMSI
musi być zgodna z identyfikatorem IMSI jednej z kart SIM zainstalowanych na urządzeniu w momencie obsługi. 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ść konfigurowania Passpointa R1.
- Oddzielna nazwa domeny uwierzytelniania, autoryzacji i rozliczania (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 jest węzeł opcjonalny, a urządzenia z Androidem w wersji 10 lub starszej ignorują ten węzeł.
Android
: poddrzewo 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 cyfrowym na potrzeby 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 na podstawie publicznych certyfikatów głównych urzędów certyfikacji zainstalowanych w magazynie zaufanych certyfikatów.
Konfigurowanie Passpoint R2
Android 10 wprowadził obsługę funkcji Passpoint R2. Passpoint R2 wdraża rejestrację online (OSU), czyli standardową metodę tworzenia nowych profili Passpoint. Android 10 i nowsze wersje obsługują konfigurowanie profili EAP-TTLS za pomocą protokołu SOAP-XML w ramach otwartego interfejsu ESS OSU.
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 AP w selektorze Wi-Fi (oprócz wyświetlania identyfikatorów SSID).
- Użytkownik jest proszony o kliknięcie jednego z dostawców usług, aby skonfigurować profil Passpoint.
- Prowadzi 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 dostosowanie się do lokalnych przepisów:
- 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 użytkownik musi zaakceptować warunki, wyświetla się powiadomienie.
Adres URL warunków korzystania z usługi musi wskazywać na bezpieczną witrynę korzystającą z protokołu HTTPS. Jeśli adres URL wskazuje na niebezpieczną stronę internetową, framework natychmiast rozłącza połączenie i blokuje sieć.
- Adres URL informacji o miejscu
Umożliwia operatorom sieci i miejscom docelowym udostępnianie użytkownikom dodatkowych informacji, takich jak mapy, katalogi, promocje i kupony. Po połączeniu z siecią wyświetla się powiadomienie.
Adres URL informacji o miejscu docelowym musi wskazywać na bezpieczną witrynę internetową korzystającą z protokołu HTTPS. Jeśli adres URL prowadzi do niezabezpieczonej witryny, platforma zignoruje ten adres i nie wyświetli powiadomienia.
Inne funkcje Passpoint
Android 11 wprowadza te funkcje Passpoint, które poprawiają wrażenia użytkownika, zużycie energii i elastyczność wdrożenia:
- Egzekwowanie i powiadomienie o dacie ważności
- Wymuszanie daty ważności profili pozwala platformie 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 wykorzystaniu czasu antenowego, a także oszczędza baterię i pasmo na zapleczu. Framework wyświetla powiadomienie użytkownikowi, gdy sieć dopasowująca jego profil znajduje się w zasięgu, a profil wygasł.
- 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 z siecią.
Android 12 wprowadza te funkcje Passpoint, które poprawiają wygodę użytkowników, zużycie energii i elastyczność wdrożenia:
- Udekorowany prefiks 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 dla 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ślany 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 ustawiona na
hotspot.example.net
- O w roamingu (konsorcjum)
- Dane logowania z nazwą użytkownika
user
, hasłempassword
zakodowanym w formacie Base64 oraz domenąexample.net
- Metoda EAP ustawiona na
21
(EAP-TTLS) - Metoda wewnętrzna fazy 2 została ustawiona 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:
- Ustawiono nazwę przyjazną dla sieci:
Purple Passpoint
- Pełna i jednoznaczna nazwa domeny ustawiona na
wlan.mnc888.mcc999.3gppnetwork.org
- Dane logowania do karty SIM z identyfikatorem PLMN
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>
Informacje o uwierzytelnianiu
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 przenoszenie danych na Wi-Fi.
Segment | Wpływ | Wpływ |
---|---|---|
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 (AP), 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 z modyfikowanymi kryteriami dopasowywania, operatorzy i dostawcy usług muszą dodać domenę identyfikatora dostępu do sieci (NAI) do informacji opublikowanych przez punkt dostępu Passpoint.
Zalecanym rozwiązaniem jest wdrożenie przez dostawców usług sieciowych obejścia po stronie sieci, aby skrócić czas wdrożenia. 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 po stronie sieci wymaga zmiany konfiguracji sieci w celu dodania elementu NAIrealm ANQP zgodnie z opisem poniżej. Specyfikacje Passpoint nie wymagają elementu ANQP w domenie NAI, ale dodanie tej właściwości jest zgodne ze specyfikacją Passpoint, więc zgodne z nią implementacje klienta nie powinny się zepsuć.
- 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
Naprawa dotycząca urządzenia lub AOSP dla producentów OEM
Aby wdrożyć obejście na poziomie urządzenia, producenci OEM muszą wybrać pakiet poprawek aosp/718508. Tę łatkę można zastosować w ramach tych wersji (nie dotyczy Androida 10 ani nowszych):
- Android 9
- Android 8.x
Gdy łatka zostanie pobrana, producenci OEM muszą zaktualizować urządzenia w polu.