TinkerLoader.smali
.class public Lcom/tencent/tinker/loader/TinkerLoader;
.super Lcom/tencent/tinker/loader/AbstractTinkerLoader;
# static fields
.field private static final TAG:Ljava/lang/String; = "Tinker.TinkerLoader"
# instance fields
.field private patchInfo:Lcom/tencent/tinker/loader/shareutil/SharePatchInfo;
# direct methods
.method public constructor <init>()V
.registers 1
invoke-direct {p0}, Lcom/tencent/tinker/loader/AbstractTinkerLoader;-><init>()V
return-void
.end method
.method private checkSafeModeCount(Lcom/tencent/tinker/loader/app/TinkerApplication;)Z
.registers 10
const/4 v1, 0x1
const/4 v0, 0x0
invoke-static {p1}, Lcom/tencent/tinker/loader/shareutil/ShareTinkerInternals;->getProcessName(Landroid/content/Context;)Ljava/lang/String;
move-result-object v2
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v4, "tinker_own_config_"
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-virtual {p1, v2, v0}, Lcom/tencent/tinker/loader/app/TinkerApplication;->getSharedPreferences(Ljava/lang/String;I)Landroid/content/SharedPreferences;
move-result-object v3
const-string/jumbo v4, "safe_mode_count"
invoke-interface {v3, v4, v0}, Landroid/content/SharedPreferences;->getInt(Ljava/lang/String;I)I
move-result v4
add-int/lit8 v4, v4, 0x1
const-string/jumbo v5, "Tinker.TinkerLoader"
new-instance v6, Ljava/lang/StringBuilder;
invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v7, "tinker safe mode preferName:"
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 v2
const-string/jumbo v6, " count:"
invoke-virtual {v2, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-static {v5, v2}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
const/4 v2, 0x3
if-lt v4, v2, :cond_5e
invoke-interface {v3}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor;
move-result-object v1
const-string/jumbo v2, "safe_mode_count"
invoke-interface {v1, v2, v0}, Landroid/content/SharedPreferences$Editor;->putInt(Ljava/lang/String;I)Landroid/content/SharedPreferences$Editor;
move-result-object v1
invoke-interface {v1}, Landroid/content/SharedPreferences$Editor;->commit()Z
:goto_5d
return v0
:cond_5e
invoke-virtual {p1, v1}, Lcom/tencent/tinker/loader/app/TinkerApplication;->setUseSafeMode(Z)V
invoke-interface {v3}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor;
move-result-object v0
const-string/jumbo v2, "safe_mode_count"
invoke-interface {v0, v2, v4}, Landroid/content/SharedPreferences$Editor;->putInt(Ljava/lang/String;I)Landroid/content/SharedPreferences$Editor;
move-result-object v0
invoke-interface {v0}, Landroid/content/SharedPreferences$Editor;->commit()Z
move v0, v1
goto :goto_5d
.end method
.method private tryLoadPatchFilesInternal(Lcom/tencent/tinker/loader/app/TinkerApplication;Landroid/content/Intent;)V
.registers 19
invoke-virtual/range {p1 .. p1}, Lcom/tencent/tinker/loader/app/TinkerApplication;->getTinkerFlags()I
move-result v6
invoke-static {v6}, Lcom/tencent/tinker/loader/shareutil/ShareTinkerInternals;->isTinkerEnabled(I)Z
move-result v2
if-nez v2, :cond_1a
const-string/jumbo v2, "Tinker.TinkerLoader"
const-string/jumbo v3, "tryLoadPatchFiles: tinker is disable, just return"
invoke-static {v2, v3}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
const/4 v2, -0x1
move-object/from16 v0, p2
invoke-static {v0, v2}, Lcom/tencent/tinker/loader/shareutil/ShareIntentUtil;->setIntentReturnCode(Landroid/content/Intent;I)V
:goto_19
return-void
:cond_1a
invoke-static/range {p1 .. p1}, Lcom/tencent/tinker/loader/shareutil/ShareTinkerInternals;->isInPatchProcess(Landroid/content/Context;)Z
move-result v2
if-eqz v2, :cond_30
const-string/jumbo v2, "Tinker.TinkerLoader"
const-string/jumbo v3, "tryLoadPatchFiles: we don\'t load patch with :patch process itself, just return"
invoke-static {v2, v3}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
const/4 v2, -0x1
move-object/from16 v0, p2
invoke-static {v0, v2}, Lcom/tencent/tinker/loader/shareutil/ShareIntentUtil;->setIntentReturnCode(Landroid/content/Intent;I)V
goto :goto_19
:cond_30
invoke-static/range {p1 .. p1}, Lcom/tencent/tinker/loader/shareutil/SharePatchFileUtil;->getPatchDirectory(Landroid/content/Context;)Ljava/io/File;
move-result-object v2
if-nez v2, :cond_46
const-string/jumbo v2, "Tinker.TinkerLoader"
const-string/jumbo v3, "tryLoadPatchFiles:getPatchDirectory == null"
invoke-static {v2, v3}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
const/4 v2, -0x2
move-object/from16 v0, p2
invoke-static {v0, v2}, Lcom/tencent/tinker/loader/shareutil/ShareIntentUtil;->setIntentReturnCode(Landroid/content/Intent;I)V
goto :goto_19
:cond_46
invoke-virtual {v2}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object v7
invoke-virtual {v2}, Ljava/io/File;->exists()Z
move-result v2
if-nez v2, :cond_71
const-string/jumbo v2, "Tinker.TinkerLoader"
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v4, "tryLoadPatchFiles:patch dir not exist:"
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3, v7}, 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
invoke-static {v2, v3}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
const/4 v2, -0x2
move-object/from16 v0, p2
invoke-static {v0, v2}, Lcom/tencent/tinker/loader/shareutil/ShareIntentUtil;->setIntentReturnCode(Landroid/content/Intent;I)V
goto :goto_19
:cond_71
invoke-static {v7}, Lcom/tencent/tinker/loader/shareutil/SharePatchFileUtil;->getPatchInfoFile(Ljava/lang/String;)Ljava/io/File;
move-result-object v8
invoke-virtual {v8}, Ljava/io/File;->exists()Z
move-result v2
if-nez v2, :cond_a1
const-string/jumbo v2, "Tinker.TinkerLoader"
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v4, "tryLoadPatchFiles:patch info not exist:"
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v8}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object v4
invoke-virtual {v3, v4}, 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
invoke-static {v2, v3}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
const/4 v2, -0x3
move-object/from16 v0, p2
invoke-static {v0, v2}, Lcom/tencent/tinker/loader/shareutil/ShareIntentUtil;->setIntentReturnCode(Landroid/content/Intent;I)V
goto/16 :goto_19
:cond_a1
invoke-static {v7}, Lcom/tencent/tinker/loader/shareutil/SharePatchFileUtil;->getPatchInfoLockFile(Ljava/lang/String;)Ljava/io/File;
move-result-object v9
invoke-static {v8, v9}, Lcom/tencent/tinker/loader/shareutil/SharePatchInfo;->readAndCheckPropertyWithLock(Ljava/io/File;Ljava/io/File;)Lcom/tencent/tinker/loader/shareutil/SharePatchInfo;
move-result-object v2
move-object/from16 v0, p0
iput-object v2, v0, Lcom/tencent/tinker/loader/TinkerLoader;->patchInfo:Lcom/tencent/tinker/loader/shareutil/SharePatchInfo;
move-object/from16 v0, p0
iget-object v2, v0, Lcom/tencent/tinker/loader/TinkerLoader;->patchInfo:Lcom/tencent/tinker/loader/shareutil/SharePatchInfo;
if-nez v2, :cond_bb
const/4 v2, -0x4
move-object/from16 v0, p2
invoke-static {v0, v2}, Lcom/tencent/tinker/loader/shareutil/ShareIntentUtil;->setIntentReturnCode(Landroid/content/Intent;I)V
goto/16 :goto_19
:cond_bb
move-object/from16 v0, p0
iget-object v2, v0, Lcom/tencent/tinker/loader/TinkerLoader;->patchInfo:Lcom/tencent/tinker/loader/shareutil/SharePatchInfo;
iget-object v5, v2, Lcom/tencent/tinker/loader/shareutil/SharePatchInfo;->oldVersion:Ljava/lang/String;
move-object/from16 v0, p0
iget-object v2, v0, Lcom/tencent/tinker/loader/TinkerLoader;->patchInfo:Lcom/tencent/tinker/loader/shareutil/SharePatchInfo;
iget-object v4, v2, Lcom/tencent/tinker/loader/shareutil/SharePatchInfo;->newVersion:Ljava/lang/String;
move-object/from16 v0, p0
iget-object v2, v0, Lcom/tencent/tinker/loader/TinkerLoader;->patchInfo:Lcom/tencent/tinker/loader/shareutil/SharePatchInfo;
iget-object v10, v2, Lcom/tencent/tinker/loader/shareutil/SharePatchInfo;->oatDir:Ljava/lang/String;
if-eqz v5, :cond_d3
if-eqz v4, :cond_d3
if-nez v10, :cond_e4
:cond_d3
const-string/jumbo v2, "Tinker.TinkerLoader"
const-string/jumbo v3, "tryLoadPatchFiles:onPatchInfoCorrupted"
invoke-static {v2, v3}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
const/4 v2, -0x4
move-object/from16 v0, p2
invoke-static {v0, v2}, Lcom/tencent/tinker/loader/shareutil/ShareIntentUtil;->setIntentReturnCode(Landroid/content/Intent;I)V
goto/16 :goto_19
:cond_e4
const-string/jumbo v2, "intent_patch_old_version"
move-object/from16 v0, p2
invoke-virtual {v0, v2, v5}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
const-string/jumbo v2, "intent_patch_new_version"
move-object/from16 v0, p2
invoke-virtual {v0, v2, v4}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
invoke-static/range {p1 .. p1}, Lcom/tencent/tinker/loader/shareutil/ShareTinkerInternals;->isInMainProcess(Landroid/content/Context;)Z
move-result v11
invoke-virtual {v5, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-nez v2, :cond_134
const/4 v2, 0x1
:goto_ff
const-string/jumbo v3, "changing"
invoke-virtual {v10, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-eqz v3, :cond_136
if-eqz v11, :cond_136
const/4 v3, 0x1
:goto_10b
move-object/from16 v0, p1
invoke-static {v0, v10}, Lcom/tencent/tinker/loader/shareutil/ShareTinkerInternals;->getCurrentOatMode(Landroid/content/Context;Ljava/lang/String;)Ljava/lang/String;
move-result-object v10
const-string/jumbo v12, "intent_patch_oat_dir"
move-object/from16 v0, p2
invoke-virtual {v0, v12, v10}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
if-eqz v2, :cond_385
if-eqz v11, :cond_385
:goto_11d
invoke-static {v4}, Lcom/tencent/tinker/loader/shareutil/ShareTinkerInternals;->isNullOrNil(Ljava/lang/String;)Z
move-result v5
if-eqz v5, :cond_138
const-string/jumbo v2, "Tinker.TinkerLoader"
const-string/jumbo v3, "tryLoadPatchFiles:version is blank, wait main process to restart"
invoke-static {v2, v3}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
const/4 v2, -0x5
move-object/from16 v0, p2
invoke-static {v0, v2}, Lcom/tencent/tinker/loader/shareutil/ShareIntentUtil;->setIntentReturnCode(Landroid/content/Intent;I)V
goto/16 :goto_19
:cond_134
const/4 v2, 0x0
goto :goto_ff
:cond_136
const/4 v3, 0x0
goto :goto_10b
:cond_138
invoke-static {v4}, Lcom/tencent/tinker/loader/shareutil/SharePatchFileUtil;->getPatchVersionDirectory(Ljava/lang/String;)Ljava/lang/String;
move-result-object v5
if-nez v5, :cond_14f
const-string/jumbo v2, "Tinker.TinkerLoader"
const-string/jumbo v3, "tryLoadPatchFiles:patchName is null"
invoke-static {v2, v3}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
const/4 v2, -0x6
move-object/from16 v0, p2
invoke-static {v0, v2}, Lcom/tencent/tinker/loader/shareutil/ShareIntentUtil;->setIntentReturnCode(Landroid/content/Intent;I)V
goto/16 :goto_19
:cond_14f
new-instance v12, Ljava/lang/StringBuilder;
invoke-direct {v12}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v12, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v7
const-string/jumbo v12, "/"
invoke-virtual {v7, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v7
invoke-virtual {v7, v5}, 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 v7
new-instance v12, Ljava/io/File;
invoke-direct {v12, v7}, Ljava/io/File;-><init>(Ljava/lang/String;)V
invoke-virtual {v12}, Ljava/io/File;->exists()Z
move-result v5
if-nez v5, :cond_183
const-string/jumbo v2, "Tinker.TinkerLoader"
const-string/jumbo v3, "tryLoadPatchFiles:onPatchVersionDirectoryNotFound"
invoke-static {v2, v3}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
const/4 v2, -0x6
move-object/from16 v0, p2
invoke-static {v0, v2}, Lcom/tencent/tinker/loader/shareutil/ShareIntentUtil;->setIntentReturnCode(Landroid/content/Intent;I)V
goto/16 :goto_19
:cond_183
invoke-static {v4}, Lcom/tencent/tinker/loader/shareutil/SharePatchFileUtil;->getPatchVersionFile(Ljava/lang/String;)Ljava/lang/String;
move-result-object v13
if-eqz v13, :cond_1a9
new-instance v5, Ljava/io/File;
invoke-virtual {v12}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object v12
invoke-direct {v5, v12, v13}, Ljava/io/File;-><init>(Ljava/lang/String;Ljava/lang/String;)V
:goto_192
invoke-static {v5}, Lcom/tencent/tinker/loader/shareutil/SharePatchFileUtil;->isLegalFile(Ljava/io/File;)Z
move-result v12
if-nez v12, :cond_1ab
const-string/jumbo v2, "Tinker.TinkerLoader"
const-string/jumbo v3, "tryLoadPatchFiles:onPatchVersionFileNotFound"
invoke-static {v2, v3}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
const/4 v2, -0x7
move-object/from16 v0, p2
invoke-static {v0, v2}, Lcom/tencent/tinker/loader/shareutil/ShareIntentUtil;->setIntentReturnCode(Landroid/content/Intent;I)V
goto/16 :goto_19
:cond_1a9
const/4 v5, 0x0
goto :goto_192
:cond_1ab
new-instance v12, Lcom/tencent/tinker/loader/shareutil/ShareSecurityCheck;
move-object/from16 v0, p1
invoke-direct {v12, v0}, Lcom/tencent/tinker/loader/shareutil/ShareSecurityCheck;-><init>(Landroid/content/Context;)V
move-object/from16 v0, p1
invoke-static {v0, v6, v5, v12}, Lcom/tencent/tinker/loader/shareutil/ShareTinkerInternals;->checkTinkerPackage(Landroid/content/Context;ILjava/io/File;Lcom/tencent/tinker/loader/shareutil/ShareSecurityCheck;)I
move-result v5
if-eqz v5, :cond_1d3
const-string/jumbo v2, "Tinker.TinkerLoader"
const-string/jumbo v3, "tryLoadPatchFiles:checkTinkerPackage"
invoke-static {v2, v3}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
const-string/jumbo v2, "intent_patch_package_patch_check"
move-object/from16 v0, p2
invoke-virtual {v0, v2, v5}, Landroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent;
const/4 v2, -0x8
move-object/from16 v0, p2
invoke-static {v0, v2}, Lcom/tencent/tinker/loader/shareutil/ShareIntentUtil;->setIntentReturnCode(Landroid/content/Intent;I)V
goto/16 :goto_19
:cond_1d3
const-string/jumbo v5, "intent_patch_package_config"
invoke-virtual {v12}, Lcom/tencent/tinker/loader/shareutil/ShareSecurityCheck;->getPackagePropertiesIfPresent()Ljava/util/HashMap;
move-result-object v13
move-object/from16 v0, p2
invoke-virtual {v0, v5, v13}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/io/Serializable;)Landroid/content/Intent;
invoke-static {v6}, Lcom/tencent/tinker/loader/shareutil/ShareTinkerInternals;->isTinkerEnabledForDex(I)Z
move-result v13
if-eqz v13, :cond_1f8
move-object/from16 v0, p2
invoke-static {v7, v12, v10, v0}, Lcom/tencent/tinker/loader/TinkerDexLoader;->checkComplete(Ljava/lang/String;Lcom/tencent/tinker/loader/shareutil/ShareSecurityCheck;Ljava/lang/String;Landroid/content/Intent;)Z
move-result v5
if-nez v5, :cond_1f8
const-string/jumbo v2, "Tinker.TinkerLoader"
const-string/jumbo v3, "tryLoadPatchFiles:dex check fail"
invoke-static {v2, v3}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
goto/16 :goto_19
:cond_1f8
invoke-static {v6}, Lcom/tencent/tinker/loader/shareutil/ShareTinkerInternals;->isTinkerEnabledForNativeLib(I)Z
move-result v5
if-eqz v5, :cond_211
move-object/from16 v0, p2
invoke-static {v7, v12, v0}, Lcom/tencent/tinker/loader/TinkerSoLoader;->checkComplete(Ljava/lang/String;Lcom/tencent/tinker/loader/shareutil/ShareSecurityCheck;Landroid/content/Intent;)Z
move-result v5
if-nez v5, :cond_211
const-string/jumbo v2, "Tinker.TinkerLoader"
const-string/jumbo v3, "tryLoadPatchFiles:native lib check fail"
invoke-static {v2, v3}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
goto/16 :goto_19
:cond_211
invoke-static {v6}, Lcom/tencent/tinker/loader/shareutil/ShareTinkerInternals;->isTinkerEnabledForResource(I)Z
move-result v6
const-string/jumbo v5, "Tinker.TinkerLoader"
new-instance v14, Ljava/lang/StringBuilder;
invoke-direct {v14}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v15, "tryLoadPatchFiles:isEnabledForResource:"
invoke-virtual {v14, v15}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v14
invoke-virtual {v14, v6}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;
move-result-object v14
invoke-virtual {v14}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v14
invoke-static {v5, v14}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
if-eqz v6, :cond_246
move-object/from16 v0, p1
move-object/from16 v1, p2
invoke-static {v0, v7, v12, v1}, Lcom/tencent/tinker/loader/TinkerResourceLoader;->checkComplete(Landroid/content/Context;Ljava/lang/String;Lcom/tencent/tinker/loader/shareutil/ShareSecurityCheck;Landroid/content/Intent;)Z
move-result v5
if-nez v5, :cond_246
const-string/jumbo v2, "Tinker.TinkerLoader"
const-string/jumbo v3, "tryLoadPatchFiles:resource check fail"
invoke-static {v2, v3}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
goto/16 :goto_19
:cond_246
invoke-static {}, Lcom/tencent/tinker/loader/shareutil/ShareTinkerInternals;->isVmArt()Z
move-result v5
if-eqz v5, :cond_29b
move-object/from16 v0, p0
iget-object v5, v0, Lcom/tencent/tinker/loader/TinkerLoader;->patchInfo:Lcom/tencent/tinker/loader/shareutil/SharePatchInfo;
iget-object v5, v5, Lcom/tencent/tinker/loader/shareutil/SharePatchInfo;->fingerPrint:Ljava/lang/String;
invoke-static {v5}, Lcom/tencent/tinker/loader/shareutil/ShareTinkerInternals;->isSystemOTA(Ljava/lang/String;)Z
move-result v5
if-eqz v5, :cond_29b
sget v5, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v14, 0x15
if-lt v5, v14, :cond_29b
invoke-static {}, Lcom/tencent/tinker/loader/shareutil/ShareTinkerInternals;->isAfterAndroidO()Z
move-result v5
if-nez v5, :cond_29b
const/4 v5, 0x1
:goto_265
const-string/jumbo v14, "intent_patch_system_ota"
move-object/from16 v0, p2
invoke-virtual {v0, v14, v5}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Z)Landroid/content/Intent;
if-eqz v11, :cond_271
if-nez v2, :cond_273
:cond_271
if-eqz v3, :cond_2d2
:cond_273
move-object/from16 v0, p0
iget-object v2, v0, Lcom/tencent/tinker/loader/TinkerLoader;->patchInfo:Lcom/tencent/tinker/loader/shareutil/SharePatchInfo;
iput-object v4, v2, Lcom/tencent/tinker/loader/shareutil/SharePatchInfo;->oldVersion:Ljava/lang/String;
move-object/from16 v0, p0
iget-object v2, v0, Lcom/tencent/tinker/loader/TinkerLoader;->patchInfo:Lcom/tencent/tinker/loader/shareutil/SharePatchInfo;
iput-object v10, v2, Lcom/tencent/tinker/loader/shareutil/SharePatchInfo;->oatDir:Ljava/lang/String;
move-object/from16 v0, p0
iget-object v2, v0, Lcom/tencent/tinker/loader/TinkerLoader;->patchInfo:Lcom/tencent/tinker/loader/shareutil/SharePatchInfo;
invoke-static {v8, v2, v9}, Lcom/tencent/tinker/loader/shareutil/SharePatchInfo;->rewritePatchInfoFileWithLock(Ljava/io/File;Lcom/tencent/tinker/loader/shareutil/SharePatchInfo;Ljava/io/File;)Z
move-result v2
if-nez v2, :cond_29d
const/16 v2, -0x13
move-object/from16 v0, p2
invoke-static {v0, v2}, Lcom/tencent/tinker/loader/shareutil/ShareIntentUtil;->setIntentReturnCode(Landroid/content/Intent;I)V
const-string/jumbo v2, "Tinker.TinkerLoader"
const-string/jumbo v3, "tryLoadPatchFiles:onReWritePatchInfoCorrupted"
invoke-static {v2, v3}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
goto/16 :goto_19
:cond_29b
const/4 v5, 0x0
goto :goto_265
:cond_29d
const-string/jumbo v2, "Tinker.TinkerLoader"
const-string/jumbo v4, "tryLoadPatchFiles:success to rewrite patch info, kill other process."
invoke-static {v2, v4}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
invoke-static/range {p1 .. p1}, Lcom/tencent/tinker/loader/shareutil/ShareTinkerInternals;->killProcessExceptMain(Landroid/content/Context;)V
if-eqz v3, :cond_2d2
const-string/jumbo v2, "Tinker.TinkerLoader"
const-string/jumbo v3, "tryLoadPatchFiles:oatModeChanged, try to delete interpret optimize files"
invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
const-string/jumbo v3, "/"
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
const-string/jumbo v3, "interpet"
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-static {v2}, Lcom/tencent/tinker/loader/shareutil/SharePatchFileUtil;->deleteDir(Ljava/lang/String;)Z
:cond_2d2
invoke-direct/range {p0 .. p1}, Lcom/tencent/tinker/loader/TinkerLoader;->checkSafeModeCount(Lcom/tencent/tinker/loader/app/TinkerApplication;)Z
move-result v2
if-nez v2, :cond_2fa
const-string/jumbo v2, "intent_patch_exception"
new-instance v3, Lcom/tencent/tinker/loader/TinkerRuntimeException;
const-string/jumbo v4, "checkSafeModeCount fail"
invoke-direct {v3, v4}, Lcom/tencent/tinker/loader/TinkerRuntimeException;-><init>(Ljava/lang/String;)V
move-object/from16 v0, p2
invoke-virtual {v0, v2, v3}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/io/Serializable;)Landroid/content/Intent;
const/16 v2, -0x19
move-object/from16 v0, p2
invoke-static {v0, v2}, Lcom/tencent/tinker/loader/shareutil/ShareIntentUtil;->setIntentReturnCode(Landroid/content/Intent;I)V
const-string/jumbo v2, "Tinker.TinkerLoader"
const-string/jumbo v3, "tryLoadPatchFiles:checkSafeModeCount fail"
invoke-static {v2, v3}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
goto/16 :goto_19
:cond_2fa
if-eqz v13, :cond_354
move-object/from16 v0, p1
move-object/from16 v1, p2
invoke-static {v0, v7, v10, v1, v5}, Lcom/tencent/tinker/loader/TinkerDexLoader;->loadTinkerJars(Lcom/tencent/tinker/loader/app/TinkerApplication;Ljava/lang/String;Ljava/lang/String;Landroid/content/Intent;Z)Z
move-result v3
if-eqz v5, :cond_347
move-object/from16 v0, p0
iget-object v2, v0, Lcom/tencent/tinker/loader/TinkerLoader;->patchInfo:Lcom/tencent/tinker/loader/shareutil/SharePatchInfo;
sget-object v4, Landroid/os/Build;->FINGERPRINT:Ljava/lang/String;
iput-object v4, v2, Lcom/tencent/tinker/loader/shareutil/SharePatchInfo;->fingerPrint:Ljava/lang/String;
move-object/from16 v0, p0
iget-object v4, v0, Lcom/tencent/tinker/loader/TinkerLoader;->patchInfo:Lcom/tencent/tinker/loader/shareutil/SharePatchInfo;
if-eqz v3, :cond_335
const-string/jumbo v2, "interpet"
:goto_317
iput-object v2, v4, Lcom/tencent/tinker/loader/shareutil/SharePatchInfo;->oatDir:Ljava/lang/String;
move-object/from16 v0, p0
iget-object v2, v0, Lcom/tencent/tinker/loader/TinkerLoader;->patchInfo:Lcom/tencent/tinker/loader/shareutil/SharePatchInfo;
invoke-static {v8, v2, v9}, Lcom/tencent/tinker/loader/shareutil/SharePatchInfo;->rewritePatchInfoFileWithLock(Ljava/io/File;Lcom/tencent/tinker/loader/shareutil/SharePatchInfo;Ljava/io/File;)Z
move-result v2
if-nez v2, :cond_339
const/16 v2, -0x13
move-object/from16 v0, p2
invoke-static {v0, v2}, Lcom/tencent/tinker/loader/shareutil/ShareIntentUtil;->setIntentReturnCode(Landroid/content/Intent;I)V
const-string/jumbo v2, "Tinker.TinkerLoader"
const-string/jumbo v3, "tryLoadPatchFiles:onReWritePatchInfoCorrupted"
invoke-static {v2, v3}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
goto/16 :goto_19
:cond_335
const-string/jumbo v2, "odex"
goto :goto_317
:cond_339
const-string/jumbo v2, "intent_patch_oat_dir"
move-object/from16 v0, p0
iget-object v4, v0, Lcom/tencent/tinker/loader/TinkerLoader;->patchInfo:Lcom/tencent/tinker/loader/shareutil/SharePatchInfo;
iget-object v4, v4, Lcom/tencent/tinker/loader/shareutil/SharePatchInfo;->oatDir:Ljava/lang/String;
move-object/from16 v0, p2
invoke-virtual {v0, v2, v4}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
:cond_347
if-nez v3, :cond_354
const-string/jumbo v2, "Tinker.TinkerLoader"
const-string/jumbo v3, "tryLoadPatchFiles:onPatchLoadDexesFail"
invoke-static {v2, v3}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
goto/16 :goto_19
:cond_354
if-eqz v6, :cond_36b
move-object/from16 v0, p1
move-object/from16 v1, p2
invoke-static {v0, v7, v1}, Lcom/tencent/tinker/loader/TinkerResourceLoader;->loadTinkerResources(Lcom/tencent/tinker/loader/app/TinkerApplication;Ljava/lang/String;Landroid/content/Intent;)Z
move-result v2
if-nez v2, :cond_36b
const-string/jumbo v2, "Tinker.TinkerLoader"
const-string/jumbo v3, "tryLoadPatchFiles:onPatchLoadResourcesFail"
invoke-static {v2, v3}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
goto/16 :goto_19
:cond_36b
if-eqz v13, :cond_374
if-eqz v6, :cond_374
move-object/from16 v0, p1
invoke-static {v0, v12}, Lcom/tencent/tinker/loader/hotplug/ComponentHotplug;->install(Lcom/tencent/tinker/loader/app/TinkerApplication;Lcom/tencent/tinker/loader/shareutil/ShareSecurityCheck;)V
:cond_374
const/4 v2, 0x0
move-object/from16 v0, p2
invoke-static {v0, v2}, Lcom/tencent/tinker/loader/shareutil/ShareIntentUtil;->setIntentReturnCode(Landroid/content/Intent;I)V
const-string/jumbo v2, "Tinker.TinkerLoader"
const-string/jumbo v3, "tryLoadPatchFiles: load end, ok!"
invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
goto/16 :goto_19
:cond_385
move-object v4, v5
goto/16 :goto_11d
.end method
# virtual methods
.method public tryLoad(Lcom/tencent/tinker/loader/app/TinkerApplication;)Landroid/content/Intent;
.registers 8
new-instance v0, Landroid/content/Intent;
invoke-direct {v0}, Landroid/content/Intent;-><init>()V
invoke-static {}, Landroid/os/SystemClock;->elapsedRealtime()J
move-result-wide v2
invoke-direct {p0, p1, v0}, Lcom/tencent/tinker/loader/TinkerLoader;->tryLoadPatchFilesInternal(Lcom/tencent/tinker/loader/app/TinkerApplication;Landroid/content/Intent;)V
invoke-static {}, Landroid/os/SystemClock;->elapsedRealtime()J
move-result-wide v4
sub-long v2, v4, v2
invoke-static {v0, v2, v3}, Lcom/tencent/tinker/loader/shareutil/ShareIntentUtil;->setIntentPatchCostTime(Landroid/content/Intent;J)V
return-object v0
.end method