SuInstallImpl.smali
.class public Lcom/cleanmaster/service/root4install/SuInstallImpl;
.super Ljava/lang/Object;
.source "SuInstallImpl.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/cleanmaster/service/root4install/SuInstallImpl$a;,
Lcom/cleanmaster/service/root4install/SuInstallImpl$OnInstallListenner;
}
.end annotation
# instance fields
.field private a:Ljava/util/concurrent/ExecutorService;
.field private b:Ljava/util/Map;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Map",
"<",
"Ljava/lang/String;",
"Ljava/lang/String;",
">;"
}
.end annotation
.end field
.field private c:Lcom/cleanmaster/service/root4install/SuInstallImpl$OnInstallListenner;
# direct methods
.method public constructor <init>()V
.registers 2
.prologue
.line 28
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 25
const/4 v0, 0x5
invoke-static {v0}, Ljava/util/concurrent/Executors;->newFixedThreadPool(I)Ljava/util/concurrent/ExecutorService;
move-result-object v0
iput-object v0, p0, Lcom/cleanmaster/service/root4install/SuInstallImpl;->a:Ljava/util/concurrent/ExecutorService;
.line 26
new-instance v0, Ljava/util/HashMap;
invoke-direct {v0}, Ljava/util/HashMap;-><init>()V
iput-object v0, p0, Lcom/cleanmaster/service/root4install/SuInstallImpl;->b:Ljava/util/Map;
.line 196
new-instance v0, Lcom/cleanmaster/service/root4install/a;
invoke-direct {v0, p0}, Lcom/cleanmaster/service/root4install/a;-><init>(Lcom/cleanmaster/service/root4install/SuInstallImpl;)V
iput-object v0, p0, Lcom/cleanmaster/service/root4install/SuInstallImpl;->c:Lcom/cleanmaster/service/root4install/SuInstallImpl$OnInstallListenner;
.line 28
return-void
.end method
.method static synthetic a(Lcom/cleanmaster/service/root4install/SuInstallImpl;)Lcom/cleanmaster/service/root4install/SuInstallImpl$OnInstallListenner;
.registers 2
.prologue
.line 23
iget-object v0, p0, Lcom/cleanmaster/service/root4install/SuInstallImpl;->c:Lcom/cleanmaster/service/root4install/SuInstallImpl$OnInstallListenner;
return-object v0
.end method
.method private a(Ljava/lang/String;Ljava/lang/String;)V
.registers 5
.prologue
.line 81
invoke-static {p1}, Lcom/cmcm/support/base/StringUtil;->isNullOrEmpty(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_7
.line 86
:goto_6
return-void
.line 83
:cond_7
iget-object v1, p0, Lcom/cleanmaster/service/root4install/SuInstallImpl;->b:Ljava/util/Map;
monitor-enter v1
.line 84
:try_start_a
iget-object v0, p0, Lcom/cleanmaster/service/root4install/SuInstallImpl;->b:Ljava/util/Map;
invoke-interface {v0, p1, p2}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 85
monitor-exit v1
goto :goto_6
:catchall_11
move-exception v0
monitor-exit v1
:try_end_13
.catchall {:try_start_a .. :try_end_13} :catchall_11
throw v0
.end method
.method static synthetic b(Lcom/cleanmaster/service/root4install/SuInstallImpl;)Ljava/util/Map;
.registers 2
.prologue
.line 23
iget-object v0, p0, Lcom/cleanmaster/service/root4install/SuInstallImpl;->b:Ljava/util/Map;
return-object v0
.end method
.method private b(Ljava/lang/String;)Z
.registers 5
.prologue
.line 58
iget-object v1, p0, Lcom/cleanmaster/service/root4install/SuInstallImpl;->b:Ljava/util/Map;
monitor-enter v1
.line 59
:try_start_3
iget-object v0, p0, Lcom/cleanmaster/service/root4install/SuInstallImpl;->b:Ljava/util/Map;
invoke-interface {v0}, Ljava/util/Map;->keySet()Ljava/util/Set;
move-result-object v0
invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
move-result-object v2
:cond_d
invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_22
invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/String;
.line 60
invoke-virtual {v0, p1}, Ljava/lang/String;->compareTo(Ljava/lang/String;)I
move-result v0
if-nez v0, :cond_d
.line 61
const/4 v0, 0x1
monitor-exit v1
.line 64
:goto_21
return v0
.line 63
:cond_22
monitor-exit v1
.line 64
const/4 v0, 0x0
goto :goto_21
.line 63
:catchall_25
move-exception v0
monitor-exit v1
:try_end_27
.catchall {:try_start_3 .. :try_end_27} :catchall_25
throw v0
.end method
# virtual methods
.method public a(Ljava/lang/String;)I
.registers 12
.prologue
const/4 v3, 0x0
const/4 v0, 0x0
.line 140
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v2, "pm install -r "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, "\n"
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 144
new-instance v6, Ljava/io/ByteArrayOutputStream;
invoke-direct {v6}, Ljava/io/ByteArrayOutputStream;-><init>()V
.line 146
new-instance v7, Ljava/lang/StringBuilder;
invoke-direct {v7}, Ljava/lang/StringBuilder;-><init>()V
.line 148
:try_start_26
invoke-static {}, Ljava/lang/Runtime;->getRuntime()Ljava/lang/Runtime;
move-result-object v2
const-string/jumbo v4, "su"
invoke-virtual {v2, v4}, Ljava/lang/Runtime;->exec(Ljava/lang/String;)Ljava/lang/Process;
:try_end_30
.catch Ljava/lang/Exception; {:try_start_26 .. :try_end_30} :catch_133
.catchall {:try_start_26 .. :try_end_30} :catchall_10c
move-result-object v5
.line 149
:try_start_31
new-instance v4, Ljava/io/DataOutputStream;
invoke-virtual {v5}, Ljava/lang/Process;->getOutputStream()Ljava/io/OutputStream;
move-result-object v2
invoke-direct {v4, v2}, Ljava/io/DataOutputStream;-><init>(Ljava/io/OutputStream;)V
:try_end_3a
.catch Ljava/lang/Exception; {:try_start_31 .. :try_end_3a} :catch_138
.catchall {:try_start_31 .. :try_end_3a} :catchall_126
.line 150
:try_start_3a
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, "\n"
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
invoke-virtual {v4, v1}, Ljava/io/DataOutputStream;->writeBytes(Ljava/lang/String;)V
.line 151
const-string v1, "exit\n"
invoke-virtual {v4, v1}, Ljava/io/DataOutputStream;->writeBytes(Ljava/lang/String;)V
.line 152
new-instance v2, Ljava/io/BufferedReader;
new-instance v1, Ljava/io/InputStreamReader;
invoke-virtual {v5}, Ljava/lang/Process;->getInputStream()Ljava/io/InputStream;
move-result-object v8
invoke-direct {v1, v8}, Ljava/io/InputStreamReader;-><init>(Ljava/io/InputStream;)V
invoke-direct {v2, v1}, Ljava/io/BufferedReader;-><init>(Ljava/io/Reader;)V
:try_end_63
.catch Ljava/lang/Exception; {:try_start_3a .. :try_end_63} :catch_13d
.catchall {:try_start_3a .. :try_end_63} :catchall_12a
.line 153
:try_start_63
invoke-virtual {v5}, Ljava/lang/Process;->getErrorStream()Ljava/io/InputStream;
move-result-object v1
.line 155
:cond_67
invoke-virtual {v2}, Ljava/io/BufferedReader;->readLine()Ljava/lang/String;
move-result-object v3
if-eqz v3, :cond_a0
.line 156
new-instance v8, Ljava/lang/StringBuilder;
invoke-direct {v8}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v8, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v8
const-string v9, "\n"
invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v8
invoke-virtual {v8}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v8
invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 157
const-string v8, "Success"
invoke-virtual {v8, v3}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
:try_end_88
.catch Ljava/lang/Exception; {:try_start_63 .. :try_end_88} :catch_b0
.catchall {:try_start_63 .. :try_end_88} :catchall_12d
move-result v3
if-eqz v3, :cond_67
.line 158
const/4 v1, 0x1
.line 179
if-eqz v4, :cond_94
.line 180
:try_start_8e
invoke-virtual {v4}, Ljava/io/DataOutputStream;->flush()V
.line 181
invoke-virtual {v4}, Ljava/io/DataOutputStream;->close()V
.line 183
:cond_94
if-eqz v2, :cond_99
.line 184
invoke-virtual {v2}, Ljava/io/BufferedReader;->close()V
.line 186
:cond_99
if-eqz v5, :cond_9e
.line 187
invoke-virtual {v5}, Ljava/lang/Process;->destroy()V
:try_end_9e
.catch Ljava/lang/Exception; {:try_start_8e .. :try_end_9e} :catch_146
:cond_9e
move v0, v1
.line 193
:cond_9f
:goto_9f
return v0
.line 163
:cond_a0
const/16 v3, 0x400
:try_start_a2
new-array v3, v3, [B
.line 164
:goto_a4
invoke-virtual {v1, v3}, Ljava/io/InputStream;->read([B)I
move-result v7
const/4 v8, -0x1
if-eq v7, v8, :cond_cb
.line 165
const/4 v8, 0x0
invoke-virtual {v6, v3, v8, v7}, Ljava/io/ByteArrayOutputStream;->write([BII)V
:try_end_af
.catch Ljava/lang/Exception; {:try_start_a2 .. :try_end_af} :catch_b0
.catchall {:try_start_a2 .. :try_end_af} :catchall_12d
goto :goto_a4
.line 173
:catch_b0
move-exception v1
move-object v3, v4
move-object v4, v5
.line 174
:goto_b3
:try_start_b3
invoke-virtual {v1}, Ljava/lang/Exception;->printStackTrace()V
:try_end_b6
.catchall {:try_start_b3 .. :try_end_b6} :catchall_12f
.line 179
if-eqz v3, :cond_be
.line 180
:try_start_b8
invoke-virtual {v3}, Ljava/io/DataOutputStream;->flush()V
.line 181
invoke-virtual {v3}, Ljava/io/DataOutputStream;->close()V
.line 183
:cond_be
if-eqz v2, :cond_c3
.line 184
invoke-virtual {v2}, Ljava/io/BufferedReader;->close()V
.line 186
:cond_c3
if-eqz v4, :cond_9f
.line 187
invoke-virtual {v4}, Ljava/lang/Process;->destroy()V
:try_end_c8
.catch Ljava/lang/Exception; {:try_start_b8 .. :try_end_c8} :catch_c9
goto :goto_9f
.line 189
:catch_c9
move-exception v1
goto :goto_9f
.line 167
:cond_cb
:try_start_cb
new-instance v1, Ljava/lang/String;
invoke-virtual {v6}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B
move-result-object v3
invoke-direct {v1, v3}, Ljava/lang/String;-><init>([B)V
.line 168
invoke-static {v1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v3
if-nez v3, :cond_f7
.line 169
const-string v3, "INSTALL_FAILED_INSUFFICIENT_STORAGE"
invoke-virtual {v1, v3}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
:try_end_df
.catch Ljava/lang/Exception; {:try_start_cb .. :try_end_df} :catch_b0
.catchall {:try_start_cb .. :try_end_df} :catchall_12d
move-result v1
if-eqz v1, :cond_f7
.line 170
const/4 v1, -0x4
.line 179
if-eqz v4, :cond_eb
.line 180
:try_start_e5
invoke-virtual {v4}, Ljava/io/DataOutputStream;->flush()V
.line 181
invoke-virtual {v4}, Ljava/io/DataOutputStream;->close()V
.line 183
:cond_eb
if-eqz v2, :cond_f0
.line 184
invoke-virtual {v2}, Ljava/io/BufferedReader;->close()V
.line 186
:cond_f0
if-eqz v5, :cond_f5
.line 187
invoke-virtual {v5}, Ljava/lang/Process;->destroy()V
:try_end_f5
.catch Ljava/lang/Exception; {:try_start_e5 .. :try_end_f5} :catch_143
:cond_f5
move v0, v1
.line 170
goto :goto_9f
.line 179
:cond_f7
if-eqz v4, :cond_ff
.line 180
:try_start_f9
invoke-virtual {v4}, Ljava/io/DataOutputStream;->flush()V
.line 181
invoke-virtual {v4}, Ljava/io/DataOutputStream;->close()V
.line 183
:cond_ff
if-eqz v2, :cond_104
.line 184
invoke-virtual {v2}, Ljava/io/BufferedReader;->close()V
.line 186
:cond_104
if-eqz v5, :cond_9f
.line 187
invoke-virtual {v5}, Ljava/lang/Process;->destroy()V
:try_end_109
.catch Ljava/lang/Exception; {:try_start_f9 .. :try_end_109} :catch_10a
goto :goto_9f
.line 189
:catch_10a
move-exception v1
goto :goto_9f
.line 178
:catchall_10c
move-exception v1
move-object v2, v3
move-object v4, v3
move-object v5, v3
.line 179
:goto_110
if-eqz v4, :cond_118
.line 180
:try_start_112
invoke-virtual {v4}, Ljava/io/DataOutputStream;->flush()V
.line 181
invoke-virtual {v4}, Ljava/io/DataOutputStream;->close()V
.line 183
:cond_118
if-eqz v2, :cond_11d
.line 184
invoke-virtual {v2}, Ljava/io/BufferedReader;->close()V
.line 186
:cond_11d
if-eqz v5, :cond_122
.line 187
invoke-virtual {v5}, Ljava/lang/Process;->destroy()V
:try_end_122
.catch Ljava/lang/Exception; {:try_start_112 .. :try_end_122} :catch_123
.line 190
:cond_122
throw v1
.line 189
:catch_123
move-exception v1
goto/16 :goto_9f
.line 178
:catchall_126
move-exception v1
move-object v2, v3
move-object v4, v3
goto :goto_110
:catchall_12a
move-exception v1
move-object v2, v3
goto :goto_110
:catchall_12d
move-exception v1
goto :goto_110
:catchall_12f
move-exception v1
move-object v5, v4
move-object v4, v3
goto :goto_110
.line 173
:catch_133
move-exception v1
move-object v2, v3
move-object v4, v3
goto/16 :goto_b3
:catch_138
move-exception v1
move-object v2, v3
move-object v4, v5
goto/16 :goto_b3
:catch_13d
move-exception v1
move-object v2, v3
move-object v3, v4
move-object v4, v5
goto/16 :goto_b3
.line 189
:catch_143
move-exception v1
goto/16 :goto_9f
:catch_146
move-exception v1
goto/16 :goto_9f
.end method
.method public a(Ljava/lang/String;Lcom/cleanmaster/service/root4install/SuInstallImpl$OnInstallListenner;)I
.registers 7
.prologue
const/4 v1, -0x5
const/4 v0, -0x6
.line 35
invoke-static {p1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v2
if-eqz v2, :cond_9
.line 54
:cond_8
:goto_8
return v0
.line 39
:cond_9
invoke-direct {p0, p1}, Lcom/cleanmaster/service/root4install/SuInstallImpl;->b(Ljava/lang/String;)Z
move-result v2
if-eqz v2, :cond_11
move v0, v1
.line 40
goto :goto_8
.line 43
:cond_11
invoke-static {p1}, Lcom/cleanmaster/ui/app/provider/download/l;->b(Ljava/lang/String;)Ljava/lang/String;
move-result-object v2
.line 44
invoke-static {v2}, Lcom/cmcm/support/base/StringUtil;->isNullOrEmpty(Ljava/lang/String;)Z
move-result v3
if-nez v3, :cond_8
.line 48
invoke-direct {p0, p1, v2}, Lcom/cleanmaster/service/root4install/SuInstallImpl;->a(Ljava/lang/String;Ljava/lang/String;)V
.line 51
new-instance v0, Lcom/cleanmaster/service/root4install/SuInstallImpl$a;
invoke-direct {v0, p0, p1, v2, p2}, Lcom/cleanmaster/service/root4install/SuInstallImpl$a;-><init>(Lcom/cleanmaster/service/root4install/SuInstallImpl;Ljava/lang/String;Ljava/lang/String;Lcom/cleanmaster/service/root4install/SuInstallImpl$OnInstallListenner;)V
.line 52
iget-object v2, p0, Lcom/cleanmaster/service/root4install/SuInstallImpl;->a:Ljava/util/concurrent/ExecutorService;
invoke-interface {v2, v0}, Ljava/util/concurrent/ExecutorService;->submit(Ljava/lang/Runnable;)Ljava/util/concurrent/Future;
move v0, v1
.line 54
goto :goto_8
.end method