G
Glacial2

  • Aug 17, 2024
  • Joined Aug 14, 2024
  • The purpose of Android's Phone permission is to give apps the ability to make and manage carrier-based calls. It also provides access to related information on the phone number and carrier. This information can also be obtained through the ability to place a call providing by the permission. This permission also isn't required by apps implementing their own calling system. Signal/Molly is a very widely used example of an app implementing non-carrier-based calls and doesn't require this. It's not required to properly avoid conflicts between calls and other apps playing audio. Android has a solid audio focus system and nearly every app integrates well into it. No permissions are required to properly implement this kind of user experience. Phone permission is for apps making/managing carrier-based calls, not VoIP calls. Some apps request it simply to autofill the user's phone number if they use it as their account identifier such as Signal and WhatsApp, but those apps almost always work without it particularly since they want to support using a different phone number than one assigned by a carrier to the device.

    GrapheneOS provides Contact Scopes and Storage Scopes for working around privacy invasive apps unnecessarily insisting on access to the contacts and storage/media permissions. It would still be better if these apps simply used the standard Android contact picker, file picker and photo picker on their own, and that's something users already should have been expecting from apps. These scope features are a way of working around many apps insisting on having access they don't require. This is far less common with other permissions, so it hasn't been prioritized to the same extent. However, we plan to provide similar features for other permissions including the Phone and SMS permissions along with Camera, Microphone and others.

    We have limited development resources and a lot of them need to be spent on maintaining what we already provide and porting to new Android releases. Since we continue to add more features and raise the bar for quality, we have increasingly reduced time for adding new features. We have to carefully choose what to prioritize and can only gradually implement a small fraction of the features we want to add. Adding alternatives to granting the Phone and SMS permissions for apps insisting on having them is not at the top of our priorities. One of our top priorities for privacy is providing control over which apps can read clipboard contents set by other apps when they focused, etc. Providing a per-app replacement for the standard mock location feature is also likely a higher priority than the Phone and SMS permissions.

    If you don't want apps having access to this, then simply reject their request for it. If an app insists on having it and won't work without it, use a different app. There are lots of VoIP options without the unreasonable expectation that you share your carrier-based numbers with them. Apps insisting on having access to this permission are doing it for data mining and you don't have to tolerate it. You do not have to use those apps. Permission requests do not have to be granted. The whole point of having a permission system is the option to reject it. You do not need features like Storage Scopes and Contact Scopes to benefit from the permission model. Those features are nice to have to work around invasive apps and use them despite their intention to coerce you into giving access to your data. However, you already had the option to say no and avoid using apps insisting on saying yes before we provided these features. You currently have that option for permissions like Microphone and Phone prior to us adding similar features offering an alternative to granting them. It's up to you if you want to use a privacy invasive app demanding access it shouldn't need.

    MySudo unnecessarily demands access to this permission, has an unnecessary hard dependency on Google Play and bans using an alternate OS for registering an account. Leave a 1 star review for their app on the Play Store explaining this is why and use a better option like jmp.chat. Send app developers a link to https://grapheneos.org/articles/attestation-compatibility-guide if they're banning using alternate operating systems to show them how they can permit GrapheneOS without losing any of what they're trying to do.

    Storage Scopes and Contact Scopes didn't exist for most of the lifetime of GrapheneOS. No one should feel entitled to having more features like this from us covering more permissions. We implement what we can based on our available resources and our priorities. No one should be attacking the project and our team based on this. We're aware everyone has their own ideas on what should be prioritized, but most of the community seems quite happy with how we choose our priorities. We're currently working on 2-factor fingerprint unlock, per-app clipboard control, preventing other kinds of leaks with third party VPN apps, control over communication between apps and other features. Some people would prefer if we'd prioritize other things, but it's up to us and it's not open to negotiation. Contacting developers trying to influence our prioritization or publicly attacking our project members based on it is highly inappropriate and isn't going to be tolerated. We aren't going to provide a platform for it and it's not going to influence our priorities. It's taking resources away from development and is in fact delaying the implementation of features.

    • fid02 Bitwarden does not immediately announce to Play Services whether or not it has stored a passkey for the service the user wants to authenticate towards. Only after the authenticator (Bitwarden) announces to Play Services that it has no passkey stored does Play Services redirect the user to a FIDO selection UI. Users of Proton Pass are not seeing this behaviour because Proton chooses to announce the presence of passkeys without the user having to authenticate.

      Play Services tends to prioritize cloud synced passkeys. It has a confusing authentication UI.

      Thank you for this information. This explains the behavior, at least in Vanadium. As an aside, also thank you @fid02 for all your past contributions on this forum regarding hardware keys. Before I switched to GOS, I researched hardware keys extensively as they are very important to me. Your long form post on the subject from several months ago helped tremendously.

    • Glacial2 As stated in my first post that works.

      As silly as it may sound to you, that was not at all clear to me.

      Fog-Nearby I recently switched to BitWarden and have noticed it displays inside the Android passkey prompt (your second screenshot) anytime I want to use a hardware key.

      Bitwarden does not immediately announce to Play Services whether or not it has stored a passkey for the service the user wants to authenticate towards. Only after the authenticator (Bitwarden) announces to Play Services that it has no passkey stored does Play Services redirect the user to a FIDO selection UI. Users of Proton Pass are not seeing this behaviour because Proton chooses to announce the presence of passkeys without the user having to authenticate.

      Play Services tends to prioritize cloud synced passkeys. It has a confusing authentication UI.