Fix permission issue on channel
Change-Id: I57f5d128dc2e2aa3bff93e82456f73cb96851f82
diff --git a/services/java/com/android/server/WifiService.java b/services/java/com/android/server/WifiService.java
index edbc624..f483576 100644
--- a/services/java/com/android/server/WifiService.java
+++ b/services/java/com/android/server/WifiService.java
@@ -959,10 +959,8 @@
* an AsyncChannel communication with WifiService
*/
public Messenger getWifiServiceMessenger() {
- /* STOPSHIP: Fix this to have old sync API not need these new permissions
- * enforceAccessPermission();
- * enforceChangePermission();
- */
+ enforceAccessPermission();
+ enforceChangePermission();
return new Messenger(mAsyncServiceHandler);
}
diff --git a/wifi/java/android/net/wifi/WifiManager.java b/wifi/java/android/net/wifi/WifiManager.java
index 3579b86..284bee8 100644
--- a/wifi/java/android/net/wifi/WifiManager.java
+++ b/wifi/java/android/net/wifi/WifiManager.java
@@ -1358,7 +1358,11 @@
private void init() {
mWifiServiceMessenger = getWifiServiceMessenger();
- if (mWifiServiceMessenger == null) throw new RuntimeException("Failed to initialize");
+ if (mWifiServiceMessenger == null) {
+ mAsyncChannel = null;
+ return;
+ }
+
HandlerThread t = new HandlerThread("WifiManager");
t.start();
mHandler = new ServiceHandler(t.getLooper());
@@ -1372,7 +1376,7 @@
private void validateChannel() {
if (mAsyncChannel == null) throw new IllegalStateException(
- "Bad WifiManager instance state, re-initialize");
+ "No permission to access and change wifi or a bad initialization");
}
/**
@@ -1517,6 +1521,8 @@
return mService.getWifiServiceMessenger();
} catch (RemoteException e) {
return null;
+ } catch (SecurityException e) {
+ return null;
}
}