Commit graph android_packages_modules_Co.../services/core/java
Message SHA1
Make tetherChangePermission to be secured for AppOps permission
Symptom:
AppOps verified the incorrect package of calling tether state
changing API.
It threw SecurityException by mistake.

Solution:
Pass the correct package name to enforceTetherChangePermission.

Bug: 32931147
Change-Id: Ia1167f26f556678b189a24a4a716f1a7e5cb12eb

Tetsutoki Shiozawa   authored and   Shunta Sato   commited 2017-04-19 16:50:33 +09:00
be4d90f2c3
Ignore potential SystemProperties errors when setting net.dns
Test: as follows
    - built
    - flashed
    - booted
    - "runtest frameworks-net" passes
Bug: 33308258
Bug: 36249702

Change-Id: I76ae853ceb61b7b900f36f9c3cd67b2d2284aab0

Erik Kline   commited 2017-04-13 13:16:22 +09:00
bd18f303c1
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
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 "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
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
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
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
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

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

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

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

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
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

Change-Id: I5e0faee7a0b1c6bdfafe77560a91e999f40edc4a

sj.cha   authored and   android-build-merger   commited 2017-02-17 13:27:04 +00:00
53bd9233a9
Merge "Infinite reboot when OS upgrade from M to N with set Always-on VPN"
am: 35af406240

Change-Id: I21a69eb02b13b20f66996836d54b8aadadfa80ec

sj.cha   authored and   android-build-merger   commited 2017-02-17 13:17:00 +00:00
19aa93e742
Merge "Infinite reboot when OS upgrade from M to N with set Always-on VPN"
Treehugger Robot   authored and   Gerrit Code Review   commited 2017-02-17 13:07:21 +00:00
35af406240
Merge changes from topic 'cm_request_to' am: b43c096875 am: e88ad9f57d
am: 03c83775a3

Change-Id: Ief32189b0f6f2c70d7e4097f70dbdf8195bd8713

Etan Cohen   authored and   android-build-merger   commited 2017-02-16 14:38:28 +00:00
0b4f6b95ed
Merge changes from topic 'cm_request_to'
am: b43c096875

Change-Id: I9ca18c0570be831ab37cdf200c28b0778117198d

Etan Cohen   authored and   android-build-merger   commited 2017-02-16 14:23:18 +00:00
e88ad9f57d
[CM] Remove maximum timeout value for request network
The request network with timeout was originally created with a
check of max timeout against a constant of 100 minutes. However,
the API was not public and did not implement a timeout. Any users
were internal and never got any onUnavailable() callback (since
timeout never triggered).

There is no reason to have a max timeout so the constant is
remove.

Bug: 31399536
Test: unit tests and CTS of ConnectivityManager
Change-Id: Icbedfb4299d75b6a7e3e43720111531f1faafd06

Etan Cohen   commited 2017-02-16 14:15:16 +00:00
3985c17be5
Rename AvoidBadWifiTracker to MultinetworkPolicyTracker am: b8dfec4b88 am: a566163a38
am: 3cdc4f95e0

Change-Id: I91f1338f3488cfc60eef0c2147aa7b1d61107cdd

Lorenzo Colitti   authored and   android-build-merger   commited 2017-02-01 02:59:42 +00:00
1afd50b7b8
Rename AvoidBadWifiTracker to MultinetworkPolicyTracker
am: b8dfec4b88

Change-Id: I7615c9128deed7011eb9ab6f2efdcfe2e237a1a5

Lorenzo Colitti   authored and   android-build-merger   commited 2017-02-01 02:37:31 +00:00
a566163a38
Rename AvoidBadWifiTracker to MultinetworkPolicyTracker
Rename the class and ensure that all code related to bad wifi
avoidance has names that reflect its purpose.  This will allow us
to reuse most of the the code for other purposes in future CLs.

Test: runtest frameworks-net passes
Bug: 34630278
Change-Id: Ida190e5a79e7a12f4eec07e1a3e4d9d138e83bcd

Lorenzo Colitti   commited 2017-01-31 15:42:57 +09:00
b8dfec4b88
Reinstate USER_PRESENT for ConnectivityService
Reverts half of commit 224743c6b7
Reverts parts of commit 4908ef3e42

Lockdown VPN still needs this to start properly on devices without FBE,
such as phones upgraded from M. Without listening to USER_PRESENT the
first unlock of keystore may get missed, since USER_UNLOCKED is sent too
soon to be useful.

