Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6f4a9ce8 authored by James Mattis's avatar James Mattis
Browse files

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
parent 82da6ad3
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -74,6 +74,7 @@ package android {
    field public static final String CONTROL_DISPLAY_SATURATION = "android.permission.CONTROL_DISPLAY_SATURATION";
    field public static final String CONTROL_INCALL_EXPERIENCE = "android.permission.CONTROL_INCALL_EXPERIENCE";
    field public static final String CONTROL_KEYGUARD_SECURE_NOTIFICATIONS = "android.permission.CONTROL_KEYGUARD_SECURE_NOTIFICATIONS";
    field public static final String CONTROL_OEM_PAID_NETWORK_PREFERENCE = "android.permission.CONTROL_OEM_PAID_NETWORK_PREFERENCE";
    field public static final String CONTROL_VPN = "android.permission.CONTROL_VPN";
    field public static final String CREATE_USERS = "android.permission.CREATE_USERS";
    field public static final String CRYPT_KEEPER = "android.permission.CRYPT_KEEPER";
+6 −0
Original line number Diff line number Diff line
@@ -1790,6 +1790,12 @@
    <permission android:name="android.permission.WIFI_ACCESS_COEX_UNSAFE_CHANNELS"
                android:protectionLevel="signature|privileged" />

    <!-- @SystemApi @hide Allows an application to manage an automotive device's application network
         preference as it relates to OEM_PAID and OEM_PRIVATE capable networks.
         <p>Not for use by third-party or privileged applications. -->
    <permission android:name="android.permission.CONTROL_OEM_PAID_NETWORK_PREFERENCE"
        android:protectionLevel="signature" />

    <!-- ======================================= -->
    <!-- Permissions for short range, peripheral networks -->
    <!-- ======================================= -->
+1 −0
Original line number Diff line number Diff line
@@ -5116,6 +5116,7 @@ public class ConnectivityManager {
     * @throws SecurityException if missing the appropriate permissions.
     * @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,
            @Nullable @CallbackExecutor final Executor executor,
            @Nullable final OnSetOemNetworkPreferenceListener listener) {
+8 −1
Original line number Diff line number Diff line
@@ -2312,6 +2312,12 @@ public class ConnectivityService extends IConnectivityManager.Stub
                NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK);
    }

    private void enforceOemNetworkPreferencesPermission() {
        mContext.enforceCallingOrSelfPermission(
                android.Manifest.permission.CONTROL_OEM_PAID_NETWORK_PREFERENCE,
                "ConnectivityService");
    }

    private boolean checkNetworkStackPermission() {
        return checkAnyPermissionOf(
                android.Manifest.permission.NETWORK_STACK,
@@ -9334,8 +9340,9 @@ public class ConnectivityService extends IConnectivityManager.Stub
    public void setOemNetworkPreference(
            @NonNull final OemNetworkPreferences preference,
            @Nullable final IOnSetOemNetworkPreferenceListener listener) {

        enforceOemNetworkPreferencesPermission();
        enforceAutomotiveDevice();
        // TODO http://b/176496438 add permission check once permissions are added.

        Objects.requireNonNull(preference, "OemNetworkPreferences must be non-null");
        validateOemNetworkPreferences(preference);
+1 −0
Original line number Diff line number Diff line
@@ -48,6 +48,7 @@
    <uses-permission android:name="android.permission.OBSERVE_NETWORK_POLICY" />
    <uses-permission android:name="android.permission.NETWORK_FACTORY" />
    <uses-permission android:name="android.permission.NETWORK_STATS_PROVIDER" />
    <uses-permission android:name="android.permission.CONTROL_OEM_PAID_NETWORK_PREFERENCE" />

    <application>
        <uses-library android:name="android.test.runner" />