» Мануалы

Анализируем права, доступные APK-приложению

Вы скачали приложение с неизвестного сайта, и хотите знать, к чему у него будет доступ после установки? Допустим, не обрадует ли новенькая программа вас отправкой дорогущих сообщений на «короткий номер» за ваш, естественно, счёт? Это несложно, и мы сейчас разберемся в данном вопросе.

Итак, декомпилируем интересующий нас APK-файл. Подробнее об APK можно почитать в другой статье. Находим файл AndroidManifest.xml и открываем его с помощью Notepad++. Ниже приведен список строк, которые обеспечивают приложению те или иные права, с подробным их описанием.

ACCESS_CHECKIN_PROPERTIES – даёт доступ к чтению или записи значений в таблице свойств базы данных, чтобы обновлять вновь загруженные данные.

ACCESS_COARSE_LOCATION – позволяет приложению получать доступ к приблизительному местоположению посредством Cell-ID или Wi-Fi.

ACCESS_FINE_LOCATION – позволяет приложению получать точное местоположение посредством GPS-навигации.

ACCESS_LOCATION_EXTRA_COMMANDS – позволяет приложению получать дополнительные функции, связанные с местоположением.

ACCESS_MOCK_LOCATION – позволяет приложению создавать ненастоящее местоположение для своих целей или проверки.

ACCESS_NETWORK_STATE – позволяет приложению получать информацию про состояние сетей.

ACCESS_SURFACE_FLINGER – позволяет приложению использовать низкоуровневые функции SurfaceFlinger.

ACCESS_WIFI_STATE – позволяет приложению получать информацию о состоянии Wi-Fi сетей.

ACCOUNT_MANAGER – дает приложению доступ к AccountAuthenticators.

ADD_VOICEMAIL – позволяет приложению добавлять записи голосовой почты в систему.

AUTHENTICATE_ACCOUNTS – дает приложению возможность приложению выступать в качестве AccountAuthenticator для AccountManager

BATTERY_STATS – даёт приложению собирать статистику по аккумуляторной батарее.

BIND_APPWIDGET – даёт возможность приложению сообщить сервису AppWidget, какое приложение может получить доступ к данным в AppWidget.

BIND_DEVICE_ADMIN – запрашивается получателем администрирования, чтобы убедиться, что только система может с ним взаимодействовать.

BIND_INPUT_METHOD – запрашивается InputMethodService, чтобы убедиться, что только система может быть с ним связана.

BIND_REMOTEVIEWS – запрашивается RemoteViewService, чтобы убедиться, что только система может быть с ним связана.

BIND_TEXT_SERVICE — запрашивается TextService, чтобы убедиться, что только система может быть с ним связана.

BIND_VPN_SERVICE – запрашивается VpnService, чтобы убедиться, что только система может быть с ним связана.

BIND_WALLPAPER – запрашивается WallpaperService, чтобы убедиться, что только система может быть с ним связана.

BLUETOOTH – позволяет приложению подключаться к сопряженным Bluetooth-устройствам.

BLUETOOTH_ADMIN – позволяет приложению самостоятельно находить и сопрягаться с  Bluetooth-устройствами.

BROADCAST_PACKAGE_REMOVED – позволяет приложению вещать уведомление о том, что пакет приложения был удален.

BROADCAST_SMS – позволяет приложению передавать отчет о доставке SMS-сообщения.

BROADCAST_STICKY – позволяет приложению передавать уведомление о заметках.

BROADCAST_WAP_PUSH – позволяет приложению передавать отчет о доставке при отправке данных посредством WAP.

CALL_PHONE – даёт приложению право инициировать телефонный звонок, минуя стандартный пользовательский интерфейс набора номера.

CALL_PRIVILEGED – позволяет приложению вызывать любой телефонный номер, в том числе номера экстренных служб, минуя стандартный пользовательский интерфейс набора номера.

CAMERA – даёт приложению доступ к камере устройства.

CHANGE_COMPONENT_ENABLED_STATE – позволяет приложению активировать или деактивировать компоненты других приложений.

CHANGE_CONFIGURATION – даёт приложению право изменять текущую конфигурацию, например местоположение.

CHANGE_NETWORK_STATE – позволяет приложению менять состояние подключения к сети.

CHANGE_WIFI_MULTICAST_STATE – даёт приложению право входить в режим Wi-Fi Multicast.

CHANGE_WIFI_STATE – позволяет приложению изменить состояние Wi-Fi подключения.

CLEAR_APP_CACHE – даёт приложению право очищать кэш всех установленных  на устройстве приложений.

CLEAR_APP_USER_DATA – даёт приложению право очистить пользовательские данные, связанные с приложениями.

CONTROL_LOCATION_UPDATES – позволяет приложению включать или выключать уведомление об обновлении местоположения.

DELETE_CACHE_FILES – даёт право приложению удалять файлы кэша.

DELETE_PACKAGES – позволяет удалять пакеты.

DEVICE_POWER – даёт приложению низкоуровневый доступ к управлению питанием устройства.

DIAGNOSTIC – позволяет приложению проводить диагностику системных ресурсов.

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

DUMP – даёт приложению право получать дамп информации о системных службах.

EXPAND_STATUS_BAR – позволяет приложению сворачивать или разворачивать строку состояния.

FACTORY_TEST – позволяет приложению запускаться как тестовое от производителя, с Root-доступом.

FLASHLIGHT – даёт приложению доступ к вспышке камеры.

FORCE_BACK – позволяет приложению форсировать команду «Назад».

GET_ACCOUNTS – даёт приложению доступ к списку учётных записей в Accounts Service.

GET_PACKAGE_SIZE – даёт приложению право узнавать занимаемое любым пакетом место.

GET_TASKS – даёт право приложению получать информацию о запущенных сейчас или недавно приложениях и сервисах.

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

HARDWARE_TEST – даёт приложению доступ к аппаратной периферии.

INJECT_EVENTS – позволяет приложению вставлять события по вводу (в том числе нажатие клавиш, касания или движение трекбола) в общий поток событий для любого окна.

INSTALL_LOCATION_PROVIDER – позволяет приложению устанавливать провайдера местоположения в Location Manager.

INSTALL_PACKAGES – даёт приложению право устанавливать пакеты.

INTERNAL_SYSTEM_WINDOW – даёт приложению право открывать окна, которые используются системным пользовательским интерфейсом.

KILL_BACKGROUND_PROCESSES – даёт право вызывать killBackgroundProcesses (String).

MANAGE_ACCOUNTS – позволяет управлять списком учетных записей в Account Manager

MANAGE_APP_TOKENS – позволяет приложению управлять (создавать, удалять, сортировать) списком приложений в менеджере окон.

MODIFY_AUDIO_SETTINGS —  даёт права приложению изменять глобальные звуковые настройки.

MODIFY_PHONE_STATE – позволяет  изменять состояние телефонной части: питание, mmi и т.д.

MOUNT_FORMAT_FILESYSTEMS – даёт права форматировать файловые системы съемных накопителей.

MOUNT_UNMOUNT_FILESYSTEMS – даёт права монтировать и демонтировать файловые системы съемных накопителей.

NFC – даёт право приложениям выполнять операции ввода-вывода посредством NFC.

PERSISTENT_ACTIVITY – даёт право делать активность приложения постоянной. Внимание, данный функционал будет убран в будущем, и уже сейчас является неактуальным.

PROCESS_OUTGOING_CALLS – даёт право приложению анализировать, изменять или отменять исходящие вызовы.

READ_CALENDAR – даёт приложению доступ к чтению календарных записей пользователя.

READ_CONTACTS – даёт приложению считывать данные о контактах пользователя.

READ_FRAME_BUFFER – даёт доступ к кадровому буферу, в том числе позволяет приложению делать скриншоты.

READ_HISTORY_BOOKMARKS – даёт приложению право считывать историю и закладки браузера.

READ_INPUT_STATE – позволяет приложению получать текущее состояние клавиш и их переключение. Больше не используется.

READ_LOGS – даёт приложению право читать низкоуровневые системные файлы журнала.

READ_PHONE_STATE – даёт приложению право чтения текущего состояния телефона.

READ_PROFILE – даёт приложению право считывать данные пользовательского профиля.

READ_SMS – даёт приложению право читать SMS-сообщения.

READ_SOCIAL_STREAM – позволяет приложению считывать информацию с пользовательского социального стрима.

READ_SYNC_SETTINGS – даёт право считывать настройки синхронизации.

READ_SYNC_STATS – даёт право считывать статистику синхронизации.

READ_USER_DICTIONARY – позволяет приложению считывать словарь пользователя.

