## 1 Introduction
The GnssLogger App in its updated version (v3.0.0.1) can now provide not only the android.location API raw GNSS measurements in CSV format, but also GNSS observations in the RINEX format. Generating the carrier-phase and Doppler observations is straightforward (refer to Equations (3) and (4) in Section 2). However, generating the pseudorange observations might be challenging. Some further information can be found in Section 2. Although GnssLogger and GEO++ RINEX Logger are widely used, the quality of GNSS observations output from them was found inconsistent in different aspects. In a previous work based on dataset from the Xiaomi Mi8, Google Pixel 5 and Samsung S20 smartphones, the first-order differences of pseudorange and carrier-phase observations were found not following the same trend of the Doppler observations for all three smartphones. The results also showed that the Doppler observations from the Xiaomi Mi8 and Samsung S20 smart devices were biased with respect to the pseudorange and carrier-phase observations [39]. The data logging in the RINEX format (i.e., generating the typical GNSS observations from the Android location API) was likely the cause of such observations' misbehavior. This is due to the fact that each logging App implements its own GNSS observation conversion algorithm and uses different parameter settings, thresholds and float computing accuracies. The quality concerns in the generated GNSS observations would affect GNSS data processing such as cycle slip detection, code smoothing and ultimately positioning performance. Since the data logging and GNSS observations generation are a critical part of smartphone positioning algorithm development, they should be carefully evaluated for the purpose of precise position determination. A comparison between different Apps should therefore be made to assess their consistency. The aim of this paper is to investigate the quality of smartphone GNSS observations in RINEX format from existing smartphone GNSS logging Apps and improvement in smartphone GNSS observation generation with a focus on the following aspects:  
* To provide a performance evaluation of RINEX outputs from two widely used smartphone GNSS data loggers, namely the GnssLogger App, and the Geo++ RINEX App, and also compare to our newly developed software (UofC CSV2 RINEX tool). It gives the reader a great insight into the potential issues in the GNSS observations such as their inconsistency and bias issues in the smartphone pseudorange, carrier-phase and Doppler observations;
* To introduce our newly developed software (UofC CSV2 RINEX tool) available at [[https://github.com/FarzanehZangeneh/csv2](https://github.com/FarzanehZangeneh/csv2) rinex]([https://github.com/FarzanehZangeneh/csv2](https://github.com/FarzanehZangeneh/csv2) rinex), which provides improved performance. Such a tool is of value to researchers and engineers who are developing precise positioning algorithms and products with smartphones GNSS observations;
* To investigate the positioning performance of the three RINEX files in the post-processed mode using a real kinematic dataset. The paper is organized as follows. How to convert the Android raw location-related measurements to the typical GNSS observations (e.g., pseudorange, carrier-phase and Doppler) is first explained in the next section. In the subsequent section, the employed mathematical model, which is the uncombined precise point positioning (UPPP) model, is described in detail. In the numerical results section, the quality of generated GNSS observations from different smart devices and using different loggers is assessed. In this section, the inconsistency between the pseudorange, carrier-phase and Doppler measurements reported also in [PERSON] et al. [39] is thoroughly investigated. The presence of some carrier-phase observations without changes over time and its possible reason will also be addressed in this part.