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

Commit b6494a9a authored by Chad Brubaker's avatar Chad Brubaker Committed by android-build-team Robot
Browse files

Relax Instant Apps Settings whitelist enforcement

The strict whitelist of settings for Instant Apps is leading to too much
unintended breakage, remove the enforcement until better infrastructure
can be added to make sure settings that should be whitelisted are.

Bug: 71009655
Test: Coming in a follow up

(cherry picked from commit b6108d62)

Change-Id: Iaa1d71331407cee86c10105c1e5668ffd0c925a1
(cherry picked from commit 26ae1d35)
parent 3ddda877
Loading
Loading
Loading
Loading
+7 −14
Original line number Diff line number Diff line
@@ -1687,19 +1687,10 @@ public class SettingsProvider extends ContentProvider {
    }

    private List<String> getSettingsNamesLocked(int settingsType, int userId) {
        boolean instantApp;
        if (UserHandle.getAppId(Binder.getCallingUid()) < Process.FIRST_APPLICATION_UID) {
            instantApp = false;
        } else {
            ApplicationInfo ai = getCallingApplicationInfoOrThrow();
            instantApp = ai.isInstantApp();
        }
        if (instantApp) {
            return new ArrayList<String>(getInstantAppAccessibleSettings(settingsType));
        } else {
        // Don't enforce the instant app whitelist for now -- its too prone to unintended breakage
        // in the current form.
        return mSettingsRegistry.getSettingsNamesLocked(settingsType, userId);
    }
    }

    private void enforceSettingReadable(String settingName, int settingsType, int userId) {
        if (UserHandle.getAppId(Binder.getCallingUid()) < Process.FIRST_APPLICATION_UID) {
@@ -1711,8 +1702,10 @@ public class SettingsProvider extends ContentProvider {
        }
        if (!getInstantAppAccessibleSettings(settingsType).contains(settingName)
                && !getOverlayInstantAppAccessibleSettings(settingsType).contains(settingName)) {
            throw new SecurityException("Setting " + settingName + " is not accessible from"
                    + " ephemeral package " + getCallingPackage());
            // Don't enforce the instant app whitelist for now -- its too prone to unintended
            // breakage in the current form.
            Slog.w(LOG_TAG, "Instant App " + ai.packageName
                    + " trying to access unexposed setting, this will be an error in the future.");
        }
    }