1 votos

La tabla de particiones del dispositivo Android no es reconocida por ninguna de las herramientas de gestión de particiones.

Tengo un dispositivo Android 8.0.0 (https://www.tvbox-manufacturer.com/product_category/fire-tv-stick/) con eMMC como medio de almacenamiento.

El eMMC es extraíble (zócalo BGA en la placa).

El dispositivo arranca y funciona perfectamente con el eMMC.

Sin embargo, cuando conecto el chip eMMC a una máquina Linux (usando un convertidor de eMMC a USB), las particiones en él no son reconocidas por la máquina Linux (Ubuntu 16.04).

He intentado con las siguientes herramientas para listar las particiones sin éxito:

  1. gdisk
  2. cgdisk
  3. parted

A continuación se muestran los registros (el dispositivo es /dev/sdd):

 - lsblk

Último inicio de sesión: mar ene 14 11:39:49 2020 from 192.168.21.145  
flash@nandflash:~$ lsblk  
NOMBRE   MAJ:MIN RM   TAMAÑO RO TIPO PUNTO DE MONTAJE  
sda      8:0    0 931.5G  0 disco  
sda1   8:1    0  29.8G  0 part [SWAP]  
sda2   8:2    0     1K  0 part  
sda5   8:5    0   476M  0 part /boot/efi  
sda6   8:6    0 190.8G  0 part /  
sda7   8:7    0  95.4G  0 part /var  
sda8   8:8    0 615.1G  0 part /home  
sdb      8:16   0 931.5G  0 disco  
sdb1   8:17   0  14.9G  0 part  
sdb2   8:18   0  95.4G  0 part  
sdb3   8:19   0   977M  0 part  
sdb4   8:20   0 820.3G  0 part  
**sdd      8:48   1  14.7G  0 disco**  
sr0     11:0    1  1024M  0 rom  
flash@nandflash:~$  

 - gdisk

flash@nandflash:~$ **sudo gdisk /dev/sdd**  
[contraseña]  
GPT fdisk (gdisk) versión 1.0.1  

Análisis de la tabla de particiones:  
  MBR: no presente  
  BSD: no presente  
  APM: no presente  
  GPT: no presente  

Creando nuevas entradas de GPT.  

Comando (? para ayuda): p  
**Disco /dev/sdd: 30777344 sectores, 14.7 GiB**  
Tamaño del sector lógico: 512 bytes  
Identificador de disco (GUID): 1D109CAC-AD7E-4231-A398-D1B1FB515752  
La tabla de partición admite hasta 128 entradas  
El primer sector utilizable es 34, el último sector utilizable es 30777310  
Las particiones se alinearán en límites de 2048 sectores  
El espacio libre total es de 30777277 sectores (14.7 GiB)  

Número  Inicio (sector)    Fin (sector)  Tamaño       Código  Nombre  

Comando (? para ayuda):  

 - cgdisk

    ¡Advertencia! ¡Se detectó un disco no GPT o dañado! Este programa intentará  
convertir a formato GPT o reparar los daños en las estructuras de datos GPT, pero puede no  
tener éxito. Use gdisk u otra herramienta de reparación de discos si tiene un GPT dañado.  

                         Presiona cualquier tecla para continuar....  

 - parted

    flash@nandflash:~$ sudo parted /dev/sdd
Parted GNU 3.2  
**Usando /dev/sdd**  
¡Bienvenido a GNU Parted! Escriba 'help' para ver una lista de comandos.  
(parted) p  
Error: /dev/sdd: etiqueta de disco no reconocida  
Modelo: Dispositivo de ALMACENAMIENTO Genérico (scsi)  
Disco /dev/sdd: 15.8GB  
Tamaño del sector (lógico/físico): 512B/512B  
Tabla de particiones: desconocida  
Indicadores de disco:  
(parted)  

¿Alguien puede arrojar luz sobre por qué puede estar ocurriendo esto?
El dispositivo Android arranca sin problemas con el mismo eMMC.

La salida del comando file -sk se muestra a continuación:

flash@nandflash:~$ sudo file -sk /dev/sdd
/dev/sdd: datos
flash@nandflash:~$

Agregando el hexdump:

00000000   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................
.............................................................  ................
00000190   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................
000001A0   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................
000001B0   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................
000001C0   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................
000001D0   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................
000001E0   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................
000001F0   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................
00000200   78 1E BB 3F  C4 C2 B2 3F  C6 DC 9B E6  0B D9 0E 67  x..?...?.......g
00000210   EA 82 D0 91  53 2F 05 91  73 A2 9C CD  2D F4 E1 DF  ....S/..s...-...
00000220   0E 7B 19 88  85 04 DC F9  AD B0 A8 B2  AD 4B 81 E5  .{...........K..
00000230   F3 4C F3 9C  9F 51 E4 E9  DF 0B ED 83  71 E3 31 75  .L...Q......q.1u
00000240   D4 F9 A4 51  CD 4A E5 1C  DE B6 42 57  EC 32 59 C5  ...Q.J....BW.2Y.
00000250   75 1D F6 9A  12 6E 6C BD  DD FD 8D 0B  3A 8D E3 9A  u....nl.....:...
00000260   9A 3E 2F 2E  8D EC 9C 0A  32 0D 9F 57  3D C5 3F 09  .>/.....2..W=.?.
00000270   6E 7F 18 27  4F 5E 89 CF  55 90 B9 7F  36 9E 68 90  n..'O^..U...6.h.
00000280   96 41 AC C1  44 08 4C E9  A3 83 08 E7  92 E9 E1 62  .A..D.L........b
00000290   14 2D 6D 36  5C 36 12 7D  D4 07 01 22  BA 56 06 47  .-m6\6.}...".V.G
000002A0   16 66 C0 6A  B4 A5 31 A8  92 93 52 7C  E6 61 6C DB  .f.j..1...R|.al.

3voto

frederik Puntos 21

Las particiones no son reconocidas porque tu dispositivo, al igual que la mayoría de los dispositivos Android con chipsets Amlogic, utiliza la tabla de particiones propietaria de Amlogic en lugar de una tabla de particiones estándar como GPT o MBR. La tabla de particiones de Amlogic es poco convencional porque se encuentra bastante adentro en la eMMC, en un desplazamiento de 36MiB (0x2400000), en lugar de cerca del principio. Creo que esto se debe a que los chipsets de Amlogic leen el código de arranque crítico desde el desplazamiento 0x200, lo que haría que las tablas de particiones estándar se superpongan.

La bifurcación de Linux de Amlogic contiene código para leer la tabla de particiones personalizada (emmc_partitions.c y emmc_partitions.h), y a partir de eso he creado un analizador de Kaitai Struct, amlogic_emmc_partitions (también en GitHub aquí), que especifica el diseño de manera declarativa.

Puedes cargar ese formato, junto con un volcado de al menos 0x518 bytes desde el desplazamiento 0x2400000 en tu eMMC, en la Kaitai Web IDE para ver las particiones, pero desafortunadamente esa es casi todas las herramientas que existen actualmente para trabajar con este formato de partición en particular. A menos que se escriban otras herramientas, la edición de estas tablas solo es posible manualmente con un editor hexadecimal.

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