Мы используем файлы cookie, чтобы сайт работал и становился удобнее. Продолжая пользоваться «Думайте», вы соглашаетесь с Политикой конфиденциальности.

Показать все результаты

Ничего не найдено

Доступна новая версия приложения

Версия

Скачать

Я поставил Android 16 на телефон 2018 года, который производитель давно списал

3 дн. назад авторская
101 27 7 мин

В конце прошлой статьи я одной строчкой обронил, что прошил Android 16 на телефон 2018 года. На деле за этой строчкой — восемь дней, из которых пять я потратил на лечение того, что вообще не болело. Cardputer в этот раз отдыхает — рассказываю по порядку, потому что самое интересное тут не результат, а путь к нему.

Пациент

ASUS ZenFone Max Pro M1 — в 2018 году хороший недорогой телефон. По сегодняшним меркам характеристики у него скромные: 3 ГБ оперативной памяти, 32 ГБ встроенной и процессор Snapdragon 636 конца 2016 года. Для сравнения: в современном среднем смартфоне оперативки раза в три больше. Последнее обновление ему прислали в декабре 2020-го, это был Android 9, и дальше тишина. Сейчас актуальный Android — 16-й, разница почти в шесть лет.

Официально на этом всё. Неофициально есть PixelOS — Android 16, который энтузиасты собирают под конкретные модели, в том числе под мою. Чтобы поставить такую прошивку, сначала надо разблокировать загрузчик — программу, которая при включении проверяет, что на телефоне стоит «родная» система, и чужую просто не пускает.

Дверь, заколоченная с двух сторон

Обычно разблокировка — это галочка в настройках для разработчиков и одна команда с компьютера. У ASUS не так. В последних прошивках они вырезали эту галочку из меню, а сам загрузчик на все команды разблокировки отвечает «unknown command». Есть ещё официальная утилита для разблокировки, но её сервер ASUS просто выключил — адреса больше не существует, VPN тут не поможет.

Оставался один путь: откатить телефон на прошивку 2018 года, где разблокировка ещё работала. А откатить можно только через EDL — аварийный режим чипа Qualcomm, в котором телефон принимает прошивку в обход всех своих защит.

Но до EDL я даже не дошёл.

«Почистите разъём от пыли»

Первая же стена. Компьютер видит телефон, показывает его серийный номер — но любая команда падает мгновенно, с ошибкой записи.

Весь этот проект я вёл вместе с Claude Code, и начинал на модели Sonnet. Мы перебрали всё: другой кабель, другие порты, переход с USB 3.0 на USB 2.0, переустановку драйверов, запуск от администратора, две разные версии программы fastboot. Когда варианты кончились, Sonnet начал винить железо — разъём и контакты. Я честно взял и почистил разъём телефона от пыли. Не помогло. На это ушёл целый день.

Тогда я переключился на Opus. Он через минуту обратил внимание на то, на что мы вообще не смотрели: ошибка вылетает за 0.000 секунды. Плохой контакт так не ломается — он даёт обрывы посреди передачи и зависания. А мгновенный отказ значит, что до провода дело даже не дошло. На компьютере в фоне работал adb-сервер — другая программа для общения с Android, — и он держал USB-подключение, не пуская к телефону fastboot. Две команды, чтобы его закрыть, — и всё заработало с первой попытки.

Sonnet не плохая модель — он просто пошёл по ложному следу и так с него и не сошёл. Но дальше проект я вёл уже только на Opus.

Откат в 2018-й и разблокировка за четыре команды

Перед откатом я снял копии всех важных разделов памяти — на случай, если что-то пойдёт не так.

Через EDL я залил официальную прошивку ASUS от марта 2018 года, Android 8.1. И тут повезло: это оказалась отладочная сборка, в которой есть полный root-доступ.

На форумах гуляет сложный рецепт разблокировки с «секретным ключом». Он не понадобился вообще. Оказалось, что ASUS вырезал только пункт меню, а системная служба, которая отвечает за разблокировку, осталась на месте. С root-доступом её можно дёрнуть напрямую, в обход интерфейса. Четыре команды — и загрузчик ответил:

```

fastboot flashing unlock -> OKAY

fastboot oem device-info -> Device unlocked: true

```

Телефон, который работает вслепую

Была только одна загвоздка: на прошивке 2018 года у телефона полностью чёрный экран. Ядро той прошивки рассчитано на экран одного производителя, а в моём телефоне стоит экран другого. При этом сам телефон живой: команды принимает, и если попросить его сделать скриншот, на компьютере видно нормальную картинку. Он работает — просто ничего не показывает. Я так и работал дальше, вслепую, по скриншотам.

Скриншот экрана, сделанный с ПК

Дальше по списку

PixelOS отказывается ставиться на старый модем — в установщике прописана проверка, что модем не старше конца 2019 года. Поэтому сначала я прошил части прошивки от 2020 года: модем, загрузчики и прочие низкоуровневые куски. Каждый сверил по контрольной сумме. Заодно восстановил данные модема из своей копии, чтобы не потерять IMEI. Это была ошибка, но узнал я об этом нескоро.

