Установка кастомных прошивок. Root-права и Magisk / Хабр
Доброго времени суток всем моим читателям! Сегодня, продолжая цикл статей о кастомизации своего устройства, расскажу о том что такое права «root», зачем они нужны, кому они абсолютно точно не нужны и, если вы все-таки решили, как их получить.
Цикл статей
Разблокировка загрузчика и установка стороннего recovery
Установка сторонней прошивки
Содержание
Что такое root-права?
Зачем нужны root-права?
Кому не нужны root-права?
Способы получения root
Как получить root-права?
Настройка Magisk
Риски root-прав
Выводы
Мой набор модулей
Что такое root-права?
Сразу оговорюсь — я не буду вдаваться в технические детали реализации самого процесса рутирования телефона, поскольку недостаточно компетентен в этом, да и статья не про это.
Простыми словами — это права суперпользователя, которые вы можете делегировать одним приложениям и отказывать в доступе к ним другим. С этими правами приложения могут использовать команду su и обходить стандартные ограничения Android, получать доступ к системным файлам и папкам, внедряться в память других процессов и так далее.
Зачастую, в схеме root имеются 2 части — сервер, который выполняет основную программную работу и клиент, который необходим для взаимодействия пользователя с первым, позволяя гибко настраивать систему выдачи этих самых прав.
Подробнее вы можете почитать на сайтах, как ни странно, компаний, разрабатывающих антивирусные решения, вроде Eset или Kaspersky, поскольку данный вопрос непосредственно связан с безопасностью системы Android.
Зачем нужны root-права?
Честно говоря, когда мне задают вопрос, зачем я получал root-права на своем девайсе, я иногда впадаю в ступор, поскольку использую какое-то специфичное ПО, требующее таких разрешений достаточно редко и точечно.
Как хорошие примеры могу привести эффективное использование программ-firewalls, которые с помощью расширенных прав могут более гибко и эффективно контролировать траффик. Также, программы предназначенные для очистки «мусорных» файлов работают гораздо эффективнее, как и разнообразные файловые менеджеры, которые могут позволить вам редактировать системные файлы. Программы для резервного копирования приложений могут сохранять все данные приложения.
Отдельно хотелось бы упомянуть Xposed Framework — специализированное ПО в виде фреймворка, позволяющее одним приложениям изменять поведение системных функций Android в других приложениях и получать более полный доступ к их ресурсам. Например, именно на этом принципе основан Xposed-модуль для перевода текста на любой язык прямо в целевом приложении.
Кому НЕ нужны root-права
Именно так. Если вы сидите на данном ресурсе и дочитали до этого момента, полагаю, вы настроены решительно и будет проще перечислить все ПРОТИВ, нежели все ЗА.
Преимуществ у расширенных прав действительно много, но это силой надо уметь управлять. Таким образом, список пользователей, которым я бы не рекомендовал получать root, можно сформулировать примерно так:
Ваш телефон на гарантии (при получении root гарантия почти всегда снимается)
Вы не можете сформулировать, зачем они вам нужны
Вы работаете на телефоне с информацией содержащую банковскую/государственную/иную тайну
У вас нет возможности сделать полный backup всех разделов системы, равно как и нет возможности восстановить устройство в случае утраты работоспособности из-за root-прав
Способы получения root
Раньше, когда деревья были высокими а слоны мохнатыми, во времена Android ~4, существовали специальные утилиты как на само устройство так и на ПК, с помощью которых можно было получить root.
Если выражаться точнее, эти утилиты взламывали систему одним из множества способов и снисходительно делились с вами кусочком этого доступа.
Большая часть таких утилит была на китайском языке и тыкаться приходилось буквально вслепую. Вот самые яркие представители этого класса:
Преимущества такого способа получения очевидны — простота получения и относительно высокий шанс успеха. Однако такие недостатки как шпионаж, фоновая установка ПО и в целом непрозрачность схемы, как по мне, перекрывают это преимущество с лихвой. Тем более, что на последних версиях Android вероятность успеха получения прав с помощью этих утилит всё ниже. Не рекомендую данный способ к применению.
В определенный момент, как альтернатива этим утилитам, на арену рутирования выходит OpenSource-проект Magisk разработанный, несомненно, талантливым, программистом, под ником topjohnwu.
Главная особенность данного метода — возможность «внесистемного» внесения изменений с помощью подключаемых модулей. Это означает, что с выключением Magisk-модуля, отменялись изменения в системе, которые вносил этот модуль.
Работает это, на самом деле, проще чем можно подумать. В корне файловой системы создается «зеркало» раздела data (так и называется — data_mirror) и необходимые изменения вносятся в систему посредством создания символических ссылок на этот раздел.
Также, старые версии Magisk «из коробки» способны скрыть факт наличия root-прав от программ, которые не любят их (банковские приложения, например). Новые версии требуют установки дополнительных модулей.
Как получить root-права?
Мы, наконец, переходим от скучных лекций к решительным действиям.
Для получения таких прав, вы можете воспользоваться одной из перечисленных выше утилит, но только в том случае, если у вас есть возможность восстановить систему и нет возможности установить Magisk. В целом, я всё равно не рекомендую такие утилиты к применению.
Более подробно мы будем рассматривать установку Magisk на примере самой последней версии (25.2).
Предполагается, что вы уже разблокировали загрузчик и установили сторонний recovery.
Устанавливать стороннюю прошивку необязательно, это не должно вызвать проблем.
Первым делом нам необходимо, как обычно, сделать полный бекап разделов системы на внешний носитель, вроде sd-карты, чтобы если что-то пойдет не так, вернуть как было.
Следующим шагом будет скачивание установочного файла Magisk (исключительно из официального репозитория!). Если ваш recovery позволяет устанавливать APK как zip-архивы, как, например, OrangeFox, то скачанный файл в исходном виде копируем на внешнюю память устройства, поскольку внутренняя зачастую шифруется и вы просто не найдете этот файл из recovery. В случае, если у вас другой recovery, файл Magisk.apk необходимо переименовать в Magisk.zip и таким же образом скопировать на устройство.
Далее необходимо загрузиться в recovery и сделать отдельно резервную копию раздела boot.img. Далее поясню, зачем.
В Magisk имеется возможность полного удаления root с помощью переименования файла установки в uninstall.zip и прошивки в recovery, НО, он не работает на системах с включенным шифрованием data.
Если вдруг какой-то модуль выведет систему из строя и у вас не будет возможности загрузиться в систему, будет очень проблемно этот самый модуль отключить или отключить весь Magisk.
Имея на руках boot исходной системы (без Magisk) мы сможем восстановить конкретно этот раздел и, в большинстве случаев, работоспособность системы.
После того, как бекапы сделаны, люки задраены, просто прошиваем установочный файл Magisk как любой другой архив через recovery. Всё.
В общем и целом, ничего сложного в самом процессе установки нет, после прошивки и загрузки системы, в меню приложений появится приложение «Magisk», которое при первом запуске обновится и будет работать. Самое важно и интересное кроется в настройке.
Настройка Magisk или как пройти SafetyNet
В новых версиях (24+) Magisk на смену Magisk Hide пришел новый метод сокрытия root — Zygisk. Его название состоит из слов Zygote — материнского низкоуровнего процесса Android, с помощью которого происходит работа Magisk и собственно названия приложения.
По умолчанию этот режим отключен в настройках Magisk, но я рекомендую включить его при первой же возможности.
Сразу после этого необходимо установить два модуля из Github-репозиториев — Universal SafetyNet Fix и Shamico. Первый нужен для прохождения CTS-аттестации (сертификация устройства SafetyNet), а второй для корректной работы функции скрытия root и DenyList magisk. Установка модулей интуитивно понятна и не должна вызвать вопросов.
Не уходя далеко после установки модулей переходим в раздел «Настройка DenyList», не активируя пункт «Активировать DenyList».
В этом меню мы увидим список установленных приложений. Скрытие root по умолчанию применено к сервисам Google, отдельно включать не надо! В большинстве случаев достаточно проставить галочки рядом с приложениями, от которых вы хотите скрыть рут, но бывают случаи, когда это не работает (например, некоторые банковские приложения). Тогда я советую нажать на плашку с названием приложения.
Откроется весь список компонентов, от которых скрывается рут и проставить переключатель возле каждого из них. Приложений, которые обходили бы этот метод я еще не видел.
Для закрепления рекомендую использовать функцию «Скрыть приложение Magisk», поскольку его наличие можно вычислить элементарно по списку установленных приложений (так, например, работает MirPay). MagiskManager пересоберется со случайным именем пакета и предложит себя установить.
Если есть возможность, можно ограничить конкретным приложениям доступ к списку приложений с помощью Xposed-модулей вроде Thanox или XPrivacy Lua и тогда скрывать Magisk Manager не обязательно.
После проделанных действий необходимо как можно скорее перезагрузить телефон. Загрузка может быть слегка дольше, чем обычно.
Без должной настройки сервисы Google вскоре заметят чужака в системе и забракуют устройство по CTS.
Скрытие root для приложения необходимо делать до первого запуска целевого приложения! Мне попадались довольно злопамятные программы, которые раз увидев root, сохраняли мой id на сервере, приходилось либо перешивать устройство, либо подсовывать им фейковый Android ID.
Опасности root-прав
Не буду утверждать, что root-права это безопасно — любой необкатанный magisk модуль может привести систему в нерабочее состояние, при неумелом редактировании системных файлов система также придет в негодность, а функционал программ, запрашивающих root не всегда прозрачен. Не давайте root права приложениям, которым, по вашему мнению, они не нужны! Периодически такие права запрашивают Яндекс Карты, статистики ради или для чего-то еще — неизвестно, но проверять не хочется.
Говорить о том, что наличие root как-то сильно ослабляет защиту системы тоже не буду — доступ вполне себе контролируемый, и если вы будете соблюдать элементарную цифровую гигену, никаких проблем не будет.
Самое опасное, наверное — потеря гарантии производителя, что логично.
Выводы
Root-права — мощный инструмент, который дает широкий доступ к системе, но как и любой инструмент, им нужно уметь пользоваться, а в неумелых руках он принесет больше вреда, чем пользы.
Мой набор Magisk-модулей
Busybox — дает доступ приложениям к встроенному busybox от Magisk
No Storage Restricts — убирает ограничения в выборе папок в файловом менеджере
LuckyPatcher — его модуль нужен для переноса приложений в системный раздел
Move Certificates — перенос пользовательских сертификатов в систему
NFC Screen Off — работа NFC при выключенном экране
Установка кастомных прошивок. Root-права и Magisk / Хабр
Доброго времени суток всем моим читателям! Сегодня, продолжая цикл статей о кастомизации своего устройства, расскажу о том что такое права «root», зачем они нужны, кому они абсолютно точно не нужны и, если вы все-таки решили, как их получить.
Цикл статей
Разблокировка загрузчика и установка стороннего recovery
Установка сторонней прошивки
Содержание
Что такое root-права?
Зачем нужны root-права?
Кому не нужны root-права?
Способы получения root
Как получить root-права?
Настройка Magisk
Риски root-прав
Выводы
Мой набор модулей
Что такое root-права?
Сразу оговорюсь — я не буду вдаваться в технические детали реализации самого процесса рутирования телефона, поскольку недостаточно компетентен в этом, да и статья не про это.
Простыми словами — это права суперпользователя, которые вы можете делегировать одним приложениям и отказывать в доступе к ним другим. С этими правами приложения могут использовать команду su и обходить стандартные ограничения Android, получать доступ к системным файлам и папкам, внедряться в память других процессов и так далее.
Зачастую, в схеме root имеются 2 части — сервер, который выполняет основную программную работу и клиент, который необходим для взаимодействия пользователя с первым, позволяя гибко настраивать систему выдачи этих самых прав.
Подробнее вы можете почитать на сайтах, как ни странно, компаний, разрабатывающих антивирусные решения, вроде Eset или Kaspersky, поскольку данный вопрос непосредственно связан с безопасностью системы Android.
Зачем нужны root-права?
Честно говоря, когда мне задают вопрос, зачем я получал root-права на своем девайсе, я иногда впадаю в ступор, поскольку использую какое-то специфичное ПО, требующее таких разрешений достаточно редко и точечно.
Как хорошие примеры могу привести эффективное использование программ-firewalls, которые с помощью расширенных прав могут более гибко и эффективно контролировать траффик. Также, программы предназначенные для очистки «мусорных» файлов работают гораздо эффективнее, как и разнообразные файловые менеджеры, которые могут позволить вам редактировать системные файлы. Программы для резервного копирования приложений могут сохранять все данные приложения.
Отдельно хотелось бы упомянуть Xposed Framework — специализированное ПО в виде фреймворка, позволяющее одним приложениям изменять поведение системных функций Android в других приложениях и получать более полный доступ к их ресурсам. Например, именно на этом принципе основан Xposed-модуль для перевода текста на любой язык прямо в целевом приложении.
Кому НЕ нужны root-права
Именно так. Если вы сидите на данном ресурсе и дочитали до этого момента, полагаю, вы настроены решительно и будет проще перечислить все ПРОТИВ, нежели все ЗА.
Преимуществ у расширенных прав действительно много, но это силой надо уметь управлять. Таким образом, список пользователей, которым я бы не рекомендовал получать root, можно сформулировать примерно так:
Ваш телефон на гарантии (при получении root гарантия почти всегда снимается)
Вы не можете сформулировать, зачем они вам нужны
Вы работаете на телефоне с информацией содержащую банковскую/государственную/иную тайну
У вас нет возможности сделать полный backup всех разделов системы, равно как и нет возможности восстановить устройство в случае утраты работоспособности из-за root-прав
Способы получения root
Раньше, когда деревья были высокими а слоны мохнатыми, во времена Android ~4, существовали специальные утилиты как на само устройство так и на ПК, с помощью которых можно было получить root.
Если выражаться точнее, эти утилиты взламывали систему одним из множества способов и снисходительно делились с вами кусочком этого доступа.
Большая часть таких утилит была на китайском языке и тыкаться приходилось буквально вслепую. Вот самые яркие представители этого класса:
Преимущества такого способа получения очевидны — простота получения и относительно высокий шанс успеха. Однако такие недостатки как шпионаж, фоновая установка ПО и в целом непрозрачность схемы, как по мне, перекрывают это преимущество с лихвой. Тем более, что на последних версиях Android вероятность успеха получения прав с помощью этих утилит всё ниже. Не рекомендую данный способ к применению.
В определенный момент, как альтернатива этим утилитам, на арену рутирования выходит OpenSource-проект Magisk разработанный, несомненно, талантливым, программистом, под ником topjohnwu.
Главная особенность данного метода — возможность «внесистемного» внесения изменений с помощью подключаемых модулей. Это означает, что с выключением Magisk-модуля, отменялись изменения в системе, которые вносил этот модуль.
Работает это, на самом деле, проще чем можно подумать. В корне файловой системы создается «зеркало» раздела data (так и называется — data_mirror) и необходимые изменения вносятся в систему посредством создания символических ссылок на этот раздел.
Также, старые версии Magisk «из коробки» способны скрыть факт наличия root-прав от программ, которые не любят их (банковские приложения, например). Новые версии требуют установки дополнительных модулей.
Как получить root-права?
Мы, наконец, переходим от скучных лекций к решительным действиям.
Для получения таких прав, вы можете воспользоваться одной из перечисленных выше утилит, но только в том случае, если у вас есть возможность восстановить систему и нет возможности установить Magisk. В целом, я всё равно не рекомендую такие утилиты к применению.
Более подробно мы будем рассматривать установку Magisk на примере самой последней версии (25.2).
Предполагается, что вы уже разблокировали загрузчик и установили сторонний recovery.
Устанавливать стороннюю прошивку необязательно, это не должно вызвать проблем.
Первым делом нам необходимо, как обычно, сделать полный бекап разделов системы на внешний носитель, вроде sd-карты, чтобы если что-то пойдет не так, вернуть как было.
Следующим шагом будет скачивание установочного файла Magisk (исключительно из официального репозитория!). Если ваш recovery позволяет устанавливать APK как zip-архивы, как, например, OrangeFox, то скачанный файл в исходном виде копируем на внешнюю память устройства, поскольку внутренняя зачастую шифруется и вы просто не найдете этот файл из recovery. В случае, если у вас другой recovery, файл Magisk.apk необходимо переименовать в Magisk.zip и таким же образом скопировать на устройство.
Далее необходимо загрузиться в recovery и сделать отдельно резервную копию раздела boot.img. Далее поясню, зачем.
В Magisk имеется возможность полного удаления root с помощью переименования файла установки в uninstall.zip и прошивки в recovery, НО, он не работает на системах с включенным шифрованием data.
Если вдруг какой-то модуль выведет систему из строя и у вас не будет возможности загрузиться в систему, будет очень проблемно этот самый модуль отключить или отключить весь Magisk.
Имея на руках boot исходной системы (без Magisk) мы сможем восстановить конкретно этот раздел и, в большинстве случаев, работоспособность системы.
После того, как бекапы сделаны, люки задраены, просто прошиваем установочный файл Magisk как любой другой архив через recovery. Всё.
В общем и целом, ничего сложного в самом процессе установки нет, после прошивки и загрузки системы, в меню приложений появится приложение «Magisk», которое при первом запуске обновится и будет работать. Самое важно и интересное кроется в настройке.
Настройка Magisk или как пройти SafetyNet
В новых версиях (24+) Magisk на смену Magisk Hide пришел новый метод сокрытия root — Zygisk. Его название состоит из слов Zygote — материнского низкоуровнего процесса Android, с помощью которого происходит работа Magisk и собственно названия приложения.
По умолчанию этот режим отключен в настройках Magisk, но я рекомендую включить его при первой же возможности.
Сразу после этого необходимо установить два модуля из Github-репозиториев — Universal SafetyNet Fix и Shamico. Первый нужен для прохождения CTS-аттестации (сертификация устройства SafetyNet), а второй для корректной работы функции скрытия root и DenyList magisk. Установка модулей интуитивно понятна и не должна вызвать вопросов.
Не уходя далеко после установки модулей переходим в раздел «Настройка DenyList», не активируя пункт «Активировать DenyList».
В этом меню мы увидим список установленных приложений. Скрытие root по умолчанию применено к сервисам Google, отдельно включать не надо! В большинстве случаев достаточно проставить галочки рядом с приложениями, от которых вы хотите скрыть рут, но бывают случаи, когда это не работает (например, некоторые банковские приложения). Тогда я советую нажать на плашку с названием приложения.
Откроется весь список компонентов, от которых скрывается рут и проставить переключатель возле каждого из них. Приложений, которые обходили бы этот метод я еще не видел.
Для закрепления рекомендую использовать функцию «Скрыть приложение Magisk», поскольку его наличие можно вычислить элементарно по списку установленных приложений (так, например, работает MirPay). MagiskManager пересоберется со случайным именем пакета и предложит себя установить.
Если есть возможность, можно ограничить конкретным приложениям доступ к списку приложений с помощью Xposed-модулей вроде Thanox или XPrivacy Lua и тогда скрывать Magisk Manager не обязательно.
После проделанных действий необходимо как можно скорее перезагрузить телефон. Загрузка может быть слегка дольше, чем обычно.
Без должной настройки сервисы Google вскоре заметят чужака в системе и забракуют устройство по CTS.
Скрытие root для приложения необходимо делать до первого запуска целевого приложения! Мне попадались довольно злопамятные программы, которые раз увидев root, сохраняли мой id на сервере, приходилось либо перешивать устройство, либо подсовывать им фейковый Android ID.
Опасности root-прав
Не буду утверждать, что root-права это безопасно — любой необкатанный magisk модуль может привести систему в нерабочее состояние, при неумелом редактировании системных файлов система также придет в негодность, а функционал программ, запрашивающих root не всегда прозрачен. Не давайте root права приложениям, которым, по вашему мнению, они не нужны! Периодически такие права запрашивают Яндекс Карты, статистики ради или для чего-то еще — неизвестно, но проверять не хочется.
Говорить о том, что наличие root как-то сильно ослабляет защиту системы тоже не буду — доступ вполне себе контролируемый, и если вы будете соблюдать элементарную цифровую гигену, никаких проблем не будет.
Самое опасное, наверное — потеря гарантии производителя, что логично.
Выводы
Root-права — мощный инструмент, который дает широкий доступ к системе, но как и любой инструмент, им нужно уметь пользоваться, а в неумелых руках он принесет больше вреда, чем пользы.
Мой набор Magisk-модулей
Busybox — дает доступ приложениям к встроенному busybox от Magisk
No Storage Restricts — убирает ограничения в выборе папок в файловом менеджере
LuckyPatcher — его модуль нужен для переноса приложений в системный раздел
Move Certificates — перенос пользовательских сертификатов в систему
NFC Screen Off — работа NFC при выключенном экране
Руководство по установке корневой установки — Зал A Analyzer
- СОДЕРЖАНИЕ
- Руководство по установке корневой установки
- Linux
- Red Hat Enterprise Linux (RHEL) 7, CentOS 7 и совместимая
- Fedora
- Ubuntu
- Arch, Linux, Linux, Linux, Linux, Linux, Linux, Linux, Linux, Linux, Linux, Linux, Linux, Linux, Linux, Linux, Linux, Linux, Linux, Linux, Linux, Linux, Linux,
- Arch. Debian и другие разновидности Linux как минимум с gcc 4.
8 - RHEL6, CentOS 6 и более ранние дистрибутивы Linux
- macOS
- Windows
- Тестирование установки
- Поддержка Python (PyROOT)
- Linux
ROOT — это расширенный программный пакет, разработанный в CERN, Европейской организации ядерных исследований. Он широко используется для анализа и визуализации данных в физике высоких энергий и ядерной физике, а также в других областях.
ROOT можно легко запустить на любом современном ноутбуке. Вам потребуется не менее 2 ГБ памяти (рекомендуется 4 ГБ) и около 1 ГБ дискового пространства (2-3 ГБ при сборке из исходников).
Сложность установки программного обеспечения варьируется от очень простой до довольно высокой, в зависимости от того, является ли ваш компьютер одной из поддерживаемых платформ. В целом есть три типичных способа получения ROOT:
- Набор предварительно скомпилированных пакетов, предоставляемых менеджером пакетов вашей операционной системы.

