Commit Graph

740 Commits

Author SHA1 Message Date
Calvin On
4bc78eba6f Add option to skip and avoid captive portals.
Test: ConnectivityServiceTest updated with test cases.
Test: Manually tested against att-wifi in B42.
Bug: 30222699
Change-Id: Ibe63942da04748ab0406e24e0f44be31d47710a0
(cherry picked from commit be96da11cc)
2016-10-20 18:50:46 +00:00
Michal Karpinski
6dbf67fc48 Don't expose default strong auth timeout as constant
The admin can instead use the value of 0 to reset to default.

Test: runtest --path frameworks/base/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java

Bug: 31430135
Change-Id: I0d6b29ca4eca65d7ca72a8975a0c28c9050a946c
(cherry picked from commit 943aabd11c)
2016-10-12 09:34:12 +00:00
Hugo Benichi
ea2f7a4f05 Merge "Reject DHCP packets with no magic cookie" into nyc-mr1-dev 2016-10-07 02:22:35 +00:00
TreeHugger Robot
69544fd74d Merge "Catch runtime exceptions when parsing DHCP packets" into nyc-mr1-dev 2016-10-06 17:10:45 +00:00
Hugo Benichi
006e061301 Reject DHCP packets with no magic cookie
This patch adds an explicit check in the DHCP packet parser for
rejecting packets without a magic cookie, instead of relying on the
top-level try-catch-all in the parser.

This allows to add to DHCP error metrics this specific error.

It also allows to add two poor man's fuzzing tests that tries to find
additional gaps in the DHCP packet parser by
 - trying to parse all subslices of a valid offer packet.
 - trying to parse random byte arrays.

Test: covered by previously introduced malformed DHCP packet unit tests
      + additional fuzzing tests.
Bug: 31850211
Change-Id: If53c9ba9df78d7604ec018c9d67c237ae59c4833
2016-10-06 21:22:29 +09:00
Hugo Benichi
e0ea7fecd6 Catch runtime exceptions when parsing DHCP packets
This patch adds a try catch all to DHCP packet parsing so that
DhcpClient does not choke on malformed packets, brinding down with it
the whole framework.

Test: added new unit tests catching the issue fixed in this patch.
Bug: 31850211
Change-Id: I3c50a149fed6b2cbc4f40bb4f0e5bb2b56859b44
2016-10-05 21:58:26 +09:00
Erik Kline
23cdacbec6 Refactor "avoid bad wifi" logic into a utility class
am: 065ab6ee40

Change-Id: I4a6ad3791ac551b0d64b37dd4e2afef1e8e8ee10
2016-10-04 07:47:52 +00:00
Erik Kline
065ab6ee40 Refactor "avoid bad wifi" logic into a utility class
Additionally, add this utility class to IpManager for compatibility
verification.  A follow-on CL will make use of IpManager's local
AvoidBadWifiTracker.

Bug: 31827713
Change-Id: If8c56c3f8076d6a5157ea180e361bbdadc2bc1dd
2016-10-04 15:07:42 +09:00
Hugo Benichi
d953bf853d Captive portal detection uses 3rd fallback probe
This patch adds the possitibility to send a 3rd fallback validation
probe in sendParallelHttpProbes when neither the 1st http probe nor the
https probe came back with a conclusive answer.

This 3rd probe is only used for trying again captive portal detection
and does not return success, so that network validation always fails if
the https probe fails.

In addition, the url reveals a captive portal is now sent to the
CaptivePortalLoginActivity so that all three probes can use different
urls.

Bug: 29367974

Change-Id: I7385fde1aa1316d94aac350af0e956cb193aa4ee
2016-09-28 23:12:31 +09:00
Makoto Onuki
18fb24c5d3 Merge "Fix DPM unit tests, also fix a log message." into nyc-mr1-dev 2016-09-23 15:34:40 +00:00
Hugo Benichi
00a42d4c88 IpConnectivityLog uses new metrics service
This patch connects existing IpConnectivityLog to the new
IpConnectivityMetrics service:
  - IpConnectivityLog is now an independent class that pushes events
    directly to the new IpConnectivityMetrics service.
  - DnsEventListenerService is moved from MetricsLoggerService to
    IpConnectivityMetrics.
  - this patch also features end to end tests from IpConnectivityLog to
    IpConnectivityMetrics dumpsys output.

Bug: 31254800
Change-Id: I4fe4a209eedde2814d5f13c574a1a0d854bd05c9
2016-09-22 23:08:37 +09:00
Hugo Benichi
50a84c6210 Add ipconnectivity.proto to services jar
This patch moves ipconnectivity.proto and companion serialization
classes from /vendor/google/app/ConnectivityMetrics into the framework
services jar.

