From ccd5293ccd8ab12cda8993169609e45ffaf9c932 Mon Sep 17 00:00:00 2001 From: Neil Fuller Date: Mon, 9 Mar 2020 14:19:48 +0000 Subject: [PATCH] Revert DevicePolicyManager time / zone changes Revert recent changes that make DevicePolicyManager call TimeDetector / TimeZoneDetector to change the device time / time zone. The DPC app runs as the user, so any rules that the TimeDetector / TimeZoneDetector wants to enforce about what the end user can do will need to be different for the DPMS path. There will be a dedicated (probably LocalService) code path for the DPMS to use instead. Bug: 140712361 Test: treehugger Merged-In: Ia60702492231cc4c7c5de157c1f266d30996d950 Change-Id: Ia60702492231cc4c7c5de157c1f266d30996d950 --- .../DevicePolicyManagerService.java | 22 ++----------------- .../DevicePolicyManagerServiceTestable.java | 12 ---------- .../devicepolicy/DevicePolicyManagerTest.java | 21 ++---------------- .../server/devicepolicy/DpmMockContext.java | 2 -- .../devicepolicy/MockSystemServices.java | 6 ----- 5 files changed, 4 insertions(+), 59 deletions(-) diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java index 952a64cb2d7c1..25df75a427d9a 100644 --- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java @@ -133,10 +133,6 @@ import android.app.admin.StartInstallingUpdateCallback; import android.app.admin.SystemUpdateInfo; import android.app.admin.SystemUpdatePolicy; import android.app.backup.IBackupManager; -import android.app.timedetector.ManualTimeSuggestion; -import android.app.timedetector.TimeDetector; -import android.app.timezonedetector.ManualTimeZoneSuggestion; -import android.app.timezonedetector.TimeZoneDetector; import android.app.trust.TrustManager; import android.app.usage.UsageStatsManagerInternal; import android.content.ActivityNotFoundException; @@ -1956,14 +1952,6 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager { return mContext.getSystemService(AlarmManager.class); } - TimeDetector getTimeDetector() { - return mContext.getSystemService(TimeDetector.class); - } - - TimeZoneDetector getTimeZoneDetector() { - return mContext.getSystemService(TimeZoneDetector.class); - } - ConnectivityManager getConnectivityManager() { return mContext.getSystemService(ConnectivityManager.class); } @@ -10877,10 +10865,7 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager { if (mInjector.settingsGlobalGetInt(Global.AUTO_TIME, 0) == 1) { return false; } - ManualTimeSuggestion manualTimeSuggestion = TimeDetector.createManualTimeSuggestion( - millis, "DevicePolicyManagerService: setTime"); - mInjector.binderWithCleanCallingIdentity( - () -> mInjector.getTimeDetector().suggestManualTime(manualTimeSuggestion)); + mInjector.binderWithCleanCallingIdentity(() -> mInjector.getAlarmManager().setTime(millis)); return true; } @@ -10892,11 +10877,8 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager { if (mInjector.settingsGlobalGetInt(Global.AUTO_TIME_ZONE, 0) == 1) { return false; } - ManualTimeZoneSuggestion manualTimeZoneSuggestion = - TimeZoneDetector.createManualTimeZoneSuggestion( - timeZone, "DevicePolicyManagerService: setTimeZone"); mInjector.binderWithCleanCallingIdentity(() -> - mInjector.getTimeZoneDetector().suggestManualTimeZone(manualTimeZoneSuggestion)); + mInjector.getAlarmManager().setTimeZone(timeZone)); return true; } diff --git a/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerServiceTestable.java b/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerServiceTestable.java index 0763aa284b688..2ce4c54a932ba 100644 --- a/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerServiceTestable.java +++ b/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerServiceTestable.java @@ -22,8 +22,6 @@ import android.app.IActivityTaskManager; import android.app.NotificationManager; import android.app.PendingIntent; import android.app.backup.IBackupManager; -import android.app.timedetector.TimeDetector; -import android.app.timezonedetector.TimeZoneDetector; import android.app.usage.UsageStatsManagerInternal; import android.content.Context; import android.content.Intent; @@ -218,16 +216,6 @@ public class DevicePolicyManagerServiceTestable extends DevicePolicyManagerServi @Override AlarmManager getAlarmManager() {return services.alarmManager;} - @Override - TimeDetector getTimeDetector() { - return services.timeDetector; - } - - @Override - TimeZoneDetector getTimeZoneDetector() { - return services.timeZoneDetector; - } - @Override LockPatternUtils newLockPatternUtils() { return services.lockPatternUtils; diff --git a/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java b/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java index 7c0afedc63f0f..9ae9824da3e2b 100644 --- a/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java +++ b/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java @@ -63,9 +63,6 @@ import android.app.admin.DeviceAdminReceiver; import android.app.admin.DevicePolicyManager; import android.app.admin.DevicePolicyManagerInternal; import android.app.admin.PasswordMetrics; -import android.app.timedetector.ManualTimeSuggestion; -import android.app.timezonedetector.ManualTimeZoneSuggestion; -import android.app.timezonedetector.TimeZoneDetector; import android.content.BroadcastReceiver; import android.content.ComponentName; import android.content.Intent; @@ -3476,19 +3473,7 @@ public class DevicePolicyManagerTest extends DpmTestBase { mContext.binder.callingUid = DpmMockContext.CALLER_SYSTEM_USER_UID; setupDeviceOwner(); dpm.setTime(admin1, 0); - - BaseMatcher hasZeroTime = new BaseMatcher() { - @Override - public boolean matches(Object item) { - final ManualTimeSuggestion suggestion = (ManualTimeSuggestion) item; - return suggestion.getUtcTime().getValue() == 0; - } - @Override - public void describeTo(Description description) { - description.appendText("ManualTimeSuggestion{utcTime.value=0}"); - } - }; - verify(getServices().timeDetector).suggestManualTime(argThat(hasZeroTime)); + verify(getServices().alarmManager).setTime(0); } public void testSetTimeFailWithPO() throws Exception { @@ -3508,9 +3493,7 @@ public class DevicePolicyManagerTest extends DpmTestBase { mContext.binder.callingUid = DpmMockContext.CALLER_SYSTEM_USER_UID; setupDeviceOwner(); dpm.setTimeZone(admin1, "Asia/Shanghai"); - ManualTimeZoneSuggestion suggestion = - TimeZoneDetector.createManualTimeZoneSuggestion("Asia/Shanghai", "Test debug info"); - verify(getServices().timeZoneDetector).suggestManualTimeZone(suggestion); + verify(getServices().alarmManager).setTimeZone("Asia/Shanghai"); } public void testSetTimeZoneFailWithPO() throws Exception { diff --git a/services/tests/servicestests/src/com/android/server/devicepolicy/DpmMockContext.java b/services/tests/servicestests/src/com/android/server/devicepolicy/DpmMockContext.java index 960f670904d6d..35c115007385f 100644 --- a/services/tests/servicestests/src/com/android/server/devicepolicy/DpmMockContext.java +++ b/services/tests/servicestests/src/com/android/server/devicepolicy/DpmMockContext.java @@ -207,8 +207,6 @@ public class DpmMockContext extends MockContext { switch (name) { case Context.ALARM_SERVICE: return mMockSystemServices.alarmManager; - case Context.TIME_DETECTOR_SERVICE: - return mMockSystemServices.timeDetector; case Context.USER_SERVICE: return mMockSystemServices.userManager; case Context.POWER_SERVICE: diff --git a/services/tests/servicestests/src/com/android/server/devicepolicy/MockSystemServices.java b/services/tests/servicestests/src/com/android/server/devicepolicy/MockSystemServices.java index 16d5db9b8b965..8f0aeea3dbf8a 100644 --- a/services/tests/servicestests/src/com/android/server/devicepolicy/MockSystemServices.java +++ b/services/tests/servicestests/src/com/android/server/devicepolicy/MockSystemServices.java @@ -31,8 +31,6 @@ import android.app.IActivityManager; import android.app.IActivityTaskManager; import android.app.NotificationManager; import android.app.backup.IBackupManager; -import android.app.timedetector.TimeDetector; -import android.app.timezonedetector.TimeZoneDetector; import android.app.usage.UsageStatsManagerInternal; import android.content.BroadcastReceiver; import android.content.ContentValues; @@ -109,8 +107,6 @@ public class MockSystemServices { public final TelephonyManager telephonyManager; public final AccountManager accountManager; public final AlarmManager alarmManager; - public final TimeDetector timeDetector; - public final TimeZoneDetector timeZoneDetector; public final KeyChain.KeyChainConnection keyChainConnection; /** Note this is a partial mock, not a real mock. */ public final PackageManager packageManager; @@ -150,8 +146,6 @@ public class MockSystemServices { telephonyManager = mock(TelephonyManager.class); accountManager = mock(AccountManager.class); alarmManager = mock(AlarmManager.class); - timeDetector = mock(TimeDetector.class); - timeZoneDetector = mock(TimeZoneDetector.class); keyChainConnection = mock(KeyChain.KeyChainConnection.class, RETURNS_DEEP_STUBS); // Package manager is huge, so we use a partial mock instead.