Commit Graph

68408 Commits

Author SHA1 Message Date
Stephen Chen
94eab5c526 Define API for metering network stats buckets.
This is a continuation of b/26545374, since now we can also set the
metered bit with NetworkScorer. The tracking of metered state changes
will be implemented in a seperate CL.

Bug: 31015360
Bug: 26545374
Test: N/A

(cherry picked from commit 9ac251d116)

Change-Id: I6a2fcc8577d62daa8823dff9e0128a5cf39ede7b
2017-01-26 18:52:08 +09:00
Jeremy Joslin
fe1ce2f90c VPN network stat accounting changes.
Properly account for VPN apps that make heavy use of the tun
interface. Prior to this change a VPN app could be incorrectly charged
for more data than it actually used if it sent more traffic through
the tun interface than the underlying interface.

This change excludes VPN app traffic on the tun interface from the
adjustment pool and doesn't redistribute traffic to the VPN app.
Instead all of the redistributed traffic is deducted from the VPN app
which effectively represents any overhead incurred by the VPN app.

BUG: 30557871

(cherry picked from commit 8b436d865c)

Change-Id: I06f01aa8fe5fdc06b2d36cfb9c68feb244c2e5de
2017-01-26 18:51:53 +09:00
Hugo Benichi
d28766c74d ConnectivityThread: use lazy holder idiom
This patch changes the way that the ConnectivityThread is lazily
instantiated by using the "lazy initialization holder class idiom".

The first code point that tries to obtain a reference to the unique
ConnectivityThread instance will trigger the creation of the Singleton
class, which will guarantee a thread-safe initialization of the static
INSTANCE field inside Singleton according to the language specs.

This is the Item #71 of Effective Java.

The unique static instance of ConnectivityThread is not stored directly
inside ConnectivityThread class but is stored in a static nested class.
This is to avoid triggering the creation of that unique instance when
Zygote does class preloading at phone startup. Otherwise this would lead
to Zygote creating a new OS thread during preloading, which is a fatal
error.

Test: frameworks-wifi tests pass
Bug: 26749700
Bug: 28537383
Bug: 32130437

(cherry picked from commit c4fe5d373c)

Change-Id: If13b363889a8e9396273a90c3d9f9421a48aecbc
2017-01-26 18:51:49 +09:00
Hugo Benichi
1e19aefa6f ConnectivityManager: use ConnectivityThread looper
This patch removes the static singleton looper used by
ConnectivityManager and instead uses the common ConnectivityThread.

This allows to removes the static atomic counter used to track
the number of registered NetworkCallback in ConnectivityManager, because
the looper is not turned off anymore when no callbacks are registered.

Also an overloaded version of sendRequestForNetwork is added taking as a
new parameter a Handler. This will allow to overload various callback
and request related API calls with user provided Handlers.

Test: ConnectivityServiceTest passes
Bug: 26749700
Bug: 28537383
Bug: 32130437

(cherry picked from commit 7724cdd8b9)

Change-Id: If956addbf8e7b11b36a4b966de7fca00e8f362c1
2017-01-26 18:51:46 +09:00
Hugo Benichi
9c58a11f98 ConnectivityManager: a simpler CallbackHandler
This patch simplifies CallbackHandler in the following way:
  - CallbackHandler directly uses the static references to
    sNetworkCallback and sCallbackRefCount. This allows to remove
    instance fields in CallbackHandler.
  - CallbackHandler does not have a reference to ConnectivityManager
    anymore
  - CallbackHandler.getObject() is now generic in a type-safe way.

Test: ConnectivityServiceTest passes
Bug: 28537383
Bug: 32130437

(cherry picked from commit d42650faaa)

Change-Id: I1b5fe2a361b5f623a8310ae698497c83d72f3034
2017-01-26 18:51:43 +09:00
Philip P. Moltmann
092feb5b1c Indicate the NsdServiceInfo attributes are only filled in for a resolved service.
Fixes: 28530428

(cherry picked from commit 7d5da4b044)

Change-Id: If2bfc06589adb361f11b89cd5923cb5c255cb680
2017-01-26 18:51:39 +09:00
Jeremy Klein
a17dabedde Add a null check for the OnStartTetheringCallback.
This avoids a NullPointerException when trying to call the callback
and gives a more readable error message.

(cherry picked from commit 5f277e1667)

Change-Id: Ia419ff68ef10f308f9e44be47420e27099ee6070
2017-01-26 18:51:36 +09:00
Hugo Benichi
4bee7e4edb TokenBucket for rate-limiting and throttling
This patch adds a TokenBucket class that can accumulate and distribute
tokens over time.

Test: comes with unit tests.
Bug: 32198637

(cherry picked from commit 998493f0ee)

