sdcard-cid-decode
v2.0.0
Published
SD card CID Decoder
Maintainers
Readme
sdcard-cid-decode
Decode the Card Identification (CID) of an SD card on Node.js and the browser.
This module will extract the information in the CID of an SD card. The CID can typically be found in /sys/block/mmcblk0/device/cid.
Breaking changes in 2.0.0
- CommonJS default export:
require('sdcard-cid-decode')now returns the function directly. Previously it returned{ default: fn }and consumers had to writerequire('sdcard-cid-decode').default. ESMimport decodeCID from 'sdcard-cid-decode'is unchanged. - CRC7 checksum value:
crc7Checksumnow returns the 7-bit CRC value as defined by the SD specification (the trailing byte right-shifted by 1 to drop the stop bit). Previous versions returned the raw trailing byte including the stop bit. If you compared this value against externally-computed CRC7s, you were comparing the wrong number; the new value is correct. - Input validation:
decodeCID()now throwsTypeErrorfor non-string or non-hex input andRangeErrorfor inputs that are not 32 hex characters. Previously it silently produced garbage. - Manufacturer name fixes:
0x000027is now spelledPhison(wasPhision),0x000002is nowKioxia(wasToshiba, rebranded in 2019),0x00001dis nowADATA(wasAData). - Node 18+ required.
Installation
npm install --save sdcard-cid-decodeExample
ESM:
import fs from 'node:fs';
import decodeCID from 'sdcard-cid-decode';
const cid = fs.readFileSync('/sys/block/mmcblk0/device/cid', 'utf8');
const info = decodeCID(cid);
console.log(info);
// {
// manufacturerId: '0x000003',
// manufacturerIdDecimal: 3,
// manufacturer: 'SanDisk',
// oemId: 'SD',
// productName: 'SL16G',
// productRevision: '8.0',
// serialNumber: 724511351,
// manufactureDate: '03/2019',
// crc7Checksum: 0
// }CommonJS:
const decodeCID = require('sdcard-cid-decode');
const info = decodeCID('27504853443332473001b44eed00f221');
console.log(info);
// {
// manufacturerId: '0x000027',
// manufacturerIdDecimal: 39,
// manufacturer: 'Phison',
// oemId: 'PH',
// productName: 'SD32G',
// productRevision: '3.0',
// serialNumber: 28593901,
// manufactureDate: '02/2015',
// crc7Checksum: 16
// }API
type CardIdentification
manufacturerId: string: Hex representation of the manufacturer ID assigned by SD-3C, LLC.manufacturerIdDecimal: number: Decimal representation of the manufacturer ID assigned by SD-3C, LLCmanufacturer: string: A guessed manufacturer name based on this list, this list, and the Linux kernel. If the name is unknown then value will be"Unknown"oemId: string: OEM / Application ID assigned by SD-3C, LLCproductName: string: Product nameproductRevision: string: Product revisionserialNumber: numberSerial numbermanufactureDate: string: Manufacture datecrc7Checksum:7-bit checksum
decodeCID(cid: string): CardIdentification
Decodes a CID and returns all the information.
License
Copyright (c) 2021-2026 Max Kueng
MIT License

