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

Commit afed24e2 authored by Wentao Wang's avatar Wentao Wang Committed by Android (Google) Code Review
Browse files

Merge "Add additional arguments to PackagesHash." into main

parents 0e513fb0 0a6779ab
Loading
Loading
Loading
Loading
+27 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ package com.android.server.policy.role;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.UserIdInt;
import android.app.admin.DevicePolicyManagerInternal;
import android.app.role.RoleManager;
import android.content.ComponentName;
import android.content.ContentResolver;
@@ -303,6 +304,8 @@ public class RoleServicePlatformHelperImpl implements RoleServicePlatformHelper
    public String computePackageStateHash(@UserIdInt int userId) {
        PackageManagerInternal packageManagerInternal = LocalServices.getService(
                PackageManagerInternal.class);
        DevicePolicyManagerInternal devicePolicyManagerInternal = LocalServices.getService(
                DevicePolicyManagerInternal.class);
        final MessageDigestOutputStream mdos = new MessageDigestOutputStream();

        DataOutputStream dataOutputStream = new DataOutputStream(new BufferedOutputStream(mdos));
@@ -342,6 +345,30 @@ public class RoleServicePlatformHelperImpl implements RoleServicePlatformHelper
                throw new AssertionError(e);
            }
        }, userId);
        try {
            String deviceOwner= "";
            if (devicePolicyManagerInternal.getDeviceOwnerUserId() == userId) {
                ComponentName deviceOwnerComponent =
                    devicePolicyManagerInternal.getDeviceOwnerComponent(false);
                if (deviceOwnerComponent != null) {
                    deviceOwner = deviceOwnerComponent.getPackageName();
                }
            }
            dataOutputStream.writeUTF(deviceOwner);
            String profileOwner = "";
            ComponentName profileOwnerComponent =
                devicePolicyManagerInternal.getProfileOwnerAsUser(userId);
            if (profileOwnerComponent != null) {
                profileOwner = profileOwnerComponent.getPackageName();
            }
            dataOutputStream.writeUTF(profileOwner);
            dataOutputStream.writeInt(Settings.Global.getInt(mContext.getContentResolver(),
                    Settings.Global.DEVICE_DEMO_MODE, 0));
            dataOutputStream.flush();
        } catch (IOException e) {
            // Never happens for MessageDigestOutputStream and DataOutputStream.
            throw new AssertionError(e);
        }
        return mdos.getDigestAsString();
    }