- Очень прост в установке и почти наверняка хорошо работает
- Простое обновление до новых версий
- Требуются права администратора на вашем компьютере
- В любой момент времени может быть установлена только одна, как правило, самая последняя версия (что, конечно, требуется большинству людей)
- Рекомендуемый подход, если возможно
- Предварительно скомпилированный бинарный дистрибутив, предоставленный командой ROOT.
- Легко, но есть определенный риск проблем из-за неожиданной несовместимости
- Может быть установлено несколько версий параллельно
- Доступно только для самых последних версий операционной системы
- Можно установить в частном порядке без прав администратора
- Требуется ручное обновление
- Сборка из исходников
- Умеренно сложный. Приветствуется опыт создания больших пакетов программного обеспечения.
- Сборка может занять несколько часов.
Невозможно выполнить во время работы от аккумулятора ноутбука. - Конфигурация может быть сложной. Обновление необходимо производить вручную.
- Отсутствующие зависимости обнаружены во время настройки и должны быть идентифицированы и установлены вручную
- Предоставляет доступ ко всем функциям ROOT, включая очень продвинутые (обычно не нужные)
- Несколько версий могут быть установлены параллельно
Текущая версия ROOT 6.14/00 на момент его написания. Ниже приведены инструкции по быстрой установке и запуску этой версии, если это возможно, в конкретных операционных системах на основе нашего опыта.
Linux¶
Red Hat Enterprise Linux (RHEL) 7, CentOS 7 и совместимые¶
- Включите репозиторий EPEL (дополнительные пакеты для Enterprise Linux). Следуйте инструкциям по быстрому запуску EPEL.
- Установите основной пакет ROOT. Это установит наиболее часто используемые библиотеки. Дополнительные пакеты доступны, если вам понадобятся расширенные функции позже.

