Skip to content
This repository was archived by the owner on Nov 8, 2023. It is now read-only.

Commit 3888076

Browse files
TreeHugger RobotAndroid (Google) Code Review
TreeHugger Robot
authored and
Android (Google) Code Review
committed
Merge "Safecty checker improvements on DevicePolicyManagerService." into sc-dev
2 parents 863e3fe + c1e6f21 commit 3888076

File tree

2 files changed

+22
-5
lines changed

2 files changed

+22
-5
lines changed

Diff for: services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java

+6-2
Original file line numberDiff line numberDiff line change
@@ -1139,6 +1139,11 @@ public void setNextOperationSafety(@DevicePolicyOperation int operation,
11391139

11401140
@Override
11411141
public boolean isSafeOperation(@OperationSafetyReason int reason) {
1142+
if (VERBOSE_LOG) {
1143+
Slog.v(LOG_TAG, "checking isSafeOperation("
1144+
+ DevicePolicyManager.operationSafetyReasonToString(reason)
1145+
+ ") using mSafetyChecker " + mSafetyChecker);
1146+
}
11421147
return mSafetyChecker == null ? true : mSafetyChecker.isSafeOperation(reason);
11431148
}
11441149

@@ -9175,8 +9180,7 @@ private void dumpImmutableState(IndentingPrintWriter pw) {
91759180
pw.printf("mIsWatch=%b\n", mIsWatch);
91769181
pw.printf("mIsAutomotive=%b\n", mIsAutomotive);
91779182
pw.printf("mHasTelephonyFeature=%b\n", mHasTelephonyFeature);
9178-
String safetyChecker = mSafetyChecker == null ? "N/A" : mSafetyChecker.getClass().getName();
9179-
pw.printf("mSafetyChecker=%b\n", safetyChecker);
9183+
pw.printf("mSafetyChecker=%s\n", mSafetyChecker);
91809184
pw.decreaseIndent();
91819185
}
91829186

Diff for: services/devicepolicy/java/com/android/server/devicepolicy/OneTimeSafetyChecker.java

+16-3
Original file line numberDiff line numberDiff line change
@@ -78,9 +78,9 @@ public int getUnsafeOperationReason(@DevicePolicyOperation int operation) {
7878
Slog.i(TAG, "notifying " + reasonName + " is inactive");
7979
dpmi.notifyUnsafeOperationStateChanged(this, reason, false);
8080

81-
Slog.i(TAG, "returning " + reasonName
82-
+ " and restoring DevicePolicySafetyChecker to " + mRealSafetyChecker);
83-
mService.setDevicePolicySafetyCheckerUnchecked(mRealSafetyChecker);
81+
Slog.i(TAG, "returning " + reasonName);
82+
83+
disableSelf();
8484
return reason;
8585
}
8686

@@ -89,11 +89,24 @@ public boolean isSafeOperation(@OperationSafetyReason int reason) {
8989
boolean safe = mReason != reason;
9090
Slog.i(TAG, "isSafeOperation(" + operationSafetyReasonToString(reason) + "): " + safe);
9191

92+
disableSelf();
9293
return safe;
9394
}
9495

9596
@Override
9697
public void onFactoryReset(IResultReceiver callback) {
9798
throw new UnsupportedOperationException();
9899
}
100+
101+
private void disableSelf() {
102+
Slog.i(TAG, "restoring DevicePolicySafetyChecker to " + mRealSafetyChecker);
103+
mService.setDevicePolicySafetyCheckerUnchecked(mRealSafetyChecker);
104+
}
105+
106+
@Override
107+
public String toString() {
108+
return "OneTimeSafetyChecker[id=" + System.identityHashCode(this)
109+
+ ", reason=" + operationSafetyReasonToString(mReason)
110+
+ ", operation=" + operationToString(mOperation) + ']';
111+
}
99112
}

0 commit comments

Comments
 (0)