'Неведомая паль'
Уважаемые обитатели ресурса, подскажите, что это за поделка, не могу найти инструкцию. Модуль на обороте принадлежит другой реальной модели.
Больше интересует табло сверху(под 12)
Уважаемые обитатели ресурса, подскажите, что это за поделка, не могу найти инструкцию. Модуль на обороте принадлежит другой реальной модели.
Больше интересует табло сверху(под 12)
Пожадничал, взял великоватые кроссовки puma. Дома повнимательней поковырял -- надо допиливать, проще на том же авито и попытаться скинуть.
Повесил объявление -- висить. Потом попались в предложениях такие же кроссовки, но другого размера, с пометкой "оригинал". И таки да, исполнение другое как по декору-надписям, так и по подошве.
ОК, можно и предупредить потенциальных покупателей заранее. Меняем заголовок на "кроссовки реплика puma", В описании также указываем "скорее всего реплика". В итоге что мы получаем? А мы получаем вот это:
Т.о. добавление достоверной информации о товаре напрямую запрещается площадкой, при этом предложения по обуви завалены объявлениями вида "аригинал мамай клинус" с "есть размеры с 10 по 50".
Попилим-подгоним, что ж теперь.
Осторожно: в статье аппаратная диагностика и ремонт, реверс-инжиниринг и патчинг загрузчика, а также программный моддинг 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: мой ударник, контроллер дисплея калится и изображения нет :(
Статья подготовлена при поддержке TimeWeb Cloud. Подписывайтесь на меня и @Timeweb.Cloud, дабы не пропускать новые статьи каждую неделю!
Друзья! Я провел опросы на всех площадках, где публикую статьи и пришел к выводу, что Вам не особо заходят слишком большие и слишком подробные технические материалы. Поэтому сделаем от них небольшой перерыв и в следующий четверг почитаем лонгрид об "альтернативном Apple'водстве" в обзорно-техническом стиле, который вы так любите :) Я расскажу о том, как я купил утопленный и копанный каким-то мастером китайский клон (т.е подделку) 14 Pro Max, подробно и детально расскажу о диагностике некоторых аппаратных проблем программными средствами с минимальным набором оборудования, а также портирую на смартфон кастомное рекавери, накачу рут и выкину весь предустановленный хлам и расскажу какого хрена я вообще решил ходить с китайской копией айфона как с основным смартфоном. Изначально хотел ещё и LineageOS портировать, но потом передумал - статья итак получается достаточно длинная :)
С каких это пор говённые китайские подделки чего либо стали называть словом реплика? Всё авито нахуй завалено этими так называемыми "репликами"!!!
Я понимаю когда, к примеру, фирма Zippo делает реплику своей же зажигалки модели 1950х годов это одно, но когда в объявлении пишут Dr. Marteens, в пункте "бренд" опять пишут Dr. Marteens и в описании нет ни малейшего упоминания что это не оригинал, а только в переписке говорят что это "реплика" то это не "реплика", это ебаная китайская паль!!! Подделка!!! Бесит сука!!!
Планшеты-трансформеры прочно заняли свою нишу в нашей повседневной жизни, потихоньку вытеснив нетбуки. Ведь это очень удобно: захотел физическую клавиатуру и дополнительную АКБ — «прицепился» к док-станции, захотел полежать на диване и полистать Хабр — «отцепил» и пальцем пользуешься устройством. 10 лет назад китайские инженеры подумали: «а почему бы не взять дешевое планшетное железо, сделать гибкий чехол и продавать это в качестве трансформера за 3 копейки?». И таки сделали, а девайс, благодаря цене в 2-3-4 тысячи рублей за новое устройство, стал очень успешным и производился несколько лет! Сегодня у нас будет легендарная подделка, которая лежит в шкафах многих моих читателей: Samsung Galaxy Tab N8000. Мы с вами: вспомним историю появления этих гаджетов, узнаем что у них «под капотом», заменим аккумулятор, получим root и пропатчим систему и узнаем, где можно применить такой смартбук в 2023! И да, максимальный интерес вызовет всего одна фраза: Сюда можно накатить Linux!
Предыстория
Класс планшетов-трансформеров зародился как раз на пике популярности стандатных планшетов-«таблеток». К моменту их появления, люди уже оценили все преимущества подобного форм-фактора и могли выполнять большинство повседневных задач благодаря таким девайсам. Сёрфинг в интернете, работа с документами, чтение книг, соц. сети — всё это уже можно было делать на ранних планшетах без каких либо проблем, а надобность в здоровом и толстом нетбуке потихоньку отпадала. Параллельно процветал и рынок X86 планшетов на Windows, где уже ставились полноценные версии Windows 7, а чуть позже и Windows 8. И поскольку в большинстве устройств уже был реализован USB-OTG (возможность переключения в USB Host и подключения периферии), то инженеры задумались: а почему-бы вкупе с тонкостью планшетов, не сделать относительно недорогие нетбуки с отсоединяемыми дисплеями? Сказано — сделано, именно так появился законодатель в мире планшетов-трансформеров Asus TFPad.
Понемногу набирала обороты концепция предшественников хромбуков — смартбуков (тонких нетбуков на Android, без возможности отсоединения дисплея) и даже Toshiba сделала очень бюджетную модель AC100, которая позиционировалась как эдакий мультимедийный недорогой нетбук на Android, всего лишь за 4.444 рублей!
Но и китайские производители не спали и видели популярность подобных решений, смекнув: а почему бы нам не сделать похожий девайс, только доступный каждому? И ведь идея действительно оказалась неплохой: ребята взяли обычную тряпичную внешнюю клавиатуру для планшетов (которая сама по себе гибкая), вывели на неё MicroUSB выход (предварительно замкнув OTG и массу на самом разъеме), спроектировали 9-дюймовый планшет, взяв под основу стандартное железо для устройств подобного ценового сегмента и начали продавать! А для большей популярности, ребята решили нацепить логотип Samsung и назвать планшет в честь уже имеющейся модели: Galaxy Tab N8000.
Конечно же подобную реплику не поставляли в официальные магазины, в основном их распространяли через TaoBao и AliBaba, где их опт закупали продавцы самых разных стран. И в Россию их тоже везли, причем огромными партиями.
В РФ, подобные планшеты продавались в основном на радиорынках: подходишь ты к ларьку с китайскими айфонами и самсунгами (многие уже и не помнят такого), а там продавец уже развесил новые планшеты и клавиатуры на «витрине» и рассказывает за новый чудо-девайс! И когда продавец оглашал цену: 2-3-4 тысячи рублей, в зависимости от наглости, покупатель удивлялся подобной щедрости китайцев и вполне мог купить подобный девайс, даже
просто «по приколу». Планшеты в магазинах стоили в среднем от 4-5 тысяч рублей и обладали меньшими дисплеями, иногда — более слабым железом и обычно не имели чехла в комплекте.
В определенный момент, эти планшеты стало возможным увидеть во многих местах: ведь люди понимали, что девайс стоит недорого и особо не жалели его. Такой гаджет могли купить ребенку на день рождения/за окончание очередного класса, для базовой работы в офисе, игрушек (даже дешевый планшет умудрялся тянуть околотоповые игры в то время), диагностики авто, или просто сисадмины, чтобы иметь возможность быстро бегать по объектам, не таская тяжелый ноутбук или заметно более дорогой нетбук. Я отчетливо помню те времена, когда они были популярны: ведь я сам был частым посетителем таких радиорынков и засматривался на новинки будучи школяром. И чего я там только не видел: китайские реплики Nokia Lumia (сейчас их активно ищу, очень стильные), Android смартфоны по 2 тыщи рублей, айфоны, аккумуляторы, дешевые наушники, которые ломаются через неделю — во всём этом был свой особый, провинциальный шарм!
Сегодняшний экземпляр мне достался от моего читателя с Хабра с никнеймом mik-mak, который откликнулся на поиск подобного девайса в статье о Asus TFPad. Мы списались с ним, договорились об отправке и через полторы недели я уже получил свой новенький планшет!
Поскольку модель действительно довольно популярная и много у кого может лежать в шкафу, я решил подготовить материал о том, как найти применение такому девайсу в наше время. Фронт работ будет следующим:
1. Замена аккумулятора
2. Получение ROOT прав
3. Фикс DPI на нормальный в build.prop
А применение найдем в следующих моментах:
1. Оценим его работоспособность в интернете, соц. сетях и просмотре видео
2. Попробуем поиграть в игры и протестируем эмуляторы. Хардварная клавиатура — неплохое подспорье для ретро-игр.
3. Потестируем клиенты SSH и VNC
4. Рассмотрим вариант использования устройства в качестве сервера.
Ремонт и моддинг
Гаджет требовал замены аккумулятора, ведь родная держала заряд всего 5 минут! Девайс разбирается очень просто: поддеваем ногтями заднюю крышку и начинаем расщелкивать клипсы, пока крышка не откроется. Не спешим выдирать заднюю крышку: в ней находится динамик. Не потеряйте толкатели кнопок.
Весьма маленький аккумулятор для такого огромного пространства, согласны? И этого действительно хватало, ведь AllWinner славился тем, что был отнюдь не прожорливым чипсетом в своё время. Причем в разных ревизиях ставили разные АКБ: где-то тонкая и длинная, где-то чуть более пухлая и маленькая. Ёмкость конкретно этого элемента мне неизвестна, но полагаю что-то около 2.000мАч. АКБ приклеена, поэтому перед снятием её нужно поддеть пластиком и «пошурудить», поворачивая вправо-влево. Аккумулятор оказался 2014 года выпуска, хотя эти девайсы массово появились в 2012-2013, а значит находились в производстве около 2х лет.
Я взял аккумулятор от довольно свежего планшета, на 3.000мАч. Толщина АКБ особо не имеет значения — пространство под крышкой большое, поэтому можно уместить и два элемента по 3.000мАч, если они у вас есть. Планшет требует только плюс и минус, средний контакт или BSI не нужен. В наличии у меня оказался только толстый двухсторонний скотч, да и тканевого скотча под рукой не было, поэтому приклеил элемент на изоленту. Обязательно синюю, тогда будет лучше держаться! :)
Теперь, самое время взглянуть на чём работал гаджет под капотом. И тут мы видим классический процессор бюджетных планшетов тех лет: AllWinner A13. Это весьма неплохой одноядерный чипсет, без поддержки Wi-Fi/Bluetooth из коробки, известный как сердце некоторых одноплатников Orange Pi. Кроме того, девайс оборудован 512мб ОЗУ и 4гб NAND ПЗУ, плюс место под распайку второй микросхемы памяти, что весьма неплохо.
Компания AllWinner в целом соблюдает GPL, поэтому стал возможен порт Linux на одноплатники, а поскольку хардварно они схожи с планшетами (в том числе и в плане дисплея — это не MIPI, тут не нужна инициализация, просто шлешь пиксели, не забывая стробы синхронизации), то почти сразу Armbian появился и на планшетах этого производителя! Но об этом чуть позже.
Обратите внимание на распаянный отдельно USB Wi-Fi модуль (на чипе Realtek), контроллер тачскрина снизу и контроллер питания AXP сверху. Весьма компактно всё!
Планшет произведен компанией For-Fun, с вот такой маркировкой. Было несколько разных ревизий: дисплеи для всех одинаковы, а вот тачскрины — нет. Несмотря на совместимость, на ранней ревизии, коннектор тачскрина слегка сдвинут и не влезает. Дисплеи здесь 50 pin, 8", 800x480 с TTL интерфейсом. Такой можно воткнуть и в какой-нибудь одноплатник и он там заведется без проблем (возможно придется корректировать тайминги синхронизации), а снятие/замена дисплея не требует расклеивание тачскрина:
А ещё у девайса есть камера. Но она, как вы понимаете, чисто для галочки или для скайпа (в прошлом).
После замены АКБ девайс начал брать в себя зарядку и без проблем включился, однако плотность пикселей вызывала удивление. И так было с завода. Многие люди думали, что у планшета низкое разрешение, но это не так — оно было стандартным для 7-8" таблеток тех лет, а производитель видимо хотел усидеть на двух стульях. Ведь у чехла не было тачпада, а значит управление только с тачскрином и чтобы в режиме нетбука было удобно попадать по кнопкам, решили просто увеличить dpi. Да, костыль, но в целом тоже прикольно.
Устройство работает на базе Android 4.0.4 и на ядре 3.0.4, без возможности апгрейда — но она и ни к чему. Обратите внимание на test-keys — это значит что можно подписать любой update архив тестовым ключом и прошить таким образом root из под recovery, или «сварганить» кастомную прошивку. И что самое приятное — в устройстве с завода есть root доступ к системе из под adb. Никаких программ для контроля, ничего не установлено: пользователь волен распоряжаться системой так, как считает нужным. Для изменения dpi, нам нужно вытащить /system/build.prop. Для этого пишем:
adb pull /system/build.prop
С завода у устройства DPI 160, что для такого дисплея много. Нужно поставить поменьше: я остановился на 120. Попытки увеличить DPI до 200 заканчиваются бутлупом и исключениями в logcat, поэтому редактируйте dpi в разумных пределах. Перемонтируем раздел /system/ в чтения и запись:
adb shell
mount -o remount, rw /system
exit
adb push build.prop /system/
adb reboot
И смотрим на результат.
Если получите бутлуп, то корректируйте dpi из под adb, пока не подберете идеальный для вас!
Ну вот, стало получше, верно?
Теперь девайс гораздо более юзабелен. Но где его можно применить теперь? Смотрим сами:
Находим девайсу применение — Интернет и серфинг.
В прошивку устройства встроена поддержка самых разных 3G модемов. Да-да, ещё 10 лет назад увидеть человека с планшетом и USB-свистком было вполне себе нормально! Причём поддержка не «втихую», а действительно с отдельными пунктами в меню настроек.
Стоковый браузер 4.0.4 уже старичок — ему уже 12 лет. Само собой, он ни на что не способен уже и последний хром для этой версии Android не меняет особо ситуацию. Есть конечно порт свежего хрома на старые версии Android, но на бюджетниках он работает, прямо скажем, не очень.
Зато Opera Mini летает! Opera регулярно обновляет софт на серверах Opera Mini, поэтому проблем с стандартами особо нет. Однако мы лишаемся JS (не полностью, но интерактива не будет вообще), увы, хотя почитать википедию или полистать хабр — это без проблем.
Насчет мессенджеров — то по сути, остался ВК. Telegram на 4.0.4 уже не работает, ватсапп работает, но с костылями. Увы и ах, но потреблять контент всё равно можно.
А вот что продолжает работать отлично — так это клиент почты! Только не забываем галку «принимать все сертификаты». Пуши прилетают, почтовый клиент удобный в связке с хардварной клавиатурой — так почему бы и нет?
Игры
А тут у нас два потенциальных применения: подогнать такой ништяк дитю, или приспособить такой гаджет для себя! И здесь с этим всё неплохо. В качестве GPU, здесь используется одноядерный Mali400, который без проблем поддерживает большинство старых игр. На таком девайсе есть во что поиграть, в том числе и эмуляторы!
Вероятно кто-то спросит: так старые игры не поддерживают ни клавиатуру, ни дпад. И будут не правы: Большинство смартфонов в 20092-2010 году комплектовались трекболлами, которые в системы опознаются как DPAD. Как DPAD распознаются и стрелки клавиатуры — по итогу в часть игр мы сможем поиграть обычными кнопками!
И в нативные игры тут можно поиграть без проблем. Аркады идут замечательно, некоторые 3D игрушки тоже идут неплохо. На таком же железе я когда-то даже в GTA 3 играл :)
Как вариант — ещё раз пробежать «кваку»!
Но и с эмуляторами всё хорошо. 8-битки, 16-битки идут здесь замечательно.Почему бы и не поиграть?
Сойдёт ли в качестве портативного тонкого клиента?
Да, конечно же! Тут у нас есть и SSH, и RDP, и VNC. Подключится к удаленному серверу и что-то настроить не составит труда. Клиентов под Android масса.
В целом, можно девайс применить и как сервер: например, развернуть SAMBA диск, FTP сервер, HTTP сервер для домашней страницы. Про различные серверы на Android я писал вот в этой статье.
А Linux?
Для AllWinner A10 уже есть готовые образы с Linux. Конечно большинство из них armv6, что несколько ограничивает нас в софте из репозиториев, но найти кое-что можно. Самое приятное — простота настройки, по сути, большинство дистрибутивов достаточно лишь записать на флэшку.
Эти дистрибутивы совместимы почти со всеми устройствами на A10, но если вам нужен вывод на дисплей — то все они требуют настройки аналога dtb от AllWinner — script.bin. Необходимо будет пропатчить этот файл (lcd_used) и включить поддержку TTL дисплеев, поскольку большинство дистрибутивов ориентируется на HDMI, которого в конкретно моей ревизии нет (но возможно есть в «белой»).
Но поскольку моя ревизия на A13, на которой uImage от A10, очевидно, не запускается, то нам придется собирать ядро ручками. А поскольку сообщество активно поддерживает репозиторий sunxi, то мы можем собрать свой uImage и без проблем запустить Linux на нём.
Заключение
Китайцам удалось сделать неплохую альтернативу планшетам-трансформерам за совсем небольшие деньги. И в целом, этот девайс был вполне неплохой покупкой на свое время, ведь в 2012-2013 году планшеты были далеко не у всех, а это был неплохой способ их попробовать. Для моддеров здесь тоже открывалось кучу возможностей для фантазии: ROOT из коробки, открытое ядро и даже какие-то кастомные прошивки позволяли сделать из такого девайса самые разные штуки, от умных часов на тумбочке, до того же сервера.
Я решил запилить эту статью т.к знаю, что у многих из вас подобный девайс всё ещё может пылиться в шкафу на полке и дожидаться своего часа, а кто-то возможно уже даже выкинул. Но ведь если девайс всё ещё может послушить для каких-то целей, значит его место явно не на мусорке, верно? А вы как считаете?
Прочитал бегло первый раз и не сразу раскусил
Leopadr, Abrasm и Himasr