Merge "Safecty checker improvements on DevicePolicyManagerService." into sc-dev

This commit is contained in:
TreeHugger Robot
2021-02-21 19:52:34 +00:00
committed by Android (Google) Code Review
2 changed files with 22 additions and 5 deletions

View File

@@ -1139,6 +1139,11 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
@Override
public boolean isSafeOperation(@OperationSafetyReason int reason) {
if (VERBOSE_LOG) {
Slog.v(LOG_TAG, "checking isSafeOperation("
+ DevicePolicyManager.operationSafetyReasonToString(reason)
+ ") using mSafetyChecker " + mSafetyChecker);
}
return mSafetyChecker == null ? true : mSafetyChecker.isSafeOperation(reason);
}
@@ -9175,8 +9180,7 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
pw.printf("mIsWatch=%b\n", mIsWatch);
pw.printf("mIsAutomotive=%b\n", mIsAutomotive);
pw.printf("mHasTelephonyFeature=%b\n", mHasTelephonyFeature);
String safetyChecker = mSafetyChecker == null ? "N/A" : mSafetyChecker.getClass().getName();
pw.printf("mSafetyChecker=%b\n", safetyChecker);
pw.printf("mSafetyChecker=%s\n", mSafetyChecker);
pw.decreaseIndent();
}

View File

@@ -78,9 +78,9 @@ final class OneTimeSafetyChecker implements DevicePolicySafetyChecker {
Slog.i(TAG, "notifying " + reasonName + " is inactive");
dpmi.notifyUnsafeOperationStateChanged(this, reason, false);
Slog.i(TAG, "returning " + reasonName
+ " and restoring DevicePolicySafetyChecker to " + mRealSafetyChecker);
mService.setDevicePolicySafetyCheckerUnchecked(mRealSafetyChecker);
Slog.i(TAG, "returning " + reasonName);
disableSelf();
return reason;
}
@@ -89,6 +89,7 @@ final class OneTimeSafetyChecker implements DevicePolicySafetyChecker {
boolean safe = mReason != reason;
Slog.i(TAG, "isSafeOperation(" + operationSafetyReasonToString(reason) + "): " + safe);
disableSelf();
return safe;
}
@@ -96,4 +97,16 @@ final class OneTimeSafetyChecker implements DevicePolicySafetyChecker {
public void onFactoryReset(IResultReceiver callback) {
throw new UnsupportedOperationException();
}
private void disableSelf() {
Slog.i(TAG, "restoring DevicePolicySafetyChecker to " + mRealSafetyChecker);
mService.setDevicePolicySafetyCheckerUnchecked(mRealSafetyChecker);
}
@Override
public String toString() {
return "OneTimeSafetyChecker[id=" + System.identityHashCode(this)
+ ", reason=" + operationSafetyReasonToString(mReason)
+ ", operation=" + operationToString(mOperation) + ']';
}
}