1 diff -Npru stock-core/smali/java/lang/PrivacyInputStream.smali opd-core/smali/java/lang/PrivacyInputStream.smali
2 --- stock-core/smali/java/lang/PrivacyInputStream.smali 1969-12-31 18:00:00.000000000 -0600
3 +++ opd-core/smali/java/lang/PrivacyInputStream.smali 2013-01-09 03:21:39.164141410 -0600
5 +.class public Ljava/lang/PrivacyInputStream;
6 +.super Ljava/io/InputStream;
7 +.source "PrivacyInputStream.java"
11 +.method public constructor <init>()V
14 + invoke-direct {p0}, Ljava/io/InputStream;-><init>()V
21 +.method public close()V
23 + .annotation system Ldalvik/annotation/Throws;
25 + Ljava/io/IOException;
29 + invoke-super {p0}, Ljava/io/InputStream;->close()V
34 +.method public read()I
36 + .annotation system Ldalvik/annotation/Throws;
38 + Ljava/io/IOException;
47 +.method public read([B)I
49 + .annotation system Ldalvik/annotation/Throws;
51 + Ljava/io/IOException;
60 +.method public read([BII)I
62 + .annotation system Ldalvik/annotation/Throws;
64 + Ljava/io/IOException;
72 diff -Npru stock-core/smali/java/lang/PrivacyProcessManager$PrivacyFileReader.smali opd-core/smali/java/lang/PrivacyProcessManager$PrivacyFileReader.smali
73 --- stock-core/smali/java/lang/PrivacyProcessManager$PrivacyFileReader.smali 1969-12-31 18:00:00.000000000 -0600
74 +++ opd-core/smali/java/lang/PrivacyProcessManager$PrivacyFileReader.smali 2013-01-09 03:21:39.164141410 -0600
76 +.class public Ljava/lang/PrivacyProcessManager$PrivacyFileReader;
77 +.super Ljava/lang/Object;
78 +.source "PrivacyProcessManager.java"
82 +.annotation system Ldalvik/annotation/EnclosingClass;
83 + value = Ljava/lang/PrivacyProcessManager;
86 +.annotation system Ldalvik/annotation/InnerClass;
88 + name = "PrivacyFileReader"
93 +.field private buffReader:Ljava/io/BufferedReader;
95 +.field private inputStream:Ljava/io/FileInputStream;
99 +.method public constructor <init>(Ljava/lang/String;)V
101 + .annotation system Ldalvik/annotation/Throws;
103 + Ljava/io/FileNotFoundException;
107 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
109 + new-instance v0, Ljava/io/FileInputStream;
111 + new-instance v1, Ljava/io/File;
113 + invoke-direct {v1, p1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
115 + invoke-direct {v0, v1}, Ljava/io/FileInputStream;-><init>(Ljava/io/File;)V
117 + iput-object v0, p0, Ljava/lang/PrivacyProcessManager$PrivacyFileReader;->inputStream:Ljava/io/FileInputStream;
119 + new-instance v0, Ljava/io/BufferedReader;
121 + new-instance v1, Ljava/io/InputStreamReader;
123 + iget-object v2, p0, Ljava/lang/PrivacyProcessManager$PrivacyFileReader;->inputStream:Ljava/io/FileInputStream;
125 + invoke-direct {v1, v2}, Ljava/io/InputStreamReader;-><init>(Ljava/io/InputStream;)V
127 + invoke-direct {v0, v1}, Ljava/io/BufferedReader;-><init>(Ljava/io/Reader;)V
129 + iput-object v0, p0, Ljava/lang/PrivacyProcessManager$PrivacyFileReader;->buffReader:Ljava/io/BufferedReader;
136 +.method public close()V
138 + .annotation system Ldalvik/annotation/Throws;
140 + Ljava/io/IOException;
144 + iget-object v0, p0, Ljava/lang/PrivacyProcessManager$PrivacyFileReader;->inputStream:Ljava/io/FileInputStream;
146 + invoke-virtual {v0}, Ljava/io/FileInputStream;->close()V
151 +.method public readLine()Ljava/lang/String;
153 + .annotation system Ldalvik/annotation/Throws;
155 + Ljava/io/IOException;
159 + iget-object v0, p0, Ljava/lang/PrivacyProcessManager$PrivacyFileReader;->buffReader:Ljava/io/BufferedReader;
161 + invoke-virtual {v0}, Ljava/io/BufferedReader;->readLine()Ljava/lang/String;
163 + move-result-object v0
167 diff -Npru stock-core/smali/java/lang/PrivacyProcessManager.smali opd-core/smali/java/lang/PrivacyProcessManager.smali
168 --- stock-core/smali/java/lang/PrivacyProcessManager.smali 1969-12-31 18:00:00.000000000 -0600
169 +++ opd-core/smali/java/lang/PrivacyProcessManager.smali 2013-01-09 03:21:39.164141410 -0600
171 +.class public Ljava/lang/PrivacyProcessManager;
172 +.super Ljava/lang/Object;
173 +.source "PrivacyProcessManager.java"
177 +.annotation system Ldalvik/annotation/MemberClasses;
179 + Ljava/lang/PrivacyProcessManager$PrivacyFileReader;
185 +.field private static final GET_COMMAND_WAIT_MS:I = 0xa
187 +.field private static final GET_COMMAND_WAIT_STEP:I = 0x5
191 +.method public constructor <init>()V
194 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
199 +.method private static getPackageName()Ljava/lang/String;
201 + .annotation system Ldalvik/annotation/Throws;
203 + Ljava/io/IOException;,
204 + Ljava/io/FileNotFoundException;
208 + new-instance v0, Ljava/lang/PrivacyProcessManager$PrivacyFileReader;
210 + const-string v2, "/proc/self/cmdline"
212 + invoke-direct {v0, v2}, Ljava/lang/PrivacyProcessManager$PrivacyFileReader;-><init>(Ljava/lang/String;)V
214 + invoke-virtual {v0}, Ljava/lang/PrivacyProcessManager$PrivacyFileReader;->readLine()Ljava/lang/String;
216 + move-result-object v2
218 + invoke-virtual {v2}, Ljava/lang/String;->trim()Ljava/lang/String;
220 + move-result-object v1
222 + invoke-virtual {v0}, Ljava/lang/PrivacyProcessManager$PrivacyFileReader;->close()V
227 +.method public static hasPrivacyPermission(Ljava/lang/String;)Z
235 + invoke-static {}, Ljava/lang/PrivacyProcessManager;->getPackageName()Ljava/lang/String;
237 + move-result-object v6
239 + sget-object v8, Ljava/lang/System;->out:Ljava/io/PrintStream;
241 + new-instance v9, Ljava/lang/StringBuilder;
243 + invoke-direct {v9}, Ljava/lang/StringBuilder;-><init>()V
245 + const-string v10, "PrivacyProcessManager: got package name: "
247 + invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
249 + move-result-object v9
251 + invoke-virtual {v9, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
253 + move-result-object v9
255 + invoke-virtual {v9}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
257 + move-result-object v9
259 + invoke-virtual {v8, v9}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V
261 + .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_1e} :catch_57
267 + new-instance v8, Ljava/lang/StringBuilder;
269 + invoke-direct {v8}, Ljava/lang/StringBuilder;-><init>()V
271 + const-string v9, "/data/system/privacy/"
273 + invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
275 + move-result-object v8
277 + invoke-virtual {v8, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
279 + move-result-object v8
281 + const-string v9, "/"
283 + invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
285 + move-result-object v8
287 + invoke-virtual {v8, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
289 + move-result-object v8
291 + invoke-virtual {v8}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
293 + move-result-object v7
295 + new-instance v3, Ljava/lang/PrivacyProcessManager$PrivacyFileReader;
297 + invoke-direct {v3, v7}, Ljava/lang/PrivacyProcessManager$PrivacyFileReader;-><init>(Ljava/lang/String;)V
299 + .catch Ljava/io/FileNotFoundException; {:try_start_1f .. :try_end_41} :catch_85
300 + .catch Ljava/lang/Exception; {:try_start_1f .. :try_end_41} :catch_65
303 + invoke-virtual {v3}, Ljava/lang/PrivacyProcessManager$PrivacyFileReader;->readLine()Ljava/lang/String;
305 + move-result-object v4
307 + if-eqz v4, :cond_63
309 + invoke-virtual {v4}, Ljava/lang/String;->trim()Ljava/lang/String;
311 + move-result-object v8
313 + invoke-static {v8}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
318 + invoke-virtual {v3}, Ljava/lang/PrivacyProcessManager$PrivacyFileReader;->close()V
320 + .catch Ljava/io/FileNotFoundException; {:try_start_41 .. :try_end_52} :catch_87
321 + .catch Ljava/lang/Exception; {:try_start_41 .. :try_end_52} :catch_82
325 + if-ne v0, v8, :cond_56
336 + sget-object v8, Ljava/lang/System;->err:Ljava/io/PrintStream;
338 + const-string v9, "PrivacyProcessManager: could not find package name"
340 + invoke-virtual {v8, v9}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V
342 + invoke-virtual {v1}, Ljava/lang/Exception;->printStackTrace()V
355 + sget-object v8, Ljava/lang/System;->err:Ljava/io/PrintStream;
357 + new-instance v9, Ljava/lang/StringBuilder;
359 + invoke-direct {v9}, Ljava/lang/StringBuilder;-><init>()V
361 + const-string v10, "PrivacyProcessManager: could not read privacy settings: "
363 + invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
365 + move-result-object v9
367 + invoke-virtual {v9, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
369 + move-result-object v9
371 + invoke-virtual {v9}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
373 + move-result-object v9
375 + invoke-virtual {v8, v9}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V
377 + invoke-virtual {v1}, Ljava/lang/Exception;->printStackTrace()V
401 +.method public static hasPrivacyPermission(Ljava/lang/String;I)Z
409 + invoke-static {}, Ljava/lang/PrivacyProcessManager;->getPackageName()Ljava/lang/String;
411 + .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_5} :catch_39
413 + move-result-object v7
419 + new-instance v11, Ljava/lang/StringBuilder;
421 + invoke-direct {v11}, Ljava/lang/StringBuilder;-><init>()V
423 + const-string v12, "/proc/"
425 + invoke-virtual {v11, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
427 + move-result-object v11
429 + invoke-virtual {v11, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
431 + move-result-object v11
433 + const-string v12, "/cmdline"
435 + invoke-virtual {v11, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
437 + move-result-object v11
439 + invoke-virtual {v11}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
441 + move-result-object v0
443 + new-instance v3, Ljava/lang/PrivacyProcessManager$PrivacyFileReader;
445 + invoke-direct {v3, v0}, Ljava/lang/PrivacyProcessManager$PrivacyFileReader;-><init>(Ljava/lang/String;)V
447 + .catch Ljava/io/FileNotFoundException; {:try_start_7 .. :try_end_25} :catch_b9
448 + .catch Ljava/lang/Exception; {:try_start_7 .. :try_end_25} :catch_97
451 + const-string v8, ""
456 + invoke-virtual {v3}, Ljava/lang/PrivacyProcessManager$PrivacyFileReader;->readLine()Ljava/lang/String;
458 + .catch Ljava/io/FileNotFoundException; {:try_start_25 .. :try_end_2c} :catch_bb
459 + .catch Ljava/lang/Exception; {:try_start_25 .. :try_end_2c} :catch_b6
461 + move-result-object v8
463 + if-nez v8, :cond_45
465 + if-ltz v4, :cond_45
467 + const-wide/16 v11, 0x5
470 + invoke-static {v11, v12}, Ljava/lang/Thread;->sleep(J)V
472 + .catch Ljava/lang/InterruptedException; {:try_start_33 .. :try_end_36} :catch_b4
473 + .catch Ljava/io/FileNotFoundException; {:try_start_33 .. :try_end_36} :catch_bb
474 + .catch Ljava/lang/Exception; {:try_start_33 .. :try_end_36} :catch_b6
477 + add-int/lit8 v4, v4, -0x5
484 + sget-object v11, Ljava/lang/System;->err:Ljava/io/PrintStream;
486 + const-string v12, "PrivacyProcessManager: could not find package name or UID"
488 + invoke-virtual {v11, v12}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V
490 + invoke-virtual {v1}, Ljava/lang/Exception;->printStackTrace()V
496 + invoke-virtual {v3}, Ljava/lang/PrivacyProcessManager$PrivacyFileReader;->close()V
498 + if-eqz v8, :cond_be
500 + invoke-virtual {v8}, Ljava/lang/String;->trim()Ljava/lang/String;
502 + move-result-object v11
504 + invoke-virtual {v11}, Ljava/lang/String;->length()I
510 + if-le v11, v12, :cond_be
512 + const-string v11, "logcat"
514 + invoke-virtual {v8, v11}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
518 + if-eqz v11, :cond_be
520 + new-instance v11, Ljava/lang/StringBuilder;
522 + invoke-direct {v11}, Ljava/lang/StringBuilder;-><init>()V
524 + const-string v12, "/data/system/privacy/"
526 + invoke-virtual {v11, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
528 + move-result-object v11
530 + invoke-virtual {v11, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
532 + move-result-object v11
534 + const-string v12, "/"
536 + invoke-virtual {v11, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
538 + move-result-object v11
540 + invoke-virtual {v11, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
542 + move-result-object v11
544 + invoke-virtual {v11}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
546 + move-result-object v9
548 + new-instance v2, Ljava/lang/PrivacyProcessManager$PrivacyFileReader;
550 + invoke-direct {v2, v9}, Ljava/lang/PrivacyProcessManager$PrivacyFileReader;-><init>(Ljava/lang/String;)V
552 + .catch Ljava/io/FileNotFoundException; {:try_start_45 .. :try_end_7f} :catch_bb
553 + .catch Ljava/lang/Exception; {:try_start_45 .. :try_end_7f} :catch_b6
556 + invoke-virtual {v2}, Ljava/lang/PrivacyProcessManager$PrivacyFileReader;->readLine()Ljava/lang/String;
558 + move-result-object v5
560 + if-eqz v5, :cond_95
562 + invoke-virtual {v5}, Ljava/lang/String;->trim()Ljava/lang/String;
564 + move-result-object v11
566 + invoke-static {v11}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
571 + invoke-virtual {v2}, Ljava/lang/PrivacyProcessManager$PrivacyFileReader;->close()V
573 + .catch Ljava/io/FileNotFoundException; {:try_start_7f .. :try_end_90} :catch_b9
574 + .catch Ljava/lang/Exception; {:try_start_7f .. :try_end_90} :catch_97
578 + if-ne v10, v11, :cond_94
595 + sget-object v11, Ljava/lang/System;->err:Ljava/io/PrintStream;
597 + new-instance v12, Ljava/lang/StringBuilder;
599 + invoke-direct {v12}, Ljava/lang/StringBuilder;-><init>()V
601 + const-string v13, "PrivacyProcessManager: could not read privacy settings: "
603 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
605 + move-result-object v12
607 + invoke-virtual {v12, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
609 + move-result-object v12
611 + invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
613 + move-result-object v12
615 + invoke-virtual {v11, v12}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V
617 + invoke-virtual {v1}, Ljava/lang/Exception;->printStackTrace()V
650 diff -Npru stock-core/smali/java/lang/ProcessManager$ProcessImpl.smali opd-core/smali/java/lang/ProcessManager$ProcessImpl.smali
651 --- stock-core/smali/java/lang/ProcessManager$ProcessImpl.smali 2013-01-09 03:21:24.184067128 -0600
652 +++ opd-core/smali/java/lang/ProcessManager$ProcessImpl.smali 2013-01-09 03:21:39.192141552 -0600
655 .field private final exitValueMutex:Ljava/lang/Object;
657 +.field private fakeProcess:Z
659 .field private final inputStream:Ljava/io/InputStream;
661 .field private final outputStream:Ljava/io/OutputStream;
664 invoke-direct {p0}, Ljava/lang/Process;-><init>()V
668 + iput-boolean v0, p0, Ljava/lang/ProcessManager$ProcessImpl;->fakeProcess:Z
670 + iput-object v1, p0, Ljava/lang/ProcessManager$ProcessImpl;->exitValue:Ljava/lang/Integer;
672 + new-instance v0, Ljava/lang/Object;
674 + invoke-direct {v0}, Ljava/lang/Object;-><init>()V
676 + iput-object v0, p0, Ljava/lang/ProcessManager$ProcessImpl;->exitValueMutex:Ljava/lang/Object;
678 + iput p1, p0, Ljava/lang/ProcessManager$ProcessImpl;->pid:I
680 + new-instance v0, Ljava/lang/ProcessManager$ProcessInputStream;
682 + invoke-direct {v0, p4, v1}, Ljava/lang/ProcessManager$ProcessInputStream;-><init>(Ljava/io/FileDescriptor;Ljava/lang/ProcessManager$1;)V
684 + iput-object v0, p0, Ljava/lang/ProcessManager$ProcessImpl;->errorStream:Ljava/io/InputStream;
686 + const-string v0, "systemLogsSetting"
688 + invoke-static {v0, p1}, Ljava/lang/PrivacyProcessManager;->hasPrivacyPermission(Ljava/lang/String;I)Z
692 + if-eqz v0, :cond_30
694 + new-instance v0, Ljava/lang/ProcessManager$ProcessInputStream;
696 + invoke-direct {v0, p2, v1}, Ljava/lang/ProcessManager$ProcessInputStream;-><init>(Ljava/io/FileDescriptor;Ljava/lang/ProcessManager$1;)V
698 + iput-object v0, p0, Ljava/lang/ProcessManager$ProcessImpl;->inputStream:Ljava/io/InputStream;
701 + new-instance v0, Ljava/lang/ProcessManager$ProcessOutputStream;
703 + invoke-direct {v0, p3, v1}, Ljava/lang/ProcessManager$ProcessOutputStream;-><init>(Ljava/io/FileDescriptor;Ljava/lang/ProcessManager$1;)V
705 + iput-object v0, p0, Ljava/lang/ProcessManager$ProcessImpl;->outputStream:Ljava/io/OutputStream;
710 + new-instance v0, Ljava/lang/PrivacyInputStream;
712 + invoke-direct {v0}, Ljava/lang/PrivacyInputStream;-><init>()V
714 + iput-object v0, p0, Ljava/lang/ProcessManager$ProcessImpl;->inputStream:Ljava/io/InputStream;
719 +.method constructor <init>(ILjava/io/FileDescriptor;Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;Z)V
724 + invoke-direct {p0}, Ljava/lang/Process;-><init>()V
728 + iput-boolean v0, p0, Ljava/lang/ProcessManager$ProcessImpl;->fakeProcess:Z
730 iput-object v1, p0, Ljava/lang/ProcessManager$ProcessImpl;->exitValue:Ljava/lang/Integer;
732 new-instance v0, Ljava/lang/Object;
735 iput-object v0, p0, Ljava/lang/ProcessManager$ProcessImpl;->errorStream:Ljava/io/InputStream;
737 + if-eqz p5, :cond_2a
739 new-instance v0, Ljava/lang/ProcessManager$ProcessInputStream;
741 invoke-direct {v0, p2, v1}, Ljava/lang/ProcessManager$ProcessInputStream;-><init>(Ljava/io/FileDescriptor;Ljava/lang/ProcessManager$1;)V
743 iput-object v0, p0, Ljava/lang/ProcessManager$ProcessImpl;->inputStream:Ljava/io/InputStream;
746 new-instance v0, Ljava/lang/ProcessManager$ProcessOutputStream;
748 invoke-direct {v0, p3, v1}, Ljava/lang/ProcessManager$ProcessOutputStream;-><init>(Ljava/io/FileDescriptor;Ljava/lang/ProcessManager$1;)V
750 iput-object v0, p0, Ljava/lang/ProcessManager$ProcessImpl;->outputStream:Ljava/io/OutputStream;
755 + new-instance v0, Ljava/lang/PrivacyInputStream;
757 + invoke-direct {v0}, Ljava/lang/PrivacyInputStream;-><init>()V
759 + iput-object v0, p0, Ljava/lang/ProcessManager$ProcessImpl;->inputStream:Ljava/io/InputStream;
763 + iput-boolean v0, p0, Ljava/lang/ProcessManager$ProcessImpl;->fakeProcess:Z
768 .method static synthetic access$300(Ljava/lang/ProcessManager$ProcessImpl;)I
772 iget-object v1, p0, Ljava/lang/ProcessManager$ProcessImpl;->exitValue:Ljava/lang/Integer;
774 - .catchall {:try_start_3 .. :try_end_5} :catchall_3b
776 - if-nez v1, :cond_10
779 + iget-boolean v1, p0, Ljava/lang/ProcessManager$ProcessImpl;->fakeProcess:Z
781 + .catchall {:try_start_3 .. :try_end_9} :catchall_3f
784 + if-eqz v1, :cond_14
788 sget-object v1, Llibcore/io/Libcore;->os:Llibcore/io/Os;
790 iget v3, p0, Ljava/lang/ProcessManager$ProcessImpl;->pid:I
792 sget v4, Llibcore/io/OsConstants;->SIGKILL:I
794 invoke-interface {v1, v3, v4}, Llibcore/io/Os;->kill(II)V
796 - .catchall {:try_start_7 .. :try_end_10} :catchall_3b
797 - .catch Llibcore/io/ErrnoException; {:try_start_7 .. :try_end_10} :catch_21
803 + .catchall {:try_start_b .. :try_end_14} :catchall_3f
804 + .catch Llibcore/io/ErrnoException; {:try_start_b .. :try_end_14} :catch_25
811 - .catchall {:try_start_10 .. :try_end_11} :catchall_3b
813 + .catchall {:try_start_14 .. :try_end_15} :catchall_3f
815 iget-object v1, p0, Ljava/lang/ProcessManager$ProcessImpl;->inputStream:Ljava/io/InputStream;
817 @@ -124,10 +211,10 @@
827 new-instance v1, Ljava/lang/StringBuilder;
829 invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
830 @@ -150,14 +237,14 @@
832 invoke-static {v1, v0}, Ljava/lang/System;->logI(Ljava/lang/String;Ljava/lang/Throwable;)V
843 - .catchall {:try_start_22 .. :try_end_3d} :catchall_3b
845 + .catchall {:try_start_26 .. :try_end_41} :catchall_3f
849 @@ -165,14 +252,23 @@
850 .method public exitValue()I
853 + iget-boolean v0, p0, Ljava/lang/ProcessManager$ProcessImpl;->fakeProcess:Z
859 + invoke-virtual {p0, v0}, Ljava/lang/ProcessManager$ProcessImpl;->setExitValue(I)V
862 iget-object v1, p0, Ljava/lang/ProcessManager$ProcessImpl;->exitValueMutex:Ljava/lang/Object;
868 iget-object v0, p0, Ljava/lang/ProcessManager$ProcessImpl;->exitValue:Ljava/lang/Integer;
870 - if-nez v0, :cond_25
871 + if-nez v0, :cond_2d
873 new-instance v0, Ljava/lang/IllegalThreadStateException;
875 @@ -200,17 +296,17 @@
885 - .catchall {:try_start_3 .. :try_end_24} :catchall_22
887 + .catchall {:try_start_b .. :try_end_2c} :catchall_2a
895 iget-object v0, p0, Ljava/lang/ProcessManager$ProcessImpl;->exitValue:Ljava/lang/Integer;
897 invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
903 - .catchall {:try_start_25 .. :try_end_2c} :catchall_22
905 + .catchall {:try_start_2d .. :try_end_34} :catchall_2a
909 diff -Npru stock-core/smali/java/lang/ProcessManager.smali opd-core/smali/java/lang/ProcessManager.smali
910 --- stock-core/smali/java/lang/ProcessManager.smali 2013-01-09 03:21:24.192067163 -0600
911 +++ opd-core/smali/java/lang/ProcessManager.smali 2013-01-09 03:21:39.220141697 -0600
912 @@ -136,6 +136,155 @@
916 +.method private containsIpTableCommand(Ljava/lang/String;)Z
922 + sget-object v6, Ljava/lang/System;->out:Ljava/io/PrintStream;
924 + const-string v7, "now we\'re in containsIpTableCommand"
926 + invoke-virtual {v6, v7}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V
928 + new-instance v3, Ljava/io/FileInputStream;
930 + invoke-direct {v3, p1}, Ljava/io/FileInputStream;-><init>(Ljava/lang/String;)V
932 + new-instance v1, Ljava/io/DataInputStream;
934 + invoke-direct {v1, v3}, Ljava/io/DataInputStream;-><init>(Ljava/io/InputStream;)V
936 + new-instance v0, Ljava/io/BufferedReader;
938 + new-instance v6, Ljava/io/InputStreamReader;
940 + invoke-direct {v6, v1}, Ljava/io/InputStreamReader;-><init>(Ljava/io/InputStream;)V
942 + invoke-direct {v0, v6}, Ljava/io/BufferedReader;-><init>(Ljava/io/Reader;)V
945 + invoke-virtual {v0}, Ljava/io/BufferedReader;->readLine()Ljava/lang/String;
947 + move-result-object v4
949 + if-eqz v4, :cond_6a
951 + const-string v6, "iptables"
953 + invoke-virtual {v4, v6}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
957 + if-nez v6, :cond_32
959 + const-string v6, "ip6tables"
961 + invoke-virtual {v4, v6}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
963 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_2f} :catch_59
967 + if-eqz v6, :cond_1c
971 + invoke-virtual {v1}, Ljava/io/DataInputStream;->close()V
973 + invoke-virtual {v0}, Ljava/io/BufferedReader;->close()V
975 + invoke-virtual {v3}, Ljava/io/FileInputStream;->close()V
977 + .catchall {:try_start_32 .. :try_end_3b} :catchall_62
978 + .catch Ljava/io/IOException; {:try_start_32 .. :try_end_3b} :catch_4a
987 + invoke-static {}, Ljava/lang/System;->gc()V
990 + sget-object v6, Ljava/lang/System;->out:Ljava/io/PrintStream;
992 + const-string v7, "returning true, file contains iptable command"
994 + invoke-virtual {v6, v7}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V
996 + .catch Ljava/lang/Exception; {:try_start_3e .. :try_end_48} :catch_59
1007 + sget-object v6, Ljava/lang/System;->out:Ljava/io/PrintStream;
1009 + const-string v7, "got exception while closing streams"
1011 + invoke-virtual {v6, v7}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V
1013 + .catchall {:try_start_4b .. :try_end_52} :catchall_62
1022 + invoke-static {}, Ljava/lang/System;->gc()V
1024 + .catch Ljava/lang/Exception; {:try_start_55 .. :try_end_58} :catch_59
1031 + sget-object v6, Ljava/lang/System;->out:Ljava/io/PrintStream;
1033 + const-string v7, "returning false,because we got exception while parsing"
1035 + invoke-virtual {v6, v7}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V
1049 + invoke-static {}, Ljava/lang/System;->gc()V
1054 + sget-object v6, Ljava/lang/System;->out:Ljava/io/PrintStream;
1056 + const-string v7, "returning false, file doesn\'t contains iptable command"
1058 + invoke-virtual {v6, v7}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V
1060 + .catch Ljava/lang/Exception; {:try_start_66 .. :try_end_71} :catch_59
1065 .method private static native exec([Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;Z)I
1066 .annotation system Ldalvik/annotation/Throws;
1068 @@ -393,109 +542,390 @@
1071 .method public exec([Ljava/lang/String;[Ljava/lang/String;Ljava/io/File;Z)Ljava/lang/Process;
1074 .annotation system Ldalvik/annotation/Throws;
1076 Ljava/io/IOException;
1080 - if-nez p1, :cond_8
1083 + if-eqz p1, :cond_36
1088 + move-object/from16 v0, p1
1090 + array-length v10, v0
1092 + move/from16 v0, v18
1094 + if-ge v0, v10, :cond_36
1096 + sget-object v10, Ljava/lang/System;->out:Ljava/io/PrintStream;
1098 + new-instance v11, Ljava/lang/StringBuilder;
1100 + invoke-direct {v11}, Ljava/lang/StringBuilder;-><init>()V
1102 + const-string v12, "tainted command part "
1104 + invoke-virtual {v11, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1106 + move-result-object v11
1108 + move/from16 v0, v18
1110 + invoke-virtual {v11, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
1112 + move-result-object v11
1114 + const-string v12, ": "
1116 + invoke-virtual {v11, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1118 + move-result-object v11
1120 + aget-object v12, p1, v18
1122 + invoke-virtual {v11, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1124 + move-result-object v11
1126 + invoke-virtual {v11}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
1128 + move-result-object v11
1130 + invoke-virtual {v10, v11}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V
1132 + add-int/lit8 v18, v18, 0x1
1137 + if-eqz p1, :cond_b4
1139 + move-object/from16 v0, p1
1141 + array-length v10, v0
1143 + if-lez v10, :cond_b4
1147 + aget-object v10, p1, v10
1149 + const-string v11, "su"
1151 + invoke-virtual {v10, v11}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
1155 + if-nez v10, :cond_69
1159 + aget-object v10, p1, v10
1161 + const-string v11, "sh"
1163 + invoke-virtual {v10, v11}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
1167 + if-nez v10, :cond_69
1169 - new-instance v8, Ljava/lang/NullPointerException;
1172 - invoke-direct {v8}, Ljava/lang/NullPointerException;-><init>()V
1173 + aget-object v10, p1, v10
1176 + const-string v11, "bash"
1179 + invoke-virtual {v10, v11}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
1183 + if-nez v10, :cond_69
1187 + aget-object v10, p1, v10
1189 + const-string v11, "rbash"
1191 + invoke-virtual {v10, v11}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
1195 + if-eqz v10, :cond_b4
1201 move-object/from16 v0, p1
1203 - array-length v8, v0
1204 + array-length v10, v0
1206 + move/from16 v0, v18
1208 + if-ge v0, v10, :cond_b4
1210 + sget-object v10, Ljava/lang/System;->out:Ljava/io/PrintStream;
1212 + new-instance v11, Ljava/lang/StringBuilder;
1214 + invoke-direct {v11}, Ljava/lang/StringBuilder;-><init>()V
1216 + const-string v12, "Now test tainted command: "
1218 + invoke-virtual {v11, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1220 + move-result-object v11
1222 + aget-object v12, p1, v18
1224 + invoke-virtual {v11, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1226 + move-result-object v11
1228 + invoke-virtual {v11}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
1230 + move-result-object v11
1232 + invoke-virtual {v10, v11}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V
1234 + aget-object v10, p1, v18
1236 + const-string v11, ".sh"
1238 + invoke-virtual {v10, v11}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
1242 + if-nez v10, :cond_a0
1244 + aget-object v10, p1, v18
1246 + const-string v11, "/"
1248 + invoke-virtual {v10, v11}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
1252 + if-eqz v10, :cond_f6
1255 + aget-object v10, p1, v18
1257 + move-object/from16 v0, p0
1259 + invoke-direct {v0, v10}, Ljava/lang/ProcessManager;->containsIpTableCommand(Ljava/lang/String;)Z
1263 + if-eqz v10, :cond_f6
1265 + const-string v10, "ipTableProtectSetting"
1267 + invoke-static {v10}, Ljava/lang/PrivacyProcessManager;->hasPrivacyPermission(Ljava/lang/String;)Z
1271 + if-nez v10, :cond_f6
1276 + if-eqz p1, :cond_e2
1278 + move-object/from16 v0, p1
1280 + array-length v10, v0
1282 + if-lez v10, :cond_e2
1284 + if-eqz v20, :cond_e2
1289 + move-object/from16 v0, p1
1291 + array-length v10, v0
1293 + move/from16 v0, v18
1295 + if-ge v0, v10, :cond_e2
1297 - if-nez v8, :cond_13
1298 + aget-object v10, p1, v18
1300 - new-instance v8, Ljava/lang/IndexOutOfBoundsException;
1301 + const-string v11, "iptables"
1303 - invoke-direct {v8}, Ljava/lang/IndexOutOfBoundsException;-><init>()V
1304 + invoke-virtual {v10, v11}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
1310 + if-nez v10, :cond_da
1312 + aget-object v10, p1, v18
1314 + const-string v11, "ip6tables"
1316 + invoke-virtual {v10, v11}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
1320 + if-eqz v10, :cond_fc
1323 + const-string v10, "ipTableProtectSetting"
1325 + invoke-static {v10}, Ljava/lang/PrivacyProcessManager;->hasPrivacyPermission(Ljava/lang/String;)Z
1329 + if-eqz v10, :cond_fa
1332 + if-nez v20, :cond_ee
1336 + new-array v0, v10, [Ljava/lang/String;
1338 + move-object/from16 p1, v0
1342 + const-string v11, "su"
1344 + aput-object v11, p1, v10
1347 + if-nez p1, :cond_ff
1349 + new-instance v10, Ljava/lang/NullPointerException;
1351 + invoke-direct {v10}, Ljava/lang/NullPointerException;-><init>()V
1356 + add-int/lit8 v18, v18, 0x1
1364 + add-int/lit8 v18, v18, 0x1
1369 + move-object/from16 v0, p1
1371 + array-length v10, v0
1373 + if-nez v10, :cond_10a
1375 + new-instance v10, Ljava/lang/IndexOutOfBoundsException;
1377 + invoke-direct {v10}, Ljava/lang/IndexOutOfBoundsException;-><init>()V
1382 invoke-virtual/range {p1 .. p1}, [Ljava/lang/String;->clone()Ljava/lang/Object;
1384 move-result-object v2
1386 check-cast v2, [Ljava/lang/String;
1388 - if-eqz p2, :cond_31
1389 + if-eqz p2, :cond_12f
1391 invoke-virtual/range {p2 .. p2}, [Ljava/lang/String;->clone()Ljava/lang/Object;
1393 - move-result-object v8
1394 + move-result-object v10
1396 - check-cast v8, [Ljava/lang/String;
1397 + check-cast v10, [Ljava/lang/String;
1399 - move-object v3, v8
1400 + move-object v3, v10
1403 - move-object v10, v2
1405 + move-object v15, v2
1407 - array-length v14, v10
1408 + array-length v0, v15
1411 + move/from16 v21, v0
1416 - if-ge v13, v14, :cond_36
1418 + move/from16 v0, v19
1420 - aget-object v9, v10, v13
1421 + move/from16 v1, v21
1423 - if-nez v9, :cond_33
1424 + if-ge v0, v1, :cond_134
1426 - new-instance v8, Ljava/lang/NullPointerException;
1427 + aget-object v14, v15, v19
1429 - invoke-direct {v8}, Ljava/lang/NullPointerException;-><init>()V
1430 + if-nez v14, :cond_131
1433 + new-instance v10, Ljava/lang/NullPointerException;
1436 + invoke-direct {v10}, Ljava/lang/NullPointerException;-><init>()V
1447 - add-int/lit8 v13, v13, 0x1
1449 + add-int/lit8 v19, v19, 0x1
1455 - if-eqz v3, :cond_4a
1457 + if-eqz v3, :cond_14f
1459 - move-object v10, v3
1460 + move-object v15, v3
1462 - array-length v14, v10
1463 + array-length v0, v15
1466 + move/from16 v21, v0
1471 + move/from16 v0, v19
1473 + move/from16 v1, v21
1476 - if-ge v13, v14, :cond_4a
1477 + if-ge v0, v1, :cond_14f
1479 - aget-object v12, v10, v13
1480 + aget-object v17, v15, v19
1482 - if-nez v12, :cond_47
1483 + if-nez v17, :cond_14c
1485 - new-instance v8, Ljava/lang/NullPointerException;
1486 + new-instance v10, Ljava/lang/NullPointerException;
1488 - invoke-direct {v8}, Ljava/lang/NullPointerException;-><init>()V
1489 + invoke-direct {v10}, Ljava/lang/NullPointerException;-><init>()V
1495 - add-int/lit8 v13, v13, 0x1
1497 + add-int/lit8 v19, v19, 0x1
1504 new-instance v5, Ljava/io/FileDescriptor;
1506 invoke-direct {v5}, Ljava/io/FileDescriptor;-><init>()V
1507 @@ -508,161 +938,168 @@
1509 invoke-direct {v7}, Ljava/io/FileDescriptor;-><init>()V
1511 - if-nez p3, :cond_95
1512 + if-nez p3, :cond_196
1518 move-object/from16 v0, p0
1520 iget-object v0, v0, Ljava/lang/ProcessManager;->processReferences:Ljava/util/Map;
1522 - move-object/from16 v19, v0
1523 + move-object/from16 v24, v0
1532 invoke-static/range {v2 .. v8}, Ljava/lang/ProcessManager;->exec([Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;Z)I
1534 - .catchall {:try_start_65 .. :try_end_68} :catchall_e3
1535 - .catch Ljava/io/IOException; {:try_start_65 .. :try_end_68} :catch_9a
1537 + .catchall {:try_start_16a .. :try_end_16d} :catchall_1dc
1538 + .catch Ljava/io/IOException; {:try_start_16a .. :try_end_16d} :catch_19b
1544 - new-instance v16, Ljava/lang/ProcessManager$ProcessImpl;
1545 + if-eqz v20, :cond_1df
1547 - move-object/from16 v0, v16
1549 + new-instance v8, Ljava/lang/ProcessManager$ProcessImpl;
1551 - invoke-direct {v0, v15, v5, v6, v7}, Ljava/lang/ProcessManager$ProcessImpl;-><init>(ILjava/io/FileDescriptor;Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;)V
1552 + invoke-direct {v8, v9, v5, v6, v7}, Ljava/lang/ProcessManager$ProcessImpl;-><init>(ILjava/io/FileDescriptor;Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;)V
1554 - new-instance v17, Ljava/lang/ProcessManager$ProcessReference;
1556 + new-instance v22, Ljava/lang/ProcessManager$ProcessReference;
1558 move-object/from16 v0, p0
1560 - iget-object v8, v0, Ljava/lang/ProcessManager;->referenceQueue:Ljava/lang/ProcessManager$ProcessReferenceQueue;
1561 + iget-object v10, v0, Ljava/lang/ProcessManager;->referenceQueue:Ljava/lang/ProcessManager$ProcessReferenceQueue;
1563 - move-object/from16 v0, v17
1564 + move-object/from16 v0, v22
1566 - move-object/from16 v1, v16
1568 - invoke-direct {v0, v1, v8}, Ljava/lang/ProcessManager$ProcessReference;-><init>(Ljava/lang/ProcessManager$ProcessImpl;Ljava/lang/ProcessManager$ProcessReferenceQueue;)V
1569 + invoke-direct {v0, v8, v10}, Ljava/lang/ProcessManager$ProcessReference;-><init>(Ljava/lang/ProcessManager$ProcessImpl;Ljava/lang/ProcessManager$ProcessReferenceQueue;)V
1571 move-object/from16 v0, p0
1573 - iget-object v8, v0, Ljava/lang/ProcessManager;->processReferences:Ljava/util/Map;
1574 + iget-object v10, v0, Ljava/lang/ProcessManager;->processReferences:Ljava/util/Map;
1576 - invoke-static {v15}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
1577 + invoke-static {v9}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
1579 - move-result-object v20
1580 + move-result-object v11
1582 - move-object/from16 v0, v20
1583 + move-object/from16 v0, v22
1585 - move-object/from16 v1, v17
1587 - invoke-interface {v8, v0, v1}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
1588 + invoke-interface {v10, v11, v0}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
1590 move-object/from16 v0, p0
1592 - iget-object v8, v0, Ljava/lang/ProcessManager;->processReferences:Ljava/util/Map;
1593 + iget-object v10, v0, Ljava/lang/ProcessManager;->processReferences:Ljava/util/Map;
1595 - invoke-virtual {v8}, Ljava/lang/Object;->notifyAll()V
1596 + invoke-virtual {v10}, Ljava/lang/Object;->notifyAll()V
1600 - .catchall {:try_start_69 .. :try_end_94} :catchall_e3
1603 + .catchall {:try_start_170 .. :try_end_195} :catchall_1dc
1610 invoke-virtual/range {p3 .. p3}, Ljava/io/File;->getPath()Ljava/lang/String;
1612 move-result-object v4
1617 - move-exception v11
1621 - new-instance v18, Ljava/io/IOException;
1623 + move-exception v16
1625 - new-instance v8, Ljava/lang/StringBuilder;
1627 + new-instance v23, Ljava/io/IOException;
1629 - invoke-direct {v8}, Ljava/lang/StringBuilder;-><init>()V
1630 + new-instance v10, Ljava/lang/StringBuilder;
1632 - const-string v20, "Error running exec(). Command: "
1633 + invoke-direct {v10}, Ljava/lang/StringBuilder;-><init>()V
1635 - move-object/from16 v0, v20
1636 + const-string v11, "Error running exec(). Command: "
1638 - invoke-virtual {v8, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1639 + invoke-virtual {v10, v11}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1641 - move-result-object v8
1642 + move-result-object v10
1644 invoke-static {v2}, Ljava/util/Arrays;->toString([Ljava/lang/Object;)Ljava/lang/String;
1646 - move-result-object v20
1647 + move-result-object v11
1649 - move-object/from16 v0, v20
1650 + invoke-virtual {v10, v11}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1652 - invoke-virtual {v8, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1653 + move-result-object v10
1655 - move-result-object v8
1656 + const-string v11, " Working Directory: "
1658 - const-string v20, " Working Directory: "
1659 + invoke-virtual {v10, v11}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1661 - move-object/from16 v0, v20
1662 + move-result-object v10
1664 - invoke-virtual {v8, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1665 + move-object/from16 v0, p3
1667 - move-result-object v8
1668 + invoke-virtual {v10, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
1670 - move-object/from16 v0, p3
1671 + move-result-object v10
1673 + const-string v11, " Environment: "
1675 - invoke-virtual {v8, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
1676 + invoke-virtual {v10, v11}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1678 - move-result-object v8
1679 + move-result-object v10
1681 - const-string v20, " Environment: "
1682 + invoke-static {v3}, Ljava/util/Arrays;->toString([Ljava/lang/Object;)Ljava/lang/String;
1684 - move-object/from16 v0, v20
1685 + move-result-object v11
1687 - invoke-virtual {v8, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1688 + invoke-virtual {v10, v11}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1690 - move-result-object v8
1691 + move-result-object v10
1693 - invoke-static {v3}, Ljava/util/Arrays;->toString([Ljava/lang/Object;)Ljava/lang/String;
1694 + invoke-virtual {v10}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
1696 - move-result-object v20
1697 + move-result-object v10
1699 - move-object/from16 v0, v20
1700 + move-object/from16 v0, v23
1702 - invoke-virtual {v8, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1703 + invoke-direct {v0, v10}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
1705 - move-result-object v8
1706 + move-object/from16 v0, v23
1708 + move-object/from16 v1, v16
1710 - invoke-virtual {v8}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
1711 + invoke-virtual {v0, v1}, Ljava/io/IOException;->initCause(Ljava/lang/Throwable;)Ljava/lang/Throwable;
1713 - move-result-object v8
1716 - move-object/from16 v0, v18
1718 + move-exception v10
1720 - invoke-direct {v0, v8}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
1723 + .catchall {:try_start_19c .. :try_end_1de} :catchall_1dc
1725 - move-object/from16 v0, v18
1730 + new-instance v8, Ljava/lang/ProcessManager$ProcessImpl;
1734 - invoke-virtual {v0, v11}, Ljava/io/IOException;->initCause(Ljava/lang/Throwable;)Ljava/lang/Throwable;
1735 + move-object v10, v5
1738 + move-object v11, v6
1742 + move-object v12, v7
1746 - .catchall {:try_start_9b .. :try_end_e5} :catchall_e3
1747 + invoke-direct/range {v8 .. v13}, Ljava/lang/ProcessManager$ProcessImpl;-><init>(ILjava/io/FileDescriptor;Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;Z)V
1749 + .catchall {:try_start_1df .. :try_end_1e8} :catchall_1dc