Commit Graph

2689 Commits

Author SHA1 Message Date
Lorenzo Colitti
2faa06bcc3 Merge "If we want to release the lock, release instead of acquiring it." into nyc-dev 2016-04-13 02:30:33 +00:00
Jeff Sharkey
3616d5e826 Fix broken javadoc.
Change-Id: I9f2050fd6040234bb1d759ab346f79fc41247aa9
2016-04-12 15:22:57 -06:00
Lorenzo Colitti
946a18fb24 Merge changes Ic2c84de7,I379aef92 into nyc-dev
* changes:
  Remove duplicated code in NetworkStateTrackerHandler.
  Improve Tethering and NativeDaemonConnector logging.
2016-04-11 14:27:31 +00:00
Lorenzo Colitti
8b3ff56d28 If we want to release the lock, release instead of acquiring it.
The intent of this code seems pretty clearly to release the
lock, not acquire it. This is bad since it's a refcounted
wakelock.

Change-Id: I0f7590ab697133bd82db8a1a515453316c6a80dc
2016-04-11 23:19:06 +09:00
Lorenzo Colitti
1ba4d36e2c Improve Tethering and NativeDaemonConnector logging.
1. Deduplicate the Tethering message numbers, and use MessageUtils
   to convert them to strings.
2. Add a warning to NativeDaemonConnector when an unsolicited
   event is more than 500ms late or takes more than 500ms to
   process.

Bug: 27857665
Change-Id: I379aef9257027d1ccf30906e79c6389ef1f95420
2016-04-11 17:40:21 +09:00
Jack Yu
7e3859251f Excluded certain APNs (e.g. IMS) from mobile data usage.
Added not_metered capability to a mobile network if none
of its associated APN types are metered. Also used not_metered
capability to determine if a network should be accounted for
data usage or not instead of using network type, which is
always MOBILE after refactoring. Will add VT usage support
in next phase.

bug: 20888836
Change-Id: Id692cb856be9a47d0e918371112630128965b1bb
2016-04-07 10:07:31 -07:00
Philip P. Moltmann
bbb41dd3bd Parse and validate txt records.
Bug: 27696905
Change-Id: I9affcf02a51c92a2be1c2bfc5efbd09065e100bc
2016-03-30 20:33:31 -07:00
Sharvil Nanavati
70afb70e73 Merge "DO NOT MERGE ANYWHERE Add a NetworkTemplate matcher for ConnectivityManager#TYPE_PROXY." into cw-e-dev am: a677ea7 -s ours
am: 1c7f5bb  -s ours

* commit '1c7f5bb49c1918be446b967fd78b02313429322f':
  DO NOT MERGE ANYWHERE Add a NetworkTemplate matcher for ConnectivityManager#TYPE_PROXY.
2016-03-25 20:20:41 +00:00
Joe Onorato
e7f365734c Merge "Turn off verbose logs and remove log that is covered by verbose logs." into nyc-dev 2016-03-24 23:21:47 +00:00
Joe Onorato
e80e75eda4 Turn off verbose logs and remove log that is covered by verbose logs.
Bug: 27744135
Change-Id: I436cfd325f87b3b9205d50e92e2a70a50dd33344
2016-03-24 11:32:17 -07:00
Sharvil Nanavati
70ee7efa31 DO NOT MERGE ANYWHERE Add a NetworkTemplate matcher for ConnectivityManager#TYPE_PROXY.
Change-Id: I48c0a7bc39e2efcc5b4120a4fa2ecf6dfd54ac27
2016-03-24 00:23:38 +00:00
Sharvil Nanavati
74895614da Add a NetworkTemplate matcher for ConnectivityManager#TYPE_PROXY.
Change-Id: I48c0a7bc39e2efcc5b4120a4fa2ecf6dfd54ac27
2016-03-23 16:19:34 -07:00
Jeff Sharkey
f759159b62 Update TrafficStats SystemApi docs.
Bug: 25726690
Change-Id: I221d62eaaf1e0fca8c26e4f19cb25d306710a849
2016-03-22 10:20:35 -06:00
Jeff Sharkey
f28f2820ab 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
Jeff Davidson
082ceb1679 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
27c8a07be6 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
Joe Onorato
9f5c3b8c68 Turn down the logging a little bit.
Change-Id: Ib6e0e6f3577afac3b9bfe9a9b1cce70fb16d9d04
2016-03-04 12:21:30 -08:00
Jeff Sharkey
f713828f74 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
Jeff Sharkey
89a344fe60 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
bc08d071ba 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
Roshan Pius
dbdc23c2c0 IpConfigStore: New constructor to accept writer
am: 6df1731743

* commit '6df1731743c92d61451c4c1b10f27a89b1b0b973':
  IpConfigStore: New constructor to accept writer
2016-02-23 02:19:40 +00:00
Roshan Pius
6df1731743 IpConfigStore: New constructor to accept writer
Add a new constructor to accept a DelayeDiskWrite object from the
caller.

