Перейти к содержимому

Телефонные профили

Профиль, который сайт читает как телефон

Телефонный шаблон отдаёт странице настоящий аппарат Android, вплоть до модели в подсказках клиента. Дальше окно опускается до этого экрана, касания включены, а указатель становится грубым.
22
аппарата в телефонном списке, и каждый берётся целиком
Целиком
что приносит модель: экран, видеокарту, ядра, шрифты
5
касаний, ровно столько сообщает Chrome на Android
Одна сборка
телефонный профиль рисует тот же настольный движок

Что такое телефонный профиль

Телефонный профиль это обычный профиль ARMANOS на андроидном шаблоне: те же куки, прокси и расписание, что у любого другого. Это не эмулятор и не телефон, стоящий в стойке.

Где проходит граница

Если проверка читает значение, телефонный профиль отвечает как телефон. Если ей нужно, чтобы железо сработало, сняло кадр или приняло сообщение, под профилем нет ничего.

Аппарат приходит целиком

У настольных шаблонов генератору позволено смешивать части: такие машины и правда продаются. Телефон так не собирают, поэтому модель приходит целиком и остаётся с профилем.

  • Экран и плотность пикселей

    Оба идут от модели, а доступная высота равна высоте экрана.

  • Пара видеокарты

    Производитель и название ровно так, как их отдаёт ANGLE на Android.

  • Ядра и память

    Из строки аппарата, теми ступенями, какие отдаёт браузер.

  • Модель

    Chrome убрал её из строки User agent, она живёт в подсказках клиента.

  • Версия системы

    Никогда не старее той, с которой аппарат вышел.

  • Фирменные шрифты

    Основной набор Android плюс шрифты самой оболочки.

Что видит страница

Семя приезжает движку в командной строке и применяется внутри него, до скриптов страницы. Это ответы самого движка, а не значения, дописанные поверх настоящих.

navigator.userAgent
Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Mobile Safari/537.36
navigator.platform
Linux armv8l
screen.width × screen.height
360 × 780
devicePixelRatio
3
navigator.maxTouchPoints
5
userAgentData.platform
Android
userAgentData.model
SM-S911B
userAgentData.mobile
true
userAgentData.formFactors
["Mobile"]
userAgentData.architecture
arm
navigator.hardwareConcurrency
8
navigator.deviceMemory
8
Видеокарта в WebGL
ANGLE (Qualcomm, Adreno (TM) 740, OpenGL ES 3.2)

Один профиль на телефонном шаблоне, запущенный на ARMANOS Browser. Другой профиль вытянет другую строку.

Стартовая страница ARMANOS в телефонном профиле, блок отпечатка раскрыт.
В блоке видно, что именно отдано странице.

Откуда берётся размер окна

Попросите у настольного Chromium окно шириной 360 точек и получите 500: это измерено на собранном движке. Поэтому окно приводят к размеру аппарата по протоколу отладки.

  • Размер окна

    Ключ запуска для первого окна, дальше подмена размеров для каждой страницы и вкладки.

  • Касания

    Ключ запуска на события касания плюс точки из семени.

  • Грубый указатель без наведения

    Настройки, называющие палец и отсутствие мыши.

  • Ориентация экрана

    Выводится из самих размеров, поэтому спорить с ними не может.

  • Мышь становится касанием

    Живой аппарат событий мыши не шлёт, поэтому нажатия идут касаниями.

Если наряд не лёг вам скажут

Наряд приезжает примерно через секунду после запуска, поэтому мобильный профиль сперва открывает стартовую страницу и только потом сайт. Про окно, оставшееся настольным, программа говорит вслух.

Как его создать

Это одно поле в окне профиля, всё остальное работает как у настольного. Под выбором стоит честная оговорка о том, чего эта машина не может.

  1. 1

    Новый профиль, затем шаблон

    Выберите Android · Chrome (телефон) или планшетный шаблон.

  2. 2

    Прочтите оговорку под выбором

    Она говорит, чего эта машина не может для телефона.

  3. 3

    Дайте профилю прокси, как обычно

    Шаблон описывает аппарат, а не дорогу.

  4. 4

    После создания при желании выберите аппарат

    В меню профиля: «Отпечаток > Изменить значения > Аппарат». Экран, плотность, видеокарта, ядра, память и шрифты приедут с ним.

  5. 5

    Запустите

    Сперва стартовая страница, потом окно по аппарату, потом сайт.

Поля связи у телефона

Телефон, у которого числа связи как у ноутбука, спорит сам с собой. Числа подчиняются правилам самого браузера: задержка ступенями по 50 мс, скорость упирается в 10 Мбит/с.

  • Скорость

    Телефон от 1,5 до 8 Мбит/с, рабочий стол от 5 до 10: одинаковые числа и были бы приметой.

  • Задержка

    Телефон от 100 до 300 мс, рабочий стол от 50 до 200.

  • Вид связи по качеству

    Из задержки, по тем же порогам, что стоят в самом движке.

  • Вид связи

    Сотовая или Wi-Fi, и только у телефона: у настольного Chrome такого поля нет.

  • Предельная скорость

    Из таблицы самого движка, никогда не ниже отданной и в пару к виду связи.

Когда телефонный профиль уместен

Берите его там, где сайт ведёт себя с телефоном иначе, или где история аккаунта это история телефона. Не там, где работа упирается в сам аппарат.

Что нужноТелефонный профильНастольный профильНастоящий телефон
Мобильная вёрстка и подсказки клиентаДаНетДа
События касания и грубый указательДаНетДа
Модель в подсказках клиентаДаНет, поле пустоеДа
Окно размером с этот экранДаНетДа
Приложение из магазинаНетНетДа
Камера и датчики аппаратаНетНетДа
Код по SMS на самом аппаратеНетНетДа
Десятки личностей разомДаДаНет

Честный разрыв с железом

У настоящего аппарата есть железо, и здесь железа не прибавляется: число приборов называется, а съёмка не подменяется. Облачный телефонный сервис сдаёт настоящий аппарат, но по одной сессии за раз.

  • Нет телефонной камеры и микрофона

    Число приборов называется, съёмка не подменяется.

  • Нет датчиков

    Ни ускорения, ни поворота, ни освещённости.

  • Нет SMS и нет номера

    Код, отправленный на аппарат, сюда не приходит.

  • Нет магазина приложений

    Всё, что ставится из магазина, остаётся снаружи браузера.

  • Нет телефонных шрифтов

    Roboto и Noto тут нет, и программа говорит об этом.

Чего это не делает

  • Не превращает ваш компьютер в телефон. Нет камеры аппарата, датчиков, SMS и магазина приложений: сайт, который их просит, получит ответ хозяйской машины.
  • Не даёт шрифтов самого телефона. Программа говорит об этом под выбором, и сайт, который меряет шрифты, это видит.
  • Не даёт профилю мобильный адрес в сети: дорогу задаёт прокси, который вы прикрепили.
  • Не решает за сайт, как тот отнесётся к профилю. Профиль сообщает то, что сообщает телефон, а суждение остаётся за площадкой.
  • Три андроидных поля связи требуют ядра браузера, которое объявило, что подменяет их значения. Ядро постарее их не получает.

Проверить в коде

Шаблон несёт аппарат целиком
packages/shared/src/index.js · apps/desktop/test/mobile-really-mobile.js
Окно приводится к аппарату на обоих движках
apps/desktop/src/lib/mobileEmulation.js · apps/desktop/src/lib/mobileWindow.js · apps/desktop/test/mobile-window.js
Мобильные ключи запуска даются только мобильному профилю
apps/desktop/src/lib/forkEngine.js · apps/desktop/test/mobile-window.js
Поля связи достаются только телефонному профилю
packages/shared/src/index.js · apps/desktop/test/поля-связи-телефона.js
Автопроверка отпечатка читает телефонные значения обратно
apps/desktop/src/lib/fpAudit.js · apps/desktop/test/mobile-selftest.js · apps/desktop/test/телефон-живьём.js

Вопросы

Планшетный шаблон считается мобильным?
В подсказках клиента он сообщает, что не мобильный, и слова Mobile в строке User agent у него нет, как у настоящего планшета Android. Окно при этом опускается до планшетного экрана, а страницы раскладываются по мобильным правилам.
Можно перевести старый профиль на телефонный шаблон?
Только если его поколение отпечатка знает такой шаблон. У профиля постарее генератор заморожен, и программа отказывает.
Можно растянуть окно рукой?
Можно, и профиль этого не запомнит: окна шире объявленного экрана не бывает ни у одного аппарата.
Могут ли два профиля получить один аппарат?
Могут, и само по себе это не беда: адрес, куки и история у них разные. Выберите модель рукой, если нужны разные.
Заработает ли внутри мобильное приложение?
Нет. Всё из магазина приложений живёт снаружи браузера, а это браузер.

Проверьте на своей машине

Создайте один профиль на телефонном шаблоне и прочтите, что отдано странице.