TL;DR: Включение шифрования на уже месяц работающем смартфоне Asus Zenfone Max Pro M1 на LineageOS 16 от 28.01.2020 спровоцировало бутлуп. Обновление до актуальной прошивки результатов не дало. Пришлось форматировать разделы и ставить прошивку «с нуля».

Слышали все эти советы о том, что нужно учиться на своих ошибках? Или о граблях и всё такое?

Я вот, видимо, не слышал (или не слушал), так как снова столкнулся с бутлупом на прошивке LineageOS 16 на Asus ZenFone Max Pro M1. Первую часть этой истории вы можете почитать здесь.

Что же на этот раз я сделал не так? А я, казалось бы, просто включил шифрование на своем устройстве. Делать так, когда у тебя уже полностью функционирующее устройство со всеми установленными приложениями и данными — сомнительная затея, конечно. Но у меня есть оправдание! Я так долго тянул с включением шифрования из-за того, что вспоминал об этом лишь ночью. А ночью включать шифрование не хотелось, так как опасался какой-то проблемы, из-за которой придется потом не спать и восстанавливать телефон. И как знал ведь!

Собственно, у меня была версия прошивки от 28.01.2020. После включения шифрования, телефон перезагрузился и, очевидно, начал шифровать всю файловую систему. Я смотрел на индикатор оставшегося времени и пугался от увеличивающегося там числа. То 1:20, то 3:30, то 4:40, а потом 4:10. Больше всего напрягало, что это могли быть часы, а могли быть и минуты. Я решил не нервничать и отошел от телефона. Вспомнил о нём лишь через полчаса, когда он уже требовал ввести пароль для загрузки системы.

«Ура, успешно зашифровалось!», — подумал я, когда телефон принял пароль и начал грузить ОС. А ОС что-то не грузилась и не грузилась. Прошло несколько десятков секунд, и появилось рекавери. В общем, история как в моём предыдущем посте.

«Окей, возможно конкретно в моей версии косячит шифрование, обновлюсь», — прозвучало в моей голове. Я полез на сайт со сборками прошивки, чтобы посмотреть в разделе Recent Changes изменения по сборкам. Вдруг там оказалась бы заветная строчка "WE FINALLY FIXED ALL PROBLEMS WITH BOOTLOOP!". Но, увы, мало того, что там изменения лишь за последние несколько версий, так еще и ничего связанного с бутлупами (либо я плохо смотрел). Я даже пошел к ним в Gerrit, чтобы поискать подходящие коммиты, но тщетно.

скриншот со списком сборок LineageOS 16 для Max Pro M1 на момент публикации записи
Список сборок на момент публикации данной записи

Казалось бы, ставь последнюю версию, и вперёд! Но по своему опыту я знаю, что периодически выходят Security Patch'и, которые могут менять алгоритм шифрования. В ветке TWRP для своего телефона последняя версия рекавери от 12 февраля. Соответственно, можно считать, что она поддерживает февральский патч. Если я поставлю, условно, прошивку от 04.03.2020, то есть вероятность, что в ней уже мартовский патч. В итоге, прошивка обновит мне шифрование, и рекавери уже не сможет расшифровать раздел.

Следуя этой логике, я решил остановиться на версии с красивой датой 20.02.2020. Перед установкой я сохранил все нужные данные с Internal Storage, а также сделал бэкап всех системных разделов. Установку делал без сброса данных. После перезагрузки смартфон снова запросил пароль (на этот раз клавиатура присутствовала, а не как в моём предыдущем посте), принял его, и ушел в бутлуп. Потом загрузилось рекавери, которое, ожидаемо, не могло расшифровать файловую систему. Новая версия LineageOS успела обновить алгоритм шифрования (февральский патч, привет), даже несмотря на бутлуп, а версия TWRP у меня была январская. После обновления рекавери, всё успешно расшифровалось, но легче мне от этого не стало.

Я решил загуглить, можно ли каким-то образом снять шифрование со всех разделов, но нашёл лишь этот ответ. Увидя в команде аргумент wipe_data, я вздохнул, и понял, что терять уже нечего. Подключился к телефону через ADB, ввёл команду и особо ничего не получил.

скриншот с результатом выполнения команды для сброса шифрования в командной строке
Результат выполнения команды

Телефон всё также висел в рекавери, а после перезагрузки всё также просил пароль и уходил в бутлуп.

Затем мне пришло в голову форматнуть все разделы, кроме Internal Storage и External Storage, а затем восстановить их из бэкапа, который я сделал перед установкой новой версии. В итоге, у меня после перезагрузки даже пароль не принимался. Причем и из рекавери, и из ОС.

Нетрудно догадаться, что я окончательно загнал себя в тупик. Плюнув на всё, я наконец сделал вайп всех разделов (вытащив перед этим, на всякий случай, карту памяти), затем скачал LineageOS от 29.02.2020, установил её, и тут же поставил Open GApps (Nano от 05.03.2020), Magisk 20.3, и, собственно, всё.

После перезагрузки, ожидаемо, пароль меня уже никто не спрашивал, а при запуске ОС меня встретил мастер первичной настройки. Правда и тут не обошлось без проблем. В нём есть шаг с настройкой отпечатка пальца. После этого шага идет предложение активировать Google Assistant. Я отказался от активации, и снова столкнулся с шагом настройки отпечатков. И после этого шага снова Google Assistant. И если отказаться, то снова настройка отпечатков. Когда я согласился включить ассистента (несколько раз грозно повторяя «Окей, гугл»), меня не ждала свобода. Вместо неё — опять отпечатки. Тут я решил попробовать отменить их настройку и - о, чудо! - мастер пошёл дальше.

И вот тут история заканчивается. Увы, снова на не очень хорошей ноте. Мне опять предстоит восстанавливать данные от приложений. Опять надо будет скачивать пиратские APK'шки, которые не синхронизировались через Google Play. Опять надо будет настраивать будильники и переживать, что с утра не сработают.

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

В общем, итог — поставил кастомку — привыкай к рандомным проблемам. Сидеть без шифрования я не очень хочу, но, видать, других вариантов пока нет.

Снова спасибо тем, кто дочитал. Вот вам ещё один котик.

Картинка из гугла по запросу котик