Related
I am looking for an app that automatically switches off the cellular radio when wifi is connected and switches it back on when wifi loses connection. I'm not talking about the APN data connection which already does that, I'm talking about the regular cell phone connection.
According to my lack of results searching through the forums, Market, and Google, such an app does not exist yet. Currently the best app I've found to do anything remotely like this is the Airplane Mode Wi-Fi app, which is a manual switch and a slightly cumbersome one at that, not nearly good enough for how often I go in and out of wifi.
The reason I ask for this is because I use Google Voice with SIP and a prepaid plan. I want to use SIP as much as possible to save my prepaid minutes for when I really need them. When wifi and cell are both connected with Sipdroid running and I receive a call, they both ring at the same time. To be sure I don't accidentally use prepaid, I usually reject the call and call back over SIP, which is slightly annoying for both me and the caller.
Might someone be willing to create this app? Or better yet, does it already exist and I just wasn't doing the right searches?
You can turn the phone radio off with code but you need to use non-public apis and probably extra permissions. For anyone interested, have a look at RadioInfo.java (Phone Info when selecting an activity with AnyCut).
I'll add the option to the Airplane Mode Wi-fi Tool.
It was simple, I'm testing it right now, then I'll update it in the market as soon as it works properly.
UPDATE: Done, go download "Airplane Mode Wi-Fi Tool" (free) from the market if you'd like to stay updated from there, otherwise install it from the attachment here.
It only enables airplane mode if it successfully connects to a Wi-fi network, if it disconnects, connection gets dropped, or wi-fi gets disabled from the settings or widget, the phone goes back to regular radio mode.
Make sure to check the Preferences and enable/disable it according to your preferences. It's disabled as default.
Enjoy!
Perfect! Airplane Mode Wi-Fi Tool has become one of my top favorite apps with this feature. Thanks!
cant' find it on the market
sorry: I needed to search for the translated name
zorxd said:
is this app still available on market? Can't find it.
Click to expand...
Click to collapse
It is, Market link -- Airplane Mode Wi-fi Tool
Also, you might be interested in this one, Market link - AutoAP
I found the application on the market, however it doesn't behave as expected. I have to manually switch to airplane mode, and then enable wifi.
What I would like is a single switch to enable wifi AND disable the cellular radio.
And then a single switch to switch back to cell radio with wifi off.
I will try autoAP, thanks
How hard is it on the battery if I always leave wi-fi on even when not used?
autoap seems just fine, I just have to disable wifi to automatically enable cell radio
thanks
However I think, from a marketing point of view, you should consider a better name. Auto AP sounds like Automatic Access Point to me.
Yeah, works fine on tablets without internal 3G. This provides a battery saver.
You may have noticed, especially if you've got the new Free Wifi Calling feature from T-Mobile, that WiFi Calling is a BATTERY HOG. Worse, it hogs battery even when disabled. You can verify it's Hogginess even when disabled by noting it will almost always be the top APP in history using SystemPanel. It's incredibly badly coded, and if you've got a Rom with Wifi Calling on it, and you've had bad battery life, now you know WHY.
But, really, with the new Free Wifi Calling feature, we shouldn't have to kill it entirely.
You can freeze it with Titanium Backup, but that's a hassle. Likewise using Bloater to uninstall/reinstall it all the time. Wouldn't it be nice just to have a desktop widget to do it for you? Or be able to hook it into your "Home Wifi" profile, so it's always enabled at home, and then have it turned off as soon as you're no longer near your home wifi?
Thanks to user AntonX in this thread , I came across a method to simply kill the app at the system level until needed. Still not convenient. So, I whipped up some Tasker scripts which will help the situation.
This assumes you have Tasker, as well as a basic knowledge of how to use it. Here are your the TASKS to create (Don't create any profiles unless you want to)
You also need to have the Locale Execute plugin, which is free.
NOTE: For this to work correctly, leave the slider set to ENABLE in the wifi calling app, and disable the feature using the Tasker widget and not inside the app!
Create a Task "Disable Wifi Calling"
1. Variable Set %WIFIWASON to YES If %WIFI ~ on
2. Wifi Set Off
3. Wait 5 Seconds If %WIFIWASON ~ YES
4. Execute @!pm disable com.android.kineto
5. Wifi Set On If %WIFIWASON ~YES
6. Variable Clear %WIFIWASON
7. Variable Clear %WIFICALLING
Create a Task: "Enable Wifi Calling"
1. WiFi Set On
2. Plugin:Execute @!pm enable com.android.kineto
3. Wait 5 Seconds
4. Load App Wifi Calling
5. Variable Set %WIFICALLING to YES
Create a Task "Toggle Wifi Calling"
1. Perform Task Disable WIFI Calling If %WIFICALLING ~ YES
2. Perform Task Enable WIFI Calling If %WIFICALLING |~ YES
TO USE:
Add a Tasker Widget to your homescreen for the "Toggle Wifi Calling" task.
What is going on:
Disable script will check if wifi is on at the time it is executed. It has to turn Wifi OFF so we get a clean disconnect from the network and the taskbar Icon goes away before killing the Wifi Calling app. If Wifi was on beforehand, it turns it back on.
Enable script will make sure wifi is enabled, and give it time to connect, and then load the application since sometimes it won't activate on its own without loading manually.
These tasks are intended to be linked to Tasker widgets on your homescreen, but you can call them from location based profiles or whatever.
Now, when Wifi Calling is OFF, it is REALLY off, and not just sitting around, unused, sucking up your battery. With a little more work, this could probably be turned into a single "Toggle" task, but that's an exercise for someone who has slept and doesn't have work in 5 hours. Comments/Improvements welcome.
Update 1:
Added instructions for creating a Toggle widget at the same time.
Streamlined Tasks.
Planned Features:
1. Automatically disable WIFI calling app once WIFI has been disconnected to save battery. Seems to need a block to prevent the state from triggering during processing of the disable/enable tasks, as it breaks functionality. I'm sure it is trivial but I have a limited attention span.
2. Automatically enable WIFI calling app if currently connected to WIFI *and* cell has no signal for longer than a set time. (%CELLSIG)
3. [not possible?] - Audible warning that WIFI signal is getting low and you are currently on a call. Is there any way to read current WIFI signal strength with Tasker?
Very good guide and a great idea.. if only we could get a better coded wifi calling app... or one for cm7
Sent from a cell tower to the XDA server to you.
I love the idea, but I can't quite seem to get it working. When I run the "disable" task, it eventually turns WiFi back on and WiFi calling gets re-enabled.
Then, a while later I get an "app not responding" warning from the Android system for the execute locale plugin (I can select Force Close or Wait).
Also, what is the best way to grant SU permissions to the plugin in the SU application? I have never been prompted to allow it. To test it out, I just temporarily granted access to everything...
Thanks!
lotherius,
I follow on the G2X forums. And you know how the G2x & MIUI Roms can't seem to get Wifi Calling to work consistently. I noticed that if I can get the Wifi Calling app to stay turned OFF it allowed my Sim card to not get the "Invalid Sim" error and then I was able to get wifi calling to work again even after reboots. Do you think by any chance that this script could help cure our Wifi Calling issue with MIUI Roms??? And is there a way to make a flashable zip of this for us Noobs? Thanks Again.
GFam4 said:
lotherius,
I follow on the G2X forums. And you know how the G2x & MIUI Roms can't seem to get Wifi Calling to work consistently. I noticed that if I can get the Wifi Calling app to stay turned OFF it allowed my Sim card to not get the "Invalid Sim" error and then I was able to get wifi calling to work again even after reboots. Do you think by any chance that this script could help cure our Wifi Calling issue with MIUI Roms??? And is there a way to make a flashable zip of this for us Noobs? Thanks Again.
Click to expand...
Click to collapse
Nope, this script wouldn't help with that. The problem on MIUI roms on the G2X is due to the operator (T-Mobile for most) not sending the phone # directly to the SIM card when it is activated. Some SIM cards have it, typically older ones, so it works. Those without, however, find that it doesn't work.
Supposedly you can manually program the SIM by using a phone that supports doing so, but I haven't checked to see if that would fix the problem.
Also I no longer bother with this on the G2X as it appears that while wifi calling still uses *some* battery when not active, it's not the battery hog it was back on the Vibrant.
Lotherius,
I had an HD2 running MIUI with Wifi Calling working before the G2X. The is the hack/mod that this guy TyTung did to get wifi calling to work for the HD2. http://forum.xda-developers.com/showthread.php?t=1038784 You think something like this can be used for the G2X to get wifi calling working?
GFam4 said:
Lotherius,
I had an HD2 running MIUI with Wifi Calling working before the G2X. The is the hack/mod that this guy TyTung did to get wifi calling to work for the HD2. http://forum.xda-developers.com/showthread.php?t=1038784 You think something like this can be used for the G2X to get wifi calling working?
Click to expand...
Click to collapse
WiFi Calling is really picky about the network information being accurate. I'm surprised that they got it working on the HD2...
The best fix for it on MIUI on the G2X would depend on fixing MIUI itself, since the RIL is correct -- the G2X doesn't allow you to change the RIL so it isn't affected. In the case of MIUI, older SIM cards typically work better than new ones.
The issue comes down to the ability to read the network information from the SIM card. If that data has been programmed to your SIM card, then it might work. If it has not been programmed to your SIM card, then it won't work.
So basically... not saying it's impossible to get it working on G2X/MIUI, but it is more likely to require a fix to MIUI rather than to Wifi Calling.
lotherius said:
WiFi Calling is really picky about the network information being accurate. I'm surprised that they got it working on the HD2...
The best fix for it on MIUI on the G2X would depend on fixing MIUI itself, since the RIL is correct -- the G2X doesn't allow you to change the RIL so it isn't affected. In the case of MIUI, older SIM cards typically work better than new ones.
The issue comes down to the ability to read the network information from the SIM card. If that data has been programmed to your SIM card, then it might work. If it has not been programmed to your SIM card, then it won't work.
So basically... not saying it's impossible to get it working on G2X/MIUI, but it is more likely to require a fix to MIUI rather than to Wifi Calling.
Click to expand...
Click to collapse
I wish i knew what Lib's and RIL's that I can swap from a CM7 Rom (Weapon G2X, Eaglesblood, or TSUGI) and push it via Root Explorer. I did this on my Hd2 and had wifi calling working. Can't this method work to get wifi calling working on G2X. Sorry I know this is off topic. But I even had Wifi Calling on your TSUGI ROM. You wouldn't happen to know what Lib's & Ril's on your TSUGI Rom are responsible for Wifi Calling to be enabled?
Is battery life really bad with wifi calling for you guys? I use it nearly 24/7 on my phone, and get fantastic battery life. Like way better than I did without it.
Of course, I'm on the clearly superior HTC G2, but still
I've been toying with this, but anytime I force Wifi calling to disable (by killing the app or disabling kineto), restarting Wifi calling says I'm not registered with the T-Mobile network (sure) and won't connect (even after clicking Register) until I reboot the phone.
Any tips?
Hey,
so I've got this weird problem where Android apparently ignores the location of my wifi. But let me explain:
Whenever I'm at home google now suggests that my current location is not where I currently am but rather 10 to 15 miles away from my home address.
That is kind of annoying because I get wrong weather updates, location based reminders will not work on my home address and my location history is a complete mess.
Android primarily uses these three methods for checking on your location:
- gps
- cell towers
- wifi
am I right?
So I did some tests:
1. Testing gps
In location settings I checked "Device only" (so that it would only use gps for determining my location) and opened maps
-> works flawlessly
2. Testing wifi
In location settings I checked "Battery saving" (only wifi and mobile networks). And activated airplane mode to ensure that it could not use mobile networks for location.
Reboot (any kind of "location cache" should then be wiped, I guess).
-> works flawlessly
3. Testing cell towers (mobile networks)
In location settings I checked "Battery saving" (only wifi and mobile networks) and then disabled wifi. In advanced wifi settings I unchecked "Scanning always available" (so that it could not scan for wifi networks even though I disabled wifi).
Reboot (any kind of "location cache" should then be wiped, I guess).
-> does not work flawlessly. It determines the wrong location (that google now always uses).
I live in a more rural part of the country so it makes perfect sense that mobile networks cannot determine my exact location, but why would Android ignore the wifi location (as we have seen, it knows where my wifi is located, otherwise it could not have shown me my correct location in test 2), when I'm signed in on the wifi network?
I tested this on two different devices (Moto X stock / HTC One S with CM 11).
Is there anything I could do?
*bumping
No one knows?
Could someone (who preferably lives on countryside, lol) try to reproduce this or tell me if this is how android is supposed to work (this wouldn't make any sense to me, though).
// This is the right board for this kind of question, isn't it? If not, feel free to move this thread :>
*bump
I still have no idea why this is happening.
If this is the wrong board please tell me or move the thread.
Have you ever had a GPS lock while being connected to the WLAN network? I would assume Google learns the MAC addresses and WLAN SSIDs and correlates them to your location ...
145
GarryKG said:
Have you ever had a GPS lock while being connected to the WLAN network? I would assume Google learns the MAC addresses and WLAN SSIDs and correlates them to your location ...
Click to expand...
Click to collapse
Yes. I'm using maps quite frequently (with gps enabled ofc).
But I am pretty sure google already knows the correct location of my wfi, since when I activate airplane mode and check "Battery saving" (only wifi and mobile networks are being used for location) in location settings, my correct location is determined. Since the airplane mode is activated it means that my phone can only use wifi for determining my location.
But as soon as I disable airplane mode my location is wrong again.
So I would conclude that, although google knows the correct location of my wifi, it just prioritizes mobile networks for some reason. Which is driving me insane.
*bümp
*bump
This is still bugging me. I mean I can't be the only one.
*bamp
The problem is still existent and is bugging me.
The forums look different now.
*bomp
I wish someone knew what causes this behavior.
*bemp
Even after all this time the problem still exists.
bömp
No answers
bämp.
So I guess there is no solution?
Anyway, I will keep bumping this thread but less frequent.
*bumping every once in a while.
Hi, I am thinking of making an android application that will try a thousand passwords on a wifi network and see if a password matches. The app will be simple but I don't want to go through all the trouble of monitor modes or things like that.
Basically, the app would search for wifi networks, we shall click on a network and it will bruteforce with 1000 passwords and see if a password matches and will display a message or the password if found.
I have developed apps before but I do not know how do I start this one? Any resources or functions or some help would be greatly appreciated.
Best Regards.
Hacking WiFi passwords
What's the name of the app and does it work on all WiFi devices
I haven't found the "one" best mock location fake gps app - but I found a few good ones that have ads.
But if I had to pick just one as the "best", I'd pick Lexa simply because it works without ads.
*Fake GPS Location* by LexaFree, no ads, requires gsf, rated 4.6, 456K reviews, 10M+ Downloads<https://play.google.com/store/apps/details?id=com.lexa.fakegps>
Note that these mock location apps are set inside the operating system, such that EVERY app gets their information from them, and that these mock location apps can randomly move along roadways by a given distance per a given time period, and they can start at the last location, and they can randomize the amount of movement per second, and they can spoof the altitude, and some can set a specific exact location by the keyboard instead of only graphically, etc. They can even send the location to another phone or get the location from another phone if you want that.
Click to expand...
Click to collapse
But others (with ads) do a better job of random location following roadways with random movement time periods.
Others (with ads) can also shift the GPS location from one phone to another (either way) - but what use is that for you?
Also others (with ads) can spoof both the wi-fi provider & the GPS provider - but what use is that for you?
Which fake GPS mock location app do you feel is best and why?
GPS position falsification is currently not very effective when RIL is enabled on the phone. Apps can easily orient the phone in space based on the signal strength to the network operator's mast.
ze7zez said:
GPS position falsification is currently not very effective when RIL is enabled on the phone. Apps can easily orient the phone in space based on the signal strength to the network operator's mast.
Click to expand...
Click to collapse
For privacy reasons... I have every setting for location accuracy turned off, and I also have every unused radio on the phone turned off (e.g., NFC, bluetooth, gps, wi-fi, etc.) and my phone's wi-fi does NOT reconnect (auto-connect is turned off) as my home AP SSID is hidden (for privacy, not for security!) and it has a "_nomap" appended to keep out of the well-behaved databases such as Google/Mozilla, but not Wigle/Netstumbler/Kismet,etc, which aren't well behaved, and I randomize the phone's Wi-Fi MAC upon every connection - which is a new feature of Android 12 in Developer options, etc., ....
... But I had to look up what RIL stands for, so I thank you for bringing up that unknown-to-me Radio Interface Layer detail...
RIL references:
https://wladimir-tm4pda.github.io/porting/telephony.html
https://source.android.com/devices/tech/connect/ril
Specifically
Radio Interface Layer: It is the bridge between Android phone framework services and the hardware. In other words, it is the protocol stack for Telephone. The RIL consist of two primary components.
RIL Daemon
Vendor RIL
RIL DaemonRILD will be initialized during the Android system start up. It will read the system property to find which library has to be used for Vendor RIL, provide the appropriate input for vendor RIL and finally calls RIL_Init function of Vendor RIL to map all the Vendor RIL functions to the upper layer. Each vendor RIL has RIL_Init function.Vendor RILIt is a library specific to each modem. In other words, we can call it as a driver to function the modem. The RIL daemon will call the RIL_Init function with the device location (eg: /dev/ttyS0). It will initiate the modem and returns theRIL_RadioFunctions structure contains the handles of radio functions
After skimming that RIL information, I'm not sure exactly what you're trying to tell me, but I guess you're saying that we can be geolocated when we make phone calls and even when we don't, in that the cell towers can be triangulated if the phone is in calling mode... which I understand full well.
But, in terms of privacy, how many apps that need to be fooled by their GPS location have access to that cell tower radio location information?
You understood correctly. A phone in call mode, as you wrote, can be easily located while moving.
The google map tricked out by "Fake GPS Location", does quite well while driving a car, as I recently verified in the field.
I don't analyze the app for route tracking.
ze7zez said:
You understood correctly. A phone in call mode, as you wrote, can be easily located while moving.
Click to expand...
Click to collapse
I agree with you that any phone, if it's going to be used for two (or three) things, will be easily tracked by those with the resources to do so
Make/receive phone calls
Send/receive sms/mms texts (mms requiring data)
Wi-Fi connections (aka "the Internet")
However, in all cases above, the geolocation isn't as accurate as with GPS (if you are judicious about your location settings), and, more to the point, the applications themselves don't have access to the cell tower information (although they do have access to your IP address, which can be roughly geolocated).
We have to assess our threat level where I'm not using fake location apps to hide from a well-funded TLA adversary; I'm using the fake location to simply hide from the likes of Google and other nefarious outfits that put the tracking APIs inside the code (which is why almost none of my apps require GSF).
ze7zez said:
The google map tricked out by "Fake GPS Location", does quite well while driving a car, as I recently verified in the field.
Click to expand...
Click to collapse
If what you're saying is that the mock location apps "fool" the likes of Google Maps, I fully agree with you. If... If... if...
If you don't allow Google Maps to run a more detailed analysis that is.
As an example, I recently ran a test inside of a local town where I had the fake location set to miles away, and Google Maps was telling me I was where the fake location said I was... but...
But... then Google Maps asked me to snap a photo so that it could better figure out where I was, and BINGO! It figured out where I was based on the video that I allowed (for test purposes) to show the storefronts.
When I tested it again without allowing the video to see anything of value (e.g., I panned to the mountains above), Google Maps could NOT geolocate me.
Likewise when you don't let Google Maps geolocate by WI-Fi address (although for all I know the camera mechanism sneakily allowed that as I'm well aware there are TWO APIs for turning on your GPS radio, one of which (from Google) is downright nefarious)...
ACTION: "android.lintent.action.MAIN"
PACKAGE: "com.google.android.gms"
CLASS: "com.google.android.gms.location.settings.LocationAccuracyActivity"
Click to expand...
Click to collapse
vs
Notice it's similar but different from the Android setting for accuracy.
ACTION: "android.intent.action.MAIN"
PACKAGE: "com.android.settings"
CLASS: "com.android.settings.Settings$ScanningSettingsActivity"
Click to expand...
Click to collapse
Notice that, for this very reason, you NEVER want to turn on your GPS radio from ANY Google app prompt!
ze7zez said:
I don't analyze the app for route tracking.
Click to expand...
Click to collapse
If you need to navigate and if you don't want to be tracked by Google, I found a little trick that works kind of nicely with the simple interfaces of the offline mapping programs.
Set your position as your destination in the mock location app
Use any offline map to set your current position as a waypoint
Then use the offline map app to route to your destination
Another "trick" that keeps you out of Google maps' databases is that you can easily get traffic using a web shortcut of the area you are currently traveling in - where you don't need to know your exact location in order to check out the traffic in front of you.
Yet another trick for traffic is that PLENTY of web sites provide Google traffic updates without logging into Google web servers (afaik), such as sigalert apps, 511 apps, and many local DOT apps such as caltrans (for California).
Overall, in summary, the mock location apps work to prevent apps that use your GPS location from tracking you - but as @ze7zez warned, it will only work for GPS and not for cell tower tracking.
GalaxyA325G said:
(...) the applications themselves don't have access to the cell tower information (...)
Click to expand...
Click to collapse
This is not true.
Go into your phone's service mode and see for yourself what the phone knows about the mast connection.
Here's a cheesy Cell Diagnostic app that I wrote myself:
Note that the only permissions that it uses is android.permission.READ_PHONE_STATE and android.permission.ACCESS_COARSE_LOCATION
It refuses to give you this information if you have "Location" turned off.
ze7zez said:
This is not true.
Go into your phone's service mode and see for yourself what the phone knows about the mast connection.
Click to expand...
Click to collapse
As always, you're correct... but.... you're being too narrow I think... in that debugging apps which we use when we need to are different from the run-of-the-mill apps we use all day every day...
There are only "some" apps, which I'm well aware of, that have your telephony information, such as this one which requires you to provide that permission first...
Once you manually provide that permission, yes, of course, the app has you dead in its sights... but most apps (that don't need it) don't ask for THAT much permission... (nor would you let them if they did).
Renate said:
Here's a cheesy Cell Diagnostic app that I wrote myself:
Note that the only permissions that it uses is android.permission.READ_PHONE_STATE and android.permission.ACCESS_COARSE_LOCATION
It refuses to give you this information if you have "Location" turned off.
Click to expand...
Click to collapse
You bring up a good point that a few Android releases ago Google cheated like hell by forcing apps to request "Location" being turned on in order for the app to display unrelated things such as "Wi-Fi signal strength"...
Which is ANOTHER good reason for being able to set the mock location... because the Wi-Fi Signal Strength of all nearby access points has nothing (per se) to do with your current GPS location.
EDIT: BTW, as a related aside, I post a billion screenshots to the Internet, where some of them contain GPS location - which - if spoofed - means I don't need to redact it in those screenshots. For other information though, such as the cell tower information, I never know how much to redact (for privacy) where you didn't redact anything on your screenshot.
Can you let me know which are the cellular tower information pointers that we should redact for privacy when posting screenshots?
https://forum.xda-developers.com/attachments/cell1-png.5676683/
The CDMA system has a place for actual Lat/Long. But, these cells are set up by various people and the amount of information in them is variable.
I've rarely seen lat/long on a CDMA signal
The LTE stuff only references cell number. You need a database to reference it to location.
I have a few cell numbers hard-coded to named location.
I can't even find my current tower on https://www.opencellid.org/
Renate said:
The CDMA system has a place for actual Lat/Long. But, these cells are set up by various people and the amount of information in them is variable.
Click to expand...
Click to collapse
I'm aware there are open signal public OSM cell-tower-location databases (which essentially suck - but which are good enough to track your general location) and then there are the "real" databases (which the carriers and the FCC kind of sort of keep to themselves.
Renate said:
I've rarely seen lat/long on a CDMA signal
The LTE stuff only references cell number. You need a database to reference it to location.
Click to expand...
Click to collapse
The reason open signal public OSM databases only "essentially" suck is because they're averages from lots of people, so, for example, a tower might be on the wrong side of the railroad tracks or in the middle of a river on those open signal public OSM maps when it's not really the case - but they're still good enough to geolocate you to a general area were I to publish the unique number in the screenshots.
Renate said:
I have a few cell numbers hard-coded to named location.
I can't even find my current tower on https://www.opencellid.org/
Click to expand...
Click to collapse
My tower is almost always my own femtocell or my cellular repeater (both of which I have but usually the femtocell wins out), which is unique to me (which is why I'm worried about privacy).
Unless you're in my driveway, only I would be using that femtocell (I don't know how far out they go, but it's not more than a few hundred feet at the most, isn't it?).
Hi, I'm a new member of the forum and this is my first post.
I've read this thread and it's an interesting discussion about layers in global positioning. But I have a simpler question out of curiosity;
is there perhaps a way to work around this plugin (https://github.com/wongpiwat/trust-location) without root / only with developer option, since I haven't found any fake gps app that could fool/bypass this part.
Or do I have to use a custom ROM to accomplish it?