Usually when you “delete” data on a storage medium you really just remove a reference to it. The data is still sitting on the disk if you know where to look. TRIM is a command that tells the storage device “I don’t need this anymore” and usually the hardware will return empty data the next time you read it (really the hardware is doing the same thing of just forgetting that there is data there, it is turtles all the way down, but it will track that this block is supposed to be empty and clear it when you next read it).
However I think this is an unlikely theory. It would require two bugs:
The OS would be trying to read data that isn’t supposed to exist. This would be a bug on its own that would likely be quite visible.
The iPhone uses disk encryption, and when you reset the device the key is (supposed to be) reset, meaning that even if you read the old data it would be useless.
Both of these would be very significant and unlikely to last long without being discovered. Having both be present at the same time therefore seems very improbable to me.
$.05 explanation for those unfamiliar?
Here’s the ELI5.
Imagine there’s a set of lockers in a school.
When a student leaves the school or changes lockers they remove the label on the locker but don’t empty it.
A TRIM, however, means that they not only remove the label from the locker by also clean out its contents.
Not quite; the contents all go in a bag labeled “trash” — someone still has to remove it from the locker.
Good point.
TRIM is a command / instruction for solid state storage to release a block of data, so it is blanked and ready to be written again.
No, it actually isn’t. TRIM doesn’t erase data.
https://www.techtarget.com/searchstorage/definition/TRIM
Trim marks blocks for deletion. It doesn’t delete anything.
Usually when you “delete” data on a storage medium you really just remove a reference to it. The data is still sitting on the disk if you know where to look.
TRIM
is a command that tells the storage device “I don’t need this anymore” and usually the hardware will return empty data the next time you read it (really the hardware is doing the same thing of just forgetting that there is data there, it is turtles all the way down, but it will track that this block is supposed to be empty and clear it when you next read it).However I think this is an unlikely theory. It would require two bugs:
Both of these would be very significant and unlikely to last long without being discovered. Having both be present at the same time therefore seems very improbable to me.