clear calling identity in GpsLocationProvider.sendExtraCommand().
This fixes problems with wakelock permissions introduced in an earlier change.
Change-Id: If0f4761ac27525d1eece0613c96be62f9e370a14
Signed-off-by: Mike Lockwood <lockwood@android.com>
diff --git a/services/java/com/android/server/location/GpsLocationProvider.java b/services/java/com/android/server/location/GpsLocationProvider.java
index d6ad448..64aa788 100755
--- a/services/java/com/android/server/location/GpsLocationProvider.java
+++ b/services/java/com/android/server/location/GpsLocationProvider.java
@@ -33,6 +33,7 @@
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.SntpClient;
+import android.os.Binder;
import android.os.Bundle;
import android.os.Handler;
import android.os.IBinder;
@@ -839,23 +840,25 @@
public boolean sendExtraCommand(String command, Bundle extras) {
+ long identity = Binder.clearCallingIdentity();
+ boolean result = false;
+
if ("delete_aiding_data".equals(command)) {
- return deleteAidingData(extras);
- }
- if ("force_time_injection".equals(command)) {
+ result = deleteAidingData(extras);
+ } else if ("force_time_injection".equals(command)) {
sendMessage(INJECT_NTP_TIME, 0, null);
- return true;
- }
- if ("force_xtra_injection".equals(command)) {
+ result = true;
+ } else if ("force_xtra_injection".equals(command)) {
if (native_supports_xtra()) {
xtraDownloadRequest();
- return true;
+ result = true;
}
- return false;
+ } else {
+ Log.w(TAG, "sendExtraCommand: unknown command " + command);
}
- Log.w(TAG, "sendExtraCommand: unknown command " + command);
- return false;
+ Binder.restoreCallingIdentity(identity);
+ return result;
}
private boolean deleteAidingData(Bundle extras) {