Merge "Log PO and DO provisioning params" into sc-dev

This commit is contained in:
Kholoud Mohamed
2021-02-10 15:48:55 +00:00
committed by Android (Google) Code Review
4 changed files with 77 additions and 2 deletions

View File

@@ -472,6 +472,7 @@ package android.app.admin {
method @NonNull public String getOwnerName();
method @Nullable public String getTimeZone();
method public boolean isLeaveAllSystemAppsEnabled();
method public void logParams(@NonNull String);
method public void writeToParcel(@NonNull android.os.Parcel, @Nullable int);
field @NonNull public static final android.os.Parcelable.Creator<android.app.admin.FullyManagedDeviceProvisioningParams> CREATOR;
}
@@ -495,6 +496,7 @@ package android.app.admin {
method public boolean isKeepAccountMigrated();
method public boolean isLeaveAllSystemAppsEnabled();
method public boolean isOrganizationOwnedProvisioning();
method public void logParams(@NonNull String);
method public void writeToParcel(@NonNull android.os.Parcel, @Nullable int);
field @NonNull public static final android.os.Parcelable.Creator<android.app.admin.ManagedProfileProvisioningParams> CREATOR;
}

View File

@@ -25,6 +25,7 @@ import android.annotation.TestApi;
import android.content.ComponentName;
import android.os.Parcel;
import android.os.Parcelable;
import android.stats.devicepolicy.DevicePolicyEnums;
import java.util.Locale;
@@ -35,6 +36,13 @@ import java.util.Locale;
*/
@TestApi
public final class FullyManagedDeviceProvisioningParams implements Parcelable {
private static final String LEAVE_ALL_SYSTEM_APPS_ENABLED_PARAM =
"LEAVE_ALL_SYSTEM_APPS_ENABLED";
private static final String CAN_DEVICE_OWNER_GRANT_SENSOR_PERMISSIONS_PARAM =
"CAN_DEVICE_OWNER_GRANT_SENSOR_PERMISSIONS";
private static final String TIME_ZONE_PROVIDED_PARAM = "TIME_ZONE_PROVIDED";
private static final String LOCALE_PROVIDED_PARAM = "LOCALE_PROVIDED";
@NonNull private final ComponentName mDeviceAdminComponentName;
@NonNull private final String mOwnerName;
private final boolean mLeaveAllSystemAppsEnabled;
@@ -120,6 +128,29 @@ public final class FullyManagedDeviceProvisioningParams implements Parcelable {
return mDeviceOwnerCanGrantSensorsPermissions;
}
/**
* Logs the provisioning params using {@link DevicePolicyEventLogger}.
*/
public void logParams(@NonNull String callerPackage) {
requireNonNull(callerPackage);
logParam(callerPackage, LEAVE_ALL_SYSTEM_APPS_ENABLED_PARAM, mLeaveAllSystemAppsEnabled);
logParam(callerPackage, CAN_DEVICE_OWNER_GRANT_SENSOR_PERMISSIONS_PARAM,
mDeviceOwnerCanGrantSensorsPermissions);
logParam(callerPackage, TIME_ZONE_PROVIDED_PARAM, /* value= */ mTimeZone != null);
logParam(callerPackage, LOCALE_PROVIDED_PARAM, /* value= */ mLocale != null);
}
private void logParam(String callerPackage, String param, boolean value) {
DevicePolicyEventLogger
.createEvent(DevicePolicyEnums.PLATFORM_PROVISIONING_PARAM)
.setStrings(callerPackage)
.setAdmin(mDeviceAdminComponentName)
.setStrings(param)
.setBoolean(value)
.write();
}
/**
* Builder class for {@link FullyManagedDeviceProvisioningParams} objects.
*/

View File

@@ -25,6 +25,7 @@ import android.annotation.TestApi;
import android.content.ComponentName;
import android.os.Parcel;
import android.os.Parcelable;
import android.stats.devicepolicy.DevicePolicyEnums;
/**
* Params required to provision a managed profile, see
@@ -34,6 +35,13 @@ import android.os.Parcelable;
*/
@TestApi
public final class ManagedProfileProvisioningParams implements Parcelable {
private static final String LEAVE_ALL_SYSTEM_APPS_ENABLED_PARAM =
"LEAVE_ALL_SYSTEM_APPS_ENABLED";
private static final String ORGANIZATION_OWNED_PROVISIONING_PARAM =
"ORGANIZATION_OWNED_PROVISIONING";
private static final String ACCOUNT_TO_MIGRATE_PROVIDED_PARAM = "ACCOUNT_TO_MIGRATE_PROVIDED";
private static final String KEEP_MIGRATED_ACCOUNT_PARAM = "KEEP_MIGRATED_ACCOUNT";
@NonNull private final ComponentName mProfileAdminComponentName;
@NonNull private final String mOwnerName;
@Nullable private final String mProfileName;
@@ -92,6 +100,30 @@ public final class ManagedProfileProvisioningParams implements Parcelable {
return mKeepAccountMigrated;
}
/**
* Logs the provisioning params using {@link DevicePolicyEventLogger}.
*/
public void logParams(@NonNull String callerPackage) {
requireNonNull(callerPackage);
logParam(callerPackage, LEAVE_ALL_SYSTEM_APPS_ENABLED_PARAM, mLeaveAllSystemAppsEnabled);
logParam(callerPackage, ORGANIZATION_OWNED_PROVISIONING_PARAM,
mOrganizationOwnedProvisioning);
logParam(callerPackage, KEEP_MIGRATED_ACCOUNT_PARAM, mKeepAccountMigrated);
logParam(callerPackage, ACCOUNT_TO_MIGRATE_PROVIDED_PARAM,
/* value= */ mAccountToMigrate != null);
}
private void logParam(String callerPackage, String param, boolean value) {
DevicePolicyEventLogger
.createEvent(DevicePolicyEnums.PLATFORM_PROVISIONING_PARAM)
.setStrings(callerPackage)
.setAdmin(mProfileAdminComponentName)
.setStrings(param)
.setBoolean(value)
.write();
}
/**
* Builder class for {@link ManagedProfileProvisioningParams} objects.
*/

View File

@@ -15985,6 +15985,9 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
public UserHandle createAndProvisionManagedProfile(
@NonNull ManagedProfileProvisioningParams provisioningParams,
@NonNull String callerPackage) {
Objects.requireNonNull(provisioningParams, "provisioningParams is null");
Objects.requireNonNull(callerPackage, "callerPackage is null");
final ComponentName admin = provisioningParams.getProfileAdminComponentName();
Objects.requireNonNull(admin, "admin is null");
@@ -15992,6 +15995,8 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
Preconditions.checkCallAuthorization(
hasCallingOrSelfPermission(permission.MANAGE_PROFILE_AND_DEVICE_OWNERS));
provisioningParams.logParams(callerPackage);
UserInfo userInfo = null;
final long identity = Binder.clearCallingIdentity();
try {
@@ -16291,9 +16296,12 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
@Override
public void provisionFullyManagedDevice(
FullyManagedDeviceProvisioningParams provisioningParams, String callerPackage) {
ComponentName deviceAdmin = provisioningParams.getDeviceAdminComponentName();
@NonNull FullyManagedDeviceProvisioningParams provisioningParams,
@NonNull String callerPackage) {
Objects.requireNonNull(provisioningParams, "provisioningParams is null.");
Objects.requireNonNull(callerPackage, "callerPackage is null.");
ComponentName deviceAdmin = provisioningParams.getDeviceAdminComponentName();
Objects.requireNonNull(deviceAdmin, "admin is null.");
Objects.requireNonNull(provisioningParams.getOwnerName(), "owner name is null.");
@@ -16301,6 +16309,8 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
Preconditions.checkCallAuthorization(
hasCallingOrSelfPermission(permission.MANAGE_PROFILE_AND_DEVICE_OWNERS));
provisioningParams.logParams(callerPackage);
final long identity = Binder.clearCallingIdentity();
try {
// TODO(b/178187130): This check fails silent provisioning, uncomment once silent