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);
|
filter.addAction(DevicePolicyManager.ACTION_DEVICE_POLICY_MANAGER_STATE_CHANGED);
|
||||||
getActivity().registerReceiverAsUser(
|
getActivity().registerReceiverAsUser(
|
||||||
mBroadcastReceiver, UserHandle.ALL, filter, null, null);
|
mBroadcastReceiver, UserHandle.ALL, filter, null, null);
|
||||||
mDeviceOwnerPkg = mDPM.getDeviceOwner();
|
|
||||||
if (mDeviceOwnerPkg != null && !mDPM.isDeviceOwner(mDeviceOwnerPkg)) {
|
final ComponentName deviceOwnerComponent = mDPM.getDeviceOwnerComponentOnAnyUser();
|
||||||
mDeviceOwnerPkg = null;
|
mDeviceOwnerPkg =
|
||||||
}
|
deviceOwnerComponent != null ? deviceOwnerComponent.getPackageName() : null;
|
||||||
mProfileOwnerComponents.clear();
|
mProfileOwnerComponents.clear();
|
||||||
final List<UserHandle> profiles = mUm.getUserProfiles();
|
final List<UserHandle> profiles = mUm.getUserProfiles();
|
||||||
final int profilesSize = profiles.size();
|
final int profilesSize = profiles.size();
|
||||||
|
@@ -47,12 +47,13 @@ public class MonitoringCertInfoActivity extends Activity implements OnClickListe
|
|||||||
final AlertDialog.Builder builder = new AlertDialog.Builder(this);
|
final AlertDialog.Builder builder = new AlertDialog.Builder(this);
|
||||||
builder.setTitle(R.string.ssl_ca_cert_dialog_title);
|
builder.setTitle(R.string.ssl_ca_cert_dialog_title);
|
||||||
builder.setCancelable(true);
|
builder.setCancelable(true);
|
||||||
hasDeviceOwner = dpm.getDeviceOwner() != null;
|
// TODO See b/25772443
|
||||||
|
hasDeviceOwner = dpm.getDeviceOwnerComponentOnCallingUser() != null;
|
||||||
int buttonLabel;
|
int buttonLabel;
|
||||||
if (hasDeviceOwner) {
|
if (hasDeviceOwner) {
|
||||||
// Institutional case. Show informational message.
|
// Institutional case. Show informational message.
|
||||||
String message = this.getResources().getString(R.string.ssl_ca_cert_info_message,
|
String message = this.getResources().getString(R.string.ssl_ca_cert_info_message,
|
||||||
dpm.getDeviceOwnerName());
|
dpm.getDeviceOwnerNameOnAnyUser());
|
||||||
builder.setMessage(message);
|
builder.setMessage(message);
|
||||||
buttonLabel = R.string.done_button;
|
buttonLabel = R.string.done_button;
|
||||||
} else {
|
} else {
|
||||||
|
@@ -206,6 +206,9 @@ public class InstalledAppDetails extends AppInfoBase
|
|||||||
enabled = false;
|
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)) {
|
if (isProfileOrDeviceOwner(mPackageInfo.packageName)) {
|
||||||
enabled = false;
|
enabled = false;
|
||||||
}
|
}
|
||||||
@@ -250,7 +253,7 @@ public class InstalledAppDetails extends AppInfoBase
|
|||||||
List<UserInfo> userInfos = mUserManager.getUsers();
|
List<UserInfo> userInfos = mUserManager.getUsers();
|
||||||
DevicePolicyManager dpm = (DevicePolicyManager)
|
DevicePolicyManager dpm = (DevicePolicyManager)
|
||||||
getContext().getSystemService(Context.DEVICE_POLICY_SERVICE);
|
getContext().getSystemService(Context.DEVICE_POLICY_SERVICE);
|
||||||
if (packageName.equals(dpm.getDeviceOwner())) {
|
if (dpm.isDeviceOwnerAppOnAnyUser(packageName)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
for (UserInfo userInfo : userInfos) {
|
for (UserInfo userInfo : userInfos) {
|
||||||
|
@@ -1030,7 +1030,7 @@ public class UserSettings extends SettingsPreferenceFragment
|
|||||||
DevicePolicyManager dpm = (DevicePolicyManager) context.getSystemService(
|
DevicePolicyManager dpm = (DevicePolicyManager) context.getSystemService(
|
||||||
Context.DEVICE_POLICY_SERVICE);
|
Context.DEVICE_POLICY_SERVICE);
|
||||||
// No restricted profiles for tablets with a device owner, or phones.
|
// 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;
|
caps.mCanAddRestrictedProfile = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -22,6 +22,7 @@ import android.app.AppGlobals;
|
|||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
import android.app.admin.DevicePolicyManager;
|
import android.app.admin.DevicePolicyManager;
|
||||||
import android.content.BroadcastReceiver;
|
import android.content.BroadcastReceiver;
|
||||||
|
import android.content.ComponentName;
|
||||||
import android.content.ContentResolver;
|
import android.content.ContentResolver;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
@@ -985,11 +986,12 @@ public class WifiSettings extends RestrictedSettingsFragment
|
|||||||
|
|
||||||
boolean isConfigEligibleForLockdown = false;
|
boolean isConfigEligibleForLockdown = false;
|
||||||
if (dpm != null) {
|
if (dpm != null) {
|
||||||
final String deviceOwnerPackageName = dpm.getDeviceOwner();
|
final ComponentName deviceOwner = dpm.getDeviceOwnerComponentOnAnyUser();
|
||||||
if (deviceOwnerPackageName != null) {
|
if (deviceOwner != null) {
|
||||||
|
final int deviceOwnerUserId = dpm.getDeviceOwnerUserId();
|
||||||
try {
|
try {
|
||||||
final int deviceOwnerUid = pm.getPackageUid(deviceOwnerPackageName,
|
final int deviceOwnerUid = pm.getPackageUid(deviceOwner.getPackageName(),
|
||||||
UserHandle.USER_SYSTEM);
|
deviceOwnerUserId);
|
||||||
isConfigEligibleForLockdown = deviceOwnerUid == config.creatorUid;
|
isConfigEligibleForLockdown = deviceOwnerUid == config.creatorUid;
|
||||||
} catch (NameNotFoundException e) {
|
} catch (NameNotFoundException e) {
|
||||||
// don't care
|
// don't care
|
||||||
|
Reference in New Issue
Block a user