Я бегу на Android 4.4.4 и имею два процесса. Контекст безопасности обоих процессов являются: -Предотвращение untrusted_app от доступа к базе данных
com.example.contentproviderexample having security context --> u:r:hm_phonebookaccess_app:s0
com.example.contentprovideruser having security context --> u:r:untrusted_app:s0
com.example.contentproviderexample является поставщиком контента и базу данных, которая имеет контекст безопасности, как -
mydb --> u:object_r:hm_phonebookaccess_data_file:s0
mydb-journal --> u:object_r:hm_phonebookaccess_data_file:s0
выше контекст безопасности был установлен с помощью следующее правило -
type hm_phonebookaccess_app, domain;
app_domain(hm_phonebookaccess_app)
allow hm_phonebookaccess_app dalvikcache_data_file:file { write setattr };
allow hm_phonebookaccess_app hm_phonebookaccess_data_file:file { read getattr open };
allow hm_phonebookaccess_app hm_phonebookaccess_data_file:dir setattr;
allow hm_phonebookaccess_app zygote:unix_stream_socket { getopt getattr };
allow hm_phonebookaccess_app apk_data_file:dir getattr;
allow hm_phonebookaccess_app hm_phonebookaccess_data_file:dir { write create add_name };
allow hm_phonebookaccess_app hm_phonebookaccess_data_file:file { write create setattr };
allow hm_phonebookaccess_app hm_phonebookaccess_data_file:dir search;
allow hm_phonebookaccess_app hm_phonebookaccess_data_file:dir { read open };
allow hm_phonebookaccess_app hm_phonebookaccess_data_file:file lock;
allow hm_phonebookaccess_app hm_phonebookaccess_data_file:dir remove_name;
allow hm_phonebookaccess_app hm_phonebookaccess_data_file:file unlink;
allow installd hm_phonebookaccess_data_file:lnk_file create;
Во время выполнения я делаю setenforce как 1.
Моя цель - предотвратить любой процесс, который принадлежит домену -> untrusted_app, от доступа к базе данных, принадлежащей домену. U: r: hm_phonebookaccess_app: s0
ПРИМЕЧАНИЕ. Поставщик контента экспортируется как истинный.
В seapp_contexts, следующая запись была сделана: -
user=_app domain=hm_phonebookaccess_app name=com.example.contentproviderexample type=hm_phonebookaccess_data_file
Мое наблюдение состоит в том, что в режиме соблюдения, процесс «com.example.contentprovideruser» может получить доступ к базе данных.
Есть ли способ предотвратить доступ домена «untrusted_app» к этой базе данных?
Спасибо и наилучшие пожелания, Souvik
Несколько вопросов: 1) подтвердили ли вы, что двоичный файл 'sepolicy' на запущенном устройстве отражает ваш новый домен и правила, как указано выше? Чтобы убедиться в этом, я рекомендую выталкивать его из работающего устройства с помощью 'adb' и загружать его в' apol' в вашем блоке dev. 2) Пробовали ли вы вводить 'neverallow' в свои правила принудительного применения? Во время компиляции это вызовет ошибку и остановится, если в политике будут несогласованности. При ошибке он должен помочь вам найти правило 'allow', которое позволяет' untrusted_app' обращаться к 'hm_phonebookaccess_app'. –