Тред: поразительный секрет работы Lightning-адаптеров Apple

Артём Баусов avatar | 19
FavoriteLoading В закладки
Тред: поразительный секрет работы Lightning-адаптеров Apple

Пользователь 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 постигла та же судьба, так что появилась возможность его разобрать. Вот так он выглядит без пластикового корпуса

4. Разбираем корпус целиком. Медные контакты представляют собой точки тестирования: некоторые должны быть UART и SWD (оба недоступны через Lightning)

UART — это универсальный асинхронный приёмопередатчик или узел вычислительных устройств, предназначенный для организации связи с другими девайсами.

SWD (Serial Wire Debug) — это интерфейс для отладки и прошивки микроконтроллера.

5. В самом адаптере нет никакой прошивки (ну, кроме SecureROM), поэтому iOS должна каждый раз её загружать самостоятельно

Прошивка достаточно маленькая, весит около 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 не проходит:

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

9. Вы можете легко подключить Haywire к ПК, потому что это USB-устройство

Вам нужна только плата с контактами Lightning, microUSB типа «мама» и несколько соединительных проводов:

10. Схема соединения

GND -> GND
L0p -> D+
L0n -> D-
ID1 (ACC_PWR1) -> VCC

Обратите внимание, что iPhone изначально даёт 3.3 В, но на USB — 5 В. Не уверена, что это хорошая идея, но она сработала. В любом случае, если что-то сломаете, я не виноват.

11. Результат: все работает!

В итоге парню не удалось узнать причину поломки адаптера, но для восстановления его работоспособности потребовалось перезагрузить кэш ядра USB и спаять контакты переходника с microUSB через дополнительную плату.

Но стоит учитывать, что напряжение на Lightning и USB отличается, так что производить пайку можно только на свой страх и риск. Есть шанс, что ваш кабель просто сгорит.

1 Звезд2 Звезды3 Звезды4 Звезды5 Звезд (17 голосов, общий рейтинг: 4.59 из 5)
undefined
iPhones.ru
Это полноценный компьютер внутри кабеля!
Прокомментировать

🙈 Комментарии 19

  1. t-n avatar
    t-n29 июля 2019
    0

    Сегодня будет ios beta ? Интересно !

    Phonerz avatar
    Phonerz29 июля 2019
    1

    @t-n, нет.

    t-n avatar
    t-n29 июля 2019
    0

    @Phonerz, да вышла

    Phonerz avatar
    Phonerz29 июля 2019
    0

    @t-n, ну, часто они это делали во вторник.

    T avatar
    T29 июля 2019
    0

    @t-n, вышла

  2. ZloySega avatar
    ZloySega29 июля 2019
    0

    ого! я думал просто проводочки

    а как обновить его? :)
    хотелось бы что бы с айпада изображение на монитор или телевизор было на весь экран

    ​? avatar
    ​?29 июля 2019
    0

    @ZloySega, оно и так на весь экран, если источник поддерживает. Кино на весь экран, некоторые программы и игры поддерживают полноэкранный режим

    login315 avatar
    login31530 июля 2019
    0

    @​?, там телевизер должен еще уметь. DP (если есть) умеет, а вот HDMI, почему-то, не всегда

  3. iWolf avatar
    iWolf29 июля 2019
    8

    С ума сойти. А потом дятлы орут, что какие то переходники стоят конских денег.
    Спасибо, очень интересная статья.

  4. KVasiliev avatar
    KVasiliev29 июля 2019
    2

    Скоро кто-нибудь линукс накатит на провод)

    pLoskutov avatar
    pLoskutov30 июля 2019
    1

    @KVasiliev, круть это накатить Win95 и DOOM2 запустить

  5. ​? avatar
    ​?29 июля 2019
    0

    У меня USB переходник тоже внезапно умер как-то. Но я просто поменял по гарантии))
    Сейчас у меня айпад про с USB C и я купил простой дешманский переходник на USB чтобы подключать звуковую карту.

  6. nnm1 avatar
    nnm129 июля 2019
    4

    «В итоге парню не удалось узнать причину поломки адаптера» — так вроде ж Лиза Браун кабель ковыряла.

    Никита Горяинов avatar
    4

    Тут оказалось, что Лиза Браун – это парень, а никакая не Лиза. Ещё и русскоговорящий, когда хочет.

    Хотя может это и Лиза, просто считает себя парнем. Или парень, который считает себя Лизой. Короче, мистика.

    Alex6600 avatar
    Alex660030 июля 2019
    0

    Как в фильме “Сплит” :)

  7. zyavrik avatar
    zyavrik30 июля 2019
    0

    “я не виновата”, “парню удалось” – так парень это был или девушка?

    Артём Баусов avatar
    Артём Баусов30 июля 2019
    0

    @zyavrik, парень, поправили)

  8. wa4n59 avatar
    wa4n5930 июля 2019
    0

    т.е. айфон – настолько днище, что ему требуется еще один компьютер для кабеля?

    почему дешевым андроид телефонам достаточно 2 usb разъемов просто соединенных проводами?

  9. walkman00 avatar
    walkman0031 июля 2019
    0

    У меня CCK еще со времен 30-пин. Один адаптер работает через переходник (тот, что для SD), второй нет. Почему – вопрос к Эппл. Ладно бы оба не работали, так ведь один отключила. На старом iPad все работает хорошо…

Вы должны авторизоваться или зарегистрироваться для комментирования.

Нашли орфографическую ошибку в новости?

Выделите ее мышью и нажмите Ctrl+Enter.

Как установить аватар в комментариях?

Ответ вот здесь