Commit Graph

1076 Commits

Author SHA1 Message Date
Chad Brubaker
4452b850e3 Remove SO_BINDTODEVICE from VPN protect
SO_BINDTODEVICE is not needed with policy routing.
SO_BINDTODEVICE was also used on the default iface which causes problems
when the default iface is IPv6 only and the socket tries to connect to a
IPv4 address.

Bug: 12940882
Change-Id: I5b2bde0ac5459433fc5749f509072a548532f730
2014-03-11 10:58:19 -07:00
Chad Brubaker
6c0af46240 Only allow System apps to make VPN exempt routes
requestRouteToHost will only allow system applications to make routes
exempt from the VPN's routing rules.

If a VPN is currently running and a non-system app requests a route it
will only succeed if that host is currently covered by a VPN exempt
routing rule. Otherwise it will fail.

For example, if a VPN is running and the MMS network is brought online
those routes will be added as VPN exempt. If an application then tries
to request a route to a MMS endpoint it will succeed because the routes
already exist. If an application tries to request a route to a host
covered by the VPN the call will fail.

Bug: 12937545
Change-Id: If7bcec91bbb96c62c8fb69748c975847e6c00b6f
2014-03-05 13:35:36 -08:00
Chad Brubaker
abe885124b Add the calling package name to requestRouteToHost
The calling package name will be used to check if an application is a
system application when deciding if a route should be exempt from VPN
routing rules.

Bug: 12937545
Change-Id: I2c09c875fe9bb9685871a0a801ddcbb32fc17405
2014-03-05 13:35:20 -08:00
Robert Greenwalt
c26eb014e0 Only apply tcp buffer sizes for default net
This may mean that secondary networks have bad network settings,
but currently default settings are overriden by secondary nets
which seems worse.

bug:13211589
Change-Id: I08d56e618208781bf6b21a88663c2b8503a4f226
2014-03-04 09:56:05 -08:00
Robert Greenwalt
df3b5e5bda am 3c73a8e8: (-s ours) am ca4ba835: am 41708e1c: DO NOT MERGE Sanitize WifiConfigs
* commit '3c73a8e87a43b6c7159f0b531948dae8b3686dfa':
  DO NOT MERGE Sanitize WifiConfigs
2014-02-25 18:14:26 +00:00
Robert Greenwalt
3c73a8e87a am ca4ba835: am 41708e1c: DO NOT MERGE Sanitize WifiConfigs
* commit 'ca4ba835742e7131e1ae7a4a18f3989a1e96d9ed':
  DO NOT MERGE Sanitize WifiConfigs
2014-02-25 10:12:35 -08:00
Robert Greenwalt
ca4ba83574 am 41708e1c: DO NOT MERGE Sanitize WifiConfigs
* commit '41708e1c6e4bbea0bd8b240ee6fdf7e305b6d6db':
  DO NOT MERGE Sanitize WifiConfigs
2014-02-25 10:09:13 -08:00
Robert Greenwalt
41708e1c6e DO NOT MERGE Sanitize WifiConfigs
Do this both on input from apps (giving error) and between wifi and
ConnectivityService (ignoring bad data).  This means removing all
addresses beyond the first and all routes but the first default and
the implied direct-connect routes.

We do this because the user can't monitor the others (no UI), their
support wasn't intended, they allow redirection of all traffic
without user knowledge and they allow circumvention of legacy VPNs.

This should not move forward from JB as it breaks IPv6 and K has
a more resilient VPN.

Bug:12663469
Change-Id: I0d92db7efc30a1bb3e5b8c6e5595bdb9793a16f2

Conflicts:
	core/java/android/net/LinkProperties.java
	services/java/com/android/server/WifiService.java
	wifi/java/android/net/wifi/WifiStateMachine.java
2014-02-24 15:20:32 -08:00
Robert Greenwalt
cf8c894ef3 Fix NPE in ConnectivityService
bug:11727708
Change-Id: Ia8ca9d1e23f021feaf4b772ec38d1d0e89b0cd2a
2013-11-18 09:43:59 -08:00
Raj Mamadgi
08e512b425 Fix for the invalid Global Proxy Setting
Adding validation for Global Proxy setting before it is
being set.

Proxy is validated at the boot time also to make sure
the value set is valid.

Signed-off-by: Raj Mamadgi <rmamadgi@sta.samsung.com>
bug:11598568

