Fala-se muito de partições Android que podem ser encontradas no Google. Às vezes, posso encontrar referências à GPT na documentação de processadores móveis ou em XDA Developers (onde aprendi que determinados dispositivos usam a GPT como seu esquema). Além disso, não há muita discussão sobre o que os dispositivos Android usam para armazenar informações da partição. Existem exceções: sei que alguns dispositivos usam o método baseado em linha de comando do subsistema MTD, como alguns dos dispositivos anteriores da HTC, e sei que os dispositivos da Qualcomm parecem usar uma tabela de partição GUID.
Se as partições de um dispositivo são representadas por nós de dispositivo iniciados com mtd
ou mtdblock
, o Linux recebe as informações da partição dos argumentos de inicialização. Se as partições forem representadas por nós de dispositivo começando com mmcblk
, o esquema de partição será ambíguo. Poderia estar usando uma tabela de partição GUID, mas o problema é que a tabela teria que começar no primeiro setor, que também é onde todos os gerenciadores de inicialização de primeiro estágio residem na minha experiência.
Assim como as informações da partição nos dispositivos cujos nós das partições começam mtd
podem ser encontradas nos /proc/mtd
dispositivos onde os nós dos dispositivos começam mmcblk
, as mesmas informações (geralmente) podem ser encontradas em /proc/emmc
. Por que o eMMC, um tipo de dispositivo de armazenamento, é tratado como uma alternativa ao MTD, que é uma interface para acessar o armazenamento flash, não sei. Mas esta página no GitHub parece sugerir que as informações da partição para dispositivos com /proc/emmc
não estão reunidas em uma tabela como GPT.
Essa mesma página também parece dizer que os kernels inicializados pelo U-Boot expõem as partições de uma maneira diferente da MTD ou GPT. Aqui está a passagem:
Since MTK devices use the uboot mechanism, partitions including boot and recovery, are not revealed as separate partitions, but rather accessed sequencially by size and start parameters.
Essa frase é tornada sem sentido para mim pelo pouco sobre acesso seqüencial. Talvez alguém possa explicar melhor.
Então, quão comum é a GPT em dispositivos Android? Não vi nenhuma referência ao particionamento no site do desenvolvedor do Android. Se os gerenciadores de inicialização forem realmente armazenados após a tabela de partição, isso significa que os chips são compatíveis com GPT?
fdisk -l /dev/block/mmcblk0
. BTW, esta discussão pode ser útil: El Grande Partition Table Referência