Написание общих функций модуля Magisk
Написание общих функций модуля Magisk

Коротко о Магиске

Обзор

Magisk в настоящее время является самым популярным решением для получения root-прав для телефонов Android.

Хотя производители мобильных телефонов, такие как Xiaomi, также предоставляют так называемую поддержку root Разрабатываемая версия Rom, но в новых версиях они не могут писать напрямую как /system/ защищенные пути. Это приводит к тому, что многие вещи до сих пор не сделаны. Самое классическое, что даже системный сертификат изменить нельзя. . .

Magisk может избежать записи в защищенные пути и «замаскировать» свою собственную файловую систему в собственной файловой системе. Таким образом, нет необходимости напрямую изменять исходные данные, а также можно обманом заставить программу использовать файловую систему, предоставляемую Magisk.

Это потрясающе Magisk автор topJohnWu Когда проект вышел, он был всего лишь студентом второго курса и сейчас работает в Apple Сделайте машинный перевод.

репозиторий модулей

Причина популярности Magisk во многом заключается в том, что каждый может внести свой творческий вклад и поделиться написанными им модулями Magisk. Но все равно нужно быть осторожным при использовании чужих модулей.

На официальном складе фактически есть только https://github.com/Magisk-Modules-Repo Это вызвано JohnWu Сопровождаю сам. Модули здесь можно использовать с уверенностью. Конечно, на рынке есть и другие. Magisk Warehouse, но при их использовании все равно придется сначала внимательно прочитать код. . .

установка магиска

Прошить TWRP

TWRPСоответствующую информацию можно найти по адресуОфициальный сайтиодиннеофициальное сообществоПоиск соответствующих моделей,И следуйте инструкции к щеточной машинке.

Конечно, есть большая вероятность, что информация на этих двух зарубежных сайтах может не подойти для социалистических национальных условий. Не расстраивайтесь, если перепрошивка не удалась. Одомашненный @wzsx150 где L.R.Team На основе официальной версии были сделаны улучшения и ленивые руководства по пакету, поддерживается Android 10. Также предоставляются инструменты и руководства для прошивки для большинства отечественных моделей. Вы этого заслуживаете.

Соответствующий контент, который они в настоящее время предлагают, находится здесь:

  • Интернет-облачный диск Hengchuang Веб-ссылка  (Пароль: wzsx150)

Последнее, что нужно отметить, это то, что если вы не установите некоторые сторонние ромы (например, Magisk или SuperSU) через TWRP перед перезагрузкой телефона после прошивки TWRP, то после перезагрузки телефона TWRP будет перезаписан родным рекавери. . .

Прошить в Magisk

Мигает TWRP Введите новый После восстановления можно Прошить в Магиск. Установить Magisk Вы можете обратиться к шагамОфициальная документация

О рут-правах

Оболочку с правами root можно получить через Magisk, но эти права root по-прежнему ограничены.

Получить root-права

и Родной Разрабатываемая версиядругой,Прошить в Magisk устройств невозможно использовать adb root Такая команда:

Язык кода:javascript
копировать
$ adb rootadbd cannot run as root in production builds

Но вы можете войти в систему как пользователь root после входа в оболочку:

Язык кода:javascript
копировать
$ adb shell
cereus:/ $ su
cereus:/ #

Конечно, для этого необходимо нажать «Авторизация» во всплывающем окне Magisk:

Если вы не хотите использовать интерактивные инструкции, вы можете использовать параметр -c:

Язык кода:javascript
копировать
$ adb shell su -c 'ls /data/data/'
android
android.ext.services
android.ext.shared
...

Или реализовать это с помощью каналов:

Язык кода:javascript
копировать
$ echo 'ls /data/data/'|adb shell su
android
android.aosp.overlay
android.ext.services
android.ext.shared
...

недостатки

Кажется, мы можем напрямую получить root-права в оболочке, но когда вы изменяете файлы в таких каталогах, как /system, все ваши изменения будут потеряны после следующего перезапуска.

Таким образом, этот корневой центр на самом деле больше похож на корень только для чтения, а не на общий корень. Конечно, это не бесполезно, все равно очень полезно при просмотре некоторых системных файлов.

Постоянный корень

