Можно ли найти полный набор правил SELinux для стандартных ПЗУ OEM?

Я пишу корневое приложение в соответствии с документацией 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выходе каждого устройства.

Ответы (1)

Да, но это зависит от того, где хранятся эти файлы политики. Многим производителям нравится перемещать вещи, полагая, что их собственное решение для обеспечения безопасности лучше. Кроме того, в зависимости от вашей версии AOS, все может снова измениться, так как SEAndroid является довольно новой реализацией. Одним из мест для поиска этих файлов является сайт Android Census . Там вы можете перейти к каждому файлу политики/контекста устройства. Например:

/seapp_contexts :

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. Большой.
@m-chinni Да, но если бы мы могли найти какой-нибудь бинарный файл для Android, который делал бы то же самое, это было бы здорово. Это настоящая PITA — переносить файлы в Linux-бокс, просто чтобы посмотреть, что внутри. Очевидно, у Chainfire есть какой-то инструмент для внедрения файлов политики. Это было бы здорово, поскольку Samsung отлично справляется с нарушением политик SE...
Chainfire supolicyможет в реальном времени исправлять и создавать дамп политик SELinux. Команду, supolicy --dumpavкоторую я написал в вопросе, можно запустить на самом устройстве.