BUG: 27293150
Change-Id: I13fb86c76ee5a0d05b45fec0c42b7e1b2233ee76
TEST: `runtest frameworks-wifi`
2016-02-22 17:13:47 -08:00
Antonio Cansado
7a6536383d 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
Ritesh Reddy
118b392565 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
ca9d62d08d 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
fb502108b4 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
2bb66f5d48 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 Davidson
3bbf8f320d Revert Network Stats API stub for tracking of metered networks.
Bug: 25813958
Change-Id: I9d2835b7bacfffef05b1588f1301afc70f5f582f
2016-01-29 10:36:52 -08:00
Zoltan Szatmary-Ban
4ff8b948b0 Introduce DEVICESUMMARY access level to NetworkStatsAccess.
Apps with PACKAGE_USAGE_STATS app op or READ_NETWORK_USAGE_HISTORY
granted can query the summarized device data usage (but not individual
uids running in other users or profiles).

Bug:26677052
Change-Id: Id51631638f338a8cf48172c9b41746228a335084
2016-01-26 13:59:52 +00:00
Jeff Davidson
131806f111 Implement roaming tracking in NetworkStats summary queries.
Whether a network is deemed roaming or not was already being tracked
as part of the NetworkIdentitySet, so the underlying data store
already tracks roaming and native data separately. However, this data
was being aggregated together in NetworkStatsCollection#getSummary,
since the NetworkIdentitySet is converted to an iface name for the
purposes of matching, and the iface name will be identical whether or
not the iface is considered roaming. Now it is separated.

Also fixes a long-standing bug in NetworkIdentitySet where an identity
read from a saved file would always be considered roaming == false,
even if it wasn't at the time it was written.

Bug: 25813438
Change-Id: I11ab5b51182ed8da7af8fde468df065f9fdc3dad
2016-01-19 16:57:51 -08:00
Jeff Davidson
b7ab1f9da6 Define new APIs for metering and roaming network stats buckets.
These are analagous to the state buckets for tracking whether usage is
incurred while the app is in the foreground or background. We will
additionally track whether data usage is incurred over a metered or
unmetered network, and whether it is incurred over a roaming or native
network.

The APIs are not implemented in this CL; the existing buckets are
still returned with METERING_ALL and ROAMING_ALL to indicate that this
is not yet being tracked.

Bug: 25813438
Bug: 25813958
Change-Id: I76dd3dd063ed28ef5579ca3a978570532e7836bc
2016-01-06 14:15:46 -08:00
Jeff Davidson
8dc22e3e90 Relax permissions around NetworkStatsManager APIs.
Currently, access to network usage history and statistics requires a
signature|privileged permission, an AppOps bit (associated with the
PACKAGE_USAGE_STATS permission), or device/profile ownership. Once
access is granted via one of these mechanisms, it generally applies to
any UID running in the same user as the caller.

This CL expands access as follows:

-Any app can access its own usage history with no extra requirements.
-Carrier-privileged applications can access usage history for the
entire device.
-Device owners can access per-UID breakdowns for usage. Previously
they could access the summary for the whole device, but not the
individual breakdowns.

We simplify the permission model by defining three access levels -
DEFAULT (own app only), USER (all apps in the same user), and DEVICE
(all apps on the device), and propagate these levels throughout.

Finally, this CL fixes an apparent bug in
NetworkStatsSerice#hasAppOpsPermissions - if the AppOp bit was in
MODE_DEFAULT, hasAppOpsPermission would always return false instead of
falling back to the PackageManager permission check.

Bug: 25812859
Bug: 25813856
Change-Id: Ic96e0776e2a4215a400163872acea1ededfaced9
2015-12-14 17:16:37 -08:00
Jeff Sharkey
7b124cb8e6 Add tagging variants for DatagramSocket.
Oops, we missed these along the way.

Bug: 25799174
Change-Id: I4ad368f9faee4b1996d605534dce4c2b23dbe200
2015-12-04 15:32:07 -07:00
Daichi Hirono
dbccfac26f Add capability to receive FD with NativeDaemonConnector.
BUG=25755372

Change-Id: I2888219b77cf04f4bf749d5518ff62ba16258f2d
2015-12-04 14:16:00 +09:00
Christopher Tate
c1c71fdff5 Introduce socket stats tag for restore traffic
As well as system API for emplacing it.

Change-Id: If33fbd23552261efe3b00d75c22ff823564f43e6
2015-11-10 11:13:12 -08:00
Jeff Sharkey
6d3c359289 Yell when calling installd with PM lock held.
As a matter of policy, we should never be holding the mPackages lock
while calling down into installd.  This little bit of logic helps us
catch accidental cases where this happens.

