7 votos

¿Qué hace TWRP "Arreglar Contextos"?

En mi blu_spark TWRP, tengo una opción (en "Avanzado") llamada 'Arreglar Contextos'.

Cuando lo presiono, dice:

Nota: rara vez se necesitan contextos de fijación

Arreglar los contextos de SELinux puede hacer que su dispositivo no arranque correctamente.

¿Qué hace esta opción, y cuándo querría usarla?

2 votos

Cero uno parece tener una buena explicación

9voto

Jack Wade Puntos 231

SELinux es un mecanismo de seguridad que impide el acceso no autorizado de los procesos a otros procesos, acciones y sistemas de archivos (el "archivo" de UNIX incluye todos los archivos regulares, directorios, dispositivos de bloqueo, dispositivos de caracteres, sockets, etc.). Cada proceso, archivo, directorio y acción se etiqueta con un contexto SELinux, y luego se define una política sobre lo que un contexto puede hacer a otro contexto. La política se carga por el kernel o init en cada bota, y cualquier cosa no definida en la política es negada por el núcleo. Para más detalles ver esta respuesta .

Los contextos de los sistemas de archivos también se generan junto con la política. En Android, tanto sepolicy y file_contexts se guardan en las root / o /{system,vendor,odm}/etc/selinux/ directorios. Los contextos de los sistemas de archivos pueden ser cambiados manualmente usando chcon o de file_contexts usando restorecon . El proceso puede ejecutarse en un contexto determinado utilizando runcon . init también inicia todos los procesos con una predefinida seclabel en *.rc archivos. Algunos también se establecen contextos de sistemas de archivos en cada bota usando restorecon comando en *.rc archivos.

Arreglar los contextos en el TWRP arregla las etiquetas de contexto del sistema de archivos de un /file_contexts archivo. Pero si este archivo es para un dispositivo diferente o contiene contextos erróneos, anticuados o incompletos, el dispositivo puede entrar en el bootloop. Mejor evitar el uso de "Fix Contexts", en su lugar usar chcon o restorecon manualmente si es necesario. O reemplazar file_contexts en la recuperación ramdisk con un archivo actualizado de su actual ROM.


EJEMPLO:

Tengo alrededor de 40000 reglas de política en mi dispositivo, una de ellas es:

~# sesearch --allow -s init -t system_data_file -c dir /sys/fs/selinux/policy
Found 1 semantic av rules:
   allow init system_data_file : dir { search read open ioctl write create getattr setattr relabelfrom relabelto mounton add_name remove_name rmdir } ;

De los más de 2.000 contextos de sistemas de archivos, uno es:

~# grep system_data_file /system/etc/selinux/*contexts
/data(/.*)?    u:object_r:system_data_file:s0

El contexto SELinux de init proceso:

~# ps -p 1 -o pid,cmd,label
  PID     CMD             LABEL
    1     /init           u:r:init:s0

Contexto SELinux del directorio que contiene la configuración del sistema:

~# ls -dZ /data/system
u:object_r:system_data_file:s0   /data/system

Así que si /data/system está etiquetada con el contexto equivocado, init no será capaz de realizar search , read y open operaciones en el directorio y el dispositivo puede hacer bootloop.


DAC vs MAC :

SELinux es una implementación del Control de Acceso Obligatorio (MAC). El Control de Acceso Discrecional (DAC) logra el mismo objetivo de manera menos agresiva asignando UIDs/GIDs a los procesos y archivos:

~# ls -ld /data /data/system
drwxrwx--x   41 system   system        4096 Oct 21 17:40 /data
drwxrwxr-x   21 system   system        3488 Nov  9 13:36 /data/system

El modo de permiso y propiedad explica que sólo los procesos que se ejecutan con UID o GID 1000 ( system ) podrá leer y escribir en el directorio y las aplicaciones normales (con UIDs/GIDs en el rango 10000 a 19999 ) no pueden leer los ajustes del sistema.

Una desventaja del DAC es que está permitido por defecto y tiene un Super Usuario (Usuario root con UID 0 se le permite hacer cualquier cosa). Mientras que el MAC es negado por defecto y no hay Súper Contexto por lo que es menos propenso a las hazañas. Las autoridades del usuario de root también se dividen en capacidades para seguir el principio de los menores privilegios . Combinados, tanto el DAC como el MAC proporcionan un aislamiento más robusto, protección y arenero.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X