← Back to FAQ

GPS Icon Missing While Xopoz Requests GPS

An ADB investigation on an Honor 9 (EMUI 9.1, Android 9): the status bar hides the location icon after the phone’s own GPS daemon crashes

The issue

While the Xopoz map screen is open, Xopoz is always in active mode. It asks Android for a GPS position every 10 seconds and keeps that request open for as long as the map is visible. Android shows the location icon in the status bar while an app uses GPS, so with the map open, the icon should be there the whole time.

On an Honor 9, we saw something different. When the map screen opened, the location icon appeared for about 10 seconds and then disappeared. Xopoz stayed on the map screen and never closed its GPS request. To the user, it looked as if Xopoz had stopped using GPS.

This article follows the investigation with ADB, step by step. It shows what Xopoz, the location service, the GPS hardware and the operating system were each doing when the icon disappeared.

❓ Short answer

The status-bar location icon is drawn by Android, not by Xopoz. On the phone we examined, the icon appeared for about 9 seconds and then disappeared, even though Xopoz still had an active GPS request and the GPS chip was still powered on. At that exact moment the phone’s GPS daemon (gpsd, part of the operating system) crashed and restarted. Android then stopped flagging the request as high-power location use, and that flag is what shows the icon. Xopoz did nothing at that moment.

⚠️ A missing icon is not proof that GPS is off, and an icon is not proof that GPS works

On this phone the GPS daemon was crashing in a loop, about every 24 seconds. While it does that, it never gets a satellite fix. Xopoz kept its GPS request open but received only network positions (about 100 m accuracy). The icon was gone, but the real problem was a GPS failure inside the operating system.

Test device

All values below were read from the phone with adb shell getprop and adb shell uname -a during the investigation.

Brand / maker
HONOR / HUAWEI
Model
Honor 9, STF-L09 (device HWSTF)
SoC
HiSilicon Kirin 960 (hi3660), arm64-v8a
Android
9 (API level 28)
Security patch
2020-05-01
EMUI
EmotionUI_9.1.0
Build number
STF-L09 9.1.0.220(C432E2R1P5)
Huawei build
STF-L09 9.1.0.231(C432E4R1P5), base STF-LGRP2-OVS 9.1.0.231
Fingerprint
HONOR/STF-L09/HWSTF:9/HUAWEISTF-L09/9.1.0.220C432:user/release-keys
Build date
Thu Jun 24 12:13:22 CST 2021
Kernel
Linux 4.9.148 SMP PREEMPT, Wed Jun 23 13:16:43 CST 2021, aarch64
Baseband
21C30B323S006C000
Location settings
Providers gps,network enabled; automatic date/time and time zone on
Xopoz
2026.10.03.01 (version code 29)
Date of test
2026-10-04, 20:50–20:59 local time (CEST)
adb shell getprop ro.build.fingerprint
HONOR/STF-L09/HWSTF:9/HUAWEISTF-L09/9.1.0.220C432:user/release-keys
adb shell getprop ro.build.version.emui
EmotionUI_9.1.0
adb shell getprop ro.build.version.release
9
adb shell getprop ro.build.version.sdk
28

What the user saw

This screenshot was taken 1 minute 24 seconds after Xopoz requested GPS. The map screen is still open, and the location icon is gone:

Honor 9 status bar at 20:52 above the Xopoz header: carrier, signal, Wi-Fi, data rate, USB and other icons, battery 48 percent, but no location icon
20:52:57: Xopoz in front with an active GPS request, no location icon in the status bar

How Android 9 decides to show the location icon

Android keeps a record of what each app does with location, called app-ops (app operations). Three of them matter here:

App-op Meaning
GPS The app is using the GPS provider. Stays “Running” while the request is open.
MONITOR_LOCATION Android counts the app as currently receiving location.
MONITOR_HIGH_POWER_LOCATION Android counts the app as using high-power (GPS) location. On Android 9, this is the signal the status bar uses to show the location icon.

