[1] https://veracrypt.io/en/Wear-Leveling.html
https://veracrypt.io/en/Trim%20Operation.html
[2] https://nitter.net/GrapheneOS/status/2082153517234676150#m
[1] https://veracrypt.io/en/Wear-Leveling.html
https://veracrypt.io/en/Trim%20Operation.html
[2] https://nitter.net/GrapheneOS/status/2082153517234676150#m
I also wish that GrapheneOS link didn't say a duress PIN forces the attacker to think twice about entering a PIN, knowing it could wipe the device. It doesn't do that for anyone aware of its existence, since of course the attacker can prevent the secure element from sending a delete command to the flash chip. Obviously if you know the device could attempt to delete itself you would break that feature before sending the code to the secure element...
With deniability, isn't the idea that you would have unlocked the false partition to show that you have nothing on your phone, therefore it's not encrypted?
It doesn't matter if the false partition is unlocked or not - you can plausibly deny there's anything on the phone at all.
The secure element has built-in storage protected against tampering. It doesn't rely on external storage. Having support for the duress PIN/password built into the secure element rate limiting would force an attacker to risk wiping it unless they have a secure element exploit. If they have a secure element exploit then they don't need any attempts for a typical PIN since they could quickly brute force it. That's the planned design of the feature once we have the ability to extend the secure element functionality.
If they can exploit a secure element then only a decent passphrase is secure. GrapheneOS does make using a decent to strong passphrase much more convenient and memorable but it isn't what most people use in practice.
(That of course only takes down the "physically impossible" part.)
For example, documents like this[1] document any features that law enforcement should be aware of.
[1] https://www.swgde.org/wp-content/uploads/2025/09/2025-08-21-...