Change-Id: Idff5ae81119d8143da096b5291ecbfbc5875cbd4
2013-11-14 00:08:21 +00:00
Wink Saville
8fe05f16a4 Use HttpsURLConnection to by pass proxies.
In isMobileOk attempting to connect to clients3.google.com/generate_204 we
sometimes see a proxy server will not let the connection go to our
server and instead returns 200 instead of 204. By using Https we by pass
proxy servers and we will always connected to our server.

The number of loops is increased from 3 to 4 and half the the retires
will use Http and half will use Https.

I also, added mTestingFailures which can be set to true by setting
persist.checkmp.testfailures to 1. This will cause checkMobileProvisiong
to always fail so we can test https & http.

Bug: 9972012
Change-Id: I870606037dcffe5250843980517ac52218266e02
2013-10-31 06:35:22 -07:00
Robert Greenwalt
72c4d60926 Merge "Change how we use provisioning url so post works" into klp-dev 2013-10-17 23:00:42 +00:00
Robert Greenwalt
ac8d55abeb Change how we use provisioning url so post works
Needed to do an http post instead of a get for one carrier.
Do this by putting an auto-submitting form in the data to be
interpreted as a html doc by the browser.  The ACTION_VIEW
intent only works on http uri, but by specifying ACTION_MAIN/
CATEGORY_APP_BROWSER we could use data:text/html.

bug:11168810
Change-Id: Ifd33e1c3c7f9f40b6add39e446e6a7d7cde22549
2013-10-17 12:46:52 -07:00
The Android Automerger
caa5f0e86b merge in klp-release history after reset to klp-dev 2013-10-15 21:14:08 -07:00
Robert Greenwalt
6bfeaeb49b Retry captiveportal check even if only one addr
We're getting some false positive results on this check and
while it was coded to try 3 times given sufficient independent addrs
the default url resolves to a single address so we'd just try once.

Rework to try again even with fewer urls to try to reduce the false
positives.

Also adds a random query param to fool proxies into not caching.

bug:9972012
Change-Id: Ib719f40ec612065ca6bcd919549fc1164506d35a
2013-10-15 12:43:30 -07:00
The Android Automerger
75930bca78 merge in klp-release history after reset to klp-dev 2013-10-13 06:01:56 -07:00
Jason Monk
445cea8371 getProxy in ConnectivityService returns port w/PAC
Changes the PacManager to report message back to ConnectivityService
to send a broadcast once the download has completed.  This allows the
ConnectivityService to store the correct proxy info for getProxy().

This made the problem arise that ProxyProperties was not handling port
while it had PAC.  Added small fix for equals() and parcelization.

The combination of these fixes seems to resolve Bug: 11028616.

