From 63aa5a6f98b1016863e4f6edd87eb471b28dc28f Mon Sep 17 00:00:00 2001 From: Mike Lockwood Date: Wed, 14 Apr 2010 19:21:31 -0400 Subject: [PATCH] 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 --- .../server/location/GpsLocationProvider.java | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/services/java/com/android/server/location/GpsLocationProvider.java b/services/java/com/android/server/location/GpsLocationProvider.java index d6ad448aad156..64aa78832b639 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.location.LocationProvider; 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 class GpsLocationProvider implements LocationProviderInterface { 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) {