ResDiffPatchInternal.smali
.class public Lcom/tencent/tinker/lib/patch/ResDiffPatchInternal;
.super Lcom/tencent/tinker/lib/patch/BasePatchInternal;
# static fields
.field protected static final TAG:Ljava/lang/String; = "Tinker.ResDiffPatchInternal"
# direct methods
.method public constructor <init>()V
.registers 1
invoke-direct {p0}, Lcom/tencent/tinker/lib/patch/BasePatchInternal;-><init>()V
return-void
.end method
.method private static checkAndExtractResourceLargeFile(Landroid/content/Context;Ljava/lang/String;Ljava/io/File;Ljava/io/File;Ljava/io/File;Lcom/tencent/tinker/loader/shareutil/ShareResPatchInfo;I)Z
.registers 25
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v8
invoke-static/range {p0 .. p0}, Lcom/tencent/tinker/lib/tinker/Tinker;->with(Landroid/content/Context;)Lcom/tencent/tinker/lib/tinker/Tinker;
move-result-object v10
const/4 v4, 0x0
const/4 v3, 0x0
:try_start_a
new-instance v7, Ljava/util/zip/ZipFile;
move-object/from16 v0, p1
invoke-direct {v7, v0}, Ljava/util/zip/ZipFile;-><init>(Ljava/lang/String;)V
:try_end_11
.catch Ljava/lang/Throwable; {:try_start_a .. :try_end_11} :catch_399
.catchall {:try_start_a .. :try_end_11} :catchall_390
:try_start_11
const-string/jumbo v2, "resources.arsc"
invoke-virtual {v7, v2}, Ljava/util/zip/ZipFile;->getEntry(Ljava/lang/String;)Ljava/util/zip/ZipEntry;
move-result-object v2
new-instance v4, Ljava/io/File;
const-string/jumbo v5, "resources.arsc"
move-object/from16 v0, p2
invoke-direct {v4, v0, v5}, Ljava/io/File;-><init>(Ljava/io/File;Ljava/lang/String;)V
if-nez v2, :cond_46
const-string/jumbo v2, "Tinker.ResDiffPatchInternal"
const-string/jumbo v5, "resources apk entry is null. path:resources.arsc"
const/4 v6, 0x0
new-array v6, v6, [Ljava/lang/Object;
invoke-static {v2, v5, v6}, Lcom/tencent/tinker/lib/util/TinkerLog;->w(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
invoke-virtual {v10}, Lcom/tencent/tinker/lib/tinker/Tinker;->getPatchReporter()Lcom/tencent/tinker/lib/reporter/PatchReporter;
move-result-object v2
const-string/jumbo v5, "resources.arsc"
move-object/from16 v0, p4
move/from16 v1, p6
invoke-interface {v2, v0, v4, v5, v1}, Lcom/tencent/tinker/lib/reporter/PatchReporter;->onPatchTypeExtractFail(Ljava/io/File;Ljava/io/File;Ljava/lang/String;I)V
:try_end_3e
.catch Ljava/lang/Throwable; {:try_start_11 .. :try_end_3e} :catch_39c
.catchall {:try_start_11 .. :try_end_3e} :catchall_395
const/4 v2, 0x0
invoke-static {v7}, Lcom/tencent/tinker/loader/shareutil/SharePatchFileUtil;->closeZip(Ljava/util/zip/ZipFile;)V
invoke-static {v3}, Lcom/tencent/tinker/loader/shareutil/SharePatchFileUtil;->closeZip(Ljava/util/zip/ZipFile;)V
:goto_45
return v2
:cond_46
:try_start_46
invoke-virtual {v2}, Ljava/util/zip/ZipEntry;->getCrc()J
move-result-wide v12
invoke-static {v12, v13}, Ljava/lang/String;->valueOf(J)Ljava/lang/String;
move-result-object v2
move-object/from16 v0, p5
iget-object v5, v0, Lcom/tencent/tinker/loader/shareutil/ShareResPatchInfo;->arscBaseCrc:Ljava/lang/String;
invoke-virtual {v2, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v5
if-nez v5, :cond_84
const-string/jumbo v5, "Tinker.ResDiffPatchInternal"
const-string/jumbo v6, "resources.arsc\'s crc is not equal, expect crc: %s, got crc: %s"
const/4 v8, 0x2
new-array v8, v8, [Ljava/lang/Object;
const/4 v9, 0x0
move-object/from16 v0, p5
iget-object v11, v0, Lcom/tencent/tinker/loader/shareutil/ShareResPatchInfo;->arscBaseCrc:Ljava/lang/String;
aput-object v11, v8, v9
const/4 v9, 0x1
aput-object v2, v8, v9
invoke-static {v5, v6, v8}, Lcom/tencent/tinker/lib/util/TinkerLog;->e(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
invoke-virtual {v10}, Lcom/tencent/tinker/lib/tinker/Tinker;->getPatchReporter()Lcom/tencent/tinker/lib/reporter/PatchReporter;
move-result-object v2
const-string/jumbo v5, "resources.arsc"
move-object/from16 v0, p4
move/from16 v1, p6
invoke-interface {v2, v0, v4, v5, v1}, Lcom/tencent/tinker/lib/reporter/PatchReporter;->onPatchTypeExtractFail(Ljava/io/File;Ljava/io/File;Ljava/lang/String;I)V
:try_end_7c
.catch Ljava/lang/Throwable; {:try_start_46 .. :try_end_7c} :catch_39c
.catchall {:try_start_46 .. :try_end_7c} :catchall_395
const/4 v2, 0x0
invoke-static {v7}, Lcom/tencent/tinker/loader/shareutil/SharePatchFileUtil;->closeZip(Ljava/util/zip/ZipFile;)V
invoke-static {v3}, Lcom/tencent/tinker/loader/shareutil/SharePatchFileUtil;->closeZip(Ljava/util/zip/ZipFile;)V
goto :goto_45
:cond_84
:try_start_84
move-object/from16 v0, p5
iget-object v2, v0, Lcom/tencent/tinker/loader/shareutil/ShareResPatchInfo;->largeModRes:Ljava/util/ArrayList;
invoke-virtual {v2}, Ljava/util/ArrayList;->isEmpty()Z
move-result v2
if-eqz v2, :cond_ac
move-object/from16 v0, p5
iget-object v2, v0, Lcom/tencent/tinker/loader/shareutil/ShareResPatchInfo;->storeRes:Ljava/util/HashMap;
invoke-virtual {v2}, Ljava/util/HashMap;->isEmpty()Z
move-result v2
if-eqz v2, :cond_ac
const-string/jumbo v2, "Tinker.ResDiffPatchInternal"
const-string/jumbo v4, "no large modify or store resources, just return"
const/4 v5, 0x0
new-array v5, v5, [Ljava/lang/Object;
invoke-static {v2, v4, v5}, Lcom/tencent/tinker/lib/util/TinkerLog;->i(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
:try_end_a4
.catch Ljava/lang/Throwable; {:try_start_84 .. :try_end_a4} :catch_39c
.catchall {:try_start_84 .. :try_end_a4} :catchall_395
const/4 v2, 0x1
invoke-static {v7}, Lcom/tencent/tinker/loader/shareutil/SharePatchFileUtil;->closeZip(Ljava/util/zip/ZipFile;)V
invoke-static {v3}, Lcom/tencent/tinker/loader/shareutil/SharePatchFileUtil;->closeZip(Ljava/util/zip/ZipFile;)V
goto :goto_45
:cond_ac
:try_start_ac
new-instance v6, Ljava/util/zip/ZipFile;
move-object/from16 v0, p4
invoke-direct {v6, v0}, Ljava/util/zip/ZipFile;-><init>(Ljava/io/File;)V
:try_end_b3
.catch Ljava/lang/Throwable; {:try_start_ac .. :try_end_b3} :catch_39c
.catchall {:try_start_ac .. :try_end_b3} :catchall_395
:try_start_b3
move-object/from16 v0, p5
iget-object v2, v0, Lcom/tencent/tinker/loader/shareutil/ShareResPatchInfo;->storeRes:Ljava/util/HashMap;
invoke-virtual {v2}, Ljava/util/HashMap;->keySet()Ljava/util/Set;
move-result-object v2
invoke-interface {v2}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
move-result-object v3
:goto_bf
invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z
move-result v2
if-eqz v2, :cond_1d8
invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v2
check-cast v2, Ljava/lang/String;
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v4
new-instance v11, Ljava/io/File;
move-object/from16 v0, p3
invoke-direct {v11, v0, v2}, Ljava/io/File;-><init>(Ljava/io/File;Ljava/lang/String;)V
invoke-static {v11}, Lcom/tencent/tinker/loader/shareutil/SharePatchFileUtil;->ensureFileDirectory(Ljava/io/File;)V
invoke-virtual {v6, v2}, Ljava/util/zip/ZipFile;->getEntry(Ljava/lang/String;)Ljava/util/zip/ZipEntry;
move-result-object v12
if-nez v12, :cond_110
const-string/jumbo v3, "Tinker.ResDiffPatchInternal"
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v5, "store patch entry is null. path:"
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v4
const/4 v5, 0x0
new-array v5, v5, [Ljava/lang/Object;
invoke-static {v3, v4, v5}, Lcom/tencent/tinker/lib/util/TinkerLog;->w(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
invoke-virtual {v10}, Lcom/tencent/tinker/lib/tinker/Tinker;->getPatchReporter()Lcom/tencent/tinker/lib/reporter/PatchReporter;
move-result-object v3
move-object/from16 v0, p4
move/from16 v1, p6
invoke-interface {v3, v0, v11, v2, v1}, Lcom/tencent/tinker/lib/reporter/PatchReporter;->onPatchTypeExtractFail(Ljava/io/File;Ljava/io/File;Ljava/lang/String;I)V
:try_end_107
.catch Ljava/lang/Throwable; {:try_start_b3 .. :try_end_107} :catch_197
.catchall {:try_start_b3 .. :try_end_107} :catchall_33a
const/4 v2, 0x0
invoke-static {v7}, Lcom/tencent/tinker/loader/shareutil/SharePatchFileUtil;->closeZip(Ljava/util/zip/ZipFile;)V
invoke-static {v6}, Lcom/tencent/tinker/loader/shareutil/SharePatchFileUtil;->closeZip(Ljava/util/zip/ZipFile;)V
goto/16 :goto_45
:cond_110
const/4 v13, 0x0
const/4 v14, 0x0
:try_start_112
invoke-static {v6, v12, v11, v13, v14}, Lcom/tencent/tinker/lib/patch/ResDiffPatchInternal;->extract(Ljava/util/zip/ZipFile;Ljava/util/zip/ZipEntry;Ljava/io/File;Ljava/lang/String;Z)Z
invoke-virtual {v12}, Ljava/util/zip/ZipEntry;->getSize()J
move-result-wide v14
invoke-virtual {v11}, Ljava/io/File;->length()J
move-result-wide v16
cmp-long v13, v14, v16
if-eqz v13, :cond_163
const-string/jumbo v3, "Tinker.ResDiffPatchInternal"
const-string/jumbo v4, "resource meta file size mismatch, type:%s, name: %s, patch size: %d, file size; %d"
const/4 v5, 0x4
new-array v5, v5, [Ljava/lang/Object;
const/4 v8, 0x0
invoke-static/range {p6 .. p6}, Lcom/tencent/tinker/loader/shareutil/ShareTinkerInternals;->getTypeString(I)Ljava/lang/String;
move-result-object v9
aput-object v9, v5, v8
const/4 v8, 0x1
aput-object v2, v5, v8
const/4 v2, 0x2
invoke-virtual {v12}, Ljava/util/zip/ZipEntry;->getSize()J
move-result-wide v8
invoke-static {v8, v9}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v8
aput-object v8, v5, v2
const/4 v2, 0x3
invoke-virtual {v11}, Ljava/io/File;->length()J
move-result-wide v8
invoke-static {v8, v9}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v8
aput-object v8, v5, v2
invoke-static {v3, v4, v5}, Lcom/tencent/tinker/lib/util/TinkerLog;->w(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
invoke-virtual {v10}, Lcom/tencent/tinker/lib/tinker/Tinker;->getPatchReporter()Lcom/tencent/tinker/lib/reporter/PatchReporter;
move-result-object v2
invoke-static/range {p6 .. p6}, Lcom/tencent/tinker/lib/patch/BasePatchInternal;->getMetaCorruptedCode(I)I
move-result v3
move-object/from16 v0, p4
invoke-interface {v2, v0, v3}, Lcom/tencent/tinker/lib/reporter/PatchReporter;->onPatchPackageCheckFail(Ljava/io/File;I)V
:try_end_15a
.catch Ljava/lang/Throwable; {:try_start_112 .. :try_end_15a} :catch_197
.catchall {:try_start_112 .. :try_end_15a} :catchall_33a
const/4 v2, 0x0
invoke-static {v7}, Lcom/tencent/tinker/loader/shareutil/SharePatchFileUtil;->closeZip(Ljava/util/zip/ZipFile;)V
invoke-static {v6}, Lcom/tencent/tinker/loader/shareutil/SharePatchFileUtil;->closeZip(Ljava/util/zip/ZipFile;)V
goto/16 :goto_45
:cond_163
:try_start_163
move-object/from16 v0, p5
iget-object v12, v0, Lcom/tencent/tinker/loader/shareutil/ShareResPatchInfo;->storeRes:Ljava/util/HashMap;
invoke-virtual {v12, v2, v11}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
const-string/jumbo v2, "Tinker.ResDiffPatchInternal"
const-string/jumbo v12, "success recover store file:%s, file size:%d, use time:%d"
const/4 v13, 0x3
new-array v13, v13, [Ljava/lang/Object;
const/4 v14, 0x0
invoke-virtual {v11}, Ljava/io/File;->getPath()Ljava/lang/String;
move-result-object v15
aput-object v15, v13, v14
const/4 v14, 0x1
invoke-virtual {v11}, Ljava/io/File;->length()J
move-result-wide v16
invoke-static/range {v16 .. v17}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v11
aput-object v11, v13, v14
const/4 v11, 0x2
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v14
sub-long v4, v14, v4
invoke-static {v4, v5}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v4
aput-object v4, v13, v11
invoke-static {v2, v12, v13}, Lcom/tencent/tinker/lib/util/TinkerLog;->w(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
:try_end_195
.catch Ljava/lang/Throwable; {:try_start_163 .. :try_end_195} :catch_197
.catchall {:try_start_163 .. :try_end_195} :catchall_33a
goto/16 :goto_bf
:catch_197
move-exception v2
move-object v3, v6
move-object v4, v7
:goto_19a
:try_start_19a
new-instance v5, Lcom/tencent/tinker/loader/TinkerRuntimeException;
new-instance v6, Ljava/lang/StringBuilder;
invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v7, "patch "
invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v6
invoke-static/range {p6 .. p6}, Lcom/tencent/tinker/loader/shareutil/ShareTinkerInternals;->getTypeString(I)Ljava/lang/String;
move-result-object v7
invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v6
const-string/jumbo v7, " extract failed ("
invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v6
invoke-virtual {v2}, Ljava/lang/Throwable;->getMessage()Ljava/lang/String;
move-result-object v7
invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v6
const-string/jumbo v7, ")."
invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v6
invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v6
invoke-direct {v5, v6, v2}, Lcom/tencent/tinker/loader/TinkerRuntimeException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
throw v5
:try_end_1ce
.catchall {:try_start_19a .. :try_end_1ce} :catchall_1ce
:catchall_1ce
move-exception v2
move-object v6, v3
move-object v7, v4
:goto_1d1
invoke-static {v7}, Lcom/tencent/tinker/loader/shareutil/SharePatchFileUtil;->closeZip(Ljava/util/zip/ZipFile;)V
invoke-static {v6}, Lcom/tencent/tinker/loader/shareutil/SharePatchFileUtil;->closeZip(Ljava/util/zip/ZipFile;)V
throw v2
:cond_1d8
:try_start_1d8
move-object/from16 v0, p5
iget-object v2, v0, Lcom/tencent/tinker/loader/shareutil/ShareResPatchInfo;->largeModRes:Ljava/util/ArrayList;
invoke-virtual {v2}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator;
move-result-object v11
:goto_1e0
invoke-interface {v11}, Ljava/util/Iterator;->hasNext()Z
move-result v2
if-eqz v2, :cond_36e
invoke-interface {v11}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v2
check-cast v2, Ljava/lang/String;
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v12
move-object/from16 v0, p5
iget-object v3, v0, Lcom/tencent/tinker/loader/shareutil/ShareResPatchInfo;->largeModMap:Ljava/util/HashMap;
invoke-virtual {v3, v2}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v3
check-cast v3, Lcom/tencent/tinker/loader/shareutil/ShareResPatchInfo$LargeModeInfo;
if-nez v3, :cond_228
const-string/jumbo v3, "Tinker.ResDiffPatchInternal"
const-string/jumbo v4, "resource not found largeModeInfo, type:%s, name: %s"
const/4 v5, 0x2
new-array v5, v5, [Ljava/lang/Object;
const/4 v8, 0x0
invoke-static/range {p6 .. p6}, Lcom/tencent/tinker/loader/shareutil/ShareTinkerInternals;->getTypeString(I)Ljava/lang/String;
move-result-object v9
aput-object v9, v5, v8
const/4 v8, 0x1
aput-object v2, v5, v8
invoke-static {v3, v4, v5}, Lcom/tencent/tinker/lib/util/TinkerLog;->w(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
invoke-virtual {v10}, Lcom/tencent/tinker/lib/tinker/Tinker;->getPatchReporter()Lcom/tencent/tinker/lib/reporter/PatchReporter;
move-result-object v2
invoke-static/range {p6 .. p6}, Lcom/tencent/tinker/lib/patch/BasePatchInternal;->getMetaCorruptedCode(I)I
move-result v3
move-object/from16 v0, p4
invoke-interface {v2, v0, v3}, Lcom/tencent/tinker/lib/reporter/PatchReporter;->onPatchPackageCheckFail(Ljava/io/File;I)V
:try_end_21f
.catch Ljava/lang/Throwable; {:try_start_1d8 .. :try_end_21f} :catch_197
.catchall {:try_start_1d8 .. :try_end_21f} :catchall_33a
const/4 v2, 0x0
invoke-static {v7}, Lcom/tencent/tinker/loader/shareutil/SharePatchFileUtil;->closeZip(Ljava/util/zip/ZipFile;)V
invoke-static {v6}, Lcom/tencent/tinker/loader/shareutil/SharePatchFileUtil;->closeZip(Ljava/util/zip/ZipFile;)V
goto/16 :goto_45
:cond_228
:try_start_228
new-instance v4, Ljava/io/File;
move-object/from16 v0, p3
invoke-direct {v4, v0, v2}, Ljava/io/File;-><init>(Ljava/io/File;Ljava/lang/String;)V
iput-object v4, v3, Lcom/tencent/tinker/loader/shareutil/ShareResPatchInfo$LargeModeInfo;->file:Ljava/io/File;
iget-object v4, v3, Lcom/tencent/tinker/loader/shareutil/ShareResPatchInfo$LargeModeInfo;->file:Ljava/io/File;
invoke-static {v4}, Lcom/tencent/tinker/loader/shareutil/SharePatchFileUtil;->ensureFileDirectory(Ljava/io/File;)V
iget-object v4, v3, Lcom/tencent/tinker/loader/shareutil/ShareResPatchInfo$LargeModeInfo;->md5:Ljava/lang/String;
invoke-static {v4}, Lcom/tencent/tinker/loader/shareutil/SharePatchFileUtil;->checkIfMd5Valid(Ljava/lang/String;)Z
move-result v4
if-nez v4, :cond_26f
const-string/jumbo v4, "Tinker.ResDiffPatchInternal"
const-string/jumbo v5, "resource meta file md5 mismatch, type:%s, name: %s, md5: %s"
const/4 v8, 0x3
new-array v8, v8, [Ljava/lang/Object;
const/4 v9, 0x0
invoke-static/range {p6 .. p6}, Lcom/tencent/tinker/loader/shareutil/ShareTinkerInternals;->getTypeString(I)Ljava/lang/String;
move-result-object v11
aput-object v11, v8, v9
const/4 v9, 0x1
aput-object v2, v8, v9
const/4 v2, 0x2
iget-object v3, v3, Lcom/tencent/tinker/loader/shareutil/ShareResPatchInfo$LargeModeInfo;->md5:Ljava/lang/String;
aput-object v3, v8, v2
invoke-static {v4, v5, v8}, Lcom/tencent/tinker/lib/util/TinkerLog;->w(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
invoke-virtual {v10}, Lcom/tencent/tinker/lib/tinker/Tinker;->getPatchReporter()Lcom/tencent/tinker/lib/reporter/PatchReporter;
move-result-object v2
invoke-static/range {p6 .. p6}, Lcom/tencent/tinker/lib/patch/BasePatchInternal;->getMetaCorruptedCode(I)I
move-result v3
move-object/from16 v0, p4
invoke-interface {v2, v0, v3}, Lcom/tencent/tinker/lib/reporter/PatchReporter;->onPatchPackageCheckFail(Ljava/io/File;I)V
:try_end_266
.catch Ljava/lang/Throwable; {:try_start_228 .. :try_end_266} :catch_197
.catchall {:try_start_228 .. :try_end_266} :catchall_33a
const/4 v2, 0x0
invoke-static {v7}, Lcom/tencent/tinker/loader/shareutil/SharePatchFileUtil;->closeZip(Ljava/util/zip/ZipFile;)V
invoke-static {v6}, Lcom/tencent/tinker/loader/shareutil/SharePatchFileUtil;->closeZip(Ljava/util/zip/ZipFile;)V
goto/16 :goto_45
:cond_26f
:try_start_26f
invoke-virtual {v6, v2}, Ljava/util/zip/ZipFile;->getEntry(Ljava/lang/String;)Ljava/util/zip/ZipEntry;
move-result-object v14
if-nez v14, :cond_2a8
const-string/jumbo v4, "Tinker.ResDiffPatchInternal"
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v8, "large mod patch entry is null. path:"
invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v5, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v5
const/4 v8, 0x0
new-array v8, v8, [Ljava/lang/Object;
invoke-static {v4, v5, v8}, Lcom/tencent/tinker/lib/util/TinkerLog;->w(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
invoke-virtual {v10}, Lcom/tencent/tinker/lib/tinker/Tinker;->getPatchReporter()Lcom/tencent/tinker/lib/reporter/PatchReporter;
move-result-object v4
iget-object v3, v3, Lcom/tencent/tinker/loader/shareutil/ShareResPatchInfo$LargeModeInfo;->file:Ljava/io/File;
move-object/from16 v0, p4
move/from16 v1, p6
invoke-interface {v4, v0, v3, v2, v1}, Lcom/tencent/tinker/lib/reporter/PatchReporter;->onPatchTypeExtractFail(Ljava/io/File;Ljava/io/File;Ljava/lang/String;I)V
:try_end_29f
.catch Ljava/lang/Throwable; {:try_start_26f .. :try_end_29f} :catch_197
.catchall {:try_start_26f .. :try_end_29f} :catchall_33a
const/4 v2, 0x0
invoke-static {v7}, Lcom/tencent/tinker/loader/shareutil/SharePatchFileUtil;->closeZip(Ljava/util/zip/ZipFile;)V
invoke-static {v6}, Lcom/tencent/tinker/loader/shareutil/SharePatchFileUtil;->closeZip(Ljava/util/zip/ZipFile;)V
goto/16 :goto_45
:cond_2a8
:try_start_2a8
invoke-virtual {v7, v2}, Ljava/util/zip/ZipFile;->getEntry(Ljava/lang/String;)Ljava/util/zip/ZipEntry;
move-result-object v15
if-nez v15, :cond_2e1
const-string/jumbo v4, "Tinker.ResDiffPatchInternal"
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v8, "resources apk entry is null. path:"
invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v5, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v5
const/4 v8, 0x0
new-array v8, v8, [Ljava/lang/Object;
invoke-static {v4, v5, v8}, Lcom/tencent/tinker/lib/util/TinkerLog;->w(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
invoke-virtual {v10}, Lcom/tencent/tinker/lib/tinker/Tinker;->getPatchReporter()Lcom/tencent/tinker/lib/reporter/PatchReporter;
move-result-object v4
iget-object v3, v3, Lcom/tencent/tinker/loader/shareutil/ShareResPatchInfo$LargeModeInfo;->file:Ljava/io/File;
move-object/from16 v0, p4
move/from16 v1, p6
invoke-interface {v4, v0, v3, v2, v1}, Lcom/tencent/tinker/lib/reporter/PatchReporter;->onPatchTypeExtractFail(Ljava/io/File;Ljava/io/File;Ljava/lang/String;I)V
:try_end_2d8
.catch Ljava/lang/Throwable; {:try_start_2a8 .. :try_end_2d8} :catch_197
.catchall {:try_start_2a8 .. :try_end_2d8} :catchall_33a
const/4 v2, 0x0
invoke-static {v7}, Lcom/tencent/tinker/loader/shareutil/SharePatchFileUtil;->closeZip(Ljava/util/zip/ZipFile;)V
invoke-static {v6}, Lcom/tencent/tinker/loader/shareutil/SharePatchFileUtil;->closeZip(Ljava/util/zip/ZipFile;)V
goto/16 :goto_45
:cond_2e1
const/4 v5, 0x0
const/4 v4, 0x0
:try_start_2e3
invoke-virtual {v7, v15}, Ljava/util/zip/ZipFile;->getInputStream(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream;
:try_end_2e6
.catchall {:try_start_2e3 .. :try_end_2e6} :catchall_330
move-result-object v5
:try_start_2e7
invoke-virtual {v6, v14}, Ljava/util/zip/ZipFile;->getInputStream(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream;
:try_end_2ea
.catchall {:try_start_2e7 .. :try_end_2ea} :catchall_3a0
move-result-object v4
:try_start_2eb
iget-object v14, v3, Lcom/tencent/tinker/loader/shareutil/ShareResPatchInfo$LargeModeInfo;->file:Ljava/io/File;
invoke-static {v5, v4, v14}, Lcom/tencent/tinker/bsdiff/BSPatch;->patchFast(Ljava/io/InputStream;Ljava/io/InputStream;Ljava/io/File;)I
:try_end_2f0
.catchall {:try_start_2eb .. :try_end_2f0} :catchall_3a4
:try_start_2f0
invoke-static {v5}, Lcom/tencent/tinker/commons/util/StreamUtil;->closeQuietly(Ljava/lang/Object;)V
invoke-static {v4}, Lcom/tencent/tinker/commons/util/StreamUtil;->closeQuietly(Ljava/lang/Object;)V
iget-object v4, v3, Lcom/tencent/tinker/loader/shareutil/ShareResPatchInfo$LargeModeInfo;->file:Ljava/io/File;
iget-object v5, v3, Lcom/tencent/tinker/loader/shareutil/ShareResPatchInfo$LargeModeInfo;->md5:Ljava/lang/String;
invoke-static {v4, v5}, Lcom/tencent/tinker/loader/shareutil/SharePatchFileUtil;->verifyFileMd5(Ljava/io/File;Ljava/lang/String;)Z
move-result v4
if-nez v4, :cond_33d
const-string/jumbo v4, "Tinker.ResDiffPatchInternal"
const-string/jumbo v5, "Failed to recover large modify file:%s"
const/4 v8, 0x1
new-array v8, v8, [Ljava/lang/Object;
const/4 v9, 0x0
iget-object v11, v3, Lcom/tencent/tinker/loader/shareutil/ShareResPatchInfo$LargeModeInfo;->file:Ljava/io/File;
invoke-virtual {v11}, Ljava/io/File;->getPath()Ljava/lang/String;
move-result-object v11
aput-object v11, v8, v9
invoke-static {v4, v5, v8}, Lcom/tencent/tinker/lib/util/TinkerLog;->w(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
iget-object v4, v3, Lcom/tencent/tinker/loader/shareutil/ShareResPatchInfo$LargeModeInfo;->file:Ljava/io/File;
invoke-static {v4}, Lcom/tencent/tinker/loader/shareutil/SharePatchFileUtil;->safeDeleteFile(Ljava/io/File;)Z
invoke-virtual {v10}, Lcom/tencent/tinker/lib/tinker/Tinker;->getPatchReporter()Lcom/tencent/tinker/lib/reporter/PatchReporter;
move-result-object v4
iget-object v3, v3, Lcom/tencent/tinker/loader/shareutil/ShareResPatchInfo$LargeModeInfo;->file:Ljava/io/File;
move-object/from16 v0, p4
move/from16 v1, p6
invoke-interface {v4, v0, v3, v2, v1}, Lcom/tencent/tinker/lib/reporter/PatchReporter;->onPatchTypeExtractFail(Ljava/io/File;Ljava/io/File;Ljava/lang/String;I)V
:try_end_327
.catch Ljava/lang/Throwable; {:try_start_2f0 .. :try_end_327} :catch_197
.catchall {:try_start_2f0 .. :try_end_327} :catchall_33a
const/4 v2, 0x0
invoke-static {v7}, Lcom/tencent/tinker/loader/shareutil/SharePatchFileUtil;->closeZip(Ljava/util/zip/ZipFile;)V
invoke-static {v6}, Lcom/tencent/tinker/loader/shareutil/SharePatchFileUtil;->closeZip(Ljava/util/zip/ZipFile;)V
goto/16 :goto_45
:catchall_330
move-exception v2
move-object v3, v4
move-object v4, v5
:goto_333
:try_start_333
invoke-static {v4}, Lcom/tencent/tinker/commons/util/StreamUtil;->closeQuietly(Ljava/lang/Object;)V
invoke-static {v3}, Lcom/tencent/tinker/commons/util/StreamUtil;->closeQuietly(Ljava/lang/Object;)V
throw v2
:catchall_33a
move-exception v2
goto/16 :goto_1d1
:cond_33d
const-string/jumbo v2, "Tinker.ResDiffPatchInternal"
const-string/jumbo v4, "success recover large modify file:%s, file size:%d, use time:%d"
const/4 v5, 0x3
new-array v5, v5, [Ljava/lang/Object;
const/4 v14, 0x0
iget-object v15, v3, Lcom/tencent/tinker/loader/shareutil/ShareResPatchInfo$LargeModeInfo;->file:Ljava/io/File;
invoke-virtual {v15}, Ljava/io/File;->getPath()Ljava/lang/String;
move-result-object v15
aput-object v15, v5, v14
const/4 v14, 0x1
iget-object v3, v3, Lcom/tencent/tinker/loader/shareutil/ShareResPatchInfo$LargeModeInfo;->file:Ljava/io/File;
invoke-virtual {v3}, Ljava/io/File;->length()J
move-result-wide v16
invoke-static/range {v16 .. v17}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v3
aput-object v3, v5, v14
const/4 v3, 0x2
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v14
sub-long v12, v14, v12
invoke-static {v12, v13}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v12
aput-object v12, v5, v3
invoke-static {v2, v4, v5}, Lcom/tencent/tinker/lib/util/TinkerLog;->w(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
goto/16 :goto_1e0
:cond_36e
const-string/jumbo v2, "Tinker.ResDiffPatchInternal"
const-string/jumbo v3, "success recover all large modify and store resources use time:%d"
const/4 v4, 0x1
new-array v4, v4, [Ljava/lang/Object;
const/4 v5, 0x0
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v10
sub-long v8, v10, v8
invoke-static {v8, v9}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v8
aput-object v8, v4, v5
invoke-static {v2, v3, v4}, Lcom/tencent/tinker/lib/util/TinkerLog;->w(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
:try_end_387
.catch Ljava/lang/Throwable; {:try_start_333 .. :try_end_387} :catch_197
.catchall {:try_start_333 .. :try_end_387} :catchall_33a
invoke-static {v7}, Lcom/tencent/tinker/loader/shareutil/SharePatchFileUtil;->closeZip(Ljava/util/zip/ZipFile;)V
invoke-static {v6}, Lcom/tencent/tinker/loader/shareutil/SharePatchFileUtil;->closeZip(Ljava/util/zip/ZipFile;)V
const/4 v2, 0x1
goto/16 :goto_45
:catchall_390
move-exception v2
move-object v6, v3
move-object v7, v4
goto/16 :goto_1d1
:catchall_395
move-exception v2
move-object v6, v3
goto/16 :goto_1d1
:catch_399
move-exception v2
goto/16 :goto_19a
:catch_39c
move-exception v2
move-object v4, v7
goto/16 :goto_19a
:catchall_3a0
move-exception v2
move-object v3, v4
move-object v4, v5
goto :goto_333
:catchall_3a4
move-exception v2
move-object v3, v4
move-object v4, v5
goto :goto_333
.end method
.method private static extractResourceDiffInternals(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/io/File;I)Z
.registers 21
new-instance v7, Lcom/tencent/tinker/loader/shareutil/ShareResPatchInfo;
invoke-direct {v7}, Lcom/tencent/tinker/loader/shareutil/ShareResPatchInfo;-><init>()V
move-object/from16 v0, p2
invoke-static {v0, v7}, Lcom/tencent/tinker/loader/shareutil/ShareResPatchInfo;->parseAllResPatchInfo(Ljava/lang/String;Lcom/tencent/tinker/loader/shareutil/ShareResPatchInfo;)V
const-string/jumbo v2, "Tinker.ResDiffPatchInternal"
const-string/jumbo v3, "res dir: %s, meta: %s"
const/4 v4, 0x2
new-array v4, v4, [Ljava/lang/Object;
const/4 v5, 0x0
aput-object p1, v4, v5
const/4 v5, 0x1
invoke-virtual {v7}, Lcom/tencent/tinker/loader/shareutil/ShareResPatchInfo;->toString()Ljava/lang/String;
move-result-object v6
aput-object v6, v4, v5
invoke-static {v2, v3, v4}, Lcom/tencent/tinker/lib/util/TinkerLog;->i(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
invoke-static/range {p0 .. p0}, Lcom/tencent/tinker/lib/tinker/Tinker;->with(Landroid/content/Context;)Lcom/tencent/tinker/lib/tinker/Tinker;
move-result-object v10
iget-object v2, v7, Lcom/tencent/tinker/loader/shareutil/ShareResPatchInfo;->resArscMd5:Ljava/lang/String;
invoke-static {v2}, Lcom/tencent/tinker/loader/shareutil/SharePatchFileUtil;->checkIfMd5Valid(Ljava/lang/String;)Z
move-result v2
if-nez v2, :cond_53
const-string/jumbo v2, "Tinker.ResDiffPatchInternal"
const-string/jumbo v3, "resource meta file md5 mismatch, type:%s, md5: %s"
const/4 v4, 0x2
new-array v4, v4, [Ljava/lang/Object;
const/4 v5, 0x0
invoke-static/range {p4 .. p4}, Lcom/tencent/tinker/loader/shareutil/ShareTinkerInternals;->getTypeString(I)Ljava/lang/String;
move-result-object v6
aput-object v6, v4, v5
const/4 v5, 0x1
iget-object v6, v7, Lcom/tencent/tinker/loader/shareutil/ShareResPatchInfo;->resArscMd5:Ljava/lang/String;
aput-object v6, v4, v5
invoke-static {v2, v3, v4}, Lcom/tencent/tinker/lib/util/TinkerLog;->w(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
invoke-virtual {v10}, Lcom/tencent/tinker/lib/tinker/Tinker;->getPatchReporter()Lcom/tencent/tinker/lib/reporter/PatchReporter;
move-result-object v2
invoke-static/range {p4 .. p4}, Lcom/tencent/tinker/lib/patch/BasePatchInternal;->getMetaCorruptedCode(I)I
move-result v3
move-object/from16 v0, p3
invoke-interface {v2, v0, v3}, Lcom/tencent/tinker/lib/reporter/PatchReporter;->onPatchPackageCheckFail(Ljava/io/File;I)V
const/4 v2, 0x0
:goto_52
return v2
:cond_53
new-instance v4, Ljava/io/File;
move-object/from16 v0, p1
invoke-direct {v4, v0}, Ljava/io/File;-><init>(Ljava/lang/String;)V
new-instance v5, Ljava/io/File;
const-string/jumbo v2, "res_temp"
invoke-direct {v5, v4, v2}, Ljava/io/File;-><init>(Ljava/io/File;Ljava/lang/String;)V
new-instance v11, Ljava/io/File;
const-string/jumbo v2, "resources.apk"
invoke-direct {v11, v4, v2}, Ljava/io/File;-><init>(Ljava/io/File;Ljava/lang/String;)V
invoke-virtual {v11}, Ljava/io/File;->exists()Z
move-result v2
if-eqz v2, :cond_c5
iget-object v2, v7, Lcom/tencent/tinker/loader/shareutil/ShareResPatchInfo;->resArscMd5:Ljava/lang/String;
invoke-static {v11, v2}, Lcom/tencent/tinker/loader/shareutil/SharePatchFileUtil;->checkResourceArscMd5(Ljava/io/File;Ljava/lang/String;)Z
move-result v2
if-eqz v2, :cond_8d
const-string/jumbo v2, "Tinker.ResDiffPatchInternal"
const-string/jumbo v3, "resource file %s is already exist, and md5 match, just return true"
const/4 v4, 0x1
new-array v4, v4, [Ljava/lang/Object;
const/4 v5, 0x0
invoke-virtual {v11}, Ljava/io/File;->getPath()Ljava/lang/String;
move-result-object v6
aput-object v6, v4, v5
invoke-static {v2, v3, v4}, Lcom/tencent/tinker/lib/util/TinkerLog;->w(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
const/4 v2, 0x1
goto :goto_52
:cond_8d
const-string/jumbo v2, "Tinker.ResDiffPatchInternal"
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v6, "have a mismatch corrupted resource "
invoke-virtual {v3, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v11}, Ljava/io/File;->getPath()Ljava/lang/String;
move-result-object v6
invoke-virtual {v3, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
const/4 v6, 0x0
new-array v6, v6, [Ljava/lang/Object;
invoke-static {v2, v3, v6}, Lcom/tencent/tinker/lib/util/TinkerLog;->w(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
invoke-virtual {v11}, Ljava/io/File;->delete()Z
:goto_b1
:try_start_b1
invoke-virtual/range {p0 .. p0}, Landroid/content/Context;->getApplicationInfo()Landroid/content/pm/ApplicationInfo;
move-result-object v2
if-nez v2, :cond_cd
const-string/jumbo v2, "Tinker.ResDiffPatchInternal"
const-string/jumbo v3, "applicationInfo == null!!!!"
const/4 v4, 0x0
new-array v4, v4, [Ljava/lang/Object;
invoke-static {v2, v3, v4}, Lcom/tencent/tinker/lib/util/TinkerLog;->w(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
:try_end_c3
.catch Ljava/lang/Throwable; {:try_start_b1 .. :try_end_c3} :catch_12a
const/4 v2, 0x0
goto :goto_52
:cond_c5
invoke-virtual {v11}, Ljava/io/File;->getParentFile()Ljava/io/File;
move-result-object v2
invoke-virtual {v2}, Ljava/io/File;->mkdirs()Z
goto :goto_b1
:cond_cd
:try_start_cd
iget-object v3, v2, Landroid/content/pm/ApplicationInfo;->sourceDir:Ljava/lang/String;
move-object/from16 v2, p0
move-object/from16 v6, p3
move/from16 v8, p4
invoke-static/range {v2 .. v8}, Lcom/tencent/tinker/lib/patch/ResDiffPatchInternal;->checkAndExtractResourceLargeFile(Landroid/content/Context;Ljava/lang/String;Ljava/io/File;Ljava/io/File;Ljava/io/File;Lcom/tencent/tinker/loader/shareutil/ShareResPatchInfo;I)Z
:try_end_d8
.catch Ljava/lang/Throwable; {:try_start_cd .. :try_end_d8} :catch_12a
move-result v2
if-nez v2, :cond_de
const/4 v2, 0x0
goto/16 :goto_52
:cond_de
const/4 v8, 0x0
const/4 v4, 0x0
const/4 v6, 0x0
const/4 v2, 0x0
:try_start_e2
new-instance v9, Lcom/tencent/tinker/ziputils/ziputil/TinkerZipOutputStream;
new-instance v12, Ljava/io/BufferedOutputStream;
new-instance v13, Ljava/io/FileOutputStream;
invoke-direct {v13, v11}, Ljava/io/FileOutputStream;-><init>(Ljava/io/File;)V
invoke-direct {v12, v13}, Ljava/io/BufferedOutputStream;-><init>(Ljava/io/OutputStream;)V
invoke-direct {v9, v12}, Lcom/tencent/tinker/ziputils/ziputil/TinkerZipOutputStream;-><init>(Ljava/io/OutputStream;)V
:try_end_f1
.catchall {:try_start_e2 .. :try_end_f1} :catchall_38c
:try_start_f1
new-instance v8, Lcom/tencent/tinker/ziputils/ziputil/TinkerZipFile;
invoke-direct {v8, v3}, Lcom/tencent/tinker/ziputils/ziputil/TinkerZipFile;-><init>(Ljava/lang/String;)V
:try_end_f6
.catchall {:try_start_f1 .. :try_end_f6} :catchall_391
:try_start_f6
new-instance v4, Lcom/tencent/tinker/ziputils/ziputil/TinkerZipFile;
move-object/from16 v0, p3
invoke-direct {v4, v0}, Lcom/tencent/tinker/ziputils/ziputil/TinkerZipFile;-><init>(Ljava/io/File;)V
:try_end_fd
.catchall {:try_start_f6 .. :try_end_fd} :catchall_396
:try_start_fd
invoke-virtual {v8}, Lcom/tencent/tinker/ziputils/ziputil/TinkerZipFile;->entries()Ljava/util/Enumeration;
move-result-object v6
move v3, v2
:cond_102
:goto_102
invoke-interface {v6}, Ljava/util/Enumeration;->hasMoreElements()Z
move-result v2
if-eqz v2, :cond_19d
invoke-interface {v6}, Ljava/util/Enumeration;->nextElement()Ljava/lang/Object;
move-result-object v2
check-cast v2, Lcom/tencent/tinker/ziputils/ziputil/TinkerZipEntry;
if-nez v2, :cond_15f
new-instance v2, Lcom/tencent/tinker/loader/TinkerRuntimeException;
const-string/jumbo v3, "zipEntry is null when get from oldApk"
invoke-direct {v2, v3}, Lcom/tencent/tinker/loader/TinkerRuntimeException;-><init>(Ljava/lang/String;)V
throw v2
:try_end_119
.catchall {:try_start_fd .. :try_end_119} :catchall_119
:catchall_119
move-exception v2
move-object v3, v4
move-object v6, v9
move-object v4, v8
:goto_11d
:try_start_11d
invoke-static {v6}, Lcom/tencent/tinker/commons/util/StreamUtil;->closeQuietly(Ljava/lang/Object;)V
invoke-static {v4}, Lcom/tencent/tinker/commons/util/StreamUtil;->closeQuietly(Ljava/lang/Object;)V
invoke-static {v3}, Lcom/tencent/tinker/commons/util/StreamUtil;->closeQuietly(Ljava/lang/Object;)V
invoke-static {v5}, Lcom/tencent/tinker/loader/shareutil/SharePatchFileUtil;->deleteDir(Ljava/io/File;)Z
throw v2
:try_end_12a
.catch Ljava/lang/Throwable; {:try_start_11d .. :try_end_12a} :catch_12a
:catch_12a
move-exception v2
new-instance v3, Lcom/tencent/tinker/loader/TinkerRuntimeException;
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v5, "patch "
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
invoke-static/range {p4 .. p4}, Lcom/tencent/tinker/loader/shareutil/ShareTinkerInternals;->getTypeString(I)Ljava/lang/String;
move-result-object v5
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
const-string/jumbo v5, " extract failed ("
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
invoke-virtual {v2}, Ljava/lang/Throwable;->getMessage()Ljava/lang/String;
move-result-object v5
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
const-string/jumbo v5, ")."
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v4
invoke-direct {v3, v4, v2}, Lcom/tencent/tinker/loader/TinkerRuntimeException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
throw v3
:cond_15f
:try_start_15f
invoke-virtual {v2}, Lcom/tencent/tinker/ziputils/ziputil/TinkerZipEntry;->getName()Ljava/lang/String;
move-result-object v12
const-string/jumbo v13, "../"
invoke-virtual {v12, v13}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v13
if-nez v13, :cond_102
iget-object v13, v7, Lcom/tencent/tinker/loader/shareutil/ShareResPatchInfo;->patterns:Ljava/util/HashSet;
invoke-static {v13, v12}, Lcom/tencent/tinker/loader/shareutil/ShareResPatchInfo;->checkFileInPattern(Ljava/util/HashSet;Ljava/lang/String;)Z
move-result v13
if-eqz v13, :cond_39c
iget-object v13, v7, Lcom/tencent/tinker/loader/shareutil/ShareResPatchInfo;->deleteRes:Ljava/util/ArrayList;
invoke-virtual {v13, v12}, Ljava/util/ArrayList;->contains(Ljava/lang/Object;)Z
move-result v13
if-nez v13, :cond_39c
iget-object v13, v7, Lcom/tencent/tinker/loader/shareutil/ShareResPatchInfo;->modRes:Ljava/util/ArrayList;
invoke-virtual {v13, v12}, Ljava/util/ArrayList;->contains(Ljava/lang/Object;)Z
move-result v13
if-nez v13, :cond_39c
iget-object v13, v7, Lcom/tencent/tinker/loader/shareutil/ShareResPatchInfo;->largeModRes:Ljava/util/ArrayList;
invoke-virtual {v13, v12}, Ljava/util/ArrayList;->contains(Ljava/lang/Object;)Z
move-result v13
if-nez v13, :cond_39c
const-string/jumbo v13, "AndroidManifest.xml"
invoke-virtual {v12, v13}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v12
if-nez v12, :cond_39c
invoke-static {v8, v2, v9}, Lcom/tencent/tinker/ziputils/ziputil/TinkerZipUtil;->extractTinkerEntry(Lcom/tencent/tinker/ziputils/ziputil/TinkerZipFile;Lcom/tencent/tinker/ziputils/ziputil/TinkerZipEntry;Lcom/tencent/tinker/ziputils/ziputil/TinkerZipOutputStream;)V
add-int/lit8 v2, v3, 0x1
:goto_19a
move v3, v2
goto/16 :goto_102
:cond_19d
const-string/jumbo v2, "AndroidManifest.xml"
invoke-virtual {v8, v2}, Lcom/tencent/tinker/ziputils/ziputil/TinkerZipFile;->getEntry(Ljava/lang/String;)Lcom/tencent/tinker/ziputils/ziputil/TinkerZipEntry;
move-result-object v2
if-nez v2, :cond_1cf
const-string/jumbo v2, "Tinker.ResDiffPatchInternal"
const-string/jumbo v3, "manifest patch entry is null. path:AndroidManifest.xml"
const/4 v6, 0x0
new-array v6, v6, [Ljava/lang/Object;
invoke-static {v2, v3, v6}, Lcom/tencent/tinker/lib/util/TinkerLog;->w(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
invoke-virtual {v10}, Lcom/tencent/tinker/lib/tinker/Tinker;->getPatchReporter()Lcom/tencent/tinker/lib/reporter/PatchReporter;
move-result-object v2
const-string/jumbo v3, "AndroidManifest.xml"
move-object/from16 v0, p3
move/from16 v1, p4
invoke-interface {v2, v0, v11, v3, v1}, Lcom/tencent/tinker/lib/reporter/PatchReporter;->onPatchTypeExtractFail(Ljava/io/File;Ljava/io/File;Ljava/lang/String;I)V
:try_end_1c0
.catchall {:try_start_15f .. :try_end_1c0} :catchall_119
const/4 v2, 0x0
:try_start_1c1
invoke-static {v9}, Lcom/tencent/tinker/commons/util/StreamUtil;->closeQuietly(Ljava/lang/Object;)V
invoke-static {v8}, Lcom/tencent/tinker/commons/util/StreamUtil;->closeQuietly(Ljava/lang/Object;)V
invoke-static {v4}, Lcom/tencent/tinker/commons/util/StreamUtil;->closeQuietly(Ljava/lang/Object;)V
invoke-static {v5}, Lcom/tencent/tinker/loader/shareutil/SharePatchFileUtil;->deleteDir(Ljava/io/File;)Z
:try_end_1cd
.catch Ljava/lang/Throwable; {:try_start_1c1 .. :try_end_1cd} :catch_12a
goto/16 :goto_52
:cond_1cf
:try_start_1cf
invoke-static {v8, v2, v9}, Lcom/tencent/tinker/ziputils/ziputil/TinkerZipUtil;->extractTinkerEntry(Lcom/tencent/tinker/ziputils/ziputil/TinkerZipFile;Lcom/tencent/tinker/ziputils/ziputil/TinkerZipEntry;Lcom/tencent/tinker/ziputils/ziputil/TinkerZipOutputStream;)V
add-int/lit8 v3, v3, 0x1
iget-object v2, v7, Lcom/tencent/tinker/loader/shareutil/ShareResPatchInfo;->largeModRes:Ljava/util/ArrayList;
invoke-virtual {v2}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator;
move-result-object v6
:goto_1da
invoke-interface {v6}, Ljava/util/Iterator;->hasNext()Z
move-result v2
if-eqz v2, :cond_235
invoke-interface {v6}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v2
check-cast v2, Ljava/lang/String;
invoke-virtual {v8, v2}, Lcom/tencent/tinker/ziputils/ziputil/TinkerZipFile;->getEntry(Ljava/lang/String;)Lcom/tencent/tinker/ziputils/ziputil/TinkerZipEntry;
move-result-object v12
if-nez v12, :cond_223
const-string/jumbo v3, "Tinker.ResDiffPatchInternal"
new-instance v6, Ljava/lang/StringBuilder;
invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v7, "large patch entry is null. path:"
invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v6
invoke-virtual {v6, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v6
invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v6
const/4 v7, 0x0
new-array v7, v7, [Ljava/lang/Object;
invoke-static {v3, v6, v7}, Lcom/tencent/tinker/lib/util/TinkerLog;->w(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
invoke-virtual {v10}, Lcom/tencent/tinker/lib/tinker/Tinker;->getPatchReporter()Lcom/tencent/tinker/lib/reporter/PatchReporter;
move-result-object v3
move-object/from16 v0, p3
move/from16 v1, p4
invoke-interface {v3, v0, v11, v2, v1}, Lcom/tencent/tinker/lib/reporter/PatchReporter;->onPatchTypeExtractFail(Ljava/io/File;Ljava/io/File;Ljava/lang/String;I)V
:try_end_214
.catchall {:try_start_1cf .. :try_end_214} :catchall_119
const/4 v2, 0x0
:try_start_215
invoke-static {v9}, Lcom/tencent/tinker/commons/util/StreamUtil;->closeQuietly(Ljava/lang/Object;)V
invoke-static {v8}, Lcom/tencent/tinker/commons/util/StreamUtil;->closeQuietly(Ljava/lang/Object;)V
invoke-static {v4}, Lcom/tencent/tinker/commons/util/StreamUtil;->closeQuietly(Ljava/lang/Object;)V
invoke-static {v5}, Lcom/tencent/tinker/loader/shareutil/SharePatchFileUtil;->deleteDir(Ljava/io/File;)Z
:try_end_221
.catch Ljava/lang/Throwable; {:try_start_215 .. :try_end_221} :catch_12a
goto/16 :goto_52
:cond_223
:try_start_223
iget-object v13, v7, Lcom/tencent/tinker/loader/shareutil/ShareResPatchInfo;->largeModMap:Ljava/util/HashMap;
invoke-virtual {v13, v2}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v2
check-cast v2, Lcom/tencent/tinker/loader/shareutil/ShareResPatchInfo$LargeModeInfo;
iget-object v13, v2, Lcom/tencent/tinker/loader/shareutil/ShareResPatchInfo$LargeModeInfo;->file:Ljava/io/File;
iget-wide v14, v2, Lcom/tencent/tinker/loader/shareutil/ShareResPatchInfo$LargeModeInfo;->crc:J
invoke-static {v12, v13, v14, v15, v9}, Lcom/tencent/tinker/ziputils/ziputil/TinkerZipUtil;->extractLargeModifyFile(Lcom/tencent/tinker/ziputils/ziputil/TinkerZipEntry;Ljava/io/File;JLcom/tencent/tinker/ziputils/ziputil/TinkerZipOutputStream;)V
add-int/lit8 v3, v3, 0x1
goto :goto_1da
:cond_235
iget-object v2, v7, Lcom/tencent/tinker/loader/shareutil/ShareResPatchInfo;->addRes:Ljava/util/ArrayList;
invoke-virtual {v2}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator;
move-result-object v6
:goto_23b
invoke-interface {v6}, Ljava/util/Iterator;->hasNext()Z
move-result v2
if-eqz v2, :cond_2a2
invoke-interface {v6}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v2
check-cast v2, Ljava/lang/String;
invoke-virtual {v4, v2}, Lcom/tencent/tinker/ziputils/ziputil/TinkerZipFile;->getEntry(Ljava/lang/String;)Lcom/tencent/tinker/ziputils/ziputil/TinkerZipEntry;
move-result-object v12
if-nez v12, :cond_284
const-string/jumbo v3, "Tinker.ResDiffPatchInternal"
new-instance v6, Ljava/lang/StringBuilder;
invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v7, "add patch entry is null. path:"
invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v6
invoke-virtual {v6, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v6
invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v6
const/4 v7, 0x0
new-array v7, v7, [Ljava/lang/Object;
invoke-static {v3, v6, v7}, Lcom/tencent/tinker/lib/util/TinkerLog;->w(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
invoke-virtual {v10}, Lcom/tencent/tinker/lib/tinker/Tinker;->getPatchReporter()Lcom/tencent/tinker/lib/reporter/PatchReporter;
move-result-object v3
move-object/from16 v0, p3
move/from16 v1, p4
invoke-interface {v3, v0, v11, v2, v1}, Lcom/tencent/tinker/lib/reporter/PatchReporter;->onPatchTypeExtractFail(Ljava/io/File;Ljava/io/File;Ljava/lang/String;I)V
:try_end_275
.catchall {:try_start_223 .. :try_end_275} :catchall_119
const/4 v2, 0x0
:try_start_276
invoke-static {v9}, Lcom/tencent/tinker/commons/util/StreamUtil;->closeQuietly(Ljava/lang/Object;)V
invoke-static {v8}, Lcom/tencent/tinker/commons/util/StreamUtil;->closeQuietly(Ljava/lang/Object;)V
invoke-static {v4}, Lcom/tencent/tinker/commons/util/StreamUtil;->closeQuietly(Ljava/lang/Object;)V
invoke-static {v5}, Lcom/tencent/tinker/loader/shareutil/SharePatchFileUtil;->deleteDir(Ljava/io/File;)Z
:try_end_282
.catch Ljava/lang/Throwable; {:try_start_276 .. :try_end_282} :catch_12a
goto/16 :goto_52
:cond_284
:try_start_284
iget-object v13, v7, Lcom/tencent/tinker/loader/shareutil/ShareResPatchInfo;->storeRes:Ljava/util/HashMap;
invoke-virtual {v13, v2}, Ljava/util/HashMap;->containsKey(Ljava/lang/Object;)Z
move-result v13
if-eqz v13, :cond_29e
iget-object v13, v7, Lcom/tencent/tinker/loader/shareutil/ShareResPatchInfo;->storeRes:Ljava/util/HashMap;
invoke-virtual {v13, v2}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v2
check-cast v2, Ljava/io/File;
invoke-virtual {v12}, Lcom/tencent/tinker/ziputils/ziputil/TinkerZipEntry;->getCrc()J
move-result-wide v14
invoke-static {v12, v2, v14, v15, v9}, Lcom/tencent/tinker/ziputils/ziputil/TinkerZipUtil;->extractLargeModifyFile(Lcom/tencent/tinker/ziputils/ziputil/TinkerZipEntry;Ljava/io/File;JLcom/tencent/tinker/ziputils/ziputil/TinkerZipOutputStream;)V
:goto_29b
add-int/lit8 v3, v3, 0x1
goto :goto_23b
:cond_29e
invoke-static {v4, v12, v9}, Lcom/tencent/tinker/ziputils/ziputil/TinkerZipUtil;->extractTinkerEntry(Lcom/tencent/tinker/ziputils/ziputil/TinkerZipFile;Lcom/tencent/tinker/ziputils/ziputil/TinkerZipEntry;Lcom/tencent/tinker/ziputils/ziputil/TinkerZipOutputStream;)V
goto :goto_29b
:cond_2a2
iget-object v2, v7, Lcom/tencent/tinker/loader/shareutil/ShareResPatchInfo;->modRes:Ljava/util/ArrayList;
invoke-virtual {v2}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator;
move-result-object v6
:goto_2a8
invoke-interface {v6}, Ljava/util/Iterator;->hasNext()Z
move-result v2
if-eqz v2, :cond_310
invoke-interface {v6}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v2
check-cast v2, Ljava/lang/String;
invoke-virtual {v4, v2}, Lcom/tencent/tinker/ziputils/ziputil/TinkerZipFile;->getEntry(Ljava/lang/String;)Lcom/tencent/tinker/ziputils/ziputil/TinkerZipEntry;
move-result-object v12
if-nez v12, :cond_2f1
const-string/jumbo v3, "Tinker.ResDiffPatchInternal"
new-instance v6, Ljava/lang/StringBuilder;
invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v7, "mod patch entry is null. path:"
invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v6
invoke-virtual {v6, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v6
invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v6
const/4 v7, 0x0
new-array v7, v7, [Ljava/lang/Object;
invoke-static {v3, v6, v7}, Lcom/tencent/tinker/lib/util/TinkerLog;->w(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
invoke-virtual {v10}, Lcom/tencent/tinker/lib/tinker/Tinker;->getPatchReporter()Lcom/tencent/tinker/lib/reporter/PatchReporter;
move-result-object v3
move-object/from16 v0, p3
move/from16 v1, p4
invoke-interface {v3, v0, v11, v2, v1}, Lcom/tencent/tinker/lib/reporter/PatchReporter;->onPatchTypeExtractFail(Ljava/io/File;Ljava/io/File;Ljava/lang/String;I)V
:try_end_2e2
.catchall {:try_start_284 .. :try_end_2e2} :catchall_119
const/4 v2, 0x0
:try_start_2e3
invoke-static {v9}, Lcom/tencent/tinker/commons/util/StreamUtil;->closeQuietly(Ljava/lang/Object;)V
invoke-static {v8}, Lcom/tencent/tinker/commons/util/StreamUtil;->closeQuietly(Ljava/lang/Object;)V
invoke-static {v4}, Lcom/tencent/tinker/commons/util/StreamUtil;->closeQuietly(Ljava/lang/Object;)V
invoke-static {v5}, Lcom/tencent/tinker/loader/shareutil/SharePatchFileUtil;->deleteDir(Ljava/io/File;)Z
:try_end_2ef
.catch Ljava/lang/Throwable; {:try_start_2e3 .. :try_end_2ef} :catch_12a
goto/16 :goto_52
:cond_2f1
:try_start_2f1
iget-object v13, v7, Lcom/tencent/tinker/loader/shareutil/ShareResPatchInfo;->storeRes:Ljava/util/HashMap;
invoke-virtual {v13, v2}, Ljava/util/HashMap;->containsKey(Ljava/lang/Object;)Z
move-result v13
if-eqz v13, :cond_30c
iget-object v13, v7, Lcom/tencent/tinker/loader/shareutil/ShareResPatchInfo;->storeRes:Ljava/util/HashMap;
invoke-virtual {v13, v2}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v2
check-cast v2, Ljava/io/File;
invoke-virtual {v12}, Lcom/tencent/tinker/ziputils/ziputil/TinkerZipEntry;->getCrc()J
move-result-wide v14
invoke-static {v12, v2, v14, v15, v9}, Lcom/tencent/tinker/ziputils/ziputil/TinkerZipUtil;->extractLargeModifyFile(Lcom/tencent/tinker/ziputils/ziputil/TinkerZipEntry;Ljava/io/File;JLcom/tencent/tinker/ziputils/ziputil/TinkerZipOutputStream;)V
:goto_308
add-int/lit8 v2, v3, 0x1
move v3, v2
goto :goto_2a8
:cond_30c
invoke-static {v4, v12, v9}, Lcom/tencent/tinker/ziputils/ziputil/TinkerZipUtil;->extractTinkerEntry(Lcom/tencent/tinker/ziputils/ziputil/TinkerZipFile;Lcom/tencent/tinker/ziputils/ziputil/TinkerZipEntry;Lcom/tencent/tinker/ziputils/ziputil/TinkerZipOutputStream;)V
goto :goto_308
:cond_310
invoke-virtual {v8}, Lcom/tencent/tinker/ziputils/ziputil/TinkerZipFile;->getComment()Ljava/lang/String;
move-result-object v2
invoke-virtual {v9, v2}, Lcom/tencent/tinker/ziputils/ziputil/TinkerZipOutputStream;->setComment(Ljava/lang/String;)V
:try_end_317
.catchall {:try_start_2f1 .. :try_end_317} :catchall_119
:try_start_317
invoke-static {v9}, Lcom/tencent/tinker/commons/util/StreamUtil;->closeQuietly(Ljava/lang/Object;)V
invoke-static {v8}, Lcom/tencent/tinker/commons/util/StreamUtil;->closeQuietly(Ljava/lang/Object;)V
invoke-static {v4}, Lcom/tencent/tinker/commons/util/StreamUtil;->closeQuietly(Ljava/lang/Object;)V
invoke-static {v5}, Lcom/tencent/tinker/loader/shareutil/SharePatchFileUtil;->deleteDir(Ljava/io/File;)Z
iget-object v2, v7, Lcom/tencent/tinker/loader/shareutil/ShareResPatchInfo;->resArscMd5:Ljava/lang/String;
invoke-static {v11, v2}, Lcom/tencent/tinker/loader/shareutil/SharePatchFileUtil;->checkResourceArscMd5(Ljava/io/File;Ljava/lang/String;)Z
move-result v2
if-nez v2, :cond_364
const-string/jumbo v2, "Tinker.ResDiffPatchInternal"
const-string/jumbo v4, "check final new resource file fail path:%s, entry count:%d, size:%d"
const/4 v5, 0x3
new-array v5, v5, [Ljava/lang/Object;
const/4 v6, 0x0
invoke-virtual {v11}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object v7
aput-object v7, v5, v6
const/4 v6, 0x1
invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v3
aput-object v3, v5, v6
const/4 v3, 0x2
invoke-virtual {v11}, Ljava/io/File;->length()J
move-result-wide v6
invoke-static {v6, v7}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v6
aput-object v6, v5, v3
invoke-static {v2, v4, v5}, Lcom/tencent/tinker/lib/util/TinkerLog;->i(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
invoke-static {v11}, Lcom/tencent/tinker/loader/shareutil/SharePatchFileUtil;->safeDeleteFile(Ljava/io/File;)Z
invoke-virtual {v10}, Lcom/tencent/tinker/lib/tinker/Tinker;->getPatchReporter()Lcom/tencent/tinker/lib/reporter/PatchReporter;
move-result-object v2
const-string/jumbo v3, "resources.apk"
move-object/from16 v0, p3
move/from16 v1, p4
invoke-interface {v2, v0, v11, v3, v1}, Lcom/tencent/tinker/lib/reporter/PatchReporter;->onPatchTypeExtractFail(Ljava/io/File;Ljava/io/File;Ljava/lang/String;I)V
const/4 v2, 0x0
goto/16 :goto_52
:cond_364
const-string/jumbo v2, "Tinker.ResDiffPatchInternal"
const-string/jumbo v4, "final new resource file:%s, entry count:%d, size:%d"
const/4 v5, 0x3
new-array v5, v5, [Ljava/lang/Object;
const/4 v6, 0x0
invoke-virtual {v11}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object v7
aput-object v7, v5, v6
const/4 v6, 0x1
invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v3
aput-object v3, v5, v6
const/4 v3, 0x2
invoke-virtual {v11}, Ljava/io/File;->length()J
move-result-wide v6
invoke-static {v6, v7}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v6
aput-object v6, v5, v3
invoke-static {v2, v4, v5}, Lcom/tencent/tinker/lib/util/TinkerLog;->i(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
:try_end_389
.catch Ljava/lang/Throwable; {:try_start_317 .. :try_end_389} :catch_12a
const/4 v2, 0x1
goto/16 :goto_52
:catchall_38c
move-exception v2
move-object v3, v6
move-object v6, v8
goto/16 :goto_11d
:catchall_391
move-exception v2
move-object v3, v6
move-object v6, v9
goto/16 :goto_11d
:catchall_396
move-exception v2
move-object v3, v6
move-object v4, v8
move-object v6, v9
goto/16 :goto_11d
:cond_39c
move v2, v3
goto/16 :goto_19a
.end method
.method private static patchResourceExtractViaResourceDiff(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Z
.registers 8
const/4 v0, 0x0
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string/jumbo v2, "/"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string/jumbo v2, "res"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string/jumbo 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
const/4 v2, 0x6
invoke-static {p0, v1, p2, p3, v2}, Lcom/tencent/tinker/lib/patch/ResDiffPatchInternal;->extractResourceDiffInternals(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/io/File;I)Z
move-result v1
if-nez v1, :cond_36
const-string/jumbo v1, "Tinker.ResDiffPatchInternal"
const-string/jumbo v2, "patch recover, extractDiffInternals fail"
new-array v3, v0, [Ljava/lang/Object;
invoke-static {v1, v2, v3}, Lcom/tencent/tinker/lib/util/TinkerLog;->w(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
:goto_35
return v0
:cond_36
const/4 v0, 0x1
goto :goto_35
.end method
.method protected static tryRecoverResourceFiles(Lcom/tencent/tinker/lib/tinker/Tinker;Lcom/tencent/tinker/loader/shareutil/ShareSecurityCheck;Landroid/content/Context;Ljava/lang/String;Ljava/io/File;)Z
.registers 14
const/4 v1, 0x1
const/4 v8, 0x0
invoke-virtual {p0}, Lcom/tencent/tinker/lib/tinker/Tinker;->isEnabledForResource()Z
move-result v0
if-nez v0, :cond_15
const-string/jumbo v0, "Tinker.ResDiffPatchInternal"
const-string/jumbo v2, "patch recover, resource is not enabled"
new-array v3, v8, [Ljava/lang/Object;
invoke-static {v0, v2, v3}, Lcom/tencent/tinker/lib/util/TinkerLog;->w(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
move v0, v1
:goto_14
return v0
:cond_15
invoke-virtual {p1}, Lcom/tencent/tinker/loader/shareutil/ShareSecurityCheck;->getMetaContentMap()Ljava/util/HashMap;
move-result-object v0
const-string/jumbo v2, "assets/res_meta.txt"
invoke-virtual {v0, v2}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/String;
if-eqz v0, :cond_2a
invoke-virtual {v0}, Ljava/lang/String;->length()I
move-result v2
if-nez v2, :cond_37
:cond_2a
const-string/jumbo v0, "Tinker.ResDiffPatchInternal"
const-string/jumbo v2, "patch recover, resource is not contained"
new-array v3, v8, [Ljava/lang/Object;
invoke-static {v0, v2, v3}, Lcom/tencent/tinker/lib/util/TinkerLog;->w(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
move v0, v1
goto :goto_14
:cond_37
invoke-static {}, Landroid/os/SystemClock;->elapsedRealtime()J
move-result-wide v2
invoke-static {p2, p3, v0, p4}, Lcom/tencent/tinker/lib/patch/ResDiffPatchInternal;->patchResourceExtractViaResourceDiff(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Z
move-result v0
invoke-static {}, Landroid/os/SystemClock;->elapsedRealtime()J
move-result-wide v4
sub-long v2, v4, v2
const-string/jumbo v4, "Tinker.ResDiffPatchInternal"
const-string/jumbo v5, "recover resource result:%b, cost:%d"
const/4 v6, 0x2
new-array v6, v6, [Ljava/lang/Object;
invoke-static {v0}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
move-result-object v7
aput-object v7, v6, v8
invoke-static {v2, v3}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v2
aput-object v2, v6, v1
invoke-static {v4, v5, v6}, Lcom/tencent/tinker/lib/util/TinkerLog;->i(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
goto :goto_14
.end method