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

Commit 4baae1f7 authored by Nikita Ioffe's avatar Nikita Ioffe Committed by Android (Google) Code Review
Browse files

Merge "Don't allow sdk sandbox processes to register/unregister CPs" into tm-dev

parents 8f7bd454 a6b7d977
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -112,6 +112,13 @@ public class ContentProviderHelper {
    ContentProviderHolder getContentProvider(IApplicationThread caller, String callingPackage,
            String name, int userId, boolean stable) {
        mService.enforceNotIsolatedCaller("getContentProvider");
        if (Process.isSdkSandboxUid(Binder.getCallingUid())) {
            // TODO(b/226318628): for sdk sandbox processes only allow accessing CPs registered by
            //  the WebView apk.
            Slog.w(TAG, "Sdk sandbox process " + Binder.getCallingUid()
                    + " is accessing content provider " + name
                    + ". This access will most likely be blocked in the future");
        }
        if (caller == null) {
            String msg = "null IApplicationThread when getting content provider " + name;
            Slog.w(TAG, msg);
@@ -630,7 +637,7 @@ public class ContentProviderHelper {
            return;
        }

        mService.enforceNotIsolatedCaller("publishContentProviders");
        mService.enforceNotIsolatedOrSdkSandboxCaller("publishContentProviders");
        synchronized (mService) {
            final ProcessRecord r = mService.getRecordForAppLOSP(caller);
            if (DEBUG_MU) {
@@ -717,7 +724,7 @@ public class ContentProviderHelper {
     * Drop a content provider from a ProcessRecord's bookkeeping
     */
    void removeContentProvider(IBinder connection, boolean stable) {
        mService.enforceNotIsolatedCaller("removeContentProvider");
        mService.enforceNotIsolatedOrSdkSandboxCaller("removeContentProvider");
        final long ident = Binder.clearCallingIdentity();
        try {
            ContentProviderConnection conn;