767 lines
27 KiB
Java
767 lines
27 KiB
Java
/*
|
|
* Copyright (C) 2021 The Android Open Source Project
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
package com.android.server.wifi;
|
|
|
|
|
|
import android.annotation.NonNull;
|
|
import android.net.MacAddress;
|
|
import android.net.wifi.SecurityParams;
|
|
import android.net.wifi.WifiConfiguration;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
|
|
/** Abstraction of Supplicant STA Iface HAL interface */
|
|
interface ISupplicantStaIfaceHal {
|
|
/**
|
|
* Enable/Disable verbose logging.
|
|
*
|
|
* @param verboseEnabled Verbose flag set in overlay XML.
|
|
* @param halVerboseEnabled Verbose flag set by the user.
|
|
*/
|
|
void enableVerboseLogging(boolean verboseEnabled, boolean halVerboseEnabled);
|
|
|
|
/**
|
|
* Begin initializing the ISupplicantStaIfaceHal object. Specific initialization
|
|
* logic differs between the HIDL and AIDL implementations.
|
|
*
|
|
* @return true if the initialization routine was successful
|
|
*/
|
|
boolean initialize();
|
|
|
|
/**
|
|
* Setup a STA interface for the specified iface name.
|
|
*
|
|
* @param ifaceName Name of the interface.
|
|
* @return true on success, false otherwise.
|
|
*/
|
|
boolean setupIface(@NonNull String ifaceName);
|
|
|
|
/**
|
|
* Teardown a STA interface for the specified iface name.
|
|
*
|
|
* @param ifaceName Name of the interface.
|
|
* @return true on success, false otherwise.
|
|
*/
|
|
boolean teardownIface(@NonNull String ifaceName);
|
|
|
|
/**
|
|
* Registers a death notification for supplicant.
|
|
* @return Returns true on success.
|
|
*/
|
|
boolean registerDeathHandler(@NonNull WifiNative.SupplicantDeathEventHandler handler);
|
|
|
|
/**
|
|
* Deregisters a death notification for supplicant.
|
|
* @return Returns true on success.
|
|
*/
|
|
boolean deregisterDeathHandler();
|
|
|
|
/**
|
|
* Signals whether initialization started successfully.
|
|
*/
|
|
boolean isInitializationStarted();
|
|
|
|
/**
|
|
* Signals whether initialization completed successfully.
|
|
*/
|
|
boolean isInitializationComplete();
|
|
|
|
/**
|
|
* Start the supplicant daemon.
|
|
*
|
|
* @return true on success, false otherwise.
|
|
*/
|
|
boolean startDaemon();
|
|
|
|
/**
|
|
* Terminate the supplicant daemon & wait for its death.
|
|
*/
|
|
void terminate();
|
|
|
|
/**
|
|
* Add the provided network configuration to wpa_supplicant and initiate connection to it.
|
|
* This method does the following:
|
|
* 1. If |config| is different to the current supplicant network, removes all supplicant
|
|
* networks and saves |config|.
|
|
* 2. Select the new network in wpa_supplicant.
|
|
*
|
|
* @param ifaceName Name of the interface.
|
|
* @param config WifiConfiguration parameters for the provided network.
|
|
* @return {@code true} if it succeeds, {@code false} otherwise
|
|
*/
|
|
boolean connectToNetwork(@NonNull String ifaceName, @NonNull WifiConfiguration config);
|
|
|
|
/**
|
|
* Initiates roaming to the already configured network in wpa_supplicant. If the network
|
|
* configuration provided does not match the already configured network, then this triggers
|
|
* a new connection attempt (instead of roam).
|
|
*
|
|
* @param ifaceName Name of the interface.
|
|
* @param config WifiConfiguration parameters for the provided network.
|
|
* @return {@code true} if it succeeds, {@code false} otherwise
|
|
*/
|
|
boolean roamToNetwork(@NonNull String ifaceName, WifiConfiguration config);
|
|
|
|
/**
|
|
* Clean HAL cached data for |networkId| in the framework.
|
|
*
|
|
* @param networkId Network id of the network to be removed from supplicant.
|
|
*/
|
|
void removeNetworkCachedData(int networkId);
|
|
|
|
/**
|
|
* Clear HAL cached data if MAC address is changed.
|
|
*
|
|
* @param networkId Network id of the network to be checked.
|
|
* @param curMacAddress Current MAC address
|
|
*/
|
|
void removeNetworkCachedDataIfNeeded(int networkId, MacAddress curMacAddress);
|
|
|
|
/**
|
|
* Remove all networks from supplicant
|
|
*
|
|
* @param ifaceName Name of the interface.
|
|
*/
|
|
boolean removeAllNetworks(@NonNull String ifaceName);
|
|
|
|
/**
|
|
* Disable the current network in supplicant
|
|
*
|
|
* @param ifaceName Name of the interface.
|
|
*/
|
|
boolean disableCurrentNetwork(@NonNull String ifaceName);
|
|
|
|
/**
|
|
* Set the currently configured network's bssid.
|
|
*
|
|
* @param ifaceName Name of the interface.
|
|
* @param bssidStr Bssid to set in the form of "XX:XX:XX:XX:XX:XX"
|
|
* @return true if succeeds, false otherwise.
|
|
*/
|
|
boolean setCurrentNetworkBssid(@NonNull String ifaceName, String bssidStr);
|
|
|
|
/**
|
|
* Get the currently configured network's WPS NFC token.
|
|
*
|
|
* @param ifaceName Name of the interface.
|
|
* @return Hex string corresponding to the WPS NFC token.
|
|
*/
|
|
String getCurrentNetworkWpsNfcConfigurationToken(@NonNull String ifaceName);
|
|
|
|
/**
|
|
* Get the eap anonymous identity for the currently configured network.
|
|
*
|
|
* @param ifaceName Name of the interface.
|
|
* @return anonymous identity string if succeeds, null otherwise.
|
|
*/
|
|
String getCurrentNetworkEapAnonymousIdentity(@NonNull String ifaceName);
|
|
|
|
/**
|
|
* Send the eap identity response for the currently configured network.
|
|
*
|
|
* @param ifaceName Name of the interface.
|
|
* @param identity Identity used for EAP-Identity
|
|
* @param encryptedIdentity Encrypted identity used for EAP-AKA/EAP-SIM
|
|
* @return true if succeeds, false otherwise.
|
|
*/
|
|
boolean sendCurrentNetworkEapIdentityResponse(
|
|
@NonNull String ifaceName, @NonNull String identity, String encryptedIdentity);
|
|
|
|
/**
|
|
* Send the eap sim gsm auth response for the currently configured network.
|
|
*
|
|
* @param ifaceName Name of the interface.
|
|
* @param paramsStr String to send.
|
|
* @return true if succeeds, false otherwise.
|
|
*/
|
|
boolean sendCurrentNetworkEapSimGsmAuthResponse(
|
|
@NonNull String ifaceName, String paramsStr);
|
|
|
|
/**
|
|
* Send the eap sim gsm auth failure for the currently configured network.
|
|
*
|
|
* @param ifaceName Name of the interface.
|
|
* @return true if succeeds, false otherwise.
|
|
*/
|
|
boolean sendCurrentNetworkEapSimGsmAuthFailure(@NonNull String ifaceName);
|
|
|
|
/**
|
|
* Send the eap sim umts auth response for the currently configured network.
|
|
*
|
|
* @param ifaceName Name of the interface.
|
|
* @param paramsStr String to send.
|
|
* @return true if succeeds, false otherwise.
|
|
*/
|
|
boolean sendCurrentNetworkEapSimUmtsAuthResponse(
|
|
@NonNull String ifaceName, String paramsStr);
|
|
|
|
/**
|
|
* Send the eap sim umts auts response for the currently configured network.
|
|
*
|
|
* @param ifaceName Name of the interface.
|
|
* @param paramsStr String to send.
|
|
* @return true if succeeds, false otherwise.
|
|
*/
|
|
boolean sendCurrentNetworkEapSimUmtsAutsResponse(
|
|
@NonNull String ifaceName, String paramsStr);
|
|
|
|
/**
|
|
* Send the eap sim umts auth failure for the currently configured network.
|
|
*
|
|
* @param ifaceName Name of the interface.
|
|
* @return true if succeeds, false otherwise.
|
|
*/
|
|
boolean sendCurrentNetworkEapSimUmtsAuthFailure(@NonNull String ifaceName);
|
|
|
|
/**
|
|
* Set WPS device name.
|
|
*
|
|
* @param ifaceName Name of the interface.
|
|
* @param deviceName String to be set.
|
|
* @return true if request is sent successfully, false otherwise.
|
|
*/
|
|
boolean setWpsDeviceName(@NonNull String ifaceName, String deviceName);
|
|
|
|
/**
|
|
* Set WPS device type.
|
|
*
|
|
* @param ifaceName Name of the interface.
|
|
* @param typeStr Type specified as a string. Used format: <categ>-<OUI>-<subcateg>
|
|
* @return true if request is sent successfully, false otherwise.
|
|
*/
|
|
boolean setWpsDeviceType(@NonNull String ifaceName, String typeStr);
|
|
|
|
/**
|
|
* Set WPS manufacturer.
|
|
*
|
|
* @param ifaceName Name of the interface.
|
|
* @param manufacturer String to be set.
|
|
* @return true if request is sent successfully, false otherwise.
|
|
*/
|
|
boolean setWpsManufacturer(@NonNull String ifaceName, String manufacturer);
|
|
|
|
/**
|
|
* Set WPS model name.
|
|
*
|
|
* @param ifaceName Name of the interface.
|
|
* @param modelName String to be set.
|
|
* @return true if request is sent successfully, false otherwise.
|
|
*/
|
|
boolean setWpsModelName(@NonNull String ifaceName, String modelName);
|
|
|
|
/**
|
|
* Set WPS model number.
|
|
*
|
|
* @param ifaceName Name of the interface.
|
|
* @param modelNumber String to be set.
|
|
* @return true if request is sent successfully, false otherwise.
|
|
*/
|
|
boolean setWpsModelNumber(@NonNull String ifaceName, String modelNumber);
|
|
|
|
/**
|
|
* Set WPS serial number.
|
|
*
|
|
* @param ifaceName Name of the interface.
|
|
* @param serialNumber String to be set.
|
|
* @return true if request is sent successfully, false otherwise.
|
|
*/
|
|
boolean setWpsSerialNumber(@NonNull String ifaceName, String serialNumber);
|
|
|
|
/**
|
|
* Set WPS config methods
|
|
*
|
|
* @param ifaceName Name of the interface.
|
|
* @param configMethodsStr List of config methods.
|
|
* @return true if request is sent successfully, false otherwise.
|
|
*/
|
|
boolean setWpsConfigMethods(@NonNull String ifaceName, String configMethodsStr);
|
|
|
|
/**
|
|
* Trigger a reassociation even if the iface is currently connected.
|
|
*
|
|
* @param ifaceName Name of the interface.
|
|
* @return true if request is sent successfully, false otherwise.
|
|
*/
|
|
boolean reassociate(@NonNull String ifaceName);
|
|
|
|
/**
|
|
* Trigger a reconnection if the iface is disconnected.
|
|
*
|
|
* @param ifaceName Name of the interface.
|
|
* @return true if request is sent successfully, false otherwise.
|
|
*/
|
|
boolean reconnect(@NonNull String ifaceName);
|
|
|
|
/**
|
|
* Trigger a disconnection from the currently connected network.
|
|
*
|
|
* @param ifaceName Name of the interface.
|
|
* @return true if request is sent successfully, false otherwise.
|
|
*/
|
|
boolean disconnect(@NonNull String ifaceName);
|
|
|
|
/**
|
|
* Enable or disable power save mode.
|
|
*
|
|
* @param ifaceName Name of the interface.
|
|
* @param enable true to enable, false to disable.
|
|
* @return true if request is sent successfully, false otherwise.
|
|
*/
|
|
boolean setPowerSave(@NonNull String ifaceName, boolean enable);
|
|
|
|
/**
|
|
* Initiate TDLS discover with the specified AP.
|
|
*
|
|
* @param ifaceName Name of the interface.
|
|
* @param macAddress MAC Address of the AP.
|
|
* @return true if request is sent successfully, false otherwise.
|
|
*/
|
|
boolean initiateTdlsDiscover(@NonNull String ifaceName, String macAddress);
|
|
|
|
/**
|
|
* Initiate TDLS setup with the specified AP.
|
|
*
|
|
* @param ifaceName Name of the interface.
|
|
* @param macAddress MAC Address of the AP.
|
|
* @return true if request is sent successfully, false otherwise.
|
|
*/
|
|
boolean initiateTdlsSetup(@NonNull String ifaceName, String macAddress);
|
|
|
|
/**
|
|
* Initiate TDLS teardown with the specified AP.
|
|
* @param ifaceName Name of the interface.
|
|
* @param macAddress MAC Address of the AP.
|
|
* @return true if request is sent successfully, false otherwise.
|
|
*/
|
|
boolean initiateTdlsTeardown(@NonNull String ifaceName, String macAddress);
|
|
|
|
/**
|
|
* Request the specified ANQP elements |elements| from the specified AP |bssid|.
|
|
*
|
|
* @param ifaceName Name of the interface.
|
|
* @param bssid BSSID of the AP
|
|
* @param infoElements ANQP elements to be queried. Refer to ISupplicantStaIface.AnqpInfoId.
|
|
* @param hs20SubTypes HS subtypes to be queried. Refer to ISupplicantStaIface.Hs20AnqpSubTypes.
|
|
* @return true if request is sent successfully, false otherwise.
|
|
*/
|
|
boolean initiateAnqpQuery(@NonNull String ifaceName, String bssid,
|
|
ArrayList<Short> infoElements,
|
|
ArrayList<Integer> hs20SubTypes);
|
|
|
|
/**
|
|
* Request Venue URL ANQP element from the specified AP |bssid|.
|
|
*
|
|
* @param ifaceName Name of the interface.
|
|
* @param bssid BSSID of the AP
|
|
* @return true if request is sent successfully, false otherwise.
|
|
*/
|
|
boolean initiateVenueUrlAnqpQuery(@NonNull String ifaceName, String bssid);
|
|
|
|
/**
|
|
* Request the specified ANQP ICON from the specified AP |bssid|.
|
|
*
|
|
* @param ifaceName Name of the interface.
|
|
* @param bssid BSSID of the AP
|
|
* @param fileName Name of the file to request.
|
|
* @return true if request is sent successfully, false otherwise.
|
|
*/
|
|
boolean initiateHs20IconQuery(@NonNull String ifaceName, String bssid, String fileName);
|
|
|
|
/**
|
|
* Gets MAC address from the supplicant
|
|
*
|
|
* @param ifaceName Name of the interface.
|
|
* @return string containing the MAC address, or null on a failed call
|
|
*/
|
|
String getMacAddress(@NonNull String ifaceName);
|
|
|
|
/**
|
|
* Start using the added RX filters.
|
|
*
|
|
* @param ifaceName Name of the interface.
|
|
* @return true if request is sent successfully, false otherwise.
|
|
*/
|
|
boolean startRxFilter(@NonNull String ifaceName);
|
|
|
|
/**
|
|
* Stop using the added RX filters.
|
|
*
|
|
* @param ifaceName Name of the interface.
|
|
* @return true if request is sent successfully, false otherwise.
|
|
*/
|
|
boolean stopRxFilter(@NonNull String ifaceName);
|
|
|
|
/**
|
|
* Add an RX filter.
|
|
*
|
|
* @param ifaceName Name of the interface.
|
|
* @param type one of {@link WifiNative#RX_FILTER_TYPE_V4_MULTICAST}
|
|
* {@link WifiNative#RX_FILTER_TYPE_V6_MULTICAST} values.
|
|
* @return true if request is sent successfully, false otherwise.
|
|
*/
|
|
boolean addRxFilter(@NonNull String ifaceName, int type);
|
|
|
|
/**
|
|
* Remove an RX filter.
|
|
*
|
|
* @param ifaceName Name of the interface.
|
|
* @param type one of {@link WifiNative#RX_FILTER_TYPE_V4_MULTICAST}
|
|
* {@link WifiNative#RX_FILTER_TYPE_V6_MULTICAST} values.
|
|
* @return true if request is sent successfully, false otherwise.
|
|
*/
|
|
boolean removeRxFilter(@NonNull String ifaceName, int type);
|
|
|
|
/**
|
|
* Set Bt coexistence mode.
|
|
*
|
|
* @param ifaceName Name of the interface.
|
|
* @param mode one of the above {@link WifiNative#BLUETOOTH_COEXISTENCE_MODE_DISABLED},
|
|
* {@link WifiNative#BLUETOOTH_COEXISTENCE_MODE_ENABLED} or
|
|
* {@link WifiNative#BLUETOOTH_COEXISTENCE_MODE_SENSE}.
|
|
* @return true if request is sent successfully, false otherwise.
|
|
*/
|
|
boolean setBtCoexistenceMode(@NonNull String ifaceName, int mode);
|
|
|
|
/** Enable or disable BT coexistence mode.
|
|
*
|
|
* @param ifaceName Name of the interface.
|
|
* @param enable true to enable, false to disable.
|
|
* @return true if request is sent successfully, false otherwise.
|
|
*/
|
|
boolean setBtCoexistenceScanModeEnabled(@NonNull String ifaceName, boolean enable);
|
|
|
|
/**
|
|
* Enable or disable suspend mode optimizations.
|
|
*
|
|
* @param ifaceName Name of the interface.
|
|
* @param enable true to enable, false otherwise.
|
|
* @return true if request is sent successfully, false otherwise.
|
|
*/
|
|
boolean setSuspendModeEnabled(@NonNull String ifaceName, boolean enable);
|
|
|
|
/**
|
|
* Set country code.
|
|
*
|
|
* @param ifaceName Name of the interface.
|
|
* @param codeStr 2 byte ASCII string. For ex: US, CA.
|
|
* @return true if request is sent successfully, false otherwise.
|
|
*/
|
|
boolean setCountryCode(@NonNull String ifaceName, String codeStr);
|
|
|
|
/**
|
|
* Flush all previously configured HLPs.
|
|
*
|
|
* @param ifaceName Name of the interface.
|
|
* @return true if request is sent successfully, false otherwise.
|
|
*/
|
|
boolean flushAllHlp(@NonNull String ifaceName);
|
|
|
|
/**
|
|
* Set FILS HLP packet.
|
|
*
|
|
* @param ifaceName Name of the interface.
|
|
* @param dst Destination MAC address.
|
|
* @param hlpPacket Hlp Packet data in hex.
|
|
* @return true if request is sent successfully, false otherwise.
|
|
*/
|
|
boolean addHlpReq(@NonNull String ifaceName, byte [] dst, byte [] hlpPacket);
|
|
|
|
/**
|
|
* Start WPS pin registrar operation with the specified peer and pin.
|
|
*
|
|
* @param ifaceName Name of the interface.
|
|
* @param bssidStr BSSID of the peer.
|
|
* @param pin Pin to be used.
|
|
* @return true if request is sent successfully, false otherwise.
|
|
*/
|
|
boolean startWpsRegistrar(@NonNull String ifaceName, String bssidStr, String pin);
|
|
|
|
/**
|
|
* Start WPS pin display operation with the specified peer.
|
|
*
|
|
* @param ifaceName Name of the interface.
|
|
* @param bssidStr BSSID of the peer. Use empty bssid to indicate wildcard.
|
|
* @return true if request is sent successfully, false otherwise.
|
|
*/
|
|
boolean startWpsPbc(@NonNull String ifaceName, String bssidStr);
|
|
|
|
/**
|
|
* Start WPS pin keypad operation with the specified pin.
|
|
*
|
|
* @param ifaceName Name of the interface.
|
|
* @param pin Pin to be used.
|
|
* @return true if request is sent successfully, false otherwise.
|
|
*/
|
|
boolean startWpsPinKeypad(@NonNull String ifaceName, String pin);
|
|
|
|
/**
|
|
* Start WPS pin display operation with the specified peer.
|
|
*
|
|
* @param ifaceName Name of the interface.
|
|
* @param bssidStr BSSID of the peer. Use empty bssid to indicate wildcard.
|
|
* @return new pin generated on success, null otherwise.
|
|
*/
|
|
String startWpsPinDisplay(@NonNull String ifaceName, String bssidStr);
|
|
|
|
/**
|
|
* Cancels any ongoing WPS requests.
|
|
*
|
|
* @param ifaceName Name of the interface.
|
|
* @return true if request is sent successfully, false otherwise.
|
|
*/
|
|
boolean cancelWps(@NonNull String ifaceName);
|
|
|
|
/**
|
|
* Sets whether to use external sim for SIM/USIM processing.
|
|
*
|
|
* @param ifaceName Name of the interface.
|
|
* @param useExternalSim true to enable, false otherwise.
|
|
* @return true if request is sent successfully, false otherwise.
|
|
*/
|
|
boolean setExternalSim(@NonNull String ifaceName, boolean useExternalSim);
|
|
|
|
/**
|
|
* Enable/Disable auto reconnect to networks.
|
|
* Use this to prevent wpa_supplicant from trying to connect to networks
|
|
* on its own.
|
|
*
|
|
* @param enable true to enable, false to disable.
|
|
* @return true if no exceptions occurred, false otherwise
|
|
*/
|
|
boolean enableAutoReconnect(@NonNull String ifaceName, boolean enable);
|
|
|
|
/**
|
|
* Set the debug log level for wpa_supplicant
|
|
*
|
|
* @param turnOnVerbose Whether to turn on verbose logging or not.
|
|
* @return true if request is sent successfully, false otherwise.
|
|
*/
|
|
boolean setLogLevel(boolean turnOnVerbose);
|
|
|
|
/**
|
|
* Set concurrency priority between P2P & STA operations.
|
|
*
|
|
* @param isStaHigherPriority Set to true to prefer STA over P2P during concurrency operations,
|
|
* false otherwise.
|
|
* @return true if request is sent successfully, false otherwise.
|
|
*/
|
|
boolean setConcurrencyPriority(boolean isStaHigherPriority);
|
|
|
|
/**
|
|
* Returns a bitmask of advanced capabilities: WPA3 SAE/SUITE B and OWE
|
|
* Bitmask used is:
|
|
* - WIFI_FEATURE_WPA3_SAE
|
|
* - WIFI_FEATURE_WPA3_SUITE_B
|
|
* - WIFI_FEATURE_OWE
|
|
*
|
|
* On error, or if these features are not supported, 0 is returned.
|
|
*/
|
|
long getAdvancedCapabilities(@NonNull String ifaceName);
|
|
|
|
/**
|
|
* Get the driver supported features through supplicant.
|
|
*
|
|
* @param ifaceName Name of the interface.
|
|
* @return bitmask defined by WifiManager.WIFI_FEATURE_*.
|
|
*/
|
|
long getWpaDriverFeatureSet(@NonNull String ifaceName);
|
|
|
|
/**
|
|
* Returns connection capabilities of the current network
|
|
*
|
|
* @param ifaceName Name of the interface.
|
|
* @return connection capabilities of the current network
|
|
*/
|
|
WifiNative.ConnectionCapabilities getConnectionCapabilities(@NonNull String ifaceName);
|
|
|
|
/**
|
|
* Returns connection MLO links info
|
|
*
|
|
* @param ifaceName Name of the interface.
|
|
* @return connection MLO links info
|
|
*/
|
|
WifiNative.ConnectionMloLinksInfo getConnectionMloLinksInfo(@NonNull String ifaceName);
|
|
|
|
/**
|
|
* Adds a DPP peer URI to the URI list.
|
|
*
|
|
* Returns an ID to be used later to refer to this URI (>0).
|
|
* On error, or if these features are not supported, -1 is returned.
|
|
*/
|
|
int addDppPeerUri(@NonNull String ifaceName, @NonNull String uri);
|
|
|
|
/**
|
|
* Removes a DPP URI to the URI list given an ID.
|
|
*
|
|
* Returns true when operation is successful
|
|
* On error, or if these features are not supported, false is returned.
|
|
*/
|
|
boolean removeDppUri(@NonNull String ifaceName, int bootstrapId);
|
|
|
|
/**
|
|
* Stops/aborts DPP Initiator request
|
|
*
|
|
* Returns true when operation is successful
|
|
* On error, or if these features are not supported, false is returned.
|
|
*/
|
|
boolean stopDppInitiator(@NonNull String ifaceName);
|
|
|
|
/**
|
|
* Starts DPP Configurator-Initiator request
|
|
*
|
|
* Returns true when operation is successful
|
|
* On error, or if these features are not supported, false is returned.
|
|
*/
|
|
boolean startDppConfiguratorInitiator(@NonNull String ifaceName, int peerBootstrapId,
|
|
int ownBootstrapId, @NonNull String ssid, String password, String psk,
|
|
int netRole, int securityAkm, byte[] privEcKey);
|
|
|
|
/**
|
|
* Starts DPP Enrollee-Initiator request
|
|
*
|
|
* Returns true when operation is successful
|
|
* On error, or if these features are not supported, false is returned.
|
|
*/
|
|
boolean startDppEnrolleeInitiator(@NonNull String ifaceName, int peerBootstrapId,
|
|
int ownBootstrapId);
|
|
|
|
/**
|
|
* Generate a DPP QR code based boot strap info
|
|
*
|
|
* Returns DppResponderBootstrapInfo;
|
|
*/
|
|
WifiNative.DppBootstrapQrCodeInfo generateDppBootstrapInfoForResponder(
|
|
@NonNull String ifaceName, String macAddress, @NonNull String deviceInfo,
|
|
int dppCurve);
|
|
|
|
/**
|
|
* Starts DPP Enrollee-Responder request
|
|
*
|
|
* Returns true when operation is successful
|
|
* On error, or if these features are not supported, false is returned.
|
|
*/
|
|
boolean startDppEnrolleeResponder(@NonNull String ifaceName, int listenChannel);
|
|
|
|
/**
|
|
* Stops/aborts DPP Responder request.
|
|
*
|
|
* Returns true when operation is successful
|
|
* On error, or if these features are not supported, false is returned.
|
|
*/
|
|
boolean stopDppResponder(@NonNull String ifaceName, int ownBootstrapId);
|
|
|
|
/**
|
|
* Register callbacks for DPP events.
|
|
*
|
|
* @param dppCallback DPP callback object.
|
|
*/
|
|
void registerDppCallback(WifiNative.DppEventCallback dppCallback);
|
|
|
|
/**
|
|
* Set MBO cellular data availability.
|
|
*
|
|
* @param ifaceName Name of the interface.
|
|
* @param available true means cellular data available, false otherwise.
|
|
* Returns true when operation is successful
|
|
*/
|
|
boolean setMboCellularDataStatus(@NonNull String ifaceName, boolean available);
|
|
|
|
/**
|
|
* Check if we've roamed to a linked network and make the linked network the current network
|
|
* if we have.
|
|
*
|
|
* @param ifaceName Name of the interface.
|
|
* @param newNetworkId Network id of the new network we've roamed to. If fromFramework is
|
|
* {@code true}, this will be a framework network id. Otherwise, this will
|
|
* be a remote network id.
|
|
* @param fromFramework {@code true} if the network id is a framework network id, {@code false}
|
|
if the network id is a remote network id.
|
|
* @return true if we've roamed to a linked network, false if not.
|
|
*/
|
|
boolean updateOnLinkedNetworkRoaming(@NonNull String ifaceName,
|
|
int newNetworkId, boolean fromFramework);
|
|
|
|
/**
|
|
* Updates the linked networks for the current network and sends them to the supplicant.
|
|
*
|
|
* @param ifaceName Name of the interface.
|
|
* @param networkId Network id of the network to link the configurations to.
|
|
* @param linkedConfigurations Map of config profile key to config for linking.
|
|
* @return true if networks were successfully linked, false otherwise.
|
|
*/
|
|
boolean updateLinkedNetworks(@NonNull String ifaceName, int networkId,
|
|
Map<String, WifiConfiguration> linkedConfigurations);
|
|
|
|
/**
|
|
* Gets the security params of the current network associated with this interface
|
|
*
|
|
* @param ifaceName Name of the interface
|
|
* @return Security params of the current network associated with the interface
|
|
*/
|
|
SecurityParams getCurrentNetworkSecurityParams(@NonNull String ifaceName);
|
|
|
|
/**
|
|
* Set whether the network-centric QoS policy feature is enabled or not for this interface.
|
|
*
|
|
* @param ifaceName name of the interface.
|
|
* @param isEnabled true if the feature is enabled, false otherwise.
|
|
* @return true if operation is successful, false otherwise.
|
|
*/
|
|
boolean setNetworkCentricQosPolicyFeatureEnabled(@NonNull String ifaceName, boolean isEnabled);
|
|
|
|
/**
|
|
* Sends a QoS policy response.
|
|
*
|
|
* @param ifaceName Name of the interface.
|
|
* @param qosPolicyRequestId Dialog token to identify the request.
|
|
* @param morePolicies Flag to indicate more QoS policies can be accommodated.
|
|
* @param qosPolicyStatusList List of framework QosPolicyStatus objects.
|
|
* @return true if response is sent successfully, false otherwise.
|
|
*/
|
|
boolean sendQosPolicyResponse(String ifaceName, int qosPolicyRequestId, boolean morePolicies,
|
|
@NonNull List<SupplicantStaIfaceHal.QosPolicyStatus> qosPolicyStatusList);
|
|
|
|
/**
|
|
* Indicates the removal of all active QoS policies configured by the AP.
|
|
*
|
|
* @param ifaceName Name of the interface.
|
|
*/
|
|
boolean removeAllQosPolicies(String ifaceName);
|
|
|
|
/**
|
|
* Generate DPP credential for network access
|
|
*
|
|
* @param ifaceName Name of the interface.
|
|
* @param ssid ssid of the network
|
|
* @param privEcKey Private EC Key for DPP Configurator
|
|
* Returns true when operation is successful. On error, false is returned.
|
|
*/
|
|
boolean generateSelfDppConfiguration(@NonNull String ifaceName, @NonNull String ssid,
|
|
byte[] privEcKey);
|
|
|
|
/**
|
|
* Set the currently configured network's anonymous identity.
|
|
*
|
|
* @param ifaceName Name of the interface.
|
|
* @param anonymousIdentity the anonymouns identity.
|
|
* @return true if succeeds, false otherwise.
|
|
*/
|
|
boolean setEapAnonymousIdentity(@NonNull String ifaceName, String anonymousIdentity);
|
|
}
|