Adding permission for OEM managed preferences

Adding CONTROL_OEM_PAID_NETWORK_PREFERENCE as a signature level
permission to allow an application to control OEM managed network
preferences.

Bug: 176496438
Bug: 176494815
Test: atest FrameworksNetTests
atest NetworkStackTests
atest FrameworksNetIntegrationTests
atest NetworkStackIntegrationTests
atest CtsNetTestCasesLatestSdk
Change-Id: Iee13e89f3931c7079c2d88cb57b249b1b1cf93ad

Change-Id: Id29cafe1eaf5dff8a0605cb2579204d9c77b7e70
This commit is contained in:
James Mattis
2021-01-26 14:05:36 -08:00
parent 45d81845a4
commit 8378aec5fb
2 changed files with 9 additions and 1 deletions

View File

@@ -5116,6 +5116,7 @@ public class ConnectivityManager {
* @throws SecurityException if missing the appropriate permissions. * @throws SecurityException if missing the appropriate permissions.
* @throws UnsupportedOperationException if called on a non-automotive device. * @throws UnsupportedOperationException if called on a non-automotive device.
*/ */
@RequiresPermission(android.Manifest.permission.CONTROL_OEM_PAID_NETWORK_PREFERENCE)
private void setOemNetworkPreference(@NonNull final OemNetworkPreferences preference, private void setOemNetworkPreference(@NonNull final OemNetworkPreferences preference,
@Nullable @CallbackExecutor final Executor executor, @Nullable @CallbackExecutor final Executor executor,
@Nullable final OnSetOemNetworkPreferenceListener listener) { @Nullable final OnSetOemNetworkPreferenceListener listener) {

View File

@@ -2312,6 +2312,12 @@ public class ConnectivityService extends IConnectivityManager.Stub
NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK); NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK);
} }
private void enforceOemNetworkPreferencesPermission() {
mContext.enforceCallingOrSelfPermission(
android.Manifest.permission.CONTROL_OEM_PAID_NETWORK_PREFERENCE,
"ConnectivityService");
}
private boolean checkNetworkStackPermission() { private boolean checkNetworkStackPermission() {
return checkAnyPermissionOf( return checkAnyPermissionOf(
android.Manifest.permission.NETWORK_STACK, android.Manifest.permission.NETWORK_STACK,
@@ -9334,8 +9340,9 @@ public class ConnectivityService extends IConnectivityManager.Stub
public void setOemNetworkPreference( public void setOemNetworkPreference(
@NonNull final OemNetworkPreferences preference, @NonNull final OemNetworkPreferences preference,
@Nullable final IOnSetOemNetworkPreferenceListener listener) { @Nullable final IOnSetOemNetworkPreferenceListener listener) {
enforceOemNetworkPreferencesPermission();
enforceAutomotiveDevice(); enforceAutomotiveDevice();
// TODO http://b/176496438 add permission check once permissions are added.
Objects.requireNonNull(preference, "OemNetworkPreferences must be non-null"); Objects.requireNonNull(preference, "OemNetworkPreferences must be non-null");
validateOemNetworkPreferences(preference); validateOemNetworkPreferences(preference);