Если вы хотите получить настоящие и постоянные root-права на запись файлов, вам необходимо самостоятельно написать модуль Magisk, подготовить файлы, которые необходимо перезаписать при запуске, и загрузить их в систему по типу Маска.

Написание модуля Magisk

базовые знания

написать стандарт Magisk Рекомендации модуля имеют прямые ссылки Официальная документация,Я не буду здесь вдаваться в подробности. Следует отметить, что Magisk Структура модуля была скорректирована один раз, поэтому имеются две файловые структуры старого и нового модулей. Конечно, новая версия Magisk совместима с обоими способами записи, но все же рекомендуется использовать новый способ записи.

Если вам нужно научиться писать собственные модули, рекомендуется обратиться к следующим двум модулям:

  • v2ray Модуль, использующий новый метод написания модуля, используется для запуска системного измерения. v2ray Сервисы (для доступа к зарубежным сайтам).
  • movecert Модуль, написанный старым способом, используется для перемещения сертификата пользователя по пути к системному сертификату, чтобы система по умолчанию доверяла сертификату пользователя.

Также следует отметить несколько моментов (новая версия написания):

  1. customize.sh в основном используется для написания сценариев, которые будут выполняться во время установки. Скрипт здесь может выполнять adb. shell инструкция в. Следует отметить, что этот скрипт выполняется только в процессе установки и не будет выполняться повторно после перезапуска.
  2. Где запускать размещается фоновая служба post-fs-data.sh или  service.sh Средняя разница в том, что система заблокируется и будет ждать; post-fs-data.sh выполняется, и service.sh Он будет выполняться одновременно с системой (часто используется для запуска некоторых служб). Что еще более сбивает с толку, так это то, что контекст, используемый этими двумя сценариями, magisk Входит в комплект busybox, поэтому при выполнении adb shell некоторые изинструкциячас,долженЧтобы использоватьабсолютный путь
  3. post-fs-data.sh и  service.sh Выполняется после каждого перезапуска системы.
  4. Исправлять ro начало Конфигурациянадеватьsystem.prop середина,другой Конфигурация Может использоваться напрямуюsetprop Заказ.
  5. Будьте осторожны и дайте файлу правильные разрешения.

Редми 6 практика

Включите безопасный режим adb

Просо Включите безопасный режим adb по умолчанию требует входа в учетную запись Xiaomi, мы можем customize.sh Измените конфигурацию для обхода.

Язык кода:javascript
копировать
remote_provider_preferences=/data/data/com.miui.securitycenter/shared_prefs/remote_provider_preferences.xml
 
grep -q 'security_adb_install_enable' $remote_provider_preferences
 
if [ $? -ne 0 ] ;then
  sed -i 's/<\/map>/<boolean name="security_adb_install_enable" value="true" \/>\n<\/map>/g' $remote_provider_preferences
  ui_print "- Insert security_adb_install_enable to true"
else
  sed -i '/security_adb_install_enable/ s|\([vV]alue="\)[^"]*\("\)|\1true\2|g' $remote_provider_preferences
  ui_print "- Change security_adb_install_enable to true"
fi

Отмените окно подтверждения установки USB.

После того, как Xiaomi включит оптимизацию MIUI, при установке приложения через USB появится окно подтверждения. customize.sh Измените конфигурацию для обхода.

Язык кода:javascript
копировать
remote_provider_preferences=/data/data/com.miui.securitycenter/shared_prefs/remote_provider_preferences.xml
 
grep -q 'permcenter_install_intercept_enabled' $remote_provider_preferences
if [ $? -ne 0 ] ;then
  sed -i 's/<\/map>/<boolean name="permcenter_install_intercept_enabled" value="false" \/>\n<\/map>/g' $remote_provider_preferences
  ui_print "- Insert permcenter_install_intercept_enabled to false"
else
  sed -i '/permcenter_install_intercept_enabled/ s|\([vV]alue="\)[^"]*\("\)|\1false\2|g' $remote_provider_preferences
  ui_print "- Change permcenter_install_intercept_enabled to false"
fi

некоторая оптимизация на странице

Язык кода:javascript
копировать
# Отменить связанные анимации
settings put global window_animation_scale 0.0
ui_print "- Change window_animation_scale to 0"
 
