## 1 Introduction  
Precise positioning performance with smartphones that employ low-cost GNSS chips has attracted increasing attention in both academic and industrial communities in the past few years. After Google opened access to the GNSS raw measurements in the Android operating system in 2016, it became possible to conduct precise positioning for smartphones with raw GNSS observations. However, for Android devices, which usually adopt low-cost GNSS chipsets and antennas, their GNSS data quality is a critical issue in performing precise positioning. Studies have shown that GNSS observations from Android devices suffer from severe data quality problems and many of them are very different compared to geodetic grade receivers [1, 2, 3]. Generally, they are subject to not only low signal strength, high measurement noise, and poor multipath suppression, but also to some unexpected errors that may be hardware-related. The C/N0 values of smart devices were around 30-40 dB-Hz, which was approximately 10 dB-Hz lower than those of geodetic receivers, and such low signal strength could lead to large observable noise [1; 2]. It was found that the GPS pseudorange noise of the Nexus 9 tablet with a self-contained built-in antenna was 2.32 m, about two times larger than that of the Nexus 9 with an external antenna, and 10 times larger than that of geodetic receivers [3]. The multipath error of Xiaomi Mi 8 reached several meters, which was much larger than the geodetic receivers (usually at decimeter levels) [4], and had a significant impact on positioning precision, due to both the induced error on the measurements and the loss of lock signals [5]. Some other errors were also noticed for different smartphones, especially the irregular gain pattern of these low-cost antennas [6; 7], the drifts between the code and carrier-phase observables [5], and the arbitrary initial phase offset [8; 9]. These factors are non-negligible in performing precise positioning. Both relative positioning and precise point positioning (PPP) techniques are utilized for precise positioning of smart terminals; the PPP approach becomes preferable when considering the fact that the smart terminals usually work under a standalone environment [10; 11; 12; 13; 14; 15; 16]. Since the launch of Xiaomi 8 in May 2018, more Android devices are equipped with dual-frequency and even multi-frequency GNSS chipsets, making dual-frequency PPP possible. However, frequent observation interruptions are found on the second frequency for these smart devices, thus making the dual-frequency data integrity much lower than the first frequency data and degrading the classic dual-frequency PPP performances [15; 16]. The positioning accuracy for Xiaomi Mi 8 and Huawei Mate 20 could only reach at the decimeter level in static PPP and at meter level in kinematic mode using dual-frequency measurements [17; 18; 19]; the positioning errors showed severe variations about 4-5 m and there were only about 5-9 visible satellites per epoch [18]. Such precision was even lower than the single-frequency PPP results reported in [1; 2; 3]. Unlike the dual-frequency PPP, which eliminates most of the ionospheric delay by forming ionospheric-free (IF) combinations, SF-PPP has to deal with the ionospheric delay as the primary error source [20]. The simplest method is to use external ionospheric models, such as Klobuchar [21] and Global Ionospheric Maps (GIM) [22]; however, the positioning accuracy is subject to the ionospheric model accuracy, which is usually at a level of several TECUs (total electron content unit) [20]. The Group and Phase Ionospheric Correction (GRAPHIC) [23] combination is also an applicable SF-PPP method that can eliminate ionospheric delay by code and carrier phase combination, and can obtain centimeter-to-decimeter accuracy [24; 25]. In addition, the GRAPHIC observation model produces few redundancy observations and may lead to a rank-deficient mathematical problem [26]; thus, code measurements must be employed, as well [27].