Пользователь Twitter с ником @nyan_satan рассказал о работе Lightning-видеоадаптеров от Apple. Они не так просты, как кажутся.
По сути, внутри обычного кабеля прячется полноценный мини-компьютер, у которого есть процессор, память и даже своя операционная система. То есть эти адаптеры думают самостоятельно, потому и стоят бешеных денег.
1. Первый тип: Lightning Digital AV Adapter (b137ap/iAccy1,1)
Эти адаптеры передают информацию с Lightning на HDMI. Поддерживается видео и аудио.
2. Второй тип: Lightning to VGA Adapter (b165ap/iAccy1,2)
Конкретно этот адаптер передаёт только видео.
Оба указанных выше переходника поддерживают видео до 1080p и используют одинаковый SOC (System On Chip) — S5L8747. Номер микросхемы: H9TKNNN2GD. В ней 256 МБ оперативной памяти.
К сожалению, они ужасного качества. Автор треда заметил, что на сайте Apple у аксессуара всего 2 звезды из 5. Пользователю тоже не повезло, адаптер за $50 внезапно перестал работать. Ниже продолжается тред от лица разработчика:
3. Мой b137 постигла та же судьба, так что появилась возможность его разобрать. Вот так он выглядит без пластикового корпуса
My b137 met the same faith, so we can disassemble it. Here is how it looks like without its plastic closure: pic.twitter.com/6ZCrJQUh9C
— Lisa Braun (@nyan_satan) July 27, 2019
4. Разбираем корпус целиком. Медные контакты представляют собой точки тестирования: некоторые должны быть UART и SWD (оба недоступны через Lightning)
Let’s destroy this metal shell with pliers
These copper dots are test points – some of them must be UART and SWD (both are unavailable over Lightning): pic.twitter.com/S9UhYEFXVZ
— Lisa Braun (@nyan_satan) July 27, 2019
UART — это универсальный асинхронный приёмопередатчик или узел вычислительных устройств, предназначенный для организации связи с другими девайсами.
SWD (Serial Wire Debug) — это интерфейс для отладки и прошивки микроконтроллера.
5. В самом адаптере нет никакой прошивки (ну, кроме SecureROM), поэтому iOS должна каждый раз её загружать самостоятельно
Haywire itself doesn’t store any firmware (well, except for SecureROM), so iOS has to upload it every time. Firmware bundle for it is very tiny, around 25MB uncompressed. Shipped as preinstalled asset with iOS and/or can be downloaded. That’s how its folder structure looks like: pic.twitter.com/0TS0T0Djm0
— Lisa Braun (@nyan_satan) July 27, 2019
Прошивка достаточно маленькая, весит около 25 МБ в несжатом виде. Поставляется как предустановленный ресурс с iOS, и её можно загрузить. Вот структура папок:
6. Прошивка предварительно подписана и не требует никакой персонализации
Уникальный зашифрованный код APTicket хотя и используется, но всё же статичен, то есть не привязан ни к какой системе защиты ECID и однократно используемому числу nonce.
В отличие от всех других устройств, начиная с iOS 5, в эпизодической сети iBSS для видеоадаптеров есть режим Recovery с интерактивной оболочкой. Он нужен для загрузки кэша ядра по USB (вместе с древом устройств DeviceTree и ramdisk, разумеется).
ramdisk — это технология, позволяющая создать обычный диск в оперативной памяти.
Интересная информация о программном обеспечении на ramdisk здесь.
7. У Image3 в iBSS странный, ранее неизвестный тег «RAND», содержащий 64-разрядное целое число и некоторое наполнение
Я не смогла найти, что означает этот тег, даже в исходном коде загрузчика iBoot. Кроме того, у него всегда только один KBAG (формат защищённых файлов).
IMG3 (Image3) — это формат файлов, используемый для доступа iOS к системе устройства.
Карта распределения памяти:
0x20000000-0x20020000 – ROM (128 KB)
0x22000000-0x22020000 – SRAM (128 KB) (iBSS работает отсюда)
0x8000000-0x18000000 – SDRAM (256 MB)
0x08000000-0x0B000000 – Область загрузки (48 MB)
0x0B000000-0x0DF00000 – Ядро (47 MB)
0x0DF00000-0x0E000000 – Дерево устройств (1 MB)
0x0E000000-0x11000000 – Ramdisk (48 MB)
0x11000000-0x17F00000 – Куча (111 MB)
0x17F00000-0x17FFC000 – iBoot (не используется) (1008 kB)
0x17FFC000-0x18000000 – Panic (16kB)
Его SecureROM (iBoot-1413.8 в последней версии) сбрасывается с помощью аппаратных обходов. По крайней мере, у одного человека это получилось. Я попросила у него дамп, но получила отказ по очевидной причине. По его словам, ROM очень похожа на аналогичную в процессоре A6.
8. Согласно утёкшим исходникам iBoot, в Haywire используется флэш-память SPI NOR
Она есть в коммерческих версиях, но, похоже, не отформатирована, поскольку команда saveenv в iBoot не проходит:
According to the leaked iBoot source code, Haywire has SPI NOR, but even if production ones actually have it, it doesn’t seem to be formatted, because “saveenv” iBoot commands fails pic.twitter.com/1IstXIlmIp
— Lisa Braun (@nyan_satan) July 27, 2019
Любая модификация переменных окружения хранится только в энергозависимой памяти и сохраняется в флеш-память после выполнения команды saveenv.
9. Вы можете легко подключить Haywire к ПК, потому что это USB-устройство
Вам нужна только плата с контактами Lightning, microUSB типа «мама» и несколько соединительных проводов:
You can easily connect Haywire to PC because it’s basically an USB device. All you need to get to accomplish is Lightning and micro-USB female breakout boards and few connecting wires: pic.twitter.com/g5PBOYjJzs
— Lisa Braun (@nyan_satan) July 27, 2019
10. Схема соединения
GND -> GND
L0p -> D+
L0n -> D-
ID1 (ACC_PWR1) -> VCC
Обратите внимание, что iPhone изначально даёт 3.3 В, но на USB — 5 В. Не уверена, что это хорошая идея, но она сработала. В любом случае, если что-то сломаете, я не виноват.
Scheme of connection:
GND -> GND
L0p -> D+
L0n -> D-
ID1 (ACC_PWR1) -> VCCPlease note that iPhone gives it 3.3V originally, but USB has 5V. Not sure if it’s a good idea, but it works. Anyway don't blame me if you break something pic.twitter.com/IppKapYMgj
— Lisa Braun (@nyan_satan) July 27, 2019
11. Результат: все работает!
В итоге парню не удалось узнать причину поломки адаптера, но для восстановления его работоспособности потребовалось перезагрузить кэш ядра USB и спаять контакты переходника с microUSB через дополнительную плату.
Но стоит учитывать, что напряжение на Lightning и USB отличается, так что производить пайку можно только на свой страх и риск. Есть шанс, что ваш кабель просто сгорит.
19 комментариев
Форум →Сегодня будет ios beta ? Интересно !
@t-n, нет.
@Phonerz, да вышла
@t-n, ну, часто они это делали во вторник.
@t-n, вышла
ого! я думал просто проводочки
а как обновить его? :)
хотелось бы что бы с айпада изображение на монитор или телевизор было на весь экран
@ZloySega, оно и так на весь экран, если источник поддерживает. Кино на весь экран, некоторые программы и игры поддерживают полноэкранный режим
@?, там телевизер должен еще уметь. DP (если есть) умеет, а вот HDMI, почему-то, не всегда
С ума сойти. А потом дятлы орут, что какие то переходники стоят конских денег.
Спасибо, очень интересная статья.
Скоро кто-нибудь линукс накатит на провод)
@KVasiliev, круть это накатить Win95 и DOOM2 запустить
У меня USB переходник тоже внезапно умер как-то. Но я просто поменял по гарантии))
Сейчас у меня айпад про с USB C и я купил простой дешманский переходник на USB чтобы подключать звуковую карту.
«В итоге парню не удалось узнать причину поломки адаптера» — так вроде ж Лиза Браун кабель ковыряла.
Тут оказалось, что Лиза Браун – это парень, а никакая не Лиза. Ещё и русскоговорящий, когда хочет.
Хотя может это и Лиза, просто считает себя парнем. Или парень, который считает себя Лизой. Короче, мистика.
Как в фильме “Сплит” :)
“я не виновата”, “парню удалось” – так парень это был или девушка?
@zyavrik, парень, поправили)
т.е. айфон – настолько днище, что ему требуется еще один компьютер для кабеля?
почему дешевым андроид телефонам достаточно 2 usb разъемов просто соединенных проводами?
У меня CCK еще со времен 30-пин. Один адаптер работает через переходник (тот, что для SD), второй нет. Почему – вопрос к Эппл. Ладно бы оба не работали, так ведь один отключила. На старом iPad все работает хорошо…
Нашли орфографическую ошибку в новости?
Выделите ее мышью и нажмите Ctrl+Enter.Как активировать системную задержку для установки профиля в iOS 17.3 и новее
Пропала функция “Позже” на заблокированном экране iOS 10. Как вернуть?
Как просматривать старые версии текстовых документов на Mac
Что делать, если Safari на iPhone не может подключиться к сети
Как сбросить Apple Watch без iPhone, если забыли пароль разблокировки
Как отменить подписку Apple Arcade
Как настроить синхронизацию контактов и заметок между iCloud и Google?
Как удалять письма свайпом в приложении Почта на iPhone