Hmm... ich denke mal, daß der interne (3Achs) Magnetfeldsensor fest eingebaute Hardware ist, und der Zugriff darauf direkt über Android selbst abgewickelt wird (über das Package android.hardware.Sensor bzw ~SensorEvent, ~SensorEventListener, ~SensorManager).
Insofern steht jeder Anwendung der Zugriff auf die Sensoren prinzipiell zur Verfügung (ggf Permissions nötig), was da jetzt allerdings bei nicht vorhandenen Sensoren als Ergebnis zurückgeliefert wird, und wie die Navigon-App das weiter verrechnet, weiß ich nicht. Aber prinzipiell geht der Zugriff auf die internen Sensoren direkt über die Android-API.