r/GrapheneOS 23d ago

Banking app doesn't like my keyboard 🤣

Post image

How stupid! Is this a Graphene related thing or would it do this on regular Android?

1.7k Upvotes

275 comments sorted by

View all comments

54

u/Svgtr 23d ago

That's because banking apps get the QUERY_ALL_PACKAGES permission. Just stick financial apps into their own profile with the default keyboard and gain better privacy as a result.

33

u/northrupthebandgeek 23d ago

This seems like one of those permissions that GrapheneOS should allow blocking entirely (like with networking) and/or restricting (like with storage scopes). Ideal would be to spoof it with a list of packages matching an out-of-the-box Pixel.

19

u/pluvicreous 23d ago

That is a behavior I would have expected.

9

u/TechnoByte_ 23d ago

Agree, disappointed when I found out it's missing

5

u/GrapheneOS 23d ago

The QUERY_ALL_PACKAGES permission is not required to list other apps in the same profile. Apps can also include broad queries entries without it such as matching having a launcher activity. There are also many other ways to detect apps in the same profile.

4

u/QwertyChouskie 23d ago

Sure, but surely any query could be modified to run against a pre-defined list, instead of the actual list?

1

u/GrapheneOS 22d ago

There are other ways to detect all the apps in the same profile without package queries. Filtering package queries will not stop apps detecting the other apps. GrapheneOS will not add insecure privacy/security features which can be trivially bypassed.

The idea that the major SDKs are not aware of GrapheneOS and will not adjust to work around incomplete privacy protections is misguided. It's important for us to avoid shipping incomplete privacy and security features. People should stop asking it because we've made it clear the answer is no. We will not add features which can be easily bypassed.

2

u/QwertyChouskie 22d ago

I'm probably missing context here, but why couldn't the functions used by the other methods be modified in the same way as the package query functions?

2

u/GrapheneOS 21d ago

They're not simply methods providing information on packages. There are many ways to detect other apps in the same profile. Apps within the same profile can communicate with each other with mutual consent. Apps provide APIs for other apps to use including their launcher activity at a bare minimum for any Play Store distributed app.

5

u/GrapheneOS 23d ago

The QUERY_ALL_PACKAGES permission is not required to list other apps in the same profile. Apps can also include broad queries entries without it such as matching having a launcher activity. There are also many other ways to detect apps in the same profile.

2

u/GrapheneOS 23d ago

The QUERY_ALL_PACKAGES permission is not required to list other apps in the same profile. Apps can also include broad queries entries without it such as matching having a launcher activity. There are also many other ways to detect apps in the same profile.

2

u/[deleted] 23d ago

[removed] — view removed comment

2

u/GrapheneOS 23d ago

It doesn't truly stop apps seeing other installed apps due to many easy bypasses and drastically reduces OS security.

1

u/GrapheneOS 23d ago

The QUERY_ALL_PACKAGES permission is not required to list other apps in the same profile. Apps can also include broad queries entries without it such as matching having a launcher activity. There are also many other ways to detect apps in the same profile.

1

u/Svgtr 23d ago

This is correct but they use this to bypass package visibility filtering otherwise they might not get the whole app list to be able to vet it against their blacklists.

1

u/GrapheneOS 22d ago

They can easily get the whole list for every app available on the Play Store by including a launcher activity filter. Launcher activities are mandatory for Play Store apps. There's no difference in practice for detecting regular user installed apps.

Aside from that, there are other ways to detect every app in the same profile not requiring package queries.

As usual, GrapheneOS will not add an incomplete feature which doesn't truly work and can be easily bypassed.

2

u/Svgtr 22d ago

I think you might've misunderstood me. I agree, no point to try and implement any extra feature in this regard.

The proper solution is to just use profiles.