Privacy center

Privacy Policy

The Huawei watch edition: the data and device permissions involved when you use G Navigation on a HUAWEI WATCH FIT 3 or newer, or a HUAWEI WATCH GT 4 or newer, together with the companion app on an Android phone.

Version 10Updated September 30, 2026Huawei watch editionData controller: Nguyen Thanh Hung

At a glance

No advertisingNo data sales, no analytics, and no tracking SDKs on the phone or on the watch.
Purpose-limitedLocation and journey data are used to search, calculate a route, and draw the next turn on your wrist.
Your controlWithdraw consent, decline every optional permission, or delete local data at any time.
01

App information

App name
G Navigation
Watch application
com.gnavigation.watch (HarmonyOS Lite Wearable)
Android companion
com.gnavigation.mobile
Supported watches
HUAWEI WATCH FIT 3 and newer, and HUAWEI WATCH GT 4 and newer, running HarmonyOS 5.0 or later. HUAWEI Band models are not supported.
Link between them
Huawei Wear Engine, through Huawei Health
Developer / data controller
Nguyen Thanh Hung
Privacy contact
hng89tn@gmail.com

This edition describes G Navigation as used with a Huawei watch. The companion app also supports watches from other makers; if yours is one of them, read the full edition at G Navigation — Google Play. Both editions are written from one source and carry the same version number.

02

Data processed

  • Approximate or precise location from the phone, and location-service status.
  • The watch's own position while a ride is on the face: latitude, longitude, altitude, accuracy, and fix time. The runtime returns no speed and no bearing, and a fix less accurate than 50 m is discarded.
  • Search queries, destinations, origins, routes, route geometry, journey progress, and guidance steps.
  • What is drawn on the watch: a small map image around your position, the turn icon, the distance, the street name, and the estimated arrival time.
  • Pairing, connection, and watch-capability state; network/Wi-Fi state; the installation state of the specifically declared companion and store apps needed to guide setup. The app does not scan the full installed-app list.
  • When you explicitly enable notification access and call alerts: the caller name, source app (Zalo or Messenger), ringing/video-call state, and the action labels on a call notification.
  • Minimized technical diagnostics required to detect connection or navigation-session failures.
  • When you use a trial or Premium: account identifier, available name/email, app session, a hashed app-scoped Android identifier (or a random installation fallback), trial times, and Premium entitlement state.
  • A consent record containing the policy version, acceptance time, and selected language — one on the phone and one on the watch.

Before you accept the policy, neither app initializes maps, location, Wear Engine, journey caches, or navigation-related network requests. The watch shows its own privacy screen before its first ride and stores your answer in a single local flag.

03

Purposes

  • Showing maps, finding places, and ranking results for your current area.
  • Calculating car, motorcycle, bicycle, or walking routes; following a route; and rerouting when needed.
  • Maintaining the foreground navigation session you start and displaying turn alerts.
  • Sending guidance, map frames, and journey state to the paired Huawei watch over Wear Engine, and receiving the watch's own position back so the map on your wrist keeps up with you between phone updates.
  • Relaying Zalo/Messenger call alerts and your answer, decline, or hang-up action, when you enable that optional feature.
  • Remembering consent, settings, and the state both apps need to run reliably.
  • Authenticating accounts, limiting trials per account and device, preventing fraud, and restoring Premium.
04

Device permissions and access

The watch application declares no system permission at all: its HAP carries no reqPermissions block, and the HarmonyOS Lite Wearable runtime gives a running face the position, the vibrator, and local app storage without a dialog of its own. Everything else below is requested on the phone, and every row marked OPTIONAL can be declined without losing turn-by-turn navigation.

Position on the watch

WATCH

Read through @system.geolocation, and only while a ride is on the face, so the map under your position keeps moving between the phone's updates. The fix is sent to the paired phone over Wear Engine; it is not kept on the watch and goes nowhere else.

Vibration on the watch

WATCH

Haptic alerts for the next turn and for navigation state. system.vibrator works with nothing declared on this runtime.

Local storage on the watch

WATCH

Holds your privacy answer, the display settings sent from the phone, and a journey cache kept for no more than five minutes.

