Make SmsApplication checks more defensive
authorDavid Braun <dabraun@google.com>
Sun, 13 Oct 2013 21:23:17 +0000 (14:23 -0700)
committerDavid Braun <dabraun@google.com>
Sun, 13 Oct 2013 21:23:17 +0000 (14:23 -0700)
commitc67761d00a25bd095364e3ff4e4cb8e88b2e974c
treeda43bdf56077e6ed10e6e8dc1d9865369f28443e
parent1260f1c6c909f2940989b72afe1b91fd83845eaa
Make SmsApplication checks more defensive

When SmsApplication::getApplication is called it will check to see if the
configured default SMS app and the phone package have the needed app ops
to work properly. If the call was made from a privilidged caller where
updateIfNeeded == true then the issue will be corrected, if the call was
made from an insecure caller we will return null indicating no default SMS
app which will cause client apps to know that they are not properly set
as the default SMS app. Either way we log an error.

When SmsApplication::setDefaultApplication is called we will ensure that
even if the previous app is no longer enabled or no longer set up as a
valid SMS app, we will still revoke it's OP_WRITE_SMS permission.

Bug: 11071837 Hangouts on KLP lost the WRITE_SMS permission
Change-Id: Ifea39a3d63e4ec3a30a6a1fa5834878dcc9ccfa0
src/java/com/android/internal/telephony/PhoneFactory.java
src/java/com/android/internal/telephony/SmsApplication.java