summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Nate Myren <ntmyren@google.com> 2024-10-03 17:44:20 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2024-10-03 17:44:20 +0000
commit1b0e8d090d93c29da911b660d3e157e03b5bac33 (patch)
tree7cd7d5c987963d159788c194eee83860ec18cfdc
parentd7fb91da39fbc8cfc15fcf753c26ff818b830fc1 (diff)
parent75844136d3849868edb22e1b23c30e2e03c48746 (diff)
Merge "[Binder][XIAOMI][Bugfix] Skip appops header in native parcel. [1/2]" into main am: 75844136d3
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/3216581 Change-Id: I81d749e0540901f08e97e138d8fe3d107c5ec86a Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--core/java/android/app/AppOpsManager.java11
1 files changed, 11 insertions, 0 deletions
diff --git a/core/java/android/app/AppOpsManager.java b/core/java/android/app/AppOpsManager.java
index 5214d2c9c02a..091d5ab8534d 100644
--- a/core/java/android/app/AppOpsManager.java
+++ b/core/java/android/app/AppOpsManager.java
@@ -10193,6 +10193,9 @@ public class AppOpsManager {
}
p.writeInt(Parcel.EX_HAS_NOTED_APPOPS_REPLY_HEADER);
+ final int sizePosition = p.dataPosition();
+ // Write size placeholder. With this size we can easily skip it in native.
+ p.writeInt(0);
int numAttributionWithNotesAppOps = notedAppOps.size();
p.writeInt(numAttributionWithNotesAppOps);
@@ -10209,6 +10212,12 @@ public class AppOpsManager {
}
}
}
+
+ final int payloadPosition = p.dataPosition();
+ p.setDataPosition(sizePosition);
+ // Total header size including 4 bytes size itself.
+ p.writeInt(payloadPosition - sizePosition);
+ p.setDataPosition(payloadPosition);
}
/**
@@ -10222,6 +10231,8 @@ public class AppOpsManager {
* @hide
*/
public static void readAndLogNotedAppops(@NonNull Parcel p) {
+ // Skip size.
+ p.readInt();
int numAttributionsWithNotedAppOps = p.readInt();
for (int i = 0; i < numAttributionsWithNotedAppOps; i++) {