Получение разрешения Android с уровнем защиты подписи - PullRequest
0 голосов
/ 07 ноября 2018

Согласно документам разработчика Android, разрешения с signature уровнем защиты в приложении A могут быть получены, если вызывающее приложение B подписано тем же ключом, что и A. Также согласно этому ответу , android разрешения с signature уровнем защиты не могут быть получены сторонними приложениями, но в документах разработчика Android имеется разрешение с именем REQUEST_INSTALL_PACKAGES с signature в качестве уровня защиты. Я видел много кодов, объявляющих это разрешение в своих кодах:

<uses-permission android:name="REQUEST_INSTALL_PACKAGES" /> 

Так как это возможно? Чего не хватает?

1 Ответ

0 голосов
/ 07 ноября 2018

Так как это возможно?

Для них возможно иметь этот элемент в своем манифесте, потому что их разработчики могли его набрать.

То, что приложение имеет элемент <uses-permission>, не означает, что они получают разрешение. Это зависит от многих факторов, включая protectionLevel.

В конкретном случае REQUEST_INSTALL_PACKAGES это не имеет значения signature для protectionLevel. Имеет signature|appop. appop - сбивающее с толку значение, но оно сводится к тому, что «есть странные способы, которыми приложение может использовать разрешение». В этом случае установщик пакета на Android 8.0+ полностью отклонит любое приложение, которое не запрашивает это разрешение и пытается использовать ACTION_VIEW или ACTION_INSTALL_PACKAGE. В противном случае пользователю будет предложено подтвердить, что это приложение может запросить установку пакетов.

Примечание: часть |appop не отображается в JavaDocs, но отображается в манифесте платформы, что важно во время выполнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...