DexFormat.smali
.class public final Lcom/tencent/tinker/android/dex/DexFormat;
.super Ljava/lang/Object;
# static fields
.field public static final API_CURRENT:I = 0xe
.field public static final API_NO_EXTENDED_OPCODES:I = 0xd
.field public static final DEX_IN_JAR_NAME:Ljava/lang/String; = "classes.dex"
.field public static final ENDIAN_TAG:I = 0x12345678
.field public static final MAGIC_PREFIX:Ljava/lang/String; = "dex\n"
.field public static final MAGIC_SUFFIX:Ljava/lang/String; = "\u0000"
.field public static final MAX_MEMBER_IDX:I = 0xffff
.field public static final MAX_TYPE_IDX:I = 0xffff
.field public static final VERSION_CURRENT:Ljava/lang/String; = "036"
.field public static final VERSION_FOR_API_13:Ljava/lang/String; = "035"
# direct methods
.method private constructor <init>()V
.registers 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static apiToMagic(I)Ljava/lang/String;
.registers 4
const/16 v0, 0xe
if-lt p0, v0, :cond_23
const-string/jumbo v0, "036"
:goto_7
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v2, "dex\n"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string/jumbo v1, "\u0000"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
:cond_23
const-string/jumbo v0, "035"
goto :goto_7
.end method
.method public static magicToApi([B)I
.registers 4
const/4 v0, -0x1
array-length v1, p0
const/16 v2, 0x8
if-eq v1, v2, :cond_7
:cond_6
:goto_6
return v0
:cond_7
const/4 v1, 0x0
aget-byte v1, p0, v1
const/16 v2, 0x64
if-ne v1, v2, :cond_6
const/4 v1, 0x1
aget-byte v1, p0, v1
const/16 v2, 0x65
if-ne v1, v2, :cond_6
const/4 v1, 0x2
aget-byte v1, p0, v1
const/16 v2, 0x78
if-ne v1, v2, :cond_6
const/4 v1, 0x3
aget-byte v1, p0, v1
const/16 v2, 0xa
if-ne v1, v2, :cond_6
const/4 v1, 0x7
aget-byte v1, p0, v1
if-nez v1, :cond_6
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v2, ""
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const/4 v2, 0x4
aget-byte v2, p0, v2
int-to-char v2, v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
move-result-object v1
const/4 v2, 0x5
aget-byte v2, p0, v2
int-to-char v2, v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
move-result-object v1
const/4 v2, 0x6
aget-byte v2, p0, v2
int-to-char v2, v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
const-string/jumbo v2, "036"
invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_5c
const/16 v0, 0xe
goto :goto_6
:cond_5c
const-string/jumbo v2, "035"
invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_6
const/16 v0, 0xd
goto :goto_6
.end method