Change-Id: I676c81df43ef936ffd36290d45a79429630c1b4b
2015-11-03 14:44:20 -08:00
Jeff Sharkey
c109706f45 Yell if NDC callers are holding bad locks.
The current MountService design heavily depends on down-callers not
holding any locks, since the vast majority of events are unsolicited
and bubble up to the framework.

This simple API gives us an easy way to track down people calling
while holding a lock they shouldn't be.

Bug: 25443096
Change-Id: Ifcbda95f00d5be8c1b88d58ca67927e76c713c3e
2015-11-03 10:39:45 -08:00
Jeff Sharkey
077f2c9c6b Merge branch 'mnc-dr-dev-plus-aosp' of /usr/local/google/game/mirror/googleplex-android_googlesource_com/platform/frameworks/base into mnc-dr-dev-plus-aosp 2015-10-20 18:34:32 +00:00
Jeff Sharkey
385f839a2c Merge "Ignore network policies with missing IMSI." into mnc-dr-dev am: 38463bb950 am: 5d7604323f
am: 3b30aae6e7

* commit '3b30aae6e702cbdad4ada69b76e4bc50fa2e161c':
  Ignore network policies with missing IMSI.
2015-10-20 18:33:48 +00:00
Jeff Sharkey
1bb0a51092 Merge "Ignore network policies with missing IMSI." into mnc-dr-dev am: 38463bb950 am: 5d7604323f
am: 3b30aae6e7

* commit '3b30aae6e702cbdad4ada69b76e4bc50fa2e161c':
  Ignore network policies with missing IMSI.
2015-10-20 18:30:16 +00:00
Jeff Sharkey
32933d6da3 Ignore network policies with missing IMSI.
In rare cases, we might have created a network policy before an IMSI
was available.  Because this policy is persisted, and we incorrectly
think that it always applies, we end up annoying the user when data
usage goes over the 2GB default warning threshold.

This patch fixes the network matching logic to ignore these empty
network policies when present.

Bug: 24972775
Change-Id: Id26499b6716121dddf0f2c05b848b0bed5995e72
2015-10-19 16:52:08 -07:00
Elliott Hughes
8dc3833e83 resolved conflicts for a884d81e to stage-aosp-master
Change-Id: Ice485967fa96f13786024b6939b826638e906ff0
2015-09-24 10:01:32 -07:00
Daniel Micay
aa49801a92 constify JNINativeMethod function pointer tables
Change-Id: I4036c924958221cbc644724f8eb01c5de3cd7954
2015-09-22 17:10:35 -04:00
Zoltan Szatmary-Ban
06a45679aa Remove uids with empty history from NetworkStats uid enumeration
Bug: 23018174
Change-Id: I1a482280599e0f5da18a208e727653d4bd4107ec
2015-08-14 16:21:52 +01:00
Jeff Sharkey
b1f84a006f Merge changes I9971c466,Ib42474fd into mnc-dev
* changes:
  Kill MediaProvider during drastic changes.
  Use best volume description for MTP.
2015-07-08 21:55:54 +00:00
Jeff Sharkey
6928e332da Kill MediaProvider during drastic changes.
Sadly MediaProvider makes a ton of assumptions about storage paths
not changing.  To ensure that it picks up radical storage changes,
kill it and let it restart to pick up new paths.

Also give ourselves a longer timeout when benchmarking.

Bug: 20275423
Change-Id: I9971c4667dabdc685cb23528443f085f152c461d
2015-07-08 14:06:40 -07:00
Zoltan Szatmary-Ban
f34946fabb Expose time-interval detail query on INetworkStatsSession
Also, force polling when a session is opened for NetworkStatsManager.

Bug: 21864554
Bug: 21754685
Change-Id: I24ea822c2d5bc1421ec7ee65d0cfe27cf02dd69e
2015-07-07 17:36:54 +01:00
Todd Kennedy
fd6ca6c8d4 Handle volume benchmark timeout
If a volume benchmark operation times out, we don't want to show
a cryptic toast message. Instead, we return a very large integer
[eg Long.MAX_INT]. The storage wizard can then use this value
to show an appropriate dialog if it chooses.

Bug: 21376364
Change-Id: I3d97336e19c93511cfff2cbdb2f07ab033a1143d
2015-06-23 14:40:32 -07:00
Jeff Sharkey
8806907cc9 Update file size formatting.
Per UX, default strings should have space between value and units
resulting in "12.3 GB".  Add a formatting variant that returns the
various components for callers who want to build their own strings.

For now there is only one mounted emulated volume at a time, and
it's always the primary storage, so give it the default rootId to
keep old Uris working.

Change-Id: Ifcc72a91a6b397ee65dc92642153286186eb64ac
2015-06-15 21:39:28 -07:00
Zoltan Szatmary-Ban
567b6f86e7 Replace renamed reference to NetworkStats in javadoc
Bug: 21572680
Change-Id: Iad43af4d8a6d178f3396f23a74f1568e6faed311
2015-06-04 14:15:47 +01:00