2013-08-18 6 views
1

Я построение Android приложения, и один из разрешения мне нужно определяются как:Приобретать «подпись» permissionlevel на Android

android:protectionLevel="signature|system|development" 

Как получить уровень защиты подписи? Мне нужно как-то подписать свое приложение?

Должен ли я подписать его с OEM? (Samsung \ HTC \ LG)?

+0

Что вы пытаетесь сделать? Может быть другой подход. – Simon

+0

Я пытаюсь прочитать файл logcat через мое приложение. для этого требует разрешения android.permission.READ_LOGS , которые в последнее время изменили уровень защиты, как описано выше. –

ответ

1

signature означает, что для получения доступа к ресурсу ваше приложение должно быть подписано с тем же сертификатом, что и обладатель разрешения. Если это не ваше приложение, к которому вы пытаетесь подключиться, тогда вам в основном не повезло. Если это система одна, то вы не повезло еще больше, This is documented here:

«подпись»

Разрешения, что только система грантов, если запрашивающего приложения подписываются с тем же сертификатом, что и заявление, которое объявило разрешение. Если сертификаты совпадают, система автоматически предоставляет разрешение без уведомления пользователя или запрашивает явное одобрение пользователя.

EDIT

Im пытается прочитать файл LogCat через мое приложение. это требует с разрешением android.permission.READ_LOGS

Вы не можете получить доступ к журналам на фондовом ROM, которые не создаются приложением. Это введено по соображениям безопасности, поэтому не имеет смысла позволять вам получать его только потому, что вам это нужно. Если вы создадите собственное ПЗУ, вы можете его получить, но тогда вы должны это знать уже.

+0

Спасибо за ваш ответ! Но только для того, чтобы быть ясным: Если я подписываю свой APK с Samsung (например), можно ли позже подписывать его с LG и HTC? от того, что я понял, я посылаю OEM-апку, и они возвращают подписанный. –

+0

У вас не может быть более одной подписи для одного apk. –

+0

Marcin: но уровень разрешений говорит о подписи | system | development , что означает, что мне нужно получить хотя бы один из них. Вы утверждаете, что даже если я получу уровень разрешения подписи, я все равно не смогу их использовать? –