QuickSilverUtils.smali
.class public Lcom/cleanmaster/hpsharelib/base/util/hash/QuickSilverUtils;
.super Ljava/lang/Object;
.source "QuickSilverUtils.java"
# static fields
.field private static sSystemSignature:Ljava/lang/String;
# direct methods
.method static constructor <clinit>()V
.registers 1
.prologue
.line 52
const/4 v0, 0x0
sput-object v0, Lcom/cleanmaster/hpsharelib/base/util/hash/QuickSilverUtils;->sSystemSignature:Ljava/lang/String;
return-void
.end method
.method public constructor <init>()V
.registers 1
.prologue
.line 26
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static GetBytesMD5([B)Ljava/lang/String;
.registers 7
.prologue
.line 28
const/4 v1, 0x0
.line 31
:try_start_1
const-string v0, "MD5"
invoke-static {v0}, Ljava/security/MessageDigest;->getInstance(Ljava/lang/String;)Ljava/security/MessageDigest;
:try_end_6
.catch Ljava/security/NoSuchAlgorithmException; {:try_start_1 .. :try_end_6} :catch_41
move-result-object v0
.line 32
:try_start_7
invoke-virtual {v0}, Ljava/security/MessageDigest;->reset()V
.line 33
invoke-virtual {v0, p0}, Ljava/security/MessageDigest;->update([B)V
:try_end_d
.catch Ljava/security/NoSuchAlgorithmException; {:try_start_7 .. :try_end_d} :catch_5e
.line 39
:goto_d
invoke-virtual {v0}, Ljava/security/MessageDigest;->digest()[B
move-result-object v1
.line 40
new-instance v2, Ljava/lang/StringBuffer;
invoke-direct {v2}, Ljava/lang/StringBuffer;-><init>()V
.line 42
const/4 v0, 0x0
:goto_17
array-length v3, v1
if-ge v0, v3, :cond_59
.line 43
aget-byte v3, v1, v0
and-int/lit16 v3, v3, 0xff
invoke-static {v3}, Ljava/lang/Integer;->toHexString(I)Ljava/lang/String;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/String;->length()I
move-result v3
const/4 v4, 0x1
if-ne v3, v4, :cond_49
.line 44
const-string v3, "0"
invoke-virtual {v2, v3}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v3
aget-byte v4, v1, v0
and-int/lit16 v4, v4, 0xff
invoke-static {v4}, Ljava/lang/Integer;->toHexString(I)Ljava/lang/String;
move-result-object v4
invoke-virtual {v4}, Ljava/lang/String;->toUpperCase()Ljava/lang/String;
move-result-object v4
invoke-virtual {v3, v4}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
.line 42
:goto_3e
add-int/lit8 v0, v0, 0x1
goto :goto_17
.line 34
:catch_41
move-exception v0
move-object v5, v0
move-object v0, v1
move-object v1, v5
.line 36
:goto_45
invoke-virtual {v1}, Ljava/security/NoSuchAlgorithmException;->printStackTrace()V
goto :goto_d
.line 46
:cond_49
aget-byte v3, v1, v0
and-int/lit16 v3, v3, 0xff
invoke-static {v3}, Ljava/lang/Integer;->toHexString(I)Ljava/lang/String;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/String;->toUpperCase()Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
goto :goto_3e
.line 48
:cond_59
invoke-virtual {v2}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
move-result-object v0
.line 49
return-object v0
.line 34
:catch_5e
move-exception v1
goto :goto_45
.end method
.method public static GetSystemSignature(Landroid/content/Context;)Ljava/lang/String;
.registers 2
.prologue
.line 55
sget-object v0, Lcom/cleanmaster/hpsharelib/base/util/hash/QuickSilverUtils;->sSystemSignature:Ljava/lang/String;
if-nez v0, :cond_c
.line 56
const-string v0, "android"
invoke-static {p0, v0}, Lcom/cleanmaster/hpsharelib/base/util/hash/QuickSilverUtils;->Getsignature(Landroid/content/Context;Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
sput-object v0, Lcom/cleanmaster/hpsharelib/base/util/hash/QuickSilverUtils;->sSystemSignature:Ljava/lang/String;
.line 58
:cond_c
sget-object v0, Lcom/cleanmaster/hpsharelib/base/util/hash/QuickSilverUtils;->sSystemSignature:Ljava/lang/String;
return-object v0
.end method
.method public static Getsignature(Landroid/content/Context;Ljava/lang/String;)Ljava/lang/String;
.registers 8
.prologue
const/4 v2, 0x0
.line 62
const/4 v0, 0x0
.line 65
:try_start_2
invoke-virtual {p0}, Landroid/content/Context;->getPackageManager()Landroid/content/pm/PackageManager;
move-result-object v1
const/16 v3, 0x40
invoke-virtual {v1, p1, v3}, Landroid/content/pm/PackageManager;->getPackageInfo(Ljava/lang/String;I)Landroid/content/pm/PackageInfo;
move-result-object v1
.line 66
iget-object v1, v1, Landroid/content/pm/PackageInfo;->signatures:[Landroid/content/pm/Signature;
.line 67
const/4 v3, 0x0
aget-object v1, v1, v3
invoke-virtual {v1}, Landroid/content/pm/Signature;->toByteArray()[B
move-result-object v1
const/4 v3, 0x0
invoke-static {v1, v3}, Landroid/util/Base64;->encodeToString([BI)Ljava/lang/String;
move-result-object v3
.line 70
const-string v1, ""
.line 72
:goto_1c
invoke-virtual {v3}, Ljava/lang/String;->length()I
move-result v4
if-ne v2, v4, :cond_2b
.line 85
:goto_22
invoke-virtual {v1}, Ljava/lang/String;->getBytes()[B
move-result-object v1
invoke-static {v1}, Lcom/cleanmaster/hpsharelib/base/util/hash/QuickSilverUtils;->GetBytesMD5([B)Ljava/lang/String;
move-result-object v0
.line 90
:goto_2a
return-object v0
.line 74
:cond_2b
const/16 v4, 0xa
invoke-virtual {v3, v4, v2}, Ljava/lang/String;->indexOf(II)I
move-result v4
.line 75
const/4 v5, -0x1
if-ne v4, v5, :cond_4a
.line 76
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v4, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v3, v2}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
goto :goto_22
.line 79
:cond_4a
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v5, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v3, v2, v4}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
:try_end_5e
.catch Ljava/lang/Throwable; {:try_start_2 .. :try_end_5e} :catch_62
move-result-object v1
.line 80
add-int/lit8 v2, v4, 0x1
.line 81
goto :goto_1c
.line 86
:catch_62
move-exception v1
.line 88
invoke-virtual {v1}, Ljava/lang/Throwable;->printStackTrace()V
goto :goto_2a
.end method