VulnDroidNative.smali

.class public Lcom/baidu/droidsploit/VulnDroidNative;
.super Ljava/lang/Object;
.source "VulnDroidNative.java"


# static fields
.field public static volatile sIsInitFail:Z


# direct methods
.method static constructor <clinit>()V
    .registers 1

    .prologue
    .line 14
    const/4 v0, 0x1

    sput-boolean v0, Lcom/baidu/droidsploit/VulnDroidNative;->sIsInitFail:Z

    return-void
.end method

.method public constructor <init>(Ljava/lang/String;)V
    .registers 5

    .prologue
    .line 16
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    .line 17
    sget-boolean v0, Lcom/baidu/droidsploit/VulnDroidNative;->sIsInitFail:Z

    if-eqz v0, :cond_a

    .line 18
    invoke-static {p1}, Lcom/baidu/droidsploit/VulnDroidNative;->a(Ljava/lang/String;)V

    .line 20
    :cond_a
    sget-object v0, Lcom/baidu/security/engine/c/a/a;->b:Ljava/lang/String;

    new-instance v1, Ljava/lang/StringBuilder;

    invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V

    const-string v2, "vuln engine  sIsInitFail : "

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v1

    sget-boolean v2, Lcom/baidu/droidsploit/VulnDroidNative;->sIsInitFail:Z

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;

    move-result-object v1

    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v1

    invoke-static {v0, v1}, Lcom/baidu/security/f/m;->b(Ljava/lang/String;Ljava/lang/String;)V

    .line 21
    return-void
.end method

.method private static a(Ljava/lang/String;)V
    .registers 5

    .prologue
    const/4 v3, 0x1

    .line 24
    sget v0, Landroid/os/Build$VERSION;->SDK_INT:I

    const/16 v1, 0x15

    if-lt v0, v1, :cond_f

    .line 25
    sget-object v0, Lcom/baidu/security/engine/c/a/a;->b:Ljava/lang/String;

    const-string v1, "VulnDroidNative initVulnDroidNative > 21, return "

    invoke-static {v0, v1}, Lcom/baidu/security/f/m;->c(Ljava/lang/String;Ljava/lang/String;)V

    .line 56
    :cond_e
    :goto_e
    return-void

    .line 29
    :cond_f
    :try_start_f
    sget-object v0, Lcom/baidu/security/engine/c/a/a;->b:Ljava/lang/String;

    const-string v1, " load VulnDroidNative so from lib "

    invoke-static {v0, v1}, Lcom/baidu/security/f/m;->c(Ljava/lang/String;Ljava/lang/String;)V

    .line 30
    const-string v0, "cork"

    invoke-static {v0}, Ljava/lang/System;->loadLibrary(Ljava/lang/String;)V

    .line 31
    const/4 v0, 0x0

    sput-boolean v0, Lcom/baidu/droidsploit/VulnDroidNative;->sIsInitFail:Z

    .line 32
    sget-object v0, Lcom/baidu/security/engine/c/a/a;->b:Ljava/lang/String;

    const-string v1, " load VulnDroidNative so from lib success "

    invoke-static {v0, v1}, Lcom/baidu/security/f/m;->c(Ljava/lang/String;Ljava/lang/String;)V
    :try_end_25
    .catch Ljava/lang/Throwable; {:try_start_f .. :try_end_25} :catch_26

    goto :goto_e

    .line 33
    :catch_26
    move-exception v0

    .line 35
    :try_start_27
    sget-object v0, Lcom/baidu/security/engine/c/a/a;->b:Ljava/lang/String;

    new-instance v1, Ljava/lang/StringBuilder;

    invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V

    const-string v2, " load VulnDroidNative from lib fail, load from path : "

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v1

    invoke-virtual {v1, p0}, 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

    invoke-static {v0, v1}, Lcom/baidu/security/f/m;->c(Ljava/lang/String;Ljava/lang/String;)V

    .line 37
    invoke-static {p0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z

    move-result v0

    if-nez v0, :cond_8c

    new-instance v0, Ljava/io/File;

    invoke-direct {v0, p0}, Ljava/io/File;-><init>(Ljava/lang/String;)V

    invoke-virtual {v0}, Ljava/io/File;->exists()Z

    move-result v0

    if-eqz v0, :cond_8c

    .line 38
    invoke-static {p0}, Ljava/lang/System;->load(Ljava/lang/String;)V

    .line 39
    sget-object v0, Lcom/baidu/security/engine/c/a/a;->b:Ljava/lang/String;

    new-instance v1, Ljava/lang/StringBuilder;

    invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V

    const-string v2, "VulnDroidNative so load from files success, path : "

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v1

    invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v1

    const-string v2, " , cache path : "

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v1

    .line 41
    invoke-static {}, Lcom/baidu/security/b/b;->a()Lcom/baidu/security/b/b;

    move-result-object v2

    invoke-virtual {v2}, Lcom/baidu/security/b/b;->b()Ljava/lang/String;

    move-result-object 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 39
    invoke-static {v0, v1}, Lcom/baidu/security/f/m;->c(Ljava/lang/String;Ljava/lang/String;)V

    .line 42
    const/4 v0, 0x0

    sput-boolean v0, Lcom/baidu/droidsploit/VulnDroidNative;->sIsInitFail:Z
    :try_end_80
    .catch Ljava/lang/Throwable; {:try_start_27 .. :try_end_80} :catch_90

    .line 52
    :cond_80
    :goto_80
    sget-boolean v0, Lcom/baidu/droidsploit/VulnDroidNative;->sIsInitFail:Z

    if-eqz v0, :cond_e

    .line 53
    sget-object v0, Lcom/baidu/security/engine/c/a/a;->b:Ljava/lang/String;

    const-string v1, "VulnDroidNative so load fail finally "

    invoke-static {v0, v1}, Lcom/baidu/security/f/m;->c(Ljava/lang/String;Ljava/lang/String;)V

    goto :goto_e

    .line 44
    :cond_8c
    const/4 v0, 0x1

    :try_start_8d
    sput-boolean v0, Lcom/baidu/droidsploit/VulnDroidNative;->sIsInitFail:Z
    :try_end_8f
    .catch Ljava/lang/Throwable; {:try_start_8d .. :try_end_8f} :catch_90

    goto :goto_80

    .line 46
    :catch_90
    move-exception v0

    .line 47
    sput-boolean v3, Lcom/baidu/droidsploit/VulnDroidNative;->sIsInitFail:Z

    .line 48
    sget-boolean v1, Lcom/baidu/security/engine/c/a/a;->c:Z

    if-eqz v1, :cond_80

    .line 49
    invoke-virtual {v0}, Ljava/lang/Throwable;->printStackTrace()V

    goto :goto_80
.end method


# virtual methods
.method public native vulnScanApk(Ljava/lang/String;)Ljava/lang/String;
.end method

.method public native vulnScanOsFix()I
.end method

.method public native vulnVersion()Ljava/lang/String;
.end method