Модель кроссовок New Balance XC-72 продвигает свои классические источники вдохновения еще дальше на неизведанную территорию, с дизайном, изгибающим время, вдохновленным спекулятивным технологическим оптимизмом концепт-каров 1970-х годов.
Три характерных рисунка подошвы и угловатые детали придают знакомой гладкости беговых кроссовок той эпохи агрессивный экспериментальный оттенок. Модель XC-72 – это воплощенное в жизнь будущее, о котором мечтали в прошлом.
В консоли ROG Ally применяется процессор AMD Ryzen Z1 Extreme. Изготовленный по передовому техпроцессу 4 нм, данный чип воплощает микроархитектуру Zen 4 и включает в себя графическое ядро RDNA 3. Поддерживаются технологии масштабирования (FidelityFX Super Resolution и Radeon Super Resolution), благодаря которым консоль ROG Ally способна повышать частоту кадров без ущерба для качества изображения. Устройство может работать в трех выбираемых пользователем режимах с разным соотношением производительности и энергопотребления: тихом (9 Вт), скоростном (15 Вт) и турборежиме (25 Вт при питании от аккумулятора и 30 Вт при питании от сети).
Блок питания EVGA SuperNOVA 1000 P6 обеспечивает очень высокую номинальную мощность: величина этого показателя равна 1 кВт. Источник питания станет отличным выбором для пользователей, которые не привыкли себе отказывать в свободе выбора компьютерных комплектующих.
Samsung Galaxy S22 продолжает поддерживать такой же успех в производительности, с самым маленьким экраном в серии. Samsung Galaxy S22 5G оправдывает ожидания людей, которые хотят использовать флагманские телефоны, благодаря аккумулятору высокой емкости, встроенной памяти и процессору.
Наушники SENNHEISER HD 450BT имеют закрытый акустический тип, что помогает заглушать внешние шумы и наслаждаться прослушиванием музыки. Встроенный микрофон и кнопка ответа вызова позволяют пользоваться аксессуаром при звонках. Тип подключения через Bluetooth помогает сделать наушники мобильными и удобными. Отсоединяемый кабель – дополнительная подключения аксессуара к основному устройству.
Ноутбук HASEE T8-DA9NT оснащен процессором Intel Core i9 12-го поколения, который обеспечивает высокий уровень производительности в любых сценариях использования. Для беспроводного подключения к сети интернет используется модуль Wi-Fi 6. Клавиатура полноразмерная, с цифровым блоком.
Больше выгодных предложений ищите в разделе Пикабу Скидки. Вы сами решаете судьбу скидок, голосуя за топовые варианты. Механика ничем не отличается от Пикабу: есть плюсы, минусы и комментарии. Выводите в Горячее классные предложения или добавляйте свои!
Осторожно: в статье аппаратная диагностика и ремонт, реверс-инжиниринг и патчинг загрузчика, а также программный моддинг noname-устройства, для которого нет вообще никакой информации. В материале куча познавательного контента, даже если вы не фанат такого своеобразного класса устройств, как подделки на брендовые девайсы.
Пожалуй, споры о том, какая мобильная платформа лучше не утихнут никогда. Люди из года в год спорят, какая же мобильная платформа круче: iOS или Android, и какие только аргументы не выдвигают в сторону оппонента. Но что делать, когда хочется усидеть сразу на двух стульях и иметь смартфон в корпусе iPhone, но при этом с привычным Android на борту? Когда душа моддера и любителя красноглазия просто требует чего-то необычного!? Правильно, обратиться к китайским «подвалам» и взять себе дешевую реплику на андроиде! А в моём случае — ещё и Б/У утопленную подделку 14 Pro Max чуть больше, чем за «тыщу» рублей, так ещё и проапгрейдить её! Сегодня будет познавательный и интересный материал, в котором мы с вами: узнаем как диагностировать некоторые аппаратные проблемы с помощью минимального и дешевого оборудования, оживим наше «яблочко» после попадания влаги, «отреверсим» и пропатчим в IDA Pro загрузчик, дабы разрешить загрузку unsigned-ядер, портируем кастомное рекавери и накатим рут, а также узнаем что из себя представляет такой «айфон» в повседневной жизни и как мне вообще взбрело в голову купить китайскую подделку яблочной техники! Материал диковинный, но обещаю — будет интересно! Жду вас под катом :)
❯ Содержание
Ещё каких-то 10-12 лет назад люди собирались в комментариях под различными постами и жарко спорили о том, чья платформа более продвинутая. Чаще всего темой спорой была iPhone vs Android, реже — iPhone vs Windows Phone, а иногда и Android vs Symbian! Но годы идут, на рынке осталось только два крупных игрока, а споры всё не утихают. Стоит только зайти на профильный сайт, зайти в любой пост с новостями и насладится всеми прелестями споров «A vs B». Кто-то поддерживает экосистему Apple, кто-то Android в чистом виде, а кто-то микс фишек Apple в Android окружении от Xiaomi. Некоторые люди даже поддерживают, казалось бы, «неактуальные» платформы как Symbian/WP и среди них есть мои читатели (я и сам очень люблю их и запилил клиенты ВК и YouTube на них, о чём рассказываю в отдельной статье) :)
Но как мои давние читатели наверняка знают, я лично всегда придерживался позиции, что и iOS, и Android, и Symbian, и WP — замечательные системы, которые так или иначе нашли своего пользователя. У меня сейчас есть довольно много смартфонов прошлого десятилетия: полтора года назад я взял себе Galaxy S4 Mini в качестве основного девайса, год назад ходил уже с обычным Galaxy S4, а чуть больше полугода назад читатели подарили мне оригинальные iPhone, от 2G до 5s! И лично я очень люблю iPhone за отличный дизайн, за шуструю iOS, за достойную поддержку старых девайсов, но в тоже время… я ведь и сам вырос на 4pda, пользуясь ультрабюджетными «декспами», «зте» и «флаями»! И тяга к аппаратному и программному моддингу, а также написанию хоумбрю-приложений и прочим фишкам действительно открытых платформ отнюдь не угасла, скорее только наоборот!
Поэтому от нового девайса, с которым я хотел бы походить как с основным, я требовал лишь три вещи:
Дизайн одной из последних моделей iPhone. Пожалуй, кто-то из читателей сочтет это за «тупой понт», но это не совсем так, яблочные дизайны действительно неплохо продуманы и их приятно держать в руках. Важно понимать, что выпуская подделки, заводы откровенно экономят на железе, но при этом стараются достаточно качественно скопировать корпус, используя в конструкции и алюминий, и каленое стекло, а также установить относительно неплохую IPS-матрицу, пусть и низкого разрешения.
Поддержка LTE. Вы удивитесь, но да, всё ещё выходят реплики iPhone, Samsung, да даже Poco и Realme, которые построены на базе чипсета 2015 года — речь, конечно же, о MT6580. И к сожалению, радиотракт этого чипсета не умеет работать с LTE, да и у платформы очень серьезные ограничения на объём ОЗУ (не более 2Гб) и разрешение дисплея (не выше HD) :(
Android на борту. Ну, по этому пункту я всё рассказал выше. При этом для меня не имеет значение версия системы, я не гонюсь за самыми новыми фишками: китайцы уже не ставят Android ниже 6-7 версии (впрочем, это спорно, предположительно ещё попадаются девайсы с 5.1 на борту среди самого дешевого сегмента), а «шестерки» мне вполне достаточно для всех моих применений, в том числе и YouTube с ВКшечкой. Чего там говорить, если мне чего-то действительно не хватает и у меня есть настроение — я сам себе запилю приложение :) Касательно статуса загрузчика я не волнуюсь: в «подвальных» девайсах практически никогда не бывает секьюрбута и нет никакой необходимости патчить загрузчик, что открывает широкие возможности к его моддингу. Эх, вот бы еще исходники ядер выкладывали — но это уже мечты :)
И под эти требования вполне попадают «новодельные» реплики последних моделей iPhone в среднем ценовом сегменте (от 10 000 рублей). Казалось бы, кто-то из читателей спросит: «автор, ты дурак за фуллпрайс брать такой девайс?». И нет, не дурак, поскольку смартфон я купил за 1 500 рублей (и это ещё дорого за его состояние, после покупки мне попался похожий девайс, но уже рабочий, с коробкой и всего за 500 рублей). Девайс продавал человек из СЦ, с которым мы состоим в одной беседе посвященной ретро-телефонам. Смартфон был заявлен как «невключайка» без признаков жизни, в непонятном состоянии, с битой задней крышкой и даже без базовой информации, такой, как о потреблении девайса на зарядки и при зажатой кнопке включения. Ну, как вы и сами понимаете, это настоящее комбо: не подающий признаков жизни китайский смартфон без какой-либо сервисной документации и схемы, который уже побывал в СЦ (потенциально в качестве донора) и наверняка разбирался, да ещё и, как потом оказалось, утопленный в воде… Это же только интереснее! Конечно берем!
Когда девайс приехал ко мне, то ещё до прихода домой я решил оценить его тактильные качества. Конечно, задняя крышка, увы, была подбита, но в целом мне всё равно девайс очень понравился. Как я уже сказал, рама смартфона выполнена из алюминия (за исключением толкателей кнопок), а задняя крышка из стекла с приятной на ощупь текстурой и, конечно же, выгравированным яблочком! Пока дисплей выключен, даже рамки дисплея едва ли дают себя выдать: по сути, определить реплику сможет только человек, который в теме яблочек и сможет опознать фейковые линзы с обратной стороны смартфона. Остальным можно наплести про «китайский дисплей» и т. п. :)
Придя домой, я понял — приключения только начинаются. Отклеив заднюю крышку с помощью фена, выяснилось, что девайс вскрывался: пару винтов потеряли, да и заводскую пломбу содрали.
Замеряем напряжение на АКБ и понимаем, что она села ниже 3.4В (3.5В — это уже 0%) и контроллер питания должен начать зарядку в режиме Precharge (режим «расталкивания» аккумулятора низким током). В режиме Precharge смартфон не показывает никакой индикации зарядки, поэтому остаётся лишь смотреть на потребление девайса и терпеливо ждать включения! Я ещё немного помог устройству раскачать АКБ с помощью внешнего 5В источника и вот, потребление поползло выше 0.2А — а девайс показал яблочко и индикацию зарядки. Неужели он рабочий?
На фото выше не видно, однако смартфон был залит водой и на дисплее появились большие разводы. И попадание воды не прошло просто так: он просто перезагружался на «яблочке», как и настоящий айфон… Вы, читатели, можете пока предположить, что же с девайсом было не так, а я включаю логическое мышление и перехожу к диагностике.
Друзья! Если вам не особо интересны технические детали аппаратного ремонта, или наоборот программного и вы хотели увидеть только обзор на устройство — можете прыгнуть сразу к обзору смартфона. Однако в технической части тоже много всего интересного!
❯ Диагностируем и ремонтируем
Итак, давайте сделаем выводы, которые мы можем понять из существующих симптомов:
Девайс заряжается и у него есть потребление, пусть оно и кажется заниженным, а значит модуль чарджера в контроллере питания, скорее всего, исправен.
Девайс включается и есть изображение яблочка, а значит, есть связь с eMMC и контроллер DDR инициализируется успешно, девайс проходит цепочку загрузки Preloader -> LK и возможно ядро, а также КП нормально реагирует на кнопку включения и включает необходимые выходы LDO для питания всех основных модулей смартфона (процессор и его периферия, чип памяти eMCP, драйвер bias-напряжений дисплея и т. п.). Скорее всего (но это не 100% гарантия), от воды не пострадали ни процессор, ни флэш-память.
Девайс уходит в перезагрузку: здесь причин может быть масса, например, данные на eMMC были повреждены в процессе залития и требуется прошивка, или всё же процессор или его обвязка оказались частично повреждены и при обращении к одному из встроенных периферийных модулей основное вычислительное ядро виснет и встроенный в КП WatchDog при отсутствии сигналов «сердцебиения» считает смартфон зависшим и отправляет его в намеренный ребут, из-за чего мы получаем циклическую перезагрузку. Не исключён вариант, что одна из внешних шин данных оказалась посаженной на массу в следствии КЗ одного из чипов на плате (или их обвязки), из-за чего драйвер, например, вываливает систему в Kernel panic и WatchDog также отправляет систему в ребут…
Наш девайс отказывался зайти в рекавери, что даёт нам понять, что до init дело скорее всего не доходит и девайс стопорится либо на LK (который и показывает анимацию зарядки и первое лого), либо на загрузке ядра. Казалось бы, столько причин, а метод лечения у многих ребят один: сейчас будем делать диагностический прогрев, а потом снимать все чипы и катать их, и если не поможет — глянем обвязку и межслойные обрывы :) Но не стоит так торопиться, ведь в некоторых случаях для диагностики аппаратных проблем можно использовать программные инструменты!
Дело вот в чём: многие китайские производители, особенно это касается ультрадешёвых смартфонов и планшетов, специально оставляют диагностические пятачки, которые дублируют контакты АКБ, если вы случайно сорвали пятачки при пайке аккума, USB, если вы не смогли найти китайский Lightning под замену, а также пятаки UART, иногда даже на несколько каналов, которые позволяют читать логи — диагностическую информацию, которую девайс выводит при загрузке и работе устройства! И порой, подписанные пятачки с включенным дебагом на UART'е полезнее даже полной схемы устройства с бордвью!
На фото отмечены пятаки, дублирующие USB
Ой-ой, а ведь присмотревшись к плате, мы увидим, что кто-то снимал защитный экран и пытался прогревать BT/Wi-Fi/FM комбочип, а также то, что вся плата в подтеках флюса! Да ещё и всю обвязку кто-то посдувал фиг пойми куда, да так, что часть обвязки лежала прямо на пинах комбочипа, а у нас ведь даже схемы нет! Не беда — эти смартфоны построены на базе референсной платы MediaTek и с большой вероятностью, обвязка будет расположена идентично с другими смартфонами на базе этих чипсетов. Но в моем случае, я просто поставил SMD-компоненты туда, где они, очевидно, стояли: резисторы к резисторам, конденсаторы к конденсаторам, а иных элементов у меня пока-что не было. Дабы комбочип точно не вмешался в работу устройства, я временно его сдул с платы:
За качество фото извиняюсь, сделано в попыхах
Я сразу же снял дамп своего устройства и нашел по платформе прелоадера и названию сборки оригинальную прошивку (линк в описании, решил оставить оригинальную ссылку, поскольку автор нормальный и не просит писать ему в мессенджеры за паролем для архива), дабы исключить вероятность косяка со стороны eMMC.
Обратите внимание — я сначала сделал дамп, дабы в случае неподходящей прошивки, прошить свою или собрать из двух прошивок одну! Поскольку мой китайский псевдолайтнинг уже был слегка подуставший (хотя 14 Pro Max ещё относительно свежий девайс) и сигнальные линии D+ D- были просажены, а девайс не определялся ПК, я отключил нижнюю плату АКБ и подпаялся напрямую к дублирующим пятачкам USB: после этого, девайс определился в системе как MTK Preloader, что дало мне возможность прошить официальную прошивку, но ожидаемо, эффекта это не принесло — смартфон всё так же перезагружался на яблочке :(
Затем я решил подпаяться к UART'у и всё же почитать логи подробнее: для этого, нам пригодится UART-преобразователь. Также, в качестве UART-преобразователя подойдет и ESP32, который частенько можно найти в местных радиомагазинах за копейки. Сигнал EN необходимо кинуть на 3.3В - это погрузит МК в RESET и не даст ему влиять на шину!
Подпаиваемся так, как я отметил на фото ниже, не забывая подключить общую массу. Для чтения UART'а я использую putty.exe: выбираем наш COM-порт, ставим бодрейт 921600 и запитываем девайс: теперь у нас побежали логи…
С левой стороны каждой строки лога написано время с момента старта ядра — т. н. «аптайм». На него тоже важно обращать внимание, поскольку он помогает приблизительно понять, на каком визуальном (т. е. то, что мы видим на дисплее) этапе стопорится загрузка. Мой девайс падал в Kernel panic и уходил в перезагрузку на 30 секунде работы… казалось бы, что можно понять из этих логов и как определить неисправность? Вот тут мы фокусируем наше внимание на двух строках:
Первая — это то, что у нас пытается проинициализироваться драйвер stk301x — датчика освещенности и приближения к уху, а вторая, где написано таймаут — означает об ошибке передачи данных на шине I2C к устройству по адресу 47. И чтобы понять суть ошибки, нам нужно иметь базовое понимание о принципах работы самых часто применяемых аппаратных протоколах для общения с другими чипами: SPI, I2C и 8080. В протоколе I2C, у каждого устройства есть собственный адрес, выраженный в 7-битном формате (до 127 адресов на одной шине), в случае stk301x — это 47. Что делает драйвер: он посылает датчику набор команд для инициализации или получения данных, при этом на хост-устройстве (т. е. процессор в нашем случае), сначала формируется состояние СТАРТ и посылает всем устройствам на шине адрес нужного устройства. Затем, нужный чип должен «подхватить» свой адрес и на все байты передаваемых данных формировать статус ПОЛУЧЕНО (ACK). Если статус ACK не получен аппаратным I2C-контроллером процессора телефона за определенное время (допустим, 1 секунда), то он формирует прерывание (или просто изменяет статусный регистр), который обрабатывает драйвер контроллера I2C, который затем и выдает драйверу датчика статус таймаут, а тот в свою очередь выводит ошибку в логи!
Пример с сайта компании Microchip
Всё равно ничего не понятно? И снова мы с вами включаем смекалку. Если устройство жалуется на отсутствие состояния ACK, значит, возможны две причины поломки: обрыв линии SDA/SCL до устройства, либо то, что в следствии попадания воды, одно из периферийных устройств «сгорело» и садит всю шину I2C на массу, из-за чего, например, драйвер другого устройства на шине I2C крашится, а поскольку это драйвер работающий в пространстве ядра — он тащит за собой все! Может быть и такой вариант, что драйвер КП не может посылать сигналы Heartbeat из-за просаженной шины и КП отправляет устройство в ребут.
Сдуваем наш датчик освещенности, включаем девайс и он вроде даже не выключился спустя 30 секунд… проходит пару минут и…
Решил вставить оригинальное фото первого включения, как раз сделанное «по быстрому» и в порыве радости :)
Он включился и работает! Он выжил, хотя разводы воды заметно сказались на состоянии его дисплея! Но поскольку комбочип пока что выпаян, у нас не будет ни Wi-Fi, ни BT, ни GPS, ни радио. Поэтому отключаем девайс и припаиваем обратно комбочип, не забыв восстановить всю обвязку. В финале мы отмываем плату от подтеков флюса (не весь флюс мне удалось нормально вымыть, потому что старый прикипел).
После установки комбочипа и остатков обвязки (а может, это и вся обвязка что была с завода, китайцы ведь часто экономят и на этом — ставят необходимый минимум), я проверил и Wi-Fi, и BT — теперь девайс звонит и без проблем выходит в интернет!
На этом аппаратный ремонт закончен. Поскольку девайс теперь работает, можно приступать к его программному моддингу! Но сначала, нужно отключить проверку подписи образа ядра.
❯ Патчим загрузчик
Как я уже говорил выше, в подобных репликах и просто дешевых noname-девайсах фактически отключен полноценный секьюрбут. Однако конкретно в этой реплике, при сборки прошивки, производитель включил в lk (загрузчик второго уровня) принудительную проверку подписи у образов ядра boot.img и recovery.img, предварительно включив возможность его отключения (т. е. разблокировки загрузчика) в режиме fastboot. На многих девайсах достаточно лишь перезагрузить устройство в режим fastboot и выполнить специальную oem-команду:
adb reboot bootloader fastboot oem unlock
Которая вызовет соответствующий диалог. Но вот незадача: девайс не реагирует на кнопку вверх, из-за чего загрузчик разблокировать не получается. Намеренная подлянка от производителя? Скорее недосмотр при проектировании платы, благо исходный код вторичного загрузчика LK, который и реализовывает режим fastboot сливали в сеть. Давайте изучим его подробнее!
Итак, что мы здесь видим? При запросе разлочки устройства, девайс падает в бесконечный цикл, в котором проверяет и реагирует на одну из соответствующих клавиш — громкость вверх, или кнопка «ОК», которая считается кнопкой вниз. Почему же девайс не определяет кнопку вверх? В чипсете есть отдельный периферийный модуль, который отвечает за обработку Keypad-кнопок клавиатуры. Он же позволяет реализовать полноценную QWERTY-клавиатуру без внешних контроллеров, если того захочет производитель. Однако он оперирует не конкретными логическими уровнями на GPIO (иначе потребовалось бы слишком много пинов и, скорее всего, сильно увеличивать размер чипа), а специальным АЦП (аналогово-цифровой преобразователь) с низким разрешением, который вычисляет, какая кнопка нажата относительно определенного сопротивления. Следовательно, если производитель каким-то образом накосячил при разводке платы и резистором иного номинала «присвоил» громкости вверх другой аппаратный KeyCode-клавиши, функция mtk_detect_key банально не «увидит» нажатие нужной нам кнопки, которая захардкожена как 0x0.
Но почему тогда в Android, кнопка громкости вверх работает нормально?
У Android есть отдельный механизм для маппинга кнопок, называемый keylayout'ами. В текстовом файле хранятся ассоциации числовых KeyCode'ов с константными обозначениями, такими как VOLUME_UP и VOLUME_DOWN например. Поэтому вы без проблем можете поменять их значение местами, или, например, если у вас сломалась кнопка включения, переназначить её на громкость вверх без необходимости кидать перемычку!
Подробнее о подсистеме ввода в Android я рассказывал в другой своей статье.
Как же это поправить? Не собирать же нам lk самим, да и будет ли пропатченный загрузчик работать? И да, будет! Как я уже сказал, в девайсе не включен полноценный секьюрбут с верификацией того, что вы прошиваете через FlashTool в внутреннюю память устройства. Preloader (первичный загрузчик после BootROM) не проверяет ни целостность lk, ни хэш-суммы, просто читает его в 0x0 и передает ему управление… А что это значит? Что мы можем просто пропатчить условие, отвечающее за «громкость вверх», дабы lk считал, что мы все таки нажали эту кнопку! Открываем дизассемблер IDA Pro и наш lk.bin в нём, как обычный binary-файл со смещением 0x0 и ищем те строки, которые встречаются ближе всего к нужному нам условию. В нашем случае, это Start unlock flow.
Как видите, IDA Pro, как самый крутой дизассемблер по моему мнению, уже построил xref'ы (все ссылки на бинарные данные из инструкций) и сразу показывает нам куда обращается тот или иной код. Опана! А вот мы и нашли код функции, которая отвечает за старт анлока загрузчика и проверяет нажатые кнопки. Что же нам с этим делать? Правильно, переключится в режим графа и анализировать код подробнее. Я не так силен в ARM-ассемблере, как x86, но всё же не без помощи ISA-мануала от ARM понял значение всех мнемоник.
Обратите внимание на инструкцию BL — она вызывает подфункцию и сохраняет адрес PC + длина инструкции в стек, дабы продолжить выполнение после возврата из неё. Это и есть вызов нашей функции mtk_detect_key. Оптимизатор сократил код так, что сразу после возврата из функции, её возвращаемое значение оказывается в регистре R4, который программа переносит в регистр R0, а затем сравнивает R0 с нулем. Если R0 оказывается ноль (инструкция BEQ, branch if equal to zero, т. е. кнопка не нажата), программа прыгает к проверке кнопки «вниз», а если нет — то продолжает выполнение кода, который стартует разблокировку загрузчика. Уже смекнули, о чем я? Нам достаточно лишь пропатчить CMP R0, #0, дабы заставить программу считать, будто кнопку мы все таки нажали и перейти к процессу разблокировки!
Обратите внимание, что в #0 (т. е. с решеткой) — это Immediate-значение, которое уже является операндом инструкции, а не загружается, например из регистра, а значит мы можем просто найти это значение в HEX-редакторе и пропатчить его на 1, либо просто NOP'нуть всю инструкцию. Адрес операнда инструкции — 0x1FB0C, поэтому сразу переходим к нему в hex редакторе и просто меняем 0 на 1 и сохраняем:
Прошиваем новый lk.bin с помощью SP Flash Tool, перезагружаемся в fastboot, пишем fastboot oem unlock и… сработало! Смотрим статус разлочки с помощью fastboot oem device-info (unlocked и secure) и видим что девайс действительно разлочен! Теперь смартфон каждое включение будет напоминать нам о том, что мы разлочили загрузчик. Ну разлочили и разлочили, зато теперь у нас полная свобода действий :) Переходим к ответственному действияю — портированию рекавери и накатыванию рута! Но здесь всё уже гораздо проще.
❯ Портируем рекавери и накатываем рут
Поскольку мы с вами уже разблокировали загрузчик, то и без проблем можем грузить что захотим: и LineageOS, и MIUI — всё что уже портировано для этого чипсета на этой версии ядра. Правда не забывайте, что чипсет 64х-битный, множество прошивок — тоже, а китайцы почему-то собрали 32х-битную прошивку — это стоит иметь ввиду при портировании. Если честно, изначально я хотел включить часть с портированием прошивки в основную статью, но опросив читателей понял, что вам не особо комфортно читать статьи 20+ минут длиной, поэтому если вам интересен подробный материал о портировании прошивки без пересборки ядра на нонейм устройствах — проголосуйте в опросе ниже (или маякните в комментариях)!
Начинаем с накатывания «кухни». Я пользуюсь MTK Img Tools, весьма удобный софт. Для его использования, нужно вручную создать папки Pack/Image и Unpack/Image.
Закидываем в папку Unpack/Image родной recovery.img, и тот, который будем портировать — назовем его recoverytwrp.img. Распаковываем их в менюшке Unpack image -> Boot. После распаковки, у нас появятся папки recovery и recoverytwrp в папке Unpack, где мы и будем вести нашу работу. В целом, на MT6753 в нашем случае достаточно лишь перенести родное ядро в тот рекавери, который мы портируем. fstab же трогать не нужно. Делается это легко: просто копируем recovery/kernel/kernel в recoverytwrp/kernel/kernel с заменой и пересобираем образ командой Pack image -> Boot обратно. Собранный образ мы найдем в папке Pack/Image, его можно либо прошить в флэштуле взамен стандартного, либо загрузить прям из фастбута без необходимости прошивать память устройства (это, кстати, ещё один отличный способ грузить Android с MicroSD если флэшка «закончилась»).
fastboot boot recovery.img
Кастомный рекавери загрузился без проблем — а это значит, что нам открыты большие возможности по кастомизации нашего девайса! Берем SuperSU с официального сайта, прошиваем SuperSU.zip с помощью adb sideload и балдеем, теперь с полноценным рут-доступом к устройству и без необходимости патчить Magisk'ом или распаковывать раздел system!
Теперь можно вычистить весь мусор из предустановленных приложений благодаря спец. софту для менеджмента приложений на смартфоне.
❯ Можно ли пользоваться девайсом?
Давайте посмотрим! Девайс из коробки похож на iOS 16, при этом, поскольку такие «айфоны» работают на общей аппаратной платформе, теоретически есть возможность поставить на 12 Pro Max прошивку от, например, 15 Pro Max (с некоторыми изменениями) :)
Функционал системы скопирован достаточно точно. На некоторых репликах особо не заморачиваются и просто чуть изменяют значки на айфоновские, не убирая даже нижнюю панель кнопок. Здесь же все скопировано с настоящей iOS: свайп снизу вверх сворачивает приложение, свайп до центра экрана открывает меню многозадачности, свайп шторки с левой стороны открывает панель нотификаций, а справа — панель управления. И ведь это не просто чужие готовые лаунчеры из условного Play Market, компания-производитель либо аутсорсит копирование некоторых фишек разработчикам на стороне, либо держит свой собственный штат программеров, который, в том числе, занимается сборкой прошивок и портами с рефборды!
В настройках, система гордо называет себя iOS, а модель смартфона — iPhone 14 Pro Max! Но что на практике? CPU-Z говорит о следующих характеристиках:
Тоже не знали, что Apple A16 разрабатывала MediaTek? :)
Более половины характеристик — брехня. Настоящие спецификации девайса следующие:
Процессор: MediaTek MT6753. 8 ядер Cortex-A53, 4 из которых работают на частоте 1.5ГГц, а оставшиеся — на частоте 1.3ГГц. Чипсет выпущен в 2015 году и выполнен по техпроцессу 28Нм, поддерживает до 3Гб ОЗУ.
GPU: Mali T720, преемник легендарного Mali 400. Уже немолодой, но всё ещё кое-что, да может. Vulkan не умеет.
ОЗУ: 3Гб DDR3. Не так много, но в целом пока ещё относительно адекватно.
Флэш-память: хотели 512Гб? Получите 32Гб, а недостаток можно нарастить MicroSD-флэшкой, слот под которую производитель заботливо предусмотрел под крышкой устройства. Это частая практика для китайских айфонов.
Дисплей: с диагональю не наврали, честные 6.7". А вот с разрешением, конечно-же, приукрасили: здесь стоит HD+ IPS матрица с разрешением 720x1540. Не особо высокое разрешение для такой диагонали дисплея, но в остальном дисплей показывает себя адекватно: яркость приемлемая, цвета хорошие, матрица отзывчивая.
В целом, характеристики ближе к ультрабюджетным моделям Realme и Poco. Нельзя сказать, что всё прям очень плохо, но ожидать что он будет работать на уровне флагманов, конечно же, не стоит. Но как оно на практике?
Начинаем с мессенджеров: ВКшечка и Telegram. В качестве клиента ВК, я юзаю исключительно Kate Mobile, который шустро работает даже на 10-летних китайцах на MT6572. Официальный клиент давно не признаю, всё таки при grishka он был лучше :)
Последний официальный клиент телеги работает шустро. Чипсет, конечно, печка ещё та, но посидеть в чатиках, посмотреть видосы и всякое такое можно без каких либо проблем. Главное чтобы память резко не закончилась. WhatsApp здесь тоже работает нормально.
Переходим к видосам. Ни официальный клиент, ни ревансед последних версий нормально здесь работать не будет — официальные клиенты требуют Android 8+. Но разве ж это проблема для нас, когда есть SkyTube? :) Работает шустренько, девайс без проблем держит 720p видосы, а больше и смысла нет.
Как насчет навигации? Google-карты работают адекватно. Всё весьма шустренько, хотя порой просадки FPS всё же бывают. Но я лично предпочитаю выкидывать гаппсы из своих смартфонов и накатывать навигацию по OSM. Что забавно — в девайсе есть собственный клон AppStore'а! И если рескины Google Play в стиле яблочного магазина для меня не удивление, то наличие полноценного бренда CH с эдаким фидбеком у смартфона меня весьма удивило. Я всё ещё помню GooPhone'ы, которые когда-то предоставляли хороший клиентский сервис покупателям своих реплик айфонов, но не думал что эта практика даже сейчас актуальна. Вполне возможно, что CH — это и относительно крупный завод-производитель со своим R&D отделом, поскольку маркировка есть и на межплатном шлейфе, и на АКБ. Эта компания также производит реплики Galaxy S и Note серии, на базе той-же аппаратной платформы.
И переходим, конечно-же, к камере! Самое приложение скопировано 1 в 1 с оригинала, даже есть какие-то панорамные режимы и фишки с цифровым зумом и подобием изменения FOV. Но понятное дело, тест не может быть объективным на 100%: девайс после воды, топился в районе камеры и на фото явно видны засветы. Есть вероятность, что оптика всё же оказалась немного повреждена :(
"Фотосет" из двух наиболее удачных фотографий есть на imgur. Увы, на Пикабу очень большие ограничения на число картинок в одном посте!
Но на скринах всё красиво, а как на деле? Смотрим:
❯ Заключение
В целом, девайс весьма хорош для моих повседневных задач. Работает шустренько, выглядит как айфон как с внешней точки зрения, так и с точки зрения системы, дисплей весьма неплох по качеству, смартфон отлично поддаётся моддингу. Собственно, а почему-бы и нет?
Цель материала была рассказать вам не только о том, на что подобные реплики способны «из коробки», но и об их возможностях моддинга и кастомизации с подробной практической частью, а не на уровне «пойдите туда и сделайте это»! Но учтите, я не рекомендую покупать реплики айфонов, если вы ожидаете от них хорошей работы из коробки и у вас нет желания в них ковыряться. Зато мне очень понравилось с ним возиться и я надеюсь, по итогу было интересно и вам! Пишите своё мнение в комментариях, будет интересно почитать! Также у меня есть канал в телеге, где я публикую бэкстейджи статей, различные посты по тематике аппаратного и программного моддинга, программирования, а также разработки собственного DIY-железа!
Кстати, если у кого-то из читателей есть похожие подделки будучи нерабочими, тормозящими, или окирпиченными и вам не хотелось бы выкидывать их на свалку, а наоборот, отдать их в хорошие руки и увидеть про них статью — пишите мне в Telegram или в комментах! Готов в том числе и купить их. Особенно ищу донора дисплея на китайскую реплику iPhone 11 Pro Max: мой ударник, контроллер дисплея калится и изображения нет :(
Что думаете о девайсе?
Что думаете о покупке его за 10.000 рублей? А за 1.000 рублей?
Материал полезен?
Статья подготовлена при поддержке TimeWeb Cloud. Подписывайтесь на меня и @Timeweb.Cloud, дабы не пропускать новые статьи каждую неделю!
Друзья! Я провел опросы на всех площадках, где публикую статьи и пришел к выводу, что Вам не особо заходят слишком большие и слишком подробные технические материалы. Поэтому сделаем от них небольшой перерыв и в следующий четверг почитаем лонгрид об "альтернативном Apple'водстве" в обзорно-техническом стиле, который вы так любите :) Я расскажу о том, как я купил утопленный и копанный каким-то мастером китайский клон (т.е подделку) 14 Pro Max, подробно и детально расскажу о диагностике некоторых аппаратных проблем программными средствами с минимальным набором оборудования, а также портирую на смартфон кастомное рекавери, накачу рут и выкину весь предустановленный хлам и расскажу какого хрена я вообще решил ходить с китайской копией айфона как с основным смартфоном. Изначально хотел ещё и LineageOS портировать, но потом передумал - статья итак получается достаточно длинная :)
Портал 91mobiles опубликовал CAD-рендеры iPhone 16 Pro, которые демонстрируют уже знакомый дизайн, заметный выступ камеры и новую кнопку — Capture.
Кнопка захвата будет находиться под кнопкой питания и позволит обеспечить лучший контроль над системой камеры. Ожидается, что она будет механической, но с распознаванием касаний. С её помощью можно будет наводить фокус, регулировать зум, а также активировать фото и видеосъемку.
По габаритам iPhone 16 Pro будет чуть больше предшественника: 149,6×71,4×8,4 мм против 146,6×70,6×8,25 мм у iPhone 15 Pro. При этом новинка, по слухам, получит 6,3-дюймовый дисплей вместо привычного 6,1-дюймового.
Кроме того, iPhone 16 Pro может впервые получить телеобъектив с тетрапризмой для зума ×5. Другие обновления системы камер включают сверхширокоугольный модуль на 48 Мп, исключительно для моделей Pro.
Также ожидаются новые цветовые варианты и аккумулятор емкостью чуть больше 3 355 мА·ч.
00:00 Начало 00:29 Илон Маск и суд с OpenAI 02:41 ПК-аксакал восстал из хлама 04:11 Судьба титана Apple 06:19 Будущее ИИ в России 07:42 Звук для любого кармана 08:57 Взлом смартфона без отпечатков пальцев
Давным-давно, в далёкой-далёкой яблочной компании зародилась идея создать собственный процессор для ноутбуков. И вот, спустя годы, Apple презентовала свой десктопный процессор M1.
В этой статье мы сосредоточимся на разборе безопасности процессора M1 от Apple. Компания всегда уделяла значительное внимание информационной безопасности своих устройств, особенно мобильных. Это не значит, что iPhone или iPad нельзя взломать. Нет, можно, конечно, вопрос лишь в цене. Просто цена взлома iOS существенно выше, чем взлома устройств на других ОС.
Но за всё приходится платить. И пользователи Apple платят сполна. Невозможно установить стороннее приложение, кроме как из AppStore, невозможно пользоваться NFC, кроме как через ApplePay, невозможно скачивать сторонние оформления иконок, шрифтов, клавиатур и т. д. Да даже бесполезный в большинстве случаев авиарежим и AirDrop нельзя убрать из панели быстрого доступа. Фактически — это непроницаемый железный занавес, который опустился от Штеттина на Балтике до Триеста на Адриатике.
Пользователи из России уже второй год живут на устройствах, функционал которых был искусственно обрезан. Не работает NFC, нельзя установить (или обновить установленные) основные банковские приложения, Apple даже телеграмм цензурирует. Фактически, телефоны яблочной марки лишились крайне важного для повседневности функционала.
Всё же, вернёмся к Apple M1. Что это такое? Фактически, это существенно улучшенный вариант 5-нм мобильного чипа A14 Bionic, который установлен в линейке смартфонов iPhone 12 и на двух iPad. Его мощность позволила Купертино поставить его в ноутбуки — сначала в MacBook Air, а затем в MacBook Pro — аж в 3-х версиях.
Apple M1 — это не только центральный процессор (CPU), это система из множества чипов, которые находятся под одним колпаком. То есть, система на чипе (system on the chip, SoC). Если в обычных процессорах от Intel и AMD стоит множество универсальных ядер, то в M1, как у наследника энергоэффективных мобильных чипов, сильно фрагментированы ядра и, соответственно, решаемые ими задачи.
Apple М1 — это:
Центральный процессор CPU — главный вычислительный центр, ответственный за большинство ежедневных задач. Выполняет большинство задач компьютера и программ.
Графический процессор GPU — работа с графикой, видео, изображениями и игры, конечно же.
Блок нейронной обработки (Neural processing unit, NPU) — машинное обучение и искусственный интеллект – зона ответственности данного чипа.
Обработчик цифровых сигналов (digital signal processor, DSP) — сложные математические вычисления. Выполняет более сложные математические функции, чем центральный процессор, включая декомпрессию музыкальных файлов.
Блок обработки изображений ISP — думаю, из расшифровки понятно, зачем он нужен.
Кодировщик видео (Video encoder/decoder) — аналогично.
Блок единой памяти (Unified memory) — позволяет модулям чипа взаимодействовать максимально быстро.
Блок безопасности (Secure Enclave) — самое интересное для нас место, скоро перейдём к нему.
Децентрализация позволяет подбирать под каждую задачу отдельное ядро, не задействуя другие части чипа. Помимо внушительной мощности (M1 кладёт на лопатки всех своих синих предков) такая система позволила существенно увеличить время работы того же мака. Показатели автономности выросли на 3-4 часа экрана, очень хороший результат. Также Air стали пассивно охлаждаться — единственный их кулер был убран.
Apple M1 и устройства на нём действительно открыли новую страницу в истории микроэлектроники, можно сказать — совершили революцию. Мощные, не требующие много энергии компьютерные процессоры стали новой фишкой компании. Но давайте чуть глубже зароемся в тот компонент M1 и устройства на его основе и узреем те технологии, которые обеспечивают мощную защиту яблочным устройствам.
❯ Secure Enclave — цитадель чипа M1
Secure Enclave — не новомодное изобретение. Его встраивают в чипы Apple уже давно — с 2013 года яблочные гаджеты постепенно обзаводились этим островком безопасности. Первыми устройствами с ним были iPhone 5S и iPad Air, а уже сейчас он находится на всех без исключения гаджетах Apple. Зачем он нужен и как он работает?
Secure Enclave это фактически компьютер в компьютере, а именно — выделенная защищенная подсистема. Она обеспечивает защиту вашим самым сокровенным тайнам (нет, не фоткам в iCloud) — код-паролю и биометрической информации, которая хранится в отдельном хранилище. Естественно, Secure Enclave шифрует и обычные данные на накопитель, но не так, как для код-пароля и биометрии. Работает он чуть менее, чем постоянно. Вы его используете каждый день, но не замечаете этого. Как он работает?
Приведу простой пример. Есть у нас приложение “Госуслуги”. В нём – куча разной полезной информации для вас и, что самое главное, о вас. Поэтому при настройке приложения оно вам крайне рекомендует задать пароль для входа. Но чтобы не вводить пароль каждый раз, его можно дополнить биометрией —Touch ID/Face ID.
Её регистрация осуществляется при первом включении и настройке устройства пользователем. Датчики считывают вашу биометрию и отправляют её в Secure Enclave. В нём происходит обработка, шифровка и сохранение данных в выделенном хранилище в качестве шаблона. Он, кстати, не является чем-то постоянным и постоянно совершенствуется, каждое новое прикосновение пальца или изменение внешности лица учитывается в существующем шаблоне, развивая его.
Когда вы запускаете приложение, то оно просит вас провести аутентификацию. Touch ID/Face ID её проводит (заменяя ввод пароля), и вы получаете доступ к Госуслугам.
Именно в момент проведения аутентификации Secure Enclave включается в работу — сенсоры отправляют ему считанную биометрию в зашифрованном виде. Secure Enclave дешифровывает её и сверяет с шаблоном, который находится в выделенном хранилище. Если обнаружено сходство — вы получаете доступ к Госуслугам. Если нет — вас просят ввести пароль и заново пройти аутентификацию.
Концептуально безопасность Secure Enсlave построена на двух основных принципах.
Первый— изоляция Secure Enclave от основного процессора телефона. Это две параллельные системы, которые связаны между собой только защищенными каналами связи.
Второй — на Secure Enclave не хранится никакой информации о пользователе (он просто не имеет собственного хранилища). Эта система лишь контролирует поступление и извлечение информации, которая хранится в защищенном энергозависимом хранилище.
А вот как и с помощью чего происходит этот контроль я и предлагаю поговорить ниже. За основу взят материал про Secure Enclave, опубликованный на сайте службы поддержки Apple.
Схема Secure Enclave
Начнём с самого главного — сопроцессора процессора процессора (хе-хе). Он обеспечивает основную вычислительную мощность Secure Enclave, занимаясь управлением всех функций системы.
Его тактовая частота ниже частоты основного чипа, что позволяет блокировать атаки, которые направлены на изменение тактовой частоты процессора и его питания. Также за счёт изоляции от процессора сопроцессору нельзя повредить тем же программным обеспечением, которое может взломать центральный процессор. За счёт этих мер шанс добраться до ваших данных становится практически ничтожным.
Модуль защиты памяти. Смотрите, сам Secure Enclave работает в выделенной области DRAM-памяти (т. е. оперативке). Когда вы запускаете устройство, загрузочное ПЗУ (постоянное запоминающее устройство — энергонезависимое хранилище, как CD-диск, грубо говоря, о нём ниже) генерирует случайный кратковременный ключ защиты памяти для модуля защиты памяти, с помощью которого происходит ваша аутентификация.
Когда Secure Enclave записывает информацию в отдельный блок памяти, модуль защиты зашифровывает выделенный блок. Чтобы получить доступ к зашифрованной информации, модуль защиты должен получить необходимый тег аутентификации, и тогда модуль производит расшифровку блока. Если же тег не совпадает, МЗП передаёт Secure Enclave сообщение об ошибке и дальнейшие операции останавливаются до перезагрузки системы.
Загрузочное ПЗУ. Постоянно запоминающее устройство, где находится постоянный код, задающий аппаратный корень доверия для всего Анклава. Когда устройство включается, ПЗУ генерирует случайный кратковременный ключ, защищающий модуль защиты памяти. Также он шифрует блоки памяти, которые записывает Анклав в свою выделенную область.
Генератор истинных случайных чисел. Его задача создавать случайные криптографические ключи, которые будут использоваться при передаче данных от модуля к модулю.
Ещё одним важным элементом защиты является корневой криптографический ключ уникального идентификатора (UID). Это значение является уникальным для каждого устройства и не связано ни с какими другими ID на устройстве. Они генерируются генератором случайных чисел Secure Enclave на этапе производства, при этом процесс происходит исключительно в Анклаве. Это означает, что никто ни на каком этапе производства и продажи техники не может получить доступ к UID.
Модуль AES Secure Enclave. Это аппаратный блок, который выполняет симметричное дополнительное шифрование на основе шифра AES (один блок данных шифруется в другой посредством ключа шифрования).
Эта разработка предотвращает утечку данных на основе анализа тактовой частоты, статического и динамического анализа питания. То есть, модуль шифрует данные о базовых параметрах работы процессора в данный конкретный момент.
Ключи, используемые AES SE, не видны даже загрузочному ПЗУ Secure Enclave, хоть он и может запрашивать операции по шифровке и дешифровке данных.
Модуль AES. Ага, кроме того, что выше, существует ещё и отдельный AES модуль. Как показано на схемке ниже, он не находится в составе Secure Enclave. Он заключен между энергонезависимой изолированной флеш-памятью NAND и основной системной памятью.
В момент загрузки sepOS (операционка Secure Enclave) создаёт с помощью генератора случайных чисел случайный кратковременный ключ. AES модуль передаёт этот ключ по выделенным проводам, что ограничивает доступ к модулю одним Secure Enclave.
Этот модуль выполняет роль таможни, которая запаковывает и распаковывает ключи для Secure Enclave. Он обладает ключами для расшифровки данных Secure Enclave, но при этом он никогда не предоставляет этот ключ какому бы то ни было программному обеспечению. Его работа, опять же, представлена на схеме.
Акселератор открытого ключа (PKA) — это ещё один аппаратный блок, но уже внутри Secure Enclave, который выполняет криптографические операции. В отличие от модуля AES выше его шифрование — асимметрично.
Также как и AES, он защищает информацию от отслеживания по тактовым частотам процессора. Ключи шифрования видны только РКА и никому более, по аналогии, опять же, с AES.
Чтобы было более понятно различие этих двух систем, разберём разницу между симметричным (AES) и асимметричным (PKA) шифрованием. Более подробно прочитайте в этой статье на Хабре.
Симметричное шифрование в своей работе всегда использует один-единственный ключ, который известен и отправителю, и получателю. Он расшифровывает и шифрует информацию во всех сценариях работы.
Принцип простой как дверь, что даёт ему два плюса — он быстро работает и его создание не является чем-то сложным. Минус также лежит на поверхности — если ключ будет скомпрометирован, то вся информация будет известна обладателю ключа.
Асимметричное шифрование использует другой, более сложный принцип. Отправитель кодирует сообщение при помощи открытого ключа, который был заранее известен от получателя. Закодированное таким образом сообщение принимает адресат, но какую-то информацию он может получить, используя закрытый ключ шифрования, известный только ему.
Самый главный плюс этой системы — максимальная защищенность. Жертвуя временем, мы получаем крайне тяжелую для взлома структуру передачи информации.
В Secure Enclave используется оба этих принципах в схожих по своей сути задачах, но в разных модулях. Причина дублирования, в целом, очевидна — если ключ от модуля AES в Secure Enclave будет скомпрометирован, то им не получится воспользоваться для дальнейшего продвижения через модуль РКА.
Переходим к последним модулям Secure Enclave — шина I2C, защищенное энергонезависимое хранилище и защищенный нейронный модуль, который не представлен на схемах Анклава, так как его, с недавних пор, там тупо нет.
Шина I2C обеспечивает физическое соединение Secure Enclave с защищенным энергозависимым хранилищем с помощью двухканального соединения. Один провод отвечает за передачу данных, другой – за управление этим процессом. Само хранилище представляет собой, грубо говоря, CD-диск, на котором записана определенная информация.
Что там за информация? Там записаны корни всех ключей шифрования данных пользователей, UID, биометрия, данные Apple Pay и самое главное — значение код-пароля. Кроме того, там находится счетчик попыток входа и количество этих самых доступных попыток. По истечению этих попыток (допустим, 10 попыток на айфоне) происходит либо блокировка устройства, либо уничтожение всех данных, которые были защищены код-паролем пользователя.
То есть, в этом хранилище находятся ваши личные данные, а также ключи, которые позволяют расшифровать данные на вашем накопителе, и именно это хранилище и защищает Secure Enclave.
Защищенный нейронный модуль. Он интегрирован в Neural Engine, но связан только с Secure Enclave. На смартфонах и планшетах с Face ID модуль преобразует двумерные изображения и карты глубины лица в математические данные. А они уже по этапу отправляются через Анклав в защищенное хранилище.
После того, как мы познакомились со всеми частями Secure Enclave, я предлагаю чуть ближе рассмотреть процесс поступления и извлечения информации из защищенного хранилища. К сожалению, на сайте Apple я так и не нашёл последовательную цепочку поступления информации в защищенное энергонезависимое хранилище. Поэтому нижеследующие описание этого процесса является лишь моей догадкой, построенной на некоторых фрагментах статьи службы поддержки и здравом смысле.
Поступление информации:
В момент регистрации Face ID/Touch ID датчики сканируют вашу биометрию и направляют её в зашифрованном виде в Secure Enclave.
Прежде чем попасть в Анклав, данные проходят через AES-модуль, который их шифрует.
Зашифрованная вне Secure Enclave биометрия проходит уже через внутреннюю симметричную шифровку аналогичного AES-модуля.
Происходит финальный этап шифрования — асимметричным способом через акселератор открытого ключа.
Наконец, идёт запись шаблона биометрии на защищенное энергонезависимое хранилище.
Извлечение информации, а вернее — сверка шаблона:
В момент прохождения аутентификации Face ID/Touch ID датчики сканируют вашу биометрию и направляют её в зашифрованном виде в Secure Enclave.
Прежде чем попасть в Анклав, данные проходят через AES-модуль, который их шифрует.
Зашифрованная вне Secure Enclave биометрия проходит уже через внутреннюю симметричную шифровку аналогичного AES-модуля. И вот здесь момент, в котором я не уверен, — либо полученная биометрия сверяется сопроцессором Secure Enclave с шаблоном между AES модулем и РКА, либо она сверяется между РКА и защищенным хранилищем. Я больше склоняюсь ко второй версии.
Защищенное хранилище по запросу РКА отправляет шаблон для сверки.
Если совпадения были найдены, то аутентификация считается пройденной, а полученные данные стирается за ненадобностью (кроме случаев, когда они улучшают существующий шаблон).
Шифровка обычной информации на накопитель:
T2 – это один из родителей M1 — по крайне мере, в сфере аппаратной безопасности.
Мы нажимаем на кнопочку «Сохранить» сохраняя нашу красивую презентацию.
Файл с презентацией отправляется в AES модуль вне Secure Enclave и проходит через симметричное шифрование.
Для шифровки данных используется ключ из защищенного хранилища.
Ваша презентация в зашифрованном виде записана на накопитель.
❯ Аппаратное отключение микрофона
Ещё одна интересная аппаратная функция защиты безопасности, про которую мне хотелось рассказать, это аппаратное отключение микрофона при закрытие крышки ноутбука. Оно защищает вас от прослушки, даже если каким-то образом был взломан сам Макбук или Айпад. Впервые функция была реализована на Макбуках с поддержкой сопроцессора Apple T2 (чип безопасности для интеловских маков). Сейчас она применяется на всех современных макбуках и айпадах компании.
Схема реализации
Для работы этой схемы применяются датчики крышки ноутбука, которые фиксируют физическое закрытие крышки (в частности, через датчик угла наклона шарнира). Параметры, заданные в них на производстве, невозможно перепрограммировать или изменить любым другим способом.
После закрытия крышки или чехла проходит буквально 0,5 секунд и система отключает каналы передачи данных между микрофоном и ЦП, либо отключает один из каналов ввода микрофона, которые обеспечивают его работу. То есть, просто-напросто технически отключая микрофон от системы. Опять же, если ваше устройство было взломано — прослушать вас при закрытой книжке будет технически невозможно, так как физического контакта между микрофоном и системой нет.
❯ Резюмируя
Ну как-то так. В основе аппаратной безопасности чипа Apple M1 лежит Secure Enclave. Несмотря на кажущуюся сложность чипа, принцип его работы довольно… Понятен? Зашифрованная информация поступает в Анклав, проходит через ещё два уровня шифровки и записывается в защищенное хранилище. Для хранилища всех остальных данных применяется один уровень шифровки. Если уж совсем упрощать.
Разбирая каждый модуль отдельно, можно просто сдохнуть от количества различных терминов. Но если рассматривать общий принцип защиты информации в Secure Enclave, то можно понять, что Apple ничего сверхсложного не выдумывала.
Аппаратное отключение микрофона является пусть и небольшим, но важным штрихом ко всей картине аппаратной безопасности систем на чипе Apple M1.