На правах рекламы:
ISSN 0236-235X (P)
ISSN 2311-2735 (E)

Авторитетность издания

ВАК - К1
RSCI, ядро РИНЦ

Добавить в закладки

Следующий номер на сайте

2
Ожидается:
16 Июня 2024

В Национальном исследовательском университете «Московский энергетический институт» представлен подход, позволяющий интегрировать существующие приложения в модифицированную версию ОС Android без потери гибкости назначения привилегий.

09.12.2015

В наиболее распространенной на данный момент версии ОС (Android 4.4 KitKat) при установке приложения система запрашивает у пользователя список привилегий, которые требуются приложению для его корректной работы (такой же механизм используется в пока еще мало распространенной версии Android 5.0). Пользователь может предоставить приложению все требуемые привилегии или отказаться от установки приложения. Каждая привилегия предоставляет приложению доступ к определенному ресурсу, а именно, к вызову соответствующей API-функции.

Во время работы приложение вызывает нужную функцию с помощью специального объекта Proxy. Объект Proxy при помощи сервисов ядра находит объект Stub, передавая в него упакованные параметры вызова функции, а также идентификатор вызывающего приложения. Функция получает переданные параметры и определяет, имеет ли приложение соответствующую привилегию; если да, то система выполняет заданную функцию и возвращает результат, иначе – выбрасывает исключение типа SecurityException. Исключения такого рода, как правило, не обрабатываются приложениями (поскольку, если приложению требуется данная функция, то соответствующую привилегию необходимо запросить, иначе не нужно вызывать эту функцию) и приводят к аварийному завершению работы программы.

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

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

Подробное описание дается в статье «Маскирование привилегий android для существующих приложений», авторы: Хорев П.Б., Новик А.К. (Национальный исследовательский университет «Московский энергетический институт», Москва).