* changes:
NetworkSelectionStatus: Fix copy constructor
Deprecate QNS network disable reason BAD_LINK
[NAN] API changes/fixes addressing apilint issues
[NAN] Add method to ConfigRequest to determine if non-default
[NAN] Simplify publish/subscribe configuration - merge match filters
[NAN] Udpate NAN API documentation, clean-up visibility
[NAN] Do not expose WifiManager.isNanSupported as new API
[NAN] Update finalize to check and warn user if resources not freed
[NAN] Fix bad merge use rethrowFromSystemServer
Add Log.wtf when transitionTo is used improperly
Ensure BSSIDs are correctly aged out in settings view
[NAN] Provide calling package name to service
Add WiFi toggle prompts - framework
Reenable the unit tests for StateMachine
Remove WiFi related methods from NetworkManagementService
Don't pull in external/junit through mockito
WifiConfiguration: Expose NetworkSelectionStatus strings
Add Bluetooth toggle prompts - framework
[NAN] Add LV utilities (TLV with T size of 0).
[NAN] Fix TlvElement member names - reflect public access.
TetherUtil: Use ConnectivityManager for tethering
[NAN] TLV utilities iterator - throw correct exception
[NAN] Modify arguments from "array, length" to "array"
[NAN] NAN System Api: RTT
Properly disable WiFi tethering
[NAN] Provide inteface MAC address to app.
[NAN] Add (T)LV validation testing
Add IPv6 tethering coordinator
Stop listening for WiFi interface status changes
[NAN] Add validity checks for service name
[NAN] Fix assumption about Strings containing single-byte characters.
[NAN] NAN data-path API: network specifier
DO NOT MERGE StateMachine: remove final from SendMessage
wifi: allow config of default+verbose ring buffers
Don't save the anonymous identity for EAP-SIM/AKA/AKA-Prime
Add a WifiScanner API to listener for ongoing scans
Fix invitation request from persistent GC
SettingsBackupAgent: Remove redundant size parameter
WifiConfiguration: Make NetworkSelectionStatus public
Use WifiManager for wifi backup/restore
Fix race conditions between Tethering and TetherInterfaceStateMachine
WifiManager: Add new API to restore old backup data
Tethering: Own WiFi tethering state and lifetime
IpConfigStore: Changes for parsing old wifi backup
WifiManager: Add new API's for backup/restore
XmlUtils: Add missing readThisByteArrayXml method
Use an ArrayMap instead of HashMap to track tether interfaces
Consolidate cleanup logic in TetherInterfaceSM.TetheredState
Annotate TetherInterfaceStateMachineTest for APCT
Rely on Tethering mutex for TetherInterfaceSM
Rename TetherInterfaceSM to TetherInterfaceStateMachine
[NAN] Add retry count for transmitting L2 NAN messages
Remove dead code from TetherInterfaceSM
Remove transient StartingState from TetherInterfaceSM
Expand test coverage of TetherInterfaceSM
Add demonstration unittest for TetherInterfaceSM
Extract TetherInterfaceSM to its own class.
Make Tethering.TetherInterfaceSM more self contained
WifiManager: add WIFI_MODE_NO_LOCKS_HELD
Create frameworks-base-testutils lib
Clean up class members in Tethering.TetherInterfaceSM
Move android.net.util.IpUtilsTest into a util/ directory
Fix trivial warnings in Tethering.java
Fix some trivial warnings in WifiP2pDevice.java
[NAN] Add support for NAN RTT.
[NAN] Remove OnNanDown notification from API
Remove unused method from NetworkManagementService
WifiConfiguration: Add new selection disable reasons
[NAN] Add type and nullability annotations. Update hide annotation.
[NAN] Add master switch to enable/disable usage of NAN APIs.
[NAN] Re-factor connect/config flow
[NAN] Refactor session lifecycle to clarify API & eliminate race conditions
[NAN] Removed NAN event registration - dispatch all callbacks.
[NAN] Consolidate publish/subscribe callback sets into single set
[NAN] Replace session callback configuration control
[NAN] Expose match style configuration as public API.
[NAN] API cleanup - rename FLAGS.
[NAN] Renamed listeners to callback per API guidelines
[NAN]: API update - consolidate Puslish|Subscribe Data+Subscribe -> Config
NAN: Support multiple instantiation per UID - introduce a client ID.
Add couple of missing elements in the NetworkSelectionStatus copy constructor.
BUG: 31102798
Change-Id: Ie5f3719b94acf021d4ae2756afd635388640168c
(cherry picked from commit 699680b6b4fb923e4129d678013e3fbbc0421eaa)
WifiNetworkAgent#unwanted no longer disables the network.
Bug: 28558417
Change-Id: I2e7ed99ae4cb952f124c673376d967eeee2b4ece
(cherry picked from commit 4156d615707a7aa27ecaf55c889824fd025a75b5)
To be used in permission check.
Bug: 27696149
Change-Id: I5be5aed93c556cf24b596bd2a7c5672502f84d74
(cherry picked from commit 8266b3f876e6b96ac0f18216b2011b03a0504a23)
Merge Tx/Rx match filters into single Match filter configuration. Only
a single filter can be used at a time (either Tx or Rx).
Bug: 30948496
Change-Id: I32a9a0306dfd08295bc63145bccfe3739862f17d
(cherry picked from commit 6007681b19510d2a739ab45c1754d869f8f15e72)
The WifiManager.isXxxSupported() only functions if HAL is enabled
and seems to be a duplicate of:
PackageManager.hasSystemFeature(PackageManager.FEATURE_WIFI_NAN)
Bug: 28251988
Change-Id: I8f410def6f0bd3d3fc0926072ab66acce52a0e14
(cherry picked from commit a3264c4e3d08d38b08ab0c1c92341cb9cc8f29f8)
Use CloseGuard to check that disconnect() is called to free the resources
allocated by connect(). finalize() will still call disconnect() but now
also print out errors (if StrictMode enabled for feature).
Bug: 28068773
Change-Id: I5f5847c0261ef9f79a21fdb935509a85761591cc
(cherry picked from commit 9d55649613f6ea9926c6e6222965178e91cb501b)
Added 'throw' to the 'e.rethrowXXX()'. Not needed but seems
to be the accepted style.
Change-Id: I75e42d68ee6092699a55e26ee05151373139606d
(cherry picked from commit cb34ec8f3a8dd40f7c49181b008de7314735ca66)
Using transitionTo in exit/enter (except in the terminal state) is
documented as undefined behavior and may cause unexpected results.
The current implementation appears to finish the current transition and
then transition to the new target state.
TEST=flash and play with the phone, no sign of immediate WTFs
Change-Id: I38a34b85c43d53c51514339587fc1269a069a454
(cherry picked from commit 8d3ed21583a8d83047cee1735cf669e131809e73)
When verbose logging is on, recent BSSIDs are displayed under the
network. This ensures that the BSSIDs are aged out after a period of
time instead of based on a fixed size LRU cache. This prevents BSSIDs
that are no longer present from appearing in the results.
FIXED=30711015
TEST=setup two APs, observe both BSSIDs in settings, turn off one,
observe it disappearing after a short period of time.
Change-Id: Id2b2ccd0899eae8d4e2e1c2b3ae9409136a8c948
(cherry picked from commit b744d6e865e4141cd19cdf279f75f30c3d6590af)
If permission review is enabled toggling WiFi on or off
results in a user prompt to collect a consent. This applies
only to legacy apps, i.e. ones that don't support runtime
permissions as they target SDK 22.
bug:28715749
Change-Id: I020601e208c0736005bcabc7b7b77b96eee45b03
(cherry picked from commit d3663c04a721e0848dd3e9179c84ba585d91839d)
In order to make the tests run a few methods must be made public so that
they can be called from a class loaded by a different class loader.
Fixed: 28217358
Change-Id: I98ce1e952a78528ae6ebd3a0e843c9ddfe937337
(cherry picked from commit 36afe5b5cc000620d77150437ba21503c44c87eb)
These are no longer necessary, since WiFi manages its own details.
Bug: 30041228
Change-Id: Ia3824da43367ae74d3f3a204318cfe5470d74957
Test: Compiles
(cherry picked from commit 212b95f587f4af637fb2429f29f7d0add1bd251f)
android-support-test provides a different version of junit
FIXED=30481239
Change-Id: I6d8f52d5f82b4c9905da8cc4a6ca79216eba9e26
(cherry picked from commit d3868cfc63cd814e43367586f5706f39ec1cd5a9)
Make the status/disable reason string arrays public to be used in
XmlUtil for restoring of data.
BUG: 30448209
Change-Id: If8201df9397edcc4251e5b6aa4d613212fb576ad
TEST: Unit tests
(cherry picked from commit 23173a2efa45e5159a9b958e31cf345f8f0c2347)
If permission review is enabled toggling bluetoth on or off
results in a user prompt to collect consent. This applies
only to legacy apps, i.e. ones that don't support runtime
permissions as they target SDK 22.
Also added a configuration resource which controls whether
permission review mode is enabled. By default it is not and
an OEM can change this via an overlay. For now we also keep
the old mechanism to toggle review mode via a build property
which is still used and will be removed when clients have
transitioned.
bug:28715749
Partial cherry-pick of core/res/res/values/{config,symbols}.xml only
Change-Id: I94c5828ad6c8aa6b363622a26ff9da4fc2e2fac7
(cherry picked from commit ac69be543f89ea6e9a27204492e0a170d9b3450e)
NAN uses LV (not TLV). Expose an LV variant of TLV to make API
cleaner.
Bug: 30096512
Change-Id: I74b4c514d50f1df5750b521bd68a5e2d832d92c3
(cherry picked from commit 009b1fcb85ab8f8eb4ab5f3e125127b449df77cb)
In the past, enabling the SoftAP would cause tethering to happen because
of some unfortunate side effects. This is no longer the case, and
using WifiManager for this purpose is not a good idea.
Bug: 30147602
Test: Can toggle tethering on/off via all of settings, quick settings,
and quick quick settings.
Change-Id: Iebbfc6c48b3e8e3fa52d235594ded3502f5801a3
(cherry picked from commit 26bd4efcaaad4a866310d6421909645e81167d1f)
Make sure that iterator.next() validates that next element exists -
otherwise throw the exception specified by the interface.
Bug: 30096512
Change-Id: I327da433e3f1181e272c81ee503cbe8aab323f7e
(cherry picked from commit 3e5ac12302a78216e706be239dceb5175646bea0)
Arrays carry their own lengths. There's no need to provide mechanism
to 'shave' the array - could be done explicitly by caller if needed.
Bug: 29617160
Change-Id: Ib135aa04145f400163cd1a8908dfca4590b4480d
(cherry picked from commit 0a5b7efcb20d2a57c990f11469580edb41a976d6)
Modify visibility of startRanging [NAN RTT] to SystemApi. Matches the
visibliity of the RttManager API.
Change-Id: Ia92de9885d0b38dfce74484f437bd122dd53cbf6
(cherry picked from commit ab9ef45971fc41bc078ad1362845309ef02f62f9)
When Tethering.stopTethering(<wifi>) is called, we set
mWifiTetheringRequested to false and request the AP be torn down.
Previously, we would discard WIFI_AP_STATE_CHANGED_ACTION Intents,
because mWifiTetheringRequested was set to false. This would in
turn cause us to leave tethering enabled, because we only tear down
tethering upon noticing that the interface is going down
(as signalled by WifiManager via this Intent).
In the past, this was covered up because we would tear down tethering
when the interface was taken down. Now that we rely on SoftApManager
to notify us of AP state, we need to pay very close attention to what
is being said about the state.
Bug: 30124308
Test: Can toggle tethering on and off reliably on shamu, bullhead,
angler with no SIM.
Change-Id: If46a8ee11cf4c07c5cc336523f5e5f00273500ec
(cherry picked from commit e52b24a0c52c6e29ea99760c920724f4143ac605)
Expose NAN discovery interface MAC address to app. Required
to enable OOB discovery with other NAN functionality
(e.g. data-path).
Bug: 30000035
Change-Id: Id3c336a61a36522d7011557c805bc3c5307747a1
(cherry picked from commit d097f8a4e520378b9e15f294e773b033ea920268)
Test for validity of a (T)LV. Used in construction of publish and
subscribe configuration (both Tx and Rx filters).
Bug: 30007730
Change-Id: Ibf2179121d45c582bb054c06ec2a765ed0927040
(cherry picked from commit c13b9f6b7d132e06e09b8604b095bdf59ec42307)
Add an IPv6TetheringCoordinator to TetheringMaster StateMachine, which
receives and processes NetworkState updates and passes the necessary IPv6
information to the revelant TetherInterfaceStateMachine.
Add an IPv6TetheringInterfaceServices to TetherInterfaceStateMachine, which
is responsible for adding local network routes and managing an IPv6
RouterAdvertisementDaemon.
Partial cherry-pick of only interfaceType method
Bug: 9580643
Change-Id: I3eaae460b80752e2115359d7bde873a1e9ea515a
(cherry picked from commit 1eb8c69bed1615e9502e94b1a676773ed28abfd9)
Bug: 29931437
Test: Can toggle tethering on and off repeated on shamu and an
upcoming device, both devices without a SIM.
Test: Can toggle tethering on and off repeated on an
upcoming device with a T-Mobile SIM.
Change-Id: I4986b1a5f6ae9b45010bd30639806f7ed63a605c
(cherry picked from commit d30aaeb2148edbc0c7a97699a41c450c0591b983)
Add checks that the service name is valid per spec (see bug for
details). Stores internally as a byte[] for further propagation.
Bug: 30000106
Change-Id: Iab413aba6755c97bfca0332d6eaa21f636e47f3f
(cherry picked from commit adfbfb3a939f5662cb62cdd6b5d7cce5494a159e)
Code assumed that each character was represented by a single byte.
Change-Id: I92ea63f7273379ed1035f10c207d41e3e352bf38
(cherry picked from commit 9a6161c61cb99460afa2c575f39c046391fa1c97)
Adds network specifier API. These are used in creating a connectivity
request through ConnectivityManager. The network specifier provides
mechanism to pass information to the network factory.
Bug: 26564277
Change-Id: Ib5b88685e033a2957644f2e9cff39a70712ac7b5
(cherry picked from commit 15849dc463278b44b191cd39aa7d31b0de9ee825)
Removed final from public sendMessage and sendMessageDelayed commands to
unblock unittest development. This allows tests to verify calls to
sendMessage and sendMessageDelayed.
Also fixed one checkstyle error with import order.
BUG: 28593024
Change-Id: I26e02c3d75049d385ded7891c4fc9967273c27be
TEST: builds
TEST: runtest frameworks-wifi
(cherry picked from commit 0dbeb9e01a7041cbee61b8db7eb8d7562c2a3e6c)
Add the ability to set the size of ring buffers for
both logging modes (default and verbose).
BUG=29225988
TEST=manual
Manual test: add some logging statements to WifiLogger,
verify that the default ring buffer size is 32KB,
and that the verbose ring buffer size is 1024KB.
Change-Id: I4b7bc0da41ba66d15f8e2b6f3c3d6d615691d507
(cherry picked from commit 6ae111026c558daceb0c879368ca2fb385079769)
(cherry picked from commit 6c7a90669ba72c55d5fc03a7b3ed4afadc575290)
wpa_supplicant can update this value when authenticating so if the
framework writes it back the new value can be overwritten.
TEST: Patch was validated by original reporter
Enterprise tests pass (b/29608435)
Change-Id: If359b4ca625371fbdb68177c7cdb6498c3a519a1
Fixes: 28161335
(cherry picked from commit a464a9fce8d160d2bbac3aeea3b23ecc7bb179a0)
When the device received the second invitation request
from GC of the same PersistentGroup, the wifi framework
processes "sa" as mOwner of WifiP2pGroup. At this point,
if an invited group is persistent group, WifiP2pGroup can't
know whether "sa" is GC or GO yet. So the framework shouldn't
process mOwner in the constructor.
Bug: 28715251
Change-Id: Ie7065da0d6c978c3747ecbd6f728de87d9567009
(cherry picked from commit af1eafd7b14f4cafd150d01d1d9d87470a4f3777)
Expose a public constructor for |NetworkSelectionStatus| class and add a
setter in WifiConfiguration to set the |NetworkSelectionStatus| object.
Needed for config store persistence of this object.
BUG: 29273147
Change-Id: I9d9036928137760c4832567dd2b9d0fabc874940
TEST: Unit tests
(cherry picked from commit 6a89ee2d908add0d418995420b2d5eaebd90882f)