When network location is enabled, is GPS turned off? If not automatically, is it possible to manually disable it to save battery?

    GrapheneOS Sure. Reboot didn't help. I'm using Organic Maps web release from GitHub with all permissions given.

    It doesn't work for me in Vanadium too.

      What quality of life feature! Wasn't able to use my digital id app on my tablet previously since it requires location to activate. Turned on Network location with GOS proxy and it worked like a charm!

      Fantastic work team đź’›

      GrapheneOS I'm having the same issue as @Jdjdoefndbej, my location isn't found indoors, it works fine on Apple devices. I assume that's due to missing cell tower scanning?

        Jdjdoefndbej avenging1683 Need more details on your setups and also logs from the Network Location app via the View logs feature in App info. You can show system apps in Settings > Apps and search for network location to find it.

          Jdjdoefndbej avenging1683 Are you using Battery Saver mode? Try without it. You might need to set Unrestricted battery usage mode for the Network Location app. We can do this ourselves in the next release as a hard-wired exception.

            GrapheneOS

            type: logcat
            osVersion: google/husky/husky:15/AP4A.250205.002/2025022700:user/release-keys
            package: app.grapheneos.networklocation:35, targetSdk 35
            buffers: main,system,crash,events,kernel
            level: verbose
            
            --------- beginning of main
            02-27 23:46:11.453  2040  2262 D WifiPositioningServiceCache: clean() removed 11 items
            02-27 23:48:14.789  2040  4696 D TrafficStats: tagSocket(71) with statsTag=0xffffffff, statsUid=-1
            02-27 23:49:17.757  2040  4696 D TrafficStats: tagSocket(71) with statsTag=0xffffffff, statsUid=-1
            02-27 23:49:53.803  2040  4696 D TrafficStats: tagSocket(71) with statsTag=0xffffffff, statsUid=-1
            02-27 23:50:13.979  2040  4696 D TrafficStats: tagSocket(71) with statsTag=0xffffffff, statsUid=-1
            02-27 23:50:40.479  2040  4696 D TrafficStats: tagSocket(71) with statsTag=0xffffffff, statsUid=-1

            1 user profile, no Play Services, never tried to turn developer options on, Wi-Fi and Bluetooth scanning on, network location through GrapheneOS proxy, SUPL and PSDS Graphene too.

            Jdjdoefndbej

            Do you have Google Play Services installed?

            I'm not an expert and also can't test it right now but this looks to me like Organic Maps requires Google Play Services to determine precise location:

            If your Android device can not determine your location, enable (or disable, if enabled) “Google Play Services” option in the app settings. Note: you can see it only if you have Google Play services installed (enabled) on your Android device. Google play services are used to determine location more precisely, if you experience issues with location accuracy after you disabled the option, turn it on.

            source: https://organicmaps.app/faq/map/can-not-find-position/

            I installed Organic Maps in a profile without Google Play Services and this option does not show up in the app settings.

              Murcielago No, it works fine outside. With GPS I guess. My problem is not limited to Organic Maps, Vanadium can't determine my location too.

                Murcielago Organic Maps uses the fused location provider provided by the OS which transparently supports network location. By default, GrapheneOS reroutes requests to Google Play to the OS location API. Organic Maps will behave the same way with or without their Google location toggle enabled by default unless you disable rerouting requests to the OS.

                  The built-in battery optimization we've added for our next release should work as expected with the next OS release to avoid people needing to disable Battery Saver. We just want to fix a regression reported with the Location toggle being disabled first and then we can do another OS release. The current one will remain in Alpha due to needing a couple fixes for network location and a fix for 5G only mode limiting availability to carriers supporting real standalone 5G.

                  sustained5314 it scans for Wi-Fi access points, so you need to either keep Wi-Fi on, or turn on always on Wi-Fi scanning which allows apps with the precise location or nearby devices permissions to scan for Wi-Fi access points even when Wi-Fi is off.

                  In the near future, cell towers will be supported for getting a rough location estimate and it can use that if Wi-Fi is unavailable.

                  First off all, thank you for the amazing update! I have a couple of question regarding some of the changes.

                  1. Can you explain exactly what the 5G and 4G-only mode does? I'm not well-versed on this topic.
                  2. If you block phone numbers that are not in your contacts, do you still receive a missed conversation notification with that number?

                  GrapheneOS got a new log with some strings which I didn't see before. Maybe this could help

                  type: logcat
                  osVersion: google/husky/husky:15/AP4A.250205.002/2025022700:user/release-keys
                  package: app.grapheneos.networklocation:35, targetSdk 35
                  buffers: main,system,crash,events,kernel
                  level: verbose
                  
                  --------- beginning of events
                  02-28 10:33:50.732  2031  2031 I auditd  : avc=type=1400 audit(0.0:38): avc:  denied  { read } for  comm="networklocation" name="u:object_r:odsign_prop:s0" dev="tmpfs" ino=293 scontext=u:r:platform_app:s0:c512,c768 tcontext=u:object_r:odsign_prop:s0 tclass=file permissive=0 app=app.grapheneos.networklocation
                  02-28 10:33:50.736  2031  2031 I auditd  : avc=type=1400 audit(0.0:39): avc:  denied  { getattr } for  comm="networklocation" path="/apex/apex-info-list.xml" dev="tmpfs" ino=91 scontext=u:r:platform_app:s0:c512,c768 tcontext=u:object_r:apex_info_file:s0 tclass=file permissive=0 app=app.grapheneos.networklocation
                  02-28 10:33:50.864  2031  2031 I auditd  : avc=type=1400 audit(0.0:43): avc:  denied  { read } for  comm="main" name="u:object_r:build_attestation_prop:s0" dev="tmpfs" ino=114 scontext=u:r:platform_app:s0:c512,c768 tcontext=u:object_r:build_attestation_prop:s0 tclass=file permissive=0 app=app.grapheneos.networklocation
                  02-28 10:33:50.864  2031  2031 I auditd  : avc=type=1400 audit(0.0:44): avc:  denied  { read } for  comm="main" name="u:object_r:build_attestation_prop:s0" dev="tmpfs" ino=114 scontext=u:r:platform_app:s0:c512,c768 tcontext=u:object_r:build_attestation_prop:s0 tclass=file permissive=0 app=app.grapheneos.networklocation
                  02-28 10:33:50.864  2031  2031 I auditd  : avc=type=1400 audit(0.0:45): avc:  denied  { read } for  comm="main" name="u:object_r:build_attestation_prop:s0" dev="tmpfs" ino=114 scontext=u:r:platform_app:s0:c512,c768 tcontext=u:object_r:build_attestation_prop:s0 tclass=file permissive=0 app=app.grapheneos.networklocation
                  02-28 10:33:50.864  2031  2031 I auditd  : avc=type=1400 audit(0.0:47): avc:  denied  { read } for  comm="main" name="u:object_r:build_attestation_prop:s0" dev="tmpfs" ino=114 scontext=u:r:platform_app:s0:c512,c768 tcontext=u:object_r:build_attestation_prop:s0 tclass=file permissive=0 app=app.grapheneos.networklocation
                  02-28 10:33:50.864  2031  2031 I auditd  : avc=type=1400 audit(0.0:48): avc:  denied  { read } for  comm="main" name="u:object_r:build_attestation_prop:s0" dev="tmpfs" ino=114 scontext=u:r:platform_app:s0:c512,c768 tcontext=u:object_r:build_attestation_prop:s0 tclass=file permissive=0 app=app.grapheneos.networklocation
                  02-28 10:33:50.936  2031  2031 I auditd  : avc=type=1400 audit(0.0:55): avc:  denied  { read } for  comm="binder:2031_2" name="u:object_r:qemu_sf_lcd_density_prop:s0" dev="tmpfs" ino=317 scontext=u:r:platform_app:s0:c512,c768 tcontext=u:object_r:qemu_sf_lcd_density_prop:s0 tclass=file permissive=0 app=app.grapheneos.networklocation
                  02-28 10:33:50.936  2031  2031 I auditd  : avc=type=1400 audit(0.0:56): avc:  denied  { read } for  comm="binder:2031_2" name="u:object_r:qemu_sf_lcd_density_prop:s0" dev="tmpfs" ino=317 scontext=u:r:platform_app:s0:c512,c768 tcontext=u:object_r:qemu_sf_lcd_density_prop:s0 tclass=file permissive=0 app=app.grapheneos.networklocation
                  --------- beginning of main
                  02-28 10:34:18.169  2031  4577 D CompatChangeReporter: Compat change id reported: 312399441; UID 10180; state: ENABLED
                  02-28 10:34:18.183  2031  4577 D TrafficStats: tagSocket(71) with statsTag=0xffffffff, statsUid=-1

                  GrapheneOS

                  We'll provide database downloads to support offline network location.

                  Can you already tell in which format the offline database will be available?