Commit graph android_packages_modules_Co.../services/core/java
Message SHA1
Merge changes from topic 'network_specifier' am: 46aebde379 am: 362bef45d1
am: cfd729093f

Change-Id: I7535495681da8f168c46d6d95e13925cffecc99b

Lorenzo Colitti   authored and   android-build-merger   commited 2017-04-12 22:58:42 +00:00
10614d8786
Merge changes from topic 'network_specifier'
* changes:
  [CM] Unhide the NetworkSpecifier as object API
  Make the NetworkSpecifier a class instead of a string.

Lorenzo Colitti   authored and   Gerrit Code Review   commited 2017-04-12 22:27:37 +00:00
46aebde379
Merge "Add an API hint for metered multipath traffic."
Treehugger Robot   authored and   Gerrit Code Review   commited 2017-04-10 05:40:10 +00:00
fb3f834fe4
Merge "ConnectivityService: safer locking"
Hugo Benichi   authored and   Gerrit Code Review   commited 2017-04-07 02:10:45 +00:00
cc1f0815ef
Merge "ConnectivityService: safer locking" into oc-dev
am: 6120db5990

Change-Id: I1c22edc7a247d83d860e7016fe7edab1537c5bb7

Sudheer Shanka   authored and   android-build-merger   commited 2017-04-06 20:07:00 +00:00
89fb28dc5d
ConnectivityService: safer locking
This path changes a dangerous lock path in reportNetworkConnectivity().
This methods is called outside of the main ConnectivityService handler
and takes a lock on a specific NetworkAgentInfo whose connectivity
status is being reported.

While this lock is held, reportNetworkConnectivity() goes on and query
the network policy state for that network, which may ends into
NetworkPolicyManagerService.

Instead, the lock on NetworkAgentInfo is only held long enough to make a
copy of LinkProperties, which is then passed to
NetworkPolicyManagerService without that lock.

Bug: 36902662
Test: could not repro b/36902662, reportNetworkConnectivity() works.
      $ runtest frameworks-net

Change-Id: Iac4b75bcecbdddb0ac695c8b1a87ae755f62f47f

Hugo Benichi   authored and   Sudheer Shanka   commited 2017-04-06 11:50:09 -07:00
e9a35d868a
ConnectivityService: safer locking
This path changes a dangerous lock path in reportNetworkConnectivity().
This methods is called outside of the main ConnectivityService handler
and takes a lock on a specific NetworkAgentInfo whose connectivity
status is being reported.

While this lock is held, reportNetworkConnectivity() goes on and query
the network policy state for that network, which may ends into
NetworkPolicyManagerService.

Instead, the lock on NetworkAgentInfo is only held long enough to make a
copy of LinkProperties, which is then passed to
NetworkPolicyManagerService without that lock.

Bug: 36902662
Test: could not repro b/36902662, reportNetworkConnectivity() works.
      $ runtest frameworks-net

Change-Id: Iac4b75bcecbdddb0ac695c8b1a87ae755f62f47f

Hugo Benichi   commited 2017-04-06 17:23:28 +09:00
ccdfe89c2f
Add an API hint for metered multipath traffic.
This allows an application that knows how to provide seamless
network connectivity (e.g., using QUIC multipath) to find out if
doing so is desired.

(cherry picked from commit 231efb08b7)

Test: builds, boots, runtest frameworks-net passes.
Bug: 34630278
Change-Id: Ic7fd0b9e1cd879fdfaf84009d7125391895e9087

Lorenzo Colitti   commited 2017-04-06 16:50:06 +09:00
d03b80891d
Make the NetworkSpecifier a class instead of a string.
Bug: 27533960
Bug: 36053921
Bug: 36275276
Test: connectivity, wifi, telephony unit tests
Change-Id: Idd9b10a8418c53c8cf386d9ff8252226b076bbf9

Etan Cohen   commited 2017-04-05 14:18:20 -07:00
db38d9da96
Merge "Move back networking policy logic into NetworkPolicyManagerService" into oc-dev
am: 18c5fab9c8

Change-Id: I7d7b66cc1dc6888ea28e2b4d83d570fa440c29f2

