g.smali

.class public Lcom/umeng/commonsdk/internal/utils/g;
.super Ljava/lang/Object;
.source "ProcessUtil.java"


# static fields
.field private static final a:Ljava/lang/String; = "\n"

.field private static final b:[B

.field private static c:[B


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

    const-string v0, "\nexit\n"

    .line 1
    invoke-virtual {v0}, Ljava/lang/String;->getBytes()[B

    move-result-object v0

    sput-object v0, Lcom/umeng/commonsdk/internal/utils/g;->b:[B

    const/16 v0, 0x20

    .line 2
    new-array v0, v0, [B

    sput-object v0, Lcom/umeng/commonsdk/internal/utils/g;->c:[B

    return-void
.end method

.method public constructor <init>()V
    .registers 1

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

    return-void
.end method

.method public static varargs a([Ljava/lang/String;)Ljava/lang/String;
    .registers 10

    const/4 v0, 0x0

    .line 1
    :try_start_1
    new-instance v1, Ljava/lang/ProcessBuilder;

    const/4 v2, 0x0

    new-array v2, v2, [Ljava/lang/String;

    invoke-direct {v1, v2}, Ljava/lang/ProcessBuilder;-><init>([Ljava/lang/String;)V

    .line 2
    invoke-virtual {v1, p0}, Ljava/lang/ProcessBuilder;->command([Ljava/lang/String;)Ljava/lang/ProcessBuilder;

    move-result-object p0

    .line 3
    invoke-virtual {p0}, Ljava/lang/ProcessBuilder;->start()Ljava/lang/Process;

    move-result-object p0
    :try_end_11
    .catch Ljava/io/IOException; {:try_start_1 .. :try_end_11} :catch_cf
    .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_11} :catch_c2
    .catchall {:try_start_1 .. :try_end_11} :catchall_b1

    .line 4
    :try_start_11
    invoke-virtual {p0}, Ljava/lang/Process;->getOutputStream()Ljava/io/OutputStream;

    move-result-object v1
    :try_end_15
    .catch Ljava/io/IOException; {:try_start_11 .. :try_end_15} :catch_af
    .catch Ljava/lang/Exception; {:try_start_11 .. :try_end_15} :catch_ad
    .catchall {:try_start_11 .. :try_end_15} :catchall_a5

    .line 5
    :try_start_15
    invoke-virtual {p0}, Ljava/lang/Process;->getInputStream()Ljava/io/InputStream;

    move-result-object v2
    :try_end_19
    .catch Ljava/io/IOException; {:try_start_15 .. :try_end_19} :catch_a3
    .catch Ljava/lang/Exception; {:try_start_15 .. :try_end_19} :catch_a1
    .catchall {:try_start_15 .. :try_end_19} :catchall_9a

    .line 6
    :try_start_19
    invoke-virtual {p0}, Ljava/lang/Process;->getErrorStream()Ljava/io/InputStream;

    move-result-object v3
    :try_end_1d
    .catch Ljava/io/IOException; {:try_start_19 .. :try_end_1d} :catch_97
    .catch Ljava/lang/Exception; {:try_start_19 .. :try_end_1d} :catch_95
    .catchall {:try_start_19 .. :try_end_1d} :catchall_8f

    .line 7
    :try_start_1d
    sget-object v4, Lcom/umeng/commonsdk/internal/utils/g;->b:[B

    invoke-virtual {v1, v4}, Ljava/io/OutputStream;->write([B)V

    .line 8
    invoke-virtual {v1}, Ljava/io/OutputStream;->flush()V

    .line 9
    invoke-virtual {p0}, Ljava/lang/Process;->waitFor()I

    .line 10
    new-instance v4, Ljava/io/InputStreamReader;

    invoke-direct {v4, v2}, Ljava/io/InputStreamReader;-><init>(Ljava/io/InputStream;)V
    :try_end_2d
    .catch Ljava/io/IOException; {:try_start_1d .. :try_end_2d} :catch_8c
    .catch Ljava/lang/Exception; {:try_start_1d .. :try_end_2d} :catch_89
    .catchall {:try_start_1d .. :try_end_2d} :catchall_83

    .line 11
    :try_start_2d
    new-instance v5, Ljava/io/BufferedReader;

    invoke-direct {v5, v4}, Ljava/io/BufferedReader;-><init>(Ljava/io/Reader;)V
    :try_end_32
    .catch Ljava/io/IOException; {:try_start_2d .. :try_end_32} :catch_80
    .catch Ljava/lang/Exception; {:try_start_2d .. :try_end_32} :catch_7d
    .catchall {:try_start_2d .. :try_end_32} :catchall_77

    .line 12
    :try_start_32
    invoke-virtual {v5}, Ljava/io/BufferedReader;->readLine()Ljava/lang/String;

    move-result-object v6

    if-eqz v6, :cond_54

    .line 13
    new-instance v7, Ljava/lang/StringBuilder;

    invoke-direct {v7}, Ljava/lang/StringBuilder;-><init>()V
    :try_end_3d
    .catch Ljava/io/IOException; {:try_start_32 .. :try_end_3d} :catch_74
    .catch Ljava/lang/Exception; {:try_start_32 .. :try_end_3d} :catch_71
    .catchall {:try_start_32 .. :try_end_3d} :catchall_6e

    .line 14
    :try_start_3d
    invoke-virtual {v7, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    .line 15
    sget-object v6, Lcom/umeng/commonsdk/internal/utils/g;->a:Ljava/lang/String;

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

    .line 16
    :goto_45
    invoke-virtual {v5}, Ljava/io/BufferedReader;->readLine()Ljava/lang/String;

    move-result-object v6

    if-eqz v6, :cond_55

    .line 17
    invoke-virtual {v7, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    .line 18
    sget-object v6, Lcom/umeng/commonsdk/internal/utils/g;->a:Ljava/lang/String;

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

    goto :goto_45

    :cond_54
    move-object v7, v0

    .line 19
    :cond_55
    :goto_55
    sget-object v6, Lcom/umeng/commonsdk/internal/utils/g;->c:[B

    invoke-virtual {v3, v6}, Ljava/io/InputStream;->read([B)I

    move-result v6
    :try_end_5b
    .catch Ljava/io/IOException; {:try_start_3d .. :try_end_5b} :catch_6b
    .catch Ljava/lang/Exception; {:try_start_3d .. :try_end_5b} :catch_68
    .catchall {:try_start_3d .. :try_end_5b} :catchall_6e

    if-lez v6, :cond_5e

    goto :goto_55

    .line 20
    :cond_5e
    invoke-static {v1, v3, v2, v4, v5}, Lcom/umeng/commonsdk/internal/utils/g;->a(Ljava/io/OutputStream;Ljava/io/InputStream;Ljava/io/InputStream;Ljava/io/InputStreamReader;Ljava/io/BufferedReader;)V

    if-eqz p0, :cond_dc

    .line 21
    :goto_63
    invoke-static {p0}, Lcom/umeng/commonsdk/internal/utils/g;->c(Ljava/lang/Process;)V

    goto/16 :goto_dc

    :catch_68
    nop

    goto/16 :goto_c9

    :catch_6b
    nop

    goto/16 :goto_d6

    :catchall_6e
    move-exception v0

    goto/16 :goto_b9

    :catch_71
    move-object v7, v0

    goto/16 :goto_c9

    :catch_74
    move-object v7, v0

    goto/16 :goto_d6

    :catchall_77
    move-exception v5

    move-object v8, v5

    move-object v5, v0

    move-object v0, v8

    goto/16 :goto_b9

    :catch_7d
    move-object v5, v0

    goto/16 :goto_c8

    :catch_80
    move-object v5, v0

    goto/16 :goto_d5

    :catchall_83
    move-exception v4

    move-object v5, v0

    move-object v0, v4

    move-object v4, v5

    goto/16 :goto_b9

    :catch_89
    move-object v4, v0

    goto/16 :goto_c7

    :catch_8c
    move-object v4, v0

    goto/16 :goto_d4

    :catchall_8f
    move-exception v3

    move-object v4, v0

    move-object v5, v4

    move-object v0, v3

    move-object v3, v5

    goto :goto_b9

    :catch_95
    move-object v3, v0

    goto :goto_c6

    :catch_97
    move-object v3, v0

    goto/16 :goto_d3

    :catchall_9a
    move-exception v2

    move-object v3, v0

    move-object v4, v3

    move-object v5, v4

    move-object v0, v2

    move-object v2, v5

    goto :goto_b9

    :catch_a1
    move-object v2, v0

    goto :goto_c5

    :catch_a3
    move-object v2, v0

    goto :goto_d2

    :catchall_a5
    move-exception v1

    move-object v2, v0

    move-object v3, v2

    move-object v4, v3

    move-object v5, v4

    move-object v0, v1

    move-object v1, v5

    goto :goto_b9

    :catch_ad
    move-object v1, v0

    goto :goto_c4

    :catch_af
    move-object v1, v0

    goto :goto_d1

    :catchall_b1
    move-exception p0

    move-object v1, v0

    move-object v2, v1

    move-object v3, v2

    move-object v4, v3

    move-object v5, v4

    move-object v0, p0

    move-object p0, v5

    .line 22
    :goto_b9
    invoke-static {v1, v3, v2, v4, v5}, Lcom/umeng/commonsdk/internal/utils/g;->a(Ljava/io/OutputStream;Ljava/io/InputStream;Ljava/io/InputStream;Ljava/io/InputStreamReader;Ljava/io/BufferedReader;)V

    if-eqz p0, :cond_c1

    .line 23
    invoke-static {p0}, Lcom/umeng/commonsdk/internal/utils/g;->c(Ljava/lang/Process;)V

    .line 24
    :cond_c1
    throw v0

    :catch_c2
    move-object p0, v0

    move-object v1, p0

    :goto_c4
    move-object v2, v1

    :goto_c5
    move-object v3, v2

    :goto_c6
    move-object v4, v3

    :goto_c7
    move-object v5, v4

    :goto_c8
    move-object v7, v5

    .line 25
    :goto_c9
    invoke-static {v1, v3, v2, v4, v5}, Lcom/umeng/commonsdk/internal/utils/g;->a(Ljava/io/OutputStream;Ljava/io/InputStream;Ljava/io/InputStream;Ljava/io/InputStreamReader;Ljava/io/BufferedReader;)V

    if-eqz p0, :cond_dc

    goto :goto_63

    :catch_cf
    move-object p0, v0

    move-object v1, p0

    :goto_d1
    move-object v2, v1

    :goto_d2
    move-object v3, v2

    :goto_d3
    move-object v4, v3

    :goto_d4
    move-object v5, v4

    :goto_d5
    move-object v7, v5

    :goto_d6
    invoke-static {v1, v3, v2, v4, v5}, Lcom/umeng/commonsdk/internal/utils/g;->a(Ljava/io/OutputStream;Ljava/io/InputStream;Ljava/io/InputStream;Ljava/io/InputStreamReader;Ljava/io/BufferedReader;)V

    if-eqz p0, :cond_dc

    goto :goto_63

    :cond_dc
    :goto_dc
    if-nez v7, :cond_df

    return-object v0

    .line 26
    :cond_df
    invoke-virtual {v7}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object p0

    return-object p0
.end method

.method private static a(Ljava/io/OutputStream;Ljava/io/InputStream;Ljava/io/InputStream;Ljava/io/InputStreamReader;Ljava/io/BufferedReader;)V
    .registers 5

    if-eqz p0, :cond_7

    .line 27
    :try_start_2
    invoke-virtual {p0}, Ljava/io/OutputStream;->close()V
    :try_end_5
    .catch Ljava/io/IOException; {:try_start_2 .. :try_end_5} :catch_6

    goto :goto_7

    :catch_6
    nop

    :cond_7
    :goto_7
    if-eqz p1, :cond_e

    .line 28
    :try_start_9
    invoke-virtual {p1}, Ljava/io/InputStream;->close()V
    :try_end_c
    .catch Ljava/io/IOException; {:try_start_9 .. :try_end_c} :catch_d

    goto :goto_e

    :catch_d
    nop

    :cond_e
    :goto_e
    if-eqz p2, :cond_15

    .line 29
    :try_start_10
    invoke-virtual {p2}, Ljava/io/InputStream;->close()V
    :try_end_13
    .catch Ljava/io/IOException; {:try_start_10 .. :try_end_13} :catch_14

    goto :goto_15

    :catch_14
    nop

    :cond_15
    :goto_15
    if-eqz p3, :cond_1c

    .line 30
    :try_start_17
    invoke-virtual {p3}, Ljava/io/InputStreamReader;->close()V
    :try_end_1a
    .catch Ljava/io/IOException; {:try_start_17 .. :try_end_1a} :catch_1b

    goto :goto_1c

    :catch_1b
    nop

    :cond_1c
    :goto_1c
    if-eqz p4, :cond_21

    .line 31
    :try_start_1e
    invoke-virtual {p4}, Ljava/io/BufferedReader;->close()V
    :try_end_21
    .catch Ljava/io/IOException; {:try_start_1e .. :try_end_21} :catch_21

    :catch_21
    :cond_21
    return-void
.end method

.method private static a(Ljava/lang/Process;)V
    .registers 2

    .line 32
    invoke-static {p0}, Lcom/umeng/commonsdk/internal/utils/g;->b(Ljava/lang/Process;)I

    move-result v0

    if-eqz v0, :cond_d

    .line 33
    :try_start_6
    invoke-static {v0}, Landroid/os/Process;->killProcess(I)V
    :try_end_9
    .catch Ljava/lang/Exception; {:try_start_6 .. :try_end_9} :catch_a

    goto :goto_d

    .line 34
    :catch_a
    :try_start_a
    invoke-virtual {p0}, Ljava/lang/Process;->destroy()V
    :try_end_d
    .catch Ljava/lang/Exception; {:try_start_a .. :try_end_d} :catch_d

    :catch_d
    :cond_d
    :goto_d
    return-void
.end method

.method private static b(Ljava/lang/Process;)I
    .registers 3

    .line 1
    invoke-virtual {p0}, Ljava/lang/Object;->toString()Ljava/lang/String;

    move-result-object p0

    :try_start_4
    const-string v0, "="

    .line 2
    invoke-virtual {p0, v0}, Ljava/lang/String;->indexOf(Ljava/lang/String;)I

    move-result v0

    add-int/lit8 v0, v0, 0x1

    const-string v1, "]"

    .line 3
    invoke-virtual {p0, v1}, Ljava/lang/String;->indexOf(Ljava/lang/String;)I

    move-result v1

    .line 4
    invoke-virtual {p0, v0, v1}, Ljava/lang/String;->substring(II)Ljava/lang/String;

    move-result-object p0

    .line 5
    invoke-static {p0}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I

    move-result p0
    :try_end_1a
    .catch Ljava/lang/Exception; {:try_start_4 .. :try_end_1a} :catch_1b

    return p0

    :catch_1b
    const/4 p0, 0x0

    return p0
.end method

.method private static c(Ljava/lang/Process;)V
    .registers 2

    if-eqz p0, :cond_f

    .line 1
    :try_start_2
    invoke-virtual {p0}, Ljava/lang/Process;->exitValue()I

    move-result v0

    if-eqz v0, :cond_f

    .line 2
    invoke-static {p0}, Lcom/umeng/commonsdk/internal/utils/g;->a(Ljava/lang/Process;)V
    :try_end_b
    .catch Ljava/lang/IllegalThreadStateException; {:try_start_2 .. :try_end_b} :catch_c

    goto :goto_f

    .line 3
    :catch_c
    invoke-static {p0}, Lcom/umeng/commonsdk/internal/utils/g;->a(Ljava/lang/Process;)V

    :cond_f
    :goto_f
    return-void
.end method