sudo yum установить корень
- Для работы с ROOT из Python 3 также установите python34-root. Это также автоматически установит python 3.4:
sudo yum установить python34-root
Fedora¶
Для Fedora 24 и выше ROOT 6 доступен в основном репозитории Fedora. Текущая версия ROOT, 6.12/06, требует как минимум Fedora 26. Просто введите
sudo yum установить корень sudo yum установить python3-root
Для Fedora 20-22 ЦЕРН предлагает бинарные дистрибутивы более старых версий ROOT:
- ROOT 6.08/06 для Fedora 22
- КОРЕНЬ 6.06/08 для Fedora 21
- КОРЕНЬ 6.06/08 для Fedora 20
См. инструкции по установке бинарного дистрибутива.
Ubuntu¶
В настоящее время репозитории Ubuntu предлагают только пакеты ROOT 5, которые следует считать устаревшими. Не устанавливайте их. Чтобы получить ROOT 6 в Ubuntu 14, 16 или 17, загрузите и установите соответствующий двоичный выпуск из CERN:
- ROOT 6.

12/06 для Ubuntu 17 . - КОРЕНЬ 6.12/06 для Ubuntu 16
- КОРЕНЬ 6.12/06 для Ubuntu 14
См. инструкции по установке бинарного дистрибутива.
Arch Linux, Debian и другие разновидности Linux как минимум с gcc 4.8¶
Сборка ROOT из исходного кода.
RHEL6, CentOS 6 и более ранние дистрибутивы Linux¶
ROOT 6 не может быть легко установлен на этих системах, даже из исходного кода, потому что системный компилятор слишком стар. (Для ROOT 6 требуется полностью совместимый с C++11 компилятор.) Однако доступны готовые пакеты ROOT 5.
Конечно, ROOT 6 можно запустить даже на довольно старых системах Linux. Сначала нужно установить современный компилятор, собрать ROOT из исходного кода с помощью этого компилятора и запустить ROOT с библиотеками времени выполнения этого компилятора. Однако эта процедура выходит за рамки данного документа.
macOS¶
Прежде чем пытаться установить ROOT, настройте инструменты командной строки Xcode (если это еще не сделано).
В терминале введите
. $xcode-выбрать --установить
После завершения этой команды у вас должен быть работающий компилятор:
$ g++ --версия Настроено с помощью: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 Apple LLVM версии 9.0.0 (clang-900.0.39.2) ...
Быстрый способ получить ROOT на macOS/OSX 10.8-10.13 — загрузить соответствующий бинарный дистрибутив из CERN:
- КОРЕНЬ 6.12/06 для macOS 10.13
- КОРЕНЬ 6.12/06 для macOS 10.12
- КОРЕНЬ 6.10/08 для macOS 10.11
- КОРЕНЬ 6.08/06 для macOS 10.10
- КОРЕНЬ 6.06/08 для macOS 10.9
- КОРЕНЬ 6.04/06 для macOS 10.8
См. инструкции по установке бинарного дистрибутива.
Однако обратите внимание, что использование версий ROOT старше 6.08 не рекомендуется, так как эти версии содержали много ошибок. Если вы все еще используете старую версию macOS, может быть лучше получить последнюю версию ROOT и выполнить сборку из исходного кода.
ROOT также доступен в Homebrew (корневой пакет) и MacPorts (корневой пакет 6). Например, вы можете установить его из Homebrew на macOS 10.11-10.13 следующим образом:
- Установить Homebrew (пропустите, если вы уже сделали это раньше):
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Следуйте текстовым подсказкам для завершения установки. - После настройки Homebrew установка ROOT и Python 3 теперь очень проста:
brew установить root python
ROOT от Homebrew поставляется с поддержкой Python 3 от Homebrew, тогда как бинарные дистрибутивы CERN поддерживают собственный Python 2 от Apple. Однако бинарные версии CERN содержат больше функций.
Windows¶
Начиная с ROOT 6.14/00, CERN предлагает готовый дистрибутив для Windows. Для этого требуется среда выполнения VisualStudio 2017 Redistributable C++, и она должна работать в Windows 7 и более поздних версиях.
См. также общую страницу загрузки Visual Studio 2017.
В качестве альтернативы вы можете загрузить и установить VirtualBox и запустить наш образ виртуальной машины CentOS 7, где предустановлен ROOT (и другое полезное программное обеспечение). Там же вы найдете инструкции по установке. К сожалению, для этого требуется большая загрузка, около 20 ГБ дискового пространства для несжатого образа виртуальной машины и не менее 4 ГБ, а лучше 8 ГБ памяти на главном компьютере. Кроме того, имейте в виду, что в некоторых относительно редких случаях VirtualBox может работать неправильно на вашем компьютере, в зависимости от различных аппаратных или программных особенностей.
Тестирование вашей установки¶
Если вы установили ROOT из менеджера пакетов вашего дистрибутива или из Homebrew/MacPorts, для начала использования программного обеспечения не требуется никакой настройки. Просто введите root , и вы должны увидеть баннер запуска, похожий на этот:
$ корень -------------------------------------------------- ---------- | Добро пожаловать в ROOT 6.12/06 http://root.cern.ch | | (c) 1995-2017, команда ROOT | | Создан для macosx64 | | Из тега v6-12-06, 9февраль 2018 | | Попробуйте '.help', '.demo', '.license', '.credits', '.quit'/'.q' | -------------------------------------------------- ---------- корень [0]
Если вы установили бинарный дистрибутив или из исходного кода, вам нужно будет сначала запустить сценарий установки:
источник <каталог, где вы установили-корень>/bin/thisroot.sh
или, если вы используете tcsh
источник <каталог, где вы установили-корень>/bin/thisroot.csh
После этого должна быть доступна команда root , и вы можете запустить ROOT, как показано выше.
Вероятно, хорошей идеей будет установить ROOT из сценария входа в вашу оболочку. Для этого просто поместите приведенную выше команду «source» в конец вашего ~/.bash_profile (или ~/. для 
csh/tcsh ).
Для систем JLab ifarm также необходимо найти сценарий установки. Там вы можете найти различные версии ROOT, установленные под /приложения/корень . Например, чтобы использовать последнюю версию, введите
. ifarm1402.jlab.org$ источник /apps/root/6.12.04/bin/thisroot.csh
После установки и запуска ROOT введите
корень [0]. демо
в приглашении ROOT для демонстрации некоторых графических возможностей ROOT.
Иногда интересно узнать больше об установке ROOT, с которой вы работаете. ROOT предоставляет команду root-config 9.0203 для этого. Например, чтобы показать, с какими «фичами» (возможностями) был скомпилирован ROOT, запустите root-config --features . Вот пример из систем JLab RHEL7 ifarm, которые вы можете запустить после настройки ROOT, как описано в предыдущем абзаце:
ifarm1402.jlab.org$ какой root-config /u/приложения/корень/6.12.04/корень/бин/корень-конфигурация ifarm1402.jlab.org$ root-config --features встроенный_afterimage встроенный_ftgl встроенный_gl2ps встроенный_glew встроенный_llvm встроенный_lz4 встроенный_tbb встроенный_unuran cling cxx11 исключения, явная ссылка fftw3 gdml genvector http imt mathmore minuit2 mysql opengl pch pgsql python qt rowit общая версия soversion sqlite поток ssl tmva unuran x11 xft xml
Некоторые из этих пунктов говорят сами за себя, другие, вероятно, неясны. Обратитесь к документации ROOT для полного описания.
Поддержка Python (PyROOT)¶
Вы можете увидеть «python» в «списке функций» выше, что указывает на поддержку Python 2. Мы можем проверить это далее:
ifarm1402.jlab.org$ root-config --python-версия 2,7
Таким образом, эта версия ROOT поддерживает Python 2.7. Можем попробовать:
ifarm1402.jlab.org$ python -c 'импортировать ROOT'
Если это завершится без ошибок, эта версия Python, вероятно, будет правильно работать с этой версией ROOT.
Однако будьте осторожны; иногда на одном компьютере установлено несколько версий Python. На ifarm есть две версии Python 2.7:
ifarm1402.jlab.org$ какой питон /приложения/бин/питон ifarm1402.jlab.org$ /apps/bin/python --версия Питон 2.7.12 ifarm1402.jlab.org$ /usr/bin/python --версия Питон 2.7.5
В этом случае не удивляйтесь, если ваш опыт работы с PyROOT окажется немного ухабистым, и будьте готовы подать отчет об ошибке. В вашей личной системе постарайтесь убедиться, что установлена только одна версия.
Как установить ROOT в подсистеме Windows для Linux > Mattia Lopresti
Как установить ROOT в подсистеме Windows для Linux
Иногда установка и использование ROOT CERN на компьютере с Windows может вызвать некоторую критику, особенно когда речь идет о использование макросов, которые в основном разработаны для системы Linux, таких как ROOTgression или RootProf.
В этом руководстве показано, как выполнить чистую установку на ПК с Windows 10 мощного инструмента Linux.
Имейте в виду, что в этой подсистеме Windows для Linux можно установить не только ROOT, но и любое программное обеспечение на базе Linux. Вы также узнаете, как включить графический интерфейс пользователя, чтобы получить, например, графики из ROOT.
Требования
ПК с Windows 10
Подготовка к WSL
Прежде всего, вам нужно перейти к Настройки и нажать Приложения . В правой части окна вы найдете Программы и компоненты . Если вы нажмете на это, окно изменится, и вы найдете слева Включение или отключение функций Windows . Нажав на нее, откроется всплывающее окно со многими вариантами. Обязательно поставьте галочку на Подсистема Windows для Linux , затем нажмите Хорошо и Перезагрузить сейчас .
Установка WSL
Откройте Microsoft Store и найдите Ubuntu . Обязательно установите последнюю версию (на данный момент последней является Ubuntu 20.
04), нажав сначала на Get , а затем на Install . Следуйте инструкциям и создайте имя пользователя с паролем, которое будет вашей учетной записью для WSL.
Вы можете запустить Ubuntu, выполнив поиск Ubuntu или bash в меню пуск.
Первое, что нужно сделать с новой системой Linux, это обновить ее, поэтому откройте терминал и нажмите:
sudo apt update && sudo apt upgrade
Затем нажмите Y или Yes every просят время. Не забудьте очистить систему от бесполезных пакетов, нажав:
sudo apt autoclean && sudo apt autoremove
После завершения обновления.
Включение графического пользовательского интерфейса (GUI) с помощью XMing
Вы наверняка заметили, что до сих пор вы взаимодействовали со своей Linux-системой, только нажимая команды в терминале, без программ с графическим интерфейсом пользователя. Вы также заметите, что если вы запустите какое-либо программное обеспечение, которое, как вы знаете, имеет графический интерфейс, вы получите сообщение об ошибке (например, вызов gedit в терминале или firefox ).
Вам необходимо установить внешний графический сервер, который может управлять графикой Ubuntu, то есть XMing. Вы можете скачать это здесь. Его очень легко установить, просто следуйте инструкциям установщика.
Теперь, если вы не закрывали окна терминала во время установки, вы заметите, что нажатие firefox не улучшится. На самом деле, сервер XMing должен быть открыт до открытия терминала. Итак, чтобы протестировать его, вы можете открыть его, вызвав в меню «Пуск» XMing и только потом открыть терминал, вызвав Ubuntu .
Если вы не хотите беспокоиться об этом, я предлагаю установить XMing в качестве стартового приложения , чтобы вам не приходилось помнить, чтобы открыть его перед терминалом, потому что он будет выполняться автоматически.
Подготовка к установке ROOT
Прежде всего, вам необходимо установить зависимости, нажав:
sudo apt-get install dpkg-dev cmake g++ gcc binutils libx11-dev libxpm-dev \ libxft-dev libxext-dev python
Я также предлагаю установить дополнительные пакеты:
sudo apt-get install gfortran libssl-dev libpcre3-dev \ xlibmesa-glu-dev libglew1.5-dev libftgl-dev \ libmysqlclient-dev libfftw3-dev libcfitsio-dev \ graphviz-dev libavahi-compat-libdnssd-dev \ libldap2-dev python-dev libxml2-dev libkrb5-dev \ libgsl0-dev qt5-по умолчанию
После этого перейдите в раздел Download и выберите выпуск, совместимый с вашим WSL. Я выбрал версию 6.22.00 для Ubuntu 20.04, которую вы можете скачать здесь.
После загрузки сжатого пакета откройте терминал и нажмите:
sudo mv /mnt/c/Users/ИМЯ ПОЛЬЗОВАТЕЛЯ/Downloads/root_v6.22.00.Linux-ubuntu20-x86_64-gcc9.3.tar.gz /opt/
Обязательно замените YOURUSERNAME на имя пользователя, под которым вы вошли. Если вы не знаете, после того, как пользователи/ начнут нажимать кнопку Tab, чтобы включить предложения .
Теперь измените свой каталог на:
cd /opt/
Если вы нажмете ls или ll , вы получите имя корневого пакета. Попадание:
gunzip root_v6.22.00.Linux-ubuntu20-x86_64-gcc9.3.tar.gz
Это может не работать по двум причинам: gunzip не установлен (что можно решить, нажав sudo apt install gunzip ) или потому что вы не использовали команду суперпользователя, поэтому повторите предыдущую команду, поставив вверху строки « судо ».
Теперь у вас есть пакет с именем « root_v6.22.00.Linux-ubuntu20-x86_64-gcc9.3.tar ». Извлеките его, нажав:
tar -xvf root_v6.22.00.Linux-ubuntu20-x86_64-gcc9.3.tar
Обычно вы получаете папку с именем root , но иногда она может иметь полное имя, поэтому что-то вроде root_v6.22.00 . Обязательно проверьте с помощью команды ls , потому что в последней части процесса установки потребуется имя папки.
Последнее, что вам нужно сделать, это автоматически загрузить корневые библиотеки при запуске терминала, и вы можете сделать это, изменив файл .bashrc. Перейдите в начальную папку с помощью:
cd --
И откройте файл .


8
Невозможно выполнить во время работы от аккумулятора ноутбука.

12/06 http://root.cern.ch |
| (c) 1995-2017, команда ROOT |
| Создан для macosx64 |
| Из тега v6-12-06, 9февраль 2018 |
| Попробуйте '.help', '.demo', '.license', '.credits', '.quit'/'.q' |
-------------------------------------------------- ----------
корень [0]
12.04/корень/бин/корень-конфигурация
ifarm1402.jlab.org$ root-config --features
встроенный_afterimage встроенный_ftgl встроенный_gl2ps встроенный_glew встроенный_llvm встроенный_lz4 встроенный_tbb
встроенный_unuran cling cxx11 исключения, явная ссылка fftw3 gdml genvector http imt mathmore minuit2 mysql opengl
pch pgsql python qt rowit общая версия soversion sqlite поток ssl tmva unuran x11 xft xml
5-dev libftgl-dev \
libmysqlclient-dev libfftw3-dev libcfitsio-dev \
graphviz-dev libavahi-compat-libdnssd-dev \
libldap2-dev python-dev libxml2-dev libkrb5-dev \
libgsl0-dev qt5-по умолчанию
3.tar.gz