Потом TWRP — самое популярное меню восстановления для установки прошивок. Установка упала сразу: у TWRP слишком старое ядро, а установщику Android 16 нужно поновее. Решение оказалось простым — взять меню восстановления прямо из архива PixelOS. Установка прошла, «status 0», всё хорошо.

Перезагрузка. Логотип. Перезагрузка. Логотип. Бесконечный цикл.

Неделя неверных диагнозов

Коварство было в том, что система заходила далеко: запускала службы, поднимала шифрование — и потом телефон просто уходил в перезагрузку. Логи падений Android при этом были пустые. Значит, решил я, сброс приходит откуда-то снизу, из самого железа.

И начал перебирать. Защищённую часть процессора, загрузчик, проверку целостности системы, шифрование, даже износ памяти — оказалось, память у телефона изношена на 80–90%, но до отказа ей ещё далеко. Что-то менял, что-то сверял — цикл оставался.

По пути нашёл одну настоящую проблему: сброс данных в меню восстановления на самом деле ничего не стирал, там оставались папки от старого Android 8.1. Починил вручную — шифрование заработало. А цикл остался.

Один вечер

В итоге я решил не искать дальше одну сломанную деталь, а пройти всю цепочку заново, начисто. Снова прошил части от 2020 года — все 18 сверил с официальным пакетом ASUS, совпали побайтно. Но в этот раз данные модема из копии не восстанавливал.

И всё сложилось за один вечер. Поставил меню восстановления от PixelOS, отформатировал память, запустил установку — 257 секунд. Перезагрузка. На 110-й секунде компьютер увидел телефон, на 128-й — подключился к нему. Цикла нет.

А потом на экране появилась картинка. Android 16.

Виновник недельного цикла — скорее всего, те самые данные модема. Копия оказалась снята с другой, более ранней версии прошивки 2020 года: модем не принял чужие настройки, падал и утаскивал за собой весь телефон. Поэтому логи Android и были пустыми — падал не Android, а часть чипа под ним. Пишу «скорее всего» честно: в удачной попытке поменялось сразу несколько вещей, так что чистого эксперимента не было.

Потом отдельно и аккуратно вернул IMEI — и теперь работает всё: Wi-Fi, экран, датчики, мобильная связь.

Зачем я всё это рассказываю

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

Можно было бросить на «unknown command», когда стало понятно, что ASUS закрыл разблокировку. Или когда их сервер оказался выключен. Или после целого дня с кабелями и пылью в разъёме. Или когда телефон откатился в 2018 год и показывал только чёрный экран. И уж точно после «status 0», за которым пошла бесконечная перезагрузка, а потом целая неделя, когда ничего не менялось.

Ни один из этих шагов сам по себе не был сложным: закрыть лишнюю программу, найти нужную прошивку, сверить файлы, попробовать другое меню восстановления, пройти всё заново. Сложным было только одно — сделать следующий шаг после того, как предыдущий не сработал.

Думаю, так устроено почти всё, что кажется невозможным. Со стороны это выглядит как один большой прыжок, а изнутри это длинная лестница из простых ступенек. Разница между «не получилось» и «получилось» чаще всего не в таланте, а в том, на какой ступеньке ты решил остановиться.

А в следующих записях вернёмся к Cardputer. Во-первых, я заставил эту карточку с 512 килобайтами памяти показывать видео. Во-вторых, мой ИИ на Cardputer наконец-то начал выдавать осмысленные фразы. Но какой ценой — расскажу отдельно.

Спасибо, что дочитали.

Тематики
Роман Раевский
88 %
88 %

Комментарии 5

Войдите, чтобы оставить комментарий.

П
уровень 1 в 2 дня
Похвальное упорство и старания. Предмет их того стоил, исходя из эпилога. Мысль донесена.
Полезно
—
Уместно
—
уровень 3 в 3 дня
Вот он - научный поиск, как он есть. Молодец автор, не сдался, довёл дело до конца!
Полезно
Уместно
уровень 3 в 3 дня
Любопытные танцы с бубном и хорошо, что в итоге срослось. А зачем на старый телефон новую версию Андроида ставить, чтобы приложения по типу Макса можно было скачать и установить? (Которые со старыми версиями Андроида не дружат)
Полезно
Уместно
Й
уровень 1 в 1 день
Говорят что во время первого рали Париж-Дакара, старой король Мороко лично вручал наград. И первой в рали гордо сказал королю, что он обгонил второго на целых 2 минут. А корол спокойно спросил его: И для чего сынок полезное потратил етих 2 минут? Ето я о танцы с бубном. А иначе поставил 'полезно' чтоб все знали: ОНИ намеренно строят будущий цифровой концлагер и хорошо что есть и такие, которое успевают сделать бреш в его.
Полезно
—
Уместно
—

Оценить запись

88 %
88 %
Категория
100 %

Категория записи указана верно?
Наука и Технологии

Тематики
75 %

Оцените качество выбора тематик

Содержание

Поделиться