Add SlimRom OpenPdroid; Hide folders+rearrange for ApG
[auto-patcher.git] / patches / openpdroid / 4.1 / aosp / 20130109 / core.patch
blob2afaa8ad5b7a989f21e7e138eab8216588b56ecd
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 01:56:11.314713779 -0600
4 @@ -0,0 +1,67 @@
5 +.class public Ljava/lang/PrivacyInputStream;
6 +.super Ljava/io/InputStream;
7 +.source "PrivacyInputStream.java"
10 +# direct methods
11 +.method public constructor <init>()V
12 + .registers 1
14 + invoke-direct {p0}, Ljava/io/InputStream;-><init>()V
16 + return-void
17 +.end method
20 +# virtual methods
21 +.method public close()V
22 + .registers 1
23 + .annotation system Ldalvik/annotation/Throws;
24 + value = {
25 + Ljava/io/IOException;
26 + }
27 + .end annotation
29 + invoke-super {p0}, Ljava/io/InputStream;->close()V
31 + return-void
32 +.end method
34 +.method public read()I
35 + .registers 2
36 + .annotation system Ldalvik/annotation/Throws;
37 + value = {
38 + Ljava/io/IOException;
39 + }
40 + .end annotation
42 + const/4 v0, -0x1
44 + return v0
45 +.end method
47 +.method public read([B)I
48 + .registers 3
49 + .annotation system Ldalvik/annotation/Throws;
50 + value = {
51 + Ljava/io/IOException;
52 + }
53 + .end annotation
55 + const/4 v0, -0x1
57 + return v0
58 +.end method
60 +.method public read([BII)I
61 + .registers 5
62 + .annotation system Ldalvik/annotation/Throws;
63 + value = {
64 + Ljava/io/IOException;
65 + }
66 + .end annotation
68 + const/4 v0, -0x1
70 + return v0
71 +.end method
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 01:56:11.314713779 -0600
75 @@ -0,0 +1,91 @@
76 +.class public Ljava/lang/PrivacyProcessManager$PrivacyFileReader;
77 +.super Ljava/lang/Object;
78 +.source "PrivacyProcessManager.java"
81 +# annotations
82 +.annotation system Ldalvik/annotation/EnclosingClass;
83 + value = Ljava/lang/PrivacyProcessManager;
84 +.end annotation
86 +.annotation system Ldalvik/annotation/InnerClass;
87 + accessFlags = 0x9
88 + name = "PrivacyFileReader"
89 +.end annotation
92 +# instance fields
93 +.field private buffReader:Ljava/io/BufferedReader;
95 +.field private inputStream:Ljava/io/FileInputStream;
98 +# direct methods
99 +.method public constructor <init>(Ljava/lang/String;)V
100 + .registers 5
101 + .annotation system Ldalvik/annotation/Throws;
102 + value = {
103 + Ljava/io/FileNotFoundException;
105 + .end annotation
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;
131 + return-void
132 +.end method
135 +# virtual methods
136 +.method public close()V
137 + .registers 2
138 + .annotation system Ldalvik/annotation/Throws;
139 + value = {
140 + Ljava/io/IOException;
142 + .end annotation
144 + iget-object v0, p0, Ljava/lang/PrivacyProcessManager$PrivacyFileReader;->inputStream:Ljava/io/FileInputStream;
146 + invoke-virtual {v0}, Ljava/io/FileInputStream;->close()V
148 + return-void
149 +.end method
151 +.method public readLine()Ljava/lang/String;
152 + .registers 2
153 + .annotation system Ldalvik/annotation/Throws;
154 + value = {
155 + Ljava/io/IOException;
157 + .end annotation
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
165 + return-object v0
166 +.end method
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 01:56:11.314713779 -0600
170 @@ -0,0 +1,479 @@
171 +.class public Ljava/lang/PrivacyProcessManager;
172 +.super Ljava/lang/Object;
173 +.source "PrivacyProcessManager.java"
176 +# annotations
177 +.annotation system Ldalvik/annotation/MemberClasses;
178 + value = {
179 + Ljava/lang/PrivacyProcessManager$PrivacyFileReader;
181 +.end annotation
184 +# static fields
185 +.field private static final GET_COMMAND_WAIT_MS:I = 0xa
187 +.field private static final GET_COMMAND_WAIT_STEP:I = 0x5
190 +# direct methods
191 +.method public constructor <init>()V
192 + .registers 1
194 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
196 + return-void
197 +.end method
199 +.method private static getPackageName()Ljava/lang/String;
200 + .registers 3
201 + .annotation system Ldalvik/annotation/Throws;
202 + value = {
203 + Ljava/io/IOException;,
204 + Ljava/io/FileNotFoundException;
206 + .end annotation
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
224 + return-object v1
225 +.end method
227 +.method public static hasPrivacyPermission(Ljava/lang/String;)Z
228 + .registers 12
230 + const/4 v6, 0x0
232 + const/4 v5, 0x1
234 + :try_start_2
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
260 + :try_end_1e
261 + .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_1e} :catch_57
263 + :goto_1e
264 + const/4 v2, 0x0
266 + :try_start_1f
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
298 + :try_end_41
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
302 + :try_start_41
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
315 + move-result v0
317 + :goto_4f
318 + invoke-virtual {v3}, Ljava/lang/PrivacyProcessManager$PrivacyFileReader;->close()V
319 + :try_end_52
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
323 + const/4 v8, 0x1
325 + if-ne v0, v8, :cond_56
327 + const/4 v5, 0x0
329 + :cond_56
330 + :goto_56
331 + return v5
333 + :catch_57
334 + move-exception v1
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
344 + goto :goto_1e
346 + :cond_63
347 + const/4 v0, -0x1
349 + goto :goto_4f
351 + :catch_65
352 + move-exception v1
354 + :goto_66
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
379 + goto :goto_56
381 + :catch_82
382 + move-exception v1
384 + move-object v2, v3
386 + goto :goto_66
388 + :catch_85
389 + move-exception v8
391 + goto :goto_56
393 + :catch_87
394 + move-exception v8
396 + move-object v2, v3
398 + goto :goto_56
399 +.end method
401 +.method public static hasPrivacyPermission(Ljava/lang/String;I)Z
402 + .registers 16
404 + const/4 v7, 0x0
406 + const/4 v6, 0x1
408 + :try_start_2
409 + invoke-static {}, Ljava/lang/PrivacyProcessManager;->getPackageName()Ljava/lang/String;
410 + :try_end_5
411 + .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_5} :catch_39
413 + move-result-object v7
415 + :goto_6
416 + const/4 v2, 0x0
418 + :try_start_7
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
446 + :try_end_25
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
450 + :try_start_25
451 + const-string v8, ""
453 + const/16 v4, 0xa
455 + :goto_29
456 + invoke-virtual {v3}, Ljava/lang/PrivacyProcessManager$PrivacyFileReader;->readLine()Ljava/lang/String;
457 + :try_end_2c
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
469 + :try_start_33
470 + invoke-static {v11, v12}, Ljava/lang/Thread;->sleep(J)V
471 + :try_end_36
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
476 + :goto_36
477 + add-int/lit8 v4, v4, -0x5
479 + goto :goto_29
481 + :catch_39
482 + move-exception v1
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
492 + goto :goto_6
494 + :cond_45
495 + :try_start_45
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
506 + move-result v11
508 + const/4 v12, 0x5
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
516 + move-result v11
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
551 + :try_end_7f
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
555 + :try_start_7f
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
568 + move-result v10
570 + :goto_8d
571 + invoke-virtual {v2}, Ljava/lang/PrivacyProcessManager$PrivacyFileReader;->close()V
572 + :try_end_90
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
576 + const/4 v11, 0x1
578 + if-ne v10, v11, :cond_94
580 + const/4 v6, 0x0
582 + :cond_94
583 + :goto_94
584 + return v6
586 + :cond_95
587 + const/4 v10, -0x1
589 + goto :goto_8d
591 + :catch_97
592 + move-exception v1
594 + :goto_98
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
619 + goto :goto_94
621 + :catch_b4
622 + move-exception v11
624 + goto :goto_36
626 + :catch_b6
627 + move-exception v1
629 + move-object v2, v3
631 + goto :goto_98
633 + :catch_b9
634 + move-exception v11
636 + goto :goto_94
638 + :catch_bb
639 + move-exception v11
641 + move-object v2, v3
643 + goto :goto_94
645 + :cond_be
646 + move-object v2, v3
648 + goto :goto_94
649 +.end method
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 01:56:25.198782630 -0600
652 +++ opd-core/smali/java/lang/ProcessManager$ProcessImpl.smali 2013-01-09 01:56:11.326713837 -0600
653 @@ -21,6 +21,8 @@
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;
662 @@ -36,6 +38,70 @@
664 invoke-direct {p0}, Ljava/lang/Process;-><init>()V
666 + const/4 v0, 0x0
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
690 + move-result v0
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;
700 + :goto_28
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;
707 + return-void
709 + :cond_30
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;
716 + goto :goto_28
717 +.end method
719 +.method constructor <init>(ILjava/io/FileDescriptor;Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;Z)V
720 + .registers 8
722 + const/4 v1, 0x0
724 + invoke-direct {p0}, Ljava/lang/Process;-><init>()V
726 + const/4 v0, 0x0
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;
733 @@ -52,12 +118,15 @@
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;
745 + :goto_22
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
749 @@ -65,6 +134,19 @@
750 iput-object v0, p0, Ljava/lang/ProcessManager$ProcessImpl;->outputStream:Ljava/io/OutputStream;
752 return-void
754 + :cond_2a
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;
761 + const/4 v0, 0x1
763 + iput-boolean v0, p0, Ljava/lang/ProcessManager$ProcessImpl;->fakeProcess:Z
765 + goto :goto_22
766 .end method
768 .method static synthetic access$300(Ljava/lang/ProcessManager$ProcessImpl;)I
769 @@ -86,12 +168,17 @@
771 :try_start_3
772 iget-object v1, p0, Ljava/lang/ProcessManager$ProcessImpl;->exitValue:Ljava/lang/Integer;
773 - :try_end_5
774 - .catchall {:try_start_3 .. :try_end_5} :catchall_3b
776 - if-nez v1, :cond_10
777 + if-eqz v1, :cond_b
779 + iget-boolean v1, p0, Ljava/lang/ProcessManager$ProcessImpl;->fakeProcess:Z
780 + :try_end_9
781 + .catchall {:try_start_3 .. :try_end_9} :catchall_3f
783 - :try_start_7
784 + if-eqz v1, :cond_14
786 + :cond_b
787 + :try_start_b
788 sget-object v1, Llibcore/io/Libcore;->os:Llibcore/io/Os;
790 iget v3, p0, Ljava/lang/ProcessManager$ProcessImpl;->pid:I
791 @@ -99,16 +186,16 @@
792 sget v4, Llibcore/io/OsConstants;->SIGKILL:I
794 invoke-interface {v1, v3, v4}, Llibcore/io/Os;->kill(II)V
795 - :try_end_10
796 - .catchall {:try_start_7 .. :try_end_10} :catchall_3b
797 - .catch Llibcore/io/ErrnoException; {:try_start_7 .. :try_end_10} :catch_21
799 - :cond_10
800 - :goto_10
801 - :try_start_10
802 + :try_end_14
803 + .catchall {:try_start_b .. :try_end_14} :catchall_3f
804 + .catch Llibcore/io/ErrnoException; {:try_start_b .. :try_end_14} :catch_25
806 + :cond_14
807 + :goto_14
808 + :try_start_14
809 monitor-exit v2
810 - :try_end_11
811 - .catchall {:try_start_10 .. :try_end_11} :catchall_3b
812 + :try_end_15
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 @@
819 return-void
821 - :catch_21
822 + :catch_25
823 move-exception v0
825 - :try_start_22
826 + :try_start_26
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
834 - goto :goto_10
835 + goto :goto_14
837 - :catchall_3b
838 + :catchall_3f
839 move-exception v1
841 monitor-exit v2
842 - :try_end_3d
843 - .catchall {:try_start_22 .. :try_end_3d} :catchall_3b
844 + :try_end_41
845 + .catchall {:try_start_26 .. :try_end_41} :catchall_3f
847 throw v1
848 .end method
849 @@ -165,14 +252,23 @@
850 .method public exitValue()I
851 .registers 5
853 + iget-boolean v0, p0, Ljava/lang/ProcessManager$ProcessImpl;->fakeProcess:Z
855 + if-eqz v0, :cond_8
857 + const/4 v0, 0x0
859 + invoke-virtual {p0, v0}, Ljava/lang/ProcessManager$ProcessImpl;->setExitValue(I)V
861 + :cond_8
862 iget-object v1, p0, Ljava/lang/ProcessManager$ProcessImpl;->exitValueMutex:Ljava/lang/Object;
864 monitor-enter v1
866 - :try_start_3
867 + :try_start_b
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 @@
877 throw v0
879 - :catchall_22
880 + :catchall_2a
881 move-exception v0
883 monitor-exit v1
884 - :try_end_24
885 - .catchall {:try_start_3 .. :try_end_24} :catchall_22
886 + :try_end_2c
887 + .catchall {:try_start_b .. :try_end_2c} :catchall_2a
889 throw v0
891 - :cond_25
892 - :try_start_25
893 + :cond_2d
894 + :try_start_2d
895 iget-object v0, p0, Ljava/lang/ProcessManager$ProcessImpl;->exitValue:Ljava/lang/Integer;
897 invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
898 @@ -218,8 +314,8 @@
899 move-result v0
901 monitor-exit v1
902 - :try_end_2c
903 - .catchall {:try_start_25 .. :try_end_2c} :catchall_22
904 + :try_end_34
905 + .catchall {:try_start_2d .. :try_end_34} :catchall_2a
907 return v0
908 .end method
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 01:56:25.214782704 -0600
911 +++ opd-core/smali/java/lang/ProcessManager.smali 2013-01-09 01:56:11.338713895 -0600
912 @@ -136,6 +136,155 @@
913 return-void
914 .end method
916 +.method private containsIpTableCommand(Ljava/lang/String;)Z
917 + .registers 10
919 + const/4 v5, 0x0
921 + :try_start_1
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
944 + :cond_1c
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
955 + move-result v6
957 + if-nez v6, :cond_32
959 + const-string v6, "ip6tables"
961 + invoke-virtual {v4, v6}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
962 + :try_end_2f
963 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_2f} :catch_59
965 + move-result v6
967 + if-eqz v6, :cond_1c
969 + :cond_32
970 + :try_start_32
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
976 + :try_end_3b
977 + .catchall {:try_start_32 .. :try_end_3b} :catchall_62
978 + .catch Ljava/io/IOException; {:try_start_32 .. :try_end_3b} :catch_4a
980 + const/4 v3, 0x0
982 + const/4 v1, 0x0
984 + const/4 v0, 0x0
986 + :try_start_3e
987 + invoke-static {}, Ljava/lang/System;->gc()V
989 + :goto_41
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
995 + :try_end_48
996 + .catch Ljava/lang/Exception; {:try_start_3e .. :try_end_48} :catch_59
998 + const/4 v5, 0x1
1000 + :goto_49
1001 + return v5
1003 + :catch_4a
1004 + move-exception v2
1006 + :try_start_4b
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
1012 + :try_end_52
1013 + .catchall {:try_start_4b .. :try_end_52} :catchall_62
1015 + const/4 v3, 0x0
1017 + const/4 v1, 0x0
1019 + const/4 v0, 0x0
1021 + :try_start_55
1022 + invoke-static {}, Ljava/lang/System;->gc()V
1023 + :try_end_58
1024 + .catch Ljava/lang/Exception; {:try_start_55 .. :try_end_58} :catch_59
1026 + goto :goto_41
1028 + :catch_59
1029 + move-exception v2
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
1037 + goto :goto_49
1039 + :catchall_62
1040 + move-exception v6
1042 + const/4 v3, 0x0
1044 + const/4 v1, 0x0
1046 + const/4 v0, 0x0
1048 + :try_start_66
1049 + invoke-static {}, Ljava/lang/System;->gc()V
1051 + throw v6
1053 + :cond_6a
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
1059 + :try_end_71
1060 + .catch Ljava/lang/Exception; {:try_start_66 .. :try_end_71} :catch_59
1062 + goto :goto_49
1063 +.end method
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;
1067 value = {
1068 @@ -393,109 +542,390 @@
1070 # virtual methods
1071 .method public exec([Ljava/lang/String;[Ljava/lang/String;Ljava/io/File;Z)Ljava/lang/Process;
1072 - .registers 26
1073 + .registers 30
1074 .annotation system Ldalvik/annotation/Throws;
1075 value = {
1076 Ljava/io/IOException;
1078 .end annotation
1080 - if-nez p1, :cond_8
1081 + const/16 v20, 0x1
1083 + if-eqz p1, :cond_36
1085 + const/16 v18, 0x0
1087 + :goto_6
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
1134 + goto :goto_6
1136 + :cond_36
1137 + if-eqz p1, :cond_b4
1139 + move-object/from16 v0, p1
1141 + array-length v10, v0
1143 + if-lez v10, :cond_b4
1145 + const/4 v10, 0x0
1147 + aget-object v10, p1, v10
1149 + const-string v11, "su"
1151 + invoke-virtual {v10, v11}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
1153 + move-result v10
1155 + if-nez v10, :cond_69
1157 + const/4 v10, 0x0
1159 + aget-object v10, p1, v10
1161 + const-string v11, "sh"
1163 + invoke-virtual {v10, v11}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
1165 + move-result v10
1167 + if-nez v10, :cond_69
1169 - new-instance v8, Ljava/lang/NullPointerException;
1170 + const/4 v10, 0x0
1172 - invoke-direct {v8}, Ljava/lang/NullPointerException;-><init>()V
1173 + aget-object v10, p1, v10
1175 - throw v8
1176 + const-string v11, "bash"
1178 - :cond_8
1179 + invoke-virtual {v10, v11}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
1181 + move-result v10
1183 + if-nez v10, :cond_69
1185 + const/4 v10, 0x0
1187 + aget-object v10, p1, v10
1189 + const-string v11, "rbash"
1191 + invoke-virtual {v10, v11}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
1193 + move-result v10
1195 + if-eqz v10, :cond_b4
1197 + :cond_69
1198 + const/16 v18, 0x0
1200 + :goto_6b
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
1240 + move-result v10
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
1250 + move-result v10
1252 + if-eqz v10, :cond_f6
1254 + :cond_a0
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
1261 + move-result v10
1263 + if-eqz v10, :cond_f6
1265 + const-string v10, "ipTableProtectSetting"
1267 + invoke-static {v10}, Ljava/lang/PrivacyProcessManager;->hasPrivacyPermission(Ljava/lang/String;)Z
1269 + move-result v10
1271 + if-nez v10, :cond_f6
1273 + const/16 v20, 0x0
1275 + :cond_b4
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
1286 + const/16 v18, 0x0
1288 + :goto_bf
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
1306 - throw v8
1307 + move-result v10
1309 - :cond_13
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
1318 + move-result v10
1320 + if-eqz v10, :cond_fc
1322 + :cond_da
1323 + const-string v10, "ipTableProtectSetting"
1325 + invoke-static {v10}, Ljava/lang/PrivacyProcessManager;->hasPrivacyPermission(Ljava/lang/String;)Z
1327 + move-result v10
1329 + if-eqz v10, :cond_fa
1331 + :cond_e2
1332 + if-nez v20, :cond_ee
1334 + const/4 v10, 0x1
1336 + new-array v0, v10, [Ljava/lang/String;
1338 + move-object/from16 p1, v0
1340 + const/4 v10, 0x0
1342 + const-string v11, "su"
1344 + aput-object v11, p1, v10
1346 + :cond_ee
1347 + if-nez p1, :cond_ff
1349 + new-instance v10, Ljava/lang/NullPointerException;
1351 + invoke-direct {v10}, Ljava/lang/NullPointerException;-><init>()V
1353 + throw v10
1355 + :cond_f6
1356 + add-int/lit8 v18, v18, 0x1
1358 + goto/16 :goto_6b
1360 + :cond_fa
1361 + const/16 v20, 0x0
1363 + :cond_fc
1364 + add-int/lit8 v18, v18, 0x1
1366 + goto :goto_bf
1368 + :cond_ff
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
1379 + throw v10
1381 + :cond_10a
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
1402 - :goto_22
1403 - move-object v10, v2
1404 + :goto_119
1405 + move-object v15, v2
1407 - array-length v14, v10
1408 + array-length v0, v15
1410 - const/4 v13, 0x0
1411 + move/from16 v21, v0
1413 + const/16 v19, 0x0
1415 - :goto_25
1416 - if-ge v13, v14, :cond_36
1417 + :goto_11f
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
1432 - throw v8
1433 + new-instance v10, Ljava/lang/NullPointerException;
1435 - :cond_31
1436 + invoke-direct {v10}, Ljava/lang/NullPointerException;-><init>()V
1438 + throw v10
1440 + :cond_12f
1441 const/4 v3, 0x0
1443 - goto :goto_22
1444 + goto :goto_119
1446 - :cond_33
1447 - add-int/lit8 v13, v13, 0x1
1448 + :cond_131
1449 + add-int/lit8 v19, v19, 0x1
1451 - goto :goto_25
1452 + goto :goto_11f
1454 - :cond_36
1455 - if-eqz v3, :cond_4a
1456 + :cond_134
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
1465 - const/4 v13, 0x0
1466 + move/from16 v21, v0
1468 + const/16 v19, 0x0
1470 + :goto_13c
1471 + move/from16 v0, v19
1473 + move/from16 v1, v21
1475 - :goto_3b
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
1491 - throw v8
1492 + throw v10
1494 - :cond_47
1495 - add-int/lit8 v13, v13, 0x1
1496 + :cond_14c
1497 + add-int/lit8 v19, v19, 0x1
1499 - goto :goto_3b
1500 + goto :goto_13c
1502 - :cond_4a
1503 + :cond_14f
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
1514 const/4 v4, 0x0
1516 - :goto_5c
1517 + :goto_161
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
1525 - monitor-enter v19
1526 + monitor-enter v24
1528 move/from16 v8, p4
1530 - :try_start_65
1531 + :try_start_16a
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
1533 - :try_end_68
1534 - .catchall {:try_start_65 .. :try_end_68} :catchall_e3
1535 - .catch Ljava/io/IOException; {:try_start_65 .. :try_end_68} :catch_9a
1536 + :try_end_16d
1537 + .catchall {:try_start_16a .. :try_end_16d} :catchall_1dc
1538 + .catch Ljava/io/IOException; {:try_start_16a .. :try_end_16d} :catch_19b
1540 - move-result v15
1541 + move-result v9
1543 - :try_start_69
1544 - new-instance v16, Ljava/lang/ProcessManager$ProcessImpl;
1545 + if-eqz v20, :cond_1df
1547 - move-object/from16 v0, v16
1548 + :try_start_170
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;
1555 + :goto_175
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
1598 - monitor-exit v19
1599 - :try_end_94
1600 - .catchall {:try_start_69 .. :try_end_94} :catchall_e3
1601 + monitor-exit v24
1602 + :try_end_195
1603 + .catchall {:try_start_170 .. :try_end_195} :catchall_1dc
1605 - return-object v16
1606 + return-object v8
1608 - :cond_95
1609 + :cond_196
1610 invoke-virtual/range {p3 .. p3}, Ljava/io/File;->getPath()Ljava/lang/String;
1612 move-result-object v4
1614 - goto :goto_5c
1616 - :catch_9a
1617 - move-exception v11
1618 + goto :goto_161
1620 - :try_start_9b
1621 - new-instance v18, Ljava/io/IOException;
1622 + :catch_19b
1623 + move-exception v16
1625 - new-instance v8, Ljava/lang/StringBuilder;
1626 + :try_start_19c
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
1714 + throw v23
1716 - move-object/from16 v0, v18
1717 + :catchall_1dc
1718 + move-exception v10
1720 - invoke-direct {v0, v8}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
1721 + monitor-exit v24
1722 + :try_end_1de
1723 + .catchall {:try_start_19c .. :try_end_1de} :catchall_1dc
1725 - move-object/from16 v0, v18
1726 + throw v10
1728 + :cond_1df
1729 + :try_start_1df
1730 + new-instance v8, Ljava/lang/ProcessManager$ProcessImpl;
1732 + const/4 v13, 0x0
1734 - invoke-virtual {v0, v11}, Ljava/io/IOException;->initCause(Ljava/lang/Throwable;)Ljava/lang/Throwable;
1735 + move-object v10, v5
1737 - throw v18
1738 + move-object v11, v6
1740 - :catchall_e3
1741 - move-exception v8
1742 + move-object v12, v7
1744 - monitor-exit v19
1745 - :try_end_e5
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
1748 + :try_end_1e8
1749 + .catchall {:try_start_1df .. :try_end_1e8} :catchall_1dc
1751 - throw v8
1752 + goto :goto_175
1753 .end method
1754 diff -Npru stock-core/smali/org/apache/harmony/security/provider/cert/X509CertFactoryImpl.smali opd-core/smali/org/apache/harmony/security/provider/cert/X509CertFactoryImpl.smali
1755 --- stock-core/smali/org/apache/harmony/security/provider/cert/X509CertFactoryImpl.smali 2013-01-09 01:56:28.226797645 -0600
1756 +++ opd-core/smali/org/apache/harmony/security/provider/cert/X509CertFactoryImpl.smali 2013-01-09 01:56:13.418724211 -0600
1757 @@ -1085,7 +1085,7 @@
1758 .end method
1760 .method public engineGenerateCRLs(Ljava/io/InputStream;)Ljava/util/Collection;
1761 - .registers 17
1762 + .registers 16
1763 .annotation system Ldalvik/annotation/Signature;
1764 value = {
1765 "(",
1766 @@ -1106,291 +1106,271 @@
1768 if-nez p1, :cond_a
1770 - new-instance v13, Ljava/security/cert/CRLException;
1771 + new-instance v12, Ljava/security/cert/CRLException;
1773 - const-string v14, "inStream == null"
1774 + const-string v13, "inStream == null"
1776 - invoke-direct {v13, v14}, Ljava/security/cert/CRLException;-><init>(Ljava/lang/String;)V
1777 + invoke-direct {v12, v13}, Ljava/security/cert/CRLException;-><init>(Ljava/lang/String;)V
1779 - throw v13
1780 + throw v12
1782 :cond_a
1783 - new-instance v11, Ljava/util/ArrayList;
1784 + new-instance v10, Ljava/util/ArrayList;
1786 - invoke-direct {v11}, Ljava/util/ArrayList;-><init>()V
1787 + invoke-direct {v10}, Ljava/util/ArrayList;-><init>()V
1789 :try_start_f
1790 - invoke-virtual/range {p1 .. p1}, Ljava/io/InputStream;->markSupported()Z
1791 + invoke-virtual {p1}, Ljava/io/InputStream;->markSupported()Z
1793 - move-result v13
1794 + move-result v12
1796 - if-nez v13, :cond_1e
1797 + if-nez v12, :cond_1b
1799 - new-instance v9, Lorg/apache/harmony/security/provider/cert/X509CertFactoryImpl$RestoringInputStream;
1800 + new-instance v8, Lorg/apache/harmony/security/provider/cert/X509CertFactoryImpl$RestoringInputStream;
1802 - move-object/from16 v0, p1
1803 + invoke-direct {v8, p1}, Lorg/apache/harmony/security/provider/cert/X509CertFactoryImpl$RestoringInputStream;-><init>(Ljava/io/InputStream;)V
1805 - invoke-direct {v9, v0}, Lorg/apache/harmony/security/provider/cert/X509CertFactoryImpl$RestoringInputStream;-><init>(Ljava/io/InputStream;)V
1806 + move-object p1, v8
1808 - move-object/from16 p1, v9
1809 + :cond_1b
1810 + const/4 v5, 0x0
1812 - :cond_1e
1813 - const/4 v6, 0x0
1814 + const/4 v11, -0x1
1816 - const/4 v12, -0x1
1817 + const/4 v12, 0x1
1819 - const/4 v13, 0x1
1820 + invoke-virtual {p1, v12}, Ljava/io/InputStream;->mark(I)V
1822 - move-object/from16 v0, p1
1823 + :goto_21
1824 + invoke-virtual {p1}, Ljava/io/InputStream;->read()I
1826 - invoke-virtual {v0, v13}, Ljava/io/InputStream;->mark(I)V
1827 + move-result v0
1829 - :goto_26
1830 - invoke-virtual/range {p1 .. p1}, Ljava/io/InputStream;->read()I
1831 + const/4 v12, -0x1
1833 - move-result v1
1834 + if-eq v0, v12, :cond_4c
1836 - const/4 v13, -0x1
1837 + const/16 v12, 0x2d
1839 - if-eq v1, v13, :cond_55
1840 + if-ne v0, v12, :cond_53
1842 - const/16 v13, 0x2d
1843 + sget-object v12, Lorg/apache/harmony/security/provider/cert/X509CertFactoryImpl;->FREE_BOUND_SUFFIX:[B
1845 - if-ne v1, v13, :cond_5c
1846 + invoke-direct {p0, p1, v12}, Lorg/apache/harmony/security/provider/cert/X509CertFactoryImpl;->decodePEM(Ljava/io/InputStream;[B)[B
1848 - sget-object v13, Lorg/apache/harmony/security/provider/cert/X509CertFactoryImpl;->FREE_BOUND_SUFFIX:[B
1849 + move-result-object v5
1851 - move-object/from16 v0, p1
1852 + :goto_32
1853 + if-nez v5, :cond_7a
1855 - invoke-direct {p0, v0, v13}, Lorg/apache/harmony/security/provider/cert/X509CertFactoryImpl;->decodePEM(Ljava/io/InputStream;[B)[B
1856 + new-instance v7, Lorg/apache/harmony/security/asn1/BerInputStream;
1858 - move-result-object v6
1859 + invoke-direct {v7, p1}, Lorg/apache/harmony/security/asn1/BerInputStream;-><init>(Ljava/io/InputStream;)V
1861 :goto_39
1862 - if-nez v6, :cond_85
1864 - new-instance v8, Lorg/apache/harmony/security/asn1/BerInputStream;
1866 - move-object/from16 v0, p1
1868 - invoke-direct {v8, v0}, Lorg/apache/harmony/security/asn1/BerInputStream;-><init>(Ljava/io/InputStream;)V
1870 - :goto_42
1871 - invoke-virtual {v8}, Lorg/apache/harmony/security/asn1/BerInputStream;->next()I
1873 - move-result v12
1875 - if-nez v6, :cond_4b
1877 - invoke-virtual/range {p1 .. p1}, Ljava/io/InputStream;->reset()V
1879 - :cond_4b
1880 - const/16 v13, 0x30
1882 - if-eq v12, v13, :cond_8b
1884 - invoke-virtual {v11}, Ljava/util/ArrayList;->size()I
1885 + invoke-virtual {v7}, Lorg/apache/harmony/security/asn1/BerInputStream;->next()I
1887 - move-result v13
1888 + move-result v11
1890 - if-nez v13, :cond_5b
1891 + if-nez v5, :cond_42
1893 - :cond_55
1894 - invoke-virtual {v11}, Ljava/util/ArrayList;->size()I
1895 + invoke-virtual {p1}, Ljava/io/InputStream;->reset()V
1897 - move-result v13
1898 + :cond_42
1899 + const/16 v12, 0x30
1901 - if-eqz v13, :cond_a3
1902 + if-eq v11, v12, :cond_80
1904 - :cond_5b
1905 - :goto_5b
1906 - return-object v11
1907 + invoke-virtual {v10}, Ljava/util/ArrayList;->size()I
1909 - :cond_5c
1910 - const/16 v13, 0x30
1911 + move-result v12
1913 - if-ne v1, v13, :cond_73
1914 + if-nez v12, :cond_52
1916 - const/4 v6, 0x0
1917 + :cond_4c
1918 + invoke-virtual {v10}, Ljava/util/ArrayList;->size()I
1920 - invoke-virtual/range {p1 .. p1}, Ljava/io/InputStream;->reset()V
1921 + move-result v12
1923 - const/16 v13, 0x18
1924 + if-eqz v12, :cond_96
1926 - move-object/from16 v0, p1
1927 + :cond_52
1928 + :goto_52
1929 + return-object v10
1931 - invoke-virtual {v0, v13}, Ljava/io/InputStream;->mark(I)V
1932 - :try_end_6b
1933 - .catch Ljava/io/IOException; {:try_start_f .. :try_end_6b} :catch_6c
1934 + :cond_53
1935 + const/16 v12, 0x30
1937 - goto :goto_39
1938 + if-ne v0, v12, :cond_68
1940 - :catch_6c
1941 - move-exception v5
1942 + const/4 v5, 0x0
1944 - new-instance v13, Ljava/security/cert/CRLException;
1945 + invoke-virtual {p1}, Ljava/io/InputStream;->reset()V
1947 - invoke-direct {v13, v5}, Ljava/security/cert/CRLException;-><init>(Ljava/lang/Throwable;)V
1948 + const/16 v12, 0x18
1950 - throw v13
1951 + invoke-virtual {p1, v12}, Ljava/io/InputStream;->mark(I)V
1952 + :try_end_60
1953 + .catch Ljava/io/IOException; {:try_start_f .. :try_end_60} :catch_61
1955 - :cond_73
1956 - :try_start_73
1957 - invoke-virtual {v11}, Ljava/util/ArrayList;->size()I
1958 + goto :goto_32
1960 - move-result v13
1961 + :catch_61
1962 + move-exception v4
1964 - if-nez v13, :cond_81
1965 + new-instance v12, Ljava/security/cert/CRLException;
1967 - new-instance v13, Ljava/security/cert/CRLException;
1968 + invoke-direct {v12, v4}, Ljava/security/cert/CRLException;-><init>(Ljava/lang/Throwable;)V
1970 - const-string v14, "Unsupported encoding"
1971 + throw v12
1973 - invoke-direct {v13, v14}, Ljava/security/cert/CRLException;-><init>(Ljava/lang/String;)V
1974 + :cond_68
1975 + :try_start_68
1976 + invoke-virtual {v10}, Ljava/util/ArrayList;->size()I
1978 - throw v13
1979 + move-result v12
1981 - :cond_81
1982 - invoke-virtual/range {p1 .. p1}, Ljava/io/InputStream;->reset()V
1983 + if-nez v12, :cond_76
1985 - goto :goto_5b
1986 + new-instance v12, Ljava/security/cert/CRLException;
1988 - :cond_85
1989 - new-instance v8, Lorg/apache/harmony/security/asn1/BerInputStream;
1990 + const-string v13, "Unsupported encoding"
1992 - invoke-direct {v8, v6}, Lorg/apache/harmony/security/asn1/BerInputStream;-><init>([B)V
1993 + invoke-direct {v12, v13}, Ljava/security/cert/CRLException;-><init>(Ljava/lang/String;)V
1995 - goto :goto_42
1996 + throw v12
1998 - :cond_8b
1999 - if-nez v6, :cond_9b
2000 + :cond_76
2001 + invoke-virtual {p1}, Ljava/io/InputStream;->reset()V
2003 - invoke-static/range {p1 .. p1}, Lorg/apache/harmony/security/provider/cert/X509CertFactoryImpl;->getCRL(Ljava/io/InputStream;)Ljava/security/cert/CRL;
2004 + goto :goto_52
2006 - move-result-object v13
2007 + :cond_7a
2008 + new-instance v7, Lorg/apache/harmony/security/asn1/BerInputStream;
2010 - invoke-virtual {v11, v13}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
2011 + invoke-direct {v7, v5}, Lorg/apache/harmony/security/asn1/BerInputStream;-><init>([B)V
2013 - :goto_94
2014 - const/4 v13, 0x1
2015 + goto :goto_39
2017 - move-object/from16 v0, p1
2018 + :cond_80
2019 + if-nez v5, :cond_8e
2021 - invoke-virtual {v0, v13}, Ljava/io/InputStream;->mark(I)V
2022 + invoke-static {p1}, Lorg/apache/harmony/security/provider/cert/X509CertFactoryImpl;->getCRL(Ljava/io/InputStream;)Ljava/security/cert/CRL;
2024 - goto :goto_26
2025 + move-result-object v12
2027 - :cond_9b
2028 - invoke-static {v6}, Lorg/apache/harmony/security/provider/cert/X509CertFactoryImpl;->getCRL([B)Ljava/security/cert/CRL;
2029 + invoke-virtual {v10, v12}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
2031 - move-result-object v13
2032 + :goto_89
2033 + const/4 v12, 0x1
2035 - invoke-virtual {v11, v13}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
2036 + invoke-virtual {p1, v12}, Ljava/io/InputStream;->mark(I)V
2038 - goto :goto_94
2039 + goto :goto_21
2041 - :cond_a3
2042 - const/4 v13, -0x1
2043 + :cond_8e
2044 + invoke-static {v5}, Lorg/apache/harmony/security/provider/cert/X509CertFactoryImpl;->getCRL([B)Ljava/security/cert/CRL;
2046 - if-ne v1, v13, :cond_ae
2047 + move-result-object v12
2049 - new-instance v13, Ljava/security/cert/CRLException;
2050 + invoke-virtual {v10, v12}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
2052 - const-string v14, "There is no data in the stream"
2053 + goto :goto_89
2055 - invoke-direct {v13, v14}, Ljava/security/cert/CRLException;-><init>(Ljava/lang/String;)V
2056 + :cond_96
2057 + const/4 v12, -0x1
2059 - throw v13
2060 + if-ne v0, v12, :cond_a1
2062 - :cond_ae
2063 - const/4 v13, 0x6
2064 + new-instance v12, Ljava/security/cert/CRLException;
2066 - if-ne v12, v13, :cond_f5
2067 + const-string v13, "There is no data in the stream"
2069 - if-eqz v6, :cond_cd
2070 + invoke-direct {v12, v13}, Ljava/security/cert/CRLException;-><init>(Ljava/lang/String;)V
2072 - sget-object v13, Lorg/apache/harmony/security/pkcs7/ContentInfo;->ASN1:Lorg/apache/harmony/security/asn1/ASN1Sequence;
2073 + throw v12
2075 - invoke-virtual {v13, v6}, Lorg/apache/harmony/security/asn1/ASN1Sequence;->decode([B)Ljava/lang/Object;
2076 + :cond_a1
2077 + const/4 v12, 0x6
2079 - move-result-object v13
2080 + if-ne v11, v12, :cond_e2
2082 - :goto_b9
2083 - check-cast v13, Lorg/apache/harmony/security/pkcs7/ContentInfo;
2084 + if-eqz v5, :cond_bc
2086 - move-object v0, v13
2087 + sget-object v12, Lorg/apache/harmony/security/pkcs7/ContentInfo;->ASN1:Lorg/apache/harmony/security/asn1/ASN1Sequence;
2089 - check-cast v0, Lorg/apache/harmony/security/pkcs7/ContentInfo;
2090 + invoke-virtual {v12, v5}, Lorg/apache/harmony/security/asn1/ASN1Sequence;->decode([B)Ljava/lang/Object;
2092 - move-object v10, v0
2093 + move-result-object v9
2095 - invoke-virtual {v10}, Lorg/apache/harmony/security/pkcs7/ContentInfo;->getSignedData()Lorg/apache/harmony/security/pkcs7/SignedData;
2096 + :goto_ac
2097 + check-cast v9, Lorg/apache/harmony/security/pkcs7/ContentInfo;
2099 - move-result-object v4
2100 + invoke-virtual {v9}, Lorg/apache/harmony/security/pkcs7/ContentInfo;->getSignedData()Lorg/apache/harmony/security/pkcs7/SignedData;
2102 - if-nez v4, :cond_d6
2103 + move-result-object v3
2105 - new-instance v13, Ljava/security/cert/CRLException;
2106 + if-nez v3, :cond_c3
2108 - const-string v14, "Invalid PKCS7 data provided"
2109 + new-instance v12, Ljava/security/cert/CRLException;
2111 - invoke-direct {v13, v14}, Ljava/security/cert/CRLException;-><init>(Ljava/lang/String;)V
2112 + const-string v13, "Invalid PKCS7 data provided"
2114 - throw v13
2115 + invoke-direct {v12, v13}, Ljava/security/cert/CRLException;-><init>(Ljava/lang/String;)V
2117 - :cond_cd
2118 - sget-object v13, Lorg/apache/harmony/security/pkcs7/ContentInfo;->ASN1:Lorg/apache/harmony/security/asn1/ASN1Sequence;
2119 + throw v12
2121 - move-object/from16 v0, p1
2122 + :cond_bc
2123 + sget-object v12, Lorg/apache/harmony/security/pkcs7/ContentInfo;->ASN1:Lorg/apache/harmony/security/asn1/ASN1Sequence;
2125 - invoke-virtual {v13, v0}, Lorg/apache/harmony/security/asn1/ASN1Sequence;->decode(Ljava/io/InputStream;)Ljava/lang/Object;
2126 + invoke-virtual {v12, p1}, Lorg/apache/harmony/security/asn1/ASN1Sequence;->decode(Ljava/io/InputStream;)Ljava/lang/Object;
2128 - move-result-object v13
2129 + move-result-object v9
2131 - goto :goto_b9
2132 + goto :goto_ac
2134 - :cond_d6
2135 - invoke-virtual {v4}, Lorg/apache/harmony/security/pkcs7/SignedData;->getCRLs()Ljava/util/List;
2136 + :cond_c3
2137 + invoke-virtual {v3}, Lorg/apache/harmony/security/pkcs7/SignedData;->getCRLs()Ljava/util/List;
2139 - move-result-object v3
2140 + move-result-object v2
2142 - if-eqz v3, :cond_5b
2143 + if-eqz v2, :cond_52
2145 - invoke-interface {v3}, Ljava/util/List;->iterator()Ljava/util/Iterator;
2146 + invoke-interface {v2}, Ljava/util/List;->iterator()Ljava/util/Iterator;
2148 - move-result-object v7
2149 + move-result-object v6
2151 - :goto_e0
2152 - invoke-interface {v7}, Ljava/util/Iterator;->hasNext()Z
2153 + :goto_cd
2154 + invoke-interface {v6}, Ljava/util/Iterator;->hasNext()Z
2156 - move-result v13
2157 + move-result v12
2159 - if-eqz v13, :cond_5b
2160 + if-eqz v12, :cond_52
2162 - invoke-interface {v7}, Ljava/util/Iterator;->next()Ljava/lang/Object;
2163 + invoke-interface {v6}, Ljava/util/Iterator;->next()Ljava/lang/Object;
2165 - move-result-object v2
2166 + move-result-object v1
2168 - check-cast v2, Lorg/apache/harmony/security/x509/CertificateList;
2169 + check-cast v1, Lorg/apache/harmony/security/x509/CertificateList;
2171 - new-instance v13, Lorg/apache/harmony/security/provider/cert/X509CRLImpl;
2172 + new-instance v12, Lorg/apache/harmony/security/provider/cert/X509CRLImpl;
2174 - invoke-direct {v13, v2}, Lorg/apache/harmony/security/provider/cert/X509CRLImpl;-><init>(Lorg/apache/harmony/security/x509/CertificateList;)V
2175 + invoke-direct {v12, v1}, Lorg/apache/harmony/security/provider/cert/X509CRLImpl;-><init>(Lorg/apache/harmony/security/x509/CertificateList;)V
2177 - invoke-virtual {v11, v13}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
2178 + invoke-virtual {v10, v12}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
2180 - goto :goto_e0
2181 + goto :goto_cd
2183 - :cond_f5
2184 - new-instance v13, Ljava/security/cert/CRLException;
2185 + :cond_e2
2186 + new-instance v12, Ljava/security/cert/CRLException;
2188 - const-string v14, "Unsupported encoding"
2189 + const-string v13, "Unsupported encoding"
2191 - invoke-direct {v13, v14}, Ljava/security/cert/CRLException;-><init>(Ljava/lang/String;)V
2192 + invoke-direct {v12, v13}, Ljava/security/cert/CRLException;-><init>(Ljava/lang/String;)V
2194 - throw v13
2195 - :try_end_fd
2196 - .catch Ljava/io/IOException; {:try_start_73 .. :try_end_fd} :catch_6c
2197 + throw v12
2198 + :try_end_ea
2199 + .catch Ljava/io/IOException; {:try_start_68 .. :try_end_ea} :catch_61
2200 .end method
2202 .method public engineGenerateCertPath(Ljava/io/InputStream;)Ljava/security/cert/CertPath;
2203 @@ -1608,7 +1588,7 @@
2204 .end method
2206 .method public engineGenerateCertificates(Ljava/io/InputStream;)Ljava/util/Collection;
2207 - .registers 17
2208 + .registers 16
2209 .annotation system Ldalvik/annotation/Signature;
2210 value = {
2211 "(",
2212 @@ -1629,291 +1609,271 @@
2214 if-nez p1, :cond_a
2216 - new-instance v13, Ljava/security/cert/CertificateException;
2217 + new-instance v12, Ljava/security/cert/CertificateException;
2219 - const-string v14, "inStream == null"
2220 + const-string v13, "inStream == null"
2222 - invoke-direct {v13, v14}, Ljava/security/cert/CertificateException;-><init>(Ljava/lang/String;)V
2223 + invoke-direct {v12, v13}, Ljava/security/cert/CertificateException;-><init>(Ljava/lang/String;)V
2225 - throw v13
2226 + throw v12
2228 :cond_a
2229 - new-instance v11, Ljava/util/ArrayList;
2230 + new-instance v10, Ljava/util/ArrayList;
2232 - invoke-direct {v11}, Ljava/util/ArrayList;-><init>()V
2233 + invoke-direct {v10}, Ljava/util/ArrayList;-><init>()V
2235 :try_start_f
2236 - invoke-virtual/range {p1 .. p1}, Ljava/io/InputStream;->markSupported()Z
2237 + invoke-virtual {p1}, Ljava/io/InputStream;->markSupported()Z
2239 - move-result v13
2240 + move-result v12
2242 - if-nez v13, :cond_1e
2243 + if-nez v12, :cond_1b
2245 - new-instance v9, Lorg/apache/harmony/security/provider/cert/X509CertFactoryImpl$RestoringInputStream;
2246 + new-instance v8, Lorg/apache/harmony/security/provider/cert/X509CertFactoryImpl$RestoringInputStream;
2248 - move-object/from16 v0, p1
2249 + invoke-direct {v8, p1}, Lorg/apache/harmony/security/provider/cert/X509CertFactoryImpl$RestoringInputStream;-><init>(Ljava/io/InputStream;)V
2251 - invoke-direct {v9, v0}, Lorg/apache/harmony/security/provider/cert/X509CertFactoryImpl$RestoringInputStream;-><init>(Ljava/io/InputStream;)V
2252 + move-object p1, v8
2254 - move-object/from16 p1, v9
2255 + :cond_1b
2256 + const/4 v5, 0x0
2258 - :cond_1e
2259 - const/4 v6, 0x0
2260 + const/4 v11, -0x1
2262 - const/4 v12, -0x1
2263 + const/4 v12, 0x1
2265 - const/4 v13, 0x1
2266 + invoke-virtual {p1, v12}, Ljava/io/InputStream;->mark(I)V
2268 - move-object/from16 v0, p1
2269 + :goto_21
2270 + invoke-virtual {p1}, Ljava/io/InputStream;->read()I
2272 - invoke-virtual {v0, v13}, Ljava/io/InputStream;->mark(I)V
2273 + move-result v2
2275 - :goto_26
2276 - invoke-virtual/range {p1 .. p1}, Ljava/io/InputStream;->read()I
2277 + const/4 v12, -0x1
2279 - move-result v3
2280 + if-eq v2, v12, :cond_4c
2282 - const/4 v13, -0x1
2283 + const/16 v12, 0x2d
2285 - if-eq v3, v13, :cond_55
2286 + if-ne v2, v12, :cond_53
2288 - const/16 v13, 0x2d
2289 + sget-object v12, Lorg/apache/harmony/security/provider/cert/X509CertFactoryImpl;->FREE_BOUND_SUFFIX:[B
2291 - if-ne v3, v13, :cond_5c
2292 + invoke-direct {p0, p1, v12}, Lorg/apache/harmony/security/provider/cert/X509CertFactoryImpl;->decodePEM(Ljava/io/InputStream;[B)[B
2294 - sget-object v13, Lorg/apache/harmony/security/provider/cert/X509CertFactoryImpl;->FREE_BOUND_SUFFIX:[B
2295 + move-result-object v5
2297 - move-object/from16 v0, p1
2298 + :goto_32
2299 + if-nez v5, :cond_7a
2301 - invoke-direct {p0, v0, v13}, Lorg/apache/harmony/security/provider/cert/X509CertFactoryImpl;->decodePEM(Ljava/io/InputStream;[B)[B
2302 + new-instance v7, Lorg/apache/harmony/security/asn1/BerInputStream;
2304 - move-result-object v6
2305 + invoke-direct {v7, p1}, Lorg/apache/harmony/security/asn1/BerInputStream;-><init>(Ljava/io/InputStream;)V
2307 :goto_39
2308 - if-nez v6, :cond_85
2310 - new-instance v8, Lorg/apache/harmony/security/asn1/BerInputStream;
2312 - move-object/from16 v0, p1
2314 - invoke-direct {v8, v0}, Lorg/apache/harmony/security/asn1/BerInputStream;-><init>(Ljava/io/InputStream;)V
2316 - :goto_42
2317 - invoke-virtual {v8}, Lorg/apache/harmony/security/asn1/BerInputStream;->next()I
2319 - move-result v12
2321 - if-nez v6, :cond_4b
2323 - invoke-virtual/range {p1 .. p1}, Ljava/io/InputStream;->reset()V
2325 - :cond_4b
2326 - const/16 v13, 0x30
2328 - if-eq v12, v13, :cond_8b
2330 - invoke-virtual {v11}, Ljava/util/ArrayList;->size()I
2331 + invoke-virtual {v7}, Lorg/apache/harmony/security/asn1/BerInputStream;->next()I
2333 - move-result v13
2334 + move-result v11
2336 - if-nez v13, :cond_5b
2337 + if-nez v5, :cond_42
2339 - :cond_55
2340 - invoke-virtual {v11}, Ljava/util/ArrayList;->size()I
2341 + invoke-virtual {p1}, Ljava/io/InputStream;->reset()V
2343 - move-result v13
2344 + :cond_42
2345 + const/16 v12, 0x30
2347 - if-eqz v13, :cond_a3
2348 + if-eq v11, v12, :cond_80
2350 - :cond_5b
2351 - :goto_5b
2352 - return-object v11
2353 + invoke-virtual {v10}, Ljava/util/ArrayList;->size()I
2355 - :cond_5c
2356 - const/16 v13, 0x30
2357 + move-result v12
2359 - if-ne v3, v13, :cond_73
2360 + if-nez v12, :cond_52
2362 - const/4 v6, 0x0
2363 + :cond_4c
2364 + invoke-virtual {v10}, Ljava/util/ArrayList;->size()I
2366 - invoke-virtual/range {p1 .. p1}, Ljava/io/InputStream;->reset()V
2367 + move-result v12
2369 - const/16 v13, 0x1c
2370 + if-eqz v12, :cond_96
2372 - move-object/from16 v0, p1
2373 + :cond_52
2374 + :goto_52
2375 + return-object v10
2377 - invoke-virtual {v0, v13}, Ljava/io/InputStream;->mark(I)V
2378 - :try_end_6b
2379 - .catch Ljava/io/IOException; {:try_start_f .. :try_end_6b} :catch_6c
2380 + :cond_53
2381 + const/16 v12, 0x30
2383 - goto :goto_39
2384 + if-ne v2, v12, :cond_68
2386 - :catch_6c
2387 - move-exception v5
2388 + const/4 v5, 0x0
2390 - new-instance v13, Ljava/security/cert/CertificateException;
2391 + invoke-virtual {p1}, Ljava/io/InputStream;->reset()V
2393 - invoke-direct {v13, v5}, Ljava/security/cert/CertificateException;-><init>(Ljava/lang/Throwable;)V
2394 + const/16 v12, 0x1c
2396 - throw v13
2397 + invoke-virtual {p1, v12}, Ljava/io/InputStream;->mark(I)V
2398 + :try_end_60
2399 + .catch Ljava/io/IOException; {:try_start_f .. :try_end_60} :catch_61
2401 - :cond_73
2402 - :try_start_73
2403 - invoke-virtual {v11}, Ljava/util/ArrayList;->size()I
2404 + goto :goto_32
2406 - move-result v13
2407 + :catch_61
2408 + move-exception v4
2410 - if-nez v13, :cond_81
2411 + new-instance v12, Ljava/security/cert/CertificateException;
2413 - new-instance v13, Ljava/security/cert/CertificateException;
2414 + invoke-direct {v12, v4}, Ljava/security/cert/CertificateException;-><init>(Ljava/lang/Throwable;)V
2416 - const-string v14, "Unsupported encoding"
2417 + throw v12
2419 - invoke-direct {v13, v14}, Ljava/security/cert/CertificateException;-><init>(Ljava/lang/String;)V
2420 + :cond_68
2421 + :try_start_68
2422 + invoke-virtual {v10}, Ljava/util/ArrayList;->size()I
2424 - throw v13
2425 + move-result v12
2427 - :cond_81
2428 - invoke-virtual/range {p1 .. p1}, Ljava/io/InputStream;->reset()V
2429 + if-nez v12, :cond_76
2431 - goto :goto_5b
2432 + new-instance v12, Ljava/security/cert/CertificateException;
2434 - :cond_85
2435 - new-instance v8, Lorg/apache/harmony/security/asn1/BerInputStream;
2436 + const-string v13, "Unsupported encoding"
2438 - invoke-direct {v8, v6}, Lorg/apache/harmony/security/asn1/BerInputStream;-><init>([B)V
2439 + invoke-direct {v12, v13}, Ljava/security/cert/CertificateException;-><init>(Ljava/lang/String;)V
2441 - goto :goto_42
2442 + throw v12
2444 - :cond_8b
2445 - if-nez v6, :cond_9b
2446 + :cond_76
2447 + invoke-virtual {p1}, Ljava/io/InputStream;->reset()V
2449 - invoke-static/range {p1 .. p1}, Lorg/apache/harmony/security/provider/cert/X509CertFactoryImpl;->getCertificate(Ljava/io/InputStream;)Ljava/security/cert/Certificate;
2450 + goto :goto_52
2452 - move-result-object v13
2453 + :cond_7a
2454 + new-instance v7, Lorg/apache/harmony/security/asn1/BerInputStream;
2456 - invoke-virtual {v11, v13}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
2457 + invoke-direct {v7, v5}, Lorg/apache/harmony/security/asn1/BerInputStream;-><init>([B)V
2459 - :goto_94
2460 - const/4 v13, 0x1
2461 + goto :goto_39
2463 - move-object/from16 v0, p1
2464 + :cond_80
2465 + if-nez v5, :cond_8e
2467 - invoke-virtual {v0, v13}, Ljava/io/InputStream;->mark(I)V
2468 + invoke-static {p1}, Lorg/apache/harmony/security/provider/cert/X509CertFactoryImpl;->getCertificate(Ljava/io/InputStream;)Ljava/security/cert/Certificate;
2470 - goto :goto_26
2471 + move-result-object v12
2473 - :cond_9b
2474 - invoke-static {v6}, Lorg/apache/harmony/security/provider/cert/X509CertFactoryImpl;->getCertificate([B)Ljava/security/cert/Certificate;
2475 + invoke-virtual {v10, v12}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
2477 - move-result-object v13
2478 + :goto_89
2479 + const/4 v12, 0x1
2481 - invoke-virtual {v11, v13}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
2482 + invoke-virtual {p1, v12}, Ljava/io/InputStream;->mark(I)V
2484 - goto :goto_94
2485 + goto :goto_21
2487 - :cond_a3
2488 - const/4 v13, -0x1
2489 + :cond_8e
2490 + invoke-static {v5}, Lorg/apache/harmony/security/provider/cert/X509CertFactoryImpl;->getCertificate([B)Ljava/security/cert/Certificate;
2492 - if-ne v3, v13, :cond_ae
2493 + move-result-object v12
2495 - new-instance v13, Ljava/security/cert/CertificateException;
2496 + invoke-virtual {v10, v12}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
2498 - const-string v14, "There is no data in the stream"
2499 + goto :goto_89
2501 - invoke-direct {v13, v14}, Ljava/security/cert/CertificateException;-><init>(Ljava/lang/String;)V
2502 + :cond_96
2503 + const/4 v12, -0x1
2505 - throw v13
2506 + if-ne v2, v12, :cond_a1
2508 - :cond_ae
2509 - const/4 v13, 0x6
2510 + new-instance v12, Ljava/security/cert/CertificateException;
2512 - if-ne v12, v13, :cond_f5
2513 + const-string v13, "There is no data in the stream"
2515 - if-eqz v6, :cond_cd
2516 + invoke-direct {v12, v13}, Ljava/security/cert/CertificateException;-><init>(Ljava/lang/String;)V
2518 - sget-object v13, Lorg/apache/harmony/security/pkcs7/ContentInfo;->ASN1:Lorg/apache/harmony/security/asn1/ASN1Sequence;
2519 + throw v12
2521 - invoke-virtual {v13, v6}, Lorg/apache/harmony/security/asn1/ASN1Sequence;->decode([B)Ljava/lang/Object;
2522 + :cond_a1
2523 + const/4 v12, 0x6
2525 - move-result-object v13
2526 + if-ne v11, v12, :cond_e2
2528 - :goto_b9
2529 - check-cast v13, Lorg/apache/harmony/security/pkcs7/ContentInfo;
2530 + if-eqz v5, :cond_bc
2532 - move-object v0, v13
2533 + sget-object v12, Lorg/apache/harmony/security/pkcs7/ContentInfo;->ASN1:Lorg/apache/harmony/security/asn1/ASN1Sequence;
2535 - check-cast v0, Lorg/apache/harmony/security/pkcs7/ContentInfo;
2536 + invoke-virtual {v12, v5}, Lorg/apache/harmony/security/asn1/ASN1Sequence;->decode([B)Ljava/lang/Object;
2538 - move-object v10, v0
2539 + move-result-object v9
2541 - invoke-virtual {v10}, Lorg/apache/harmony/security/pkcs7/ContentInfo;->getSignedData()Lorg/apache/harmony/security/pkcs7/SignedData;
2542 + :goto_ac
2543 + check-cast v9, Lorg/apache/harmony/security/pkcs7/ContentInfo;
2545 - move-result-object v4
2546 + invoke-virtual {v9}, Lorg/apache/harmony/security/pkcs7/ContentInfo;->getSignedData()Lorg/apache/harmony/security/pkcs7/SignedData;
2548 - if-nez v4, :cond_d6
2549 + move-result-object v3
2551 - new-instance v13, Ljava/security/cert/CertificateException;
2552 + if-nez v3, :cond_c3
2554 - const-string v14, "Invalid PKCS7 data provided"
2555 + new-instance v12, Ljava/security/cert/CertificateException;
2557 - invoke-direct {v13, v14}, Ljava/security/cert/CertificateException;-><init>(Ljava/lang/String;)V
2558 + const-string v13, "Invalid PKCS7 data provided"
2560 - throw v13
2561 + invoke-direct {v12, v13}, Ljava/security/cert/CertificateException;-><init>(Ljava/lang/String;)V
2563 - :cond_cd
2564 - sget-object v13, Lorg/apache/harmony/security/pkcs7/ContentInfo;->ASN1:Lorg/apache/harmony/security/asn1/ASN1Sequence;
2565 + throw v12
2567 - move-object/from16 v0, p1
2568 + :cond_bc
2569 + sget-object v12, Lorg/apache/harmony/security/pkcs7/ContentInfo;->ASN1:Lorg/apache/harmony/security/asn1/ASN1Sequence;
2571 - invoke-virtual {v13, v0}, Lorg/apache/harmony/security/asn1/ASN1Sequence;->decode(Ljava/io/InputStream;)Ljava/lang/Object;
2572 + invoke-virtual {v12, p1}, Lorg/apache/harmony/security/asn1/ASN1Sequence;->decode(Ljava/io/InputStream;)Ljava/lang/Object;
2574 - move-result-object v13
2575 + move-result-object v9
2577 - goto :goto_b9
2578 + goto :goto_ac
2580 - :cond_d6
2581 - invoke-virtual {v4}, Lorg/apache/harmony/security/pkcs7/SignedData;->getCertificates()Ljava/util/List;
2582 + :cond_c3
2583 + invoke-virtual {v3}, Lorg/apache/harmony/security/pkcs7/SignedData;->getCertificates()Ljava/util/List;
2585 - move-result-object v2
2586 + move-result-object v1
2588 - if-eqz v2, :cond_5b
2589 + if-eqz v1, :cond_52
2591 - invoke-interface {v2}, Ljava/util/List;->iterator()Ljava/util/Iterator;
2592 + invoke-interface {v1}, Ljava/util/List;->iterator()Ljava/util/Iterator;
2594 - move-result-object v7
2595 + move-result-object v6
2597 - :goto_e0
2598 - invoke-interface {v7}, Ljava/util/Iterator;->hasNext()Z
2599 + :goto_cd
2600 + invoke-interface {v6}, Ljava/util/Iterator;->hasNext()Z
2602 - move-result v13
2603 + move-result v12
2605 - if-eqz v13, :cond_5b
2606 + if-eqz v12, :cond_52
2608 - invoke-interface {v7}, Ljava/util/Iterator;->next()Ljava/lang/Object;
2609 + invoke-interface {v6}, Ljava/util/Iterator;->next()Ljava/lang/Object;
2611 - move-result-object v1
2612 + move-result-object v0
2614 - check-cast v1, Lorg/apache/harmony/security/x509/Certificate;
2615 + check-cast v0, Lorg/apache/harmony/security/x509/Certificate;
2617 - new-instance v13, Lorg/apache/harmony/security/provider/cert/X509CertImpl;
2618 + new-instance v12, Lorg/apache/harmony/security/provider/cert/X509CertImpl;
2620 - invoke-direct {v13, v1}, Lorg/apache/harmony/security/provider/cert/X509CertImpl;-><init>(Lorg/apache/harmony/security/x509/Certificate;)V
2621 + invoke-direct {v12, v0}, Lorg/apache/harmony/security/provider/cert/X509CertImpl;-><init>(Lorg/apache/harmony/security/x509/Certificate;)V
2623 - invoke-virtual {v11, v13}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
2624 + invoke-virtual {v10, v12}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
2626 - goto :goto_e0
2627 + goto :goto_cd
2629 - :cond_f5
2630 - new-instance v13, Ljava/security/cert/CertificateException;
2631 + :cond_e2
2632 + new-instance v12, Ljava/security/cert/CertificateException;
2634 - const-string v14, "Unsupported encoding"
2635 + const-string v13, "Unsupported encoding"
2637 - invoke-direct {v13, v14}, Ljava/security/cert/CertificateException;-><init>(Ljava/lang/String;)V
2638 + invoke-direct {v12, v13}, Ljava/security/cert/CertificateException;-><init>(Ljava/lang/String;)V
2640 - throw v13
2641 - :try_end_fd
2642 - .catch Ljava/io/IOException; {:try_start_73 .. :try_end_fd} :catch_6c
2643 + throw v12
2644 + :try_end_ea
2645 + .catch Ljava/io/IOException; {:try_start_68 .. :try_end_ea} :catch_61
2646 .end method
2648 .method public engineGetCertPathEncodings()Ljava/util/Iterator;