Hồ sơ Android chạy trên máy tính thông thường và nhận kết luận Trustworthy từ iphey. Bài học đắt giá là không gán phần cứng điện thoại bằng tay. Vẫn còn một giới hạn của cửa sổ máy tính và sản phẩm hiển thị rõ điều đó.
Tạo hồ sơ di động bằng tùy chọn:
Engine chọn một danh tính di động nhất quán, gồm model, chipset, màn hình và bộ nhớ. Model thiết bị được khai báo trong uaData.model, cũng là nơi các công cụ kiểm tra đọc thông tin này. Bộ kiểm tra đạt 100 trên 100, iphey trả về Trustworthy và không cần điện thoại vật lý.
Phiên bản đầu tiên gán phần cứng điện thoại từ danh sách model do chúng tôi tự duy trì. Danh sách đó đã ghép Pixel 7 với chipset Redmi. Chỉ một chipset sai cũng đủ khiến iphey trả về Unreliable: công cụ phát hiện biết các cặp model và chipset thực tế rõ hơn mọi danh sách viết tay.
Ba hồ sơ di động được tạo liên tiếp trên một máy sạch:
| bề mặt | Kết quả |
|---|---|
| Phông chữ chỉ có trên Windows | không để lộ phông nào; cả mười ba phép kiểm tra đều đạt |
| Thẻ video | khác nhau ở từng hồ sơ |
| Màn hình đã khai báo | khác nhau ở từng hồ sơ |
| Canvas | khác nhau ở từng hồ sơ |
| Số bộ xử lý logic | tám ở mọi hồ sơ, giống các điện thoại tham chiếu |
Phông chữ là phép kiểm tra rõ nhất. Nếu một hồ sơ tự nhận là Pixel nhưng để lộ Calibri hoặc Segoe UI, mâu thuẫn sẽ xuất hiện ngay vì Android không có những phông chữ này. Chúng tôi thử mười ba phông chỉ được cài cùng Windows hoặc Microsoft Office và hồ sơ không để lộ phông nào.
Viewport bố cục của hồ sơ di động rộng hơn màn hình đã khai báo. Engine thay đổi screen và outerWidth, nhưng trình duyệt vẫn chạy trong một cửa sổ thật của hệ điều hành máy tính. Hồ sơ khai báo 360×800, còn viewport bố cục thực tế là 500×731. Chúng tôi đã thử các phương án sau:
| Phương án | Chiều rộng viewport bố cục |
|---|---|
| không điều chỉnh | 500 |
| cửa sổ 412×915 | 500 |
| cửa sổ 300×600 | 500 |
| tỷ lệ render 1,27 | 510 |
| chế độ headless | 478 |
Giới hạn đến từ chiều rộng cửa sổ tối thiểu của Chrome trên máy tính, khoảng 500 pixel CSS. Điện thoại không có viewport rộng như vậy, nên độ lệch không thể biến mất khi trình duyệt vẫn chạy trong cửa sổ máy tính. Việc giả lập innerWidth tách khỏi bố cục thật sẽ không hiệu quả. Media query đầu tiên sẽ đọc được chiều rộng thực và tạo ra hai giá trị mâu thuẫn thay vì một.
Phần có thể cải thiện: sau khi mở, NimbusX điều chỉnh cửa sổ theo chiều cao do chính trang khai báo và CreepJS không còn đánh dấu mục Screen. Phần chênh lệch chiều rộng còn lại được hiển thị trên bảng điều khiển: ô WIN bị làm mờ và phần giải thích nằm dưới bảng. Che giấu không có ý nghĩa vì trang web nhìn thấy độ lệch trước cả người dùng.
Tính nhất quán quan trọng hơn số lượng · Trình kiểm tra liên kết hồ sơ như thế nào