/system/vendor/etc/agps_profiles_conf2.xml
This is the configuration file for Assisted GPS... a very convenient way for tracking you, and for impersonating your phone to receive your phone calls and text messages, as you'll see below.
Let's dig into the settings
{UPDATE: There's a GUI for this... see below}:
First, if you're tired of Google weaseling its way into every nook and cranny of your phone, then change:
----------------------------------------------
<cur_supl_profile name="GOOGLE"
addr="supl.google.com"
port="7275"
tls="true"
/>
To:
<cur_supl_profile name="Test 1"
addr="127.0.0.1"
port="7276"
tls="false"
mcc_mnc="999998"
supl_version="1"
tls_version="0"
sha_version="2"
supl_ver_minor="4"
supl_ver_ser_ind="2"
/>
----------------------------------------------
That supl.google.com is yet another way that Google tracks your location.
Assisted GPS (aGPS) uses SUPL (Secure User Plane Location) to assist the GPS device to get a shorter TTFF (Time To First Fix) on the GPS satellites... and in so doing, those proffering the aGPS services get to track your every move and monetize it. That's not a tradeoff I find particularly beneficial for anyone but the aGPS providers, given that modern GPS units can get a satellite fix plenty fast.
Change:
mcp_enable="true"
To:
mcp_enable="false"
This is CDMA Multicell Processing... since you're disabling all aGPS, there's no need to use MCP for aGPS.
Change:
pde_addr="11.11.11.11"
To:
pde_addr="127.0.0.1"
MediaTek no longer uses the server at 11.11.11.11 IP address... it hosts a bunch of websites, none of them MediaTek.
Change:
agps_enable="true"
To:
agps_enable="false"
This should disable aGPS functionality, but as you'll see below, it can be re-enabled either via the phone's chip automatically deciding to use an aGPS protocol, or via a NILR (Network-Induced Location Request). So we'll turn all that off, too.
Change:
lppe_network_location_disable="true"
To:
lppe_network_location_disable="false"
This is the LTE Positioning Protocol, Enhanced... the comments in the file say it's still under development and not ready for use.
Change:
agps_nvram_enable="true"
To:
agps_nvram_enable="false"
This tells the aGPS functionality to use nonvolatile RAM to store information, and as you'll see below, that information can be sensitive.
Change:
lbs_log_enable="true"
To:
lbs_log_enable="false"
Disables logging to logcat.
Change:
sib8_16_enable="true"
To:
sib8_16_enable="false"
This allows the phone to communicate with the cell towers via SIB blocks. SIB 8 is CDMA2000 data transfer, and SIB16 is aGPS-related information.
Change:
a_beidou_satellite_enable="false"
To:
a_beidou_satellite_enable="true"
This is the Chinese BeiDou satellite system... the more satellites your phone's GPS can get a fix on, the quicker it'll get a First Fix.
Change:
a_galileo_satellite_enable="false"
To:
a_galileo_satellite_enable="true"
This is the European Galileo satellite system, developed so Europe didn't have to depend upon the US for GPS.
The setting:
a_glonass_satellite_enable="true"
already is set to true, so leave it be. That's the Russian GPS satellites.
Change:
reject_non911_nilr_enable="false"
To:
reject_non911_nilr_enable="true"
This is the non-911 ability for a Network-Induced Location Request... in other words, someone can request that your phone give its location... in other-than-emergency situations... in other words, at any time.
Change:
cp_2g_disable="false"
cp_3g_disable="false"
cp_4g_disable="false"
cp_lppe_enable="false"
To:
cp_2g_disable="true"
cp_3g_disable="true"
cp_4g_disable="true"
cp_lppe_enable="false"
This is the 2G, 3G, 4G and LTE communication between the phone and the cellular towers for aGPS purposes, allowing your cellular provider to pinpoint your location exactly.
Change:
ni_request="true"
To:
ni_request="false"
This is the Network-Induced Location Request functionality. This turns it off in all circumstances except when the phone is in a roaming state.
Change:
roaming="true"
To:
roaming="false"
This turns off NILR (Network-Induced Location Requests) even when the phone is in a roaming state.
Change:
msa_enable="true"
msb_enable="true"
ecid_enable="true"
To:
msa_enable="false"
msb_enable="false"
ecid_enable="false"
This is Mobile Station Assistance and Enhanced Cellular ID, which allows the phone to communicate with the cellular towers for aGPS functionality. This is one method by which Google and the cellular providers can single you out from any other phone user.
Change:
lpp_enable="true"
To:
lpp_enable="false"
This is the LTE Positioning Protocol, yet another method by which cellular providers can pinpoint your location via aGPS.
Change:
auto_profile_enable="true"
To:
auto_profile_enable="false"
This prevents the phone from automatically enabling aGPS.
Change:
imsi_enable="true"
To:
imsi_enable="false"
This disables the International Mobile Subscriber Identity being transmitted for the purposes of aGPS. This is yet another method by which you can be singled out from all other phone owners. Further, if someone's running an IMSI-Catcher, they can use your IMSI to spoof your identity, impersonate you, receive your phone calls and your text messages. Why Blu would enable this for aGPS is beyond me.
Change:
no_sensitive_log="false"
To:
no_sensitive_log="true"
This prevents the aGPS functionality from saving any logs with sensitive data.
Change:
up_lppe_enable="true"
To:
up_lppe_enable="false"
This is LTE Positioning Protocol, Enhanced. The comments in the file we're editing say it's still in development and not ready for use.
With the above changes, my map app had about a 30 second TTFF (Time To First Fix) from a Cold Start (first time running the map app, first time enabling location on the phone), it can see 12 satellites, 9 of them have a strong enough signal to use, and the map app pinpointed my location to within about 20 feet...
from inside my house. After another 30 seconds, the location was spot-on, and I could watch the cursor in the map app (zoomed to maximum) move ever so slightly left and right as I transferred the phone from outstretched arm to outstretched arm. That's pretty darned accurate. We don't need aGPS.
{EDIT}
The last thing to do is to prevent the aGPS components from even running.
I used Total Commander to search for the term "agps", and found the following:
/data/agps_supl
/data/agps_supl/agps_to_mnl
/data/agps_supl/wifi_2_agps
The above files are dynamically written into the /data/agps_supl directory during boot, or more likely, they're sym-linked. I'll track them down.
/system/vendor/bin/mtk_agpsd
/system/vendor/bin/wifi2agps
/system/vendor/etc/agps_profiles_conf2.xml (the file we edited above).
I'm still working on how to permanently rid the system of all agps-related files.
{/EDIT}
{EDIT2}
Ahaha! I think I found a way to completely disable SUPL without editing system files.
If you've got an alternative launcher, you can set up widgets on the screen. In Nova Launcher, you long-press on any blank area of the screen, select 'Widgets', then press and hold the Nova Launcher Activities shortcut and drag it out to a blank area of the screen... that'll open the long list of all the widgets you've got available.
From that list, select EngineerMode. It'll open the Engineer Mode app.
Swipe until you get to the Location tab, select "Location Based Service", and uncheck the "Enable A-GPS" checkbox. Further down, you'll see an entry titled "SLP Address"... edit it and enter "127.0.0.1" (without the quotes) instead.
Further down, you'll see the "Feature Enabler" menu. Deselect all the check boxes.
Further down, you'll see the "GNSS Settings" menu. Uncheck "SIB8/SIB16 Enable", check "Glonass Satellite Enable", "A-Glonass Enable", "Beidou Satellite Enable" and "Galileo Satellite Enable".
It's not as thorough as editing the file, but it's much easier.
{/EDIT2}