Use explicit APIs to get device owner information
Bug 24676413 Change-Id: Id346c2f01658173c9671edcfd34bc33f1b25faa4
This commit is contained in:
@@ -108,10 +108,10 @@ public class DeviceAdminSettings extends ListFragment {
|
||||
filter.addAction(DevicePolicyManager.ACTION_DEVICE_POLICY_MANAGER_STATE_CHANGED);
|
||||
getActivity().registerReceiverAsUser(
|
||||
mBroadcastReceiver, UserHandle.ALL, filter, null, null);
|
||||
mDeviceOwnerPkg = mDPM.getDeviceOwner();
|
||||
if (mDeviceOwnerPkg != null && !mDPM.isDeviceOwner(mDeviceOwnerPkg)) {
|
||||
mDeviceOwnerPkg = null;
|
||||
}
|
||||
|
||||
final ComponentName deviceOwnerComponent = mDPM.getDeviceOwnerComponentOnAnyUser();
|
||||
mDeviceOwnerPkg =
|
||||
deviceOwnerComponent != null ? deviceOwnerComponent.getPackageName() : null;
|
||||
mProfileOwnerComponents.clear();
|
||||
final List<UserHandle> profiles = mUm.getUserProfiles();
|
||||
final int profilesSize = profiles.size();
|
||||
|
@@ -47,12 +47,13 @@ public class MonitoringCertInfoActivity extends Activity implements OnClickListe
|
||||
final AlertDialog.Builder builder = new AlertDialog.Builder(this);
|
||||
builder.setTitle(R.string.ssl_ca_cert_dialog_title);
|
||||
builder.setCancelable(true);
|
||||
hasDeviceOwner = dpm.getDeviceOwner() != null;
|
||||
// TODO See b/25772443
|
||||
hasDeviceOwner = dpm.getDeviceOwnerComponentOnCallingUser() != null;
|
||||
int buttonLabel;
|
||||
if (hasDeviceOwner) {
|
||||
// Institutional case. Show informational message.
|
||||
String message = this.getResources().getString(R.string.ssl_ca_cert_info_message,
|
||||
dpm.getDeviceOwnerName());
|
||||
dpm.getDeviceOwnerNameOnAnyUser());
|
||||
builder.setMessage(message);
|
||||
buttonLabel = R.string.done_button;
|
||||
} else {
|
||||
|
@@ -206,6 +206,9 @@ public class InstalledAppDetails extends AppInfoBase
|
||||
enabled = false;
|
||||
}
|
||||
|
||||
// We don't allow uninstalling DO/PO on *any* users, because if it's a system app,
|
||||
// "uninstall" is actually "downgrade to the system version + disable", and "downgrade"
|
||||
// will clear data on all users.
|
||||
if (isProfileOrDeviceOwner(mPackageInfo.packageName)) {
|
||||
enabled = false;
|
||||
}
|
||||
@@ -250,7 +253,7 @@ public class InstalledAppDetails extends AppInfoBase
|
||||
List<UserInfo> userInfos = mUserManager.getUsers();
|
||||
DevicePolicyManager dpm = (DevicePolicyManager)
|
||||
getContext().getSystemService(Context.DEVICE_POLICY_SERVICE);
|
||||
if (packageName.equals(dpm.getDeviceOwner())) {
|
||||
if (dpm.isDeviceOwnerAppOnAnyUser(packageName)) {
|
||||
return true;
|
||||
}
|
||||
for (UserInfo userInfo : userInfos) {
|
||||
|
@@ -1030,7 +1030,7 @@ public class UserSettings extends SettingsPreferenceFragment
|
||||
DevicePolicyManager dpm = (DevicePolicyManager) context.getSystemService(
|
||||
Context.DEVICE_POLICY_SERVICE);
|
||||
// No restricted profiles for tablets with a device owner, or phones.
|
||||
if (dpm.getDeviceOwner() != null || Utils.isVoiceCapable(context)) {
|
||||
if (dpm.isDeviceManaged() || Utils.isVoiceCapable(context)) {
|
||||
caps.mCanAddRestrictedProfile = false;
|
||||
}
|
||||
|
||||
|
@@ -22,6 +22,7 @@ import android.app.AppGlobals;
|
||||
import android.app.Dialog;
|
||||
import android.app.admin.DevicePolicyManager;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.ComponentName;
|
||||
import android.content.ContentResolver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
@@ -985,11 +986,12 @@ public class WifiSettings extends RestrictedSettingsFragment
|
||||
|
||||
boolean isConfigEligibleForLockdown = false;
|
||||
if (dpm != null) {
|
||||
final String deviceOwnerPackageName = dpm.getDeviceOwner();
|
||||
if (deviceOwnerPackageName != null) {
|
||||
final ComponentName deviceOwner = dpm.getDeviceOwnerComponentOnAnyUser();
|
||||
if (deviceOwner != null) {
|
||||
final int deviceOwnerUserId = dpm.getDeviceOwnerUserId();
|
||||
try {
|
||||
final int deviceOwnerUid = pm.getPackageUid(deviceOwnerPackageName,
|
||||
UserHandle.USER_SYSTEM);
|
||||
final int deviceOwnerUid = pm.getPackageUid(deviceOwner.getPackageName(),
|
||||
deviceOwnerUserId);
|
||||
isConfigEligibleForLockdown = deviceOwnerUid == config.creatorUid;
|
||||
} catch (NameNotFoundException e) {
|
||||
// don't care
|
||||
|
Reference in New Issue
Block a user