Commit Graph

355 Commits

Author SHA1 Message Date
Lorenzo Colitti
7a9d797771 Framework changes for 464xlat.
1. Add a Nat464Xlat service that ConnectivityService can use
   to start and stop clat. When clat is started, the service
   waits for the clat interface to come up and then calls
   ConnectivityService to add the appropriate routes.
2. Make ConnectivityService start clat when an IPv6-only mobile
   interface is connected. We only support clat on mobile for
   now.
3. Make tethering use the interface that has the IPv4 default
   route insted of using the base interface of the
   LinkProperties. This allows us to tether to a stacked
   interface, which is needed for tethering with 464xlat.

Bug: 8276725
Change-Id: I24480af69ee280f504399062638af0836a56268e
2013-03-15 14:41:55 +09:00
Lorenzo Colitti
e43b6c4eb3 Set routes from stacked links as well.
Currently, ConnectivityService adds and removes routes to/from
the routing table only based on the LinkProperties's routes.
Make it update routes based on the stacked links as well.

Bug: 8276725
Change-Id: I9a2adf537af5a04de0aaab3780afbcc3bb5c6acb
2013-03-15 14:35:38 +09:00
Robert Greenwalt
24efb41874 Fail fast if somebody is adding default routes
bug:2655011
Change-Id: I25da940e024825bc6e1d1ac5fe7b0d951609c1c1
2013-03-14 13:16:04 -07:00
Lorenzo Colitti
53de3366aa Remove redundant parameter to modifyRoute
modifyRoute takes both an interface name and a LinkProperties.
This is redundant because all callers get the interface name
from the LinkProperties. Make modifyRoute get the interface
name from the LinkProperties instead.

Change-Id: I41ba8e0a10241c2f1107204fcaca2be74556042b
2013-03-12 07:39:59 +09:00
Lorenzo Colitti
7a43b0f7cf Always specify an interface for host routes.
Change-Id: I05b4d87e7d7e8237c6f4a70f1fedae00f416f581
2013-03-08 16:41:25 -08:00
Jeff Sharkey
db44d2ca9a Allow loopback traffic in lockdown mode.
Bug: 8245184
Change-Id: If993e3d6f5c7ce5970bfe701074c85b9245aa2aa
2013-02-28 16:57:58 -08:00
Robert Greenwalt
0e0ae8a849 Remove two new permission checks
These checks while technically reasonable are a hard to swallow API change
that may break existing apps and pragmatically serves no purpose:  the protected
data is available in publicly readable java VM properties.

Change-Id: I522c493c2604a33e28d99e2be31054326c9a8323
2013-02-22 15:36:33 -08:00
Robert Greenwalt
faa4b403d9 Improve ConnectivityManager docs
Also fix some permission problems.
bug:5738328

Change-Id: Ib32c223f425b1fc03b8cce528456bcb50b540fdf
2013-02-22 10:39:20 -08:00
Jeff Sharkey
760c62064b Migrate to using Mockito directly.
Change-Id: I1fcc5d1a780f5831bd6685f0735d4c0c6d245735
2013-02-19 15:28:19 -08:00
Kenny Root
7209c0bb2f am dc7b3e3b: am 012e650e: Merge "KeyStore: stop using state()"
# Via Android Git Automerger (1) and others
* commit 'dc7b3e3b6e1aa3f347c7d843ee453688c4d90e29':
  KeyStore: stop using state()
2013-02-14 12:50:34 -08:00
Kenny Root
0ded63c2ff KeyStore: stop using state()
Change-Id: I721974fd95f8d1ab06a3fd1bbb4c9b4d9d1d7752
2013-02-14 12:06:51 -08:00
Robert Greenwalt
e767d81d8f Fix a permissions probem in ConnectivityManager
stopUsingNetworkFeature fails because of new permissions checks in netd.

Change-Id: I04cb10d955c9dd9977c460c6c1db0d1910a863ce
2013-02-12 17:18:25 -08:00
Robert Greenwalt
e41e3b3c09 Reintroduce the net.dns system properties <TEMP>
Removing these properties broke video playback as they used
a custom dns resolver.  We'll work together to resolve our
resolver issues in the future, but this was the easy fix to
get things working again.

