Como Modificar a Seqüência de Inicialização do Android para Carregar de um Cartão SD

2

Eu estive pesquisando como inicializar o Android em um cartão SD, e me deparei com esse segmento no XDA, mas sou muito noob para entender isso, e o usuário afirmou que ela não tem o tempo para fazer um guia mais detalhado.

Eu tenho conhecimento básico do que isso significa (depois de algum googling). No entanto, eu ainda não entendi muito bem, e eu estava esperando por alguma elaboração aqui (já que isso parece lidar com coisas parecidas com o sistema operacional Linux (inramfs.gz, kernel.gz e o processo de inicialização em geral).

Esta é a postagem com as instruções:

Victory!

I took sdbags's stock zip (4.3) and extracted it on my computer. I used unmkbootimg to extract the initramfs.gz and kernel.gz from the boot.img in the ROM. I unzipped the initramfs and un-cpio'd it, then modified macallan.fstab to refer to /dev/block/mmcblk1p1 for /data, p2 for /system, and p3 for /cache. I also modified init.macallan.rc to avoid having it try to make filesystems on the EMMC -- I want it not to try touching the EMMC at all.

Next I rebuilt the initramfs.gz. I bought a good quality class 10 microsd and partitioned it on my computer with 3 primary partitions, one for /data, one for /system, and one for /cache (about 2GB and 1GB for /system and /cache). I made ext4 filesystems on all 3 partitions, mounted p2, and copied the rom over and installed it by hand using the updater-script as a guide. Then I unmounted and popped the SD card into my TF701t.

To boot it, I put my tablet into fastboot mode. I booted the kernel and ramdisk using 'fastboot boot' -- no need for kexec from recovery. I can do this without any reliance whatsoever on the internal EMMC. It took awhile to boot up, but it booted first try. The app drawer was a bit slow to come up, but I'm pretty happy I get to use my tablet at all! This whole process turned out to be MUCH easier than I expected it would be, and I'm quite confident I could do this to boot any ROM I wanted. I only use stock because of driver issues with my bluetooth keyboard.

Still willing to try my hand at maintaining cromi's ROM2SD branch though

Thanks everyone for all of your help!

Depois houve mais elaboração aqui :

To answer your question, I don't know. My method works for booting because I changed the ROM's idea of what device/partition /system and /data live on. I don't know where your device holds its idea of which partition holds the radio firmware. If it's somewhere in the initramfs, then you can modify it in the same way I modified mine and tell it to load the radio off of the external SD. If the ROM is hardcoded to look for the radio on the internal SD, then you may be screwed.

A quick note on the initramfs for those curious: the initramfs (initrd, initramdisk, etc) is a compressed miniature linux filesystem holding the bare essentials necessary to get a linux system running. The initrd's job is to figure out where the filesystem(s) are that hold the actual linux installation, mount them, and hand over control to that linux system.

It's not absolutely necessary to use an initrd to boot a linux system, but it makes it a lot easier because you can load drivers, prepare the filesystem, etc. The stock ROM for the TF701t (and I'm assuming most, if not all ROMs for all android devices) use an initrd to mount /system, /data, and any other necessary partitions. I'm just telling it to mount those from my external SD instead of internal.

I don't know how radio partitions work. Is it just a raw firmware image on the partition, or is it an ext4 (or other) filesystem with a firmware binary file on it? The latter case might mean the initrd mounts the radio firmware along with everything else it does before handing over control to android, so it might mean you can change it to a partition on the external card.

Eu não entendo muito bem, e estava esperando por alguma elaboração, já que isso parece lidar com coisas parecidas com o sistema operacional Linux (inramfs.gz, kernel.gz e o processo de inicialização em geral.

    
por Keychain1 19.02.2016 / 00:46

1 resposta

1

Eu realmente não sei de uma maneira padrão de arrancar a partir de um cartão SD, como é fácil ou não depende principalmente do dispositivo Android que você está usando:

Por exemplo, se você tiver um dispositivo Nexus, basta fazer o download do MultiROM na Play Store e pronto. Nunca é tão simples assim. No momento, estou tentando fazer com que meu dispositivo com base no Mediatek MT6575 inicialize a partir do cartão SD, já que a memória interna do eMMC está inativa e ainda não a gerenciei, por isso acho que agora está 'emparedada'.

O que estou tentando dizer aqui é que não há um guia passo-a-passo que funcione com todos os dispositivos, pois há uma grande variedade de dispositivos, cada um com diferentes layouts de partição, kernels etc.

Vou fornecer alguns exemplos de como inicializar a partir do SD para alguns dispositivos diferentes, e esperamos que você consiga ver o que está envolvido, e também se você disser que dispositivo você possui, talvez eu tenha encontrado um método de trabalho para esse dispositivo.

Inicialize o Android do wiki do SdCard - Este é um site para tablets android 'sunxi', mas a informação é útil, já que contém informações sobre como editar as partições de recuperação e de inicialização, mesmo se as imagens do cartão SD funcionarem somente em tablets sunxi.

Use o SD em vez do eMMC no GS3 - Fornece passo a passo como particionar o cartão SD e editar boot.img. Eu tentei este método no meu MT6575, mas apenas a alteração de informações no fstab não foi suficiente, ele ainda estava tentando inicializar do eMMC para o meu dispositivo, mas se você tiver um GS3, isso é ideal.

Multiboot para dispositivos MediaTek - Como ter 1 rom no eMMC interno e um segundo rom no cartão SD. Dá um passo a passo bruto, pode funcionar se você tiver um dispositivo mediatek.

Converter ROM em inicializar a partir do cartão SD - Escrito com um Nokia X2 em mente, mas estou passando por este método agora, monta as duas partições do sistema de uma só vez, o ponto de montagem para a partição do sistema SD é / system-ext

Isso é tudo que tenho por agora, se você conseguir inicializar a partir do SD, por favor, poste um comentário dizendo qual método você usou e qual dispositivo você usou, obrigado. :)

    
por 07.07.2016 / 20:32