Approximate / precise location

PHONE

ACCESS_COARSE_LOCATION, ACCESS_FINE_LOCATION — determines your position, biases search results, follows the route, and drives real-time guidance.

Background location

PHONE · OPTIONAL

ACCESS_BACKGROUND_LOCATION — offered separately after setup, only so tracking survives the app leaving the foreground or the system interrupting the foreground service. It is not part of the core setup.

Notifications

PHONE

POST_NOTIFICATIONS, POST_PROMOTED_NOTIFICATIONS — shows the running navigation notification and turn alerts and, on supported Android versions, asks the system to present the trip as a Live Update.

Notification access

PHONE · OPTIONAL

Android grants system-level notification access. Only after your consent and opt-in, G Navigation filters Zalo, Messenger, Telegram and Viber notifications for caller names, state and answer/decline/end actions, including in the background or while not navigating. Unrelated notifications are ignored; chat message contents are not saved or forwarded. Necessary names and state pass through Android or the companion app to your selected watch, without upload to G Navigation servers. Temporary contact entries and technical logs are described under retention.

Nearby devices (Bluetooth)

PHONE

BLUETOOTH_CONNECT, BLUETOOTH_SCAN (declared neverForLocation), REQUEST_COMPANION_PROFILE_WATCH, and the legacy BLUETOOTH/BLUETOOTH_ADMIN pair on Android 11 and earlier — used to find and hold the link to your paired watch. The app derives no location from Bluetooth and requests no audio-recording permission.

Read and write Contacts

PHONE · OPTIONAL

READ_CONTACTS and WRITE_CONTACTS are separately explained and requested to create a temporary entry from a notification name and representative number, check collisions, and find and clean up G Navigation's entries. Matching contact results may be read to avoid overwriting data; the app does not upload the address book or edit existing contacts. Temporary entries may appear in Contacts and be read by the companion app to display names on the watch. Declining still allows navigation and call alerts, but names may not appear.

Calls the app creates itself

PHONE · OPTIONAL

MANAGE_OWN_CALLS creates a local bridge call; MODIFY_AUDIO_SETTINGS supports Bluetooth audio during the conversation. Watch actions are passed to the source notification's buttons. No paid cellular call is placed, call log read or audio recorded. Optional MANAGE_ONGOING_CALLS access through REQUEST_COMPANION_PROFILE_WATCH is requested separately solely to identify the app/state of Telegram/Viber calls already handled by Android and avoid duplicates; that observer does not read caller names/numbers or control those calls. Zalo does not require this observer access. Release builds do not request phone-state permission.

Foreground service and wake lock

PHONE

FOREGROUND_SERVICE, FOREGROUND_SERVICE_LOCATION, FOREGROUND_SERVICE_CONNECTED_DEVICE and WAKE_LOCK maintain navigation or watch call functionality you enabled. Call standby has its own notification and may run without navigation; it stops when you disable the feature or withdraw consent. RECEIVE_BOOT_COMPLETED and REQUEST_COMPANION_START_FOREGROUND_SERVICES_FROM_BACKGROUND help restore an enabled feature when Android allows it. The app does not bypass system background-start restrictions.

Start again after a restart

PHONE

RECEIVE_BOOT_COMPLETED — lets the watch-readiness check run again after the phone reboots, so a paired watch is reachable without opening the app first. It opens no permanent connection.

Battery-optimization exemption

PHONE · OPTIONAL

REQUEST_IGNORE_BATTERY_OPTIMIZATIONS — opens the system dialog so you can decide whether to keep the connection alive on a long ride. Declining blocks nothing.

Internet

PHONE

INTERNET — loads maps, searches for places, calculates routes, signs in, verifies trial/Premium state, and checks AppGallery for updates.

Network and Wi-Fi state

PHONE

ACCESS_NETWORK_STATE, ACCESS_WIFI_STATE — checks connectivity before a request and lets HMS Core/AppGallery sign in or check for updates. G Navigation does not use this access to read Wi-Fi passwords.

Visibility of declared apps

PHONE

The <queries> list names Huawei Health and the store and companion apps the setup guide checks for. It does not request visibility of every installed app.

