Приключения с LineageOS + Magisk

На своем телефоне я использую вместо официальной прошивки LineageOS в связке с Magisk root (эдакий волшебный инструмент получения рута, с которым сохраняет работоспособность Android pay). И тут можно радоваться еженедельным апдейтам каждый понедельник (для моего Oneplus 5T). Тут надо заметить, что у lineage апдейты не имеют обыкновения ломать систему. И все было хорошо, пока последнее майское обновление не «окирпичило» телефон. Как выяснилось, Lineage тут был не при делах — косяк был в Magisk (стоило его убрать и все заработало). В этой заметке я расскажу об эпичном фейле в Magisk, а так же приведу ссылку на исправленную версию Magisk’а, не превращающую телефон в тыкву кирпич.

Собственно, проблема заключалась в том, что когда Magisk вносит изменения в boot.img, конец запакованного ядра linux и начало devicetree blob (dtb) он определяет по 32х-битному числу 0xd00dfeed. И так уж сложились звезды, что эта последовательность байт вылезла в злополучном майском апдейте. Об этом баге знают, и в репозиторий с кодом Magisk даже давно есть соответствующий Pull Request. Но по состоянию на 9 июня он так и не включен, и потому рабочей сборки Magisk для Oneplus 5/5t пока все еще нет. Отлично, не прошло и часа, изменения вмержены, Magisk 16.5 должен быть уже скоро.

Пришлось засучить рукава, накатить Android SDK и скомпилять Magisk с нужным патчем. Кому надо, бинарники можно забрать в моем посте на xda-developers. Magisk помечен как версия 16.4.1, а versioncode выставлен специально низким, чтобы приложение предлагало обновиться на любую присутствующую официальную версию. Ясное дело, что пока не выпустят официальный апдейт Magisk’а с исправлением проблемы, этого лучше не делать.

Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.