El cargador de arranque primario (PBL), que se almacena en la ROM de arranque [3], es la primera etapa del proceso de arranque. Este código lo escribe el fabricante del chipset. [4]
El PBL verifica la autenticidad de la siguiente etapa.
En los teléfonos inteligentes Samsung, la ROM de arranque utiliza la clave de arranque segura de Samsung (SSBK) para verificar las siguientes etapas. [5]
Si falla la verificación del cargador de arranque secundario, ingresará a EDL. [6] [ se necesita una mejor fuente ]
Cargador de arranque secundario
Debido a que el espacio en la ROM de arranque es limitado, se utiliza un cargador de arranque secundario en el eMMC o eUFS . [7] El cargador de arranque secundario inicializa TrustZone . [7] [8]
En el Qualcomm MSM8960, por ejemplo, el cargador de arranque secundario 1 carga el cargador de arranque secundario 2. El cargador de arranque secundario 2 carga TrustZone y el cargador de arranque secundario 3. [9]
Qualcomm ahora llama SBL a XBL y es una implementación de UEFI .
Qualcomm utiliza LK (Little Kernel) o XBL (eXtensible Bootloader), MediaTek utiliza Das U-Boot . [1] Little Kernel es un microkernel para dispositivos integrados , que ha sido modificado por Qualcomm para usarlo como gestor de arranque. [10]
Acerca de
El gestor de arranque de Android (Aboot), que implementa la interfaz fastboot (que no está presente en los dispositivos Samsung), verifica la autenticidad de las particiones de arranque y recuperación. [4] Al pulsar una combinación de teclas específica, los dispositivos también pueden arrancar en modo de recuperación . Aboot luego transfiere el control al núcleo de Linux.
Kernel y initramfs
El initramfs es un archivo comprimido cpio que contiene un pequeño sistema de archivos raíz. Contiene init, que se ejecuta. El kernel de Android es una versión modificada del kernel de Linux. Init monta las particiones. dm-verity verifica la integridad de las particiones que se especifican en el archivo fstab. dm-verity es un módulo del kernel de Linux que Google introdujo en Android desde la versión 4.4. La implementación estándar solo admite la verificación basada en bloques, pero Samsung ha agregado compatibilidad con archivos. [8]
Cigoto
Zygote es generado por el proceso init, que es responsable de iniciar aplicaciones y procesos de servicio de Android. Carga e inicializa clases que se supone que se usan con mucha frecuencia en el montón. Por ejemplo, estructuras de datos dex de bibliotecas. Una vez que Zygote se ha iniciado, escucha comandos en un socket. Cuando se debe iniciar una nueva aplicación, se envía un comando a Zygote que ejecuta una llamada al sistema fork() . [ cita requerida ]
Disposición de la partición
El sistema Android está dividido en diferentes particiones . [11]
La plataforma Qualcomm utiliza la tabla de particiones GUID . Esta especificación forma parte de la especificación UEFI , pero no depende del firmware UEFI. [12]
^ Estos modos tienden a admitir una función para reanudar el arranque normal.
Referencias
^ ab Garri, Khireddine; Kenaza, Tayeb; Aissani, Mohamed (octubre de 2018). "Un nuevo enfoque para la detección de bootkits en la plataforma Android". Conferencia internacional de 2018 sobre comunicaciones inteligentes en tecnologías de red (SaCoNeT) . IEEE. págs. 277–282. doi :10.1109/saconet.2018.8585583. ISBN .978-1-5386-9493-0. Número de identificación del sujeto 56718094.
^ "Arranque verificado de Android [LWN.net]". LWN.net . Archivado desde el original el 2015-04-22 . Consultado el 2021-09-25 .
^ Yuan, Pengfei; Guo, Yao; Chen, Xiangqun; Mei, Hong (marzo de 2018). "Optimización del núcleo de Linux específica del dispositivo para teléfonos inteligentes Android". 2018 6th IEEE International Conference on Mobile Cloud Computing, Services, and Engineering (MobileCloud) . págs. 65–72. doi :10.1109/MobileCloud.2018.00018. ISBN978-1-5386-4879-7. Número de identificación del sujeto 13742883.
^ ab Hay, Roee (14 de agosto de 2017). "fastboot oem vuln: vulnerabilidades del cargador de arranque de Android en personalizaciones de proveedores". Actas de la 11.ª Conferencia USENIX sobre tecnologías ofensivas . WOOT'17. Vancouver, BC, Canadá: Asociación USENIX: 22.
^ Alendal, Gunnar; Dyrkolbotn, Geir Olav; Axelsson, Stefan (1 de marzo de 2018). "Adquisición forense: análisis y elusión del modo de criterios comunes aplicado por el arranque seguro de Samsung". Investigación digital . 24 : S60–S67. doi :10.1016/j.diin.2018.01.008. hdl : 11250/2723051 . ISSN 1742-2876.
^ "Explotación de programadores de Qualcomm EDL (1): obtención de acceso y aspectos internos de PBL". alephsecurity.com . 2018-01-22 . Consultado el 2021-09-13 .
^ ab Yuan, Pengfei; Guo, Yao; Chen, Xiangqun; Mei, Hong (marzo de 2018). "Optimización del núcleo de Linux específica del dispositivo para teléfonos inteligentes Android". 2018 6.ª Conferencia internacional IEEE sobre computación en la nube móvil, servicios e ingeniería (MobileCloud) . IEEE. págs. 65–72. doi :10.1109/mobilecloud.2018.00018. ISBN .978-1-5386-4879-7. Número de identificación del sujeto 13742883.
^ ab Kanonov, Uri; Wool, Avishai (24 de octubre de 2016). "Contenedores seguros en Android". Actas del 6.º taller sobre seguridad y privacidad en teléfonos inteligentes y dispositivos móviles . SPSM '16. Nueva York, NY, EE. UU.: ACM. págs. 3–12. doi :10.1145/2994459.2994470. ISBN9781450345644. Número de identificación del sujeto 8510729.
^ Tao, Chen, Yue Zhang, Yulong Wang, Zhi Wei (17 de julio de 2017). Ataque de degradación en TrustZone. OCLC 1106269801.{{cite book}}: CS1 maint: varios nombres: lista de autores ( enlace )
^ Tang, Qinghao (2021). Seguridad de Internet de las cosas: principios y práctica. Fan Du. Singapur. pág. 166. ISBN978-981-15-9942-2.OCLC 1236261208 .{{cite book}}: Mantenimiento de CS1: falta la ubicación del editor ( enlace )
^ Alendal, Gunnar; Dyrkolbotn, Geir Olav; Axelsson, Stefan (marzo de 2018). "Adquisición forense: análisis y elusión del modo de criterios comunes aplicado por el arranque seguro de Samsung". Investigación digital . 24 : S60–S67. doi :10.1016/j.diin.2018.01.008. hdl : 11250/2723051 . ISSN 1742-2876.
^ Zhao, Longze; Xi, Bin; Wu, Shunxiang; Aizezi, Yasen; Ming, Daodong; Wang, Fulin; Yi, Chao (2018). "Extracción de espejo físico en dispositivos móviles Android basados en Qualcomm". Actas de la 2.ª Conferencia internacional sobre ciencias de la computación e ingeniería de aplicaciones . Csae '18. Nueva York, Nueva York, EE. UU.: ACM Press. págs. 1–5. doi :10.1145/3207677.3278046. ISBN .9781450365123. Número de identificación del sujeto 53038902.
Enlaces externos
Android.com - Flujo de arranque
Administrar el tiempo de arranque
Cargadores de arranque de Qualcomm
La cadena de confianza de Qualcomm
Arranque seguro y autenticación de imágenes
Arranque seguro en Snapdragon 410
Análisis de las cadenas de arranque seguras de Qualcomm
msm8916-línea principal/qhypstub
Análisis completo del inicio del proceso init del sistema Android y del archivo init.rc