Технологии
Дамир Камалетдинов

Маленький компьютер с собственной прошивкой: как устроены Lightning-адаптеры для iOS

Они работают на отдельной ОС, которая даже не хранится в самих устройствах.

Разработчик Лиза Браун рассказала в Твиттере, как устроены Lighting-видеоадаптеры для iOS. Оказалось, что это мини-компьютеры, работающие на собственной прошивке, подгружаемой извне. Браун разобрала одно из устройств и изучила его ПО.

HDMI-видеоадаптер для iOS Фото из Твиттера @nyan_satan

Apple выпускает два Lightning-адаптера для вывода видео: с цифровым HDMI и аналоговым VGA. Как отметила Браун, оба устройства поддерживают вывод видео в разрешении Full HD, но «ужасно» работают. Например, HDMI-переходник на американском сайте Apple покупатели оценивают на 2 из 5 звёзд.

Адаптеры прозвали словом Haywire, и они работают на одном чипе — S5L8747 с серийным номером H9TKNNN2GD. Он представляет собой ARM-процессор с 256 мегабайтами оперативной памяти, но больше о нём почти ничего неизвестно.

Чип легко заметить, если вскрыть пластиковый корпус переходника — это чёрный квадрат на плате Фото из Твиттера @nyan_satan

Как выяснила Браун, адаптеры работают на отдельной ОС, но на самих устройствах ничего не хранится: прошивка каждый раз подгружается с iOS или из сети. Размер системы составляет 25 мегабайт в несжатом виде.

Структура папок чипа Lightning-видеоадаптера Фото из Твиттера @nyan_satan

Прошивка подписана заранее и не требует дополнительной настройки. При этом в отличие от всех устройств, начиная с iOS 5, ПО адаптеров (iBSS) поддерживает режим восстановления с интерактивной оболочкой и используется для загрузки кэша ядра по USB.

Загрузка адаптера в режиме восстановления Фото из Твиттера @nyan_satan

Как рассказала Браун, SecureROM (или Bootrom) устройств можно обмануть с помощью аппаратных «трюков». Обычно это небольшой загрузчик, который запускается первым при включении устройств Apple и работает только в режиме чтения.

Однако, по словам девушки, в случае с видеоадаптерами как минимум у одного человека получилось обойти защиту. Она не смогла получить дамп памяти загрузчика, но по словам её источника, он «очень похож на A6» (чип, который Apple использовала в iPhone 5 и 5c).

Разработчик также отметила, что адаптеры легко можно подключить к компьютерам, так как это, по сути, USB-устройства. Для этого нужно соединить Lightning к материнскому micro-USB-разъёму с помощью нескольких проводов и платы расширения.

Адаптер, подключённый к ПК по USB Фото из Твиттера @nyan_satan

Впервые о необычной особенности видеоадаптеров Apple заговорили в 2013 году. Тогда сотрудники компании Panic заметили, что переходник Lightning-HDMI работает не в Full HD-разрешении, а также выдаёт артефакты и глючит.

Доступные разрешения при подключении видеоадаптера Lightning-HDMI Фото Panic

Артефакты при работе видеоадаптера

Специалисты решили выяснить, с чем это связано и начали изучать, как устроен адаптер. Их первой догадкой было то, что устройство каким-то образом связано с технологией беспроводной передачи данных AirPlay: при дублировании экрана на Apple TV сотрудники Panic замечали похожие артефакты.

Я не имею в виду AirPlay в качестве сетевого протокола, скорее как систему сжатия видео. Адаптер должен каким-то образом устанавливать соединение с iOS-устройством, которое к нему подключено. Он точно не передаёт чистый сигнал с устройства по HDMI, а скорее отображает поток с апскейлом до 1080p.

из блога Panic

В компании также разобрали один из адаптеров и обнаружили внутри ARM-процессор. Сотрудники Panic пришли к выводу, что были правы в догадках и переходник действительно обрабатывает поток с iOS-устройства и отдаёт на выход уже сжатые данные. По их мнению, инженеры Apple пошли на это, потому что Lightning не способен передавать чистое видео.

Разобранный HDMI-адаптер Apple для iOS Фото Panic.com

Один из бывших сотрудников Apple позже предположил, что адаптер работает на «мини-iOS», которая загружается в течение нескольких секунд после подключения к устройству. В Panic пояснили, что это может объяснять задержку до начала работы адаптера.

Плохие новости? Из-за внутреннего стриминга качество оставляет желать лучшего и это не 1080p. Мы жаждем чистого, нетронутого HDMI-выхода.

Хорошие новости? Если кто-то пожалуется, что этот необязательный адаптер стоит 50 долларов, скажите им, что это крошечный компьютер!


из блога Panic

После записи в блоге Panic пользователь под псевдонимом Anonymous Coward («Анонимный трус»), представившийся сотрудником Apple, опубликовал развёрнутый комментарий. Он подтвердил часть догадок сотрудников компании и раскрыл вероятные подробности создания адаптера.

По словам пользователя, ядро прошивки устройства основано на XNU, но это его единственная схожесть с iOS. В ПО нет графического интерфейса и утилит, и оно предназначено только для одной цели — принимать данные от устройства пользователя, декодировать поток и выводить его через A/V-коннекторы.

Там есть набор модулей ядра, которые отвечают за передачу данных низшего уровня и вывод HDMI, но это всё. Я бы хотел сказать больше, но я не просто так публикуюсь от имени «Анонимного труса».

из комментария «Анонимного труса» в блоге Panic

Комментатор подтвердил, что причиной сложности адаптера стало то, что Lightning-разъём не способен передавать HDMI-сигнал в чистом виде по кабелю. По словам Anonymous Coward, в Apple сделали это не для того, чтобы обмануть клиентов. Инженеры намеренно перенесли все «сложности» в адаптер, чтобы избавить владельцев iOS-устройств от проблем из-за «всего, что находится на другом конце Lightning-кабеля».

Этот адаптер существует только потому что Lightning просто не способен передавать «чистый» HDMI-сигнал по кабелю. Lightning это просто последовательный порт.

из комментария «Анонимного труса» в блоге Panic

Комментатор подтвердил, что адаптер связан с AirPlay, потому что она включает в себя набор аппаратных технологий по кодированию в формате h264. У инженеров был к ним доступ, поэтому они задействовали их в адаптере.

При этом, по словам пользователя, благодаря такому решению Apple может сделать Lightning-адаптер для любого разъёма, и для этого не потребуется вносить аппаратные изменения — только изменить ПО. Таким образом компания сможет поддерживать вывод изображения на любое устройство на планете, просто создав для него переходник.

Анонимный комментатор отметил, что несколько человек в команде в курсе о плохом качестве изображения и над этим уже работают, однако пока его считают «приемлемым». Он также пояснил, что так как прошивка загружается извне и находится в оперативной памяти, Apple может вносить изменения в работу адаптеров с каждым релизом iOS.

#apple #соцсети #истории