Loading mms/java/android/telephony/MmsManager.java +3 −2 Original line number Diff line number Diff line Loading @@ -70,7 +70,8 @@ public class MmsManager { } iMms.sendMessage(subId, ActivityThread.currentPackageName(), contentUri, locationUrl, configOverrides, sentIntent, messageId); locationUrl, configOverrides, sentIntent, messageId, mContext.getAttributionTag()); } catch (RemoteException e) { // Ignore it } Loading Loading @@ -102,7 +103,7 @@ public class MmsManager { } iMms.downloadMessage(subId, ActivityThread.currentPackageName(), locationUrl, contentUri, configOverrides, downloadedIntent, messageId); messageId, mContext.getAttributionTag()); } catch (RemoteException e) { // Ignore it } Loading mms/java/com/android/internal/telephony/IMms.aidl +5 −3 Original line number Diff line number Diff line Loading @@ -26,7 +26,7 @@ import android.os.Bundle; */ interface IMms { /** * Send an MMS message * Send an MMS message with attribution tag. * * @param subId the SIM id * @param callingPkg the package name of the calling app Loading @@ -38,10 +38,11 @@ interface IMms { * @param sentIntent if not NULL this <code>PendingIntent</code> is * broadcast when the message is successfully sent, or failed * @param messageId An id that uniquely identifies the message requested to be sent. * @param attributionTag a tag that attributes the call to a client App. */ void sendMessage(int subId, String callingPkg, in Uri contentUri, String locationUrl, in Bundle configOverrides, in PendingIntent sentIntent, in long messageId); in long messageId, String attributionTag); /** * Download an MMS message using known location and transaction id Loading @@ -57,10 +58,11 @@ interface IMms { * @param downloadedIntent if not NULL this <code>PendingIntent</code> is * broadcast when the message is downloaded, or the download is failed * @param messageId An id that uniquely identifies the message requested to be downloaded. * @param attributionTag a tag that attributes the call to a client App. */ void downloadMessage(int subId, String callingPkg, String locationUrl, in Uri contentUri, in Bundle configOverrides, in PendingIntent downloadedIntent, in long messageId); in PendingIntent downloadedIntent, in long messageId, String attributionTag); /** * Import a text message into system's SMS store Loading services/core/java/com/android/server/MmsServiceBroker.java +20 −20 Original line number Diff line number Diff line Loading @@ -129,15 +129,15 @@ public class MmsServiceBroker extends SystemService { @Override public void sendMessage(int subId, String callingPkg, Uri contentUri, String locationUrl, Bundle configOverrides, PendingIntent sentIntent, long messageId) throws RemoteException { Bundle configOverrides, PendingIntent sentIntent, long messageId, String attributionTag) throws RemoteException { returnPendingIntentWithError(sentIntent); } @Override public void downloadMessage(int subId, String callingPkg, String locationUrl, Uri contentUri, Bundle configOverrides, PendingIntent downloadedIntent, long messageId) long messageId, String attributionTag) throws RemoteException { returnPendingIntentWithError(downloadedIntent); } Loading Loading @@ -333,12 +333,12 @@ public class MmsServiceBroker extends SystemService { @Override public void sendMessage(int subId, String callingPkg, Uri contentUri, String locationUrl, Bundle configOverrides, PendingIntent sentIntent, long messageId) long messageId, String attributionTag) throws RemoteException { Slog.d(TAG, "sendMessage() by " + callingPkg); mContext.enforceCallingPermission(Manifest.permission.SEND_SMS, "Send MMS message"); if (getAppOpsManager().noteOp(AppOpsManager.OP_SEND_SMS, Binder.getCallingUid(), callingPkg) != AppOpsManager.MODE_ALLOWED) { callingPkg, attributionTag, null) != AppOpsManager.MODE_ALLOWED) { Slog.e(TAG, callingPkg + " is not allowed to call sendMessage()"); return; } Loading @@ -347,18 +347,18 @@ public class MmsServiceBroker extends SystemService { Intent.FLAG_GRANT_READ_URI_PERMISSION, subId); getServiceGuarded().sendMessage(subId, callingPkg, contentUri, locationUrl, configOverrides, sentIntent, messageId); configOverrides, sentIntent, messageId, attributionTag); } @Override public void downloadMessage(int subId, String callingPkg, String locationUrl, Uri contentUri, Bundle configOverrides, PendingIntent downloadedIntent, long messageId) throws RemoteException { Uri contentUri, Bundle configOverrides, PendingIntent downloadedIntent, long messageId, String attributionTag) throws RemoteException { Slog.d(TAG, "downloadMessage() by " + callingPkg); mContext.enforceCallingPermission(Manifest.permission.RECEIVE_MMS, "Download MMS message"); if (getAppOpsManager().noteOp(AppOpsManager.OP_RECEIVE_MMS, Binder.getCallingUid(), callingPkg) != AppOpsManager.MODE_ALLOWED) { callingPkg, attributionTag, null) != AppOpsManager.MODE_ALLOWED) { Slog.e(TAG, callingPkg + " is not allowed to call downloadMessage()"); return; } Loading @@ -368,14 +368,14 @@ public class MmsServiceBroker extends SystemService { subId); getServiceGuarded().downloadMessage(subId, callingPkg, locationUrl, contentUri, configOverrides, downloadedIntent, messageId); configOverrides, downloadedIntent, messageId, attributionTag); } @Override public Uri importTextMessage(String callingPkg, String address, int type, String text, long timestampMillis, boolean seen, boolean read) throws RemoteException { if (getAppOpsManager().noteOp(AppOpsManager.OP_WRITE_SMS, Binder.getCallingUid(), callingPkg) != AppOpsManager.MODE_ALLOWED) { callingPkg, null, null) != AppOpsManager.MODE_ALLOWED) { // Silently fail AppOps failure due to not being the default SMS app // while writing the TelephonyProvider return FAKE_SMS_SENT_URI; Loading @@ -389,7 +389,7 @@ public class MmsServiceBroker extends SystemService { String messageId, long timestampSecs, boolean seen, boolean read) throws RemoteException { if (getAppOpsManager().noteOp(AppOpsManager.OP_WRITE_SMS, Binder.getCallingUid(), callingPkg) != AppOpsManager.MODE_ALLOWED) { callingPkg, null, null) != AppOpsManager.MODE_ALLOWED) { // Silently fail AppOps failure due to not being the default SMS app // while writing the TelephonyProvider return FAKE_MMS_SENT_URI; Loading @@ -402,7 +402,7 @@ public class MmsServiceBroker extends SystemService { public boolean deleteStoredMessage(String callingPkg, Uri messageUri) throws RemoteException { if (getAppOpsManager().noteOp(AppOpsManager.OP_WRITE_SMS, Binder.getCallingUid(), callingPkg) != AppOpsManager.MODE_ALLOWED) { callingPkg, null, null) != AppOpsManager.MODE_ALLOWED) { return false; } return getServiceGuarded().deleteStoredMessage(callingPkg, messageUri); Loading @@ -412,7 +412,7 @@ public class MmsServiceBroker extends SystemService { public boolean deleteStoredConversation(String callingPkg, long conversationId) throws RemoteException { if (getAppOpsManager().noteOp(AppOpsManager.OP_WRITE_SMS, Binder.getCallingUid(), callingPkg) != AppOpsManager.MODE_ALLOWED) { callingPkg, null, null) != AppOpsManager.MODE_ALLOWED) { return false; } return getServiceGuarded().deleteStoredConversation(callingPkg, conversationId); Loading @@ -422,7 +422,7 @@ public class MmsServiceBroker extends SystemService { public boolean updateStoredMessageStatus(String callingPkg, Uri messageUri, ContentValues statusValues) throws RemoteException { if (getAppOpsManager().noteOp(AppOpsManager.OP_WRITE_SMS, Binder.getCallingUid(), callingPkg) != AppOpsManager.MODE_ALLOWED) { callingPkg, null, null) != AppOpsManager.MODE_ALLOWED) { return false; } return getServiceGuarded() Loading @@ -433,7 +433,7 @@ public class MmsServiceBroker extends SystemService { public boolean archiveStoredConversation(String callingPkg, long conversationId, boolean archived) throws RemoteException { if (getAppOpsManager().noteOp(AppOpsManager.OP_WRITE_SMS, Binder.getCallingUid(), callingPkg) != AppOpsManager.MODE_ALLOWED) { callingPkg, null, null) != AppOpsManager.MODE_ALLOWED) { return false; } return getServiceGuarded() Loading @@ -444,7 +444,7 @@ public class MmsServiceBroker extends SystemService { public Uri addTextMessageDraft(String callingPkg, String address, String text) throws RemoteException { if (getAppOpsManager().noteOp(AppOpsManager.OP_WRITE_SMS, Binder.getCallingUid(), callingPkg) != AppOpsManager.MODE_ALLOWED) { callingPkg, null, null) != AppOpsManager.MODE_ALLOWED) { // Silently fail AppOps failure due to not being the default SMS app // while writing the TelephonyProvider return FAKE_SMS_DRAFT_URI; Loading @@ -456,7 +456,7 @@ public class MmsServiceBroker extends SystemService { public Uri addMultimediaMessageDraft(String callingPkg, Uri contentUri) throws RemoteException { if (getAppOpsManager().noteOp(AppOpsManager.OP_WRITE_SMS, Binder.getCallingUid(), callingPkg) != AppOpsManager.MODE_ALLOWED) { callingPkg, null, null) != AppOpsManager.MODE_ALLOWED) { // Silently fail AppOps failure due to not being the default SMS app // while writing the TelephonyProvider return FAKE_MMS_DRAFT_URI; Loading @@ -468,7 +468,7 @@ public class MmsServiceBroker extends SystemService { public void sendStoredMessage(int subId, String callingPkg, Uri messageUri, Bundle configOverrides, PendingIntent sentIntent) throws RemoteException { if (getAppOpsManager().noteOp(AppOpsManager.OP_SEND_SMS, Binder.getCallingUid(), callingPkg) != AppOpsManager.MODE_ALLOWED) { callingPkg, null, null) != AppOpsManager.MODE_ALLOWED) { return; } getServiceGuarded().sendStoredMessage(subId, callingPkg, messageUri, configOverrides, Loading @@ -478,7 +478,7 @@ public class MmsServiceBroker extends SystemService { @Override public void setAutoPersisting(String callingPkg, boolean enabled) throws RemoteException { if (getAppOpsManager().noteOp(AppOpsManager.OP_WRITE_SMS, Binder.getCallingUid(), callingPkg) != AppOpsManager.MODE_ALLOWED) { callingPkg, null, null) != AppOpsManager.MODE_ALLOWED) { return; } getServiceGuarded().setAutoPersisting(callingPkg, enabled); Loading Loading
mms/java/android/telephony/MmsManager.java +3 −2 Original line number Diff line number Diff line Loading @@ -70,7 +70,8 @@ public class MmsManager { } iMms.sendMessage(subId, ActivityThread.currentPackageName(), contentUri, locationUrl, configOverrides, sentIntent, messageId); locationUrl, configOverrides, sentIntent, messageId, mContext.getAttributionTag()); } catch (RemoteException e) { // Ignore it } Loading Loading @@ -102,7 +103,7 @@ public class MmsManager { } iMms.downloadMessage(subId, ActivityThread.currentPackageName(), locationUrl, contentUri, configOverrides, downloadedIntent, messageId); messageId, mContext.getAttributionTag()); } catch (RemoteException e) { // Ignore it } Loading
mms/java/com/android/internal/telephony/IMms.aidl +5 −3 Original line number Diff line number Diff line Loading @@ -26,7 +26,7 @@ import android.os.Bundle; */ interface IMms { /** * Send an MMS message * Send an MMS message with attribution tag. * * @param subId the SIM id * @param callingPkg the package name of the calling app Loading @@ -38,10 +38,11 @@ interface IMms { * @param sentIntent if not NULL this <code>PendingIntent</code> is * broadcast when the message is successfully sent, or failed * @param messageId An id that uniquely identifies the message requested to be sent. * @param attributionTag a tag that attributes the call to a client App. */ void sendMessage(int subId, String callingPkg, in Uri contentUri, String locationUrl, in Bundle configOverrides, in PendingIntent sentIntent, in long messageId); in long messageId, String attributionTag); /** * Download an MMS message using known location and transaction id Loading @@ -57,10 +58,11 @@ interface IMms { * @param downloadedIntent if not NULL this <code>PendingIntent</code> is * broadcast when the message is downloaded, or the download is failed * @param messageId An id that uniquely identifies the message requested to be downloaded. * @param attributionTag a tag that attributes the call to a client App. */ void downloadMessage(int subId, String callingPkg, String locationUrl, in Uri contentUri, in Bundle configOverrides, in PendingIntent downloadedIntent, in long messageId); in PendingIntent downloadedIntent, in long messageId, String attributionTag); /** * Import a text message into system's SMS store Loading
services/core/java/com/android/server/MmsServiceBroker.java +20 −20 Original line number Diff line number Diff line Loading @@ -129,15 +129,15 @@ public class MmsServiceBroker extends SystemService { @Override public void sendMessage(int subId, String callingPkg, Uri contentUri, String locationUrl, Bundle configOverrides, PendingIntent sentIntent, long messageId) throws RemoteException { Bundle configOverrides, PendingIntent sentIntent, long messageId, String attributionTag) throws RemoteException { returnPendingIntentWithError(sentIntent); } @Override public void downloadMessage(int subId, String callingPkg, String locationUrl, Uri contentUri, Bundle configOverrides, PendingIntent downloadedIntent, long messageId) long messageId, String attributionTag) throws RemoteException { returnPendingIntentWithError(downloadedIntent); } Loading Loading @@ -333,12 +333,12 @@ public class MmsServiceBroker extends SystemService { @Override public void sendMessage(int subId, String callingPkg, Uri contentUri, String locationUrl, Bundle configOverrides, PendingIntent sentIntent, long messageId) long messageId, String attributionTag) throws RemoteException { Slog.d(TAG, "sendMessage() by " + callingPkg); mContext.enforceCallingPermission(Manifest.permission.SEND_SMS, "Send MMS message"); if (getAppOpsManager().noteOp(AppOpsManager.OP_SEND_SMS, Binder.getCallingUid(), callingPkg) != AppOpsManager.MODE_ALLOWED) { callingPkg, attributionTag, null) != AppOpsManager.MODE_ALLOWED) { Slog.e(TAG, callingPkg + " is not allowed to call sendMessage()"); return; } Loading @@ -347,18 +347,18 @@ public class MmsServiceBroker extends SystemService { Intent.FLAG_GRANT_READ_URI_PERMISSION, subId); getServiceGuarded().sendMessage(subId, callingPkg, contentUri, locationUrl, configOverrides, sentIntent, messageId); configOverrides, sentIntent, messageId, attributionTag); } @Override public void downloadMessage(int subId, String callingPkg, String locationUrl, Uri contentUri, Bundle configOverrides, PendingIntent downloadedIntent, long messageId) throws RemoteException { Uri contentUri, Bundle configOverrides, PendingIntent downloadedIntent, long messageId, String attributionTag) throws RemoteException { Slog.d(TAG, "downloadMessage() by " + callingPkg); mContext.enforceCallingPermission(Manifest.permission.RECEIVE_MMS, "Download MMS message"); if (getAppOpsManager().noteOp(AppOpsManager.OP_RECEIVE_MMS, Binder.getCallingUid(), callingPkg) != AppOpsManager.MODE_ALLOWED) { callingPkg, attributionTag, null) != AppOpsManager.MODE_ALLOWED) { Slog.e(TAG, callingPkg + " is not allowed to call downloadMessage()"); return; } Loading @@ -368,14 +368,14 @@ public class MmsServiceBroker extends SystemService { subId); getServiceGuarded().downloadMessage(subId, callingPkg, locationUrl, contentUri, configOverrides, downloadedIntent, messageId); configOverrides, downloadedIntent, messageId, attributionTag); } @Override public Uri importTextMessage(String callingPkg, String address, int type, String text, long timestampMillis, boolean seen, boolean read) throws RemoteException { if (getAppOpsManager().noteOp(AppOpsManager.OP_WRITE_SMS, Binder.getCallingUid(), callingPkg) != AppOpsManager.MODE_ALLOWED) { callingPkg, null, null) != AppOpsManager.MODE_ALLOWED) { // Silently fail AppOps failure due to not being the default SMS app // while writing the TelephonyProvider return FAKE_SMS_SENT_URI; Loading @@ -389,7 +389,7 @@ public class MmsServiceBroker extends SystemService { String messageId, long timestampSecs, boolean seen, boolean read) throws RemoteException { if (getAppOpsManager().noteOp(AppOpsManager.OP_WRITE_SMS, Binder.getCallingUid(), callingPkg) != AppOpsManager.MODE_ALLOWED) { callingPkg, null, null) != AppOpsManager.MODE_ALLOWED) { // Silently fail AppOps failure due to not being the default SMS app // while writing the TelephonyProvider return FAKE_MMS_SENT_URI; Loading @@ -402,7 +402,7 @@ public class MmsServiceBroker extends SystemService { public boolean deleteStoredMessage(String callingPkg, Uri messageUri) throws RemoteException { if (getAppOpsManager().noteOp(AppOpsManager.OP_WRITE_SMS, Binder.getCallingUid(), callingPkg) != AppOpsManager.MODE_ALLOWED) { callingPkg, null, null) != AppOpsManager.MODE_ALLOWED) { return false; } return getServiceGuarded().deleteStoredMessage(callingPkg, messageUri); Loading @@ -412,7 +412,7 @@ public class MmsServiceBroker extends SystemService { public boolean deleteStoredConversation(String callingPkg, long conversationId) throws RemoteException { if (getAppOpsManager().noteOp(AppOpsManager.OP_WRITE_SMS, Binder.getCallingUid(), callingPkg) != AppOpsManager.MODE_ALLOWED) { callingPkg, null, null) != AppOpsManager.MODE_ALLOWED) { return false; } return getServiceGuarded().deleteStoredConversation(callingPkg, conversationId); Loading @@ -422,7 +422,7 @@ public class MmsServiceBroker extends SystemService { public boolean updateStoredMessageStatus(String callingPkg, Uri messageUri, ContentValues statusValues) throws RemoteException { if (getAppOpsManager().noteOp(AppOpsManager.OP_WRITE_SMS, Binder.getCallingUid(), callingPkg) != AppOpsManager.MODE_ALLOWED) { callingPkg, null, null) != AppOpsManager.MODE_ALLOWED) { return false; } return getServiceGuarded() Loading @@ -433,7 +433,7 @@ public class MmsServiceBroker extends SystemService { public boolean archiveStoredConversation(String callingPkg, long conversationId, boolean archived) throws RemoteException { if (getAppOpsManager().noteOp(AppOpsManager.OP_WRITE_SMS, Binder.getCallingUid(), callingPkg) != AppOpsManager.MODE_ALLOWED) { callingPkg, null, null) != AppOpsManager.MODE_ALLOWED) { return false; } return getServiceGuarded() Loading @@ -444,7 +444,7 @@ public class MmsServiceBroker extends SystemService { public Uri addTextMessageDraft(String callingPkg, String address, String text) throws RemoteException { if (getAppOpsManager().noteOp(AppOpsManager.OP_WRITE_SMS, Binder.getCallingUid(), callingPkg) != AppOpsManager.MODE_ALLOWED) { callingPkg, null, null) != AppOpsManager.MODE_ALLOWED) { // Silently fail AppOps failure due to not being the default SMS app // while writing the TelephonyProvider return FAKE_SMS_DRAFT_URI; Loading @@ -456,7 +456,7 @@ public class MmsServiceBroker extends SystemService { public Uri addMultimediaMessageDraft(String callingPkg, Uri contentUri) throws RemoteException { if (getAppOpsManager().noteOp(AppOpsManager.OP_WRITE_SMS, Binder.getCallingUid(), callingPkg) != AppOpsManager.MODE_ALLOWED) { callingPkg, null, null) != AppOpsManager.MODE_ALLOWED) { // Silently fail AppOps failure due to not being the default SMS app // while writing the TelephonyProvider return FAKE_MMS_DRAFT_URI; Loading @@ -468,7 +468,7 @@ public class MmsServiceBroker extends SystemService { public void sendStoredMessage(int subId, String callingPkg, Uri messageUri, Bundle configOverrides, PendingIntent sentIntent) throws RemoteException { if (getAppOpsManager().noteOp(AppOpsManager.OP_SEND_SMS, Binder.getCallingUid(), callingPkg) != AppOpsManager.MODE_ALLOWED) { callingPkg, null, null) != AppOpsManager.MODE_ALLOWED) { return; } getServiceGuarded().sendStoredMessage(subId, callingPkg, messageUri, configOverrides, Loading @@ -478,7 +478,7 @@ public class MmsServiceBroker extends SystemService { @Override public void setAutoPersisting(String callingPkg, boolean enabled) throws RemoteException { if (getAppOpsManager().noteOp(AppOpsManager.OP_WRITE_SMS, Binder.getCallingUid(), callingPkg) != AppOpsManager.MODE_ALLOWED) { callingPkg, null, null) != AppOpsManager.MODE_ALLOWED) { return; } getServiceGuarded().setAutoPersisting(callingPkg, enabled); Loading