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

Commit 6a33111b authored by Matías Hernández's avatar Matías Hernández Committed by Android (Google) Code Review
Browse files

Revert "Ensure allowlist token"

This reverts commit 8bfdef2a.

Reason for revert: Issue will be fixed in a different way

Change-Id: I76025cfa09acc27b111eec840c38bfa88feab45c
parent 8bfdef2a
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -3540,12 +3540,15 @@ public class Notification implements Parcelable
     * Sets the token used for background operations for the pending intents associated with this
     * notification.
     *
     * This token is automatically set during deserialization for you, you usually won't need to
     * call this unless you want to change the existing token, if any.
     *
     * @hide
     */
    public void overrideAllowlistToken(IBinder token) {
        mAllowlistToken = token;
    public void clearAllowlistToken() {
        mAllowlistToken = null;
        if (publicVersion != null) {
            publicVersion.overrideAllowlistToken(token);
            publicVersion.clearAllowlistToken();
        }
    }
+2 −4
Original line number Diff line number Diff line
@@ -727,7 +727,7 @@ public class NotificationManagerService extends SystemService {
    private static final int MY_UID = Process.myUid();
    private static final int MY_PID = Process.myPid();
    static final IBinder ALLOWLIST_TOKEN = new Binder();
    private static final IBinder ALLOWLIST_TOKEN = new Binder();
    protected RankingHandler mRankingHandler;
    private long mLastOverRateLogTime;
    private float mMaxPackageEnqueueRate = DEFAULT_MAX_NOTIFICATION_ENQUEUE_RATE;
@@ -4759,7 +4759,7 @@ public class NotificationManagerService extends SystemService {
                    // Remove background token before returning notification to untrusted app, this
                    // ensures the app isn't able to perform background operations that are
                    // associated with notification interactions.
                    notification.overrideAllowlistToken(null);
                    notification.clearAllowlistToken();
                    return new StatusBarNotification(
                            sbn.getPackageName(),
                            sbn.getOpPkg(),
@@ -7634,8 +7634,6 @@ public class NotificationManagerService extends SystemService {
            }
        }
        notification.overrideAllowlistToken(ALLOWLIST_TOKEN);
        // Remote views? Are they too big?
        checkRemoteViews(pkg, tag, id, notification);
    }
+0 −30
Original line number Diff line number Diff line
@@ -323,7 +323,6 @@ import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
@@ -12862,35 +12861,6 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
        assertSame(0, n.flags & Notification.FLAG_NO_DISMISS);
    }
    @Test
    public void fixNotification_customAllowlistToken()
            throws Exception {
        Notification n = new Notification.Builder(mContext, "test")
                .build();
        try {
            Field allowlistToken = Class.forName("android.app.Notification").
                    getDeclaredField("mAllowlistToken");
            allowlistToken.setAccessible(true);
            allowlistToken.set(n, new Binder());
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
        mService.fixNotification(n, PKG, "tag", 9, 0, mUid, NOT_FOREGROUND_SERVICE, true);
        IBinder actual = null;
        try {
            Field allowlistToken = Class.forName("android.app.Notification").
                    getDeclaredField("mAllowlistToken");
            allowlistToken.setAccessible(true);
            actual = (IBinder) allowlistToken.get(n);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
        assertTrue(mService.ALLOWLIST_TOKEN == actual);
    }
    @Test
    public void testCancelAllNotifications_IgnoreUserInitiatedJob() throws Exception {
        when(mJsi.isNotificationAssociatedWithAnyUserInitiatedJobs(anyInt(), anyInt(), anyString()))