¿Puedo flashear system.img.ext4 sin desbloquear el gestor de arranque o anular la garantía de KNOX?

Entiendo que:

  1. El proceso de arranque seguro comprueba la firma de los gestores de arranque, kernel y rootfs, pero no la partición del sistema. El e-fuse de Samsung KNOX se establece en 1 cuando cualquier firma es incorrecta.
  2. Herramientas como make_ext4fs pueden crear system.img.ext4 personalizado.
  3. Odin y Heimdall pueden flashear system.img.ext4 en el dispositivo. AFAIK, system.img.ext4 no está firmado, por lo que no hay forma de que el dispositivo verifique su integridad.

Si todo es correcto, podemos cambiar cualquier archivo en la partición /system. Rootear entonces se vuelve muy fácil. Esta es mi forma propuesta de rootear sin anular la garantía de KNOX:

  1. Descomprima el stock system.img.ext4
  2. Encuentre cualquier binario que sea ejecutado por init como root. Los ejemplos son /system/bin/installd y /system/bin/vold
  3. Parchee el binario para plantar una puerta trasera que puede generarnos un shell raíz.
  4. Vuelva a empaquetar system.img.ext4. Esperemos que el tamaño del archivo no cambie.
  5. Use Odin para flashear solo la partición del sistema.
  6. Bota. El arranque seguro no debería detectar nada inusual, ya que solo verifica el cargador de arranque, el kernel y rootfs. ADB shell y luego use nuestra puerta trasera para obtener nuestro shell raíz.

Sin embargo, la gente se esfuerza mucho por encontrar una forma de rootear el Samsung Galaxy S4, Note2 o Note3 sin anular la garantía de KNOX. Por ejemplo, el método saferoot hace uso de una vulnerabilidad del kernel. Después de que Samsung parchó la vulnerabilidad, aún no hay forma de rootear de manera segura. Mi enfoque debe estar equivocado en alguna parte. Agradezco si puedes señalarlo.

PS dm-verity puede verificar la partición del sistema, pero no se usa en ningún dispositivo del mercado.

Respuestas (1)

Como dije, el método de enraizamiento saferoot hace uso de una vulnerabilidad del kernel, CVE-2013-6282 para ser exactos, que se ha solucionado. Las tres instrucciones de enraizamiento que enumeró se basan en este método. Los detalles y el código fuente de saferoot se pueden encontrar aquí: forum.xda-developers.com/showthread.php?t=2565758