添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
Hello.
I noticed that A-GPS does NOT work in many android firmware, the NetGuard firewall does not even fix XTRA http requests, so the problem lies either in the gps.conf settings or in the android firmware source code.
If you clearly understand how A-GPS works and how to check it, then I will be grateful if you answer this question with a short answer:
1) Android smartphone model
2) android version
3) name and/or firmware version
4) Are there ephemeris for the entire group of GPS satellites?
5) Are there any XTRA http requests to NetGuard in the "GPS daemon" system application?
Example:
1) Xiaomi redmi note 7
2) android 10
3) miui 12.5.1.0 Global Stable
4) no ephemeris
5) no http requests
I am testing A-GPS through the GPSTest program:
To understand if A-GPS works, I do this:
1) turn off the Internet, GPS
2) I clear A-GPS data in GPSTest (menu - "Clear additional data")
3) reboot the smartphone
4) turn on the Internet, then GPS
5) I look NetGuard for http requests (system application "GPS daemon")
6) run GPSTest, click on the menu "Enter PSDS data"
7) I look NetGuard for http requests (system application "GPS daemon")
8) I look at GPSTest for the presence of AE flags (almanacs and ephemeris) for the entire group of satellites
Information about almanacs and ephemeris under the spoiler:
I remind you
Almanacs are the approximate position of all satellites in the constellation for the coming weeks.
The ephemeris is the exact position of the satellite for the next few hours. Therefore, if you do not use GPS for several hours (especially at night), then the Ephemerides become rotten and here A-GPS comes to the rescue.
that after the correct XTRA (A-GPS) request, in the GpsTest program we should see the AE flags (Almanacs + Ephemerides).
If we see only Almanacs, then they either remained from the previous A-GPS request (when the Ephemeris went rotten) or most likely did not appear from A-GPS, but were downloaded directly from some one satellite.
Almanacs are transmitted by satellite to the entire group of satellites. Those. if at least 1 satellite managed to transmit almanacs, then the entire group of satellites will be with almanacs.
Ephemeris is transmitted by each satellite only to itself and without A-GPS, the transfer of all almanacs + ephemeris can take up to 30 minutes (for me).
I went out into an open field, stood there for half an hour, and only then did I get Ephemeris, and even then not on all satellites.
If we talk about a clean smartphone without almanacs and ephemeris, then the total transmission time of GPS almanacs (to all satellites) directly from the satellite is 12.5 minutes, so A-GPS can be very helpful in such situations.
If A-GPS works on your firmware, then after rebooting and turning on GPS
and/or after clicking "Enter PSDS data" you have:
1) an https request to XTRA servers appears in NetGuard
2) almanacs and ephemeris appear in the GPSTest program ("AE" flags)
means A-GPS is working.
If there are only almanacs (flag A) for all GPS satellites, then we consider that A-GPS does not work.
Screenshots:
link - screen after http xtra request (a-gps). All GPS satellites have an E flag (ephemeris)
link - screen after http xtra request (a-gps). All GPS satellites have an E flag (ephemeris) and an A flag (Almanacs). As I understand it, this is the ideal work of A-GPS. When the entire group of satellites has the flag A + E.
link - screen in the NetGuard firewall with XTRA and NTP requests from the "GPS daemon" system application
link - video showing the appearance of Ephemeris after running GPStest. (cleaning and entering PSDS data into GPStest does not work, but ephemeris downloaded after turning on GPS)
This information applies only to the GPS navigation system (not GLONASS, not Galileo, not BeiDou, etc.).
Thanks to everyone who will respond.
Most modern smartphones support A-GPS (Assisted GPS) for example these:
Samsung Gallaxy S series
Google Pixel 6 series
OnePlus 10 ProXiaomi Mi 12 Pro
Oppo Find X5 Pro
Vivo X80 Pro
Realme GT 2 Pro
Asus ROG Phone
Motorola Edge 30 Pro
To check if A-GPS is enabled on your Android device, you can follow these steps:
  • Open the Settings app.
  • Tap on Location .
  • Under Location , make sure that the Use location switch is turned on.
  • Tap on Mode or Manage location services .
  • Under Google Location Accuracy , look for the Improve Location Accuracy switch. If the switch is turned on, then A-GPS is enabled.
  • If the switch is turned off, then A-GPS is not enabled. To enable A-GPS, tap on the switch to turn it on.
    A-GPS is supported by Android since the Gingerbread release in 2010. In later versions of Android, A-GPS support has been improved. . However, the implementation of A-GPS can vary from device to device.
    Under Google Location Accuracy , look for the Improve Location Accuracy switch. If the switch is turned on, then A-GPS is enabled. You are not right. Enabling the "Google Location Accuracy" option does not enable A-GPS.
    This option improves the accuracy of the location due to the Google database, which contains wi-fi routers, bluetooth devices, cell towers. And the location is already attached to them. As a result, a huge database is created, where being near a given wi-fi access point and cell tower means that you are at a certain GPS coordinate. That's how it works.
    A-GPS is when an operating system or program downloads a file from the Internet that contains almanacs and ephemeris of GPS satellites, resulting in improved location accuracy.
    Interesting topic. I was never able to download ephemeris data on my phone:
    1) Xiaomi Mi A1
    2) 13
    3) lineage-20.0-20231101
    4) No ephemeris data.
    5) There was a request by "GPS" process do download the data, but only almanac was downloaded. I used AFWall+ to track this.
    I followed your guide but the best I was able to achieve was an "A" flag in GPSTest for all satellites. I have also Nexus 7 2013 with an older LineageOS 14 and it downloaded ephemeris data without any problem. I know there are differences in gps.conf so I tried to use the same *.conf in my phone, but the result was the same. I tried also other configurations from the Internet without success. I read somewhere that GPS configuration is partially baked in the Qualcomm GPS modem so it's hard to say if and how it can be changed.
    I attached my gps.conf for a reference. I don't remember how AGPS worked in stock ROM.
    The problem I have is that the NetGuard firewall doesn't even record http requests to any server at all. Therefore, no matter what SUPL or XTRA server I install, there is no HTTP request. I use a simple script in AdGuard (paid) to block all native A-GPS requests on port 7275. Before implementing the script - quite surprisingly, I should add - all my A-GPS requests, on all my Samsung phones, would go through Amazon, not Google (SUPL). See attached screenshot and, if curious, use WhoIs to search the blocked (red) TCP/IP requests. The script is simple and it works 100%. It might even work in NetGuard. Obviously you'd need to change the port number, if your A-GPS requests are being sent through a different port.
    SUPL aside however, unless you're using one of the privacy hardcore ROMs (GrapheneOS, DivestOS, or CalyxOS), your phone leaks your SIM ID (and who knows what else) to Google every time you connect to a Wi-Fi. AdGuard, apparently can strip off these personal identifiers if the Network Manager (tethering) system files are being redirected through AdGuard. I cannot see exactly what the stripped code looks like however, the files are shown as being modified every time a Google Network Stack requests gets through.
    I'm rooted, microG
    Most modern smartphones support A-GPS (Assisted GPS) for example these:
    Samsung Gallaxy S series
    Google Pixel 6 series
    OnePlus 10 ProXiaomi Mi 12 Pro
    Oppo Find X5 Pro
    Vivo X80 Pro
    Realme GT 2 Pro
    Asus ROG Phone
    Motorola Edge 30 Pro
    To check if A-GPS is enabled on your Android device, you can follow these steps:
  • Open the Settings app.
  • Tap on Location .
  • Under Location , make sure that the Use location switch is turned on.
  • Tap on Mode or Manage location services .
  • Under Google Location Accuracy , look for the Improve Location Accuracy switch. If the switch is turned on, then A-GPS is enabled.
  • If the switch is turned off, then A-GPS is not enabled. To enable A-GPS, tap on the switch to turn it on.
    A-GPS is supported by Android since the Gingerbread release in 2010. In later versions of Android, A-GPS support has been improved. . However, the implementation of A-GPS can vary from device to device.
    Interesting topic. I was never able to download ephemeris data on my phone:
    1) Xiaomi Mi A1
    2) 13
    3) lineage-20.0-20231101
    4) No ephemeris data.
    5) There was a request by "GPS" process do download the data, but only almanac was downloaded. I used AFWall+ to track this.
    I followed your guide but the best I was able to achieve was an "A" flag in GPSTest for all satellites. I have also Nexus 7 2013 with an older LineageOS 14 and it downloaded ephemeris data without any problem. I know there are differences in gps.conf so I tried to use the same *.conf in my phone, but the result was the same. I tried also other configurations from the Internet without success. I read somewhere that GPS configuration is partially baked in the Qualcomm GPS modem so it's hard to say if and how it can be changed.
    I attached my gps.conf for a reference. I don't remember how AGPS worked in stock ROM.
    The problem I have is that the NetGuard firewall doesn't even record http requests to any server at all. Therefore, no matter what SUPL or XTRA server I install, there is no HTTP request. I use a simple script in AdGuard (paid) to block all native A-GPS requests on port 7275. Before implementing the script - quite surprisingly, I should add - all my A-GPS requests, on all my Samsung phones, would go through Amazon, not Google (SUPL). See attached screenshot and, if curious, use WhoIs to search the blocked (red) TCP/IP requests. The script is simple and it works 100%. It might even work in NetGuard. Obviously you'd need to change the port number, if your A-GPS requests are being sent through a different port.
    SUPL aside however, unless you're using one of the privacy hardcore ROMs (GrapheneOS, DivestOS, or CalyxOS), your phone leaks your SIM ID (and who knows what else) to Google every time you connect to a Wi-Fi. AdGuard, apparently can strip off these personal identifiers if the Network Manager (tethering) system files are being redirected through AdGuard. I cannot see exactly what the stripped code looks like however, the files are shown as being modified every time a Google Network Stack requests gets through.
    I'm rooted, microG