Есть ли разница в привилегиях приложения Android DPC и системного приложения? Сможет ли системное приложение выполнять все функции, которые может выполнять ЦОД, например перевод устройства в режим одноразового использования?
В чем разница между приложением Device Policy Controller (DCP) и системным приложением?
Ответы (1)
Что ж, нет такой разницы в привилегиях, поскольку система Android.
Если вы посмотрите на архитектуру платформы Android, вы обнаружите, что даже Приложение обычного пользователя имеет такой же доступ ко всем системным ресурсам, как и системное приложение.
Приложения, включенные в платформу, не имеют особого статуса среди приложений, которые пользователь выбирает для установки. Таким образом, стороннее приложение может стать веб-браузером пользователя по умолчанию, мессенджером SMS или даже клавиатурой по умолчанию (применяются некоторые исключения, например системное приложение «Настройки»).
Вы можете прочитать о других различиях в системе и пользовательское приложение здесь.
Кроме того, еще один интересный момент, который следует отметить, заключается в том, что на рабочем устройстве есть только 3 процесса, которые выполняются как root
, Zygote, app_process и adbd (хотя это не позволяет получить root-доступ напрямую с помощью adb
). Это означает, что все другие приложения работают под своими собственными user_id
с разными разрешениями, и, поскольку Android не делает различий между приложениями, два приложения с одинаковыми разрешениями получают одинаковые привилегии и доступ к ресурсам, независимо от того, является ли это системным приложением или пользовательское приложение.
Теперь, чтобы ответить на ваш вопрос, если системное приложение имеет те же привилегии, что и приложение DPC, тогда да, приложение сможет выполнять заданную задачу (например, установить устройство в режим одноразового использования) так же, как и DPC без каких-либо проблем.
В качестве примечания: если вы планируете создать DPC для своей организации, используйте Библиотека поддержки DPC лучше, чем создание и поставка системного приложения.
P.S. Чтобы изменить системный параметр, вашему приложению потребуется разрешение WRITE_SETTINGS. .