Merge sc-qpr1-dev-plus-aosp-without-vendor@7810918
Bug: 205056467
Merged-In: I5abff7ded19dcf8d52d2dbf68de99f0da2027bc3
Change-Id: I79a5830f0cded282ad6b8779ee0e3571040872b1
diff --git a/framework/api/current.txt b/framework/api/current.txt
index c5d9c2f..e8db727 100644
--- a/framework/api/current.txt
+++ b/framework/api/current.txt
@@ -297,7 +297,7 @@
method @Nullable public java.util.List<android.net.wifi.ScanResult.InformationElement> getInformationElements();
method @Deprecated public int getIpAddress();
method public int getLinkSpeed();
- method @RequiresPermission(allOf={android.Manifest.permission.LOCAL_MAC_ADDRESS, android.Manifest.permission.ACCESS_FINE_LOCATION}) public String getMacAddress();
+ method public String getMacAddress();
method public int getMaxSupportedRxLinkSpeedMbps();
method public int getMaxSupportedTxLinkSpeedMbps();
method public int getNetworkId();
@@ -343,7 +343,7 @@
public class WifiManager {
method @Deprecated public int addNetwork(android.net.wifi.WifiConfiguration);
- method @NonNull @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_STACK, android.Manifest.permission.NETWORK_SETUP_WIZARD, android.Manifest.permission.NETWORK_MANAGED_PROVISIONING}) public android.net.wifi.WifiManager.AddNetworkResult addNetworkPrivileged(@NonNull android.net.wifi.WifiConfiguration);
+ method @NonNull @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_STACK, android.Manifest.permission.NETWORK_SETUP_WIZARD, android.Manifest.permission.NETWORK_MANAGED_PROVISIONING}, conditional=true) public android.net.wifi.WifiManager.AddNetworkResult addNetworkPrivileged(@NonNull android.net.wifi.WifiConfiguration);
method @RequiresPermission(android.Manifest.permission.CHANGE_WIFI_STATE) public int addNetworkSuggestions(@NonNull java.util.List<android.net.wifi.WifiNetworkSuggestion>);
method public void addOrUpdatePasspointConfiguration(android.net.wifi.hotspot2.PasspointConfiguration);
method @RequiresPermission(allOf={android.Manifest.permission.ACCESS_FINE_LOCATION, android.Manifest.permission.ACCESS_WIFI_STATE}) public void addSuggestionConnectionStatusListener(@NonNull java.util.concurrent.Executor, @NonNull android.net.wifi.WifiManager.SuggestionConnectionStatusListener);
@@ -358,7 +358,7 @@
method @Deprecated public boolean disableNetwork(int);
method @Deprecated public boolean disconnect();
method @Deprecated public boolean enableNetwork(int, boolean);
- method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_MANAGED_PROVISIONING, android.Manifest.permission.NETWORK_CARRIER_PROVISIONING}) public void flushPasspointAnqpCache();
+ method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_MANAGED_PROVISIONING, android.Manifest.permission.NETWORK_CARRIER_PROVISIONING}, conditional=true) public void flushPasspointAnqpCache();
method @NonNull @RequiresPermission(android.Manifest.permission.ACCESS_WIFI_STATE) public java.util.List<android.net.wifi.WifiConfiguration> getCallerConfiguredNetworks();
method @Deprecated @RequiresPermission(allOf={android.Manifest.permission.ACCESS_FINE_LOCATION, android.Manifest.permission.ACCESS_WIFI_STATE}) public java.util.List<android.net.wifi.WifiConfiguration> getConfiguredNetworks();
method @Deprecated public android.net.wifi.WifiInfo getConnectionInfo();
@@ -366,7 +366,7 @@
method public int getMaxNumberOfNetworkSuggestionsPerApp();
method @IntRange(from=0) public int getMaxSignalLevel();
method @NonNull @RequiresPermission(android.Manifest.permission.ACCESS_WIFI_STATE) public java.util.List<android.net.wifi.WifiNetworkSuggestion> getNetworkSuggestions();
- method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_SETUP_WIZARD}) public java.util.List<android.net.wifi.hotspot2.PasspointConfiguration> getPasspointConfigurations();
+ method @Deprecated public java.util.List<android.net.wifi.hotspot2.PasspointConfiguration> getPasspointConfigurations();
method public java.util.List<android.net.wifi.ScanResult> getScanResults();
method public int getWifiState();
method public boolean is24GHzBandSupported();
@@ -408,7 +408,7 @@
method @Deprecated public boolean removeNetwork(int);
method @RequiresPermission(android.Manifest.permission.CHANGE_WIFI_STATE) public int removeNetworkSuggestions(@NonNull java.util.List<android.net.wifi.WifiNetworkSuggestion>);
method @RequiresPermission(android.Manifest.permission.CHANGE_WIFI_STATE) public boolean removeNonCallerConfiguredNetworks();
- method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_CARRIER_PROVISIONING}) public void removePasspointConfiguration(String);
+ method @Deprecated public void removePasspointConfiguration(String);
method @RequiresPermission(android.Manifest.permission.ACCESS_WIFI_STATE) public void removeSuggestionConnectionStatusListener(@NonNull android.net.wifi.WifiManager.SuggestionConnectionStatusListener);
method @RequiresPermission(android.Manifest.permission.ACCESS_WIFI_STATE) public void removeSuggestionUserApprovalStatusListener(@NonNull android.net.wifi.WifiManager.SuggestionUserApprovalStatusListener);
method @Deprecated public boolean saveConfiguration();
diff --git a/framework/java/android/net/wifi/WifiInfo.java b/framework/java/android/net/wifi/WifiInfo.java
index 8b99294..ead4361 100644
--- a/framework/java/android/net/wifi/WifiInfo.java
+++ b/framework/java/android/net/wifi/WifiInfo.java
@@ -845,11 +845,10 @@
* Returns the MAC address used for this connection.
* @return MAC address of the connection or {@code "02:00:00:00:00:00"} if the caller has
* insufficient permission.
+ *
+ * Requires {@code android.Manifest.permission#LOCAL_MAC_ADDRESS} and
+ * {@link android.Manifest.permission#ACCESS_FINE_LOCATION}.
*/
- @RequiresPermission(allOf = {
- Manifest.permission.LOCAL_MAC_ADDRESS,
- Manifest.permission.ACCESS_FINE_LOCATION
- })
public String getMacAddress() {
return mMacAddress;
}
diff --git a/framework/java/android/net/wifi/WifiManager.java b/framework/java/android/net/wifi/WifiManager.java
index df2aa51..c5e7122 100644
--- a/framework/java/android/net/wifi/WifiManager.java
+++ b/framework/java/android/net/wifi/WifiManager.java
@@ -1714,7 +1714,7 @@
android.Manifest.permission.NETWORK_STACK,
android.Manifest.permission.NETWORK_SETUP_WIZARD,
android.Manifest.permission.NETWORK_MANAGED_PROVISIONING
- })
+ }, conditional = true)
@NonNull
public AddNetworkResult addNetworkPrivileged(@NonNull WifiConfiguration config) {
if (config == null) throw new IllegalArgumentException("config cannot be null");
@@ -2336,12 +2336,11 @@
* @throws IllegalArgumentException if no configuration is associated with the given FQDN or
* Passpoint is not enabled on the device.
* @deprecated This will be non-functional in a future release.
+ * <br>
+ * Requires {@code android.Manifest.permission.NETWORK_SETTINGS} or
+ * {@code android.Manifest.permission.NETWORK_CARRIER_PROVISIONING}.
*/
@Deprecated
- @RequiresPermission(anyOf = {
- android.Manifest.permission.NETWORK_SETTINGS,
- android.Manifest.permission.NETWORK_CARRIER_PROVISIONING
- })
public void removePasspointConfiguration(String fqdn) {
try {
if (!mService.removePasspointConfiguration(fqdn, mContext.getOpPackageName())) {
@@ -2359,12 +2358,11 @@
*
* @return A list of {@link PasspointConfiguration} added by the caller
* @deprecated This will be non-functional in a future release.
+ * <br>
+ * Requires {@code android.Manifest.permission.NETWORK_SETTINGS} or
+ * {@code android.Manifest.permission.NETWORK_SETUP_WIZARD}.
*/
@Deprecated
- @RequiresPermission(anyOf = {
- android.Manifest.permission.NETWORK_SETTINGS,
- android.Manifest.permission.NETWORK_SETUP_WIZARD
- })
public List<PasspointConfiguration> getPasspointConfigurations() {
try {
return mService.getPasspointConfigurations(mContext.getOpPackageName());
@@ -8062,7 +8060,7 @@
android.Manifest.permission.NETWORK_SETTINGS,
android.Manifest.permission.NETWORK_MANAGED_PROVISIONING,
android.Manifest.permission.NETWORK_CARRIER_PROVISIONING
- })
+ }, conditional = true)
public void flushPasspointAnqpCache() {
try {
mService.flushPasspointAnqpCache(mContext.getOpPackageName());
diff --git a/service/java/com/android/server/wifi/SoftApManager.java b/service/java/com/android/server/wifi/SoftApManager.java
index aa9c7a9..0f0299f 100644
--- a/service/java/com/android/server/wifi/SoftApManager.java
+++ b/service/java/com/android/server/wifi/SoftApManager.java
@@ -230,15 +230,8 @@
}
};
- private final CoexListener mCoexListener = new CoexListener() {
- @Override
- public void onCoexUnsafeChannelsChanged() {
- if (mCurrentSoftApConfiguration == null) {
- return;
- }
- mStateMachine.sendMessage(SoftApStateMachine.CMD_SAFE_CHANNEL_FREQUENCY_CHANGED);
- }
- };
+ // This will only be null if SdkLevel is not at least S
+ @Nullable private final CoexListener mCoexListener;
private void updateSafeChannelFrequencyList() {
if (!SdkLevel.isAtLeastS() || mCurrentSoftApConfiguration == null) {
@@ -323,6 +316,20 @@
mSoftApNotifier = softApNotifier;
mWifiNative = wifiNative;
mCoexManager = coexManager;
+ if (SdkLevel.isAtLeastS()) {
+ mCoexListener = new CoexListener() {
+ @Override
+ public void onCoexUnsafeChannelsChanged() {
+ if (mCurrentSoftApConfiguration == null) {
+ return;
+ }
+ mStateMachine.sendMessage(
+ SoftApStateMachine.CMD_SAFE_CHANNEL_FREQUENCY_CHANGED);
+ }
+ };
+ } else {
+ mCoexListener = null;
+ }
mCountryCode = countryCode;
mModeListener = listener;
mSoftApCallback = callback;
diff --git a/service/java/com/android/server/wifi/WifiShellCommand.java b/service/java/com/android/server/wifi/WifiShellCommand.java
index a86cd8f..0231764 100644
--- a/service/java/com/android/server/wifi/WifiShellCommand.java
+++ b/service/java/com/android/server/wifi/WifiShellCommand.java
@@ -55,6 +55,7 @@
import android.net.wifi.WifiScanner;
import android.net.wifi.WifiSsid;
import android.os.Binder;
+import android.os.Build;
import android.os.Process;
import android.os.RemoteException;
import android.os.SystemClock;
@@ -66,6 +67,7 @@
import android.util.Pair;
import androidx.annotation.NonNull;
+import androidx.annotation.RequiresApi;
import com.android.internal.annotations.VisibleForTesting;
import com.android.modules.utils.BasicShellCommandHandler;
@@ -1270,6 +1272,7 @@
.build();
}
+ @RequiresApi(Build.VERSION_CODES.S)
@NonNull
private List<CoexUtils.CoexCellChannel> buildCoexCellChannels() {
List<CoexUtils.CoexCellChannel> cellChannels = new ArrayList<>();