Xopoz cannot set or clear these app-ops itself. Android sets them when an app opens a location request and clears them when the request ends, or when Android decides the request is no longer high-power.

Investigation step by step

The phone was connected with USB debugging. The commands below are standard ADB commands that anyone can run. Personal data (coordinates, account identifiers) is masked or removed from the outputs.

1. Does Xopoz have an open GPS request?

adb shell dumpsys location
    gps:
      UpdateRecord[gps com.tbr.xopoz(10141 foreground) Request[ACCURACY_FINE gps requested=+10s0ms fastest=+10s0ms lowPowerMode=false]]
...
    com.tbr.xopoz: gps: Min interval 0 seconds: Max interval 10 seconds: Duration requested 675 total, 675 foreground, out of the last 1773 minutes: Currently active

Finding: yes. Android’s location service shows an open request from Xopoz on the gps provider, every 10 seconds, with the app in the foreground. The request is currently active.

2. Is the GPS chip powered on?

adb shell dumpsys batterystats --history | grep -E "[+-]gps"
    +1d05h29m35s239ms (2) 048 -gps +top=u0a72:"com.huawei.android.launcher"
    +1d05h29m36s874ms (2) 048 +gps +top=u0a141:"com.tbr.xopoz"
(no -gps line after this one, checked again at 20:59:03)

Finding: yes. The battery history logs every time the GPS hardware turns on (+gps) or off (-gps). Times are offsets from the last reset of the battery statistics (2026-10-03 15:21:55), so +1d05h29m36s is about 20:51:32, give or take a second or two. The chip turned on when Xopoz came back to the front and was never turned off afterwards.

3. Does Android still count it as high-power location use?

adb shell dumpsys appops
  Uid u0a141:
    state=top
    Package com.tbr.xopoz:
      GPS (allow / switch COARSE_LOCATION=allow):
          Access: top   = 2026-10-04 20:51:33.464 (-1m36s615ms)
          Running start at: +1m36s615ms
      MONITOR_LOCATION (allow / switch COARSE_LOCATION=allow):
          Access: top   = 2026-10-04 20:51:42.121 (-1m27s958ms)
          duration=+8s656ms
      MONITOR_HIGH_POWER_LOCATION (allow / switch COARSE_LOCATION=allow):
          Access: top   = 2026-10-04 20:51:42.122 (-1m27s957ms)
          duration=+8s657ms

Finding: this is the key contradiction.

8.6 seconds matches what the user saw: the icon appeared for about 10 seconds, then disappeared.

4. Did Xopoz change anything at 20:51:42?

adb exec-out run-as com.tbr.xopoz cat files/…/Logs/xopoz_2026-10-04.log
[20:51:33.450] [LocationPower] PowerMode: MODE_POWER_SAVE → MODE_ACTIVE (mapVisible:true)
[20:51:33.456] [LocationServ ] ---- requestLocationUpdates: Gps, Period=10s
[20:51:33.466] [LocationServ ] ---- NETWORK requesting updates as indoor fallback
[20:51:33.478] [LocationServ ] ---- Continuous GPS + NETWORK updates started successfully
[20:51:35.985] [LocationHand ] ---- LocationCallback: [network] lat=…, lon=…, acc=100m
(no Xopoz location call between 20:51:33.478 and 20:51:42.122)
[20:52:15.988] [LocationHand ] ---- LocationCallback: [network] lat=…, lon=…, acc=100m
[20:52:56.001] [LocationHand ] ---- LocationCallback: [network] lat=…, lon=…, acc=100m

Finding: no. Xopoz opened its GPS request at 20:51:33 and did not stop, change or renew it. After that it received network positions only (100 m accuracy) and no GPS position at all.

Note: run-as works only with a debuggable build of Xopoz. With the Play Store build, use Send a support ticket with Include log files from the left menu instead.

5. What happened in the operating system at 20:51:42?

