* changes:
Give WakeupMessage the ability to transport an object as well.
Don't treat the lingerExpired broadcast specially.
Add a test for mobile data always on.
Add a FakeSettingsProvider and use it in ConnectivityServiceTest.
NetworkMonitor no longer uses the broadcast for lingering, it
uses WakeupMessage instead.
Bug: 23113288
Change-Id: Idb0c55fc68cb8f45b3213c7134213904f227852e
This class makes it easier to test code that uses Settings:
1. Real device or emulator settings don't affect the code under
test; all settings always start off empty.
2. It's possible to change settings from the test without
affecting system settings.
3. No changes are needed to the code under test. The changes to
the tests are simple: just add a fake ContentResolver to
whatever mock Context is already used by the test, and make
that ContentResolver use the fake provider.
Bug: 23113288
Change-Id: I5e7e5a87571444ae49ccf551705620675a36cd17
Fix 2 problems of always-on vpn after always-on package is removed
1. Prevent network being locked down (blocking all network traffic)
Otherwise, user has no way to download the vpn app from Play Store,
and never be able to gain control of the network again.
2. Allow user to connect other vpn app.
Implementation
1. Switch off always-on mode if the package gets removed.
2. Restart always-on mode if the package gets replaced/upgraded.
Bug: 29050764
Change-Id: Id3e389ae0b11c6002a5167919292d9634c2014cb
am: 0dc8a9b393
* commit '0dc8a9b39341702f033c9e49689a9a5ce34afcdd':
Include network name in validation logs for dumpsys
Change-Id: If8d42bb7a355d1134ea24e4ad02acca1cd52e70c
am: 1209aef1ad
* commit '1209aef1ad2069d9dbfd80d25195ec0296227068':
Include network name in validation logs for dumpsys
Change-Id: I448ed66de8de6444f4506892fd3e8043f203cc11
am: 716fa18dcb
* commit '716fa18dcb00d78d98850c3eb0ce3f2963b3ce13':
Include network name in validation logs for dumpsys
Change-Id: I157481d338e65d7e89e4f97382f84ab2a3110e20
am: 716fa18dcb
* commit '716fa18dcb00d78d98850c3eb0ce3f2963b3ce13':
Include network name in validation logs for dumpsys
Change-Id: Ic5345cb7f309e509c7b9d7cb7b7ec4b95b8f1102
am: a8ca6d9662
* commit 'a8ca6d96624002023d7d83d731b2dda8023e7360':
Fix that fail to setup any vpn after Network Settings reset and always-on vpn is on
Change-Id: I4641b2813820c82cc8509e0ba27f679733d45d6b
am: 3e9051602c
* commit '3e9051602cae0b19fc679e65f79786240d6a60c0':
Fix that fail to setup any vpn after Network Settings reset and always-on vpn is on
Change-Id: I931c5d99282a6350e15aefbf400c90935237e679
am: 265f4113ee
* commit '265f4113ee42e89f324b087a81044a9f1dab457e':
Fix that fail to setup any vpn after Network Settings reset and always-on vpn is on
Change-Id: Iba3df72496f067c5e0291449be3bfbd9ce2031ff
am: 265f4113ee
* commit '265f4113ee42e89f324b087a81044a9f1dab457e':
Fix that fail to setup any vpn after Network Settings reset and always-on vpn is on
Change-Id: I86a8f5c9b2dbd8ea71bdc8fb6268f3d9dc7e329d
- add a new field: provisioningNotificationEnabled from NetworkMisc. set
to false if we want to hide "sign in" notification and placed
carrier-specific notification instead. it is set on connect, once set,
it is carrier-app's responsibility to post new UI to users
- rework on the interaction between carrier app and framework
- code cleanup
- unit test support
Bug: 28567303
Change-Id: Ic84db7ffbb920d15344717f104496d3cb82e1a85
Previously this was included in the log messages from NetworkMonitor
but that has been removed (ag/944107), making it frequently impossible
to know what network the logs apply to as there may be no way to
correlate NetIDs to WiFi SSIDs or Cellular networks if the log has wrapped.
Bug: 26075613
Change-Id: I2e3cd41fffb616ab9f855cb16790360bd3414793
Cause: It revoked the user consent of the vpn app without reseting always-on vpn.
In addition, prepareVpn sets legacy vpn as the current package, the state in
Vpn.class is broken, as it thought the current always-on package is legacy vpn,
(mAlwaysOn is only for app vpn, not for legacy vpn). As a result, prepareVpn rejects
all VpnService.prepare.
Bug: 29031820
Change-Id: Id6bf1d6f38cf134a872811806301b8a602fb5725
When disconnecting from a default network X and falling back on another
connected network Y as the new default, ConnectivityService was
attempting to record this event as a X -> Y "atomic" transition.
In practice the default network connectivity is actually lost and
recovering default network takes some non-zero time.
This patch changes the event recording to always record disconnection as
X -> 0 events. At the same time, if there is a fallback network that is
elected as the new default ConnectivityService will also record a 0 -> Y
event.
This patch also improves pretty-printing of DefaultNetworkEvent.
Extract from $ adb shell dumpsys connectivity_metrics_logger --events
17:51:00.086: DefaultNetworkEvent(0 -> 100:CELLULAR)
17:51:25.232: DefaultNetworkEvent(100:IPv4 -> 101:WIFI) # wifi goes on
17:51:44.064: DefaultNetworkEvent(101:DUAL -> 0) # wifi goes off
17:51:44.187: DefaultNetworkEvent(0 -> 100:CELLULAR)
Bug: 28204408
Change-Id: I63252633235bf6ba833b9ac431a80dda75a93e67
am: 31e3b72e85
* commit '31e3b72e85acf718f3ed66cffbe43617d992d76a':
Fixed enforceMeteredApnPolicy when Data Saver is on.
Change-Id: If9e525f86b29960ed4dfdd6ca27bc5d0077454ae
am: efd3a1749f
* commit 'efd3a1749f2737199643cc29bea6132a9786223b':
Fixed enforceMeteredApnPolicy when Data Saver is on.
Change-Id: I87b596346c058c7ac8efbebb67b43664f1be0fed
When enforceMeteredApnPolicy() is called when Data Saver mode is on and
the caller's UID is not whitelisted, it should add a
NET_CAPABILITY_NOT_METERED to the capabilities.
Change-Id: Ieed4f4a7634ee023ec58c91859263655e0ba62d4
Fixes: 28608499 (and https://code.google.com/p/android/issues/detail?id=208478)
am: d5c5c8f88b
* commit 'd5c5c8f88b5861557ca7a0ced764e45512b000c4':
Lock down networking when waiting for always-on
Change-Id: I50583a9738ac51378e5f5dcbbaa396f1aa30f97c
am: f9773c5fdd
* commit 'f9773c5fdd952e0628bc4b0e80c55258b49335ad':
Lock down networking when waiting for always-on
Change-Id: I7be0a85597936421750d1da0fde3d55d7d4fabc5
am: 9355427d9a
* commit '9355427d9a1963764ec23e29e25f1230f9c83e31':
Make some of the UID-based VPN code reusable
Change-Id: I75d9871f8039d14f8d83be4696c3c4d4e864f9c0
am: 89bf3e3aa2
* commit '89bf3e3aa2b3e95486445a50f4666a20b3d8e830':
Make some of the UID-based VPN code reusable
Change-Id: I3f1b1a08059aa58cb76db6cdd070b103024b9bf3
This stops Settings from telling the user detailed information, and
doesn't really protect anything secret -- privileged apps can already
tell that there's an active VPN by looking at network info.
Change-Id: I9c2a3cab6dff1b62e94a9e0735dccde226fd26a3
Fix: 28624328
When an UID is added / removed to the Data Saver blacklist, it's
necessary to notify internal components such as the Settings UI (which
was erroneously listening to UID rules changes instead).
BUG: 28743623
BUG: 28791717
Change-Id: I11c85e141dfe074ad390fd324309d2412bfbbd45
am: 492e99b2be
* commit '492e99b2bed9a09d42e8c2ce548aedd4974b73be':
Fixed connectivity state in some power saving scenarios.
Change-Id: Idd27e581b208a0d80d8fa6a4d7cf75eac82a32fd
am: cc02a95cbd
* commit 'cc02a95cbd694927cd70d7b0d7921d3f10300b38':
Fixed connectivity state in some power saving scenarios.
Change-Id: I9ce60e8520c041e1345960a51394f8477c4ac49e
am: bc26d925c6
* commit 'bc26d925c62968c0728a524a45c6e60f2b8fb781':
Fixed connectivity state in some power saving scenarios.
Change-Id: I7ebe3864657d2147034ffae400312e94deb5ef35