Hi there. Could anyone please give me a very technical explanation how the os determines location. And when it does, is that stored in a file? And if an app is allowed to get the location, does it get it from the same file? I am technically interested in this because I am interested in location spoofing which is 100%. I tried some of the apps but I don’t really trust them, at least not until I know how things work. Thank you
The location recognition of Android is now primarily via the so-called Fused Location Provider (FLP), an interface of the Google Play Services.
The FLP bundles various sources such as GPS, WLAN, mobile network and device sensors. With this combination, there is a fast, usually very precise and at the same time energy-saving location.
Source: Android
The FLP constantly checks which location sources are currently best available. With good visibility on satellites, the GPS signal dominates (very accurate, but battery-intensive).
In buildings or cities, WLAN and mobile phone data are mainly analyzed because they are more reliably available there.
In addition, Android also uses sensors such as accelerometers and gyroscopes to refine the position and detect the type of movement (walk, stand, drive). flp up.
Depending on previous use and signal availability, this returns the best combination of the available position data. The modern location detection in Android is therefore based on an intelligent fusion of all available location data, controlled by the Fused Location Provider.
Thanks @volker01 for a good explanation.
Regarding the “supplemental GPS data” (from microG, from AGPS, etc), you can see this overview: Location Modules - iodé
You can decide to disable this (in microG, and also in Location Settings by turning off AGPS), but as noted true satellite GPS only will be battery intensive and will take some time to get a fix if not used frequently enough to provide a “warm fix” (I think it may not need a full “cold fix” if used every 5-ish days or so… sorry I forget some of the details on this but as a former Ubuntu Touch user without AGPS ability I knew all too well about this).
Very informative. Thank you. I though IODEos does not have Google play services. Anyway, is there a way to hack or edit FLP (even if I have to root the phone) to tell it where to take the data from? (The reason why I am asking is because I want to spoof my location and I want it to be 100% reliable, without slipup. I know there are apps that do that but I don’t trust them which is why I would prefer to “go in” myself) Thank you
MicroG is rebuilding Google Play Services and has integrated its own online location services for location recognition. See microG - location: three points … (position, beacon and “own”).
You can also select which services to use in MicroG under Location Services, see: WLAN-based location … and radio cell-based location …
Of course you can’t here set your own location. This is only possible via apps.
And of course, you should also be aware that your mobilephone provider can always locate you about triangulation via the mobile phone masts.
The native Android API “LocationManager” from the Android.Location package is used to use GPS data in Android without Google Play Services.
Key points for using LocationManager instead of Google Play Services are: LocationManager can directly query GPS data via the GPS_Provider without requiring Google services.
Alternatively, the network_provider can be used to determine the location via WLAN and mobile networks, but usually with less accuracy.
MicroG uses its own implementation of the Fused Location Provider (FLP) to determine the location. MicroG integrates FLP-like features that combine GPS, WLAN, and cellular data to provide location data. The accuracy and functionality are comparable to the Google original, but with a focus on data protection and open source.
So it’s a question of the app whether it uses the FLP or the Location Manager. That depends on the programmer.
FLP is much easier, because it is ready to use.
Thank you for putting all this time in to educate me: “So it’s a question of the app whether it uses the FLP or the Location Manager. That depends on the programmer.
FLP is much easier, because it is ready to use.”
Do you mean the programmer of a given app? Like a dating app?
So when an app is allowed to get location, who processes the location? The code within the OS or do the apps calculate? In other words, whatever is passed on to a given app, is this the raw data or is it computed by the OS and passed as a GPS location?
I am asking because it is easier to manipulate one piece of data than multiple data coming from multiple sources.
Lastly, do you know of any apps which can reliably manipulate the location data passed to apps? (I understand cell tower triangulation but it is not very accurate and I usually use ethernet with a vpn. I also understand wifi triangulation but I dont use wifi at home).
Again, that you for your patience
But note that the connection to your mobile operator is independent of the VPN and other things.
The connection to your mobile phone provider is always done directly with your SIM card and is required for telephone calls. Your provider must know where you are so that your phone can be booked into the next cell when you change your location.
The accuracy varies, depending on the number of mobile phone antennas around you, can be very accurate in a city.
So I spent a few more hours of research. I soon discarded mock location from the developer options (apps can see if it is enabled) and discovered 2 possibilities: XposedFakeLocation and GPS setter. Does anyone know about these apps? How do they work? Are they a Unifiednlp backend? Are they 100% reliable or can an app “gp past them”. Which one is better/ easier to install and use? Any other ones? This is alot of work but I am committed to getting this done, not to be spied on ever again (mostly:) Thanks alot
I am trying to sort out what you want exactly. Since your cellular connection will expose your true location to your provider, then the device itself is known to whomever the provider would share it with, there isn’t a way around that (as you understand).
So then if it is about particular apps not knowing your true location, then isn’t simply denying location access to those apps all that is needed? I think you are attempting to not deny location, but also report a fake location, which would then lead to this discussion we are having, but how does that benefit your privacy over just not giving any location data at all?
I am not being critical, just attempting to better understand your situation.
Hi Rik. First of all, cell triangulation is not very accurate. I also am quite sure tha the cell provider does not share location data with app makers (especially not on the fly). Lastly, I never use my cellular network while at home, only while on the move (my phone number and SMS is VOIP so I can receive SMS and voice calls off the Internet without cellular). Oh, and I use a VPN so my actual IP address (and thus location) is not know to my home ISP or any site I go to.
Yes, I am talking about apps which need the location. For instance dating apps. I want them to get my city correct but not know my home address. I also want the dating apps to think I am in my city while I am somewhere else (like vacation). Also, some apps do not work at all without granting location.
Like I said, it narrowed it down to XposedFakeLocation and GPS setter but it seems like no one has any experience with those apps. Thanks