enforceSystemUid in MmsService's archive call
Don't allow a non-system app to call
MmsService.archiveStoredConversation()
Bug: 180419673
Test: manually tested proof-of-concept app before and after this change
Change-Id: I090988fb31a7fabb2d903999a90d214e2b7f46ac
diff --git a/src/com/android/mms/service/MmsService.java b/src/com/android/mms/service/MmsService.java
index eb0fd88..40f13d9 100644
--- a/src/com/android/mms/service/MmsService.java
+++ b/src/com/android/mms/service/MmsService.java
@@ -47,6 +47,7 @@
import android.telephony.TelephonyManager;
import android.telephony.data.ApnSetting;
import android.text.TextUtils;
+import android.util.EventLog;
import android.util.SparseArray;
import com.android.internal.telephony.IMms;
@@ -425,6 +426,10 @@
public boolean archiveStoredConversation(String callingPkg, long conversationId,
boolean archived) throws RemoteException {
LogUtil.d("archiveStoredConversation " + conversationId + " " + archived);
+ if (Binder.getCallingUid() != Process.SYSTEM_UID) {
+ EventLog.writeEvent(0x534e4554, "180419673", Binder.getCallingUid(), "");
+ }
+ enforceSystemUid();
if (conversationId == -1) {
LogUtil.e("archiveStoredConversation: invalid thread id");
return false;