Bug: 34587043
Change-Id: If7a2f5a3173b0f6856244a5f7904bf00c9a5b5e7

Robin Lee   commited 2017-01-30 09:19:46 +00:00
2c61d9ebf1
Merge "ConnectivityServiceTest: remove flaky waitForIdle test." am: be80577f5b am: 100dd57c82
am: d635e56751

Change-Id: I1d3707b4bc2ae00ca0fad1c3ec7e6ca859fcdd16

Lorenzo Colitti   authored and   android-build-merger   commited 2017-01-27 09:55:36 +00:00
5ba5fd6ee6
Merge "ConnectivityServiceTest: remove flaky waitForIdle test."
am: be80577f5b

Change-Id: I444746af6adc7be4a3f69243379f65aadf29ea19

Lorenzo Colitti   authored and   android-build-merger   commited 2017-01-27 09:47:05 +00:00
100dd57c82
Captive portal systel log improvements
This patch improves system logging around captive portal detection to
make inspection of bug reports sligthly easier:

- NetworkMonitor now logs by default CMD_CAPTIVE_PORTAL_RECHECK and
  CMD_CAPTIVE_PORTAL_APP_FINISHED. Other system logs are kept off with
  a new VDBG boolean contant,
- NetworkNotificationManager now prints the notification id at
  notification time. This allows to easily correlate show and clear.
- errors in NetworkNotificationManager are logged as Throwable instead
  of through their implicit toString() method.

Test: $ runtest frameworks-net
Bug: 32198726

(cherry picked from commit 6fe7d3cdb3)

Change-Id: I1eaab5ea702063dde3e23324d3a1b3dc172c5ac5

Hugo Benichi   authored and   Lorenzo Colitti   commited 2017-01-26 18:52:55 +09:00
6d8a58f1cd
[CS] Remove timeout event after first available
Guarantees that timeouts are only delivered if a network never
becomes available. Once a network is available the timeout is
canceled.

Bug: 31402633
Test: all timeout related unit tests pass (new one added)

(cherry picked from commit 88087226a6)

Change-Id: I7cd3086544c881915fc6dbf14b87a24ab0cd8748

Etan Cohen   authored and   Lorenzo Colitti   commited 2017-01-26 18:51:15 +09:00
b6ae65fe6b
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 3fd101e574)

Change-Id: I90c0f97fe0e41de4059bceae7b56ab3a70145696

Calvin On   authored and   Lorenzo Colitti   commited 2017-01-26 18:50:42 +09:00
74d07eb5f3
Support timeouts for requestNetwork() invocations.
(cherry-pick of 8616c69985)
(cherry picked from commit 66721821df)

Bug: 21414325
Change-Id: I1a58823a372154589f972b98c4c428eab0e0523e

Erik Kline   authored and   Lorenzo Colitti   commited 2017-01-26 18:50:23 +09:00
61a7b73d7b
Silence the obnoxious MTU 0 error message that occur when no MTU is
specified for a given network.

Bug: 10705136

(cherry picked from commit 98f9c2c23b)

Change-Id: I89e2fdfbbfa981d435a2974422d9d9c009872d76

Pierre Imai   authored and   Lorenzo Colitti   commited 2017-01-26 18:50:18 +09:00
6783e38e36
ConnectivityServiceTest: remove flaky waitForIdle test.
This patch removes testNotWaitingForIdleCausesRaceConditions() from
ConnectivityServiceTest because it is in nature flaky and prevents using
ConnectivityServiceTest as a patch presubmit check. Estimated failure
rate is 1/15 on Nexus 6p.

This patch also simplifies how ConnectivityServiceTest waits for
handlers to become idle by removing IdleableHandlerThread and turning it
into a signle static method.

Test: $ runtest frameworks-net
Bug: 31479480
Change-Id: I2d78709cbb61d5d01cd59cff326469417f73f1ab

Hugo Benichi   commited 2017-01-24 15:22:48 +09:00
56db715395
Merge "Disable always-on VPN in factoryReset" am: 5765604627 am: 7960c6b8b5
am: 495418cd9c

Change-Id: I99207281321861a3e720b5c1e2e316e12b104677

Robin Lee   authored and   android-build-merger   commited 2017-01-23 17:01:31 +00:00
d1b8497454
Merge "Disable always-on VPN in factoryReset" am: 5765604627
am: 7960c6b8b5

Change-Id: I66b6721932ae8798cbb406cafa04ed0c92fe47f6

Robin Lee   authored and   android-build-merger   commited 2017-01-23 16:54:59 +00:00
495418cd9c