Search code examples
androidgpsfilesystemstracking

Location of GPS-data file?


I am interestes in "seeing" the GPS or location history raw-data of my rooted android device. I had a look in the the /data/gps/log/ folder and it has interestingly named files but they seem empty...

Which file or files contain this "raw gps data"? Do these files even exist?

I came across another post which talks about cache.wifi and cache.cell files which I am not able to find neither using RootBrowser nor the command find / -name "cache.cell" in TerminalEmulator.

Thanxs


Solution

  • it turns out the raw GPS-data is not on the phone itself but in the modem! (... or may be even more difficult to grab: it is in the Network!)

    Modems are usually full GNU/Linux-systems with closed firmware. Even though this closeness violates the GPL, it has been proven to be very difficult to have access to the source code of a modem-firmware. One fo the few positive examples is the story behind the Pinephone's modem manufactured by Pine64. Behind the scenes there is 3GPP-Consortium. Some of it members are Google and Qualcomm.

    it is possible to extract GPS information if you manage to talk to the modem. Sometimes serial-console helps, it all depends on how the modem is connected to the main CPU and how you interact with your main system (Android, iOS, Windows, ...).

    I used this as a reference with a particular WWAN-modem:
    https://wiki.mobian-project.org/doku.php?id=location
    it is the one used on the Pinephone Pro, which is a great device!

    Here is an example of raw data from the link above:

    $ sudo mmcli -m 0 --location-get
    ... Sometimes there is additional 3GPP (cell phone) location data here ...
      --------------------------
      GPS  |               nmea: $GPGSA,A,3,13,15,20,21,,,,,,,,,2.8,2.6,1.0,1*19
           |                     $GPRMC,215904.00,A,2518.123453,N,072.1111,W,0.0,21.7,310720,10.8,W,A,V*41
           |                     $GPGSV,3,1,12,05,20,084,22,10,06,272,21,13,51,059,32,15,81,123,34,1*6C
    $GPGSV,3,2,12,18,67,295,28,20,35,284,29,21,08,313,29,23,,,30,1*58
    $GPGSV,3,3,12,29,21,205,21,30,09,036,26,02,,,,07,,,,1*65
           |                     $GPVTG,21.7,T,32.5,M,0.0,N,0.0,K,A*23
           |                     $GPGGA,215904.00,2518.123453,N,07211.11111,W,1,04,21.1,114.4,M,-36.0,M,,*64
           |                utc: 215904.00
           |          longitude: -72.11111
           |           latitude: 25.123453
           |           altitude: 114.400000
    

    there are more resources on the internet, if I find a better one, I'll expand this answer

    https://www.freedesktop.org/software/ModemManager/man/1.0.0/mmcli.8.html
    https://electronproton.com/mmcli-command-examples/