Подтвердить что ты не робот

Android-разрешения: как я могу узнать, что опасно против нормального?

Android определяет набор разрешений, которые могут запрашивать сторонние приложения. Разрешения классифицируются по чувствительности; большинство разрешений являются "нормальными" или "опасными" . Нормальные разрешения предоставляются автоматически, без запроса пользователя; опасные разрешения предоставляются пользователю, когда приложение установлено, и пользователю предлагается дать согласие на их предоставление.

Вопрос. Для любого конкретного разрешения на Android я имею в виду, как я могу определить, является ли это нормальным разрешением или опасным разрешением? Есть ли список опасных разрешений и список обычных разрешений?

(Я знаю, что сторонние приложения могут объявлять свои собственные разрешения.Я спрашиваю только о стандартных разрешениях.Я знаю, что может быть невозможно получить 100% -полный список.Я ищу только лучших- что-то лучше, чем ничего.)

В отношении связанного, но другого вопроса см. также Где я могу получить список разрешений для Android (однако, это другой вопрос, он не в обычном режиме против опасного различия, и мне не обязательно нужен полный список).

4b9b3361

Ответ 1

Нормальные разрешения предоставляются автоматически, без запроса пользователя

AFAIK, документация здесь неправильная.

опасные разрешения предоставляются пользователю, когда приложение установлено, и пользователю предлагается дать согласие на предоставление им

AFAIK, все разрешения имеют такое поведение.

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

Для любого конкретного разрешения на Android, которое я имею в виду, как я могу определить, является ли это нормальным разрешением или опасным разрешением? Есть ли список опасных разрешений и список обычных разрешений?

Вы можете посмотреть исходный код.

Ответ 2

Для большей простоты ниже приведены список стандартных разрешений, полученных из официальных документов:

Начиная с уровня API 23, следующие разрешения классифицируются как PROTECTION_NORMAL:

ACCESS_LOCATION_EXTRA_COMMANDS
ACCESS_NETWORK_STATE
ACCESS_NOTIFICATION_POLICY
ACCESS_WIFI_STATE
BLUETOOTH
BLUETOOTH_ADMIN
BROADCAST_STICKY
CHANGE_NETWORK_STATE
CHANGE_WIFI_MULTICAST_STATE
CHANGE_WIFI_STATE
DISABLE_KEYGUARD
EXPAND_STATUS_BAR
FLASHLIGHT
GET_PACKAGE_SIZE
INTERNET
KILL_BACKGROUND_PROCESSES
MODIFY_AUDIO_SETTINGS
NFC
READ_SYNC_SETTINGS
READ_SYNC_STATS
RECEIVE_BOOT_COMPLETED
REORDER_TASKS
REQUEST_INSTALL_PACKAGES
SET_TIME_ZONE
SET_WALLPAPER
SET_WALLPAPER_HINTS
TRANSMIT_IR
USE_FINGERPRINT
VIBRATE
WAKE_LOCK
WRITE_SYNC_SETTINGS
SET_ALARM
INSTALL_SHORTCUT
UNINSTALL_SHORTCUT

И вот список Опасные права и группы разрешений:

CALENDAR : READ_CALENDAR, WRITE_CALENDAR
CAMERA : CAMERA
CONTACTS : READ_CONTACTS, WRITE_CONTACTS, GET_ACCOUNTS
LOCATION : ACCESS_FINE_LOCATION, ACCESS_COARSE_LOCATION
MICROPHONE : RECORD_AUDIO
PHONE : READ_PHONE_STATE, CALL_PHONE, READ_CALL_LOG, WRITE_CALL_LOG, ADD_VOICEMAIL, USE_SIP, PROCESS_OUTGOING_CALLS
SENSORS : BODY_SENSORS    
SMS     : SEND_SMS, RECEIVE_SMS, READ_SMS, RECEIVE_WAP_PUSH, RECEIVE_MMS
STORAGE : READ_EXTERNAL_STORAGE, WRITE_EXTERNAL_STORAGE

Ответ 3

Я нашел этот blogpost, перечисляющий разрешения по умолчанию по уровню защиты. Я думаю, это список, который вы искали.

В то же время список мог измениться, так как пост составляет 10 месяцев. Он предоставляет пример кода для перекомпилирования списка самостоятельно.

Ответ 4

Из разрешений android M будут предоставлены во время выполнения. Пользовательское согласие не требуется для обычных разрешений, но для Опасных разрешений пользователь должен предоставить разрешение на использование приложения.

Нормальные разрешения: https://developer.android.com/guide/topics/security/normal-permissions.html

Опасные разрешения: Опасные разрешения охватывают области, где приложение хочет данные или ресурсы, которые включают конфиденциальную информацию пользователя https://developer.android.com/guide/topics/security/permissions.html#normal-dangerous

Ответ 5

Здесь - хорошая статья, в которой описываются все вопросы о разрешениях времени выполнения,

Нормальные разрешения

android.permission.ACCESS_LOCATION_EXTRA_COMMANDS
android.permission.ACCESS_NETWORK_STATE
android.permission.ACCESS_NOTIFICATION_POLICY
android.permission.ACCESS_WIFI_STATE
android.permission.ACCESS_WIMAX_STATE
android.permission.BLUETOOTH
android.permission.BLUETOOTH_ADMIN
android.permission.BROADCAST_STICKY
android.permission.CHANGE_NETWORK_STATE
android.permission.CHANGE_WIFI_MULTICAST_STATE
android.permission.CHANGE_WIFI_STATE
android.permission.CHANGE_WIMAX_STATE
android.permission.DISABLE_KEYGUARD
android.permission.EXPAND_STATUS_BAR
android.permission.FLASHLIGHT
android.permission.GET_ACCOUNTS
android.permission.GET_PACKAGE_SIZE
android.permission.INTERNET
android.permission.KILL_BACKGROUND_PROCESSES
android.permission.MODIFY_AUDIO_SETTINGS
android.permission.NFC
android.permission.READ_SYNC_SETTINGS
android.permission.READ_SYNC_STATS
android.permission.RECEIVE_BOOT_COMPLETED
android.permission.REORDER_TASKS
android.permission.REQUEST_INSTALL_PACKAGES
android.permission.SET_TIME_ZONE
android.permission.SET_WALLPAPER
android.permission.SET_WALLPAPER_HINTS
android.permission.SUBSCRIBED_FEEDS_READ
android.permission.TRANSMIT_IR
android.permission.USE_FINGERPRINT
android.permission.VIBRATE
android.permission.WAKE_LOCK
android.permission.WRITE_SYNC_SETTINGS
com.android.alarm.permission.SET_ALARM
com.android.launcher.permission.INSTALL_SHORTCUT
com.android.launcher.permission.UNINSTALL_SHORTCUT

Опасные разрешения введите описание изображения здесь

Ответ 6

в Android Studio вы можете открыть свой AndroidManifest.xml и нажать F1 на каждом разрешении, которое вы использовали, тогда вы можете увидеть, опасно ли это, что может показать документ.