Bug: 11168706
Change-Id: I92d1343a8e804391ab77596b8167a2ef8d76b378
2013-10-10 17:01:45 -04:00
Dianne Hackborn
5b18a40d3a Fix issue #11113111: dumpsys activity service is broken
Change-Id: Ie02d27b377c562085ef7eb5dea144ce2f382c11d
2013-10-09 14:34:04 -07:00
The Android Automerger
87921134ed merge in klp-release history after reset to klp-dev 2013-10-09 06:01:14 -07:00
Lorenzo Colitti
490520930e Merge "Fix captive portal detection on IPv6 networks." into klp-dev 2013-10-09 02:14:43 +00:00
Ed Heyl
f372ba4500 merge in KQS81M 2013-10-08 15:40:08 -07:00
Lorenzo Colitti
e25513dccc Fix captive portal detection on IPv6 networks.
Currently the captive portal check URL is generated by
concatenating scheme, "://", IP address, and port. This breaks
for IPv6 because IPv6 addresses in URLs must be enclosed in
square brackets (e.g., http://2001:db8::1/generate_204 is
invalid; should he http://[2001:db8::1]/generate_204 instead).
The resulting MalformedURLException causes isMobileOk to report
that there is no captive portal, even if there is one.

Fortunately the three-arg URL constructor already knows how to
construct URLs with IPv6 addresses. Use that instead of
generating the URL ourselves.

Bug: 10801896
Change-Id: I02605ef62f493a34f25bb405ef02b111543a76fd
2013-10-08 14:15:14 +09:00
The Android Automerger
3e90601b96 merge in klp-release history after reset to klp-dev 2013-10-07 06:00:38 -07:00
Robert Greenwalt
7922764bb5 am 81371b98: (-s ours) am 64e02e64: am 5a1519f8: DO NOT MERGE Un-deprecate getDhcpInfo
* commit '81371b981e192f1848d355338c376a6bcd4ff532':
  DO NOT MERGE Un-deprecate getDhcpInfo
2013-10-06 17:11:00 -07:00
Robert Greenwalt
319323d7b0 am 8fbc8797: (-s ours) am 202965ca: am 5b41b261: (-s ours) DO NOT MERGE Un-deprecate getDhcpInfo
* commit '8fbc879773a7163fc2f97d6a6612dfb3167ad7f0':
  DO NOT MERGE Un-deprecate getDhcpInfo
2013-10-06 17:10:57 -07:00
Robert Greenwalt
81371b981e am 64e02e64: am 5a1519f8: DO NOT MERGE Un-deprecate getDhcpInfo
* commit '64e02e64341d33edda1d0ec28d5394c8d0d6509e':
  DO NOT MERGE Un-deprecate getDhcpInfo
2013-10-06 17:03:59 -07:00
Robert Greenwalt
8fbc879773 am 202965ca: am 5b41b261: (-s ours) DO NOT MERGE Un-deprecate getDhcpInfo
* commit '202965ca2a6cd02840581813f2b60660c71baf60':
  DO NOT MERGE Un-deprecate getDhcpInfo
2013-10-06 17:03:56 -07:00
The Android Automerger
d054fdbf47 merge in klp-release history after reset to klp-dev 2013-10-06 06:01:24 -07:00
Robert Greenwalt
64e02e6434 am 5a1519f8: DO NOT MERGE Un-deprecate getDhcpInfo
* commit '5a1519f8d1ff7e9623a347ca138ca925e07844cd':
  DO NOT MERGE Un-deprecate getDhcpInfo
2013-10-04 14:17:18 -07:00
Robert Greenwalt
202965ca2a am 5b41b261: (-s ours) DO NOT MERGE Un-deprecate getDhcpInfo
* commit '5b41b261dbef993bab7a68f61088274a977f345e':
  DO NOT MERGE Un-deprecate getDhcpInfo
2013-10-04 14:15:52 -07:00
Robert Greenwalt
5b41b261db DO NOT MERGE Un-deprecate getDhcpInfo
Replacement api isn't available.

bug:10003785
Change-Id: I0c91716d9aae61dc1db4d015a78b729157ea99a9
2013-10-04 18:43:29 +00:00
Robert Greenwalt
990c224ffa Merge "Un-deprecate getDhcpInfo" into klp-dev 2013-10-04 18:07:34 +00:00
Robert Greenwalt
939def7d91 Merge "Don't redirect dns to an iface without dns servers" into klp-dev 2013-10-04 18:06:13 +00:00
Robert Greenwalt
50df961cca Un-deprecate getDhcpInfo
Replacement api isn't available.

bug:10003785
Change-Id: Ibe981ae90e1c6c2f1b65fa225443ae4cc92c2a3a
2013-10-04 09:53:39 -07:00
Robert Greenwalt
5a1519f8d1 DO NOT MERGE Un-deprecate getDhcpInfo
Replacement api isn't available.

bug:10003785
Change-Id: I0c91716d9aae61dc1db4d015a78b729157ea99a9
2013-10-04 08:19:37 -07:00
Wink Saville
a65f473111 Use networkType to display wifi and mobile notification separately.
There are two bugs one is I was clearing the notification in
CaptivePortalTracker when entering the ActivateState. (double check
according to bug 5021626 we should be calling enter)

Second is we could have the need to display both icons but can't
because we only allow one.

The solution I'm proposing here is to allow two notifications and
have then controlled separately.

Bug: 10886908
Change-Id: I30e7130bc542535492d175640a4990c592f32806
2013-10-03 08:34:46 -07:00
Robert Greenwalt
68534c89f7 Don't redirect dns to an iface without dns servers
bug:10115444
Change-Id: Ide42072bb3aae21f8e99c11c2de263e9a765b911
2013-09-25 16:58:45 -07:00
The Android Automerger
9d6d1a1ace merge in klp-release history after reset to klp-dev 2013-09-16 06:01:18 -07:00
Wink Saville
f5c393eb7e Tighten condition for calling checkMobileProvisioning.
Add the condition that the connected network needs to be TYPE_MOBILE.
This eliminates checking on connecting to secondary networks like
FOTA, MMS, SUPL ...

This reduces unnecessary attempts to bring up multiple connections at
the same time. Especially in the light of the trouble we're having with HFA
on Sprint, where we don't want to connect to any other network until HFA
has completed.

Bug: 10758001
Change-Id: Id294536b70304a51de4752bc1a4ffac734f10f1a
2013-09-14 14:01:03 -07:00
Wink Saville
ab773a7b89 Tighten condition for calling checkMobileProvisioning.
Add the condition that the connected network needs to be TYPE_MOBILE.
This eliminates checking on connecting to secondary networks like
FOTA, MMS, SUPL ...

This reduces unnecessary attempts to bring up multiple connections at
the same time. Especially in the light of the trouble we're having with HFA
on Sprint, where we don't want to connect to any other network until HFA
has completed.

Bug: 10758001
Change-Id: Id294536b70304a51de4752bc1a4ffac734f10f1a
2013-09-14 09:04:53 -07:00
Wink Saville
6d64e98cff checkMobileProvisioning should not block.
In checkMobileProvisioning the call to mdst.isProvisioningNetwork() is
a blocking call and during monkey testing without SIM this is causing
ANR's. Move the initial test for provisioning into isMobileOk so
checkMobileProvisioning doesn't block.

If mobile is not supported return CMP_RESULT_NO_CONNECTION.

Cleaned up some debug.

Bug: 10674404
Change-Id: I10a0e922cd6ea9790f66e2083f37e68cb0a8861f
2013-09-13 19:13:21 -07:00
Wink Saville
6bcb8cd74a Merge "checkMobileProvisioning should not block." into klp-dev 2013-09-13 20:59:16 +00:00
Jason Monk
c10eef7e3b Merge "Guarantee that PAC Local Proxy owns Port" into klp-dev 2013-09-13 20:31:54 +00:00
Wink Saville
3985671349 checkMobileProvisioning should not block.
In checkMobileProvisioning the call to mdst.isProvisioningNetwork() is
a blocking call and during monkey testing without SIM this is causing
ANR's. Move the initial test for provisioning into isMobileOk so
checkMobileProvisioning doesn't block.

If mobile is not supported return CMP_RESULT_NO_CONNECTION.

Cleaned up some debug.

Bug: 10674404
Change-Id: I10a0e922cd6ea9790f66e2083f37e68cb0a8861f
2013-09-13 12:40:11 -07:00
Jason Monk
af9ded0007 Guarantee that PAC Local Proxy owns Port
This changes the PAC support to not broadcast the Proxy information until
the Local Proxy has started up and successfully bound to a port so that
the local proxy information can be guaranteed to be owned by the proxy.

Bug: 10459877
Change-Id: I175cd3388c758c55e341115e4a8241884b90d633
2013-09-13 09:53:26 -04:00
The Android Automerger
267aebc2c9 merge in klp-release history after reset to klp-dev 2013-09-12 06:01:29 -07:00
Yuhao Zheng
d603b89567 Fix for the toggle airplane mode hidden API
Fix to https://googleplex-android-review.git.corp.google.com/#/c/356900/
Previous implementation throws SecurityException when the API is called from apps.
bug:10653570

Change-Id: I95ae6f07db74d881f1a8d3d40a6486105a068e90
2013-09-11 14:39:19 -07:00
Jeff Sharkey
4a13f35884 Merge changes Ib1274847,I2eb2a1bf into klp-dev
* changes:
  Fix SDK build.
  Request all tethering interfaces, fix corruption.
2013-09-11 20:16:59 +00:00
Yuhao Zheng
8257936014 Fix for the toggle airplane mode hidden API
Fix to https://googleplex-android-review.git.corp.google.com/#/c/356900/
Previous implementation throws SecurityException when the API is called from apps.
bug:10653570

Change-Id: I95ae6f07db74d881f1a8d3d40a6486105a068e90
2013-09-11 09:44:28 -07:00
Jeff Sharkey
86dc7a89da Request all tethering interfaces, fix corruption.
netd now tracks statistics for tethered interfaces across tethering
sessions, so switch to asking for all tethering stats.  (Currently
we're double-counting all tethering data, ever since it started
tracking across sessions.)

Also catch OOME to handle corrupt stats files, which we then dump to
DropBox and then start over.

Bug: 5868832, 9796109
Change-Id: I2eb2a1bf01b993dd198597d770fe0e022466c6b9
2013-09-10 21:03:30 -07:00