AppGallery update hand-off

PHONE · APPGALLERY BUILD

REQUEST_INSTALL_PACKAGES and com.huawei.appmarket.service.commondata.permission.GET_COMMON_DATA, added by the Huawei App Service/Update SDK so the app can compare versions and open the update screen AppGallery manages. G Navigation installs nothing silently and installs no arbitrary APK.

05

Data sources and recipients

Three things leave this pair of devices: where you are, what you typed into search, and where you asked to go. This section names the source of each one, the road it travels, and every address at the far end.

Where your position comes from, and what it is for. On the phone it is read from the phone's own satellite receiver through Android's location service. On the watch it is read from the watch's own receiver through @system.geolocation, only while a ride is on the face, and it is sent to the paired phone over Wear Engine — it is not kept on the watch and goes nowhere else. Neither device looks the position up from a network positioning service, and no request is sent anywhere in order to obtain it. It is used to draw where you are on the map, to keep the map and the arrow turned the right way, to measure the distance to the next turn so the watch shows the right instruction at the right moment, and to record the ride you can look at afterwards on the phone. It leaves the phone for exactly two requests: a route, which needs a starting point, and a place search, which uses a rough position to put nearby results first. It is not uploaded on a schedule, and no trail of where you have been is sent anywhere.

Where the map comes from. The map data is OpenStreetMap, and the drawing is done on the phone itself by MapLibre GL from the OpenFreeMap styles liberty for the light map and fiord for the dark one, both served from tiles.openfreemap.org. The map frames sent to the watch are cut out of that same picture on the phone; the watch never fetches a tile of its own. The phone asks that host only for the square tiles covering the part of the world on screen, and the request carries no account, no destination and no search text.

How it travels. Every request below leaves the phone over HTTPS. Routes and place searches do not go straight to the routing or search service: the phone sends them to G Navigation's own server, which checks that the session is entitled, makes the upstream request itself, and returns the answer. Those upstream services therefore see our server rather than your device, and the credentials that pay for them are never inside the app. Map tiles are the exception and are fetched directly, because a tile request says nothing about you beyond which part of the map is on screen. The watch itself makes no internet request at all: everything it shows arrives from the phone over Wear Engine.

  • OpenFreeMap / MapLibreLoads map styles and tiles for the phone map and for the frames drawn on the watch. Open source: github.com/hyperknot/openfreemap and github.com/maplibre/maplibre-native.
  • Photon or NominatimProcesses search queries and the location used to rank results. Open source: github.com/komoot/photon and github.com/osm-search/Nominatim.
  • OSRM serverCalculates routes from an origin, a destination, and a vehicle type. Open source: github.com/Project-OSRM/osrm-backend.
  • Privately operated ValhallaCalculates motorcycle routes from an origin, a destination, and a travel profile. Open source: github.com/valhalla/valhalla.
  • Huawei Wear EngineCarries the current session between the phone and the paired watch. Huawei operates this transport; what travels through it is your guidance, map frames, and journey state.
  • Huawei ID / HMS CoreAuthenticates your account with an authorization code and supplies a display name and email if you grant them, and checks AppGallery for an app update after consent.
  • G Navigation entitlement serverCreates the app session, limits trials per account and device, prevents fraud, and restores Premium state.
  • Backup routing serviceOnly when you choose the “Backup” source for a car or motorcycle route, contacted directly from the phone: receives the start/destination, current position when rerouting and the map area around the route to read speed limits, under a random guest account the app creates for each installation, not linked to your G Navigation account.

Every outside address this app can contact, and what it is for. Apart from G Navigation's own server, described above, the app reaches nothing outside this list, and the watch contacts none of them.

  • tiles.openfreemap.orgMap styles and vector tiles. Contacted directly by the phone whenever the map is drawn, including the frames it cuts for the watch.
  • g-navigation-get.gg-huawei.workers.devThe app's own download and update page, asked whether a newer build exists.
  • photon.komoot.io, nominatim.openstreetmap.orgThe OpenStreetMap search services that answer a place query. In the AppGallery release our server calls them; a development build with the gateway switched off calls them directly.
  • An OSRM server and a privately operated Valhalla serverRoute calculation. Only our server holds their addresses, and the AppGallery release never contacts them itself. A development build with the gateway off uses the public routing.openstreetmap.de and valhalla1.openstreetmap.de instead.
  • Huawei servicesSigning in with a Huawei ID, checking AppGallery for an app update, and pairing the watch are carried out by Huawei's own SDKs, which contact Huawei's servers under Huawei's privacy policy. G Navigation adds nothing of its own to those requests.
  • Servers of the backup routing serviceReceive “Backup” requests directly from the phone, only while that source is used.

