API 23 переименовал уровень защиты system
в privileged
. Он также ввел уровень защиты preinstalled
.Разница между предустановленным и привилегированным уровнем защиты
Имеет ли privileged
preinstalled
? Другими словами, если приложение имеет доступ к privileged
разрешений (т.е. это система приложений), у него есть доступ к preinstalled
разрешений, а также, даже если эти разрешения не перечислены как privileged
(только preinstalled
)?
Однако, как часть образа системы, приложение Калькулятор может быть предоставлен 'preinstalled' разрешения уровня защиты: 'CHANGE_NETWORK_STATE',' SYSTEM_ALERT_WINDOW' и 'WRITE_SETTINGS' (я не проверял, действительно ли он запрашивает их). Я подозреваю, что привилегированные приложения (в Marshmallow sense, _e.g._ Google Play Services) также могут быть, хотя эти разрешения явно не отмечены как «привилегированные» в [Manifest] системы (https://android.googlesource.com /platform/frameworks/base/+/master/core/res/AndroidManifest.xml). – cuihtlauac
Это различие не совсем новое, за исключением публичного изменения API, чтобы представлять его, а также обработку разрешений. Вернувшись в KK, когда в системе была включена полноценная SE, платформа различает системные и системно-привилегированные приложения. До этого момента это была комбо подписи pkg (она должна была быть подписана с ключом «платформы») и UID Linux (должна была быть «система» или 1000). Теперь это действительно комбо из них, и он объединяет приложения в разные области безопасности в политике SE. Большое различие с «предустановленной» здесь заключается в том, что пользователю не будет предложено предоставить разрешения. –