Как определить, какой код будет использовать данное разрешение? - PullRequest
0 голосов
/ 21 декабря 2009

Например, давайте возьмем android.permission.GET_PACKAGE_SIZE.
Поиск этой строки в исходных файлах Android 1.6 * .xml указывает только на одно приложение, которое ее использует, frameworks\base\tests\AndroidTests.
Поэтому следующим шагом будет поиск файлов .java в надежде, что я в конечном итоге найду код, который может выглядеть так, будто он запрашивает размер пакета.

Это предполагаемый способ обнаружения использования разрешений?

Ответы [ 3 ]

5 голосов
/ 22 декабря 2009

Интерфейс управления приложениями использует API, защищенный этим разрешением. Вероятно, он не запрашивает разрешение в своем манифесте, потому что он работает как системный идентификатор пользователя, поэтому неявно получает разрешение.

Для приложений в целом, да, вы можете посмотреть их AndroidManifest.xml, чтобы найти разрешения. Это осложняется общими идентификаторами пользователей, которые позволяют нескольким приложениям работать под одним и тем же uid и, таким образом, совместно использовать разрешения; любое такое приложение, запрашивающее разрешение, предоставляет это разрешение всем таким приложениям. Приложение настроек с пользовательским интерфейсом управления приложениями использует «системный» общий идентификатор пользователя, поэтому получает все такие разрешения, доступные для системы.

4 голосов
/ 21 декабря 2009

Вообще говоря, вы узнаете, какие разрешения вам нужны, потому что на них ссылаются из API, которые вы хотите использовать, обычно в документах, иногда из-за исключений.

И наоборот, если данное разрешение не указано в документах, за исключением случаев, когда оно названо (например, на Manifest.permission), то это, вероятно, системное разрешение, которое вы не можете иметь, если не работаете над альтернативной прошивкой. .

И, если вы работаете над альтернативной прошивкой, вы бы хорошо разбирались в поиске исходного кода. Я лично использую Google Code Search, например для этого поиска для получения необходимого разрешения.

Таким образом, в случае GET_PACKAGE_SIZE единственное место, где вы найдете его в документах, это Manifest.permission, и единственное место, где требуется исходный код, это метод не-SDK, поэтому я подозреваю, что вы не можете держи его.

0 голосов
/ 21 декабря 2009

Просто проверьте документы .

GET_PACKAGE_SIZE: позволяет приложение, чтобы узнать, сколько места занято любым пакетом.

http://developer.android.com/reference/android/Manifest.permission.html

EDIT

Возможно, я неправильно понял вопрос. Если вы хотите узнать, какой код , используйте значение разрешения. Тогда вам действительно придется самостоятельно копаться в источнике.

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