Hugo Benichi   authored and   android-build-merger   commited 2017-04-04 00:58:02 +00:00
32a25bae8f
Merge "Move back networking policy logic into NetworkPolicyManagerService" into oc-dev
Hugo Benichi   authored and   Android (Google) Code Review   commited 2017-04-04 00:50:24 +00:00
18c5fab9c8
Merge "ConnectivityService: simplify WakeLock management" am: 82d6ba7331 am: 36113ed38c
am: 56ca1705d6

Change-Id: Iacc2e977c1eec2ebc9deb9395e1f77a62b57f070

Hugo Benichi   authored and   android-build-merger   commited 2017-04-03 09:17:18 +00:00
21f3caf409
Merge "ConnectivityService: simplify WakeLock management"
am: 82d6ba7331

Change-Id: I1e0ae930cd7a329febf21ff3fc83ad2d0a3be69b

Hugo Benichi   authored and   android-build-merger   commited 2017-04-03 09:03:13 +00:00
36113ed38c
Merge "ConnectivityService: simplify WakeLock management"
Hugo Benichi   authored and   Gerrit Code Review   commited 2017-04-03 08:56:24 +00:00
82d6ba7331
Consistent dump() permission checking.
am: 5815e5b538

Change-Id: I300f8bc07e1266b9e78f56d085cd458862176a85

Jeff Sharkey   authored and   android-build-merger   commited 2017-04-03 06:19:02 +00:00
ed1dff0016
Consistent dump() permission checking.
This change introduces new methods on DumpUtils that can check if the
caller has DUMP and/or PACKAGE_USAGE_STATS access.  It then moves all
existing dump() methods to use these checks so that we emit
consistent error messages.

Test: cts-tradefed run commandAndExit cts-dev -m CtsSecurityTestCases -t android.security.cts.ServicePermissionsTest
Bug: 32806790
Change-Id: Iaff6b9506818ee082b1e169c89ebe1001b3bfeca

Jeff Sharkey   commited 2017-04-02 22:29:07 -06:00
5815e5b538
Merge "ConnectivityService: log wakelock activity in dumps" am: 2dbfd3fe41 am: 7b0e9d0263
am: bf1b181c63

Change-Id: Id4c980a2a1ef7f51b6a06c7c8636160437e99b84

Hugo Benichi   authored and   android-build-merger   commited 2017-04-03 00:00:19 +00:00
27e6058e54
ConnectivityService: simplify WakeLock management
This patch simplifies wakelock management by acknowledging that only one
acquisition at most is in flight at any time. This allows to remove the
serial number associated with wakelock acquisition and to avoid double
release when regaining a default network.

Example of $ adb shell dumpsys connectivity logs:
  NetTransition WakeLock activity (most recent first):
    03-31 00:15:13.816 - RELEASE (EVENT_CLEAR_NET_TRANSITION_WAKELOCK)
    03-31 00:14:59.216 - ACQUIRE for NetworkAgentInfo [WIFI () - 101]
    03-31 00:09:05.799 - RELEASE (EVENT_EXPIRE_NET_TRANSITION_WAKELOCK)
    03-31 00:08:05.738 - ACQUIRE for NetworkAgentInfo [WIFI () - 100]

Test: watched wakelock section $ adb shell dumpsys connectivity while
      turning on and off Wifi (with no other network).
Bug: 36703718
Change-Id: I899b0816c0e41b3991d9540e9b9a604914ff673a

Hugo Benichi   commited 2017-04-03 08:54:54 +09:00
58aab55bdf
Merge "ConnectivityService: log wakelock activity in dumps"
am: 2dbfd3fe41

Change-Id: If08e0088ab25f1494aaf3a339a38e7a8e343d910

Hugo Benichi   authored and   android-build-merger   commited 2017-04-02 23:47:15 +00:00
7b0e9d0263
Merge "ConnectivityService: log wakelock activity in dumps"
Hugo Benichi   authored and   Gerrit Code Review   commited 2017-04-02 23:40:27 +00:00
2dbfd3fe41
Merge "move network notification IDs to central registry" into oc-dev
am: fb54aee325

