Я пишу корневое приложение в соответствии с документацией Chainfire , но обнаружил, что мне нужно запустить какую-то команду в другом контексте SELinux.
Используя этот контекст на моем устройстве (OnePlus One с CM12 nightly), у меня нет проблем, но когда я пытаюсь запустить его на другом устройстве (HTC One), команда не выполняется. Если я временно отключу SELinux ( setenforce 0
), команда запустится без проблем.
Проведенный мной анализ показал, что некоторые файлы в HTC One имеют домен SELinux, отличный от домена OnePlus One. Я использовал ls -Z
и , id -Z
чтобы выяснить, в чем проблема, и я также проверил вывод supolicy --dumpav
.
Можно ли найти определения политик SELinux для флагманских устройств всех основных OEM-производителей?
Этого может быть достаточно на supolicy --dumpav
выходе каждого устройства.
Да, но это зависит от того, где хранятся эти файлы политики. Многим производителям нравится перемещать вещи, полагая, что их собственное решение для обеспечения безопасности лучше. Кроме того, в зависимости от вашей версии AOS, все может снова измениться, так как SEAndroid является довольно новой реализацией. Одним из мест для поиска этих файлов является сайт Android Census . Там вы можете перейти к каждому файлу политики/контекста устройства. Например:
isSystemServer=true domain=system
user=system domain=system_app type=system_data_file
user=bluetooth domain=bluetooth type=bluetooth_data_file
user=nfc domain=nfc type=nfc_data_file
user=radio domain=radio type=radio_data_file
user=_app domain=untrusted_app type=app_data_file
user=system name=com.sec.knox.containeragent domain=knox_system_app type=system_data_file
user=system name=com.policydm domain=knox_system_app type=system_data_file
user=_app name=com.centrify.mdm.samsung seinfo=knox_untrusted domain=knox_untrusted_app type=app_data_file
...
МаксЧинни
sepolicy
файл и проверить его с помощью окна GNU/Linux и командыsesearch -A sepolicy
. Большой.не2кубит
МаксЧинни
supolicy
может в реальном времени исправлять и создавать дамп политик SELinux. Команду,supolicy --dumpav
которую я написал в вопросе, можно запустить на самом устройстве.