summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Guojing Yuan <guojing@google.com> 2025-02-25 18:58:24 +0000
committer Guojing Yuan <guojing@google.com> 2025-02-25 21:55:56 +0000
commitf0511296c7f8b3a2fc77eb486a12fa0d68c0de68 (patch)
tree49ab5623af0109552a07b2ba7bc48ad3dccd8c00
parentb3619b0e011917d4c4e7cd696d35f9fcc465f7be (diff)
[CDM] Remove mac address while storing last removed association.
Sample dump: 1740519388424 shell Association{mId=5, mUserId=0, mPackageName='testapp', mDeviceMacAddress=null, mDisplayName='', mDeviceProfile='null', mSelfManaged=false, mAssociatedDevice=null, mNotifyOnDeviceNearby=false, mRevoked=false, mPending=false, mTimeApprovedMs=Tue Feb 25 13:36:20 PST 2025, mLastTimeConnectedMs=None, mSystemDataSyncFlags=0, mDeviceId='null} Fix: 397461312 Flag: EXEMPT bugfix Test: manual Change-Id: I1ecd8ad8d6579191197fae36a25048e034e725a7
-rw-r--r--services/companion/java/com/android/server/companion/association/AssociationDiskStore.java14
1 files changed, 12 insertions, 2 deletions
diff --git a/services/companion/java/com/android/server/companion/association/AssociationDiskStore.java b/services/companion/java/com/android/server/companion/association/AssociationDiskStore.java
index ce7dcd0fa1d4..03107563ec22 100644
--- a/services/companion/java/com/android/server/companion/association/AssociationDiskStore.java
+++ b/services/companion/java/com/android/server/companion/association/AssociationDiskStore.java
@@ -299,14 +299,24 @@ public final class AssociationDiskStore {
public void writeLastRemovedAssociation(AssociationInfo association, String reason) {
Slog.i(TAG, "Writing last removed association=" + association.getId() + " to disk...");
+ // Remove indirect identifier i.e. Mac Address
+ AssociationInfo.Builder builder = new AssociationInfo.Builder(association)
+ .setDeviceMacAddress(null);
+ // Set a placeholder display name if it's null because Mac Address and display name can't be
+ // both null.
+ if (association.getDisplayName() == null) {
+ builder.setDisplayName("");
+ }
+ AssociationInfo redactedAssociation = builder.build();
+
final AtomicFile file = createStorageFileForUser(
- association.getUserId(), FILE_NAME_LAST_REMOVED_ASSOCIATION);
+ redactedAssociation.getUserId(), FILE_NAME_LAST_REMOVED_ASSOCIATION);
writeToFileSafely(file, out -> {
out.write(String.valueOf(System.currentTimeMillis()).getBytes());
out.write(' ');
out.write(reason.getBytes());
out.write(' ');
- out.write(association.toString().getBytes());
+ out.write(redactedAssociation.toString().getBytes());
});
}