public final class android.nfc.tech.MifareClassic extends android.nfc.tech.BasicTagTechnology
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: android.nfc.tech.MifareClassic
super_class: android.nfc.tech.BasicTagTechnology
{
private static final java.lang.String TAG;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "NFC"
public static final byte[] KEY_DEFAULT;
descriptor: [B
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final byte[] KEY_MIFARE_APPLICATION_DIRECTORY;
descriptor: [B
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final byte[] KEY_NFC_FORUM;
descriptor: [B
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final int TYPE_UNKNOWN;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: -1
public static final int TYPE_CLASSIC;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 0
public static final int TYPE_PLUS;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 1
public static final int TYPE_PRO;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 2
public static final int SIZE_1K;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 1024
public static final int SIZE_2K;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 2048
public static final int SIZE_4K;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 4096
public static final int SIZE_MINI;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 320
public static final int BLOCK_SIZE;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 16
private static final int MAX_BLOCK_COUNT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 256
private static final int MAX_SECTOR_COUNT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 40
private boolean mIsEmulated;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private int mType;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int mSize;
descriptor: I
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: bipush 6
newarray 8
dup
iconst_0
iconst_m1
bastore
dup
iconst_1
iconst_m1
bastore
dup
iconst_2
iconst_m1
bastore
dup
iconst_3
iconst_m1
bastore
dup
iconst_4
iconst_m1
bastore
dup
iconst_5
iconst_m1
bastore
1: putstatic android.nfc.tech.MifareClassic.KEY_DEFAULT:[B
2: bipush 6
newarray 8
dup
iconst_0
bipush -96
bastore
dup
iconst_1
bipush -95
bastore
dup
iconst_2
bipush -94
bastore
dup
iconst_3
bipush -93
bastore
dup
iconst_4
bipush -92
bastore
dup
iconst_5
bipush -91
bastore
3: putstatic android.nfc.tech.MifareClassic.KEY_MIFARE_APPLICATION_DIRECTORY:[B
4: bipush 6
newarray 8
dup
iconst_0
bipush -45
bastore
dup
iconst_1
bipush -9
bastore
dup
iconst_2
bipush -45
bastore
dup
iconst_3
bipush -9
bastore
dup
iconst_4
bipush -45
bastore
dup
iconst_5
bipush -9
bastore
5: putstatic android.nfc.tech.MifareClassic.KEY_NFC_FORUM:[B
6: return
LocalVariableTable:
Start End Slot Name Signature
public static android.nfc.tech.MifareClassic get(android.nfc.Tag);
descriptor: (Landroid/nfc/Tag;)Landroid/nfc/tech/MifareClassic;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
bipush 8
invokevirtual android.nfc.Tag.hasTech:(I)Z
ifne 1
aconst_null
areturn
1: StackMap locals:
StackMap stack:
new android.nfc.tech.MifareClassic
dup
aload 0
invokespecial android.nfc.tech.MifareClassic.<init>:(Landroid/nfc/Tag;)V
2: areturn
3: StackMap locals:
StackMap stack: android.os.RemoteException
pop
4: aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 tag Landroid/nfc/Tag;
Exception table:
from to target type
1 2 3 Class android.os.RemoteException
MethodParameters:
Name Flags
tag
public void <init>(android.nfc.Tag);
descriptor: (Landroid/nfc/Tag;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
bipush 8
invokespecial android.nfc.tech.BasicTagTechnology.<init>:(Landroid/nfc/Tag;I)V
1: aload 1
invokestatic android.nfc.tech.NfcA.get:(Landroid/nfc/Tag;)Landroid/nfc/tech/NfcA;
astore 2
start local 2 2: aload 0
iconst_0
putfield android.nfc.tech.MifareClassic.mIsEmulated:Z
3: aload 2
invokevirtual android.nfc.tech.NfcA.getSak:()S
lookupswitch { // 11
1: 4
8: 4
9: 7
16: 10
17: 13
24: 16
40: 19
56: 23
136: 27
152: 30
184: 30
default: 33
}
4: StackMap locals: android.nfc.tech.MifareClassic android.nfc.Tag android.nfc.tech.NfcA
StackMap stack:
aload 0
iconst_0
putfield android.nfc.tech.MifareClassic.mType:I
5: aload 0
sipush 1024
putfield android.nfc.tech.MifareClassic.mSize:I
6: goto 36
7: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield android.nfc.tech.MifareClassic.mType:I
8: aload 0
sipush 320
putfield android.nfc.tech.MifareClassic.mSize:I
9: goto 36
10: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield android.nfc.tech.MifareClassic.mType:I
11: aload 0
sipush 2048
putfield android.nfc.tech.MifareClassic.mSize:I
12: goto 36
13: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield android.nfc.tech.MifareClassic.mType:I
14: aload 0
sipush 4096
putfield android.nfc.tech.MifareClassic.mSize:I
15: goto 36
16: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield android.nfc.tech.MifareClassic.mType:I
17: aload 0
sipush 4096
putfield android.nfc.tech.MifareClassic.mSize:I
18: goto 36
19: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield android.nfc.tech.MifareClassic.mType:I
20: aload 0
sipush 1024
putfield android.nfc.tech.MifareClassic.mSize:I
21: aload 0
iconst_1
putfield android.nfc.tech.MifareClassic.mIsEmulated:Z
22: goto 36
23: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield android.nfc.tech.MifareClassic.mType:I
24: aload 0
sipush 4096
putfield android.nfc.tech.MifareClassic.mSize:I
25: aload 0
iconst_1
putfield android.nfc.tech.MifareClassic.mIsEmulated:Z
26: goto 36
27: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield android.nfc.tech.MifareClassic.mType:I
28: aload 0
sipush 1024
putfield android.nfc.tech.MifareClassic.mSize:I
29: goto 36
30: StackMap locals:
StackMap stack:
aload 0
iconst_2
putfield android.nfc.tech.MifareClassic.mType:I
31: aload 0
sipush 4096
putfield android.nfc.tech.MifareClassic.mSize:I
32: goto 36
33: StackMap locals:
StackMap stack:
new java.lang.RuntimeException
dup
34: new java.lang.StringBuilder
dup
ldc "Tag incorrectly enumerated as MIFARE Classic, SAK = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual android.nfc.tech.NfcA.getSak:()S
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
35: invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
36: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 37 0 this Landroid/nfc/tech/MifareClassic;
0 37 1 tag Landroid/nfc/Tag;
2 37 2 a Landroid/nfc/tech/NfcA;
Exceptions:
throws android.os.RemoteException
MethodParameters:
Name Flags
tag
public int getType();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.nfc.tech.MifareClassic.mType:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/nfc/tech/MifareClassic;
public int getSize();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.nfc.tech.MifareClassic.mSize:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/nfc/tech/MifareClassic;
public boolean isEmulated();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.nfc.tech.MifareClassic.mIsEmulated:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/nfc/tech/MifareClassic;
public int getSectorCount();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.nfc.tech.MifareClassic.mSize:I
lookupswitch { // 4
320: 4
1024: 1
2048: 2
4096: 3
default: 5
}
1: StackMap locals:
StackMap stack:
bipush 16
ireturn
2: StackMap locals:
StackMap stack:
bipush 32
ireturn
3: StackMap locals:
StackMap stack:
bipush 40
ireturn
4: StackMap locals:
StackMap stack:
iconst_5
ireturn
5: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Landroid/nfc/tech/MifareClassic;
public int getBlockCount();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield android.nfc.tech.MifareClassic.mSize:I
bipush 16
idiv
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/nfc/tech/MifareClassic;
public int getBlockCountInSector(int);
descriptor: (I)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: iload 1
invokestatic android.nfc.tech.MifareClassic.validateSector:(I)V
1: iload 1
bipush 32
if_icmpge 3
2: iconst_4
ireturn
3: StackMap locals:
StackMap stack:
bipush 16
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Landroid/nfc/tech/MifareClassic;
0 4 1 sectorIndex I
MethodParameters:
Name Flags
sectorIndex
public int blockToSector(int);
descriptor: (I)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: iload 1
invokestatic android.nfc.tech.MifareClassic.validateBlock:(I)V
1: iload 1
sipush 128
if_icmpge 3
2: iload 1
iconst_4
idiv
ireturn
3: StackMap locals:
StackMap stack:
bipush 32
iload 1
sipush 128
isub
bipush 16
idiv
iadd
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Landroid/nfc/tech/MifareClassic;
0 4 1 blockIndex I
MethodParameters:
Name Flags
blockIndex
public int sectorToBlock(int);
descriptor: (I)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: iload 1
bipush 32
if_icmpge 2
1: iload 1
iconst_4
imul
ireturn
2: StackMap locals:
StackMap stack:
sipush 128
iload 1
bipush 32
isub
bipush 16
imul
iadd
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Landroid/nfc/tech/MifareClassic;
0 3 1 sectorIndex I
MethodParameters:
Name Flags
sectorIndex
public boolean authenticateSectorWithKeyA(int, byte[]);
descriptor: (I[B)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
aload 2
iconst_1
invokevirtual android.nfc.tech.MifareClassic.authenticate:(I[BZ)Z
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/nfc/tech/MifareClassic;
0 1 1 sectorIndex I
0 1 2 key [B
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
sectorIndex
key
public boolean authenticateSectorWithKeyB(int, byte[]);
descriptor: (I[B)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
aload 2
iconst_0
invokevirtual android.nfc.tech.MifareClassic.authenticate:(I[BZ)Z
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/nfc/tech/MifareClassic;
0 1 1 sectorIndex I
0 1 2 key [B
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
sectorIndex
key
private boolean authenticate(int, byte[], boolean);
descriptor: (I[BZ)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 1
invokestatic android.nfc.tech.MifareClassic.validateSector:(I)V
1: aload 0
invokevirtual android.nfc.tech.MifareClassic.checkConnected:()V
2: bipush 12
newarray 8
astore 4
start local 4 3: iload 3
ifeq 6
4: aload 4
iconst_0
bipush 96
bastore
5: goto 7
6: StackMap locals: byte[]
StackMap stack:
aload 4
iconst_0
bipush 97
bastore
7: StackMap locals:
StackMap stack:
aload 4
iconst_1
aload 0
iload 1
invokevirtual android.nfc.tech.MifareClassic.sectorToBlock:(I)I
i2b
bastore
8: aload 0
invokevirtual android.nfc.tech.MifareClassic.getTag:()Landroid/nfc/Tag;
invokevirtual android.nfc.Tag.getId:()[B
astore 5
start local 5 9: aload 5
aload 5
arraylength
iconst_4
isub
aload 4
iconst_2
iconst_4
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
10: aload 2
iconst_0
aload 4
bipush 6
bipush 6
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
11: aload 0
aload 4
iconst_0
invokevirtual android.nfc.tech.MifareClassic.transceive:([BZ)[B
ifnull 16
12: iconst_1
ireturn
13: StackMap locals: android.nfc.tech.MifareClassic int byte[] int byte[] byte[]
StackMap stack: android.nfc.TagLostException
astore 6
start local 6 14: aload 6
athrow
end local 6 15: StackMap locals:
StackMap stack: java.io.IOException
pop
16: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Landroid/nfc/tech/MifareClassic;
0 17 1 sector I
0 17 2 key [B
0 17 3 keyA Z
3 17 4 cmd [B
9 17 5 uid [B
14 15 6 e Landroid/nfc/TagLostException;
Exception table:
from to target type
11 12 13 Class android.nfc.TagLostException
11 12 15 Class java.io.IOException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
sector
key
keyA
public byte[] readBlock(int);
descriptor: (I)[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: iload 1
invokestatic android.nfc.tech.MifareClassic.validateBlock:(I)V
1: aload 0
invokevirtual android.nfc.tech.MifareClassic.checkConnected:()V
2: iconst_2
newarray 8
dup
iconst_0
bipush 48
bastore
dup
iconst_1
iload 1
i2b
bastore
astore 2
start local 2 3: aload 0
aload 2
iconst_0
invokevirtual android.nfc.tech.MifareClassic.transceive:([BZ)[B
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Landroid/nfc/tech/MifareClassic;
0 4 1 blockIndex I
3 4 2 cmd [B
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
blockIndex
public void writeBlock(int, byte[]);
descriptor: (I[B)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: iload 1
invokestatic android.nfc.tech.MifareClassic.validateBlock:(I)V
1: aload 0
invokevirtual android.nfc.tech.MifareClassic.checkConnected:()V
2: aload 2
arraylength
bipush 16
if_icmpeq 4
3: new java.lang.IllegalArgumentException
dup
ldc "must write 16-bytes"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 2
arraylength
iconst_2
iadd
newarray 8
astore 3
start local 3 5: aload 3
iconst_0
bipush -96
bastore
6: aload 3
iconst_1
iload 1
i2b
bastore
7: aload 2
iconst_0
aload 3
iconst_2
aload 2
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
8: aload 0
aload 3
iconst_0
invokevirtual android.nfc.tech.MifareClassic.transceive:([BZ)[B
pop
9: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Landroid/nfc/tech/MifareClassic;
0 10 1 blockIndex I
0 10 2 data [B
5 10 3 cmd [B
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
blockIndex
data
public void increment(int, int);
descriptor: (II)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: iload 1
invokestatic android.nfc.tech.MifareClassic.validateBlock:(I)V
1: iload 2
invokestatic android.nfc.tech.MifareClassic.validateValueOperand:(I)V
2: aload 0
invokevirtual android.nfc.tech.MifareClassic.checkConnected:()V
3: bipush 6
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
astore 3
start local 3 4: aload 3
getstatic java.nio.ByteOrder.LITTLE_ENDIAN:Ljava/nio/ByteOrder;
invokevirtual java.nio.ByteBuffer.order:(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;
pop
5: aload 3
bipush -63
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
6: aload 3
iload 1
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
7: aload 3
iload 2
invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
pop
8: aload 0
aload 3
invokevirtual java.nio.ByteBuffer.array:()[B
iconst_0
invokevirtual android.nfc.tech.MifareClassic.transceive:([BZ)[B
pop
9: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Landroid/nfc/tech/MifareClassic;
0 10 1 blockIndex I
0 10 2 value I
4 10 3 cmd Ljava/nio/ByteBuffer;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
blockIndex
value
public void decrement(int, int);
descriptor: (II)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: iload 1
invokestatic android.nfc.tech.MifareClassic.validateBlock:(I)V
1: iload 2
invokestatic android.nfc.tech.MifareClassic.validateValueOperand:(I)V
2: aload 0
invokevirtual android.nfc.tech.MifareClassic.checkConnected:()V
3: bipush 6
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
astore 3
start local 3 4: aload 3
getstatic java.nio.ByteOrder.LITTLE_ENDIAN:Ljava/nio/ByteOrder;
invokevirtual java.nio.ByteBuffer.order:(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;
pop
5: aload 3
bipush -64
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
6: aload 3
iload 1
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
7: aload 3
iload 2
invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
pop
8: aload 0
aload 3
invokevirtual java.nio.ByteBuffer.array:()[B
iconst_0
invokevirtual android.nfc.tech.MifareClassic.transceive:([BZ)[B
pop
9: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Landroid/nfc/tech/MifareClassic;
0 10 1 blockIndex I
0 10 2 value I
4 10 3 cmd Ljava/nio/ByteBuffer;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
blockIndex
value
public void transfer(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: iload 1
invokestatic android.nfc.tech.MifareClassic.validateBlock:(I)V
1: aload 0
invokevirtual android.nfc.tech.MifareClassic.checkConnected:()V
2: iconst_2
newarray 8
dup
iconst_0
bipush -80
bastore
dup
iconst_1
iload 1
i2b
bastore
astore 2
start local 2 3: aload 0
aload 2
iconst_0
invokevirtual android.nfc.tech.MifareClassic.transceive:([BZ)[B
pop
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Landroid/nfc/tech/MifareClassic;
0 5 1 blockIndex I
3 5 2 cmd [B
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
blockIndex
public void restore(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: iload 1
invokestatic android.nfc.tech.MifareClassic.validateBlock:(I)V
1: aload 0
invokevirtual android.nfc.tech.MifareClassic.checkConnected:()V
2: iconst_2
newarray 8
dup
iconst_0
bipush -62
bastore
dup
iconst_1
iload 1
i2b
bastore
astore 2
start local 2 3: aload 0
aload 2
iconst_0
invokevirtual android.nfc.tech.MifareClassic.transceive:([BZ)[B
pop
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Landroid/nfc/tech/MifareClassic;
0 5 1 blockIndex I
3 5 2 cmd [B
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
blockIndex
public byte[] transceive(byte[]);
descriptor: ([B)[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
iconst_1
invokevirtual android.nfc.tech.MifareClassic.transceive:([BZ)[B
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/nfc/tech/MifareClassic;
0 1 1 data [B
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
data
public int getMaxTransceiveLength();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual android.nfc.tech.MifareClassic.getMaxTransceiveLengthInternal:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/nfc/tech/MifareClassic;
public void setTimeout(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield android.nfc.tech.MifareClassic.mTag:Landroid/nfc/Tag;
invokevirtual android.nfc.Tag.getTagService:()Landroid/nfc/INfcTag;
bipush 8
iload 1
invokeinterface android.nfc.INfcTag.setTimeout:(II)I
istore 2
start local 2 1: iload 2
ifeq 5
2: new java.lang.IllegalArgumentException
dup
ldc "The supplied timeout is not valid"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 2 3: StackMap locals:
StackMap stack: android.os.RemoteException
astore 2
start local 2 4: ldc "NFC"
ldc "NFC service dead"
aload 2
invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
pop
end local 2 5: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Landroid/nfc/tech/MifareClassic;
0 6 1 timeout I
1 3 2 err I
4 5 2 e Landroid/os/RemoteException;
Exception table:
from to target type
0 3 3 Class android.os.RemoteException
MethodParameters:
Name Flags
timeout
public int getTimeout();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield android.nfc.tech.MifareClassic.mTag:Landroid/nfc/Tag;
invokevirtual android.nfc.Tag.getTagService:()Landroid/nfc/INfcTag;
bipush 8
invokeinterface android.nfc.INfcTag.getTimeout:(I)I
1: ireturn
2: StackMap locals:
StackMap stack: android.os.RemoteException
astore 1
start local 1 3: ldc "NFC"
ldc "NFC service dead"
aload 1
invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
pop
4: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Landroid/nfc/tech/MifareClassic;
3 5 1 e Landroid/os/RemoteException;
Exception table:
from to target type
0 1 2 Class android.os.RemoteException
private static void validateSector(int);
descriptor: (I)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: iload 0
iflt 1
iload 0
bipush 40
if_icmplt 2
1: StackMap locals:
StackMap stack:
new java.lang.IndexOutOfBoundsException
dup
new java.lang.StringBuilder
dup
ldc "sector out of bounds: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 0
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 sector I
MethodParameters:
Name Flags
sector
private static void validateBlock(int);
descriptor: (I)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: iload 0
iflt 1
iload 0
sipush 256
if_icmplt 2
1: StackMap locals:
StackMap stack:
new java.lang.IndexOutOfBoundsException
dup
new java.lang.StringBuilder
dup
ldc "block out of bounds: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 0
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 block I
MethodParameters:
Name Flags
block
private static void validateValueOperand(int);
descriptor: (I)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: iload 0
ifge 2
1: new java.lang.IllegalArgumentException
dup
ldc "value operand negative"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 value I
MethodParameters:
Name Flags
value
public void close();
descriptor: ()V
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokespecial android.nfc.tech.BasicTagTechnology.close:()V
return
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.io.IOException
public void connect();
descriptor: ()V
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokespecial android.nfc.tech.BasicTagTechnology.connect:()V
return
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.io.IOException
public boolean isConnected();
descriptor: ()Z
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokespecial android.nfc.tech.BasicTagTechnology.isConnected:()Z
ireturn
LocalVariableTable:
Start End Slot Name Signature
public android.nfc.Tag getTag();
descriptor: ()Landroid/nfc/Tag;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokespecial android.nfc.tech.BasicTagTechnology.getTag:()Landroid/nfc/Tag;
areturn
LocalVariableTable:
Start End Slot Name Signature
public void reconnect();
descriptor: ()V
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokespecial android.nfc.tech.BasicTagTechnology.reconnect:()V
return
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.io.IOException
}
SourceFile: "MifareClassic.java"