This will allow to implement a dumpsys interface for IpConnectivity
metrics events defined in android.net.metrics that output metrics as
a serialized proto.

Bug: 31254800
Change-Id: Ia4449103fd7222c9d899352fea2dce47a790a49c
2016-09-22 22:21:41 +09:00
Hugo Benichi
b1af5e51c5 ConnectivityMetricsLoggerTest
This patch transforms the IpConnectivityLogTest to test instead the base
class ConnectivityMetricsLogger.

The current test will not be relevant anymore after b/31254800 is
resolved.

Bug: 31254800
Change-Id: I8dc3374450e5f1f87ab1e6f372ad2d2beb25dc48
2016-09-22 22:21:41 +09:00
Lorenzo Colitti
aab02df195 Support "don't ask again" in the avoid bad wifi dialog.
am: 165c51c0eb

Change-Id: Ic6a1917a83e2d847bd673790e2c36f7316ca7acd
2016-09-20 17:14:50 +00:00
Lorenzo Colitti
165c51c0eb Support "don't ask again" in the avoid bad wifi dialog.
This contains the following changes:

1. Make NETWORK_AVOID_BAD_WIFI a tristate: 0 means never avoid
   bad wifi, unset means prompt the user, 1 means always avoid.
2. Look at NETWORK_AVOID_BAD_WIFI only if the carrier restricts
   avoiding bad wifi (previously, we relied on the setting being
   null and defaulting to the value of the config variable).
3. Add an avoidUnvalidated bit to NetworkAgentInfo to track
   whether the user has requested switching away from this
   unvalidated network even though avoiding bad wifi is generally
   disabled. This is set to true when the user selects "switch"
   in the dialog without setting the "Don't ask again" checkbox.
4. Add a hidden setAvoidUnvalidated API to ConnectivityManager to
   set the avoidUnvalidated bit.
5. Additional unit test coverage.

Bug: 31075769
Change-Id: I1be60c3016c8095df3c4752330149ce638bd0ce1
2016-09-20 16:03:53 +09:00
Makoto Onuki
6ad5f92512 Fix DPM unit tests, also fix a log message.
Bug 31446501

Change-Id: I37debbe2f4e983fb8bad026f8dd9bd91b7448dce
2016-09-19 14:23:02 -07:00
Makoto Onuki
845096ffa3 Merge "Don't update publisher version code without scanning manifest" into nyc-mr1-dev 2016-09-16 18:50:27 +00:00
Lorenzo Colitti
40b707ed39 Unit tests for avoid bad wifi networks setting.
am: 73b20938c7

Change-Id: I6491f1a93f93f222e23ef6e5e437631556637e44
2016-09-15 16:05:45 +00:00
Lorenzo Colitti
73b20938c7 Unit tests for avoid bad wifi networks setting.
Bug: 31075769
Change-Id: I21ba20df59ddce5731ef1ebe8846b3f00578a674
2016-09-15 23:45:07 +09:00
TreeHugger Robot
4efd735a76 Merge "Add test coverage for background networks." into nyc-mr1-dev 2016-09-14 03:17:47 +00:00
Makoto Onuki
c8c3329dd9 Don't update publisher version code without scanning manifest
- It was (theoretically) possible for shortcut manager to update
the version code for a publisher package without rescanning manifest
shortcuts, if backup happens right after unlocking a user before
SM searches for updated packages.  If it happens, then SM will not
scan the manifest for this package until it's updated next time.

So don't refresh the version code during backup, which we only
have to do for launchers but not publishers.

- Also fix the owner-user-id for launchers.  (Luckily it's not causing
any issues.)

Bug 31402152

Change-Id: I5d898eb3882b74edaca8b2d5f960849370ffc23b
2016-09-13 11:23:39 -07:00
Lorenzo Colitti
e14d49ad59 Add test coverage for background networks.
Bug: 23113288
Change-Id: Idad62f5f025825f99007ccf7b20f530dc3cf6daa
2016-09-13 12:02:13 +09:00
Hugo Benichi
7d21eaedad ApfFilter: take into account IPv4 subnet prefix
When IPv4 is provisioned on an interface with Apf capabilities,
ApfFilter will only keep track of the raw ipv4 address, with no
information about the subnet or prefix length.

This patch adds the missing prefix length information to ApfFilter. This
allows to calculate the subnet broadcast ipv4 address for more
precise ipv4 broadcast filtering when the multicast lock is not held.

Bug: 30231088