Change-Id: I0abcea4b9fe43e5c08885413e0f9a419b87b7206

Chris Wren   authored and   android-build-merger   commited 2017-04-01 16:23:25 +00:00
24b85a07e9
move network notification IDs to central registry
Bug: 36808999
Test: make
Change-Id: I34bafa9ce69fc6913a6b4a5935cafd8979d0193b

Chris Wren   commited 2017-03-31 14:02:23 -04:00
b56dc53847
Move back networking policy logic into NetworkPolicyManagerService
This patch removes from ConnectivityService the logic involved in
deciding if a uid has access to networking based on networking policies.

This logic is moved into NetworkPolicyManagerService which is the source
of truth with regards to the state of networking policie, both for
existing networks and uids.

Instead ConnectivityService directly queries NetworkPolicyManagerService
in a synchronous fashion for a specific uid or a (uid, network) pair.

This eliminates the need to keep a copy of the uid policy rules inside
ConnectivityService and ensures that ConnectivityService takes
networking decisions based on the correct state of networking policies,
and therefore eliminates certain data races in ConnectivityManager API
that applications are exposed to.

Test: $ runtest frameworks-net
      $ runtest -x frameworks/base/services/tests/../NetworkPolicyManagerServiceTest.java
      $ runtest -c com.android.server.net.ConnOnActivityStartTest frameworks-services
Bug: 32069544, 30919851
Change-Id: Ic75d4f7a8853e6be20e51262c4b59805ec35093a

Hugo Benichi   commited 2017-03-31 13:28:45 +09:00
0a28d30e93
ConnectivityService: log wakelock activity in dumps
This patch adds wakelock acquire and release activity to
ConnectivityService logs in dumpsys. All of the last 20 acquire and
release operations are logged.

This patch also:
  - does a bit of cleanup to related dumpsys logs
  - unify pretty printing of internal event ids to their names.
  - delete mInetLog which was obsolete and not used.

Example of logs:
  NetTransition WakeLock activity (most recent first):
    03-30 02:15:40.628 - RELEASE 1 by EVENT_EXPIRE_NET_TRANSITION_WAKELOCK: not released (serial number was 2)
    03-30 02:15:09.965 - ACQUIRE 2 for NetworkAgentInfo [WIFI () - 101]
    03-30 02:15:01.877 - RELEASE 1 by EVENT_CLEAR_NET_TRANSITION_WAKELOCK: released
    03-30 02:14:40.598 - ACQUIRE 1 for NetworkAgentInfo [WIFI () - 100]

Test: inspected result of $ adb shell dumpsys connectivity
Bug: 36703718
Change-Id: Ia8e2016fc512ee798ef0adc3f612d1f6c33d4870

Hugo Benichi   commited 2017-03-31 08:59:59 +09:00
23ec1c9338
resolve merge conflicts of 943187668c44 to oc-dev-plus-aosp
Test: make -j30
Test: runtest -x tests/net/java/com/android/server/ConnectivityServiceTest.java
Test: runtest -x tests/net/java/com/android/server/connectivity/VpnTest.java
Change-Id: Ib87cdb96626cd7625e15bec5e4afab12920405e9

Robin Lee   commited 2017-03-30 17:39:56 +01:00
a2e8ad5dbb
Merge "Move some VPN logic out of ConnectivityService"
am: 0ce38796bd

Change-Id: I212c2d6de1676ab65e6bbf34148d66e183d60c62

Robin Lee   authored and   android-build-merger   commited 2017-03-30 16:08:50 +00:00
017e2bf3f8
Merge "Move some VPN logic out of ConnectivityService"
Robin Lee   authored and   Gerrit Code Review   commited 2017-03-30 16:00:41 +00:00
0ce38796bd
resolve merge conflicts of 6c3cd4449517 to oc-dev-plus-aosp
Test: make -j64 framework services FrameworksNetTests
Change-Id: Ib828e56b271cd983ef325e366418ca8db9774628

Lorenzo Colitti   commited 2017-03-28 23:49:11 +09:00
725386186f
Merge changes If94102c7,I8d51e8e0
am: 22b829c049

Change-Id: I8aa529a05fc40241ec9664775ca0ebd8960098a8