Change-Id: I4012ae6d02f7004bceee9a2ba03914f2a2506031
2017-01-26 18:51:33 +09:00
Hugo Benichi
728842ad47 IpConnectivityMetrics reads buffer size in settings
Test: IpConnectivityMetricsTest passes. Also manually changed the new
setting and verified the buffer size is as expected after flushing the
buffer.
Bug: 32198637

(cherry picked from commit 05686dbb6b)

Change-Id: Iefbeac3a688b260fb3f92dfe0bfd9db28e26749d
2017-01-26 18:51:30 +09:00
Calvin On
d2bd69aec0 Add option to skip and avoid captive portals.
Test: ConnectivityServiceTest updated with test cases.
Test: Manually tested against att-wifi in B42.
Bug: 30222699

(cherry picked from commit be96da11cc)

Change-Id: I90c0f97fe0e41de4059bceae7b56ab3a70145696
2017-01-26 18:50:42 +09:00
Erik Kline
95be623a27 Support timeouts for requestNetwork() invocations.
(cherry-pick of 06c3ef1367)
(cherry picked from commit 57faba9ec7)

Bug: 21414325
Change-Id: I1a58823a372154589f972b98c4c428eab0e0523e
2017-01-26 18:50:23 +09:00
Ruchi Kandoi
e6cb2aa614 Merge "nfc: Make NDEF validation stricter"
am: f3a6269fed

Change-Id: If69e586c81e5926c0795af3689de67b260891eaa
2017-01-25 19:59:16 +00:00
Ruchi Kandoi
2ed0b48abb nfc: Make NDEF validation stricter
- Check if the MB is not set for any record apart from the first one.
- If the record is chunked, first record must contain the type

Bug: 20722275
Test: Manual; write raw NDEF messages to a tag
Change-Id: I3e73fc5163bbcd8a1f23417e98f57b665f4f1fad
Signed-off-by: Ruchi Kandoi <kandoiruchi@google.com>
2017-01-25 18:21:28 +00:00
Sanket Agarwal
aaa490025b Merge "Change HFP Client API to support multi device"
am: 01f2e67648

Change-Id: I887b83939581fe1fd4068f7a4a72a6910c994c74
2017-01-24 19:06:40 +00:00
Sanket Agarwal
01f2e67648 Merge "Change HFP Client API to support multi device" 2017-01-24 19:01:14 +00:00
Jeremy Joslin
4fcc44dc9a Merge "Mark the INetworkScoreCache as oneway."
am: edadb3efc3

Change-Id: I3b71e154f49b354ead2bf734da4a94e332f87a33
2017-01-23 21:31:21 +00:00
Jeremy Joslin
84fae83f8c Mark the INetworkScoreCache as oneway.
Test: built & run
Bug: 34522097
Change-Id: I7d2075febe6c3cdc24b56df255f8ba59e13322bf
2017-01-23 10:51:41 -08:00
Polina Bondarenko
cf176500e6 Merge "Make TelephonyManager#get/setAllowedCarriers system api"
am: 6d064d8780

Change-Id: I8f9b1c8e9ce1fda6cd03cd0dd459ead8837bd90d
2017-01-23 17:10:05 +00:00
Treehugger Robot
6d064d8780 Merge "Make TelephonyManager#get/setAllowedCarriers system api" 2017-01-23 17:01:25 +00:00
Amin Shaikh
2aec2f7a9c Merge "Add Setting for curating saved open networks."
am: b3b665de22

Change-Id: I3c65f39dc4f38f1c6c00a240f519cb0b0cf1a916
2017-01-21 05:27:06 +00:00
Sanket Agarwal
a3ae5c4e24 Change HFP Client API to support multi device
- Adds BluetoothDevice as a parameter where required
- Gets rid of device management APIs that can be done via
  BluetoothProfiles instead

Test: Manual sanity tests
Bug: b/33554547
Bug: b/30984220
Change-Id: I3485ac5bfe1fcb29c774ad040fdd608e1cacb8df
(cherry picked from commit 039eeb81b5)
2017-01-20 19:30:35 -08:00
Amin Shaikh
8533622ae7 Add Setting for curating saved open networks.
Bug: 34392914
Test: make
Change-Id: Icd17753af6b0efdb35d1060b16029a53fdf4e605
Merged-In: Icd17753af6b0efdb35d1060b16029a53fdf4e605
2017-01-20 18:31:56 -08:00
Amin Shaikh
ac05acad45 Merge "Add additional fields to RecommendationRequest."
am: b8f0e69ef0

Change-Id: I9a50c8aca36cf740abbc62af6879b4e6ea736855
2017-01-20 23:18:02 +00:00
Treehugger Robot
b8f0e69ef0 Merge "Add additional fields to RecommendationRequest." 2017-01-20 23:04:55 +00:00
Jeff Sharkey
c3fbf32011 Merge "Add Binder support for Parcelable exceptions."
am: a2ef6b5741