Change-Id: Iebaec040703647c4ced30bb585be173e97a1fae5
2016-09-13 10:54:47 +09:00
Hugo Benichi
0dc1d31470 ApfFilter: more precise IPv4 broadcast filter
This patch refines the Apf IPv4 filter for interfaces with Apf
capabilities to drop packets when:
  - the multicast lock is not held
  - the packet is an IPv4 packet
  - the packet is not a DHCP packet addressed to us
  - the packet is L2 broadcast, or IPv4 multicast, or IPv4 broadcast
      - caveat: subnet broadcast address is not checked.

This allows to drop IPv4 broadcast packets whose MAC destination
address is not the L2 broadcast address but the current address of the
interface. Such packets can be received on network that rewrite L2
addresses and can put significant pressure on battery by waking up the
phone unnecessarily.

Bug: 30231088

Change-Id: I8b1785fc5ceadaa1f2881765983e502135dcbc46
2016-09-13 10:54:42 +09:00
Hugo Benichi
6708b64797 Merge "Better IPv4 multicast coverage in ApfTest" into nyc-mr1-dev 2016-09-12 03:29:15 +00:00
Winson Chung
99cf874cc3 Merge "Revert "Fixing issue with old tasks being visible in Overview"" into nyc-mr1-dev 2016-09-09 01:50:22 +00:00
Winson Chung
36f3f0337d Revert "Fixing issue with old tasks being visible in Overview"
Bug: 28908500

This reverts commit b258f6a4bd.

Change-Id: I9b3c04358d6ca693ed3fdcd9220af13f81eb704e
2016-09-09 01:29:18 +00:00
Hugo Benichi
961ca49fd6 Better IPv4 multicast coverage in ApfTest
This patch improves the test coverage of ApfFilter for IPv4 broadcast and
multicast traffic.

Bug: 30231088
Change-Id: I2e1d5d5a7cbae17f3d5978a4cf5f10666b5c6104
2016-09-08 14:03:46 +09:00
Winson Chung
a8c0fe6606 Merge "Fixing issue with old tasks being visible in Overview" into nyc-mr1-dev 2016-09-02 21:49:13 +00:00
Winson
b258f6a4bd Fixing issue with old tasks being visible in Overview
- This CL does two things, firstly, it ensures that all first & last
  active times are monotonically increasing and independent of the
  current system time.  This allows us to better keep track of which
  tasks are historical and should be hidden, and which are not.
  Secondly, this CL moves the tracking of the last visible active time
  into the system (per user) where it can be adjusted along with the
  task active times when they are loaded.
- Following this CL, all active times in the future will be adjusted on
  boot such that old tasks are made relative to the current boot time.
  It’s not important exactly what time they are, only that they are
  adjusted along with the last visible task active time so that we
  always keep track of what is visible.

Bug: 28908500
Change-Id: I4f789df3a6bd825517cf3a70e26fb60deff89d06
2016-08-30 15:01:49 -07:00
Lorenzo Colitti
858499b2c0 Network switch notifications: rate & daily limits
am: 84e6f1232c

Change-Id: Ibf6fa695c5f8ef11c99fe075b59a36f52c5c177b
2016-08-30 20:17:33 +00:00
Hugo Benichi
56f1281888 Network Switching Notifications: add unit tests
am: a43a095106

Change-Id: I940870a6df6a8f57966a52535ed22ec8123fb27d
2016-08-30 20:16:57 +00:00
Pankaj Kanwar
aa8263d85d Merge changes Iccb6d089,I9c50a59f into nyc-dr1-dev
* changes:
  Network switch notifications: rate & daily limits
  Network Switching Notifications: add unit tests
2016-08-30 20:11:11 +00:00
Makoto Onuki
dec5726c43 Merge "Shortcut: Improve backup & restore" into nyc-mr1-dev 2016-08-30 19:57:36 +00:00
Makoto Onuki
9480c98ddf Merge "Backport shortcut manager test utilities to DR" into nyc-dr1-dev 2016-08-30 19:54:56 +00:00
Lorenzo Colitti
84e6f1232c Network switch notifications: rate & daily limits
This patch adds a daily limit to the maximum number of notifications
shown when switching networks.

It also adds a rate limit to prevent rapid successive notifications in
flapping scenarios.

Bug: 31132499
Change-Id: Iccb6d0899646ea6df3cfad32a421922263e0eb85
2016-08-31 00:36:11 +09:00
Hugo Benichi
a43a095106 Network Switching Notifications: add unit tests
BUG: 31132499
Change-Id: I9c50a59fe48efdcb51d2517f0a756691700c3ebe
2016-08-31 00:35:16 +09:00
Felipe Leme
b79f06a476 Removed screen on/off callbacks from NPMS.
NetworkPolicyManagerService (NPMS) used to depend on screen on/off
changes to determine if a foreground activity should have network
restrictions, but such check is now redundant since ActivityManager
already changes the proper UID state (like going from TOP to
TOP_SLEEPING) when the screen status is changed.

