Я пытался использовать модули 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 показывает флэш-память как OKAY, но устройство не загружается. В итоге каждый раз восстанавливаю всю прошивку через UPDATE.APP(dload). TWRP/recovery, кажется, также исчез, хотя я не прошивал восстановление.
Код: Выделить всё
fastboot flash kernel KERNEL_17.img - Примечание: я считаю, что загрузка разделена между ядром и виртуальным диском на этом устройстве (ядро в 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так что обработка vbmeta/AVB здесь кажется нестандартной.Код: Выделить всё
fastboot: error: Failed to find AVB_MAGIC at offset: 0
Кто-нибудь успешно модифицировал KERNEL.img (или ядро+ramdisk) на устройствах Huawei и сохранял загрузку устройства? Нужно ли мне переподписывать ядро или где-то обновлять хэши (vbmeta или другие таблицы конкретного поставщика)? Существует ли четкое минимальное инструкция по правильной распаковке, редактированию init.rc, повторному сжатию виртуального диска и восстановлению образа с точно совпадающими заголовками/размерами, чтобы загрузчик принял его (без необходимости каждый раз восстанавливать весь UPDATE.APP)?
Краткое практическое руководство или указатели на точные команды/инструменты/рабочий процесс (как правильно извлечь заголовки, флаги mkbootimg, правильный размер страницы/база или способы переупаковки виртуального диска в нужный контейнер) были бы чрезвычайно полезны.
Спасибо!
Подробнее здесь: https://stackoverflow.com/questions/797 ... -enforcing
Мобильная версия