Конкретно этот Xperia Play прошёл огонь и воду: у него физически отсутствовала кнопка включения и толкатель (пропатчил систему, дабы загружалась от подключения зарядки как айфон), сгорел усилитель WCDMA (сдул, замены не нашлось, 3G нема, но 2G остался), умер шлейф (у меня был запасной), у него вообще не было винтов (крутился и не раз) и механизм был расхлябан до ужаса. Но мне удалось его поднять и он все еще жив и работает :) за 500 рублей шик
Несмотря на незаурядное название, наверняка многие олдовые читатели моего блога будут рады видеть статью в «старом» формате с оживлением и попыткой использования чего-то очень дешевого, грязного и нерабочего. В процессе подготовки подробного материала о том, как работали 2D игры на телефонах из прошлого, я не терял времени и искал различные интересные девайсы на онлайн-барахолках «за копейки». Так уж получилось, что на моей карте осталось 60 рублей, ещё 250 рублей задонатил читатель и я увидел её: Android-игровую консоль «на запчасти», которую мне удалось забрать всего за 300 рублей. Сегодня мы с вами: поговорим, есть ли смысл брать дешевые консоли на Android, во всех подробностях отремонтируем и отреставрируем нерабочий, грязный девайс «из подвала» и проведем бенчмарки эмуляторов, дабы понять — реально ли получить игровую консоль по цене шаурмы. Интересно? Тогда жду вас под катом!
❯ Предисловие
Друзья! Если вы хотите не только читать, но и смотреть, то для этой статьи доступна видео-версия. А те, кто любят читать текст - листают вниз!
Пожалуй, тематика портативного гейминга была актуальна всегда. Ещё в нулевых, многие мои читатели наверняка уже играли на своей личной игровой консоли: будь это тетрис, полноценная PSP, а то и редкая в СНГ Nintendo DS! С резким падением цены на дисплеи и относительно мощные чипсеты, китайские производители начали делать огромное количество своих собственных консолей. Но понятное дело, что в одиночку запускать собственную платформу без игровой библиотеки смысла нет и поэтому китайские вендоры решили поступить проще всего: они портировали эмуляторы NES, Sega Mega Drive и иных популярных консолей из прошлого и просто устанавливали пиратские ромы в подобные устройства. Одной из самых популярных ретро-консолей, которая в своё время произвело фурор на рынке портативного гейминга была известная в узких кругах Dingoo A320, которая стоила копейки для того функционала, который она предлагала (менее 100$ на релизе в 2009 году).
Та самая Dingoo A320 в форме кирпичика
Казалось бы, чем же могла быть интересна самая обычная, «стандартная» дешевая игровая приставка с кучей ретро-игр? И ответ прост: тем, что ОС устройства поддерживала запуск сторонних приложений, а производитель умудрился поделится (или слить, обычно такие вещи под NDA разработчика чипсета) исходный код прошивки устройства и SDK для разработки нативных программ для этой консоли. Стоит ли говорить о том, что энтузиасты сразу принялись портировать популярнейшие игры с открытыми исходниками и множество эмуляторов? Но настоящий успех к этой консоли пришёл лишь спустя год, когда энтузиасты портировали… полноценный Linux на это устройство и библиотеку SDL1.2, дав возможность запускать вообще любой софт, собранный под MIPS для Linux. Конечно-же, на волне популярности со временем у консоли появились и свои клоны, не имеющие отношения к Dingoo A320.
Спустя время, даже корейская Ritmix решилась выпустить RZX-50 на том-же чипсете, что и Dingoo A320 и сразу с Linux на борту, а хабровчанин, нынешний администратор форума «MotoFAN», под ником exl даже работал над разработкой и выпуском этого устройства в РФ! Благодаря дешевизне, такие игровые устройства раскупали как горячие пирожки себе или детям, создавая отдельный рынок дешевых ретро-консолей. Вплоть до того, что в 2012 году появилась первая игровая консоль на перспективной ОС Android — JXD S601 и всего чуть больше, чем за 100$!
В подарке читателя затесался RZX-50!
Идея китайцев была простой: они взяли дешевое, но относительно неплохое железо для планшетов и просто приделали ему аппаратные кнопки, проще уже не придумаешь! Многие Android-игры уже тогда поддерживали управление физическими кнопками (поскольку в те годы ещё выходили QWERTY-смартфоны, например HTC Desire Z), не говоря уже об эмуляторах, из-за чего, по мнению производителей, такие девайсы должны были сметать с витрин учитывая копеечную цену устройств. И в целом, так и происходило: со временем, некоторые бренды в РФ начали называть такие консоли своими именами и продавать в салонах сотовой связи за цену несколько выше, чем в Китае…
Я уже восстанавливал похожий девайс практически ровно год назад!
Помимо этого, JXD даже заморочились и реализовали свой собственный «магазин»… пиратских ромов! Да, в отдельном приложении можно было скачать нелегальные образы игр и сразу же закинуть их в папку эмулятора… Таким образом, получался «топ за свои деньги» тех лет. Покупаешь одновременно и игровую консоль, и планшет, из-за чего для рядового пользователя покупка подобного девайса была весьма неплохим решением: и дитю поиграть, и самому юность в играх для ретро-консолей вспомнить.
Продержались подобные устройства на рынке примерно до 2015 года. К сожалению, в таких консолях было слишком много недостатков и их нужно было вручную доводить до юзабельного состояния, как это часто бывает с дешевыми устройствами: например, многие вендоры почему-то реализовывали аналоговый стик как цифровой (!) в системе, прошивка очень часто была крайне лагучей и страдала от отсутствия оптимизации, а силиконовая токопроводящая резинка для кнопок быстро изнашивалась и кнопки имели уже далеко не такой плавный и мягкий ход как в новом устройстве. К слову, похоже рынок игровых консолей на Android понемногу возвращается: пару лет назад появилась консоль от Anbernic, в которой пофиксили эти недостатки и бонусом снабдили устройство нормальным OLED-дисплеем и чипсетом Unisoc, но цена в 15 тысяч рублей за Android-смартфон с кнопками наверняка вас отпугнет (это реально очень дорого).
Отпугнула и меня. В моей юности у меня тоже была подобная консоль на Android и я, оказавшись в один прекрасный день с 60 рублей на карте, начал листать онлайн-барахолки в поиске чего-нибудь интересного в пределах своего города. И нашёл: некий мужик продавал за копейки устройства на запчасти, среди которых оказалась и моя консоль: JXD S601.
Я предложил 300 рублей, продавец согласился, читатель задонатил ещё 250 рублей на контент и я выкупил консоль в абсолютно неизвестном состоянии, которая оказалась ещё грязнее, чем было на фото. Тем и интереснее!
❯ Реставрируем
Как я уже говорил выше, консоль я купил в совершенно непонятном состоянии: грязная, слишком легкая, резистивный тачскрин был в пузырях, а кнопка триггера вообще не работала. Кроме того, внутри консоли что-то болталось, но и мы не из робкого десятка и готовы отреставрировать старенькую консоль! Разбирается она очень просто: четыре винтика с обратной стороны консоли и расщелкиваем заднюю крышку пластиковой картой. Правда в моем случае, все винты были закисшими и зализанными, но главное что клипсы задней крышки не пострадали.
Разобрав консоль, я увидел вот такую картину (скриншот из видео): кто-то менял аккумулятор, просто припаяв новую банку к старой BMS без изоляции прямо поверх конденсаторов на линиях питания процессора. Само собой, это не дело, благо у меня был аккумулятор такого форм-фактора. Я выпаял остатки BMS и уже подготовил новый АКБ для подкидывания.
Что было особенно неприятно — прошлый мастер потерял динамик и оторвал полностью камеру с шлейфом:
Упомянутая мной кнопка продолжала болтаться по корпусу и её умудрились выломать даже при том, что она сидела с завода на герметике. Видимо уж очень активно её нажимали. Ну, это поправить несложно: убираем припой с посадочной площадки кнопки, вставляем её пинами вниз и припаиваем. Теперь кнопка держится надежно!
Затем я очистил спиртом контакты кнопок и пробрызгал WD'шкой стик и пошёл набирать воду в тазик, дабы отмыть корпус от грязи. После мытья корпуса, я просушил его феном. Перед финальной сборкой консоли, я решил проверить плату на работоспособность, подключив дисплей и подпаяв питание и…
Да, даже дисплей оказался разбитым :( Но и это не беда, ведь в таких консолях используются экранчики от… навигаторов! Подкинув новый дисплей и убедившись что плата рабочая, я принялся собирать всё обратно…
Но не тут-то было! Консоль оказалась на пароле и очень сильно тормозила, каждое действие занимало ~5 секунд. Ну, тут уже и причина разбитого дисплея очевидна: видимо консолью пользовался ребенок, который психанул от лагов и разбил замечательный девайс. Благо фиксится легко: качаем прошивку, распаковываем в корень MicroSD-флэшки, включаем консоль нажатием «Питание + Меню» и ждём окончания процесса прошивки.
Наконец-то консоль снова в рабочем состоянии! Ремонт обошелся мне… ну, можно сказать 100 рублей за навигатор. Сейчас они вообще никому не нужны и стоят копейки… На ремонт я потратил где-то час своего времени — не так уж и много, зато фана от восстановления достаточно :)
Давайте же посмотрим, на что способна консоль по прямому назначению — в играх!
❯ Тесты
Как я уже говорил выше, фактически подобные консоли — это планшеты с аппаратными кнопками. Само собой у них есть и Wi-Fi, что позволяет их использовать как бюджетный планшет из начала 2010-х годов… например, накатить клиент ВК и YouTube, заюзать встроенный клиент-почты или использовать консоль как плеер.
Запускаем CPU-Z и видим, что характеристики у нашего девайса следующие:
Чипсет: AMLogic AML8726-M3 с одним ядром Cortex-A9 на частоте 600МГц. В качестве GPU используется Mali-400MP.
ОЗУ: 512Мб DDR3.
Flash-память: NAND-модуль на 4Гб.
Дисплей: 4.3", 480x232, TN. Резистивный тачскрин, само собой на одно касание.
Система: Android 2.3 с возможностью апгрейда до 4.0.
Видеовыходы: аналоговый TV-Out.
Для подобного устройства весьма неплохо! Уж, полагаю, подобных характеристик должно хватать и для достойной эмуляции PlayStation 1. Давайте проверим!
Начинаем с самого простого, конечно же NES: я использовал эмулятор emu.NES, настройки стандартные. Эмулятор сразу же подхватил аппаратные кнопки, всё работает шустро и без проблем:
Переходим к Sega Mega Drive, в этом случае я использовал эмулятор emu.MD. Ром «соника» запускается и работает шустро, без каких-то особых проблем или фризов. Но возможно, для кого-то окажется слишком большим инпут-лаг — тут всё сильно индивидуально.
Дальше — больше, переходим к эмуляции PS1. В качестве игры я выбрал Driver, эмулятор epsxe: игра идёт довольно неплохо, в почти стабильные 25-30 кадров. Не все современные консоли с алика могут позволить себе подобный уровень производительность в 3D играх на PS1!
И не забываем, конечно-же, о нативных играх! Здесь тоже всё весьма шустренько: можно погонять в Android-классику тех лет типа Temple Run и иную мобильную годноту тех лет. Ностальгия!
❯ Заключение
Вот такую игровую консоль я купил за 300 рублей. Да, многие читатели скажут, мол, твоё время и затраты на поиск подходящего дисплея это ещё плюс пару тысяч рублей… но лично мне в кайф было пополнить свою коллекцию консолей ещё одним рабочим устройством. Надеюсь и вам было интересно!
Если захотите поискать такие устройства на барахолках по дешману, то найти их можно по названиям брендов (func, exeq, spider) и по описанию (android консоль, android приставки и т. п.). А если вам интересна тематика ремонта и моддинга различных дешевых девайсов, в том числе и телефонов, программирования, DIY — то подписывайтесь на мой Telegram-канал, в котором есть ламповый чат!
Интересно?
Была ли у вас похожая консоль?
Материал подготовлен при поддержке TimeWeb Cloud. Подписывайтесь на меня и @Timeweb.Cloud, дабы не пропускать новые статьи каждую неделю!
Взять с собой побольше вкусняшек, запасное колесо и знак аварийной остановки. А что сделать еще — посмотрите в нашем чек-листе. Бонусом — маршруты для отдыха, которые можно проехать даже в плохую погоду.
И в одной из ветвей обсуждения была мысль о том, что товары без упаковки все равно забирают, поэтому нет смысла упаковывать.
Не совсем согласен. У меня были разные случаи: я и отказывался, если дорогой товар приходил не в самом лучшем виде, а также мог и забрать, если это было что-то для домашнего пользования типа шампуней, дезиков.
А у вас как? В каких случаях забираете, в каких нет?
Забираете товары, которые приходят без упаковки? (чаще всего)
Отвал флэш-памяти типа eMMC - весьма частая болячка смартфонов и планшетов, которая массово преследует современные девайсы на протяжении вот уже более 10 лет. Симптомы проблемы знакомы многим читателям: смартфон виснет на заставке, системные приложения регулярно вылетают, или настройки системы внезапно перестают сохраняться. Сам процесс замены флэш-памяти требует навыков перекатки и пайки BGA-чипов, оборудования (трафареты для реболла, программатор с колодками, опционально подогрев) и понимания того, как работает загрузчик той или иной аппаратной платформы, поэтому в СЦ за эту процедуру могут взять достаточно большую сумму. На некоторых девайсах менять память уже совсем невыгодно, особенно когда другой такой-же аппарат стоит полторы тысячи рублей на барахолке, но воспоминания о любимом девайсе порой гораздо дороже, чем сумма за ремонт смартфона. Год назад я уже писал материал о загрузке Android с MicroSD при условии того, что eMMC ещё подает хоть какие-то признаки жизни, а сегодня я вам расскажу о способе загрузить систему с флэшки уже после того, как чип флэш-памяти отказал и ушёл в read-only. Сегодня мы с вами: узнаем о том, какие типы флэш-памяти существуют и причины их отказа, разметим MicroSD-флэшку и запишем на неё образ системы, пропатчим пути монтирования в boot.img, а также узнаем, как теперь запускать наш смартфон и посмотрим, сможет ли он работать достаточно шустро с MicroSD флэшки! Интересно узнать, как вернуть жизнь таким легендам, как Google Nexus? Тогда добро пожаловать под кат!
❯ Почему отказывает флэш-память?
Как я уже говорил в вводном абзаце, проблема внезапно отваливающейся флэш-памяти существует вот уже более 10 лет. Ещё с выходом iPhone 3Gs/4, мастера познакомились с такой болячкой, как внезапное падение устройства в режим DFU и отказ прошиваться через iTunes. Ближе к выходу Galaxy S III, HTC Desire и Wildfire, LG Nexus возникла потребность в программаторах, поскольку чипы eMMC в этих смартфонах очень часто помирали «сами по себе» из-за косяков производителя флэш-памяти. Более опытная часть моих пользователей может вспомнить такие проблемы, как отказ входа в HSPL (загрузчик HTC), бесконечная загрузка с отказом прошиваться в режиме Odin на самсунгах, падение смартфонов на базе чипсетов Qualcomm в режим 9008 (QHSUSB_BULK), а также внезапное прекращение работоспособности девайса даже при наличии адекватного потребления и реакции на кнопку включения.
В относительно современных смартфонах используется два типа чипов флэш-памяти с разными протоколами: NAND и eMMC (в современных чаще используется UFS — наследник eMMC с дифференциальным протоколом, вместо MMC). Устройства конца 2000х годов чаще использовали флэш-память типа NAND с Legacy-протоколом, который требовал ручного управления SPARE-страницами и расчета кода коррекции ошибок (ECC), чем занималось отдельное периферийное ядро в процессоре, называемое NAND-контроллером. Момент, когда нужно «приговорить» флэш-память и перевести её в режим read-only решал не сам контроллер, а драйвер NAND в прошивке устройства — и обычно он был весьма лоялен даже к «сыпящейся» памяти. Кроме того, NAND-контроллер позволял практически напрямую взаимодействовать с чипом флэш-памяти, благодаря чему в загрузчиках типа U-boot есть команда для очистки таблицы Bad-блоков и низкоуровневого форматирования флэш-памяти, дабы в дальнейшем контроллер попробовал пересчитать бэды и, потенциально, вернул некоторое число блоков обратно в строй. Такой тип «флэшек» помирал значительно реже, в основном из-за того, что софт (на моём опыте) практически никогда не уводил флэшку в read-only, «добивая» её до последнего. Из минусов такого подхода — если флэш помирала совсем, то данные из нее можно было достать только с помощью программатора, да и то не факт.
В моей довольно большой коллекции нет ни одного смартфона с Legacy NAND, где флэш бы действительно «приехала», хотя на форумах мастеров иногда встречаются старые сообщения о замене флэши на телефонах Nokia.
Второй тип памяти появился примерно в начале 2010х годов и имя ему — eMMC. Фактически, eMMC — это адаптация интерфейса MMC для использования в виде обычных чипов памяти, а не карточек, совместимая с спецификацией ~SDHC. Если выпаять чип с телефона и припаять сигнальные линии к обычному SD-кардридеру на ПК — он будет работать и определяться как полноценный диск! Таким образом, на некоторых смартфонах можно заменить eMMC на MicroSD напрямую припаяв флэшку на место чипа к соответствующим сигнальным линиям. Однако работать такое будет только если у вашего смартфона «бутербродная» компоновка, где ОЗУ припаяна поверх процессора (MTK и Spreadtrum в пролете). В eMMC используется память типа NAND, которой управляет не чипсет, а встроенный в сам чип памяти контроллер, работающий с протоколом MMC и имеющий собственную прошивку и карту бэд-блоков. Такая флэш-память может самостоятельно уходить в режим read-only когда это посчитает нужным контроллер, зачастую не давая смартфону загрузится, но при этом потенциально сохраняет данные пользователя и позволяет их прочитать дома (сделав дамп памяти устройства и смонтировав раздел userdata в Linux). Однако всё равно иногда данные теряются безвозвратно. Нюанс в том, что состояние eMMC определяет сам контроллер в чипе — поэтому «оживить» его дома и вывести из read-only невозможно. Однако я слышал, что на некоторых «бракованных» чипах памяти (в основном Samsung 2012-2013 годов), которые ушли в read-only слишком рано, можно подпаяться к тест-поинтам программатором и прошить чуть более свежую прошивку с другой ревизии этого же чипа памяти. Флэшка, бывало, оживала.
В некоторых случаях, eMMC были бракованными с завода и помирали сами по себе (!) через короткое время (около года) после покупки устройства. Я знаю как минимум два примера массового брака флэш-памяти: смартфоны HTC 2011-2012 годов, которые время от времени страдали от валящихся чипов Hynix (это касается не всех устройств, многие дожили), хотя я лично видел не так много HTC'шек с дохлой памятью, так что здесь читатели-сервисники с опытом работы в те годы могут только подтвердить или опровергнуть мои слова. А вот подтвержденный пример — смартфоны и планшеты Samsung 2012-2014 годов. Galaxy S3 с артефактами на дисплее при включении, S4 Mini в 9008 или повисшие на заставке, S4 с теми же симптомами, S4 Zoom, которые практически все померли «сами по себе» после обновления до 4.4 KitKat, N8000… Добавьте к этому слабые NC-пятаки, которые срывает при попытке снять чип феном, близко расположенный «бутербродный» процессор, который легко «убить», если орудовать феном, компаунд… и по итогу многие мастера просто спиливали чип дремелем. А что ещё делать!?
По итогу, нам остаётся искать софтварные способы загрузить систему с внешней MicroSD флэшки. И я нашел два таких способа! Первый — предварительно подготовить образ boot.img и прошить его в смартфон вместо recovery, дабы если память ушла в read-only, мы могли просто «дуалбутнутся» во второй образ с пропатченными точками монтирования системных разделов на MicroSD. А о втором, к сожалению, знают лишь единицы, хотя это просто замечательный способ, который позволяет загрузить систему уже «пост-фактум» после ухода флэшки в read-only и требует некоторых манипуляций с fastboot! Давайте же рассмотрим его подробнее.
Нашим подопытным будет рабочий смартфон Alcatel OT-5020D 2013 года выпуска, который пока не подает признаков помирающей eMMC: к сожалению, смартфонов с полудохлой памятью и разлоченным бутом у меня не оказалось, дохлые флэшки я иногда меняю и сам :) Но тем не менее, грузиться мы в любом случае будем с флэшки и вы сможете повторить все шаги в статье, дабы загрузить систему с MicroSD самому!
❯ Подготавливаем систему
Друзья! Для следующих действий, вам понадобится разблокированный загрузчик или устройство, на котором с завода загрузчик не заблокирован. Главный критерий — наличие режима fastboot.
Какие устройства не подойдут: многие смартфоны на базе чипов Spreadtrum, а также часть смартфонов Samsung на Exynos. Ни те, ни другие частенько не имеют режима fastboot от слова совсем. У Samsung есть режим загрузки с MicroSD (т. н. T-Flash Mode), но ядро он не грузит.
Какие устройства подойдут, но требуется подготовка: все смартфоны от Sony (исключение — Xperia Tipo, забагованный fastboot), Google Nexus (некоторые модели страдали из-за отвалов флэши), современные китайские новодельные noname-смартфоны (с вот таким патчем), Xiaomi, Meizu. Чипсеты: MediaTek 67xx/Qualcomm Snapdragon, возможно Kirin. Таким устройствам требуется предварительная разблокировка загрузчика.
Какие устройства подойдут даже при условии уже мертвой флэш-памяти: большинство девайсов на базе чипсетов MediaTek прошлого десятилетия, особенно бюджетных: MT6572, MT6582, MT6592, MT6580, MT6570, MT6575, MT83xx, некоторые Spreadtrum. Это касается Fly, Explay, ZTE и многих других ультрабюджетных смартфонов тех лет. Загрузчик там разблокирован с завода, никакого секьюрбута и верификации загружаемых образов нет. Но не везде можно загрузится в fastboot напрямую (попробуйте громкость вверх и громкость вниз при включении — если сразу грузится в рекавери, то нужно до отказа eMMC включить ADB, если показывает менюшку fastboot, recovery, normal boot — значит все ок).
Не подойдут: MT6573, MT6571 — там U-Boot (но его тоже можно попробовать заставить грузиться с SD).
Список устройств для потенциальной возможности загрузки с SD весьма большой! Как понять, что eMMC «всё»?
Смартфон не реагирует на зарядку и кнопку включения при заряженной АКБ: это не 100% показатель, но если поднимаются питальники с КП и потребление от кнопки есть ~0.1-0.3А — значит процессор вероятно пытается стартовать. Но не откуда. В таком случае, девайс поднять не получится — доступа к fastboot нет, флэшка полностью посыпалась. Исключение — некоторые Qualcomm'ы при наличии прожженного фьюза с завода, разрешающего загрузку с MicroSD могут стартовать ядро, но всё зависит от конфигурации aboot.
Смартфон загружается и сразу вылетают приложения, настройки не сохраняются: явный показатель того, что флэша ушла в read-only потенциально не повредив данные. Если смартфон грузится в fastboot — его ещё можно оживить, но не факт что получится вытащить данные (из-за шифрования). Если после сброса до заводских настроек эффект остается тот-же — eMMC приехала 100%.
Смартфон висит на заставке, сброс и прошивка не помогает: тоже явная причина: eMMC в read-only. В таком случае, не рекомендуется еще раз шить смартфон в надежде что все заработает, есть шанс что флэша посыпеться окончательно и вы потеряете доступ к fastboot.
Весьма всё просто, согласитесь? Как я уже сказал выше, на некоторых устройствах нужно сначала разблокировать загрузчик. Кое-где это, вероятно, получится сделать и при том что флэша ушла в read-only. Например, на устройствах Sony можно без проблем зайти в fastboot и разлочить устройство с помощью кода, полученного на сайте Sony (используйте VPN, если вы в РФ):
Как зайти в fastboot — вам придётся погуглить для конкретно своего устройства. Не нашли? Поищите как это делается на других смартфонах, которые работают на том же чипсете. Почти всегда можно зайти, если у вас включена отладка по USB с помощью команды:
adb reboot bootloader
Краткая справка: на устройствах Sony, в Fastboot можно зайти подключив устройство к ПК с зажатой громкостью вниз, на MTK громкость вверх или вниз, на HTC в HSPL, на Nexus'ах в фирменном загрузчике сразу режим Fastboot, на устройствах Tegra — включение с зажатой громкостью вверх, на смартфонах с чипсетом Intel есть fastboot, насколько помню зайти в него можно с помощью громкости вниз.
Команда для разблокировки загрузчика почти везде одна:
fastboot oem unlock
Вас могут запросить код разлочки или просто предупредить о последствиях такого действия. Как узнать, что бут разлочен?
fastboot getvar all
secure, locking и т. п. — отвечают за статус разлочки. Но даже если таких переменных нет, это не всегда значит, что загрузчик заблокирован. Возможно он разблокирован с завода :)
Теперь нам нужен образ раздела boot — boot.img. Его можно найти в файлах родной прошивки устройства, или, иногда, в zip-файлах кастомов. boot.img содержит в себе ядро Linux и небольшой раздел с файловой системой initrd (рамдиск), которая загружается в оперативную память и содержит в себе программы init, adbd, recovery, а также скрипты инициализации, которые управляют загрузкой Android и процессом зарядки (показывают анимацию, когда вы подключаете устройство выключенным к ЗУ. Да, в таком случае Linux тоже грузится!). Если у вас есть доступ к fastboot, то попробуйте запустить его с помощью команды:
fastboot boot boot.img
Работать она будет не везде, на MTK её поддержка отключена в загрузчиках некоторых устройств. Если вы увидели на экране устройства USB Transferring — половину дела сделана! Если устройство показало лого и анимацию загрузки или ушло в ребут — потенциально, вы сможете загрузить Android с MicroSD. Если ошибка secure-boot — нужно сначала разблокировать загрузчик. Если unknown command — команда не поддерживается :(
Теперь у нас есть возможность загрузить ядро и пропатчить скрипты конфигурации, дабы изменить точки монтирования раздела /system/, /data/ и /cache/ на MicroSD-флэшку, вместо встроенной памяти.
❯ Записываем систему на MicroSD
Обратите внимание: Android очень интенсивно использует ресурс флэшки и постоянно перезаписывает сектора памяти, поэтому не поскупитесь купить нормальную MicroSD флэшку от, например, Transcend, Kingston или Samsung. Дешевые MicroSD флэшки очень-очень быстро (вероятно, за пару дней — это не шутка) выйдут из строя и придется делать всё заново!
Сначала, нам придется разбить флэшку на три раздела: /system/, /cache/, и /data/. Раздел system будет первым, cache — вторым, data — третьим. При этом раздел /sdcard/ не нужен — он автоматически маппится в /data/media/ на современных версиях Android. Сделать это можно как с ПК с помощью MicroSD-адаптера и fdisk/diskpart/gparted, так и с самого смартфона с помощью того же fdisk в busybox. Я решил это сделать с помощью другого вспомогательного смартфона с TWRP, где изначально был root-доступ через adb! Размеры выбирайте следующие: для системного диска чуть больше или по размерам с system.img (раздел read-only и не «растет» со временем), cache — 100-200Мб, userdata — всё оставшееся место на флэшке.
Разметили MicroSD? Теперь нам нужно записать на неё образ системы. Тут три пути: если у вас есть Linux-машина, то можете подмонтировать образ system.img из оригинальной прошивки и скопировать все файлы с сохранением прав, закинуть system.img в внутреннюю память другого смартфона с root-доступом и проделать все тоже самое, либо записать с помощью dd образ system.img напрямую в нужный нам раздел флэш-памяти. Я выбрал третий способ:
dd if=/sdcard/system.img of=/dev/mmcblk1p1
Разделы cache и userdata можно просто форматировать в ext4:
Готово! Необходимые для базовой работы разделы перенесены на MicroSD. Теперь, когда, у нас есть образ системы, нам нужно распаковать родной boot.img устройства и поменять точки монтирования. Я использую кухню MTKImgTools. Идём в Boot -> Unpack -> boot.img. В Unpack/boot/ появятся файлы нашего раздела boot:
Открываем файл init.rc (в случае MediaTek). Ищем строки с монтированием разделов вида emmc@system, emmc@cache, emmc@userdata и меняем их на /dev/block/mmcblk1p1, /dev/block/mmcblk1p2 и /dev/mmcblk1p3. На некоторых чипсетах, править нужно сразу fstab, или init.<чипсет>.rc:
Готово! Собираем образ обратно с помощью Boot -> Pack -> boot.img и получаем образ, который нам и надо будет загрузить с помощью fastboot. Копируем boot.img в папку с adb и пробуем загрузить систему. Это будет основная команда для старта загрузки смартфона в будущем:
fastboot boot boot.img
Увидели бутанимацию? Значит система пошла загружаться, нужно лишь подождать первой загрузки 5-10 минут! Система висит на лого или уходит в ребут? Значит, возможно, вы неверно прописали точки монтирования, записали образ system или форматировали раздел userdata. Если система 4.4 и ниже, то можно изменить default.prop, заменив ro.secure на 0 и debuggable на 1. Если вы на Android 5+ — то заменить adbd (не требующий ключи авторизации) в /system/bin на вариант из TWRP и посмотреть logcat и dmesg. Монтируется ли /system/? Загружается ли app_process? На каком этапе стопорится? Всё это пригодится при дальнейшей отладке!
Например, такая ошибка при запуске adb shell означает то, что раздел /system/ не монтирован.
Ну а на моем девайсе система уже загрузилась и работает. Но насколько шустро? В комментариях читатели часто говорили, что из-за скорости MicroSD система будет не юзабельной. Насколько это правда? Давайте посмотрим!
Вывод mount:
Как мы и видим, /system/, /data/ и /cache/ на MicroSD. custpack и mobile_info, а также nvram трогать не нужно — если в родной флэше они не повреждены, то у девайса без проблем будет работать и сеть, и Wi-Fi.
❯ Можно ли пользоваться?
Наш девайс работает на базе Android 4.2 — казалось бы, совсем старенький дроид, но тем не менее ещё кое-что, да может. Alcatel OT — это бюджетный девайс из 2013 года, но работает он, на удивление, весьма шустро и приятно!
Начинаем с самых необходимых приложений — звонилка, контакты и галерея. Все эти приложения стартуют практически моментально, лишь иногда с небольшими лагами. Однако если поставить в браузере что-то скачиваться на фоне — конечно-же, система начнет лагать.
Как насчет браузера? Ставить последний хром, поддерживающий 4.2 смысла нет — уже и он открывает далеко не все сайты. Но те сайты, что пока ещё открывает стандартный браузер почитать ещё можно: например, opennet. На смартфонах с более свежим Android, браузер будет работать относительно адекватно. Зато с соц. сетями проблем особых нет. Telegram, конечно, может конкретно подвесить смартфон в процессе подгрузки картинок с каналов, но потом все будет нормально. Решение одно: отключить автоматическое кэширование картинок и видео!
С записью видео ситуация сложная. Даже в профессиональных камерах для 1080p рекомендуются карточки не ниже 10-класса (10Мб/с) и UHS-класса для 2+K видео. На нексусе, это скорее всего превратит девайс в лагодром даже при записе 720p видео: система в фоне так или иначе регулярно читает и записывает данные и рано или поздно мы упираемся в дисковой кэш.
Об играх с динамическим стримингом ресурсов можно забыть, если флэшка достаточно медленная — будут лаги.
А в динамике это всё выглядит так:
Достаточно шустро, для смартфона 2013 года за 4 тыщи рублей?
❯ Заключение
Сегодня мы с вами узнали, каким же образом можно перенести систему на MicroSD! Да, сработает далеко не на всех девайсах, однако сам способ может помочь поднять сотни устройств обратно в строй и сделать их полезными! Это всяко лучше, чем распаивать потенциально рабочие девайсы на «доноров» или, тем-более, отправлять их на мусорку или в чермет. С современными версиями Android ситуация сложнее: и не только из-за большего числа необходимых для загрузки разделов, но и из-за возросших требований к скорости флэш-памяти (упомянутые выше UFS работают на скорости ~500Мб/с), а также, внезапно, стремительно исчезающего слота для MicroSD :(
Надеюсь, материал вам был полезен! Сегодняшняя статья подготавливалась специально в «классическом», более коротком стиле с максимумом конкретики. Если вам больше нравится такой формат, нежели подробный на 15-20+ минут на чтения — напишите в комментариях!
Кстати, если у кого-то из читателей есть ненужные устройства (в том числе с косяками) или дешевые китайские подделки на айфоны/айпады/макбуки и другие брендовые девайсы будучи нерабочими, тормозящими, или окирпиченными и вам не хотелось бы выкидывать их на свалку, а наоборот, отдать их в хорошие руки и увидеть про них статью — пишите мне в Telegram или в комментах! Готов в том числе и купить их. Особенно ищу донора дисплея на китайскую реплику iPhone 11 Pro Max: мой ударник, контроллер дисплея калится и изображения нет :(
А ещё у меня есть Telegram-канал, куда я публикую различные заметки по ремонту, программированию и моддингу девайсов, свои мысли и вовремя публикую ссылки на новый материал!
Полезный материал?
Статья подготовлена при поддержке TimeWeb.Cloud. Подписывайтесь на меня и @Timeweb.Cloud, чтобы не пропускать новые статьи каждую неделю!
Скоро открытие дачного сезона. В свежем выпуске проекта "Угол зрения" мы узнавали у полевчан: дешевле купить овощи в магазине или выращивать у себя на огороде?