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

Commit 3d23e905 authored by Lorenzo Colitti's avatar Lorenzo Colitti Committed by android-build-merger
Browse files

Merge "Change permissions checks for setAirplaneMode." am: 3889ff53

am: 10c17504

Change-Id: Ibe5bbd51adae83e1bfb5a4ab43d29eb2ccd02a8b
parents 412c92ef 10c17504
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -2731,7 +2731,10 @@ public class ConnectivityManager {
     *
     * @hide
     */
    @RequiresPermission(android.Manifest.permission.CONNECTIVITY_INTERNAL)
    @RequiresPermission(anyOf = {
            android.Manifest.permission.NETWORK_SETTINGS,
            android.Manifest.permission.NETWORK_SETUP_WIZARD,
            android.Manifest.permission.NETWORK_STACK})
    @SystemApi
    public void setAirplaneMode(boolean enable) {
        try {
+18 −1
Original line number Diff line number Diff line
@@ -1679,6 +1679,16 @@ public class ConnectivityService extends IConnectivityManager.Stub
                "ConnectivityService");
    }

    private void enforceAnyPermissionOf(String... permissions) {
        for (String permission : permissions) {
            if (mContext.checkCallingOrSelfPermission(permission) == PERMISSION_GRANTED) {
                return;
            }
        }
        throw new SecurityException(
            "Requires one of the following permissions: " + String.join(", ", permissions) + ".");
    }

    private void enforceInternetPermission() {
        mContext.enforceCallingOrSelfPermission(
                android.Manifest.permission.INTERNET,
@@ -1723,6 +1733,13 @@ public class ConnectivityService extends IConnectivityManager.Stub
                "ConnectivityService");
    }

    private void enforceNetworkStackSettingsOrSetup() {
        enforceAnyPermissionOf(
            android.Manifest.permission.NETWORK_SETTINGS,
            android.Manifest.permission.NETWORK_SETUP_WIZARD,
            android.Manifest.permission.NETWORK_STACK);
    }

    private boolean checkNetworkStackPermission() {
        return PERMISSION_GRANTED == mContext.checkCallingOrSelfPermission(
                android.Manifest.permission.NETWORK_STACK);
@@ -3984,7 +4001,7 @@ public class ConnectivityService extends IConnectivityManager.Stub

    @Override
    public void setAirplaneMode(boolean enable) {
        enforceConnectivityInternalPermission();
        enforceNetworkStackSettingsOrSetup();
        final long ident = Binder.clearCallingIdentity();
        try {
            final ContentResolver cr = mContext.getContentResolver();