avu.smali
.class public Ldxoptimizer/avu;
.super Landroid/database/sqlite/SQLiteOpenHelper;
.source "AntivirusWhiteListDB.java"
# static fields
.field public static final a:Ljava/lang/String;
.field public static final b:Landroid/net/Uri;
.field public static final c:Ljava/lang/String;
.field public static final d:Landroid/net/Uri;
.field private static e:Ldxoptimizer/avu;
# instance fields
.field private f:Landroid/content/Context;
# direct methods
.method static constructor <clinit>()V
.registers 2
.prologue
.line 34
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-class v1, Ldxoptimizer/avv;
invoke-virtual {v1}, Ljava/lang/Class;->getName()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, "/"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, "white_list"
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
sput-object v0, Ldxoptimizer/avu;->a:Ljava/lang/String;
.line 36
sget-object v0, Ldxoptimizer/akj;->a:Landroid/net/Uri;
sget-object v1, Ldxoptimizer/avu;->a:Ljava/lang/String;
.line 37
invoke-static {v0, v1}, Landroid/net/Uri;->withAppendedPath(Landroid/net/Uri;Ljava/lang/String;)Landroid/net/Uri;
move-result-object v0
sput-object v0, Ldxoptimizer/avu;->b:Landroid/net/Uri;
.line 38
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-class v1, Ldxoptimizer/avv;
invoke-virtual {v1}, Ljava/lang/Class;->getName()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, "/"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, "vuln_whitelist"
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
sput-object v0, Ldxoptimizer/avu;->c:Ljava/lang/String;
.line 40
sget-object v0, Ldxoptimizer/akj;->a:Landroid/net/Uri;
sget-object v1, Ldxoptimizer/avu;->c:Ljava/lang/String;
.line 41
invoke-static {v0, v1}, Landroid/net/Uri;->withAppendedPath(Landroid/net/Uri;Ljava/lang/String;)Landroid/net/Uri;
move-result-object v0
sput-object v0, Ldxoptimizer/avu;->d:Landroid/net/Uri;
.line 40
return-void
.end method
.method private constructor <init>(Landroid/content/Context;)V
.registers 5
.prologue
.line 57
const-string v0, "antivirus_white_list.db"
const/4 v1, 0x0
const/4 v2, 0x6
invoke-direct {p0, p1, v0, v1, v2}, Landroid/database/sqlite/SQLiteOpenHelper;-><init>(Landroid/content/Context;Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;I)V
.line 58
iput-object p1, p0, Ldxoptimizer/avu;->f:Landroid/content/Context;
.line 59
iget-object v0, p0, Ldxoptimizer/avu;->f:Landroid/content/Context;
invoke-direct {p0, v0}, Ldxoptimizer/avu;->b(Landroid/content/Context;)V
.line 60
return-void
.end method
.method public static a(Landroid/content/Context;)Ldxoptimizer/avu;
.registers 3
.prologue
.line 46
sget-object v0, Ldxoptimizer/avu;->e:Ldxoptimizer/avu;
if-nez v0, :cond_13
.line 47
const-class v1, Ldxoptimizer/avu;
monitor-enter v1
.line 48
:try_start_7
sget-object v0, Ldxoptimizer/avu;->e:Ldxoptimizer/avu;
if-nez v0, :cond_12
.line 49
new-instance v0, Ldxoptimizer/avu;
invoke-direct {v0, p0}, Ldxoptimizer/avu;-><init>(Landroid/content/Context;)V
sput-object v0, Ldxoptimizer/avu;->e:Ldxoptimizer/avu;
.line 51
:cond_12
monitor-exit v1
:try_end_13
.catchall {:try_start_7 .. :try_end_13} :catchall_16
.line 53
:cond_13
sget-object v0, Ldxoptimizer/avu;->e:Ldxoptimizer/avu;
return-object v0
.line 51
:catchall_16
move-exception v0
:try_start_17
monitor-exit v1
:try_end_18
.catchall {:try_start_17 .. :try_end_18} :catchall_16
throw v0
.end method
.method public static declared-synchronized a(Landroid/content/Context;Ljava/io/File;)Z
.registers 5
.prologue
.line 130
const-class v1, Ldxoptimizer/avu;
monitor-enter v1
:try_start_3
invoke-virtual {p0}, Landroid/content/Context;->getApplicationContext()Landroid/content/Context;
move-result-object v0
const-string v2, "antivirus_white_list.db"
invoke-virtual {v0, v2}, Landroid/content/Context;->getDatabasePath(Ljava/lang/String;)Ljava/io/File;
move-result-object v0
.line 131
invoke-virtual {p1, v0}, Ljava/io/File;->renameTo(Ljava/io/File;)Z
move-result v0
.line 132
const/4 v2, 0x0
sput-object v2, Ldxoptimizer/avu;->e:Ldxoptimizer/avu;
:try_end_14
.catchall {:try_start_3 .. :try_end_14} :catchall_16
.line 133
monitor-exit v1
return v0
.line 130
:catchall_16
move-exception v0
monitor-exit v1
throw v0
.end method
.method public static a(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;)Z
.registers 12
.prologue
const/4 v8, 0x0
const/4 v6, 0x1
const/4 v7, 0x0
.line 80
invoke-static {}, Ldxoptimizer/afs;->a()Ldxoptimizer/afs;
move-result-object v0
sget-object v1, Ldxoptimizer/avu;->b:Landroid/net/Uri;
const-class v2, Ldxoptimizer/avv;
.line 81
invoke-virtual {v2}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v2
.line 80
invoke-virtual {v0, v1, v2}, Ldxoptimizer/afs;->a(Landroid/net/Uri;Ljava/lang/String;)Z
.line 84
:try_start_12
invoke-static {}, Ldxoptimizer/afs;->a()Ldxoptimizer/afs;
move-result-object v0
sget-object v1, Ldxoptimizer/avu;->b:Landroid/net/Uri;
const/4 v2, 0x1
new-array v2, v2, [Ljava/lang/String;
const/4 v3, 0x0
const-string v4, "signmd5"
aput-object v4, v2, v3
const-string v3, "pkg = ?"
const/4 v4, 0x1
new-array v4, v4, [Ljava/lang/String;
const/4 v5, 0x0
aput-object p1, v4, v5
const/4 v5, 0x0
invoke-virtual/range {v0 .. v5}, Ldxoptimizer/afs;->a(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
:try_end_2c
.catch Ljava/lang/Exception; {:try_start_12 .. :try_end_2c} :catch_77
.catchall {:try_start_12 .. :try_end_2c} :catchall_8f
move-result-object v0
.line 89
:cond_2d
:try_start_2d
invoke-interface {v0}, Landroid/database/Cursor;->moveToNext()Z
move-result v1
if-eqz v1, :cond_61
.line 90
const-string v1, "signmd5"
invoke-interface {v0, v1}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I
move-result v1
invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
move-result-object v1
.line 91
invoke-virtual {v1, p2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-nez v2, :cond_4b
const-string v2, "608291140"
invoke-virtual {v2, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
:try_end_48
.catch Ljava/lang/Exception; {:try_start_2d .. :try_end_48} :catch_a9
.catchall {:try_start_2d .. :try_end_48} :catchall_a5
move-result v1
if-eqz v1, :cond_2d
.line 99
:cond_4b
if-eqz v0, :cond_50
invoke-interface {v0}, Landroid/database/Cursor;->close()V
.line 100
:cond_50
invoke-static {}, Ldxoptimizer/afs;->a()Ldxoptimizer/afs;
move-result-object v0
sget-object v1, Ldxoptimizer/avu;->b:Landroid/net/Uri;
const-class v2, Ldxoptimizer/avv;
invoke-virtual {v2}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v2
invoke-virtual {v0, v1, v2}, Ldxoptimizer/afs;->b(Landroid/net/Uri;Ljava/lang/String;)V
move v0, v6
.line 97
:goto_60
return v0
.line 99
:cond_61
if-eqz v0, :cond_66
invoke-interface {v0}, Landroid/database/Cursor;->close()V
.line 100
:cond_66
invoke-static {}, Ldxoptimizer/afs;->a()Ldxoptimizer/afs;
move-result-object v0
sget-object v1, Ldxoptimizer/avu;->b:Landroid/net/Uri;
const-class v2, Ldxoptimizer/avv;
invoke-virtual {v2}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v2
invoke-virtual {v0, v1, v2}, Ldxoptimizer/afs;->b(Landroid/net/Uri;Ljava/lang/String;)V
move v0, v7
.line 95
goto :goto_60
.line 96
:catch_77
move-exception v0
move-object v0, v8
.line 99
:goto_79
if-eqz v0, :cond_7e
invoke-interface {v0}, Landroid/database/Cursor;->close()V
.line 100
:cond_7e
invoke-static {}, Ldxoptimizer/afs;->a()Ldxoptimizer/afs;
move-result-object v0
sget-object v1, Ldxoptimizer/avu;->b:Landroid/net/Uri;
const-class v2, Ldxoptimizer/avv;
invoke-virtual {v2}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v2
invoke-virtual {v0, v1, v2}, Ldxoptimizer/afs;->b(Landroid/net/Uri;Ljava/lang/String;)V
move v0, v7
.line 97
goto :goto_60
.line 99
:catchall_8f
move-exception v0
:goto_90
if-eqz v8, :cond_95
invoke-interface {v8}, Landroid/database/Cursor;->close()V
.line 100
:cond_95
invoke-static {}, Ldxoptimizer/afs;->a()Ldxoptimizer/afs;
move-result-object v1
sget-object v2, Ldxoptimizer/avu;->b:Landroid/net/Uri;
const-class v3, Ldxoptimizer/avv;
invoke-virtual {v3}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v3
invoke-virtual {v1, v2, v3}, Ldxoptimizer/afs;->b(Landroid/net/Uri;Ljava/lang/String;)V
throw v0
.line 99
:catchall_a5
move-exception v1
move-object v8, v0
move-object v0, v1
goto :goto_90
.line 96
:catch_a9
move-exception v1
goto :goto_79
.end method
.method private b(Landroid/content/Context;)V
.registers 6
.prologue
const/4 v2, 0x1
const/16 v3, 0x11
.line 137
const-string v0, "antivirus_white_list"
const/4 v1, -0x1
invoke-static {p1, v0, v1}, Ldxoptimizer/ccm;->d(Landroid/content/Context;Ljava/lang/String;I)I
move-result v0
.line 139
const-string v1, "antivirus_white_list.db"
invoke-virtual {p1, v1}, Landroid/content/Context;->getDatabasePath(Ljava/lang/String;)Ljava/io/File;
move-result-object v1
.line 140
if-ne v0, v2, :cond_18
.line 141
invoke-virtual {v1}, Ljava/io/File;->exists()Z
move-result v0
if-nez v0, :cond_47
.line 144
:cond_18
:try_start_18
invoke-virtual {v1}, Ljava/io/File;->getParentFile()Ljava/io/File;
move-result-object v0
invoke-virtual {v0}, Ljava/io/File;->exists()Z
move-result v0
if-nez v0, :cond_2d
.line 145
const-string v0, "antivirus_white_list.db"
const/4 v2, 0x0
const/4 v3, 0x0
invoke-virtual {p1, v0, v2, v3}, Landroid/content/Context;->openOrCreateDatabase(Ljava/lang/String;ILandroid/database/sqlite/SQLiteDatabase$CursorFactory;)Landroid/database/sqlite/SQLiteDatabase;
move-result-object v0
invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->close()V
.line 148
:cond_2d
invoke-static {p1, v1}, Ldxoptimizer/avu;->b(Landroid/content/Context;Ljava/io/File;)V
.line 149
const-string v0, "antivirus_white_list"
const/4 v1, 0x1
invoke-static {p1, v0, v1}, Ldxoptimizer/ccm;->c(Landroid/content/Context;Ljava/lang/String;I)V
.line 152
const-string v0, "antivirus_white_list"
const/16 v1, 0x11
invoke-static {p1, v0, v1}, Ldxoptimizer/ccm;->a(Landroid/content/Context;Ljava/lang/String;I)V
:try_end_3d
.catch Ljava/io/IOException; {:try_start_18 .. :try_end_3d} :catch_3e
.line 170
:cond_3d
:goto_3d
return-void
.line 154
:catch_3e
move-exception v0
.line 155
const-string v1, "AntivirusWhiteListDB"
const-string v2, "failed to copy db file"
invoke-static {v1, v2, v0}, Ldxoptimizer/cdx;->a(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
goto :goto_3d
.line 159
:cond_47
:try_start_47
const-string v0, "antivirus_white_list"
const/4 v2, 0x0
invoke-static {p1, v0, v2}, Ldxoptimizer/ccm;->b(Landroid/content/Context;Ljava/lang/String;I)I
move-result v0
.line 161
if-ge v0, v3, :cond_3d
.line 162
invoke-static {p1, v1}, Ldxoptimizer/avu;->b(Landroid/content/Context;Ljava/io/File;)V
.line 163
const-string v0, "antivirus_white_list"
const/16 v1, 0x11
invoke-static {p1, v0, v1}, Ldxoptimizer/ccm;->a(Landroid/content/Context;Ljava/lang/String;I)V
:try_end_5a
.catch Ljava/io/IOException; {:try_start_47 .. :try_end_5a} :catch_5b
goto :goto_3d
.line 166
:catch_5b
move-exception v0
.line 167
const-string v1, "AntivirusWhiteListDB"
const-string v2, "failed to copy db file"
invoke-static {v1, v2, v0}, Ldxoptimizer/cdx;->a(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
goto :goto_3d
.end method
.method private static b(Landroid/content/Context;Ljava/io/File;)V
.registers 4
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.prologue
.line 173
invoke-virtual {p0}, Landroid/content/Context;->getAssets()Landroid/content/res/AssetManager;
move-result-object v0
const-string v1, "antivirus_white_list.db"
invoke-virtual {v0, v1}, Landroid/content/res/AssetManager;->open(Ljava/lang/String;)Ljava/io/InputStream;
move-result-object v0
.line 174
invoke-static {v0, p1}, Ldxoptimizer/cdp;->a(Ljava/io/InputStream;Ljava/io/File;)V
.line 175
return-void
.end method
# virtual methods
.method public onCreate(Landroid/database/sqlite/SQLiteDatabase;)V
.registers 3
.prologue
.line 64
const-string v0, "CREATE TABLE IF NOT EXISTS white_list(_id integer primary key, pkg text, signmd5 text )"
invoke-virtual {p1, v0}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
.line 67
const-string v0, "CREATE TABLE IF NOT EXISTS vuln_whitelist(_id integer primary key, pkg text, signmd5 text )"
invoke-virtual {p1, v0}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
.line 70
return-void
.end method
.method public onUpgrade(Landroid/database/sqlite/SQLiteDatabase;II)V
.registers 5
.prologue
.line 74
const-string v0, "CREATE TABLE IF NOT EXISTS vuln_whitelist(_id integer primary key, pkg text, signmd5 text )"
invoke-virtual {p1, v0}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
.line 77
return-void
.end method