Readme for reproducibility submission of #75 "Spotr: GPS Spoofing Detection via Device Fingerprinting. User: gps-cpss Password:123456 A) List of Programming Languages: MATLAB MATLAB Version: R2020A (Should run in earlier versions as well) Packages/Libraries Needed: MATLAB Standard License MATLAB Academic License B) C) Hardware Info C1) Processor (architecture, type, and number of processors/sockets): x86_64, 32-bit 64-bit, 1,1 C2) Caches (number of levels, and size of each level): 4, 32KB, 32KB, 256KB, 6MB C3) Memory (size and speed): 1024MB C4) Secondary Storage (type: SSD/HDD/other, size, performance: random read/sequential read/random write/sequential write): VDI, 64GB D) Experimentation Info The main directory in the VM image is ‘/home/gps-cpss/codes’ Each of the figure subdirectories has readme files for generating the respective figures. Please read the following before regenerating the results of #75 "Spotr: GPS Spoofing Detection via Device Fingerprinting. We intend to create the results of Table 1 which also includes nine subfigures in Fig. 5. a. Please note that the error rates are reported based on averaging on multiple runs in a k-fold cross-validation technique. So the plots should convey the same message as the ones in the paper, while looking slightly different in the shape due to random selection of training samples. b. The outlier rejection parameters, carrier-lock-test (CLT) and code-lock-test (CN0) are hardcoded to the m-files, and can be changed by the user. c.Since the data is a large one, for the SatGrid data collected at locations, Missouri and Blacksburg, we provide data from two channels out of eight available ones for illustration and verification purposes. We will make sure to share the entire data with the community. d. We do not generate the features from scratch for the TexBat data (the third party data from UT Austin, Radio Navigation Lab) for two reasons: First, lack of space. Second, the spoofing data and the spoof-free data are combined in the TexBat dataset in a way that the first 100 s of the spoofing data is told to be spoof-free. Hence, extracting this data is not covered here because it is beyond the scope of our work. We do provide the .mat files for TexBat however, which include the complex correlator outputs of a GPS receiver for the entire TexBat data. e. We limit the cross-validation data of Blacksburg and Missouri to one or two days of data collection each with a duration of 60 minutes. The entire data is too long to run here, but the results in the Table 1 are generated using the entire data. =========================================================================================== Please read the following to understand how the raw samples of genuine SatGrid are generated. Genuine signal dump: GNSS-SDR is used for capturing the realtime samples. The raw I and Q data is captured from the Signal Source block on GNSS-SDR by setting the "SignalSource.dump=true" in the configuration file. The data is saved in "signal_dump.dat" by default. Genuine and spoofed correlator outputs: The complex correlator outputs are dumped from the tracking block. For capturing the I and Q data of the complex correlator outputs, we need to make modifications to the original source code of the tracking block. The modified code can be found at "dll_pll_velm_tracking.cc" and "dll_pll_velm_tracking.h". The instructions for rebuilding the installation can be found at [1]. Command-line example to start GNSS-SDR: gnss-sdr --config_file=./x300_configuration.conf [1] https://gnss-sdr.org/