adb logcat -d -v time -b all
10-04 20:51:33.465 D/libgps  (  756): proxy_gps_start: called.
10-04 20:51:33.470 I/FusionD (  772): (fd_start_gnss:1070):gnss start.
10-04 20:51:40.091 D/libgps  (  756): proxy_gnss_sv_status_cb: called. num_svs(4)
10-04 20:51:42.097 D/libgps  (  756): proxy_gnss_sv_status_cb: called. num_svs(4)
10-04 20:51:42.099 E/gpsd    (17648): ASSERT in GlGpsdInterface.cpp:1423: Abnormal GlEngine stop. Initial time estimate was bad#ERR4
10-04 20:51:42.117 D/libgps  (  756): reset_wakelock: called.
10-04 20:51:42.187 D/        (17775): gps client init!
10-04 20:51:42.243 D/libgps  (  756): proxy_gps_start: called.
10-04 20:51:42.243 I/FusionD (  772): (fd_start_gnss:1061):gnss start again.
10-04 20:51:42.380 D/libgps  (  756): proxy_gps_xtra_download_request_cb: called.
10-04 20:51:42.893 D/libgps  (  756): proxy_gnss_sv_status_cb: called. num_svs(0)

Finding: 23 milliseconds before Android cleared MONITOR_HIGH_POWER_LOCATION, the GPS daemon gpsd (process 17648) hit an internal assertion and stopped: “Abnormal GlEngine stop. Initial time estimate was bad”. A new gpsd process (17775) started and the GNSS engine was started again (“gnss start again”), with 0 satellites in view.

6. Is it a one-off?

adb logcat -d -v time | grep "ASSERT in GlGpsdInterface" | grep -v "We find"
10-04 20:50:17.754 E/gpsd (17024): ASSERT in GlGpsdInterface.cpp:1423: Abnormal GlEngine stop. Initial time estimate was bad#ERR4
10-04 20:50:53.537 E/gpsd (17203): ASSERT …
10-04 20:51:18.311 E/gpsd (17450): ASSERT …
10-04 20:51:42.099 E/gpsd (17648): ASSERT …
10-04 20:52:11.932 E/gpsd (17775): ASSERT …
10-04 20:52:35.762 E/gpsd (17891): ASSERT …
10-04 20:52:59.567 E/gpsd (17926): ASSERT …
10-04 20:53:23.385 E/gpsd (17978): ASSERT …
… 17 crashes in total between 20:50:17 and 20:59:00, each with a new process ID
10-04 20:59:00.155 E/gpsd (19147): ASSERT …

Finding: no. The GPS daemon was in a crash loop, restarting about every 24 seconds. After each restart the number of satellites in view starts again from 0 and never went above 4, so no fix was ever produced. The system log on the phone goes back to 12:35 that day and contains no such crash before 20:50:17.

Timeline

Time (CEST) Source Event
20:50:17 logcat First gpsd crash of the series
20:51:33.456 Xopoz log Map visible → active mode → GPS requested every 10 s
20:51:33.464 app-ops GPS running, MONITOR_HIGH_POWER_LOCATION starts → icon appears
≈ 20:51:32 batterystats +gps: chip powered on
20:51:42.099 logcat gpsd ASSERT: “Abnormal GlEngine stop”
20:51:42.122 app-ops MONITOR_HIGH_POWER_LOCATION ends after 8.657 s → icon disappears
20:51:42.243 logcat New gpsd process, “gnss start again”
20:52:57 screenshot Xopoz in front, no location icon
20:59:03 dumpsys Xopoz GPS request still active, chip still on, still no GPS fix

Conclusion

So on this phone, the location icon may not appear even though Xopoz needs GPS and has asked for it. Its absence comes from an operating-system fault, not from a decision by Xopoz. In this state the phone also delivers no GPS position, so Xopoz falls back to network positions.

After a reboot

The phone was then restarted. After the restart, with Xopoz open on the map screen, the location icon stayed in the status bar the whole time, as expected.

This is consistent with the analysis. A restart starts the GPS daemon from a clean state and ends the crash loop. As long as gpsd does not crash, Android keeps MONITOR_HIGH_POWER_LOCATION running and the icon stays visible.

