Don't Disable Pkg Verifier When Provisioning
Remove code that temporarily disabled the package verifier during DO
provisioning. This is no longer necessary, since a user dialog box no
longer pops up with package verifier on.
Change-Id: Iae25558ac38fddba4b13786b2f0a1a46d91cf4b5
Bug: 116754444
Test: Ran DO provisioning from QR code manually
Test: com.android.managedprovisioning.task.InstallPackageTaskTest
Test:
com.android.managedprovisioning.provisioning.DeviceOwnerProvisioningControllerTest
Merged-In: Iae25558ac38fddba4b13786b2f0a1a46d91cf4b5
(cherry picked from commit 661ee972c2022955dc101c06114f6df49f29bc7a)
(cherry picked from commit fcee9be463f43feb1d1825699cfb0b056e8f2e90)
diff --git a/src/com/android/managedprovisioning/task/InstallPackageTask.java b/src/com/android/managedprovisioning/task/InstallPackageTask.java
index ea93433..779d2c9 100644
--- a/src/com/android/managedprovisioning/task/InstallPackageTask.java
+++ b/src/com/android/managedprovisioning/task/InstallPackageTask.java
@@ -30,10 +30,8 @@
import android.content.pm.PackageManager;
import android.text.TextUtils;
-import com.android.internal.annotations.VisibleForTesting;
import com.android.managedprovisioning.R;
import com.android.managedprovisioning.common.ProvisionLogger;
-import com.android.managedprovisioning.common.SettingsFacade;
import com.android.managedprovisioning.model.ProvisioningParams;
import java.io.File;
@@ -52,12 +50,10 @@
public static final int ERROR_PACKAGE_INVALID = 0;
public static final int ERROR_INSTALLATION_FAILED = 1;
- private final SettingsFacade mSettingsFacade;
private final DownloadPackageTask mDownloadPackageTask;
private final PackageManager mPm;
private final DevicePolicyManager mDpm;
- private boolean mInitialPackageVerifierEnabled;
/**
* Create an InstallPackageTask. When run, this will attempt to install the device admin package
@@ -70,21 +66,10 @@
Context context,
ProvisioningParams params,
Callback callback) {
- this(new SettingsFacade(), downloadPackageTask, context, params, callback);
- }
-
- @VisibleForTesting
- InstallPackageTask(
- SettingsFacade settingsFacade,
- DownloadPackageTask downloadPackageTask,
- Context context,
- ProvisioningParams params,
- Callback callback) {
super(context, params, callback);
mPm = context.getPackageManager();
mDpm = context.getSystemService(DevicePolicyManager.class);
- mSettingsFacade = checkNotNull(settingsFacade);
mDownloadPackageTask = checkNotNull(downloadPackageTask);
}
@@ -117,16 +102,12 @@
String packageName = mProvisioningParams.inferDeviceAdminPackageName();
ProvisionLogger.logi("Installing package " + packageName);
- mInitialPackageVerifierEnabled = mSettingsFacade.isPackageVerifierEnabled(mContext);
if (TextUtils.isEmpty(packageLocation)) {
// Do not log time if not installing any package, as that isn't useful.
success();
return;
}
- // Temporarily turn off package verification.
- mSettingsFacade.setPackageVerifierEnabled(mContext, false);
-
int installFlags = PackageManager.INSTALL_REPLACE_EXISTING;
// Current device owner (if exists) must be test-only, so it is fine to replace it with a
// test-only package of same package name. No need to further verify signature as
@@ -162,8 +143,6 @@
session.commit(pendingIntent.getIntentSender());
}
} catch (IOException e) {
- mSettingsFacade.setPackageVerifierEnabled(mContext, mInitialPackageVerifierEnabled);
-
ProvisionLogger.loge("Installing package " + packageName + " failed.", e);
error(ERROR_INSTALLATION_FAILED);
} finally {
@@ -185,8 +164,6 @@
@Override
public void onReceive(Context context, Intent intent) {
- mSettingsFacade.setPackageVerifierEnabled(mContext, mInitialPackageVerifierEnabled);
-
// Should not happen as we use a one shot pending intent specifically for this receiver
if (intent.getAction() == null || !intent.getAction().startsWith(ACTION_INSTALL_DONE)) {
ProvisionLogger.logw("Incorrect action");
diff --git a/tests/instrumentation/src/com/android/managedprovisioning/task/InstallPackageTaskTest.java b/tests/instrumentation/src/com/android/managedprovisioning/task/InstallPackageTaskTest.java
index 18bfd37..3fab0d2 100644
--- a/tests/instrumentation/src/com/android/managedprovisioning/task/InstallPackageTaskTest.java
+++ b/tests/instrumentation/src/com/android/managedprovisioning/task/InstallPackageTaskTest.java
@@ -47,7 +47,6 @@
import android.test.AndroidTestCase;
import android.test.suitebuilder.annotation.SmallTest;
-import com.android.managedprovisioning.common.SettingsFacade;
import com.android.managedprovisioning.model.ProvisioningParams;
import org.mockito.ArgumentCaptor;
@@ -83,7 +82,6 @@
@Mock private AbstractProvisioningTask.Callback mCallback;
@Mock private DownloadPackageTask mDownloadPackageTask;
private InstallPackageTask mTask;
- private final SettingsFacade mSettingsFacade = new SettingsFacadeStub();
private String mTestPackageLocation;
@Override
@@ -115,8 +113,7 @@
out.write(APK_CONTENT);
}
- mTask = new InstallPackageTask(mSettingsFacade, mDownloadPackageTask, mMockContext,
- TEST_PARAMS, mCallback);
+ mTask = new InstallPackageTask(mDownloadPackageTask, mMockContext, TEST_PARAMS, mCallback);
}
@SmallTest
@@ -130,7 +127,6 @@
verify(mPackageManager, never()).getPackageInstaller();
verify(mCallback).onSuccess(mTask);
verifyNoMoreInteractions(mCallback);
- assertTrue(mSettingsFacade.isPackageVerifierEnabled(mMockContext));
}
@SmallTest
@@ -153,7 +149,6 @@
// THEN we receive a success callback
verify(mCallback, timeout(TIMEOUT)).onSuccess(mTask);
verifyNoMoreInteractions(mCallback);
- assertTrue(mSettingsFacade.isPackageVerifierEnabled(mMockContext));
}
@SmallTest
@@ -179,7 +174,6 @@
// THEN we receive a success callback
verify(mCallback, timeout(TIMEOUT)).onSuccess(mTask);
verifyNoMoreInteractions(mCallback);
- assertTrue(mSettingsFacade.isPackageVerifierEnabled(mMockContext));
}
@@ -205,7 +199,6 @@
// THEN we get a success callback, because an existing version of the DPC is present
verify(mCallback, timeout(TIMEOUT)).onSuccess(mTask);
verifyNoMoreInteractions(mCallback);
- assertTrue(mSettingsFacade.isPackageVerifierEnabled(mMockContext));
}
@SmallTest
@@ -230,7 +223,6 @@
// THEN we get a success callback, because an existing version of the DPC is present
verify(mCallback, timeout(TIMEOUT)).onError(mTask, ERROR_INSTALLATION_FAILED);
verifyNoMoreInteractions(mCallback);
- assertTrue(mSettingsFacade.isPackageVerifierEnabled(mMockContext));
}
@SmallTest
@@ -252,7 +244,6 @@
// THEN we get a success callback, because the wrong package name
verify(mCallback, timeout(TIMEOUT)).onError(mTask, ERROR_PACKAGE_INVALID);
verifyNoMoreInteractions(mCallback);
- assertTrue(mSettingsFacade.isPackageVerifierEnabled(mContext));
}
private IntentSender verifyPackageInstalled(int installFlags) throws IOException {
@@ -274,18 +265,4 @@
verify(mSession).commit(intentSenderCaptor.capture());
return intentSenderCaptor.getValue();
}
-
- private static class SettingsFacadeStub extends SettingsFacade {
- private boolean mPackageVerifierEnabled = true;
-
- @Override
- public boolean isPackageVerifierEnabled(Context c) {
- return mPackageVerifierEnabled;
- }
-
- @Override
- public void setPackageVerifierEnabled(Context c, boolean packageVerifierEnabled) {
- mPackageVerifierEnabled = packageVerifierEnabled;
- }
- }
}