bug:8173236
Change-Id: I687dae59eda4fc449efc34eed11c3dc88a110ad0
2013-02-11 15:25:10 -08:00
Robert Greenwalt
01495af669 Merge "Second pass tying into dns cache per interface" 2013-02-07 19:02:47 +00:00
Mattias Falk
d697aa2e38 Second pass tying into dns cache per interface
Set dns servers for secondary nets and attach the
processes (pids) that are using the secondary nets
to the secondary nets associated dns cache.

bug:5465296
Change-Id: I1eaf92d5c6b81d287e9fb2763b3d972d9de34395
2013-02-06 17:43:28 -08:00
Wink Saville
473710a912 Merge "Revert "Clean up published network condition reporting."" 2013-01-31 00:32:36 +00:00
Wink Saville
151eaa6bc1 Revert "Clean up published network condition reporting."
In some cases causes grey ICON's.

This reverts commit 2587a53c31

Change-Id: I09f893d03651c3fb9fcb88ee9e5ac7ce6cb6e273
2013-01-31 00:30:13 +00:00
Robert Greenwalt
c9083111d9 Merge "Revert "Second pass tying into dns cache per interface"" 2013-01-19 00:36:12 +00:00
Robert Greenwalt
d3aec30722 Revert "Second pass tying into dns cache per interface"
This reverts commit b101d01167

Change-Id: If52dffd5100a6b03275da0eabfa05e24c5ecada9
2013-01-19 00:34:07 +00:00
Wink Saville
2587a53c31 Clean up published network condition reporting.
Change-Id: I371c04bcb0547f1133e7ce12a6871aad3b3fdc6b
2013-01-18 09:31:13 -08:00
Mattias Falk
b101d01167 Second pass tying into dns cache per interface
Set dns servers for secondary nets and attach the
processes (pids) that are using the secondary nets
to the secondary nets associated dns cache.

Change-Id: Id865c2c3fdc0ec1c3e30c134e9ea4109f4f2fbeb
bug:5465296
2013-01-11 15:47:08 -08:00
Jean-Baptiste Queru
9cbbececf4 am fe26d4e6: Merge from AOSP staging branch
* commit 'fe26d4e66574bc4bcca22a9962f25fd5b6b4ccc0':
  Return error upon attempt to use non-existent APN
  Memory leak due to bad destroy sequence
2012-12-18 15:52:45 -08:00
Jean-Baptiste Queru
fe26d4e665 Merge from AOSP staging branch
Change-Id: Iad3df4845e6fae16c4ae6dbddcad0121d4775dcd
2012-12-18 15:14:12 -08:00
Mikael Hedegren
c6534b5030 Return error upon attempt to use non-existent APN
startUsingNetworkFeature will ignore errors from
reconnect - causing ConnectivityService to send
faulty information back to requester.

Change-Id: I4e0fcc1addd84da409cdc1eed1a95d25d925e020
2012-12-18 15:32:48 +01:00
Jianzheng Zhou
028d203d0f Refactor getPersistedNetworkPreference
Optimize for updating mNetworkPreference according to device's networkAttributes
setting from overlay config.xml when connectivityservice start.

Change-Id: I90286332d4f453038f1ddac7dd9d1265d96b4859
Signed-off-by: Jianzheng Zhou <jianzheng.zhou@freescale.com>
2012-12-06 12:00:04 -08:00
Robert Greenwalt
402d9c853f Merge "Support for dns domain." 2012-11-16 12:56:56 -08:00
Robert Greenwalt
cd2778578b Support for dns domain.
bug:6799630
Change-Id: I10070eddb65b7b60f0bc2b3e1e320e1aa4ec6e98
2012-11-16 11:25:32 -08:00
Jeff Sharkey
876ddc9564 Increase readability of connectivity event log.
Bug: 6322766
Change-Id: I556759f5fc1466cdd4db6b4574084a8068dc9909
2012-11-09 15:57:02 -08:00
Dianne Hackborn
dc456a66da Remove extraneous logs.
Change-Id: I4c47d36748de91bd6fddc419afbf59552bf63e9a
2012-11-08 13:13:48 -08:00
Jeff Sharkey
8c87045d09 Migrate more Secure settings to Global.
Migrate networking, storage, battery, DropBox, and PackageManager
related Secure settings to Global table.

Bug: 7232014, 7231331, 7231198
Change-Id: I772c2a9586a2f708c9db95622477f235064b8f4d
2012-09-27 16:22:53 -07:00
Jeff Sharkey
8b36157b58 First step towards cleaning up Global settings.
Remove all @Deprecated @hide settings, and clean up any stragglers.

Bug: 7232125
Change-Id: Ibf67093c728d4a28565129b923edb1701d3b2789
2012-09-26 17:18:49 -07:00
Jeff Brown
c67cf56735 Update references to migrated global settings.
Fixed one setting that was migrated but not marked deprecated.

Removed a hidden setting that is no longer used by the new
power manager service.

Bug: 7231172
Change-Id: I332f020f876a18d519a1a20598a172f1c98036f7
2012-09-25 15:27:51 -07:00
Irfan Sheriff
32bed2cc47 Captive check for both mobile and wifi
Bug: 7113195
Bug: 7102238
Bug: 7087564

Change-Id: Iac08db9de3935338ad498aa3983d2ca82057dda1
2012-09-20 12:13:06 -07:00
Jeff Sharkey
cf6ffaff69 Actually move to Global settings.
Also add better ConnectivityService logging.

Bug: 7157464
Change-Id: Ia235a7e62ed809240913c4782920c1410c7d597d
2012-09-14 13:47:51 -07:00
Jeff Sharkey
69fc5f8bd1 Restrict lockdown and firewall to AID_SYSTEM.
Bug: 7076289
Change-Id: Iafa3054335e8b1c3c8c3b8db2a4191d4ed4c8c41
2012-09-06 17:59:14 -07:00
Dianne Hackborn
e588ca1c19 Fix another issue #7097984 java.lang.SecurityException: Permission Denial:
broadcast asks to run as user -1 but is calling from user 0; this requires

Dupped bug of a different problem.

Change-Id: I15f4ab08b81f5f5746ba1cd183dee4f0b1281df5
2012-09-04 18:48:37 -07:00
Dianne Hackborn
2298689dc1 Improve multi-user broadcasts.
You can now use ALL and CURRENT when sending broadcasts, to specify
where the broadcast goes.

Sticky broadcasts are now correctly separated per user, and registered
receivers are filtered based on the requested target user.

New Context APIs for more kinds of sending broadcasts as users.

Updating a bunch of system code that sends broadcasts to explicitly
specify which user the broadcast goes to.

Made a single version of the code for interpreting the requested
target user ID that all entries to activity manager (start activity,
send broadcast, start service) use.

Change-Id: Ie29f02dd5242ef8c8fa56c54593a315cd2574e1c
2012-08-30 14:33:22 -07:00
Irfan Sheriff
0ad0d13d5a Captive portal handling
We now notify the user of a captive portal before switching to the network as default.
This allows background applications to continue to work until the user confirms he
wants to sign in to the captive portal.

Also, moved out captive portal handling out of wifi as a seperate component.

Change-Id: I7c7507481967e33a1afad0b4961688bd192f0d31
2012-08-27 22:27:06 -07:00
Jeff Sharkey
ebcc7978c1 Always-on VPN.
Adds support for always-on VPN profiles, also called "lockdown." When
enabled, LockdownVpnTracker manages the netd firewall to prevent
unencrypted traffic from leaving the device. It creates narrow rules
to only allow traffic to the selected VPN server. When an egress
network becomes available, LockdownVpnTracker will try bringing up
the VPN connection, and will reconnect if disconnected.

ConnectivityService augments any NetworkInfo based on the lockdown
VPN status to help apps wait until the VPN is connected.

