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

Unverified Commit 855121cd authored by Kevin F. Haggerty's avatar Kevin F. Haggerty
Browse files

Merge tag 'android-security-11.0.0_r65' of...

Merge tag 'android-security-11.0.0_r65' of https://android.googlesource.com/platform/packages/apps/Settings into staging/lineage-18.1_merge_android-security-11.0.0_r65

Android security 11.0.0 release 65

* tag 'android-security-11.0.0_r65' of https://android.googlesource.com/platform/packages/apps/Settings:
  Add DISALLOW_APPS_CONTROL check into uninstall app for all users
  [DO NOT MERGE] FRP bypass defense in the settings app

Change-Id: I56b0227baddc3a1d15a8341f598b3670829c0754
parents b7978331 4053fe7a
Loading
Loading
Loading
Loading
+22 −1
Original line number Diff line number Diff line
@@ -55,6 +55,8 @@ import com.android.settingslib.core.instrumentation.Instrumentable;
import com.android.settingslib.search.Indexable;
import com.android.settingslib.widget.LayoutPreference;

import com.google.android.setupcompat.util.WizardManagerHelper;

import java.util.UUID;

/**
@@ -63,7 +65,7 @@ import java.util.UUID;
public abstract class SettingsPreferenceFragment extends InstrumentedPreferenceFragment
        implements DialogCreatable, HelpResourceProvider, Indexable {

    private static final String TAG = "SettingsPreference";
    private static final String TAG = "SettingsPreferenceFragment";

    private static final String SAVE_HIGHLIGHTED_KEY = "android:preference_highlighted";

@@ -123,6 +125,15 @@ public abstract class SettingsPreferenceFragment extends InstrumentedPreferenceF
    @VisibleForTesting
    public boolean mPreferenceHighlighted = false;

    @Override
    public void onAttach(Context context) {
        if (shouldSkipForInitialSUW() && !WizardManagerHelper.isDeviceProvisioned(getContext())) {
            Log.w(TAG, "Skip " + getClass().getSimpleName() + " before SUW completed.");
            finish();
        }
        super.onAttach(context);
    }

    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
@@ -270,6 +281,16 @@ public abstract class SettingsPreferenceFragment extends InstrumentedPreferenceF
                || (mAdapter.getPreferenceAdapterPosition(preference) != RecyclerView.NO_POSITION));
    }

    /**
     * Whether UI should be skipped in the initial SUW flow.
     *
     * @return {@code true} when UI should be skipped in the initial SUW flow.
     * {@code false} when UI should not be skipped in the initial SUW flow.
     */
    protected boolean shouldSkipForInitialSUW() {
        return false;
    }

    protected void onDataSetChanged() {
        highlightPreferenceIfNeeded();
        updateEmptyView();
+5 −0
Original line number Diff line number Diff line
@@ -72,6 +72,11 @@ public class AccountDashboardFragment extends DashboardFragment {
        return buildPreferenceControllers(context, this /* parent */, authorities);
    }

    @Override
    protected boolean shouldSkipForInitialSUW() {
        return true;
    }

    private static List<AbstractPreferenceController> buildPreferenceControllers(Context context,
            SettingsPreferenceFragment parent, String[] authorities) {
        final List<AbstractPreferenceController> controllers = new ArrayList<>();
+12 −1
Original line number Diff line number Diff line
@@ -374,7 +374,13 @@ public class AppInfoDashboardFragment extends DashboardFragment
            return;
        }
        super.onPrepareOptionsMenu(menu);
        menu.findItem(UNINSTALL_ALL_USERS_MENU).setVisible(shouldShowUninstallForAll(mAppEntry));
        final MenuItem uninstallAllUsersItem = menu.findItem(UNINSTALL_ALL_USERS_MENU);
        uninstallAllUsersItem.setVisible(
                shouldShowUninstallForAll(mAppEntry) && !mAppsControlDisallowedBySystem);
        if (uninstallAllUsersItem.isVisible()) {
            RestrictedLockUtilsInternal.setMenuItemAsDisabledByAdmin(getActivity(),
                    uninstallAllUsersItem, mAppsControlDisallowedAdmin);
        }
        mUpdatedSysApp = (mAppEntry.info.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) != 0;
        final MenuItem uninstallUpdatesItem = menu.findItem(UNINSTALL_UPDATES);
        final boolean uninstallUpdateDisabled = getContext().getResources().getBoolean(
@@ -492,6 +498,11 @@ public class AppInfoDashboardFragment extends DashboardFragment
        return true;
    }

    @Override
    protected boolean shouldSkipForInitialSUW() {
        return true;
    }

    private void uninstallPkg(String packageName, boolean allUsers, boolean andDisable) {
        stopListeningToPackageRemove();
        // Create new intent to launch Uninstaller activity
+5 −0
Original line number Diff line number Diff line
@@ -241,6 +241,11 @@ public class DevelopmentSettingsDashboardFragment extends RestrictedDashboardFra
        // Add other qstiles here
    }

    @Override
    protected boolean shouldSkipForInitialSUW() {
        return true;
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
+5 −0
Original line number Diff line number Diff line
@@ -57,6 +57,11 @@ public class ResetDashboardFragment extends DashboardFragment {
        return buildPreferenceControllers(context, getSettingsLifecycle());
    }

    @Override
    protected boolean shouldSkipForInitialSUW() {
        return true;
    }

    private static List<AbstractPreferenceController> buildPreferenceControllers(Context context,
            Lifecycle lifecycle) {
        final List<AbstractPreferenceController> controllers = new ArrayList<>();
Loading