Fix permissions check in IccSmsInterfaceManager.sendText()

In android.internal.telephony.IccSmsInterfaceManager, we currently use
enforceCallingPermission() rather than enforceCallingOrSelfPermission()
to enforce the SEND_SMS permission.

The difference is that enforceCallingPermission() will ALWAYS throw a
SecurityException if you're not handling an IPC, i.e. if the request is
from the same process as the telephony framework.

In other words, the current code prevents the phone app from ever using
SmsManager.sendTextMessage() :-(

This change fixes IccSmsInterfaceManager.sendText() to use
enforceCallingOrSelfPermission(), and I confirmed I can now send SMSes
from the phone app.

NOTE there are a bunch of other uses of enforceCallingPermission() in the
telephony framework (all SMS-related) that we probably want to fix too,
although I'm fixing just this one for now since it's blocking a hi-pri
phone UI feature.  I opened bug 4686733 to cover the rest of the cleanup,
though.

Bug: 4686733
Change-Id: Iaffcf62c54493fa4961fb20894c974697f26e3a7
1 file changed