REBOOT – позволяет приложению перезагружать устройство.

RECEIVE_BOOT_COMPLETED – позволяет приложению получать строку ACTION_BOOT_COMPLETED, которая вещается по окончанию загрузки системы.

RECEIVE_MMS – даёт приложению право получать информацию о входящих MMS-сообщениях, записывать и обрабатывать их.

RECEIVE_SMS – даёт приложению право получать информацию о входящих SMS-сообщениях, записывать и обрабатывать их.

RECEIVE_WAP_PUSH – позволяет приложению анализировать входящие WAP-сообщения.

RECORD_AUDIO – даёт приложению право записывать звук.

REORDER_TASKS – даёт приложению право изменять порядок задач.

RESTART_PACKAGES – больше не используется, так как строка restartPackage(String) больше не поддерживается.

SEND_SMS – даёт приложению права для отправки SMS-сообщений.

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

SET_ALARM – позволяет приложению создавать будильник или другое событие.

SET_ALWAYS_FINISH – позволяет приложению контролировать, будет ли вся активность немедленно приостановлена в фоновом режиме.

SET_ANIMATION_SCALE – даёт право изменять глобальный коэффициент масштабирования анимации.

SET_DEBUG_APP – настраивает приложение для отладки.

SET_ORIENTATION – даёт доступ к низкоуровневому управлению ориентацией и поворотами экрана.

SET_POINTER_SPEED – даёт доступ к низкоуровневому управлению скоростью курсора.

SET_PREFERRED_APPLICATIONS – больше не используется.

SET_PROCESS_LIMIT – даёт право приложению устанавливать максимальное количество процессов, которые могут быть запущены.

SET_TIME – позволяет приложению устанавливать системное время.

SET_TIME_ZONE – позволяет приложению устанавливать системный часовой пояс.

SET_WALLPAPER – позволяет приложению устанавливать обои.

SET_WALLPAPER_HINTS – позволяет приложению устанавливать подсказки обоев.

SIGNAL_PERSISTENT_PROCESSES – позволяет приложению запрашивать, чтобы был послан сигнал со всех персистирующих процессов.

STATUS_BAR – даёт приложению право закрывать, открывать или полностью отключать статус-бар и его иконки.

SUBSCRIBED_FEEDS_READ – позволяет приложению получать доступ к подписке канала ContentProvider.

SYSTEM_ALERT_WINDOW – позволяет приложению открывать окна поверх всех других приложений, используя TYPE_SYSTEM_ALERT.

UPDATE_DEVICE_STATS – даёт приложению право обновлять статистику устройства.

USE_CREDENTIALS – позволяет приложению запросить authtokens у AccountManager.

USE_SIP – даёт приложению право использовать сервис SIP.

VIBRATE – даёт приложению доступ к вибрации.

WAKE_LOCK – позволяет приложению использовать PowerManager WakeLocks, чтобы не понижать частоту процессора во время сна и не затемнять экран.

WRITE_APN_SETTINGS – позволяет приложению записывать настройки APN (точки доступа к интернету).

WRITE_CALENDAR – даёт права приложению записывать (но не читать) данные в календарь пользователя.

WRITE_CONTACTS – даёт права приложению записывать (но не читать) данные в контакты пользователя.

WRITE_EXTERNAL_STORAGE – даёт права приложению записывать данные на внешний накопитель.

WRITE_GSERVICES – даёт права приложению записывать данные в карты Google.

WRITE_HISTORY_BOOKMARKS – даёт права приложению записывать (но не читать) данные в историю и закладки браузера пользователя.

WRITE_PROFILE – даёт права приложению записывать (но не читать) данные в персональный профиль пользователя.

WRITE_SECURE_SETTINGS – позволяет приложению читать или записывать данные в настройки безопасности системы.

WRITE_SETTINGS – позволяет приложению считывать или записывать системные настройки.

WRITE_SMS – позволяет приложению писать SMS-сообщения.

WRITE_SOCIAL_STREAM – позволяет приложению записывать (но не читать) потоковые социальные данные пользователя.

WRITE_SYNC_SETTINGS – позволяет приложению записывать настройки синхронизации.

WRITE_USER_DICTIONARY – позволяет приложению записывать данные в словарь пользователя.

selevo
2016-07-08 16:10:22
и как что-то запретить ? Самое важное-то не написано !