G Navigation sends only the data the function you asked for needs. It does not sell data and shares nothing with advertising networks or analytics providers. There is no analytics endpoint, no advertising endpoint and no crash-reporting endpoint in the list above, because the app contains none.

06

Retention and deletion

  • Routes are stored on the phone until replaced or deleted by you.
  • The watch keeps a journey cache for no more than five minutes, plus your display settings and your privacy answer until the app is removed.
  • A watch position fix is used to draw the current frame and is not written to a history.
  • G Navigation does not keep names or notification contents as call history. Names may be written into temporary contact entries for watch lookup. App-created entries are cleaned after about 30 seconds without a call; if Android stops the app, cleanup retries when it runs again. Entries you edited or merged are preserved against data loss and can be deleted in Contacts. Up to 300 technical events are stored locally, containing times, source app type, state, action results and errors, but no caller names/numbers, notification contents or audio. Events older than 48 hours are pruned while the app runs or logs are written/read; data may remain on the phone while the app is stopped. Disabling call alerts, withdrawing consent or clearing app data deletes these logs. Logs are not automatically uploaded. Android, the watch and companion apps may retain received data under their own settings; G Navigation cannot delete those copies on their behalf.
  • Consent records store the policy version, acceptance time, and selected language.
  • Account sessions and account-linked trial records are kept as long as needed to authenticate, restore Premium, and prevent a repeat trial grant, then deleted when the account is deleted. A hashed device marker that is not linked to the account profile is retained for up to three years to prevent repeat trials.
  • The G Navigation server does not retain successful-login history, installation-source reports, search text, or route coordinates. Place and route capacity counters are service-wide totals and contain no account or device identifier.
  • The Android app disables system backup of its app data.

In G Navigation, open Settings > Account > Delete account to delete the profile and its account-linked server data. Account deletion does not reset trial eligibility; a new account on the same device will not receive a second trial. The hashed device marker described above is retained for up to three years solely to enforce this limit. You can also review this policy, withdraw consent, delete local data, or revoke system permissions. If you cannot access the app, send a request to hng89tn@gmail.com and never send a password. Removing the watch app deletes its local data.

07

Choice and consent

  • Consent is versioned. When a material change raises the policy version, both apps ask you to decide again.
  • Withdrawing consent stops navigation-data processing and returns the app to its limited setup shell.
  • Background location, notification access, Contacts and call alerts, and the battery-optimization exemption each have their own explanation or choice.
  • Declining every optional permission still leaves complete OpenStreetMap turn-by-turn navigation on the phone and on the watch.
08

Data security

Store releases allow map, search, routing, identity, and policy endpoints to be configured only over HTTPS. The phone-to-watch link runs inside Huawei Wear Engine's own channel rather than a socket of our own. G Navigation limits what it keeps locally to the purposes above, disables Android system backup, and keeps no guidance or call notification as history.

No transmission or storage method is completely secure. If you identify a security or privacy issue, contact the address at the end of this policy.

09

This policy page

This is a static document in a folder on GitHub Pages. It sets no cookies, runs no JavaScript, uses no analytics, embeds no advertising, and loads no third-party font or tracker. GitHub serves the request for this page, along with the standard network information that accompanies any web request. The full policy covering every watch brand sits on a Cloudflare Worker belonging to the app, linked from section 01.

10

Policy changes

The version and the update date are shown at the top of this page. If a change materially affects how data is handled, G Navigation raises the policy version and asks for consent again inside the app.

11

Contact

For support, access, or deletion requests concerning data controlled by the app:

Nguyen Thanh Hung
hng89tn@gmail.com