ServiceStateProvider: sanitize location info if caller has no permission

Telephony#ServiceStateTable requires no read permission when
applications try to get the ServiceState for supported subscriptions.
This may leak location sensitive infos and bring security and
privacy concern.

The fix follows the same policy as TelephonyManager#getServiceState
and scrubs out location info from ServiceState when needed before
returning to clients.

Bug: 182384053
Test: atest com.android.phone.ServiceStateProviderTest
Test: atest android.telephonyprovider.cts.ServiceStateTest

Change-Id: I176fb3fbe02bcdc36b900c62f8a59344426f077b
2 files changed