I'm trying to use an app which uses BLE and NFC to communicate with an eInk device. A copy of the app is available at http://shkspr.mobi/test/Highlight_New_Work_Badge20240805.apk

It works on regular Android phones (running 14 & 15) but doesn't run on GrapheneOS 15 on my Pixel 8 Pro.

I've given it the location permissions that it needs, but it complains on startup that it doesn't have location permission.

I've gone through the logs (and can share them) but I can't see any obvious crashes or problems. I've tried manually applying permissions, turning off hardening, etc - but it still doesn't work.

The app's author (a Chinese OEM) is satisfied that it works on normal phones but, in any case, won't make any fixes unless I can tell them what's wrong.

Is anyone here able to explain if it is a bug with the app or a bug with the way Graphene does its permissions?
Any help greatly appreciated!

    edent Does it have "nearby devices"? It might be productive to provide a list instead of "the permissions it needs".

    Also, if the device relies on Google Play, Play may need permissions too.

    edent Maybe it has the location permission and it accesses it but it does not find a location because you are inside a building ? In this case I would just try to catch GPS at the window or balcony and quickly get inside 🤷‍♂️?

    @edent While I do not have the eink device to test the app fully, I have managed to get past the Chinese dialog, that presumably complains about the lack of location permission, by using Google Play geolocation instead of the default of rerouting location requests to the OS. The app arrives at what looks like a main menu offering various config options, which matches what I saw on stock PixelOS.

    Here is what I did. Note that I tested this in Owner, although it might work in other profiles. And the version info might not be relevant, but I'm noting them here for clarity in case it's somehow useful. This is easy enough to do. It's documented here.

    GrapheneOS 2025010700
    Play services 24.47.36

    1. Go to Settings > Apps > Sandboxed Google Play > disable "Reroute location requests to the OS"
    2. A new menu entry called "Geolocation" will appear under "Potential issues". Tap on it and follow the instructions provided by the OS to a T until the "Potential issues" section disappears.
    3. Install the app and open it, giving it the permissions it asks for. Note that for the Camera and Location permissions, I can select "Only this time" without having the app complain. Can also use Storage Scopes instead of granting it the files access.

    The app appears to expect that Play services takes care of the geolocation, which it does by default on stock PixelOS. Without it the app doesn't even attempt to get a location fix.

      fid02 Thank you for your detailed suggestions. Sadly, I still can't get it to work. I've set the location provider to be Google, I've toggled the settings and no warning appears, I've given it the correct permissions, rebooted, reinstalled, and wiped the storage of the app - but still the damned thing gives the same error.

      I have the same OS and Services version as you. The app is installed in my owner profile.

      I'm utterly baffled but deeply appreciate your reply.

      My steps were reproduced on a Pixel 6a. Could anyone with a newer device model see if they are able to arrive at the app's menus when Play's geolocation is enabled? fid02

      18 days later

      Even the latest version (2025012700) doesn't work.
      Is there anyone here with a Pixel 8 Pro who can get this working?

      GrapheneOS Will this possibly provide "GPS" location functionality for the Pixel Tablet? I'm specifically thinking of my use case of providing location for my digital ID app I recently tried to install and verify, but was unable to complete due to the tablet not having GPS.

        DeletedUser202 Pixel Tablet doesn't have GNSS (GPS, etc.) and nothing we do will change that. The only way to have satellite-based location with it is to use Mock Location with an app to use an external GNSS unit via USB or Bluetooth.

        It's already possible to use the Google Play network location on GrapheneOS which is covered at https://grapheneos.org/usage#sandboxed-google-play-configuration and will likely work for that app. It's not currently an option for apps which don't use the Google Play location SDK, but we could provide the opposite of the current location rerouting toggle to support it. Our own network location implementation will be available soon anyway.

        a month later

        edent Wow! Thanks for reporting back.

        edent We made some changes to Google Play location rerouting as part of implementing optional network location in the OS, maybe that helped.