Je suis sous Android 4.4.4 et j'ai deux processus. Le contexte de la sécurité des deux processus sont: -Empêcher untrusted_app d'accéder à la base de données
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 est un fournisseur de contenu et la base de données qui a contexte de sécurité que -
mydb --> u:object_r:hm_phonebookaccess_data_file:s0
mydb-journal --> u:object_r:hm_phonebookaccess_data_file:s0
Le contexte de sécurité ci-dessus a été définie à l'aide règle suivante -
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;
Au moment de l'exécution, je fais setenforce comme 1.
Mon but est d'empêcher tout processus qui appartient au domaine -> untrusted_app d'accéder à la base de données qui appartient au domaine-u: r: hm_phonebookaccess_app: s0
REMARQUE: Le fournisseur de contenu est exporté comme vrai.
Dans les seapp_contexts, entrée suivante a été faite: -
user=_app domain=hm_phonebookaccess_app name=com.example.contentproviderexample type=hm_phonebookaccess_data_file
Mon observation est que en mode d'exécution, le processus « com.example.contentprovideruser » est en mesure d'accéder à la base de données.
Est-il possible que je puisse empêcher le domaine "untrusted_app" d'accéder à cette base de données?
Merci et salutations, Souvik
Quelques questions: 1) avez-vous confirmé que le binaire 'sepolicy' sur le périphérique en cours d'exécution reflète votre nouveau domaine et les règles comme ci-dessus? Pour vérifier à coup sûr, je recommande de le pulper de l'appareil en cours d'exécution avec 'adb' et de le charger dans' apol' sur votre boîte de dev. 2) avez-vous essayé d'introduire un 'neverallow' dans vos règles d'application de type? Pendant la compilation, cela provoquera une erreur et s'arrêtera s'il y a des incohérences dans la politique. En cas d'erreur, il devrait vous aider à localiser la règle 'allow' qui autorise' untrusted_app' à accéder à 'hm_phonebookaccess_app'. –