Skip to Content
  • Home
  • General
  • Guides
  • Reviews
  • News
  • 0
    • Business Communication Suite
    • Solutions
    • SIP Trunks
    • Devices
    • Training
    • Help
    • Contact Us
    • Blog
  • Deploy in hours Certified Experts Zero Setup / License Fees*
  • Follow us
    Click here to setup your social networks
  • Sign in
  • ​​

Emmc Cid Decoder 🆓

Most Linux systems expose the CID via sysfs. Run:

cat /sys/block/mmcblk0/device/cid

That outputs a 32-character hex string (128 bits). Example:

150100303136473332e03f5d9600b46d

Now, let’s decode it using a simple Python snippet or an online tool.

Quick manual decode (offsets, 0-indexed): emmc cid decoder

cid = "150100303136473332e03f5d9600b46d"

mid = cid[0:2] # 0x15 (Kingston) oem = cid[2:6] # 0x0100 pnm = bytes.fromhex(cid[6:18]).decode() # "016G32" prv = cid[18:20] # 0xe0 → revision 1.0? psn = cid[20:28] # 0x3f5d9600 mdt = cid[28:32] # 0xb46d → year/mon decode

Or use mmc-utils:

sudo mmc extcsd read /dev/mmcblk0 | grep -i cid

For offline or batch decoding, Python scripts are ideal. Below is a simple yet complete eMMC CID decoder.

#!/usr/bin/env python3
# eMMC CID Decoder
import sys

def decode_emmc_cid(cid_hex): cid_bytes = bytes.fromhex(cid_hex) if len(cid_bytes) != 16: raise ValueError("CID must be 32 hex chars (16 bytes)")

# MID
mid = cid_bytes[0]
manufacturers = 0x15: "Samsung", 0x11: "Toshiba", 0xFE: "SanDisk", 0x45: "Sandisk", 0x03: "Hynix", 0x01: "Samsung", 0x00: "No manufacturer"
print(f"Manufacturer ID (MID): 0xmid:02X (manufacturers.get(mid, 'Unknown'))")
# OID
oid = cid_bytes[2]
print(f"OEM ID (OID): 0xoid:02X")
# Product Name (PNM) - bytes 3 to 8 (6 chars)
pnm = cid_bytes[3:9].decode('ascii', errors='ignore').strip('\x00')
print(f"Product Name (PNM): pnm")
# Product Revision (PRV)
prv = cid_bytes[9]
rev_major = (prv >> 4) & 0x0F
rev_minor = prv & 0x0F
print(f"Product Revision (PRV): rev_major.rev_minor (BCD)")
# Serial Number (PSN) - bytes 10,11,12,13
psn = int.from_bytes(cid_bytes[10:14], byteorder='big')
print(f"Serial Number (PSN): psn (0xpsn:08X)")
# Manufacturing Date (MDT) - bits from byte 14 (nibbles)
mdt_byte = cid_bytes[14]
year_nibble = (mdt_byte >> 4) & 0x0F
month_nibble = mdt_byte & 0x0F
# Year offset from 1997 (JEDEC standard)
year = 1997 + year_nibble
print(f"Manufacturing Date: year:04d-month_nibble:02d (nibble year offset)")
# CRC7
crc_byte = cid_bytes[15] >> 1
print(f"CRC7: 0xcrc_byte:02X")

if name == "main": if len(sys.argv) != 2: print("Usage: python emmc_cid_decoder.py <32-char-hex-cid>") sys.exit(1) decode_emmc_cid(sys.argv[1]) Most Linux systems expose the CID via sysfs

Save as cid_decoder.py and run:

python cid_decoder.py 1501004242473541021A79C0D5012B

The last 7 bits of the CID (bits 7:1) contain a checksum. Advanced decoders verify this CRC. If the CRC is invalid, the CID may have been corrupted due to a bad read or failing chip. That outputs a 32-character hex string (128 bits)

Useful Links
  • Home
  • About us
  • Products
  • Services
  • Shipping
  • Return Policy
  • Warranty
  • Contact us
Legal
  • Terms
  • Privacy
  • Shared Responsibility
    Service Level Agreement
  • Certifications
About us

Cloud One Limited is a leading telephony service provider established in 2017. we offer reliable and secure cloud and on premise business communication solutions, including SIP trunks, Yealink IP phones, and VPS hosting in our Tier 3 data center.


Our mission is to revolutionize cloud communications by providing unparalleled reliability, cutting-edge innovation, and substantial cost savings. We deliver a stress-free, always-available service experience that empowers businesses to thrive in the digital age.

DUNS Registration Number: 561230946.


Follow us
Connect with us
  • Contact us
  • hello@cloudone.co
  • Saachi Plaza, UNIT A3 - Argwings Kodhek Rd
Download Simu Connect

    Get the app on the playstore

    Download desktop app for Windows​

    Download app from the appstore

    Download MacOS app


All Rights Reserved © 2026 OnJournal