aot.smali
.class public Ldxoptimizer/aot;
.super Ljava/lang/Object;
.source "JbpShell.java"
# static fields
.field private static a:Ljava/lang/Boolean;
# direct methods
.method static constructor <clinit>()V
.registers 1
.prologue
.line 18
const/4 v0, 0x0
sput-object v0, Ldxoptimizer/aot;->a:Ljava/lang/Boolean;
return-void
.end method
.method public static declared-synchronized a()Z
.registers 8
.prologue
const/4 v2, 0x0
const/4 v3, 0x1
const/4 v4, 0x0
.line 78
const-class v5, Ldxoptimizer/aot;
monitor-enter v5
:try_start_6
sget-object v0, Ldxoptimizer/aot;->a:Ljava/lang/Boolean;
if-nez v0, :cond_4b
.line 81
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v1, 0x11
if-lt v0, v1, :cond_74
.line 83
new-instance v0, Ljava/io/File;
const-string v1, "/sys/fs/selinux/enforce"
invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
.line 85
invoke-virtual {v0}, Ljava/io/File;->exists()Z
:try_end_1a
.catchall {:try_start_6 .. :try_end_1a} :catchall_69
move-result v0
if-eqz v0, :cond_72
.line 87
:try_start_1d
new-instance v1, Ljava/io/FileInputStream;
const-string v0, "/sys/fs/selinux/enforce"
invoke-direct {v1, v0}, Ljava/io/FileInputStream;-><init>(Ljava/lang/String;)V
:try_end_24
.catch Ljava/io/IOException; {:try_start_1d .. :try_end_24} :catch_55
.catchall {:try_start_1d .. :try_end_24} :catchall_63
.line 88
:try_start_24
invoke-virtual {v1}, Ljava/io/InputStream;->read()I
move-result v0
const/16 v6, 0x31
if-ne v0, v6, :cond_53
move v0, v3
:goto_2d
invoke-static {v0}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
:try_end_30
.catch Ljava/io/IOException; {:try_start_24 .. :try_end_30} :catch_70
.catchall {:try_start_24 .. :try_end_30} :catchall_6e
move-result-object v2
.line 92
:try_start_31
invoke-static {v1}, Ldxoptimizer/cdp;->a(Ljava/io/Closeable;)V
move-object v0, v2
.line 96
:goto_35
if-nez v0, :cond_42
.line 97
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v1, 0x13
if-lt v0, v1, :cond_6c
move v0, v3
:goto_3e
invoke-static {v0}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
move-result-object v0
.line 100
:cond_42
:goto_42
if-nez v0, :cond_49
.line 101
const/4 v0, 0x0
invoke-static {v0}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
move-result-object v0
.line 103
:cond_49
sput-object v0, Ldxoptimizer/aot;->a:Ljava/lang/Boolean;
.line 105
:cond_4b
sget-object v0, Ldxoptimizer/aot;->a:Ljava/lang/Boolean;
invoke-virtual {v0}, Ljava/lang/Boolean;->booleanValue()Z
:try_end_50
.catchall {:try_start_31 .. :try_end_50} :catchall_69
move-result v0
monitor-exit v5
return v0
:cond_53
move v0, v4
.line 88
goto :goto_2d
.line 89
:catch_55
move-exception v0
move-object v1, v2
.line 90
:goto_57
:try_start_57
const-string v6, "JbpShell"
const-string v7, "unexpected"
invoke-static {v6, v7, v0}, Ldxoptimizer/aoz;->a(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
:try_end_5e
.catchall {:try_start_57 .. :try_end_5e} :catchall_6e
.line 92
:try_start_5e
invoke-static {v1}, Ldxoptimizer/cdp;->a(Ljava/io/Closeable;)V
move-object v0, v2
.line 93
goto :goto_35
.line 92
:catchall_63
move-exception v0
move-object v1, v2
:goto_65
invoke-static {v1}, Ldxoptimizer/cdp;->a(Ljava/io/Closeable;)V
throw v0
:try_end_69
.catchall {:try_start_5e .. :try_end_69} :catchall_69
.line 78
:catchall_69
move-exception v0
monitor-exit v5
throw v0
:cond_6c
move v0, v4
.line 97
goto :goto_3e
.line 92
:catchall_6e
move-exception v0
goto :goto_65
.line 89
:catch_70
move-exception v0
goto :goto_57
:cond_72
move-object v0, v2
goto :goto_35
:cond_74
move-object v0, v2
goto :goto_42
.end method
.method public static a(Ljava/lang/String;[Ljava/lang/String;)Z
.registers 8
.prologue
const/4 v2, 0x0
const/4 v0, 0x0
.line 28
.line 30
:try_start_2
invoke-static {}, Ljava/lang/Runtime;->getRuntime()Ljava/lang/Runtime;
move-result-object v1
invoke-virtual {v1, p0}, Ljava/lang/Runtime;->exec(Ljava/lang/String;)Ljava/lang/Process;
move-result-object v3
.line 31
new-instance v1, Ljava/io/DataOutputStream;
invoke-virtual {v3}, Ljava/lang/Process;->getOutputStream()Ljava/io/OutputStream;
move-result-object v3
invoke-direct {v1, v3}, Ljava/io/DataOutputStream;-><init>(Ljava/io/OutputStream;)V
:try_end_13
.catch Ljava/io/IOException; {:try_start_2 .. :try_end_13} :catch_65
.catchall {:try_start_2 .. :try_end_13} :catchall_6b
.line 32
:try_start_13
invoke-static {}, Ldxoptimizer/aot;->a()Z
move-result v2
if-eqz v2, :cond_2a
.line 33
const-string v2, "setenforce 0\n"
const-string v3, "UTF-8"
invoke-virtual {v2, v3}, Ljava/lang/String;->getBytes(Ljava/lang/String;)[B
move-result-object v2
invoke-virtual {v1, v2}, Ljava/io/DataOutputStream;->write([B)V
.line 34
invoke-virtual {v1}, Ljava/io/DataOutputStream;->flush()V
.line 35
const/4 v2, 0x0
sput-object v2, Ldxoptimizer/aot;->a:Ljava/lang/Boolean;
.line 37
:cond_2a
array-length v3, p1
move v2, v0
:goto_2c
if-ge v2, v3, :cond_52
aget-object v4, p1, v2
.line 38
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v5, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
const-string v5, "\n"
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
const-string v5, "UTF-8"
invoke-virtual {v4, v5}, Ljava/lang/String;->getBytes(Ljava/lang/String;)[B
move-result-object v4
invoke-virtual {v1, v4}, Ljava/io/DataOutputStream;->write([B)V
.line 39
invoke-virtual {v1}, Ljava/io/DataOutputStream;->flush()V
.line 37
add-int/lit8 v2, v2, 0x1
goto :goto_2c
.line 42
:cond_52
const-string v2, "exit\n"
const-string v3, "UTF-8"
invoke-virtual {v2, v3}, Ljava/lang/String;->getBytes(Ljava/lang/String;)[B
move-result-object v2
invoke-virtual {v1, v2}, Ljava/io/DataOutputStream;->write([B)V
.line 43
invoke-virtual {v1}, Ljava/io/DataOutputStream;->flush()V
:try_end_60
.catch Ljava/io/IOException; {:try_start_13 .. :try_end_60} :catch_73
.catchall {:try_start_13 .. :try_end_60} :catchall_71
.line 51
invoke-static {v1}, Ldxoptimizer/cdp;->a(Ljava/io/Closeable;)V
.line 54
const/4 v0, 0x1
:goto_64
return v0
.line 44
:catch_65
move-exception v1
move-object v1, v2
.line 51
:goto_67
invoke-static {v1}, Ldxoptimizer/cdp;->a(Ljava/io/Closeable;)V
goto :goto_64
:catchall_6b
move-exception v0
move-object v1, v2
:goto_6d
invoke-static {v1}, Ldxoptimizer/cdp;->a(Ljava/io/Closeable;)V
throw v0
:catchall_71
move-exception v0
goto :goto_6d
.line 44
:catch_73
move-exception v2
goto :goto_67
.end method