settings put global transition_animation_scale 0.0
ui_print "- Change transition_animation_scale to 0"
 
settings put global animator_duration_scale 0.0
ui_print "- Change animator_duration_scale to 0"
 
# Держите его включенным
settings put global stay_on_while_plugged_in 7
ui_print "- Change stay_on_while_plugged_in to 7"
 
# Блокировка ориентации экрана
settings put system accelerometer_rotation 0
ui_print "- Change accelerometer_rotation to 0"
 
settings put system user_rotation 0
ui_print "- Change user_rotation to 0"
 
# ADB Конфигурация
setprop persist.security.adbinput 1
ui_print "- Change persist.security.adbinput to 1"
 
setprop persist.security.adbinstall 1
ui_print "- Change persist.security.adbinstall to 1"

Если есть другие конфигурации, которые необходимо изменить единообразно, рекомендуется настроить язык телефона на английский, а затем использовать исходный код Android или getprop settings Найдите связанные ключевые слова в команде.

Закрыть всплывающее окно с ошибкой

По неизвестным причинам Redmi 6 существовать Прошить в Magisk Неизбежно возникнет "Возникла проблема внутри вашего устройства. Для получения подробной информации обратитесь к производителю вашего устройства." Всплывающее окно с ошибкой:

Поэтому мы можем service.sh Напишите скрипт автоматического выключения в:

Язык кода:javascript
копировать
dump_path=/data/local/tmp/dump.xml
for i in $(seq 1 10)
do
  rm -f $dump_path
  uiautomator dump $dump_path
  grep -q «Внутреннее устройство» $dump_path
  if [ $? -eq 0 ];then
    sleep 1
    input tap 540 1270
    rm -f $dump_path
    sleep 1
    uiautomator dump $dump_path
    grep -q «Внутреннее устройство» $dump_path
    if [ $? -ne 0 ];then
      echo "process done in $i times" >> $dump_path
      break
    fi
  fi
  sleep 10
done

Автоматическая настройка PTP

И по каким-то неизвестным причинам после перезагрузки телефон всегда переходит в режим зарядки, что приводит к невозможности автоматического подключения. adb . После практики выяснилось, что режим подключения принудительно выставляется на PTP шаблон можно решить, поэтому мы также можем service.sh Добавьте следующий сценарий автоматической установки:

Язык кода:javascript
копировать
adb_log_path=/data/local/tmp/adb.log
for i in $(seq 1 10)
do
  rm -f $adb_log_path
  /system/bin/svc usb setFunction ptp true && /system/bin/svc usb getFunction &> $adb_log_path
  sleep 5
done

Учитывая, что последовательность загрузки при запуске неизвестна и по другим причинам, в целях безопасности ее необходимо выполнять в несколько циклов, иначе все равно существует вероятность того, что модификация не удастся. . .

Кирпич первая помощь

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

На данный момент я столкнулся с двумя случаями оказания первой помощи после установки фальшивых кирпичей.

Бесконечная перезагрузка после прошивки TWRP

для Редми 9 Подождите, пока появится модель, и проведите по ней напрямую. recovery Он может продолжать перезапускаться бесконечно. На данный момент вам нужно только скачать vbmet.img ( tar -xvf vbmeta.tar ) и в fastboot В режиме просто закрасьте это:

Язык кода:javascript
копировать
$ fastboot --disable-verity --disable-verification flash vbmeta vbmeta.img

Бесконечная перезагрузка после установки стороннего модуля Magisk

Маскировка Magisk Изменение конфигурации модуля может привести к тому, что телефон не сможет нормально загрузиться. Но пока я еще могу войти recovery , то 80% еще можно спасти. Магиск Модуль установлен по умолчанию в /data/adb/modules/ Вниз, пока это recovery Найдите проблемную папку модуля, удалите ее и перезапустите. В большинстве случаев ее можно сохранить. Подробную информацию см. How to Uninstall Magisk Modules Using TWRP Recovery

Ссылки

Developer Guides | Magisk

Артефакт, который не может пропустить каждый игрок Android

How to Uninstall Magisk Modules Using TWRP Recovery

Install User Certificate Via ADB

Enable "Install via USB" without signing in to Xiaomi account

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose