Commit Graph

1916 Commits

Author SHA1 Message Date
Pierre Imai
bc9cc50947 Move connectivity events to frameworks/base.
Fixes a crash in bluetooth' DhcpClient due to Class(not)Loader.

Change-Id: I318c033aa8782c27a243104f85950adbf07d03a6
BUG: 27885860
BUG: 25691077
2016-03-29 22:07:09 +09:00
Paul Jensen
f21b4dc1d6 Move ApfFilter from ConnectivityService to IpManager
There's a few advantages to having ApfFilter in IpManager:
1. If things go wrong, crashing a particular transport is less bad then
   crashing ConnectivityService.  We also don't want to use
   ConnectivityService as a dumping ground for transport-specific logic.
2. This makes implementing WifiManager.MulticastLock a lot simpler and
   safer because enabling/disabling it doesn't have to go through the
   NetworkAgent, which could risk various races (e.g. installing a filter
   into the wrong WiFi network).
3. IpManager is the ultimate source for LinkProperties for a particular
   transport and since ApfFilter uses the LinkProperties it's better to
   have it closely paired with the IpManager. Likewise, ApfFilter needs
   to know the APF capabilities of the transport, so having it in
   the transport avoids having to parcel this information through the
   NetworkAgent.

Bug: 26238573
Change-Id: I99b85f2b64972f0e7572170ec5d1926081aa3429
2016-03-25 07:46:07 -04:00
Sharvil Nanavati
7f8d650ed7 Add a NetworkTemplate matcher for ConnectivityManager#TYPE_PROXY.
Change-Id: I48c0a7bc39e2efcc5b4120a4fa2ecf6dfd54ac27
2016-03-23 16:19:34 -07:00
Pierre Imai
82a3637fce Merge "Improve NetworkCapabilities command chaining." into nyc-dev 2016-03-23 01:11:15 +00:00
Paul Stewart
68ffbba158 Merge changes Iddeebeb8,Idd1e37a3 into nyc-dev
* changes:
  WifiManager: Use ConnectivityThread
  Create ConnectivityThread
2016-03-22 22:23:48 +00:00
Jeff Sharkey
c6f0d15c7d Merge "Update TrafficStats SystemApi docs." into nyc-dev 2016-03-22 18:39:52 +00:00
Jeff Sharkey
11caddafb0 Update TrafficStats SystemApi docs.
Bug: 25726690
Change-Id: I221d62eaaf1e0fca8c26e4f19cb25d306710a849
2016-03-22 10:20:35 -06:00
Pierre Imai
c8419a8717 Improve NetworkCapabilities command chaining.
setNetworkSpecifier() now returns this.
BUG: 26797290

Change-Id: Ia8bd0836d9ac715408eca102bf4a2d23f044fa72
2016-03-22 22:29:22 +09:00
Erik Kline
a2d29407d0 Support registering a request for the default network
Change-Id: I079f5be97b585cf5692dd4c7a144b993d168a9a5
2016-03-22 15:44:16 +09:00
Lorenzo Colitti
e6109ddd3e Merge "Remove framework code that calls SIOCKILLADDR" into nyc-dev 2016-03-22 05:37:09 +00:00
Lorenzo Colitti
ed7bf2e04e Remove framework code that calls SIOCKILLADDR
Bug: 26976388
Change-Id: I652361d9e650a77085070d6c26b28b7638ba2dfe
2016-03-22 12:54:32 +09:00
Jeff Sharkey
7474fe7b42 Ignore wildcard network policies.
They never should have been persisted to disk in the first place.

Bug: 24972775
Change-Id: If9254f74455823f9fda9545fdf543fc7250a4016
2016-03-21 13:13:28 -06:00
Paul Stewart
74fc3bfc00 Create ConnectivityThread
Create a common singleton thread to be shared among all
connectivity tasks.  Instead of launching separate threads to
handle downstream messages from the various service instances used
in connectivity, these managers can choose to share this instance.

Bug: 27695292

Change-Id: Idd1e37a3e793c5485091509c3d7351e4d29288f0
2016-03-19 10:05:06 -07:00
Jeremy Joslin
30db6d9325 Add a meteredHint to ScoredNetwork.
am: 85870d6

* commit '85870d63749b34aed7ad47ae288aebe6d11d8724':
  Add a meteredHint to ScoredNetwork.
2016-03-17 18:48:59 +00:00
Jeremy Joslin
85870d6374 Add a meteredHint to ScoredNetwork.
API changes to allow a meteredHint to be passed
from a network scorer through to the wifi subsystem.

BUG:27702356
Change-Id: Ic466852d855af54c1754c4663388f24f54ed0691
2016-03-17 10:48:36 -07:00
Jeff Davidson
1f7e05eda6 NetworkStats.Bucket API polish.
-Add @IntDef constants for STATE_ and ROAMING_.
-Expand docs for ROAMING_ constants.
-Use ROAMING_NO/YES instead of ROAMING_DEFAULT/ROAMING.

Bug: 27531260
Change-Id: I54ecfb4148caa549214df0bee9983036ffa4cb55
2016-03-14 11:24:12 -07:00
Jeff Sharkey
0d69d3dfe1 Restrict TrafficStats due to privacy concerns.
Granular per-UID network statistics can be used to infer user
behavior over time, so they fall under the umbrella of the
PACKAGE_USAGE_STATS permission.

Since we can't check app-ops based permissions in the kernel, the
best we can do is redirect users to the NetworkStatsManager class,
which offers a much more robust historical data set.

Bug: 27577101
Change-Id: I696bdc5e0b3d7e24acf35f388d0ab13617ed8af3
2016-03-09 16:49:45 -07:00
Felipe Leme
011b98f93a Created a firewall chain for power save mode.
When power-save mode was first implemented, there were no firewall rules
on netd, so the solution was to make all network interface metered and
re-use the bw_penalty_box chain.

This change removes that workaround by creating a explicit fw_powersave
chain, whose behavior is similar to fw_dozable (in fact, it reuses some
of its code); such change not only makes network restrictions on
power-save mode simpler, but it also allows to optimze how the restrict
network rules are changed (which will be done in a separate change).

BUG: 27127112
BUG: 26685616
Change-Id: I7f7a7b1c1855e916c6651ad90da29fe187a7bea2
2016-03-03 09:05:18 -08:00
Paul Jensen
978c80b474 Have ConnectivityService install packet filters when possible
am: 578a76e7de

* commit '578a76e7de77492ac33e407fff4fb9a2f5550d8a':
  Have ConnectivityService install packet filters when possible
2016-03-03 14:48:45 +00:00
Paul Jensen
578a76e7de Have ConnectivityService install packet filters when possible
Listen for ICMP6 router advertisements on networks that support
packet filters.  Construct packet filters and install them to
ignore redundant future ICMP6 router advertisements.

Bug: 26238573
Change-Id: If78300b9fda257c21f3ee6533e1da7de9f897cb4
2016-03-03 17:32:01 +09:00
Lorenzo Colitti
b7ffb76437 Merge changes Ic366b532,I0179b45b into nyc-dev
* changes:
  Move PinningNetworkCallback out to a new NetworkPinner class.
  Use MessageUtils in ConnectivityManager.
2016-03-02 04:18:03 +00:00
Jeff Sharkey
c53962d4ed When system server goes down, crash apps more.
Apps making calls into the system server may end up persisting
internal state or making security decisions based on the perceived
success or failure of a call, or the default values returned.

The reality is that if the system process just died, init will be
along shortly to kill all running apps, so we should have no problem
rethrowing the RemoteException as a RuntimeException.

Bug: 27364859
Change-Id: Ife0bcb079636c88d54c44d17eb580409fd79028b
2016-03-01 19:29:16 -07:00
Lorenzo Colitti
fcfa7d921a Use MessageUtils in ConnectivityManager.
Change-Id: I0179b45bc54ffced8e5647d6f005b891b5de93ab
2016-03-01 22:57:29 +09:00
Jeff Sharkey
50d1c044b5 Parcelable classes should always be final.
Also hide ConnectivityMetricsEvent which isn't being used yet.

Bug: 27415331
Change-Id: Iacdccddda504f3f669185f807b4f35b8dc2b0212
2016-02-29 16:46:09 -07:00
Jeff Sharkey
f8880561e6 When system server goes down, crash apps more.
Similar to first patch, but now using new "rethrowFromSystemServer()"
method which internally translates DeadObjectException into
DeadSystemException.  New logic over in Log.printlns() now
suppresses the DeadSystemException stack traces, since they're
misleading and just added pressure to the precious log buffer space.

Add some extra RuntimeInit checks to suppress logging-about-logging
when the system server is dead.

Bug: 27364859
Change-Id: I05316b3e8e42416b30a56a76c09cd3113a018123
2016-02-27 17:17:01 -07:00
Lorenzo Colitti
1142b2654a resolve merge conflicts of 51e4acb29d to nyc-dev
Also add the appropriate changes to api/test-current.txt, which
is not present on mm-wireless-dev from which this change came.

Change-Id: Ic4df6d0f89add73b7e5252ef662de07a4e8fce31
2016-02-24 15:19:15 +09:00
Pierre Imai
51e4acb29d Merge "Add Connectivity Metrics Logger service" into mm-wireless-dev 2016-02-24 04:49:24 +00:00
Pavel Zhamaitsiak
02b3e6bfc5 Add Connectivity Metrics Logger service
This service can be used to pass events to metrics collection service

Change-Id: I213874300693cd121f2c8676f70893315de4c4c0
2016-02-23 17:32:53 +09:00
Erik Kline
adc49e8fd5 Delete all NetworkUtils DHCP-related code.
am: c3b52bc466

* commit 'c3b52bc46604cb18d74fbe13dda15f4679222107':
  Delete all NetworkUtils DHCP-related code.
2016-02-22 09:16:16 +00:00
Erik Kline
c3b52bc466 Delete all NetworkUtils DHCP-related code.
Bug: 26991160
Change-Id: I2c74e0161f43f65c1b6a85dc9f294b64c8f1ae6e
2016-02-22 15:14:31 +09:00
Antonio Cansado
12d7ea815b Merge "Implementation of data usage callbacks." into nyc-dev 2016-02-18 19:43:42 +00:00
Erik Kline
7651b21fe9 {,Base}DhcpStateMachine is no more
am: efa4209fe0

* commit 'efa4209fe022d007f48edc3c4feaef00a9865cb5':
  {,Base}DhcpStateMachine is no more
2016-02-18 04:38:38 +00:00
Erik Kline
efa4209fe0 {,Base}DhcpStateMachine is no more
Bug: 26991160
Change-Id: I21f8c30627bf2a7fbcd5b4d5f1f1ad1a2dda759b
2016-02-18 12:56:45 +09:00
Antonio Cansado
cd42acd951 Implementation of data usage callbacks.
NetworkStatsService will register data usage requests
and keep data usage stats scoped to the request.

There are different types of data usage requests
- scoped to a set of NetworkTemplate; these are restrictred to
device owners and carrier apps and allow the caller to monitor
all activity on the specified interfaces.
- scoped to all uids visible to the user, if the user has
android.Manifest.permission#PACKAGE_USAGE_STATS permission.
The set of uids may change over time, so we keep track of that.
- scoped to a set of uids given by the caller, granted that
the caller has access to those uids.
- scoped to the caller's own data usage. This doesn't require
PACKAGE_USAGE_STATS.

Bug: 25812785
Change-Id: Ie11f35fc1f29d0dbe82f7fc924b169bb55c76708
2016-02-17 18:43:53 -08:00
Jeremy Joslin
da11f5cdf5 Send explicit broadcasts when the scorer changes.
When the scorer is changed send a targeted broadcast to the previous
scorer (if any) and then a targeted broadcast to the new scorer.

BUG:26815773
Change-Id: If28414f4373a531b10f581ecd096cbc27a7318a4
2016-02-11 07:15:44 -08:00
Ritesh Reddy
f61a847881 Merge "Enabled Network Policy Backup/Restore." into mm-wireless-dev
am: d9c4bc0c4d

* commit 'd9c4bc0c4db7a8b16d8ea0f58ed0615efc167f47':
  Enabled Network Policy Backup/Restore.
2016-02-10 19:46:20 +00:00
Ritesh Reddy
adca34a0d6 Enabled Network Policy Backup/Restore.
Added Backup Restore specific NetworkPolicySerializer
to NetworkPolicy Class and related classes.

Change-Id: I2a11e2afae8dd9e0ee0c3356e669a73f6a1361af
2016-02-08 10:41:21 +00:00
Antonio Cansado
1e3f04f090 Merge "Adding a callback to notify data usage." 2016-02-03 18:16:51 +00:00
Felipe Leme
f933871976 Merge "Created a ACTION_RESTRICT_BACKGROUND_CHANGED intent." 2016-02-02 23:59:30 +00:00
Antonio Cansado
ba8288d238 Adding a callback to notify data usage.
Allow holders of android.Manifest.permission#PACKAGE_USAGE_STATS
to be notified when data usage has exceeded a given threshold.
This allows an app to update its data usage metrics without
polling.

Bug: 25812785
Change-Id: I3a4904a97f3c7fbaf8071b460f9ee6ca9c1ba4ed
2016-02-02 15:18:41 -08:00
Antonio Cansado
46c75367fa Retuning tag information through NetworkStatsManager.
Network tags could be set since ICS but was not exposed
through the SDK. This CL extends existing functionality
of NetworkStatsManager to return network tags.

