1 votos

¿Cómo arrancar el dispositivo system-as-Root siempre como rooteado?

Tengo un dispositivo Samsung S10 5G que en realidad es un system-as-root dispositivo. Lo he rooteado siguiendo las instrucciones dadas aquí .

Como el system-as-root dispositivos no tienen ramdisk en boot.img pero en recovery.img por lo que tengo que arrancar siempre el dispositivo con una combinación de recovery para conseguir el acceso Root.

¿Hay alguna forma de conseguir el Root en un reinicio normal?

Tengo una imagen completa de la ROM del dispositivo, así que creo que debe haber alguna manera. Por favor, comparta su opinión.

1 votos

4voto

Jack Wade Puntos 231

Si se pasa por Cómo funciona Magisk y Cómo rootear manualmente un teléfono sería fácil que se diera cuenta de la imposibilidad de lograr lo que busca.

init es el primer proceso iniciado por el kernel, que en su etapa inicial establece SELinux enforcing (si no es ya enforcing ). Antes de que eso ocurra, necesitamos modificar la política de SELinux para que no restrinja el demonio Root ( magiskd ) de la ejecución. También init.rc necesita ser parcheado para inyectar magiskd servicio.

Una opción sencilla es parchear /sepolicy y modificar /init.rc al rootear el dispositivo y guardar los archivos en el dispositivo. Pero en system-as-root dispositivos en los que se encuentran ambos archivos system.img (y posiblemente vendor.img ), no en boot.img . Así que modificarlos rompería " sin sistema "y otras cosas relacionadas, en particular dm-verity y OTAs.

Otra opción es ejecutar un proceso incluso antes de init que parchea la política de SELinux y cambia init.rc sobre la marcha. Y la manera más fácil de conseguirlo es sustituir el original init archivo con Magisk init para que el núcleo ejecute este último. Sin embargo, en los dispositivos SAR init también está en system.img así que no podemos reemplazarlo. Pero siempre podemos arrancar en modo recovery que sí tiene un ramdisk donde Magisk's init puede colocarse y ejecutarse antes que cualquier otro proceso. En A/B Recuperación de dispositivos SAR ramdisk está en boot.img Así, Magisk siempre arranca en recuperación forzando al kernel a ignorar skip_initramfs Parámetro cmdline recibido del gestor de arranque.

¿Hay alguna forma de conseguir el Root en un reinicio normal?

En dispositivos SAR no A/B (como el suyo) no hay ramdisk en boot.img por lo que la única opción para mantener el enfoque sin sistema es colocar Magisk init en recuperación ramdisk en recovery partición, y arrancar siempre en modo de recuperación . A partir de ahí system.img está montado en /system_root por Magisk init El contenido de ramdisk se copian en / limpiando todo lo existente anteriormente, se añaden / modifican archivos en rootfs / , /system_root/system está montado en /system y finalmente [/system]/init se ejecuta para el arranque normal.

Sin embargo las cosas han cambiado con Android 10, ahora system.img está montado en / pero los archivos a añadir / modificar como /init.rc y /sbin se superponen con los montajes de los enlaces como tuiteó por el desarrollador de Magisk.

0 votos

Usted ha mencionado "Así que la modificación de ellos rompería enfoque "systemless" y otras cosas relacionadas, en particular dm-verity y OTAs." así, ¿Es posible Root el dispositivo con el enfoque system-modify, deshabilitando dm-verity y no actualizar el dispositivo con las actualizaciones OTA?

0 votos

@VatishSharma sí definitivamente posible, pero manualmente, no hay manera automatizada.

0 votos

Además, ¿es Parcheando sólo las políticas de Magisk en system.img ¿es suficiente para que el servicio con contexto Magisk funcione?

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