aov.smali
.class public Ldxoptimizer/aov;
.super Landroid/os/Binder;
.source "BinderProxyNative.java"
# interfaces
.implements Ldxoptimizer/aoy;
# instance fields
.field private final a:Ljava/util/HashMap;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/HashMap",
"<",
"Ljava/lang/String;",
"Ldxoptimizer/aox;",
">;"
}
.end annotation
.end field
.field private b:I
.field private c:I
# direct methods
.method public constructor <init>(II)V
.registers 4
.prologue
.line 53
invoke-direct {p0}, Landroid/os/Binder;-><init>()V
.line 30
new-instance v0, Ljava/util/HashMap;
invoke-direct {v0}, Ljava/util/HashMap;-><init>()V
iput-object v0, p0, Ldxoptimizer/aov;->a:Ljava/util/HashMap;
.line 54
const-string v0, "android.os.jbp"
invoke-virtual {p0, p0, v0}, Ldxoptimizer/aov;->attachInterface(Landroid/os/IInterface;Ljava/lang/String;)V
.line 55
iput p1, p0, Ldxoptimizer/aov;->b:I
.line 56
iput p2, p0, Ldxoptimizer/aov;->c:I
.line 57
return-void
.end method
.method public static a(Landroid/os/IBinder;)Ldxoptimizer/aoy;
.registers 2
.prologue
.line 41
if-nez p0, :cond_4
.line 42
const/4 v0, 0x0
.line 50
:cond_3
:goto_3
return-object v0
.line 45
:cond_4
const-string v0, "android.os.jbp"
invoke-interface {p0, v0}, Landroid/os/IBinder;->queryLocalInterface(Ljava/lang/String;)Landroid/os/IInterface;
move-result-object v0
check-cast v0, Ldxoptimizer/aoy;
.line 46
if-nez v0, :cond_3
.line 50
new-instance v0, Ldxoptimizer/aow;
invoke-direct {v0, p0}, Ldxoptimizer/aow;-><init>(Landroid/os/IBinder;)V
goto :goto_3
.end method
.method private a(I)V
.registers 6
.prologue
.line 128
invoke-static {}, Ldxoptimizer/aov;->getCallingUid()I
move-result v0
.line 129
packed-switch p1, :pswitch_data_54
.line 143
const/16 v1, 0x3e8
if-eq v0, v1, :cond_53
if-eqz v0, :cond_53
const/16 v1, 0x7d0
if-eq v0, v1, :cond_53
.line 144
new-instance v1, Ljava/lang/SecurityException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "Unknown caller uid: "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {v1, v0}, Ljava/lang/SecurityException;-><init>(Ljava/lang/String;)V
throw v1
.line 136
:pswitch_2a
iget v1, p0, Ldxoptimizer/aov;->b:I
if-eq v0, v1, :cond_53
.line 137
new-instance v1, Ljava/lang/SecurityException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "Unknown caller uid: "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v0
const-string v2, ", != "
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
iget v2, p0, Ldxoptimizer/aov;->b:I
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {v1, v0}, Ljava/lang/SecurityException;-><init>(Ljava/lang/String;)V
throw v1
.line 149
:cond_53
return-void
.line 129
:pswitch_data_54
.packed-switch 0x1
:pswitch_2a
:pswitch_2a
:pswitch_2a
:pswitch_2a
:pswitch_2a
:pswitch_2a
.end packed-switch
.end method
# virtual methods
.method public a()I
.registers 2
.prologue
.line 153
iget v0, p0, Ldxoptimizer/aov;->c:I
return v0
.end method
.method public a(ILjava/lang/String;J)I
.registers 12
.prologue
const/4 v0, -0x1
.line 204
const/4 v1, 0x0
.line 206
:try_start_2
invoke-static {}, Ljava/lang/Runtime;->getRuntime()Ljava/lang/Runtime;
move-result-object v2
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "su "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/Runtime;->exec(Ljava/lang/String;)Ljava/lang/Process;
move-result-object v1
.line 207
new-instance v2, Ljava/io/PrintWriter;
invoke-virtual {v1}, Ljava/lang/Process;->getOutputStream()Ljava/io/OutputStream;
move-result-object v3
invoke-direct {v2, v3}, Ljava/io/PrintWriter;-><init>(Ljava/io/OutputStream;)V
.line 208
invoke-virtual {v2, p2}, Ljava/io/PrintWriter;->println(Ljava/lang/String;)V
.line 209
invoke-virtual {v2}, Ljava/io/PrintWriter;->flush()V
.line 210
invoke-virtual {v2}, Ljava/io/PrintWriter;->close()V
.line 211
const-wide/16 v2, 0x0
cmp-long v2, p3, v2
if-lez v2, :cond_5a
.line 212
invoke-static {}, Landroid/os/SystemClock;->elapsedRealtime()J
move-result-wide v2
add-long/2addr v2, p3
.line 214
:cond_3a
const-wide/16 v4, 0x64
invoke-static {v4, v5}, Landroid/os/SystemClock;->sleep(J)V
.line 215
invoke-static {v1}, Ldxoptimizer/cek;->a(Ljava/lang/Process;)Z
:try_end_42
.catch Ljava/io/IOException; {:try_start_2 .. :try_end_42} :catch_5e
.catch Ljava/lang/InterruptedException; {:try_start_2 .. :try_end_42} :catch_65
.catchall {:try_start_2 .. :try_end_42} :catchall_6c
move-result v4
if-nez v4, :cond_4c
.line 226
:goto_45
const/4 v0, 0x0
.line 232
if-eqz v1, :cond_4b
.line 233
invoke-virtual {v1}, Ljava/lang/Process;->destroy()V
.line 236
:cond_4b
:goto_4b
return v0
.line 218
:cond_4c
:try_start_4c
invoke-static {}, Landroid/os/SystemClock;->elapsedRealtime()J
:try_end_4f
.catch Ljava/io/IOException; {:try_start_4c .. :try_end_4f} :catch_5e
.catch Ljava/lang/InterruptedException; {:try_start_4c .. :try_end_4f} :catch_65
.catchall {:try_start_4c .. :try_end_4f} :catchall_6c
move-result-wide v4
cmp-long v4, v4, v2
if-lez v4, :cond_3a
.line 232
if-eqz v1, :cond_4b
.line 233
invoke-virtual {v1}, Ljava/lang/Process;->destroy()V
goto :goto_4b
.line 224
:cond_5a
:try_start_5a
invoke-virtual {v1}, Ljava/lang/Process;->waitFor()I
:try_end_5d
.catch Ljava/io/IOException; {:try_start_5a .. :try_end_5d} :catch_5e
.catch Ljava/lang/InterruptedException; {:try_start_5a .. :try_end_5d} :catch_65
.catchall {:try_start_5a .. :try_end_5d} :catchall_6c
goto :goto_45
.line 227
:catch_5e
move-exception v2
.line 232
if-eqz v1, :cond_4b
.line 233
invoke-virtual {v1}, Ljava/lang/Process;->destroy()V
goto :goto_4b
.line 229
:catch_65
move-exception v2
.line 232
if-eqz v1, :cond_4b
.line 233
invoke-virtual {v1}, Ljava/lang/Process;->destroy()V
goto :goto_4b
.line 232
:catchall_6c
move-exception v0
if-eqz v1, :cond_72
.line 233
invoke-virtual {v1}, Ljava/lang/Process;->destroy()V
:cond_72
throw v0
.end method
.method public a(Ljava/lang/String;)Landroid/os/IBinder;
.registers 5
.prologue
.line 159
iget-object v1, p0, Ldxoptimizer/aov;->a:Ljava/util/HashMap;
monitor-enter v1
.line 160
:try_start_3
iget-object v0, p0, Ldxoptimizer/aov;->a:Ljava/util/HashMap;
invoke-virtual {v0, p1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ldxoptimizer/aox;
.line 161
if-eqz v0, :cond_13
invoke-virtual {v0}, Ldxoptimizer/aox;->isBinderAlive()Z
move-result v2
if-nez v2, :cond_1a
.line 162
:cond_13
invoke-static {p1}, Lcom/android/common/ServiceManagerCompat;->getService(Ljava/lang/Object;)Landroid/os/IBinder;
move-result-object v2
.line 163
if-nez v2, :cond_1c
.line 164
const/4 v0, 0x0
.line 170
:cond_1a
:goto_1a
monitor-exit v1
.line 171
return-object v0
.line 166
:cond_1c
new-instance v0, Ldxoptimizer/aox;
invoke-direct {v0, v2}, Ldxoptimizer/aox;-><init>(Landroid/os/IBinder;)V
.line 167
iget-object v2, p0, Ldxoptimizer/aov;->a:Ljava/util/HashMap;
invoke-virtual {v2, p1, v0}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
goto :goto_1a
.line 170
:catchall_27
move-exception v0
monitor-exit v1
:try_end_29
.catchall {:try_start_3 .. :try_end_29} :catchall_27
throw v0
.end method
.method public a(Ljava/lang/String;Landroid/os/IBinder;)V
.registers 3
.prologue
.line 194
invoke-static {p1, p2}, Lcom/android/common/ServiceManagerCompat;->addService(Ljava/lang/String;Landroid/os/IBinder;)V
.line 195
return-void
.end method
.method public asBinder()Landroid/os/IBinder;
.registers 1
.prologue
.line 61
return-object p0
.end method
.method public b(Ljava/lang/String;)Landroid/os/IBinder;
.registers 5
.prologue
.line 177
iget-object v1, p0, Ldxoptimizer/aov;->a:Ljava/util/HashMap;
monitor-enter v1
.line 178
:try_start_3
iget-object v0, p0, Ldxoptimizer/aov;->a:Ljava/util/HashMap;
invoke-virtual {v0, p1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ldxoptimizer/aox;
.line 179
if-eqz v0, :cond_13
invoke-virtual {v0}, Ldxoptimizer/aox;->isBinderAlive()Z
move-result v2
if-nez v2, :cond_1a
.line 180
:cond_13
invoke-static {p1}, Lcom/android/common/ServiceManagerCompat;->checkService(Ljava/lang/Object;)Landroid/os/IBinder;
move-result-object v2
.line 181
if-nez v2, :cond_1c
.line 182
const/4 v0, 0x0
.line 188
:cond_1a
:goto_1a
monitor-exit v1
.line 189
return-object v0
.line 184
:cond_1c
new-instance v0, Ldxoptimizer/aox;
invoke-direct {v0, v2}, Ldxoptimizer/aox;-><init>(Landroid/os/IBinder;)V
.line 185
iget-object v2, p0, Ldxoptimizer/aov;->a:Ljava/util/HashMap;
invoke-virtual {v2, p1, v0}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
goto :goto_1a
.line 188
:catchall_27
move-exception v0
monitor-exit v1
:try_end_29
.catchall {:try_start_3 .. :try_end_29} :catchall_27
throw v0
.end method
.method public b()[Ljava/lang/String;
.registers 2
.prologue
.line 199
invoke-static {}, Lcom/android/common/ServiceManagerCompat;->listServices()[Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method protected dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
.registers 9
.prologue
.line 241
invoke-super {p0, p1, p2, p3}, Landroid/os/Binder;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
.line 242
const-string v0, "Service: android.os.jbp"
invoke-virtual {p2, v0}, Ljava/io/PrintWriter;->println(Ljava/lang/String;)V
.line 243
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "Version: "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
iget v1, p0, Ldxoptimizer/aov;->c:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-virtual {p2, v0}, Ljava/io/PrintWriter;->println(Ljava/lang/String;)V
.line 244
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "Owner: "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
iget v1, p0, Ldxoptimizer/aov;->b:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-virtual {p2, v0}, Ljava/io/PrintWriter;->println(Ljava/lang/String;)V
.line 245
const-string v0, "Caches: "
invoke-virtual {p2, v0}, Ljava/io/PrintWriter;->println(Ljava/lang/String;)V
.line 246
iget-object v2, p0, Ldxoptimizer/aov;->a:Ljava/util/HashMap;
monitor-enter v2
.line 247
:try_start_40
iget-object v0, p0, Ldxoptimizer/aov;->a:Ljava/util/HashMap;
invoke-virtual {v0}, Ljava/util/HashMap;->entrySet()Ljava/util/Set;
move-result-object v0
invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
move-result-object v3
:goto_4a
invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_8a
invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/util/Map$Entry;
.line 248
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "\t"
invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
invoke-interface {v0}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/lang/String;
invoke-virtual {v4, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v4, ": "
invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-interface {v0}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ldxoptimizer/aox;
invoke-virtual {v0}, Ldxoptimizer/aox;->isBinderAlive()Z
move-result v0
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-virtual {p2, v0}, Ljava/io/PrintWriter;->println(Ljava/lang/String;)V
goto :goto_4a
.line 250
:catchall_87
move-exception v0
monitor-exit v2
:try_end_89
.catchall {:try_start_40 .. :try_end_89} :catchall_87
throw v0
:cond_8a
:try_start_8a
monitor-exit v2
:try_end_8b
.catchall {:try_start_8a .. :try_end_8b} :catchall_87
.line 251
return-void
.end method
.method public onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
.registers 11
.annotation system Ldalvik/annotation/Throws;
value = {
Landroid/os/RemoteException;
}
.end annotation
.prologue
const/4 v0, 0x1
.line 68
invoke-direct {p0, p1}, Ldxoptimizer/aov;->a(I)V
.line 69
packed-switch p1, :pswitch_data_84
.line 124
invoke-super {p0, p1, p2, p3, p4}, Landroid/os/Binder;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
move-result v0
:goto_b
return v0
.line 71
:pswitch_c
const-string v1, "android.os.jbp"
invoke-virtual {p2, v1}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
.line 72
invoke-virtual {p0}, Ldxoptimizer/aov;->a()I
move-result v1
.line 73
invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
.line 74
invoke-virtual {p3, v1}, Landroid/os/Parcel;->writeInt(I)V
goto :goto_b
.line 79
:pswitch_1c
const-string v1, "android.os.jbp"
invoke-virtual {p2, v1}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
.line 80
invoke-virtual {p2}, Landroid/os/Parcel;->readString()Ljava/lang/String;
move-result-object v1
.line 81
invoke-virtual {p0, v1}, Ldxoptimizer/aov;->a(Ljava/lang/String;)Landroid/os/IBinder;
move-result-object v1
.line 82
invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
.line 83
invoke-virtual {p3, v1}, Landroid/os/Parcel;->writeStrongBinder(Landroid/os/IBinder;)V
goto :goto_b
.line 88
:pswitch_30
const-string v1, "android.os.jbp"
invoke-virtual {p2, v1}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
.line 89
invoke-virtual {p2}, Landroid/os/Parcel;->readString()Ljava/lang/String;
move-result-object v1
.line 90
invoke-virtual {p0, v1}, Ldxoptimizer/aov;->b(Ljava/lang/String;)Landroid/os/IBinder;
move-result-object v1
.line 91
invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
.line 92
invoke-virtual {p3, v1}, Landroid/os/Parcel;->writeStrongBinder(Landroid/os/IBinder;)V
goto :goto_b
.line 97
:pswitch_44
const-string v1, "android.os.jbp"
invoke-virtual {p2, v1}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
.line 98
invoke-virtual {p2}, Landroid/os/Parcel;->readString()Ljava/lang/String;
move-result-object v1
.line 99
invoke-virtual {p2}, Landroid/os/Parcel;->readStrongBinder()Landroid/os/IBinder;
move-result-object v2
.line 100
invoke-virtual {p0, v1, v2}, Ldxoptimizer/aov;->a(Ljava/lang/String;Landroid/os/IBinder;)V
.line 101
invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
goto :goto_b
.line 106
:pswitch_58
const-string v1, "android.os.jbp"
invoke-virtual {p2, v1}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
.line 107
invoke-virtual {p0}, Ldxoptimizer/aov;->b()[Ljava/lang/String;
move-result-object v1
.line 108
invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
.line 109
invoke-virtual {p3, v1}, Landroid/os/Parcel;->writeStringArray([Ljava/lang/String;)V
goto :goto_b
.line 114
:pswitch_68
const-string v1, "android.os.jbp"
invoke-virtual {p2, v1}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
.line 115
invoke-virtual {p2}, Landroid/os/Parcel;->readInt()I
move-result v1
.line 116
invoke-virtual {p2}, Landroid/os/Parcel;->readString()Ljava/lang/String;
move-result-object v2
.line 117
invoke-virtual {p2}, Landroid/os/Parcel;->readLong()J
move-result-wide v4
.line 118
invoke-virtual {p0, v1, v2, v4, v5}, Ldxoptimizer/aov;->a(ILjava/lang/String;J)I
move-result v1
.line 119
invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
.line 120
invoke-virtual {p3, v1}, Landroid/os/Parcel;->writeInt(I)V
goto :goto_b
.line 69
:pswitch_data_84
.packed-switch 0x1
:pswitch_c
:pswitch_1c
:pswitch_30
:pswitch_44
:pswitch_58
:pswitch_68
.end packed-switch
.end method