sentences (e.g. GGA, RMC and GLL). For each RMC sentence, it in-
cludes information such as time, position and speed. Thus, this can
be expressed as:
S ¼
f
r
1
; r
2
; r
3
; …; r
n
g
(1)
r
i
¼ðdate
i
; time
i
; lat
i
; lng
i
Þ; i ¼ 1; 2; 3; …; n; (2)
where a NMEA record is an item in S, and each item r
i
is denoted as
a chronological track point in the map based on its position. S is
then a set of track points, and deleted trajectories can be recon-
structed by linking the track points together chronologically. Thus,
if we can fi rst recover NMEA logs, the deleted trajectories can be
reconstructed by analyzing the recovered log files.
The proposed GPSDroid
In this section, we present the proposed recovery system,
GPSDroid. As shown in Fig. 3, GPSDroid consists of four stages,
namely:
1) Image acquisition (of GPS devices): As NMEA logs are stored in
non-volatile storage, there are two potential sources of data,
namely: internal flash memory and removable memory card.
Then we need the appropriate approaches (e.g. JTAG, Chip-off
and forensic software) to dump the memory copy.
2) Data pre-processing: Data blocks belonging to NMEA logs
should be distinguished from other invalid blocks. Thus, ac-
cording to the features of NMEA data, the pre-processing oper-
ation includes pinpointing all valid data blocks while scanning
the acquired image.
$GPRMC,001804.855,A,3019.0853,N,12021.6788,E,3.14,113.16,030114,,,A*6A
030114 Date - 3rd of January 2014
113.16 Track angle in degrees True
3.14 Speed over the ground in knots
12021.6788,E Longitude 120 deg 21.6788' E
3019.0853,N Latitude 30 deg 19.0853' N
A Status A=active or V=Void
001804.855 Fix taken at 00:18:04.855 UTC
RMC Recommended Minimum sentence type identifier
A
Mode or integrity indication (A=Autonomous, Differential,
Estimated, Not valid etc.)
*6A
A CRC32 checksum of the sentence data after the $ and up to
but not including the * character
(c) The structure of RMC sentence and explanations for each field
$
start
xxxxx
sentence type: five letters
… ,value, …
data area: fields separated by comma
*xx
checksum: bitwise XOR of characters between $ and *
<CR><LF>
end
(a) The NMEA sentence format
(b) Two consecutive NMEA records excerpted from a real NMEA log
$GPGGA,001803.855,,,,,0,00,,,M,0.0,M,,0000*54
$GPGLL
,,,,,001803.855,V,N*78
$GPGSA
,A,1,,,,,,,,,,,,,,,*1E
$GPGSV
,
3
,
1
,
10
,
17
,
71
,
063
,
38
,
10
,
57
,
205
,
39
,
02
,
24
,
278
,
24
,
04
,
58
,
323
,
37*7A
$GPGSV
,3,2,10,28,26,178,37,23,22,080,36,13,21,115,,20,19,043,*78
$GPGSV
,3,3,10,12,11,321,,05,04,217,*7E
$GPRMC
,
001803
.
855
,
V
,,,,,,,
030114
,,,
N*48
$GPVTG
,,T,,M,,N,,K,N*2C
Record 1
$GPGGA,001804.855,3019.0853,N,12021.6788,E,1,03,2.8,13.4,M,7.1,M,,0000*54
$GPGLL
,
3019
.
0853
,
N
,
12021
.
6788
,
E
,
001804
.
855
,
A
,
A*58
$GPGSA
,A,2,10,02,17,,,,,,,,,,4.2,2.8,3.2*3B
$GPRMC
,001804.855,A,3019.0853,N,12021.6788,E,3.14,113.16,030114,,,A*6A
$GPVTG
,
113
.
16
,
T
,,
M
,
3
.
14
,
N
,
5
.
8
,
K
,
N*0D
Record 2
Information about time, latitude, longitude, speed, date
Fig. 1. A detailed illustration of NMEA data.
log file
fragment
··· ···
fragment
fragment
fragment
record
··· ···
record
record
record
GGA
··· ···
GLL
RMC
RMC sentence
info about
position
speed
time
Fig. 2. Structure of NMEA log file.
log analysis
…
acquired image
data block of
NMEA log
data block of
NMEA log
data block of
NMEA log
…
data blocks reassembly
new log files
map application
data preprocessing
GPS devices
internal flash memory removable memory card
JTAG,
Chip-off
Forensic
software
Fig. 3. GPSDroid architecture.
K. Shi et al. / Digital Investigation xxx (2017) 1e11 3
Please cite this article in press as: Shi, et al., A novel file carving algorithm for National Marine Electronics Association (NMEA) logs in GPS
forensics, Digital Investigation (2017), http://dx.doi.org/10.1016/j.diin.2017.08.004