Sí, los blobs binarios forman parte del sistema de archivos de Android. Android no puede arrancar sin ellos, ya que son una especie de controladores de hardware para el dispositivo. La mayoría de ellos se encuentran en /vendor/lib(64)
, algunos también bajo /system
, /etc
y /bin
. Antes de Android Treble , /vendor
no era necesariamente una partición sino un enlace simbólico a /system/vendor
directorio. Empezando por Oreo, /vendor
es una partición que contiene todo el contenido relacionado con OEM
y SoC
proveedor. La mayoría de los blobs son archivos ejecutables o bibliotecas, que se ejecutan como servicios independientes en el arranque. Vea este ejemplo archivos de propiedad lista.
Además, la primera partición (normalmente etiquetada como modem
) en la eMMC contiene el firmware relacionado con la Radio/RIL. Otra partición dsp
contiene la tecnología de Qualcomm Procesador digital de señales binarios relacionados. No se construyen con la ROM, sino que forman parte de Android árbol del sistema de archivos , montado en (/vendor)/firmware
y (/vendor)/dsp
. Su ejecución está aislada del resto del dispositivo.
Muchas particiones relacionadas con los cargadores de arranque son en sí mismas binarios completos, como aboot
, sbl
, rpm
, tz
, cmnlib
, devcfg
, keymaster
, lksecapp
en dispositivos Qualcomm. No son sistemas de archivos montables, sino que son ejecutados directamente por los gestores de arranque durante el proceso de arranque. Todos ellos son blobs binarios propietarios; la parte de código cerrado de los dispositivos Android.
PS: Android (un superconjunto de AOSP) no es un sistema operativo genérico que se pueda instalar en cualquier hardware como hacemos en los PC. El soporte para el hardware está bloqueado en los binarios propietarios ( HALs ) por el OEM y/o los proveedores de silicio. Así que los blobs binarios son críticos, y el AOSP de código abierto (incluyendo la fuente modificada del kernel de Linux proporcionada por Google) no sirve de nada sin los controladores de hardware. Y los fabricantes rara vez documentan el funcionamiento de su hardware para que desarrolladores como Replicante puede implementar un controlador de código abierto. Hay un conjunto muy pequeño de componentes de hardware en los dispositivos Android que se puede esperar que se manejen directamente haciendo syscalls al kernel como es el caso de los PC. La única adición notable por parte de los vendedores de SoC / OEM a la fuente genérica del kernel ya modificada por Google ( 1 , 2 ) es el manejo de dispositivos no detectables (definición de los nodos del dispositivo). El resto del material relacionado con el hardware se maneja en el espacio de usuario a través de blobs binarios.
Más información: