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

Commit bde1c4a8 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Revert "Modifying dpm.setSecureSetting call for install_non_market_apps""

parents 135e5aac 5663e051
Loading
Loading
Loading
Loading
+1 −9
Original line number Original line Diff line number Diff line
@@ -6343,6 +6343,7 @@ public class DevicePolicyManager {
     * The settings that can be updated by a profile or device owner with this method are:
     * The settings that can be updated by a profile or device owner with this method are:
     * <ul>
     * <ul>
     * <li>{@link Settings.Secure#DEFAULT_INPUT_METHOD}</li>
     * <li>{@link Settings.Secure#DEFAULT_INPUT_METHOD}</li>
     * <li>{@link Settings.Secure#INSTALL_NON_MARKET_APPS}</li>
     * <li>{@link Settings.Secure#SKIP_FIRST_USE_HINTS}</li>
     * <li>{@link Settings.Secure#SKIP_FIRST_USE_HINTS}</li>
     * </ul>
     * </ul>
     * <p>
     * <p>
@@ -6351,15 +6352,6 @@ public class DevicePolicyManager {
     * <li>{@link Settings.Secure#LOCATION_MODE}</li>
     * <li>{@link Settings.Secure#LOCATION_MODE}</li>
     * </ul>
     * </ul>
     *
     *
     * <strong>Note: Starting from Android O, apps should no longer call this method with the
     * setting {@link android.provider.Settings.Secure#INSTALL_NON_MARKET_APPS}, which is
     * deprecated. Instead, device owners or profile owners should use the restriction
     * {@link UserManager#DISALLOW_INSTALL_UNKNOWN_SOURCES}.
     * If any app targeting {@link android.os.Build.VERSION_CODES#O} or higher calls this method
     * with {@link android.provider.Settings.Secure#INSTALL_NON_MARKET_APPS},
     * an {@link UnsupportedOperationException} is thrown.
     * </strong>
     *
     * @param admin Which {@link DeviceAdminReceiver} this request is associated with.
     * @param admin Which {@link DeviceAdminReceiver} this request is associated with.
     * @param setting The name of the setting to update.
     * @param setting The name of the setting to update.
     * @param value The value to update the setting to.
     * @param value The value to update the setting to.
+0 −12
Original line number Original line Diff line number Diff line
@@ -5216,18 +5216,6 @@ public final class Settings {
         */
         */
        public static final String INSTALL_NON_MARKET_APPS = "install_non_market_apps";
        public static final String INSTALL_NON_MARKET_APPS = "install_non_market_apps";


        /**
         * A flag to tell {@link com.android.server.devicepolicy.DevicePolicyManagerService} that
         * the default for {@link #INSTALL_NON_MARKET_APPS} is reversed for this user on OTA. So it
         * can set the restriction {@link android.os.UserManager#DISALLOW_INSTALL_UNKNOWN_SOURCES}
         * on behalf of the profile owner if needed to make the change transparent for profile
         * owners.
         *
         * @hide
         */
        public static final String UNKNOWN_SOURCES_DEFAULT_REVERSED =
                "unknown_sources_default_reversed";

        /**
        /**
         * Comma-separated list of location providers that activities may access. Do not rely on
         * Comma-separated list of location providers that activities may access. Do not rely on
         * this value being present in settings.db or on ContentObserver notifications on the
         * this value being present in settings.db or on ContentObserver notifications on the
+1 −1
Original line number Original line Diff line number Diff line
@@ -38,7 +38,7 @@


    <bool name="def_bluetooth_on">true</bool>
    <bool name="def_bluetooth_on">true</bool>
    <bool name="def_wifi_display_on">false</bool>
    <bool name="def_wifi_display_on">false</bool>
    <bool name="def_install_non_market_apps">false</bool>
    <bool name="def_install_non_market_apps">true</bool>
    <bool name="def_package_verifier_enable">true</bool>
    <bool name="def_package_verifier_enable">true</bool>
    <!-- Comma-separated list of location providers.
    <!-- Comma-separated list of location providers.
         Network location is off by default because it requires
         Network location is off by default because it requires
+1 −9
Original line number Original line Diff line number Diff line
@@ -3174,17 +3174,9 @@ public class SettingsProvider extends ContentProvider {
                    // setting through the UI.
                    // setting through the UI.
                    final SettingsState secureSetting = getSecureSettingsLocked(userId);
                    final SettingsState secureSetting = getSecureSettingsLocked(userId);
                    if (!mUserManager.hasUserRestriction(
                    if (!mUserManager.hasUserRestriction(
                            UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES, UserHandle.of(userId))
                            UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES, UserHandle.of(userId))) {
                            && secureSetting.getSettingLocked(
                            Settings.Secure.INSTALL_NON_MARKET_APPS).getValue().equals("0")) {

                        secureSetting.insertSettingLocked(Settings.Secure.INSTALL_NON_MARKET_APPS,
                        secureSetting.insertSettingLocked(Settings.Secure.INSTALL_NON_MARKET_APPS,
                                "1", null, true, SettingsState.SYSTEM_PACKAGE_NAME);
                                "1", null, true, SettingsState.SYSTEM_PACKAGE_NAME);
                        // For managed profiles with profile owners, DevicePolicyManagerService
                        // may want to set the user restriction in this case
                        secureSetting.insertSettingLocked(
                                Settings.Secure.UNKNOWN_SOURCES_DEFAULT_REVERSED, "1", null, true,
                                SettingsState.SYSTEM_PACKAGE_NAME);
                    }
                    }
                    currentVersion = 138;
                    currentVersion = 138;
                }
                }
+2 −14
Original line number Original line Diff line number Diff line
@@ -22,7 +22,6 @@ import static junit.framework.Assert.assertTrue;


import android.content.Context;
import android.content.Context;
import android.content.pm.UserInfo;
import android.content.pm.UserInfo;
import android.os.Process;
import android.os.SystemClock;
import android.os.SystemClock;
import android.os.UserManager;
import android.os.UserManager;
import android.provider.Settings;
import android.provider.Settings;
@@ -48,7 +47,6 @@ public class InstallNonMarketAppsDeprecationTest extends BaseSettingsProviderTes


    private UserManager mUm;
    private UserManager mUm;
    private boolean mHasUserRestriction;
    private boolean mHasUserRestriction;
    private boolean mSystemSetUserRestriction;
    private List<UserInfo> mCurrentUsers;
    private List<UserInfo> mCurrentUsers;


    private String waitTillValueChanges(String errorMessage, String oldValue) {
    private String waitTillValueChanges(String errorMessage, String oldValue) {
@@ -86,9 +84,6 @@ public class InstallNonMarketAppsDeprecationTest extends BaseSettingsProviderTes
    public void setUp() {
    public void setUp() {
        mUm = (UserManager) getContext().getSystemService(Context.USER_SERVICE);
        mUm = (UserManager) getContext().getSystemService(Context.USER_SERVICE);
        mHasUserRestriction = mUm.hasUserRestriction(UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES);
        mHasUserRestriction = mUm.hasUserRestriction(UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES);
        mSystemSetUserRestriction = mUm.getUserRestrictionSource(
                UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES, Process.myUserHandle())
                == UserManager.RESTRICTION_SOURCE_SYSTEM;
        mCurrentUsers = mUm.getUsers();
        mCurrentUsers = mUm.getUsers();
    }
    }


@@ -122,13 +117,6 @@ public class InstallNonMarketAppsDeprecationTest extends BaseSettingsProviderTes
        String value = getSetting(SETTING_TYPE_SECURE, Settings.Secure.INSTALL_NON_MARKET_APPS);
        String value = getSetting(SETTING_TYPE_SECURE, Settings.Secure.INSTALL_NON_MARKET_APPS);
        assertEquals(value, mHasUserRestriction ? "0" : "1");
        assertEquals(value, mHasUserRestriction ? "0" : "1");


        if (mHasUserRestriction && !mSystemSetUserRestriction) {
            // User restriction set by device policy. This case should be covered in DO/PO related
            // tests. Pass.
            Log.w(TAG, "User restriction set by PO/DO. Skipping testValueRespectsUserRestriction");
            return;
        }

        mUm.setUserRestriction(UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES, !mHasUserRestriction);
        mUm.setUserRestriction(UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES, !mHasUserRestriction);
        value = waitTillValueChanges(
        value = waitTillValueChanges(
                "Changing user restriction did not change the value of install_non_market_apps",
                "Changing user restriction did not change the value of install_non_market_apps",
@@ -144,8 +132,8 @@ public class InstallNonMarketAppsDeprecationTest extends BaseSettingsProviderTes


    @After
    @After
    public void tearDown() {
    public void tearDown() {
        if (!mHasUserRestriction || mSystemSetUserRestriction) {
        if (mUm.hasUserRestriction(UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES)
            // The test may have modified the user restriction state. Restore it.
                != mHasUserRestriction) {
            mUm.setUserRestriction(UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES,
            mUm.setUserRestriction(UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES,
                    mHasUserRestriction);
                    mHasUserRestriction);
        }
        }
Loading