Возможно, вы слышали какую-то болтовню о root и последней версии Android, и, возможно, даже слышали такие вещи, как «смерть root». Все изменилось, и новые функции безопасности в Android теперь ограничивают возможности процессов с привилегиями суперпользователя в системном разделе. Я постараюсь объяснить это как можно лучше, не бросая слишком много слов, которые никто (ну, почти никто) не поймет. Хотя, отчасти это неизбежно.
Возможно, вам придется залить жесткой для этого.
Все приложения для Android разветвляются из системного процесса, известного как zygote. В Android 4.3 все изменилось, и теперь у zygote новая политика безопасности. Несмотря на то, что мы можем разветвлять процесс с привилегиями suid (суперпользователь), новые ограничения ограничивают то, что мы можем с ним сделать. В этом и заключается весь смысл SELinux, который полезен для безопасности пользователей. Наш новый процесс (представьте, что это корневое приложение, которое вы пытаетесь запустить) технически имеет root-доступ, но на самом деле он не может сделать с ним ничего полезного. Это очень хороший способ защитить систему от мошеннических процессов, которые вы не хотите - как в потенциальном ZOMGMALWARE - иметь доступ ко всему.
Существует два способа обойти этот новый набор политик безопасности. Одним из них является то, что root-доступ через оболочку - где вы подключили свой телефон к компьютеру и используете командную строку для связи - по-прежнему работает нормально. Вы можете поднять свой статус пользователя и делать то же самое, что вы всегда можете сделать через adb. И шансы довольно малы, что не произойдет, если вы этого не знаете.
Другой способ - с помощью демона su.
Демон - это фоновый процесс, который не находится под непосредственным контролем активного пользователя. Он работает тихо, ожидая времени, необходимого, чтобы сделать что-то полезное. Когда он вызывается, он делает то, для чего был предназначен, а затем снова прячется. Во время инициализации системы нужно запускать демона, который становится камнем преткновения для взлома корневого доступа в «стандартные» ПЗУ.
Реализация Android с Nexus не ищет дополнительных политик в / data / system / sepolicy, таких как CyanogenMod и upstream, которые указывают на это. Он загружает файл / sepolicy с ramdisk и вызывает его через день.
+ Кушик Датта
Вам нужен - как минимум - модифицированный загрузочный образ для запуска собственного демона на вашем Android-устройстве. Это не проблема с чем-то вроде CyanogenMod, но это означает, что вы запускаете что-то другое, кроме акций, чтобы это произошло. Перепрошивка пользовательских образов, ядер и ПЗУ - это то, что многие люди просто не хотят делать.
Так вот где мы находимся. Самые громкие имена в сообществе Android усердно работают над тем, чтобы все было отсортировано, но есть очень хороший шанс, что root, как вы знаете сегодня root, потребует от вас прошивки кастомной прошивки сверх приложения SU и двоичного файла. Хорошо, что Android переходит на более безопасную модель безопасности, и вам просто нужно немного больше узнать о том, как работает ваша система и как ее изменить, чтобы привести ее в нужное вам состояние - что в итоге и является еще одна хорошая вещь.
Google знает, что пользователям нужны такие вещи, как разрешения суперпользователя. Есть очень хороший шанс, что они решат эти проблемы каким-либо образом, либо потребовав root для меньшего количества вещей, либо встроив решение в сам Android. Если вы используете Linux или OSX на своем компьютере, вы знаете, что наличие домашней папки позволяет вам делать большинство вещей без повышения каких-либо разрешений. Возможно, Google будет двигаться в этом направлении. Или, может быть, они добавят суперпользовательские функции в Android в настройках разработчика. Тем временем они продолжат делать полностью разблокируемые телефоны Nexus для пользователей, которые хотят или должны прошивать кастомную прошивку - и люди, такие как разработчики из CyanogenMod (и в других местах), продолжат его создавать.