LibLoadUtils.smali
.class public Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;
.super Ljava/lang/Object;
.source "LibLoadUtils.java"
# static fields
.field private static DEBUG:Z
.field private static ZIP_LIB_PATH:Ljava/lang/String;
.field private static mMutexForSoFileSync:Ljava/lang/Object;
# instance fields
.field private mApkPath:Ljava/lang/String;
.field private mAppInstance:Landroid/app/Application;
.field private mLibFullPath:Ljava/lang/String;
.field private mLibName:Ljava/lang/String;
.field private mLibPath:Ljava/lang/String;
.field private mNowVersion:Ljava/lang/String;
.field private mSoName:Ljava/lang/String;
.field private mSoPathArray:[Ljava/lang/String;
.field private mSystemLibPath:Ljava/lang/String;
.field private mZipFile:Ljava/util/zip/ZipFile;
# direct methods
.method static constructor <clinit>()V
.registers 1
.prologue
.line 32
const/4 v0, 0x0
sput-boolean v0, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->DEBUG:Z
.line 34
const-string v0, "lib/armeabi/"
sput-object v0, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->ZIP_LIB_PATH:Ljava/lang/String;
.line 36
new-instance v0, Ljava/lang/Object;
invoke-direct {v0}, Ljava/lang/Object;-><init>()V
sput-object v0, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->mMutexForSoFileSync:Ljava/lang/Object;
return-void
.end method
.method public constructor <init>(Ljava/lang/String;)V
.registers 6
.prologue
const/4 v3, 0x0
.line 50
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 39
iput-object v3, p0, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->mLibFullPath:Ljava/lang/String;
.line 42
const/4 v0, 0x1
new-array v0, v0, [Ljava/lang/String;
const/4 v1, 0x0
const-string v2, "libkcmsyscore.so"
aput-object v2, v0, v1
iput-object v0, p0, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->mSoPathArray:[Ljava/lang/String;
.line 48
iput-object v3, p0, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->mZipFile:Ljava/util/zip/ZipFile;
.line 51
iput-object p1, p0, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->mLibName:Ljava/lang/String;
.line 52
invoke-static {}, Lcom/cleanmaster/hpsharelib/base/util/HostHelper;->getApplication()Landroid/app/Application;
move-result-object v0
iput-object v0, p0, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->mAppInstance:Landroid/app/Application;
.line 53
iget-object v0, p0, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->mAppInstance:Landroid/app/Application;
invoke-virtual {v0}, Landroid/app/Application;->getPackageResourcePath()Ljava/lang/String;
move-result-object v0
iput-object v0, p0, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->mApkPath:Ljava/lang/String;
.line 55
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
iget-object v1, p0, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->mAppInstance:Landroid/app/Application;
invoke-virtual {v1}, Landroid/app/Application;->getApplicationInfo()Landroid/content/pm/ApplicationInfo;
move-result-object v1
iget-object v1, v1, Landroid/content/pm/ApplicationInfo;->dataDir:Ljava/lang/String;
invoke-static {v1}, Lcom/cleanmaster/hpsharelib/base/util/io/FileUtils;->addSlash(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, "files/lib/"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
iput-object v0, p0, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->mLibPath:Ljava/lang/String;
.line 57
invoke-static {p1}, Ljava/lang/System;->mapLibraryName(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
iput-object v0, p0, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->mSoName:Ljava/lang/String;
.line 59
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
iget-object v1, p0, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->mAppInstance:Landroid/app/Application;
invoke-virtual {v1}, Landroid/app/Application;->getApplicationInfo()Landroid/content/pm/ApplicationInfo;
move-result-object v1
iget-object v1, v1, Landroid/content/pm/ApplicationInfo;->dataDir:Ljava/lang/String;
invoke-static {v1}, Lcom/cleanmaster/hpsharelib/base/util/io/FileUtils;->addSlash(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, "lib/"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
iget-object v1, p0, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->mSoName:Ljava/lang/String;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
iput-object v0, p0, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->mSystemLibPath:Ljava/lang/String;
.line 61
new-instance v0, Ljava/io/File;
iget-object v1, p0, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->mLibPath:Ljava/lang/String;
invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
.line 62
invoke-virtual {v0}, Ljava/io/File;->mkdirs()Z
.line 63
return-void
.end method
.method private checkVersion()Z
.registers 7
.prologue
const/4 v0, 0x0
.line 317
iget-object v1, p0, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->mAppInstance:Landroid/app/Application;
invoke-virtual {v1}, Landroid/app/Application;->getPackageManager()Landroid/content/pm/PackageManager;
move-result-object v1
.line 320
:try_start_7
iget-object v2, p0, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->mAppInstance:Landroid/app/Application;
invoke-virtual {v2}, Landroid/app/Application;->getPackageName()Ljava/lang/String;
move-result-object v2
const/4 v3, 0x0
invoke-virtual {v1, v2, v3}, Landroid/content/pm/PackageManager;->getPackageInfo(Ljava/lang/String;I)Landroid/content/pm/PackageInfo;
move-result-object v1
.line 321
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
iget v1, v1, Landroid/content/pm/PackageInfo;->versionCode:I
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v1
const-string 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
.line 322
iput-object v1, p0, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->mNowVersion:Ljava/lang/String;
.line 323
invoke-static {}, Lcom/cleanmaster/hpsharelib/configmanager/ServiceConfigManager;->getInstance()Lcom/cleanmaster/hpsharelib/configmanager/ServiceConfigManager;
move-result-object v2
invoke-virtual {v2}, Lcom/cleanmaster/hpsharelib/configmanager/ServiceConfigManager;->getSoVersion()Ljava/lang/String;
move-result-object v2
.line 324
sget-boolean v3, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->DEBUG:Z
if-eqz v3, :cond_51
.line 325
const-string v3, ""
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
const-string v5, "check_version"
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v5
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;
move-result-object v4
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v4
invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
.line 327
:cond_51
invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
:try_end_54
.catch Ljava/lang/Exception; {:try_start_7 .. :try_end_54} :catch_56
move-result v0
.line 329
:goto_55
return v0
.line 328
:catch_56
move-exception v1
goto :goto_55
.end method
.method private getLibPath(Ljava/lang/String;)Ljava/lang/String;
.registers 4
.prologue
.line 232
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
iget-object v1, p0, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->mLibPath:Ljava/lang/String;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method private getZipPath(Ljava/lang/String;)Ljava/lang/String;
.registers 4
.prologue
.line 223
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
sget-object v1, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->ZIP_LIB_PATH:Ljava/lang/String;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method private loadFromSysCopyLibPath()Z
.registers 2
.prologue
.line 212
iget-object v0, p0, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->mSystemLibPath:Ljava/lang/String;
invoke-static {v0}, Ljava/lang/System;->load(Ljava/lang/String;)V
.line 213
iget-object v0, p0, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->mSystemLibPath:Ljava/lang/String;
iput-object v0, p0, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->mLibFullPath:Ljava/lang/String;
.line 214
const/4 v0, 0x1
return v0
.end method
.method private startCopy()V
.registers 7
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/util/zip/ZipException;,
Ljava/io/IOException;
}
.end annotation
.prologue
.line 288
iget-object v0, p0, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->mZipFile:Ljava/util/zip/ZipFile;
if-nez v0, :cond_12
.line 289
new-instance v0, Ljava/util/zip/ZipFile;
new-instance v1, Ljava/io/File;
iget-object v2, p0, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->mApkPath:Ljava/lang/String;
invoke-direct {v1, v2}, Ljava/io/File;-><init>(Ljava/lang/String;)V
invoke-direct {v0, v1}, Ljava/util/zip/ZipFile;-><init>(Ljava/io/File;)V
iput-object v0, p0, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->mZipFile:Ljava/util/zip/ZipFile;
.line 291
:cond_12
new-instance v0, Ljava/io/File;
iget-object v1, p0, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->mSoName:Ljava/lang/String;
invoke-direct {p0, v1}, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->getLibPath(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
.line 292
invoke-virtual {v0}, Ljava/io/File;->exists()Z
move-result v1
if-eqz v1, :cond_26
.line 293
invoke-virtual {v0}, Ljava/io/File;->delete()Z
.line 294
:cond_26
const/16 v1, 0x1000
new-array v1, v1, [B
.line 296
iget-object v2, p0, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->mZipFile:Ljava/util/zip/ZipFile;
iget-object v3, p0, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->mSoName:Ljava/lang/String;
invoke-direct {p0, v3}, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->getZipPath(Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/util/zip/ZipFile;->getEntry(Ljava/lang/String;)Ljava/util/zip/ZipEntry;
move-result-object v2
.line 297
if-nez v2, :cond_39
.line 310
:cond_38
:goto_38
return-void
.line 300
:cond_39
new-instance v3, Ljava/io/FileOutputStream;
invoke-direct {v3, v0}, Ljava/io/FileOutputStream;-><init>(Ljava/io/File;)V
.line 301
iget-object v4, p0, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->mZipFile:Ljava/util/zip/ZipFile;
invoke-virtual {v4, v2}, Ljava/util/zip/ZipFile;->getInputStream(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream;
move-result-object v2
.line 302
:goto_44
invoke-virtual {v2, v1}, Ljava/io/InputStream;->read([B)I
move-result v4
if-lez v4, :cond_4f
.line 303
const/4 v5, 0x0
invoke-virtual {v3, v1, v5, v4}, Ljava/io/OutputStream;->write([BII)V
goto :goto_44
.line 305
:cond_4f
invoke-virtual {v2}, Ljava/io/InputStream;->close()V
.line 306
invoke-virtual {v3}, Ljava/io/OutputStream;->close()V
.line 307
sget-boolean v1, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->DEBUG:Z
if-eqz v1, :cond_38
.line 308
const-string v1, ""
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "copy_so"
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v0}, Ljava/io/File;->getPath()Ljava/lang/String;
move-result-object v0
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v1, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
goto :goto_38
.end method
.method private syncCopySo()V
.registers 13
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/util/zip/ZipException;,
Ljava/io/IOException;
}
.end annotation
.prologue
const/4 v2, 0x0
.line 241
new-instance v5, Ljava/util/zip/ZipFile;
new-instance v0, Ljava/io/File;
iget-object v1, p0, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->mApkPath:Ljava/lang/String;
invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
invoke-direct {v5, v0}, Ljava/util/zip/ZipFile;-><init>(Ljava/io/File;)V
.line 242
iget-object v6, p0, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->mSoPathArray:[Ljava/lang/String;
array-length v7, v6
const/4 v0, 0x0
move v4, v0
:goto_12
if-ge v4, v7, :cond_85
aget-object v8, v6, v4
.line 243
invoke-direct {p0, v8}, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->getZipPath(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
invoke-virtual {v5, v0}, Ljava/util/zip/ZipFile;->getEntry(Ljava/lang/String;)Ljava/util/zip/ZipEntry;
move-result-object v0
.line 244
if-nez v0, :cond_24
.line 242
:goto_20
add-int/lit8 v0, v4, 0x1
move v4, v0
goto :goto_12
.line 247
:cond_24
invoke-static {}, Lcom/cleanmaster/hpsharelib/configmanager/ServiceConfigManager;->getInstance()Lcom/cleanmaster/hpsharelib/configmanager/ServiceConfigManager;
move-result-object v1
invoke-virtual {v0}, Ljava/util/zip/ZipEntry;->getSize()J
move-result-wide v10
invoke-virtual {v1, v8, v10, v11}, Lcom/cleanmaster/hpsharelib/configmanager/ServiceConfigManager;->setLibSoSize2(Ljava/lang/String;J)V
.line 248
const/16 v1, 0x1000
new-array v1, v1, [B
.line 253
:try_start_33
invoke-virtual {v5, v0}, Ljava/util/zip/ZipFile;->getInputStream(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream;
:try_end_36
.catch Ljava/util/zip/ZipException; {:try_start_33 .. :try_end_36} :catch_54
.catch Ljava/io/IOException; {:try_start_33 .. :try_end_36} :catch_66
.catchall {:try_start_33 .. :try_end_36} :catchall_78
move-result-object v3
.line 255
:try_start_37
invoke-virtual {v3, v1}, Ljava/io/InputStream;->read([B)I
.line 256
invoke-static {v1}, Lcom/cleanmaster/hpsharelib/base/util/hash/Md5Util;->getByteArrayMD5([B)Ljava/lang/String;
:try_end_3d
.catch Ljava/util/zip/ZipException; {:try_start_37 .. :try_end_3d} :catch_9c
.catch Ljava/io/IOException; {:try_start_37 .. :try_end_3d} :catch_96
.catchall {:try_start_37 .. :try_end_3d} :catchall_94
move-result-object v0
.line 258
:try_start_3e
invoke-virtual {v3}, Ljava/io/InputStream;->close()V
:try_end_41
.catch Ljava/util/zip/ZipException; {:try_start_3e .. :try_end_41} :catch_a0
.catch Ljava/io/IOException; {:try_start_3e .. :try_end_41} :catch_9a
.catchall {:try_start_3e .. :try_end_41} :catchall_94
.line 259
const/4 v1, 0x0
.line 265
if-eqz v2, :cond_47
.line 267
:try_start_44
invoke-virtual {v1}, Ljava/io/InputStream;->close()V
:try_end_47
.catch Ljava/io/IOException; {:try_start_44 .. :try_end_47} :catch_4f
.line 275
:cond_47
:goto_47
invoke-static {}, Lcom/cleanmaster/hpsharelib/configmanager/ServiceConfigManager;->getInstance()Lcom/cleanmaster/hpsharelib/configmanager/ServiceConfigManager;
move-result-object v1
invoke-virtual {v1, v8, v0}, Lcom/cleanmaster/hpsharelib/configmanager/ServiceConfigManager;->setLibSoHeadMd5(Ljava/lang/String;Ljava/lang/String;)V
goto :goto_20
.line 268
:catch_4f
move-exception v1
.line 269
invoke-virtual {v1}, Ljava/io/IOException;->printStackTrace()V
goto :goto_47
.line 260
:catch_54
move-exception v0
move-object v1, v0
move-object v3, v2
move-object v0, v2
.line 261
:goto_58
:try_start_58
invoke-virtual {v1}, Ljava/util/zip/ZipException;->printStackTrace()V
:try_end_5b
.catchall {:try_start_58 .. :try_end_5b} :catchall_94
.line 265
if-eqz v3, :cond_47
.line 267
:try_start_5d
invoke-virtual {v3}, Ljava/io/InputStream;->close()V
:try_end_60
.catch Ljava/io/IOException; {:try_start_5d .. :try_end_60} :catch_61
goto :goto_47
.line 268
:catch_61
move-exception v1
.line 269
invoke-virtual {v1}, Ljava/io/IOException;->printStackTrace()V
goto :goto_47
.line 262
:catch_66
move-exception v0
move-object v1, v0
move-object v3, v2
move-object v0, v2
.line 263
:goto_6a
:try_start_6a
invoke-virtual {v1}, Ljava/io/IOException;->printStackTrace()V
:try_end_6d
.catchall {:try_start_6a .. :try_end_6d} :catchall_94
.line 265
if-eqz v3, :cond_47
.line 267
:try_start_6f
invoke-virtual {v3}, Ljava/io/InputStream;->close()V
:try_end_72
.catch Ljava/io/IOException; {:try_start_6f .. :try_end_72} :catch_73
goto :goto_47
.line 268
:catch_73
move-exception v1
.line 269
invoke-virtual {v1}, Ljava/io/IOException;->printStackTrace()V
goto :goto_47
.line 265
:catchall_78
move-exception v0
move-object v3, v2
:goto_7a
if-eqz v3, :cond_7f
.line 267
:try_start_7c
invoke-virtual {v3}, Ljava/io/InputStream;->close()V
:try_end_7f
.catch Ljava/io/IOException; {:try_start_7c .. :try_end_7f} :catch_80
.line 271
:cond_7f
:goto_7f
throw v0
.line 268
:catch_80
move-exception v1
.line 269
invoke-virtual {v1}, Ljava/io/IOException;->printStackTrace()V
goto :goto_7f
.line 277
:cond_85
invoke-virtual {p0}, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->close()V
.line 278
iput-object v5, p0, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->mZipFile:Ljava/util/zip/ZipFile;
.line 279
invoke-static {}, Lcom/cleanmaster/hpsharelib/configmanager/ServiceConfigManager;->getInstance()Lcom/cleanmaster/hpsharelib/configmanager/ServiceConfigManager;
move-result-object v0
iget-object v1, p0, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->mNowVersion:Ljava/lang/String;
invoke-virtual {v0, v1}, Lcom/cleanmaster/hpsharelib/configmanager/ServiceConfigManager;->setSoVersion(Ljava/lang/String;)V
.line 280
return-void
.line 265
:catchall_94
move-exception v0
goto :goto_7a
.line 262
:catch_96
move-exception v0
move-object v1, v0
move-object v0, v2
goto :goto_6a
:catch_9a
move-exception v1
goto :goto_6a
.line 260
:catch_9c
move-exception v0
move-object v1, v0
move-object v0, v2
goto :goto_58
:catch_a0
move-exception v1
goto :goto_58
.end method
# virtual methods
.method public GetOwnCopySoPath()Ljava/lang/String;
.registers 2
.prologue
.line 66
iget-object v0, p0, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->mSoName:Ljava/lang/String;
invoke-direct {p0, v0}, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->getLibPath(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public GetSystemCopySoPath()Ljava/lang/String;
.registers 2
.prologue
.line 70
iget-object v0, p0, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->mSystemLibPath:Ljava/lang/String;
return-object v0
.end method
.method public close()V
.registers 2
.prologue
.line 334
iget-object v0, p0, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->mZipFile:Ljava/util/zip/ZipFile;
if-eqz v0, :cond_c
.line 336
:try_start_4
iget-object v0, p0, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->mZipFile:Ljava/util/zip/ZipFile;
invoke-virtual {v0}, Ljava/util/zip/ZipFile;->close()V
.line 337
const/4 v0, 0x0
iput-object v0, p0, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->mZipFile:Ljava/util/zip/ZipFile;
:try_end_c
.catch Ljava/io/IOException; {:try_start_4 .. :try_end_c} :catch_d
.line 341
:cond_c
:goto_c
return-void
.line 338
:catch_d
move-exception v0
.line 339
invoke-virtual {v0}, Ljava/io/IOException;->printStackTrace()V
goto :goto_c
.end method
.method public getHeadMd5String(Ljava/io/File;)Ljava/lang/String;
.registers 5
.prologue
const/4 v0, 0x0
.line 121
if-nez p1, :cond_4
.line 148
:cond_3
:goto_3
return-object v0
.line 128
:cond_4
:try_start_4
new-instance v2, Ljava/io/FileInputStream;
invoke-direct {v2, p1}, Ljava/io/FileInputStream;-><init>(Ljava/io/File;)V
:try_end_9
.catch Ljava/util/zip/ZipException; {:try_start_4 .. :try_end_9} :catch_1f
.catch Ljava/io/IOException; {:try_start_4 .. :try_end_9} :catch_2f
.catchall {:try_start_4 .. :try_end_9} :catchall_3f
.line 129
const/16 v1, 0x1000
:try_start_b
new-array v1, v1, [B
.line 131
invoke-virtual {v2, v1}, Ljava/io/InputStream;->read([B)I
.line 132
invoke-static {v1}, Lcom/cleanmaster/hpsharelib/base/util/hash/Md5Util;->getByteArrayMD5([B)Ljava/lang/String;
:try_end_13
.catch Ljava/util/zip/ZipException; {:try_start_b .. :try_end_13} :catch_51
.catch Ljava/io/IOException; {:try_start_b .. :try_end_13} :catch_4f
.catchall {:try_start_b .. :try_end_13} :catchall_4d
move-result-object v0
.line 138
if-eqz v2, :cond_3
.line 140
:try_start_16
invoke-virtual {v2}, Ljava/io/InputStream;->close()V
:try_end_19
.catch Ljava/io/IOException; {:try_start_16 .. :try_end_19} :catch_1a
goto :goto_3
.line 141
:catch_1a
move-exception v1
.line 142
invoke-virtual {v1}, Ljava/io/IOException;->printStackTrace()V
goto :goto_3
.line 133
:catch_1f
move-exception v1
move-object v2, v0
.line 134
:goto_21
:try_start_21
invoke-virtual {v1}, Ljava/util/zip/ZipException;->printStackTrace()V
:try_end_24
.catchall {:try_start_21 .. :try_end_24} :catchall_4d
.line 138
if-eqz v2, :cond_3
.line 140
:try_start_26
invoke-virtual {v2}, Ljava/io/InputStream;->close()V
:try_end_29
.catch Ljava/io/IOException; {:try_start_26 .. :try_end_29} :catch_2a
goto :goto_3
.line 141
:catch_2a
move-exception v1
.line 142
invoke-virtual {v1}, Ljava/io/IOException;->printStackTrace()V
goto :goto_3
.line 135
:catch_2f
move-exception v1
move-object v2, v0
.line 136
:goto_31
:try_start_31
invoke-virtual {v1}, Ljava/io/IOException;->printStackTrace()V
:try_end_34
.catchall {:try_start_31 .. :try_end_34} :catchall_4d
.line 138
if-eqz v2, :cond_3
.line 140
:try_start_36
invoke-virtual {v2}, Ljava/io/InputStream;->close()V
:try_end_39
.catch Ljava/io/IOException; {:try_start_36 .. :try_end_39} :catch_3a
goto :goto_3
.line 141
:catch_3a
move-exception v1
.line 142
invoke-virtual {v1}, Ljava/io/IOException;->printStackTrace()V
goto :goto_3
.line 138
:catchall_3f
move-exception v1
move-object v2, v0
move-object v0, v1
:goto_42
if-eqz v2, :cond_47
.line 140
:try_start_44
invoke-virtual {v2}, Ljava/io/InputStream;->close()V
:try_end_47
.catch Ljava/io/IOException; {:try_start_44 .. :try_end_47} :catch_48
.line 144
:cond_47
:goto_47
throw v0
.line 141
:catch_48
move-exception v1
.line 142
invoke-virtual {v1}, Ljava/io/IOException;->printStackTrace()V
goto :goto_47
.line 138
:catchall_4d
move-exception v0
goto :goto_42
.line 135
:catch_4f
move-exception v1
goto :goto_31
.line 133
:catch_51
move-exception v1
goto :goto_21
.end method
.method public getLibFullPath()Ljava/lang/String;
.registers 2
.prologue
.line 117
iget-object v0, p0, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->mLibFullPath:Ljava/lang/String;
return-object v0
.end method
.method public isLibraryOk()Z
.registers 3
.prologue
.line 113
iget-object v0, p0, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->mLibFullPath:Ljava/lang/String;
invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v0
if-nez v0, :cond_17
new-instance v0, Ljava/io/File;
iget-object v1, p0, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->mLibFullPath:Ljava/lang/String;
invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
invoke-virtual {v0}, Ljava/io/File;->exists()Z
move-result v0
if-eqz v0, :cond_17
const/4 v0, 0x1
:goto_16
return v0
:cond_17
const/4 v0, 0x0
goto :goto_16
.end method
.method public isNeedCopy(Ljava/lang/String;Ljava/lang/String;)Z
.registers 11
.prologue
const/4 v1, 0x0
const/4 v0, 0x1
.line 156
invoke-static {}, Lcom/cleanmaster/hpsharelib/configmanager/ServiceConfigManager;->getInstance()Lcom/cleanmaster/hpsharelib/configmanager/ServiceConfigManager;
move-result-object v2
invoke-virtual {v2, p1}, Lcom/cleanmaster/hpsharelib/configmanager/ServiceConfigManager;->getLibSoSize2(Ljava/lang/String;)J
move-result-wide v2
.line 157
invoke-static {}, Lcom/cleanmaster/hpsharelib/configmanager/ServiceConfigManager;->getInstance()Lcom/cleanmaster/hpsharelib/configmanager/ServiceConfigManager;
move-result-object v4
invoke-virtual {v4, p1}, Lcom/cleanmaster/hpsharelib/configmanager/ServiceConfigManager;->getLibSoHeadMd5(Ljava/lang/String;)Ljava/lang/String;
move-result-object v4
.line 158
new-instance v5, Ljava/io/File;
invoke-direct {v5, p2}, Ljava/io/File;-><init>(Ljava/lang/String;)V
.line 159
invoke-virtual {v5}, Ljava/io/File;->exists()Z
move-result v6
if-eqz v6, :cond_2e
invoke-virtual {v5}, Ljava/io/File;->length()J
move-result-wide v6
cmp-long v2, v6, v2
if-nez v2, :cond_2e
.line 160
invoke-virtual {p0, v5}, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->getHeadMd5String(Ljava/io/File;)Ljava/lang/String;
move-result-object v2
.line 162
if-nez v2, :cond_2f
if-nez v4, :cond_2f
move v0, v1
.line 172
:cond_2e
:goto_2e
return v0
.line 166
:cond_2f
if-eqz v2, :cond_2e
if-eqz v4, :cond_2e
.line 170
invoke-virtual {v2, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_2e
move v0, v1
goto :goto_2e
.end method
.method public load()Z
.registers 5
.prologue
const/4 v0, 0x0
.line 80
:try_start_1
invoke-virtual {p0}, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->syncSoFiles()I
move-result v1
.line 81
packed-switch v1, :pswitch_data_58
.line 108
:cond_8
:goto_8
return v0
.line 83
:pswitch_9
invoke-direct {p0}, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->loadFromSysCopyLibPath()Z
move-result v0
goto :goto_8
.line 94
:pswitch_e
new-instance v1, Ljava/io/File;
iget-object v2, p0, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->mSoName:Ljava/lang/String;
invoke-direct {p0, v2}, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->getLibPath(Ljava/lang/String;)Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2}, Ljava/io/File;-><init>(Ljava/lang/String;)V
.line 95
invoke-virtual {v1}, Ljava/io/File;->exists()Z
move-result v2
if-eqz v2, :cond_8
.line 96
iget-object v2, p0, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->mSoName:Ljava/lang/String;
invoke-direct {p0, v2}, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->getLibPath(Ljava/lang/String;)Ljava/lang/String;
move-result-object v2
invoke-static {v2}, Ljava/lang/System;->load(Ljava/lang/String;)V
.line 97
invoke-virtual {v1}, Ljava/io/File;->getPath()Ljava/lang/String;
move-result-object v1
iput-object v1, p0, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->mLibFullPath:Ljava/lang/String;
.line 101
sget-boolean v1, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->DEBUG:Z
if-eqz v1, :cond_52
.line 102
const-string v1, ""
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "load sucess"
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
iget-object v3, p0, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->mLibPath:Ljava/lang/String;
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
iget-object v3, p0, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->mSoName:Ljava/lang/String;
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 {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
:try_end_52
.catch Ljava/util/zip/ZipException; {:try_start_1 .. :try_end_52} :catch_56
.catch Ljava/io/IOException; {:try_start_1 .. :try_end_52} :catch_54
.line 104
:cond_52
const/4 v0, 0x1
goto :goto_8
.line 107
:catch_54
move-exception v1
goto :goto_8
.line 105
:catch_56
move-exception v1
goto :goto_8
.line 81
:pswitch_data_58
.packed-switch 0x1
:pswitch_9
:pswitch_e
.end packed-switch
.end method
.method public syncSoFiles()I
.registers 6
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/util/zip/ZipException;,
Ljava/io/IOException;
}
.end annotation
.prologue
const/4 v0, 0x1
const/4 v1, 0x0
.line 186
invoke-static {}, Lcom/cleanmaster/hpsharelib/base/util/system/RuntimeCheck;->isServiceProcess()Z
move-result v2
if-eqz v2, :cond_3a
.line 187
sget-object v2, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->mMutexForSoFileSync:Ljava/lang/Object;
monitor-enter v2
.line 189
:try_start_b
invoke-direct {p0}, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->checkVersion()Z
move-result v3
if-nez v3, :cond_15
.line 190
invoke-direct {p0}, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->syncCopySo()V
move v1, v0
.line 193
:cond_15
iget-object v3, p0, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->mSoName:Ljava/lang/String;
iget-object v4, p0, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->mSystemLibPath:Ljava/lang/String;
invoke-virtual {p0, v3, v4}, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->isNeedCopy(Ljava/lang/String;Ljava/lang/String;)Z
move-result v3
if-nez v3, :cond_21
.line 194
monitor-exit v2
.line 207
:goto_20
return v0
.line 196
:cond_21
if-nez v1, :cond_31
iget-object v0, p0, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->mSoName:Ljava/lang/String;
iget-object v1, p0, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->mSoName:Ljava/lang/String;
invoke-direct {p0, v1}, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->getLibPath(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
invoke-virtual {p0, v0, v1}, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->isNeedCopy(Ljava/lang/String;Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_34
.line 197
:cond_31
invoke-direct {p0}, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->startCopy()V
.line 199
:cond_34
monitor-exit v2
.line 200
const/4 v0, 0x2
goto :goto_20
.line 199
:catchall_37
move-exception v0
monitor-exit v2
:try_end_39
.catchall {:try_start_b .. :try_end_39} :catchall_37
throw v0
.line 203
:cond_3a
:try_start_3a
invoke-static {}, Lcom/cleanmaster/hpsharelib/synipc/SyncIpcCtrl;->getIns()Lcom/cleanmaster/hpsharelib/synipc/SyncIpcCtrl;
move-result-object v0
invoke-virtual {v0}, Lcom/cleanmaster/hpsharelib/synipc/SyncIpcCtrl;->getIPCClient()Lcom/cleanmaster/hpsharelib/synipc/ISyncIpcService;
move-result-object v0
iget-object v2, p0, Lcom/cleanmaster/hpsharelib/base/lib/LibLoadUtils;->mLibName:Ljava/lang/String;
invoke-interface {v0, v2}, Lcom/cleanmaster/hpsharelib/synipc/ISyncIpcService;->syncSoFile(Ljava/lang/String;)I
:try_end_47
.catch Landroid/os/RemoteException; {:try_start_3a .. :try_end_47} :catch_49
move-result v0
goto :goto_20
.line 204
:catch_49
move-exception v0
.line 205
invoke-virtual {v0}, Landroid/os/RemoteException;->printStackTrace()V
move v0, v1
.line 207
goto :goto_20
.end method