Lorenzo Colitti   authored and   android-build-merger   commited 2017-03-28 12:33:28 +00:00
73d1aa0bdd
Make ConnectivityServiceTest pass on wifi-only devices.
Test: ConnectivityServiceTest passes on ryu on internal master
Test: ConnectivityServiceTest passes on bullhead
Change-Id: If94102c7df0257ea9e69e72b07a685ae3c2c4022

Lorenzo Colitti   commited 2017-03-28 12:53:06 +09:00
756a02232b
Restore the net.dnsX system properties.
In order to avoid app breakage, we are putting back the system
properties and using selinux to disallow access from apps
targeting the O SDK or above.

This CL is cherry-picked from internal commit
aefac392ea, but with a different
commit description.

Bug: 33308258
Bug: 33807046
Bug: 34028616
Bug: 34115651
Test: system properties are readable as root and shell
Change-Id: I8d51e8e0a620d581c4251fb2f3c1d0a813b929be

Lorenzo Colitti   commited 2017-03-28 06:55:01 +09:00
e7f4a225b4
Move some VPN logic out of ConnectivityService
This cleanup helps declutter ConnectivityService, and encapsulates the
always-on setting inside of Vpn instead of spreading it across two
classes.

In particular having the save code in one file and the load code in
another file was weird and I apologise for that.

Added a SystemServices wrapper for Settings.Secure and PendingIntent
calls to decouple some of the global state nastiness and make it
testable without forcing ConnectivityService to drive the load/save.

Test: runtest -x tests/net/java/com/android/server/ConnectivityServiceTest.java
Test: runtest -x tests/net/java/com/android/server/connectivity/VpnTest.java
Bug: 33159037
Change-Id: Ie2adb1c377adfcef0a5900dc866e6118f451b265

Robin Lee   commited 2017-03-27 13:40:51 +01:00
fe0bb6b248
Merge "In isTetheringSupported, call isAdmin user from system." am: 4a8953094f am: cbb748ead3
am: 0b8756e735

Change-Id: I76d02e97382c0332e3d93383d60e8e7fc9951a08

Jeremy Klein   authored and   android-build-merger   commited 2017-03-21 00:10:46 +00:00
946349711d
Merge "In isTetheringSupported, call isAdmin user from system."
am: 4a8953094f

Change-Id: Ibefe655ed377c55322d871e02d87c0d001327da8

Jeremy Klein   authored and   android-build-merger   commited 2017-03-20 23:58:09 +00:00
cbb748ead3
In isTetheringSupported, call isAdmin user from system.
This avoids requiring the MANAGE_USERS permission in this function.

Bug: 32671528
Test: Manual. Also seeking unit test guidance from reviewer.
Change-Id: I841e721013b0e4b6db34d629a1e97b3cd54cd73b

Jeremy Klein   commited 2017-03-20 15:02:30 -07:00
a380d3f60b
Merge "Simple cleanups to Tethering" am: 7eaa2ad172 am: a24e00242d
am: bc559bad9d

Change-Id: I393817fac7402d51fbd8dfd1fda20d16b398de17

Hugo Benichi   authored and   android-build-merger   commited 2017-03-13 00:23:32 +00:00
269acc4c51
Merge "Simple cleanups to Tethering"
am: 7eaa2ad172

Change-Id: I3bb7e4756eaa0b7e702ff7270beb7420b7b6aac5

Hugo Benichi   authored and   android-build-merger   commited 2017-03-13 00:14:55 +00:00
a24e00242d
Simple cleanups to Tethering
- regroup together static final class fields, final instance fields, and
  mutable instance fields.
- uses correct Android naming conventions for instance fields.
- reorder imports correctly.

Test: no functional change.
Change-Id: If3d73bc28972a004c2ba3cc14d869a2a679abfce

Hugo Benichi   commited 2017-03-10 15:32:30 +09:00
c0b3f6eaeb
Merge "request{LinkProperties,NetworkCapabilities} no longer needed" am: 6a589b03e6 am: 14025c741e
am: bb54baba04

Change-Id: Id2aa8aeff6d299edb85955c12ab0a04023458597