Change-Id: Ide766c0220e86b7661af83551354b3a498297ed8
2017-01-20 22:50:49 +00:00
Jeff Sharkey
a2ef6b5741 Merge "Add Binder support for Parcelable exceptions." 2017-01-20 22:45:04 +00:00
Amin Shaikh
b50ade8bb0 Add additional fields to RecommendationRequest.
- Add networkId and timestamp for the last user selected network

Bug: 34467596
Test: runtest --path core/tests/coretests/src/android/net/RecommendationRequestTest.java
Change-Id: Ic81c1beede1a643cd428b6e5c57ed430a6b1ccc0
Merged-In: Ic81c1beede1a643cd428b6e5c57ed430a6b1ccc0
2017-01-20 09:37:59 -08:00
Jeremy Joslin
ddfbe07e96 Merge "Pass more data through the recommendation request."
am: 00514f1dc0

Change-Id: I97e11e876bcb7ccdb55a333b31f9970ae5edd001
2017-01-20 01:52:38 +00:00
Jeremy Joslin
122957b0b0 Pass more data through the recommendation request.
Expanding the API so it can accept the WiFi config of the currently
connected network (if any) and the set of connectable WiFi
configurations. Also renamed currentRecommendedWifiConfig to
defaultWifiConfig so the name was more representative of the
parameter's purpose and added more documentation throughout.

Test: adb shell am instrument -e class android.net.RecommendationRequestTest -w com.android.frameworks.coretests/android.support.test.runner.AndroidJUnitRunner
Test: adb shell am instrument -w com.android.networkrecommendation.tests/android.support.test.runner.AndroidJUnitRunner
Test: runtest frameworks-services -c com.android.server.NetworkScoreServiceTest
Bug: 34387385
Change-Id: Ib8c3cab8f92b5c9da806070d32412f688690f82f
Merged-In: I1089b70303b0396def7e6bf3737fdc67e40c9dcd
2017-01-19 16:14:21 -08:00
Jeremy Joslin
887ee2c32a Merge "Have requestRecommendation return a CompletableFuture."
am: f48d0bb2dc

Change-Id: I409c6c46144cbbfc147df7c3d3e251bd6b5fbe62
2017-01-19 23:37:46 +00:00
Jeremy Joslin
820ad03ba8 New setting for recommendation request timeout.
am: 44e2b84b27

Change-Id: I8fd6e0c75d22d0f83db414a389c4d8caaf745469
2017-01-19 23:05:02 +00:00
Jeremy Joslin
c9d378e212 Async network recommendation requests.
am: cb925074d3

Change-Id: I9e3ac1f778d6e9bfe817225423f80540230633e3
2017-01-19 23:03:06 +00:00
Jeremy Joslin
88f50a5a08 Have requestRecommendation return a CompletableFuture.
Reworked the new requestRecommendation call to return a
CompletableFuture instead of using a custom callback.

Test: runtest frameworks-services -c com.android.server.NetworkScoreServiceTest
Bug: 33784158
Change-Id: Ib12f0674d45ad6e2e21449bc3665467b3c20f49d
Merged-In: If24a94eb6289cb1952052b2cc3bc7856ce2192a5
2017-01-19 13:31:16 -08:00
Jeremy Joslin
44e2b84b27 New setting for recommendation request timeout.
Added a new global setting, NETWORK_RECOMMENDATION_REQUEST_TIMEOUT_MS,
to control the maximum amount of time a recommendation request can
take.

Updated the NetworkScoreService to monitor the value and to update
its cached copy on observed changes.

Test: runtest frameworks-services -c com.android.server.NetworkScoreServiceTest
Bug: 34060959
Change-Id: I6ff80178440794e4a5da39ee7b5164621316e7bd
Merged-In: I7650ee024e53dbc856cf20d7520a6eb252c73bdf
2017-01-19 13:18:22 -08:00
Jeremy Joslin
cb925074d3 Async network recommendation requests.
Exposing a new hidden API method that allows network recommendations
to be requested asynchronously.

Test: Built & run.
BUG:33784158
Change-Id: I8d210b686138cb42bf69185f0b2f2d25dfcb9dd1
Merged-In: I8f84b09f43a6c5fae5d8f03ec01e75c25b4b62d6
2017-01-19 13:18:21 -08:00
Polina Bondarenko
d5cfe6cdf1 Make TelephonyManager#get/setAllowedCarriers system api
Make TelephonyManager#get/setAllowedCarriers system api under
PackageManager#FEATURE_TELEPHONY_CARRIERLOCK feature flag.

Bug: 33480084
Test: cts

