Expose setInstallFlagAllowTest testAPI
Exposed a testAPIs to set INSTALL_ALLOW_TEST install flag, and allowed it to holders of INSTALL_TEST_ONLY_PACKAGE permission. Bug: 183716601 Test: N/A Change-Id: Ie045f43c5224ed75e0ba8db91a3b77aa4d66a5d6
This commit is contained in:
committed by
Kholoud Mohamed
parent
692496d964
commit
dbaaacd5ad
@@ -17,6 +17,7 @@ package android {
|
||||
field public static final String CONTROL_DEVICE_STATE = "android.permission.CONTROL_DEVICE_STATE";
|
||||
field public static final String FORCE_DEVICE_POLICY_MANAGER_LOGS = "android.permission.FORCE_DEVICE_POLICY_MANAGER_LOGS";
|
||||
field public static final String FORCE_STOP_PACKAGES = "android.permission.FORCE_STOP_PACKAGES";
|
||||
field public static final String INSTALL_TEST_ONLY_PACKAGE = "android.permission.INSTALL_TEST_ONLY_PACKAGE";
|
||||
field public static final String KEEP_UNINSTALLED_PACKAGES = "android.permission.KEEP_UNINSTALLED_PACKAGES";
|
||||
field @Deprecated public static final String MANAGE_ACTIVITY_STACKS = "android.permission.MANAGE_ACTIVITY_STACKS";
|
||||
field public static final String MANAGE_ACTIVITY_TASKS = "android.permission.MANAGE_ACTIVITY_TASKS";
|
||||
@@ -811,6 +812,7 @@ package android.content.pm {
|
||||
}
|
||||
|
||||
public static class PackageInstaller.SessionParams implements android.os.Parcelable {
|
||||
method public void setInstallFlagAllowTest();
|
||||
method public void setInstallerPackageName(@Nullable String);
|
||||
}
|
||||
|
||||
|
||||
@@ -1986,6 +1986,14 @@ public class PackageInstaller {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @hide
|
||||
*/
|
||||
@TestApi
|
||||
public void setInstallFlagAllowTest() {
|
||||
installFlags |= PackageManager.INSTALL_ALLOW_TEST;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the installer package for the app.
|
||||
*
|
||||
|
||||
@@ -584,12 +584,16 @@ public class PackageInstallerService extends IPackageInstaller.Stub implements
|
||||
|
||||
params.installFlags &= ~PackageManager.INSTALL_FROM_ADB;
|
||||
params.installFlags &= ~PackageManager.INSTALL_ALL_USERS;
|
||||
params.installFlags &= ~PackageManager.INSTALL_ALLOW_TEST;
|
||||
params.installFlags |= PackageManager.INSTALL_REPLACE_EXISTING;
|
||||
if ((params.installFlags & PackageManager.INSTALL_VIRTUAL_PRELOAD) != 0
|
||||
&& !mPm.isCallerVerifier(callingUid)) {
|
||||
params.installFlags &= ~PackageManager.INSTALL_VIRTUAL_PRELOAD;
|
||||
}
|
||||
if (mContext.checkCallingOrSelfPermission(
|
||||
Manifest.permission.INSTALL_TEST_ONLY_PACKAGE)
|
||||
!= PackageManager.PERMISSION_GRANTED) {
|
||||
params.installFlags &= ~PackageManager.INSTALL_ALLOW_TEST;
|
||||
}
|
||||
}
|
||||
|
||||
String originatingPackageName = null;
|
||||
|
||||
Reference in New Issue
Block a user