Revolut is specifically banning GrapheneOS by checking for the build machine hostname and username being set to grapheneos. We’ve changed these to build-host and build-user. Combined with another change, this allow our users to log in to it again until they roll out Play Integrity API enforcement.
There’s no legitimate excuse for banning using a much more private and secure operating system while permitting devices with no security patches for a decade. Meanwhile, Revolut’s shoddily made app tells users they’re banning GrapheneOS because they’re “serious about keeping your data secure”.
Revolut’s app will stop working against once they start enforcing having a Play Integrity API result showing it’s a Google certified device. This is not a security feature but rather anti-competitive behavior from Google deployed by apps like Revolut wanting to pretend they care about security.
Revolut uses a bunch of shady closed source third party libraries in their app and it’s one of these libraries banning GrapheneOS. These libraries are a major security risk and put user data at risk of being compromised. Revolut is not taking user security seriously at all and is cutting corners.
There’s no legitimate reason for any app to ban GrapheneOS users. It has the full standard security model and massive security improvements. There’s no logic in banning GrapheneOS. It makes no sense for them to ban anything when they permit a device with no patches for 10 years. It’s performative.
GrapheneOS fully supports standard Android hardware attestation for verifying the hardware, firmware and operating system along with the app that’s using it. See https://grapheneos.org/articles/attestation-compatibility-guide. If apps insist on checking device integrity, that’s the only way they should do it.
Play Integrity API checks that Google’s monopolies are supported through devices licensing Google Mobile Services and integrating their browser, search engine, advertising, etc. It’s anti-competitive and clearly illegal. Multiple governments are taking regulatory action and are in contact with us.
Revolut insecurely checks the ro.boot.verifiedbootstate property and forbids it being yellow, which means a locked device with an aftermarket OS that’s being cryptographically verified by the firmware. They permit it being orange, which means an unlocked device with any OS.
They’re specifically banning having a device that’s locked with an aftermarket OS rather than banning having an unlocked device or an aftermarket OS in general. Similarly, they’re specifically banning the value grapheneos
for ro.build/.user/ro.build.host
.
Both of these things and other similar insecure, useless checks are being done by several different SDKs. Revolut’s app is full of sketchy, insecure third party libraries. They certainly don’t take security seriously as they claim in their message about banning GrapheneOS.
We’ve fixed both of the ways they’re banning GrapheneOS for our next release. Since third party SDKs are what’s being used to do it, our hope is that this fixes a few other poorly written banking/financial apps doing similar stuff to ban aftermarket operating systems.
These are the full set of changes fixing Revolut’s ban on GrapheneOS:
https://github.com/GrapheneOS/platform_build/commit/bcd027b1273db32d6361092c635bf52a5d08c0e7
https://github.com/GrapheneOS/platform_build_soong/pull/24/commits/cc62edd5c3af000a6089fe2cceef10b9458f8aae https://github.com/GrapheneOS/platform_system_core/commit/971110e37d73b5acb6e806b62146dcdcb29277b2 https://github.com/GrapheneOS/platform_frameworks_base/commit/5c85337ba0c4f5e40811a5a753754f7ccc2bc72f https://github.com/GrapheneOS/platform_frameworks_base/commit/29c31dcdb5f826f1032a1a4da4dc584dbee8f01d
Other banking apps banning GrapheneOS will need to be retested after the next release.
Due to these changes, Revolut works with our latest release that’s currently in the Alpha channel and will reach the Beta channel very soon:
https://grapheneos.social/@GrapheneOS/113895124919882463
Should be in the Stable channel within 24 hours.
We also added a Play Integrity API notification + per-app menu.
Users are already reporting that other banking apps which were previously detecting and banning GrapheneOS are now working properly. This is what we anticipated since Revolut is using insecure 3rd party SDKs for this which are likely used by other banking apps for the same thing.
i know money launderers who sell emulators with drops (people who sell their IDs) of Revolut for $100. Makes no sense to ban custom roms.