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

Commit d42209db authored by Jeremy Klein's avatar Jeremy Klein
Browse files

Add a TETHER_PRIVILEGED permission and use it where needed.

BUG: 26247383
Change-Id: I73f7227d77926faa9081e83eccb83c8ddee33e08
parent c33f357b
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -215,6 +215,7 @@ package android {
    field public static final java.lang.String STATUS_BAR = "android.permission.STATUS_BAR";
    field public static final java.lang.String STOP_APP_SWITCHES = "android.permission.STOP_APP_SWITCHES";
    field public static final java.lang.String SYSTEM_ALERT_WINDOW = "android.permission.SYSTEM_ALERT_WINDOW";
    field public static final java.lang.String TETHER_PRIVILEGED = "android.permission.TETHER_PRIVILEGED";
    field public static final java.lang.String TRANSMIT_IR = "android.permission.TRANSMIT_IR";
    field public static final java.lang.String TV_INPUT_HARDWARE = "android.permission.TV_INPUT_HARDWARE";
    field public static final java.lang.String UNINSTALL_SHORTCUT = "com.android.launcher.permission.UNINSTALL_SHORTCUT";
+4 −5
Original line number Diff line number Diff line
@@ -23,7 +23,6 @@ import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.NetworkUtils;
import android.os.Binder;
import android.os.Build.VERSION_CODES;
import android.os.Handler;
@@ -46,11 +45,11 @@ import com.android.internal.telephony.ITelephony;
import com.android.internal.telephony.PhoneConstants;
import com.android.internal.util.Protocol;

import libcore.net.event.NetworkEventDispatcher;

import java.net.InetAddress;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.HashMap;

import libcore.net.event.NetworkEventDispatcher;
import java.util.concurrent.atomic.AtomicInteger;

/**
 * Class that answers queries about the state of network connectivity. It also
@@ -1611,7 +1610,7 @@ public class ConnectivityManager {
            // Have a provisioning app - must only let system apps (which check this app)
            // turn on tethering
            context.enforceCallingOrSelfPermission(
                    android.Manifest.permission.CONNECTIVITY_INTERNAL, "ConnectivityService");
                    android.Manifest.permission.TETHER_PRIVILEGED, "ConnectivityService");
        } else {
            int uid = Binder.getCallingUid();
            Settings.checkAndNoteWriteSettingsOperation(context, uid, Settings
+6 −0
Original line number Diff line number Diff line
@@ -1052,6 +1052,12 @@
    <permission android:name="android.permission.READ_WIFI_CREDENTIAL"
        android:protectionLevel="signature|privileged" />

    <!-- @SystemApi @hide Allows applications to change tether state and run
         tether carrier provisioning.
         <p>Not for use by third-party applications. -->
    <permission android:name="android.permission.TETHER_PRIVILEGED"
        android:protectionLevel="signature|privileged" />

    <!-- @SystemApi @hide Allow system apps to receive broadcast
         when a wifi network credential is changed.
         <p>Not for use by third-party applications. -->
+1 −0
Original line number Diff line number Diff line
@@ -75,6 +75,7 @@
    <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
    <!-- This permission is added for API call setAirplaneMode() in ConnectivityManager -->
    <uses-permission android:name="android.permission.CONNECTIVITY_INTERNAL" />
    <uses-permission android:name="android.permission.TETHER_PRIVILEGED" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.DEVICE_POWER" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
+1 −0
Original line number Diff line number Diff line
@@ -58,6 +58,7 @@
    <uses-permission android:name="android.permission.OVERRIDE_WIFI_CONFIG" />
    <uses-permission android:name="android.permission.MANAGE_NETWORK_POLICY" />
    <uses-permission android:name="android.permission.CONNECTIVITY_INTERNAL" />
    <uses-permission android:name="android.permission.TETHER_PRIVILEGED" />
    <uses-permission android:name="android.permission.READ_NETWORK_USAGE_HISTORY" />
    <uses-permission android:name="android.permission.CONTROL_VPN" />
    <uses-permission android:name="android.permission.PEERS_MAC_ADDRESS"/>