Merge "Check null for before using LockSettingsService" am: 964fccfefd am: e3e7ed125e
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1674887 Change-Id: Ic7fab8afb1e55038e86f224b5cebf55cee5d8bc3
This commit is contained in:
@@ -27,6 +27,7 @@ import static android.os.UserHandle.USER_SYSTEM;
|
||||
import static android.ota.nano.OtaPackageMetadata.ApexMetadata;
|
||||
|
||||
import static com.android.internal.widget.LockSettingsInternal.ARM_REBOOT_ERROR_NONE;
|
||||
import static com.android.internal.widget.LockSettingsInternal.ARM_REBOOT_ERROR_NO_PROVIDER;
|
||||
|
||||
import android.annotation.IntDef;
|
||||
import android.apex.CompressedApexInfo;
|
||||
@@ -398,7 +399,13 @@ public class RecoverySystemService extends IRecoverySystem.Stub implements Reboo
|
||||
|
||||
@VisibleForTesting
|
||||
void onSystemServicesReady() {
|
||||
mInjector.getLockSettingsService().setRebootEscrowListener(this);
|
||||
LockSettingsInternal lockSettings = mInjector.getLockSettingsService();
|
||||
if (lockSettings == null) {
|
||||
Slog.e(TAG, "Failed to get lock settings service, skipping set"
|
||||
+ " RebootEscrowListener");
|
||||
return;
|
||||
}
|
||||
lockSettings.setRebootEscrowListener(this);
|
||||
}
|
||||
|
||||
@Override // Binder call
|
||||
@@ -564,12 +571,18 @@ public class RecoverySystemService extends IRecoverySystem.Stub implements Reboo
|
||||
case ROR_NEED_PREPARATION:
|
||||
final long origId = Binder.clearCallingIdentity();
|
||||
try {
|
||||
boolean result = mInjector.getLockSettingsService().prepareRebootEscrow();
|
||||
// Clear the RoR preparation state if lock settings reports an failure.
|
||||
if (!result) {
|
||||
clearRoRPreparationState();
|
||||
LockSettingsInternal lockSettings = mInjector.getLockSettingsService();
|
||||
if (lockSettings == null) {
|
||||
Slog.e(TAG, "Failed to get lock settings service, skipping"
|
||||
+ " prepareRebootEscrow");
|
||||
return false;
|
||||
}
|
||||
return result;
|
||||
// Clear the RoR preparation state if lock settings reports an failure.
|
||||
if (!lockSettings.prepareRebootEscrow()) {
|
||||
clearRoRPreparationState();
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
} finally {
|
||||
Binder.restoreCallingIdentity(origId);
|
||||
}
|
||||
@@ -684,7 +697,14 @@ public class RecoverySystemService extends IRecoverySystem.Stub implements Reboo
|
||||
case ROR_REQUESTED_NEED_CLEAR:
|
||||
final long origId = Binder.clearCallingIdentity();
|
||||
try {
|
||||
return mInjector.getLockSettingsService().clearRebootEscrow();
|
||||
LockSettingsInternal lockSettings = mInjector.getLockSettingsService();
|
||||
if (lockSettings == null) {
|
||||
Slog.e(TAG, "Failed to get lock settings service, skipping"
|
||||
+ " clearRebootEscrow");
|
||||
return false;
|
||||
}
|
||||
|
||||
return lockSettings.clearRebootEscrow();
|
||||
} finally {
|
||||
Binder.restoreCallingIdentity(origId);
|
||||
}
|
||||
@@ -778,7 +798,15 @@ public class RecoverySystemService extends IRecoverySystem.Stub implements Reboo
|
||||
final long origId = Binder.clearCallingIdentity();
|
||||
int providerErrorCode;
|
||||
try {
|
||||
providerErrorCode = mInjector.getLockSettingsService().armRebootEscrow();
|
||||
LockSettingsInternal lockSettings = mInjector.getLockSettingsService();
|
||||
if (lockSettings == null) {
|
||||
Slog.e(TAG, "Failed to get lock settings service, skipping"
|
||||
+ " armRebootEscrow");
|
||||
return new RebootPreparationError(
|
||||
RESUME_ON_REBOOT_REBOOT_ERROR_PROVIDER_PREPARATION_FAILURE,
|
||||
ARM_REBOOT_ERROR_NO_PROVIDER);
|
||||
}
|
||||
providerErrorCode = lockSettings.armRebootEscrow();
|
||||
} finally {
|
||||
Binder.restoreCallingIdentity(origId);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user