summaryrefslogtreecommitdiffstats
path: root/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
diff options
context:
space:
mode:
authorRubin Xu <rubinxu@google.com>2015-05-14 14:00:16 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-05-14 14:00:18 +0000
commit6e1c17a3dfd62f3ae2a16ac64b8575fc3aa4a7a2 (patch)
tree82e67038cf97f5099d218ebdf5634caf7d106812 /services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
parent3d5286983447262f12b78785391681b20a71f6b2 (diff)
parent2c84cc2ea2ffa1fcd3dbd9a1b5e3880571fba1b8 (diff)
downloadframeworks_base-6e1c17a3dfd62f3ae2a16ac64b8575fc3aa4a7a2.zip
frameworks_base-6e1c17a3dfd62f3ae2a16ac64b8575fc3aa4a7a2.tar.gz
frameworks_base-6e1c17a3dfd62f3ae2a16ac64b8575fc3aa4a7a2.tar.bz2
Merge "clear caller identify before sending system update notification" into mnc-dev
Diffstat (limited to 'services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java')
-rw-r--r--services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java14
1 files changed, 10 insertions, 4 deletions
diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
index ffdb623..9ad7e11 100644
--- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
+++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
@@ -6345,10 +6345,16 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
return;
}
+ ActivityInfo[] receivers = null;
try {
- ActivityInfo[] receivers = mContext.getPackageManager().getPackageInfo(
+ receivers = mContext.getPackageManager().getPackageInfo(
deviceOwnerPackage, PackageManager.GET_RECEIVERS).receivers;
- if (receivers != null) {
+ } catch (NameNotFoundException e) {
+ Log.e(LOG_TAG, "Cannot find device owner package", e);
+ }
+ if (receivers != null) {
+ long ident = Binder.clearCallingIdentity();
+ try {
for (int i = 0; i < receivers.length; i++) {
if (permission.BIND_DEVICE_ADMIN.equals(receivers[i].permission)) {
intent.setComponent(new ComponentName(deviceOwnerPackage,
@@ -6356,9 +6362,9 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
mContext.sendBroadcastAsUser(intent, UserHandle.OWNER);
}
}
+ } finally {
+ Binder.restoreCallingIdentity(ident);
}
- } catch (NameNotFoundException e) {
- Log.e(LOG_TAG, "Cannot find device owner package", e);
}
}
}