public class android.content.pm.PermissionInfo extends android.content.pm.PackageItemInfo implements android.os.Parcelable
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: android.content.pm.PermissionInfo
  super_class: android.content.pm.PackageItemInfo
{
  public static final int PROTECTION_NORMAL;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  public static final int PROTECTION_DANGEROUS;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int PROTECTION_SIGNATURE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  public static final int PROTECTION_SIGNATURE_OR_SYSTEM;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 3
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public static final int PROTECTION_FLAG_PRIVILEGED;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 16

  public static final int PROTECTION_FLAG_SYSTEM;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 16
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public static final int PROTECTION_FLAG_DEVELOPMENT;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 32

  public static final int PROTECTION_FLAG_APPOP;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 64

  public static final int PROTECTION_FLAG_PRE23;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 128

  public static final int PROTECTION_FLAG_INSTALLER;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 256

  public static final int PROTECTION_FLAG_VERIFIER;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 512

  public static final int PROTECTION_FLAG_PREINSTALLED;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1024

  public static final int PROTECTION_FLAG_SETUP;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2048

  public static final int PROTECTION_FLAG_INSTANT;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 4096

  public static final int PROTECTION_FLAG_RUNTIME_ONLY;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 8192

  public static final int PROTECTION_FLAG_OEM;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 16384
    RuntimeVisibleAnnotations: 
      android.annotation.SystemApi()

  public static final int PROTECTION_FLAG_VENDOR_PRIVILEGED;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 32768

  public static final int PROTECTION_FLAG_SYSTEM_TEXT_CLASSIFIER;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 65536
    RuntimeVisibleAnnotations: 
      android.annotation.SystemApi()

  public static final int PROTECTION_MASK_BASE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 15
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public static final int PROTECTION_MASK_FLAGS;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 65520
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public int protectionLevel;
    descriptor: I
    flags: (0x0001) ACC_PUBLIC
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public java.lang.String group;
    descriptor: Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC

  public static final int FLAG_COSTS_MONEY;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int FLAG_REMOVED;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2
    RuntimeVisibleAnnotations: 
      android.annotation.SystemApi()

  public static final int FLAG_INSTALLED;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1073741824

  public int flags;
    descriptor: I
    flags: (0x0001) ACC_PUBLIC

  public int descriptionRes;
    descriptor: I
    flags: (0x0001) ACC_PUBLIC

  public int requestRes;
    descriptor: I
    flags: (0x0001) ACC_PUBLIC
    RuntimeVisibleAnnotations: 
      android.annotation.SystemApi()

  public java.lang.CharSequence nonLocalizedDescription;
    descriptor: Ljava/lang/CharSequence;
    flags: (0x0001) ACC_PUBLIC

  public static final android.os.Parcelable$Creator<android.content.pm.PermissionInfo> CREATOR;
    descriptor: Landroid/os/Parcelable$Creator;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Signature: Landroid/os/Parcelable$Creator<Landroid/content/pm/PermissionInfo;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 462
            new android.content.pm.PermissionInfo$1
            dup
            invokespecial android.content.pm.PermissionInfo$1.<init>:()V
         1: .line 461
            putstatic android.content.pm.PermissionInfo.CREATOR:Landroid/os/Parcelable$Creator;
         2: .line 471
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static int fixProtectionLevel(int);
    descriptor: (I)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // int level
         0: .line 297
            iload 0 /* level */
            iconst_3
            if_icmpne 2
         1: .line 298
            bipush 18
            istore 0 /* level */
         2: .line 300
      StackMap locals:
      StackMap stack:
            iload 0 /* level */
            ldc 32768
            iand
            ifeq 5
         3: .line 301
            iload 0 /* level */
            bipush 16
            iand
            ifne 5
         4: .line 304
            iload 0 /* level */
            ldc -32769
            iand
            istore 0 /* level */
         5: .line 306
      StackMap locals:
      StackMap stack:
            iload 0 /* level */
            ireturn
        end local 0 // int level
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0  level  I
    MethodParameters:
       Name  Flags
      level  

  public static java.lang.String protectionToString(int);
    descriptor: (I)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // int level
         0: .line 311
            ldc "????"
            astore 1 /* protLevel */
        start local 1 // java.lang.String protLevel
         1: .line 312
            iload 0 /* level */
            bipush 15
            iand
            tableswitch { // 0 - 3
                    0: 4
                    1: 2
                    2: 6
                    3: 8
              default: 9
          }
         2: .line 314
      StackMap locals: java.lang.String
      StackMap stack:
            ldc "dangerous"
            astore 1 /* protLevel */
         3: .line 315
            goto 9
         4: .line 317
      StackMap locals:
      StackMap stack:
            ldc "normal"
            astore 1 /* protLevel */
         5: .line 318
            goto 9
         6: .line 320
      StackMap locals:
      StackMap stack:
            ldc "signature"
            astore 1 /* protLevel */
         7: .line 321
            goto 9
         8: .line 323
      StackMap locals:
      StackMap stack:
            ldc "signatureOrSystem"
            astore 1 /* protLevel */
         9: .line 326
      StackMap locals:
      StackMap stack:
            iload 0 /* level */
            bipush 16
            iand
            ifeq 11
        10: .line 327
            new java.lang.StringBuilder
            dup
            aload 1 /* protLevel */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "|privileged"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* protLevel */
        11: .line 329
      StackMap locals:
      StackMap stack:
            iload 0 /* level */
            bipush 32
            iand
            ifeq 13
        12: .line 330
            new java.lang.StringBuilder
            dup
            aload 1 /* protLevel */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "|development"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* protLevel */
        13: .line 332
      StackMap locals:
      StackMap stack:
            iload 0 /* level */
            bipush 64
            iand
            ifeq 15
        14: .line 333
            new java.lang.StringBuilder
            dup
            aload 1 /* protLevel */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "|appop"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* protLevel */
        15: .line 335
      StackMap locals:
      StackMap stack:
            iload 0 /* level */
            sipush 128
            iand
            ifeq 17
        16: .line 336
            new java.lang.StringBuilder
            dup
            aload 1 /* protLevel */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "|pre23"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* protLevel */
        17: .line 338
      StackMap locals:
      StackMap stack:
            iload 0 /* level */
            sipush 256
            iand
            ifeq 19
        18: .line 339
            new java.lang.StringBuilder
            dup
            aload 1 /* protLevel */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "|installer"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* protLevel */
        19: .line 341
      StackMap locals:
      StackMap stack:
            iload 0 /* level */
            sipush 512
            iand
            ifeq 21
        20: .line 342
            new java.lang.StringBuilder
            dup
            aload 1 /* protLevel */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "|verifier"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* protLevel */
        21: .line 344
      StackMap locals:
      StackMap stack:
            iload 0 /* level */
            sipush 1024
            iand
            ifeq 23
        22: .line 345
            new java.lang.StringBuilder
            dup
            aload 1 /* protLevel */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "|preinstalled"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* protLevel */
        23: .line 347
      StackMap locals:
      StackMap stack:
            iload 0 /* level */
            sipush 2048
            iand
            ifeq 25
        24: .line 348
            new java.lang.StringBuilder
            dup
            aload 1 /* protLevel */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "|setup"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* protLevel */
        25: .line 350
      StackMap locals:
      StackMap stack:
            iload 0 /* level */
            sipush 4096
            iand
            ifeq 27
        26: .line 351
            new java.lang.StringBuilder
            dup
            aload 1 /* protLevel */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "|instant"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* protLevel */
        27: .line 353
      StackMap locals:
      StackMap stack:
            iload 0 /* level */
            sipush 8192
            iand
            ifeq 29
        28: .line 354
            new java.lang.StringBuilder
            dup
            aload 1 /* protLevel */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "|runtime"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* protLevel */
        29: .line 356
      StackMap locals:
      StackMap stack:
            iload 0 /* level */
            sipush 16384
            iand
            ifeq 31
        30: .line 357
            new java.lang.StringBuilder
            dup
            aload 1 /* protLevel */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "|oem"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* protLevel */
        31: .line 359
      StackMap locals:
      StackMap stack:
            iload 0 /* level */
            ldc 32768
            iand
            ifeq 33
        32: .line 360
            new java.lang.StringBuilder
            dup
            aload 1 /* protLevel */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "|vendorPrivileged"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* protLevel */
        33: .line 362
      StackMap locals:
      StackMap stack:
            iload 0 /* level */
            ldc 65536
            iand
            ifeq 35
        34: .line 363
            new java.lang.StringBuilder
            dup
            aload 1 /* protLevel */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "|textClassifier"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* protLevel */
        35: .line 365
      StackMap locals:
      StackMap stack:
            aload 1 /* protLevel */
            areturn
        end local 1 // java.lang.String protLevel
        end local 0 // int level
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   36     0      level  I
            1   36     1  protLevel  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      level  

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.content.pm.PermissionInfo this
         0: .line 368
            aload 0 /* this */
            invokespecial android.content.pm.PackageItemInfo.<init>:()V
         1: .line 369
            return
        end local 0 // android.content.pm.PermissionInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/content/pm/PermissionInfo;

  public void <init>(android.content.pm.PermissionInfo);
    descriptor: (Landroid/content/pm/PermissionInfo;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.content.pm.PermissionInfo this
        start local 1 // android.content.pm.PermissionInfo orig
         0: .line 372
            aload 0 /* this */
            aload 1 /* orig */
            invokespecial android.content.pm.PackageItemInfo.<init>:(Landroid/content/pm/PackageItemInfo;)V
         1: .line 373
            aload 0 /* this */
            aload 1 /* orig */
            getfield android.content.pm.PermissionInfo.protectionLevel:I
            putfield android.content.pm.PermissionInfo.protectionLevel:I
         2: .line 374
            aload 0 /* this */
            aload 1 /* orig */
            getfield android.content.pm.PermissionInfo.flags:I
            putfield android.content.pm.PermissionInfo.flags:I
         3: .line 375
            aload 0 /* this */
            aload 1 /* orig */
            getfield android.content.pm.PermissionInfo.group:Ljava/lang/String;
            putfield android.content.pm.PermissionInfo.group:Ljava/lang/String;
         4: .line 376
            aload 0 /* this */
            aload 1 /* orig */
            getfield android.content.pm.PermissionInfo.descriptionRes:I
            putfield android.content.pm.PermissionInfo.descriptionRes:I
         5: .line 377
            aload 0 /* this */
            aload 1 /* orig */
            getfield android.content.pm.PermissionInfo.requestRes:I
            putfield android.content.pm.PermissionInfo.requestRes:I
         6: .line 378
            aload 0 /* this */
            aload 1 /* orig */
            getfield android.content.pm.PermissionInfo.nonLocalizedDescription:Ljava/lang/CharSequence;
            putfield android.content.pm.PermissionInfo.nonLocalizedDescription:Ljava/lang/CharSequence;
         7: .line 379
            return
        end local 1 // android.content.pm.PermissionInfo orig
        end local 0 // android.content.pm.PermissionInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Landroid/content/pm/PermissionInfo;
            0    8     1  orig  Landroid/content/pm/PermissionInfo;
    MethodParameters:
      Name  Flags
      orig  

  public java.lang.CharSequence loadDescription(android.content.pm.PackageManager);
    descriptor: (Landroid/content/pm/PackageManager;)Ljava/lang/CharSequence;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // android.content.pm.PermissionInfo this
        start local 1 // android.content.pm.PackageManager pm
         0: .line 393
            aload 0 /* this */
            getfield android.content.pm.PermissionInfo.nonLocalizedDescription:Ljava/lang/CharSequence;
            ifnull 2
         1: .line 394
            aload 0 /* this */
            getfield android.content.pm.PermissionInfo.nonLocalizedDescription:Ljava/lang/CharSequence;
            areturn
         2: .line 396
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.content.pm.PermissionInfo.descriptionRes:I
            ifeq 6
         3: .line 397
            aload 1 /* pm */
            aload 0 /* this */
            getfield android.content.pm.PermissionInfo.packageName:Ljava/lang/String;
            aload 0 /* this */
            getfield android.content.pm.PermissionInfo.descriptionRes:I
            aconst_null
            invokevirtual android.content.pm.PackageManager.getText:(Ljava/lang/String;ILandroid/content/pm/ApplicationInfo;)Ljava/lang/CharSequence;
            astore 2 /* label */
        start local 2 // java.lang.CharSequence label
         4: .line 398
            aload 2 /* label */
            ifnull 6
         5: .line 399
            aload 2 /* label */
            areturn
        end local 2 // java.lang.CharSequence label
         6: .line 402
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // android.content.pm.PackageManager pm
        end local 0 // android.content.pm.PermissionInfo this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Landroid/content/pm/PermissionInfo;
            0    7     1     pm  Landroid/content/pm/PackageManager;
            4    6     2  label  Ljava/lang/CharSequence;
    MethodParameters:
      Name  Flags
      pm    

  public int getProtection();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.content.pm.PermissionInfo this
         0: .line 410
            aload 0 /* this */
            getfield android.content.pm.PermissionInfo.protectionLevel:I
            bipush 15
            iand
            ireturn
        end local 0 // android.content.pm.PermissionInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/content/pm/PermissionInfo;

  public int getProtectionFlags();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.content.pm.PermissionInfo this
         0: .line 418
            aload 0 /* this */
            getfield android.content.pm.PermissionInfo.protectionLevel:I
            bipush -16
            iand
            ireturn
        end local 0 // android.content.pm.PermissionInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/content/pm/PermissionInfo;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // android.content.pm.PermissionInfo this
         0: .line 423
            new java.lang.StringBuilder
            dup
            ldc "PermissionInfo{"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         1: .line 424
            aload 0 /* this */
            invokestatic java.lang.System.identityHashCode:(Ljava/lang/Object;)I
            invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 425
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield android.content.pm.PermissionInfo.name:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "}"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 423
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // android.content.pm.PermissionInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Landroid/content/pm/PermissionInfo;

  public int describeContents();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.content.pm.PermissionInfo this
         0: .line 430
            iconst_0
            ireturn
        end local 0 // android.content.pm.PermissionInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/content/pm/PermissionInfo;

  public void writeToParcel(android.os.Parcel, int);
    descriptor: (Landroid/os/Parcel;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // android.content.pm.PermissionInfo this
        start local 1 // android.os.Parcel dest
        start local 2 // int parcelableFlags
         0: .line 435
            aload 0 /* this */
            aload 1 /* dest */
            iload 2 /* parcelableFlags */
            invokespecial android.content.pm.PackageItemInfo.writeToParcel:(Landroid/os/Parcel;I)V
         1: .line 436
            aload 1 /* dest */
            aload 0 /* this */
            getfield android.content.pm.PermissionInfo.protectionLevel:I
            invokevirtual android.os.Parcel.writeInt:(I)V
         2: .line 437
            aload 1 /* dest */
            aload 0 /* this */
            getfield android.content.pm.PermissionInfo.flags:I
            invokevirtual android.os.Parcel.writeInt:(I)V
         3: .line 438
            aload 1 /* dest */
            aload 0 /* this */
            getfield android.content.pm.PermissionInfo.group:Ljava/lang/String;
            invokevirtual android.os.Parcel.writeString:(Ljava/lang/String;)V
         4: .line 439
            aload 1 /* dest */
            aload 0 /* this */
            getfield android.content.pm.PermissionInfo.descriptionRes:I
            invokevirtual android.os.Parcel.writeInt:(I)V
         5: .line 440
            aload 1 /* dest */
            aload 0 /* this */
            getfield android.content.pm.PermissionInfo.requestRes:I
            invokevirtual android.os.Parcel.writeInt:(I)V
         6: .line 441
            aload 0 /* this */
            getfield android.content.pm.PermissionInfo.nonLocalizedDescription:Ljava/lang/CharSequence;
            aload 1 /* dest */
            iload 2 /* parcelableFlags */
            invokestatic android.text.TextUtils.writeToParcel:(Ljava/lang/CharSequence;Landroid/os/Parcel;I)V
         7: .line 442
            return
        end local 2 // int parcelableFlags
        end local 1 // android.os.Parcel dest
        end local 0 // android.content.pm.PermissionInfo this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    8     0             this  Landroid/content/pm/PermissionInfo;
            0    8     1             dest  Landroid/os/Parcel;
            0    8     2  parcelableFlags  I
    MethodParameters:
                 Name  Flags
      dest             
      parcelableFlags  

  public int calculateFootprint();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // android.content.pm.PermissionInfo this
         0: .line 446
            aload 0 /* this */
            getfield android.content.pm.PermissionInfo.name:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            istore 1 /* size */
        start local 1 // int size
         1: .line 447
            aload 0 /* this */
            getfield android.content.pm.PermissionInfo.nonLocalizedLabel:Ljava/lang/CharSequence;
            ifnull 3
         2: .line 448
            iload 1 /* size */
            aload 0 /* this */
            getfield android.content.pm.PermissionInfo.nonLocalizedLabel:Ljava/lang/CharSequence;
            invokeinterface java.lang.CharSequence.length:()I
            iadd
            istore 1 /* size */
         3: .line 450
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield android.content.pm.PermissionInfo.nonLocalizedDescription:Ljava/lang/CharSequence;
            ifnull 5
         4: .line 451
            iload 1 /* size */
            aload 0 /* this */
            getfield android.content.pm.PermissionInfo.nonLocalizedDescription:Ljava/lang/CharSequence;
            invokeinterface java.lang.CharSequence.length:()I
            iadd
            istore 1 /* size */
         5: .line 453
      StackMap locals:
      StackMap stack:
            iload 1 /* size */
            ireturn
        end local 1 // int size
        end local 0 // android.content.pm.PermissionInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Landroid/content/pm/PermissionInfo;
            1    6     1  size  I

  public boolean isAppOp();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.content.pm.PermissionInfo this
         0: .line 458
            aload 0 /* this */
            getfield android.content.pm.PermissionInfo.protectionLevel:I
            bipush 64
            iand
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // android.content.pm.PermissionInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/content/pm/PermissionInfo;

  private void <init>(android.os.Parcel);
    descriptor: (Landroid/os/Parcel;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.content.pm.PermissionInfo this
        start local 1 // android.os.Parcel source
         0: .line 474
            aload 0 /* this */
            aload 1 /* source */
            invokespecial android.content.pm.PackageItemInfo.<init>:(Landroid/os/Parcel;)V
         1: .line 475
            aload 0 /* this */
            aload 1 /* source */
            invokevirtual android.os.Parcel.readInt:()I
            putfield android.content.pm.PermissionInfo.protectionLevel:I
         2: .line 476
            aload 0 /* this */
            aload 1 /* source */
            invokevirtual android.os.Parcel.readInt:()I
            putfield android.content.pm.PermissionInfo.flags:I
         3: .line 477
            aload 0 /* this */
            aload 1 /* source */
            invokevirtual android.os.Parcel.readString:()Ljava/lang/String;
            putfield android.content.pm.PermissionInfo.group:Ljava/lang/String;
         4: .line 478
            aload 0 /* this */
            aload 1 /* source */
            invokevirtual android.os.Parcel.readInt:()I
            putfield android.content.pm.PermissionInfo.descriptionRes:I
         5: .line 479
            aload 0 /* this */
            aload 1 /* source */
            invokevirtual android.os.Parcel.readInt:()I
            putfield android.content.pm.PermissionInfo.requestRes:I
         6: .line 480
            aload 0 /* this */
            getstatic android.text.TextUtils.CHAR_SEQUENCE_CREATOR:Landroid/os/Parcelable$Creator;
            aload 1 /* source */
            invokeinterface android.os.Parcelable$Creator.createFromParcel:(Landroid/os/Parcel;)Ljava/lang/Object;
            checkcast java.lang.CharSequence
            putfield android.content.pm.PermissionInfo.nonLocalizedDescription:Ljava/lang/CharSequence;
         7: .line 481
            return
        end local 1 // android.os.Parcel source
        end local 0 // android.content.pm.PermissionInfo this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Landroid/content/pm/PermissionInfo;
            0    8     1  source  Landroid/os/Parcel;
    MethodParameters:
        Name  Flags
      source  
}
SourceFile: "PermissionInfo.java"
NestMembers:
  android.content.pm.PermissionInfo$1  android.content.pm.PermissionInfo$Protection  android.content.pm.PermissionInfo$ProtectionFlags
InnerClasses:
  android.content.pm.PermissionInfo$1
  public abstract Protection = android.content.pm.PermissionInfo$Protection of android.content.pm.PermissionInfo
  public abstract ProtectionFlags = android.content.pm.PermissionInfo$ProtectionFlags of android.content.pm.PermissionInfo
  public abstract Creator = android.os.Parcelable$Creator of android.os.Parcelable