Bug: 25813338
Change-Id: I414b98193249ba88a3f2d64cb2e0d2633f64fa3f
2016-02-01 14:13:20 -08:00
Jeff Sharkey
ac3be9a283 File paths to system partition are okay-ish.
Unless SELinux blocks it, all apps have identical access to files
included on the system partition.  Since there are a handful of
useful files stored there, like ringtones and license files, carve
out an exception to allow file:///system/ style paths.

Note that StrictMode isn't a security mechanism, which is why we're
not concerned about resolving canonical paths.

Bug: 26895798
Change-Id: If0b659d30c4e51377edcf01445392759d1e4962e
2016-02-01 10:44:45 -07:00
Jeff Sharkey
344744b496 Exposing file:// beyond your app is bad, m'kay?
For several releases now we've told developers that sharing raw files
between apps is a recipe for trouble.  There are at least three major
problems with sending raw files:

-- Apps sending generic intents can't know who is at the other end,
so they may not have access to shared storage locations.  This is
more likely now that runtime permissions require apps to explicitly
ask users for permission.

-- Apps making files in their private storage world-readable has been
deprecated for several releases, and now in N it's fully blocked.  If
we let these intents through, the receiving app would fail to open
the file, when the real blame rests on the sending app.

-- Devices with user profiles can't share raw files when using
cross-profile intent filters, since filesystem access is fully
locked down between users.

The time has finally come to communicate clearly that if you're
sharing content between apps, you need to use content:// Uris.  We
added the simple FileProvider several years ago to give apps a clean
way to migrate with minimal work on their part.

Bug: 26860922, 9069185
Change-Id: I075f627f6a0d6c7fca2c090ca133b9aae9801c64
2016-01-28 19:20:12 -07:00
Felipe Leme
9778f76123 Created a ACTION_RESTRICT_BACKGROUND_CHANGED intent.
This intent will be broadcasted when:

- Global restrict background setting is changed (sent to all packages)
- An individual uid is added to or removed from the whitelist (sent just
  to the packages belonging to that uid).

This intent is only sent to registered receivers.

BUG: 26451391
Change-Id: Ic0a5771f88baa52076ad04764f29098a386463cc
2016-01-28 13:28:11 -08:00
Etan Cohen
e496c555b9 Merge "Allow NetworkFactories to match any network specifier on a request" into mm-wireless-dev
am: bd0858ba67

* commit 'bd0858ba679cced35bda55a643707ad69e4caa34':
  Allow NetworkFactories to match any network specifier on a request
2016-01-28 18:24:23 +00:00
Etan Cohen
bd0858ba67 Merge "Allow NetworkFactories to match any network specifier on a request" into mm-wireless-dev 2016-01-28 18:20:09 +00:00
Lifu Tang
45fbe46da6 Merge changes from topic '2016 GPS Changes'
* changes:
  Framework support to read newly added fields
  Added an API to query GPS hardware version info
  GPS Measurement and Navigation APIs go public
  Supported GNSS multi-constellation in frameworks
2016-01-28 02:02:17 +00:00
Shishir Agrawal
7ea3e8bf89 Unhiding MSIM APIs.
1. Unhide MSIM APIs in TelephonyManager that already have non-MSIM equivalent
   APIs public.
2. Make MSIM API naming consistent (overloaded, no suffix).
3. Unhide APIs in SubscriptionManager that are necessary for MSIM.

Bug: 26772894
Change-Id: Ibebab7379ea79c8e4812bbd190342827048e30e2
2016-01-26 13:47:27 -08:00
Shishir Agrawal
3a86d3d534 DO NOT MERGE : Unhiding MSIM APIs.
1. Unhide MSIM APIs in TelephonyManager that already have non-MSIM equivalent
   APIs public.
2. Make MSIM API naming consistent (overloaded, no suffix).
3. Unhide APIs in SubscriptionManager that are necessary for MSIM.

Bug: 26772894
Change-Id: Ibebab7379ea79c8e4812bbd190342827048e30e2
2016-01-26 09:29:24 -08:00
Jeremy Klein
36c7aa0325 Expose a simple tethering API which includes provision checks.
This CL exposes startTethering and stopTethering functions which also
encapsulate all provisioning check logic. Right now, only silent checks
are implemented, but UI checks will come in a follow-up CL. GTS tests
and Settings changes are under the same topic ID.

BUG: 26247383
Change-Id: I65f61d899594cb3f9035d8496366af17a57a090f
2016-01-25 16:37:09 -08:00