From 815036f055173d4dfcddd03a4e6c03d24bff00c7 Mon Sep 17 00:00:00 2001 From: Paul Crowley Date: Tue, 29 Mar 2016 14:14:48 -0700 Subject: [PATCH] Clear calling identity before calling mountService Apps that change the password shouldn't need the STORAGE_INTERNAL permission. Bug: 27600227 Change-Id: I73e86c3400c19e9b1cea786dc472ab571ac18803 --- .../core/java/com/android/server/LockSettingsService.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/LockSettingsService.java b/services/core/java/com/android/server/LockSettingsService.java index ed16af51c7eb0..360701c3e1362 100644 --- a/services/core/java/com/android/server/LockSettingsService.java +++ b/services/core/java/com/android/server/LockSettingsService.java @@ -787,7 +787,13 @@ public class LockSettingsService extends ILockSettings.Stub { private void changeUserKey(int userId, byte[] token, byte[] secret) throws RemoteException { final UserInfo userInfo = UserManager.get(mContext).getUserInfo(userId); - getMountService().changeUserKey(userId, userInfo.serialNumber, token, null, secret); + final IMountService mountService = getMountService(); + final long callingId = Binder.clearCallingIdentity(); + try { + mountService.changeUserKey(userId, userInfo.serialNumber, token, null, secret); + } finally { + Binder.restoreCallingIdentity(callingId); + } } @Override