1

I have an Android 8.0.0 device (https://www.tvbox-manufacturer.com/product_category/fire-tv-stick/) with eMMC as a storage medium.

The eMMC is removable (BGA socket on the Board).

The device boots and works perfectly fine with the eMMC.

However, when I connect the eMMC chip to a Linux machine (using eMMC to USB converter), the partitions on it are not recognized by the Linux Machine (Ubuntu 16.04).

There is no specific thing i am trying to achieve. I am just curious why the partitions are not being detected by Linux in this product. Because I have carried out this experiment on many other Android devices, but the eMMC partitions get recognized by Linux. I am wondering if Android has introduced some newer method of partitioning which keeps the partitions concealed from the user.

I have tried the following tools to list the partitions to no avail:

  1. gdisk
  2. cgdisk
  3. parted

Following are the logs (device is /dev/sdd):

 - lsblk

Last login: Tue Jan 14 11:39:49 2020 from 192.168.21.145  
flash@nandflash:~$ lsblk  
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT  
sda      8:0    0 931.5G  0 disk  
├─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 disk  
├─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 disk**  
sr0     11:0    1  1024M  0 rom  
flash@nandflash:~$  

 - gdisk

flash@nandflash:~$ **sudo gdisk /dev/sdd**  
[sudo] password for flash:  
GPT fdisk (gdisk) version 1.0.1  

Partition table scan:  
  MBR: not present  
  BSD: not present  
  APM: not present  
  GPT: not present  

Creating new GPT entries.  

Command (? for help): p  
**Disk /dev/sdd: 30777344 sectors, 14.7 GiB**  
Logical sector size: 512 bytes  
Disk identifier (GUID): 1D109CAC-AD7E-4231-A398-D1B1FB515752  
Partition table holds up to 128 entries  
First usable sector is 34, last usable sector is 30777310  
Partitions will be aligned on 2048-sector boundaries  
Total free space is 30777277 sectors (14.7 GiB)  

Number  Start (sector)    End (sector)  Size       Code  Name  

Command (? for help):  

 - cgdisk

    Warning! Non-GPT or damaged disk detected! This program will attempt to  
convert to GPT form or repair damage to GPT data structures, but may not  
succeed. Use gdisk or another disk repair tool if you have a damaged GPT  
disk.  



                         Press any key to continue....  

 - parted

    flash@nandflash:~$ sudo parted /dev/sdd
GNU Parted 3.2  
**Using /dev/sdd**  
Welcome to GNU Parted! Type 'help' to view a list of commands.  
(parted) p  
Error: /dev/sdd: unrecognized disk label  
Model: Generic STORAGE DEVICE (scsi)  
Disk /dev/sdd: 15.8GB  
Sector size (logical/physical): 512B/512B  
Partition Table: unknown  
Disk Flags:  
(parted)  

Can anyone please shed light on why this might be happening?
The Android device boots just fine with the same eMMC.

The output of the file -sk command is shown below:

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

Adding the 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.

| improve this question | | | | |
  • Usually it's wrong sector size (losetup has a --sector-size option to work around that) but doesn't seem to be the case here... might have to look at data directly with hexdump -C, binwalk, ... – frostschutz Jan 16 at 12:46
  • maybe something like this: datalight.com/solutions/technologies/emmc/… – Bodo Jan 16 at 13:02
  • @frostschutz I tried that too, just to give an idea, the 1st sector is blank and the data starts from offset 0x200. So I think there is no MBR present. – nishad kamdar Jan 16 at 13:11
  • @frostschutz Can you suggest a way to decode the binary information in the hexdump ? I have included the hexdump in the question. – nishad kamdar Jan 16 at 13:15
  • @Bodo Thanks for the reply but the eMMC seems to have Android loaded in it and boots successfully. It might as well have ext4 file system on it. – nishad kamdar Jan 17 at 4:55

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.