Do not mandate SyncNotedAppOp package name be non-null

There are cases where an app with no package name needs to receive Noted
app ops, and the requirement is causing crashes

Bug: 256255982
Bug: 250518617
Test: build
Change-Id: I43128b82fe705e230ce9bc031b5e738ef4c4290a
This commit is contained in:
Nate Myren
2022-10-31 12:38:53 -07:00
parent 91b91c6e34
commit d1beaa41cb
2 changed files with 10 additions and 11 deletions

View File

@@ -419,7 +419,7 @@ package android.app {
}
public final class SyncNotedAppOp implements android.os.Parcelable {
ctor public SyncNotedAppOp(int, @IntRange(from=0L) int, @Nullable String, @NonNull String);
ctor public SyncNotedAppOp(int, @IntRange(from=0L) int, @Nullable String, @Nullable String);
}
public class TaskInfo {

View File

@@ -56,7 +56,7 @@ public final class SyncNotedAppOp implements Parcelable {
* The package this op applies to
* @hide
*/
private final @NonNull String mPackageName;
private final @Nullable String mPackageName;
/**
* Native code relies on parcel ordering, do not change
@@ -64,7 +64,7 @@ public final class SyncNotedAppOp implements Parcelable {
*/
@TestApi
public SyncNotedAppOp(int opMode, @IntRange(from = 0L) int opCode,
@Nullable String attributionTag, @NonNull String packageName) {
@Nullable String attributionTag, @Nullable String packageName) {
this.mOpCode = opCode;
com.android.internal.util.AnnotationValidations.validate(
IntRange.class, null, mOpCode,
@@ -101,7 +101,7 @@ public final class SyncNotedAppOp implements Parcelable {
* @hide
*/
public SyncNotedAppOp(@IntRange(from = 0L) int opCode, @Nullable String attributionTag,
@NonNull String packageName) {
@Nullable String packageName) {
this(AppOpsManager.MODE_IGNORED, opCode, attributionTag, packageName);
}
@@ -152,7 +152,7 @@ public final class SyncNotedAppOp implements Parcelable {
* @hide
*/
@DataClass.Generated.Member
public @NonNull String getPackageName() {
public @Nullable String getPackageName() {
return mPackageName;
}
@@ -211,11 +211,12 @@ public final class SyncNotedAppOp implements Parcelable {
byte flg = 0;
if (mAttributionTag != null) flg |= 0x4;
if (mPackageName != null) flg |= 0x8;
dest.writeByte(flg);
dest.writeInt(mOpMode);
dest.writeInt(mOpCode);
if (mAttributionTag != null) dest.writeString(mAttributionTag);
dest.writeString(mPackageName);
if (mPackageName != null) dest.writeString(mPackageName);
}
@Override
@@ -233,7 +234,7 @@ public final class SyncNotedAppOp implements Parcelable {
int opMode = in.readInt();
int opCode = in.readInt();
String attributionTag = (flg & 0x4) == 0 ? null : in.readString();
String packageName = in.readString();
String packageName = (flg & 0x8) == 0 ? null : in.readString();
this.mOpMode = opMode;
this.mOpCode = opCode;
@@ -243,8 +244,6 @@ public final class SyncNotedAppOp implements Parcelable {
"to", AppOpsManager._NUM_OP - 1);
this.mAttributionTag = attributionTag;
this.mPackageName = packageName;
com.android.internal.util.AnnotationValidations.validate(
NonNull.class, null, mPackageName);
// onConstructed(); // You can define this method to get a callback
}
@@ -264,10 +263,10 @@ public final class SyncNotedAppOp implements Parcelable {
};
@DataClass.Generated(
time = 1643320427700L,
time = 1667247337573L,
codegenVersion = "1.0.23",
sourceFile = "frameworks/base/core/java/android/app/SyncNotedAppOp.java",
inputSignatures = "private final int mOpMode\nprivate final @android.annotation.IntRange int mOpCode\nprivate final @android.annotation.Nullable java.lang.String mAttributionTag\nprivate final @android.annotation.NonNull java.lang.String mPackageName\npublic @android.annotation.NonNull java.lang.String getOp()\npublic int getOpMode()\nprivate java.lang.String opCodeToString()\nclass SyncNotedAppOp extends java.lang.Object implements [android.os.Parcelable]\n@com.android.internal.util.DataClass(genEqualsHashCode=true, genAidl=true, genConstructor=false, genToString=true)")
inputSignatures = "private final int mOpMode\nprivate final @android.annotation.IntRange int mOpCode\nprivate final @android.annotation.Nullable java.lang.String mAttributionTag\nprivate final @android.annotation.Nullable java.lang.String mPackageName\npublic @android.annotation.NonNull java.lang.String getOp()\npublic int getOpMode()\nprivate java.lang.String opCodeToString()\nclass SyncNotedAppOp extends java.lang.Object implements [android.os.Parcelable]\n@com.android.internal.util.DataClass(genEqualsHashCode=true, genAidl=true, genConstructor=false, genToString=true)")
@Deprecated
private void __metadata() {}