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