.class public Lcom/chileaf/hub/hublink/util/ToolUtil; .super Ljava/lang/Object; .source "ToolUtil.java" # static fields .field private static hexString:Ljava/lang/String; = "0123456789abcdef" # direct methods .method static constructor ()V .locals 0 return-void .end method .method public constructor ()V .locals 0 .line 13 invoke-direct {p0}, Ljava/lang/Object;->()V return-void .end method .method public static ToByte(J)[B .locals 5 .annotation system Ldalvik/annotation/MethodParameters; accessFlags = { 0x0 } names = { "s" } .end annotation const/4 v0, 0x2 new-array v0, v0, [B const/16 v1, 0x8 shr-long v1, p0, v1 const-wide/16 v3, 0xff and-long/2addr v1, v3 long-to-int v1, v1 int-to-byte v1, v1 const/4 v2, 0x0 aput-byte v1, v0, v2 and-long/2addr p0, v3 long-to-int p0, p0 int-to-byte p0, p0 const/4 p1, 0x1 aput-byte p0, v0, p1 return-object v0 .end method .method public static append([B[B)[B .locals 4 .annotation system Ldalvik/annotation/MethodParameters; accessFlags = { 0x10, 0x10 } names = { "source", "dest" } .end annotation .line 294 array-length v0, p0 array-length v1, p1 add-int/2addr v0, v1 new-array v1, v0, [B .line 295 array-length v2, p0 const/4 v3, 0x0 invoke-static {p0, v3, v1, v3, v2}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 296 array-length p0, p1 sub-int/2addr v0, p0 .line 297 array-length p0, p1 invoke-static {p1, v3, v1, v0, p0}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V return-object v1 .end method .method public static byteToString(B)Ljava/lang/String; .locals 2 .annotation system Ldalvik/annotation/MethodParameters; accessFlags = { 0x0 } names = { "msg" } .end annotation and-int/lit16 p0, p0, 0xff .line 269 invoke-static {p0}, Ljava/lang/Integer;->toHexString(I)Ljava/lang/String; move-result-object p0 .line 270 invoke-virtual {p0}, Ljava/lang/String;->length()I move-result v0 const/4 v1, 0x2 if-ge v0, v1, :cond_0 new-instance v0, Ljava/lang/StringBuilder; invoke-direct {v0}, Ljava/lang/StringBuilder;->()V const-string v1, "0" invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p0 invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p0 :cond_0 invoke-virtual {p0}, Ljava/lang/String;->toUpperCase()Ljava/lang/String; move-result-object p0 return-object p0 .end method .method public static byteTransformation(J)[B .locals 3 .annotation system Ldalvik/annotation/MethodParameters; accessFlags = { 0x10 } names = { "stamp" } .end annotation const/4 v0, 0x2 new-array v0, v0, [B const/16 v1, 0x8 shr-long v1, p0, v1 long-to-int v1, v1 int-to-byte v1, v1 const/4 v2, 0x0 aput-byte v1, v0, v2 long-to-int p0, p0 int-to-byte p0, p0 const/4 p1, 0x1 aput-byte p0, v0, p1 return-object v0 .end method .method public static bytesToHexString(B)Ljava/lang/String; .locals 3 .annotation system Ldalvik/annotation/MethodParameters; accessFlags = { 0x0 } names = { "bArray" } .end annotation .line 57 new-instance v0, Ljava/lang/StringBuffer; const/4 v1, 0x1 invoke-direct {v0, v1}, Ljava/lang/StringBuffer;->(I)V and-int/lit16 p0, p0, 0xff .line 59 invoke-static {p0}, Ljava/lang/Integer;->toHexString(I)Ljava/lang/String; move-result-object p0 .line 60 invoke-virtual {p0}, Ljava/lang/String;->length()I move-result v1 const/4 v2, 0x2 if-ge v1, v2, :cond_0 const/4 v1, 0x0 .line 61 invoke-virtual {v0, v1}, Ljava/lang/StringBuffer;->append(I)Ljava/lang/StringBuffer; .line 62 :cond_0 invoke-virtual {p0}, Ljava/lang/String;->toUpperCase()Ljava/lang/String; move-result-object p0 invoke-virtual {v0, p0}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer; .line 63 invoke-virtual {v0}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String; move-result-object p0 return-object p0 .end method .method public static bytesToHexString([B)Ljava/lang/String; .locals 6 .annotation system Ldalvik/annotation/MethodParameters; accessFlags = { 0x0 } names = { "bArray" } .end annotation .line 39 new-instance v0, Ljava/lang/StringBuffer; array-length v1, p0 invoke-direct {v0, v1}, Ljava/lang/StringBuffer;->(I)V const/4 v1, 0x0 move v2, v1 .line 41 :goto_0 array-length v3, p0 if-ge v2, v3, :cond_1 .line 42 aget-byte v3, p0, v2 and-int/lit16 v3, v3, 0xff invoke-static {v3}, Ljava/lang/Integer;->toHexString(I)Ljava/lang/String; move-result-object v3 .line 43 invoke-virtual {v3}, Ljava/lang/String;->length()I move-result v4 const/4 v5, 0x2 if-ge v4, v5, :cond_0 .line 44 invoke-virtual {v0, v1}, Ljava/lang/StringBuffer;->append(I)Ljava/lang/StringBuffer; .line 45 :cond_0 invoke-virtual {v3}, Ljava/lang/String;->toUpperCase()Ljava/lang/String; move-result-object v3 invoke-virtual {v0, v3}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer; add-int/lit8 v2, v2, 0x1 goto :goto_0 .line 47 :cond_1 invoke-virtual {v0}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String; move-result-object p0 return-object p0 .end method .method public static calcChecksum([B)I .locals 5 .annotation system Ldalvik/annotation/MethodParameters; accessFlags = { 0x0 } names = { "dat" } .end annotation .line 157 array-length v0, p0 const/4 v1, 0x0 move v2, v1 move v3, v2 :goto_0 if-ge v2, v0, :cond_0 .line 160 aget-byte v4, p0, v2 and-int/lit16 v4, v4, 0xff add-int/2addr v3, v4 add-int/lit8 v2, v2, 0x1 goto :goto_0 :cond_0 const p0, 0xffff and-int v0, v3, p0 sub-int/2addr v1, v0 and-int v0, v1, p0 xor-int/lit16 v0, v0, 0x3a3a and-int/2addr p0, v0 return p0 .end method .method public static calcChecksum([BI)I .locals 4 .annotation system Ldalvik/annotation/MethodParameters; accessFlags = { 0x0, 0x0 } names = { "dat", "size" } .end annotation const/4 v0, 0x0 move v1, v0 move v2, v1 :goto_0 if-ge v1, p1, :cond_0 .line 201 aget-byte v3, p0, v1 and-int/lit16 v3, v3, 0xff add-int/2addr v2, v3 add-int/lit8 v1, v1, 0x1 goto :goto_0 :cond_0 const p0, 0xffff and-int p1, v2, p0 sub-int/2addr v0, p1 and-int p1, v0, p0 xor-int/lit16 p1, p1, 0x3a3a and-int/2addr p0, p1 return p0 .end method .method public static calcXOR([B)B .locals 4 .annotation system Ldalvik/annotation/MethodParameters; accessFlags = { 0x0 } names = { "dat" } .end annotation .line 180 array-length v0, p0 const/4 v1, 0x0 move v2, v1 :goto_0 if-ge v1, v0, :cond_0 .line 182 aget-byte v3, p0, v1 xor-int/2addr v2, v3 int-to-byte v2, v2 add-int/lit8 v1, v1, 0x1 goto :goto_0 :cond_0 return v2 .end method .method public static calcXOR([BI)B .locals 3 .annotation system Ldalvik/annotation/MethodParameters; accessFlags = { 0x0, 0x0 } names = { "dat", "len" } .end annotation const/4 v0, 0x0 move v1, v0 :goto_0 if-ge v0, p1, :cond_0 .line 191 aget-byte v2, p0, v0 xor-int/2addr v1, v2 int-to-byte v1, v1 add-int/lit8 v0, v0, 0x1 goto :goto_0 :cond_0 return v1 .end method .method public static encode(Ljava/lang/String;)Ljava/lang/String; .locals 4 .annotation system Ldalvik/annotation/MethodParameters; accessFlags = { 0x0 } names = { "str" } .end annotation .line 21 invoke-virtual {p0}, Ljava/lang/String;->getBytes()[B move-result-object p0 .line 22 new-instance v0, Ljava/lang/StringBuilder; array-length v1, p0 mul-int/lit8 v1, v1, 0x2 invoke-direct {v0, v1}, Ljava/lang/StringBuilder;->(I)V const/4 v1, 0x0 .line 24 :goto_0 array-length v2, p0 if-ge v1, v2, :cond_0 .line 25 sget-object v2, Lcom/chileaf/hub/hublink/util/ToolUtil;->hexString:Ljava/lang/String; aget-byte v3, p0, v1 and-int/lit16 v3, v3, 0xf0 shr-int/lit8 v3, v3, 0x4 invoke-virtual {v2, v3}, Ljava/lang/String;->charAt(I)C move-result v2 invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; .line 26 sget-object v2, Lcom/chileaf/hub/hublink/util/ToolUtil;->hexString:Ljava/lang/String; aget-byte v3, p0, v1 and-int/lit8 v3, v3, 0xf invoke-virtual {v2, v3}, Ljava/lang/String;->charAt(I)C move-result v2 invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; add-int/lit8 v1, v1, 0x1 goto :goto_0 .line 28 :cond_0 invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p0 return-object p0 .end method .method public static getASCIIString([B)Ljava/lang/String; .locals 1 .annotation system Ldalvik/annotation/MethodParameters; accessFlags = { 0x0 } names = { "src" } .end annotation const-string v0, "UTF-8" .line 274 invoke-static {p0, v0}, Lcom/chileaf/hub/hublink/util/ToolUtil;->getString([BLjava/lang/String;)Ljava/lang/String; move-result-object p0 return-object p0 .end method .method public static getIntPaser([BII)J .locals 4 .annotation system Ldalvik/annotation/MethodParameters; accessFlags = { 0x0, 0x0, 0x0 } names = { "bytes", "pos", "len" } .end annotation .line 107 new-array v0, p2, [B const/4 v1, 0x0 .line 108 invoke-static {p0, p1, v0, v1, p2}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V const-wide/16 p0, 0x0 :goto_0 if-ge v1, p2, :cond_0 const/16 v2, 0x8 shl-long/2addr p0, v2 .line 113 aget-byte v2, v0, v1 and-int/lit16 v2, v2, 0xff int-to-long v2, v2 or-long/2addr p0, v2 add-int/lit8 v1, v1, 0x1 goto :goto_0 :cond_0 return-wide p0 .end method .method public static getIntPaser1([BII)I .locals 3 .annotation system Ldalvik/annotation/MethodParameters; accessFlags = { 0x0, 0x0, 0x0 } names = { "bytes", "pos", "len" } .end annotation .line 143 new-array v0, p2, [B const/4 v1, 0x0 .line 144 invoke-static {p0, p1, v0, v1, p2}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V const-wide/16 p0, 0x0 :goto_0 if-lez p2, :cond_0 const/16 v1, 0x8 shl-long/2addr p0, v1 add-int/lit8 v1, p2, -0x1 .line 149 aget-byte v1, v0, v1 and-int/lit16 v1, v1, 0xff int-to-long v1, v1 or-long/2addr p0, v1 add-int/lit8 p2, p2, -0x1 goto :goto_0 :cond_0 long-to-int p0, p0 return p0 .end method .method public static getIntPaser2([BII)I .locals 2 .annotation system Ldalvik/annotation/MethodParameters; accessFlags = { 0x0, 0x0, 0x0 } names = { "bytes", "pos", "len" } .end annotation .line 131 new-array v0, p2, [B const/4 v1, 0x0 .line 132 invoke-static {p0, p1, v0, v1, p2}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V move p0, v1 :goto_0 if-ge v1, p2, :cond_0 shl-int/lit8 p0, p0, 0x8 .line 137 aget-byte p1, v0, v1 and-int/lit16 p1, p1, 0xff or-int/2addr p0, p1 add-int/lit8 v1, v1, 0x1 goto :goto_0 :cond_0 return p0 .end method .method public static getLongPaser2([BII)J .locals 4 .annotation system Ldalvik/annotation/MethodParameters; accessFlags = { 0x0, 0x0, 0x0 } names = { "bytes", "pos", "len" } .end annotation .line 119 new-array v0, p2, [B const/4 v1, 0x0 .line 120 invoke-static {p0, p1, v0, v1, p2}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V const-wide/16 p0, 0x0 :goto_0 if-ge v1, p2, :cond_0 const/16 v2, 0x8 shl-long/2addr p0, v2 .line 125 aget-byte v2, v0, v1 and-int/lit16 v2, v2, 0xff int-to-long v2, v2 or-long/2addr p0, v2 add-int/lit8 v1, v1, 0x1 goto :goto_0 :cond_0 return-wide p0 .end method .method public static getMac([B)Ljava/lang/String; .locals 3 .annotation system Ldalvik/annotation/MethodParameters; accessFlags = { 0x0 } names = { "mac" } .end annotation const-string v0, "" const/4 v1, 0x0 .line 253 :goto_0 array-length v2, p0 if-ge v1, v2, :cond_1 .line 254 array-length v2, p0 add-int/lit8 v2, v2, -0x1 if-ne v1, v2, :cond_0 .line 255 new-instance v2, Ljava/lang/StringBuilder; invoke-direct {v2}, Ljava/lang/StringBuilder;->()V invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 aget-byte v2, p0, v1 invoke-static {v2}, Lcom/chileaf/hub/hublink/util/ToolUtil;->byteToString(B)Ljava/lang/String; move-result-object v2 invoke-virtual {v0, v2}, 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 goto :goto_1 .line 257 :cond_0 new-instance v2, Ljava/lang/StringBuilder; invoke-direct {v2}, Ljava/lang/StringBuilder;->()V invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 aget-byte v2, p0, v1 invoke-static {v2}, Lcom/chileaf/hub/hublink/util/ToolUtil;->byteToString(B)Ljava/lang/String; move-result-object v2 invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 const-string v2, ":" invoke-virtual {v0, v2}, 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 :goto_1 add-int/lit8 v1, v1, 0x1 goto :goto_0 :cond_1 return-object v0 .end method .method private static getString([BLjava/lang/String;)Ljava/lang/String; .locals 1 .annotation system Ldalvik/annotation/MethodParameters; accessFlags = { 0x0, 0x0 } names = { "src", "charsetName" } .end annotation .line 279 :try_start_0 new-instance v0, Ljava/lang/String; invoke-direct {v0, p0, p1}, Ljava/lang/String;->([BLjava/lang/String;)V :try_end_0 .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 return-object v0 :catch_0 move-exception p0 .line 281 invoke-virtual {p0}, Ljava/lang/Exception;->printStackTrace()V const/4 p0, 0x0 return-object p0 .end method .method public static hexStringToBytes(Ljava/lang/String;)[B .locals 5 .annotation system Ldalvik/annotation/MethodParameters; accessFlags = { 0x0 } names = { "src" } .end annotation .line 73 invoke-virtual {p0}, Ljava/lang/String;->length()I move-result v0 div-int/lit8 v0, v0, 0x2 new-array v0, v0, [B .line 74 invoke-virtual {p0}, Ljava/lang/String;->getBytes()[B move-result-object v1 const/4 v2, 0x0 .line 75 :goto_0 invoke-virtual {p0}, Ljava/lang/String;->length()I move-result v3 div-int/lit8 v3, v3, 0x2 if-ge v2, v3, :cond_0 mul-int/lit8 v3, v2, 0x2 .line 76 aget-byte v4, v1, v3 add-int/lit8 v3, v3, 0x1 aget-byte v3, v1, v3 invoke-static {v4, v3}, Lcom/chileaf/hub/hublink/util/ToolUtil;->uniteBytes(BB)B move-result v3 aput-byte v3, v0, v2 add-int/lit8 v2, v2, 0x1 goto :goto_0 :cond_0 return-object v0 .end method .method public static toShortArray(Ljava/lang/String;)[S .locals 5 .annotation system Ldalvik/annotation/MethodParameters; accessFlags = { 0x0 } names = { "hexString" } .end annotation .line 87 invoke-static {p0}, Lcom/chileaf/hub/hublink/util/ToolUtil;->hexStringToBytes(Ljava/lang/String;)[B move-result-object p0 .line 88 array-length v0, p0 shr-int/lit8 v0, v0, 0x1 .line 89 new-array v1, v0, [S const/4 v2, 0x0 :goto_0 if-ge v2, v0, :cond_0 mul-int/lit8 v3, v2, 0x2 .line 91 aget-byte v4, p0, v3 shl-int/lit8 v4, v4, 0x8 add-int/lit8 v3, v3, 0x1 aget-byte v3, p0, v3 and-int/lit16 v3, v3, 0xff or-int/2addr v3, v4 int-to-short v3, v3 aput-short v3, v1, v2 add-int/lit8 v2, v2, 0x1 goto :goto_0 :cond_0 return-object v1 .end method .method public static transformUTC(J)[B .locals 3 .annotation system Ldalvik/annotation/MethodParameters; accessFlags = { 0x10 } names = { "stamp" } .end annotation const/4 v0, 0x4 new-array v0, v0, [B const/16 v1, 0x18 shr-long v1, p0, v1 long-to-int v1, v1 int-to-byte v1, v1 const/4 v2, 0x0 aput-byte v1, v0, v2 const/16 v1, 0x10 shr-long v1, p0, v1 long-to-int v1, v1 int-to-byte v1, v1 const/4 v2, 0x1 aput-byte v1, v0, v2 const/16 v1, 0x8 shr-long v1, p0, v1 long-to-int v1, v1 int-to-byte v1, v1 const/4 v2, 0x2 aput-byte v1, v0, v2 long-to-int p0, p0 int-to-byte p0, p0 const/4 p1, 0x3 aput-byte p0, v0, p1 return-object v0 .end method .method private static uniteBytes(BB)B .locals 6 .annotation system Ldalvik/annotation/MethodParameters; accessFlags = { 0x0, 0x0 } names = { "src0", "src1" } .end annotation .line 97 new-instance v0, Ljava/lang/StringBuilder; invoke-direct {v0}, Ljava/lang/StringBuilder;->()V const-string v1, "0x" invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 new-instance v2, Ljava/lang/String; const/4 v3, 0x1 new-array v4, v3, [B const/4 v5, 0x0 aput-byte p0, v4, v5 invoke-direct {v2, v4}, Ljava/lang/String;->([B)V invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p0 invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p0 invoke-static {p0}, Ljava/lang/Byte;->decode(Ljava/lang/String;)Ljava/lang/Byte; move-result-object p0 .line 98 invoke-virtual {p0}, Ljava/lang/Byte;->byteValue()B move-result p0 shl-int/lit8 p0, p0, 0x4 int-to-byte p0, p0 .line 100 new-instance v0, Ljava/lang/StringBuilder; invoke-direct {v0}, Ljava/lang/StringBuilder;->()V invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 new-instance v1, Ljava/lang/String; new-array v2, v3, [B aput-byte p1, v2, v5 invoke-direct {v1, v2}, Ljava/lang/String;->([B)V invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p1 invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 invoke-static {p1}, Ljava/lang/Byte;->decode(Ljava/lang/String;)Ljava/lang/Byte; move-result-object p1 .line 101 invoke-virtual {p1}, Ljava/lang/Byte;->byteValue()B move-result p1 xor-int/2addr p0, p1 int-to-byte p0, p0 return p0 .end method