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 -Z
y id -Z
para 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 --dumpav
salida de cada dispositivo.
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:
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
...
Max Chinni
sepolicy
archivo e inspeccionarlo con un cuadro GNU/Linux y el comandosesearch -A sepolicy
también. Excelente.no2qubit
Max Chinni
supolicy
puede parchear en vivo y volcar las políticas de SELinux. El comandosupolicy --dumpav
que escribí en la pregunta se puede ejecutar en el propio dispositivo.