Profil Androida działa na zwykłym komputerze i otrzymuje od iphey werdykt Trustworthy. Kosztowna lekcja polegała na tym, aby nie przypisywać ręcznie sprzętu telefonu. Pozostaje jedno ograniczenie okna komputerowego, które pokazujemy jawnie.
Profil mobilny tworzy się z opcją:
Silnik wybiera spójną mobilną tożsamość, obejmującą model, chipset, ekran i pamięć. Model urządzenia jest podawany w uaData.model; właśnie stamtąd odczytują go narzędzia kontrolne. Zestaw testów uzyskuje 100 na 100, a iphey zwraca Trustworthy. Fizyczny telefon nie jest potrzebny.
Pierwsza wersja przypisywała sprzęt telefonu na podstawie naszej listy modeli. Lista połączyła Pixel 7 z chipsetem Redmi. Jeden błędny chipset wystarczył, aby iphey zwrócił Unreliable: narzędzia znają prawdziwe zestawienia modeli i chipsetów lepiej niż jakikolwiek ręcznie prowadzony katalog.
Trzy profile mobilne utworzone kolejno na czystym komputerze:
| Powierzchnia | Wynik |
|---|---|
| Czcionki dostępne tylko w Windows | żadna nie jest widoczna; wszystkie trzynaście testów zaliczono |
| Karta graficzna | inna w każdym profilu |
| Zgłaszany ekran | inny w każdym profilu |
| Canvas | inny w każdym profilu |
| Liczba procesorów logicznych | osiem w każdym profilu, jak w telefonach referencyjnych |
Czcionki dają najbardziej jednoznaczny test. Gdyby profil podający się za Pixel ujawnił Calibri lub Segoe UI, sprzeczność byłaby natychmiastowa: Android nie zawiera tych czcionek. Sprawdziliśmy trzynaście krojów instalowanych wyłącznie z Windows lub Microsoft Office i profil nie ujawnił żadnego z nich.
Viewport układu profilu mobilnego jest szerszy niż zgłaszany ekran. Silnik zmienia screen i outerWidth, ale przeglądarka nadal działa w prawdziwym oknie systemu komputerowego. Profil zgłasza 360×800, podczas gdy viewport układu ma 500×731. Sprawdziliśmy następujące podejścia:
| Podejście | Szerokość viewportu układu |
|---|---|
| bez zmian | 500 |
| okno 412×915 | 500 |
| okno 300×600 | 500 |
| skala renderowania 1,27 | 510 |
| tryb headless | 478 |
Ograniczeniem jest minimalna szerokość okna Chrome w systemie komputerowym, około 500 pikseli CSS. Telefony nie używają tak szerokiego viewportu, więc różnicy nie da się usunąć, dopóki przeglądarka działa w oknie komputerowym. Podrobienie innerWidth niezależnie od prawdziwego układu nie zadziała. Pierwsze zapytanie media query ujawni rzeczywistą szerokość i utworzy dwie sprzeczne wartości zamiast jednej.
Co udało się poprawić: po uruchomieniu NimbusX dopasowuje okno do wysokości zgłoszonej przez stronę i CreepJS nie oznacza już sekcji Screen. Pozostała różnica szerokości jest widoczna w panelu: komórka WIN zostaje wygaszona, a wyjaśnienie znajduje się pod tabelą. Ukrywanie jej nie miałoby sensu, bo serwis widzi rozbieżność wcześniej niż użytkownik.
Spójność liczy się bardziej niż liczba · Jak testy odcisku łączą profile