diff options
author | Ravindra Thattahalli Javaraiah <c_rthat@codeaurora.org> | 2013-10-17 15:37:32 +0530 |
---|---|---|
committer | Steve Kondik <shade@chemlab.org> | 2014-02-17 15:42:53 -0800 |
commit | d944f8cb2b7345b30bfcfa00216a8ef47cd87e8f (patch) | |
tree | 6cd0fd6ece75ffc1c45be29ca0656833ed6ea99d | |
parent | 78859025b1909a9cf93f97433ae471effd439986 (diff) | |
download | android_packages_providers_TelephonyProvider-d944f8cb2b7345b30bfcfa00216a8ef47cd87e8f.tar.gz android_packages_providers_TelephonyProvider-d944f8cb2b7345b30bfcfa00216a8ef47cd87e8f.tar.bz2 android_packages_providers_TelephonyProvider-d944f8cb2b7345b30bfcfa00216a8ef47cd87e8f.zip |
Fix permission check for deleting SMS on UICC.
When accessing SMS stored on UICC via TelephonyProvider, we need to
use the com.android.phone UID for the call to IccSmsInterfaceManager
to avoid a UID mismatch failure in the app ops check. Add code to
SmsProvider to save and restore the original caller identity.
Change-Id:I520ca6e456a20ad3bc5d5c2584be2560e16efd20
CRs-Fixed: 562711
(cherry picked from commit cc0aff6fa3de420b12c602fab9f139847bfc4b85)
(cherry picked from commit adbf372891093248f0ed5058eb0c701f655264f8)
(cherry picked from commit 43f8a3342021c4e86a85092c50275ead2cea93c9)
-rw-r--r-- | src/com/android/providers/telephony/SmsProvider.java | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/com/android/providers/telephony/SmsProvider.java b/src/com/android/providers/telephony/SmsProvider.java index c36a0d2..28fb970 100644 --- a/src/com/android/providers/telephony/SmsProvider.java +++ b/src/com/android/providers/telephony/SmsProvider.java @@ -607,7 +607,8 @@ public class SmsProvider extends ContentProvider { */ private int deleteMessageFromIcc(String messageIndexString) { SmsManager smsManager = SmsManager.getDefault(); - + // use phone app permissions to avoid UID mismatch in AppOpsManager.noteOp() call + long token = Binder.clearCallingIdentity(); try { return smsManager.deleteMessageFromIcc( Integer.parseInt(messageIndexString)) @@ -619,6 +620,7 @@ public class SmsProvider extends ContentProvider { ContentResolver cr = getContext().getContentResolver(); cr.notifyChange(ICC_URI, null); + Binder.restoreCallingIdentity(token); } } |