This feature requires that VPN profiles use an IP address for both
VPN server and DNS. It also blocks non-default APN access when
enabled. Waits for USER_PRESENT after boot to check KeyStore status.

Bug: 5756357
Change-Id: If615f206b1634000d78a8350a17e88bfcac8e0d0
2012-08-27 12:35:05 -07:00
Jeff Sharkey
64d8b3be3a Migrate legacy VPN arguments to system_server.
Generate the racoon and mtpd daemon arguments in system_server,
instead of accepting them from Settings.

Bug: 5756357
Change-Id: I42c1a644f6add477fe4222342640d7db15982cb8
2012-08-24 11:29:58 -07:00
Jeff Sharkey
366e0b75b7 Begin moving VPN to NetworkStateTracker pattern.
Created base tracker that handles common bookkeeping, and move VPN
to become a tracker.  VPN status is now reflected in NetworkInfo, and
is mapped to LegacyVpnInfo.

Legacy VPN now "babysits" any init services it starts, watching for
when they stop unexpectedly.

Bug: 5756357
Change-Id: Iba7ec79da69469f6bd9a970cc39cf6b885b4c9c4
2012-08-23 16:41:06 -07:00
Robert Greenwalt
adb8bf98d9 Update TCP buffer size when switching network type
Import of non-merging change 41612 from AOSP

When PDP connects in GSM network, the TCP buffer window size is
set to max 8760. If the phone swicthes to UMTS, the TCP buffer
size is not updated to UMTS, i.e. GPRS buffer size is still
used with limited data transfer spead as a result.
This fix makes sure the TCP buffer size is updated when
switching network type.

Change-Id: Ic44a557677ffe629e83ce1f522a9f058bee6e7b2
2012-08-20 12:28:51 -07:00
Haoyu Bai
e246244e82 Setup idletimer for network interface.
Cherry-picked from commit 8ce570b0f3 in
master. DO NOT MERGE

Change-Id: I6101c7ae041b4cc1237ce7a9983753dbdfa301d3
2012-08-10 15:58:34 -07:00
Jeff Sharkey
9844730f62 Merge "Isolate NetworkStateTracker creation, test." into jb-mr1-dev 2012-08-08 16:25:41 -07:00
Jeff Sharkey
6b9021d76c Isolate NetworkStateTracker creation, test.
Change ConnectivityService to use a factory when creating
NetworkStateTrackers, which gives us a good place to inject mocks
for testing.  Add initial tests to verify that network routes are
added and removed as networks changed.

Change-Id: I11cbc61a84c2ed4afa2670036295b1494eab26e1
2012-08-08 16:23:41 -07:00
Jeff Sharkey
976942a8ee Merge "Include network type that caused broadcast." into jb-mr1-dev 2012-08-06 13:40:44 -07:00
Jeff Sharkey
47905d1f1d Include network type that caused broadcast.
Network type can be obtained through EXTRA_NETWORK_INFO, but offer
it as first-class extra since the returned NetworkInfo is deprecated.

Bug: 6936247
Change-Id: Ief59577afd2bd930f0f4c5650b413feef86bfbc3
2012-08-06 11:45:01 -07:00
Jeff Sharkey
60e6c1ac06 Make generic BaseNetworkObserver.
This makes it easier to add new INetworkManagementEventObserver events
in future.

Change-Id: I432263d745558de4b878f313c1951230ed9db2b1
2012-08-05 14:32:41 -07:00
Jeff Sharkey
a1ef1bec2a Split NST handler events away from CS internals.
Instead of sharing event space, use a different handler backed by
the same looper.

Change-Id: I11f1e4701c341665770ca640f3cba0c295bb7561
2012-07-26 14:09:09 -07:00
Haoyu Bai
b5da575fc7 Network data activity change intent for network interfaces.
The activity notification is received from netd, an intent
DATA_ACTIVITY_CHANGE is then raised for other part of the system to
consume.

Change-Id: Idfcc4763c51c5b314c57f546c12557082f06bebf
2012-07-17 17:13:03 -07:00