diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2023-01-04 00:53:14 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2023-01-04 00:53:14 +0000 |
commit | 870f3efabc75d5874bbd4ed2dc82fef9afb77ed3 (patch) | |
tree | 3452604ba9061d10fc0af1e38c41fe04923605b8 | |
parent | 9865561e20cbf14dc8ec563f70417affcd73e69b (diff) | |
parent | bc589ccb6856cfcc7ef605cdd6824364d9a19c23 (diff) | |
download | Telecomm-android12-gsi.tar.gz |
Merge cherrypicks of [20028194] into sc-platform-release. am: bc589ccb68android12-gsi
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/services/Telecomm/+/20455016
Change-Id: I31cc4dae105ad56a4206ff5f0eba290e47ff0bd3
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r-- | src/com/android/server/telecom/PhoneAccountRegistrar.java | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/com/android/server/telecom/PhoneAccountRegistrar.java b/src/com/android/server/telecom/PhoneAccountRegistrar.java index ff7c03148..19949f59f 100644 --- a/src/com/android/server/telecom/PhoneAccountRegistrar.java +++ b/src/com/android/server/telecom/PhoneAccountRegistrar.java @@ -50,6 +50,7 @@ import android.telephony.TelephonyManager; import android.text.TextUtils; import android.util.AtomicFile; import android.util.Base64; +import android.util.EventLog; import android.util.Xml; // TODO: Needed for move to system service: import com.android.internal.R; @@ -818,6 +819,7 @@ public class PhoneAccountRegistrar { PhoneAccount oldAccount = getPhoneAccountUnchecked(account.getAccountHandle()); if (oldAccount != null) { + enforceSelfManagedAccountUnmodified(account, oldAccount); mState.accounts.remove(oldAccount); isEnabled = oldAccount.isEnabled(); Log.i(this, "Modify account: %s", getAccountDiffString(account, oldAccount)); @@ -878,6 +880,19 @@ public class PhoneAccountRegistrar { } } + private void enforceSelfManagedAccountUnmodified(PhoneAccount newAccount, + PhoneAccount oldAccount) { + if (oldAccount.hasCapabilities(PhoneAccount.CAPABILITY_SELF_MANAGED) && + (!newAccount.hasCapabilities(PhoneAccount.CAPABILITY_SELF_MANAGED))) { + EventLog.writeEvent(0x534e4554, "246930197"); + Log.w(this, "Self-managed phone account %s replaced by a non self-managed one", + newAccount.getAccountHandle()); + throw new IllegalArgumentException("Error, cannot change a self-managed " + + "phone account " + newAccount.getAccountHandle() + + " to other kinds of phone account"); + } + } + /** * Un-registers all phone accounts associated with a specified package. * |