Magisk в настоящее время является самым популярным решением для получения root-прав для телефонов Android.
Хотя производители мобильных телефонов, такие как Xiaomi, также предоставляют так называемую поддержку root Разрабатываемая версия Rom, но в новых версиях они не могут писать напрямую как /system/
защищенные пути. Это приводит к тому, что многие вещи до сих пор не сделаны. Самое классическое, что даже системный сертификат изменить нельзя. . .
Magisk может избежать записи в защищенные пути и «замаскировать» свою собственную файловую систему в собственной файловой системе. Таким образом, нет необходимости напрямую изменять исходные данные, а также можно обманом заставить программу использовать файловую систему, предоставляемую Magisk.
Это потрясающе Magisk автор topJohnWu Когда проект вышел, он был всего лишь студентом второго курса и сейчас работает в Apple Сделайте машинный перевод.
Причина популярности Magisk во многом заключается в том, что каждый может внести свой творческий вклад и поделиться написанными им модулями Magisk. Но все равно нужно быть осторожным при использовании чужих модулей.
На официальном складе фактически есть только https://github.com/Magisk-Modules-Repo Это вызвано JohnWu Сопровождаю сам. Модули здесь можно использовать с уверенностью. Конечно, на рынке есть и другие. Magisk Warehouse, но при их использовании все равно придется сначала внимательно прочитать код. . .
TWRPСоответствующую информацию можно найти по адресуОфициальный сайтиодиннеофициальное сообществоПоиск соответствующих моделей,И следуйте инструкции к щеточной машинке.
Конечно, есть большая вероятность, что информация на этих двух зарубежных сайтах может не подойти для социалистических национальных условий. Не расстраивайтесь, если перепрошивка не удалась. Одомашненный @wzsx150 где L.R.Team На основе официальной версии были сделаны улучшения и ленивые руководства по пакету, поддерживается Android 10. Также предоставляются инструменты и руководства для прошивки для большинства отечественных моделей. Вы этого заслуживаете.
Соответствующий контент, который они в настоящее время предлагают, находится здесь:
Последнее, что нужно отметить, это то, что если вы не установите некоторые сторонние ромы (например, Magisk или SuperSU) через TWRP перед перезагрузкой телефона после прошивки TWRP, то после перезагрузки телефона TWRP будет перезаписан родным рекавери. . .
Мигает TWRP Введите новый После восстановления можно Прошить в Магиск. Установить Magisk Вы можете обратиться к шагамОфициальная документация。
Оболочку с правами root можно получить через Magisk, но эти права root по-прежнему ограничены.
и Родной Разрабатываемая версиядругой,Прошить в Magisk устройств невозможно использовать adb root
Такая команда:
$ adb rootadbd cannot run as root in production builds
Но вы можете войти в систему как пользователь root после входа в оболочку:
$ adb shell
cereus:/ $ su
cereus:/ #
Конечно, для этого необходимо нажать «Авторизация» во всплывающем окне Magisk:
Если вы не хотите использовать интерактивные инструкции, вы можете использовать параметр -c:
$ adb shell su -c 'ls /data/data/'
android
android.ext.services
android.ext.shared
...
Или реализовать это с помощью каналов:
$ echo 'ls /data/data/'|adb shell su
android
android.aosp.overlay
android.ext.services
android.ext.shared
...
Кажется, мы можем напрямую получить root-права в оболочке, но когда вы изменяете файлы в таких каталогах, как /system, все ваши изменения будут потеряны после следующего перезапуска.
Таким образом, этот корневой центр на самом деле больше похож на корень только для чтения, а не на общий корень. Конечно, это не бесполезно, все равно очень полезно при просмотре некоторых системных файлов.
Если вы хотите получить настоящие и постоянные root-права на запись файлов, вам необходимо самостоятельно написать модуль Magisk, подготовить файлы, которые необходимо перезаписать при запуске, и загрузить их в систему по типу Маска.
написать стандарт Magisk Рекомендации модуля имеют прямые ссылки Официальная документация,Я не буду здесь вдаваться в подробности. Следует отметить, что Magisk Структура модуля была скорректирована один раз, поэтому имеются две файловые структуры старого и нового модулей. Конечно, новая версия Magisk совместима с обоими способами записи, но все же рекомендуется использовать новый способ записи.
Если вам нужно научиться писать собственные модули, рекомендуется обратиться к следующим двум модулям:
Также следует отметить несколько моментов (новая версия написания):
customize.sh
в основном используется для написания сценариев, которые будут выполняться во время установки. Скрипт здесь может выполнять adb. shell инструкция в. Следует отметить, что этот скрипт выполняется только в процессе установки и не будет выполняться повторно после перезапуска.post-fs-data.sh
или service.sh
Средняя разница в том, что система заблокируется и будет ждать; post-fs-data.sh
выполняется, и service.sh
Он будет выполняться одновременно с системой (часто используется для запуска некоторых служб). Что еще более сбивает с толку, так это то, что контекст, используемый этими двумя сценариями, magisk Входит в комплект busybox, поэтому при выполнении adb shell некоторые изинструкциячас,долженЧтобы использоватьабсолютный путь。post-fs-data.sh
и service.sh
Выполняется после каждого перезапуска системы.system.prop
середина,другой Конфигурация Может использоваться напрямуюsetprop
Заказ.Просо Включите безопасный режим adb по умолчанию требует входа в учетную запись Xiaomi, мы можем customize.sh
Измените конфигурацию для обхода.
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
После того, как Xiaomi включит оптимизацию MIUI, при установке приложения через USB появится окно подтверждения. customize.sh
Измените конфигурацию для обхода.
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
# Отменить связанные анимации
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
Напишите скрипт автоматического выключения в:
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
И по каким-то неизвестным причинам после перезагрузки телефон всегда переходит в режим зарядки, что приводит к невозможности автоматического подключения. adb . После практики выяснилось, что режим подключения принудительно выставляется на PTP шаблон можно решить, поэтому мы также можем service.sh
Добавьте следующий сценарий автоматической установки:
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
Учитывая, что последовательность загрузки при запуске неизвестна и по другим причинам, в целях безопасности ее необходимо выполнять в несколько циклов, иначе все равно существует вероятность того, что модификация не удастся. . .
Как можно часто ходить вдоль реки и не замочить обувь? Теоретически, пока вы продолжаете им пользоваться, ваш телефон рано или поздно заблокируется. Не страшно его закирпичить. Страшно то, что к нему невозможно подключиться даже рекавери, фастбут и адб. Если да, то это по сути настоящий кирпич.
На данный момент я столкнулся с двумя случаями оказания первой помощи после установки фальшивых кирпичей.
для Редми 9 Подождите, пока появится модель, и проведите по ней напрямую. recovery Он может продолжать перезапускаться бесконечно. На данный момент вам нужно только скачать vbmet.img ( tar -xvf vbmeta.tar ) и в fastboot В режиме просто закрасьте это:
$ fastboot --disable-verity --disable-verification flash vbmeta vbmeta.img
Маскировка Magisk Изменение конфигурации модуля может привести к тому, что телефон не сможет нормально загрузиться. Но пока я еще могу войти recovery , то 80% еще можно спасти. Магиск Модуль установлен по умолчанию в /data/adb/modules/
Вниз, пока это recovery Найдите проблемную папку модуля, удалите ее и перезапустите. В большинстве случаев ее можно сохранить. Подробную информацию см. How to Uninstall Magisk Modules Using TWRP Recovery。
Артефакт, который не может пропустить каждый игрок Android
How to Uninstall Magisk Modules Using TWRP Recovery
Install User Certificate Via ADB
Enable "Install via USB" without signing in to Xiaomi account