“Lenovo” 128GB

  • Obtained from: AliExpress
  • Advertised capacity: 128GB
  • Fake/skimpy flash: Fake flash
  • Protected area: 0 bytes
  • Speed class markings: None
Sample #123Average
Price paid$3.98$3.48$3.48$3.65
Logical capacity134,218,776,576 bytes134,217,728,000 bytes134,217,728,000 bytes134,218,077,525 bytes
Physical capacity8,052,895,232 bytes8,233,943,040 bytes8,414,822,400 bytes8,233,886,890 bytes
Manufacturer ID0x000x050x05N/A
OEM ID0x00000x000c0x000cN/A
Product name0x4150505344 (ASCII: APPSD)0x6173646667 (ASCII: asdfg)0x6173646667 (ASCII: asdfg)N/A
Product revision0x000x220x22N/A
Manufacture dateOct 2022Mar 2024Mar 2024N/A
Serial number0x128000060x0000241c0x00004453N/A
Sequential read speed (MB/sec)16.5123.1223.1420.92
Sequential write speed (MB/sec)4.474.844.664.66
Random read speed (IOPS/sec)1,283.481,679.001,770.201,577.56
Random write speed (IOPS/sec)1.01146.34143.0396.79
Read/write cycles to first error3279981,631985
Read/write cycles to complete failure2,6102,082Not yet determined2,346
Total days to complete failure16354Not yet determined109
Card reader usedSanDisk MobileMateJJS CR-UTC4ACJJS CR-UTC4ACN/A
Package frontN/A
Package backN/A
Card frontN/A
Card backN/A

Discussion

This is one I found while browsing randomly through AliExpress, and one I heavily suspected would be fake flash when I ordered it. I was curious to see whether lower and higher capacity models would both be fake flash, or if these sellers would limit their fake flash to just higher capacity models — so I bought a single 128GB card (which was the lowest capacity they offered) and a single 2TB card. Later, after I made the decision to test at least three samples of each brand/model/capacity, I went back and ordered two more. Unfortunately, the seller sent me 256GB cards, so I had to order another two from a different seller. Spoiler: they’re all fake flash.

Disclaimer: I don’t think Lenovo had anything to do with this card. I think this is an unlicensed knock-off (hence why “Lenovo” is in quotes).

I’ve noticed a number of trends with some (though not all) fake flash. For example, many fake flash cards bear the name of well-known electronics manufacturer, even though the manufacturer is not known for selling SD cards. (For example, I’ve obtained cards bearing the names of Lenovo, Sony, and Xiaomi.) Most of them — or at least, the ones I’ve been able to read the CID data from — have had their manufacturer ID set to 0x00 and their OEM ID set to 0x0000, presumably to hide the identity of their manufacturer. Additionally, these cards also tend to have pretty abysmal performance across the board. This card is no exception: all performance results have been below average, with most results being more than one standard deviation below average.

This particular seller also attempted to be sneaky by not including any of the standard speed class marks. Instead, they opted to include the Nintendo Switch icon instead — which, last I checked, wasn’t an indicator of speed. (They did include the UHS-I mark, but this mark by itself also doesn’t make any assertions as to the card’s read or write speeds.)

Sample #1 chugged along on its endurance test for quite some time; however, it only managed to go 327 read/write cycles before starting to display data mismatch errors. At first, the errors only affected two sectors; however, the number of sectors increased nearly every round after that. (Almost all of these errors have been bit-flip errors.)

This eventually caused problems for my code’s device detection logic: the program keeps a copy of the data that it wrote to two fixed segments on the card. When a device is disconnected and reconnected, or when the program is interrupted and restarted, it tries to automatically identify which device it was testing, and it reads back the contents of both of those segments as part of that process. However, this card had so many sectors go bad that both of those segments quickly became unstable. When an issue occurred, I had to restart the endurance test from scratch.

Sample #1 spent most of its endurance test in one of the SanDisk MobileMate readers. However, as a JJS CR-UTC4AC reader became available, I moved it to one of those readers. This, of course, necessitated the restart of the endurance test. Strangely, on the first round of the endurance test, large portions of the card that had been marked as bad in other tests passed verification; however, the remainder of the card failed verification. At this point, over 50% of the sectors on the card had been flagged as bad, and the endurance test was ended.

Sample #2’s first error was a bit flip error that affected two sectors during round 999. It kept going for a while — continuing to experience a number of bit flips, but managing to stay under the 1% failure threshold — right up until round 2,083. In that round, every single sector that it read from the device came back as all 0xff‘s — at which point the card was declared dead (since it reached the 50% error threshold). Here’s the graph of this card’s progression:

Sample #3’s first error was a bit flip error that affected two sectors during round 1,632. It has survived 2,010 read/write cycles in total so far.

July 16, 2024 (current number of read/write cycles is updated automatically every hour)

Leave a Reply

Your email address will not be published. Required fields are marked *