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

Commit 10c17504 authored by Lorenzo Colitti's avatar Lorenzo Colitti Committed by android-build-merger
Browse files

Merge "Change permissions checks for setAirplaneMode."

am: 3889ff53

Change-Id: I578923c3f9012055f715e536f5d4d42ed669c5ee
parents 4da9f200 3889ff53
Loading
Loading
Loading
Loading
+4 −1
Original line number Original line Diff line number Diff line
@@ -2731,7 +2731,10 @@ public class ConnectivityManager {
     *
     *
     * @hide
     * @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
    @SystemApi
    public void setAirplaneMode(boolean enable) {
    public void setAirplaneMode(boolean enable) {
        try {
        try {
+18 −1
Original line number Original line Diff line number Diff line
@@ -1679,6 +1679,16 @@ public class ConnectivityService extends IConnectivityManager.Stub
                "ConnectivityService");
                "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() {
    private void enforceInternetPermission() {
        mContext.enforceCallingOrSelfPermission(
        mContext.enforceCallingOrSelfPermission(
                android.Manifest.permission.INTERNET,
                android.Manifest.permission.INTERNET,
@@ -1723,6 +1733,13 @@ public class ConnectivityService extends IConnectivityManager.Stub
                "ConnectivityService");
                "ConnectivityService");
    }
    }


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

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


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