Merged-In: I1ce77a9e3801bd4003b52887d0a36866e5a5b81a

Change-Id: I1ce77a9e3801bd4003b52887d0a36866e5a5b81a
2017-01-19 16:43:29 +01:00
Tao Bao
731445ebf7 Merge "Revert "RecoverySystem: Fix the issue in installPackage().""
am: 9311dbf9e4

Change-Id: Ife949ce113387e2834f25c49d41adf4eec44bba2
2017-01-19 01:55:47 +00:00
Tao Bao
9311dbf9e4 Merge "Revert "RecoverySystem: Fix the issue in installPackage()."" 2017-01-19 01:47:10 +00:00
Tao Bao
cc76991f37 Revert "RecoverySystem: Fix the issue in installPackage()."
This reverts commit 9f7a0acd2d.

Bug: 34350643
Bug: 34396955
Test: installPackage() doesn't cause deadlock if it doesn't call
      processPackage() prior to that.
Change-Id: I1da055c86a3326ae341da1b4d5dc79ab4be256fb
2017-01-19 01:31:57 +00:00
Peng Xu
8cddb920b5 Merge "TYPE_DYNAMIC_SENSOR_META should be wake up sensor"
am: cec2ebf676

Change-Id: I1f66dba79c07315ca07edf65ff4e7f1135083d6e
2017-01-19 01:17:42 +00:00
Peng Xu
cec2ebf676 Merge "TYPE_DYNAMIC_SENSOR_META should be wake up sensor" 2017-01-19 01:11:49 +00:00
Jeff Sharkey
e628b7d446 Add Binder support for Parcelable exceptions.
If an Exception thrown by a Binder call implements the Parcelable
interface, then parcel it and rethrow back at the caller.  There is
strict requirement that these Parcelable exceptions must be defined
by the system (as determined by checking the ClassLoader).  We prefix
the Parcelable contents with a length so that native code can skip
over the blobs.

Define a new ParcelableException class that can be used to transport
exceptions that cannot be modified to add Parcelable behavior, and
switch ExceptionUtils to use this new class for sending IOExceptions.

Test: builds, boots, wrapped exceptions work
Bug: 33749182
Change-Id: I1352ea1566ddf01120d9d0e819ba6f70fc407e11
2017-01-17 14:22:07 -07:00
Lorenzo Colitti
d305a7c894 Merge "Delete dead code."
am: cf59ff79c5

Change-Id: Ifbb591a7bbed9c2a8f83fe321c3d12f08e096fe3
2017-01-17 05:55:50 +00:00
Treehugger Robot
cf59ff79c5 Merge "Delete dead code." 2017-01-17 05:44:58 +00:00
Tao Bao
6bb3a9e6df Merge "RecoverySystem: Fix the issue in installPackage()."
am: 3b2fe9f7b9

Change-Id: I2ac84a2204b78e422d33095a3637e379031eec04
2017-01-16 18:27:39 +00:00
Tao Bao
3b2fe9f7b9 Merge "RecoverySystem: Fix the issue in installPackage()." 2017-01-16 18:19:25 +00:00
Martijn Coenen
b529858c0b Merge "Add nullable parameter to readEmbeddedBuffer."
am: c5e5442acd

Change-Id: Ic5d73aba5da7bd74522a46d710465ebb67030d01
2017-01-16 14:56:57 +00:00
Tao Bao
9f7a0acd2d RecoverySystem: Fix the issue in installPackage().
Commit 794c8b0b3f fixed the race condition
when requesting data wipes via uncrypt. We have similar issue with
RecoverySystem.installPackage(). It first requests to set up the BCB,
then triggers a reboot. These two steps should finish atomically.

This CL switches to calling
RecoverySystemService.rebootRecoveryWithCommand(), which guards the two
steps with synchronized blocks.

Bug: 34239871
Test: Having two apps: one calls RecoverySystem.cancelScheduledUpdate()
      continuously, and the other calls RecoverySystem.installPackage()
      just once. The install request should not be cancelled by the
      other.

Change-Id: I5ec56fcaa70eae7c33e3cc8e6cfc7472b935ce4e
2017-01-13 09:59:38 -08:00
Martijn Coenen
14fae06b60 Add nullable parameter to readEmbeddedBuffer.
To support reading embedded buffers that can be
nullptr (currently only in empty hidl_vec).

Bug: 34255213
Test: hidl_test_java
Change-Id: I72028f580b7863b6bfeb31a5c0f43deed36dfd64
2017-01-13 14:17:12 +01:00
Etan Cohen
2a4e3bef2c Merge "[AWARE] Unhide Wi-Fi Aware API (baseline)"
am: dfe8f5dc13

Change-Id: I581b72ce62966f4c04427603a2b9686dcf46cc42
2017-01-11 23:12:16 +00:00