Scanning while dhcp is running breaks dhcp, so stop the batched scans
when we need dhcp and start it up again after.
bug:10691401
Change-Id: Ifdeb6f35cfe4509b90fed1e1e694d0c107f24a7e
There used to be some STOPSHIP code in WifiWatchdogStateMachine for debug
purposes. We don't need them for the release.
Bug: 10841961
Change-Id: I501d62e9891ace52317e6c1d399b877175099a3c
Multiple authentication methods are currently considered invalid; but
WPA_EAP and IEEE8021X are set simultaneously. This means we need to
fix code to consider them a valid combination.
Bug: 10325089
Change-Id: I2b4f4d75f21df78bfca66a930e85214c0cd6922e
It was introduced to debug the disappearing APs; now that we think that
we've got to the bottom of it, it is being disabled by default. Set VDBG
to true to get it back.
Bug: 10568538
Change-Id: I226cacf48cccba9671f09164bbb50380adc6b322
ScanResult should have timestamp in uS but we are getting age in ms
from the wifi driver - multiply to have the same units though not
the implied precision.
bug: 10410465
Change-Id: Idf5c5996d69a4793dae3d74edb790d40b9bd3298
java.lang.SecurityException: Operation not allowed
There was a situation I wasn't taking into account -- components
declared by the system has a special ability to run in the processes
of other uids. This means that if that code loaded into another
process tries to do anything needing an app op verification, it will
fail, because it will say it is calling as the system package name but
it is not actually coming from the system uid.
To fix this, we add a new Context.getOpPackageName() to go along-side
getBasePackageName(). This is a special call for use by all app ops
verification, which will be initialized with either the base package
name, the actual package name, or now the default package name of the
process if we are creating a context for system code being loaded into
a non-system process.
I had to update all of the code doing app ops checks to switch to this
method to get the calling package name.
Also improve the security exception throw to have a more descriptive
error message.
Change-Id: Ic04f77b3938585b02fccabbc12d2f0dc62b9ef25
- Guard all field accesses in WifiMonitorSingleton with
a lock.
- WifiMonitorSingleton is now responsible for dispatching
events to a given monitor (or all monitors if it can't
find a matching monitor).
- Individual WifiMonitors are now responsible for dispatching
events sent to them. This makes WifiMonitorThread a dumb
object. All it does is wait for events and feed them back
into the WifiMonitorSingleton.
- Also fixes a bug where we weren't telling the WifiMonitor
that we're disconnected and another where we don't check whether
a monitor is connected or not before asking it to dispatch
an event.
- Also, replaces a few uses of entrySet() with a values() iterator
when the keys are never used. The performance of both methods
is identical for a HashMap, but the latter is a bit more concise
and easier to read.
Change-Id: I7ce00174a78c72836666d25ccc5e6e9e687c2570
This change will set country code on P2p interfaces as well, so the
drivers are free to use channels that are permitted regionally. This
is required for FCC style compliance and Miracast certification.
Bug: 10513263
Change-Id: I88c645bd488066d5167e23e2772f2e0e1f40fa8a
There is some validation code that is eventually detecting that we
have an invalid network; only the result is a crash. The right thing
to do is to do validation up front; and fail calls if the network
configuration looks invalid.
Bug: 10571289
Change-Id: I100506b777a34b26ac9a310ba508140560f87a90
This isn't really required because the static initializer
for WifiMonitorSingleton won't run until the first access
to the (non primitive) static field "sInstance". Further,
static initializers will be run precisely once (i.e
first accesses to sInstance from multiple threads are safe).
Change-Id: I78fae225e4c5cb917e7e7817522595ae026daf47
This makes WifiStateMachine listen for interface address
changes. When an address changes, WifiStateMachine will update
its LinkProperties to match reality and notify the system that
the link configuration has changed. This allows wifi to keep
track of IPv6 addresses as well (previously it only knew about
the IPv4 address passed in by DHCP).
IP addresses are obtained directly from the kernel and always
match those configured on the interface, so we treat them as
authoritative and ignore addresses passed in via DHCP (by the
time DHCP passes them in we've already been notified by the
kernel anyway).
Since we now have multiple sources of link information (the
kernel for addresses and DHCP for routes and DNS, plus various
bits of static information), also move all the code that sets
mLinkProperties into one place. This allows us to be clearer
about who is authoritative for which parts of mLinkProperties.
Bug: 10232006
Change-Id: I4f262342379ce7fed172b67a1d403e3cd34f4232
The root cause is likely our 'no networks' problem; it caused people
to add new (and duplicate) entries to their list of networks; which
are haunting us now.
This change looks up the dupes, and discards them, even if they came
wifi supplicant.
Bug: 10633813
Change-Id: I656b6bf7240de6763bf84b5b406c50444af6dd48
This change renames the LinkInfo objects to LinkQuailtyInfo. The API is
still hidden; but it can be accessed via reflection.
Bug: 10342372
Change-Id: Ieccea87c467ceae5d7f76298b137573f67396cd6
Both wlan0 and p2p0 state machines are accessing the supplicant socket
simultaneously; and may get responses of each other's command. This
change introduces synchronization between these two processes.
Bug: 10375978
Change-Id: I0ac0b2771311b642affc353958cc9ba2e5dd5716
Fix by not including extraneous delimiters, and changing the delimiter from a
space to a comma.
Bug: 10444428
Change-Id: Ia3197045d44a2f959316935ae085575500e65459
When certification mode is enabled:
- Pass wfd session info to wifi display settings
- Allow sink to connect to source
- Add interface in display manager for pausing/resuming session
- Add interface in WifiP2pManager for setting lc, oc and starting
autonomous GO
Note that we're compliant regardless of certification mode, but
some confusing options (eg. allowing incoming connection from
sink) we want to hide when not being tested.
Bug: 9371882
Change-Id: Icc7dcae4e046453796cfa03f5f197055fabf234b