Может кто-нибудь объяснить мне, какие преимущества приложения Android System над "обычным" приложением (кроме того, что системное приложение не может быть удалено)? Специальные разрешения?
Android System App 101
Ответ 1
Здесь есть некоторая путаница.
Во-первых, если вы говорите о "системном приложении" как о том, чтобы быть одним из установленных с помощью FLAG_SYSTEM, все это означает, что приложение расположено на/системном разделе, который является разделом только для чтения, который является в основном прошивкой Устройство. (Он может быть изменен только как часть обновления прошивки OTA.) Эти приложения не могут быть удалены просто потому, что они находятся в разделе, который нельзя изменить.
Единственное, что особенно важно в системном приложении, заключается в том, что существует несколько разрешений подписи, которые также могут быть предоставлены любому приложению на образ системы. Например, есть разрешение на прямой разговор с диспетчером пакетов для установки приложения (без прохождения через пользовательский интерфейс системы), которое может иметь такое приложение; это полезно для любого магазина приложений/рынка, предварительно загруженного на устройство.
Подписание с сертификатом платформы является ортогональной концепцией - такое приложение может быть либо на системном изображении, либо установлено как стороннее приложение (хотя, очевидно, почти во всех случаях они устанавливаются заранее). Такие приложения имеют доступ к целому набору разрешений низкого уровня для взаимодействия с платформой. С этим сертификатом подписано очень мало приложений; это только для приложений основной платформы. Если вы не работаете с поставщиком оборудования на устройстве, у вас не будет доступа к этому.
Все сертификаты платформы (независимо от того, доступны ли они для всех приложений, требуют, чтобы приложение было подписано с сертификатом платформы или доступно для приложений, установленных на системном разделе) объявляются манифестом платформ, как и любое другое приложение:
https://android.googlesource.com/platform/frameworks/base/+/master/core/res/AndroidManifest.xml
Ответ 2
Существуют разрешения, которые могут быть получены только в системных приложениях. Например, кирпич разрешения может запрашиваться каждым приложением, но он предоставляется только приложениям, которые подписываются как системные приложения. Есть некоторые другие функции, которые имеют больший смысл. Я думаю, что прямое установление и удаление приложений будет также системным разрешением.
Ответ 3
Из вашего объяснения я предполагаю, что вы имеете в виду предустановленные приложения (например, приложение "Браузер" или "Сообщения" ). Вы можете посмотреть в этих приложениях на https://android.googlesource.com. (поиск платформы/пакетов/apps/...).
Вы обнаружите, что это приложение не имеет никакого отношения к вашим собственным настраиваемым приложениям, за исключением того, что вы не можете их удалить. Они не могут быть удалены, поскольку они обеспечивают основные функции для работы вашего телефона/устройства. Таким образом, те же ограничения безопасности применяются там.