Прошивка модифицированного KERNEL.img на Huawei прерывает загрузку — SELinux остается обязательным, нельзя использовать Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Прошивка модифицированного KERNEL.img на Huawei прерывает загрузку — SELinux остается обязательным, нельзя использовать

Сообщение Anonymous »

У меня Huawei P10 Lite.
Я пытался использовать модули Magisk, чтобы принудительно разрешить SELinux, но getenforce все равно сообщает Принуждение, поэтому Фрида не может подключиться к процессам.
Поэтому я пытаюсь изменить KERNEL.img, чтобы установить androidboot.selinux=permissive, но каждая попытка прерывает загрузку.
Что я сделал (коротко):
  • Извлек UPDATE.APP из официальной прошивки и проверил образы разделов:

    Код: Выделить всё

    CACHE_26.img  CRC_2.img  CURVER_4.img  DTS_16.img  ERECOVERY_KERNEL_21.img
    ERECOVERY_RAMDISK_22.img  ERECOVERY_VBMETA_24.img  KERNEL_17.img  META-INF
    MODEM_FW_29.img  MODEMNVM_UPDATE_11.img  PRODUCT_33.img  RAMDISK_25.img
    RECOVERY_RAMDISK_18.img  RECOVERY_VENDOR_19.img  SYSTEM_27.img  TEEOS_12.img
    TRUSTFIRMWARE_13.img  VENDOR_30.img  VBMETA_10.img  VERSION_31.img  XLOADER_7.img
    
  • Изменил KERNEL_17.img (изменил cmdline на androidboot.selinux=permissive) и прошил его:

    Код: Выделить всё

    fastboot flash kernel KERNEL_17.img
    
    Fastboot показывает флэш-память как OKAY, но устройство не загружается. В итоге каждый раз восстанавливаю всю прошивку через UPDATE.APP(dload). TWRP/recovery, кажется, также исчез, хотя я не прошивал восстановление.
  • Примечание: я считаю, что загрузка разделена между ядром и виртуальным диском на этом устройстве (ядро в KERNEL_17.img, виртуальный диск в RAMDISK_25.img). Я также попытался изменить init.rc ramdisk, чтобы отключить SELinux (

    Код: Выделить всё

    write /sys/fs/selinux/enforce 0
    ) и перепаковать виртуальный диск, но прошивка завершается неудачно с ошибками, которые выглядят как несоответствие размера образа и размера раздела (ошибки длины/размера раздела). Это говорит о том, что заголовок/размер моего переупакованного образа не соответствует формату раздела, ожидаемому загрузчиком.
  • Я пытался отключить проверку:

    Код: Выделить всё

    fastboot --disable-verity --disable-verification flash vbmeta VBMETA_10.img
    
    но получил:

    Код: Выделить всё

    fastboot: error: Failed to find AVB_MAGIC at offset: 0
    
    так что обработка vbmeta/AVB здесь кажется нестандартной.
Вопросы
Кто-нибудь успешно модифицировал KERNEL.img (или ядро+ramdisk) на устройствах Huawei и сохранял загрузку устройства? Нужно ли мне переподписывать ядро ​​или где-то обновлять хэши (vbmeta или другие таблицы конкретного поставщика)? Существует ли четкое минимальное инструкция по правильной распаковке, редактированию init.rc, повторному сжатию виртуального диска и восстановлению образа с точно совпадающими заголовками/размерами, чтобы загрузчик принял его (без необходимости каждый раз восстанавливать весь UPDATE.APP)?
Краткое практическое руководство или указатели на точные команды/инструменты/рабочий процесс (как правильно извлечь заголовки, флаги mkbootimg, правильный размер страницы/база или способы переупаковки виртуального диска в нужный контейнер) были бы чрезвычайно полезны.
Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/797 ... -enforcing
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»