Маленький компьютер с собственной прошивкой: как устроены 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.
В компании также разобрали один из адаптеров и обнаружили внутри ARM-процессор. Сотрудники Panic пришли к выводу, что были правы в догадках и переходник действительно обрабатывает поток с iOS-устройства и отдаёт на выход уже сжатые данные. По их мнению, инженеры Apple пошли на это, потому что Lightning не способен передавать чистое видео.
Разобранный HDMI-адаптер Apple для iOS Фото Panic.com
Один из бывших сотрудников Apple позже предположил, что адаптер работает на «мини-iOS», которая загружается в течение нескольких секунд после подключения к устройству. В Panic пояснили, что это может объяснять задержку до начала работы адаптера.
Плохие новости? Из-за внутреннего стриминга качество оставляет желать лучшего и это не 1080p. Мы жаждем чистого, нетронутого HDMI-выхода.
Хорошие новости? Если кто-то пожалуется, что этот необязательный адаптер стоит 50 долларов, скажите им, что это крошечный компьютер!
После записи в блоге Panic пользователь под псевдонимом Anonymous Coward («Анонимный трус»), представившийся сотрудником Apple, опубликовал развёрнутый комментарий. Он подтвердил часть догадок сотрудников компании и раскрыл вероятные подробности создания адаптера.
По словам пользователя, ядро прошивки устройства основано на XNU, но это его единственная схожесть с iOS. В ПО нет графического интерфейса и утилит, и оно предназначено только для одной цели — принимать данные от устройства пользователя, декодировать поток и выводить его через A/V-коннекторы.
Там есть набор модулей ядра, которые отвечают за передачу данных низшего уровня и вывод HDMI, но это всё. Я бы хотел сказать больше, но я не просто так публикуюсь от имени «Анонимного труса».
Комментатор подтвердил, что причиной сложности адаптера стало то, что Lightning-разъём не способен передавать HDMI-сигнал в чистом виде по кабелю. По словам Anonymous Coward, в Apple сделали это не для того, чтобы обмануть клиентов. Инженеры намеренно перенесли все «сложности» в адаптер, чтобы избавить владельцев iOS-устройств от проблем из-за «всего, что находится на другом конце Lightning-кабеля».
Этот адаптер существует только потому что Lightning просто не способен передавать «чистый» HDMI-сигнал по кабелю. Lightning это просто последовательный порт.
Комментатор подтвердил, что адаптер связан с AirPlay, потому что она включает в себя набор аппаратных технологий по кодированию в формате h264. У инженеров был к ним доступ, поэтому они задействовали их в адаптере.
При этом, по словам пользователя, благодаря такому решению Apple может сделать Lightning-адаптер для любого разъёма, и для этого не потребуется вносить аппаратные изменения — только изменить ПО. Таким образом компания сможет поддерживать вывод изображения на любое устройство на планете, просто создав для него переходник.
Анонимный комментатор отметил, что несколько человек в команде в курсе о плохом качестве изображения и над этим уже работают, однако пока его считают «приемлемым». Он также пояснил, что так как прошивка загружается извне и находится в оперативной памяти, Apple может вносить изменения в работу адаптеров с каждым релизом iOS.
#apple #соцсети #истории