¿Es posible encontrar el conjunto completo de reglas de SELinux para las ROM de stock de OEM?

Estoy escribiendo una aplicación raíz siguiendo la documentación de Chainfire , pero descubrí que debo ejecutar algún comando en otro contexto de SELinux.

Usando ese contexto en mi dispositivo (OnePlus One con CM12 todas las noches), no tengo ningún problema, pero cuando intento ejecutarlo en otro dispositivo (HTC One), el comando falla. Si deshabilito temporalmente SELinux ( setenforce 0), el comando se ejecuta sin problemas.

El análisis que hice reveló que algún archivo en el HTC One tiene un dominio SELinux diferente al del OnePlus One. Usé ls -Zy id -Zpara averiguar dónde estaba el problema y también verifiqué la salida de supolicy --dumpav.

¿Es posible encontrar las definiciones de políticas de SELinux de los dispositivos emblemáticos de todos los principales OEM?

Podría ser suficiente una supolicy --dumpavsalida de cada dispositivo.

Respuestas (1)

Sí, pero depende de dónde se almacenen estos archivos de política. A muchos fabricantes les gusta mover cosas, pensando que su propia solución de seguridad es mejor. Además de eso, dependiendo de su versión de AOS, las cosas pueden haber cambiado nuevamente, ya que SEAndroid es una implementación bastante reciente. Un lugar para buscar estos archivos es el sitio del censo de Android . Allí puede navegar a cada archivo de política/contexto de dispositivo. Por ejemplo:

/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
...
¡Hola, maravilloso recurso! Entonces puedo descargar el sepolicyarchivo e inspeccionarlo con un cuadro GNU/Linux y el comando sesearch -A sepolicytambién. Excelente.
@m-chinni Sí, pero si pudiéramos encontrar algún binario de Android para hacer lo mismo, sería increíble. Es un verdadero PITA tener que transferir los archivos a una caja de Linux, solo para ver qué hay dentro. Aparentemente, Chainfire tiene alguna herramienta para inyectar archivos de políticas. Sería genial tener eso, ya que Samsung está haciendo un gran trabajo proporcionando pólizas de SE incumplidas...
Chainfire supolicypuede parchear en vivo y volcar las políticas de SELinux. El comando supolicy --dumpavque escribí en la pregunta se puede ejecutar en el propio dispositivo.