Erik Kline   authored and   android-build-merger   commited 2017-03-07 13:42:11 +00:00
b55e2f55cf
Merge "request{LinkProperties,NetworkCapabilities} no longer needed"
am: 6a589b03e6

Change-Id: I79b9323be242ed5d2bf83962f78c613a465a20b8

Erik Kline   authored and   android-build-merger   commited 2017-03-07 13:33:29 +00:00
14025c741e
request{LinkProperties,NetworkCapabilities} no longer needed
Test: as follows
    - built (bullhead)
    - flashed
    - booted
    - runtest frameworks-net passes
    - manual USB tethering toggling between WiFi and mobile
Bug: 32163131
Change-Id: I57edf5114b6361f320577c7870e40f8b3cdf74ce

Erik Kline   commited 2017-03-07 17:18:06 +09:00
0a59189b8d
Merge "Always send all available state when calling onAvailable()." am: 1a4d506305 am: 8beee2f864
am: 3765538bab

Change-Id: Ic82e3cb92841ea99972faad6ae004d77c725831b

Erik Kline   authored and   android-build-merger   commited 2017-03-07 06:08:40 +00:00
521b2892b6
Merge "Always send all available state when calling onAvailable()."
am: 1a4d506305

Change-Id: I81e70fecf060a4103b51084a60a32c78f6219f6b

Erik Kline   authored and   android-build-merger   commited 2017-03-07 06:00:09 +00:00
8beee2f864
Always send all available state when calling onAvailable().
The state that needs to be transferred includes:
    - NetworkCapabilities
    - LinkProperties
    - whether the network is currently suspended

Additionally:
    - Rename notifyNetworkCallback() to notifyNetworkAvailable()
      in order to clarify its real function.
    - fix previous copy/paste error in unittest

Test: as follows
    - built (bullhead)
    - flashed
    - booted
    - runtest frameworks-net passes
    - USB tethering with mobile and Wi-Fi upstream toggling
Bug: 32163131
Change-Id: Ib4460bcd5d08863a9feac9e8ab41a238897bb3ea

Erik Kline   commited 2017-03-07 12:57:26 +09:00
81fdc8a3d6
Channels for Frameworks notifications
Adapts all notifications used by system services to use channels.
Channels are initialized by SystemServer after the NotificationService
has started.

Test: runtest systemui-notification
Change-Id: I25c45293b786adb57787aeab4c2613c9d7c89dab

Geoffrey Pitsch   commited 2017-03-01 10:17:15 -05:00
482e99a6c7
Merge "Reinstate USER_PRESENT for ConnectivityService" am: e6aea7d299 am: ebb56ce1fb
am: 4d00a13c35

Change-Id: Id22859b30b848418cbc1bcf46c74ebd2aa88cd06

Robin Lee   authored and   android-build-merger   commited 2017-02-21 18:13:12 +00:00
4180aed562
Merge "Reinstate USER_PRESENT for ConnectivityService"
am: e6aea7d299

Change-Id: If8b7239cdabdd79d9ea24baf99e95c6ec1a9acf3

Robin Lee   authored and   android-build-merger   commited 2017-02-21 17:55:07 +00:00
ebb56ce1fb
Merge "Reinstate USER_PRESENT for ConnectivityService"
Treehugger Robot   authored and   Gerrit Code Review   commited 2017-02-21 13:23:41 +00:00
e6aea7d299
Merge "Infinite reboot when OS upgrade from M to N with set Always-on VPN" am: 35af406240 am: 19aa93e742 am: 52944ac4d1
am: 53bd9233a9

Change-Id: Ib7e586a778c6fb9b920f0790e4b343c122250bb7

sj.cha   authored and   android-build-merger   commited 2017-02-17 13:32:07 +00:00
b679d1a507
Merge "Infinite reboot when OS upgrade from M to N with set Always-on VPN" am: 35af406240 am: 19aa93e742
am: 52944ac4d1

Change-Id: I5e0faee7a0b1c6bdfafe77560a91e999f40edc4a

sj.cha   authored and   android-build-merger   commited 2017-02-17 13:27:04 +00:00
53bd9233a9