Тестеры Android N: вот почему ваши корневые приложения продолжают давать сбой

click fraud protection

Вам нравится быть на переднем крае, поэтому вы присоединились и установили новые предварительные сборки Android N от Google. Если вы используете это программное обеспечение в качестве ежедневного драйвера (может быть, вам нравится, когда что-то ломается и горит, кто знает?), то вы, вероятно, заметили, что многие из ваших любимых приложений просто не работают вообще. Вы прошили бета-версию SuperSU от Chainfire для Android N, чтобы облегчить некоторые проблемы за счет лучшего управления системой, но многие корневые приложения также не работают. Почему? И как их можно исправить? По данным Chainfire, причина в том, что Google отходит от ящик для инструментов к Ящик для игрушек (и так было со времен Android Marshmallow), и сейчас удаленный крепление для ящика для инструментов поддерживать. Если в прошлом у вас были проблемы с корневыми приложениями, вы, вероятно, раньше видели слово «панель инструментов». Если нет, я позволю Chainfire объяснить, что это такое:

В Android есть три ящика: ящик для инструментов, ящик для занятий и ящик для игрушек. Эти блоки предоставляют реализации различных основных команд Unix — аналогично тем, которые GNU Core Utils предоставляет в различных дистрибутивах Linux.

ящик для инструментов до недавнего времени была стандартной реализацией Android. занятой ящик это в значительной степени стандартная версия за пределами Android, имеющая лицензию GPL и многими портированная на Android. Ящик для игрушек является лицензированной BSD альтернативой занятой ящик созданный бывшим занятой ящик сопровождающий. Ящик для игрушек впервые появился на Android в версии M и постепенно заменяет ящик для инструментов реализация различных команд.

Эти команды в основном используются корневыми приложениями, сценариями устройств и пользователями эмулятора оболочки/терминала adb.

Что касается того, почему вы, вероятно, раньше сталкивались с проблемами, связанными с панелью инструментов или занятой панелью, согласно Chainfire:

Многим корневым приложениям необходимо выполнять команды, предоставляемые этими блоками. Хотя базовая команда в целом одинакова, принятые параметры, точная работа и выходные данные будут различаться в зависимости от реализации и разных версий этих реализаций.

По сути, поскольку некоторым вашим корневым приложениям требуется одна конкретная команда, которую можно найти в одном поле, но другому приложению может потребоваться найти другую конкретную команду. в другом ящике у многих пользователей возникали проблемы с правильной работой определенных корневых приложений, поскольку их реализация в ящике не имеет всех необходимых прав. команды. Это вызывает головную боль у таких разработчиков, как Chainfire, которым приходится иметь дело с пользователями, которые задаются вопросом, почему их приложение не работает. У большинства пользователей, вероятно, есть одна реализация b.usybox установлено, но разработчики могут позвонить ящик для инструментов напрямую, вместо того, чтобы надеяться, что ваша установка содержит правильные команды с соответствующими параметрами, необходимыми для работы их корневого приложения. Однако этот обходной путь не работает в Android N. По цепному огню:

К сожалению, на N Preview крепление для игрушечного ящика заменил крепление для ящика для инструментов как реализация по умолчанию, и даже хуже, крепление для ящика для инструментов был удален, поэтому вы не можете вернуться к нему. Пока крепление для игрушечного ящика кажется, он уже избавился от своей эпопеи с сегментными ошибками, но на самом деле он все еще не так хорошо работает. Не так хорошо, как ящик для инструментов по крайней мере, реализация, которую он заменил.

Вот почему ваши корневые приложения на Android N не работают. Chainfire попыталась частично исправить некоторые неработающие приложения, использующие популярные формы команды монтирования, применив исправление в SuperSU 2.70, однако не все приложения будут исправлены. Если вы конечный пользователь, вы ничего не сможете с этим поделать, пока разработчик вашего любимого приложения не выпустит обновление. Если вы разработчик и задаетесь вопросом, почему у пользователей Android N возникают проблемы, вам стоит прочитать полный пост Chainfire чтобы понять, как исправить ваше приложение.


Были ли у вас сбои в корневых приложениях на Android N? Сообщите всем об этом в комментариях ниже (и особенно постарайтесь связаться с разработчиком)!