Removing such code decreases the NPMS lock contention when the screen is
turned on in about 3-5ms.

Change-Id: I2853443efedbf14961ae9a5b2e72689d4d1a646c
BUG: 30785671
(cherry picked from commit 88f40ad9a7)
(cherry picked from commit f8dd7b4e8d)
2016-08-28 02:24:42 +00:00
Fyodor Kupolov
4be496d2d0 Merge "Fix AccountManagerServiceTest" into nyc-mr1-dev 2016-08-26 16:52:07 +00:00
TreeHugger Robot
769bc6c8b1 Merge "Resolving race condition while writing recent taskids" into nyc-mr1-dev 2016-08-26 00:39:45 +00:00
Fyodor Kupolov
d954357860 Fix AccountManagerServiceTest
Unregister AccountManagerInternal before creating a new instance of
AccountManagerService, otherwise it will cause:
java.lang.IllegalStateException: Overriding service registration

Also overrode MockPm.addOnPermissionsChangeListener to be a noop and
not throw an exception.

Bug: 31071079
Change-Id: I0d24232eba655a68bf3fb38d7aa9edb92d469cea
2016-08-26 00:27:05 +00:00
Phil Weaver
1bb2cc8cc3 Merge "Revert "Dispatch a11y events in separate thread."" into nyc-mr1-dev 2016-08-25 18:05:36 +00:00
Phil Weaver
5de2feab26 Revert "Dispatch a11y events in separate thread."
This reverts commit c34649411d.

Dispatching accessibility events in their own thread is causing Chrome and gmail to crash. We've identified two issues: Chrome is allocating strings natively using references that aren't valid outside of their thread, and the text is being set to values that are changed in the UI thread. 

I'm going to resolve these issues on master by making deep copies of the strings, but that change will have its own performance implications.

Since we were bit almost immediately by an unexpected result of this change, and I need to erode its benefit by making deep copies, I think it's a bad bet to push it into MR1.

Bug: 31042124
Change-Id: I6f5c225a9197036db43fd0ac6008447b22617525
2016-08-25 16:31:25 +00:00
Fyodor Kupolov
7540b79fee Update services info before returning authenticators
am: 814464894c

Change-Id: I3d7eb42ef73ad77cb44c251a493ae967bcc0f651
2016-08-25 00:08:38 +00:00
Fyodor Kupolov
814464894c Update services info before returning authenticators
Added RegisteredServicesCache.updateServices method which allows callers
to request an update to services for which package has been updated.

Added a call to updateServices in getAuthenticatorTypesInternal

Test: Manually tested update flow on test authenticator with an artificial
      delay in broadcast handling
Bug: 30979262
Change-Id: I499b2ee0be53fed01201c56068d929b6d621a78e
2016-08-24 22:47:38 +00:00
Suprabh Shukla
fd0bd4f39d Resolving race condition while writing recent taskids
There was a race condition, due to which, by the time
TaskPersister started writing the taskids to the file,
the user was stopped and its data from memory was unloaded,
resulting in a NullPointerException

Bug: 30944155
Change-Id: Iac3333b7744241c90a7769686983e3f16e6880c1
2016-08-24 15:09:09 -07:00
Makoto Onuki
0a15cd4ba0 Backport shortcut manager test utilities to DR
Bug 29612099
Bug 31033599

Change-Id: I59d4ae61fdb2245797f2d8e39beddc3b66b93fe6
2016-08-24 14:38:23 -07:00
Makoto Onuki
fc4cf2da34 Shortcut: Improve backup & restore
* Catch RuntimeException from restore, in case restoring from a
partner device with an incompatible file format.

* When a restore target app is already installed, and
- if it has allowBackup=true, we'll restore normally, so all
existing shortcuts will be replaced. (but manifest shortcuts
will be re-published anyway.) We log a warning on logcat.

- if it has allowBackup=false, we don't touch any of the
existing shortcuts.

Bug 31057974
Bug 30766177

Change-Id: Ic3f7e860e7ea0d086fc589d8cbed8c4cebdd4bc6
2016-08-24 13:52:02 -07:00
Makoto Onuki
8664df3d76 Merge "Backporting shortcut manager test utils to mr1" into nyc-mr1-dev 2016-08-23 23:44:06 +00:00
Makoto Onuki
a49bafad6b Backporting shortcut manager test utils to mr1
Bug 29612099

Change-Id: I33641b2c95f8fe859fa3256b491c039ab273fff5
2016-08-22 17:41:24 -07:00