
He estado investigando cómo iniciar Android desde una tarjeta SD. Este es el post con las instrucciones:
¡Victoria!
Tomé el zip estándar de sdbags (4.3) y lo extraje en mi computadora. Utilicé unmkbootimg para extraer initramfs.gz y kernel.gz del boot.img en la ROM. Descomprimí initramfs y lo quité del cpio, luego modifiqué macallan.fstab para hacer referencia a /dev/block/mmcblk1p1 para /data, p2 para /system y p3 para /cache. También modifiqué init.macallan.rc para evitar que intente crear sistemas de archivos en EMMC. Quiero que no intente tocar EMMC en absoluto.
Luego reconstruí initramfs.gz. Compré una microsd clase 10 de buena calidad y la particioné en mi computadora con 3 particiones primarias, una para /data, otra para /system y otra para /cache (aproximadamente 2 GB y 1 GB para /system y /cache). Creé sistemas de archivos ext4 en las 3 particiones, monté p2, copié la rom y la instalé a mano usando el script de actualización como guía. Luego desmonté e introduje la tarjeta SD en mi TF701t.
Para iniciarlo, puse mi tableta en modo fastboot. Arranqué el kernel y el disco ram usando 'fastboot boot'; no es necesario kexec desde la recuperación. Puedo hacer esto sin depender en absoluto del EMMC interno. Tardó un poco en iniciarse, pero arrancó al primer intento. El cajón de aplicaciones tardó un poco en aparecer, ¡pero estoy muy feliz de poder usar mi tableta! Todo este proceso resultó ser MUCHO más fácil de lo que esperaba y estoy bastante seguro de que podría hacerlo para iniciar cualquier ROM que quisiera. Sólo uso stock debido a problemas con los controladores de mi teclado bluetooth.
Aunque todavía estoy dispuesto a intentar mantener la rama ROM2SD de cromi.
¡Gracias a todos por toda su ayuda!
Luego hubo más elaboración.aquí:
Para responder a tu pregunta, no lo sé. Mi método funciona para el arranque porque cambié la idea de la ROM sobre en qué dispositivo/partición/sistema y/datos se encuentran. No sé dónde tiene su dispositivo la idea de qué partición contiene el firmware de la radio. Si está en algún lugar de initramfs, entonces puedes modificarlo de la misma manera que yo modifiqué el mío y decirle que cargue la radio desde la SD externa. Si la ROM está codificada para buscar la radio en la SD interna, entonces es posible que estés jodido.
Una nota rápida sobre initramfs para aquellos curiosos: initramfs (initrd, initramdisk, etc.) es un sistema de archivos Linux en miniatura comprimido que contiene los elementos esenciales necesarios para ejecutar un sistema Linux. El trabajo del initrd es descubrir dónde están los sistemas de archivos que contienen la instalación real de Linux, montarlos y entregar el control a ese sistema Linux.
No es absolutamente necesario usar un initrd para arrancar un sistema Linux, pero lo hace mucho más fácil porque puedes cargar controladores, preparar el sistema de archivos, etc. La ROM estándar para el TF701t (y supongo que la mayoría, si no todas) ROM para todos los dispositivos Android) utilizan un initrd para montar /system, /data y cualquier otra partición necesaria. Solo le digo que los monte desde mi SD externa en lugar de la interna.
No sé cómo funcionan las particiones de radio. ¿Es solo una imagen de firmware sin formato en la partición, o es un sistema de archivos ext4 (u otro) con un archivo binario de firmware? El último caso podría significar que initrd monta el firmware de la radio junto con todo lo demás que hace antes de entregar el control a Android, por lo que podría significar que puedes cambiarlo a una partición en la tarjeta externa.
No lo entiendo del todo y esperaba algo de explicación, ya que esto parece tratar con cosas similares al sistema operativo Linux (inramfs.gz, kernel.gz y el proceso de inicio en general).
Respuesta1
Realmente no conozco una forma estándar de arrancar desde una tarjeta SD, lo fácil que es o no depende principalmente del dispositivo Android que estés usando:
Por ejemplo, si tienes un dispositivo Nexus, puedes descargar MultiROM desde Play Store y listo. Normalmente nunca es tan simple; Actualmente estoy intentando que mi dispositivo basado en Mediatek MT6575 arranque desde la tarjeta SD ya que la memoria interna eMMC está agotada y aún no la he administrado, así que supongo que ahora mismo está "bloqueada".
Lo que intento decir aquí es que no existe una guía paso a paso que funcione con todos los dispositivos, ya que existe una gran variedad de dispositivos, cada uno con diferentes diseños de partición, núcleos, etc.
Proporcionaré algunos ejemplos sobre cómo arrancar desde SD para algunos dispositivos diferentes y, con suerte, podrá ver lo que implica; además, si dice qué dispositivo tiene, es posible que haya encontrado un método de trabajo para ese dispositivo.
Arrancar Android desde la wiki de SdCard- Este es un sitio para tabletas Android 'sunxi', pero la información es útil ya que contiene información sobre cómo editar las particiones de recuperación y arranque, incluso si las imágenes de la tarjeta SD solo funcionarán en tabletas sunxi.
Utilice SD en lugar de eMMC en GS3- Proporciona paso a paso sobre cómo particionar la tarjeta SD y editar boot.img. Probé este método en mi MT6575, pero simplemente cambiar la información en el fstab no fue suficiente, todavía estaba intentando arrancar desde eMMC para mi dispositivo, pero si tienes un GS3, esto es ideal.
Arranque múltiple para dispositivos MediaTek- Cómo tener 1 rom en la eMMC interna y una 2ª rom en la tarjeta SD. Da un paso a paso aproximado, puede funcionar si tiene un dispositivo mediatek.
Convertir ROM para arrancar desde la tarjeta SD- Escrito con un Nokia X2 en mente, pero voy a seguir este método ahora mismo, monta ambas particiones del sistema a la vez, el punto de montaje para la partición del sistema SD es /system-ext
Eso es todo lo que tengo por ahora, si logras arrancar desde la SD, ¿podrías publicar un comentario diciendo qué método usaste y qué dispositivo usaste? Gracias. :)