summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRavindra Thattahalli Javaraiah <c_rthat@codeaurora.org>2013-10-17 15:37:32 +0530
committerSteve Kondik <shade@chemlab.org>2014-02-17 15:42:53 -0800
commitd944f8cb2b7345b30bfcfa00216a8ef47cd87e8f (patch)
tree6cd0fd6ece75ffc1c45be29ca0656833ed6ea99d
parent78859025b1909a9cf93f97433ae471effd439986 (diff)
downloadandroid_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.java4
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);
}
}