Passpoint to protokół Wi-Fi Alliance (WFA), który umożliwia urządzeniom mobilnym wykrywanie hotspotów Wi-Fi zapewniających dostęp do internetu i uwierzytelnianie w nich.
Obsługa urządzeń
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 dostawców korzystają z HIDL.
Pliki HIDL znajdują się w folderze hardware/interfaces/supplicant/1.x
, a pliki AIDL – w folderze hardware/interfaces/supplicant/aidl
.
Klient obsługuje standard 802.11u, a w szczególności funkcje wykrywania i wybierania sieci, takie jak Generic Advertisement Service (GAS) i access network query protocol (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 sprzętowego dla standardu 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 platformy, jak i warstwy HAL/oprogramowania sprzętowego:
- Framework: włącz Passpoint (wymaga flagi funkcji)
- Oprogramowanie: obsługa standardu 802.11u
Aby obsługiwać Passpoint, zaimplementuj 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ług:
atest com.android.server.wifi.hotspot2
Testy menedżera:
atest android.net.wifi.hotspot2
Udostępnianie Passpoint R1
Android obsługuje Passpoint R1 od wersji 6.0, co umożliwia udostępnianie danych logowania Passpoint R1 (wersja 1) przez pobieranie z internetu specjalnego pliku zawierającego informacje o profilu i dane logowania. Klient automatycznie uruchamia specjalny instalator informacji o Wi-Fi i umożliwia użytkownikowi wyświetlenie 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 konfiguracyjny Passpoint musi być hostowany na serwerze internetowym i powinien być 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 formacie wieloczęściowym reprezentowanego w UTF-8 i zakodowanego w base64 zgodnie z sekcją 6.8 standardu RFC-2045.
Klient używa tych pól nagłówka HTTP do automatycznego uruchamiania instalatora Wi-Fi na urządzeniu:
- Pole
Content-Type
musi mieć wartośćapplication/x-wifi-config
. - Pole
Content-Transfer-Encoding
musi mieć wartośćbase64
. - Pole
Content-Disposition
nie może być ustawione.
Metoda HTTP używana do pobierania pliku musi być GET. Za każdym razem, gdy przeglądarka wysyła żądanie HTTP GET i otrzymuje odpowiedź z tymi nagłówkami MIME, uruchamiana jest aplikacja instalacyjna. Pobieranie musi być wywoływane przez kliknięcie elementu HTML, np. przycisku (automatyczne przekierowania na adres URL pobierania nie są obsługiwane). To zachowanie jest charakterystyczne dla Google Chrome. Inne przeglądarki mogą, ale nie muszą, oferować podobne funkcje.
Kompozycja pliku
Treść zakodowana w formacie Base64 musi składać się z treści MIME w wielu częściach z Content-Type
o wartości multipart/mixed
. Poszczególne części treści wieloczęściowych składają się z tych elementów:
Część | Content-Type (bez cudzysłowu) | Wymagany | Opis |
---|---|---|---|
Profil |
application/x-passpoint-profile
|
Zawsze | Ładunek w formacie OMA-DM SyncML zawierający MO w formacie Passpoint R1
PerProviderSubscription dla HomeSP
i Credential . |
Ufaj certyfikatowi |
application/x-x509-ca-cert
|
Wymagane w przypadku protokołów EAP-TLS i EAP-TTLS | Pojedynczy certyfikat X.509v3 zakodowany w formacie base64. |
Klucz EAP-TLS |
application/x-pkcs12
|
Wymagane w przypadku EAP-TLS | Struktura ASN.1 PKCS #12 zakodowana w base64, zawierająca łańcuch certyfikatów klienta z co najmniej certyfikatem klienta i powiązanym kluczem prywatnym. Kontener PKCS 12, klucz prywatny i certyfikaty muszą być w formie zwykłego tekstu bez hasła. |
Sekcja Profile musi być przesyłana jako tekst XML zakodowany w formacie base64 i UTF-8, który określa części poddrzew HomeSP
i Credential
w sekcji 9.1 specyfikacji technicznej Passpoint R2 w wersji 1.0.0.
Węzeł najwyższego poziomu musi mieć wartość MgmtTree
, a bezpośredni węzeł podrzędny musi mieć wartość PerProviderSubscription
. Przykładowy plik XML profilu znajduje się w sekcji Przykładowy plik XML profilu OMA-DM.
W HomeSP
używane są te węzły poddrzewa:
FriendlyName
: musi być ustawiony; używany jako tekst wyświetlany.FQDN
: WymaganeRoamingConsortiumOI
W Credential
używane są te węzły poddrzewa:
Realm
: musi być niepustym ciągiem znakówUsernamePassword
: wymagane w przypadku protokołu EAP-TTLS z ustawionymi tymi węzłami:Username
: ciąg znaków zawierający nazwę użytkownikaPassword
: ciąg znaków zakodowany w formacie Base64 (w poniższym przykładzie ustawiony nacGFzc3dvcmQ=
, czyli ciąg znaków zakodowany w formacie Base64 dla słowa „password”)EAPMethod/EAPType
: musi mieć wartość21
EAPMethod/InnerMethod
: musi mieć jedną z tych wartości:PAP
,CHAP
,MS-CHAP
lubMS-CHAP-V2
DigitalCertificate
: wymagane w przypadku EAP-TLS. Musisz ustawić te węzły:- Ustawiono:
CertificateType
na:x509v3
CertSHA256Fingerprint
ustawiony na prawidłowy skrót SHA-256 certyfikatu klienta w sekcji MIME klucza EAP-TLS.
- Ustawiono:
SIM
: wymagane w przypadku protokołów EAP-SIM, EAP-AKA i EAP-AKA'. PoleEAPType
musi być ustawione na odpowiedni typ EAP, aIMSI
musi być zgodne z numerem IMSI jednej z kart SIM zainstalowanych na urządzeniu w momencie udostępniania. Ciąg IMSI może składać się w całości z cyfr dziesiętnych, aby wymusić pełne dopasowanie, lub z 5 lub 6 cyfr dziesiętnych, po których następuje gwiazdka (*), aby ograniczyć dopasowywanie IMSI tylko do MCC/MNC. Na przykład ciąg IMSI 123456* pasuje do każdej karty SIM, której kod MCC to 123, a kod MNC to 456.
Android 11 wprowadza funkcje, które zwiększają elastyczność udostępniania Passpoint R1.
- Oddzielna nazwa domeny uwierzytelniania, autoryzacji i rozliczania (AAA)
Administratorzy sieci Passpoint, którzy wymagają podania nazwy domeny AAA niezależnie od pełnej i jednoznacznej nazwy domeny (FQDN) reklamowanej przez sieć za pomocą protokołu ANQP (Access Network Query Protocol), mogą podać listę FQDN oddzielonych średnikami w nowym węźle w poddrzewie
Extension
. Jest to węzeł opcjonalny, który jest ignorowany przez urządzenia z Androidem w wersji 10 lub starszej.
Android
: poddrzewo rozszerzenia AndroidaAAAServerTrustedNames
: wymagane w przypadku zaufanych nazw serwera AAA z ustawionymi tymi węzłami:FQDN
: ciąg znaków zawierający zaufane nazwy serwera AAA. Do rozdzielania zaufanych nazw używaj średników. Na przykład:example.org;example.com
.
- Podpisane samodzielnie prywatne główne urzędy certyfikacji
- Administratorzy sieci Passpoint, którzy zarządzają certyfikatami wewnętrznie, mogą udostępniać profile z prywatnym, podpisanym samodzielnie urzędem certyfikacji 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ą polegać na publicznych, zaufanych głównych urzędach certyfikacji w celu uwierzytelniania serwera AAA, mogą udostępniać profile bez certyfikatu głównego urzędu certyfikacji. W tym przypadku system weryfikuje certyfikaty serwera AAA na podstawie publicznych certyfikatów głównego urzędu certyfikacji zainstalowanych w magazynie certyfikatów.
Udostępnianie Passpoint R2
W Androidzie 10 wprowadziliśmy obsługę funkcji Passpoint R2. Passpoint R2 implementuje rejestrację online (OSU), standardową metodę udostępniania nowych profili Passpoint. Android 10 i nowsze wersje obsługują udostępnianie profili EAP-TTLS za pomocą protokołu SOAP-XML w otwartej sieci OSU ESS.
Obsługiwane funkcje Passpoint R2 wymagają tylko kodu referencyjnego AOSP (nie jest wymagana dodatkowa obsługa sterownika ani oprogramowania sprzętowego). Kod referencyjny AOSP zawiera też domyślną implementację interfejsu Passpoint R2 w aplikacji Ustawienia.
Gdy Android wykryje punkt dostępu Passpoint R2, platforma Androida:
- Wyświetla listę usługodawców reklamowanych przez punkt dostępu w selektorze Wi-Fi (oprócz identyfikatorów SSID).
- Prosi użytkownika o kliknięcie jednego z dostawców usług, aby skonfigurować profil Passpoint.
- Przeprowadza użytkownika przez proces konfiguracji profilu Passpoint.
- Po zakończeniu instaluje wynikowy profil Passpoint.
- Łączy się z siecią Passpoint za pomocą nowo skonfigurowanego 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 lokalnych przepisów:
- Warunki usługi
W niektórych lokalizacjach i miejscach akceptacja warunków jest wymagana prawnie, aby zapewnić dostęp do sieci. Ta funkcja umożliwia zastąpienie niezabezpieczonych portali przechwytujących, które korzystają z otwartych sieci, bezpieczną siecią Passpoint. Gdy wymagana jest akceptacja warunków, użytkownikowi wyświetla się powiadomienie.
Adres URL warunków musi prowadzić do bezpiecznej witryny korzystającej z protokołu HTTPS. Jeśli adres URL wskazuje niebezpieczną witrynę, platforma natychmiast odłącza i blokuje sieć.
- Adres URL informacji o miejscu
Umożliwia operatorom sieci i właścicielom obiektów przekazywanie użytkownikom dodatkowych informacji, takich jak mapy obiektów, katalogi, promocje i kupony. Gdy sieć zostanie połączona, użytkownik zobaczy powiadomienie.
Adres URL informacji o miejscu musi prowadzić do bezpiecznej witryny korzystającej z protokołu HTTPS. Jeśli adres URL prowadzi do niezabezpieczonej witryny, platforma go ignoruje i nie wyświetla powiadomienia.
Inne funkcje protokołu Passpoint
Android 11 wprowadza te funkcje Passpoint, które zwiększają wygodę użytkowników, zmniejszają zużycie energii i poprawiają elastyczność wdrażania.
- Egzekwowanie daty ważności i powiadomienia
- Wymuszanie dat ważności profili pozwala uniknąć automatycznego łączenia się z punktami dostępu z wygasłymi danymi logowania, które na pewno nie zadziała. Zapobiega to wykorzystaniu czasu antenowego oraz oszczędza baterię i przepustowość backendu. Gdy w zasięgu znajdzie się sieć pasująca do profilu użytkownika, a profil wygaśnie, platforma wyświetli powiadomienie.
- Wiele profili z identyczną pełną i jednoznaczną nazwą domeny
- Operatorzy, którzy wdrażają sieci Passpoint i używają wielu identyfikatorów publicznej sieci komórkowej (PLMN), mogą udostępniać wiele profili Passpoint z tym samym w pełni kwalifikowanym adresem domeny (FQDN), po jednym dla każdego identyfikatora PLMN. Są one automatycznie dopasowywane do zainstalowanej karty SIM i używane do łączenia się z siecią.
Android 12 wprowadza te funkcje Passpoint, które zwiększają wygodę użytkowników, zmniejszają zużycie energii i zwiększają elastyczność wdrażania:
- Prefiks tożsamości z dekoracją
- Podczas uwierzytelniania w sieciach z dekoracją prefiksu udekorowany prefiks tożsamości umożliwia operatorom sieci aktualizowanie identyfikatora dostępu do sieci (NAI) w celu wykonywania jawnego routingu przez wiele serwerów proxy w sieci AAA (patrz RFC 7542). Android 12 implementuje tę funkcję zgodnie ze specyfikacją WBA dotyczącą rozszerzeń PPS-MO.
- Obsługa zbliżającego się rozłączenia
- Umożliwia operatorom sieci sygnalizowanie urządzeniu, że usługa jest niedostępna dla danych logowania używanych do uwierzytelniania w sieci przez określony czas (określony za pomocą opóźnienia limitu czasu). Po otrzymaniu tego sygnału urządzenia nie będą próbować ponownie połączyć się z siecią przy użyciu tych samych danych logowania, dopóki nie upłynie czas oczekiwania. Urządzenia, które nie obsługują tej funkcji, mogą wielokrotnie próbować ponownie połączyć się z siecią, gdy usługa jest niedostępna.
Przykłady profili XML OMA-DM PerProviderSubscription-MO
Profil z danymi logowania (nazwa użytkownika i hasło) (EAP-TTLS)
Poniższy przykład przedstawia profil sieci, w której:
- Ustawiono przyjazną nazwę sieci:
Example Network
- Pełna i jednoznaczna nazwa domeny ustawiona na
hotspot.example.net
- Identyfikatory obiektów konsorcjum roamingowego (na potrzeby roamingu)
- Dane logowania z nazwą użytkownika
user
, hasłempassword
zakodowanym w formacie Base64 i domeną ustawioną naexample.net
- Metoda EAP ustawiona na
21
(EAP-TTLS) - Wewnętrzna metoda 2 fazy ustawiona na
MS-CHAP-V2
- Alternatywne nazwy domen AAA ustawiono na
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 danymi logowania certyfikatu cyfrowego (EAP-TLS)
Poniższy przykład przedstawia profil sieci, w której:
- Ustawiono przyjazną nazwę sieci:
GlobalRoaming
- Pełna i jednoznaczna nazwa domeny ustawiona na
globalroaming.net
- Wskaźniki OI konsorcjum roamingowego (w przypadku roamingu)
- Obszar ustawiony na
users.globalroaming.net
- Dane logowania z certyfikatem cyfrowym o określonym odcisku cyfrowym.
<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 logowania SIM (EAP-AKA)
Poniższy przykład przedstawia profil sieci, w której:
- Ustawiono przyjazną nazwę sieci:
Purple Passpoint
- Pełna i jednoznaczna nazwa domeny ustawiona na
wlan.mnc888.mcc999.3gppnetwork.org
- Dane logowania 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>
Zalecenie dotyczące uwierzytelniania
Urządzenia z Androidem 8.x lub Androidem 9 z profilem Passpoint R1 EAP-SIM, EAP-AKA lub EAP-AKA' nie będą automatycznie łączyć się z siecią Passpoint. Ten problem wpływa na użytkowników, operatorów i usługi, ponieważ zmniejsza odciążenie Wi-Fi.
Segment | Wpływ | Wielkość wpływu |
---|---|---|
Operatorzy i dostawcy usług Passpoint | Zwiększone obciążenie sieci komórkowej. | Każdy operator korzystający z protokołu Passpoint R1. |
Użytkownicy | Utracona możliwość automatycznego łączenia się z punktami dostępu Wi-Fi operatora, co powoduje wyższe koszty transmisji danych. | Każdy użytkownik urządzenia, które działa w 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. Te reguły dopasowywania dla protokołów EAP-SIM, EAP-AKA i EAP-AKA' to częściowy zestaw reguł dotyczących błędów 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.
Drugie kryterium zostało zmodyfikowane w Androidzie 8.0:
Else: If the PLMN ID (3GPP Network) matches AND the NAI Realm matches
then the service is a Roaming Service Provider.
Po tej modyfikacji system nie znajdował dopasowania dla wcześniej działających dostawców usług, więc urządzenia Passpoint nie łączyły się automatycznie.
Obejścia
Aby obejść problem ze zmodyfikowanymi kryteriami dopasowania, operatorzy sieci komórkowych i dostawcy usług muszą dodać domenę identyfikatora dostępu do sieci (NAI) do informacji publikowanych przez punkt dostępu Passpoint.
Zalecamy, aby dostawcy usług sieciowych wdrożyli obejście po stronie sieci, aby jak najszybciej rozwiązać ten problem. Obejście problemu po stronie urządzenia zależy od tego, czy producenci OEM pobiorą listę zmian (CL) z AOSP, a następnie zaktualizują urządzenia w terenie.
Poprawka sieci dla operatorów i dostawców usług Passpoint
Obejście problemu po stronie sieci wymaga ponownej konfiguracji sieci w celu dodania elementu ANQP domeny NAI zgodnie z opisem poniżej. Specyfikacja Passpoint nie wymaga elementu ANQP domeny NAI, ale dodanie tej właściwości jest zgodne ze specyfikacją Passpoint, więc implementacje klienta zgodne ze specyfikacją nie powinny ulec uszkodzeniu.
- Dodaj element ANQP domeny NAI.
- Ustaw podpole domeny NAI tak, aby pasowało do pola
Realm
profilu zainstalowanego na urządzeniu. Ustaw następujące informacje na podstawie każdego typu EAP:
- EAP-TTLS: ustaw
EAPMethod(21)
i obsługiwane wewnętrzne typy uwierzytelniania (PAP
,CHAP
,MS-CHAP
lubMS-CHAP-V2
). - EAP-TLS: ustaw wartość
EAPMethod(13)
- EAP-SIM: ustaw
EAPMethod(18)
- EAP-AKA: ustaw wartość
EAPMethod(23)
- EAP-AKA': ustaw wartość
EAPMethod(50)
- EAP-TTLS: ustaw
Poprawka dotycząca urządzenia lub AOSP dla producentów OEM
Aby wdrożyć obejście po stronie urządzenia, producenci OEM muszą wybrać poprawkę CL aosp/718508. Tę poprawkę można zastosować w przypadku tych wersji (nie dotyczy Androida 10 ani nowszego):
- Android 9
- Android 8.x
Gdy poprawka zostanie wybrana, producenci OEM muszą zaktualizować urządzenia w terenie.