It's simple. In the terminal (requires root), or in adb shell (does not require root), issue the command
settings put global captive_portal_detection_enabled 0
and reboot. It should be disabled. The existing state can also be verified via the command
settings get global captive_portal_detection_enabled
A response of "null" indicates the global key value ...
You won't be able to achieve success through the native mechanism of Android.
Cody Toombs at Android Police has very well pointed this out in the article: Android M Will Never Ask Users For Permission To Use The Internet, And That's Probably Okay.
In the section Normal and Dangerous Permissions of the document Permissions Overview, Google has noted:
Unfortunately, there is no way to change the IP address range for the builtin tethering support, even in CyanogenMod. The Wi-Fi hotspot IP is hardcoded in android.net.wifi.WifiStateMachine.startTethering(); the USB tethering IP is hardcoded in com.android.server.connectivity.Tethering.
However, if your phone is rooted, you can try using third-party apps for ...
You could use NetGuard (see my list of Internet Firewalls for other alternatives), which works without root and lets you block internet access for apps selectively (WiFi or mobile data, and even always or only if screen is off). It's from the dev of XPrivacy, so it has to be good ;)
NetGuard (source: Google Play; click images for larger variants)
I was able to see which app had an open port using standard linux knowledge.
Install terminal emulator or do an adb shell and execute the following:
shell@android:/ $ cat /proc/net/tcp
sl local_address rem_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode
0: 0100007F:1C23 00000000:...
The Android builtin wifi tethering is designed to use 192.168.43.1/24 as the server, with netd handling the tethering, using dnsmasq. First DNS range is 192.168.42.1-254 and and 2nd DNS range is 192.168.43.1-254.
Netd is not easy to change. It requires a socket to communicate with it, and that socket is taken when android starts tethering. But going through ...
There are some more possibilities -- but all of them I know of require a rooted device.
Using the Reverse Tether App
First, there's an App named Reverse Tether available for free on the Play Store (it's a limited trial, which restricts the time you can be connected -- but at least you can test this way whether your device is fully supported; the full ...
OS Monitor lists network connections by app:
OS Monitor and Connection Tracker listing connections (source: Google Play; click image to enlarge)
As you can see, OS Monitor lists up all connections, and lists the corresponding app "owning" this connection along. This should enable you to see all servers your suspicious app connects to. There are other ...
At first, I thought this was most likely an instance of Android cloud to device messaging, but it can't be: WhatsApp doesn't declare the necessary permissions, and it works in Eclair (Android 2.1), while cloud to device messaging (and its replacement, Google Cloud Messaging) require at least Froyo (Android 2.2).
However, it is most likely some sort of push ...
ifconfig and ip Android 7
adb shell ifconfig
adb shell ip address show
ifconfig was an annoying implementation that did not show all versions by default on earlier versions as explained below, but now it works fine.
netcfg Android 5.1.1
This tool was removed in later Android, and ifconfig was made more decent and shows all interfaces by default, thus ...
Based on avirk's hint, I found a way. First press the code *#0011#
T: 10, B: 10
Rx Pwr: -94, Rx ual: -
Rx Lev: 21, Tx Lev: 0-
Speech VER: AMR EFR FR
Temp: 68 Batt: 71 LNA: 0
It is obvious that it's using 900MHz band, from the "GSM900".
UMTS WCDMA example:
Rx CH: 10612, R: -...
In the Android M Developer Preview for Shamu (Nexus 6), and possibly other builds of this OS, the captive_portal_server global is used by the OS regardless of the state of captive_portal_detection_enabled in order to determine health of a WiFi network.
For WiFi networks, it will not only draw an exclamation mark on the strength icon, it will blacklist that ...
According to Steve Kondik, this is essentially old code that is leftover from older versions of CyanogenMod:
This was only here for apps that were statically linked against uclibc in old CM versions. It can likely just be removed.
However, he also goes on to note:
Also, this file is NOT written when connecting to a network as /system is readonly. The ...
I have been using Packet Capture app, which for me is simpler than setting-up "wireshark" on Android.
The app is free, doesn't require root access, but may request to install user certificate to decrypt SSL connection (it's using MITM technique, as mentioned on its app page; you don't need to install it if you don't want to know the content of SSL ...
Any android device
Cyanogenmod provides you with an option to build your own Cyanogen-build and integrated kernel building. With this you can compile an compatible kernel for your phone with desirable features. Here's a post that walks you through the process.
familiarity with basic commands
For Nexus 5
You can try dialing
and then going to "Phone Information".
That will show details about the network like cell tower ID and network type.
As you can see from the below screenshot, it shows "EDGE" mode :-
Also, this may only work on stock Android builds.
The easiest way is using a tool like e.g. OS Monitor, which shows you (amongst others) also a lot of network details:
OS Monitor showing network interface details (source: Google Play; click image to enlarge)
As the screenshot shows, this app reveals for each network interface:
IPv4 IP address assigned (if 0.0.0.0, this interface is ...
You have to be rooted and you have to have the kernel module for cifs support. if you have froyo, you also will need slow-work.ko kernel module as well.
Once you have those, you can use (shameless plug) Mount Manager, it can handle loading the modules for you automatically and lots of features available for auto mounting when connecting to wifi, and other ...
Configuring captive portal behaviour
captive_portal_detection_enabled (<= Android 7.1.1)
works as described in question body
captive_portal_mode (>= Android 7.1.2)
works as described in question body
Setting captive portal URL(s)
captive_portal_server (<= Android 6.0.1)
The server that holds a generate_204 page, used to internally craft a URL ...
WIFI PPPOE by cnDDU is an app that allows you to make a PPPoE connection from your phone over a wireless connection:
...main purpose is for user
to make PPPOE connection via WIFI, e.g. dialing through ADSL Modem
with user name and password provided by some internet ISPs. This app
makes the Android devices be able to connect to Internet directly via
In a word: No.
In order for all applications on the device to have access to a cifs mount, cifs support needs to be compiled into the kernel (or at least available as a loadable module).
I've never seen a device that shipped with such a kernel from the manufacturer. Doesn't mean that they don't exist, I just haven't seen them.
Now, for some devices that ...
Opening ADB on an unsecured connection is a major security risk. On an unrooted phone, it gives access to your entire filesystem. On a rooted phone, it gives access to your entire filesystem with write permissions. The connection isn't encrypted and there is no password or key exchange to access ADB. It's just a bad idea. Beyond that, your carrier may ...
I am certainly sure that WhatsApp does NOT open any listening ports. most ISPs block incoming requests, that would not work.
WhatsApp has a service. Basically that means that technically you never quit WhatsApp. So, the way you receive messages while you're "not running" WhatsApp is the exact same way you receive them when you're running it.
The client, ...
Updating this question to say that as of Android 4.0, IPv6 is fairly well supported. There are still no visual indicators that it is running/working, but devices pick up IPv6 addresses and try to use them by default.
A good application to do that is the Samba Filesharing. It shares your sdcard, making it easy to transfer files from/to your phone.
After installing the application from Google Play, open it and fill a password by touching the password menu. The default username is SDCARD and the default Workgroup is WORKGROUP. You can leave it that way or change ...
On some devices which do support WiFi-Direct, the corresponding binaries come pre-installed (e.g. the wpa_cli command; see also How can I install wpa_cli on my rooted device?). If you have those ready, you can use them on your Android device as you would do on a Linux machine (find a closer description e.g. in the blog post How To : Use wpa_cli To Connect To ...
When the data indicator is orange (on Kit kat ; grey on older versions), this means that the device is unable to receive a response from GCM (Google Cloud Messaging, the framework that handles push notifications). This traffic is sent through ports 5228, 5229, and 5230. If the AP is blocking or interfering with traffic on those ports, push notifications won'...