MBCompass: an Android compass that records tracks without asking for an account
Modern FOSS Compass and Navigation app without Ads, IAP or Tracking
At a glance
- What is it?
- MBCompass is a Kotlin and Jetpack Compose Android app that fuses magnetometer, accelerometer and gyroscope readings into a heading, shows live GPS position, records GPX tracks and renders offline Mapsforge maps, with no ads, no in-app purchases and no tracking. It is a field tool for hikers and trekkers rather than a turn-by-turn navigation app.
- Who is it for?
- MBCompass fits a hiker, trekker or field surveyor who wants a heading, a position and a recorded track on a phone with no account, no subscription and no telemetry, and it fits anyone who prefers Mapsforge offline tiles over an online map dependency. It does not fit a driver, because the feature set is deliberately short of turn-by-turn guidance and the roadmap lists bearing to a waypoint as still planned rather than shipped.
- Can I use it commercially?
- Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
- Is it still maintained?
- Yes. The repository last received commits 24 days ago.
- What is it written in?
- Mainly Kotlin, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 24, 2026, and from our analysis. They are not legal advice.
Editorial analysis
The scope is deliberately narrower than a navigation app
The project states its own position clearly: it sits between a plain compass and a full navigation app, and it is aimed at hiking, trekking and everyday use. That framing explains the feature list better than the marketing adjectives do. What you get is a compass showing both true and magnetic north, live GPS location, a magnetic field indicator, and track recording with start, pause and resume. What you do not get is turn-by-turn routing, and the roadmap makes that explicit, listing bearing to waypoint as a planned feature rather than an existing one. A bearing to a saved waypoint is the kind of small addition that would turn this into a simple point-and-go tool, and its absence tells you the developers are not chasing that use case yet. The app also states that it never collects or shares your data, and the permissions it asks for are limited to location and, on Android 13 and above, notifications for the foreground tracking service.
Sensor fusion is what separates this from a magnetometer readout
A raw magnetometer gives you a number that drifts when a phone tilts, and a phone held upright in a pocket is not upright at all. The accuracy claim in the feature list comes from fusion, combining the magnetometer, the accelerometer and the gyroscope so that the heading can be corrected for orientation. That is the interesting engineering in the app and it is the part that has to be right for a compass to be usable at all. The accelerometer tells you how the device is being held, which is what lets the reading be compensated for tilt. The gyroscope gives you the rate of rotation, which helps when the magnetic field is disturbed. The magnetometer contributes the absolute reference. The magnetic field indicator is the visible feedback on how good that reference currently is, which is the honest way to show a user that the heading may be wrong near a car, a steel gate or a power cable. Everything else in the app, the location readout and the track, sits on top of the same sensor stack.
Track recording, GPX export and the statistics that come with them
The track feature is the part that turns the app into a field data tool rather than a sightseeing accessory. Recording runs with start, pause and resume, and the path is drawn in real time as you move. When you stop, the app reports track statistics covering distance, duration, speed, elevation and altitude, and the track can be exported as GPX. GPX is the interchange format that matters here, because it is what lets a recorded hike move into a mapping tool or a fitness platform afterwards instead of staying locked in the app. The app ships with the Material Design 3 look, light, dark and AMOLED themes, works in both screen orientations, and is described as lightweight at around 2 MB, running on Android 6 and above. A small install and a foreground tracking service are the combination that decides whether a long recording survives a phone that throttles background work, which is why the notification permission on Android 13 and above matters more than it looks.
Offline Mapsforge maps are the default path, online tiles are optional
Map handling is the design decision with the biggest practical effect. The app supports offline Mapsforge maps, toggled in settings, and separately offers optional online OpenStreetMap tiles. Putting the offline case first is a deliberate bet about where the app is used, since a hiker in a valley is exactly the situation where a tile server cannot help you and a cached map still can. Online tiles are there for the case where you have signal and want a familiar map style. The cost of the offline route is file management that the app does not do for you, since a Mapsforge map file is a separate download that has to be placed where the app can find it, and the tile option needs a working connection at the moment you look. If you plan to use the app somewhere without coverage, the offline map is the one to set up in advance, and the setting toggle is the only control you get for it.
Installing from F-Droid, Obtainium or IzzyOnDroid
The project distributes through several Android app channels, and the choice is mostly about where you want updates to come from. The app listing appears on F-Droid, with a separate listing on IzzyOnDroid, and there is a wiki page describing installing MBCompass from GitHub using Obtainium, which is an app that tracks a GitHub release and installs it. There is also a Play Store entry linked in the page, which is worth noting for a project that describes itself as free of ads, in-app purchases and tracking. There is no build step in the instructions because none is documented for end users. The repository itself is a standard Gradle Android project, with build.gradle.kts, settings.gradle.kts, an app directory and a gradlew wrapper, so building from source is possible for a developer who has an Android toolchain. The package identifier used across the listings is com.mubarak.mbcompass, and the minimum API level advertised is 23, which is what the Android 6 and above requirement refers to.
How the project is licensed and how it stays translated
MBCompass is GPL-3.0, and the terms as stated are that you may use, study, share and improve the app, and that modifications must remain open source under the same licence if you redistribute them. For an end user installing an APK that is not a constraint. For anyone who wants to fork the app or ship a modified build, it is a real one, and it is the kind of licence you accept when you plan to contribute upstream rather than to build a private variant. The artwork is handled separately, with the compass rose licensed under CC BY-SA 4.0. Translations are managed on Weblate rather than in the repository, and the project describes itself as open for community translations, which is a good sign for an app used across language boundaries. On the maintenance side, the last push to the repository was on 2026-10-01 and the recent tags are v1.1.19 from 2026-10-01, v1.1.18 from 2026-08-23 and v1.1.17 from 2026-07-19, which is a monthly patch rhythm rather than a sporadic one.
Where MBCompass is the wrong choice
There are clear cases where another tool wins. A driver needs a navigation app that knows the road network and gives turn instructions, and MBCompass has no routing, no voice guidance and no road matching. A hiker who wants topographic contours, the thing hikers most often ask a map app for, is also out of luck today, since topographic map support with contours sits in the planned features list alongside GPX import. If your workflow depends on bringing a recorded track into another tool for analysis, note that the roadmap lists GPX import as planned while GPX export is available now, so the data leaves the app but does not yet come back in. And if you need your maps to look like a standard consumer map on the fly, the optional online OpenStreetMap tiles are the route and they need connectivity. What the app offers instead is a small, private, offline-capable instrument, and that is a deliberate trade rather than a gap in effort.
Editorial conclusion
MBCompass fits a hiker, trekker or field surveyor who wants a heading, a position and a recorded track on a phone with no account, no subscription and no telemetry, and it fits anyone who prefers Mapsforge offline tiles over an online map dependency. It does not fit a driver, because the feature set is deliberately short of turn-by-turn guidance and the roadmap lists bearing to a waypoint as still planned rather than shipped. Before installing it, check that your device reports a magnetometer, since the sensor fusion path depends on it, enable the offline maps in settings if you will lose signal, and confirm your Android version meets the API 23 minimum that the app badge declares.
Frequently asked questions
What is MBCompass and what does it do on Android?
MBCompass is a free and open source Android compass and navigation app built with Jetpack Compose. It provides a compass with true and magnetic north, live GPS location, sensor fusion from the magnetometer, accelerometer and gyroscope, and track recording with GPX export.
Does MBCompass use maps offline, and which map formats are supported?
Yes. The app supports offline Mapsforge maps, which you toggle in settings, and it also offers optional online OpenStreetMap tiles. The offline option is the one to configure before going somewhere without coverage.
Where can I install MBCompass and what Android version do I need?
The app is listed on F-Droid and IzzyOnDroid, and the project documents installing it from GitHub using Obtainium. The minimum API level advertised is 23, which corresponds to Android 6 and above.
Does MBCompass collect any data?
No. The project states the app never collects or shares your data, with no ads, in-app purchases or tracking, and it requests only the location permission and, on Android 13 and above, notifications for the foreground tracking service.
What licence is MBCompass released under?
The app is GPL-3.0, so modifications you redistribute must stay open source under the same licence, and the compass rose artwork is licensed separately under CC BY-SA 4.0.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/compassmb-mbcompass)Was this useful?