⚠️ The reboot clears the symptom, not the cause

The fault is inside the phone’s GPS software, and the restart only resets it. The crash loop began after a long period of normal operation. It can come back, and with this firmware there is nothing an app can do to prevent it.

Known issue? Firmware update?

We searched public sources for the exact error (GlGpsdInterface.cpp:1423, “Abnormal GlEngine stop. Initial time estimate was bad”) and found no report of it. gpsd is closed, manufacturer-supplied software, so its error messages are rarely published. Users have reported general GPS problems on Huawei and Honor phones after updating to EMUI 9.0, 9.1 and 10 (signal lost, positions jumping), but no single fix has been found.

Test phone Public firmware listings
EMUI 9.1.0 9.1 is the last major version for the Honor 9. It never received EMUI 10.
Build 9.1.0.220 (C432E2R1P5), Huawei build 9.1.0.231 (C432E4R1P5) Newest builds listed: 9.1.0.210 to 9.1.0.221. 9.1.0.231 does not appear in any listing we found.
Security patch 2020-05-01 (build dated June 2021) No newer patch level found

Result: the test phone runs the newest firmware we could find, or a newer one. The Honor 9 no longer receives updates, so no firmware fix for this crash should be expected.

Sources: Huawei Central, XDA Forums, Wikipedia: Honor 9, GSMArena, firmware.center, mobilebaz.

What this analysis does not show

Check it on your own phone

With USB debugging on and Xopoz open on the map, run these commands. If the first two show Xopoz using GPS but the third shows MONITOR_HIGH_POWER_LOCATION with a short duration instead of Running, look for the GPS daemon messages with the fourth.

Question Command Healthy result
Does Xopoz request GPS? adb shell dumpsys location | grep "gps com.tbr.xopoz" UpdateRecord[gps com.tbr.xopoz …]
Is the chip on? adb shell dumpsys batterystats --history | grep -E "[+-]gps" | tail -3 Last line is +gps
Does Android count it as GPS use (icon)? adb shell dumpsys appops --package com.tbr.xopoz MONITOR_HIGH_POWER_LOCATION shows Running
Is the GPS daemon crashing? adb logcat -d | grep -iE "gpsd|ASSERT|GlEngine" No ASSERT lines
Are GPS positions arriving? adb shell dumpsys location | grep "Location\[gps" A recent fix with small hAcc (a few metres)

✅ What you can try

  • Restart the phone. This starts the GPS daemon from a clean state. On the test phone, the location icon stayed visible on the map after a restart.
  • Check date and time: Settings → System → Date & time → Automatic date & time on.
  • Go outdoors with a clear view of the sky for a few minutes so the GPS can get a first fix.
  • If the crash loop keeps coming back: users report clearing the downloaded satellite-assistance (A-GPS) data with a GPS test app, reinstalling EMUI 9.1 with HiSuite, or a factory reset. These have not been tested for this crash.
  • Send a support ticket from the Xopoz left menu with Include log files checked. We can tell from the logs whether Xopoz received real GPS positions.

Related articles

See “System killed Xopoz”: Crash or Not? for the battery settings Huawei and Honor phones need, Android GPS Configuration for general GPS setup, and Location Providers for GPS versus network positions.

🔍 Key Takeaways

  • The icon belongs to Android: it follows the MONITOR_HIGH_POWER_LOCATION app-op, which Xopoz cannot control.
  • Seen on Honor 9, EMUI 9.1, Android 9: the icon vanished 23 ms after the phone’s GPS daemon crashed, while Xopoz’s GPS request stayed open.
  • The daemon was in a crash loop (17 crashes in 9 minutes), so the phone delivered no GPS fix at all and Xopoz fell back to network positions.
  • A restart cleared it: afterwards the icon stayed visible on the map. The fault can return.
  • No firmware fix expected: the Honor 9 stopped at EMUI 9.1, and the test phone already runs the newest build we could find.
  • Not sure what your phone is doing? Send a support request from inside Xopoz and we will check your logs.