GpkUtil.smali

.class public Lcom/cleanmaster/hpsharelib/base/util/system/GpkUtil;
.super Ljava/lang/Object;
.source "GpkUtil.java"


# annotations
.annotation system Ldalvik/annotation/MemberClasses;
    value = {
        Lcom/cleanmaster/hpsharelib/base/util/system/GpkUtil$GpkManifest;
    }
.end annotation


# static fields
.field private static final HEX_DIGITS:[C


# direct methods
.method static constructor <clinit>()V
    .registers 3

    .prologue
    .line 23
    const/16 v0, 0x10

    new-array v0, v0, [C

    .line 24
    const/4 v1, 0x0

    const/16 v2, 0x30

    aput-char v2, v0, v1

    .line 25
    const/4 v1, 0x1

    const/16 v2, 0x31

    aput-char v2, v0, v1

    .line 26
    const/4 v1, 0x2

    const/16 v2, 0x32

    aput-char v2, v0, v1

    .line 27
    const/4 v1, 0x3

    const/16 v2, 0x33

    aput-char v2, v0, v1

    .line 28
    const/4 v1, 0x4

    const/16 v2, 0x34

    aput-char v2, v0, v1

    .line 29
    const/4 v1, 0x5

    const/16 v2, 0x35

    aput-char v2, v0, v1

    .line 30
    const/4 v1, 0x6

    const/16 v2, 0x36

    aput-char v2, v0, v1

    .line 31
    const/4 v1, 0x7

    const/16 v2, 0x37

    aput-char v2, v0, v1

    .line 32
    const/16 v1, 0x8

    const/16 v2, 0x38

    aput-char v2, v0, v1

    .line 33
    const/16 v1, 0x9

    const/16 v2, 0x39

    aput-char v2, v0, v1

    .line 34
    const/16 v1, 0xa

    const/16 v2, 0x61

    aput-char v2, v0, v1

    .line 35
    const/16 v1, 0xb

    const/16 v2, 0x62

    aput-char v2, v0, v1

    .line 36
    const/16 v1, 0xc

    const/16 v2, 0x63

    aput-char v2, v0, v1

    .line 37
    const/16 v1, 0xd

    const/16 v2, 0x64

    aput-char v2, v0, v1

    .line 38
    const/16 v1, 0xe

    const/16 v2, 0x65

    aput-char v2, v0, v1

    .line 39
    const/16 v1, 0xf

    const/16 v2, 0x66

    aput-char v2, v0, v1

    .line 40
    sput-object v0, Lcom/cleanmaster/hpsharelib/base/util/system/GpkUtil;->HEX_DIGITS:[C

    .line 41
    return-void
.end method

.method public constructor <init>()V
    .registers 1

    .prologue
    .line 19
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    return-void
.end method

.method private static decodeFromInputStream(Ljava/io/InputStream;)Ljava/lang/String;
    .registers 4
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/io/UnsupportedEncodingException;
        }
    .end annotation

    .prologue
    .line 187
    new-instance v0, Ljava/lang/StringBuffer;

    invoke-direct {v0}, Ljava/lang/StringBuffer;-><init>()V

    .line 188
    new-instance v1, Ljava/util/Scanner;

    invoke-direct {v1, p0}, Ljava/util/Scanner;-><init>(Ljava/io/InputStream;)V

    .line 189
    :goto_a
    invoke-virtual {v1}, Ljava/util/Scanner;->hasNext()Z

    move-result v2

    if-eqz v2, :cond_18

    .line 190
    invoke-virtual {v1}, Ljava/util/Scanner;->nextLine()Ljava/lang/String;

    move-result-object v2

    invoke-virtual {v0, v2}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;

    goto :goto_a

    .line 192
    :cond_18
    invoke-virtual {v0}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-virtual {v0}, Ljava/lang/String;->getBytes()[B

    move-result-object v0

    const/4 v1, 0x0

    invoke-static {v0, v1}, Lcom/cleanmaster/hpsharelib/base/util/Base64;->decode([BI)[B

    move-result-object v0

    .line 193
    invoke-static {v0}, Lcom/cleanmaster/hpsharelib/base/util/system/GpkUtil;->decrypt([B)[B

    move-result-object v0

    .line 194
    new-instance v1, Ljava/lang/String;

    const-string v2, "gbk"

    invoke-direct {v1, v0, v2}, Ljava/lang/String;-><init>([BLjava/lang/String;)V

    .line 195
    sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;

    invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V

    .line 196
    return-object v1
.end method

.method private static decrypt([B)[B
    .registers 5

    .prologue
    .line 253
    new-instance v1, Ljava/io/ByteArrayOutputStream;

    invoke-direct {v1}, Ljava/io/ByteArrayOutputStream;-><init>()V

    .line 254
    const/4 v0, 0x0

    .line 255
    :goto_6
    array-length v2, p0

    if-lt v0, v2, :cond_e

    .line 256
    invoke-virtual {v1}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B

    move-result-object v0

    return-object v0

    .line 257
    :cond_e
    aget-byte v2, p0, v0

    add-int/lit8 v2, v2, -0x78

    .line 258
    add-int/lit8 v3, v0, 0x1

    aget-byte v3, p0, v3

    add-int/lit8 v3, v3, -0x7a

    .line 259
    shl-int/lit8 v2, v2, 0x4

    and-int/lit8 v3, v3, 0xf

    add-int/2addr v2, v3

    invoke-virtual {v1, v2}, Ljava/io/ByteArrayOutputStream;->write(I)V

    .line 254
    add-int/lit8 v0, v0, 0x2

    goto :goto_6
.end method

.method public static getGpkManifest(Ljava/lang/String;)Lcom/cleanmaster/hpsharelib/base/util/system/GpkUtil$GpkManifest;
    .registers 8

    .prologue
    const/4 v0, 0x0

    .line 157
    .line 158
    const-string v1, "mainifest.dat"

    invoke-static {p0, v1}, Lcom/cleanmaster/hpsharelib/base/util/system/GpkUtil;->getZipEntryInputStream(Ljava/lang/String;Ljava/lang/String;)Ljava/io/InputStream;

    move-result-object v2

    .line 159
    if-nez v2, :cond_a

    .line 183
    :goto_9
    return-object v0

    .line 162
    :cond_a
    :try_start_a
    invoke-static {v2}, Lcom/cleanmaster/hpsharelib/base/util/system/GpkUtil;->decodeFromInputStream(Ljava/io/InputStream;)Ljava/lang/String;

    move-result-object v1

    .line 163
    new-instance v3, Lorg/json/JSONObject;

    invoke-direct {v3, v1}, Lorg/json/JSONObject;-><init>(Ljava/lang/String;)V

    .line 164
    const-string v1, "gpkBaseInfo"

    invoke-virtual {v3, v1}, Lorg/json/JSONObject;->getJSONObject(Ljava/lang/String;)Lorg/json/JSONObject;

    move-result-object v4

    .line 165
    new-instance v1, Lcom/cleanmaster/hpsharelib/base/util/system/GpkUtil$GpkManifest;

    invoke-direct {v1}, Lcom/cleanmaster/hpsharelib/base/util/system/GpkUtil$GpkManifest;-><init>()V

    .line 166
    const-string v5, "cpuType"

    invoke-virtual {v4, v5}, Lorg/json/JSONObject;->getString(Ljava/lang/String;)Ljava/lang/String;

    move-result-object v5

    invoke-virtual {v1, v5}, Lcom/cleanmaster/hpsharelib/base/util/system/GpkUtil$GpkManifest;->setCpuType(Ljava/lang/String;)V

    .line 167
    const-string/jumbo v5, "sdkVersion"

    invoke-virtual {v4, v5}, Lorg/json/JSONObject;->getInt(Ljava/lang/String;)I

    move-result v5

    invoke-virtual {v1, v5}, Lcom/cleanmaster/hpsharelib/base/util/system/GpkUtil$GpkManifest;->setSdkVersion(I)V

    .line 168
    const-string/jumbo v5, "screenDensity"

    invoke-virtual {v4, v5}, Lorg/json/JSONObject;->getString(Ljava/lang/String;)Ljava/lang/String;

    move-result-object v4

    invoke-virtual {v1, v4}, Lcom/cleanmaster/hpsharelib/base/util/system/GpkUtil$GpkManifest;->setScreenDensity(Ljava/lang/String;)V

    .line 169
    const-string v4, "dataValidation"

    invoke-virtual {v3, v4}, Lorg/json/JSONObject;->getJSONObject(Ljava/lang/String;)Lorg/json/JSONObject;

    move-result-object v4

    const-string v5, "apkCRC32"

    invoke-virtual {v4, v5}, Lorg/json/JSONObject;->getLong(Ljava/lang/String;)J

    move-result-wide v4

    invoke-virtual {v1, v4, v5}, Lcom/cleanmaster/hpsharelib/base/util/system/GpkUtil$GpkManifest;->setApkCRC32(J)V

    .line 170
    const-string v4, "dataBaseInfo"

    invoke-virtual {v3, v4}, Lorg/json/JSONObject;->getJSONObject(Ljava/lang/String;)Lorg/json/JSONObject;

    move-result-object v4

    const-string v5, "copyPath"

    invoke-virtual {v4, v5}, Lorg/json/JSONObject;->getString(Ljava/lang/String;)Ljava/lang/String;

    move-result-object v4

    const-string v5, "\n"

    const-string v6, ""

    .line 171
    invoke-virtual {v4, v5, v6}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;

    move-result-object v4

    .line 170
    invoke-virtual {v1, v4}, Lcom/cleanmaster/hpsharelib/base/util/system/GpkUtil$GpkManifest;->setCopyPath(Ljava/lang/String;)V

    .line 172
    const-string v4, "apkBaseInfo"

    invoke-virtual {v3, v4}, Lorg/json/JSONObject;->getJSONObject(Ljava/lang/String;)Lorg/json/JSONObject;

    move-result-object v3

    .line 173
    const-string v4, "appName"

    invoke-virtual {v3, v4}, Lorg/json/JSONObject;->getString(Ljava/lang/String;)Ljava/lang/String;

    move-result-object v4

    invoke-virtual {v1, v4}, Lcom/cleanmaster/hpsharelib/base/util/system/GpkUtil$GpkManifest;->setAppName(Ljava/lang/String;)V

    .line 174
    const-string v4, "appSize"

    invoke-virtual {v3, v4}, Lorg/json/JSONObject;->getInt(Ljava/lang/String;)I

    move-result v4

    int-to-long v4, v4

    invoke-virtual {v1, v4, v5}, Lcom/cleanmaster/hpsharelib/base/util/system/GpkUtil$GpkManifest;->setAppSize(J)V

    .line 175
    const-string/jumbo v4, "packageName"

    invoke-virtual {v3, v4}, Lorg/json/JSONObject;->getString(Ljava/lang/String;)Ljava/lang/String;

    move-result-object v4

    invoke-virtual {v1, v4}, Lcom/cleanmaster/hpsharelib/base/util/system/GpkUtil$GpkManifest;->setPackageName(Ljava/lang/String;)V

    .line 176
    const-string/jumbo v4, "versionName"

    invoke-virtual {v3, v4}, Lorg/json/JSONObject;->getString(Ljava/lang/String;)Ljava/lang/String;

    move-result-object v3

    invoke-virtual {v1, v3}, Lcom/cleanmaster/hpsharelib/base/util/system/GpkUtil$GpkManifest;->setVersionName(Ljava/lang/String;)V
    :try_end_8e
    .catch Ljava/lang/Exception; {:try_start_a .. :try_end_8e} :catch_94
    .catchall {:try_start_a .. :try_end_8e} :catchall_9a

    .line 180
    invoke-static {v2}, Lcom/cleanmaster/hpsharelib/utils/io/IOUtils;->closeSilently(Ljava/io/Closeable;)V

    move-object v0, v1

    .line 183
    goto/16 :goto_9

    .line 177
    :catch_94
    move-exception v1

    .line 180
    invoke-static {v2}, Lcom/cleanmaster/hpsharelib/utils/io/IOUtils;->closeSilently(Ljava/io/Closeable;)V

    goto/16 :goto_9

    :catchall_9a
    move-exception v0

    invoke-static {v2}, Lcom/cleanmaster/hpsharelib/utils/io/IOUtils;->closeSilently(Ljava/io/Closeable;)V

    throw v0
.end method

.method public static getIconBitmap(Ljava/lang/String;II)Landroid/graphics/Bitmap;
    .registers 8

    .prologue
    const/4 v0, 0x0

    .line 212
    invoke-static {p0}, Lcom/cleanmaster/hpsharelib/base/util/system/GpkUtil;->getIconInputStream(Ljava/lang/String;)Ljava/io/InputStream;

    move-result-object v1

    .line 213
    if-nez v1, :cond_8

    .line 230
    :cond_7
    :goto_7
    return-object v0

    .line 215
    :cond_8
    new-instance v2, Landroid/graphics/BitmapFactory$Options;

    invoke-direct {v2}, Landroid/graphics/BitmapFactory$Options;-><init>()V

    .line 216
    const/4 v3, 0x1

    iput-boolean v3, v2, Landroid/graphics/BitmapFactory$Options;->inJustDecodeBounds:Z

    .line 217
    invoke-static {v1, v0, v2}, Landroid/graphics/BitmapFactory;->decodeStream(Ljava/io/InputStream;Landroid/graphics/Rect;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;

    .line 218
    iget v3, v2, Landroid/graphics/BitmapFactory$Options;->outHeight:I

    iget v4, v2, Landroid/graphics/BitmapFactory$Options;->outHeight:I

    invoke-static {v3, v4, p1, p2}, Lcom/cleanmaster/hpsharelib/base/util/ui/BitmapUtil;->calculateScale(IIII)I

    move-result v3

    .line 219
    invoke-static {v1}, Lcom/cleanmaster/hpsharelib/utils/io/IOUtils;->closeSilently(Ljava/io/Closeable;)V

    .line 220
    invoke-static {p0}, Lcom/cleanmaster/hpsharelib/base/util/system/GpkUtil;->getIconInputStream(Ljava/lang/String;)Ljava/io/InputStream;

    move-result-object v1

    .line 221
    if-eqz v1, :cond_7

    .line 223
    const/4 v4, 0x0

    iput-boolean v4, v2, Landroid/graphics/BitmapFactory$Options;->inJustDecodeBounds:Z

    .line 224
    iput v3, v2, Landroid/graphics/BitmapFactory$Options;->inSampleSize:I

    .line 225
    invoke-static {v1, v0, v2}, Landroid/graphics/BitmapFactory;->decodeStream(Ljava/io/InputStream;Landroid/graphics/Rect;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;

    move-result-object v2

    .line 226
    invoke-static {v1}, Lcom/cleanmaster/hpsharelib/utils/io/IOUtils;->closeSilently(Ljava/io/Closeable;)V

    .line 227
    if-eqz v2, :cond_7

    .line 228
    invoke-static {v2, p1, p2}, Lcom/cleanmaster/hpsharelib/base/util/ui/BitmapUtil;->zoomImg(Landroid/graphics/Bitmap;II)Landroid/graphics/Bitmap;

    move-result-object v0

    goto :goto_7
.end method

.method private static getIconInputStream(Ljava/lang/String;)Ljava/io/InputStream;
    .registers 2

    .prologue
    .line 235
    const-string v0, "icon.png"

    invoke-static {p0, v0}, Lcom/cleanmaster/hpsharelib/base/util/system/GpkUtil;->getZipEntryInputStream(Ljava/lang/String;Ljava/lang/String;)Ljava/io/InputStream;

    move-result-object v0

    return-object v0
.end method

.method private static getZipEntryInputStream(Ljava/lang/String;Ljava/lang/String;)Ljava/io/InputStream;
    .registers 5

    .prologue
    .line 240
    const/4 v0, 0x0

    .line 242
    :try_start_1
    new-instance v1, Ljava/util/zip/ZipFile;

    invoke-direct {v1, p0}, Ljava/util/zip/ZipFile;-><init>(Ljava/lang/String;)V

    .line 243
    invoke-virtual {v1, p1}, Ljava/util/zip/ZipFile;->getEntry(Ljava/lang/String;)Ljava/util/zip/ZipEntry;

    move-result-object v2

    .line 244
    invoke-virtual {v1, v2}, Ljava/util/zip/ZipFile;->getInputStream(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream;
    :try_end_d
    .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_d} :catch_f

    move-result-object v0

    .line 248
    :goto_e
    return-object v0

    .line 245
    :catch_f
    move-exception v1

    .line 246
    invoke-virtual {v1}, Ljava/lang/Exception;->printStackTrace()V

    goto :goto_e
.end method