Add "openpdroid" mod for 4.1.2 and 4.2.1
[auto-patcher.git] / patches / openpdroid / 4.2 / aosp / 20130109 / framework.patch
blob7582b0044371785e8fe1391b545bef22be430457
1 diff -Npru stock-framework/smali/android/app/BackStackRecord.smali opd-framework/smali/android/app/BackStackRecord.smali
2 --- stock-framework/smali/android/app/BackStackRecord.smali 2013-01-08 23:29:01.704079809 -0600
3 +++ opd-framework/smali/android/app/BackStackRecord.smali 2013-01-08 23:29:40.448271937 -0600
4 @@ -727,7 +727,7 @@
5 .method dump(Ljava/lang/String;Ljava/io/PrintWriter;Z)V
6 .registers 11
8 - if-eqz p3, :cond_da
9 + if-eqz p3, :cond_db
11 invoke-virtual {p2, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
13 @@ -757,11 +757,11 @@
15 iget v5, p0, Landroid/app/BackStackRecord;->mTransition:I
17 - if-eqz v5, :cond_46
18 + if-eqz v5, :cond_47
20 invoke-virtual {p2, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
22 - const-string v5, "mTransition=#"
23 + const-string/jumbo v5, "mTransition=#"
25 invoke-virtual {p2, v5}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
27 @@ -785,16 +785,16 @@
29 invoke-virtual {p2, v5}, Ljava/io/PrintWriter;->println(Ljava/lang/String;)V
31 - :cond_46
32 + :cond_47
33 iget v5, p0, Landroid/app/BackStackRecord;->mEnterAnim:I
35 - if-nez v5, :cond_4e
36 + if-nez v5, :cond_4f
38 iget v5, p0, Landroid/app/BackStackRecord;->mExitAnim:I
40 - if-eqz v5, :cond_6d
41 + if-eqz v5, :cond_6e
43 - :cond_4e
44 + :cond_4f
45 invoke-virtual {p2, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
47 const-string v5, "mEnterAnim=#"
48 @@ -821,16 +821,16 @@
50 invoke-virtual {p2, v5}, Ljava/io/PrintWriter;->println(Ljava/lang/String;)V
52 - :cond_6d
53 + :cond_6e
54 iget v5, p0, Landroid/app/BackStackRecord;->mPopEnterAnim:I
56 - if-nez v5, :cond_75
57 + if-nez v5, :cond_76
59 iget v5, p0, Landroid/app/BackStackRecord;->mPopExitAnim:I
61 - if-eqz v5, :cond_94
62 + if-eqz v5, :cond_95
64 - :cond_75
65 + :cond_76
66 invoke-virtual {p2, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
68 const-string v5, "mPopEnterAnim=#"
69 @@ -857,16 +857,16 @@
71 invoke-virtual {p2, v5}, Ljava/io/PrintWriter;->println(Ljava/lang/String;)V
73 - :cond_94
74 + :cond_95
75 iget v5, p0, Landroid/app/BackStackRecord;->mBreadCrumbTitleRes:I
77 - if-nez v5, :cond_9c
78 + if-nez v5, :cond_9d
80 iget-object v5, p0, Landroid/app/BackStackRecord;->mBreadCrumbTitleText:Ljava/lang/CharSequence;
82 - if-eqz v5, :cond_b7
83 + if-eqz v5, :cond_b8
85 - :cond_9c
86 + :cond_9d
87 invoke-virtual {p2, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
89 const-string v5, "mBreadCrumbTitleRes=#"
90 @@ -889,16 +889,16 @@
92 invoke-virtual {p2, v5}, Ljava/io/PrintWriter;->println(Ljava/lang/Object;)V
94 - :cond_b7
95 + :cond_b8
96 iget v5, p0, Landroid/app/BackStackRecord;->mBreadCrumbShortTitleRes:I
98 - if-nez v5, :cond_bf
99 + if-nez v5, :cond_c0
101 iget-object v5, p0, Landroid/app/BackStackRecord;->mBreadCrumbShortTitleText:Ljava/lang/CharSequence;
103 - if-eqz v5, :cond_da
104 + if-eqz v5, :cond_db
106 - :cond_bf
107 + :cond_c0
108 invoke-virtual {p2, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
110 const-string v5, "mBreadCrumbShortTitleRes=#"
111 @@ -921,10 +921,10 @@
113 invoke-virtual {p2, v5}, Ljava/io/PrintWriter;->println(Ljava/lang/Object;)V
115 - :cond_da
116 + :cond_db
117 iget-object v5, p0, Landroid/app/BackStackRecord;->mHead:Landroid/app/BackStackRecord$Op;
119 - if-eqz v5, :cond_1f6
120 + if-eqz v5, :cond_1f7
122 invoke-virtual {p2, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
124 @@ -954,8 +954,8 @@
126 const/4 v3, 0x0
128 - :goto_fc
129 - if-eqz v4, :cond_1f6
130 + :goto_fd
131 + if-eqz v4, :cond_1f7
133 iget v5, v4, Landroid/app/BackStackRecord$Op;->cmd:I
135 @@ -981,7 +981,7 @@
137 move-result-object v0
139 - :goto_118
140 + :goto_119
141 invoke-virtual {p2, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
143 const-string v5, " Op #"
144 @@ -1004,17 +1004,17 @@
146 invoke-virtual {p2, v5}, Ljava/io/PrintWriter;->println(Ljava/lang/Object;)V
148 - if-eqz p3, :cond_186
149 + if-eqz p3, :cond_187
151 iget v5, v4, Landroid/app/BackStackRecord$Op;->enterAnim:I
153 - if-nez v5, :cond_13f
154 + if-nez v5, :cond_140
156 iget v5, v4, Landroid/app/BackStackRecord$Op;->exitAnim:I
158 - if-eqz v5, :cond_15e
159 + if-eqz v5, :cond_15f
161 - :cond_13f
162 + :cond_140
163 invoke-virtual {p2, v2}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
165 const-string v5, "enterAnim=#"
166 @@ -1041,16 +1041,16 @@
168 invoke-virtual {p2, v5}, Ljava/io/PrintWriter;->println(Ljava/lang/String;)V
170 - :cond_15e
171 + :cond_15f
172 iget v5, v4, Landroid/app/BackStackRecord$Op;->popEnterAnim:I
174 - if-nez v5, :cond_166
175 + if-nez v5, :cond_167
177 iget v5, v4, Landroid/app/BackStackRecord$Op;->popExitAnim:I
179 - if-eqz v5, :cond_186
180 + if-eqz v5, :cond_187
182 - :cond_166
183 + :cond_167
184 invoke-virtual {p2, v2}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
186 const-string/jumbo v5, "popEnterAnim=#"
187 @@ -1077,10 +1077,10 @@
189 invoke-virtual {p2, v5}, Ljava/io/PrintWriter;->println(Ljava/lang/String;)V
191 - :cond_186
192 + :cond_187
193 iget-object v5, v4, Landroid/app/BackStackRecord$Op;->removed:Ljava/util/ArrayList;
195 - if-eqz v5, :cond_1f0
196 + if-eqz v5, :cond_1f1
198 iget-object v5, v4, Landroid/app/BackStackRecord$Op;->removed:Ljava/util/ArrayList;
200 @@ -1088,18 +1088,18 @@
202 move-result v5
204 - if-lez v5, :cond_1f0
205 + if-lez v5, :cond_1f1
207 const/4 v1, 0x0
209 - :goto_193
210 + :goto_194
211 iget-object v5, v4, Landroid/app/BackStackRecord$Op;->removed:Ljava/util/ArrayList;
213 invoke-virtual {v5}, Ljava/util/ArrayList;->size()I
215 move-result v5
217 - if-ge v1, v5, :cond_1f0
218 + if-ge v1, v5, :cond_1f1
220 invoke-virtual {p2, v2}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
222 @@ -1111,13 +1111,13 @@
224 const/4 v6, 0x1
226 - if-ne v5, v6, :cond_1d8
227 + if-ne v5, v6, :cond_1d9
229 const-string v5, "Removed: "
231 invoke-virtual {p2, v5}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
233 - :goto_1ac
234 + :goto_1ad
235 iget-object v5, v4, Landroid/app/BackStackRecord$Op;->removed:Ljava/util/ArrayList;
237 invoke-virtual {v5, v1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
238 @@ -1128,56 +1128,56 @@
240 add-int/lit8 v1, v1, 0x1
242 - goto :goto_193
243 + goto :goto_194
245 - :pswitch_1b8
246 + :pswitch_1b9
247 const-string v0, "NULL"
249 - goto/16 :goto_118
250 + goto/16 :goto_119
252 - :pswitch_1bc
253 + :pswitch_1bd
254 const-string v0, "ADD"
256 - goto/16 :goto_118
257 + goto/16 :goto_119
259 - :pswitch_1c0
260 + :pswitch_1c1
261 const-string v0, "REPLACE"
263 - goto/16 :goto_118
264 + goto/16 :goto_119
266 - :pswitch_1c4
267 + :pswitch_1c5
268 const-string v0, "REMOVE"
270 - goto/16 :goto_118
271 + goto/16 :goto_119
273 - :pswitch_1c8
274 + :pswitch_1c9
275 const-string v0, "HIDE"
277 - goto/16 :goto_118
278 + goto/16 :goto_119
280 - :pswitch_1cc
281 + :pswitch_1cd
282 const-string v0, "SHOW"
284 - goto/16 :goto_118
285 + goto/16 :goto_119
287 - :pswitch_1d0
288 + :pswitch_1d1
289 const-string v0, "DETACH"
291 - goto/16 :goto_118
292 + goto/16 :goto_119
294 - :pswitch_1d4
295 + :pswitch_1d5
296 const-string v0, "ATTACH"
298 - goto/16 :goto_118
299 + goto/16 :goto_119
301 - :cond_1d8
302 - if-nez v1, :cond_1df
303 + :cond_1d9
304 + if-nez v1, :cond_1e0
306 const-string v5, "Removed:"
308 invoke-virtual {p2, v5}, Ljava/io/PrintWriter;->println(Ljava/lang/String;)V
310 - :cond_1df
311 + :cond_1e0
312 invoke-virtual {p2, v2}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
314 const-string v5, " #"
315 @@ -1190,30 +1190,28 @@
317 invoke-virtual {p2, v5}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
319 - goto :goto_1ac
320 + goto :goto_1ad
322 - :cond_1f0
323 + :cond_1f1
324 iget-object v4, v4, Landroid/app/BackStackRecord$Op;->next:Landroid/app/BackStackRecord$Op;
326 add-int/lit8 v3, v3, 0x1
328 - goto/16 :goto_fc
329 + goto/16 :goto_fd
331 - :cond_1f6
332 + :cond_1f7
333 return-void
335 - nop
337 :pswitch_data_1f8
338 .packed-switch 0x0
339 - :pswitch_1b8
340 - :pswitch_1bc
341 - :pswitch_1c0
342 - :pswitch_1c4
343 - :pswitch_1c8
344 - :pswitch_1cc
345 - :pswitch_1d0
346 - :pswitch_1d4
347 + :pswitch_1b9
348 + :pswitch_1bd
349 + :pswitch_1c1
350 + :pswitch_1c5
351 + :pswitch_1c9
352 + :pswitch_1cd
353 + :pswitch_1d1
354 + :pswitch_1d5
355 .end packed-switch
356 .end method
358 diff -Npru stock-framework/smali/android/app/ContextImpl$10.smali opd-framework/smali/android/app/ContextImpl$10.smali
359 --- stock-framework/smali/android/app/ContextImpl$10.smali 2013-01-08 23:29:01.716079867 -0600
360 +++ opd-framework/smali/android/app/ContextImpl$10.smali 2013-01-08 23:29:40.452271952 -0600
361 @@ -26,21 +26,31 @@
363 # virtual methods
364 .method public createStaticService()Ljava/lang/Object;
365 - .registers 4
366 + .registers 5
368 - const-string v1, "connectivity"
369 + const-string v2, "connectivity"
371 - invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
372 + invoke-static {v2}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
374 move-result-object v0
376 - new-instance v1, Landroid/net/ConnectivityManager;
377 + const-string v2, "ApplicationContext"
379 + const-string v3, "PDroid:ContextImpl: returning PrivacyConnectivityManager"
381 + invoke-static {v2, v3}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
383 invoke-static {v0}, Landroid/net/IConnectivityManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/IConnectivityManager;
385 - move-result-object v2
386 + move-result-object v1
388 + new-instance v2, Landroid/privacy/surrogate/PrivacyConnectivityManager;
390 + invoke-static {}, Landroid/app/ContextImpl;->getStaticOuterContext()Landroid/content/Context;
392 + move-result-object v3
394 - invoke-direct {v1, v2}, Landroid/net/ConnectivityManager;-><init>(Landroid/net/IConnectivityManager;)V
395 + invoke-direct {v2, v1, v3}, Landroid/privacy/surrogate/PrivacyConnectivityManager;-><init>(Landroid/net/IConnectivityManager;Landroid/content/Context;)V
397 - return-object v1
398 + return-object v2
399 .end method
400 diff -Npru stock-framework/smali/android/app/ContextImpl$22.smali opd-framework/smali/android/app/ContextImpl$22.smali
401 --- stock-framework/smali/android/app/ContextImpl$22.smali 2013-01-08 23:29:01.728079928 -0600
402 +++ opd-framework/smali/android/app/ContextImpl$22.smali 2013-01-08 23:29:40.456271971 -0600
403 @@ -26,7 +26,7 @@
405 # virtual methods
406 .method public createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
407 - .registers 5
408 + .registers 6
410 const-string v1, "location"
412 @@ -34,13 +34,23 @@
414 move-result-object v0
416 - new-instance v1, Landroid/location/LocationManager;
417 + const-string v1, "ApplicationContext"
419 + const-string v2, "PDroid:ContextImpl: returning PrivacyLocationManager"
421 + invoke-static {v1, v2}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
423 + new-instance v1, Landroid/privacy/surrogate/PrivacyLocationManager;
425 invoke-static {v0}, Landroid/location/ILocationManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/location/ILocationManager;
427 move-result-object v2
429 - invoke-direct {v1, p1, v2}, Landroid/location/LocationManager;-><init>(Landroid/content/Context;Landroid/location/ILocationManager;)V
430 + invoke-static {}, Landroid/app/ContextImpl;->getStaticOuterContext()Landroid/content/Context;
432 + move-result-object v3
434 + invoke-direct {v1, v2, v3}, Landroid/privacy/surrogate/PrivacyLocationManager;-><init>(Landroid/location/ILocationManager;Landroid/content/Context;)V
436 return-object v1
437 .end method
438 diff -Npru stock-framework/smali/android/app/ContextImpl$31.smali opd-framework/smali/android/app/ContextImpl$31.smali
439 --- stock-framework/smali/android/app/ContextImpl$31.smali 2013-01-08 23:29:01.744080013 -0600
440 +++ opd-framework/smali/android/app/ContextImpl$31.smali 2013-01-08 23:29:40.460271996 -0600
441 @@ -28,13 +28,19 @@
442 .method public createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
443 .registers 4
445 - new-instance v0, Landroid/telephony/TelephonyManager;
446 + const-string v0, "ApplicationContext"
448 + const-string v1, "PDroid:ContextImpl: returning PrivacyTelephonyManager"
450 + invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
452 + new-instance v0, Landroid/privacy/surrogate/PrivacyTelephonyManager;
454 invoke-virtual {p1}, Landroid/app/ContextImpl;->getOuterContext()Landroid/content/Context;
456 move-result-object v1
458 - invoke-direct {v0, v1}, Landroid/telephony/TelephonyManager;-><init>(Landroid/content/Context;)V
459 + invoke-direct {v0, v1}, Landroid/privacy/surrogate/PrivacyTelephonyManager;-><init>(Landroid/content/Context;)V
461 return-object v0
462 .end method
463 diff -Npru stock-framework/smali/android/app/ContextImpl$37.smali opd-framework/smali/android/app/ContextImpl$37.smali
464 --- stock-framework/smali/android/app/ContextImpl$37.smali 2013-01-08 23:29:01.744080013 -0600
465 +++ opd-framework/smali/android/app/ContextImpl$37.smali 2013-01-08 23:29:40.464272008 -0600
466 @@ -38,13 +38,19 @@
468 move-result-object v1
470 - new-instance v2, Landroid/net/wifi/WifiManager;
471 + const-string v2, "ApplicationContext"
473 + const-string v3, "PDroid:ContextImpl: returning PrivacyWifiManager"
475 + invoke-static {v2, v3}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
477 + new-instance v2, Landroid/privacy/surrogate/PrivacyWifiManager;
479 invoke-virtual {p1}, Landroid/app/ContextImpl;->getOuterContext()Landroid/content/Context;
481 move-result-object v3
483 - invoke-direct {v2, v3, v1}, Landroid/net/wifi/WifiManager;-><init>(Landroid/content/Context;Landroid/net/wifi/IWifiManager;)V
484 + invoke-direct {v2, v3, v1}, Landroid/privacy/surrogate/PrivacyWifiManager;-><init>(Landroid/content/Context;Landroid/net/wifi/IWifiManager;)V
486 return-object v2
487 .end method
488 diff -Npru stock-framework/smali/android/app/ContextImpl$39.smali opd-framework/smali/android/app/ContextImpl$39.smali
489 --- stock-framework/smali/android/app/ContextImpl$39.smali 2013-01-08 23:29:01.744080013 -0600
490 +++ opd-framework/smali/android/app/ContextImpl$39.smali 2013-01-08 23:29:40.468272029 -0600
491 @@ -1,5 +1,5 @@
492 .class final Landroid/app/ContextImpl$39;
493 -.super Landroid/app/ContextImpl$ServiceFetcher;
494 +.super Landroid/app/ContextImpl$StaticServiceFetcher;
495 .source "ContextImpl.java"
498 @@ -18,45 +18,39 @@
499 .method constructor <init>()V
500 .registers 1
502 - invoke-direct {p0}, Landroid/app/ContextImpl$ServiceFetcher;-><init>()V
503 + invoke-direct {p0}, Landroid/app/ContextImpl$StaticServiceFetcher;-><init>()V
505 return-void
506 .end method
509 # virtual methods
510 -.method public getService(Landroid/app/ContextImpl;)Ljava/lang/Object;
511 - .registers 6
512 +.method public createStaticService()Ljava/lang/Object;
513 + .registers 5
515 - #getter for: Landroid/app/ContextImpl;->mDisplay:Landroid/view/Display;
516 - invoke-static {p1}, Landroid/app/ContextImpl;->access$100(Landroid/app/ContextImpl;)Landroid/view/Display;
517 + const-string v2, "ApplicationContext"
519 - move-result-object v0
520 + const-string v3, "PDroid:ContextImpl: Creating static privacy service"
522 - if-nez v0, :cond_17
523 + invoke-static {v2, v3}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
525 - invoke-virtual {p1}, Landroid/app/ContextImpl;->getOuterContext()Landroid/content/Context;
526 + const-string/jumbo v2, "privacy"
528 - move-result-object v2
529 + invoke-static {v2}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
531 - const-string v3, "display"
532 + move-result-object v0
534 - invoke-virtual {v2, v3}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
535 + invoke-static {v0}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
537 move-result-object v1
539 - check-cast v1, Landroid/hardware/display/DisplayManager;
541 - const/4 v2, 0x0
542 + new-instance v2, Landroid/privacy/PrivacySettingsManager;
544 - invoke-virtual {v1, v2}, Landroid/hardware/display/DisplayManager;->getDisplay(I)Landroid/view/Display;
546 - move-result-object v0
547 + invoke-static {}, Landroid/app/ContextImpl;->getStaticOuterContext()Landroid/content/Context;
549 - :cond_17
550 - new-instance v2, Landroid/view/WindowManagerImpl;
551 + move-result-object v3
553 - invoke-direct {v2, v0}, Landroid/view/WindowManagerImpl;-><init>(Landroid/view/Display;)V
554 + invoke-direct {v2, v3, v1}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
556 return-object v2
557 .end method
558 diff -Npru stock-framework/smali/android/app/ContextImpl$3.smali opd-framework/smali/android/app/ContextImpl$3.smali
559 --- stock-framework/smali/android/app/ContextImpl$3.smali 2013-01-08 23:29:01.744080013 -0600
560 +++ opd-framework/smali/android/app/ContextImpl$3.smali 2013-01-08 23:29:40.468272029 -0600
561 @@ -26,7 +26,7 @@
563 # virtual methods
564 .method public createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
565 - .registers 5
566 + .registers 6
568 const-string v2, "account"
570 @@ -38,9 +38,15 @@
572 move-result-object v1
574 - new-instance v2, Landroid/accounts/AccountManager;
575 + const-string v2, "ApplicationContext"
577 - invoke-direct {v2, p1, v1}, Landroid/accounts/AccountManager;-><init>(Landroid/content/Context;Landroid/accounts/IAccountManager;)V
578 + const-string v3, "PDroid:ContextImpl: returning PrivacyAccountManager rather than AccountManager"
580 + invoke-static {v2, v3}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
582 + new-instance v2, Landroid/privacy/surrogate/PrivacyAccountManager;
584 + invoke-direct {v2, p1, v1}, Landroid/privacy/surrogate/PrivacyAccountManager;-><init>(Landroid/content/Context;Landroid/accounts/IAccountManager;)V
586 return-object v2
587 .end method
588 diff -Npru stock-framework/smali/android/app/ContextImpl$40.smali opd-framework/smali/android/app/ContextImpl$40.smali
589 --- stock-framework/smali/android/app/ContextImpl$40.smali 2013-01-08 23:29:01.748080028 -0600
590 +++ opd-framework/smali/android/app/ContextImpl$40.smali 2013-01-08 23:29:40.468272029 -0600
591 @@ -26,21 +26,37 @@
593 # virtual methods
594 .method public getService(Landroid/app/ContextImpl;)Ljava/lang/Object;
595 - .registers 5
596 + .registers 6
598 - const-string/jumbo v2, "user"
600 - invoke-static {v2}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
601 + #getter for: Landroid/app/ContextImpl;->mDisplay:Landroid/view/Display;
602 + invoke-static {p1}, Landroid/app/ContextImpl;->access$100(Landroid/app/ContextImpl;)Landroid/view/Display;
604 move-result-object v0
606 - invoke-static {v0}, Landroid/os/IUserManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IUserManager;
607 + if-nez v0, :cond_17
609 + invoke-virtual {p1}, Landroid/app/ContextImpl;->getOuterContext()Landroid/content/Context;
611 + move-result-object v2
613 + const-string v3, "display"
615 + invoke-virtual {v2, v3}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
617 move-result-object v1
619 - new-instance v2, Landroid/os/UserManager;
620 + check-cast v1, Landroid/hardware/display/DisplayManager;
622 + const/4 v2, 0x0
624 + invoke-virtual {v1, v2}, Landroid/hardware/display/DisplayManager;->getDisplay(I)Landroid/view/Display;
626 + move-result-object v0
628 + :cond_17
629 + new-instance v2, Landroid/view/WindowManagerImpl;
631 - invoke-direct {v2, p1, v1}, Landroid/os/UserManager;-><init>(Landroid/content/Context;Landroid/os/IUserManager;)V
632 + invoke-direct {v2, v0}, Landroid/view/WindowManagerImpl;-><init>(Landroid/view/Display;)V
634 return-object v2
635 .end method
636 diff -Npru stock-framework/smali/android/app/ContextImpl$41.smali opd-framework/smali/android/app/ContextImpl$41.smali
637 --- stock-framework/smali/android/app/ContextImpl$41.smali 1969-12-31 18:00:00.000000000 -0600
638 +++ opd-framework/smali/android/app/ContextImpl$41.smali 2013-01-08 23:29:40.468272029 -0600
639 @@ -0,0 +1,46 @@
640 +.class final Landroid/app/ContextImpl$41;
641 +.super Landroid/app/ContextImpl$ServiceFetcher;
642 +.source "ContextImpl.java"
645 +# annotations
646 +.annotation system Ldalvik/annotation/EnclosingClass;
647 + value = Landroid/app/ContextImpl;
648 +.end annotation
650 +.annotation system Ldalvik/annotation/InnerClass;
651 + accessFlags = 0x8
652 + name = null
653 +.end annotation
656 +# direct methods
657 +.method constructor <init>()V
658 + .registers 1
660 + invoke-direct {p0}, Landroid/app/ContextImpl$ServiceFetcher;-><init>()V
662 + return-void
663 +.end method
666 +# virtual methods
667 +.method public getService(Landroid/app/ContextImpl;)Ljava/lang/Object;
668 + .registers 5
670 + const-string/jumbo v2, "user"
672 + invoke-static {v2}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
674 + move-result-object v0
676 + invoke-static {v0}, Landroid/os/IUserManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IUserManager;
678 + move-result-object v1
680 + new-instance v2, Landroid/os/UserManager;
682 + invoke-direct {v2, p1, v1}, Landroid/os/UserManager;-><init>(Landroid/content/Context;Landroid/os/IUserManager;)V
684 + return-object v2
685 +.end method
686 diff -Npru stock-framework/smali/android/app/ContextImpl.smali opd-framework/smali/android/app/ContextImpl.smali
687 --- stock-framework/smali/android/app/ContextImpl.smali 2013-01-08 23:29:01.796080266 -0600
688 +++ opd-framework/smali/android/app/ContextImpl.smali 2013-01-08 23:29:40.500272190 -0600
689 @@ -36,6 +36,8 @@
691 .field private static sNextPerContextServiceCacheIndex:I
693 +.field private static sOuterContext:Landroid/content/Context;
695 .field private static final sSharedPrefs:Ljava/util/HashMap;
696 .annotation system Ldalvik/annotation/Signature;
697 value = {
698 @@ -118,6 +120,10 @@
700 sput-object v0, Landroid/app/ContextImpl;->sSharedPrefs:Ljava/util/HashMap;
702 + const/4 v0, 0x0
704 + sput-object v0, Landroid/app/ContextImpl;->sOuterContext:Landroid/content/Context;
706 new-array v0, v1, [Ljava/lang/String;
708 sput-object v0, Landroid/app/ContextImpl;->EMPTY_FILE_LIST:[Ljava/lang/String;
709 @@ -438,7 +444,7 @@
711 invoke-static {v0, v1}, Landroid/app/ContextImpl;->registerService(Ljava/lang/String;Landroid/app/ContextImpl$ServiceFetcher;)V
713 - const-string/jumbo v0, "window"
714 + const-string/jumbo v0, "privacy"
716 new-instance v1, Landroid/app/ContextImpl$39;
718 @@ -446,7 +452,7 @@
720 invoke-static {v0, v1}, Landroid/app/ContextImpl;->registerService(Ljava/lang/String;Landroid/app/ContextImpl$ServiceFetcher;)V
722 - const-string/jumbo v0, "user"
723 + const-string/jumbo v0, "window"
725 new-instance v1, Landroid/app/ContextImpl$40;
727 @@ -454,6 +460,14 @@
729 invoke-static {v0, v1}, Landroid/app/ContextImpl;->registerService(Ljava/lang/String;Landroid/app/ContextImpl$ServiceFetcher;)V
731 + const-string/jumbo v0, "user"
733 + new-instance v1, Landroid/app/ContextImpl$41;
735 + invoke-direct {v1}, Landroid/app/ContextImpl$41;-><init>()V
737 + invoke-static {v0, v1}, Landroid/app/ContextImpl;->registerService(Ljava/lang/String;Landroid/app/ContextImpl$ServiceFetcher;)V
739 return-void
740 .end method
742 @@ -486,8 +500,21 @@
744 iput-object v0, p0, Landroid/app/ContextImpl;->mServiceCache:Ljava/util/ArrayList;
746 + sget-object v0, Landroid/app/ContextImpl;->sOuterContext:Landroid/content/Context;
748 + if-eqz v0, :cond_26
750 + const-string v0, "ApplicationContext"
752 + const-string v1, "PDroid:ContextImpl: ContextImpl being created but already has sOuterContext"
754 + invoke-static {v0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
756 + :cond_26
757 iput-object p0, p0, Landroid/app/ContextImpl;->mOuterContext:Landroid/content/Context;
759 + sput-object p0, Landroid/app/ContextImpl;->sOuterContext:Landroid/content/Context;
761 return-void
762 .end method
764 @@ -548,8 +575,21 @@
766 iput-object v0, p0, Landroid/app/ContextImpl;->mDisplay:Landroid/view/Display;
768 + sget-object v0, Landroid/app/ContextImpl;->sOuterContext:Landroid/content/Context;
770 + if-eqz v0, :cond_42
772 + const-string v0, "ApplicationContext"
774 + const-string v1, "PDroid:ContextImpl: ContextImpl being created but already has sOuterContext"
776 + invoke-static {v0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
778 + :cond_42
779 iput-object p0, p0, Landroid/app/ContextImpl;->mOuterContext:Landroid/content/Context;
781 + sput-object p0, Landroid/app/ContextImpl;->sOuterContext:Landroid/content/Context;
783 return-void
784 .end method
786 @@ -1053,6 +1093,14 @@
787 throw v0
788 .end method
790 +.method static final getStaticOuterContext()Landroid/content/Context;
791 + .registers 1
793 + sget-object v0, Landroid/app/ContextImpl;->sOuterContext:Landroid/content/Context;
795 + return-object v0
796 +.end method
798 .method private getWallpaperManager()Landroid/app/WallpaperManager;
799 .registers 2
801 @@ -5059,10 +5107,23 @@
802 .end method
804 .method final setOuterContext(Landroid/content/Context;)V
805 - .registers 2
806 + .registers 4
808 + sget-object v0, Landroid/app/ContextImpl;->sOuterContext:Landroid/content/Context;
810 + if-eqz v0, :cond_b
812 + const-string v0, "ApplicationContext"
814 + const-string v1, "PDroid:ContextImpl: ContextImpl being created but already has sOuterContext"
816 + invoke-static {v0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
818 + :cond_b
819 iput-object p1, p0, Landroid/app/ContextImpl;->mOuterContext:Landroid/content/Context;
821 + sput-object p1, Landroid/app/ContextImpl;->sOuterContext:Landroid/content/Context;
823 return-void
824 .end method
826 diff -Npru stock-framework/smali/android/app/Fragment.smali opd-framework/smali/android/app/Fragment.smali
827 --- stock-framework/smali/android/app/Fragment.smali 2013-01-08 23:29:01.812080343 -0600
828 +++ opd-framework/smali/android/app/Fragment.smali 2013-01-08 23:29:40.508272234 -0600
829 @@ -676,11 +676,11 @@
830 :cond_178
831 iget-object v0, p0, Landroid/app/Fragment;->mView:Landroid/view/View;
833 - if-eqz v0, :cond_189
834 + if-eqz v0, :cond_18a
836 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
838 - const-string v0, "mView="
839 + const-string/jumbo v0, "mView="
841 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
843 @@ -688,10 +688,10 @@
845 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->println(Ljava/lang/Object;)V
847 - :cond_189
848 + :cond_18a
849 iget-object v0, p0, Landroid/app/Fragment;->mAnimatingAway:Landroid/animation/Animator;
851 - if-eqz v0, :cond_1a7
852 + if-eqz v0, :cond_1a8
854 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
856 @@ -713,10 +713,10 @@
858 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->println(I)V
860 - :cond_1a7
861 + :cond_1a8
862 iget-object v0, p0, Landroid/app/Fragment;->mLoaderManager:Landroid/app/LoaderManagerImpl;
864 - if-eqz v0, :cond_1cb
865 + if-eqz v0, :cond_1cc
867 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
869 @@ -746,10 +746,10 @@
871 invoke-virtual {v0, v1, p2, p3, p4}, Landroid/app/LoaderManagerImpl;->dump(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
873 - :cond_1cb
874 + :cond_1cc
875 iget-object v0, p0, Landroid/app/Fragment;->mChildFragmentManager:Landroid/app/FragmentManagerImpl;
877 - if-eqz v0, :cond_208
878 + if-eqz v0, :cond_209
880 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
882 @@ -803,7 +803,7 @@
884 invoke-virtual {v0, v1, p2, p3, p4}, Landroid/app/FragmentManagerImpl;->dump(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
886 - :cond_208
887 + :cond_209
888 return-void
889 .end method
891 diff -Npru stock-framework/smali/android/app/Instrumentation$1.smali opd-framework/smali/android/app/Instrumentation$1.smali
892 --- stock-framework/smali/android/app/Instrumentation$1.smali 2013-01-08 23:29:02.112081832 -0600
893 +++ opd-framework/smali/android/app/Instrumentation$1.smali 2013-01-08 23:29:40.708273226 -0600
894 @@ -1,14 +1,96 @@
895 -.class synthetic Landroid/app/Instrumentation$1;
896 +.class Landroid/app/Instrumentation$1;
897 .super Ljava/lang/Object;
898 .source "Instrumentation.java"
900 +# interfaces
901 +.implements Ljava/lang/Runnable;
904 # annotations
905 -.annotation system Ldalvik/annotation/EnclosingClass;
906 - value = Landroid/app/Instrumentation;
907 +.annotation system Ldalvik/annotation/EnclosingMethod;
908 + value = Landroid/app/Instrumentation;->execStartActivity(Landroid/content/Context;Landroid/os/IBinder;Landroid/os/IBinder;Landroid/app/Activity;Landroid/content/Intent;ILandroid/os/Bundle;)Landroid/app/Instrumentation$ActivityResult;
909 .end annotation
911 .annotation system Ldalvik/annotation/InnerClass;
912 - accessFlags = 0x1008
913 + accessFlags = 0x0
914 name = null
915 .end annotation
918 +# instance fields
919 +.field final synthetic this$0:Landroid/app/Instrumentation;
921 +.field final synthetic val$tmp:Landroid/content/Context;
924 +# direct methods
925 +.method constructor <init>(Landroid/app/Instrumentation;Landroid/content/Context;)V
926 + .registers 3
928 + iput-object p1, p0, Landroid/app/Instrumentation$1;->this$0:Landroid/app/Instrumentation;
930 + iput-object p2, p0, Landroid/app/Instrumentation$1;->val$tmp:Landroid/content/Context;
932 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
934 + return-void
935 +.end method
938 +# virtual methods
939 +.method public run()V
940 + .registers 5
942 + const-wide/16 v2, 0x3e8
944 + :try_start_2
945 + invoke-static {v2, v3}, Ljava/lang/Thread;->sleep(J)V
946 + :try_end_5
947 + .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_5} :catch_35
949 + :goto_5
950 + new-instance v1, Landroid/content/Intent;
952 + const-string v2, "android.privacy.BLOCKED_PHONE_CALL"
954 + invoke-direct {v1, v2}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
956 + new-instance v0, Landroid/os/Bundle;
958 + invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
960 + const-string/jumbo v2, "packageName"
962 + iget-object v3, p0, Landroid/app/Instrumentation$1;->val$tmp:Landroid/content/Context;
964 + invoke-virtual {v3}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
966 + move-result-object v3
968 + invoke-virtual {v0, v2, v3}, Landroid/os/Bundle;->putString(Ljava/lang/String;Ljava/lang/String;)V
970 + const-string/jumbo v2, "phoneState"
972 + const/4 v3, 0x0
974 + invoke-virtual {v0, v2, v3}, Landroid/os/Bundle;->putInt(Ljava/lang/String;I)V
976 + invoke-virtual {v1, v0}, Landroid/content/Intent;->putExtras(Landroid/os/Bundle;)Landroid/content/Intent;
978 + iget-object v2, p0, Landroid/app/Instrumentation$1;->val$tmp:Landroid/content/Context;
980 + invoke-virtual {v2, v1}, Landroid/content/Context;->sendBroadcast(Landroid/content/Intent;)V
982 + const-string v2, "PrivacyContext"
984 + const-string/jumbo v3, "sent privacy intent"
986 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
988 + return-void
990 + :catch_35
991 + move-exception v2
993 + goto :goto_5
994 +.end method
995 diff -Npru stock-framework/smali/android/app/Instrumentation$2.smali opd-framework/smali/android/app/Instrumentation$2.smali
996 --- stock-framework/smali/android/app/Instrumentation$2.smali 1969-12-31 18:00:00.000000000 -0600
997 +++ opd-framework/smali/android/app/Instrumentation$2.smali 2013-01-08 23:29:40.712273238 -0600
998 @@ -0,0 +1,96 @@
999 +.class Landroid/app/Instrumentation$2;
1000 +.super Ljava/lang/Object;
1001 +.source "Instrumentation.java"
1003 +# interfaces
1004 +.implements Ljava/lang/Runnable;
1007 +# annotations
1008 +.annotation system Ldalvik/annotation/EnclosingMethod;
1009 + value = Landroid/app/Instrumentation;->execStartActivitiesAsUser(Landroid/content/Context;Landroid/os/IBinder;Landroid/os/IBinder;Landroid/app/Activity;[Landroid/content/Intent;Landroid/os/Bundle;I)V
1010 +.end annotation
1012 +.annotation system Ldalvik/annotation/InnerClass;
1013 + accessFlags = 0x0
1014 + name = null
1015 +.end annotation
1018 +# instance fields
1019 +.field final synthetic this$0:Landroid/app/Instrumentation;
1021 +.field final synthetic val$tmp:Landroid/content/Context;
1024 +# direct methods
1025 +.method constructor <init>(Landroid/app/Instrumentation;Landroid/content/Context;)V
1026 + .registers 3
1028 + iput-object p1, p0, Landroid/app/Instrumentation$2;->this$0:Landroid/app/Instrumentation;
1030 + iput-object p2, p0, Landroid/app/Instrumentation$2;->val$tmp:Landroid/content/Context;
1032 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
1034 + return-void
1035 +.end method
1038 +# virtual methods
1039 +.method public run()V
1040 + .registers 5
1042 + const-wide/16 v2, 0x3e8
1044 + :try_start_2
1045 + invoke-static {v2, v3}, Ljava/lang/Thread;->sleep(J)V
1046 + :try_end_5
1047 + .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_5} :catch_35
1049 + :goto_5
1050 + new-instance v1, Landroid/content/Intent;
1052 + const-string v2, "android.privacy.BLOCKED_PHONE_CALL"
1054 + invoke-direct {v1, v2}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
1056 + new-instance v0, Landroid/os/Bundle;
1058 + invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
1060 + const-string/jumbo v2, "packageName"
1062 + iget-object v3, p0, Landroid/app/Instrumentation$2;->val$tmp:Landroid/content/Context;
1064 + invoke-virtual {v3}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
1066 + move-result-object v3
1068 + invoke-virtual {v0, v2, v3}, Landroid/os/Bundle;->putString(Ljava/lang/String;Ljava/lang/String;)V
1070 + const-string/jumbo v2, "phoneState"
1072 + const/4 v3, 0x0
1074 + invoke-virtual {v0, v2, v3}, Landroid/os/Bundle;->putInt(Ljava/lang/String;I)V
1076 + invoke-virtual {v1, v0}, Landroid/content/Intent;->putExtras(Landroid/os/Bundle;)Landroid/content/Intent;
1078 + iget-object v2, p0, Landroid/app/Instrumentation$2;->val$tmp:Landroid/content/Context;
1080 + invoke-virtual {v2, v1}, Landroid/content/Context;->sendBroadcast(Landroid/content/Intent;)V
1082 + const-string v2, "PrivacyContext"
1084 + const-string/jumbo v3, "sent privacy intent"
1086 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
1088 + return-void
1090 + :catch_35
1091 + move-exception v2
1093 + goto :goto_5
1094 +.end method
1095 diff -Npru stock-framework/smali/android/app/Instrumentation$3.smali opd-framework/smali/android/app/Instrumentation$3.smali
1096 --- stock-framework/smali/android/app/Instrumentation$3.smali 1969-12-31 18:00:00.000000000 -0600
1097 +++ opd-framework/smali/android/app/Instrumentation$3.smali 2013-01-08 23:29:40.712273238 -0600
1098 @@ -0,0 +1,96 @@
1099 +.class Landroid/app/Instrumentation$3;
1100 +.super Ljava/lang/Object;
1101 +.source "Instrumentation.java"
1103 +# interfaces
1104 +.implements Ljava/lang/Runnable;
1107 +# annotations
1108 +.annotation system Ldalvik/annotation/EnclosingMethod;
1109 + value = Landroid/app/Instrumentation;->execStartActivity(Landroid/content/Context;Landroid/os/IBinder;Landroid/os/IBinder;Landroid/app/Fragment;Landroid/content/Intent;ILandroid/os/Bundle;)Landroid/app/Instrumentation$ActivityResult;
1110 +.end annotation
1112 +.annotation system Ldalvik/annotation/InnerClass;
1113 + accessFlags = 0x0
1114 + name = null
1115 +.end annotation
1118 +# instance fields
1119 +.field final synthetic this$0:Landroid/app/Instrumentation;
1121 +.field final synthetic val$tmp:Landroid/content/Context;
1124 +# direct methods
1125 +.method constructor <init>(Landroid/app/Instrumentation;Landroid/content/Context;)V
1126 + .registers 3
1128 + iput-object p1, p0, Landroid/app/Instrumentation$3;->this$0:Landroid/app/Instrumentation;
1130 + iput-object p2, p0, Landroid/app/Instrumentation$3;->val$tmp:Landroid/content/Context;
1132 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
1134 + return-void
1135 +.end method
1138 +# virtual methods
1139 +.method public run()V
1140 + .registers 5
1142 + const-wide/16 v2, 0x3e8
1144 + :try_start_2
1145 + invoke-static {v2, v3}, Ljava/lang/Thread;->sleep(J)V
1146 + :try_end_5
1147 + .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_5} :catch_35
1149 + :goto_5
1150 + new-instance v1, Landroid/content/Intent;
1152 + const-string v2, "android.privacy.BLOCKED_PHONE_CALL"
1154 + invoke-direct {v1, v2}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
1156 + new-instance v0, Landroid/os/Bundle;
1158 + invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
1160 + const-string/jumbo v2, "packageName"
1162 + iget-object v3, p0, Landroid/app/Instrumentation$3;->val$tmp:Landroid/content/Context;
1164 + invoke-virtual {v3}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
1166 + move-result-object v3
1168 + invoke-virtual {v0, v2, v3}, Landroid/os/Bundle;->putString(Ljava/lang/String;Ljava/lang/String;)V
1170 + const-string/jumbo v2, "phoneState"
1172 + const/4 v3, 0x0
1174 + invoke-virtual {v0, v2, v3}, Landroid/os/Bundle;->putInt(Ljava/lang/String;I)V
1176 + invoke-virtual {v1, v0}, Landroid/content/Intent;->putExtras(Landroid/os/Bundle;)Landroid/content/Intent;
1178 + iget-object v2, p0, Landroid/app/Instrumentation$3;->val$tmp:Landroid/content/Context;
1180 + invoke-virtual {v2, v1}, Landroid/content/Context;->sendBroadcast(Landroid/content/Intent;)V
1182 + const-string v2, "PrivacyContext"
1184 + const-string/jumbo v3, "sent privacy intent"
1186 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
1188 + return-void
1190 + :catch_35
1191 + move-exception v2
1193 + goto :goto_5
1194 +.end method
1195 diff -Npru stock-framework/smali/android/app/Instrumentation$4.smali opd-framework/smali/android/app/Instrumentation$4.smali
1196 --- stock-framework/smali/android/app/Instrumentation$4.smali 1969-12-31 18:00:00.000000000 -0600
1197 +++ opd-framework/smali/android/app/Instrumentation$4.smali 2013-01-08 23:29:40.712273238 -0600
1198 @@ -0,0 +1,96 @@
1199 +.class Landroid/app/Instrumentation$4;
1200 +.super Ljava/lang/Object;
1201 +.source "Instrumentation.java"
1203 +# interfaces
1204 +.implements Ljava/lang/Runnable;
1207 +# annotations
1208 +.annotation system Ldalvik/annotation/EnclosingMethod;
1209 + value = Landroid/app/Instrumentation;->execStartActivity(Landroid/content/Context;Landroid/os/IBinder;Landroid/os/IBinder;Landroid/app/Activity;Landroid/content/Intent;ILandroid/os/Bundle;Landroid/os/UserHandle;)Landroid/app/Instrumentation$ActivityResult;
1210 +.end annotation
1212 +.annotation system Ldalvik/annotation/InnerClass;
1213 + accessFlags = 0x0
1214 + name = null
1215 +.end annotation
1218 +# instance fields
1219 +.field final synthetic this$0:Landroid/app/Instrumentation;
1221 +.field final synthetic val$tmp:Landroid/content/Context;
1224 +# direct methods
1225 +.method constructor <init>(Landroid/app/Instrumentation;Landroid/content/Context;)V
1226 + .registers 3
1228 + iput-object p1, p0, Landroid/app/Instrumentation$4;->this$0:Landroid/app/Instrumentation;
1230 + iput-object p2, p0, Landroid/app/Instrumentation$4;->val$tmp:Landroid/content/Context;
1232 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
1234 + return-void
1235 +.end method
1238 +# virtual methods
1239 +.method public run()V
1240 + .registers 5
1242 + const-wide/16 v2, 0x3e8
1244 + :try_start_2
1245 + invoke-static {v2, v3}, Ljava/lang/Thread;->sleep(J)V
1246 + :try_end_5
1247 + .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_5} :catch_35
1249 + :goto_5
1250 + new-instance v1, Landroid/content/Intent;
1252 + const-string v2, "android.privacy.BLOCKED_PHONE_CALL"
1254 + invoke-direct {v1, v2}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
1256 + new-instance v0, Landroid/os/Bundle;
1258 + invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
1260 + const-string/jumbo v2, "packageName"
1262 + iget-object v3, p0, Landroid/app/Instrumentation$4;->val$tmp:Landroid/content/Context;
1264 + invoke-virtual {v3}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
1266 + move-result-object v3
1268 + invoke-virtual {v0, v2, v3}, Landroid/os/Bundle;->putString(Ljava/lang/String;Ljava/lang/String;)V
1270 + const-string/jumbo v2, "phoneState"
1272 + const/4 v3, 0x0
1274 + invoke-virtual {v0, v2, v3}, Landroid/os/Bundle;->putInt(Ljava/lang/String;I)V
1276 + invoke-virtual {v1, v0}, Landroid/content/Intent;->putExtras(Landroid/os/Bundle;)Landroid/content/Intent;
1278 + iget-object v2, p0, Landroid/app/Instrumentation$4;->val$tmp:Landroid/content/Context;
1280 + invoke-virtual {v2, v1}, Landroid/content/Context;->sendBroadcast(Landroid/content/Intent;)V
1282 + const-string v2, "PrivacyContext"
1284 + const-string/jumbo v3, "sent privacy intent"
1286 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
1288 + return-void
1290 + :catch_35
1291 + move-exception v2
1293 + goto :goto_5
1294 +.end method
1295 diff -Npru stock-framework/smali/android/app/Instrumentation.smali opd-framework/smali/android/app/Instrumentation.smali
1296 --- stock-framework/smali/android/app/Instrumentation.smali 2013-01-08 23:29:02.128081917 -0600
1297 +++ opd-framework/smali/android/app/Instrumentation.smali 2013-01-08 23:29:40.732273345 -0600
1298 @@ -6,7 +6,6 @@
1299 # annotations
1300 .annotation system Ldalvik/annotation/MemberClasses;
1301 value = {
1302 - Landroid/app/Instrumentation$1;,
1303 Landroid/app/Instrumentation$Idler;,
1304 Landroid/app/Instrumentation$ActivityGoing;,
1305 Landroid/app/Instrumentation$ActivityWaiter;,
1306 @@ -53,6 +52,8 @@
1308 .field private mPerformanceCollector:Landroid/os/PerformanceCollector;
1310 +.field private mPrvSvc:Landroid/privacy/PrivacySettingsManager;
1312 .field private mRunner:Ljava/lang/Thread;
1314 .field private final mSync:Ljava/lang/Object;
1315 @@ -891,176 +892,131 @@
1316 .end method
1318 .method public execStartActivitiesAsUser(Landroid/content/Context;Landroid/os/IBinder;Landroid/os/IBinder;Landroid/app/Activity;[Landroid/content/Intent;Landroid/os/Bundle;I)V
1319 - .registers 20
1321 - move-object v2, p2
1323 - check-cast v2, Landroid/app/IApplicationThread;
1325 - iget-object v1, p0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1327 - if-eqz v1, :cond_37
1329 - iget-object v3, p0, Landroid/app/Instrumentation;->mSync:Ljava/lang/Object;
1331 - monitor-enter v3
1333 - :try_start_a
1334 - iget-object v1, p0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1336 - invoke-interface {v1}, Ljava/util/List;->size()I
1338 - move-result v8
1340 - const/4 v10, 0x0
1342 - :goto_11
1343 - if-ge v10, v8, :cond_36
1344 + .registers 31
1346 - iget-object v1, p0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1348 - invoke-interface {v1, v10}, Ljava/util/List;->get(I)Ljava/lang/Object;
1350 - move-result-object v9
1352 - check-cast v9, Landroid/app/Instrumentation$ActivityMonitor;
1354 - const/4 v1, 0x0
1355 + move-object/from16 v3, p2
1357 - const/4 v5, 0x0
1358 + check-cast v3, Landroid/app/IApplicationThread;
1360 - aget-object v5, p5, v5
1361 + const-string v2, "Instrumentation"
1363 - invoke-virtual {v9, p1, v1, v5}, Landroid/app/Instrumentation$ActivityMonitor;->match(Landroid/content/Context;Landroid/app/Activity;Landroid/content/Intent;)Z
1364 + new-instance v4, Ljava/lang/StringBuilder;
1366 - move-result v1
1367 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
1369 - if-eqz v1, :cond_33
1370 + const-string v6, "PDroid:Instrumentation:execStartActivitiesAsUser: execStartActivitiesAsUser for "
1372 - iget v1, v9, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
1373 + invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1375 - add-int/lit8 v1, v1, 0x1
1376 + move-result-object v4
1378 - iput v1, v9, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
1379 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
1381 - invoke-virtual {v9}, Landroid/app/Instrumentation$ActivityMonitor;->isBlocking()Z
1382 + move-result-object v6
1384 - move-result v1
1385 + invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1387 - if-eqz v1, :cond_36
1388 + move-result-object v4
1390 - monitor-exit v3
1391 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
1393 - :goto_32
1394 - return-void
1395 + move-result-object v4
1397 - :cond_33
1398 - add-int/lit8 v10, v10, 0x1
1399 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
1401 - goto :goto_11
1402 + if-eqz p5, :cond_6f
1404 - :cond_36
1405 - monitor-exit v3
1406 - :try_end_37
1407 - .catchall {:try_start_a .. :try_end_37} :catchall_57
1408 + const/4 v13, 0x0
1410 - :cond_37
1411 - :try_start_37
1412 - move-object/from16 v0, p5
1413 + move-object/from16 v12, p5
1415 - array-length v1, v0
1416 + array-length v0, v12
1418 - new-array v4, v1, [Ljava/lang/String;
1419 + move/from16 v19, v0
1421 - const/4 v10, 0x0
1422 + const/16 v17, 0x0
1424 - :goto_3d
1425 - move-object/from16 v0, p5
1426 + :goto_2a
1427 + move/from16 v0, v17
1429 - array-length v1, v0
1430 + move/from16 v1, v19
1432 - if-ge v10, v1, :cond_5a
1433 + if-ge v0, v1, :cond_51
1435 - aget-object v1, p5, v10
1436 + aget-object v18, v12, v17
1438 - const/4 v3, 0x0
1439 + :try_start_32
1440 + invoke-virtual/range {v18 .. v18}, Landroid/content/Intent;->getAction()Ljava/lang/String;
1442 - invoke-virtual {v1, v3}, Landroid/content/Intent;->setAllowFds(Z)V
1443 + move-result-object v2
1445 - aget-object v1, p5, v10
1446 + if-eqz v2, :cond_cc
1448 - invoke-virtual {p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
1449 + invoke-virtual/range {v18 .. v18}, Landroid/content/Intent;->getAction()Ljava/lang/String;
1451 - move-result-object v3
1452 + move-result-object v2
1454 - invoke-virtual {v1, v3}, Landroid/content/Intent;->resolveTypeIfNeeded(Landroid/content/ContentResolver;)Ljava/lang/String;
1455 + const-string v4, "android.intent.action.CALL"
1457 - move-result-object v1
1458 + invoke-virtual {v2, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
1460 - aput-object v1, v4, v10
1461 - :try_end_54
1462 - .catch Landroid/os/RemoteException; {:try_start_37 .. :try_end_54} :catch_70
1463 + move-result v2
1465 - add-int/lit8 v10, v10, 0x1
1466 + if-nez v2, :cond_50
1468 - goto :goto_3d
1469 + invoke-virtual/range {v18 .. v18}, Landroid/content/Intent;->getAction()Ljava/lang/String;
1471 - :catchall_57
1472 - move-exception v1
1473 + move-result-object v2
1475 - :try_start_58
1476 - monitor-exit v3
1477 - :try_end_59
1478 - .catchall {:try_start_58 .. :try_end_59} :catchall_57
1479 + const-string v4, "android.intent.action.DIAL"
1481 - throw v1
1482 + invoke-virtual {v2, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
1483 + :try_end_4d
1484 + .catch Ljava/lang/Exception; {:try_start_32 .. :try_end_4d} :catch_ae
1486 - :cond_5a
1487 - :try_start_5a
1488 - invoke-static {}, Landroid/app/ActivityManagerNative;->getDefault()Landroid/app/IActivityManager;
1489 + move-result v2
1491 - move-result-object v1
1492 + if-eqz v2, :cond_cc
1494 - move-object/from16 v3, p5
1495 + :cond_50
1496 + const/4 v13, 0x1
1498 - move-object v5, p3
1499 + :cond_51
1500 + if-nez v13, :cond_d0
1502 - move-object/from16 v6, p6
1503 + const-string v2, "Instrumentation"
1505 - move/from16 v7, p7
1506 + new-instance v4, Ljava/lang/StringBuilder;
1508 - invoke-interface/range {v1 .. v7}, Landroid/app/IActivityManager;->startActivities(Landroid/app/IApplicationThread;[Landroid/content/Intent;[Ljava/lang/String;Landroid/os/IBinder;Landroid/os/Bundle;I)I
1509 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
1511 - move-result v11
1512 + const-string v6, "PDroid:Instrumentation:execStartActivitiesAsUser: No provided intents triggered checking for "
1514 - const/4 v1, 0x0
1515 + invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1517 - aget-object v1, p5, v1
1518 + move-result-object v4
1520 - invoke-static {v11, v1}, Landroid/app/Instrumentation;->checkStartActivityResult(ILjava/lang/Object;)V
1521 - :try_end_6f
1522 - .catch Landroid/os/RemoteException; {:try_start_5a .. :try_end_6f} :catch_70
1523 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
1525 - goto :goto_32
1526 + move-result-object v6
1528 - :catch_70
1529 - move-exception v1
1530 + invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1532 - goto :goto_32
1533 -.end method
1534 + move-result-object v4
1536 -.method public execStartActivity(Landroid/content/Context;Landroid/os/IBinder;Landroid/os/IBinder;Landroid/app/Activity;Landroid/content/Intent;ILandroid/os/Bundle;)Landroid/app/Instrumentation$ActivityResult;
1537 - .registers 25
1538 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
1540 - move-object/from16 v3, p2
1541 + move-result-object v4
1543 - check-cast v3, Landroid/app/IApplicationThread;
1544 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
1546 + :cond_6f
1547 + :goto_6f
1548 move-object/from16 v0, p0
1550 iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1552 - if-eqz v2, :cond_49
1553 + if-eqz v2, :cond_283
1555 move-object/from16 v0, p0
1557 @@ -1068,524 +1024,2595 @@
1559 monitor-enter v4
1561 - :try_start_f
1562 + :try_start_7a
1563 move-object/from16 v0, p0
1565 iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1567 invoke-interface {v2}, Ljava/util/List;->size()I
1569 - move-result v13
1570 + move-result v9
1572 + const/16 v16, 0x0
1574 - const/4 v15, 0x0
1575 + :goto_84
1576 + move/from16 v0, v16
1578 - :goto_18
1579 - if-ge v15, v13, :cond_48
1580 + if-ge v0, v9, :cond_282
1582 move-object/from16 v0, p0
1584 iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1586 - invoke-interface {v2, v15}, Ljava/util/List;->get(I)Ljava/lang/Object;
1587 + move/from16 v0, v16
1589 + invoke-interface {v2, v0}, Ljava/util/List;->get(I)Ljava/lang/Object;
1591 - move-result-object v14
1592 + move-result-object v11
1594 - check-cast v14, Landroid/app/Instrumentation$ActivityMonitor;
1595 + check-cast v11, Landroid/app/Instrumentation$ActivityMonitor;
1597 const/4 v2, 0x0
1599 - move-object/from16 v0, p1
1600 + const/4 v6, 0x0
1602 - move-object/from16 v1, p5
1603 + aget-object v6, p5, v6
1605 + move-object/from16 v0, p1
1607 - invoke-virtual {v14, v0, v2, v1}, Landroid/app/Instrumentation$ActivityMonitor;->match(Landroid/content/Context;Landroid/app/Activity;Landroid/content/Intent;)Z
1608 + invoke-virtual {v11, v0, v2, v6}, Landroid/app/Instrumentation$ActivityMonitor;->match(Landroid/content/Context;Landroid/app/Activity;Landroid/content/Intent;)Z
1610 move-result v2
1612 - if-eqz v2, :cond_45
1613 + if-eqz v2, :cond_27e
1615 - iget v2, v14, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
1616 + iget v2, v11, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
1618 add-int/lit8 v2, v2, 0x1
1620 - iput v2, v14, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
1621 + iput v2, v11, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
1623 - invoke-virtual {v14}, Landroid/app/Instrumentation$ActivityMonitor;->isBlocking()Z
1624 + invoke-virtual {v11}, Landroid/app/Instrumentation$ActivityMonitor;->isBlocking()Z
1626 move-result v2
1628 - if-eqz v2, :cond_48
1629 + if-eqz v2, :cond_282
1631 - if-ltz p6, :cond_43
1633 - invoke-virtual {v14}, Landroid/app/Instrumentation$ActivityMonitor;->getResult()Landroid/app/Instrumentation$ActivityResult;
1635 - move-result-object v2
1637 - :goto_41
1638 monitor-exit v4
1639 + :try_end_ad
1640 + .catchall {:try_start_7a .. :try_end_ad} :catchall_2a6
1642 - :goto_42
1643 - return-object v2
1644 + :goto_ad
1645 + return-void
1647 - :cond_43
1648 - const/4 v2, 0x0
1649 + :catch_ae
1650 + move-exception v14
1652 - goto :goto_41
1653 + const-string v2, "Instrumentation"
1655 - :cond_45
1656 - add-int/lit8 v15, v15, 0x1
1657 + new-instance v4, Ljava/lang/StringBuilder;
1659 - goto :goto_18
1660 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
1662 - :cond_48
1663 - monitor-exit v4
1664 - :try_end_49
1665 - .catchall {:try_start_f .. :try_end_49} :catchall_7e
1666 + const-string v6, "PDroid:Instrumentation:execStartActivitiesAsUser: Exception occurred when checking intents for "
1668 - :cond_49
1669 - const/4 v2, 0x0
1670 + invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1672 - :try_start_4a
1673 - move-object/from16 v0, p5
1674 + move-result-object v4
1676 - invoke-virtual {v0, v2}, Landroid/content/Intent;->setAllowFds(Z)V
1677 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
1679 - invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->migrateExtraStreamToClipData()Z
1680 + move-result-object v6
1682 - invoke-static {}, Landroid/app/ActivityManagerNative;->getDefault()Landroid/app/IActivityManager;
1683 + invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1685 - move-result-object v2
1686 + move-result-object v4
1688 - invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
1689 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
1691 move-result-object v4
1693 - move-object/from16 v0, p5
1694 + invoke-static {v2, v4, v14}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
1696 - invoke-virtual {v0, v4}, Landroid/content/Intent;->resolveTypeIfNeeded(Landroid/content/ContentResolver;)Ljava/lang/String;
1697 + const/4 v13, 0x1
1699 - move-result-object v5
1700 + :cond_cc
1701 + add-int/lit8 v17, v17, 0x1
1703 - if-eqz p4, :cond_81
1704 + goto/16 :goto_2a
1706 - move-object/from16 v0, p4
1707 + :cond_d0
1708 + const-string v2, "Instrumentation"
1710 - iget-object v7, v0, Landroid/app/Activity;->mEmbeddedID:Ljava/lang/String;
1711 + new-instance v4, Ljava/lang/StringBuilder;
1713 - :goto_66
1714 - const/4 v9, 0x0
1715 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
1717 - const/4 v10, 0x0
1718 + const-string v6, "PDroid:Instrumentation:execStartActivitiesAsUser: One or more intents triggered checking for "
1720 - const/4 v11, 0x0
1721 + invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1723 - move-object/from16 v4, p5
1724 + move-result-object v4
1726 - move-object/from16 v6, p3
1727 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
1729 - move/from16 v8, p6
1730 + move-result-object v6
1732 - move-object/from16 v12, p7
1733 + invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1735 - invoke-interface/range {v2 .. v12}, Landroid/app/IActivityManager;->startActivity(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILjava/lang/String;Landroid/os/ParcelFileDescriptor;Landroid/os/Bundle;)I
1736 + move-result-object v4
1738 - move-result v16
1739 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
1741 - move/from16 v0, v16
1742 + move-result-object v4
1744 - move-object/from16 v1, p5
1745 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
1747 - invoke-static {v0, v1}, Landroid/app/Instrumentation;->checkStartActivityResult(ILjava/lang/Object;)V
1748 - :try_end_7c
1749 - .catch Landroid/os/RemoteException; {:try_start_4a .. :try_end_7c} :catch_83
1750 + move-object/from16 v0, p0
1752 - :goto_7c
1753 - const/4 v2, 0x0
1754 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
1756 - goto :goto_42
1757 + if-eqz v2, :cond_fc
1759 - :catchall_7e
1760 - move-exception v2
1761 + move-object/from16 v0, p0
1763 - :try_start_7f
1764 - monitor-exit v4
1765 - :try_end_80
1766 - .catchall {:try_start_7f .. :try_end_80} :catchall_7e
1767 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
1769 - throw v2
1770 + invoke-virtual {v2}, Landroid/privacy/PrivacySettingsManager;->isServiceAvailable()Z
1772 - :cond_81
1773 - const/4 v7, 0x0
1774 + move-result v2
1776 - goto :goto_66
1777 + if-nez v2, :cond_18f
1779 - :catch_83
1780 - move-exception v2
1781 + :cond_fc
1782 + new-instance v2, Landroid/privacy/PrivacySettingsManager;
1784 - goto :goto_7c
1785 -.end method
1786 + const-string/jumbo v4, "privacy"
1788 -.method public execStartActivity(Landroid/content/Context;Landroid/os/IBinder;Landroid/os/IBinder;Landroid/app/Activity;Landroid/content/Intent;ILandroid/os/Bundle;Landroid/os/UserHandle;)Landroid/app/Instrumentation$ActivityResult;
1789 - .registers 27
1790 + invoke-static {v4}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
1792 - move-object/from16 v3, p2
1793 + move-result-object v4
1795 - check-cast v3, Landroid/app/IApplicationThread;
1796 + invoke-static {v4}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
1798 - move-object/from16 v0, p0
1799 + move-result-object v4
1801 - iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1802 + move-object/from16 v0, p1
1804 - if-eqz v2, :cond_4e
1805 + invoke-direct {v2, v0, v4}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
1807 move-object/from16 v0, p0
1809 - iget-object v4, v0, Landroid/app/Instrumentation;->mSync:Ljava/lang/Object;
1811 - monitor-enter v4
1812 + iput-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
1814 - :try_start_f
1815 move-object/from16 v0, p0
1817 - iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1818 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
1820 - invoke-interface {v2}, Ljava/util/List;->size()I
1821 + if-eqz v2, :cond_187
1823 - move-result v14
1824 + const-string v2, "Instrumentation"
1826 - const/16 v16, 0x0
1827 + const-string v4, "PDroid:Instrumentation:execStartActivitiesAsUser: Obtained privacy service"
1829 - :goto_19
1830 - move/from16 v0, v16
1831 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
1833 - if-ge v0, v14, :cond_4d
1834 + :goto_11f
1835 + const/4 v10, 0x0
1837 move-object/from16 v0, p0
1839 - iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1840 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
1842 - move/from16 v0, v16
1843 + if-eqz v2, :cond_130
1845 - invoke-interface {v2, v0}, Ljava/util/List;->get(I)Ljava/lang/Object;
1846 + move-object/from16 v0, p0
1848 - move-result-object v15
1849 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
1851 - check-cast v15, Landroid/app/Instrumentation$ActivityMonitor;
1852 + invoke-virtual {v2}, Landroid/privacy/PrivacySettingsManager;->isServiceAvailable()Z
1854 - const/4 v2, 0x0
1855 + move-result v2
1857 - move-object/from16 v0, p1
1858 + if-nez v2, :cond_197
1860 - move-object/from16 v1, p5
1861 + :cond_130
1862 + const-string v2, "Instrumentation"
1864 - invoke-virtual {v15, v0, v2, v1}, Landroid/app/Instrumentation$ActivityMonitor;->match(Landroid/content/Context;Landroid/app/Activity;Landroid/content/Intent;)Z
1865 + const-string v4, "PDroid:Instrumentation:execStartActivitiesAsUser: Privacy service not available - assuming permission denied"
1867 - move-result v2
1868 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
1870 - if-eqz v2, :cond_4a
1871 + const/4 v10, 0x0
1873 - iget v2, v15, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
1874 + move-object/from16 v0, p0
1876 - add-int/lit8 v2, v2, 0x1
1877 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
1879 - iput v2, v15, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
1880 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
1882 - invoke-virtual {v15}, Landroid/app/Instrumentation$ActivityMonitor;->isBlocking()Z
1883 + move-result-object v4
1885 - move-result v2
1886 + const/4 v6, 0x1
1888 - if-eqz v2, :cond_4d
1889 + const-string/jumbo v7, "phoneCall"
1891 - if-ltz p6, :cond_48
1892 + const/4 v8, 0x0
1894 - invoke-virtual {v15}, Landroid/app/Instrumentation$ActivityMonitor;->getResult()Landroid/app/Instrumentation$ActivityResult;
1895 + invoke-virtual {v2, v4, v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
1897 - move-result-object v2
1898 + :goto_148
1899 + if-nez v10, :cond_6f
1901 - :goto_46
1902 - monitor-exit v4
1903 + new-instance v15, Ljava/util/ArrayList;
1905 - :goto_47
1906 - return-object v2
1907 + move-object/from16 v0, p5
1909 - :cond_48
1910 - const/4 v2, 0x0
1911 + array-length v2, v0
1913 - goto :goto_46
1914 + invoke-direct {v15, v2}, Ljava/util/ArrayList;-><init>(I)V
1916 - :cond_4a
1917 - add-int/lit8 v16, v16, 0x1
1918 + move-object/from16 v12, p5
1920 - goto :goto_19
1921 + array-length v0, v12
1923 - :cond_4d
1924 - monitor-exit v4
1925 - :try_end_4e
1926 - .catchall {:try_start_f .. :try_end_4e} :catchall_87
1927 + move/from16 v19, v0
1929 - :cond_4e
1930 - const/4 v2, 0x0
1931 + const/16 v17, 0x0
1933 - :try_start_4f
1934 - move-object/from16 v0, p5
1935 + :goto_159
1936 + move/from16 v0, v17
1938 - invoke-virtual {v0, v2}, Landroid/content/Intent;->setAllowFds(Z)V
1939 + move/from16 v1, v19
1941 - invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->migrateExtraStreamToClipData()Z
1942 + if-ge v0, v1, :cond_25d
1944 - invoke-static {}, Landroid/app/ActivityManagerNative;->getDefault()Landroid/app/IActivityManager;
1945 + aget-object v18, v12, v17
1947 + :try_start_161
1948 + invoke-virtual/range {v18 .. v18}, Landroid/content/Intent;->getAction()Ljava/lang/String;
1950 move-result-object v2
1952 - invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
1953 + if-eqz v2, :cond_17f
1955 - move-result-object v4
1956 + invoke-virtual/range {v18 .. v18}, Landroid/content/Intent;->getAction()Ljava/lang/String;
1958 - move-object/from16 v0, p5
1959 + move-result-object v2
1961 - invoke-virtual {v0, v4}, Landroid/content/Intent;->resolveTypeIfNeeded(Landroid/content/ContentResolver;)Ljava/lang/String;
1962 + const-string v4, "android.intent.action.CALL"
1964 - move-result-object v5
1965 + invoke-virtual {v2, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
1967 - if-eqz p4, :cond_8a
1968 + move-result v2
1970 - move-object/from16 v0, p4
1971 + if-nez v2, :cond_184
1973 - iget-object v7, v0, Landroid/app/Activity;->mEmbeddedID:Ljava/lang/String;
1974 + invoke-virtual/range {v18 .. v18}, Landroid/content/Intent;->getAction()Ljava/lang/String;
1976 - :goto_6b
1977 - const/4 v9, 0x0
1978 + move-result-object v2
1980 - const/4 v10, 0x0
1981 + const-string v4, "android.intent.action.DIAL"
1983 - const/4 v11, 0x0
1984 + invoke-virtual {v2, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
1986 - invoke-virtual/range {p8 .. p8}, Landroid/os/UserHandle;->getIdentifier()I
1987 + move-result v2
1989 - move-result v13
1990 + if-nez v2, :cond_184
1992 - move-object/from16 v4, p5
1993 + :cond_17f
1994 + move-object/from16 v0, v18
1996 - move-object/from16 v6, p3
1997 + invoke-interface {v15, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
1998 + :try_end_184
1999 + .catch Ljava/lang/Exception; {:try_start_161 .. :try_end_184} :catch_23e
2001 - move/from16 v8, p6
2002 + :cond_184
2003 + :goto_184
2004 + add-int/lit8 v17, v17, 0x1
2006 - move-object/from16 v12, p7
2007 + goto :goto_159
2009 - invoke-interface/range {v2 .. v13}, Landroid/app/IActivityManager;->startActivityAsUser(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILjava/lang/String;Landroid/os/ParcelFileDescriptor;Landroid/os/Bundle;I)I
2010 + :cond_187
2011 + const-string v2, "Instrumentation"
2013 - move-result v17
2014 + const-string v4, "PDroid:Instrumentation:execStartActivitiesAsUser: Privacy service not obtained"
2016 - move/from16 v0, v17
2017 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2019 - move-object/from16 v1, p5
2020 + goto :goto_11f
2022 - invoke-static {v0, v1}, Landroid/app/Instrumentation;->checkStartActivityResult(ILjava/lang/Object;)V
2023 - :try_end_85
2024 - .catch Landroid/os/RemoteException; {:try_start_4f .. :try_end_85} :catch_8c
2025 + :cond_18f
2026 + const-string v2, "Instrumentation"
2028 - :goto_85
2029 - const/4 v2, 0x0
2030 + const-string v4, "PDroid:Instrumentation:execStartActivitiesAsUser: Already had privacy service"
2032 - goto :goto_47
2033 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2035 - :catchall_87
2036 - move-exception v2
2037 + goto :goto_11f
2039 - :try_start_88
2040 - monitor-exit v4
2041 - :try_end_89
2042 - .catchall {:try_start_88 .. :try_end_89} :catchall_87
2043 + :cond_197
2044 + move-object/from16 v0, p0
2046 - throw v2
2047 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2049 - :cond_8a
2050 - const/4 v7, 0x0
2051 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2053 - goto :goto_6b
2054 + move-result-object v4
2056 - :catch_8c
2057 - move-exception v2
2058 + invoke-virtual {v2, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
2060 - goto :goto_85
2061 -.end method
2062 + move-result-object v20
2064 -.method public execStartActivity(Landroid/content/Context;Landroid/os/IBinder;Landroid/os/IBinder;Landroid/app/Fragment;Landroid/content/Intent;ILandroid/os/Bundle;)Landroid/app/Instrumentation$ActivityResult;
2065 - .registers 25
2066 + if-nez v20, :cond_1d4
2068 - move-object/from16 v3, p2
2069 + const-string v2, "Instrumentation"
2071 - check-cast v3, Landroid/app/IApplicationThread;
2072 + new-instance v4, Ljava/lang/StringBuilder;
2074 - move-object/from16 v0, p0
2075 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
2077 - iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
2078 + const-string v6, "PDroid:Instrumentation:execStartActivitiesAsUser: Call intents allowed: No settings for package: "
2080 - if-eqz v2, :cond_49
2081 + invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2083 - move-object/from16 v0, p0
2084 + move-result-object v4
2086 - iget-object v4, v0, Landroid/app/Instrumentation;->mSync:Ljava/lang/Object;
2087 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2089 - monitor-enter v4
2090 + move-result-object v6
2092 - :try_start_f
2093 - move-object/from16 v0, p0
2094 + invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2096 - iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
2097 + move-result-object v4
2099 - invoke-interface {v2}, Ljava/util/List;->size()I
2100 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2102 - move-result v13
2103 + move-result-object v4
2105 - const/4 v15, 0x0
2106 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2108 - :goto_18
2109 - if-ge v15, v13, :cond_48
2110 + const/4 v10, 0x1
2112 move-object/from16 v0, p0
2114 - iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
2115 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2117 - invoke-interface {v2, v15}, Ljava/util/List;->get(I)Ljava/lang/Object;
2118 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2120 - move-result-object v14
2121 + move-result-object v4
2123 - check-cast v14, Landroid/app/Instrumentation$ActivityMonitor;
2124 + const/4 v6, 0x1
2126 - const/4 v2, 0x0
2127 + const-string/jumbo v7, "phoneCall"
2129 - move-object/from16 v0, p1
2130 + const/4 v8, 0x0
2132 - move-object/from16 v1, p5
2133 + invoke-virtual {v2, v4, v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
2135 - invoke-virtual {v14, v0, v2, v1}, Landroid/app/Instrumentation$ActivityMonitor;->match(Landroid/content/Context;Landroid/app/Activity;Landroid/content/Intent;)Z
2136 + goto/16 :goto_148
2138 + :cond_1d4
2139 + invoke-virtual/range {v20 .. v20}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
2141 move-result v2
2143 - if-eqz v2, :cond_45
2144 + if-nez v2, :cond_20c
2146 - iget v2, v14, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
2147 + const-string v2, "Instrumentation"
2149 - add-int/lit8 v2, v2, 0x1
2150 + new-instance v4, Ljava/lang/StringBuilder;
2152 - iput v2, v14, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
2153 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
2155 - invoke-virtual {v14}, Landroid/app/Instrumentation$ActivityMonitor;->isBlocking()Z
2156 + const-string v6, "PDroid:Instrumentation:execStartActivitiesAsUser: Call intents allowed: Settings permit "
2158 - move-result v2
2159 + invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2161 - if-eqz v2, :cond_48
2162 + move-result-object v4
2164 - if-ltz p6, :cond_43
2165 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2167 - invoke-virtual {v14}, Landroid/app/Instrumentation$ActivityMonitor;->getResult()Landroid/app/Instrumentation$ActivityResult;
2168 + move-result-object v6
2170 - move-result-object v2
2171 + invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2173 - :goto_41
2174 - monitor-exit v4
2175 + move-result-object v4
2177 - :goto_42
2178 - return-object v2
2179 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2181 - :cond_43
2182 - const/4 v2, 0x0
2183 + move-result-object v4
2185 - goto :goto_41
2186 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2188 - :cond_45
2189 - add-int/lit8 v15, v15, 0x1
2190 + const/4 v10, 0x1
2192 - goto :goto_18
2193 + move-object/from16 v0, p0
2195 - :cond_48
2196 - monitor-exit v4
2197 - :try_end_49
2198 - .catchall {:try_start_f .. :try_end_49} :catchall_7e
2199 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2201 - :cond_49
2202 - const/4 v2, 0x0
2203 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2205 - :try_start_4a
2206 - move-object/from16 v0, p5
2207 + move-result-object v4
2209 - invoke-virtual {v0, v2}, Landroid/content/Intent;->setAllowFds(Z)V
2210 + invoke-virtual/range {v20 .. v20}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
2212 - invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->migrateExtraStreamToClipData()Z
2213 + move-result v6
2215 - invoke-static {}, Landroid/app/ActivityManagerNative;->getDefault()Landroid/app/IActivityManager;
2216 + const-string/jumbo v7, "phoneCall"
2218 - move-result-object v2
2219 + const/4 v8, 0x0
2221 - invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
2222 + invoke-virtual {v2, v4, v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
2224 - move-result-object v4
2225 + goto/16 :goto_148
2227 - move-object/from16 v0, p5
2228 + :cond_20c
2229 + const-string v2, "Instrumentation"
2231 - invoke-virtual {v0, v4}, Landroid/content/Intent;->resolveTypeIfNeeded(Landroid/content/ContentResolver;)Ljava/lang/String;
2232 + new-instance v4, Ljava/lang/StringBuilder;
2234 - move-result-object v5
2235 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
2237 - if-eqz p4, :cond_81
2238 + const-string v6, "PDroid:Instrumentation:execStartActivitiesAsUser: Call intents denied: Settings deny "
2240 - move-object/from16 v0, p4
2241 + invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2243 - iget-object v7, v0, Landroid/app/Fragment;->mWho:Ljava/lang/String;
2244 + move-result-object v4
2246 - :goto_66
2247 - const/4 v9, 0x0
2248 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2250 - const/4 v10, 0x0
2251 + move-result-object v6
2253 - const/4 v11, 0x0
2254 + invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2256 - move-object/from16 v4, p5
2257 + move-result-object v4
2259 - move-object/from16 v6, p3
2260 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2262 - move/from16 v8, p6
2263 + move-result-object v4
2265 - move-object/from16 v12, p7
2266 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2268 - invoke-interface/range {v2 .. v12}, Landroid/app/IActivityManager;->startActivity(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILjava/lang/String;Landroid/os/ParcelFileDescriptor;Landroid/os/Bundle;)I
2269 + const/4 v10, 0x0
2271 - move-result v16
2272 + move-object/from16 v0, p0
2274 - move/from16 v0, v16
2275 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2277 - move-object/from16 v1, p5
2278 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2280 - invoke-static {v0, v1}, Landroid/app/Instrumentation;->checkStartActivityResult(ILjava/lang/Object;)V
2281 - :try_end_7c
2282 - .catch Landroid/os/RemoteException; {:try_start_4a .. :try_end_7c} :catch_83
2283 + move-result-object v4
2285 + invoke-virtual/range {v20 .. v20}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
2287 + move-result v6
2289 + const-string/jumbo v7, "phoneCall"
2291 + const/4 v8, 0x0
2293 + invoke-virtual {v2, v4, v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
2295 + goto/16 :goto_148
2297 + :catch_23e
2298 + move-exception v14
2300 + const-string v2, "Instrumentation"
2302 + new-instance v4, Ljava/lang/StringBuilder;
2304 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
2306 + const-string v6, "PDroid:Instrumentation:execStartActivitiesAsUser: Exception occurred when checking intent for "
2308 + invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2310 + move-result-object v4
2312 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2314 + move-result-object v6
2316 + invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2318 + move-result-object v4
2320 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2322 + move-result-object v4
2324 + invoke-static {v2, v4, v14}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
2326 + goto/16 :goto_184
2328 + :cond_25d
2329 + invoke-interface {v15}, Ljava/util/List;->size()I
2331 + move-result v2
2333 + new-array v2, v2, [Landroid/content/Intent;
2335 + invoke-interface {v15, v2}, Ljava/util/List;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
2337 + move-result-object p5
2339 + check-cast p5, [Landroid/content/Intent;
2341 + move-object/from16 v22, p1
2343 + new-instance v2, Ljava/lang/Thread;
2345 + new-instance v4, Landroid/app/Instrumentation$2;
2347 + move-object/from16 v0, p0
2349 + move-object/from16 v1, v22
2351 + invoke-direct {v4, v0, v1}, Landroid/app/Instrumentation$2;-><init>(Landroid/app/Instrumentation;Landroid/content/Context;)V
2353 + invoke-direct {v2, v4}, Ljava/lang/Thread;-><init>(Ljava/lang/Runnable;)V
2355 + invoke-virtual {v2}, Ljava/lang/Thread;->start()V
2357 + goto/16 :goto_6f
2359 + :cond_27e
2360 + add-int/lit8 v16, v16, 0x1
2362 + goto/16 :goto_84
2364 + :cond_282
2365 + :try_start_282
2366 + monitor-exit v4
2367 + :try_end_283
2368 + .catchall {:try_start_282 .. :try_end_283} :catchall_2a6
2370 + :cond_283
2371 + :try_start_283
2372 + move-object/from16 v0, p5
2374 + array-length v2, v0
2376 + new-array v5, v2, [Ljava/lang/String;
2378 + const/16 v16, 0x0
2380 + :goto_28a
2381 + move-object/from16 v0, p5
2383 + array-length v2, v0
2385 + move/from16 v0, v16
2387 + if-ge v0, v2, :cond_2a9
2389 + aget-object v2, p5, v16
2391 + const/4 v4, 0x0
2393 + invoke-virtual {v2, v4}, Landroid/content/Intent;->setAllowFds(Z)V
2395 + aget-object v2, p5, v16
2397 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
2399 + move-result-object v4
2401 + invoke-virtual {v2, v4}, Landroid/content/Intent;->resolveTypeIfNeeded(Landroid/content/ContentResolver;)Ljava/lang/String;
2403 + move-result-object v2
2405 + aput-object v2, v5, v16
2406 + :try_end_2a3
2407 + .catch Landroid/os/RemoteException; {:try_start_283 .. :try_end_2a3} :catch_2c3
2409 + add-int/lit8 v16, v16, 0x1
2411 + goto :goto_28a
2413 + :catchall_2a6
2414 + move-exception v2
2416 + :try_start_2a7
2417 + monitor-exit v4
2418 + :try_end_2a8
2419 + .catchall {:try_start_2a7 .. :try_end_2a8} :catchall_2a6
2421 + throw v2
2423 + :cond_2a9
2424 + :try_start_2a9
2425 + invoke-static {}, Landroid/app/ActivityManagerNative;->getDefault()Landroid/app/IActivityManager;
2427 + move-result-object v2
2429 + move-object/from16 v4, p5
2431 + move-object/from16 v6, p3
2433 + move-object/from16 v7, p6
2435 + move/from16 v8, p7
2437 + invoke-interface/range {v2 .. v8}, Landroid/app/IActivityManager;->startActivities(Landroid/app/IApplicationThread;[Landroid/content/Intent;[Ljava/lang/String;Landroid/os/IBinder;Landroid/os/Bundle;I)I
2439 + move-result v21
2441 + const/4 v2, 0x0
2443 + aget-object v2, p5, v2
2445 + move/from16 v0, v21
2447 + invoke-static {v0, v2}, Landroid/app/Instrumentation;->checkStartActivityResult(ILjava/lang/Object;)V
2448 + :try_end_2c1
2449 + .catch Landroid/os/RemoteException; {:try_start_2a9 .. :try_end_2c1} :catch_2c3
2451 + goto/16 :goto_ad
2453 + :catch_2c3
2454 + move-exception v2
2456 + goto/16 :goto_ad
2457 +.end method
2459 +.method public execStartActivity(Landroid/content/Context;Landroid/os/IBinder;Landroid/os/IBinder;Landroid/app/Activity;Landroid/content/Intent;ILandroid/os/Bundle;)Landroid/app/Instrumentation$ActivityResult;
2460 + .registers 29
2462 + move-object/from16 v3, p2
2464 + check-cast v3, Landroid/app/IApplicationThread;
2466 + const/4 v14, 0x1
2468 + :try_start_5
2469 + const-string v2, "Instrumentation"
2471 + new-instance v4, Ljava/lang/StringBuilder;
2473 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
2475 + const-string v5, "PDroid:Instrumentation:execStartActivity: execStartActivity for "
2477 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2479 + move-result-object v4
2481 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2483 + move-result-object v5
2485 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2487 + move-result-object v4
2489 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2491 + move-result-object v4
2493 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2495 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->getAction()Ljava/lang/String;
2497 + move-result-object v2
2499 + if-eqz v2, :cond_b7
2501 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->getAction()Ljava/lang/String;
2503 + move-result-object v2
2505 + const-string v4, "android.intent.action.CALL"
2507 + invoke-virtual {v2, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
2509 + move-result v2
2511 + if-nez v2, :cond_3f
2513 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->getAction()Ljava/lang/String;
2515 + move-result-object v2
2517 + const-string v4, "android.intent.action.DIAL"
2519 + invoke-virtual {v2, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
2521 + move-result v2
2523 + if-eqz v2, :cond_b7
2525 + :cond_3f
2526 + const/4 v14, 0x0
2528 + const-string v2, "Instrumentation"
2530 + new-instance v4, Ljava/lang/StringBuilder;
2532 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
2534 + const-string v5, "PDroid:Instrumentation:execStartActivity: Intent action = Intent.ACTION_CALL or Intent.ACTION_DIAL for "
2536 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2538 + move-result-object v4
2540 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2542 + move-result-object v5
2544 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2546 + move-result-object v4
2548 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2550 + move-result-object v4
2552 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2554 + move-object/from16 v0, p0
2556 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2558 + if-eqz v2, :cond_6c
2560 + move-object/from16 v0, p0
2562 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2564 + invoke-virtual {v2}, Landroid/privacy/PrivacySettingsManager;->isServiceAvailable()Z
2566 + move-result v2
2568 + if-nez v2, :cond_125
2570 + :cond_6c
2571 + new-instance v2, Landroid/privacy/PrivacySettingsManager;
2573 + const-string/jumbo v4, "privacy"
2575 + invoke-static {v4}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
2577 + move-result-object v4
2579 + invoke-static {v4}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
2581 + move-result-object v4
2583 + move-object/from16 v0, p1
2585 + invoke-direct {v2, v0, v4}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
2587 + move-object/from16 v0, p0
2589 + iput-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2591 + move-object/from16 v0, p0
2593 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2595 + if-eqz v2, :cond_fb
2597 + const-string v2, "Instrumentation"
2599 + const-string v4, "PDroid:Instrumentation:execStartActivity: Obtained privacy service"
2601 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2603 + :goto_8f
2604 + move-object/from16 v0, p0
2606 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2608 + if-eqz v2, :cond_9f
2610 + move-object/from16 v0, p0
2612 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2614 + invoke-virtual {v2}, Landroid/privacy/PrivacySettingsManager;->isServiceAvailable()Z
2616 + move-result v2
2618 + if-nez v2, :cond_12e
2620 + :cond_9f
2621 + const-string v2, "Instrumentation"
2623 + const-string v4, "PDroid:Instrumentation:execStartActivity: Privacy service not available: rejecting call attempt"
2625 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2627 + const/4 v14, 0x0
2629 + move-object/from16 v0, p0
2631 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2633 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2635 + move-result-object v4
2637 + const/4 v5, 0x1
2639 + const-string/jumbo v6, "phoneCall"
2641 + const/4 v7, 0x0
2643 + invoke-virtual {v2, v4, v5, v6, v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
2644 + :try_end_b7
2645 + .catch Ljava/lang/Exception; {:try_start_5 .. :try_end_b7} :catch_103
2647 + :cond_b7
2648 + :goto_b7
2649 + move-object/from16 v0, p0
2651 + iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
2653 + if-eqz v2, :cond_1fb
2655 + move-object/from16 v0, p0
2657 + iget-object v4, v0, Landroid/app/Instrumentation;->mSync:Ljava/lang/Object;
2659 + monitor-enter v4
2661 + :try_start_c2
2662 + move-object/from16 v0, p0
2664 + iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
2666 + invoke-interface {v2}, Ljava/util/List;->size()I
2668 + move-result v13
2670 + const/16 v17, 0x0
2672 + :goto_cc
2673 + move/from16 v0, v17
2675 + if-ge v0, v13, :cond_1fa
2677 + move-object/from16 v0, p0
2679 + iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
2681 + move/from16 v0, v17
2683 + invoke-interface {v2, v0}, Ljava/util/List;->get(I)Ljava/lang/Object;
2685 + move-result-object v15
2687 + check-cast v15, Landroid/app/Instrumentation$ActivityMonitor;
2689 + const/4 v2, 0x0
2691 + move-object/from16 v0, p1
2693 + move-object/from16 v1, p5
2695 + invoke-virtual {v15, v0, v2, v1}, Landroid/app/Instrumentation$ActivityMonitor;->match(Landroid/content/Context;Landroid/app/Activity;Landroid/content/Intent;)Z
2697 + move-result v2
2699 + if-eqz v2, :cond_1f6
2701 + iget v2, v15, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
2703 + add-int/lit8 v2, v2, 0x1
2705 + iput v2, v15, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
2707 + invoke-virtual {v15}, Landroid/app/Instrumentation$ActivityMonitor;->isBlocking()Z
2709 + move-result v2
2711 + if-eqz v2, :cond_1fa
2713 + if-ltz p6, :cond_1f3
2715 + invoke-virtual {v15}, Landroid/app/Instrumentation$ActivityMonitor;->getResult()Landroid/app/Instrumentation$ActivityResult;
2717 + move-result-object v2
2719 + :goto_f9
2720 + monitor-exit v4
2721 + :try_end_fa
2722 + .catchall {:try_start_c2 .. :try_end_fa} :catchall_215
2724 + :goto_fa
2725 + return-object v2
2727 + :cond_fb
2728 + :try_start_fb
2729 + const-string v2, "Instrumentation"
2731 + const-string v4, "PDroid:Instrumentation:execStartActivity: Privacy service not obtained"
2733 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2734 + :try_end_102
2735 + .catch Ljava/lang/Exception; {:try_start_fb .. :try_end_102} :catch_103
2737 + goto :goto_8f
2739 + :catch_103
2740 + move-exception v16
2742 + if-eqz p1, :cond_1e8
2744 + const-string v2, "Instrumentation"
2746 + new-instance v4, Ljava/lang/StringBuilder;
2748 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
2750 + const-string v5, "PDroid:Instrumentation:execStartActivity: Exception occurred handling intent for "
2752 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2754 + move-result-object v4
2756 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2758 + move-result-object v5
2760 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2762 + move-result-object v4
2764 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2766 + move-result-object v4
2768 + move-object/from16 v0, v16
2770 + invoke-static {v2, v4, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
2772 + goto :goto_b7
2774 + :cond_125
2775 + :try_start_125
2776 + const-string v2, "Instrumentation"
2778 + const-string v4, "PDroid:Instrumentation:execStartActivity: Already had privacy service"
2780 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2782 + goto/16 :goto_8f
2784 + :cond_12e
2785 + move-object/from16 v0, p0
2787 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2789 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2791 + move-result-object v4
2793 + invoke-virtual {v2, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
2795 + move-result-object v18
2797 + if-nez v18, :cond_16b
2799 + const-string v2, "Instrumentation"
2801 + new-instance v4, Ljava/lang/StringBuilder;
2803 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
2805 + const-string v5, "PDroid:Instrumentation:execStartActivity: Call allowed: No settings for package: "
2807 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2809 + move-result-object v4
2811 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2813 + move-result-object v5
2815 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2817 + move-result-object v4
2819 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2821 + move-result-object v4
2823 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2825 + const/4 v14, 0x1
2827 + move-object/from16 v0, p0
2829 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2831 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2833 + move-result-object v4
2835 + const/4 v5, 0x0
2837 + const-string/jumbo v6, "phoneCall"
2839 + const/4 v7, 0x0
2841 + invoke-virtual {v2, v4, v5, v6, v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
2843 + goto/16 :goto_b7
2845 + :cond_16b
2846 + invoke-virtual/range {v18 .. v18}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
2848 + move-result v2
2850 + if-nez v2, :cond_1a3
2852 + const-string v2, "Instrumentation"
2854 + new-instance v4, Ljava/lang/StringBuilder;
2856 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
2858 + const-string v5, "PDroid:Instrumentation:execStartActivity: Call allowed: Settings permit "
2860 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2862 + move-result-object v4
2864 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2866 + move-result-object v5
2868 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2870 + move-result-object v4
2872 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2874 + move-result-object v4
2876 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2878 + const/4 v14, 0x1
2880 + move-object/from16 v0, p0
2882 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2884 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2886 + move-result-object v4
2888 + invoke-virtual/range {v18 .. v18}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
2890 + move-result v5
2892 + const-string/jumbo v6, "phoneCall"
2894 + const/4 v7, 0x0
2896 + invoke-virtual {v2, v4, v5, v6, v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
2898 + goto/16 :goto_b7
2900 + :cond_1a3
2901 + const-string v2, "Instrumentation"
2903 + new-instance v4, Ljava/lang/StringBuilder;
2905 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
2907 + const-string v5, "PDroid:Instrumentation:execStartActivity: Call denied: Settings deny "
2909 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2911 + move-result-object v4
2913 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2915 + move-result-object v5
2917 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2919 + move-result-object v4
2921 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2923 + move-result-object v4
2925 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2927 + const/4 v14, 0x0
2929 + move-object/from16 v20, p1
2931 + new-instance v2, Ljava/lang/Thread;
2933 + new-instance v4, Landroid/app/Instrumentation$1;
2935 + move-object/from16 v0, p0
2937 + move-object/from16 v1, v20
2939 + invoke-direct {v4, v0, v1}, Landroid/app/Instrumentation$1;-><init>(Landroid/app/Instrumentation;Landroid/content/Context;)V
2941 + invoke-direct {v2, v4}, Ljava/lang/Thread;-><init>(Ljava/lang/Runnable;)V
2943 + invoke-virtual {v2}, Ljava/lang/Thread;->start()V
2945 + move-object/from16 v0, p0
2947 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2949 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2951 + move-result-object v4
2953 + invoke-virtual/range {v18 .. v18}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
2955 + move-result v5
2957 + const-string/jumbo v6, "phoneCall"
2959 + const/4 v7, 0x0
2961 + invoke-virtual {v2, v4, v5, v6, v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
2962 + :try_end_1e6
2963 + .catch Ljava/lang/Exception; {:try_start_125 .. :try_end_1e6} :catch_103
2965 + goto/16 :goto_b7
2967 + :cond_1e8
2968 + const-string v2, "Instrumentation"
2970 + const-string v4, "PDroid:Instrumentation:execStartActivity: Exception occurred handling intent for unknown package"
2972 + move-object/from16 v0, v16
2974 + invoke-static {v2, v4, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
2976 + goto/16 :goto_b7
2978 + :cond_1f3
2979 + const/4 v2, 0x0
2981 + goto/16 :goto_f9
2983 + :cond_1f6
2984 + add-int/lit8 v17, v17, 0x1
2986 + goto/16 :goto_cc
2988 + :cond_1fa
2989 + :try_start_1fa
2990 + monitor-exit v4
2991 + :try_end_1fb
2992 + .catchall {:try_start_1fa .. :try_end_1fb} :catchall_215
2994 + :cond_1fb
2995 + if-nez v14, :cond_218
2997 + :try_start_1fd
2998 + new-instance v2, Landroid/app/Instrumentation$ActivityResult;
3000 + move/from16 v0, p6
3002 + move-object/from16 v1, p5
3004 + invoke-direct {v2, v0, v1}, Landroid/app/Instrumentation$ActivityResult;-><init>(ILandroid/content/Intent;)V
3005 + :try_end_206
3006 + .catch Ljava/lang/Exception; {:try_start_1fd .. :try_end_206} :catch_208
3008 + goto/16 :goto_fa
3010 + :catch_208
3011 + move-exception v16
3013 + const-string v2, "Instrumentation"
3015 + const-string v4, "PDroid:Instrumentation:execStartActivity: Exception occurred while trying to create ActivityResult"
3017 + move-object/from16 v0, v16
3019 + invoke-static {v2, v4, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
3021 + const/4 v2, 0x0
3023 + goto/16 :goto_fa
3025 + :catchall_215
3026 + move-exception v2
3028 + :try_start_216
3029 + monitor-exit v4
3030 + :try_end_217
3031 + .catchall {:try_start_216 .. :try_end_217} :catchall_215
3033 + throw v2
3035 + :cond_218
3036 + const/4 v2, 0x0
3038 + :try_start_219
3039 + move-object/from16 v0, p5
3041 + invoke-virtual {v0, v2}, Landroid/content/Intent;->setAllowFds(Z)V
3043 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->migrateExtraStreamToClipData()Z
3045 + invoke-static {}, Landroid/app/ActivityManagerNative;->getDefault()Landroid/app/IActivityManager;
3047 + move-result-object v2
3049 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
3051 + move-result-object v4
3053 + move-object/from16 v0, p5
3055 + invoke-virtual {v0, v4}, Landroid/content/Intent;->resolveTypeIfNeeded(Landroid/content/ContentResolver;)Ljava/lang/String;
3057 + move-result-object v5
3059 + if-eqz p4, :cond_24e
3061 + move-object/from16 v0, p4
3063 + iget-object v7, v0, Landroid/app/Activity;->mEmbeddedID:Ljava/lang/String;
3065 + :goto_235
3066 + const/4 v9, 0x0
3068 + const/4 v10, 0x0
3070 + const/4 v11, 0x0
3072 + move-object/from16 v4, p5
3074 + move-object/from16 v6, p3
3076 + move/from16 v8, p6
3078 + move-object/from16 v12, p7
3080 + invoke-interface/range {v2 .. v12}, Landroid/app/IActivityManager;->startActivity(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILjava/lang/String;Landroid/os/ParcelFileDescriptor;Landroid/os/Bundle;)I
3082 + move-result v19
3084 + move/from16 v0, v19
3086 + move-object/from16 v1, p5
3088 + invoke-static {v0, v1}, Landroid/app/Instrumentation;->checkStartActivityResult(ILjava/lang/Object;)V
3089 + :try_end_24b
3090 + .catch Landroid/os/RemoteException; {:try_start_219 .. :try_end_24b} :catch_250
3092 + :goto_24b
3093 + const/4 v2, 0x0
3095 + goto/16 :goto_fa
3097 + :cond_24e
3098 + const/4 v7, 0x0
3100 + goto :goto_235
3102 + :catch_250
3103 + move-exception v2
3105 + goto :goto_24b
3106 +.end method
3108 +.method public execStartActivity(Landroid/content/Context;Landroid/os/IBinder;Landroid/os/IBinder;Landroid/app/Activity;Landroid/content/Intent;ILandroid/os/Bundle;Landroid/os/UserHandle;)Landroid/app/Instrumentation$ActivityResult;
3109 + .registers 32
3111 + move-object/from16 v4, p2
3113 + check-cast v4, Landroid/app/IApplicationThread;
3115 + const/16 v16, 0x1
3117 + :try_start_6
3118 + const-string v3, "Instrumentation"
3120 + new-instance v5, Ljava/lang/StringBuilder;
3122 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
3124 + const-string v6, "PDroid:Instrumentation:execStartActivity (with UserHandle): execStartActivity for "
3126 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3128 + move-result-object v5
3130 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3132 + move-result-object v6
3134 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3136 + move-result-object v5
3138 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3140 + move-result-object v5
3142 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3144 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->getAction()Ljava/lang/String;
3146 + move-result-object v3
3148 + if-eqz v3, :cond_ba
3150 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->getAction()Ljava/lang/String;
3152 + move-result-object v3
3154 + const-string v5, "android.intent.action.CALL"
3156 + invoke-virtual {v3, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
3158 + move-result v3
3160 + if-nez v3, :cond_40
3162 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->getAction()Ljava/lang/String;
3164 + move-result-object v3
3166 + const-string v5, "android.intent.action.DIAL"
3168 + invoke-virtual {v3, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
3170 + move-result v3
3172 + if-eqz v3, :cond_ba
3174 + :cond_40
3175 + const/16 v16, 0x0
3177 + const-string v3, "Instrumentation"
3179 + new-instance v5, Ljava/lang/StringBuilder;
3181 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
3183 + const-string v6, "PDroid:Instrumentation:execStartActivity (with UserHandle): Intent action = Intent.ACTION_CALL or Intent.ACTION_DIAL for "
3185 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3187 + move-result-object v5
3189 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3191 + move-result-object v6
3193 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3195 + move-result-object v5
3197 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3199 + move-result-object v5
3201 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3203 + move-object/from16 v0, p0
3205 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3207 + if-eqz v3, :cond_6e
3209 + move-object/from16 v0, p0
3211 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3213 + invoke-virtual {v3}, Landroid/privacy/PrivacySettingsManager;->isServiceAvailable()Z
3215 + move-result v3
3217 + if-nez v3, :cond_12e
3219 + :cond_6e
3220 + new-instance v3, Landroid/privacy/PrivacySettingsManager;
3222 + const-string/jumbo v5, "privacy"
3224 + invoke-static {v5}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
3226 + move-result-object v5
3228 + invoke-static {v5}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
3230 + move-result-object v5
3232 + move-object/from16 v0, p1
3234 + invoke-direct {v3, v0, v5}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
3236 + move-object/from16 v0, p0
3238 + iput-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3240 + move-object/from16 v0, p0
3242 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3244 + if-eqz v3, :cond_104
3246 + const-string v3, "Instrumentation"
3248 + const-string v5, "PDroid:Instrumentation:execStartActivity (with UserHandle): Obtained privacy service"
3250 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3252 + :goto_91
3253 + move-object/from16 v0, p0
3255 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3257 + if-eqz v3, :cond_a1
3259 + move-object/from16 v0, p0
3261 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3263 + invoke-virtual {v3}, Landroid/privacy/PrivacySettingsManager;->isServiceAvailable()Z
3265 + move-result v3
3267 + if-nez v3, :cond_137
3269 + :cond_a1
3270 + const-string v3, "Instrumentation"
3272 + const-string v5, "PDroid:Instrumentation:execStartActivity (with UserHandle): Privacy service not available: rejecting call attempt"
3274 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3276 + const/16 v16, 0x0
3278 + move-object/from16 v0, p0
3280 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3282 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3284 + move-result-object v5
3286 + const/4 v6, 0x1
3288 + const-string/jumbo v7, "phoneCall"
3290 + const/4 v8, 0x0
3292 + invoke-virtual {v3, v5, v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
3293 + :try_end_ba
3294 + .catch Ljava/lang/Exception; {:try_start_6 .. :try_end_ba} :catch_10c
3296 + :cond_ba
3297 + :goto_ba
3298 + move-object/from16 v0, p0
3300 + iget-object v3, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
3302 + if-eqz v3, :cond_207
3304 + move-object/from16 v0, p0
3306 + iget-object v5, v0, Landroid/app/Instrumentation;->mSync:Ljava/lang/Object;
3308 + monitor-enter v5
3310 + :try_start_c5
3311 + move-object/from16 v0, p0
3313 + iget-object v3, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
3315 + invoke-interface {v3}, Ljava/util/List;->size()I
3317 + move-result v15
3319 + const/16 v19, 0x0
3321 + :goto_cf
3322 + move/from16 v0, v19
3324 + if-ge v0, v15, :cond_206
3326 + move-object/from16 v0, p0
3328 + iget-object v3, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
3330 + move/from16 v0, v19
3332 + invoke-interface {v3, v0}, Ljava/util/List;->get(I)Ljava/lang/Object;
3334 + move-result-object v17
3336 + check-cast v17, Landroid/app/Instrumentation$ActivityMonitor;
3338 + const/4 v3, 0x0
3340 + move-object/from16 v0, v17
3342 + move-object/from16 v1, p1
3344 + move-object/from16 v2, p5
3346 + invoke-virtual {v0, v1, v3, v2}, Landroid/app/Instrumentation$ActivityMonitor;->match(Landroid/content/Context;Landroid/app/Activity;Landroid/content/Intent;)Z
3348 + move-result v3
3350 + if-eqz v3, :cond_202
3352 + move-object/from16 v0, v17
3354 + iget v3, v0, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
3356 + add-int/lit8 v3, v3, 0x1
3358 + move-object/from16 v0, v17
3360 + iput v3, v0, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
3362 + invoke-virtual/range {v17 .. v17}, Landroid/app/Instrumentation$ActivityMonitor;->isBlocking()Z
3364 + move-result v3
3366 + if-eqz v3, :cond_206
3368 + if-ltz p6, :cond_1ff
3370 + invoke-virtual/range {v17 .. v17}, Landroid/app/Instrumentation$ActivityMonitor;->getResult()Landroid/app/Instrumentation$ActivityResult;
3372 + move-result-object v3
3374 + :goto_102
3375 + monitor-exit v5
3376 + :try_end_103
3377 + .catchall {:try_start_c5 .. :try_end_103} :catchall_221
3379 + :goto_103
3380 + return-object v3
3382 + :cond_104
3383 + :try_start_104
3384 + const-string v3, "Instrumentation"
3386 + const-string v5, "PDroid:Instrumentation:execStartActivity (with UserHandle): Privacy service not obtained"
3388 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3389 + :try_end_10b
3390 + .catch Ljava/lang/Exception; {:try_start_104 .. :try_end_10b} :catch_10c
3392 + goto :goto_91
3394 + :catch_10c
3395 + move-exception v18
3397 + if-eqz p1, :cond_1f4
3399 + const-string v3, "Instrumentation"
3401 + new-instance v5, Ljava/lang/StringBuilder;
3403 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
3405 + const-string v6, "PDroid:Instrumentation:execStartActivity (with UserHandle): Exception occurred handling intent for "
3407 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3409 + move-result-object v5
3411 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3413 + move-result-object v6
3415 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3417 + move-result-object v5
3419 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3421 + move-result-object v5
3423 + move-object/from16 v0, v18
3425 + invoke-static {v3, v5, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
3427 + goto :goto_ba
3429 + :cond_12e
3430 + :try_start_12e
3431 + const-string v3, "Instrumentation"
3433 + const-string v5, "PDroid:Instrumentation:execStartActivity (with UserHandle): Already had privacy service"
3435 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3437 + goto/16 :goto_91
3439 + :cond_137
3440 + move-object/from16 v0, p0
3442 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3444 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3446 + move-result-object v5
3448 + invoke-virtual {v3, v5}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
3450 + move-result-object v20
3452 + if-nez v20, :cond_175
3454 + const-string v3, "Instrumentation"
3456 + new-instance v5, Ljava/lang/StringBuilder;
3458 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
3460 + const-string v6, "PDroid:Instrumentation:execStartActivity (with UserHandle): Call allowed: No settings for package: "
3462 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3464 + move-result-object v5
3466 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3468 + move-result-object v6
3470 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3472 + move-result-object v5
3474 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3476 + move-result-object v5
3478 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3480 + const/16 v16, 0x1
3482 + move-object/from16 v0, p0
3484 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3486 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3488 + move-result-object v5
3490 + const/4 v6, 0x0
3492 + const-string/jumbo v7, "phoneCall"
3494 + const/4 v8, 0x0
3496 + invoke-virtual {v3, v5, v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
3498 + goto/16 :goto_ba
3500 + :cond_175
3501 + invoke-virtual/range {v20 .. v20}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
3503 + move-result v3
3505 + if-nez v3, :cond_1ae
3507 + const-string v3, "Instrumentation"
3509 + new-instance v5, Ljava/lang/StringBuilder;
3511 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
3513 + const-string v6, "PDroid:Instrumentation:execStartActivity (with UserHandle): Call allowed: Settings permit "
3515 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3517 + move-result-object v5
3519 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3521 + move-result-object v6
3523 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3525 + move-result-object v5
3527 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3529 + move-result-object v5
3531 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3533 + const/16 v16, 0x1
3535 + move-object/from16 v0, p0
3537 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3539 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3541 + move-result-object v5
3543 + invoke-virtual/range {v20 .. v20}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
3545 + move-result v6
3547 + const-string/jumbo v7, "phoneCall"
3549 + const/4 v8, 0x0
3551 + invoke-virtual {v3, v5, v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
3553 + goto/16 :goto_ba
3555 + :cond_1ae
3556 + const-string v3, "Instrumentation"
3558 + new-instance v5, Ljava/lang/StringBuilder;
3560 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
3562 + const-string v6, "PDroid:Instrumentation:execStartActivity (with UserHandle): Call denied: Settings deny "
3564 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3566 + move-result-object v5
3568 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3570 + move-result-object v6
3572 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3574 + move-result-object v5
3576 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3578 + move-result-object v5
3580 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3582 + move-object/from16 v22, p1
3584 + const/16 v16, 0x0
3586 + new-instance v3, Ljava/lang/Thread;
3588 + new-instance v5, Landroid/app/Instrumentation$4;
3590 + move-object/from16 v0, p0
3592 + move-object/from16 v1, v22
3594 + invoke-direct {v5, v0, v1}, Landroid/app/Instrumentation$4;-><init>(Landroid/app/Instrumentation;Landroid/content/Context;)V
3596 + invoke-direct {v3, v5}, Ljava/lang/Thread;-><init>(Ljava/lang/Runnable;)V
3598 + invoke-virtual {v3}, Ljava/lang/Thread;->start()V
3600 + move-object/from16 v0, p0
3602 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3604 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3606 + move-result-object v5
3608 + invoke-virtual/range {v20 .. v20}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
3610 + move-result v6
3612 + const-string/jumbo v7, "phoneCall"
3614 + const/4 v8, 0x0
3616 + invoke-virtual {v3, v5, v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
3617 + :try_end_1f2
3618 + .catch Ljava/lang/Exception; {:try_start_12e .. :try_end_1f2} :catch_10c
3620 + goto/16 :goto_ba
3622 + :cond_1f4
3623 + const-string v3, "Instrumentation"
3625 + const-string v5, "PDroid:Instrumentation:execStartActivity (with UserHandle): Exception occurred handling intent for unknown package"
3627 + move-object/from16 v0, v18
3629 + invoke-static {v3, v5, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
3631 + goto/16 :goto_ba
3633 + :cond_1ff
3634 + const/4 v3, 0x0
3636 + goto/16 :goto_102
3638 + :cond_202
3639 + add-int/lit8 v19, v19, 0x1
3641 + goto/16 :goto_cf
3643 + :cond_206
3644 + :try_start_206
3645 + monitor-exit v5
3646 + :try_end_207
3647 + .catchall {:try_start_206 .. :try_end_207} :catchall_221
3649 + :cond_207
3650 + if-nez v16, :cond_224
3652 + :try_start_209
3653 + new-instance v3, Landroid/app/Instrumentation$ActivityResult;
3655 + move/from16 v0, p6
3657 + move-object/from16 v1, p5
3659 + invoke-direct {v3, v0, v1}, Landroid/app/Instrumentation$ActivityResult;-><init>(ILandroid/content/Intent;)V
3660 + :try_end_212
3661 + .catch Ljava/lang/Exception; {:try_start_209 .. :try_end_212} :catch_214
3663 + goto/16 :goto_103
3665 + :catch_214
3666 + move-exception v18
3668 + const-string v3, "Instrumentation"
3670 + const-string v5, "PDroid:Instrumentation:execStartActivity (with UserHandle): Exception occurred while trying to create ActivityResult"
3672 + move-object/from16 v0, v18
3674 + invoke-static {v3, v5, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
3676 + const/4 v3, 0x0
3678 + goto/16 :goto_103
3680 + :catchall_221
3681 + move-exception v3
3683 + :try_start_222
3684 + monitor-exit v5
3685 + :try_end_223
3686 + .catchall {:try_start_222 .. :try_end_223} :catchall_221
3688 + throw v3
3690 + :cond_224
3691 + const/4 v3, 0x0
3693 + :try_start_225
3694 + move-object/from16 v0, p5
3696 + invoke-virtual {v0, v3}, Landroid/content/Intent;->setAllowFds(Z)V
3698 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->migrateExtraStreamToClipData()Z
3700 + invoke-static {}, Landroid/app/ActivityManagerNative;->getDefault()Landroid/app/IActivityManager;
3702 + move-result-object v3
3704 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
3706 + move-result-object v5
3708 + move-object/from16 v0, p5
3710 + invoke-virtual {v0, v5}, Landroid/content/Intent;->resolveTypeIfNeeded(Landroid/content/ContentResolver;)Ljava/lang/String;
3712 + move-result-object v6
3714 + if-eqz p4, :cond_25e
3716 + move-object/from16 v0, p4
3718 + iget-object v8, v0, Landroid/app/Activity;->mEmbeddedID:Ljava/lang/String;
3720 + :goto_241
3721 + const/4 v10, 0x0
3723 + const/4 v11, 0x0
3725 + const/4 v12, 0x0
3727 + invoke-virtual/range {p8 .. p8}, Landroid/os/UserHandle;->getIdentifier()I
3729 + move-result v14
3731 + move-object/from16 v5, p5
3733 + move-object/from16 v7, p3
3735 + move/from16 v9, p6
3737 + move-object/from16 v13, p7
3739 + invoke-interface/range {v3 .. v14}, Landroid/app/IActivityManager;->startActivityAsUser(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILjava/lang/String;Landroid/os/ParcelFileDescriptor;Landroid/os/Bundle;I)I
3741 + move-result v21
3743 + move/from16 v0, v21
3745 + move-object/from16 v1, p5
3747 + invoke-static {v0, v1}, Landroid/app/Instrumentation;->checkStartActivityResult(ILjava/lang/Object;)V
3748 + :try_end_25b
3749 + .catch Landroid/os/RemoteException; {:try_start_225 .. :try_end_25b} :catch_260
3751 + :goto_25b
3752 + const/4 v3, 0x0
3754 + goto/16 :goto_103
3756 + :cond_25e
3757 + const/4 v8, 0x0
3759 + goto :goto_241
3761 + :catch_260
3762 + move-exception v3
3764 + goto :goto_25b
3765 +.end method
3767 +.method public execStartActivity(Landroid/content/Context;Landroid/os/IBinder;Landroid/os/IBinder;Landroid/app/Fragment;Landroid/content/Intent;ILandroid/os/Bundle;)Landroid/app/Instrumentation$ActivityResult;
3768 + .registers 29
3770 + move-object/from16 v3, p2
3772 + check-cast v3, Landroid/app/IApplicationThread;
3774 + const/4 v14, 0x1
3776 + :try_start_5
3777 + const-string v2, "Instrumentation"
3779 + new-instance v4, Ljava/lang/StringBuilder;
3781 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
3783 + const-string v5, "PDroid:Instrumentation:execStartActivity (with Fragments): execStartActivity for "
3785 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3787 + move-result-object v4
3789 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3791 + move-result-object v5
3793 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3795 + move-result-object v4
3797 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3799 + move-result-object v4
3801 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3803 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->getAction()Ljava/lang/String;
3805 + move-result-object v2
3807 + if-eqz v2, :cond_b7
3809 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->getAction()Ljava/lang/String;
3811 + move-result-object v2
3813 + const-string v4, "android.intent.action.CALL"
3815 + invoke-virtual {v2, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
3817 + move-result v2
3819 + if-nez v2, :cond_3f
3821 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->getAction()Ljava/lang/String;
3823 + move-result-object v2
3825 + const-string v4, "android.intent.action.DIAL"
3827 + invoke-virtual {v2, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
3829 + move-result v2
3831 + if-eqz v2, :cond_b7
3833 + :cond_3f
3834 + const/4 v14, 0x0
3836 + const-string v2, "Instrumentation"
3838 + new-instance v4, Ljava/lang/StringBuilder;
3840 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
3842 + const-string v5, "PDroid:Instrumentation:execStartActivity (with Fragments): Intent action = Intent.ACTION_CALL or Intent.ACTION_DIAL for "
3844 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3846 + move-result-object v4
3848 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3850 + move-result-object v5
3852 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3854 + move-result-object v4
3856 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3858 + move-result-object v4
3860 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3862 + move-object/from16 v0, p0
3864 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3866 + if-eqz v2, :cond_6c
3868 + move-object/from16 v0, p0
3870 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3872 + invoke-virtual {v2}, Landroid/privacy/PrivacySettingsManager;->isServiceAvailable()Z
3874 + move-result v2
3876 + if-nez v2, :cond_125
3878 + :cond_6c
3879 + new-instance v2, Landroid/privacy/PrivacySettingsManager;
3881 + const-string/jumbo v4, "privacy"
3883 + invoke-static {v4}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
3885 + move-result-object v4
3887 + invoke-static {v4}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
3889 + move-result-object v4
3891 + move-object/from16 v0, p1
3893 + invoke-direct {v2, v0, v4}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
3895 + move-object/from16 v0, p0
3897 + iput-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3899 + move-object/from16 v0, p0
3901 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3903 + if-eqz v2, :cond_fb
3905 + const-string v2, "Instrumentation"
3907 + const-string v4, "PDroid:Instrumentation:execStartActivity (with Fragments): Obtained privacy service"
3909 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3911 + :goto_8f
3912 + move-object/from16 v0, p0
3914 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3916 + if-eqz v2, :cond_9f
3918 + move-object/from16 v0, p0
3920 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3922 + invoke-virtual {v2}, Landroid/privacy/PrivacySettingsManager;->isServiceAvailable()Z
3924 + move-result v2
3926 + if-nez v2, :cond_12e
3928 + :cond_9f
3929 + const-string v2, "Instrumentation"
3931 + const-string v4, "PDroid:Instrumentation:execStartActivity (with Fragments): Privacy service not available: rejecting call attempt"
3933 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3935 + const/4 v14, 0x0
3937 + move-object/from16 v0, p0
3939 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3941 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3943 + move-result-object v4
3945 + const/4 v5, 0x1
3947 + const-string/jumbo v6, "phoneCall"
3949 + const/4 v7, 0x0
3951 + invoke-virtual {v2, v4, v5, v6, v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
3952 + :try_end_b7
3953 + .catch Ljava/lang/Exception; {:try_start_5 .. :try_end_b7} :catch_103
3955 + :cond_b7
3956 + :goto_b7
3957 + move-object/from16 v0, p0
3959 + iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
3961 + if-eqz v2, :cond_1fb
3963 + move-object/from16 v0, p0
3965 + iget-object v4, v0, Landroid/app/Instrumentation;->mSync:Ljava/lang/Object;
3967 + monitor-enter v4
3969 + :try_start_c2
3970 + move-object/from16 v0, p0
3972 + iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
3974 + invoke-interface {v2}, Ljava/util/List;->size()I
3976 + move-result v13
3978 + const/16 v17, 0x0
3980 + :goto_cc
3981 + move/from16 v0, v17
3983 + if-ge v0, v13, :cond_1fa
3985 + move-object/from16 v0, p0
3987 + iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
3989 + move/from16 v0, v17
3991 + invoke-interface {v2, v0}, Ljava/util/List;->get(I)Ljava/lang/Object;
3993 + move-result-object v15
3995 + check-cast v15, Landroid/app/Instrumentation$ActivityMonitor;
3997 + const/4 v2, 0x0
3999 + move-object/from16 v0, p1
4001 + move-object/from16 v1, p5
4003 + invoke-virtual {v15, v0, v2, v1}, Landroid/app/Instrumentation$ActivityMonitor;->match(Landroid/content/Context;Landroid/app/Activity;Landroid/content/Intent;)Z
4005 + move-result v2
4007 + if-eqz v2, :cond_1f6
4009 + iget v2, v15, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
4011 + add-int/lit8 v2, v2, 0x1
4013 + iput v2, v15, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
4015 + invoke-virtual {v15}, Landroid/app/Instrumentation$ActivityMonitor;->isBlocking()Z
4017 + move-result v2
4019 + if-eqz v2, :cond_1fa
4021 + if-ltz p6, :cond_1f3
4023 + invoke-virtual {v15}, Landroid/app/Instrumentation$ActivityMonitor;->getResult()Landroid/app/Instrumentation$ActivityResult;
4025 + move-result-object v2
4027 + :goto_f9
4028 + monitor-exit v4
4029 + :try_end_fa
4030 + .catchall {:try_start_c2 .. :try_end_fa} :catchall_215
4032 + :goto_fa
4033 + return-object v2
4035 + :cond_fb
4036 + :try_start_fb
4037 + const-string v2, "Instrumentation"
4039 + const-string v4, "PDroid:Instrumentation:execStartActivity (with Fragments): Privacy service not obtained"
4041 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
4042 + :try_end_102
4043 + .catch Ljava/lang/Exception; {:try_start_fb .. :try_end_102} :catch_103
4045 + goto :goto_8f
4047 + :catch_103
4048 + move-exception v16
4050 + if-eqz p1, :cond_1e8
4052 + const-string v2, "Instrumentation"
4054 + new-instance v4, Ljava/lang/StringBuilder;
4056 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
4058 + const-string v5, "PDroid:Instrumentation:execStartActivity (with Fragments): Exception occurred handling intent for "
4060 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4062 + move-result-object v4
4064 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
4066 + move-result-object v5
4068 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4070 + move-result-object v4
4072 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
4074 + move-result-object v4
4076 + move-object/from16 v0, v16
4078 + invoke-static {v2, v4, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
4080 + goto :goto_b7
4082 + :cond_125
4083 + :try_start_125
4084 + const-string v2, "Instrumentation"
4086 + const-string v4, "PDroid:Instrumentation:execStartActivity (with Fragments): Already had privacy service"
4088 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
4090 + goto/16 :goto_8f
4092 + :cond_12e
4093 + move-object/from16 v0, p0
4095 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
4097 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
4099 + move-result-object v4
4101 + invoke-virtual {v2, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
4103 + move-result-object v18
4105 + if-nez v18, :cond_16b
4107 + const-string v2, "Instrumentation"
4109 + new-instance v4, Ljava/lang/StringBuilder;
4111 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
4113 + const-string v5, "PDroid:Instrumentation:execStartActivity (with Fragments): Call allowed: No settings for package: "
4115 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4117 + move-result-object v4
4119 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
4121 + move-result-object v5
4123 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4125 + move-result-object v4
4127 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
4129 + move-result-object v4
4131 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
4133 + const/4 v14, 0x1
4135 + move-object/from16 v0, p0
4137 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
4139 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
4141 + move-result-object v4
4143 + const/4 v5, 0x0
4145 + const-string/jumbo v6, "phoneCall"
4147 + const/4 v7, 0x0
4149 + invoke-virtual {v2, v4, v5, v6, v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
4151 + goto/16 :goto_b7
4153 + :cond_16b
4154 + invoke-virtual/range {v18 .. v18}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
4156 + move-result v2
4158 + if-nez v2, :cond_1a3
4160 + const-string v2, "Instrumentation"
4162 + new-instance v4, Ljava/lang/StringBuilder;
4164 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
4166 + const-string v5, "PDroid:Instrumentation:execStartActivity (with Fragments): Call allowed: Settings permit "
4168 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4170 + move-result-object v4
4172 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
4174 + move-result-object v5
4176 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4178 + move-result-object v4
4180 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
4182 + move-result-object v4
4184 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
4186 + const/4 v14, 0x1
4188 + move-object/from16 v0, p0
4190 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
4192 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
4194 + move-result-object v4
4196 + invoke-virtual/range {v18 .. v18}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
4198 + move-result v5
4200 + const-string/jumbo v6, "phoneCall"
4202 + const/4 v7, 0x0
4204 + invoke-virtual {v2, v4, v5, v6, v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
4206 + goto/16 :goto_b7
4208 + :cond_1a3
4209 + const-string v2, "Instrumentation"
4211 + new-instance v4, Ljava/lang/StringBuilder;
4213 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
4215 + const-string v5, "PDroid:Instrumentation:execStartActivity (with Fragments): Call denied: Settings deny "
4217 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4219 + move-result-object v4
4221 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
4223 + move-result-object v5
4225 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4227 + move-result-object v4
4229 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
4231 + move-result-object v4
4233 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
4235 + move-object/from16 v20, p1
4237 + const/4 v14, 0x0
4239 + new-instance v2, Ljava/lang/Thread;
4241 + new-instance v4, Landroid/app/Instrumentation$3;
4243 + move-object/from16 v0, p0
4245 + move-object/from16 v1, v20
4247 + invoke-direct {v4, v0, v1}, Landroid/app/Instrumentation$3;-><init>(Landroid/app/Instrumentation;Landroid/content/Context;)V
4249 + invoke-direct {v2, v4}, Ljava/lang/Thread;-><init>(Ljava/lang/Runnable;)V
4251 + invoke-virtual {v2}, Ljava/lang/Thread;->start()V
4253 + move-object/from16 v0, p0
4255 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
4257 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
4259 + move-result-object v4
4261 + invoke-virtual/range {v18 .. v18}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
4263 + move-result v5
4265 + const-string/jumbo v6, "phoneCall"
4267 + const/4 v7, 0x0
4269 + invoke-virtual {v2, v4, v5, v6, v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
4270 + :try_end_1e6
4271 + .catch Ljava/lang/Exception; {:try_start_125 .. :try_end_1e6} :catch_103
4273 + goto/16 :goto_b7
4275 + :cond_1e8
4276 + const-string v2, "Instrumentation"
4278 + const-string v4, "PDroid:Instrumentation:execStartActivity (with Fragments): Exception occurred handling intent for unknown package"
4280 + move-object/from16 v0, v16
4282 + invoke-static {v2, v4, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
4284 + goto/16 :goto_b7
4286 + :cond_1f3
4287 + const/4 v2, 0x0
4289 + goto/16 :goto_f9
4291 + :cond_1f6
4292 + add-int/lit8 v17, v17, 0x1
4294 + goto/16 :goto_cc
4296 + :cond_1fa
4297 + :try_start_1fa
4298 + monitor-exit v4
4299 + :try_end_1fb
4300 + .catchall {:try_start_1fa .. :try_end_1fb} :catchall_215
4302 + :cond_1fb
4303 + if-nez v14, :cond_218
4305 + :try_start_1fd
4306 + new-instance v2, Landroid/app/Instrumentation$ActivityResult;
4308 + move/from16 v0, p6
4310 + move-object/from16 v1, p5
4312 + invoke-direct {v2, v0, v1}, Landroid/app/Instrumentation$ActivityResult;-><init>(ILandroid/content/Intent;)V
4313 + :try_end_206
4314 + .catch Ljava/lang/Exception; {:try_start_1fd .. :try_end_206} :catch_208
4316 + goto/16 :goto_fa
4318 + :catch_208
4319 + move-exception v16
4321 + const-string v2, "Instrumentation"
4323 + const-string v4, "PDroid:Instrumentation:execStartActivity (with Fragments): Exception occurred while trying to create ActivityResult"
4325 + move-object/from16 v0, v16
4327 + invoke-static {v2, v4, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
4329 - :goto_7c
4330 const/4 v2, 0x0
4332 - goto :goto_42
4333 + goto/16 :goto_fa
4335 - :catchall_7e
4336 + :catchall_215
4337 move-exception v2
4339 - :try_start_7f
4340 + :try_start_216
4341 monitor-exit v4
4342 - :try_end_80
4343 - .catchall {:try_start_7f .. :try_end_80} :catchall_7e
4344 + :try_end_217
4345 + .catchall {:try_start_216 .. :try_end_217} :catchall_215
4347 throw v2
4349 - :cond_81
4350 + :cond_218
4351 + const/4 v2, 0x0
4353 + :try_start_219
4354 + move-object/from16 v0, p5
4356 + invoke-virtual {v0, v2}, Landroid/content/Intent;->setAllowFds(Z)V
4358 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->migrateExtraStreamToClipData()Z
4360 + invoke-static {}, Landroid/app/ActivityManagerNative;->getDefault()Landroid/app/IActivityManager;
4362 + move-result-object v2
4364 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
4366 + move-result-object v4
4368 + move-object/from16 v0, p5
4370 + invoke-virtual {v0, v4}, Landroid/content/Intent;->resolveTypeIfNeeded(Landroid/content/ContentResolver;)Ljava/lang/String;
4372 + move-result-object v5
4374 + if-eqz p4, :cond_24e
4376 + move-object/from16 v0, p4
4378 + iget-object v7, v0, Landroid/app/Fragment;->mWho:Ljava/lang/String;
4380 + :goto_235
4381 + const/4 v9, 0x0
4383 + const/4 v10, 0x0
4385 + const/4 v11, 0x0
4387 + move-object/from16 v4, p5
4389 + move-object/from16 v6, p3
4391 + move/from16 v8, p6
4393 + move-object/from16 v12, p7
4395 + invoke-interface/range {v2 .. v12}, Landroid/app/IActivityManager;->startActivity(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILjava/lang/String;Landroid/os/ParcelFileDescriptor;Landroid/os/Bundle;)I
4397 + move-result v19
4399 + move/from16 v0, v19
4401 + move-object/from16 v1, p5
4403 + invoke-static {v0, v1}, Landroid/app/Instrumentation;->checkStartActivityResult(ILjava/lang/Object;)V
4404 + :try_end_24b
4405 + .catch Landroid/os/RemoteException; {:try_start_219 .. :try_end_24b} :catch_250
4407 + :goto_24b
4408 + const/4 v2, 0x0
4410 + goto/16 :goto_fa
4412 + :cond_24e
4413 const/4 v7, 0x0
4415 - goto :goto_66
4416 + goto :goto_235
4418 - :catch_83
4419 + :catch_250
4420 move-exception v2
4422 - goto :goto_7c
4423 + goto :goto_24b
4424 .end method
4426 .method public finish(ILandroid/os/Bundle;)V
4427 diff -Npru stock-framework/smali/android/content/AsyncTaskLoader.smali opd-framework/smali/android/content/AsyncTaskLoader.smali
4428 --- stock-framework/smali/android/content/AsyncTaskLoader.smali 2013-01-08 23:29:02.452083519 -0600
4429 +++ opd-framework/smali/android/content/AsyncTaskLoader.smali 2013-01-08 23:29:41.364276472 -0600
4430 @@ -221,11 +221,11 @@
4432 cmp-long v0, v0, v2
4434 - if-eqz v0, :cond_63
4435 + if-eqz v0, :cond_64
4437 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
4439 - const-string v0, "mUpdateThrottle="
4440 + const-string/jumbo v0, "mUpdateThrottle="
4442 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
4444 @@ -247,7 +247,7 @@
4446 invoke-virtual {p3}, Ljava/io/PrintWriter;->println()V
4448 - :cond_63
4449 + :cond_64
4450 return-void
4451 .end method
4453 diff -Npru stock-framework/smali/android/content/ContentProviderOperation.smali opd-framework/smali/android/content/ContentProviderOperation.smali
4454 --- stock-framework/smali/android/content/ContentProviderOperation.smali 2013-01-08 23:29:02.520083861 -0600
4455 +++ opd-framework/smali/android/content/ContentProviderOperation.smali 2013-01-08 23:29:41.444276871 -0600
4456 @@ -1216,7 +1216,7 @@
4458 invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
4460 - const-string v1, "mType: "
4461 + const-string/jumbo v1, "mType: "
4463 invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4465 diff -Npru stock-framework/smali/android/content/ContentResolver.smali opd-framework/smali/android/content/ContentResolver.smali
4466 --- stock-framework/smali/android/content/ContentResolver.smali 2013-01-08 23:29:01.772080147 -0600
4467 +++ opd-framework/smali/android/content/ContentResolver.smali 2013-01-08 23:29:40.484272115 -0600
4468 @@ -3541,8 +3541,8 @@
4470 invoke-virtual {v0, v9}, Landroid/os/CancellationSignal;->setRemote(Landroid/os/ICancellationSignal;)V
4471 :try_end_1d
4472 - .catchall {:try_start_a .. :try_end_1d} :catchall_b9
4473 - .catch Landroid/os/RemoteException; {:try_start_a .. :try_end_1d} :catch_a6
4474 + .catchall {:try_start_a .. :try_end_1d} :catchall_d5
4475 + .catch Landroid/os/RemoteException; {:try_start_a .. :try_end_1d} :catch_c2
4477 :cond_1d
4478 move-object/from16 v4, p1
4479 @@ -3557,25 +3557,39 @@
4481 :try_start_27
4482 invoke-interface/range {v3 .. v9}, Landroid/content/IContentProvider;->query(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Landroid/os/ICancellationSignal;)Landroid/database/Cursor;
4483 - :try_end_2a
4484 - .catchall {:try_start_27 .. :try_end_2a} :catchall_b9
4485 - .catch Landroid/os/DeadObjectException; {:try_start_27 .. :try_end_2a} :catch_3e
4486 - .catch Landroid/os/RemoteException; {:try_start_27 .. :try_end_2a} :catch_a6
4488 move-result-object v19
4490 - :goto_2b
4491 - if-nez v19, :cond_6c
4492 + move-object/from16 v0, p0
4494 + iget-object v4, v0, Landroid/content/ContentResolver;->mContext:Landroid/content/Context;
4496 + move-object/from16 v0, p1
4498 + move-object/from16 v1, p2
4500 + move-object/from16 v2, v19
4502 + invoke-static {v0, v1, v4, v2}, Landroid/privacy/surrogate/PrivacyContentResolver;->enforcePrivacyPermission(Landroid/net/Uri;[Ljava/lang/String;Landroid/content/Context;Landroid/database/Cursor;)Landroid/database/Cursor;
4503 + :try_end_38
4504 + .catchall {:try_start_27 .. :try_end_38} :catchall_d5
4505 + .catch Landroid/os/DeadObjectException; {:try_start_27 .. :try_end_38} :catch_4c
4506 + .catch Landroid/os/RemoteException; {:try_start_27 .. :try_end_38} :catch_c2
4508 + move-result-object v19
4510 + :goto_39
4511 + if-nez v19, :cond_88
4513 const/16 v22, 0x0
4515 - if-eqz v3, :cond_36
4516 + if-eqz v3, :cond_44
4518 move-object/from16 v0, p0
4520 invoke-virtual {v0, v3}, Landroid/content/ContentResolver;->releaseUnstableProvider(Landroid/content/IContentProvider;)Z
4522 - :cond_36
4523 + :cond_44
4524 if-eqz v10, :cond_8
4526 move-object/from16 v0, p0
4527 @@ -3584,32 +3598,32 @@
4529 goto :goto_8
4531 - :catch_3e
4532 + :catch_4c
4533 move-exception v18
4535 - :try_start_3f
4536 + :try_start_4d
4537 move-object/from16 v0, p0
4539 invoke-virtual {v0, v3}, Landroid/content/ContentResolver;->unstableProviderDied(Landroid/content/IContentProvider;)V
4541 invoke-virtual/range {p0 .. p1}, Landroid/content/ContentResolver;->acquireProvider(Landroid/net/Uri;)Landroid/content/IContentProvider;
4542 - :try_end_47
4543 - .catchall {:try_start_3f .. :try_end_47} :catchall_b9
4544 - .catch Landroid/os/RemoteException; {:try_start_3f .. :try_end_47} :catch_a6
4545 + :try_end_55
4546 + .catchall {:try_start_4d .. :try_end_55} :catchall_d5
4547 + .catch Landroid/os/RemoteException; {:try_start_4d .. :try_end_55} :catch_c2
4549 move-result-object v10
4551 - if-nez v10, :cond_5b
4552 + if-nez v10, :cond_69
4554 const/16 v22, 0x0
4556 - if-eqz v3, :cond_53
4557 + if-eqz v3, :cond_61
4559 move-object/from16 v0, p0
4561 invoke-virtual {v0, v3}, Landroid/content/ContentResolver;->releaseUnstableProvider(Landroid/content/IContentProvider;)Z
4563 - :cond_53
4564 + :cond_61
4565 if-eqz v10, :cond_8
4567 move-object/from16 v0, p0
4568 @@ -3618,7 +3632,7 @@
4570 goto :goto_8
4572 - :cond_5b
4573 + :cond_69
4574 move-object/from16 v11, p1
4576 move-object/from16 v12, p2
4577 @@ -3631,14 +3645,28 @@
4579 move-object/from16 v16, v9
4581 - :try_start_67
4582 + :try_start_75
4583 invoke-interface/range {v10 .. v16}, Landroid/content/IContentProvider;->query(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Landroid/os/ICancellationSignal;)Landroid/database/Cursor;
4585 move-result-object v19
4587 - goto :goto_2b
4588 + move-object/from16 v0, p0
4590 + iget-object v4, v0, Landroid/content/ContentResolver;->mContext:Landroid/content/Context;
4592 + move-object/from16 v0, p1
4594 + move-object/from16 v1, p2
4596 + move-object/from16 v2, v19
4598 + invoke-static {v0, v1, v4, v2}, Landroid/privacy/surrogate/PrivacyContentResolver;->enforcePrivacyPermission(Landroid/net/Uri;[Ljava/lang/String;Landroid/content/Context;Landroid/database/Cursor;)Landroid/database/Cursor;
4600 + move-result-object v19
4602 + goto :goto_39
4604 - :cond_6c
4605 + :cond_88
4606 invoke-interface/range {v19 .. v19}, Landroid/database/Cursor;->getCount()I
4608 invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J
4609 @@ -3661,11 +3689,11 @@
4611 new-instance v22, Landroid/content/ContentResolver$CursorWrapperInner;
4613 - if-eqz v10, :cond_a1
4614 + if-eqz v10, :cond_bd
4616 move-object v4, v10
4618 - :goto_87
4619 + :goto_a3
4620 move-object/from16 v0, v22
4622 move-object/from16 v1, p0
4623 @@ -3673,19 +3701,19 @@
4624 move-object/from16 v2, v19
4626 invoke-direct {v0, v1, v2, v4}, Landroid/content/ContentResolver$CursorWrapperInner;-><init>(Landroid/content/ContentResolver;Landroid/database/Cursor;Landroid/content/IContentProvider;)V
4627 - :try_end_90
4628 - .catchall {:try_start_67 .. :try_end_90} :catchall_b9
4629 - .catch Landroid/os/RemoteException; {:try_start_67 .. :try_end_90} :catch_a6
4630 + :try_end_ac
4631 + .catchall {:try_start_75 .. :try_end_ac} :catchall_d5
4632 + .catch Landroid/os/RemoteException; {:try_start_75 .. :try_end_ac} :catch_c2
4634 const/4 v10, 0x0
4636 - if-eqz v3, :cond_98
4637 + if-eqz v3, :cond_b4
4639 move-object/from16 v0, p0
4641 invoke-virtual {v0, v3}, Landroid/content/ContentResolver;->releaseUnstableProvider(Landroid/content/IContentProvider;)Z
4643 - :cond_98
4644 + :cond_b4
4645 if-eqz v10, :cond_8
4647 move-object/from16 v0, p0
4648 @@ -3694,29 +3722,29 @@
4650 goto/16 :goto_8
4652 - :cond_a1
4653 - :try_start_a1
4654 + :cond_bd
4655 + :try_start_bd
4656 invoke-virtual/range {p0 .. p1}, Landroid/content/ContentResolver;->acquireProvider(Landroid/net/Uri;)Landroid/content/IContentProvider;
4657 - :try_end_a4
4658 - .catchall {:try_start_a1 .. :try_end_a4} :catchall_b9
4659 - .catch Landroid/os/RemoteException; {:try_start_a1 .. :try_end_a4} :catch_a6
4660 + :try_end_c0
4661 + .catchall {:try_start_bd .. :try_end_c0} :catchall_d5
4662 + .catch Landroid/os/RemoteException; {:try_start_bd .. :try_end_c0} :catch_c2
4664 move-result-object v4
4666 - goto :goto_87
4667 + goto :goto_a3
4669 - :catch_a6
4670 + :catch_c2
4671 move-exception v18
4673 const/16 v22, 0x0
4675 - if-eqz v3, :cond_b0
4676 + if-eqz v3, :cond_cc
4678 move-object/from16 v0, p0
4680 invoke-virtual {v0, v3}, Landroid/content/ContentResolver;->releaseUnstableProvider(Landroid/content/IContentProvider;)Z
4682 - :cond_b0
4683 + :cond_cc
4684 if-eqz v10, :cond_8
4686 move-object/from16 v0, p0
4687 @@ -3725,23 +3753,23 @@
4689 goto/16 :goto_8
4691 - :catchall_b9
4692 + :catchall_d5
4693 move-exception v4
4695 - if-eqz v3, :cond_c1
4696 + if-eqz v3, :cond_dd
4698 move-object/from16 v0, p0
4700 invoke-virtual {v0, v3}, Landroid/content/ContentResolver;->releaseUnstableProvider(Landroid/content/IContentProvider;)Z
4702 - :cond_c1
4703 - if-eqz v10, :cond_c8
4704 + :cond_dd
4705 + if-eqz v10, :cond_e4
4707 move-object/from16 v0, p0
4709 invoke-virtual {v0, v10}, Landroid/content/ContentResolver;->releaseProvider(Landroid/content/IContentProvider;)Z
4711 - :cond_c8
4712 + :cond_e4
4713 throw v4
4714 .end method
4716 diff -Npru stock-framework/smali/android/content/CursorLoader.smali opd-framework/smali/android/content/CursorLoader.smali
4717 --- stock-framework/smali/android/content/CursorLoader.smali 2013-01-08 23:29:02.564084072 -0600
4718 +++ opd-framework/smali/android/content/CursorLoader.smali 2013-01-08 23:29:41.512277205 -0600
4719 @@ -177,7 +177,7 @@
4721 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
4723 - const-string v0, "mUri="
4724 + const-string/jumbo v0, "mUri="
4726 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
4728 diff -Npru stock-framework/smali/android/content/pm/VerificationParams.smali opd-framework/smali/android/content/pm/VerificationParams.smali
4729 --- stock-framework/smali/android/content/pm/VerificationParams.smali 2013-01-08 23:29:02.788085185 -0600
4730 +++ opd-framework/smali/android/content/pm/VerificationParams.smali 2013-01-08 23:29:41.912279191 -0600
4731 @@ -492,7 +492,7 @@
4733 invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
4735 - const-string v1, "mVerificationURI="
4736 + const-string/jumbo v1, "mVerificationURI="
4738 invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4740 diff -Npru stock-framework/smali/android/hardware/Camera$EventHandler.smali opd-framework/smali/android/hardware/Camera$EventHandler.smali
4741 --- stock-framework/smali/android/hardware/Camera$EventHandler.smali 2013-01-08 23:29:03.416088304 -0600
4742 +++ opd-framework/smali/android/hardware/Camera$EventHandler.smali 2013-01-08 23:29:42.576282481 -0600
4743 @@ -36,418 +36,644 @@
4745 # virtual methods
4746 .method public handleMessage(Landroid/os/Message;)V
4747 - .registers 9
4748 + .registers 16
4750 - const/4 v3, 0x1
4751 + const/4 v7, 0x1
4753 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4755 + #getter for: Landroid/hardware/Camera;->privacyMode:Z
4756 + invoke-static {v0}, Landroid/hardware/Camera;->access$000(Landroid/hardware/Camera;)Z
4758 + move-result v0
4760 + if-nez v0, :cond_e
4762 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4764 + #calls: Landroid/hardware/Camera;->initiate()V
4765 + invoke-static {v0}, Landroid/hardware/Camera;->access$100(Landroid/hardware/Camera;)V
4767 + :cond_e
4768 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4770 + #calls: Landroid/hardware/Camera;->getPackageName()[Ljava/lang/String;
4771 + invoke-static {v0}, Landroid/hardware/Camera;->access$200(Landroid/hardware/Camera;)[Ljava/lang/String;
4773 + move-result-object v10
4775 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4777 + #calls: Landroid/hardware/Camera;->checkIfPackagesAllowed()I
4778 + invoke-static {v0}, Landroid/hardware/Camera;->access$300(Landroid/hardware/Camera;)I
4780 + move-result v0
4782 + const/4 v1, -0x2
4784 + if-ne v0, v1, :cond_68
4786 + const/4 v7, 0x0
4788 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4790 + const/4 v1, 0x0
4792 + #calls: Landroid/hardware/Camera;->dataAccess(Z)V
4793 + invoke-static {v0, v1}, Landroid/hardware/Camera;->access$400(Landroid/hardware/Camera;Z)V
4795 + if-eqz v10, :cond_48
4797 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4799 + #getter for: Landroid/hardware/Camera;->pSetMan:Landroid/privacy/PrivacySettingsManager;
4800 + invoke-static {v0}, Landroid/hardware/Camera;->access$500(Landroid/hardware/Camera;)Landroid/privacy/PrivacySettingsManager;
4802 + move-result-object v0
4804 + const/4 v1, 0x0
4806 + aget-object v1, v10, v1
4808 const/4 v2, 0x0
4810 - iget v4, p1, Landroid/os/Message;->what:I
4811 + const/4 v3, 0x1
4813 + const-string v4, "camera"
4815 + const/4 v5, 0x0
4817 + iget-object v6, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4819 + #getter for: Landroid/hardware/Camera;->pSetMan:Landroid/privacy/PrivacySettingsManager;
4820 + invoke-static {v6}, Landroid/hardware/Camera;->access$500(Landroid/hardware/Camera;)Landroid/privacy/PrivacySettingsManager;
4822 + move-result-object v6
4824 + const/4 v12, 0x0
4826 + aget-object v12, v10, v12
4828 + invoke-static {}, Landroid/os/Process;->myUid()I
4830 + move-result v13
4832 + invoke-virtual {v6, v12, v13}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
4834 - sparse-switch v4, :sswitch_data_158
4835 + move-result-object v6
4837 - const-string v3, "Camera"
4838 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
4840 - new-instance v4, Ljava/lang/StringBuilder;
4841 + :cond_48
4842 + :goto_48
4843 + iget v0, p1, Landroid/os/Message;->what:I
4845 - invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
4846 + sparse-switch v0, :sswitch_data_218
4848 - const-string v5, "Unknown message type "
4849 + const-string v0, "Camera"
4851 - invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4852 + new-instance v1, Ljava/lang/StringBuilder;
4854 - move-result-object v4
4855 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
4857 - iget v5, p1, Landroid/os/Message;->what:I
4858 + const-string v2, "Unknown message type "
4860 - invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
4861 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4863 - move-result-object v4
4864 + move-result-object v1
4866 + iget v2, p1, Landroid/os/Message;->what:I
4868 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
4870 + move-result-object v1
4872 - invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
4873 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
4875 - move-result-object v4
4876 + move-result-object v1
4878 - invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
4879 + invoke-static {v0, v1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
4881 - :cond_21
4882 - :goto_21
4883 + :cond_67
4884 + :goto_67
4885 return-void
4887 - :sswitch_22
4888 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4889 + :cond_68
4890 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4892 + const/4 v1, 0x1
4894 + #calls: Landroid/hardware/Camera;->dataAccess(Z)V
4895 + invoke-static {v0, v1}, Landroid/hardware/Camera;->access$400(Landroid/hardware/Camera;Z)V
4897 + if-eqz v10, :cond_48
4899 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4901 + #getter for: Landroid/hardware/Camera;->pSetMan:Landroid/privacy/PrivacySettingsManager;
4902 + invoke-static {v0}, Landroid/hardware/Camera;->access$500(Landroid/hardware/Camera;)Landroid/privacy/PrivacySettingsManager;
4904 + move-result-object v0
4906 + const/4 v1, 0x0
4908 + aget-object v1, v10, v1
4910 + const/4 v2, 0x0
4912 + const/4 v3, 0x0
4914 + const-string v4, "camera"
4916 + const/4 v5, 0x0
4918 + iget-object v6, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4920 + #getter for: Landroid/hardware/Camera;->pSetMan:Landroid/privacy/PrivacySettingsManager;
4921 + invoke-static {v6}, Landroid/hardware/Camera;->access$500(Landroid/hardware/Camera;)Landroid/privacy/PrivacySettingsManager;
4923 + move-result-object v6
4925 + const/4 v12, 0x0
4927 + aget-object v12, v10, v12
4929 + invoke-static {}, Landroid/os/Process;->myUid()I
4931 + move-result v13
4933 + invoke-virtual {v6, v12, v13}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
4935 + move-result-object v6
4937 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
4939 + goto :goto_48
4941 + :sswitch_93
4942 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4944 #getter for: Landroid/hardware/Camera;->mShutterCallback:Landroid/hardware/Camera$ShutterCallback;
4945 - invoke-static {v3}, Landroid/hardware/Camera;->access$000(Landroid/hardware/Camera;)Landroid/hardware/Camera$ShutterCallback;
4946 + invoke-static {v0}, Landroid/hardware/Camera;->access$600(Landroid/hardware/Camera;)Landroid/hardware/Camera$ShutterCallback;
4948 - move-result-object v3
4949 + move-result-object v0
4951 - if-eqz v3, :cond_21
4952 + if-eqz v0, :cond_67
4954 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4955 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4957 #getter for: Landroid/hardware/Camera;->mShutterCallback:Landroid/hardware/Camera$ShutterCallback;
4958 - invoke-static {v3}, Landroid/hardware/Camera;->access$000(Landroid/hardware/Camera;)Landroid/hardware/Camera$ShutterCallback;
4959 + invoke-static {v0}, Landroid/hardware/Camera;->access$600(Landroid/hardware/Camera;)Landroid/hardware/Camera$ShutterCallback;
4961 - move-result-object v3
4962 + move-result-object v0
4964 - invoke-interface {v3}, Landroid/hardware/Camera$ShutterCallback;->onShutter()V
4965 + invoke-interface {v0}, Landroid/hardware/Camera$ShutterCallback;->onShutter()V
4967 - goto :goto_21
4968 + goto :goto_67
4970 - :sswitch_34
4971 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4972 + :sswitch_a5
4973 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4975 #getter for: Landroid/hardware/Camera;->mRawImageCallback:Landroid/hardware/Camera$PictureCallback;
4976 - invoke-static {v3}, Landroid/hardware/Camera;->access$100(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
4977 + invoke-static {v0}, Landroid/hardware/Camera;->access$700(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
4979 + move-result-object v0
4981 - move-result-object v3
4982 + if-eqz v0, :cond_67
4984 - if-eqz v3, :cond_21
4985 + if-eqz v7, :cond_c1
4987 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4988 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4990 #getter for: Landroid/hardware/Camera;->mRawImageCallback:Landroid/hardware/Camera$PictureCallback;
4991 - invoke-static {v3}, Landroid/hardware/Camera;->access$100(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
4992 + invoke-static {v0}, Landroid/hardware/Camera;->access$700(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
4994 - move-result-object v4
4995 + move-result-object v1
4997 - iget-object v3, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
4998 + iget-object v0, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
5000 - check-cast v3, [B
5001 + check-cast v0, [B
5003 - check-cast v3, [B
5004 + check-cast v0, [B
5006 - iget-object v5, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5007 + iget-object v2, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5009 - invoke-interface {v4, v3, v5}, Landroid/hardware/Camera$PictureCallback;->onPictureTaken([BLandroid/hardware/Camera;)V
5010 + invoke-interface {v1, v0, v2}, Landroid/hardware/Camera$PictureCallback;->onPictureTaken([BLandroid/hardware/Camera;)V
5012 - goto :goto_21
5013 + goto :goto_67
5015 - :sswitch_4e
5016 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5017 + :cond_c1
5018 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5020 + #getter for: Landroid/hardware/Camera;->mRawImageCallback:Landroid/hardware/Camera$PictureCallback;
5021 + invoke-static {v0}, Landroid/hardware/Camera;->access$700(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5023 + move-result-object v0
5025 + const/4 v1, 0x0
5027 + iget-object v2, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5029 + invoke-interface {v0, v1, v2}, Landroid/hardware/Camera$PictureCallback;->onPictureTaken([BLandroid/hardware/Camera;)V
5031 + goto :goto_67
5033 + :sswitch_ce
5034 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5036 #getter for: Landroid/hardware/Camera;->mJpegCallback:Landroid/hardware/Camera$PictureCallback;
5037 - invoke-static {v3}, Landroid/hardware/Camera;->access$200(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5038 + invoke-static {v0}, Landroid/hardware/Camera;->access$800(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5040 - move-result-object v3
5041 + move-result-object v0
5043 - if-eqz v3, :cond_21
5044 + if-eqz v0, :cond_67
5046 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5047 + if-eqz v7, :cond_eb
5049 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5051 #getter for: Landroid/hardware/Camera;->mJpegCallback:Landroid/hardware/Camera$PictureCallback;
5052 - invoke-static {v3}, Landroid/hardware/Camera;->access$200(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5053 + invoke-static {v0}, Landroid/hardware/Camera;->access$800(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5055 - move-result-object v4
5056 + move-result-object v1
5058 - iget-object v3, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
5059 + iget-object v0, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
5061 - check-cast v3, [B
5062 + check-cast v0, [B
5064 - check-cast v3, [B
5065 + check-cast v0, [B
5067 - iget-object v5, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5068 + iget-object v2, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5070 - invoke-interface {v4, v3, v5}, Landroid/hardware/Camera$PictureCallback;->onPictureTaken([BLandroid/hardware/Camera;)V
5071 + invoke-interface {v1, v0, v2}, Landroid/hardware/Camera$PictureCallback;->onPictureTaken([BLandroid/hardware/Camera;)V
5073 - goto :goto_21
5074 + goto/16 :goto_67
5076 - :sswitch_68
5077 - iget-object v4, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5078 + :cond_eb
5079 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5081 - #getter for: Landroid/hardware/Camera;->mPreviewCallback:Landroid/hardware/Camera$PreviewCallback;
5082 - invoke-static {v4}, Landroid/hardware/Camera;->access$300(Landroid/hardware/Camera;)Landroid/hardware/Camera$PreviewCallback;
5083 + #getter for: Landroid/hardware/Camera;->mJpegCallback:Landroid/hardware/Camera$PictureCallback;
5084 + invoke-static {v0}, Landroid/hardware/Camera;->access$800(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5086 + move-result-object v0
5088 + iget-object v1, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5090 + #calls: Landroid/hardware/Camera;->getFakeImage()[B
5091 + invoke-static {v1}, Landroid/hardware/Camera;->access$900(Landroid/hardware/Camera;)[B
5093 move-result-object v1
5095 - if-eqz v1, :cond_21
5096 + iget-object v2, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5098 + invoke-interface {v0, v1, v2}, Landroid/hardware/Camera$PictureCallback;->onPictureTaken([BLandroid/hardware/Camera;)V
5100 - iget-object v4, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5101 + goto/16 :goto_67
5103 + :sswitch_fe
5104 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5106 + #getter for: Landroid/hardware/Camera;->mPreviewCallback:Landroid/hardware/Camera$PreviewCallback;
5107 + invoke-static {v0}, Landroid/hardware/Camera;->access$1000(Landroid/hardware/Camera;)Landroid/hardware/Camera$PreviewCallback;
5109 + move-result-object v9
5111 + if-eqz v9, :cond_67
5113 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5115 #getter for: Landroid/hardware/Camera;->mOneShot:Z
5116 - invoke-static {v4}, Landroid/hardware/Camera;->access$400(Landroid/hardware/Camera;)Z
5117 + invoke-static {v0}, Landroid/hardware/Camera;->access$1100(Landroid/hardware/Camera;)Z
5119 - move-result v4
5120 + move-result v0
5122 - if-eqz v4, :cond_8a
5123 + if-eqz v0, :cond_123
5125 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5126 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5128 - const/4 v4, 0x0
5129 + const/4 v1, 0x0
5131 #setter for: Landroid/hardware/Camera;->mPreviewCallback:Landroid/hardware/Camera$PreviewCallback;
5132 - invoke-static {v3, v4}, Landroid/hardware/Camera;->access$302(Landroid/hardware/Camera;Landroid/hardware/Camera$PreviewCallback;)Landroid/hardware/Camera$PreviewCallback;
5133 + invoke-static {v0, v1}, Landroid/hardware/Camera;->access$1002(Landroid/hardware/Camera;Landroid/hardware/Camera$PreviewCallback;)Landroid/hardware/Camera$PreviewCallback;
5135 + :cond_114
5136 + :goto_114
5137 + if-eqz v7, :cond_133
5139 - :cond_7e
5140 - :goto_7e
5141 - iget-object v3, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
5142 + iget-object v0, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
5144 - check-cast v3, [B
5145 + check-cast v0, [B
5147 - check-cast v3, [B
5148 + check-cast v0, [B
5150 - iget-object v4, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5151 + iget-object v1, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5153 - invoke-interface {v1, v3, v4}, Landroid/hardware/Camera$PreviewCallback;->onPreviewFrame([BLandroid/hardware/Camera;)V
5154 + invoke-interface {v9, v0, v1}, Landroid/hardware/Camera$PreviewCallback;->onPreviewFrame([BLandroid/hardware/Camera;)V
5156 - goto :goto_21
5157 + goto/16 :goto_67
5159 - :cond_8a
5160 - iget-object v4, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5161 + :cond_123
5162 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5164 #getter for: Landroid/hardware/Camera;->mWithBuffer:Z
5165 - invoke-static {v4}, Landroid/hardware/Camera;->access$500(Landroid/hardware/Camera;)Z
5166 + invoke-static {v0}, Landroid/hardware/Camera;->access$1200(Landroid/hardware/Camera;)Z
5168 + move-result v0
5170 + if-nez v0, :cond_114
5172 - move-result v4
5173 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5175 - if-nez v4, :cond_7e
5176 + const/4 v1, 0x1
5178 - iget-object v4, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5179 + const/4 v2, 0x0
5181 #calls: Landroid/hardware/Camera;->setHasPreviewCallback(ZZ)V
5182 - invoke-static {v4, v3, v2}, Landroid/hardware/Camera;->access$600(Landroid/hardware/Camera;ZZ)V
5183 + invoke-static {v0, v1, v2}, Landroid/hardware/Camera;->access$1300(Landroid/hardware/Camera;ZZ)V
5185 + goto :goto_114
5187 + :cond_133
5188 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5190 - goto :goto_7e
5191 + #calls: Landroid/hardware/Camera;->getFakeImage()[B
5192 + invoke-static {v0}, Landroid/hardware/Camera;->access$900(Landroid/hardware/Camera;)[B
5194 + move-result-object v0
5196 - :sswitch_98
5197 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5198 + iget-object v1, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5200 + invoke-interface {v9, v0, v1}, Landroid/hardware/Camera$PreviewCallback;->onPreviewFrame([BLandroid/hardware/Camera;)V
5202 + goto/16 :goto_67
5204 + :sswitch_140
5205 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5207 #getter for: Landroid/hardware/Camera;->mPostviewCallback:Landroid/hardware/Camera$PictureCallback;
5208 - invoke-static {v3}, Landroid/hardware/Camera;->access$700(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5209 + invoke-static {v0}, Landroid/hardware/Camera;->access$1400(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5211 - move-result-object v3
5212 + move-result-object v0
5214 - if-eqz v3, :cond_21
5215 + if-eqz v0, :cond_67
5217 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5218 + if-eqz v7, :cond_15d
5220 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5222 #getter for: Landroid/hardware/Camera;->mPostviewCallback:Landroid/hardware/Camera$PictureCallback;
5223 - invoke-static {v3}, Landroid/hardware/Camera;->access$700(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5224 + invoke-static {v0}, Landroid/hardware/Camera;->access$1400(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5226 - move-result-object v4
5227 + move-result-object v1
5229 - iget-object v3, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
5230 + iget-object v0, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
5232 - check-cast v3, [B
5233 + check-cast v0, [B
5235 - check-cast v3, [B
5236 + check-cast v0, [B
5238 - iget-object v5, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5239 + iget-object v2, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5241 - invoke-interface {v4, v3, v5}, Landroid/hardware/Camera$PictureCallback;->onPictureTaken([BLandroid/hardware/Camera;)V
5242 + invoke-interface {v1, v0, v2}, Landroid/hardware/Camera$PictureCallback;->onPictureTaken([BLandroid/hardware/Camera;)V
5244 - goto/16 :goto_21
5245 + goto/16 :goto_67
5247 - :sswitch_b3
5248 - const/4 v0, 0x0
5249 + :cond_15d
5250 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5252 + #getter for: Landroid/hardware/Camera;->mPostviewCallback:Landroid/hardware/Camera$PictureCallback;
5253 + invoke-static {v0}, Landroid/hardware/Camera;->access$1400(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5255 + move-result-object v0
5257 + iget-object v1, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5259 + #calls: Landroid/hardware/Camera;->getFakeImage()[B
5260 + invoke-static {v1}, Landroid/hardware/Camera;->access$900(Landroid/hardware/Camera;)[B
5262 - iget-object v4, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5263 + move-result-object v1
5265 + iget-object v2, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5267 + invoke-interface {v0, v1, v2}, Landroid/hardware/Camera$PictureCallback;->onPictureTaken([BLandroid/hardware/Camera;)V
5269 + goto/16 :goto_67
5271 + :sswitch_170
5272 + const/4 v8, 0x0
5274 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5276 #getter for: Landroid/hardware/Camera;->mAutoFocusCallbackLock:Ljava/lang/Object;
5277 - invoke-static {v4}, Landroid/hardware/Camera;->access$800(Landroid/hardware/Camera;)Ljava/lang/Object;
5278 + invoke-static {v0}, Landroid/hardware/Camera;->access$1500(Landroid/hardware/Camera;)Ljava/lang/Object;
5280 - move-result-object v4
5281 + move-result-object v1
5283 - monitor-enter v4
5284 + monitor-enter v1
5286 - :try_start_bb
5287 - iget-object v5, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5288 + :try_start_178
5289 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5291 #getter for: Landroid/hardware/Camera;->mAutoFocusCallback:Landroid/hardware/Camera$AutoFocusCallback;
5292 - invoke-static {v5}, Landroid/hardware/Camera;->access$900(Landroid/hardware/Camera;)Landroid/hardware/Camera$AutoFocusCallback;
5293 + invoke-static {v0}, Landroid/hardware/Camera;->access$1600(Landroid/hardware/Camera;)Landroid/hardware/Camera$AutoFocusCallback;
5295 - move-result-object v0
5296 + move-result-object v8
5298 - monitor-exit v4
5299 - :try_end_c2
5300 - .catchall {:try_start_bb .. :try_end_c2} :catchall_cf
5301 + monitor-exit v1
5302 + :try_end_17f
5303 + .catchall {:try_start_178 .. :try_end_17f} :catchall_18d
5305 - if-eqz v0, :cond_21
5306 + if-eqz v8, :cond_67
5308 - iget v4, p1, Landroid/os/Message;->arg1:I
5309 + iget v0, p1, Landroid/os/Message;->arg1:I
5311 - if-nez v4, :cond_d2
5312 + if-nez v0, :cond_190
5314 - :goto_c8
5315 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5316 + const/4 v11, 0x0
5318 - invoke-interface {v0, v2, v3}, Landroid/hardware/Camera$AutoFocusCallback;->onAutoFocus(ZLandroid/hardware/Camera;)V
5319 + :goto_186
5320 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5322 - goto/16 :goto_21
5323 + invoke-interface {v8, v11, v0}, Landroid/hardware/Camera$AutoFocusCallback;->onAutoFocus(ZLandroid/hardware/Camera;)V
5325 - :catchall_cf
5326 - move-exception v3
5327 + goto/16 :goto_67
5329 - :try_start_d0
5330 - monitor-exit v4
5331 - :try_end_d1
5332 - .catchall {:try_start_d0 .. :try_end_d1} :catchall_cf
5333 + :catchall_18d
5334 + move-exception v0
5336 - throw v3
5337 + :try_start_18e
5338 + monitor-exit v1
5339 + :try_end_18f
5340 + .catchall {:try_start_18e .. :try_end_18f} :catchall_18d
5342 - :cond_d2
5343 - move v2, v3
5344 + throw v0
5346 - goto :goto_c8
5347 + :cond_190
5348 + const/4 v11, 0x1
5350 - :sswitch_d4
5351 - iget-object v4, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5352 + goto :goto_186
5354 + :sswitch_192
5355 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5357 #getter for: Landroid/hardware/Camera;->mZoomListener:Landroid/hardware/Camera$OnZoomChangeListener;
5358 - invoke-static {v4}, Landroid/hardware/Camera;->access$1000(Landroid/hardware/Camera;)Landroid/hardware/Camera$OnZoomChangeListener;
5359 + invoke-static {v0}, Landroid/hardware/Camera;->access$1700(Landroid/hardware/Camera;)Landroid/hardware/Camera$OnZoomChangeListener;
5361 - move-result-object v4
5362 + move-result-object v0
5364 - if-eqz v4, :cond_21
5365 + if-eqz v0, :cond_67
5367 - iget-object v4, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5368 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5370 #getter for: Landroid/hardware/Camera;->mZoomListener:Landroid/hardware/Camera$OnZoomChangeListener;
5371 - invoke-static {v4}, Landroid/hardware/Camera;->access$1000(Landroid/hardware/Camera;)Landroid/hardware/Camera$OnZoomChangeListener;
5372 + invoke-static {v0}, Landroid/hardware/Camera;->access$1700(Landroid/hardware/Camera;)Landroid/hardware/Camera$OnZoomChangeListener;
5374 - move-result-object v4
5375 + move-result-object v1
5377 - iget v5, p1, Landroid/os/Message;->arg1:I
5378 + iget v2, p1, Landroid/os/Message;->arg1:I
5380 - iget v6, p1, Landroid/os/Message;->arg2:I
5381 + iget v0, p1, Landroid/os/Message;->arg2:I
5383 - if-eqz v6, :cond_ef
5384 + if-eqz v0, :cond_1ae
5386 - :goto_e8
5387 - iget-object v6, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5388 + const/4 v0, 0x1
5390 - invoke-interface {v4, v5, v3, v6}, Landroid/hardware/Camera$OnZoomChangeListener;->onZoomChange(IZLandroid/hardware/Camera;)V
5391 + :goto_1a7
5392 + iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5394 - goto/16 :goto_21
5395 + invoke-interface {v1, v2, v0, v3}, Landroid/hardware/Camera$OnZoomChangeListener;->onZoomChange(IZLandroid/hardware/Camera;)V
5397 - :cond_ef
5398 - move v3, v2
5399 + goto/16 :goto_67
5401 - goto :goto_e8
5402 + :cond_1ae
5403 + const/4 v0, 0x0
5405 - :sswitch_f1
5406 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5407 + goto :goto_1a7
5409 + :sswitch_1b0
5410 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5412 #getter for: Landroid/hardware/Camera;->mFaceListener:Landroid/hardware/Camera$FaceDetectionListener;
5413 - invoke-static {v3}, Landroid/hardware/Camera;->access$1100(Landroid/hardware/Camera;)Landroid/hardware/Camera$FaceDetectionListener;
5414 + invoke-static {v0}, Landroid/hardware/Camera;->access$1800(Landroid/hardware/Camera;)Landroid/hardware/Camera$FaceDetectionListener;
5416 - move-result-object v3
5417 + move-result-object v0
5419 - if-eqz v3, :cond_21
5420 + if-eqz v0, :cond_67
5422 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5423 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5425 #getter for: Landroid/hardware/Camera;->mFaceListener:Landroid/hardware/Camera$FaceDetectionListener;
5426 - invoke-static {v3}, Landroid/hardware/Camera;->access$1100(Landroid/hardware/Camera;)Landroid/hardware/Camera$FaceDetectionListener;
5427 + invoke-static {v0}, Landroid/hardware/Camera;->access$1800(Landroid/hardware/Camera;)Landroid/hardware/Camera$FaceDetectionListener;
5429 - move-result-object v4
5430 + move-result-object v1
5432 - iget-object v3, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
5433 + iget-object v0, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
5435 - check-cast v3, [Landroid/hardware/Camera$Face;
5436 + check-cast v0, [Landroid/hardware/Camera$Face;
5438 - check-cast v3, [Landroid/hardware/Camera$Face;
5439 + check-cast v0, [Landroid/hardware/Camera$Face;
5441 - iget-object v5, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5442 + iget-object v2, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5444 - invoke-interface {v4, v3, v5}, Landroid/hardware/Camera$FaceDetectionListener;->onFaceDetection([Landroid/hardware/Camera$Face;Landroid/hardware/Camera;)V
5445 + invoke-interface {v1, v0, v2}, Landroid/hardware/Camera$FaceDetectionListener;->onFaceDetection([Landroid/hardware/Camera$Face;Landroid/hardware/Camera;)V
5447 - goto/16 :goto_21
5448 + goto/16 :goto_67
5450 - :sswitch_10c
5451 - const-string v3, "Camera"
5452 + :sswitch_1cb
5453 + const-string v0, "Camera"
5455 - new-instance v4, Ljava/lang/StringBuilder;
5456 + new-instance v1, Ljava/lang/StringBuilder;
5458 - invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
5459 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
5461 - const-string v5, "Error "
5462 + const-string v2, "Error "
5464 - invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
5465 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
5467 - move-result-object v4
5468 + move-result-object v1
5470 - iget v5, p1, Landroid/os/Message;->arg1:I
5471 + iget v2, p1, Landroid/os/Message;->arg1:I
5473 - invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
5474 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
5476 - move-result-object v4
5477 + move-result-object v1
5479 - invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
5480 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
5482 - move-result-object v4
5483 + move-result-object v1
5485 - invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
5486 + invoke-static {v0, v1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
5488 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5489 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5491 #getter for: Landroid/hardware/Camera;->mErrorCallback:Landroid/hardware/Camera$ErrorCallback;
5492 - invoke-static {v3}, Landroid/hardware/Camera;->access$1200(Landroid/hardware/Camera;)Landroid/hardware/Camera$ErrorCallback;
5493 + invoke-static {v0}, Landroid/hardware/Camera;->access$1900(Landroid/hardware/Camera;)Landroid/hardware/Camera$ErrorCallback;
5495 - move-result-object v3
5496 + move-result-object v0
5498 - if-eqz v3, :cond_21
5499 + if-eqz v0, :cond_67
5501 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5502 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5504 #getter for: Landroid/hardware/Camera;->mErrorCallback:Landroid/hardware/Camera$ErrorCallback;
5505 - invoke-static {v3}, Landroid/hardware/Camera;->access$1200(Landroid/hardware/Camera;)Landroid/hardware/Camera$ErrorCallback;
5506 + invoke-static {v0}, Landroid/hardware/Camera;->access$1900(Landroid/hardware/Camera;)Landroid/hardware/Camera$ErrorCallback;
5508 - move-result-object v3
5509 + move-result-object v0
5511 - iget v4, p1, Landroid/os/Message;->arg1:I
5512 + iget v1, p1, Landroid/os/Message;->arg1:I
5514 - iget-object v5, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5515 + iget-object v2, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5517 - invoke-interface {v3, v4, v5}, Landroid/hardware/Camera$ErrorCallback;->onError(ILandroid/hardware/Camera;)V
5518 + invoke-interface {v0, v1, v2}, Landroid/hardware/Camera$ErrorCallback;->onError(ILandroid/hardware/Camera;)V
5520 - goto/16 :goto_21
5521 + goto/16 :goto_67
5523 - :sswitch_13d
5524 - iget-object v4, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5525 + :sswitch_1fc
5526 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5528 #getter for: Landroid/hardware/Camera;->mAutoFocusMoveCallback:Landroid/hardware/Camera$AutoFocusMoveCallback;
5529 - invoke-static {v4}, Landroid/hardware/Camera;->access$1300(Landroid/hardware/Camera;)Landroid/hardware/Camera$AutoFocusMoveCallback;
5530 + invoke-static {v0}, Landroid/hardware/Camera;->access$2000(Landroid/hardware/Camera;)Landroid/hardware/Camera$AutoFocusMoveCallback;
5532 - move-result-object v4
5533 + move-result-object v0
5535 - if-eqz v4, :cond_21
5536 + if-eqz v0, :cond_67
5538 - iget-object v4, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5539 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5541 #getter for: Landroid/hardware/Camera;->mAutoFocusMoveCallback:Landroid/hardware/Camera$AutoFocusMoveCallback;
5542 - invoke-static {v4}, Landroid/hardware/Camera;->access$1300(Landroid/hardware/Camera;)Landroid/hardware/Camera$AutoFocusMoveCallback;
5543 + invoke-static {v0}, Landroid/hardware/Camera;->access$2000(Landroid/hardware/Camera;)Landroid/hardware/Camera$AutoFocusMoveCallback;
5545 - move-result-object v4
5546 + move-result-object v1
5548 - iget v5, p1, Landroid/os/Message;->arg1:I
5549 + iget v0, p1, Landroid/os/Message;->arg1:I
5551 - if-nez v5, :cond_156
5552 + if-nez v0, :cond_216
5554 - :goto_14f
5555 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5556 + const/4 v0, 0x0
5558 + :goto_20f
5559 + iget-object v2, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5561 - invoke-interface {v4, v2, v3}, Landroid/hardware/Camera$AutoFocusMoveCallback;->onAutoFocusMoving(ZLandroid/hardware/Camera;)V
5562 + invoke-interface {v1, v0, v2}, Landroid/hardware/Camera$AutoFocusMoveCallback;->onAutoFocusMoving(ZLandroid/hardware/Camera;)V
5564 - goto/16 :goto_21
5565 + goto/16 :goto_67
5567 - :cond_156
5568 - move v2, v3
5569 + :cond_216
5570 + const/4 v0, 0x1
5572 - goto :goto_14f
5573 + goto :goto_20f
5575 - :sswitch_data_158
5576 + :sswitch_data_218
5577 .sparse-switch
5578 - 0x1 -> :sswitch_10c
5579 - 0x2 -> :sswitch_22
5580 - 0x4 -> :sswitch_b3
5581 - 0x8 -> :sswitch_d4
5582 - 0x10 -> :sswitch_68
5583 - 0x40 -> :sswitch_98
5584 - 0x80 -> :sswitch_34
5585 - 0x100 -> :sswitch_4e
5586 - 0x400 -> :sswitch_f1
5587 - 0x800 -> :sswitch_13d
5588 + 0x1 -> :sswitch_1cb
5589 + 0x2 -> :sswitch_93
5590 + 0x4 -> :sswitch_170
5591 + 0x8 -> :sswitch_192
5592 + 0x10 -> :sswitch_fe
5593 + 0x40 -> :sswitch_140
5594 + 0x80 -> :sswitch_a5
5595 + 0x100 -> :sswitch_ce
5596 + 0x400 -> :sswitch_1b0
5597 + 0x800 -> :sswitch_1fc
5598 .end sparse-switch
5599 .end method
5600 diff -Npru stock-framework/smali/android/hardware/Camera.smali opd-framework/smali/android/hardware/Camera.smali
5601 --- stock-framework/smali/android/hardware/Camera.smali 2013-01-08 23:29:03.424088338 -0600
5602 +++ opd-framework/smali/android/hardware/Camera.smali 2013-01-08 23:29:42.584282529 -0600
5603 @@ -62,10 +62,20 @@
5605 .field private static final CAMERA_MSG_ZOOM:I = 0x8
5607 +.field private static final GOT_ERROR:I = -0x3
5609 +.field private static final IS_ALLOWED:I = -0x1
5611 +.field private static final IS_NOT_ALLOWED:I = -0x2
5613 +.field private static final PRIVACY_TAG:Ljava/lang/String; = "PM,Camera"
5615 .field private static final TAG:Ljava/lang/String; = "Camera"
5618 # instance fields
5619 +.field private context:Landroid/content/Context;
5621 .field private mAutoFocusCallback:Landroid/hardware/Camera$AutoFocusCallback;
5623 .field private mAutoFocusCallbackLock:Ljava/lang/Object;
5624 @@ -86,6 +96,8 @@
5626 .field private mOneShot:Z
5628 +.field private mPm:Landroid/content/pm/IPackageManager;
5630 .field private mPostviewCallback:Landroid/hardware/Camera$PictureCallback;
5632 .field private mPreviewCallback:Landroid/hardware/Camera$PreviewCallback;
5633 @@ -98,16 +110,20 @@
5635 .field private mZoomListener:Landroid/hardware/Camera$OnZoomChangeListener;
5637 +.field private pSetMan:Landroid/privacy/PrivacySettingsManager;
5639 +.field private privacyMode:Z
5642 # direct methods
5643 .method constructor <init>()V
5644 - .registers 2
5645 + .registers 3
5647 - invoke-direct {p0}, Ljava/lang/Object;-><init>()V
5648 + const/4 v1, 0x0
5650 - const/4 v0, 0x0
5651 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
5653 - iput-boolean v0, p0, Landroid/hardware/Camera;->mFaceDetectionRunning:Z
5654 + iput-boolean v1, p0, Landroid/hardware/Camera;->mFaceDetectionRunning:Z
5656 new-instance v0, Ljava/lang/Object;
5658 @@ -115,19 +131,21 @@
5660 iput-object v0, p0, Landroid/hardware/Camera;->mAutoFocusCallbackLock:Ljava/lang/Object;
5662 + iput-boolean v1, p0, Landroid/hardware/Camera;->privacyMode:Z
5664 return-void
5665 .end method
5667 .method constructor <init>(I)V
5668 - .registers 5
5669 + .registers 6
5671 + const/4 v3, 0x0
5673 const/4 v2, 0x0
5675 invoke-direct {p0}, Ljava/lang/Object;-><init>()V
5677 - const/4 v1, 0x0
5679 - iput-boolean v1, p0, Landroid/hardware/Camera;->mFaceDetectionRunning:Z
5680 + iput-boolean v3, p0, Landroid/hardware/Camera;->mFaceDetectionRunning:Z
5682 new-instance v1, Ljava/lang/Object;
5684 @@ -135,6 +153,8 @@
5686 iput-object v1, p0, Landroid/hardware/Camera;->mAutoFocusCallbackLock:Ljava/lang/Object;
5688 + iput-boolean v3, p0, Landroid/hardware/Camera;->privacyMode:Z
5690 iput-object v2, p0, Landroid/hardware/Camera;->mShutterCallback:Landroid/hardware/Camera$ShutterCallback;
5692 iput-object v2, p0, Landroid/hardware/Camera;->mRawImageCallback:Landroid/hardware/Camera$PictureCallback;
5693 @@ -147,11 +167,13 @@
5695 iput-object v2, p0, Landroid/hardware/Camera;->mZoomListener:Landroid/hardware/Camera$OnZoomChangeListener;
5697 + invoke-direct {p0}, Landroid/hardware/Camera;->initiate()V
5699 invoke-static {}, Landroid/os/Looper;->myLooper()Landroid/os/Looper;
5701 move-result-object v0
5703 - if-eqz v0, :cond_30
5704 + if-eqz v0, :cond_35
5706 new-instance v1, Landroid/hardware/Camera$EventHandler;
5708 @@ -159,7 +181,7 @@
5710 iput-object v1, p0, Landroid/hardware/Camera;->mEventHandler:Landroid/hardware/Camera$EventHandler;
5712 - :goto_27
5713 + :goto_2c
5714 new-instance v1, Ljava/lang/ref/WeakReference;
5716 invoke-direct {v1, p0}, Ljava/lang/ref/WeakReference;-><init>(Ljava/lang/Object;)V
5717 @@ -168,12 +190,12 @@
5719 return-void
5721 - :cond_30
5722 + :cond_35
5723 invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper;
5725 move-result-object v0
5727 - if-eqz v0, :cond_3e
5728 + if-eqz v0, :cond_43
5730 new-instance v1, Landroid/hardware/Camera$EventHandler;
5732 @@ -181,12 +203,12 @@
5734 iput-object v1, p0, Landroid/hardware/Camera;->mEventHandler:Landroid/hardware/Camera$EventHandler;
5736 - goto :goto_27
5737 + goto :goto_2c
5739 - :cond_3e
5740 + :cond_43
5741 iput-object v2, p0, Landroid/hardware/Camera;->mEventHandler:Landroid/hardware/Camera$EventHandler;
5743 - goto :goto_27
5744 + goto :goto_2c
5745 .end method
5747 .method private final native _addCallbackBuffer([BI)V
5748 @@ -207,122 +229,184 @@
5749 .method private final native _stopPreview()V
5750 .end method
5752 -.method static synthetic access$000(Landroid/hardware/Camera;)Landroid/hardware/Camera$ShutterCallback;
5753 +.method static synthetic access$000(Landroid/hardware/Camera;)Z
5754 .registers 2
5756 - iget-object v0, p0, Landroid/hardware/Camera;->mShutterCallback:Landroid/hardware/Camera$ShutterCallback;
5757 + iget-boolean v0, p0, Landroid/hardware/Camera;->privacyMode:Z
5759 - return-object v0
5760 + return v0
5761 .end method
5763 -.method static synthetic access$100(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5764 +.method static synthetic access$100(Landroid/hardware/Camera;)V
5765 + .registers 1
5767 + invoke-direct {p0}, Landroid/hardware/Camera;->initiate()V
5769 + return-void
5770 +.end method
5772 +.method static synthetic access$1000(Landroid/hardware/Camera;)Landroid/hardware/Camera$PreviewCallback;
5773 .registers 2
5775 - iget-object v0, p0, Landroid/hardware/Camera;->mRawImageCallback:Landroid/hardware/Camera$PictureCallback;
5776 + iget-object v0, p0, Landroid/hardware/Camera;->mPreviewCallback:Landroid/hardware/Camera$PreviewCallback;
5778 return-object v0
5779 .end method
5781 -.method static synthetic access$1000(Landroid/hardware/Camera;)Landroid/hardware/Camera$OnZoomChangeListener;
5782 +.method static synthetic access$1002(Landroid/hardware/Camera;Landroid/hardware/Camera$PreviewCallback;)Landroid/hardware/Camera$PreviewCallback;
5783 .registers 2
5785 - iget-object v0, p0, Landroid/hardware/Camera;->mZoomListener:Landroid/hardware/Camera$OnZoomChangeListener;
5786 + iput-object p1, p0, Landroid/hardware/Camera;->mPreviewCallback:Landroid/hardware/Camera$PreviewCallback;
5788 + return-object p1
5789 +.end method
5791 +.method static synthetic access$1100(Landroid/hardware/Camera;)Z
5792 + .registers 2
5794 + iget-boolean v0, p0, Landroid/hardware/Camera;->mOneShot:Z
5796 + return v0
5797 +.end method
5799 +.method static synthetic access$1200(Landroid/hardware/Camera;)Z
5800 + .registers 2
5802 + iget-boolean v0, p0, Landroid/hardware/Camera;->mWithBuffer:Z
5804 + return v0
5805 +.end method
5807 +.method static synthetic access$1300(Landroid/hardware/Camera;ZZ)V
5808 + .registers 3
5810 + invoke-direct {p0, p1, p2}, Landroid/hardware/Camera;->setHasPreviewCallback(ZZ)V
5812 + return-void
5813 +.end method
5815 +.method static synthetic access$1400(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5816 + .registers 2
5818 + iget-object v0, p0, Landroid/hardware/Camera;->mPostviewCallback:Landroid/hardware/Camera$PictureCallback;
5820 return-object v0
5821 .end method
5823 -.method static synthetic access$1100(Landroid/hardware/Camera;)Landroid/hardware/Camera$FaceDetectionListener;
5824 +.method static synthetic access$1500(Landroid/hardware/Camera;)Ljava/lang/Object;
5825 .registers 2
5827 - iget-object v0, p0, Landroid/hardware/Camera;->mFaceListener:Landroid/hardware/Camera$FaceDetectionListener;
5828 + iget-object v0, p0, Landroid/hardware/Camera;->mAutoFocusCallbackLock:Ljava/lang/Object;
5830 return-object v0
5831 .end method
5833 -.method static synthetic access$1200(Landroid/hardware/Camera;)Landroid/hardware/Camera$ErrorCallback;
5834 +.method static synthetic access$1600(Landroid/hardware/Camera;)Landroid/hardware/Camera$AutoFocusCallback;
5835 .registers 2
5837 - iget-object v0, p0, Landroid/hardware/Camera;->mErrorCallback:Landroid/hardware/Camera$ErrorCallback;
5838 + iget-object v0, p0, Landroid/hardware/Camera;->mAutoFocusCallback:Landroid/hardware/Camera$AutoFocusCallback;
5840 return-object v0
5841 .end method
5843 -.method static synthetic access$1300(Landroid/hardware/Camera;)Landroid/hardware/Camera$AutoFocusMoveCallback;
5844 +.method static synthetic access$1700(Landroid/hardware/Camera;)Landroid/hardware/Camera$OnZoomChangeListener;
5845 .registers 2
5847 - iget-object v0, p0, Landroid/hardware/Camera;->mAutoFocusMoveCallback:Landroid/hardware/Camera$AutoFocusMoveCallback;
5848 + iget-object v0, p0, Landroid/hardware/Camera;->mZoomListener:Landroid/hardware/Camera$OnZoomChangeListener;
5850 return-object v0
5851 .end method
5853 -.method static synthetic access$200(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5854 +.method static synthetic access$1800(Landroid/hardware/Camera;)Landroid/hardware/Camera$FaceDetectionListener;
5855 .registers 2
5857 - iget-object v0, p0, Landroid/hardware/Camera;->mJpegCallback:Landroid/hardware/Camera$PictureCallback;
5858 + iget-object v0, p0, Landroid/hardware/Camera;->mFaceListener:Landroid/hardware/Camera$FaceDetectionListener;
5860 return-object v0
5861 .end method
5863 -.method static synthetic access$300(Landroid/hardware/Camera;)Landroid/hardware/Camera$PreviewCallback;
5864 +.method static synthetic access$1900(Landroid/hardware/Camera;)Landroid/hardware/Camera$ErrorCallback;
5865 .registers 2
5867 - iget-object v0, p0, Landroid/hardware/Camera;->mPreviewCallback:Landroid/hardware/Camera$PreviewCallback;
5868 + iget-object v0, p0, Landroid/hardware/Camera;->mErrorCallback:Landroid/hardware/Camera$ErrorCallback;
5870 return-object v0
5871 .end method
5873 -.method static synthetic access$302(Landroid/hardware/Camera;Landroid/hardware/Camera$PreviewCallback;)Landroid/hardware/Camera$PreviewCallback;
5874 +.method static synthetic access$200(Landroid/hardware/Camera;)[Ljava/lang/String;
5875 .registers 2
5877 - iput-object p1, p0, Landroid/hardware/Camera;->mPreviewCallback:Landroid/hardware/Camera$PreviewCallback;
5878 + invoke-direct {p0}, Landroid/hardware/Camera;->getPackageName()[Ljava/lang/String;
5880 - return-object p1
5881 + move-result-object v0
5883 + return-object v0
5884 .end method
5886 -.method static synthetic access$400(Landroid/hardware/Camera;)Z
5887 +.method static synthetic access$2000(Landroid/hardware/Camera;)Landroid/hardware/Camera$AutoFocusMoveCallback;
5888 .registers 2
5890 - iget-boolean v0, p0, Landroid/hardware/Camera;->mOneShot:Z
5891 + iget-object v0, p0, Landroid/hardware/Camera;->mAutoFocusMoveCallback:Landroid/hardware/Camera$AutoFocusMoveCallback;
5893 - return v0
5894 + return-object v0
5895 .end method
5897 -.method static synthetic access$500(Landroid/hardware/Camera;)Z
5898 +.method static synthetic access$300(Landroid/hardware/Camera;)I
5899 .registers 2
5901 - iget-boolean v0, p0, Landroid/hardware/Camera;->mWithBuffer:Z
5902 + invoke-direct {p0}, Landroid/hardware/Camera;->checkIfPackagesAllowed()I
5904 + move-result v0
5906 return v0
5907 .end method
5909 -.method static synthetic access$600(Landroid/hardware/Camera;ZZ)V
5910 - .registers 3
5911 +.method static synthetic access$400(Landroid/hardware/Camera;Z)V
5912 + .registers 2
5914 - invoke-direct {p0, p1, p2}, Landroid/hardware/Camera;->setHasPreviewCallback(ZZ)V
5915 + invoke-direct {p0, p1}, Landroid/hardware/Camera;->dataAccess(Z)V
5917 return-void
5918 .end method
5920 +.method static synthetic access$500(Landroid/hardware/Camera;)Landroid/privacy/PrivacySettingsManager;
5921 + .registers 2
5923 + iget-object v0, p0, Landroid/hardware/Camera;->pSetMan:Landroid/privacy/PrivacySettingsManager;
5925 + return-object v0
5926 +.end method
5928 +.method static synthetic access$600(Landroid/hardware/Camera;)Landroid/hardware/Camera$ShutterCallback;
5929 + .registers 2
5931 + iget-object v0, p0, Landroid/hardware/Camera;->mShutterCallback:Landroid/hardware/Camera$ShutterCallback;
5933 + return-object v0
5934 +.end method
5936 .method static synthetic access$700(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5937 .registers 2
5939 - iget-object v0, p0, Landroid/hardware/Camera;->mPostviewCallback:Landroid/hardware/Camera$PictureCallback;
5940 + iget-object v0, p0, Landroid/hardware/Camera;->mRawImageCallback:Landroid/hardware/Camera$PictureCallback;
5942 return-object v0
5943 .end method
5945 -.method static synthetic access$800(Landroid/hardware/Camera;)Ljava/lang/Object;
5946 +.method static synthetic access$800(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5947 .registers 2
5949 - iget-object v0, p0, Landroid/hardware/Camera;->mAutoFocusCallbackLock:Ljava/lang/Object;
5950 + iget-object v0, p0, Landroid/hardware/Camera;->mJpegCallback:Landroid/hardware/Camera$PictureCallback;
5952 return-object v0
5953 .end method
5955 -.method static synthetic access$900(Landroid/hardware/Camera;)Landroid/hardware/Camera$AutoFocusCallback;
5956 +.method static synthetic access$900(Landroid/hardware/Camera;)[B
5957 .registers 2
5959 - iget-object v0, p0, Landroid/hardware/Camera;->mAutoFocusCallback:Landroid/hardware/Camera$AutoFocusCallback;
5960 + invoke-direct {p0}, Landroid/hardware/Camera;->getFakeImage()[B
5962 + move-result-object v0
5964 return-object v0
5965 .end method
5966 @@ -368,6 +452,205 @@
5967 return-void
5968 .end method
5970 +.method private checkIfPackagesAllowed()I
5971 + .registers 9
5973 + const/4 v5, -0x3
5975 + :try_start_1
5976 + iget-object v6, p0, Landroid/hardware/Camera;->pSetMan:Landroid/privacy/PrivacySettingsManager;
5978 + if-eqz v6, :cond_41
5980 + const/4 v2, 0x0
5982 + invoke-direct {p0}, Landroid/hardware/Camera;->getPackageName()[Ljava/lang/String;
5984 + move-result-object v3
5986 + invoke-static {}, Landroid/os/Process;->myUid()I
5988 + move-result v4
5990 + if-eqz v3, :cond_2c
5992 + const/4 v1, 0x0
5994 + :goto_11
5995 + array-length v6, v3
5997 + if-ge v1, v6, :cond_2a
5999 + iget-object v6, p0, Landroid/hardware/Camera;->pSetMan:Landroid/privacy/PrivacySettingsManager;
6001 + aget-object v7, v3, v1
6003 + invoke-virtual {v6, v7, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
6005 + move-result-object v2
6007 + if-eqz v2, :cond_26
6009 + invoke-virtual {v2}, Landroid/privacy/PrivacySettings;->getCameraSetting()B
6011 + move-result v6
6013 + if-eqz v6, :cond_26
6015 + const/4 v5, -0x2
6017 + :goto_25
6018 + return v5
6020 + :cond_26
6021 + const/4 v2, 0x0
6023 + add-int/lit8 v1, v1, 0x1
6025 + goto :goto_11
6027 + :cond_2a
6028 + const/4 v5, -0x1
6030 + goto :goto_25
6032 + :cond_2c
6033 + const-string v6, "PM,Camera"
6035 + const-string/jumbo v7, "return GOT_ERROR, because package_names are NULL"
6037 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
6038 + :try_end_34
6039 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_34} :catch_35
6041 + goto :goto_25
6043 + :catch_35
6044 + move-exception v0
6046 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
6048 + const-string v6, "PM,Camera"
6050 + const-string v7, "Got exception in checkIfPackagesAllowed"
6052 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
6054 + goto :goto_25
6056 + :cond_41
6057 + :try_start_41
6058 + const-string v6, "PM,Camera"
6060 + const-string/jumbo v7, "return GOT_ERROR, because pSetMan is NULL"
6062 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
6063 + :try_end_49
6064 + .catch Ljava/lang/Exception; {:try_start_41 .. :try_end_49} :catch_35
6066 + goto :goto_25
6067 +.end method
6069 +.method private dataAccess(Z)V
6070 + .registers 7
6072 + invoke-direct {p0}, Landroid/hardware/Camera;->getPackageName()[Ljava/lang/String;
6074 + move-result-object v1
6076 + if-eqz p1, :cond_2f
6078 + if-eqz v1, :cond_2f
6080 + const/4 v0, 0x0
6082 + :goto_9
6083 + array-length v2, v1
6085 + if-ge v0, v2, :cond_58
6087 + const-string v2, "PM,Camera"
6089 + new-instance v3, Ljava/lang/StringBuilder;
6091 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
6093 + const-string v4, "Allowed Package: -"
6095 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
6097 + move-result-object v3
6099 + aget-object v4, v1, v0
6101 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
6103 + move-result-object v3
6105 + const-string v4, "- accessing camera."
6107 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
6109 + move-result-object v3
6111 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
6113 + move-result-object v3
6115 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
6117 + add-int/lit8 v0, v0, 0x1
6119 + goto :goto_9
6121 + :cond_2f
6122 + if-eqz v1, :cond_58
6124 + const/4 v0, 0x0
6126 + :goto_32
6127 + array-length v2, v1
6129 + if-ge v0, v2, :cond_58
6131 + const-string v2, "PM,Camera"
6133 + new-instance v3, Ljava/lang/StringBuilder;
6135 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
6137 + const-string v4, "Blocked Package: -"
6139 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
6141 + move-result-object v3
6143 + aget-object v4, v1, v0
6145 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
6147 + move-result-object v3
6149 + const-string v4, "- accessing camera."
6151 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
6153 + move-result-object v3
6155 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
6157 + move-result-object v3
6159 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
6161 + add-int/lit8 v0, v0, 0x1
6163 + goto :goto_32
6165 + :cond_58
6166 + return-void
6167 +.end method
6169 .method private native enableFocusMoveCallback(I)V
6170 .end method
6172 @@ -433,9 +716,193 @@
6173 return-object v1
6174 .end method
6176 +.method private getFakeImage()[B
6177 + .registers 9
6179 + :try_start_0
6180 + const-string v2, "/system/media/PDroid.jpeg"
6182 + new-instance v5, Ljava/io/File;
6184 + invoke-direct {v5, v2}, Ljava/io/File;-><init>(Ljava/lang/String;)V
6186 + const/4 v3, 0x0
6188 + new-instance v3, Ljava/io/FileInputStream;
6190 + invoke-direct {v3, v5}, Ljava/io/FileInputStream;-><init>(Ljava/io/File;)V
6192 + invoke-static {v3}, Landroid/graphics/BitmapFactory;->decodeStream(Ljava/io/InputStream;)Landroid/graphics/Bitmap;
6194 + move-result-object v0
6196 + new-instance v4, Ljava/io/ByteArrayOutputStream;
6198 + invoke-direct {v4}, Ljava/io/ByteArrayOutputStream;-><init>()V
6200 + sget-object v6, Landroid/graphics/Bitmap$CompressFormat;->JPEG:Landroid/graphics/Bitmap$CompressFormat;
6202 + const/16 v7, 0x64
6204 + invoke-virtual {v0, v6, v7, v4}, Landroid/graphics/Bitmap;->compress(Landroid/graphics/Bitmap$CompressFormat;ILjava/io/OutputStream;)Z
6206 + invoke-virtual {v4}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B
6207 + :try_end_20
6208 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_20} :catch_22
6210 + move-result-object v6
6212 + :goto_21
6213 + return-object v6
6215 + :catch_22
6216 + move-exception v1
6218 + const-string v6, "PM,Camera"
6220 + const-string/jumbo v7, "something went wrong with getting the picture!"
6222 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
6224 + invoke-virtual {v1}, Ljava/lang/Exception;->printStackTrace()V
6226 + const/4 v6, 0x0
6228 + goto :goto_21
6229 +.end method
6231 .method public static native getNumberOfCameras()I
6232 .end method
6234 +.method private getPackageName()[Ljava/lang/String;
6235 + .registers 6
6237 + :try_start_0
6238 + iget-object v3, p0, Landroid/hardware/Camera;->mPm:Landroid/content/pm/IPackageManager;
6240 + if-eqz v3, :cond_f
6242 + invoke-static {}, Landroid/os/Process;->myUid()I
6244 + move-result v2
6246 + iget-object v3, p0, Landroid/hardware/Camera;->mPm:Landroid/content/pm/IPackageManager;
6248 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
6250 + move-result-object v1
6252 + :goto_e
6253 + return-object v1
6255 + :cond_f
6256 + const-string/jumbo v3, "package"
6258 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
6260 + move-result-object v3
6262 + invoke-static {v3}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
6264 + move-result-object v3
6266 + iput-object v3, p0, Landroid/hardware/Camera;->mPm:Landroid/content/pm/IPackageManager;
6268 + invoke-static {}, Landroid/os/Process;->myUid()I
6270 + move-result v2
6272 + iget-object v3, p0, Landroid/hardware/Camera;->mPm:Landroid/content/pm/IPackageManager;
6274 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
6275 + :try_end_25
6276 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_25} :catch_27
6278 + move-result-object v1
6280 + goto :goto_e
6282 + :catch_27
6283 + move-exception v0
6285 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
6287 + const-string v3, "PM,Camera"
6289 + const-string/jumbo v4, "something went wrong with getting package name"
6291 + invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
6293 + const/4 v1, 0x0
6295 + goto :goto_e
6296 +.end method
6298 +.method private initiate()V
6299 + .registers 5
6301 + const/4 v1, 0x0
6303 + :try_start_1
6304 + iput-object v1, p0, Landroid/hardware/Camera;->context:Landroid/content/Context;
6306 + new-instance v1, Landroid/privacy/PrivacySettingsManager;
6308 + iget-object v2, p0, Landroid/hardware/Camera;->context:Landroid/content/Context;
6310 + const-string/jumbo v3, "privacy"
6312 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
6314 + move-result-object v3
6316 + invoke-static {v3}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
6318 + move-result-object v3
6320 + invoke-direct {v1, v2, v3}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
6322 + iput-object v1, p0, Landroid/hardware/Camera;->pSetMan:Landroid/privacy/PrivacySettingsManager;
6324 + const-string/jumbo v1, "package"
6326 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
6328 + move-result-object v1
6330 + invoke-static {v1}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
6332 + move-result-object v1
6334 + iput-object v1, p0, Landroid/hardware/Camera;->mPm:Landroid/content/pm/IPackageManager;
6336 + const/4 v1, 0x1
6338 + iput-boolean v1, p0, Landroid/hardware/Camera;->privacyMode:Z
6339 + :try_end_27
6340 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_27} :catch_28
6342 + :goto_27
6343 + return-void
6345 + :catch_28
6346 + move-exception v0
6348 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
6350 + const-string v1, "PM,Camera"
6352 + const-string v2, "Something went wrong with initalize variables"
6354 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
6356 + const/4 v1, 0x0
6358 + iput-boolean v1, p0, Landroid/hardware/Camera;->privacyMode:Z
6360 + goto :goto_27
6361 +.end method
6363 .method private final native native_autoFocus()V
6364 .end method
6366 @@ -1018,7 +1485,7 @@
6367 .end method
6369 .method public final takePicture(Landroid/hardware/Camera$ShutterCallback;Landroid/hardware/Camera$PictureCallback;Landroid/hardware/Camera$PictureCallback;Landroid/hardware/Camera$PictureCallback;)V
6370 - .registers 7
6371 + .registers 8
6373 iput-object p1, p0, Landroid/hardware/Camera;->mShutterCallback:Landroid/hardware/Camera$ShutterCallback;
6375 @@ -1028,36 +1495,62 @@
6377 iput-object p4, p0, Landroid/hardware/Camera;->mJpegCallback:Landroid/hardware/Camera$PictureCallback;
6379 + iget-boolean v1, p0, Landroid/hardware/Camera;->privacyMode:Z
6381 + if-nez v1, :cond_f
6383 + invoke-direct {p0}, Landroid/hardware/Camera;->initiate()V
6385 + :cond_f
6386 + invoke-direct {p0}, Landroid/hardware/Camera;->checkIfPackagesAllowed()I
6388 + move-result v1
6390 + const/4 v2, -0x2
6392 + if-ne v1, v2, :cond_20
6394 + const/4 v1, 0x0
6396 + iput-object v1, p0, Landroid/hardware/Camera;->mRawImageCallback:Landroid/hardware/Camera$PictureCallback;
6398 + const-string v1, "PM,Camera"
6400 + const-string v2, "blocked rawImageCallback -> it will never be called!"
6402 + invoke-static {v1, v2}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
6404 + :cond_20
6405 const/4 v0, 0x0
6407 iget-object v1, p0, Landroid/hardware/Camera;->mShutterCallback:Landroid/hardware/Camera$ShutterCallback;
6409 - if-eqz v1, :cond_f
6410 + if-eqz v1, :cond_27
6412 or-int/lit8 v0, v0, 0x2
6414 - :cond_f
6415 + :cond_27
6416 iget-object v1, p0, Landroid/hardware/Camera;->mRawImageCallback:Landroid/hardware/Camera$PictureCallback;
6418 - if-eqz v1, :cond_15
6419 + if-eqz v1, :cond_2d
6421 or-int/lit16 v0, v0, 0x80
6423 - :cond_15
6424 + :cond_2d
6425 iget-object v1, p0, Landroid/hardware/Camera;->mPostviewCallback:Landroid/hardware/Camera$PictureCallback;
6427 - if-eqz v1, :cond_1b
6428 + if-eqz v1, :cond_33
6430 or-int/lit8 v0, v0, 0x40
6432 - :cond_1b
6433 + :cond_33
6434 iget-object v1, p0, Landroid/hardware/Camera;->mJpegCallback:Landroid/hardware/Camera$PictureCallback;
6436 - if-eqz v1, :cond_21
6437 + if-eqz v1, :cond_39
6439 or-int/lit16 v0, v0, 0x100
6441 - :cond_21
6442 + :cond_39
6443 invoke-direct {p0, v0}, Landroid/hardware/Camera;->native_takePicture(I)V
6445 const/4 v1, 0x0
6446 diff -Npru stock-framework/smali/android/media/AudioRecord.smali opd-framework/smali/android/media/AudioRecord.smali
6447 --- stock-framework/smali/android/media/AudioRecord.smali 2013-01-08 23:29:03.624089327 -0600
6448 +++ opd-framework/smali/android/media/AudioRecord.smali 2013-01-08 23:29:42.816283671 -0600
6449 @@ -29,10 +29,18 @@
6451 .field public static final ERROR_INVALID_OPERATION:I = -0x3
6453 +.field private static final GOT_ERROR:I = -0x3
6455 +.field private static final IS_ALLOWED:I = -0x1
6457 +.field private static final IS_NOT_ALLOWED:I = -0x2
6459 .field private static final NATIVE_EVENT_MARKER:I = 0x2
6461 .field private static final NATIVE_EVENT_NEW_POS:I = 0x3
6463 +.field private static final PRIVACY_TAG:Ljava/lang/String; = "PM,AudioRecord"
6465 .field public static final RECORDSTATE_RECORDING:I = 0x3
6467 .field public static final RECORDSTATE_STOPPED:I = 0x1
6468 @@ -47,6 +55,8 @@
6471 # instance fields
6472 +.field private context:Landroid/content/Context;
6474 .field private mAudioFormat:I
6476 .field private mChannelConfiguration:I
6477 @@ -65,6 +75,8 @@
6479 .field private mNativeRecorderInJavaObj:I
6481 +.field private mPm:Landroid/content/pm/IPackageManager;
6483 .field private mPositionListener:Landroid/media/AudioRecord$OnRecordPositionUpdateListener;
6485 .field private final mPositionListenerLock:Ljava/lang/Object;
6486 @@ -81,6 +93,10 @@
6488 .field private mState:I
6490 +.field private pSetMan:Landroid/privacy/PrivacySettingsManager;
6492 +.field private privacyMode:Z
6495 # direct methods
6496 .method public constructor <init>(IIIII)V
6497 @@ -159,6 +175,10 @@
6499 const/4 v0, 0x0
6501 + iput-boolean v0, p0, Landroid/media/AudioRecord;->privacyMode:Z
6503 + const/4 v0, 0x0
6505 iput v0, p0, Landroid/media/AudioRecord;->mState:I
6507 const/4 v0, 0x1
6508 @@ -171,7 +191,7 @@
6510 iput-object v0, p0, Landroid/media/AudioRecord;->mInitializationLooper:Landroid/os/Looper;
6512 - if-nez v0, :cond_4f
6513 + if-nez v0, :cond_52
6515 invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper;
6517 @@ -179,7 +199,7 @@
6519 iput-object v0, p0, Landroid/media/AudioRecord;->mInitializationLooper:Landroid/os/Looper;
6521 - :cond_4f
6522 + :cond_52
6523 invoke-direct {p0, p1, p2, p3, p4}, Landroid/media/AudioRecord;->audioParamCheck(IIII)V
6525 invoke-direct {p0, p5}, Landroid/media/AudioRecord;->audioBuffSizeCheck(I)V
6526 @@ -214,7 +234,7 @@
6528 move-result v8
6530 - if-eqz v8, :cond_8f
6531 + if-eqz v8, :cond_92
6533 new-instance v0, Ljava/lang/StringBuilder;
6535 @@ -242,10 +262,12 @@
6537 invoke-static {v0}, Landroid/media/AudioRecord;->loge(Ljava/lang/String;)V
6539 - :goto_8e
6540 + :goto_91
6541 return-void
6543 - :cond_8f
6544 + :cond_92
6545 + invoke-direct {p0}, Landroid/media/AudioRecord;->initiate()V
6547 const/4 v0, 0x0
6549 aget v0, v7, v0
6550 @@ -256,7 +278,7 @@
6552 iput v0, p0, Landroid/media/AudioRecord;->mState:I
6554 - goto :goto_8e
6555 + goto :goto_91
6556 .end method
6558 .method static synthetic access$000(Landroid/media/AudioRecord;)Ljava/lang/Object;
6559 @@ -459,6 +481,205 @@
6560 .end packed-switch
6561 .end method
6563 +.method private checkIfPackagesAllowed()I
6564 + .registers 9
6566 + const/4 v5, -0x3
6568 + :try_start_1
6569 + iget-object v6, p0, Landroid/media/AudioRecord;->pSetMan:Landroid/privacy/PrivacySettingsManager;
6571 + if-eqz v6, :cond_41
6573 + const/4 v2, 0x0
6575 + invoke-direct {p0}, Landroid/media/AudioRecord;->getPackageName()[Ljava/lang/String;
6577 + move-result-object v3
6579 + invoke-static {}, Landroid/os/Process;->myUid()I
6581 + move-result v4
6583 + if-eqz v3, :cond_2c
6585 + const/4 v1, 0x0
6587 + :goto_11
6588 + array-length v6, v3
6590 + if-ge v1, v6, :cond_2a
6592 + iget-object v6, p0, Landroid/media/AudioRecord;->pSetMan:Landroid/privacy/PrivacySettingsManager;
6594 + aget-object v7, v3, v1
6596 + invoke-virtual {v6, v7, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
6598 + move-result-object v2
6600 + if-eqz v2, :cond_26
6602 + invoke-virtual {v2}, Landroid/privacy/PrivacySettings;->getRecordAudioSetting()B
6604 + move-result v6
6606 + if-eqz v6, :cond_26
6608 + const/4 v5, -0x2
6610 + :goto_25
6611 + return v5
6613 + :cond_26
6614 + const/4 v2, 0x0
6616 + add-int/lit8 v1, v1, 0x1
6618 + goto :goto_11
6620 + :cond_2a
6621 + const/4 v5, -0x1
6623 + goto :goto_25
6625 + :cond_2c
6626 + const-string v6, "PM,AudioRecord"
6628 + const-string/jumbo v7, "return GOT_ERROR, because package_names are NULL"
6630 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
6631 + :try_end_34
6632 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_34} :catch_35
6634 + goto :goto_25
6636 + :catch_35
6637 + move-exception v0
6639 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
6641 + const-string v6, "PM,AudioRecord"
6643 + const-string v7, "Got exception in checkIfPackagesAllowed"
6645 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
6647 + goto :goto_25
6649 + :cond_41
6650 + :try_start_41
6651 + const-string v6, "PM,AudioRecord"
6653 + const-string/jumbo v7, "return GOT_ERROR, because pSetMan is NULL"
6655 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
6656 + :try_end_49
6657 + .catch Ljava/lang/Exception; {:try_start_41 .. :try_end_49} :catch_35
6659 + goto :goto_25
6660 +.end method
6662 +.method private dataAccess(Z)V
6663 + .registers 7
6665 + invoke-direct {p0}, Landroid/media/AudioRecord;->getPackageName()[Ljava/lang/String;
6667 + move-result-object v1
6669 + if-eqz p1, :cond_2f
6671 + if-eqz v1, :cond_2f
6673 + const/4 v0, 0x0
6675 + :goto_9
6676 + array-length v2, v1
6678 + if-ge v0, v2, :cond_58
6680 + const-string v2, "PM,AudioRecord"
6682 + new-instance v3, Ljava/lang/StringBuilder;
6684 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
6686 + const-string v4, "Allowed Package: -"
6688 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
6690 + move-result-object v3
6692 + aget-object v4, v1, v0
6694 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
6696 + move-result-object v3
6698 + const-string v4, "- accessing microphone."
6700 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
6702 + move-result-object v3
6704 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
6706 + move-result-object v3
6708 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
6710 + add-int/lit8 v0, v0, 0x1
6712 + goto :goto_9
6714 + :cond_2f
6715 + if-eqz v1, :cond_58
6717 + const/4 v0, 0x0
6719 + :goto_32
6720 + array-length v2, v1
6722 + if-ge v0, v2, :cond_58
6724 + const-string v2, "PM,AudioRecord"
6726 + new-instance v3, Ljava/lang/StringBuilder;
6728 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
6730 + const-string v4, "Blocked Package: -"
6732 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
6734 + move-result-object v3
6736 + aget-object v4, v1, v0
6738 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
6740 + move-result-object v3
6742 + const-string v4, "- accessing microphone."
6744 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
6746 + move-result-object v3
6748 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
6750 + move-result-object v3
6752 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
6754 + add-int/lit8 v0, v0, 0x1
6756 + goto :goto_32
6758 + :cond_58
6759 + return-void
6760 +.end method
6762 .method public static getMinBufferSize(III)I
6763 .registers 8
6765 @@ -529,6 +750,135 @@
6766 .end sparse-switch
6767 .end method
6769 +.method private getPackageName()[Ljava/lang/String;
6770 + .registers 6
6772 + :try_start_0
6773 + iget-object v3, p0, Landroid/media/AudioRecord;->mPm:Landroid/content/pm/IPackageManager;
6775 + if-eqz v3, :cond_f
6777 + invoke-static {}, Landroid/os/Process;->myUid()I
6779 + move-result v2
6781 + iget-object v3, p0, Landroid/media/AudioRecord;->mPm:Landroid/content/pm/IPackageManager;
6783 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
6785 + move-result-object v1
6787 + :goto_e
6788 + return-object v1
6790 + :cond_f
6791 + const-string/jumbo v3, "package"
6793 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
6795 + move-result-object v3
6797 + invoke-static {v3}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
6799 + move-result-object v3
6801 + iput-object v3, p0, Landroid/media/AudioRecord;->mPm:Landroid/content/pm/IPackageManager;
6803 + invoke-static {}, Landroid/os/Process;->myUid()I
6805 + move-result v2
6807 + iget-object v3, p0, Landroid/media/AudioRecord;->mPm:Landroid/content/pm/IPackageManager;
6809 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
6810 + :try_end_25
6811 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_25} :catch_27
6813 + move-result-object v1
6815 + goto :goto_e
6817 + :catch_27
6818 + move-exception v0
6820 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
6822 + const-string v3, "PM,AudioRecord"
6824 + const-string/jumbo v4, "something went wrong with getting package name"
6826 + invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
6828 + const/4 v1, 0x0
6830 + goto :goto_e
6831 +.end method
6833 +.method private initiate()V
6834 + .registers 5
6836 + const/4 v1, 0x0
6838 + :try_start_1
6839 + iput-object v1, p0, Landroid/media/AudioRecord;->context:Landroid/content/Context;
6841 + new-instance v1, Landroid/privacy/PrivacySettingsManager;
6843 + iget-object v2, p0, Landroid/media/AudioRecord;->context:Landroid/content/Context;
6845 + const-string/jumbo v3, "privacy"
6847 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
6849 + move-result-object v3
6851 + invoke-static {v3}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
6853 + move-result-object v3
6855 + invoke-direct {v1, v2, v3}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
6857 + iput-object v1, p0, Landroid/media/AudioRecord;->pSetMan:Landroid/privacy/PrivacySettingsManager;
6859 + const-string/jumbo v1, "package"
6861 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
6863 + move-result-object v1
6865 + invoke-static {v1}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
6867 + move-result-object v1
6869 + iput-object v1, p0, Landroid/media/AudioRecord;->mPm:Landroid/content/pm/IPackageManager;
6871 + const/4 v1, 0x1
6873 + iput-boolean v1, p0, Landroid/media/AudioRecord;->privacyMode:Z
6874 + :try_end_27
6875 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_27} :catch_28
6877 + :goto_27
6878 + return-void
6880 + :catch_28
6881 + move-exception v0
6883 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
6885 + const-string v1, "PM,AudioRecord"
6887 + const-string v2, "Something went wrong with initalize variables"
6889 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
6891 + const/4 v1, 0x0
6893 + iput-boolean v1, p0, Landroid/media/AudioRecord;->privacyMode:Z
6895 + goto :goto_27
6896 +.end method
6898 .method private static logd(Ljava/lang/String;)V
6899 .registers 4
6901 @@ -979,19 +1329,68 @@
6902 .end method
6904 .method public startRecording()V
6905 - .registers 4
6906 + .registers 11
6907 .annotation system Ldalvik/annotation/Throws;
6908 value = {
6909 Ljava/lang/IllegalStateException;
6911 .end annotation
6913 + const/4 v5, 0x0
6915 + const/4 v3, 0x1
6917 + const/4 v2, 0x0
6919 + iget-boolean v0, p0, Landroid/media/AudioRecord;->privacyMode:Z
6921 + if-nez v0, :cond_a
6923 + invoke-direct {p0}, Landroid/media/AudioRecord;->initiate()V
6925 + :cond_a
6926 iget v0, p0, Landroid/media/AudioRecord;->mState:I
6928 - const/4 v1, 0x1
6929 + if-ne v0, v3, :cond_15
6931 + invoke-direct {p0}, Landroid/media/AudioRecord;->checkIfPackagesAllowed()I
6933 + move-result v0
6935 + const/4 v1, -0x2
6937 + if-ne v0, v1, :cond_3d
6939 - if-eq v0, v1, :cond_e
6940 + :cond_15
6941 + invoke-direct {p0, v2}, Landroid/media/AudioRecord;->dataAccess(Z)V
6943 + invoke-direct {p0}, Landroid/media/AudioRecord;->getPackageName()[Ljava/lang/String;
6945 + move-result-object v7
6947 + if-eqz v7, :cond_34
6949 + iget-object v0, p0, Landroid/media/AudioRecord;->pSetMan:Landroid/privacy/PrivacySettingsManager;
6951 + aget-object v1, v7, v2
6953 + const-string/jumbo v4, "recordAudio"
6955 + iget-object v6, p0, Landroid/media/AudioRecord;->pSetMan:Landroid/privacy/PrivacySettingsManager;
6957 + aget-object v8, v7, v2
6959 + invoke-static {}, Landroid/os/Process;->myUid()I
6961 + move-result v9
6963 + invoke-virtual {v6, v8, v9}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
6965 + move-result-object v6
6967 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
6969 + :cond_34
6970 new-instance v0, Ljava/lang/IllegalStateException;
6972 const-string/jumbo v1, "startRecording() called on an uninitialized AudioRecord."
6973 @@ -1000,7 +1399,38 @@
6975 throw v0
6977 - :cond_e
6978 + :cond_3d
6979 + invoke-direct {p0, v3}, Landroid/media/AudioRecord;->dataAccess(Z)V
6981 + invoke-direct {p0}, Landroid/media/AudioRecord;->getPackageName()[Ljava/lang/String;
6983 + move-result-object v7
6985 + if-eqz v7, :cond_5d
6987 + iget-object v0, p0, Landroid/media/AudioRecord;->pSetMan:Landroid/privacy/PrivacySettingsManager;
6989 + aget-object v1, v7, v2
6991 + const-string/jumbo v4, "recordAudio"
6993 + iget-object v3, p0, Landroid/media/AudioRecord;->pSetMan:Landroid/privacy/PrivacySettingsManager;
6995 + aget-object v6, v7, v2
6997 + invoke-static {}, Landroid/os/Process;->myUid()I
6999 + move-result v8
7001 + invoke-virtual {v3, v6, v8}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
7003 + move-result-object v6
7005 + move v3, v2
7007 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
7009 + :cond_5d
7010 iget-object v1, p0, Landroid/media/AudioRecord;->mRecordingStateLock:Ljava/lang/Object;
7012 monitor-enter v1
7013 @@ -1009,28 +1439,28 @@
7015 const/4 v2, 0x0
7017 - :try_start_13
7018 + :try_start_62
7019 invoke-direct {p0, v0, v2}, Landroid/media/AudioRecord;->native_start(II)I
7021 move-result v0
7023 - if-nez v0, :cond_1c
7024 + if-nez v0, :cond_6b
7026 const/4 v0, 0x3
7028 iput v0, p0, Landroid/media/AudioRecord;->mRecordingState:I
7030 - :cond_1c
7031 + :cond_6b
7032 monitor-exit v1
7034 return-void
7036 - :catchall_1e
7037 + :catchall_6d
7038 move-exception v0
7040 monitor-exit v1
7041 - :try_end_20
7042 - .catchall {:try_start_13 .. :try_end_20} :catchall_1e
7043 + :try_end_6f
7044 + .catchall {:try_start_62 .. :try_end_6f} :catchall_6d
7046 throw v0
7047 .end method
7048 diff -Npru stock-framework/smali/android/media/MediaRecorder$PrivacyRunner.smali opd-framework/smali/android/media/MediaRecorder$PrivacyRunner.smali
7049 --- stock-framework/smali/android/media/MediaRecorder$PrivacyRunner.smali 1969-12-31 18:00:00.000000000 -0600
7050 +++ opd-framework/smali/android/media/MediaRecorder$PrivacyRunner.smali 2013-01-08 23:29:42.912284147 -0600
7051 @@ -0,0 +1,215 @@
7052 +.class Landroid/media/MediaRecorder$PrivacyRunner;
7053 +.super Ljava/lang/Thread;
7054 +.source "MediaRecorder.java"
7057 +# annotations
7058 +.annotation system Ldalvik/annotation/EnclosingClass;
7059 + value = Landroid/media/MediaRecorder;
7060 +.end annotation
7062 +.annotation system Ldalvik/annotation/InnerClass;
7063 + accessFlags = 0x2
7064 + name = "PrivacyRunner"
7065 +.end annotation
7068 +# static fields
7069 +.field private static final OFFSET_DELAY:J = 0x9c4L
7072 +# instance fields
7073 +.field private delay:J
7075 +.field final synthetic this$0:Landroid/media/MediaRecorder;
7078 +# direct methods
7079 +.method public constructor <init>(Landroid/media/MediaRecorder;)V
7080 + .registers 4
7082 + iput-object p1, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7084 + invoke-direct {p0}, Ljava/lang/Thread;-><init>()V
7086 + const-wide/16 v0, 0x9c4
7088 + iput-wide v0, p0, Landroid/media/MediaRecorder$PrivacyRunner;->delay:J
7090 + return-void
7091 +.end method
7094 +# virtual methods
7095 +.method public getDelay()J
7096 + .registers 3
7098 + iget-wide v0, p0, Landroid/media/MediaRecorder$PrivacyRunner;->delay:J
7100 + return-wide v0
7101 +.end method
7103 +.method public run()V
7104 + .registers 5
7106 + :try_start_0
7107 + iget-wide v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->delay:J
7109 + invoke-static {v2, v3}, Ljava/lang/Thread;->sleep(J)V
7111 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7113 + #calls: Landroid/media/MediaRecorder;->privacyStop()V
7114 + invoke-static {v2}, Landroid/media/MediaRecorder;->access$300(Landroid/media/MediaRecorder;)V
7116 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7118 + #getter for: Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
7119 + invoke-static {v2}, Landroid/media/MediaRecorder;->access$400(Landroid/media/MediaRecorder;)Ljava/lang/String;
7121 + move-result-object v2
7123 + if-eqz v2, :cond_2f
7125 + new-instance v1, Ljava/io/File;
7127 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7129 + #getter for: Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
7130 + invoke-static {v2}, Landroid/media/MediaRecorder;->access$400(Landroid/media/MediaRecorder;)Ljava/lang/String;
7132 + move-result-object v2
7134 + invoke-direct {v1, v2}, Ljava/io/File;-><init>(Ljava/lang/String;)V
7136 + invoke-virtual {v1}, Ljava/io/File;->delete()Z
7138 + move-result v2
7140 + if-eqz v2, :cond_29
7142 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7144 + const/4 v3, 0x1
7146 + #setter for: Landroid/media/MediaRecorder;->deletedFile:Z
7147 + invoke-static {v2, v3}, Landroid/media/MediaRecorder;->access$502(Landroid/media/MediaRecorder;Z)Z
7148 + :try_end_29
7149 + .catchall {:try_start_0 .. :try_end_29} :catchall_73
7150 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_29} :catch_57
7152 + :cond_29
7153 + :goto_29
7154 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7156 + :goto_2b
7157 + #calls: Landroid/media/MediaRecorder;->privacyStop()V
7158 + invoke-static {v2}, Landroid/media/MediaRecorder;->access$300(Landroid/media/MediaRecorder;)V
7160 + return-void
7162 + :cond_2f
7163 + :try_start_2f
7164 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7166 + #getter for: Landroid/media/MediaRecorder;->mFd:Ljava/io/FileDescriptor;
7167 + invoke-static {v2}, Landroid/media/MediaRecorder;->access$600(Landroid/media/MediaRecorder;)Ljava/io/FileDescriptor;
7169 + move-result-object v2
7171 + if-eqz v2, :cond_65
7173 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7175 + #getter for: Landroid/media/MediaRecorder;->pFileDescriptorPath:Ljava/lang/String;
7176 + invoke-static {v2}, Landroid/media/MediaRecorder;->access$700(Landroid/media/MediaRecorder;)Ljava/lang/String;
7178 + move-result-object v2
7180 + if-eqz v2, :cond_65
7182 + new-instance v1, Ljava/io/File;
7184 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7186 + #getter for: Landroid/media/MediaRecorder;->pFileDescriptorPath:Ljava/lang/String;
7187 + invoke-static {v2}, Landroid/media/MediaRecorder;->access$700(Landroid/media/MediaRecorder;)Ljava/lang/String;
7189 + move-result-object v2
7191 + invoke-direct {v1, v2}, Ljava/io/File;-><init>(Ljava/lang/String;)V
7193 + invoke-virtual {v1}, Ljava/io/File;->delete()Z
7195 + move-result v2
7197 + if-eqz v2, :cond_29
7199 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7201 + const/4 v3, 0x1
7203 + #setter for: Landroid/media/MediaRecorder;->deletedFile:Z
7204 + invoke-static {v2, v3}, Landroid/media/MediaRecorder;->access$502(Landroid/media/MediaRecorder;Z)Z
7205 + :try_end_56
7206 + .catchall {:try_start_2f .. :try_end_56} :catchall_73
7207 + .catch Ljava/lang/Exception; {:try_start_2f .. :try_end_56} :catch_57
7209 + goto :goto_29
7211 + :catch_57
7212 + move-exception v0
7214 + :try_start_58
7215 + const-string v2, "PM,MediaRecorder"
7217 + const-string v3, "Something went wrong while waiting for cancel the stream!"
7219 + invoke-static {v2, v3}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
7221 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
7222 + :try_end_62
7223 + .catchall {:try_start_58 .. :try_end_62} :catchall_73
7225 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7227 + goto :goto_2b
7229 + :cond_65
7230 + :try_start_65
7231 + const-string v2, "PM,MediaRecorder"
7233 + const-string v3, "Can\'t delete temporary File, because all is null?! It could be that we only want to record audio?!"
7235 + invoke-static {v2, v3}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
7237 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7239 + const/4 v3, 0x0
7241 + #setter for: Landroid/media/MediaRecorder;->deletedFile:Z
7242 + invoke-static {v2, v3}, Landroid/media/MediaRecorder;->access$502(Landroid/media/MediaRecorder;Z)Z
7243 + :try_end_72
7244 + .catchall {:try_start_65 .. :try_end_72} :catchall_73
7245 + .catch Ljava/lang/Exception; {:try_start_65 .. :try_end_72} :catch_57
7247 + goto :goto_29
7249 + :catchall_73
7250 + move-exception v2
7252 + iget-object v3, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7254 + #calls: Landroid/media/MediaRecorder;->privacyStop()V
7255 + invoke-static {v3}, Landroid/media/MediaRecorder;->access$300(Landroid/media/MediaRecorder;)V
7257 + throw v2
7258 +.end method
7260 +.method public setDelay(J)V
7261 + .registers 3
7263 + iput-wide p1, p0, Landroid/media/MediaRecorder$PrivacyRunner;->delay:J
7265 + return-void
7266 +.end method
7267 diff -Npru stock-framework/smali/android/media/MediaRecorder.smali opd-framework/smali/android/media/MediaRecorder.smali
7268 --- stock-framework/smali/android/media/MediaRecorder.smali 2013-01-08 23:29:03.824090327 -0600
7269 +++ opd-framework/smali/android/media/MediaRecorder.smali 2013-01-08 23:29:42.916284168 -0600
7270 @@ -6,6 +6,7 @@
7271 # annotations
7272 .annotation system Ldalvik/annotation/MemberClasses;
7273 value = {
7274 + Landroid/media/MediaRecorder$PrivacyRunner;,
7275 Landroid/media/MediaRecorder$EventHandler;,
7276 Landroid/media/MediaRecorder$OnInfoListener;,
7277 Landroid/media/MediaRecorder$OnErrorListener;,
7278 @@ -19,6 +20,14 @@
7281 # static fields
7282 +.field private static final BOTH_DATA_ACCESS:I = 0xb
7284 +.field private static final GOT_ERROR:I = -0x3
7286 +.field private static final IS_ALLOWED:I = -0x1
7288 +.field private static final IS_NOT_ALLOWED:I = -0x2
7290 .field public static final MEDIA_ERROR_SERVER_DIED:I = 0x64
7292 .field public static final MEDIA_RECORDER_ERROR_UNKNOWN:I = 0x1
7293 @@ -53,10 +62,30 @@
7295 .field public static final MEDIA_RECORDER_TRACK_INTER_CHUNK_TIME_MS:I = 0x3ee
7297 +.field private static final MIC_DATA_ACCESS:I = 0xa
7299 +.field private static final MODE_RECORD_AUDIO:I = 0x2
7301 +.field private static final MODE_RECORD_BOTH:I = 0x3
7303 +.field private static final PRIVACY_PATH_DEF:Ljava/lang/String; = "/data/data/"
7305 +.field private static final PRIVACY_TAG:Ljava/lang/String; = "PM,MediaRecorder"
7307 +.field private static final STATE_RECORD_AUDIO:I = 0x0
7309 +.field private static final STATE_RECORD_BOTH:I = 0x1
7311 .field private static final TAG:Ljava/lang/String; = "MediaRecorder"
7314 # instance fields
7315 +.field private ACTUAL_STATE:I
7317 +.field private context:Landroid/content/Context;
7319 +.field private deletedFile:Z
7321 .field private mEventHandler:Landroid/media/MediaRecorder$EventHandler;
7323 .field private mFd:Ljava/io/FileDescriptor;
7324 @@ -69,8 +98,24 @@
7326 .field private mPath:Ljava/lang/String;
7328 +.field private mPm:Landroid/content/pm/IPackageManager;
7330 .field private mSurface:Landroid/view/Surface;
7332 +.field private pFileDescriptor:Ljava/io/FileDescriptor;
7334 +.field private pFileDescriptorPath:Ljava/lang/String;
7336 +.field private pPath:Ljava/lang/String;
7338 +.field private pRunner:Landroid/media/MediaRecorder$PrivacyRunner;
7340 +.field private pSetMan:Landroid/privacy/PrivacySettingsManager;
7342 +.field private privacyMode:Z
7344 +.field private stoppedStream:Z
7347 # direct methods
7348 .method static constructor <clinit>()V
7349 @@ -86,15 +131,35 @@
7350 .end method
7352 .method public constructor <init>()V
7353 - .registers 3
7354 + .registers 4
7356 + const/4 v2, 0x0
7358 + const/4 v1, 0x0
7360 invoke-direct {p0}, Ljava/lang/Object;-><init>()V
7362 + iput-object v1, p0, Landroid/media/MediaRecorder;->pPath:Ljava/lang/String;
7364 + iput-object v1, p0, Landroid/media/MediaRecorder;->pFileDescriptorPath:Ljava/lang/String;
7366 + iput-object v1, p0, Landroid/media/MediaRecorder;->pFileDescriptor:Ljava/io/FileDescriptor;
7368 + iput-object v1, p0, Landroid/media/MediaRecorder;->pRunner:Landroid/media/MediaRecorder$PrivacyRunner;
7370 + iput-boolean v2, p0, Landroid/media/MediaRecorder;->deletedFile:Z
7372 + iput-boolean v2, p0, Landroid/media/MediaRecorder;->privacyMode:Z
7374 + iput-boolean v2, p0, Landroid/media/MediaRecorder;->stoppedStream:Z
7376 + iput v2, p0, Landroid/media/MediaRecorder;->ACTUAL_STATE:I
7378 invoke-static {}, Landroid/os/Looper;->myLooper()Landroid/os/Looper;
7380 move-result-object v0
7382 - if-eqz v0, :cond_19
7383 + if-eqz v0, :cond_2e
7385 new-instance v1, Landroid/media/MediaRecorder$EventHandler;
7387 @@ -102,7 +167,9 @@
7389 iput-object v1, p0, Landroid/media/MediaRecorder;->mEventHandler:Landroid/media/MediaRecorder$EventHandler;
7391 - :goto_10
7392 + :goto_22
7393 + invoke-direct {p0}, Landroid/media/MediaRecorder;->initiate()V
7395 new-instance v1, Ljava/lang/ref/WeakReference;
7397 invoke-direct {v1, p0}, Ljava/lang/ref/WeakReference;-><init>(Ljava/lang/Object;)V
7398 @@ -111,12 +178,12 @@
7400 return-void
7402 - :cond_19
7403 + :cond_2e
7404 invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper;
7406 move-result-object v0
7408 - if-eqz v0, :cond_27
7409 + if-eqz v0, :cond_3c
7411 new-instance v1, Landroid/media/MediaRecorder$EventHandler;
7413 @@ -124,14 +191,12 @@
7415 iput-object v1, p0, Landroid/media/MediaRecorder;->mEventHandler:Landroid/media/MediaRecorder$EventHandler;
7417 - goto :goto_10
7419 - :cond_27
7420 - const/4 v1, 0x0
7421 + goto :goto_22
7423 + :cond_3c
7424 iput-object v1, p0, Landroid/media/MediaRecorder;->mEventHandler:Landroid/media/MediaRecorder$EventHandler;
7426 - goto :goto_10
7427 + goto :goto_22
7428 .end method
7430 .method private native _prepare()V
7431 @@ -143,45 +208,1757 @@
7432 .end annotation
7433 .end method
7435 -.method private native _setOutputFile(Ljava/io/FileDescriptor;JJ)V
7436 - .annotation system Ldalvik/annotation/Throws;
7437 - value = {
7438 - Ljava/lang/IllegalStateException;,
7439 - Ljava/io/IOException;
7441 - .end annotation
7442 -.end method
7443 +.method private native _setOutputFile(Ljava/io/FileDescriptor;JJ)V
7444 + .annotation system Ldalvik/annotation/Throws;
7445 + value = {
7446 + Ljava/lang/IllegalStateException;,
7447 + Ljava/io/IOException;
7449 + .end annotation
7450 +.end method
7452 +.method static synthetic access$000(Landroid/media/MediaRecorder;)I
7453 + .registers 2
7455 + iget v0, p0, Landroid/media/MediaRecorder;->mNativeContext:I
7457 + return v0
7458 +.end method
7460 +.method static synthetic access$100(Landroid/media/MediaRecorder;)Landroid/media/MediaRecorder$OnErrorListener;
7461 + .registers 2
7463 + iget-object v0, p0, Landroid/media/MediaRecorder;->mOnErrorListener:Landroid/media/MediaRecorder$OnErrorListener;
7465 + return-object v0
7466 +.end method
7468 +.method static synthetic access$200(Landroid/media/MediaRecorder;)Landroid/media/MediaRecorder$OnInfoListener;
7469 + .registers 2
7471 + iget-object v0, p0, Landroid/media/MediaRecorder;->mOnInfoListener:Landroid/media/MediaRecorder$OnInfoListener;
7473 + return-object v0
7474 +.end method
7476 +.method static synthetic access$300(Landroid/media/MediaRecorder;)V
7477 + .registers 1
7479 + invoke-direct {p0}, Landroid/media/MediaRecorder;->privacyStop()V
7481 + return-void
7482 +.end method
7484 +.method static synthetic access$400(Landroid/media/MediaRecorder;)Ljava/lang/String;
7485 + .registers 2
7487 + iget-object v0, p0, Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
7489 + return-object v0
7490 +.end method
7492 +.method static synthetic access$502(Landroid/media/MediaRecorder;Z)Z
7493 + .registers 2
7495 + iput-boolean p1, p0, Landroid/media/MediaRecorder;->deletedFile:Z
7497 + return p1
7498 +.end method
7500 +.method static synthetic access$600(Landroid/media/MediaRecorder;)Ljava/io/FileDescriptor;
7501 + .registers 2
7503 + iget-object v0, p0, Landroid/media/MediaRecorder;->mFd:Ljava/io/FileDescriptor;
7505 + return-object v0
7506 +.end method
7508 +.method static synthetic access$700(Landroid/media/MediaRecorder;)Ljava/lang/String;
7509 + .registers 2
7511 + iget-object v0, p0, Landroid/media/MediaRecorder;->pFileDescriptorPath:Ljava/lang/String;
7513 + return-object v0
7514 +.end method
7516 +.method private checkIfPackagesAllowed(I)I
7517 + .registers 12
7519 + const/4 v6, -0x1
7521 + const/4 v5, -0x2
7523 + const/4 v7, -0x3
7525 + :try_start_3
7526 + iget-object v8, p0, Landroid/media/MediaRecorder;->pSetMan:Landroid/privacy/PrivacySettingsManager;
7528 + if-eqz v8, :cond_5b
7530 + const/4 v2, 0x0
7532 + invoke-direct {p0}, Landroid/media/MediaRecorder;->getPackageName()[Ljava/lang/String;
7534 + move-result-object v3
7536 + invoke-static {}, Landroid/os/Process;->myUid()I
7538 + move-result v4
7540 + if-eqz v3, :cond_51
7542 + packed-switch p1, :pswitch_data_72
7544 + move v5, v7
7546 + :cond_16
7547 + :goto_16
7548 + return v5
7550 + :pswitch_17
7551 + const/4 v1, 0x0
7553 + :goto_18
7554 + array-length v8, v3
7556 + if-ge v1, v8, :cond_2f
7558 + iget-object v8, p0, Landroid/media/MediaRecorder;->pSetMan:Landroid/privacy/PrivacySettingsManager;
7560 + aget-object v9, v3, v1
7562 + invoke-virtual {v8, v9, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
7564 + move-result-object v2
7566 + if-eqz v2, :cond_2b
7568 + invoke-virtual {v2}, Landroid/privacy/PrivacySettings;->getRecordAudioSetting()B
7570 + move-result v8
7572 + if-nez v8, :cond_16
7574 + :cond_2b
7575 + const/4 v2, 0x0
7577 + add-int/lit8 v1, v1, 0x1
7579 + goto :goto_18
7581 + :cond_2f
7582 + move v5, v6
7584 + goto :goto_16
7586 + :pswitch_31
7587 + const/4 v1, 0x0
7589 + :goto_32
7590 + array-length v8, v3
7592 + if-ge v1, v8, :cond_4f
7594 + iget-object v8, p0, Landroid/media/MediaRecorder;->pSetMan:Landroid/privacy/PrivacySettingsManager;
7596 + aget-object v9, v3, v1
7598 + invoke-virtual {v8, v9, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
7600 + move-result-object v2
7602 + if-eqz v2, :cond_4b
7604 + invoke-virtual {v2}, Landroid/privacy/PrivacySettings;->getRecordAudioSetting()B
7606 + move-result v8
7608 + if-nez v8, :cond_16
7610 + invoke-virtual {v2}, Landroid/privacy/PrivacySettings;->getCameraSetting()B
7612 + move-result v8
7614 + if-nez v8, :cond_16
7616 + :cond_4b
7617 + const/4 v2, 0x0
7619 + add-int/lit8 v1, v1, 0x1
7621 + goto :goto_32
7623 + :cond_4f
7624 + move v5, v6
7626 + goto :goto_16
7628 + :cond_51
7629 + const-string v5, "PM,MediaRecorder"
7631 + const-string/jumbo v6, "return GOT_ERROR, because package_names are NULL"
7633 + invoke-static {v5, v6}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
7635 + move v5, v7
7637 + goto :goto_16
7639 + :cond_5b
7640 + const-string v5, "PM,MediaRecorder"
7642 + const-string/jumbo v6, "return GOT_ERROR, because pSetMan is NULL"
7644 + invoke-static {v5, v6}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
7645 + :try_end_63
7646 + .catch Ljava/lang/Exception; {:try_start_3 .. :try_end_63} :catch_65
7648 + move v5, v7
7650 + goto :goto_16
7652 + :catch_65
7653 + move-exception v0
7655 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
7657 + const-string v5, "PM,MediaRecorder"
7659 + const-string v6, "Got exception in checkIfPackagesAllowed"
7661 + invoke-static {v5, v6}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
7663 + move v5, v7
7665 + goto :goto_16
7667 + :pswitch_data_72
7668 + .packed-switch 0x2
7669 + :pswitch_17
7670 + :pswitch_31
7671 + .end packed-switch
7672 +.end method
7674 +.method private dataAccess(ZI)V
7675 + .registers 8
7677 + invoke-direct {p0}, Landroid/media/MediaRecorder;->getPackageName()[Ljava/lang/String;
7679 + move-result-object v1
7681 + if-eqz p1, :cond_5a
7683 + if-eqz v1, :cond_5a
7685 + packed-switch p2, :pswitch_data_ae
7687 + :cond_b
7688 + :goto_b
7689 + return-void
7691 + :pswitch_c
7692 + const/4 v0, 0x0
7694 + :goto_d
7695 + array-length v2, v1
7697 + if-ge v0, v2, :cond_b
7699 + const-string v2, "PM,MediaRecorder"
7701 + new-instance v3, Ljava/lang/StringBuilder;
7703 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
7705 + const-string v4, "Allowed Package: -"
7707 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7709 + move-result-object v3
7711 + aget-object v4, v1, v0
7713 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7715 + move-result-object v3
7717 + const-string v4, "- accessing microphone."
7719 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7721 + move-result-object v3
7723 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
7725 + move-result-object v3
7727 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
7729 + add-int/lit8 v0, v0, 0x1
7731 + goto :goto_d
7733 + :pswitch_33
7734 + const/4 v0, 0x0
7736 + :goto_34
7737 + array-length v2, v1
7739 + if-ge v0, v2, :cond_b
7741 + const-string v2, "PM,MediaRecorder"
7743 + new-instance v3, Ljava/lang/StringBuilder;
7745 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
7747 + const-string v4, "Allowed Package: -"
7749 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7751 + move-result-object v3
7753 + aget-object v4, v1, v0
7755 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7757 + move-result-object v3
7759 + const-string v4, "- accessing microphone and camera."
7761 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7763 + move-result-object v3
7765 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
7767 + move-result-object v3
7769 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
7771 + add-int/lit8 v0, v0, 0x1
7773 + goto :goto_34
7775 + :cond_5a
7776 + if-eqz v1, :cond_b
7778 + packed-switch p2, :pswitch_data_b6
7780 + goto :goto_b
7782 + :pswitch_60
7783 + const/4 v0, 0x0
7785 + :goto_61
7786 + array-length v2, v1
7788 + if-ge v0, v2, :cond_b
7790 + const-string v2, "PM,MediaRecorder"
7792 + new-instance v3, Ljava/lang/StringBuilder;
7794 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
7796 + const-string v4, "Blocked Package: -"
7798 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7800 + move-result-object v3
7802 + aget-object v4, v1, v0
7804 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7806 + move-result-object v3
7808 + const-string v4, "- accessing microphone."
7810 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7812 + move-result-object v3
7814 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
7816 + move-result-object v3
7818 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
7820 + add-int/lit8 v0, v0, 0x1
7822 + goto :goto_61
7824 + :pswitch_87
7825 + const/4 v0, 0x0
7827 + :goto_88
7828 + array-length v2, v1
7830 + if-ge v0, v2, :cond_b
7832 + const-string v2, "PM,MediaRecorder"
7834 + new-instance v3, Ljava/lang/StringBuilder;
7836 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
7838 + const-string v4, "Blocked Package: -"
7840 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7842 + move-result-object v3
7844 + aget-object v4, v1, v0
7846 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7848 + move-result-object v3
7850 + const-string v4, "- accessing microphone and camera."
7852 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7854 + move-result-object v3
7856 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
7858 + move-result-object v3
7860 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
7862 + add-int/lit8 v0, v0, 0x1
7864 + goto :goto_88
7866 + :pswitch_data_ae
7867 + .packed-switch 0xa
7868 + :pswitch_c
7869 + :pswitch_33
7870 + .end packed-switch
7872 + :pswitch_data_b6
7873 + .packed-switch 0xa
7874 + :pswitch_60
7875 + :pswitch_87
7876 + .end packed-switch
7877 +.end method
7879 +.method public static final getAudioSourceMax()I
7880 + .registers 1
7882 + const/16 v0, 0x8
7884 + return v0
7885 +.end method
7887 +.method private getPackageName()[Ljava/lang/String;
7888 + .registers 6
7890 + :try_start_0
7891 + iget-object v3, p0, Landroid/media/MediaRecorder;->mPm:Landroid/content/pm/IPackageManager;
7893 + if-eqz v3, :cond_f
7895 + invoke-static {}, Landroid/os/Process;->myUid()I
7897 + move-result v2
7899 + iget-object v3, p0, Landroid/media/MediaRecorder;->mPm:Landroid/content/pm/IPackageManager;
7901 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
7903 + move-result-object v1
7905 + :goto_e
7906 + return-object v1
7908 + :cond_f
7909 + const-string/jumbo v3, "package"
7911 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
7913 + move-result-object v3
7915 + invoke-static {v3}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
7917 + move-result-object v3
7919 + iput-object v3, p0, Landroid/media/MediaRecorder;->mPm:Landroid/content/pm/IPackageManager;
7921 + invoke-static {}, Landroid/os/Process;->myUid()I
7923 + move-result v2
7925 + iget-object v3, p0, Landroid/media/MediaRecorder;->mPm:Landroid/content/pm/IPackageManager;
7927 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
7928 + :try_end_25
7929 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_25} :catch_27
7931 + move-result-object v1
7933 + goto :goto_e
7935 + :catch_27
7936 + move-exception v0
7938 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
7940 + const-string v3, "PM,MediaRecorder"
7942 + const-string/jumbo v4, "something went wrong with getting package name"
7944 + invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
7946 + const/4 v1, 0x0
7948 + goto :goto_e
7949 +.end method
7951 +.method private getPrivacyFileDescriptor()Ljava/io/FileDescriptor;
7952 + .registers 19
7954 + invoke-direct/range {p0 .. p0}, Landroid/media/MediaRecorder;->getPackageName()[Ljava/lang/String;
7956 + move-result-object v12
7958 + new-instance v14, Ljava/util/Random;
7960 + invoke-direct {v14}, Ljava/util/Random;-><init>()V
7962 + const/4 v1, 0x0
7964 + new-instance v15, Ljava/lang/StringBuilder;
7966 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
7968 + invoke-virtual {v14}, Ljava/util/Random;->nextLong()J
7970 + move-result-wide v16
7972 + invoke-virtual/range {v15 .. v17}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
7974 + move-result-object v15
7976 + const-string v16, ".tmp"
7978 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7980 + move-result-object v15
7982 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
7984 + move-result-object v2
7986 + const/4 v7, 0x0
7988 + const/4 v3, 0x0
7990 + const/4 v11, 0x0
7992 + :goto_24
7993 + array-length v15, v12
7995 + if-ge v11, v15, :cond_247
7997 + :try_start_27
7998 + new-instance v9, Ljava/io/File;
8000 + new-instance v15, Ljava/lang/StringBuilder;
8002 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
8004 + const-string v16, "/data/data/"
8006 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8008 + move-result-object v15
8010 + aget-object v16, v12, v11
8012 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8014 + move-result-object v15
8016 + const-string v16, "/cache/"
8018 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8020 + move-result-object v15
8022 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8024 + move-result-object v15
8026 + invoke-direct {v9, v15}, Ljava/io/File;-><init>(Ljava/lang/String;)V
8028 + invoke-virtual {v9}, Ljava/io/File;->mkdirs()Z
8030 + new-instance v8, Ljava/io/FileWriter;
8032 + new-instance v15, Ljava/lang/StringBuilder;
8034 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
8036 + const-string v16, "/data/data/"
8038 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8040 + move-result-object v15
8042 + aget-object v16, v12, v11
8044 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8046 + move-result-object v15
8048 + const-string v16, "/cache/"
8050 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8052 + move-result-object v15
8054 + invoke-virtual {v15, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8056 + move-result-object v15
8058 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8060 + move-result-object v15
8062 + invoke-direct {v8, v15}, Ljava/io/FileWriter;-><init>(Ljava/lang/String;)V
8063 + :try_end_6e
8064 + .catchall {:try_start_27 .. :try_end_6e} :catchall_155
8065 + .catch Ljava/lang/Exception; {:try_start_27 .. :try_end_6e} :catch_15c
8067 + :try_start_6e
8068 + const-string/jumbo v15, "test"
8070 + invoke-virtual {v8, v15}, Ljava/io/FileWriter;->write(Ljava/lang/String;)V
8072 + invoke-virtual {v8}, Ljava/io/FileWriter;->flush()V
8074 + invoke-virtual {v8}, Ljava/io/FileWriter;->close()V
8076 + new-instance v4, Ljava/io/File;
8078 + new-instance v15, Ljava/lang/StringBuilder;
8080 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
8082 + const-string v16, "/data/data/"
8084 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8086 + move-result-object v15
8088 + aget-object v16, v12, v11
8090 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8092 + move-result-object v15
8094 + const-string v16, "/cache/"
8096 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8098 + move-result-object v15
8100 + invoke-virtual {v15, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8102 + move-result-object v15
8104 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8106 + move-result-object v15
8108 + invoke-direct {v4, v15}, Ljava/io/File;-><init>(Ljava/lang/String;)V
8109 + :try_end_9e
8110 + .catchall {:try_start_6e .. :try_end_9e} :catchall_235
8111 + .catch Ljava/lang/Exception; {:try_start_6e .. :try_end_9e} :catch_23e
8113 + :try_start_9e
8114 + invoke-virtual {v4}, Ljava/io/File;->delete()Z
8116 + const-string v15, "PM,MediaRecorder"
8118 + new-instance v16, Ljava/lang/StringBuilder;
8120 + invoke-direct/range {v16 .. v16}, Ljava/lang/StringBuilder;-><init>()V
8122 + const-string v17, "found our package: "
8124 + invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8126 + move-result-object v16
8128 + aget-object v17, v12, v11
8130 + invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8132 + move-result-object v16
8134 + const-string v17, " with internal path. File: "
8136 + invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8138 + move-result-object v16
8140 + move-object/from16 v0, v16
8142 + invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8144 + move-result-object v16
8146 + invoke-virtual/range {v16 .. v16}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8148 + move-result-object v16
8150 + invoke-static/range {v15 .. v16}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
8152 + aget-object v1, v12, v11
8153 + :try_end_c9
8154 + .catchall {:try_start_9e .. :try_end_c9} :catchall_239
8155 + .catch Ljava/lang/Exception; {:try_start_9e .. :try_end_c9} :catch_242
8157 + const/4 v7, 0x0
8159 + const/4 v3, 0x0
8161 + invoke-static {}, Ljava/lang/System;->gc()V
8163 + move-object v4, v3
8165 + move-object v8, v7
8167 + :goto_d0
8168 + if-eqz v1, :cond_172
8170 + :try_start_d2
8171 + new-instance v10, Ljava/io/FileOutputStream;
8173 + new-instance v15, Ljava/lang/StringBuilder;
8175 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
8177 + const-string v16, "/data/data/"
8179 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8181 + move-result-object v15
8183 + invoke-virtual {v15, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8185 + move-result-object v15
8187 + const-string v16, "/cache/"
8189 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8191 + move-result-object v15
8193 + invoke-virtual {v15, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8195 + move-result-object v15
8197 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8199 + move-result-object v15
8201 + invoke-direct {v10, v15}, Ljava/io/FileOutputStream;-><init>(Ljava/lang/String;)V
8203 + invoke-virtual {v10}, Ljava/io/FileOutputStream;->getFD()Ljava/io/FileDescriptor;
8205 + move-result-object v6
8207 + new-instance v15, Ljava/lang/StringBuilder;
8209 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
8211 + const-string v16, "/data/data/"
8213 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8215 + move-result-object v15
8217 + invoke-virtual {v15, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8219 + move-result-object v15
8221 + const-string v16, "/cache/"
8223 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8225 + move-result-object v15
8227 + invoke-virtual {v15, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8229 + move-result-object v15
8231 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8233 + move-result-object v15
8235 + move-object/from16 v0, p0
8237 + iput-object v15, v0, Landroid/media/MediaRecorder;->pFileDescriptorPath:Ljava/lang/String;
8239 + const-string v15, "PM,MediaRecorder"
8241 + new-instance v16, Ljava/lang/StringBuilder;
8243 + invoke-direct/range {v16 .. v16}, Ljava/lang/StringBuilder;-><init>()V
8245 + const-string/jumbo v17, "returned fileDescriptor for package: "
8247 + invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8249 + move-result-object v16
8251 + move-object/from16 v0, v16
8253 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8255 + move-result-object v16
8257 + const-string v17, " with internal path. Path: "
8259 + invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8261 + move-result-object v16
8263 + const-string v17, "/data/data/"
8265 + invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8267 + move-result-object v16
8269 + move-object/from16 v0, v16
8271 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8273 + move-result-object v16
8275 + const-string v17, "/cache/"
8277 + invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8279 + move-result-object v16
8281 + move-object/from16 v0, v16
8283 + invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8285 + move-result-object v16
8287 + invoke-virtual/range {v16 .. v16}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8289 + move-result-object v16
8291 + invoke-static/range {v15 .. v16}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
8292 + :try_end_152
8293 + .catch Ljava/lang/Exception; {:try_start_d2 .. :try_end_152} :catch_166
8295 + move-object v3, v4
8297 + move-object v7, v8
8299 + :goto_154
8300 + return-object v6
8302 + :catchall_155
8303 + move-exception v15
8305 + :goto_156
8306 + const/4 v7, 0x0
8308 + const/4 v3, 0x0
8310 + invoke-static {}, Ljava/lang/System;->gc()V
8312 + throw v15
8314 + :catch_15c
8315 + move-exception v15
8317 + :goto_15d
8318 + const/4 v7, 0x0
8320 + const/4 v3, 0x0
8322 + invoke-static {}, Ljava/lang/System;->gc()V
8324 + add-int/lit8 v11, v11, 0x1
8326 + goto/16 :goto_24
8328 + :catch_166
8329 + move-exception v5
8331 + const-string v15, "PM,MediaRecorder"
8333 + const-string v16, "Got exception while creating fileDescriptor -> return null"
8335 + invoke-static/range {v15 .. v16}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
8337 + const/4 v6, 0x0
8339 + move-object v3, v4
8341 + move-object v7, v8
8343 + goto :goto_154
8345 + :cond_172
8346 + :try_start_172
8347 + invoke-static {}, Landroid/os/Environment;->getExternalStorageDirectory()Ljava/io/File;
8349 + move-result-object v15
8351 + invoke-virtual {v15}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
8353 + move-result-object v13
8355 + new-instance v7, Ljava/io/FileWriter;
8357 + new-instance v15, Ljava/lang/StringBuilder;
8359 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
8361 + invoke-virtual {v15, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8363 + move-result-object v15
8365 + const-string v16, "/"
8367 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8369 + move-result-object v15
8371 + invoke-virtual {v15, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8373 + move-result-object v15
8375 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8377 + move-result-object v15
8379 + invoke-direct {v7, v15}, Ljava/io/FileWriter;-><init>(Ljava/lang/String;)V
8380 + :try_end_196
8381 + .catch Ljava/lang/Exception; {:try_start_172 .. :try_end_196} :catch_22e
8383 + :try_start_196
8384 + const-string/jumbo v15, "test"
8386 + invoke-virtual {v7, v15}, Ljava/io/FileWriter;->write(Ljava/lang/String;)V
8388 + invoke-virtual {v7}, Ljava/io/FileWriter;->flush()V
8390 + invoke-virtual {v7}, Ljava/io/FileWriter;->close()V
8392 + new-instance v3, Ljava/io/File;
8394 + new-instance v15, Ljava/lang/StringBuilder;
8396 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
8398 + invoke-virtual {v15, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8400 + move-result-object v15
8402 + const-string v16, "/"
8404 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8406 + move-result-object v15
8408 + invoke-virtual {v15, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8410 + move-result-object v15
8412 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8414 + move-result-object v15
8416 + invoke-direct {v3, v15}, Ljava/io/File;-><init>(Ljava/lang/String;)V
8417 + :try_end_1be
8418 + .catch Ljava/lang/Exception; {:try_start_196 .. :try_end_1be} :catch_232
8420 + :try_start_1be
8421 + invoke-virtual {v3}, Ljava/io/File;->delete()Z
8423 + new-instance v10, Ljava/io/FileOutputStream;
8425 + new-instance v15, Ljava/lang/StringBuilder;
8427 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
8429 + invoke-virtual {v15, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8431 + move-result-object v15
8433 + const-string v16, "/"
8435 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8437 + move-result-object v15
8439 + invoke-virtual {v15, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8441 + move-result-object v15
8443 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8445 + move-result-object v15
8447 + invoke-direct {v10, v15}, Ljava/io/FileOutputStream;-><init>(Ljava/lang/String;)V
8449 + invoke-virtual {v10}, Ljava/io/FileOutputStream;->getFD()Ljava/io/FileDescriptor;
8451 + move-result-object v6
8453 + new-instance v15, Ljava/lang/StringBuilder;
8455 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
8457 + invoke-virtual {v15, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8459 + move-result-object v15
8461 + const-string v16, "/"
8463 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8465 + move-result-object v15
8467 + invoke-virtual {v15, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8469 + move-result-object v15
8471 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8473 + move-result-object v15
8475 + move-object/from16 v0, p0
8477 + iput-object v15, v0, Landroid/media/MediaRecorder;->pFileDescriptorPath:Ljava/lang/String;
8479 + const-string v15, "PM,MediaRecorder"
8481 + new-instance v16, Ljava/lang/StringBuilder;
8483 + invoke-direct/range {v16 .. v16}, Ljava/lang/StringBuilder;-><init>()V
8485 + const-string v17, "Returned FileDescriptor. Path: "
8487 + invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8489 + move-result-object v16
8491 + move-object/from16 v0, v16
8493 + invoke-virtual {v0, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8495 + move-result-object v16
8497 + const-string v17, "/"
8499 + invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8501 + move-result-object v16
8503 + move-object/from16 v0, v16
8505 + invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8507 + move-result-object v16
8509 + const-string v17, " . It is on SDCard!"
8511 + invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8513 + move-result-object v16
8515 + invoke-virtual/range {v16 .. v16}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8517 + move-result-object v16
8519 + invoke-static/range {v15 .. v16}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
8520 + :try_end_228
8521 + .catch Ljava/lang/Exception; {:try_start_1be .. :try_end_228} :catch_22a
8523 + goto/16 :goto_154
8525 + :catch_22a
8526 + move-exception v5
8528 + :goto_22b
8529 + const/4 v6, 0x0
8531 + goto/16 :goto_154
8533 + :catch_22e
8534 + move-exception v5
8536 + move-object v3, v4
8538 + move-object v7, v8
8540 + goto :goto_22b
8542 + :catch_232
8543 + move-exception v5
8545 + move-object v3, v4
8547 + goto :goto_22b
8549 + :catchall_235
8550 + move-exception v15
8552 + move-object v7, v8
8554 + goto/16 :goto_156
8556 + :catchall_239
8557 + move-exception v15
8559 + move-object v3, v4
8561 + move-object v7, v8
8563 + goto/16 :goto_156
8565 + :catch_23e
8566 + move-exception v15
8568 + move-object v7, v8
8570 + goto/16 :goto_15d
8572 + :catch_242
8573 + move-exception v15
8575 + move-object v3, v4
8577 + move-object v7, v8
8579 + goto/16 :goto_15d
8581 + :cond_247
8582 + move-object v4, v3
8584 + move-object v8, v7
8586 + goto/16 :goto_d0
8587 +.end method
8589 +.method private getPrivacyPath()Ljava/lang/String;
8590 + .registers 16
8592 + invoke-direct {p0}, Landroid/media/MediaRecorder;->getPackageName()[Ljava/lang/String;
8594 + move-result-object v9
8596 + new-instance v11, Ljava/util/Random;
8598 + invoke-direct {v11}, Ljava/util/Random;-><init>()V
8600 + const/4 v0, 0x0
8602 + new-instance v12, Ljava/lang/StringBuilder;
8604 + invoke-direct {v12}, Ljava/lang/StringBuilder;-><init>()V
8606 + invoke-virtual {v11}, Ljava/util/Random;->nextLong()J
8608 + move-result-wide v13
8610 + invoke-virtual {v12, v13, v14}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
8612 + move-result-object v12
8614 + const-string v13, ".tmp"
8616 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8618 + move-result-object v12
8620 + invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8622 + move-result-object v1
8624 + const/4 v5, 0x0
8626 + const/4 v2, 0x0
8628 + const/4 v8, 0x0
8630 + :goto_24
8631 + array-length v12, v9
8633 + if-ge v8, v12, :cond_1eb
8635 + :try_start_27
8636 + new-instance v7, Ljava/io/File;
8638 + new-instance v12, Ljava/lang/StringBuilder;
8640 + invoke-direct {v12}, Ljava/lang/StringBuilder;-><init>()V
8642 + const-string v13, "/data/data/"
8644 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8646 + move-result-object v12
8648 + aget-object v13, v9, v8
8650 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8652 + move-result-object v12
8654 + const-string v13, "/cache/"
8656 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8658 + move-result-object v12
8660 + invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8662 + move-result-object v12
8664 + invoke-direct {v7, v12}, Ljava/io/File;-><init>(Ljava/lang/String;)V
8666 + invoke-virtual {v7}, Ljava/io/File;->mkdirs()Z
8668 + new-instance v6, Ljava/io/FileWriter;
8670 + new-instance v12, Ljava/lang/StringBuilder;
8672 + invoke-direct {v12}, Ljava/lang/StringBuilder;-><init>()V
8674 + const-string v13, "/data/data/"
8676 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8678 + move-result-object v12
8680 + aget-object v13, v9, v8
8682 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8684 + move-result-object v12
8686 + const-string v13, "/cache/"
8688 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8690 + move-result-object v12
8692 + invoke-virtual {v12, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8694 + move-result-object v12
8696 + invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8698 + move-result-object v12
8700 + invoke-direct {v6, v12}, Ljava/io/FileWriter;-><init>(Ljava/lang/String;)V
8701 + :try_end_6e
8702 + .catchall {:try_start_27 .. :try_end_6e} :catchall_12d
8703 + .catch Ljava/lang/Exception; {:try_start_27 .. :try_end_6e} :catch_134
8705 + :try_start_6e
8706 + const-string/jumbo v12, "test"
8708 + invoke-virtual {v6, v12}, Ljava/io/FileWriter;->write(Ljava/lang/String;)V
8710 + invoke-virtual {v6}, Ljava/io/FileWriter;->flush()V
8712 + invoke-virtual {v6}, Ljava/io/FileWriter;->close()V
8714 + new-instance v3, Ljava/io/File;
8716 + new-instance v12, Ljava/lang/StringBuilder;
8718 + invoke-direct {v12}, Ljava/lang/StringBuilder;-><init>()V
8720 + const-string v13, "/data/data/"
8722 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8724 + move-result-object v12
8726 + aget-object v13, v9, v8
8728 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8730 + move-result-object v12
8732 + const-string v13, "/cache/"
8734 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8736 + move-result-object v12
8738 + invoke-virtual {v12, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8740 + move-result-object v12
8742 + invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8744 + move-result-object v12
8746 + invoke-direct {v3, v12}, Ljava/io/File;-><init>(Ljava/lang/String;)V
8747 + :try_end_9e
8748 + .catchall {:try_start_6e .. :try_end_9e} :catchall_1d9
8749 + .catch Ljava/lang/Exception; {:try_start_6e .. :try_end_9e} :catch_1e2
8751 + :try_start_9e
8752 + invoke-virtual {v3}, Ljava/io/File;->delete()Z
8754 + const-string v12, "PM,MediaRecorder"
8756 + new-instance v13, Ljava/lang/StringBuilder;
8758 + invoke-direct {v13}, Ljava/lang/StringBuilder;-><init>()V
8760 + const-string v14, "found our package: "
8762 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8764 + move-result-object v13
8766 + aget-object v14, v9, v8
8768 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8770 + move-result-object v13
8772 + const-string v14, " with internal path. File: "
8774 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8776 + move-result-object v13
8778 + invoke-virtual {v13, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8780 + move-result-object v13
8782 + invoke-virtual {v13}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8784 + move-result-object v13
8786 + invoke-static {v12, v13}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
8788 + aget-object v0, v9, v8
8789 + :try_end_c7
8790 + .catchall {:try_start_9e .. :try_end_c7} :catchall_1dd
8791 + .catch Ljava/lang/Exception; {:try_start_9e .. :try_end_c7} :catch_1e6
8793 + const/4 v5, 0x0
8795 + const/4 v2, 0x0
8797 + invoke-static {}, Ljava/lang/System;->gc()V
8799 + move-object v3, v2
8801 + move-object v6, v5
8803 + :goto_ce
8804 + if-eqz v0, :cond_13e
8806 + const-string v12, "PM,MediaRecorder"
8808 + new-instance v13, Ljava/lang/StringBuilder;
8810 + invoke-direct {v13}, Ljava/lang/StringBuilder;-><init>()V
8812 + const-string/jumbo v14, "returned file: "
8814 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8816 + move-result-object v13
8818 + invoke-virtual {v13, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8820 + move-result-object v13
8822 + const-string v14, " for package: "
8824 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8826 + move-result-object v13
8828 + invoke-virtual {v13, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8830 + move-result-object v13
8832 + const-string v14, " with internal path. Path: "
8834 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8836 + move-result-object v13
8838 + const-string v14, "/data/data/"
8840 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8842 + move-result-object v13
8844 + invoke-virtual {v13, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8846 + move-result-object v13
8848 + const-string v14, "/cache/"
8850 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8852 + move-result-object v13
8854 + invoke-virtual {v13, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8856 + move-result-object v13
8858 + invoke-virtual {v13}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8860 + move-result-object v13
8862 + invoke-static {v12, v13}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
8864 + new-instance v12, Ljava/lang/StringBuilder;
8866 + invoke-direct {v12}, Ljava/lang/StringBuilder;-><init>()V
8868 + const-string v13, "/data/data/"
8870 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8872 + move-result-object v12
8874 + invoke-virtual {v12, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8876 + move-result-object v12
8878 + const-string v13, "/cache/"
8880 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8882 + move-result-object v12
8884 + invoke-virtual {v12, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8886 + move-result-object v12
8888 + invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8890 + move-result-object v12
8892 + move-object v2, v3
8894 + move-object v5, v6
8896 + :goto_12c
8897 + return-object v12
8899 + :catchall_12d
8900 + move-exception v12
8902 + :goto_12e
8903 + const/4 v5, 0x0
8905 + const/4 v2, 0x0
8907 + invoke-static {}, Ljava/lang/System;->gc()V
8909 + throw v12
8911 + :catch_134
8912 + move-exception v12
8914 + :goto_135
8915 + const/4 v5, 0x0
8917 + const/4 v2, 0x0
8919 + invoke-static {}, Ljava/lang/System;->gc()V
8921 + add-int/lit8 v8, v8, 0x1
8923 + goto/16 :goto_24
8925 + :cond_13e
8926 + :try_start_13e
8927 + invoke-static {}, Landroid/os/Environment;->getExternalStorageDirectory()Ljava/io/File;
8929 + move-result-object v12
8931 + invoke-virtual {v12}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
8933 + move-result-object v10
8935 + new-instance v5, Ljava/io/FileWriter;
8937 + new-instance v12, Ljava/lang/StringBuilder;
8939 + invoke-direct {v12}, Ljava/lang/StringBuilder;-><init>()V
8941 + invoke-virtual {v12, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8943 + move-result-object v12
8945 + const-string v13, "/"
8947 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8949 + move-result-object v12
8951 + invoke-virtual {v12, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8953 + move-result-object v12
8955 + invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8957 + move-result-object v12
8959 + invoke-direct {v5, v12}, Ljava/io/FileWriter;-><init>(Ljava/lang/String;)V
8960 + :try_end_162
8961 + .catch Ljava/lang/Exception; {:try_start_13e .. :try_end_162} :catch_1ce
8963 + :try_start_162
8964 + const-string/jumbo v12, "test"
8966 + invoke-virtual {v5, v12}, Ljava/io/FileWriter;->write(Ljava/lang/String;)V
8968 + invoke-virtual {v5}, Ljava/io/FileWriter;->flush()V
8970 + invoke-virtual {v5}, Ljava/io/FileWriter;->close()V
8972 + new-instance v2, Ljava/io/File;
8974 + new-instance v12, Ljava/lang/StringBuilder;
8976 + invoke-direct {v12}, Ljava/lang/StringBuilder;-><init>()V
8978 + invoke-virtual {v12, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8980 + move-result-object v12
8982 + const-string v13, "/"
8984 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8986 + move-result-object v12
8988 + invoke-virtual {v12, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8990 + move-result-object v12
8992 + invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8994 + move-result-object v12
8996 + invoke-direct {v2, v12}, Ljava/io/File;-><init>(Ljava/lang/String;)V
8997 + :try_end_18a
8998 + .catch Ljava/lang/Exception; {:try_start_162 .. :try_end_18a} :catch_1d4
9000 + :try_start_18a
9001 + invoke-virtual {v2}, Ljava/io/File;->delete()Z
9003 + const-string v12, "PM,MediaRecorder"
9005 + new-instance v13, Ljava/lang/StringBuilder;
9007 + invoke-direct {v13}, Ljava/lang/StringBuilder;-><init>()V
9009 + const-string v14, "Return filePath: "
9011 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9013 + move-result-object v13
9015 + invoke-virtual {v13, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9017 + move-result-object v13
9019 + const-string v14, "/"
9021 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9023 + move-result-object v13
9025 + invoke-virtual {v13, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9027 + move-result-object v13
9029 + const-string v14, " . It is on SDCard!"
9031 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9033 + move-result-object v13
9035 + invoke-virtual {v13}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
9037 + move-result-object v13
9039 + invoke-static {v12, v13}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
9041 + new-instance v12, Ljava/lang/StringBuilder;
9043 + invoke-direct {v12}, Ljava/lang/StringBuilder;-><init>()V
9045 + invoke-virtual {v12, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9047 + move-result-object v12
9049 + const-string v13, "/"
9051 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9053 + move-result-object v12
9055 + invoke-virtual {v12, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9057 + move-result-object v12
9059 + invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
9060 + :try_end_1cb
9061 + .catch Ljava/lang/Exception; {:try_start_18a .. :try_end_1cb} :catch_1d7
9063 + move-result-object v12
9065 + goto/16 :goto_12c
9067 + :catch_1ce
9068 + move-exception v4
9070 + move-object v2, v3
9072 + move-object v5, v6
9074 + :goto_1d1
9075 + const/4 v12, 0x0
9077 + goto/16 :goto_12c
9079 + :catch_1d4
9080 + move-exception v4
9082 + move-object v2, v3
9084 + goto :goto_1d1
9086 + :catch_1d7
9087 + move-exception v4
9089 + goto :goto_1d1
9091 + :catchall_1d9
9092 + move-exception v12
9094 + move-object v5, v6
9096 + goto/16 :goto_12e
9098 + :catchall_1dd
9099 + move-exception v12
9101 + move-object v2, v3
9103 + move-object v5, v6
9105 + goto/16 :goto_12e
9107 + :catch_1e2
9108 + move-exception v12
9110 + move-object v5, v6
9112 + goto/16 :goto_135
9114 + :catch_1e6
9115 + move-exception v12
9117 + move-object v2, v3
9119 + move-object v5, v6
9121 + goto/16 :goto_135
9123 + :cond_1eb
9124 + move-object v3, v2
9126 + move-object v6, v5
9128 + goto/16 :goto_ce
9129 +.end method
9131 +.method private initiate()V
9132 + .registers 5
9134 + const/4 v1, 0x0
9136 + :try_start_1
9137 + iput-object v1, p0, Landroid/media/MediaRecorder;->context:Landroid/content/Context;
9139 + new-instance v1, Landroid/privacy/PrivacySettingsManager;
9141 + iget-object v2, p0, Landroid/media/MediaRecorder;->context:Landroid/content/Context;
9143 + const-string/jumbo v3, "privacy"
9145 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
9147 + move-result-object v3
9149 + invoke-static {v3}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
9151 + move-result-object v3
9153 + invoke-direct {v1, v2, v3}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
9155 + iput-object v1, p0, Landroid/media/MediaRecorder;->pSetMan:Landroid/privacy/PrivacySettingsManager;
9157 + const-string/jumbo v1, "package"
9159 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
9161 -.method static synthetic access$000(Landroid/media/MediaRecorder;)I
9162 - .registers 2
9163 + move-result-object v1
9165 - iget v0, p0, Landroid/media/MediaRecorder;->mNativeContext:I
9166 + invoke-static {v1}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
9168 - return v0
9169 -.end method
9170 + move-result-object v1
9172 -.method static synthetic access$100(Landroid/media/MediaRecorder;)Landroid/media/MediaRecorder$OnErrorListener;
9173 - .registers 2
9174 + iput-object v1, p0, Landroid/media/MediaRecorder;->mPm:Landroid/content/pm/IPackageManager;
9176 - iget-object v0, p0, Landroid/media/MediaRecorder;->mOnErrorListener:Landroid/media/MediaRecorder$OnErrorListener;
9177 + const/4 v1, 0x1
9179 - return-object v0
9180 -.end method
9181 + iput-boolean v1, p0, Landroid/media/MediaRecorder;->privacyMode:Z
9182 + :try_end_27
9183 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_27} :catch_28
9185 -.method static synthetic access$200(Landroid/media/MediaRecorder;)Landroid/media/MediaRecorder$OnInfoListener;
9186 - .registers 2
9187 + :goto_27
9188 + return-void
9190 - iget-object v0, p0, Landroid/media/MediaRecorder;->mOnInfoListener:Landroid/media/MediaRecorder$OnInfoListener;
9191 + :catch_28
9192 + move-exception v0
9194 - return-object v0
9195 -.end method
9196 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
9198 -.method public static final getAudioSourceMax()I
9199 - .registers 1
9200 + const-string v1, "PM,MediaRecorder"
9202 - const/16 v0, 0x8
9203 + const-string v2, "Something went wrong with initalize variables"
9205 - return v0
9206 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
9208 + const/4 v1, 0x0
9210 + iput-boolean v1, p0, Landroid/media/MediaRecorder;->privacyMode:Z
9212 + goto :goto_27
9213 .end method
9215 .method private final native native_finalize()V
9216 @@ -236,17 +2013,104 @@
9217 goto :goto_a
9218 .end method
9220 +.method private privacyStop()V
9221 + .registers 4
9223 + :try_start_0
9224 + invoke-virtual {p0}, Landroid/media/MediaRecorder;->stop()V
9225 + :try_end_3
9226 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_3} :catch_4
9228 + :goto_3
9229 + return-void
9231 + :catch_4
9232 + move-exception v0
9234 + const-string v1, "PM,MediaRecorder"
9236 + const-string v2, "Got exception while trying to call privacyStop()"
9238 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
9240 + goto :goto_3
9241 +.end method
9243 .method private native setParameter(Ljava/lang/String;)V
9244 .end method
9247 # virtual methods
9248 .method protected finalize()V
9249 - .registers 1
9250 + .registers 4
9252 + const/4 v2, 0x1
9254 + iget-boolean v1, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9256 + if-nez v1, :cond_18
9258 + iget-object v1, p0, Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
9260 + if-eqz v1, :cond_1c
9262 + new-instance v0, Ljava/io/File;
9264 + iget-object v1, p0, Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
9266 + invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
9268 + invoke-virtual {v0}, Ljava/io/File;->delete()Z
9270 + move-result v1
9272 + if-eqz v1, :cond_18
9274 + iput-boolean v2, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9276 + :cond_18
9277 + :goto_18
9278 invoke-direct {p0}, Landroid/media/MediaRecorder;->native_finalize()V
9280 return-void
9282 + :cond_1c
9283 + iget-object v1, p0, Landroid/media/MediaRecorder;->mFd:Ljava/io/FileDescriptor;
9285 + if-eqz v1, :cond_34
9287 + iget-object v1, p0, Landroid/media/MediaRecorder;->pFileDescriptorPath:Ljava/lang/String;
9289 + if-eqz v1, :cond_34
9291 + new-instance v0, Ljava/io/File;
9293 + iget-object v1, p0, Landroid/media/MediaRecorder;->pFileDescriptorPath:Ljava/lang/String;
9295 + invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
9297 + invoke-virtual {v0}, Ljava/io/File;->delete()Z
9299 + move-result v1
9301 + if-eqz v1, :cond_18
9303 + iput-boolean v2, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9305 + goto :goto_18
9307 + :cond_34
9308 + const-string v1, "PM,MediaRecorder"
9310 + const-string v2, "Can\'t delete temporary File, because all is null?! It could be that we only want to record audio?!"
9312 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
9314 + const/4 v1, 0x0
9316 + iput-boolean v1, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9318 + goto :goto_18
9319 .end method
9321 .method public native getMaxAmplitude()I
9322 @@ -258,7 +2122,7 @@
9323 .end method
9325 .method public prepare()V
9326 - .registers 8
9327 + .registers 16
9328 .annotation system Ldalvik/annotation/Throws;
9329 value = {
9330 Ljava/lang/IllegalStateException;,
9331 @@ -266,20 +2130,75 @@
9333 .end annotation
9335 - const-wide/16 v2, 0x0
9336 + const/4 v1, -0x2
9338 + const/4 v3, 0x1
9340 + const-wide/16 v13, 0x0
9342 + const/4 v5, 0x0
9344 + const/4 v2, 0x0
9346 + iget-boolean v0, p0, Landroid/media/MediaRecorder;->privacyMode:Z
9348 + if-nez v0, :cond_d
9350 + invoke-direct {p0}, Landroid/media/MediaRecorder;->initiate()V
9352 + :cond_d
9353 + iput-boolean v2, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9355 + const/4 v9, 0x0
9357 + iget v0, p0, Landroid/media/MediaRecorder;->ACTUAL_STATE:I
9359 + packed-switch v0, :pswitch_data_f2
9361 + :cond_15
9362 + :goto_15
9363 + invoke-direct {p0}, Landroid/media/MediaRecorder;->getPackageName()[Ljava/lang/String;
9365 + move-result-object v8
9367 + if-nez v9, :cond_2f
9369 + iget v0, p0, Landroid/media/MediaRecorder;->ACTUAL_STATE:I
9371 + if-ne v0, v3, :cond_c3
9373 + if-eqz v8, :cond_c3
9375 + array-length v0, v8
9377 + if-lez v0, :cond_c3
9379 + iget-object v0, p0, Landroid/media/MediaRecorder;->pSetMan:Landroid/privacy/PrivacySettingsManager;
9381 + aget-object v1, v8, v2
9383 + const-string v4, "camera"
9385 + move v3, v2
9387 + move-object v6, v5
9389 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
9391 + :cond_2f
9392 + :goto_2f
9393 iget-object v0, p0, Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
9395 - if-eqz v0, :cond_25
9396 + if-eqz v0, :cond_db
9398 - new-instance v6, Ljava/io/FileOutputStream;
9399 + new-instance v7, Ljava/io/FileOutputStream;
9401 iget-object v0, p0, Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
9403 - invoke-direct {v6, v0}, Ljava/io/FileOutputStream;-><init>(Ljava/lang/String;)V
9404 + invoke-direct {v7, v0}, Ljava/io/FileOutputStream;-><init>(Ljava/lang/String;)V
9406 - :try_start_d
9407 - invoke-virtual {v6}, Ljava/io/FileOutputStream;->getFD()Ljava/io/FileDescriptor;
9408 + :try_start_3a
9409 + invoke-virtual {v7}, Ljava/io/FileOutputStream;->getFD()Ljava/io/FileDescriptor;
9411 move-result-object v1
9413 @@ -290,39 +2209,189 @@
9414 move-object v0, p0
9416 invoke-direct/range {v0 .. v5}, Landroid/media/MediaRecorder;->_setOutputFile(Ljava/io/FileDescriptor;JJ)V
9417 - :try_end_19
9418 - .catchall {:try_start_d .. :try_end_19} :catchall_20
9419 + :try_end_46
9420 + .catchall {:try_start_3a .. :try_end_46} :catchall_d6
9422 - invoke-virtual {v6}, Ljava/io/FileOutputStream;->close()V
9423 + invoke-virtual {v7}, Ljava/io/FileOutputStream;->close()V
9425 - :goto_1c
9426 + :goto_49
9427 invoke-direct {p0}, Landroid/media/MediaRecorder;->_prepare()V
9429 return-void
9431 - :catchall_20
9432 + :pswitch_4d
9433 + const/4 v0, 0x2
9435 + invoke-direct {p0, v0}, Landroid/media/MediaRecorder;->checkIfPackagesAllowed(I)I
9437 + move-result v0
9439 + if-ne v0, v1, :cond_15
9441 + invoke-direct {p0}, Landroid/media/MediaRecorder;->getPackageName()[Ljava/lang/String;
9443 + move-result-object v10
9445 + if-eqz v10, :cond_68
9447 + array-length v0, v10
9449 + if-lez v0, :cond_68
9451 + iget-object v0, p0, Landroid/media/MediaRecorder;->pSetMan:Landroid/privacy/PrivacySettingsManager;
9453 + aget-object v1, v10, v2
9455 + const-string/jumbo v4, "recordAudio"
9457 + move-object v6, v5
9459 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
9461 + :cond_68
9462 + new-instance v0, Landroid/media/MediaRecorder$PrivacyRunner;
9464 + invoke-direct {v0, p0}, Landroid/media/MediaRecorder$PrivacyRunner;-><init>(Landroid/media/MediaRecorder;)V
9466 + iput-object v0, p0, Landroid/media/MediaRecorder;->pRunner:Landroid/media/MediaRecorder$PrivacyRunner;
9468 + iget-object v0, p0, Landroid/media/MediaRecorder;->pRunner:Landroid/media/MediaRecorder$PrivacyRunner;
9470 + const-wide/16 v11, 0x32
9472 + invoke-virtual {v0, v11, v12}, Landroid/media/MediaRecorder$PrivacyRunner;->setDelay(J)V
9474 + iget-object v0, p0, Landroid/media/MediaRecorder;->pRunner:Landroid/media/MediaRecorder$PrivacyRunner;
9476 + invoke-virtual {v0}, Landroid/media/MediaRecorder$PrivacyRunner;->start()V
9478 + const/4 v9, 0x1
9480 + goto :goto_15
9482 + :pswitch_7d
9483 + const/4 v0, 0x3
9485 + invoke-direct {p0, v0}, Landroid/media/MediaRecorder;->checkIfPackagesAllowed(I)I
9487 + move-result v0
9489 + if-ne v0, v1, :cond_15
9491 + invoke-direct {p0}, Landroid/media/MediaRecorder;->getPackageName()[Ljava/lang/String;
9493 + move-result-object v10
9495 + if-eqz v10, :cond_97
9497 + array-length v0, v10
9499 + if-lez v0, :cond_97
9501 + iget-object v0, p0, Landroid/media/MediaRecorder;->pSetMan:Landroid/privacy/PrivacySettingsManager;
9503 + aget-object v1, v10, v2
9505 + const-string v4, "camera"
9507 + move-object v6, v5
9509 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
9511 + :cond_97
9512 + iget-object v0, p0, Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
9514 + if-eqz v0, :cond_b0
9516 + invoke-direct {p0}, Landroid/media/MediaRecorder;->getPrivacyPath()Ljava/lang/String;
9518 + move-result-object v0
9520 + iput-object v0, p0, Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
9522 + :goto_a1
9523 + new-instance v0, Landroid/media/MediaRecorder$PrivacyRunner;
9525 + invoke-direct {v0, p0}, Landroid/media/MediaRecorder$PrivacyRunner;-><init>(Landroid/media/MediaRecorder;)V
9527 + iput-object v0, p0, Landroid/media/MediaRecorder;->pRunner:Landroid/media/MediaRecorder$PrivacyRunner;
9529 + iget-object v0, p0, Landroid/media/MediaRecorder;->pRunner:Landroid/media/MediaRecorder$PrivacyRunner;
9531 + invoke-virtual {v0}, Landroid/media/MediaRecorder$PrivacyRunner;->start()V
9533 + const/4 v9, 0x1
9535 + goto/16 :goto_15
9537 + :cond_b0
9538 + iget-object v0, p0, Landroid/media/MediaRecorder;->mFd:Ljava/io/FileDescriptor;
9540 + if-eqz v0, :cond_bb
9542 + invoke-direct {p0}, Landroid/media/MediaRecorder;->getPrivacyFileDescriptor()Ljava/io/FileDescriptor;
9544 + move-result-object v0
9546 + iput-object v0, p0, Landroid/media/MediaRecorder;->mFd:Ljava/io/FileDescriptor;
9548 + goto :goto_a1
9550 + :cond_bb
9551 + new-instance v0, Ljava/io/IOException;
9553 + const-string v1, "No valid output file"
9555 + invoke-direct {v0, v1}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
9557 + throw v0
9559 + :cond_c3
9560 + if-eqz v8, :cond_2f
9562 + array-length v0, v8
9564 + if-lez v0, :cond_2f
9566 + iget-object v0, p0, Landroid/media/MediaRecorder;->pSetMan:Landroid/privacy/PrivacySettingsManager;
9568 + aget-object v1, v8, v2
9570 + const-string/jumbo v4, "recordAudio"
9572 + move v3, v2
9574 + move-object v6, v5
9576 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
9578 + goto/16 :goto_2f
9580 + :catchall_d6
9581 move-exception v0
9583 - invoke-virtual {v6}, Ljava/io/FileOutputStream;->close()V
9584 + invoke-virtual {v7}, Ljava/io/FileOutputStream;->close()V
9586 throw v0
9588 - :cond_25
9589 + :cond_db
9590 iget-object v0, p0, Landroid/media/MediaRecorder;->mFd:Ljava/io/FileDescriptor;
9592 - if-eqz v0, :cond_31
9593 + if-eqz v0, :cond_e9
9595 iget-object v1, p0, Landroid/media/MediaRecorder;->mFd:Ljava/io/FileDescriptor;
9597 move-object v0, p0
9599 - move-wide v4, v2
9600 + move-wide v2, v13
9602 + move-wide v4, v13
9604 invoke-direct/range {v0 .. v5}, Landroid/media/MediaRecorder;->_setOutputFile(Ljava/io/FileDescriptor;JJ)V
9606 - goto :goto_1c
9607 + goto/16 :goto_49
9609 - :cond_31
9610 + :cond_e9
9611 new-instance v0, Ljava/io/IOException;
9613 const-string v1, "No valid output file"
9614 @@ -330,23 +2399,99 @@
9615 invoke-direct {v0, v1}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
9617 throw v0
9619 + nop
9621 + :pswitch_data_f2
9622 + .packed-switch 0x0
9623 + :pswitch_4d
9624 + :pswitch_7d
9625 + .end packed-switch
9626 .end method
9628 .method public native release()V
9629 .end method
9631 .method public reset()V
9632 - .registers 3
9633 + .registers 5
9635 + const/4 v3, 0x0
9637 + const/4 v2, 0x1
9639 invoke-direct {p0}, Landroid/media/MediaRecorder;->native_reset()V
9641 - iget-object v0, p0, Landroid/media/MediaRecorder;->mEventHandler:Landroid/media/MediaRecorder$EventHandler;
9642 + iget-boolean v1, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9644 - const/4 v1, 0x0
9645 + if-nez v1, :cond_1c
9647 + iget-object v1, p0, Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
9649 + if-eqz v1, :cond_27
9651 + new-instance v0, Ljava/io/File;
9653 + iget-object v1, p0, Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
9655 + invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
9657 + invoke-virtual {v0}, Ljava/io/File;->delete()Z
9659 + move-result v1
9661 + if-eqz v1, :cond_1c
9663 - invoke-virtual {v0, v1}, Landroid/media/MediaRecorder$EventHandler;->removeCallbacksAndMessages(Ljava/lang/Object;)V
9664 + iput-boolean v2, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9666 + :cond_1c
9667 + :goto_1c
9668 + iput-object v3, p0, Landroid/media/MediaRecorder;->pRunner:Landroid/media/MediaRecorder$PrivacyRunner;
9670 + invoke-static {}, Ljava/lang/System;->gc()V
9672 + iget-object v1, p0, Landroid/media/MediaRecorder;->mEventHandler:Landroid/media/MediaRecorder$EventHandler;
9674 + invoke-virtual {v1, v3}, Landroid/media/MediaRecorder$EventHandler;->removeCallbacksAndMessages(Ljava/lang/Object;)V
9676 return-void
9678 + :cond_27
9679 + iget-object v1, p0, Landroid/media/MediaRecorder;->mFd:Ljava/io/FileDescriptor;
9681 + if-eqz v1, :cond_3f
9683 + iget-object v1, p0, Landroid/media/MediaRecorder;->pFileDescriptorPath:Ljava/lang/String;
9685 + if-eqz v1, :cond_3f
9687 + new-instance v0, Ljava/io/File;
9689 + iget-object v1, p0, Landroid/media/MediaRecorder;->pFileDescriptorPath:Ljava/lang/String;
9691 + invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
9693 + invoke-virtual {v0}, Ljava/io/File;->delete()Z
9695 + move-result v1
9697 + if-eqz v1, :cond_1c
9699 + iput-boolean v2, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9701 + goto :goto_1c
9703 + :cond_3f
9704 + const-string v1, "PM,MediaRecorder"
9706 + const-string v2, "Can\'t delete temporary File, because all is null?! It could be that we only want to record audio?!"
9708 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
9710 + const/4 v1, 0x0
9712 + iput-boolean v1, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9714 + goto :goto_1c
9715 .end method
9717 .method public setAudioChannels(I)V
9718 @@ -506,6 +2651,10 @@
9719 .method public setCaptureRate(D)V
9720 .registers 8
9722 + const/4 v3, 0x1
9724 + iput v3, p0, Landroid/media/MediaRecorder;->ACTUAL_STATE:I
9726 const-string/jumbo v3, "time-lapse-enable=1"
9728 invoke-direct {p0, v3}, Landroid/media/MediaRecorder;->setParameter(Ljava/lang/String;)V
9729 @@ -800,6 +2949,10 @@
9731 iput-object p1, p0, Landroid/media/MediaRecorder;->mFd:Ljava/io/FileDescriptor;
9733 + const/4 v0, 0x0
9735 + iput-boolean v0, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9737 return-void
9738 .end method
9740 @@ -817,6 +2970,10 @@
9742 iput-object p1, p0, Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
9744 + const/4 v0, 0x0
9746 + iput-boolean v0, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9748 return-void
9749 .end method
9751 @@ -829,7 +2986,11 @@
9752 .end method
9754 .method public setPreviewDisplay(Landroid/view/Surface;)V
9755 - .registers 2
9756 + .registers 3
9758 + const/4 v0, 0x1
9760 + iput v0, p0, Landroid/media/MediaRecorder;->ACTUAL_STATE:I
9762 iput-object p1, p0, Landroid/media/MediaRecorder;->mSurface:Landroid/view/Surface;
9764 @@ -839,6 +3000,10 @@
9765 .method public setProfile(Landroid/media/CamcorderProfile;)V
9766 .registers 4
9768 + const/4 v0, 0x1
9770 + iput v0, p0, Landroid/media/MediaRecorder;->ACTUAL_STATE:I
9772 iget v0, p1, Landroid/media/CamcorderProfile;->fileFormat:I
9774 invoke-virtual {p0, v0}, Landroid/media/MediaRecorder;->setOutputFormat(I)V
9775 @@ -865,18 +3030,18 @@
9777 const/16 v1, 0x3e8
9779 - if-lt v0, v1, :cond_28
9780 + if-lt v0, v1, :cond_2b
9782 iget v0, p1, Landroid/media/CamcorderProfile;->quality:I
9784 const/16 v1, 0x3ef
9786 - if-gt v0, v1, :cond_28
9787 + if-gt v0, v1, :cond_2b
9789 - :goto_27
9790 + :goto_2a
9791 return-void
9793 - :cond_28
9794 + :cond_2b
9795 iget v0, p1, Landroid/media/CamcorderProfile;->audioBitRate:I
9797 invoke-virtual {p0, v0}, Landroid/media/MediaRecorder;->setAudioEncodingBitRate(I)V
9798 @@ -893,7 +3058,7 @@
9800 invoke-virtual {p0, v0}, Landroid/media/MediaRecorder;->setAudioEncoder(I)V
9802 - goto :goto_27
9803 + goto :goto_2a
9804 .end method
9806 .method public native setVideoEncoder(I)V
9807 @@ -907,7 +3072,11 @@
9808 .method public setVideoEncodingBitRate(I)V
9809 .registers 4
9811 - if-gtz p1, :cond_a
9812 + const/4 v0, 0x1
9814 + iput v0, p0, Landroid/media/MediaRecorder;->ACTUAL_STATE:I
9816 + if-gtz p1, :cond_d
9818 new-instance v0, Ljava/lang/IllegalArgumentException;
9820 @@ -917,7 +3086,7 @@
9822 throw v0
9824 - :cond_a
9825 + :cond_d
9826 new-instance v0, Ljava/lang/StringBuilder;
9828 invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
9829 diff -Npru stock-framework/smali/android/net/NetworkInfo.smali opd-framework/smali/android/net/NetworkInfo.smali
9830 --- stock-framework/smali/android/net/NetworkInfo.smali 2013-01-08 23:29:04.272092543 -0600
9831 +++ opd-framework/smali/android/net/NetworkInfo.smali 2013-01-08 23:29:43.100285083 -0600
9832 @@ -822,6 +822,14 @@
9833 throw v0
9834 .end method
9836 +.method public setState(Landroid/net/NetworkInfo$State;)V
9837 + .registers 2
9839 + iput-object p1, p0, Landroid/net/NetworkInfo;->mState:Landroid/net/NetworkInfo$State;
9841 + return-void
9842 +.end method
9844 .method setSubtype(ILjava/lang/String;)V
9845 .registers 4
9847 diff -Npru stock-framework/smali/android/net/wifi/WifiInfo.smali opd-framework/smali/android/net/wifi/WifiInfo.smali
9848 --- stock-framework/smali/android/net/wifi/WifiInfo.smali 2013-01-08 23:29:04.484093595 -0600
9849 +++ opd-framework/smali/android/net/wifi/WifiInfo.smali 2013-01-08 23:29:43.220285678 -0600
9850 @@ -265,6 +265,44 @@
9851 return-void
9852 .end method
9854 +.method public constructor <init>(Z)V
9855 + .registers 4
9857 + const/4 v1, -0x1
9859 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
9861 + const-string v0, ""
9863 + invoke-static {v0}, Landroid/net/wifi/WifiSsid;->createFromAsciiEncoded(Ljava/lang/String;)Landroid/net/wifi/WifiSsid;
9865 + move-result-object v0
9867 + iput-object v0, p0, Landroid/net/wifi/WifiInfo;->mWifiSsid:Landroid/net/wifi/WifiSsid;
9869 + const-string v0, ""
9871 + iput-object v0, p0, Landroid/net/wifi/WifiInfo;->mBSSID:Ljava/lang/String;
9873 + iput v1, p0, Landroid/net/wifi/WifiInfo;->mNetworkId:I
9875 + sget-object v0, Landroid/net/wifi/SupplicantState;->UNINITIALIZED:Landroid/net/wifi/SupplicantState;
9877 + iput-object v0, p0, Landroid/net/wifi/WifiInfo;->mSupplicantState:Landroid/net/wifi/SupplicantState;
9879 + const/16 v0, -0x270f
9881 + iput v0, p0, Landroid/net/wifi/WifiInfo;->mRssi:I
9883 + iput v1, p0, Landroid/net/wifi/WifiInfo;->mLinkSpeed:I
9885 + const/4 v0, 0x0
9887 + iput-boolean v0, p0, Landroid/net/wifi/WifiInfo;->mHiddenSSID:Z
9889 + return-void
9890 +.end method
9892 .method static synthetic access$002(Landroid/net/wifi/WifiInfo;Landroid/net/wifi/WifiSsid;)Landroid/net/wifi/WifiSsid;
9893 .registers 2
9895 diff -Npru stock-framework/smali/android/net/wifi/WifiStateMachine.smali opd-framework/smali/android/net/wifi/WifiStateMachine.smali
9896 --- stock-framework/smali/android/net/wifi/WifiStateMachine.smali 2013-01-08 23:29:04.568094008 -0600
9897 +++ opd-framework/smali/android/net/wifi/WifiStateMachine.smali 2013-01-08 23:29:43.264285901 -0600
9898 @@ -6736,7 +6736,7 @@
9900 invoke-virtual {v2, v0}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
9902 - const-string v2, "mUserWantsSuspendOpt "
9903 + const-string/jumbo v2, "mUserWantsSuspendOpt "
9905 invoke-virtual {v1, v2}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
9907 diff -Npru stock-framework/smali/android/os/SystemProperties.smali opd-framework/smali/android/os/SystemProperties.smali
9908 --- stock-framework/smali/android/os/SystemProperties.smali 2013-01-08 23:29:04.904095677 -0600
9909 +++ opd-framework/smali/android/os/SystemProperties.smali 2013-01-08 23:29:43.516287150 -0600
9910 @@ -4,10 +4,26 @@
9913 # static fields
9914 +.field private static final GOT_ERROR:I = -0x3
9916 +.field private static final IS_ALLOWED:I = -0x1
9918 +.field private static final IS_NOT_ALLOWED:I = -0x2
9920 +.field private static final PRIVACY_TAG:Ljava/lang/String; = "SystemProperties"
9922 .field public static final PROP_NAME_MAX:I = 0x1f
9924 .field public static final PROP_VALUE_MAX:I = 0x5b
9926 +.field private static context:Landroid/content/Context;
9928 +.field private static mPm:Landroid/content/pm/IPackageManager;
9930 +.field private static pSetMan:Landroid/privacy/PrivacySettingsManager;
9932 +.field private static privacyMode:Z
9934 .field private static final sChangeCallbacks:Ljava/util/ArrayList;
9935 .annotation system Ldalvik/annotation/Signature;
9936 value = {
9937 @@ -30,6 +46,10 @@
9939 sput-object v0, Landroid/os/SystemProperties;->sChangeCallbacks:Ljava/util/ArrayList;
9941 + const/4 v0, 0x0
9943 + sput-boolean v0, Landroid/os/SystemProperties;->privacyMode:Z
9945 return-void
9946 .end method
9948 @@ -142,6 +162,205 @@
9949 throw v2
9950 .end method
9952 +.method private static checkIfPackagesAllowed()I
9953 + .registers 8
9955 + const/4 v5, -0x3
9957 + :try_start_1
9958 + sget-object v6, Landroid/os/SystemProperties;->pSetMan:Landroid/privacy/PrivacySettingsManager;
9960 + if-eqz v6, :cond_41
9962 + const/4 v2, 0x0
9964 + invoke-static {}, Landroid/os/SystemProperties;->getPackageName()[Ljava/lang/String;
9966 + move-result-object v3
9968 + invoke-static {}, Landroid/os/Process;->myUid()I
9970 + move-result v4
9972 + if-eqz v3, :cond_2c
9974 + const/4 v1, 0x0
9976 + :goto_11
9977 + array-length v6, v3
9979 + if-ge v1, v6, :cond_2a
9981 + sget-object v6, Landroid/os/SystemProperties;->pSetMan:Landroid/privacy/PrivacySettingsManager;
9983 + aget-object v7, v3, v1
9985 + invoke-virtual {v6, v7, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
9987 + move-result-object v2
9989 + if-eqz v2, :cond_26
9991 + invoke-virtual {v2}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
9993 + move-result v6
9995 + if-eqz v6, :cond_26
9997 + const/4 v5, -0x2
9999 + :goto_25
10000 + return v5
10002 + :cond_26
10003 + const/4 v2, 0x0
10005 + add-int/lit8 v1, v1, 0x1
10007 + goto :goto_11
10009 + :cond_2a
10010 + const/4 v5, -0x1
10012 + goto :goto_25
10014 + :cond_2c
10015 + const-string v6, "SystemProperties"
10017 + const-string/jumbo v7, "return GOT_ERROR, because package_names are NULL"
10019 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
10020 + :try_end_34
10021 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_34} :catch_35
10023 + goto :goto_25
10025 + :catch_35
10026 + move-exception v0
10028 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
10030 + const-string v6, "SystemProperties"
10032 + const-string v7, "Got exception in checkIfPackagesAllowed"
10034 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
10036 + goto :goto_25
10038 + :cond_41
10039 + :try_start_41
10040 + const-string v6, "SystemProperties"
10042 + const-string/jumbo v7, "return GOT_ERROR, because pSetMan is NULL"
10044 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
10045 + :try_end_49
10046 + .catch Ljava/lang/Exception; {:try_start_41 .. :try_end_49} :catch_35
10048 + goto :goto_25
10049 +.end method
10051 +.method private static dataAccess(Z)V
10052 + .registers 6
10054 + invoke-static {}, Landroid/os/SystemProperties;->getPackageName()[Ljava/lang/String;
10056 + move-result-object v1
10058 + if-eqz p0, :cond_2f
10060 + if-eqz v1, :cond_2f
10062 + const/4 v0, 0x0
10064 + :goto_9
10065 + array-length v2, v1
10067 + if-ge v0, v2, :cond_58
10069 + const-string v2, "SystemProperties"
10071 + new-instance v3, Ljava/lang/StringBuilder;
10073 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
10075 + const-string v4, "Allowed Package: -"
10077 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
10079 + move-result-object v3
10081 + aget-object v4, v1, v0
10083 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
10085 + move-result-object v3
10087 + const-string v4, "- accessing networkinfo."
10089 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
10091 + move-result-object v3
10093 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
10095 + move-result-object v3
10097 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
10099 + add-int/lit8 v0, v0, 0x1
10101 + goto :goto_9
10103 + :cond_2f
10104 + if-eqz v1, :cond_58
10106 + const/4 v0, 0x0
10108 + :goto_32
10109 + array-length v2, v1
10111 + if-ge v0, v2, :cond_58
10113 + const-string v2, "SystemProperties"
10115 + new-instance v3, Ljava/lang/StringBuilder;
10117 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
10119 + const-string v4, "Blocked Package: -"
10121 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
10123 + move-result-object v3
10125 + aget-object v4, v1, v0
10127 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
10129 + move-result-object v3
10131 + const-string v4, "- accessing networkinfo."
10133 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
10135 + move-result-object v3
10137 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
10139 + move-result-object v3
10141 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
10143 + add-int/lit8 v0, v0, 0x1
10145 + goto :goto_32
10147 + :cond_58
10148 + return-void
10149 +.end method
10151 .method public static get(Ljava/lang/String;)Ljava/lang/String;
10152 .registers 3
10154 @@ -162,11 +381,53 @@
10155 throw v0
10157 :cond_10
10158 + const-string v0, "gsm.operator.alpha"
10160 + invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
10162 + move-result v0
10164 + if-nez v0, :cond_20
10166 + const-string v0, "gsm.operator.numeric"
10168 + invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
10170 + move-result v0
10172 + if-eqz v0, :cond_35
10174 + :cond_20
10175 + invoke-static {}, Landroid/os/SystemProperties;->initiate()V
10177 + invoke-static {}, Landroid/os/SystemProperties;->checkIfPackagesAllowed()I
10179 + move-result v0
10181 + const/4 v1, -0x2
10183 + if-ne v0, v1, :cond_31
10185 + const/4 v0, 0x0
10187 + invoke-static {v0}, Landroid/os/SystemProperties;->dataAccess(Z)V
10189 + const-string v0, ""
10191 + :goto_30
10192 + return-object v0
10194 + :cond_31
10195 + const/4 v0, 0x1
10197 + invoke-static {v0}, Landroid/os/SystemProperties;->dataAccess(Z)V
10199 + :cond_35
10200 invoke-static {p0}, Landroid/os/SystemProperties;->native_get(Ljava/lang/String;)Ljava/lang/String;
10202 move-result-object v0
10204 - return-object v0
10205 + goto :goto_30
10206 .end method
10208 .method public static get(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
10209 @@ -189,11 +450,53 @@
10210 throw v0
10212 :cond_10
10213 + const-string v0, "gsm.operator.alpha"
10215 + invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
10217 + move-result v0
10219 + if-nez v0, :cond_20
10221 + const-string v0, "gsm.operator.numeric"
10223 + invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
10225 + move-result v0
10227 + if-eqz v0, :cond_35
10229 + :cond_20
10230 + invoke-static {}, Landroid/os/SystemProperties;->initiate()V
10232 + invoke-static {}, Landroid/os/SystemProperties;->checkIfPackagesAllowed()I
10234 + move-result v0
10236 + const/4 v1, -0x2
10238 + if-ne v0, v1, :cond_31
10240 + const/4 v0, 0x0
10242 + invoke-static {v0}, Landroid/os/SystemProperties;->dataAccess(Z)V
10244 + const-string v0, ""
10246 + :goto_30
10247 + return-object v0
10249 + :cond_31
10250 + const/4 v0, 0x1
10252 + invoke-static {v0}, Landroid/os/SystemProperties;->dataAccess(Z)V
10254 + :cond_35
10255 invoke-static {p0, p1}, Landroid/os/SystemProperties;->native_get(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
10257 move-result-object v0
10259 - return-object v0
10260 + goto :goto_30
10261 .end method
10263 .method public static getBoolean(Ljava/lang/String;Z)Z
10264 @@ -277,6 +580,135 @@
10265 return-wide v0
10266 .end method
10268 +.method private static getPackageName()[Ljava/lang/String;
10269 + .registers 5
10271 + :try_start_0
10272 + sget-object v3, Landroid/os/SystemProperties;->mPm:Landroid/content/pm/IPackageManager;
10274 + if-eqz v3, :cond_f
10276 + invoke-static {}, Landroid/os/Process;->myUid()I
10278 + move-result v2
10280 + sget-object v3, Landroid/os/SystemProperties;->mPm:Landroid/content/pm/IPackageManager;
10282 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
10284 + move-result-object v1
10286 + :goto_e
10287 + return-object v1
10289 + :cond_f
10290 + const-string/jumbo v3, "package"
10292 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
10294 + move-result-object v3
10296 + invoke-static {v3}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
10298 + move-result-object v3
10300 + sput-object v3, Landroid/os/SystemProperties;->mPm:Landroid/content/pm/IPackageManager;
10302 + invoke-static {}, Landroid/os/Process;->myUid()I
10304 + move-result v2
10306 + sget-object v3, Landroid/os/SystemProperties;->mPm:Landroid/content/pm/IPackageManager;
10308 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
10309 + :try_end_25
10310 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_25} :catch_27
10312 + move-result-object v1
10314 + goto :goto_e
10316 + :catch_27
10317 + move-exception v0
10319 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
10321 + const-string v3, "SystemProperties"
10323 + const-string/jumbo v4, "something went wrong with getting package name"
10325 + invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
10327 + const/4 v1, 0x0
10329 + goto :goto_e
10330 +.end method
10332 +.method private static initiate()V
10333 + .registers 4
10335 + const/4 v1, 0x0
10337 + :try_start_1
10338 + sput-object v1, Landroid/os/SystemProperties;->context:Landroid/content/Context;
10340 + new-instance v1, Landroid/privacy/PrivacySettingsManager;
10342 + sget-object v2, Landroid/os/SystemProperties;->context:Landroid/content/Context;
10344 + const-string/jumbo v3, "privacy"
10346 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
10348 + move-result-object v3
10350 + invoke-static {v3}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
10352 + move-result-object v3
10354 + invoke-direct {v1, v2, v3}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
10356 + sput-object v1, Landroid/os/SystemProperties;->pSetMan:Landroid/privacy/PrivacySettingsManager;
10358 + const-string/jumbo v1, "package"
10360 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
10362 + move-result-object v1
10364 + invoke-static {v1}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
10366 + move-result-object v1
10368 + sput-object v1, Landroid/os/SystemProperties;->mPm:Landroid/content/pm/IPackageManager;
10370 + const/4 v1, 0x1
10372 + sput-boolean v1, Landroid/os/SystemProperties;->privacyMode:Z
10373 + :try_end_27
10374 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_27} :catch_28
10376 + :goto_27
10377 + return-void
10379 + :catch_28
10380 + move-exception v0
10382 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
10384 + const-string v1, "SystemProperties"
10386 + const-string v2, "Something went wrong with initalize variables"
10388 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
10390 + const/4 v1, 0x0
10392 + sput-boolean v1, Landroid/os/SystemProperties;->privacyMode:Z
10394 + goto :goto_27
10395 +.end method
10397 .method private static native native_add_change_callback()V
10398 .end method
10400 diff -Npru stock-framework/smali/android/privacy/IPrivacySettingsManager.smali opd-framework/smali/android/privacy/IPrivacySettingsManager.smali
10401 --- stock-framework/smali/android/privacy/IPrivacySettingsManager.smali 1969-12-31 18:00:00.000000000 -0600
10402 +++ opd-framework/smali/android/privacy/IPrivacySettingsManager.smali 2013-01-08 23:29:43.592287519 -0600
10403 @@ -0,0 +1,104 @@
10404 +.class public interface abstract Landroid/privacy/IPrivacySettingsManager;
10405 +.super Ljava/lang/Object;
10406 +.source "IPrivacySettingsManager.java"
10408 +# interfaces
10409 +.implements Landroid/os/IInterface;
10412 +# annotations
10413 +.annotation system Ldalvik/annotation/MemberClasses;
10414 + value = {
10415 + Landroid/privacy/IPrivacySettingsManager$Stub;
10417 +.end annotation
10420 +# virtual methods
10421 +.method public abstract addObserver(Ljava/lang/String;)V
10422 + .annotation system Ldalvik/annotation/Throws;
10423 + value = {
10424 + Landroid/os/RemoteException;
10426 + .end annotation
10427 +.end method
10429 +.method public abstract deleteSettings(Ljava/lang/String;)Z
10430 + .annotation system Ldalvik/annotation/Throws;
10431 + value = {
10432 + Landroid/os/RemoteException;
10434 + .end annotation
10435 +.end method
10437 +.method public abstract getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
10438 + .annotation system Ldalvik/annotation/Throws;
10439 + value = {
10440 + Landroid/os/RemoteException;
10442 + .end annotation
10443 +.end method
10445 +.method public abstract getVersion()D
10446 + .annotation system Ldalvik/annotation/Throws;
10447 + value = {
10448 + Landroid/os/RemoteException;
10450 + .end annotation
10451 +.end method
10453 +.method public abstract notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
10454 + .annotation system Ldalvik/annotation/Throws;
10455 + value = {
10456 + Landroid/os/RemoteException;
10458 + .end annotation
10459 +.end method
10461 +.method public abstract purgeSettings()Z
10462 + .annotation system Ldalvik/annotation/Throws;
10463 + value = {
10464 + Landroid/os/RemoteException;
10466 + .end annotation
10467 +.end method
10469 +.method public abstract registerObservers()V
10470 + .annotation system Ldalvik/annotation/Throws;
10471 + value = {
10472 + Landroid/os/RemoteException;
10474 + .end annotation
10475 +.end method
10477 +.method public abstract saveSettings(Landroid/privacy/PrivacySettings;)Z
10478 + .annotation system Ldalvik/annotation/Throws;
10479 + value = {
10480 + Landroid/os/RemoteException;
10482 + .end annotation
10483 +.end method
10485 +.method public abstract setBootCompleted()V
10486 + .annotation system Ldalvik/annotation/Throws;
10487 + value = {
10488 + Landroid/os/RemoteException;
10490 + .end annotation
10491 +.end method
10493 +.method public abstract setEnabled(Z)Z
10494 + .annotation system Ldalvik/annotation/Throws;
10495 + value = {
10496 + Landroid/os/RemoteException;
10498 + .end annotation
10499 +.end method
10501 +.method public abstract setNotificationsEnabled(Z)Z
10502 + .annotation system Ldalvik/annotation/Throws;
10503 + value = {
10504 + Landroid/os/RemoteException;
10506 + .end annotation
10507 +.end method
10508 diff -Npru stock-framework/smali/android/privacy/IPrivacySettingsManager$Stub$Proxy.smali opd-framework/smali/android/privacy/IPrivacySettingsManager$Stub$Proxy.smali
10509 --- stock-framework/smali/android/privacy/IPrivacySettingsManager$Stub$Proxy.smali 1969-12-31 18:00:00.000000000 -0600
10510 +++ opd-framework/smali/android/privacy/IPrivacySettingsManager$Stub$Proxy.smali 2013-01-08 23:29:43.596287540 -0600
10511 @@ -0,0 +1,743 @@
10512 +.class Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;
10513 +.super Ljava/lang/Object;
10514 +.source "IPrivacySettingsManager.java"
10516 +# interfaces
10517 +.implements Landroid/privacy/IPrivacySettingsManager;
10520 +# annotations
10521 +.annotation system Ldalvik/annotation/EnclosingClass;
10522 + value = Landroid/privacy/IPrivacySettingsManager$Stub;
10523 +.end annotation
10525 +.annotation system Ldalvik/annotation/InnerClass;
10526 + accessFlags = 0xa
10527 + name = "Proxy"
10528 +.end annotation
10531 +# instance fields
10532 +.field private mRemote:Landroid/os/IBinder;
10535 +# direct methods
10536 +.method constructor <init>(Landroid/os/IBinder;)V
10537 + .registers 2
10539 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
10541 + iput-object p1, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
10543 + return-void
10544 +.end method
10547 +# virtual methods
10548 +.method public addObserver(Ljava/lang/String;)V
10549 + .registers 7
10550 + .annotation system Ldalvik/annotation/Throws;
10551 + value = {
10552 + Landroid/os/RemoteException;
10554 + .end annotation
10556 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10558 + move-result-object v0
10560 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10562 + move-result-object v1
10564 + :try_start_8
10565 + const-string v2, "android.privacy.IPrivacySettingsManager"
10567 + invoke-virtual {v0, v2}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
10569 + invoke-virtual {v0, p1}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
10571 + iget-object v2, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
10573 + const/4 v3, 0x6
10575 + const/4 v4, 0x0
10577 + invoke-interface {v2, v3, v0, v1, v4}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
10579 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
10580 + :try_end_1a
10581 + .catchall {:try_start_8 .. :try_end_1a} :catchall_21
10583 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10585 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10587 + return-void
10589 + :catchall_21
10590 + move-exception v2
10592 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10594 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10596 + throw v2
10597 +.end method
10599 +.method public asBinder()Landroid/os/IBinder;
10600 + .registers 2
10602 + iget-object v0, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
10604 + return-object v0
10605 +.end method
10607 +.method public deleteSettings(Ljava/lang/String;)Z
10608 + .registers 8
10609 + .annotation system Ldalvik/annotation/Throws;
10610 + value = {
10611 + Landroid/os/RemoteException;
10613 + .end annotation
10615 + const/4 v2, 0x0
10617 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10619 + move-result-object v0
10621 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10623 + move-result-object v1
10625 + :try_start_9
10626 + const-string v3, "android.privacy.IPrivacySettingsManager"
10628 + invoke-virtual {v0, v3}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
10630 + invoke-virtual {v0, p1}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
10632 + iget-object v3, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
10634 + const/4 v4, 0x3
10636 + const/4 v5, 0x0
10638 + invoke-interface {v3, v4, v0, v1, v5}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
10640 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
10642 + invoke-virtual {v1}, Landroid/os/Parcel;->readInt()I
10643 + :try_end_1e
10644 + .catchall {:try_start_9 .. :try_end_1e} :catchall_29
10646 + move-result v3
10648 + if-eqz v3, :cond_22
10650 + const/4 v2, 0x1
10652 + :cond_22
10653 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10655 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10657 + return v2
10659 + :catchall_29
10660 + move-exception v3
10662 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10664 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10666 + throw v3
10667 +.end method
10669 +.method public getInterfaceDescriptor()Ljava/lang/String;
10670 + .registers 2
10672 + const-string v0, "android.privacy.IPrivacySettingsManager"
10674 + return-object v0
10675 +.end method
10677 +.method public getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
10678 + .registers 8
10679 + .annotation system Ldalvik/annotation/Throws;
10680 + value = {
10681 + Landroid/os/RemoteException;
10683 + .end annotation
10685 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10687 + move-result-object v0
10689 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10691 + move-result-object v1
10693 + :try_start_8
10694 + const-string v3, "android.privacy.IPrivacySettingsManager"
10696 + invoke-virtual {v0, v3}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
10698 + invoke-virtual {v0, p1}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
10700 + iget-object v3, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
10702 + const/4 v4, 0x1
10704 + const/4 v5, 0x0
10706 + invoke-interface {v3, v4, v0, v1, v5}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
10708 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
10710 + invoke-virtual {v1}, Landroid/os/Parcel;->readInt()I
10712 + move-result v3
10714 + if-eqz v3, :cond_2f
10716 + sget-object v3, Landroid/privacy/PrivacySettings;->CREATOR:Landroid/os/Parcelable$Creator;
10718 + invoke-interface {v3, v1}, Landroid/os/Parcelable$Creator;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
10720 + move-result-object v2
10722 + check-cast v2, Landroid/privacy/PrivacySettings;
10723 + :try_end_28
10724 + .catchall {:try_start_8 .. :try_end_28} :catchall_31
10726 + :goto_28
10727 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10729 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10731 + return-object v2
10733 + :cond_2f
10734 + const/4 v2, 0x0
10736 + goto :goto_28
10738 + :catchall_31
10739 + move-exception v3
10741 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10743 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10745 + throw v3
10746 +.end method
10748 +.method public getVersion()D
10749 + .registers 8
10750 + .annotation system Ldalvik/annotation/Throws;
10751 + value = {
10752 + Landroid/os/RemoteException;
10754 + .end annotation
10756 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10758 + move-result-object v0
10760 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10762 + move-result-object v1
10764 + :try_start_8
10765 + const-string v4, "android.privacy.IPrivacySettingsManager"
10767 + invoke-virtual {v0, v4}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
10769 + iget-object v4, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
10771 + const/16 v5, 0x8
10773 + const/4 v6, 0x0
10775 + invoke-interface {v4, v5, v0, v1, v6}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
10777 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
10779 + invoke-virtual {v1}, Landroid/os/Parcel;->readDouble()D
10780 + :try_end_1b
10781 + .catchall {:try_start_8 .. :try_end_1b} :catchall_23
10783 + move-result-wide v2
10785 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10787 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10789 + return-wide v2
10791 + :catchall_23
10792 + move-exception v4
10794 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10796 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10798 + throw v4
10799 +.end method
10801 +.method public notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
10802 + .registers 10
10803 + .annotation system Ldalvik/annotation/Throws;
10804 + value = {
10805 + Landroid/os/RemoteException;
10807 + .end annotation
10809 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10811 + move-result-object v0
10813 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10815 + move-result-object v1
10817 + :try_start_8
10818 + const-string v2, "android.privacy.IPrivacySettingsManager"
10820 + invoke-virtual {v0, v2}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
10822 + invoke-virtual {v0, p1}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
10824 + invoke-virtual {v0, p2}, Landroid/os/Parcel;->writeByte(B)V
10826 + invoke-virtual {v0, p3}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
10828 + invoke-virtual {v0, p4}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
10830 + iget-object v2, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
10832 + const/4 v3, 0x4
10834 + const/4 v4, 0x0
10836 + invoke-interface {v2, v3, v0, v1, v4}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
10838 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
10839 + :try_end_23
10840 + .catchall {:try_start_8 .. :try_end_23} :catchall_2a
10842 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10844 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10846 + return-void
10848 + :catchall_2a
10849 + move-exception v2
10851 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10853 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10855 + throw v2
10856 +.end method
10858 +.method public purgeSettings()Z
10859 + .registers 7
10860 + .annotation system Ldalvik/annotation/Throws;
10861 + value = {
10862 + Landroid/os/RemoteException;
10864 + .end annotation
10866 + const/4 v2, 0x0
10868 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10870 + move-result-object v0
10872 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10874 + move-result-object v1
10876 + :try_start_9
10877 + const-string v3, "android.privacy.IPrivacySettingsManager"
10879 + invoke-virtual {v0, v3}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
10881 + iget-object v3, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
10883 + const/4 v4, 0x7
10885 + const/4 v5, 0x0
10887 + invoke-interface {v3, v4, v0, v1, v5}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
10889 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
10891 + invoke-virtual {v1}, Landroid/os/Parcel;->readInt()I
10892 + :try_end_1b
10893 + .catchall {:try_start_9 .. :try_end_1b} :catchall_26
10895 + move-result v3
10897 + if-eqz v3, :cond_1f
10899 + const/4 v2, 0x1
10901 + :cond_1f
10902 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10904 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10906 + return v2
10908 + :catchall_26
10909 + move-exception v3
10911 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10913 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10915 + throw v3
10916 +.end method
10918 +.method public registerObservers()V
10919 + .registers 6
10920 + .annotation system Ldalvik/annotation/Throws;
10921 + value = {
10922 + Landroid/os/RemoteException;
10924 + .end annotation
10926 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10928 + move-result-object v0
10930 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10932 + move-result-object v1
10934 + :try_start_8
10935 + const-string v2, "android.privacy.IPrivacySettingsManager"
10937 + invoke-virtual {v0, v2}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
10939 + iget-object v2, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
10941 + const/4 v3, 0x5
10943 + const/4 v4, 0x0
10945 + invoke-interface {v2, v3, v0, v1, v4}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
10947 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
10948 + :try_end_17
10949 + .catchall {:try_start_8 .. :try_end_17} :catchall_1e
10951 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10953 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10955 + return-void
10957 + :catchall_1e
10958 + move-exception v2
10960 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10962 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10964 + throw v2
10965 +.end method
10967 +.method public saveSettings(Landroid/privacy/PrivacySettings;)Z
10968 + .registers 9
10969 + .annotation system Ldalvik/annotation/Throws;
10970 + value = {
10971 + Landroid/os/RemoteException;
10973 + .end annotation
10975 + const/4 v2, 0x1
10977 + const/4 v3, 0x0
10979 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10981 + move-result-object v0
10983 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10985 + move-result-object v1
10987 + :try_start_a
10988 + const-string v4, "android.privacy.IPrivacySettingsManager"
10990 + invoke-virtual {v0, v4}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
10992 + if-eqz p1, :cond_30
10994 + const/4 v4, 0x1
10996 + invoke-virtual {v0, v4}, Landroid/os/Parcel;->writeInt(I)V
10998 + const/4 v4, 0x0
11000 + invoke-virtual {p1, v0, v4}, Landroid/privacy/PrivacySettings;->writeToParcel(Landroid/os/Parcel;I)V
11002 + :goto_19
11003 + iget-object v4, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
11005 + const/4 v5, 0x2
11007 + const/4 v6, 0x0
11009 + invoke-interface {v4, v5, v0, v1, v6}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
11011 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
11013 + invoke-virtual {v1}, Landroid/os/Parcel;->readInt()I
11014 + :try_end_26
11015 + .catchall {:try_start_a .. :try_end_26} :catchall_35
11017 + move-result v4
11019 + if-eqz v4, :cond_3d
11021 + :goto_29
11022 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
11024 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
11026 + return v2
11028 + :cond_30
11029 + const/4 v4, 0x0
11031 + :try_start_31
11032 + invoke-virtual {v0, v4}, Landroid/os/Parcel;->writeInt(I)V
11033 + :try_end_34
11034 + .catchall {:try_start_31 .. :try_end_34} :catchall_35
11036 + goto :goto_19
11038 + :catchall_35
11039 + move-exception v3
11041 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
11043 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
11045 + throw v3
11047 + :cond_3d
11048 + move v2, v3
11050 + goto :goto_29
11051 +.end method
11053 +.method public setBootCompleted()V
11054 + .registers 6
11055 + .annotation system Ldalvik/annotation/Throws;
11056 + value = {
11057 + Landroid/os/RemoteException;
11059 + .end annotation
11061 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
11063 + move-result-object v0
11065 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
11067 + move-result-object v1
11069 + :try_start_8
11070 + const-string v2, "android.privacy.IPrivacySettingsManager"
11072 + invoke-virtual {v0, v2}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
11074 + iget-object v2, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
11076 + const/16 v3, 0xb
11078 + const/4 v4, 0x0
11080 + invoke-interface {v2, v3, v0, v1, v4}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
11082 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
11083 + :try_end_18
11084 + .catchall {:try_start_8 .. :try_end_18} :catchall_1f
11086 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
11088 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
11090 + return-void
11092 + :catchall_1f
11093 + move-exception v2
11095 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
11097 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
11099 + throw v2
11100 +.end method
11102 +.method public setEnabled(Z)Z
11103 + .registers 9
11104 + .annotation system Ldalvik/annotation/Throws;
11105 + value = {
11106 + Landroid/os/RemoteException;
11108 + .end annotation
11110 + const/4 v2, 0x1
11112 + const/4 v3, 0x0
11114 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
11116 + move-result-object v0
11118 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
11120 + move-result-object v1
11122 + :try_start_a
11123 + const-string v4, "android.privacy.IPrivacySettingsManager"
11125 + invoke-virtual {v0, v4}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
11127 + if-eqz p1, :cond_2d
11129 + move v4, v2
11131 + :goto_12
11132 + invoke-virtual {v0, v4}, Landroid/os/Parcel;->writeInt(I)V
11134 + iget-object v4, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
11136 + const/16 v5, 0x9
11138 + const/4 v6, 0x0
11140 + invoke-interface {v4, v5, v0, v1, v6}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
11142 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
11144 + invoke-virtual {v1}, Landroid/os/Parcel;->readInt()I
11145 + :try_end_23
11146 + .catchall {:try_start_a .. :try_end_23} :catchall_31
11148 + move-result v4
11150 + if-eqz v4, :cond_2f
11152 + :goto_26
11153 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
11155 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
11157 + return v2
11159 + :cond_2d
11160 + move v4, v3
11162 + goto :goto_12
11164 + :cond_2f
11165 + move v2, v3
11167 + goto :goto_26
11169 + :catchall_31
11170 + move-exception v3
11172 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
11174 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
11176 + throw v3
11177 +.end method
11179 +.method public setNotificationsEnabled(Z)Z
11180 + .registers 9
11181 + .annotation system Ldalvik/annotation/Throws;
11182 + value = {
11183 + Landroid/os/RemoteException;
11185 + .end annotation
11187 + const/4 v2, 0x1
11189 + const/4 v3, 0x0
11191 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
11193 + move-result-object v0
11195 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
11197 + move-result-object v1
11199 + :try_start_a
11200 + const-string v4, "android.privacy.IPrivacySettingsManager"
11202 + invoke-virtual {v0, v4}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
11204 + if-eqz p1, :cond_2d
11206 + move v4, v2
11208 + :goto_12
11209 + invoke-virtual {v0, v4}, Landroid/os/Parcel;->writeInt(I)V
11211 + iget-object v4, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
11213 + const/16 v5, 0xa
11215 + const/4 v6, 0x0
11217 + invoke-interface {v4, v5, v0, v1, v6}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
11219 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
11221 + invoke-virtual {v1}, Landroid/os/Parcel;->readInt()I
11222 + :try_end_23
11223 + .catchall {:try_start_a .. :try_end_23} :catchall_31
11225 + move-result v4
11227 + if-eqz v4, :cond_2f
11229 + :goto_26
11230 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
11232 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
11234 + return v2
11236 + :cond_2d
11237 + move v4, v3
11239 + goto :goto_12
11241 + :cond_2f
11242 + move v2, v3
11244 + goto :goto_26
11246 + :catchall_31
11247 + move-exception v3
11249 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
11251 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
11253 + throw v3
11254 +.end method
11255 diff -Npru stock-framework/smali/android/privacy/IPrivacySettingsManager$Stub.smali opd-framework/smali/android/privacy/IPrivacySettingsManager$Stub.smali
11256 --- stock-framework/smali/android/privacy/IPrivacySettingsManager$Stub.smali 1969-12-31 18:00:00.000000000 -0600
11257 +++ opd-framework/smali/android/privacy/IPrivacySettingsManager$Stub.smali 2013-01-08 23:29:43.596287540 -0600
11258 @@ -0,0 +1,412 @@
11259 +.class public abstract Landroid/privacy/IPrivacySettingsManager$Stub;
11260 +.super Landroid/os/Binder;
11261 +.source "IPrivacySettingsManager.java"
11263 +# interfaces
11264 +.implements Landroid/privacy/IPrivacySettingsManager;
11267 +# annotations
11268 +.annotation system Ldalvik/annotation/EnclosingClass;
11269 + value = Landroid/privacy/IPrivacySettingsManager;
11270 +.end annotation
11272 +.annotation system Ldalvik/annotation/InnerClass;
11273 + accessFlags = 0x409
11274 + name = "Stub"
11275 +.end annotation
11277 +.annotation system Ldalvik/annotation/MemberClasses;
11278 + value = {
11279 + Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;
11281 +.end annotation
11284 +# static fields
11285 +.field private static final DESCRIPTOR:Ljava/lang/String; = "android.privacy.IPrivacySettingsManager"
11287 +.field static final TRANSACTION_addObserver:I = 0x6
11289 +.field static final TRANSACTION_deleteSettings:I = 0x3
11291 +.field static final TRANSACTION_getSettings:I = 0x1
11293 +.field static final TRANSACTION_getVersion:I = 0x8
11295 +.field static final TRANSACTION_notification:I = 0x4
11297 +.field static final TRANSACTION_purgeSettings:I = 0x7
11299 +.field static final TRANSACTION_registerObservers:I = 0x5
11301 +.field static final TRANSACTION_saveSettings:I = 0x2
11303 +.field static final TRANSACTION_setBootCompleted:I = 0xb
11305 +.field static final TRANSACTION_setEnabled:I = 0x9
11307 +.field static final TRANSACTION_setNotificationsEnabled:I = 0xa
11310 +# direct methods
11311 +.method public constructor <init>()V
11312 + .registers 2
11314 + invoke-direct {p0}, Landroid/os/Binder;-><init>()V
11316 + const-string v0, "android.privacy.IPrivacySettingsManager"
11318 + invoke-virtual {p0, p0, v0}, Landroid/privacy/IPrivacySettingsManager$Stub;->attachInterface(Landroid/os/IInterface;Ljava/lang/String;)V
11320 + return-void
11321 +.end method
11323 +.method public static asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
11324 + .registers 3
11326 + if-nez p0, :cond_4
11328 + const/4 v0, 0x0
11330 + :goto_3
11331 + return-object v0
11333 + :cond_4
11334 + const-string v1, "android.privacy.IPrivacySettingsManager"
11336 + invoke-interface {p0, v1}, Landroid/os/IBinder;->queryLocalInterface(Ljava/lang/String;)Landroid/os/IInterface;
11338 + move-result-object v0
11340 + if-eqz v0, :cond_13
11342 + instance-of v1, v0, Landroid/privacy/IPrivacySettingsManager;
11344 + if-eqz v1, :cond_13
11346 + check-cast v0, Landroid/privacy/IPrivacySettingsManager;
11348 + goto :goto_3
11350 + :cond_13
11351 + new-instance v0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;
11353 + invoke-direct {v0, p0}, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
11355 + goto :goto_3
11356 +.end method
11359 +# virtual methods
11360 +.method public asBinder()Landroid/os/IBinder;
11361 + .registers 1
11363 + return-object p0
11364 +.end method
11366 +.method public onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
11367 + .registers 14
11368 + .annotation system Ldalvik/annotation/Throws;
11369 + value = {
11370 + Landroid/os/RemoteException;
11372 + .end annotation
11374 + const/4 v6, 0x0
11376 + const/4 v7, 0x1
11378 + sparse-switch p1, :sswitch_data_10e
11380 + invoke-super {p0, p1, p2, p3, p4}, Landroid/os/Binder;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
11382 + move-result v7
11384 + :goto_9
11385 + return v7
11387 + :sswitch_a
11388 + const-string v6, "android.privacy.IPrivacySettingsManager"
11390 + invoke-virtual {p3, v6}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
11392 + goto :goto_9
11394 + :sswitch_10
11395 + const-string v8, "android.privacy.IPrivacySettingsManager"
11397 + invoke-virtual {p2, v8}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
11399 + invoke-virtual {p2}, Landroid/os/Parcel;->readString()Ljava/lang/String;
11401 + move-result-object v0
11403 + invoke-virtual {p0, v0}, Landroid/privacy/IPrivacySettingsManager$Stub;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
11405 + move-result-object v4
11407 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
11409 + if-eqz v4, :cond_29
11411 + invoke-virtual {p3, v7}, Landroid/os/Parcel;->writeInt(I)V
11413 + invoke-virtual {v4, p3, v7}, Landroid/privacy/PrivacySettings;->writeToParcel(Landroid/os/Parcel;I)V
11415 + goto :goto_9
11417 + :cond_29
11418 + invoke-virtual {p3, v6}, Landroid/os/Parcel;->writeInt(I)V
11420 + goto :goto_9
11422 + :sswitch_2d
11423 + const-string v8, "android.privacy.IPrivacySettingsManager"
11425 + invoke-virtual {p2, v8}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
11427 + invoke-virtual {p2}, Landroid/os/Parcel;->readInt()I
11429 + move-result v8
11431 + if-eqz v8, :cond_4e
11433 + sget-object v8, Landroid/privacy/PrivacySettings;->CREATOR:Landroid/os/Parcelable$Creator;
11435 + invoke-interface {v8, p2}, Landroid/os/Parcelable$Creator;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
11437 + move-result-object v0
11439 + check-cast v0, Landroid/privacy/PrivacySettings;
11441 + :goto_40
11442 + invoke-virtual {p0, v0}, Landroid/privacy/IPrivacySettingsManager$Stub;->saveSettings(Landroid/privacy/PrivacySettings;)Z
11444 + move-result v4
11446 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
11448 + if-eqz v4, :cond_4a
11450 + move v6, v7
11452 + :cond_4a
11453 + invoke-virtual {p3, v6}, Landroid/os/Parcel;->writeInt(I)V
11455 + goto :goto_9
11457 + :cond_4e
11458 + const/4 v0, 0x0
11460 + goto :goto_40
11462 + :sswitch_50
11463 + const-string v8, "android.privacy.IPrivacySettingsManager"
11465 + invoke-virtual {p2, v8}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
11467 + invoke-virtual {p2}, Landroid/os/Parcel;->readString()Ljava/lang/String;
11469 + move-result-object v0
11471 + invoke-virtual {p0, v0}, Landroid/privacy/IPrivacySettingsManager$Stub;->deleteSettings(Ljava/lang/String;)Z
11473 + move-result v4
11475 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
11477 + if-eqz v4, :cond_63
11479 + move v6, v7
11481 + :cond_63
11482 + invoke-virtual {p3, v6}, Landroid/os/Parcel;->writeInt(I)V
11484 + goto :goto_9
11486 + :sswitch_67
11487 + const-string v6, "android.privacy.IPrivacySettingsManager"
11489 + invoke-virtual {p2, v6}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
11491 + invoke-virtual {p2}, Landroid/os/Parcel;->readString()Ljava/lang/String;
11493 + move-result-object v0
11495 + invoke-virtual {p2}, Landroid/os/Parcel;->readByte()B
11497 + move-result v1
11499 + invoke-virtual {p2}, Landroid/os/Parcel;->readString()Ljava/lang/String;
11501 + move-result-object v2
11503 + invoke-virtual {p2}, Landroid/os/Parcel;->readString()Ljava/lang/String;
11505 + move-result-object v3
11507 + invoke-virtual {p0, v0, v1, v2, v3}, Landroid/privacy/IPrivacySettingsManager$Stub;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
11509 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
11511 + goto :goto_9
11513 + :sswitch_83
11514 + const-string v6, "android.privacy.IPrivacySettingsManager"
11516 + invoke-virtual {p2, v6}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
11518 + invoke-virtual {p0}, Landroid/privacy/IPrivacySettingsManager$Stub;->registerObservers()V
11520 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
11522 + goto/16 :goto_9
11524 + :sswitch_90
11525 + const-string v6, "android.privacy.IPrivacySettingsManager"
11527 + invoke-virtual {p2, v6}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
11529 + invoke-virtual {p2}, Landroid/os/Parcel;->readString()Ljava/lang/String;
11531 + move-result-object v0
11533 + invoke-virtual {p0, v0}, Landroid/privacy/IPrivacySettingsManager$Stub;->addObserver(Ljava/lang/String;)V
11535 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
11537 + goto/16 :goto_9
11539 + :sswitch_a1
11540 + const-string v8, "android.privacy.IPrivacySettingsManager"
11542 + invoke-virtual {p2, v8}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
11544 + invoke-virtual {p0}, Landroid/privacy/IPrivacySettingsManager$Stub;->purgeSettings()Z
11546 + move-result v4
11548 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
11550 + if-eqz v4, :cond_b0
11552 + move v6, v7
11554 + :cond_b0
11555 + invoke-virtual {p3, v6}, Landroid/os/Parcel;->writeInt(I)V
11557 + goto/16 :goto_9
11559 + :sswitch_b5
11560 + const-string v6, "android.privacy.IPrivacySettingsManager"
11562 + invoke-virtual {p2, v6}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
11564 + invoke-virtual {p0}, Landroid/privacy/IPrivacySettingsManager$Stub;->getVersion()D
11566 + move-result-wide v4
11568 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
11570 + invoke-virtual {p3, v4, v5}, Landroid/os/Parcel;->writeDouble(D)V
11572 + goto/16 :goto_9
11574 + :sswitch_c6
11575 + const-string v8, "android.privacy.IPrivacySettingsManager"
11577 + invoke-virtual {p2, v8}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
11579 + invoke-virtual {p2}, Landroid/os/Parcel;->readInt()I
11581 + move-result v8
11583 + if-eqz v8, :cond_e1
11585 + move v0, v7
11587 + :goto_d2
11588 + invoke-virtual {p0, v0}, Landroid/privacy/IPrivacySettingsManager$Stub;->setEnabled(Z)Z
11590 + move-result v4
11592 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
11594 + if-eqz v4, :cond_dc
11596 + move v6, v7
11598 + :cond_dc
11599 + invoke-virtual {p3, v6}, Landroid/os/Parcel;->writeInt(I)V
11601 + goto/16 :goto_9
11603 + :cond_e1
11604 + move v0, v6
11606 + goto :goto_d2
11608 + :sswitch_e3
11609 + const-string v8, "android.privacy.IPrivacySettingsManager"
11611 + invoke-virtual {p2, v8}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
11613 + invoke-virtual {p2}, Landroid/os/Parcel;->readInt()I
11615 + move-result v8
11617 + if-eqz v8, :cond_fe
11619 + move v0, v7
11621 + :goto_ef
11622 + invoke-virtual {p0, v0}, Landroid/privacy/IPrivacySettingsManager$Stub;->setNotificationsEnabled(Z)Z
11624 + move-result v4
11626 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
11628 + if-eqz v4, :cond_f9
11630 + move v6, v7
11632 + :cond_f9
11633 + invoke-virtual {p3, v6}, Landroid/os/Parcel;->writeInt(I)V
11635 + goto/16 :goto_9
11637 + :cond_fe
11638 + move v0, v6
11640 + goto :goto_ef
11642 + :sswitch_100
11643 + const-string v6, "android.privacy.IPrivacySettingsManager"
11645 + invoke-virtual {p2, v6}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
11647 + invoke-virtual {p0}, Landroid/privacy/IPrivacySettingsManager$Stub;->setBootCompleted()V
11649 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
11651 + goto/16 :goto_9
11653 + nop
11655 + :sswitch_data_10e
11656 + .sparse-switch
11657 + 0x1 -> :sswitch_10
11658 + 0x2 -> :sswitch_2d
11659 + 0x3 -> :sswitch_50
11660 + 0x4 -> :sswitch_67
11661 + 0x5 -> :sswitch_83
11662 + 0x6 -> :sswitch_90
11663 + 0x7 -> :sswitch_a1
11664 + 0x8 -> :sswitch_b5
11665 + 0x9 -> :sswitch_c6
11666 + 0xa -> :sswitch_e3
11667 + 0xb -> :sswitch_100
11668 + 0x5f4e5446 -> :sswitch_a
11669 + .end sparse-switch
11670 +.end method
11671 diff -Npru stock-framework/smali/android/privacy/PrivacyFileObserver.smali opd-framework/smali/android/privacy/PrivacyFileObserver.smali
11672 --- stock-framework/smali/android/privacy/PrivacyFileObserver.smali 1969-12-31 18:00:00.000000000 -0600
11673 +++ opd-framework/smali/android/privacy/PrivacyFileObserver.smali 2013-01-08 23:29:43.596287540 -0600
11674 @@ -0,0 +1,272 @@
11675 +.class public final Landroid/privacy/PrivacyFileObserver;
11676 +.super Landroid/os/FileObserver;
11677 +.source "PrivacyFileObserver.java"
11680 +# static fields
11681 +.field public static final PACKAGE_PATH_INDEX:I = 0x3
11683 +.field public static final SETTINGS_TYPE_INDEX:I = 0x4
11685 +.field public static final TAG:Ljava/lang/String; = "PrivacyFileObserver"
11688 +# instance fields
11689 +.field public absolutePath:Ljava/lang/String;
11691 +.field public children:Ljava/util/HashMap;
11692 + .annotation system Ldalvik/annotation/Signature;
11693 + value = {
11694 + "Ljava/util/HashMap",
11695 + "<",
11696 + "Ljava/lang/String;",
11697 + "Landroid/privacy/PrivacyFileObserver;",
11698 + ">;"
11700 + .end annotation
11701 +.end field
11703 +.field private pSetManServ:Landroid/privacy/PrivacySettingsManagerService;
11706 +# direct methods
11707 +.method public constructor <init>(Ljava/lang/String;Landroid/privacy/PrivacySettingsManagerService;)V
11708 + .registers 12
11710 + const/16 v8, 0xfff
11712 + invoke-direct {p0, p1, v8}, Landroid/os/FileObserver;-><init>(Ljava/lang/String;I)V
11714 + iput-object p1, p0, Landroid/privacy/PrivacyFileObserver;->absolutePath:Ljava/lang/String;
11716 + iput-object p2, p0, Landroid/privacy/PrivacyFileObserver;->pSetManServ:Landroid/privacy/PrivacySettingsManagerService;
11718 + new-instance v8, Ljava/util/HashMap;
11720 + invoke-direct {v8}, Ljava/util/HashMap;-><init>()V
11722 + iput-object v8, p0, Landroid/privacy/PrivacyFileObserver;->children:Ljava/util/HashMap;
11724 + new-instance v7, Ljava/io/File;
11726 + iget-object v8, p0, Landroid/privacy/PrivacyFileObserver;->absolutePath:Ljava/lang/String;
11728 + invoke-direct {v7, v8}, Ljava/io/File;-><init>(Ljava/lang/String;)V
11730 + invoke-virtual {v7}, Ljava/io/File;->isDirectory()Z
11732 + move-result v8
11734 + if-eqz v8, :cond_42
11736 + invoke-virtual {v7}, Ljava/io/File;->listFiles()[Ljava/io/File;
11738 + move-result-object v6
11740 + move-object v0, v6
11742 + array-length v4, v0
11744 + const/4 v3, 0x0
11746 + :goto_24
11747 + if-ge v3, v4, :cond_42
11749 + aget-object v2, v0, v3
11751 + invoke-virtual {v2}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
11753 + move-result-object v5
11755 + new-instance v1, Landroid/privacy/PrivacyFileObserver;
11757 + invoke-direct {v1, v5, p2}, Landroid/privacy/PrivacyFileObserver;-><init>(Ljava/lang/String;Landroid/privacy/PrivacySettingsManagerService;)V
11759 + iget-object v8, p0, Landroid/privacy/PrivacyFileObserver;->children:Ljava/util/HashMap;
11761 + invoke-virtual {v8, v5, v1}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
11763 + invoke-virtual {v2}, Ljava/io/File;->isFile()Z
11765 + move-result v8
11767 + if-eqz v8, :cond_3f
11769 + invoke-virtual {v1}, Landroid/privacy/PrivacyFileObserver;->startWatching()V
11771 + :cond_3f
11772 + add-int/lit8 v3, v3, 0x1
11774 + goto :goto_24
11776 + :cond_42
11777 + return-void
11778 +.end method
11781 +# virtual methods
11782 +.method public addObserver(Ljava/lang/String;)V
11783 + .registers 6
11785 + new-instance v2, Ljava/lang/StringBuilder;
11787 + invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
11789 + iget-object v3, p0, Landroid/privacy/PrivacyFileObserver;->absolutePath:Ljava/lang/String;
11791 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
11793 + move-result-object v2
11795 + const-string v3, "/"
11797 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
11799 + move-result-object v2
11801 + invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
11803 + move-result-object v2
11805 + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
11807 + move-result-object v1
11809 + iget-object v2, p0, Landroid/privacy/PrivacyFileObserver;->children:Ljava/util/HashMap;
11811 + invoke-virtual {v2, v1}, Ljava/util/HashMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;
11813 + new-instance v0, Landroid/privacy/PrivacyFileObserver;
11815 + iget-object v2, p0, Landroid/privacy/PrivacyFileObserver;->pSetManServ:Landroid/privacy/PrivacySettingsManagerService;
11817 + invoke-direct {v0, v1, v2}, Landroid/privacy/PrivacyFileObserver;-><init>(Ljava/lang/String;Landroid/privacy/PrivacySettingsManagerService;)V
11819 + iget-object v2, p0, Landroid/privacy/PrivacyFileObserver;->children:Ljava/util/HashMap;
11821 + invoke-virtual {v2, v1, v0}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
11823 + return-void
11824 +.end method
11826 +.method public onEvent(ILjava/lang/String;)V
11827 + .registers 12
11829 + and-int/lit8 v5, p1, 0x1
11831 + if-eqz v5, :cond_48
11833 + new-instance v4, Ljava/util/StringTokenizer;
11835 + iget-object v5, p0, Landroid/privacy/PrivacyFileObserver;->absolutePath:Ljava/lang/String;
11837 + const-string v6, "/"
11839 + invoke-direct {v4, v5, v6}, Ljava/util/StringTokenizer;-><init>(Ljava/lang/String;Ljava/lang/String;)V
11841 + const/4 v0, 0x0
11843 + :goto_e
11844 + const/4 v5, 0x3
11846 + if-ge v0, v5, :cond_1d
11848 + invoke-virtual {v4}, Ljava/util/StringTokenizer;->hasMoreElements()Z
11850 + move-result v5
11852 + if-eqz v5, :cond_1d
11854 + invoke-virtual {v4}, Ljava/util/StringTokenizer;->nextToken()Ljava/lang/String;
11856 + add-int/lit8 v0, v0, 0x1
11858 + goto :goto_e
11860 + :cond_1d
11861 + invoke-virtual {v4}, Ljava/util/StringTokenizer;->nextToken()Ljava/lang/String;
11863 + move-result-object v2
11865 + const/4 v3, 0x0
11867 + invoke-virtual {v4}, Ljava/util/StringTokenizer;->hasMoreElements()Z
11869 + move-result v5
11871 + if-eqz v5, :cond_2c
11873 + invoke-virtual {v4}, Ljava/util/StringTokenizer;->nextToken()Ljava/lang/String;
11875 + move-result-object v3
11877 + :cond_2c
11878 + if-eqz v3, :cond_49
11880 + :try_start_2e
11881 + const-string v5, "ipTableProtectSetting"
11883 + invoke-virtual {v3, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
11885 + move-result v5
11887 + if-eqz v5, :cond_49
11889 + iget-object v5, p0, Landroid/privacy/PrivacyFileObserver;->pSetManServ:Landroid/privacy/PrivacySettingsManagerService;
11891 + invoke-virtual {v5, v2}, Landroid/privacy/PrivacySettingsManagerService;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
11893 + move-result-object v1
11895 + iget-object v5, p0, Landroid/privacy/PrivacyFileObserver;->pSetManServ:Landroid/privacy/PrivacySettingsManagerService;
11897 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getIpTableProtectSetting()B
11899 + move-result v6
11901 + const-string v7, "iptables"
11903 + const/4 v8, 0x0
11905 + invoke-virtual {v5, v2, v6, v7, v8}, Landroid/privacy/PrivacySettingsManagerService;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
11907 + :cond_48
11908 + :goto_48
11909 + return-void
11911 + :cond_49
11912 + iget-object v5, p0, Landroid/privacy/PrivacyFileObserver;->pSetManServ:Landroid/privacy/PrivacySettingsManagerService;
11914 + invoke-virtual {v5, v2}, Landroid/privacy/PrivacySettingsManagerService;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
11916 + move-result-object v1
11918 + iget-object v5, p0, Landroid/privacy/PrivacyFileObserver;->pSetManServ:Landroid/privacy/PrivacySettingsManagerService;
11920 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getSystemLogsSetting()B
11922 + move-result v6
11924 + const-string/jumbo v7, "systemLogs"
11926 + const/4 v8, 0x0
11928 + invoke-virtual {v5, v2, v6, v7, v8}, Landroid/privacy/PrivacySettingsManagerService;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
11929 + :try_end_5c
11930 + .catch Ljava/lang/Exception; {:try_start_2e .. :try_end_5c} :catch_5d
11932 + goto :goto_48
11934 + :catch_5d
11935 + move-exception v5
11937 + goto :goto_48
11938 +.end method
11940 +.method public startWatching()V
11941 + .registers 1
11943 + invoke-super {p0}, Landroid/os/FileObserver;->startWatching()V
11945 + return-void
11946 +.end method
11947 diff -Npru stock-framework/smali/android/privacy/PrivacyPersistenceAdapter.smali opd-framework/smali/android/privacy/PrivacyPersistenceAdapter.smali
11948 --- stock-framework/smali/android/privacy/PrivacyPersistenceAdapter.smali 1969-12-31 18:00:00.000000000 -0600
11949 +++ opd-framework/smali/android/privacy/PrivacyPersistenceAdapter.smali 2013-01-08 23:29:43.604287582 -0600
11950 @@ -0,0 +1,5005 @@
11951 +.class public final Landroid/privacy/PrivacyPersistenceAdapter;
11952 +.super Ljava/lang/Object;
11953 +.source "PrivacyPersistenceAdapter.java"
11956 +# static fields
11957 +.field private static final CREATE_TABLE_ALLOWED_CONTACTS:Ljava/lang/String; = "CREATE TABLE IF NOT EXISTS allowed_contacts ( settings_id, contact_id, PRIMARY KEY(settings_id, contact_id) );"
11959 +.field private static final CREATE_TABLE_MAP:Ljava/lang/String; = "CREATE TABLE IF NOT EXISTS map ( name TEXT PRIMARY KEY, value TEXT );"
11961 +.field private static final CREATE_TABLE_SETTINGS:Ljava/lang/String; = "CREATE TABLE IF NOT EXISTS settings ( _id INTEGER PRIMARY KEY AUTOINCREMENT, packageName TEXT, uid INTEGER, deviceIdSetting INTEGER, deviceId TEXT, line1NumberSetting INTEGER, line1Number TEXT, locationGpsSetting INTEGER, locationGpsLat TEXT, locationGpsLon TEXT, locationNetworkSetting INTEGER, locationNetworkLat TEXT, locationNetworkLon TEXT, networkInfoSetting INTEGER, simInfoSetting INTEGER, simSerialNumberSetting INTEGER, simSerialNumber TEXT, subscriberIdSetting INTEGER, subscriberId TEXT, accountsSetting INTEGER, accountsAuthTokensSetting INTEGER, outgoingCallsSetting INTEGER, incomingCallsSetting INTEGER, contactsSetting INTEGER, calendarSetting INTEGER, mmsSetting INTEGER, smsSetting INTEGER, callLogSetting INTEGER, bookmarksSetting INTEGER, systemLogsSetting INTEGER, externalStorageSetting INTEGER, cameraSetting INTEGER, recordAudioSetting INTEGER, notificationSetting INTEGER, intentBootCompletedSetting INTEGER, smsSendSetting INTEGER, phoneCallSetting INTEGER, ipTableProtectSetting INTEGER, iccAccessSetting INTEGER, addOnManagementSetting INTEGER, androidIdSetting INTEGER, androidId TEXT, wifiInfoSetting INTEGER, switchConnectivitySetting INTEGER, sendMmsSetting INTEGER, forceOnlineState INTEGER, switchWifiStateSetting INTEGER);"
11963 +.field private static final DATABASE_FIELDS:[Ljava/lang/String; = null
11965 +.field private static final DATABASE_FILE:Ljava/lang/String; = "/data/system/privacy.db"
11967 +.field private static final DATABASE_VERSION:I = 0x4
11969 +.field public static final DUMMY_UID:I = -0x1
11971 +.field private static final INSERT_ENABLED:Ljava/lang/String; = "INSERT OR REPLACE INTO map (name, value) VALUES (\"enabled\", \"1\");"
11973 +.field private static final INSERT_NOTIFICATIONS_ENABLED:Ljava/lang/String; = "INSERT OR REPLACE INTO map (name, value) VALUES (\"notifications_enabled\", \"1\");"
11975 +.field private static final INSERT_VERSION:Ljava/lang/String; = "INSERT OR REPLACE INTO map (name, value) VALUES (\"db_version\", 4);"
11977 +.field private static final LOG_LOCKING:Z = false
11979 +.field private static final RETRY_QUERY_COUNT:I = 0x5
11981 +.field public static final SETTINGS_DIRECTORY:Ljava/lang/String; = "/data/system/privacy"
11983 +.field public static final SETTING_DB_VERSION:Ljava/lang/String; = "db_version"
11985 +.field public static final SETTING_ENABLED:Ljava/lang/String; = "enabled"
11987 +.field public static final SETTING_NOTIFICATIONS_ENABLED:Ljava/lang/String; = "notifications_enabled"
11989 +.field private static final TABLE_ALLOWED_CONTACTS:Ljava/lang/String; = "allowed_contacts"
11991 +.field private static final TABLE_MAP:Ljava/lang/String; = "map"
11993 +.field private static final TABLE_SETTINGS:Ljava/lang/String; = "settings"
11995 +.field private static final TABLE_VERSION:Ljava/lang/String; = "version"
11997 +.field private static final TAG:Ljava/lang/String; = "PrivacyPersistenceAdapter"
11999 +.field public static final VALUE_FALSE:Ljava/lang/String; = "0"
12001 +.field public static final VALUE_TRUE:Ljava/lang/String; = "1"
12003 +.field public static volatile sDbAccessThreads:Ljava/lang/Integer;
12005 +.field private static sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
12007 +.field public static volatile sDbVersion:I
12010 +# instance fields
12011 +.field private mContext:Landroid/content/Context;
12013 +.field private mDb:Landroid/database/sqlite/SQLiteDatabase;
12016 +# direct methods
12017 +.method static constructor <clinit>()V
12018 + .registers 3
12020 + const/4 v2, 0x0
12022 + invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
12024 + move-result-object v0
12026 + sput-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
12028 + new-instance v0, Ljava/util/concurrent/locks/ReentrantReadWriteLock;
12030 + invoke-direct {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;-><init>()V
12032 + sput-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
12034 + const/16 v0, 0x2f
12036 + new-array v0, v0, [Ljava/lang/String;
12038 + const-string v1, "_id"
12040 + aput-object v1, v0, v2
12042 + const/4 v1, 0x1
12044 + const-string/jumbo v2, "packageName"
12046 + aput-object v2, v0, v1
12048 + const/4 v1, 0x2
12050 + const-string/jumbo v2, "uid"
12052 + aput-object v2, v0, v1
12054 + const/4 v1, 0x3
12056 + const-string v2, "deviceIdSetting"
12058 + aput-object v2, v0, v1
12060 + const/4 v1, 0x4
12062 + const-string v2, "deviceId"
12064 + aput-object v2, v0, v1
12066 + const/4 v1, 0x5
12068 + const-string v2, "line1NumberSetting"
12070 + aput-object v2, v0, v1
12072 + const/4 v1, 0x6
12074 + const-string v2, "line1Number"
12076 + aput-object v2, v0, v1
12078 + const/4 v1, 0x7
12080 + const-string v2, "locationGpsSetting"
12082 + aput-object v2, v0, v1
12084 + const/16 v1, 0x8
12086 + const-string v2, "locationGpsLat"
12088 + aput-object v2, v0, v1
12090 + const/16 v1, 0x9
12092 + const-string v2, "locationGpsLon"
12094 + aput-object v2, v0, v1
12096 + const/16 v1, 0xa
12098 + const-string v2, "locationNetworkSetting"
12100 + aput-object v2, v0, v1
12102 + const/16 v1, 0xb
12104 + const-string v2, "locationNetworkLat"
12106 + aput-object v2, v0, v1
12108 + const/16 v1, 0xc
12110 + const-string v2, "locationNetworkLon"
12112 + aput-object v2, v0, v1
12114 + const/16 v1, 0xd
12116 + const-string/jumbo v2, "networkInfoSetting"
12118 + aput-object v2, v0, v1
12120 + const/16 v1, 0xe
12122 + const-string/jumbo v2, "simInfoSetting"
12124 + aput-object v2, v0, v1
12126 + const/16 v1, 0xf
12128 + const-string/jumbo v2, "simSerialNumberSetting"
12130 + aput-object v2, v0, v1
12132 + const/16 v1, 0x10
12134 + const-string/jumbo v2, "simSerialNumber"
12136 + aput-object v2, v0, v1
12138 + const/16 v1, 0x11
12140 + const-string/jumbo v2, "subscriberIdSetting"
12142 + aput-object v2, v0, v1
12144 + const/16 v1, 0x12
12146 + const-string/jumbo v2, "subscriberId"
12148 + aput-object v2, v0, v1
12150 + const/16 v1, 0x13
12152 + const-string v2, "accountsSetting"
12154 + aput-object v2, v0, v1
12156 + const/16 v1, 0x14
12158 + const-string v2, "accountsAuthTokensSetting"
12160 + aput-object v2, v0, v1
12162 + const/16 v1, 0x15
12164 + const-string/jumbo v2, "outgoingCallsSetting"
12166 + aput-object v2, v0, v1
12168 + const/16 v1, 0x16
12170 + const-string v2, "incomingCallsSetting"
12172 + aput-object v2, v0, v1
12174 + const/16 v1, 0x17
12176 + const-string v2, "contactsSetting"
12178 + aput-object v2, v0, v1
12180 + const/16 v1, 0x18
12182 + const-string v2, "calendarSetting"
12184 + aput-object v2, v0, v1
12186 + const/16 v1, 0x19
12188 + const-string/jumbo v2, "mmsSetting"
12190 + aput-object v2, v0, v1
12192 + const/16 v1, 0x1a
12194 + const-string/jumbo v2, "smsSetting"
12196 + aput-object v2, v0, v1
12198 + const/16 v1, 0x1b
12200 + const-string v2, "callLogSetting"
12202 + aput-object v2, v0, v1
12204 + const/16 v1, 0x1c
12206 + const-string v2, "bookmarksSetting"
12208 + aput-object v2, v0, v1
12210 + const/16 v1, 0x1d
12212 + const-string/jumbo v2, "systemLogsSetting"
12214 + aput-object v2, v0, v1
12216 + const/16 v1, 0x1e
12218 + const-string v2, "externalStorageSetting"
12220 + aput-object v2, v0, v1
12222 + const/16 v1, 0x1f
12224 + const-string v2, "cameraSetting"
12226 + aput-object v2, v0, v1
12228 + const/16 v1, 0x20
12230 + const-string/jumbo v2, "recordAudioSetting"
12232 + aput-object v2, v0, v1
12234 + const/16 v1, 0x21
12236 + const-string/jumbo v2, "notificationSetting"
12238 + aput-object v2, v0, v1
12240 + const/16 v1, 0x22
12242 + const-string v2, "intentBootCompletedSetting"
12244 + aput-object v2, v0, v1
12246 + const/16 v1, 0x23
12248 + const-string/jumbo v2, "smsSendSetting"
12250 + aput-object v2, v0, v1
12252 + const/16 v1, 0x24
12254 + const-string/jumbo v2, "phoneCallSetting"
12256 + aput-object v2, v0, v1
12258 + const/16 v1, 0x25
12260 + const-string v2, "ipTableProtectSetting"
12262 + aput-object v2, v0, v1
12264 + const/16 v1, 0x26
12266 + const-string v2, "iccAccessSetting"
12268 + aput-object v2, v0, v1
12270 + const/16 v1, 0x27
12272 + const-string v2, "addOnManagementSetting"
12274 + aput-object v2, v0, v1
12276 + const/16 v1, 0x28
12278 + const-string v2, "androidIdSetting"
12280 + aput-object v2, v0, v1
12282 + const/16 v1, 0x29
12284 + const-string v2, "androidId"
12286 + aput-object v2, v0, v1
12288 + const/16 v1, 0x2a
12290 + const-string/jumbo v2, "wifiInfoSetting"
12292 + aput-object v2, v0, v1
12294 + const/16 v1, 0x2b
12296 + const-string/jumbo v2, "switchConnectivitySetting"
12298 + aput-object v2, v0, v1
12300 + const/16 v1, 0x2c
12302 + const-string/jumbo v2, "sendMmsSetting"
12304 + aput-object v2, v0, v1
12306 + const/16 v1, 0x2d
12308 + const-string v2, "forceOnlineState"
12310 + aput-object v2, v0, v1
12312 + const/16 v1, 0x2e
12314 + const-string/jumbo v2, "switchWifiStateSetting"
12316 + aput-object v2, v0, v1
12318 + sput-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->DATABASE_FIELDS:[Ljava/lang/String;
12320 + return-void
12321 +.end method
12323 +.method public constructor <init>(Landroid/content/Context;)V
12324 + .registers 4
12326 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
12328 + iput-object p1, p0, Landroid/privacy/PrivacyPersistenceAdapter;->mContext:Landroid/content/Context;
12330 + new-instance v0, Ljava/io/File;
12332 + const-string v1, "/data/system/"
12334 + invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
12336 + invoke-virtual {v0}, Ljava/io/File;->canWrite()Z
12338 + move-result v0
12340 + if-eqz v0, :cond_6c
12342 + new-instance v0, Ljava/io/File;
12344 + const-string v1, "/data/system/privacy.db"
12346 + invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
12348 + invoke-virtual {v0}, Ljava/io/File;->exists()Z
12350 + move-result v0
12352 + if-eqz v0, :cond_2c
12354 + new-instance v0, Ljava/io/File;
12356 + const-string v1, "/data/system/privacy"
12358 + invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
12360 + invoke-virtual {v0}, Ljava/io/File;->exists()Z
12362 + move-result v0
12364 + if-nez v0, :cond_5e
12366 + :cond_2c
12367 + sget-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
12369 + invoke-interface {v0}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
12371 + move-result-object v0
12373 + invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V
12375 + :try_start_35
12376 + new-instance v0, Ljava/io/File;
12378 + const-string v1, "/data/system/privacy.db"
12380 + invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
12382 + invoke-virtual {v0}, Ljava/io/File;->exists()Z
12384 + move-result v0
12386 + if-nez v0, :cond_45
12388 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->createDatabase()V
12390 + :cond_45
12391 + new-instance v0, Ljava/io/File;
12393 + const-string v1, "/data/system/privacy"
12395 + invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
12397 + invoke-virtual {v0}, Ljava/io/File;->exists()Z
12399 + move-result v0
12401 + if-nez v0, :cond_55
12403 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->createSettingsDir()V
12404 + :try_end_55
12405 + .catchall {:try_start_35 .. :try_end_55} :catchall_6d
12407 + :cond_55
12408 + sget-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
12410 + invoke-interface {v0}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
12412 + move-result-object v0
12414 + invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V
12416 + :cond_5e
12417 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->getDbVersion()I
12419 + move-result v0
12421 + sput v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbVersion:I
12423 + sget v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbVersion:I
12425 + const/4 v1, 0x4
12427 + if-ge v0, v1, :cond_6c
12429 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->upgradeDatabase()V
12431 + :cond_6c
12432 + return-void
12434 + :catchall_6d
12435 + move-exception v0
12437 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
12439 + invoke-interface {v1}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
12441 + move-result-object v1
12443 + invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V
12445 + throw v0
12446 +.end method
12448 +.method private closeIdleDatabase()V
12449 + .registers 3
12451 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
12453 + monitor-enter v1
12455 + :try_start_3
12456 + sget-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
12458 + sget-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
12460 + invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
12462 + move-result v0
12464 + add-int/lit8 v0, v0, -0x1
12466 + invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
12468 + move-result-object v0
12470 + sput-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
12472 + sget-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
12474 + invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
12476 + move-result v0
12478 + if-nez v0, :cond_2c
12480 + iget-object v0, p0, Landroid/privacy/PrivacyPersistenceAdapter;->mDb:Landroid/database/sqlite/SQLiteDatabase;
12482 + if-eqz v0, :cond_2c
12484 + iget-object v0, p0, Landroid/privacy/PrivacyPersistenceAdapter;->mDb:Landroid/database/sqlite/SQLiteDatabase;
12486 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z
12488 + move-result v0
12490 + if-eqz v0, :cond_2c
12492 + iget-object v0, p0, Landroid/privacy/PrivacyPersistenceAdapter;->mDb:Landroid/database/sqlite/SQLiteDatabase;
12494 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->close()V
12496 + :cond_2c
12497 + monitor-exit v1
12499 + return-void
12501 + :catchall_2e
12502 + move-exception v0
12504 + monitor-exit v1
12505 + :try_end_30
12506 + .catchall {:try_start_3 .. :try_end_30} :catchall_2e
12508 + throw v0
12509 +.end method
12511 +.method private createDatabase()V
12512 + .registers 6
12514 + const-string v2, "PrivacyPersistenceAdapter"
12516 + const-string v3, "createDatabase - creating privacy database file"
12518 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
12520 + :try_start_7
12521 + const-string v2, "/data/system/privacy.db"
12523 + const/4 v3, 0x0
12525 + const/high16 v4, 0x1000
12527 + invoke-static {v2, v3, v4}, Landroid/database/sqlite/SQLiteDatabase;->openDatabase(Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;I)Landroid/database/sqlite/SQLiteDatabase;
12529 + move-result-object v0
12531 + const-string v2, "PrivacyPersistenceAdapter"
12533 + const-string v3, "createDatabase - creating privacy database"
12535 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
12537 + const-string v2, "CREATE TABLE IF NOT EXISTS settings ( _id INTEGER PRIMARY KEY AUTOINCREMENT, packageName TEXT, uid INTEGER, deviceIdSetting INTEGER, deviceId TEXT, line1NumberSetting INTEGER, line1Number TEXT, locationGpsSetting INTEGER, locationGpsLat TEXT, locationGpsLon TEXT, locationNetworkSetting INTEGER, locationNetworkLat TEXT, locationNetworkLon TEXT, networkInfoSetting INTEGER, simInfoSetting INTEGER, simSerialNumberSetting INTEGER, simSerialNumber TEXT, subscriberIdSetting INTEGER, subscriberId TEXT, accountsSetting INTEGER, accountsAuthTokensSetting INTEGER, outgoingCallsSetting INTEGER, incomingCallsSetting INTEGER, contactsSetting INTEGER, calendarSetting INTEGER, mmsSetting INTEGER, smsSetting INTEGER, callLogSetting INTEGER, bookmarksSetting INTEGER, systemLogsSetting INTEGER, externalStorageSetting INTEGER, cameraSetting INTEGER, recordAudioSetting INTEGER, notificationSetting INTEGER, intentBootCompletedSetting INTEGER, smsSendSetting INTEGER, phoneCallSetting INTEGER, ipTableProtectSetting INTEGER, iccAccessSetting INTEGER, addOnManagementSetting INTEGER, androidIdSetting INTEGER, androidId TEXT, wifiInfoSetting INTEGER, switchConnectivitySetting INTEGER, sendMmsSetting INTEGER, forceOnlineState INTEGER, switchWifiStateSetting INTEGER);"
12539 + invoke-virtual {v0, v2}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
12541 + const-string v2, "CREATE TABLE IF NOT EXISTS allowed_contacts ( settings_id, contact_id, PRIMARY KEY(settings_id, contact_id) );"
12543 + invoke-virtual {v0, v2}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
12545 + const-string v2, "CREATE TABLE IF NOT EXISTS map ( name TEXT PRIMARY KEY, value TEXT );"
12547 + invoke-virtual {v0, v2}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
12549 + const-string v2, "INSERT OR REPLACE INTO map (name, value) VALUES (\"db_version\", 4);"
12551 + invoke-virtual {v0, v2}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
12553 + const-string v2, "INSERT OR REPLACE INTO map (name, value) VALUES (\"enabled\", \"1\");"
12555 + invoke-virtual {v0, v2}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
12557 + const-string v2, "INSERT OR REPLACE INTO map (name, value) VALUES (\"notifications_enabled\", \"1\");"
12559 + invoke-virtual {v0, v2}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
12561 + if-eqz v0, :cond_40
12563 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z
12565 + move-result v2
12567 + if-eqz v2, :cond_40
12569 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->close()V
12570 + :try_end_40
12571 + .catch Landroid/database/SQLException; {:try_start_7 .. :try_end_40} :catch_41
12573 + :cond_40
12574 + :goto_40
12575 + return-void
12577 + :catch_41
12578 + move-exception v1
12580 + const-string v2, "PrivacyPersistenceAdapter"
12582 + const-string v3, "createDatabase - failed to create privacy database"
12584 + invoke-static {v2, v3, v1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
12586 + goto :goto_40
12587 +.end method
12589 +.method private createSettingsDir()V
12590 + .registers 5
12592 + const/4 v3, 0x1
12594 + const/4 v2, 0x0
12596 + new-instance v0, Ljava/io/File;
12598 + const-string v1, "/data/system/privacy/"
12600 + invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
12602 + invoke-virtual {v0}, Ljava/io/File;->mkdirs()Z
12604 + invoke-virtual {v0, v3, v2}, Ljava/io/File;->setReadable(ZZ)Z
12606 + invoke-virtual {v0, v3, v2}, Ljava/io/File;->setExecutable(ZZ)Z
12608 + return-void
12609 +.end method
12611 +.method private deleteRecursive(Ljava/io/File;)V
12612 + .registers 7
12614 + invoke-virtual {p1}, Ljava/io/File;->isDirectory()Z
12616 + move-result v4
12618 + if-eqz v4, :cond_16
12620 + invoke-virtual {p1}, Ljava/io/File;->listFiles()[Ljava/io/File;
12622 + move-result-object v0
12624 + array-length v3, v0
12626 + const/4 v2, 0x0
12628 + :goto_c
12629 + if-ge v2, v3, :cond_16
12631 + aget-object v1, v0, v2
12633 + invoke-direct {p0, v1}, Landroid/privacy/PrivacyPersistenceAdapter;->deleteRecursive(Ljava/io/File;)V
12635 + add-int/lit8 v2, v2, 0x1
12637 + goto :goto_c
12639 + :cond_16
12640 + invoke-virtual {p1}, Ljava/io/File;->delete()Z
12642 + return-void
12643 +.end method
12645 +.method private declared-synchronized getDatabase()Landroid/database/sqlite/SQLiteDatabase;
12646 + .registers 4
12648 + monitor-enter p0
12650 + :try_start_1
12651 + iget-object v0, p0, Landroid/privacy/PrivacyPersistenceAdapter;->mDb:Landroid/database/sqlite/SQLiteDatabase;
12653 + if-eqz v0, :cond_15
12655 + iget-object v0, p0, Landroid/privacy/PrivacyPersistenceAdapter;->mDb:Landroid/database/sqlite/SQLiteDatabase;
12657 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z
12659 + move-result v0
12661 + if-eqz v0, :cond_15
12663 + iget-object v0, p0, Landroid/privacy/PrivacyPersistenceAdapter;->mDb:Landroid/database/sqlite/SQLiteDatabase;
12665 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->isReadOnly()Z
12667 + move-result v0
12669 + if-eqz v0, :cond_1f
12671 + :cond_15
12672 + const-string v0, "/data/system/privacy.db"
12674 + const/4 v1, 0x0
12676 + const/4 v2, 0x0
12678 + invoke-static {v0, v1, v2}, Landroid/database/sqlite/SQLiteDatabase;->openDatabase(Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;I)Landroid/database/sqlite/SQLiteDatabase;
12680 + move-result-object v0
12682 + iput-object v0, p0, Landroid/privacy/PrivacyPersistenceAdapter;->mDb:Landroid/database/sqlite/SQLiteDatabase;
12684 + :cond_1f
12685 + iget-object v0, p0, Landroid/privacy/PrivacyPersistenceAdapter;->mDb:Landroid/database/sqlite/SQLiteDatabase;
12686 + :try_end_21
12687 + .catchall {:try_start_1 .. :try_end_21} :catchall_23
12689 + monitor-exit p0
12691 + return-object v0
12693 + :catchall_23
12694 + move-exception v0
12696 + monitor-exit p0
12698 + throw v0
12699 +.end method
12701 +.method private getDbVersion()I
12702 + .registers 6
12704 + const/4 v2, 0x1
12706 + const-string v3, "db_version"
12708 + invoke-virtual {p0, v3}, Landroid/privacy/PrivacyPersistenceAdapter;->getValue(Ljava/lang/String;)Ljava/lang/String;
12710 + move-result-object v1
12712 + if-nez v1, :cond_11
12714 + const-string v3, "PrivacyPersistenceAdapter"
12716 + const-string v4, "PrivacyPersistenceAdapter:getDbVersion: getValue returned null; assuming version = 1"
12718 + invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
12720 + :goto_10
12721 + return v2
12723 + :cond_11
12724 + :try_start_11
12725 + invoke-static {v1}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
12726 + :try_end_14
12727 + .catch Ljava/lang/Exception; {:try_start_11 .. :try_end_14} :catch_16
12729 + move-result v2
12731 + goto :goto_10
12733 + :catch_16
12734 + move-exception v0
12736 + const-string v3, "PrivacyPersistenceAdapter"
12738 + const-string v4, "PrivacyPersistenceAdapter:getDbVersion: failed to parse database version; returning 1"
12740 + invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
12742 + goto :goto_10
12743 +.end method
12745 +.method private query(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
12746 + .registers 16
12747 + .annotation system Ldalvik/annotation/Throws;
12748 + value = {
12749 + Ljava/lang/Exception;
12751 + .end annotation
12753 + const/4 v0, 0x0
12755 + const/4 v3, 0x0
12757 + const/4 v2, 0x0
12759 + :goto_3
12760 + if-nez v3, :cond_27
12762 + const/4 v4, 0x5
12764 + if-ge v2, v4, :cond_27
12766 + if-eqz v0, :cond_d
12768 + :try_start_a
12769 + invoke-interface {v0}, Landroid/database/Cursor;->close()V
12771 + :cond_d
12772 + invoke-virtual/range {p1 .. p9}, Landroid/database/sqlite/SQLiteDatabase;->query(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
12773 + :try_end_10
12774 + .catch Ljava/lang/IllegalStateException; {:try_start_a .. :try_end_10} :catch_15
12776 + move-result-object v0
12778 + const/4 v3, 0x1
12780 + :goto_12
12781 + add-int/lit8 v2, v2, 0x1
12783 + goto :goto_3
12785 + :catch_15
12786 + move-exception v1
12788 + const/4 v3, 0x0
12790 + if-eqz p1, :cond_22
12792 + invoke-virtual {p1}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z
12794 + move-result v4
12796 + if-eqz v4, :cond_22
12798 + invoke-virtual {p1}, Landroid/database/sqlite/SQLiteDatabase;->close()V
12800 + :cond_22
12801 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->getDatabase()Landroid/database/sqlite/SQLiteDatabase;
12803 + move-result-object p1
12805 + goto :goto_12
12807 + :cond_27
12808 + if-nez v3, :cond_32
12810 + new-instance v4, Ljava/lang/Exception;
12812 + const-string/jumbo v5, "query - failed to execute query on the DB"
12814 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
12816 + throw v4
12818 + :cond_32
12819 + return-object v0
12820 +.end method
12822 +.method private rawQuery(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;)Landroid/database/Cursor;
12823 + .registers 9
12824 + .annotation system Ldalvik/annotation/Throws;
12825 + value = {
12826 + Ljava/lang/Exception;
12828 + .end annotation
12830 + const/4 v0, 0x0
12832 + const/4 v3, 0x0
12834 + const/4 v2, 0x0
12836 + :goto_3
12837 + if-nez v3, :cond_28
12839 + const/4 v4, 0x5
12841 + if-ge v2, v4, :cond_28
12843 + if-eqz v0, :cond_d
12845 + :try_start_a
12846 + invoke-interface {v0}, Landroid/database/Cursor;->close()V
12848 + :cond_d
12849 + const/4 v4, 0x0
12851 + invoke-virtual {p1, p2, v4}, Landroid/database/sqlite/SQLiteDatabase;->rawQuery(Ljava/lang/String;[Ljava/lang/String;)Landroid/database/Cursor;
12852 + :try_end_11
12853 + .catch Ljava/lang/IllegalStateException; {:try_start_a .. :try_end_11} :catch_16
12855 + move-result-object v0
12857 + const/4 v3, 0x1
12859 + :goto_13
12860 + add-int/lit8 v2, v2, 0x1
12862 + goto :goto_3
12864 + :catch_16
12865 + move-exception v1
12867 + const/4 v3, 0x0
12869 + if-eqz p1, :cond_23
12871 + invoke-virtual {p1}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z
12873 + move-result v4
12875 + if-eqz v4, :cond_23
12877 + invoke-virtual {p1}, Landroid/database/sqlite/SQLiteDatabase;->close()V
12879 + :cond_23
12880 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->getDatabase()Landroid/database/sqlite/SQLiteDatabase;
12882 + move-result-object p1
12884 + goto :goto_13
12886 + :cond_28
12887 + if-nez v3, :cond_33
12889 + new-instance v4, Ljava/lang/Exception;
12891 + const-string/jumbo v5, "query - failed to execute query on the DB"
12893 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
12895 + throw v4
12897 + :cond_33
12898 + return-object v0
12899 +.end method
12901 +.method private upgradeDatabase()V
12902 + .registers 18
12904 + sget v14, Landroid/privacy/PrivacyPersistenceAdapter;->sDbVersion:I
12906 + const/4 v15, 0x4
12908 + if-ge v14, v15, :cond_31
12910 + const-string v14, "PrivacyPersistenceAdapter"
12912 + new-instance v15, Ljava/lang/StringBuilder;
12914 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
12916 + const-string v16, "PrivacyPersistenceAdapter:upgradeDatabase - upgrading DB from version "
12918 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
12920 + move-result-object v15
12922 + sget v16, Landroid/privacy/PrivacyPersistenceAdapter;->sDbVersion:I
12924 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
12926 + move-result-object v15
12928 + const-string v16, " to "
12930 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
12932 + move-result-object v15
12934 + const/16 v16, 0x4
12936 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
12938 + move-result-object v15
12940 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
12942 + move-result-object v15
12944 + invoke-static {v14, v15}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
12946 + const/4 v3, 0x0
12948 + sget v14, Landroid/privacy/PrivacyPersistenceAdapter;->sDbVersion:I
12950 + packed-switch v14, :pswitch_data_12c
12952 + :cond_31
12953 + :goto_31
12954 + return-void
12956 + :pswitch_32
12957 + :try_start_32
12958 + sget-object v15, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
12960 + monitor-enter v15
12961 + :try_end_35
12962 + .catchall {:try_start_32 .. :try_end_35} :catchall_11e
12963 + .catch Landroid/database/SQLException; {:try_start_32 .. :try_end_35} :catch_e6
12965 + :try_start_35
12966 + sget-object v14, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
12968 + sget-object v14, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
12970 + invoke-virtual {v14}, Ljava/lang/Integer;->intValue()I
12972 + move-result v14
12974 + add-int/lit8 v14, v14, 0x1
12976 + invoke-static {v14}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
12978 + move-result-object v14
12980 + sput-object v14, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
12982 + monitor-exit v15
12983 + :try_end_46
12984 + .catchall {:try_start_35 .. :try_end_46} :catchall_e3
12986 + :try_start_46
12987 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->getDatabase()Landroid/database/sqlite/SQLiteDatabase;
12989 + move-result-object v3
12991 + if-eqz v3, :cond_109
12993 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z
12995 + move-result v14
12997 + if-eqz v14, :cond_109
12999 + sget-object v14, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
13001 + invoke-interface {v14}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
13003 + move-result-object v14
13005 + invoke-interface {v14}, Ljava/util/concurrent/locks/Lock;->lock()V
13006 + :try_end_5b
13007 + .catchall {:try_start_46 .. :try_end_5b} :catchall_11e
13008 + .catch Landroid/database/SQLException; {:try_start_46 .. :try_end_5b} :catch_e6
13010 + :try_start_5b
13011 + sget v14, Landroid/privacy/PrivacyPersistenceAdapter;->sDbVersion:I
13013 + const/4 v15, 0x4
13015 + if-ge v14, v15, :cond_100
13017 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->beginTransaction()V
13018 + :try_end_63
13019 + .catchall {:try_start_5b .. :try_end_63} :catchall_113
13021 + :try_start_63
13022 + const-string v14, "DROP TABLE IF EXISTS version;"
13024 + invoke-virtual {v3, v14}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
13026 + const-string v14, "CREATE TABLE IF NOT EXISTS allowed_contacts ( settings_id, contact_id, PRIMARY KEY(settings_id, contact_id) );"
13028 + invoke-virtual {v3, v14}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
13030 + const-string v14, "CREATE TABLE IF NOT EXISTS map ( name TEXT PRIMARY KEY, value TEXT );"
13032 + invoke-virtual {v3, v14}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
13034 + const-string v14, "INSERT OR REPLACE INTO map (name, value) VALUES (\"db_version\", 4);"
13036 + invoke-virtual {v3, v14}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
13038 + const-string v14, "INSERT OR REPLACE INTO map (name, value) VALUES (\"enabled\", \"1\");"
13040 + invoke-virtual {v3, v14}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
13042 + const-string v14, "INSERT OR REPLACE INTO map (name, value) VALUES (\"notifications_enabled\", \"1\");"
13044 + invoke-virtual {v3, v14}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
13046 + invoke-virtual/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->purgeSettings()Z
13048 + new-instance v11, Ljava/io/File;
13050 + const-string v14, "/data/system/privacy"
13052 + invoke-direct {v11, v14}, Ljava/io/File;-><init>(Ljava/lang/String;)V
13054 + invoke-virtual {v11}, Ljava/io/File;->listFiles()[Ljava/io/File;
13056 + move-result-object v1
13058 + array-length v7, v1
13060 + const/4 v5, 0x0
13062 + move v6, v5
13064 + :goto_92
13065 + if-ge v6, v7, :cond_f7
13067 + aget-object v10, v1, v6
13069 + invoke-virtual {v10}, Ljava/io/File;->listFiles()[Ljava/io/File;
13071 + move-result-object v2
13073 + array-length v8, v2
13075 + const/4 v5, 0x0
13077 + :goto_9c
13078 + if-ge v5, v8, :cond_f3
13080 + aget-object v13, v2, v5
13082 + invoke-virtual {v13}, Ljava/io/File;->isDirectory()Z
13084 + move-result v14
13086 + if-eqz v14, :cond_e0
13088 + invoke-virtual {v13}, Ljava/io/File;->listFiles()[Ljava/io/File;
13090 + move-result-object v12
13092 + const/4 v14, 0x0
13094 + aget-object v14, v12, v14
13096 + if-eqz v14, :cond_e0
13098 + new-instance v9, Ljava/io/File;
13100 + new-instance v14, Ljava/lang/StringBuilder;
13102 + invoke-direct {v14}, Ljava/lang/StringBuilder;-><init>()V
13104 + invoke-virtual {v14, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
13106 + move-result-object v14
13108 + const-string v15, "/"
13110 + invoke-virtual {v14, v15}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13112 + move-result-object v14
13114 + const/4 v15, 0x0
13116 + aget-object v15, v12, v15
13118 + invoke-virtual {v15}, Ljava/io/File;->getName()Ljava/lang/String;
13120 + move-result-object v15
13122 + invoke-virtual {v14, v15}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13124 + move-result-object v14
13126 + invoke-virtual {v14}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
13128 + move-result-object v14
13130 + invoke-direct {v9, v14}, Ljava/io/File;-><init>(Ljava/lang/String;)V
13132 + invoke-virtual {v9}, Ljava/io/File;->delete()Z
13134 + const/4 v14, 0x0
13136 + aget-object v14, v12, v14
13138 + invoke-virtual {v14, v9}, Ljava/io/File;->renameTo(Ljava/io/File;)Z
13140 + move-object/from16 v0, p0
13142 + invoke-direct {v0, v13}, Landroid/privacy/PrivacyPersistenceAdapter;->deleteRecursive(Ljava/io/File;)V
13143 + :try_end_e0
13144 + .catchall {:try_start_63 .. :try_end_e0} :catchall_10e
13146 + :cond_e0
13147 + add-int/lit8 v5, v5, 0x1
13149 + goto :goto_9c
13151 + :catchall_e3
13152 + move-exception v14
13154 + :try_start_e4
13155 + monitor-exit v15
13156 + :try_end_e5
13157 + .catchall {:try_start_e4 .. :try_end_e5} :catchall_e3
13159 + :try_start_e5
13160 + throw v14
13161 + :try_end_e6
13162 + .catchall {:try_start_e5 .. :try_end_e6} :catchall_11e
13163 + .catch Landroid/database/SQLException; {:try_start_e5 .. :try_end_e6} :catch_e6
13165 + :catch_e6
13166 + move-exception v4
13168 + :try_start_e7
13169 + const-string v14, "PrivacyPersistenceAdapter"
13171 + const-string v15, "PrivacyPersistenceAdapter:upgradeDatabase: SQLException occurred performing database upgrade"
13173 + invoke-static {v14, v15, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
13174 + :try_end_ee
13175 + .catchall {:try_start_e7 .. :try_end_ee} :catchall_11e
13177 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
13179 + goto/16 :goto_31
13181 + :cond_f3
13182 + add-int/lit8 v5, v6, 0x1
13184 + move v6, v5
13186 + goto :goto_92
13188 + :cond_f7
13189 + :try_start_f7
13190 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->setTransactionSuccessful()V
13192 + const/4 v14, 0x4
13194 + sput v14, Landroid/privacy/PrivacyPersistenceAdapter;->sDbVersion:I
13195 + :try_end_fd
13196 + .catchall {:try_start_f7 .. :try_end_fd} :catchall_10e
13198 + :try_start_fd
13199 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
13200 + :try_end_100
13201 + .catchall {:try_start_fd .. :try_end_100} :catchall_113
13203 + :cond_100
13204 + :try_start_100
13205 + sget-object v14, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
13207 + invoke-interface {v14}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
13209 + move-result-object v14
13211 + invoke-interface {v14}, Ljava/util/concurrent/locks/Lock;->unlock()V
13212 + :try_end_109
13213 + .catchall {:try_start_100 .. :try_end_109} :catchall_11e
13214 + .catch Landroid/database/SQLException; {:try_start_100 .. :try_end_109} :catch_e6
13216 + :cond_109
13217 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
13219 + goto/16 :goto_31
13221 + :catchall_10e
13222 + move-exception v14
13224 + :try_start_10f
13225 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
13227 + throw v14
13228 + :try_end_113
13229 + .catchall {:try_start_10f .. :try_end_113} :catchall_113
13231 + :catchall_113
13232 + move-exception v14
13234 + :try_start_114
13235 + sget-object v15, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
13237 + invoke-interface {v15}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
13239 + move-result-object v15
13241 + invoke-interface {v15}, Ljava/util/concurrent/locks/Lock;->unlock()V
13243 + throw v14
13244 + :try_end_11e
13245 + .catchall {:try_start_114 .. :try_end_11e} :catchall_11e
13246 + .catch Landroid/database/SQLException; {:try_start_114 .. :try_end_11e} :catch_e6
13248 + :catchall_11e
13249 + move-exception v14
13251 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
13253 + throw v14
13255 + :pswitch_123
13256 + const-string v14, "PrivacyPersistenceAdapter"
13258 + const-string v15, "PrivacyPersistenceAdapter:upgradeDatabase: Database is already at the most recent version"
13260 + invoke-static {v14, v15}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
13262 + goto/16 :goto_31
13264 + :pswitch_data_12c
13265 + .packed-switch 0x1
13266 + :pswitch_32
13267 + :pswitch_32
13268 + :pswitch_32
13269 + :pswitch_123
13270 + .end packed-switch
13271 +.end method
13273 +.method private writeExternalSettings(Ljava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)Z
13274 + .registers 12
13275 + .annotation system Ldalvik/annotation/Throws;
13276 + value = {
13277 + Ljava/lang/Exception;
13279 + .end annotation
13281 + const/4 v7, 0x1
13283 + new-instance v2, Ljava/io/File;
13285 + new-instance v5, Ljava/lang/StringBuilder;
13287 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
13289 + const-string v6, "/data/system/privacy/"
13291 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13293 + move-result-object v5
13295 + invoke-virtual {v5, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13297 + move-result-object v5
13299 + const-string v6, "/"
13301 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13303 + move-result-object v5
13305 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
13307 + move-result-object v5
13309 + invoke-direct {v2, v5}, Ljava/io/File;-><init>(Ljava/lang/String;)V
13311 + new-instance v3, Ljava/io/File;
13313 + new-instance v5, Ljava/lang/StringBuilder;
13315 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
13317 + const-string v6, "/data/system/privacy/"
13319 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13321 + move-result-object v5
13323 + invoke-virtual {v5, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13325 + move-result-object v5
13327 + const-string v6, "/"
13329 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13331 + move-result-object v5
13333 + const-string v6, "/"
13335 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13337 + move-result-object v5
13339 + invoke-virtual {v5, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13341 + move-result-object v5
13343 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
13345 + move-result-object v5
13347 + invoke-direct {v3, v5}, Ljava/io/File;-><init>(Ljava/lang/String;)V
13349 + const/4 v1, 0x0
13351 + sget-object v5, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
13353 + invoke-interface {v5}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
13355 + move-result-object v5
13357 + invoke-interface {v5}, Ljava/util/concurrent/locks/Lock;->lock()V
13359 + :try_start_51
13360 + invoke-virtual {v2}, Ljava/io/File;->mkdirs()Z
13362 + const/4 v5, 0x1
13364 + const/4 v6, 0x0
13366 + invoke-virtual {v2, v5, v6}, Ljava/io/File;->setReadable(ZZ)Z
13368 + const/4 v5, 0x1
13370 + const/4 v6, 0x0
13372 + invoke-virtual {v2, v5, v6}, Ljava/io/File;->setExecutable(ZZ)Z
13374 + invoke-virtual {v3}, Ljava/io/File;->createNewFile()Z
13376 + const/4 v5, 0x1
13378 + const/4 v6, 0x0
13380 + invoke-virtual {v3, v5, v6}, Ljava/io/File;->setReadable(ZZ)Z
13382 + new-instance v4, Ljava/io/OutputStreamWriter;
13384 + new-instance v5, Ljava/io/FileOutputStream;
13386 + invoke-direct {v5, v3}, Ljava/io/FileOutputStream;-><init>(Ljava/io/File;)V
13388 + invoke-direct {v4, v5}, Ljava/io/OutputStreamWriter;-><init>(Ljava/io/OutputStream;)V
13390 + const-string/jumbo v5, "systemLogsSetting"
13392 + invoke-virtual {p1, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
13394 + move-result v5
13396 + if-eqz v5, :cond_a4
13398 + new-instance v5, Ljava/lang/StringBuilder;
13400 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
13402 + invoke-virtual {p3}, Landroid/privacy/PrivacySettings;->getSystemLogsSetting()B
13404 + move-result v6
13406 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
13408 + move-result-object v5
13410 + const-string v6, ""
13412 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13414 + move-result-object v5
13416 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
13418 + move-result-object v5
13420 + invoke-virtual {v4, v5}, Ljava/io/OutputStreamWriter;->append(Ljava/lang/CharSequence;)Ljava/io/Writer;
13422 + :cond_93
13423 + :goto_93
13424 + invoke-virtual {v4}, Ljava/io/OutputStreamWriter;->flush()V
13426 + invoke-virtual {v4}, Ljava/io/OutputStreamWriter;->close()V
13427 + :try_end_99
13428 + .catchall {:try_start_51 .. :try_end_99} :catchall_d1
13429 + .catch Ljava/io/IOException; {:try_start_51 .. :try_end_99} :catch_c7
13431 + const/4 v1, 0x1
13433 + sget-object v5, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
13435 + invoke-interface {v5}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
13437 + move-result-object v5
13439 + invoke-interface {v5}, Ljava/util/concurrent/locks/Lock;->unlock()V
13441 + return v7
13443 + :cond_a4
13444 + :try_start_a4
13445 + const-string v5, "ipTableProtectSetting"
13447 + invoke-virtual {p1, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
13449 + move-result v5
13451 + if-eqz v5, :cond_93
13453 + new-instance v5, Ljava/lang/StringBuilder;
13455 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
13457 + invoke-virtual {p3}, Landroid/privacy/PrivacySettings;->getIpTableProtectSetting()B
13459 + move-result v6
13461 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
13463 + move-result-object v5
13465 + const-string v6, ""
13467 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13469 + move-result-object v5
13471 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
13473 + move-result-object v5
13475 + invoke-virtual {v4, v5}, Ljava/io/OutputStreamWriter;->append(Ljava/lang/CharSequence;)Ljava/io/Writer;
13476 + :try_end_c6
13477 + .catchall {:try_start_a4 .. :try_end_c6} :catchall_d1
13478 + .catch Ljava/io/IOException; {:try_start_a4 .. :try_end_c6} :catch_c7
13480 + goto :goto_93
13482 + :catch_c7
13483 + move-exception v0
13485 + :try_start_c8
13486 + new-instance v5, Ljava/lang/Exception;
13488 + const-string/jumbo v6, "saveSettings - could not write settings to file"
13490 + invoke-direct {v5, v6, v0}, Ljava/lang/Exception;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
13492 + throw v5
13493 + :try_end_d1
13494 + .catchall {:try_start_c8 .. :try_end_d1} :catchall_d1
13496 + :catchall_d1
13497 + move-exception v5
13499 + sget-object v6, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
13501 + invoke-interface {v6}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
13503 + move-result-object v6
13505 + invoke-interface {v6}, Ljava/util/concurrent/locks/Lock;->unlock()V
13507 + throw v5
13508 +.end method
13511 +# virtual methods
13512 +.method public deleteSettings(Ljava/lang/String;)Z
13513 + .registers 16
13515 + const/4 v11, 0x1
13517 + const/4 v0, 0x0
13519 + :try_start_2
13520 + sget-object v2, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
13522 + monitor-enter v2
13523 + :try_end_5
13524 + .catchall {:try_start_2 .. :try_end_5} :catchall_148
13525 + .catch Landroid/database/sqlite/SQLiteException; {:try_start_2 .. :try_end_5} :catch_fe
13526 + .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_5} :catch_13b
13528 + :try_start_5
13529 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
13531 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
13533 + invoke-virtual {v1}, Ljava/lang/Integer;->intValue()I
13535 + move-result v1
13537 + add-int/lit8 v1, v1, 0x1
13539 + invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
13541 + move-result-object v1
13543 + sput-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
13545 + monitor-exit v2
13546 + :try_end_16
13547 + .catchall {:try_start_5 .. :try_end_16} :catchall_fb
13549 + :try_start_16
13550 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->getDatabase()Landroid/database/sqlite/SQLiteDatabase;
13552 + move-result-object v0
13554 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
13556 + invoke-interface {v1}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
13558 + move-result-object v1
13560 + invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->lock()V
13561 + :try_end_23
13562 + .catchall {:try_start_16 .. :try_end_23} :catchall_148
13563 + .catch Landroid/database/sqlite/SQLiteException; {:try_start_16 .. :try_end_23} :catch_fe
13564 + .catch Ljava/lang/Exception; {:try_start_16 .. :try_end_23} :catch_13b
13566 + :try_start_23
13567 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->beginTransaction()V
13568 + :try_end_26
13569 + .catchall {:try_start_23 .. :try_end_26} :catchall_130
13571 + :try_start_26
13572 + const-string/jumbo v1, "settings"
13574 + const/4 v2, 0x1
13576 + new-array v2, v2, [Ljava/lang/String;
13578 + const/4 v3, 0x0
13580 + const-string v4, "_id"
13582 + aput-object v4, v2, v3
13584 + const-string/jumbo v3, "packageName=?"
13586 + const/4 v4, 0x1
13588 + new-array v4, v4, [Ljava/lang/String;
13590 + const/4 v5, 0x0
13592 + aput-object p1, v4, v5
13594 + const/4 v5, 0x0
13596 + const/4 v6, 0x0
13598 + const/4 v7, 0x0
13600 + invoke-virtual/range {v0 .. v7}, Landroid/database/sqlite/SQLiteDatabase;->query(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
13602 + move-result-object v8
13604 + if-eqz v8, :cond_10b
13606 + invoke-interface {v8}, Landroid/database/Cursor;->getCount()I
13608 + move-result v1
13610 + if-lez v1, :cond_10b
13612 + invoke-interface {v8}, Landroid/database/Cursor;->moveToFirst()Z
13614 + move-result v1
13616 + if-eqz v1, :cond_10b
13618 + const/4 v1, 0x0
13620 + invoke-interface {v8, v1}, Landroid/database/Cursor;->getInt(I)I
13622 + move-result v10
13624 + const-string v1, "allowed_contacts"
13626 + const-string/jumbo v2, "settings_id=?"
13628 + const/4 v3, 0x1
13630 + new-array v3, v3, [Ljava/lang/String;
13632 + const/4 v4, 0x0
13634 + invoke-static {v10}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;
13636 + move-result-object v5
13638 + aput-object v5, v3, v4
13640 + invoke-virtual {v0, v1, v2, v3}, Landroid/database/sqlite/SQLiteDatabase;->delete(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)I
13642 + invoke-interface {v8}, Landroid/database/Cursor;->close()V
13644 + :goto_69
13645 + const-string/jumbo v1, "settings"
13647 + const-string/jumbo v2, "packageName=?"
13649 + const/4 v3, 0x1
13651 + new-array v3, v3, [Ljava/lang/String;
13653 + const/4 v4, 0x0
13655 + aput-object p1, v3, v4
13657 + invoke-virtual {v0, v1, v2, v3}, Landroid/database/sqlite/SQLiteDatabase;->delete(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)I
13659 + move-result v1
13661 + if-nez v1, :cond_99
13663 + const-string v1, "PrivacyPersistenceAdapter"
13665 + new-instance v2, Ljava/lang/StringBuilder;
13667 + invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
13669 + const-string v3, "deleteSettings - database entry for "
13671 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13673 + move-result-object v2
13675 + invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13677 + move-result-object v2
13679 + const-string v3, " not found"
13681 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13683 + move-result-object v2
13685 + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
13687 + move-result-object v2
13689 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
13691 + :cond_99
13692 + new-instance v12, Ljava/io/File;
13694 + new-instance v1, Ljava/lang/StringBuilder;
13696 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
13698 + const-string v2, "/data/system/privacy/"
13700 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13702 + move-result-object v1
13704 + invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13706 + move-result-object v1
13708 + const-string v2, "/"
13710 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13712 + move-result-object v1
13714 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
13716 + move-result-object v1
13718 + invoke-direct {v12, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
13720 + new-instance v13, Ljava/io/File;
13722 + new-instance v1, Ljava/lang/StringBuilder;
13724 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
13726 + const-string v2, "/data/system/privacy/"
13728 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13730 + move-result-object v1
13732 + invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13734 + move-result-object v1
13736 + const-string v2, "/systemLogsSetting"
13738 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13740 + move-result-object v1
13742 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
13744 + move-result-object v1
13746 + invoke-direct {v13, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
13748 + invoke-virtual {v13}, Ljava/io/File;->delete()Z
13750 + invoke-virtual {v12}, Ljava/io/File;->list()[Ljava/lang/String;
13752 + move-result-object v1
13754 + if-eqz v1, :cond_e5
13756 + invoke-virtual {v12}, Ljava/io/File;->list()[Ljava/lang/String;
13758 + move-result-object v1
13760 + array-length v1, v1
13762 + if-nez v1, :cond_e8
13764 + :cond_e5
13765 + invoke-virtual {v12}, Ljava/io/File;->delete()Z
13767 + :cond_e8
13768 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->setTransactionSuccessful()V
13769 + :try_end_eb
13770 + .catchall {:try_start_26 .. :try_end_eb} :catchall_12b
13772 + :try_start_eb
13773 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
13774 + :try_end_ee
13775 + .catchall {:try_start_eb .. :try_end_ee} :catchall_130
13777 + :try_start_ee
13778 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
13780 + invoke-interface {v1}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
13782 + move-result-object v1
13784 + invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V
13785 + :try_end_f7
13786 + .catchall {:try_start_ee .. :try_end_f7} :catchall_148
13787 + .catch Landroid/database/sqlite/SQLiteException; {:try_start_ee .. :try_end_f7} :catch_fe
13788 + .catch Ljava/lang/Exception; {:try_start_ee .. :try_end_f7} :catch_13b
13790 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
13792 + :goto_fa
13793 + return v11
13795 + :catchall_fb
13796 + move-exception v1
13798 + :try_start_fc
13799 + monitor-exit v2
13800 + :try_end_fd
13801 + .catchall {:try_start_fc .. :try_end_fd} :catchall_fb
13803 + :try_start_fd
13804 + throw v1
13805 + :try_end_fe
13806 + .catchall {:try_start_fd .. :try_end_fe} :catchall_148
13807 + .catch Landroid/database/sqlite/SQLiteException; {:try_start_fd .. :try_end_fe} :catch_fe
13808 + .catch Ljava/lang/Exception; {:try_start_fd .. :try_end_fe} :catch_13b
13810 + :catch_fe
13811 + move-exception v9
13813 + const/4 v11, 0x0
13815 + :try_start_100
13816 + const-string v1, "PrivacyPersistenceAdapter"
13818 + const-string v2, "PrivacyPersistenceAdapter:deleteSettings: failed to open the database, or open a transaction"
13820 + invoke-static {v1, v2, v9}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
13821 + :try_end_107
13822 + .catchall {:try_start_100 .. :try_end_107} :catchall_148
13824 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
13826 + goto :goto_fa
13828 + :cond_10b
13829 + :try_start_10b
13830 + const-string v1, "PrivacyPersistenceAdapter"
13832 + new-instance v2, Ljava/lang/StringBuilder;
13834 + invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
13836 + const-string v3, "deleteSettings - database entry for "
13838 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13840 + move-result-object v2
13842 + invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13844 + move-result-object v2
13846 + const-string v3, " not found"
13848 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13850 + move-result-object v2
13852 + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
13854 + move-result-object v2
13856 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
13857 + :try_end_129
13858 + .catchall {:try_start_10b .. :try_end_129} :catchall_12b
13860 + goto/16 :goto_69
13862 + :catchall_12b
13863 + move-exception v1
13865 + :try_start_12c
13866 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
13868 + throw v1
13869 + :try_end_130
13870 + .catchall {:try_start_12c .. :try_end_130} :catchall_130
13872 + :catchall_130
13873 + move-exception v1
13875 + :try_start_131
13876 + sget-object v2, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
13878 + invoke-interface {v2}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
13880 + move-result-object v2
13882 + invoke-interface {v2}, Ljava/util/concurrent/locks/Lock;->unlock()V
13884 + throw v1
13885 + :try_end_13b
13886 + .catchall {:try_start_131 .. :try_end_13b} :catchall_148
13887 + .catch Landroid/database/sqlite/SQLiteException; {:try_start_131 .. :try_end_13b} :catch_fe
13888 + .catch Ljava/lang/Exception; {:try_start_131 .. :try_end_13b} :catch_13b
13890 + :catch_13b
13891 + move-exception v9
13893 + const/4 v11, 0x0
13895 + :try_start_13d
13896 + const-string v1, "PrivacyPersistenceAdapter"
13898 + const-string v2, "PrivacyPersistenceAdapter:deleteSettings - could not delete settings"
13900 + invoke-static {v1, v2, v9}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
13901 + :try_end_144
13902 + .catchall {:try_start_13d .. :try_end_144} :catchall_148
13904 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
13906 + goto :goto_fa
13908 + :catchall_148
13909 + move-exception v1
13911 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
13913 + throw v1
13914 +.end method
13916 +.method public getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
13917 + .registers 58
13919 + const/16 v55, 0x0
13921 + if-nez p1, :cond_c
13923 + new-instance v1, Ljava/security/InvalidParameterException;
13925 + const-string v4, "PrivacyPersistenceAdapter:getSettings:insufficient application identifier - package name is required"
13927 + invoke-direct {v1, v4}, Ljava/security/InvalidParameterException;-><init>(Ljava/lang/String;)V
13929 + throw v1
13931 + :cond_c
13932 + :try_start_c
13933 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
13935 + monitor-enter v4
13936 + :try_end_f
13937 + .catch Landroid/database/sqlite/SQLiteException; {:try_start_c .. :try_end_f} :catch_2ce
13939 + :try_start_f
13940 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
13942 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
13944 + invoke-virtual {v1}, Ljava/lang/Integer;->intValue()I
13946 + move-result v1
13948 + add-int/lit8 v1, v1, 0x1
13950 + invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
13952 + move-result-object v1
13954 + sput-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
13956 + monitor-exit v4
13957 + :try_end_20
13958 + .catchall {:try_start_f .. :try_end_20} :catchall_2cb
13960 + :try_start_20
13961 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->getDatabase()Landroid/database/sqlite/SQLiteDatabase;
13962 + :try_end_23
13963 + .catch Landroid/database/sqlite/SQLiteException; {:try_start_20 .. :try_end_23} :catch_2ce
13965 + move-result-object v2
13967 + const/16 v53, 0x0
13969 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
13971 + invoke-interface {v1}, Ljava/util/concurrent/locks/ReadWriteLock;->readLock()Ljava/util/concurrent/locks/Lock;
13973 + move-result-object v1
13975 + invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->lock()V
13977 + :try_start_2f
13978 + const-string/jumbo v3, "settings"
13980 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->DATABASE_FIELDS:[Ljava/lang/String;
13982 + const-string/jumbo v5, "packageName=?"
13984 + const/4 v1, 0x1
13986 + new-array v6, v1, [Ljava/lang/String;
13988 + const/4 v1, 0x0
13990 + aput-object p1, v6, v1
13992 + const/4 v7, 0x0
13994 + const/4 v8, 0x0
13996 + const/4 v9, 0x0
13998 + const/4 v10, 0x0
14000 + move-object/from16 v1, p0
14002 + invoke-direct/range {v1 .. v10}, Landroid/privacy/PrivacyPersistenceAdapter;->query(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
14004 + move-result-object v53
14006 + if-eqz v53, :cond_310
14008 + invoke-interface/range {v53 .. v53}, Landroid/database/Cursor;->getCount()I
14010 + move-result v1
14012 + const/4 v4, 0x1
14014 + if-eq v1, v4, :cond_6a
14016 + const-string v1, "PrivacyPersistenceAdapter"
14018 + new-instance v4, Ljava/lang/StringBuilder;
14020 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
14022 + const-string v5, "Multiple privacy settings found for package "
14024 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
14026 + move-result-object v4
14028 + move-object/from16 v0, p1
14030 + invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
14032 + move-result-object v4
14034 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
14036 + move-result-object v4
14038 + invoke-static {v1, v4}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
14040 + :cond_6a
14041 + invoke-interface/range {v53 .. v53}, Landroid/database/Cursor;->moveToFirst()Z
14043 + move-result v1
14045 + if-eqz v1, :cond_310
14047 + new-instance v3, Landroid/privacy/PrivacySettings;
14049 + const/4 v1, 0x0
14051 + move-object/from16 v0, v53
14053 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getInt(I)I
14055 + move-result v1
14057 + invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
14059 + move-result-object v4
14061 + const/4 v1, 0x1
14063 + move-object/from16 v0, v53
14065 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14067 + move-result-object v5
14069 + const/4 v1, 0x2
14071 + move-object/from16 v0, v53
14073 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getInt(I)I
14075 + move-result v6
14077 + const/4 v1, 0x3
14079 + move-object/from16 v0, v53
14081 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14083 + move-result v1
14085 + int-to-byte v7, v1
14087 + const/4 v1, 0x4
14089 + move-object/from16 v0, v53
14091 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14093 + move-result-object v8
14095 + const/4 v1, 0x5
14097 + move-object/from16 v0, v53
14099 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14101 + move-result v1
14103 + int-to-byte v9, v1
14105 + const/4 v1, 0x6
14107 + move-object/from16 v0, v53
14109 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14111 + move-result-object v10
14113 + const/4 v1, 0x7
14115 + move-object/from16 v0, v53
14117 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14119 + move-result v1
14121 + int-to-byte v11, v1
14123 + const/16 v1, 0x8
14125 + move-object/from16 v0, v53
14127 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14129 + move-result-object v12
14131 + const/16 v1, 0x9
14133 + move-object/from16 v0, v53
14135 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14137 + move-result-object v13
14139 + const/16 v1, 0xa
14141 + move-object/from16 v0, v53
14143 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14145 + move-result v1
14147 + int-to-byte v14, v1
14149 + const/16 v1, 0xb
14151 + move-object/from16 v0, v53
14153 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14155 + move-result-object v15
14157 + const/16 v1, 0xc
14159 + move-object/from16 v0, v53
14161 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14163 + move-result-object v16
14165 + const/16 v1, 0xd
14167 + move-object/from16 v0, v53
14169 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14171 + move-result v1
14173 + int-to-byte v0, v1
14175 + move/from16 v17, v0
14177 + const/16 v1, 0xe
14179 + move-object/from16 v0, v53
14181 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14183 + move-result v1
14185 + int-to-byte v0, v1
14187 + move/from16 v18, v0
14189 + const/16 v1, 0xf
14191 + move-object/from16 v0, v53
14193 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14195 + move-result v1
14197 + int-to-byte v0, v1
14199 + move/from16 v19, v0
14201 + const/16 v1, 0x10
14203 + move-object/from16 v0, v53
14205 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14207 + move-result-object v20
14209 + const/16 v1, 0x11
14211 + move-object/from16 v0, v53
14213 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14215 + move-result v1
14217 + int-to-byte v0, v1
14219 + move/from16 v21, v0
14221 + const/16 v1, 0x12
14223 + move-object/from16 v0, v53
14225 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14227 + move-result-object v22
14229 + const/16 v1, 0x13
14231 + move-object/from16 v0, v53
14233 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14235 + move-result v1
14237 + int-to-byte v0, v1
14239 + move/from16 v23, v0
14241 + const/16 v1, 0x14
14243 + move-object/from16 v0, v53
14245 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14247 + move-result v1
14249 + int-to-byte v0, v1
14251 + move/from16 v24, v0
14253 + const/16 v1, 0x15
14255 + move-object/from16 v0, v53
14257 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14259 + move-result v1
14261 + int-to-byte v0, v1
14263 + move/from16 v25, v0
14265 + const/16 v1, 0x16
14267 + move-object/from16 v0, v53
14269 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14271 + move-result v1
14273 + int-to-byte v0, v1
14275 + move/from16 v26, v0
14277 + const/16 v1, 0x17
14279 + move-object/from16 v0, v53
14281 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14283 + move-result v1
14285 + int-to-byte v0, v1
14287 + move/from16 v27, v0
14289 + const/16 v1, 0x18
14291 + move-object/from16 v0, v53
14293 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14295 + move-result v1
14297 + int-to-byte v0, v1
14299 + move/from16 v28, v0
14301 + const/16 v1, 0x19
14303 + move-object/from16 v0, v53
14305 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14307 + move-result v1
14309 + int-to-byte v0, v1
14311 + move/from16 v29, v0
14313 + const/16 v1, 0x1a
14315 + move-object/from16 v0, v53
14317 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14319 + move-result v1
14321 + int-to-byte v0, v1
14323 + move/from16 v30, v0
14325 + const/16 v1, 0x1b
14327 + move-object/from16 v0, v53
14329 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14331 + move-result v1
14333 + int-to-byte v0, v1
14335 + move/from16 v31, v0
14337 + const/16 v1, 0x1c
14339 + move-object/from16 v0, v53
14341 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14343 + move-result v1
14345 + int-to-byte v0, v1
14347 + move/from16 v32, v0
14349 + const/16 v1, 0x1d
14351 + move-object/from16 v0, v53
14353 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14355 + move-result v1
14357 + int-to-byte v0, v1
14359 + move/from16 v33, v0
14361 + const/16 v1, 0x1e
14363 + move-object/from16 v0, v53
14365 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14367 + move-result v1
14369 + int-to-byte v0, v1
14371 + move/from16 v34, v0
14373 + const/16 v1, 0x1f
14375 + move-object/from16 v0, v53
14377 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14379 + move-result v1
14381 + int-to-byte v0, v1
14383 + move/from16 v35, v0
14385 + const/16 v1, 0x20
14387 + move-object/from16 v0, v53
14389 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14391 + move-result v1
14393 + int-to-byte v0, v1
14395 + move/from16 v36, v0
14397 + const/16 v1, 0x21
14399 + move-object/from16 v0, v53
14401 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14403 + move-result v1
14405 + int-to-byte v0, v1
14407 + move/from16 v37, v0
14409 + const/16 v1, 0x22
14411 + move-object/from16 v0, v53
14413 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14415 + move-result v1
14417 + int-to-byte v0, v1
14419 + move/from16 v38, v0
14421 + const/16 v39, 0x0
14423 + const/16 v1, 0x23
14425 + move-object/from16 v0, v53
14427 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14429 + move-result v1
14431 + int-to-byte v0, v1
14433 + move/from16 v40, v0
14435 + const/16 v1, 0x24
14437 + move-object/from16 v0, v53
14439 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14441 + move-result v1
14443 + int-to-byte v0, v1
14445 + move/from16 v41, v0
14447 + const/16 v1, 0x25
14449 + move-object/from16 v0, v53
14451 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14453 + move-result v1
14455 + int-to-byte v0, v1
14457 + move/from16 v42, v0
14459 + const/16 v1, 0x26
14461 + move-object/from16 v0, v53
14463 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14465 + move-result v1
14467 + int-to-byte v0, v1
14469 + move/from16 v43, v0
14471 + const/16 v1, 0x27
14473 + move-object/from16 v0, v53
14475 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14477 + move-result v1
14479 + int-to-byte v0, v1
14481 + move/from16 v44, v0
14483 + const/16 v1, 0x28
14485 + move-object/from16 v0, v53
14487 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14489 + move-result v1
14491 + int-to-byte v0, v1
14493 + move/from16 v45, v0
14495 + const/16 v1, 0x29
14497 + move-object/from16 v0, v53
14499 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14501 + move-result-object v46
14503 + const/16 v1, 0x2a
14505 + move-object/from16 v0, v53
14507 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14509 + move-result v1
14511 + int-to-byte v0, v1
14513 + move/from16 v47, v0
14515 + const/16 v1, 0x2b
14517 + move-object/from16 v0, v53
14519 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14521 + move-result v1
14523 + int-to-byte v0, v1
14525 + move/from16 v48, v0
14527 + const/16 v1, 0x2c
14529 + move-object/from16 v0, v53
14531 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14533 + move-result v1
14535 + int-to-byte v0, v1
14537 + move/from16 v49, v0
14539 + const/16 v1, 0x2d
14541 + move-object/from16 v0, v53
14543 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14545 + move-result v1
14547 + int-to-byte v0, v1
14549 + move/from16 v50, v0
14551 + const/16 v1, 0x2e
14553 + move-object/from16 v0, v53
14555 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14557 + move-result v1
14559 + int-to-byte v0, v1
14561 + move/from16 v51, v0
14563 + invoke-direct/range {v3 .. v51}, Landroid/privacy/PrivacySettings;-><init>(Ljava/lang/Integer;Ljava/lang/String;IBLjava/lang/String;BLjava/lang/String;BLjava/lang/String;Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;BBBLjava/lang/String;BLjava/lang/String;BBBBBBBBBBBBBBBB[IBBBBBBLjava/lang/String;BBBBB)V
14564 + :try_end_24c
14565 + .catchall {:try_start_2f .. :try_end_24c} :catchall_2f5
14566 + .catch Ljava/lang/Exception; {:try_start_2f .. :try_end_24c} :catch_30c
14568 + :try_start_24c
14569 + const-string v6, "allowed_contacts"
14571 + const/4 v1, 0x1
14573 + new-array v7, v1, [Ljava/lang/String;
14575 + const/4 v1, 0x0
14577 + const-string v4, "contact_id"
14579 + aput-object v4, v7, v1
14581 + const-string/jumbo v8, "settings_id=?"
14583 + const/4 v1, 0x1
14585 + new-array v9, v1, [Ljava/lang/String;
14587 + const/4 v1, 0x0
14589 + invoke-virtual {v3}, Landroid/privacy/PrivacySettings;->get_id()Ljava/lang/Integer;
14591 + move-result-object v4
14593 + invoke-virtual {v4}, Ljava/lang/Integer;->intValue()I
14595 + move-result v4
14597 + invoke-static {v4}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;
14599 + move-result-object v4
14601 + aput-object v4, v9, v1
14603 + const/4 v10, 0x0
14605 + const/4 v11, 0x0
14607 + const/4 v12, 0x0
14609 + const/4 v13, 0x0
14611 + move-object/from16 v4, p0
14613 + move-object v5, v2
14615 + invoke-direct/range {v4 .. v13}, Landroid/privacy/PrivacyPersistenceAdapter;->query(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
14617 + move-result-object v53
14619 + if-eqz v53, :cond_2e3
14621 + invoke-interface/range {v53 .. v53}, Landroid/database/Cursor;->getCount()I
14623 + move-result v1
14625 + if-lez v1, :cond_2e3
14627 + invoke-interface/range {v53 .. v53}, Landroid/database/Cursor;->getCount()I
14629 + move-result v1
14631 + new-array v0, v1, [I
14633 + move-object/from16 v52, v0
14635 + :goto_286
14636 + invoke-interface/range {v53 .. v53}, Landroid/database/Cursor;->moveToNext()Z
14638 + move-result v1
14640 + if-eqz v1, :cond_2de
14642 + invoke-interface/range {v53 .. v53}, Landroid/database/Cursor;->getPosition()I
14644 + move-result v1
14646 + const/4 v4, 0x0
14648 + move-object/from16 v0, v53
14650 + invoke-interface {v0, v4}, Landroid/database/Cursor;->getInt(I)I
14652 + move-result v4
14654 + aput v4, v52, v1
14655 + :try_end_299
14656 + .catchall {:try_start_24c .. :try_end_299} :catchall_30a
14657 + .catch Ljava/lang/Exception; {:try_start_24c .. :try_end_299} :catch_29a
14659 + goto :goto_286
14661 + :catch_29a
14662 + move-exception v54
14664 + :goto_29b
14665 + :try_start_29b
14666 + const-string v1, "PrivacyPersistenceAdapter"
14668 + new-instance v4, Ljava/lang/StringBuilder;
14670 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
14672 + const-string v5, "getSettings - failed to get settings for package: "
14674 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
14676 + move-result-object v4
14678 + move-object/from16 v0, p1
14680 + invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
14682 + move-result-object v4
14684 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
14686 + move-result-object v4
14688 + move-object/from16 v0, v54
14690 + invoke-static {v1, v4, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
14691 + :try_end_2b7
14692 + .catchall {:try_start_29b .. :try_end_2b7} :catchall_30a
14694 + if-eqz v53, :cond_2bc
14696 + invoke-interface/range {v53 .. v53}, Landroid/database/Cursor;->close()V
14698 + :cond_2bc
14699 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
14701 + invoke-interface {v1}, Ljava/util/concurrent/locks/ReadWriteLock;->readLock()Ljava/util/concurrent/locks/Lock;
14703 + move-result-object v1
14705 + invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V
14707 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
14709 + :goto_2c8
14710 + move-object/from16 v55, v3
14712 + :goto_2ca
14713 + return-object v55
14715 + :catchall_2cb
14716 + move-exception v1
14718 + :try_start_2cc
14719 + monitor-exit v4
14720 + :try_end_2cd
14721 + .catchall {:try_start_2cc .. :try_end_2cd} :catchall_2cb
14723 + :try_start_2cd
14724 + throw v1
14725 + :try_end_2ce
14726 + .catch Landroid/database/sqlite/SQLiteException; {:try_start_2cd .. :try_end_2ce} :catch_2ce
14728 + :catch_2ce
14729 + move-exception v54
14731 + const-string v1, "PrivacyPersistenceAdapter"
14733 + const-string v4, "getSettings - database could not be opened"
14735 + move-object/from16 v0, v54
14737 + invoke-static {v1, v4, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
14739 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
14741 + move-object/from16 v3, v55
14743 + goto :goto_2ca
14745 + :cond_2de
14746 + :try_start_2de
14747 + move-object/from16 v0, v52
14749 + invoke-virtual {v3, v0}, Landroid/privacy/PrivacySettings;->setAllowedContacts([I)V
14750 + :try_end_2e3
14751 + .catchall {:try_start_2de .. :try_end_2e3} :catchall_30a
14752 + .catch Ljava/lang/Exception; {:try_start_2de .. :try_end_2e3} :catch_29a
14754 + :cond_2e3
14755 + :goto_2e3
14756 + if-eqz v53, :cond_2e8
14758 + invoke-interface/range {v53 .. v53}, Landroid/database/Cursor;->close()V
14760 + :cond_2e8
14761 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
14763 + invoke-interface {v1}, Ljava/util/concurrent/locks/ReadWriteLock;->readLock()Ljava/util/concurrent/locks/Lock;
14765 + move-result-object v1
14767 + invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V
14769 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
14771 + goto :goto_2c8
14773 + :catchall_2f5
14774 + move-exception v1
14776 + move-object/from16 v3, v55
14778 + :goto_2f8
14779 + if-eqz v53, :cond_2fd
14781 + invoke-interface/range {v53 .. v53}, Landroid/database/Cursor;->close()V
14783 + :cond_2fd
14784 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
14786 + invoke-interface {v4}, Ljava/util/concurrent/locks/ReadWriteLock;->readLock()Ljava/util/concurrent/locks/Lock;
14788 + move-result-object v4
14790 + invoke-interface {v4}, Ljava/util/concurrent/locks/Lock;->unlock()V
14792 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
14794 + throw v1
14796 + :catchall_30a
14797 + move-exception v1
14799 + goto :goto_2f8
14801 + :catch_30c
14802 + move-exception v54
14804 + move-object/from16 v3, v55
14806 + goto :goto_29b
14808 + :cond_310
14809 + move-object/from16 v3, v55
14811 + goto :goto_2e3
14812 +.end method
14814 +.method public getValue(Ljava/lang/String;)Ljava/lang/String;
14815 + .registers 15
14817 + const/4 v0, 0x0
14819 + const/4 v12, 0x0
14821 + :try_start_2
14822 + sget-object v2, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
14824 + monitor-enter v2
14825 + :try_end_5
14826 + .catchall {:try_start_2 .. :try_end_5} :catchall_41
14828 + :try_start_5
14829 + sget-object v3, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
14831 + sget-object v3, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
14833 + invoke-virtual {v3}, Ljava/lang/Integer;->intValue()I
14835 + move-result v3
14837 + add-int/lit8 v3, v3, 0x1
14839 + invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
14841 + move-result-object v3
14843 + sput-object v3, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
14845 + monitor-exit v2
14846 + :try_end_16
14847 + .catchall {:try_start_5 .. :try_end_16} :catchall_3e
14849 + :try_start_16
14850 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->getDatabase()Landroid/database/sqlite/SQLiteDatabase;
14852 + move-result-object v1
14854 + if-eqz v1, :cond_22
14856 + invoke-virtual {v1}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z
14858 + move-result v2
14860 + if-nez v2, :cond_46
14862 + :cond_22
14863 + const-string v2, "PrivacyPersistenceAdapter"
14865 + new-instance v3, Ljava/lang/StringBuilder;
14867 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
14869 + const-string v4, "PrivacyPersistenceAdapter:getValue: Database not obtained while getting value for name: "
14871 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
14873 + move-result-object v3
14875 + invoke-virtual {v3, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
14877 + move-result-object v3
14879 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
14881 + move-result-object v3
14883 + invoke-static {v2, v3}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
14884 + :try_end_3a
14885 + .catchall {:try_start_16 .. :try_end_3a} :catchall_41
14887 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
14889 + :goto_3d
14890 + return-object v0
14892 + :catchall_3e
14893 + move-exception v0
14895 + :try_start_3f
14896 + monitor-exit v2
14897 + :try_end_40
14898 + .catchall {:try_start_3f .. :try_end_40} :catchall_3e
14900 + :try_start_40
14901 + throw v0
14902 + :try_end_41
14903 + .catchall {:try_start_40 .. :try_end_41} :catchall_41
14905 + :catchall_41
14906 + move-exception v0
14908 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
14910 + throw v0
14912 + :cond_46
14913 + :try_start_46
14914 + sget-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
14916 + invoke-interface {v0}, Ljava/util/concurrent/locks/ReadWriteLock;->readLock()Ljava/util/concurrent/locks/Lock;
14918 + move-result-object v0
14920 + invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V
14921 + :try_end_4f
14922 + .catchall {:try_start_46 .. :try_end_4f} :catchall_41
14924 + :try_start_4f
14925 + const-string/jumbo v2, "map"
14927 + const/4 v0, 0x1
14929 + new-array v3, v0, [Ljava/lang/String;
14931 + const/4 v0, 0x0
14933 + const-string/jumbo v4, "value"
14935 + aput-object v4, v3, v0
14937 + const-string/jumbo v4, "name=?"
14939 + const/4 v0, 0x1
14941 + new-array v5, v0, [Ljava/lang/String;
14943 + const/4 v0, 0x0
14945 + aput-object p1, v5, v0
14947 + const/4 v6, 0x0
14949 + const/4 v7, 0x0
14951 + const/4 v8, 0x0
14953 + const/4 v9, 0x0
14955 + move-object v0, p0
14957 + invoke-direct/range {v0 .. v9}, Landroid/privacy/PrivacyPersistenceAdapter;->query(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
14959 + move-result-object v10
14961 + if-eqz v10, :cond_97
14963 + invoke-interface {v10}, Landroid/database/Cursor;->getCount()I
14965 + move-result v0
14967 + if-lez v0, :cond_97
14969 + invoke-interface {v10}, Landroid/database/Cursor;->moveToFirst()Z
14971 + move-result v0
14973 + if-eqz v0, :cond_97
14975 + const-string/jumbo v0, "value"
14977 + invoke-interface {v10, v0}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I
14979 + move-result v0
14981 + invoke-interface {v10, v0}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14983 + move-result-object v12
14985 + invoke-interface {v10}, Landroid/database/Cursor;->close()V
14986 + :try_end_89
14987 + .catchall {:try_start_4f .. :try_end_89} :catchall_d3
14988 + .catch Ljava/lang/Exception; {:try_start_4f .. :try_end_89} :catch_b0
14990 + :goto_89
14991 + :try_start_89
14992 + sget-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
14994 + invoke-interface {v0}, Ljava/util/concurrent/locks/ReadWriteLock;->readLock()Ljava/util/concurrent/locks/Lock;
14996 + move-result-object v0
14998 + invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V
14999 + :try_end_92
15000 + .catchall {:try_start_89 .. :try_end_92} :catchall_41
15002 + :goto_92
15003 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
15005 + move-object v0, v12
15007 + goto :goto_3d
15009 + :cond_97
15010 + :try_start_97
15011 + const-string v0, "PrivacyPersistenceAdapter"
15013 + new-instance v2, Ljava/lang/StringBuilder;
15015 + invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
15017 + const-string v3, "PrivacyPersistenceAdapter:getValue: Could not get value for name: "
15019 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
15021 + move-result-object v2
15023 + invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
15025 + move-result-object v2
15027 + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
15029 + move-result-object v2
15031 + invoke-static {v0, v2}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
15032 + :try_end_af
15033 + .catchall {:try_start_97 .. :try_end_af} :catchall_d3
15034 + .catch Ljava/lang/Exception; {:try_start_97 .. :try_end_af} :catch_b0
15036 + goto :goto_89
15038 + :catch_b0
15039 + move-exception v11
15041 + :try_start_b1
15042 + const-string v0, "PrivacyPersistenceAdapter"
15044 + new-instance v2, Ljava/lang/StringBuilder;
15046 + invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
15048 + const-string v3, "PrivacyPersistenceAdapter:getValue: Exception occurred while getting value for name: "
15050 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
15052 + move-result-object v2
15054 + invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
15056 + move-result-object v2
15058 + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
15060 + move-result-object v2
15062 + invoke-static {v0, v2, v11}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
15063 + :try_end_c9
15064 + .catchall {:try_start_b1 .. :try_end_c9} :catchall_d3
15066 + :try_start_c9
15067 + sget-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
15069 + invoke-interface {v0}, Ljava/util/concurrent/locks/ReadWriteLock;->readLock()Ljava/util/concurrent/locks/Lock;
15071 + move-result-object v0
15073 + invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V
15075 + goto :goto_92
15077 + :catchall_d3
15078 + move-exception v0
15080 + sget-object v2, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
15082 + invoke-interface {v2}, Ljava/util/concurrent/locks/ReadWriteLock;->readLock()Ljava/util/concurrent/locks/Lock;
15084 + move-result-object v2
15086 + invoke-interface {v2}, Ljava/util/concurrent/locks/Lock;->unlock()V
15088 + throw v0
15089 + :try_end_de
15090 + .catchall {:try_start_c9 .. :try_end_de} :catchall_41
15091 +.end method
15093 +.method public purgeSettings()Z
15094 + .registers 26
15096 + const/16 v23, 0x1
15098 + new-instance v13, Ljava/util/HashSet;
15100 + invoke-direct {v13}, Ljava/util/HashSet;-><init>()V
15102 + move-object/from16 v0, p0
15104 + iget-object v2, v0, Landroid/privacy/PrivacyPersistenceAdapter;->mContext:Landroid/content/Context;
15106 + invoke-virtual {v2}, Landroid/content/Context;->getPackageManager()Landroid/content/pm/PackageManager;
15108 + move-result-object v20
15110 + const/4 v2, 0x0
15112 + move-object/from16 v0, v20
15114 + invoke-virtual {v0, v2}, Landroid/content/pm/PackageManager;->getInstalledApplications(I)Ljava/util/List;
15116 + move-result-object v18
15118 + invoke-interface/range {v18 .. v18}, Ljava/util/List;->iterator()Ljava/util/Iterator;
15120 + move-result-object v17
15122 + :goto_1a
15123 + invoke-interface/range {v17 .. v17}, Ljava/util/Iterator;->hasNext()Z
15125 + move-result v2
15127 + if-eqz v2, :cond_2c
15129 + invoke-interface/range {v17 .. v17}, Ljava/util/Iterator;->next()Ljava/lang/Object;
15131 + move-result-object v12
15133 + check-cast v12, Landroid/content/pm/ApplicationInfo;
15135 + iget-object v2, v12, Landroid/content/pm/ApplicationInfo;->packageName:Ljava/lang/String;
15137 + invoke-interface {v13, v2}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
15139 + goto :goto_1a
15141 + :cond_2c
15142 + const/4 v3, 0x0
15144 + :try_start_2d
15145 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
15147 + monitor-enter v4
15148 + :try_end_30
15149 + .catchall {:try_start_2d .. :try_end_30} :catchall_11b
15150 + .catch Ljava/lang/Exception; {:try_start_2d .. :try_end_30} :catch_56
15152 + :try_start_30
15153 + sget-object v2, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
15155 + sget-object v2, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
15157 + invoke-virtual {v2}, Ljava/lang/Integer;->intValue()I
15159 + move-result v2
15161 + add-int/lit8 v2, v2, 0x1
15163 + invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
15165 + move-result-object v2
15167 + sput-object v2, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
15169 + monitor-exit v4
15170 + :try_end_41
15171 + .catchall {:try_start_30 .. :try_end_41} :catchall_53
15173 + :try_start_41
15174 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->getDatabase()Landroid/database/sqlite/SQLiteDatabase;
15176 + move-result-object v3
15178 + if-nez v3, :cond_68
15180 + const-string v2, "PrivacyPersistenceAdapter"
15182 + const-string v4, "PrivacyPersistenceAdapter:purgeSettings: db could not be obtained"
15184 + invoke-static {v2, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
15185 + :try_end_4e
15186 + .catchall {:try_start_41 .. :try_end_4e} :catchall_11b
15187 + .catch Ljava/lang/Exception; {:try_start_41 .. :try_end_4e} :catch_56
15189 + const/4 v2, 0x0
15191 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
15193 + :goto_52
15194 + return v2
15196 + :catchall_53
15197 + move-exception v2
15199 + :try_start_54
15200 + monitor-exit v4
15201 + :try_end_55
15202 + .catchall {:try_start_54 .. :try_end_55} :catchall_53
15204 + :try_start_55
15205 + throw v2
15206 + :try_end_56
15207 + .catchall {:try_start_55 .. :try_end_56} :catchall_11b
15208 + .catch Ljava/lang/Exception; {:try_start_55 .. :try_end_56} :catch_56
15210 + :catch_56
15211 + move-exception v16
15213 + :try_start_57
15214 + const-string v2, "PrivacyPersistenceAdapter"
15216 + const-string v4, "PrivacyPersistenceAdapter:purgeSettings - purging DB failed"
15218 + move-object/from16 v0, v16
15220 + invoke-static {v2, v4, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
15221 + :try_end_60
15222 + .catchall {:try_start_57 .. :try_end_60} :catchall_11b
15224 + const/16 v23, 0x0
15226 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
15228 + :goto_65
15229 + move/from16 v2, v23
15231 + goto :goto_52
15233 + :cond_68
15234 + :try_start_68
15235 + sget-object v2, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
15237 + invoke-interface {v2}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
15239 + move-result-object v2
15241 + invoke-interface {v2}, Ljava/util/concurrent/locks/Lock;->lock()V
15242 + :try_end_71
15243 + .catchall {:try_start_68 .. :try_end_71} :catchall_11b
15244 + .catch Ljava/lang/Exception; {:try_start_68 .. :try_end_71} :catch_56
15246 + const/4 v15, 0x0
15248 + :try_start_72
15249 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->beginTransaction()V
15250 + :try_end_75
15251 + .catchall {:try_start_72 .. :try_end_75} :catchall_110
15253 + :try_start_75
15254 + const-string/jumbo v4, "settings"
15256 + const/4 v2, 0x1
15258 + new-array v5, v2, [Ljava/lang/String;
15260 + const/4 v2, 0x0
15262 + const-string/jumbo v6, "packageName"
15264 + aput-object v6, v5, v2
15266 + const/4 v6, 0x0
15268 + const/4 v7, 0x0
15270 + const/4 v8, 0x0
15272 + const/4 v9, 0x0
15274 + const/4 v10, 0x0
15276 + const/4 v11, 0x0
15278 + move-object/from16 v2, p0
15280 + invoke-direct/range {v2 .. v11}, Landroid/privacy/PrivacyPersistenceAdapter;->query(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
15282 + move-result-object v15
15284 + if-eqz v15, :cond_bd
15286 + invoke-interface {v15}, Landroid/database/Cursor;->getCount()I
15288 + move-result v2
15290 + if-lez v2, :cond_bd
15292 + invoke-interface {v15}, Landroid/database/Cursor;->moveToFirst()Z
15294 + move-result v2
15296 + if-eqz v2, :cond_bd
15298 + :cond_9b
15299 + const/4 v2, 0x0
15301 + invoke-interface {v15, v2}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
15303 + move-result-object v22
15305 + move-object/from16 v0, v22
15307 + invoke-interface {v13, v0}, Ljava/util/Set;->contains(Ljava/lang/Object;)Z
15309 + move-result v2
15311 + if-nez v2, :cond_b7
15313 + const-string/jumbo v2, "settings"
15315 + const-string/jumbo v4, "packageName = ?"
15317 + const/4 v5, 0x1
15319 + new-array v5, v5, [Ljava/lang/String;
15321 + const/4 v6, 0x0
15323 + aput-object v22, v5, v6
15325 + invoke-virtual {v3, v2, v4, v5}, Landroid/database/sqlite/SQLiteDatabase;->delete(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)I
15327 + :cond_b7
15328 + invoke-interface {v15}, Landroid/database/Cursor;->moveToNext()Z
15330 + move-result v2
15332 + if-nez v2, :cond_9b
15334 + :cond_bd
15335 + new-instance v24, Ljava/io/File;
15337 + const-string v2, "/data/system/privacy"
15339 + move-object/from16 v0, v24
15341 + invoke-direct {v0, v2}, Ljava/io/File;-><init>(Ljava/lang/String;)V
15343 + invoke-virtual/range {v24 .. v24}, Ljava/io/File;->listFiles()[Ljava/io/File;
15345 + move-result-object v14
15347 + array-length v0, v14
15349 + move/from16 v19, v0
15351 + const/16 v17, 0x0
15353 + :goto_cf
15354 + move/from16 v0, v17
15356 + move/from16 v1, v19
15358 + if-ge v0, v1, :cond_ed
15360 + aget-object v21, v14, v17
15362 + invoke-virtual/range {v21 .. v21}, Ljava/io/File;->getName()Ljava/lang/String;
15364 + move-result-object v22
15366 + move-object/from16 v0, v22
15368 + invoke-interface {v13, v0}, Ljava/util/Set;->contains(Ljava/lang/Object;)Z
15370 + move-result v2
15372 + if-nez v2, :cond_ea
15374 + move-object/from16 v0, p0
15376 + move-object/from16 v1, v21
15378 + invoke-direct {v0, v1}, Landroid/privacy/PrivacyPersistenceAdapter;->deleteRecursive(Ljava/io/File;)V
15380 + :cond_ea
15381 + add-int/lit8 v17, v17, 0x1
15383 + goto :goto_cf
15385 + :cond_ed
15386 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->setTransactionSuccessful()V
15387 + :try_end_f0
15388 + .catchall {:try_start_75 .. :try_end_f0} :catchall_106
15390 + if-eqz v15, :cond_f5
15392 + :try_start_f2
15393 + invoke-interface {v15}, Landroid/database/Cursor;->close()V
15395 + :cond_f5
15396 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
15397 + :try_end_f8
15398 + .catchall {:try_start_f2 .. :try_end_f8} :catchall_110
15400 + :try_start_f8
15401 + sget-object v2, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
15403 + invoke-interface {v2}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
15405 + move-result-object v2
15407 + invoke-interface {v2}, Ljava/util/concurrent/locks/Lock;->unlock()V
15408 + :try_end_101
15409 + .catchall {:try_start_f8 .. :try_end_101} :catchall_11b
15410 + .catch Ljava/lang/Exception; {:try_start_f8 .. :try_end_101} :catch_56
15412 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
15414 + goto/16 :goto_65
15416 + :catchall_106
15417 + move-exception v2
15419 + if-eqz v15, :cond_10c
15421 + :try_start_109
15422 + invoke-interface {v15}, Landroid/database/Cursor;->close()V
15424 + :cond_10c
15425 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
15427 + throw v2
15428 + :try_end_110
15429 + .catchall {:try_start_109 .. :try_end_110} :catchall_110
15431 + :catchall_110
15432 + move-exception v2
15434 + :try_start_111
15435 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
15437 + invoke-interface {v4}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
15439 + move-result-object v4
15441 + invoke-interface {v4}, Ljava/util/concurrent/locks/Lock;->unlock()V
15443 + throw v2
15444 + :try_end_11b
15445 + .catchall {:try_start_111 .. :try_end_11b} :catchall_11b
15446 + .catch Ljava/lang/Exception; {:try_start_111 .. :try_end_11b} :catch_56
15448 + :catchall_11b
15449 + move-exception v2
15451 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
15453 + throw v2
15454 +.end method
15456 +.method public saveSettings(Landroid/privacy/PrivacySettings;)Z
15457 + .registers 25
15459 + const/16 v19, 0x0
15461 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getPackageName()Ljava/lang/String;
15463 + move-result-object v18
15465 + if-eqz v18, :cond_e
15467 + invoke-virtual/range {v18 .. v18}, Ljava/lang/String;->isEmpty()Z
15469 + move-result v4
15471 + if-eqz v4, :cond_18
15473 + :cond_e
15474 + const-string v4, "PrivacyPersistenceAdapter"
15476 + const-string/jumbo v5, "saveSettings - either package name is missing"
15478 + invoke-static {v4, v5}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
15480 + const/4 v4, 0x0
15482 + :goto_17
15483 + return v4
15485 + :cond_18
15486 + new-instance v22, Landroid/content/ContentValues;
15488 + invoke-direct/range {v22 .. v22}, Landroid/content/ContentValues;-><init>()V
15490 + const-string/jumbo v4, "packageName"
15492 + move-object/from16 v0, v22
15494 + move-object/from16 v1, v18
15496 + invoke-virtual {v0, v4, v1}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
15498 + const-string/jumbo v4, "uid"
15500 + const/4 v5, -0x1
15502 + invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
15504 + move-result-object v5
15506 + move-object/from16 v0, v22
15508 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Integer;)V
15510 + const-string v4, "deviceIdSetting"
15512 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getDeviceIdSetting()B
15514 + move-result v5
15516 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15518 + move-result-object v5
15520 + move-object/from16 v0, v22
15522 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15524 + const-string v4, "deviceId"
15526 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getDeviceId()Ljava/lang/String;
15528 + move-result-object v5
15530 + move-object/from16 v0, v22
15532 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
15534 + const-string v4, "line1NumberSetting"
15536 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getLine1NumberSetting()B
15538 + move-result v5
15540 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15542 + move-result-object v5
15544 + move-object/from16 v0, v22
15546 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15548 + const-string v4, "line1Number"
15550 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getLine1Number()Ljava/lang/String;
15552 + move-result-object v5
15554 + move-object/from16 v0, v22
15556 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
15558 + const-string v4, "locationGpsSetting"
15560 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
15562 + move-result v5
15564 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15566 + move-result-object v5
15568 + move-object/from16 v0, v22
15570 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15572 + const-string v4, "locationGpsLat"
15574 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getLocationGpsLat()Ljava/lang/String;
15576 + move-result-object v5
15578 + move-object/from16 v0, v22
15580 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
15582 + const-string v4, "locationGpsLon"
15584 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getLocationGpsLon()Ljava/lang/String;
15586 + move-result-object v5
15588 + move-object/from16 v0, v22
15590 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
15592 + const-string v4, "locationNetworkSetting"
15594 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
15596 + move-result v5
15598 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15600 + move-result-object v5
15602 + move-object/from16 v0, v22
15604 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15606 + const-string v4, "locationNetworkLat"
15608 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getLocationNetworkLat()Ljava/lang/String;
15610 + move-result-object v5
15612 + move-object/from16 v0, v22
15614 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
15616 + const-string v4, "locationNetworkLon"
15618 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getLocationNetworkLon()Ljava/lang/String;
15620 + move-result-object v5
15622 + move-object/from16 v0, v22
15624 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
15626 + const-string/jumbo v4, "networkInfoSetting"
15628 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
15630 + move-result v5
15632 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15634 + move-result-object v5
15636 + move-object/from16 v0, v22
15638 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15640 + const-string/jumbo v4, "simInfoSetting"
15642 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSimInfoSetting()B
15644 + move-result v5
15646 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15648 + move-result-object v5
15650 + move-object/from16 v0, v22
15652 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15654 + const-string/jumbo v4, "simSerialNumberSetting"
15656 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSimSerialNumberSetting()B
15658 + move-result v5
15660 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15662 + move-result-object v5
15664 + move-object/from16 v0, v22
15666 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15668 + const-string/jumbo v4, "simSerialNumber"
15670 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSimSerialNumber()Ljava/lang/String;
15672 + move-result-object v5
15674 + move-object/from16 v0, v22
15676 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
15678 + const-string/jumbo v4, "subscriberIdSetting"
15680 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSubscriberIdSetting()B
15682 + move-result v5
15684 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15686 + move-result-object v5
15688 + move-object/from16 v0, v22
15690 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15692 + const-string/jumbo v4, "subscriberId"
15694 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSubscriberId()Ljava/lang/String;
15696 + move-result-object v5
15698 + move-object/from16 v0, v22
15700 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
15702 + const-string v4, "accountsSetting"
15704 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getAccountsSetting()B
15706 + move-result v5
15708 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15710 + move-result-object v5
15712 + move-object/from16 v0, v22
15714 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15716 + const-string v4, "accountsAuthTokensSetting"
15718 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getAccountsAuthTokensSetting()B
15720 + move-result v5
15722 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15724 + move-result-object v5
15726 + move-object/from16 v0, v22
15728 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15730 + const-string/jumbo v4, "outgoingCallsSetting"
15732 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getOutgoingCallsSetting()B
15734 + move-result v5
15736 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15738 + move-result-object v5
15740 + move-object/from16 v0, v22
15742 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15744 + const-string v4, "incomingCallsSetting"
15746 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getIncomingCallsSetting()B
15748 + move-result v5
15750 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15752 + move-result-object v5
15754 + move-object/from16 v0, v22
15756 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15758 + const-string v4, "contactsSetting"
15760 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getContactsSetting()B
15762 + move-result v5
15764 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15766 + move-result-object v5
15768 + move-object/from16 v0, v22
15770 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15772 + const-string v4, "calendarSetting"
15774 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getCalendarSetting()B
15776 + move-result v5
15778 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15780 + move-result-object v5
15782 + move-object/from16 v0, v22
15784 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15786 + const-string/jumbo v4, "mmsSetting"
15788 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getMmsSetting()B
15790 + move-result v5
15792 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15794 + move-result-object v5
15796 + move-object/from16 v0, v22
15798 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15800 + const-string/jumbo v4, "smsSetting"
15802 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSmsSetting()B
15804 + move-result v5
15806 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15808 + move-result-object v5
15810 + move-object/from16 v0, v22
15812 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15814 + const-string v4, "callLogSetting"
15816 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getCallLogSetting()B
15818 + move-result v5
15820 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15822 + move-result-object v5
15824 + move-object/from16 v0, v22
15826 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15828 + const-string v4, "bookmarksSetting"
15830 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getBookmarksSetting()B
15832 + move-result v5
15834 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15836 + move-result-object v5
15838 + move-object/from16 v0, v22
15840 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15842 + const-string/jumbo v4, "systemLogsSetting"
15844 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSystemLogsSetting()B
15846 + move-result v5
15848 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15850 + move-result-object v5
15852 + move-object/from16 v0, v22
15854 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15856 + const-string/jumbo v4, "notificationSetting"
15858 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getNotificationSetting()B
15860 + move-result v5
15862 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15864 + move-result-object v5
15866 + move-object/from16 v0, v22
15868 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15870 + const-string v4, "intentBootCompletedSetting"
15872 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getIntentBootCompletedSetting()B
15874 + move-result v5
15876 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15878 + move-result-object v5
15880 + move-object/from16 v0, v22
15882 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15884 + const-string v4, "cameraSetting"
15886 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getCameraSetting()B
15888 + move-result v5
15890 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15892 + move-result-object v5
15894 + move-object/from16 v0, v22
15896 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15898 + const-string/jumbo v4, "recordAudioSetting"
15900 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getRecordAudioSetting()B
15902 + move-result v5
15904 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15906 + move-result-object v5
15908 + move-object/from16 v0, v22
15910 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15912 + const-string/jumbo v4, "smsSendSetting"
15914 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSmsSendSetting()B
15916 + move-result v5
15918 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15920 + move-result-object v5
15922 + move-object/from16 v0, v22
15924 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15926 + const-string/jumbo v4, "phoneCallSetting"
15928 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
15930 + move-result v5
15932 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15934 + move-result-object v5
15936 + move-object/from16 v0, v22
15938 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15940 + const-string v4, "ipTableProtectSetting"
15942 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getIpTableProtectSetting()B
15944 + move-result v5
15946 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15948 + move-result-object v5
15950 + move-object/from16 v0, v22
15952 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15954 + const-string v4, "iccAccessSetting"
15956 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getIccAccessSetting()B
15958 + move-result v5
15960 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15962 + move-result-object v5
15964 + move-object/from16 v0, v22
15966 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15968 + const-string v4, "addOnManagementSetting"
15970 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getAddOnManagementSetting()B
15972 + move-result v5
15974 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15976 + move-result-object v5
15978 + move-object/from16 v0, v22
15980 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15982 + const-string v4, "androidIdSetting"
15984 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getAndroidIdSetting()B
15986 + move-result v5
15988 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15990 + move-result-object v5
15992 + move-object/from16 v0, v22
15994 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15996 + const-string v4, "androidId"
15998 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getAndroidID()Ljava/lang/String;
16000 + move-result-object v5
16002 + move-object/from16 v0, v22
16004 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
16006 + const-string/jumbo v4, "wifiInfoSetting"
16008 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
16010 + move-result v5
16012 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16014 + move-result-object v5
16016 + move-object/from16 v0, v22
16018 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16020 + const-string/jumbo v4, "switchConnectivitySetting"
16022 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSwitchConnectivitySetting()B
16024 + move-result v5
16026 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16028 + move-result-object v5
16030 + move-object/from16 v0, v22
16032 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16034 + const-string/jumbo v4, "sendMmsSetting"
16036 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSendMmsSetting()B
16038 + move-result v5
16040 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16042 + move-result-object v5
16044 + move-object/from16 v0, v22
16046 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16048 + const-string v4, "forceOnlineState"
16050 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getForceOnlineState()B
16052 + move-result v5
16054 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16056 + move-result-object v5
16058 + move-object/from16 v0, v22
16060 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16062 + const-string/jumbo v4, "switchWifiStateSetting"
16064 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSwitchWifiStateSetting()B
16066 + move-result v5
16068 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16070 + move-result-object v5
16072 + move-object/from16 v0, v22
16074 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16076 + const/4 v3, 0x0
16078 + const/4 v13, 0x0
16080 + :try_start_2a9
16081 + sget-object v5, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
16083 + monitor-enter v5
16084 + :try_end_2ac
16085 + .catchall {:try_start_2a9 .. :try_end_2ac} :catchall_33c
16086 + .catch Ljava/lang/Exception; {:try_start_2a9 .. :try_end_2ac} :catch_311
16088 + :try_start_2ac
16089 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
16091 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
16093 + invoke-virtual {v4}, Ljava/lang/Integer;->intValue()I
16095 + move-result v4
16097 + add-int/lit8 v4, v4, 0x1
16099 + invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
16101 + move-result-object v4
16103 + sput-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
16105 + monitor-exit v5
16106 + :try_end_2bd
16107 + .catchall {:try_start_2ac .. :try_end_2bd} :catchall_339
16109 + :try_start_2bd
16110 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->getDatabase()Landroid/database/sqlite/SQLiteDatabase;
16112 + move-result-object v3
16114 + if-eqz v3, :cond_4f2
16116 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z
16118 + move-result v4
16120 + if-eqz v4, :cond_4f2
16122 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
16124 + invoke-interface {v4}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
16126 + move-result-object v4
16128 + invoke-interface {v4}, Ljava/util/concurrent/locks/Lock;->lock()V
16129 + :try_end_2d2
16130 + .catchall {:try_start_2bd .. :try_end_2d2} :catchall_33c
16131 + .catch Ljava/lang/Exception; {:try_start_2bd .. :try_end_2d2} :catch_311
16133 + :try_start_2d2
16134 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->beginTransaction()V
16135 + :try_end_2d5
16136 + .catchall {:try_start_2d2 .. :try_end_2d5} :catchall_306
16138 + :try_start_2d5
16139 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->get_id()Ljava/lang/Integer;
16141 + move-result-object v16
16143 + if-eqz v16, :cond_38d
16145 + const-string/jumbo v4, "settings"
16147 + const-string v5, "_id=?"
16149 + const/4 v6, 0x1
16151 + new-array v6, v6, [Ljava/lang/String;
16153 + const/4 v7, 0x0
16155 + invoke-virtual/range {v16 .. v16}, Ljava/lang/Integer;->toString()Ljava/lang/String;
16157 + move-result-object v8
16159 + aput-object v8, v6, v7
16161 + move-object/from16 v0, v22
16163 + invoke-virtual {v3, v4, v0, v5, v6}, Landroid/database/sqlite/SQLiteDatabase;->update(Ljava/lang/String;Landroid/content/ContentValues;Ljava/lang/String;[Ljava/lang/String;)I
16165 + move-result v4
16167 + const/4 v5, 0x1
16169 + if-ge v4, v5, :cond_341
16171 + new-instance v4, Ljava/lang/Exception;
16173 + const-string/jumbo v5, "saveSettings - failed to update database entry"
16175 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
16177 + throw v4
16178 + :try_end_2fc
16179 + .catchall {:try_start_2d5 .. :try_end_2fc} :catchall_2fc
16181 + :catchall_2fc
16182 + move-exception v4
16184 + :try_start_2fd
16185 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
16187 + if-eqz v13, :cond_305
16189 + invoke-interface {v13}, Landroid/database/Cursor;->close()V
16191 + :cond_305
16192 + throw v4
16193 + :try_end_306
16194 + .catchall {:try_start_2fd .. :try_end_306} :catchall_306
16196 + :catchall_306
16197 + move-exception v4
16199 + :try_start_307
16200 + sget-object v5, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
16202 + invoke-interface {v5}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
16204 + move-result-object v5
16206 + invoke-interface {v5}, Ljava/util/concurrent/locks/Lock;->unlock()V
16208 + throw v4
16209 + :try_end_311
16210 + .catchall {:try_start_307 .. :try_end_311} :catchall_33c
16211 + .catch Ljava/lang/Exception; {:try_start_307 .. :try_end_311} :catch_311
16213 + :catch_311
16214 + move-exception v14
16216 + :try_start_312
16217 + const-string v4, "PrivacyPersistenceAdapter"
16219 + new-instance v5, Ljava/lang/StringBuilder;
16221 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
16223 + const-string v6, "PrivacyPersistenceAdapter:saveSettings: saving for "
16225 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
16227 + move-result-object v5
16229 + move-object/from16 v0, v18
16231 + invoke-virtual {v5, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
16233 + move-result-object v5
16235 + const-string v6, " failed"
16237 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
16239 + move-result-object v5
16241 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
16243 + move-result-object v5
16245 + invoke-static {v4, v5, v14}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
16246 + :try_end_332
16247 + .catchall {:try_start_312 .. :try_end_332} :catchall_33c
16249 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
16251 + :goto_335
16252 + move/from16 v4, v19
16254 + goto/16 :goto_17
16256 + :catchall_339
16257 + move-exception v4
16259 + :try_start_33a
16260 + monitor-exit v5
16261 + :try_end_33b
16262 + .catchall {:try_start_33a .. :try_end_33b} :catchall_339
16264 + :try_start_33b
16265 + throw v4
16266 + :try_end_33c
16267 + .catchall {:try_start_33b .. :try_end_33c} :catchall_33c
16268 + .catch Ljava/lang/Exception; {:try_start_33b .. :try_end_33c} :catch_311
16270 + :catchall_33c
16271 + move-exception v4
16273 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
16275 + throw v4
16277 + :cond_341
16278 + :try_start_341
16279 + const-string v4, "allowed_contacts"
16281 + const-string/jumbo v5, "settings_id=?"
16283 + const/4 v6, 0x1
16285 + new-array v6, v6, [Ljava/lang/String;
16287 + const/4 v7, 0x0
16289 + invoke-virtual/range {v16 .. v16}, Ljava/lang/Integer;->toString()Ljava/lang/String;
16291 + move-result-object v8
16293 + aput-object v8, v6, v7
16295 + invoke-virtual {v3, v4, v5, v6}, Landroid/database/sqlite/SQLiteDatabase;->delete(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)I
16297 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getAllowedContacts()[I
16299 + move-result-object v11
16301 + if-eqz v11, :cond_4af
16303 + new-instance v12, Landroid/content/ContentValues;
16305 + invoke-direct {v12}, Landroid/content/ContentValues;-><init>()V
16307 + const/4 v15, 0x0
16309 + :goto_35f
16310 + array-length v4, v11
16312 + if-ge v15, v4, :cond_4af
16314 + const-string/jumbo v4, "settings_id"
16316 + move-object/from16 v0, v16
16318 + invoke-virtual {v12, v4, v0}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Integer;)V
16320 + const-string v4, "contact_id"
16322 + aget v5, v11, v15
16324 + invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
16326 + move-result-object v5
16328 + invoke-virtual {v12, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Integer;)V
16330 + const-string v4, "allowed_contacts"
16332 + const/4 v5, 0x0
16334 + invoke-virtual {v3, v4, v5, v12}, Landroid/database/sqlite/SQLiteDatabase;->insert(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J
16336 + move-result-wide v4
16338 + const-wide/16 v6, -0x1
16340 + cmp-long v4, v4, v6
16342 + if-nez v4, :cond_38a
16344 + new-instance v4, Ljava/lang/Exception;
16346 + const-string v5, "PrivacyPersistenceAdapter:saveSettings: failed to update database entry (contacts)"
16348 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
16350 + throw v4
16352 + :cond_38a
16353 + add-int/lit8 v15, v15, 0x1
16355 + goto :goto_35f
16357 + :cond_38d
16358 + const-string/jumbo v4, "settings"
16360 + const/4 v5, 0x1
16362 + new-array v5, v5, [Ljava/lang/String;
16364 + const/4 v6, 0x0
16366 + const-string v7, "_id"
16368 + aput-object v7, v5, v6
16370 + const-string/jumbo v6, "packageName=?"
16372 + const/4 v7, 0x1
16374 + new-array v7, v7, [Ljava/lang/String;
16376 + const/4 v8, 0x0
16378 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getPackageName()Ljava/lang/String;
16380 + move-result-object v9
16382 + aput-object v9, v7, v8
16384 + const/4 v8, 0x0
16386 + const/4 v9, 0x0
16388 + const/4 v10, 0x0
16390 + invoke-virtual/range {v3 .. v10}, Landroid/database/sqlite/SQLiteDatabase;->query(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
16392 + move-result-object v13
16394 + if-eqz v13, :cond_4a7
16396 + invoke-interface {v13}, Landroid/database/Cursor;->getCount()I
16398 + move-result v4
16400 + const/4 v5, 0x1
16402 + if-ne v4, v5, :cond_433
16404 + const-string/jumbo v4, "settings"
16406 + const-string/jumbo v5, "packageName=?"
16408 + const/4 v6, 0x1
16410 + new-array v6, v6, [Ljava/lang/String;
16412 + const/4 v7, 0x0
16414 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getPackageName()Ljava/lang/String;
16416 + move-result-object v8
16418 + aput-object v8, v6, v7
16420 + move-object/from16 v0, v22
16422 + invoke-virtual {v3, v4, v0, v5, v6}, Landroid/database/sqlite/SQLiteDatabase;->update(Ljava/lang/String;Landroid/content/ContentValues;Ljava/lang/String;[Ljava/lang/String;)I
16424 + move-result v4
16426 + const/4 v5, 0x1
16428 + if-ge v4, v5, :cond_3d7
16430 + new-instance v4, Ljava/lang/Exception;
16432 + const-string/jumbo v5, "saveSettings - failed to update database entry"
16434 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
16436 + throw v4
16438 + :cond_3d7
16439 + invoke-interface {v13}, Landroid/database/Cursor;->moveToFirst()Z
16441 + move-result v4
16443 + if-eqz v4, :cond_4af
16445 + const/4 v4, 0x0
16447 + invoke-interface {v13, v4}, Landroid/database/Cursor;->getInt(I)I
16449 + move-result v4
16451 + invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
16453 + move-result-object v17
16455 + const-string v4, "allowed_contacts"
16457 + const-string/jumbo v5, "settings_id=?"
16459 + const/4 v6, 0x1
16461 + new-array v6, v6, [Ljava/lang/String;
16463 + const/4 v7, 0x0
16465 + invoke-virtual/range {v17 .. v17}, Ljava/lang/Integer;->toString()Ljava/lang/String;
16467 + move-result-object v8
16469 + aput-object v8, v6, v7
16471 + invoke-virtual {v3, v4, v5, v6}, Landroid/database/sqlite/SQLiteDatabase;->delete(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)I
16473 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getAllowedContacts()[I
16475 + move-result-object v11
16477 + if-eqz v11, :cond_4af
16479 + new-instance v12, Landroid/content/ContentValues;
16481 + invoke-direct {v12}, Landroid/content/ContentValues;-><init>()V
16483 + const/4 v15, 0x0
16485 + :goto_404
16486 + array-length v4, v11
16488 + if-ge v15, v4, :cond_4af
16490 + const-string/jumbo v4, "settings_id"
16492 + move-object/from16 v0, v17
16494 + invoke-virtual {v12, v4, v0}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Integer;)V
16496 + const-string v4, "contact_id"
16498 + aget v5, v11, v15
16500 + invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
16502 + move-result-object v5
16504 + invoke-virtual {v12, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Integer;)V
16506 + const-string v4, "allowed_contacts"
16508 + const/4 v5, 0x0
16510 + invoke-virtual {v3, v4, v5, v12}, Landroid/database/sqlite/SQLiteDatabase;->insert(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J
16512 + move-result-wide v4
16514 + const-wide/16 v6, -0x1
16516 + cmp-long v4, v4, v6
16518 + if-nez v4, :cond_430
16520 + new-instance v4, Ljava/lang/Exception;
16522 + const-string/jumbo v5, "saveSettings - failed to update database entry (contacts)"
16524 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
16526 + throw v4
16528 + :cond_430
16529 + add-int/lit8 v15, v15, 0x1
16531 + goto :goto_404
16533 + :cond_433
16534 + invoke-interface {v13}, Landroid/database/Cursor;->getCount()I
16536 + move-result v4
16538 + if-nez v4, :cond_49f
16540 + const-string/jumbo v4, "settings"
16542 + const/4 v5, 0x0
16544 + move-object/from16 v0, v22
16546 + invoke-virtual {v3, v4, v5, v0}, Landroid/database/sqlite/SQLiteDatabase;->insert(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J
16548 + move-result-wide v20
16550 + const-wide/16 v4, -0x1
16552 + cmp-long v4, v20, v4
16554 + if-nez v4, :cond_451
16556 + new-instance v4, Ljava/lang/Exception;
16558 + const-string v5, "PrivacyPersistenceAdapter:saveSettings - failed to insert new record into DB"
16560 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
16562 + throw v4
16564 + :cond_451
16565 + const-string v4, "allowed_contacts"
16567 + const-string/jumbo v5, "settings_id=?"
16569 + const/4 v6, 0x1
16571 + new-array v6, v6, [Ljava/lang/String;
16573 + const/4 v7, 0x0
16575 + invoke-static/range {v20 .. v21}, Ljava/lang/Long;->toString(J)Ljava/lang/String;
16577 + move-result-object v8
16579 + aput-object v8, v6, v7
16581 + invoke-virtual {v3, v4, v5, v6}, Landroid/database/sqlite/SQLiteDatabase;->delete(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)I
16583 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getAllowedContacts()[I
16585 + move-result-object v11
16587 + if-eqz v11, :cond_4af
16589 + new-instance v12, Landroid/content/ContentValues;
16591 + invoke-direct {v12}, Landroid/content/ContentValues;-><init>()V
16593 + const/4 v15, 0x0
16595 + :goto_46f
16596 + array-length v4, v11
16598 + if-ge v15, v4, :cond_4af
16600 + const-string/jumbo v4, "settings_id"
16602 + invoke-static/range {v20 .. v21}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
16604 + move-result-object v5
16606 + invoke-virtual {v12, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Long;)V
16608 + const-string v4, "contact_id"
16610 + aget v5, v11, v15
16612 + invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
16614 + move-result-object v5
16616 + invoke-virtual {v12, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Integer;)V
16618 + const-string v4, "allowed_contacts"
16620 + const/4 v5, 0x0
16622 + invoke-virtual {v3, v4, v5, v12}, Landroid/database/sqlite/SQLiteDatabase;->insert(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J
16624 + move-result-wide v4
16626 + const-wide/16 v6, -0x1
16628 + cmp-long v4, v4, v6
16630 + if-nez v4, :cond_49c
16632 + new-instance v4, Ljava/lang/Exception;
16634 + const-string v5, "PrivacyPersistenceAdapter:saveSettings:failed to update database entry (contacts)"
16636 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
16638 + throw v4
16640 + :cond_49c
16641 + add-int/lit8 v15, v15, 0x1
16643 + goto :goto_46f
16645 + :cond_49f
16646 + new-instance v4, Ljava/lang/Exception;
16648 + const-string v5, "PrivacyPersistenceAdapter:saveSettings:duplicate entries in the privacy.db"
16650 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
16652 + throw v4
16654 + :cond_4a7
16655 + new-instance v4, Ljava/lang/Exception;
16657 + const-string v5, "PrivacyPersistenceAdapter:saveSettings:cursor is null, database access failed"
16659 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
16661 + throw v4
16663 + :cond_4af
16664 + const-string/jumbo v4, "systemLogsSetting"
16666 + move-object/from16 v0, p0
16668 + move-object/from16 v1, v18
16670 + move-object/from16 v2, p1
16672 + invoke-direct {v0, v4, v1, v2}, Landroid/privacy/PrivacyPersistenceAdapter;->writeExternalSettings(Ljava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)Z
16674 + move-result v4
16676 + if-nez v4, :cond_4c6
16678 + new-instance v4, Ljava/lang/Exception;
16680 + const-string v5, "PrivacyPersistenceAdapter:saveSettings:failed to write systemLogsSettings file"
16682 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
16684 + throw v4
16686 + :cond_4c6
16687 + const-string v4, "ipTableProtectSetting"
16689 + move-object/from16 v0, p0
16691 + move-object/from16 v1, v18
16693 + move-object/from16 v2, p1
16695 + invoke-direct {v0, v4, v1, v2}, Landroid/privacy/PrivacyPersistenceAdapter;->writeExternalSettings(Ljava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)Z
16697 + move-result v4
16699 + if-nez v4, :cond_4dc
16701 + new-instance v4, Ljava/lang/Exception;
16703 + const-string v5, "PrivacyPersistenceAdapter:saveSettings:failed to write ipTableProtectSetting file"
16705 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
16707 + throw v4
16709 + :cond_4dc
16710 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->setTransactionSuccessful()V
16711 + :try_end_4df
16712 + .catchall {:try_start_341 .. :try_end_4df} :catchall_2fc
16714 + :try_start_4df
16715 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
16717 + if-eqz v13, :cond_4e7
16719 + invoke-interface {v13}, Landroid/database/Cursor;->close()V
16720 + :try_end_4e7
16721 + .catchall {:try_start_4df .. :try_end_4e7} :catchall_306
16723 + :cond_4e7
16724 + :try_start_4e7
16725 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
16727 + invoke-interface {v4}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
16729 + move-result-object v4
16731 + invoke-interface {v4}, Ljava/util/concurrent/locks/Lock;->unlock()V
16732 + :try_end_4f0
16733 + .catchall {:try_start_4e7 .. :try_end_4f0} :catchall_33c
16734 + .catch Ljava/lang/Exception; {:try_start_4e7 .. :try_end_4f0} :catch_311
16736 + const/16 v19, 0x1
16738 + :cond_4f2
16739 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
16741 + goto/16 :goto_335
16742 +.end method
16744 +.method public setValue(Ljava/lang/String;Ljava/lang/String;)Z
16745 + .registers 11
16747 + const/4 v3, 0x0
16749 + const-string v4, "PrivacyPersistenceAdapter"
16751 + new-instance v5, Ljava/lang/StringBuilder;
16753 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
16755 + const-string/jumbo v6, "setValue - name "
16757 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
16759 + move-result-object v5
16761 + invoke-virtual {v5, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
16763 + move-result-object v5
16765 + const-string v6, " value "
16767 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
16769 + move-result-object v5
16771 + invoke-virtual {v5, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
16773 + move-result-object v5
16775 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
16777 + move-result-object v5
16779 + invoke-static {v4, v5}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
16781 + new-instance v2, Landroid/content/ContentValues;
16783 + invoke-direct {v2}, Landroid/content/ContentValues;-><init>()V
16785 + const-string/jumbo v4, "name"
16787 + invoke-virtual {v2, v4, p1}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
16789 + const-string/jumbo v4, "value"
16791 + invoke-virtual {v2, v4, p2}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
16793 + const/4 v1, 0x0
16795 + :try_start_36
16796 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
16798 + monitor-enter v4
16799 + :try_end_39
16800 + .catchall {:try_start_36 .. :try_end_39} :catchall_75
16802 + :try_start_39
16803 + sget-object v5, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
16805 + sget-object v5, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
16807 + invoke-virtual {v5}, Ljava/lang/Integer;->intValue()I
16809 + move-result v5
16811 + add-int/lit8 v5, v5, 0x1
16813 + invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
16815 + move-result-object v5
16817 + sput-object v5, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
16819 + monitor-exit v4
16820 + :try_end_4a
16821 + .catchall {:try_start_39 .. :try_end_4a} :catchall_72
16823 + :try_start_4a
16824 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->getDatabase()Landroid/database/sqlite/SQLiteDatabase;
16826 + move-result-object v0
16828 + if-eqz v0, :cond_56
16830 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z
16832 + move-result v4
16834 + if-nez v4, :cond_7a
16836 + :cond_56
16837 + const-string v4, "PrivacyPersistenceAdapter"
16839 + new-instance v5, Ljava/lang/StringBuilder;
16841 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
16843 + const-string v6, "PrivacyPersistenceAdapter:setValue: Database not obtained while setting value for name: "
16845 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
16847 + move-result-object v5
16849 + invoke-virtual {v5, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
16851 + move-result-object v5
16853 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
16855 + move-result-object v5
16857 + invoke-static {v4, v5}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
16858 + :try_end_6e
16859 + .catchall {:try_start_4a .. :try_end_6e} :catchall_75
16861 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
16863 + :goto_71
16864 + return v3
16866 + :catchall_72
16867 + move-exception v3
16869 + :try_start_73
16870 + monitor-exit v4
16871 + :try_end_74
16872 + .catchall {:try_start_73 .. :try_end_74} :catchall_72
16874 + :try_start_74
16875 + throw v3
16876 + :try_end_75
16877 + .catchall {:try_start_74 .. :try_end_75} :catchall_75
16879 + :catchall_75
16880 + move-exception v3
16882 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
16884 + throw v3
16886 + :cond_7a
16887 + :try_start_7a
16888 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
16890 + invoke-interface {v4}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
16892 + move-result-object v4
16894 + invoke-interface {v4}, Ljava/util/concurrent/locks/Lock;->lock()V
16895 + :try_end_83
16896 + .catchall {:try_start_7a .. :try_end_83} :catchall_75
16898 + :try_start_83
16899 + const-string/jumbo v4, "map"
16901 + const/4 v5, 0x0
16903 + invoke-virtual {v0, v4, v5, v2}, Landroid/database/sqlite/SQLiteDatabase;->replace(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J
16904 + :try_end_8a
16905 + .catchall {:try_start_83 .. :try_end_8a} :catchall_a2
16907 + move-result-wide v4
16909 + const-wide/16 v6, -0x1
16911 + cmp-long v4, v4, v6
16913 + if-eqz v4, :cond_a0
16915 + const/4 v1, 0x1
16917 + :goto_92
16918 + :try_start_92
16919 + sget-object v3, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
16921 + invoke-interface {v3}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
16923 + move-result-object v3
16925 + invoke-interface {v3}, Ljava/util/concurrent/locks/Lock;->unlock()V
16926 + :try_end_9b
16927 + .catchall {:try_start_92 .. :try_end_9b} :catchall_75
16929 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
16931 + move v3, v1
16933 + goto :goto_71
16935 + :cond_a0
16936 + move v1, v3
16938 + goto :goto_92
16940 + :catchall_a2
16941 + move-exception v3
16943 + :try_start_a3
16944 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
16946 + invoke-interface {v4}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
16948 + move-result-object v4
16950 + invoke-interface {v4}, Ljava/util/concurrent/locks/Lock;->unlock()V
16952 + throw v3
16953 + :try_end_ad
16954 + .catchall {:try_start_a3 .. :try_end_ad} :catchall_75
16955 +.end method
16956 diff -Npru stock-framework/smali/android/privacy/PrivacySettings$1.smali opd-framework/smali/android/privacy/PrivacySettings$1.smali
16957 --- stock-framework/smali/android/privacy/PrivacySettings$1.smali 1969-12-31 18:00:00.000000000 -0600
16958 +++ opd-framework/smali/android/privacy/PrivacySettings$1.smali 2013-01-08 23:29:43.604287582 -0600
16959 @@ -0,0 +1,77 @@
16960 +.class final Landroid/privacy/PrivacySettings$1;
16961 +.super Ljava/lang/Object;
16962 +.source "PrivacySettings.java"
16964 +# interfaces
16965 +.implements Landroid/os/Parcelable$Creator;
16968 +# annotations
16969 +.annotation system Ldalvik/annotation/EnclosingClass;
16970 + value = Landroid/privacy/PrivacySettings;
16971 +.end annotation
16973 +.annotation system Ldalvik/annotation/InnerClass;
16974 + accessFlags = 0x8
16975 + name = null
16976 +.end annotation
16978 +.annotation system Ldalvik/annotation/Signature;
16979 + value = {
16980 + "Ljava/lang/Object;",
16981 + "Landroid/os/Parcelable$Creator",
16982 + "<",
16983 + "Landroid/privacy/PrivacySettings;",
16984 + ">;"
16986 +.end annotation
16989 +# direct methods
16990 +.method constructor <init>()V
16991 + .registers 1
16993 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
16995 + return-void
16996 +.end method
16999 +# virtual methods
17000 +.method public createFromParcel(Landroid/os/Parcel;)Landroid/privacy/PrivacySettings;
17001 + .registers 3
17003 + new-instance v0, Landroid/privacy/PrivacySettings;
17005 + invoke-direct {v0, p1}, Landroid/privacy/PrivacySettings;-><init>(Landroid/os/Parcel;)V
17007 + return-object v0
17008 +.end method
17010 +.method public bridge synthetic createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
17011 + .registers 3
17013 + invoke-virtual {p0, p1}, Landroid/privacy/PrivacySettings$1;->createFromParcel(Landroid/os/Parcel;)Landroid/privacy/PrivacySettings;
17015 + move-result-object v0
17017 + return-object v0
17018 +.end method
17020 +.method public newArray(I)[Landroid/privacy/PrivacySettings;
17021 + .registers 3
17023 + new-array v0, p1, [Landroid/privacy/PrivacySettings;
17025 + return-object v0
17026 +.end method
17028 +.method public bridge synthetic newArray(I)[Ljava/lang/Object;
17029 + .registers 3
17031 + invoke-virtual {p0, p1}, Landroid/privacy/PrivacySettings$1;->newArray(I)[Landroid/privacy/PrivacySettings;
17033 + move-result-object v0
17035 + return-object v0
17036 +.end method
17037 diff -Npru stock-framework/smali/android/privacy/PrivacySettingsManagerService.smali opd-framework/smali/android/privacy/PrivacySettingsManagerService.smali
17038 --- stock-framework/smali/android/privacy/PrivacySettingsManagerService.smali 1969-12-31 18:00:00.000000000 -0600
17039 +++ opd-framework/smali/android/privacy/PrivacySettingsManagerService.smali 2013-01-08 23:29:43.608287601 -0600
17040 @@ -0,0 +1,665 @@
17041 +.class public final Landroid/privacy/PrivacySettingsManagerService;
17042 +.super Landroid/privacy/IPrivacySettingsManager$Stub;
17043 +.source "PrivacySettingsManagerService.java"
17046 +# static fields
17047 +.field private static final READ_PRIVACY_SETTINGS:Ljava/lang/String; = "android.privacy.READ_PRIVACY_SETTINGS"
17049 +.field private static final TAG:Ljava/lang/String; = "PrivacySettingsManagerService"
17051 +.field private static final VERSION:D = 1.51
17053 +.field private static final WRITE_PRIVACY_SETTINGS:Ljava/lang/String; = "android.privacy.WRITE_PRIVACY_SETTINGS"
17055 +.field public static obs:Landroid/privacy/PrivacyFileObserver;
17058 +# instance fields
17059 +.field private bootCompleted:Z
17061 +.field private context:Landroid/content/Context;
17063 +.field private enabled:Z
17065 +.field private notificationsEnabled:Z
17067 +.field private persistenceAdapter:Landroid/privacy/PrivacyPersistenceAdapter;
17070 +# direct methods
17071 +.method public constructor <init>(Landroid/content/Context;)V
17072 + .registers 5
17074 + invoke-direct {p0}, Landroid/privacy/IPrivacySettingsManager$Stub;-><init>()V
17076 + const-string v0, "PrivacySettingsManagerService"
17078 + new-instance v1, Ljava/lang/StringBuilder;
17080 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
17082 + const-string v2, "PrivacySettingsManagerService - initializing for package: "
17084 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
17086 + move-result-object v1
17088 + invoke-virtual {p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
17090 + move-result-object v2
17092 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
17094 + move-result-object v1
17096 + const-string v2, " UID: "
17098 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
17100 + move-result-object v1
17102 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
17104 + move-result v2
17106 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
17108 + move-result-object v1
17110 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
17112 + move-result-object v1
17114 + invoke-static {v0, v1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
17116 + iput-object p1, p0, Landroid/privacy/PrivacySettingsManagerService;->context:Landroid/content/Context;
17118 + new-instance v0, Landroid/privacy/PrivacyPersistenceAdapter;
17120 + invoke-direct {v0, p1}, Landroid/privacy/PrivacyPersistenceAdapter;-><init>(Landroid/content/Context;)V
17122 + iput-object v0, p0, Landroid/privacy/PrivacySettingsManagerService;->persistenceAdapter:Landroid/privacy/PrivacyPersistenceAdapter;
17124 + new-instance v0, Landroid/privacy/PrivacyFileObserver;
17126 + const-string v1, "/data/system/privacy"
17128 + invoke-direct {v0, v1, p0}, Landroid/privacy/PrivacyFileObserver;-><init>(Ljava/lang/String;Landroid/privacy/PrivacySettingsManagerService;)V
17130 + sput-object v0, Landroid/privacy/PrivacySettingsManagerService;->obs:Landroid/privacy/PrivacyFileObserver;
17132 + iget-object v0, p0, Landroid/privacy/PrivacySettingsManagerService;->persistenceAdapter:Landroid/privacy/PrivacyPersistenceAdapter;
17134 + const-string v1, "enabled"
17136 + invoke-virtual {v0, v1}, Landroid/privacy/PrivacyPersistenceAdapter;->getValue(Ljava/lang/String;)Ljava/lang/String;
17138 + move-result-object v0
17140 + const-string v1, "1"
17142 + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
17144 + move-result v0
17146 + iput-boolean v0, p0, Landroid/privacy/PrivacySettingsManagerService;->enabled:Z
17148 + iget-object v0, p0, Landroid/privacy/PrivacySettingsManagerService;->persistenceAdapter:Landroid/privacy/PrivacyPersistenceAdapter;
17150 + const-string/jumbo v1, "notifications_enabled"
17152 + invoke-virtual {v0, v1}, Landroid/privacy/PrivacyPersistenceAdapter;->getValue(Ljava/lang/String;)Ljava/lang/String;
17154 + move-result-object v0
17156 + const-string v1, "1"
17158 + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
17160 + move-result v0
17162 + iput-boolean v0, p0, Landroid/privacy/PrivacySettingsManagerService;->notificationsEnabled:Z
17164 + const/4 v0, 0x0
17166 + iput-boolean v0, p0, Landroid/privacy/PrivacySettingsManagerService;->bootCompleted:Z
17168 + return-void
17169 +.end method
17171 +.method private checkCallerCanReadOrThrow()V
17172 + .registers 4
17174 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
17176 + move-result v0
17178 + const/16 v1, 0x3e8
17180 + if-ne v0, v1, :cond_9
17182 + :goto_8
17183 + return-void
17185 + :cond_9
17186 + iget-object v0, p0, Landroid/privacy/PrivacySettingsManagerService;->context:Landroid/content/Context;
17188 + const-string v1, "android.privacy.READ_PRIVACY_SETTINGS"
17190 + const-string v2, "Requires READ_PRIVACY_SETTINGS"
17192 + invoke-virtual {v0, v1, v2}, Landroid/content/Context;->enforceCallingPermission(Ljava/lang/String;Ljava/lang/String;)V
17194 + goto :goto_8
17195 +.end method
17197 +.method private checkCallerCanReadSettings()Z
17198 + .registers 3
17200 + :try_start_0
17201 + invoke-direct {p0}, Landroid/privacy/PrivacySettingsManagerService;->checkCallerCanReadOrThrow()V
17202 + :try_end_3
17203 + .catch Ljava/lang/SecurityException; {:try_start_0 .. :try_end_3} :catch_5
17205 + const/4 v1, 0x1
17207 + :goto_4
17208 + return v1
17210 + :catch_5
17211 + move-exception v0
17213 + const/4 v1, 0x0
17215 + goto :goto_4
17216 +.end method
17218 +.method private checkCallerCanWriteOrThrow()V
17219 + .registers 4
17220 + .annotation system Ldalvik/annotation/Throws;
17221 + value = {
17222 + Landroid/os/RemoteException;
17224 + .end annotation
17226 + iget-object v0, p0, Landroid/privacy/PrivacySettingsManagerService;->context:Landroid/content/Context;
17228 + const-string v1, "android.privacy.WRITE_PRIVACY_SETTINGS"
17230 + const-string v2, "Requires WRITE_PRIVACY_SETTINGS"
17232 + invoke-virtual {v0, v1, v2}, Landroid/content/Context;->enforceCallingPermission(Ljava/lang/String;Ljava/lang/String;)V
17234 + return-void
17235 +.end method
17237 +.method private checkCallerCanWriteSettings()Z
17238 + .registers 3
17239 + .annotation system Ldalvik/annotation/Throws;
17240 + value = {
17241 + Landroid/os/RemoteException;
17243 + .end annotation
17245 + :try_start_0
17246 + invoke-direct {p0}, Landroid/privacy/PrivacySettingsManagerService;->checkCallerCanWriteOrThrow()V
17247 + :try_end_3
17248 + .catch Ljava/lang/SecurityException; {:try_start_0 .. :try_end_3} :catch_5
17250 + const/4 v1, 0x1
17252 + :goto_4
17253 + return v1
17255 + :catch_5
17256 + move-exception v0
17258 + const/4 v1, 0x0
17260 + goto :goto_4
17261 +.end method
17264 +# virtual methods
17265 +.method public addObserver(Ljava/lang/String;)V
17266 + .registers 3
17267 + .annotation system Ldalvik/annotation/Throws;
17268 + value = {
17269 + Landroid/os/RemoteException;
17271 + .end annotation
17273 + invoke-direct {p0}, Landroid/privacy/PrivacySettingsManagerService;->checkCallerCanWriteOrThrow()V
17275 + sget-object v0, Landroid/privacy/PrivacySettingsManagerService;->obs:Landroid/privacy/PrivacyFileObserver;
17277 + invoke-virtual {v0, p1}, Landroid/privacy/PrivacyFileObserver;->addObserver(Ljava/lang/String;)V
17279 + return-void
17280 +.end method
17282 +.method public deleteSettings(Ljava/lang/String;)Z
17283 + .registers 7
17284 + .annotation system Ldalvik/annotation/Throws;
17285 + value = {
17286 + Landroid/os/RemoteException;
17288 + .end annotation
17290 + const/4 v4, 0x1
17292 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
17294 + move-result v2
17296 + const/16 v3, 0x3e8
17298 + if-eq v2, v3, :cond_c
17300 + invoke-direct {p0}, Landroid/privacy/PrivacySettingsManagerService;->checkCallerCanWriteOrThrow()V
17302 + :cond_c
17303 + iget-object v2, p0, Landroid/privacy/PrivacySettingsManagerService;->persistenceAdapter:Landroid/privacy/PrivacyPersistenceAdapter;
17305 + invoke-virtual {v2, p1}, Landroid/privacy/PrivacyPersistenceAdapter;->deleteSettings(Ljava/lang/String;)Z
17307 + move-result v1
17309 + new-instance v2, Ljava/lang/StringBuilder;
17311 + invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
17313 + const-string v3, "/data/system/privacy/"
17315 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
17317 + move-result-object v2
17319 + invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
17321 + move-result-object v2
17323 + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
17325 + move-result-object v0
17327 + new-instance v2, Ljava/io/File;
17329 + invoke-direct {v2, v0}, Ljava/io/File;-><init>(Ljava/lang/String;)V
17331 + invoke-virtual {v2}, Ljava/io/File;->exists()Z
17333 + move-result v2
17335 + if-eqz v2, :cond_38
17337 + if-ne v1, v4, :cond_38
17339 + sget-object v2, Landroid/privacy/PrivacySettingsManagerService;->obs:Landroid/privacy/PrivacyFileObserver;
17341 + invoke-virtual {v2, v0}, Landroid/privacy/PrivacyFileObserver;->addObserver(Ljava/lang/String;)V
17343 + :cond_37
17344 + :goto_37
17345 + return v1
17347 + :cond_38
17348 + if-ne v1, v4, :cond_37
17350 + sget-object v2, Landroid/privacy/PrivacySettingsManagerService;->obs:Landroid/privacy/PrivacyFileObserver;
17352 + iget-object v2, v2, Landroid/privacy/PrivacyFileObserver;->children:Ljava/util/HashMap;
17354 + invoke-virtual {v2, v0}, Ljava/util/HashMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;
17356 + goto :goto_37
17357 +.end method
17359 +.method public getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
17360 + .registers 4
17362 + iget-boolean v0, p0, Landroid/privacy/PrivacySettingsManagerService;->enabled:Z
17364 + if-nez v0, :cond_2e
17366 + iget-object v0, p0, Landroid/privacy/PrivacySettingsManagerService;->context:Landroid/content/Context;
17368 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
17370 + move-result-object v0
17372 + const-string v1, "com.privacy.pdroid"
17374 + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
17376 + move-result v0
17378 + if-nez v0, :cond_2e
17380 + iget-object v0, p0, Landroid/privacy/PrivacySettingsManagerService;->context:Landroid/content/Context;
17382 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
17384 + move-result-object v0
17386 + const-string v1, "com.privacy.pdroid.Addon"
17388 + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
17390 + move-result v0
17392 + if-nez v0, :cond_2e
17394 + iget-object v0, p0, Landroid/privacy/PrivacySettingsManagerService;->context:Landroid/content/Context;
17396 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
17398 + move-result-object v0
17400 + const-string v1, "com.android.privacy.pdroid.extension"
17402 + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
17404 + move-result v0
17406 + if-eqz v0, :cond_35
17408 + :cond_2e
17409 + iget-object v0, p0, Landroid/privacy/PrivacySettingsManagerService;->persistenceAdapter:Landroid/privacy/PrivacyPersistenceAdapter;
17411 + invoke-virtual {v0, p1}, Landroid/privacy/PrivacyPersistenceAdapter;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
17413 + move-result-object v0
17415 + :goto_34
17416 + return-object v0
17418 + :cond_35
17419 + const/4 v0, 0x0
17421 + goto :goto_34
17422 +.end method
17424 +.method public getVersion()D
17425 + .registers 3
17427 + const-wide v0, 0x3ff828f5c28f5c29L
17429 + return-wide v0
17430 +.end method
17432 +.method public notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
17433 + .registers 8
17435 + iget-boolean v1, p0, Landroid/privacy/PrivacySettingsManagerService;->bootCompleted:Z
17437 + if-eqz v1, :cond_34
17439 + iget-boolean v1, p0, Landroid/privacy/PrivacySettingsManagerService;->notificationsEnabled:Z
17441 + if-eqz v1, :cond_34
17443 + new-instance v0, Landroid/content/Intent;
17445 + invoke-direct {v0}, Landroid/content/Intent;-><init>()V
17447 + const-string v1, "com.privacy.pdroid.PRIVACY_NOTIFICATION"
17449 + invoke-virtual {v0, v1}, Landroid/content/Intent;->setAction(Ljava/lang/String;)Landroid/content/Intent;
17451 + const-string/jumbo v1, "packageName"
17453 + invoke-virtual {v0, v1, p1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
17455 + const-string/jumbo v1, "uid"
17457 + const/4 v2, -0x1
17459 + invoke-virtual {v0, v1, v2}, Landroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent;
17461 + const-string v1, "accessMode"
17463 + invoke-virtual {v0, v1, p2}, Landroid/content/Intent;->putExtra(Ljava/lang/String;B)Landroid/content/Intent;
17465 + const-string v1, "dataType"
17467 + invoke-virtual {v0, v1, p3}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
17469 + const-string/jumbo v1, "output"
17471 + invoke-virtual {v0, v1, p4}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
17473 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManagerService;->context:Landroid/content/Context;
17475 + invoke-virtual {v1, v0}, Landroid/content/Context;->sendBroadcast(Landroid/content/Intent;)V
17477 + :cond_34
17478 + return-void
17479 +.end method
17481 +.method public purgeSettings()Z
17482 + .registers 2
17484 + iget-object v0, p0, Landroid/privacy/PrivacySettingsManagerService;->persistenceAdapter:Landroid/privacy/PrivacyPersistenceAdapter;
17486 + invoke-virtual {v0}, Landroid/privacy/PrivacyPersistenceAdapter;->purgeSettings()Z
17488 + move-result v0
17490 + return v0
17491 +.end method
17493 +.method public registerObservers()V
17494 + .registers 3
17495 + .annotation system Ldalvik/annotation/Throws;
17496 + value = {
17497 + Landroid/os/RemoteException;
17499 + .end annotation
17501 + invoke-direct {p0}, Landroid/privacy/PrivacySettingsManagerService;->checkCallerCanWriteOrThrow()V
17503 + new-instance v0, Landroid/privacy/PrivacyFileObserver;
17505 + const-string v1, "/data/system/privacy"
17507 + invoke-direct {v0, v1, p0}, Landroid/privacy/PrivacyFileObserver;-><init>(Ljava/lang/String;Landroid/privacy/PrivacySettingsManagerService;)V
17509 + sput-object v0, Landroid/privacy/PrivacySettingsManagerService;->obs:Landroid/privacy/PrivacyFileObserver;
17511 + return-void
17512 +.end method
17514 +.method public saveSettings(Landroid/privacy/PrivacySettings;)Z
17515 + .registers 6
17516 + .annotation system Ldalvik/annotation/Throws;
17517 + value = {
17518 + Landroid/os/RemoteException;
17520 + .end annotation
17522 + const-string v1, "PrivacySettingsManagerService"
17524 + new-instance v2, Ljava/lang/StringBuilder;
17526 + invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
17528 + const-string/jumbo v3, "saveSettings - checking if caller (UID: "
17530 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
17532 + move-result-object v2
17534 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
17536 + move-result v3
17538 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
17540 + move-result-object v2
17542 + const-string v3, ") has sufficient permissions"
17544 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
17546 + move-result-object v2
17548 + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
17550 + move-result-object v2
17552 + invoke-static {v1, v2}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
17554 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
17556 + move-result v1
17558 + const/16 v2, 0x3e8
17560 + if-eq v1, v2, :cond_2e
17562 + invoke-direct {p0}, Landroid/privacy/PrivacySettingsManagerService;->checkCallerCanWriteOrThrow()V
17564 + :cond_2e
17565 + const-string v1, "PrivacySettingsManagerService"
17567 + new-instance v2, Ljava/lang/StringBuilder;
17569 + invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
17571 + const-string/jumbo v3, "saveSettings - "
17573 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
17575 + move-result-object v2
17577 + invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
17579 + move-result-object v2
17581 + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
17583 + move-result-object v2
17585 + invoke-static {v1, v2}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
17587 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManagerService;->persistenceAdapter:Landroid/privacy/PrivacyPersistenceAdapter;
17589 + invoke-virtual {v1, p1}, Landroid/privacy/PrivacyPersistenceAdapter;->saveSettings(Landroid/privacy/PrivacySettings;)Z
17591 + move-result v0
17593 + const/4 v1, 0x1
17595 + if-ne v0, v1, :cond_59
17597 + sget-object v1, Landroid/privacy/PrivacySettingsManagerService;->obs:Landroid/privacy/PrivacyFileObserver;
17599 + invoke-virtual {p1}, Landroid/privacy/PrivacySettings;->getPackageName()Ljava/lang/String;
17601 + move-result-object v2
17603 + invoke-virtual {v1, v2}, Landroid/privacy/PrivacyFileObserver;->addObserver(Ljava/lang/String;)V
17605 + :cond_59
17606 + return v0
17607 +.end method
17609 +.method public setBootCompleted()V
17610 + .registers 2
17612 + const/4 v0, 0x1
17614 + iput-boolean v0, p0, Landroid/privacy/PrivacySettingsManagerService;->bootCompleted:Z
17616 + return-void
17617 +.end method
17619 +.method public setEnabled(Z)Z
17620 + .registers 6
17621 + .annotation system Ldalvik/annotation/Throws;
17622 + value = {
17623 + Landroid/os/RemoteException;
17625 + .end annotation
17627 + const/4 v1, 0x1
17629 + invoke-direct {p0}, Landroid/privacy/PrivacySettingsManagerService;->checkCallerCanWriteOrThrow()V
17631 + if-eqz p1, :cond_15
17633 + const-string v0, "1"
17635 + :goto_8
17636 + iget-object v2, p0, Landroid/privacy/PrivacySettingsManagerService;->persistenceAdapter:Landroid/privacy/PrivacyPersistenceAdapter;
17638 + const-string v3, "enabled"
17640 + invoke-virtual {v2, v3, v0}, Landroid/privacy/PrivacyPersistenceAdapter;->setValue(Ljava/lang/String;Ljava/lang/String;)Z
17642 + move-result v2
17644 + if-eqz v2, :cond_18
17646 + iput-boolean v1, p0, Landroid/privacy/PrivacySettingsManagerService;->enabled:Z
17648 + :goto_14
17649 + return v1
17651 + :cond_15
17652 + const-string v0, "0"
17654 + goto :goto_8
17656 + :cond_18
17657 + const/4 v1, 0x0
17659 + goto :goto_14
17660 +.end method
17662 +.method public setNotificationsEnabled(Z)Z
17663 + .registers 6
17664 + .annotation system Ldalvik/annotation/Throws;
17665 + value = {
17666 + Landroid/os/RemoteException;
17668 + .end annotation
17670 + const/4 v1, 0x1
17672 + invoke-direct {p0}, Landroid/privacy/PrivacySettingsManagerService;->checkCallerCanWriteOrThrow()V
17674 + if-eqz p1, :cond_18
17676 + const-string v0, "1"
17678 + :goto_8
17679 + iget-object v2, p0, Landroid/privacy/PrivacySettingsManagerService;->persistenceAdapter:Landroid/privacy/PrivacyPersistenceAdapter;
17681 + const-string/jumbo v3, "notifications_enabled"
17683 + invoke-virtual {v2, v3, v0}, Landroid/privacy/PrivacyPersistenceAdapter;->setValue(Ljava/lang/String;Ljava/lang/String;)Z
17685 + move-result v2
17687 + if-eqz v2, :cond_1b
17689 + iput-boolean v1, p0, Landroid/privacy/PrivacySettingsManagerService;->notificationsEnabled:Z
17691 + iput-boolean v1, p0, Landroid/privacy/PrivacySettingsManagerService;->bootCompleted:Z
17693 + :goto_17
17694 + return v1
17696 + :cond_18
17697 + const-string v0, "0"
17699 + goto :goto_8
17701 + :cond_1b
17702 + const/4 v1, 0x0
17704 + goto :goto_17
17705 +.end method
17706 diff -Npru stock-framework/smali/android/privacy/PrivacySettingsManager.smali opd-framework/smali/android/privacy/PrivacySettingsManager.smali
17707 --- stock-framework/smali/android/privacy/PrivacySettingsManager.smali 1969-12-31 18:00:00.000000000 -0600
17708 +++ opd-framework/smali/android/privacy/PrivacySettingsManager.smali 2013-01-08 23:29:43.608287601 -0600
17709 @@ -0,0 +1,537 @@
17710 +.class public final Landroid/privacy/PrivacySettingsManager;
17711 +.super Ljava/lang/Object;
17712 +.source "PrivacySettingsManager.java"
17715 +# static fields
17716 +.field public static final ACTION_PRIVACY_NOTIFICATION:Ljava/lang/String; = "com.privacy.pdroid.PRIVACY_NOTIFICATION"
17718 +.field public static final ACTION_PRIVACY_NOTIFICATION_ADDON:Ljava/lang/String; = "com.privacy.pdroid.PRIVACY_NOTIFICATION_ADDON"
17720 +.field private static final TAG:Ljava/lang/String; = "PrivacySettingsManager"
17723 +# instance fields
17724 +.field private service:Landroid/privacy/IPrivacySettingsManager;
17727 +# direct methods
17728 +.method public constructor <init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
17729 + .registers 3
17731 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
17733 + iput-object p2, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
17735 + return-void
17736 +.end method
17739 +# virtual methods
17740 +.method public addObserver(Ljava/lang/String;)V
17741 + .registers 5
17743 + :try_start_0
17744 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
17746 + if-eqz v1, :cond_a
17748 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
17750 + invoke-interface {v1, p1}, Landroid/privacy/IPrivacySettingsManager;->addObserver(Ljava/lang/String;)V
17752 + :goto_9
17753 + return-void
17755 + :cond_a
17756 + const-string v1, "PrivacySettingsManager"
17758 + const-string v2, "deleteSettings - PrivacySettingsManagerService is null"
17760 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
17761 + :try_end_11
17762 + .catch Landroid/os/RemoteException; {:try_start_0 .. :try_end_11} :catch_12
17764 + goto :goto_9
17766 + :catch_12
17767 + move-exception v0
17769 + const-string v1, "PrivacySettingsManager"
17771 + const-string v2, "RemoteException in addObserver: "
17773 + invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
17775 + goto :goto_9
17776 +.end method
17778 +.method public deleteSettings(Ljava/lang/String;)Z
17779 + .registers 6
17781 + const/4 v1, 0x0
17783 + :try_start_1
17784 + iget-object v2, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
17786 + if-eqz v2, :cond_c
17788 + iget-object v2, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
17790 + invoke-interface {v2, p1}, Landroid/privacy/IPrivacySettingsManager;->deleteSettings(Ljava/lang/String;)Z
17792 + move-result v1
17794 + :goto_b
17795 + return v1
17797 + :cond_c
17798 + const-string v2, "PrivacySettingsManager"
17800 + const-string v3, "deleteSettings - PrivacySettingsManagerService is null"
17802 + invoke-static {v2, v3}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
17803 + :try_end_13
17804 + .catch Landroid/os/RemoteException; {:try_start_1 .. :try_end_13} :catch_14
17806 + goto :goto_b
17808 + :catch_14
17809 + move-exception v0
17811 + const-string v2, "PrivacySettingsManager"
17813 + const-string v3, "RemoteException in deleteSettings: "
17815 + invoke-static {v2, v3, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
17817 + goto :goto_b
17818 +.end method
17820 +.method public deleteSettings(Ljava/lang/String;I)Z
17821 + .registers 4
17822 + .annotation runtime Ljava/lang/Deprecated;
17823 + .end annotation
17825 + invoke-virtual {p0, p1}, Landroid/privacy/PrivacySettingsManager;->deleteSettings(Ljava/lang/String;)Z
17827 + move-result v0
17829 + return v0
17830 +.end method
17832 +.method public getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
17833 + .registers 6
17835 + const/4 v1, 0x0
17837 + :try_start_1
17838 + iget-object v2, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
17840 + if-eqz v2, :cond_c
17842 + iget-object v2, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
17844 + invoke-interface {v2, p1}, Landroid/privacy/IPrivacySettingsManager;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
17846 + move-result-object v1
17848 + :goto_b
17849 + return-object v1
17851 + :cond_c
17852 + const-string v2, "PrivacySettingsManager"
17854 + const-string v3, "getSettings - PrivacySettingsManagerService is null"
17856 + invoke-static {v2, v3}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
17857 + :try_end_13
17858 + .catch Landroid/os/RemoteException; {:try_start_1 .. :try_end_13} :catch_14
17860 + goto :goto_b
17862 + :catch_14
17863 + move-exception v0
17865 + invoke-virtual {v0}, Landroid/os/RemoteException;->printStackTrace()V
17867 + goto :goto_b
17868 +.end method
17870 +.method public getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
17871 + .registers 4
17872 + .annotation runtime Ljava/lang/Deprecated;
17873 + .end annotation
17875 + invoke-virtual {p0, p1}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
17877 + move-result-object v0
17879 + return-object v0
17880 +.end method
17882 +.method public getVersion()D
17883 + .registers 4
17885 + :try_start_0
17886 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
17888 + if-eqz v1, :cond_b
17890 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
17892 + invoke-interface {v1}, Landroid/privacy/IPrivacySettingsManager;->getVersion()D
17894 + move-result-wide v1
17896 + :goto_a
17897 + return-wide v1
17899 + :cond_b
17900 + const-string v1, "PrivacySettingsManager"
17902 + const-string v2, "getVersion - PrivacySettingsManagerService is null"
17904 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
17905 + :try_end_12
17906 + .catch Landroid/os/RemoteException; {:try_start_0 .. :try_end_12} :catch_15
17908 + :goto_12
17909 + const-wide/16 v1, 0x0
17911 + goto :goto_a
17913 + :catch_15
17914 + move-exception v0
17916 + const-string v1, "PrivacySettingsManager"
17918 + const-string v2, "RemoteException in getVersion: "
17920 + invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
17922 + goto :goto_12
17923 +.end method
17925 +.method public isServiceAvailable()Z
17926 + .registers 2
17928 + iget-object v0, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
17930 + if-eqz v0, :cond_6
17932 + const/4 v0, 0x1
17934 + :goto_5
17935 + return v0
17937 + :cond_6
17938 + const/4 v0, 0x0
17940 + goto :goto_5
17941 +.end method
17943 +.method public notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
17944 + .registers 8
17946 + :try_start_0
17947 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
17949 + if-eqz v1, :cond_a
17951 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
17953 + invoke-interface {v1, p1, p2, p3, p4}, Landroid/privacy/IPrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
17955 + :goto_9
17956 + return-void
17958 + :cond_a
17959 + const-string v1, "PrivacySettingsManager"
17961 + const-string v2, "deleteSettings - PrivacySettingsManagerService is null"
17963 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
17964 + :try_end_11
17965 + .catch Landroid/os/RemoteException; {:try_start_0 .. :try_end_11} :catch_12
17967 + goto :goto_9
17969 + :catch_12
17970 + move-exception v0
17972 + const-string v1, "PrivacySettingsManager"
17974 + const-string v2, "RemoteException in notification: "
17976 + invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
17978 + goto :goto_9
17979 +.end method
17981 +.method public notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
17982 + .registers 6
17983 + .annotation runtime Ljava/lang/Deprecated;
17984 + .end annotation
17986 + invoke-virtual {p0, p1, p2, p3, p4}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
17988 + return-void
17989 +.end method
17991 +.method public notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
17992 + .registers 7
17993 + .annotation runtime Ljava/lang/Deprecated;
17994 + .end annotation
17996 + invoke-virtual {p0, p1, p3, p4, p5}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
17998 + return-void
17999 +.end method
18001 +.method public purgeSettings()Z
18002 + .registers 4
18004 + :try_start_0
18005 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18007 + if-eqz v1, :cond_b
18009 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18011 + invoke-interface {v1}, Landroid/privacy/IPrivacySettingsManager;->purgeSettings()Z
18013 + move-result v1
18015 + :goto_a
18016 + return v1
18018 + :cond_b
18019 + const-string v1, "PrivacySettingsManager"
18021 + const-string/jumbo v2, "purgeSettings - PrivacySettingsManagerService is null"
18023 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
18024 + :try_end_13
18025 + .catch Landroid/os/RemoteException; {:try_start_0 .. :try_end_13} :catch_15
18027 + :goto_13
18028 + const/4 v1, 0x0
18030 + goto :goto_a
18032 + :catch_15
18033 + move-exception v0
18035 + const-string v1, "PrivacySettingsManager"
18037 + const-string v2, "RemoteException in purgeSettings: "
18039 + invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
18041 + goto :goto_13
18042 +.end method
18044 +.method public registerObservers()V
18045 + .registers 4
18047 + :try_start_0
18048 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18050 + if-eqz v1, :cond_a
18052 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18054 + invoke-interface {v1}, Landroid/privacy/IPrivacySettingsManager;->registerObservers()V
18056 + :goto_9
18057 + return-void
18059 + :cond_a
18060 + const-string v1, "PrivacySettingsManager"
18062 + const-string v2, "deleteSettings - PrivacySettingsManagerService is null"
18064 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
18065 + :try_end_11
18066 + .catch Landroid/os/RemoteException; {:try_start_0 .. :try_end_11} :catch_12
18068 + goto :goto_9
18070 + :catch_12
18071 + move-exception v0
18073 + const-string v1, "PrivacySettingsManager"
18075 + const-string v2, "RemoteException in registerObservers: "
18077 + invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
18079 + goto :goto_9
18080 +.end method
18082 +.method public saveSettings(Landroid/privacy/PrivacySettings;)Z
18083 + .registers 6
18085 + const/4 v1, 0x0
18087 + :try_start_1
18088 + iget-object v2, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18090 + if-eqz v2, :cond_c
18092 + iget-object v2, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18094 + invoke-interface {v2, p1}, Landroid/privacy/IPrivacySettingsManager;->saveSettings(Landroid/privacy/PrivacySettings;)Z
18096 + move-result v1
18098 + :goto_b
18099 + return v1
18101 + :cond_c
18102 + const-string v2, "PrivacySettingsManager"
18104 + const-string/jumbo v3, "saveSettings - PrivacySettingsManagerService is null"
18106 + invoke-static {v2, v3}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
18107 + :try_end_14
18108 + .catch Landroid/os/RemoteException; {:try_start_1 .. :try_end_14} :catch_15
18110 + goto :goto_b
18112 + :catch_15
18113 + move-exception v0
18115 + const-string v2, "PrivacySettingsManager"
18117 + const-string v3, "RemoteException in saveSettings: "
18119 + invoke-static {v2, v3, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
18121 + goto :goto_b
18122 +.end method
18124 +.method public setBootCompleted()V
18125 + .registers 4
18127 + :try_start_0
18128 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18130 + if-eqz v1, :cond_a
18132 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18134 + invoke-interface {v1}, Landroid/privacy/IPrivacySettingsManager;->setBootCompleted()V
18136 + :goto_9
18137 + return-void
18139 + :cond_a
18140 + const-string v1, "PrivacySettingsManager"
18142 + const-string/jumbo v2, "setBootCompleted - PrivacySettingsManagerService is null"
18144 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
18145 + :try_end_12
18146 + .catch Landroid/os/RemoteException; {:try_start_0 .. :try_end_12} :catch_13
18148 + goto :goto_9
18150 + :catch_13
18151 + move-exception v0
18153 + const-string v1, "PrivacySettingsManager"
18155 + const-string v2, "RemoteException in setBootCompleted: "
18157 + invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
18159 + goto :goto_9
18160 +.end method
18162 +.method public setEnabled(Z)Z
18163 + .registers 5
18165 + :try_start_0
18166 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18168 + if-eqz v1, :cond_b
18170 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18172 + invoke-interface {v1, p1}, Landroid/privacy/IPrivacySettingsManager;->setEnabled(Z)Z
18174 + move-result v1
18176 + :goto_a
18177 + return v1
18179 + :cond_b
18180 + const-string v1, "PrivacySettingsManager"
18182 + const-string/jumbo v2, "setEnabled - PrivacySettingsManagerService is null"
18184 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
18185 + :try_end_13
18186 + .catch Landroid/os/RemoteException; {:try_start_0 .. :try_end_13} :catch_15
18188 + :goto_13
18189 + const/4 v1, 0x0
18191 + goto :goto_a
18193 + :catch_15
18194 + move-exception v0
18196 + const-string v1, "PrivacySettingsManager"
18198 + const-string v2, "RemoteException in setEnabled: "
18200 + invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
18202 + goto :goto_13
18203 +.end method
18205 +.method public setNotificationsEnabled(Z)Z
18206 + .registers 5
18208 + :try_start_0
18209 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18211 + if-eqz v1, :cond_b
18213 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18215 + invoke-interface {v1, p1}, Landroid/privacy/IPrivacySettingsManager;->setNotificationsEnabled(Z)Z
18217 + move-result v1
18219 + :goto_a
18220 + return v1
18222 + :cond_b
18223 + const-string v1, "PrivacySettingsManager"
18225 + const-string/jumbo v2, "setNotificationsEnabled - PrivacySettingsManagerService is null"
18227 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
18228 + :try_end_13
18229 + .catch Landroid/os/RemoteException; {:try_start_0 .. :try_end_13} :catch_15
18231 + :goto_13
18232 + const/4 v1, 0x0
18234 + goto :goto_a
18236 + :catch_15
18237 + move-exception v0
18239 + const-string v1, "PrivacySettingsManager"
18241 + const-string v2, "RemoteException in setNotificationsEnabled: "
18243 + invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
18245 + goto :goto_13
18246 +.end method
18247 diff -Npru stock-framework/smali/android/privacy/PrivacySettings.smali opd-framework/smali/android/privacy/PrivacySettings.smali
18248 --- stock-framework/smali/android/privacy/PrivacySettings.smali 1969-12-31 18:00:00.000000000 -0600
18249 +++ opd-framework/smali/android/privacy/PrivacySettings.smali 2013-01-08 23:29:43.608287601 -0600
18250 @@ -0,0 +1,3295 @@
18251 +.class public final Landroid/privacy/PrivacySettings;
18252 +.super Ljava/lang/Object;
18253 +.source "PrivacySettings.java"
18255 +# interfaces
18256 +.implements Landroid/os/Parcelable;
18259 +# static fields
18260 +.field public static final CREATOR:Landroid/os/Parcelable$Creator; = null
18261 + .annotation system Ldalvik/annotation/Signature;
18262 + value = {
18263 + "Landroid/os/Parcelable$Creator",
18264 + "<",
18265 + "Landroid/privacy/PrivacySettings;",
18266 + ">;"
18268 + .end annotation
18269 +.end field
18271 +.field public static final CUSTOM:B = 0x2t
18273 +.field public static final DATA_ACCOUNTS_LIST:Ljava/lang/String; = "accountsList"
18275 +.field public static final DATA_ANDROID_ID:Ljava/lang/String; = "android_id"
18277 +.field public static final DATA_AUTH_TOKENS:Ljava/lang/String; = "authTokens"
18279 +.field public static final DATA_BOOKMARKS:Ljava/lang/String; = "bookmarks"
18281 +.field public static final DATA_CALENDAR:Ljava/lang/String; = "calendar"
18283 +.field public static final DATA_CALL_LOG:Ljava/lang/String; = "callLog"
18285 +.field public static final DATA_CAMERA:Ljava/lang/String; = "camera"
18287 +.field public static final DATA_CONTACTS:Ljava/lang/String; = "contacts"
18289 +.field public static final DATA_DEVICE_ID:Ljava/lang/String; = "deviceID"
18291 +.field public static final DATA_ICC_ACCESS:Ljava/lang/String; = "iccAccess"
18293 +.field public static final DATA_INCOMING_CALL:Ljava/lang/String; = "incomingCall"
18295 +.field public static final DATA_INTENT_BOOT_COMPLETED:Ljava/lang/String; = "intentBootCompleted"
18297 +.field public static final DATA_IP_TABLES:Ljava/lang/String; = "iptables"
18299 +.field public static final DATA_LINE_1_NUMBER:Ljava/lang/String; = "line1Number"
18301 +.field public static final DATA_LOCATION_GPS:Ljava/lang/String; = "locationGPS"
18303 +.field public static final DATA_LOCATION_NETWORK:Ljava/lang/String; = "locationNetwork"
18305 +.field public static final DATA_MMS:Ljava/lang/String; = "mms"
18307 +.field public static final DATA_MMS_SMS:Ljava/lang/String; = "mmsSms"
18309 +.field public static final DATA_NETWORK_INFO_CURRENT:Ljava/lang/String; = "networkInfoCurrent"
18311 +.field public static final DATA_NETWORK_INFO_SIM:Ljava/lang/String; = "networkInfoSIM"
18313 +.field public static final DATA_OUTGOING_CALL:Ljava/lang/String; = "outgoingCall"
18315 +.field public static final DATA_PHONE_CALL:Ljava/lang/String; = "phoneCall"
18317 +.field public static final DATA_RECORD_AUDIO:Ljava/lang/String; = "recordAudio"
18319 +.field public static final DATA_SEND_MMS:Ljava/lang/String; = "sendMms"
18321 +.field public static final DATA_SIM_SERIAL:Ljava/lang/String; = "simSerial"
18323 +.field public static final DATA_SMS:Ljava/lang/String; = "sms"
18325 +.field public static final DATA_SMS_SEND:Ljava/lang/String; = "SmsSend"
18327 +.field public static final DATA_SUBSCRIBER_ID:Ljava/lang/String; = "subscriberID"
18329 +.field public static final DATA_SWITCH_CONNECTIVITY:Ljava/lang/String; = "switchconnectivity"
18331 +.field public static final DATA_SWITCH_WIFI_STATE:Ljava/lang/String; = "switchWifiState"
18333 +.field public static final DATA_SYSTEM_LOGS:Ljava/lang/String; = "systemLogs"
18335 +.field public static final DATA_WIFI_INFO:Ljava/lang/String; = "wifiInfo"
18337 +.field public static final EMPTY:B = 0x1t
18339 +.field public static final ID_PATTERN:[Ljava/lang/String; = null
18341 +.field public static final RANDOM:B = 0x3t
18343 +.field public static final REAL:B = 0x0t
18345 +.field public static final SETTING_NOTIFY_OFF:B = 0x0t
18347 +.field public static final SETTING_NOTIFY_ON:B = 0x1t
18350 +# instance fields
18351 +.field private final _id:Ljava/lang/Integer;
18353 +.field private accountsAuthTokensSetting:B
18355 +.field private accountsSetting:B
18357 +.field private addOnManagementSetting:B
18359 +.field private allowedContacts:[I
18361 +.field private androidID:Ljava/lang/String;
18363 +.field private androidIdSetting:B
18365 +.field private bookmarksSetting:B
18367 +.field private calendarSetting:B
18369 +.field private callLogSetting:B
18371 +.field private cameraSetting:B
18373 +.field private contactsSetting:B
18375 +.field private deviceId:Ljava/lang/String;
18377 +.field private deviceIdSetting:B
18379 +.field private forceOnlineState:B
18381 +.field private iccAccessSetting:B
18383 +.field private incomingCallsSetting:B
18385 +.field private intentBootCompletedSetting:B
18387 +.field private ipTableProtectSetting:B
18389 +.field private line1Number:Ljava/lang/String;
18391 +.field private line1NumberSetting:B
18393 +.field private locationGpsLat:Ljava/lang/String;
18395 +.field private locationGpsLon:Ljava/lang/String;
18397 +.field private locationGpsSetting:B
18399 +.field private locationNetworkLat:Ljava/lang/String;
18401 +.field private locationNetworkLon:Ljava/lang/String;
18403 +.field private locationNetworkSetting:B
18405 +.field private mmsSetting:B
18407 +.field private networkInfoSetting:B
18409 +.field private notificationSetting:B
18411 +.field private outgoingCallsSetting:B
18413 +.field private packageName:Ljava/lang/String;
18415 +.field private phoneCallSetting:B
18417 +.field private recordAudioSetting:B
18419 +.field private sendMmsSetting:B
18421 +.field private simInfoSetting:B
18423 +.field private simSerialNumber:Ljava/lang/String;
18425 +.field private simSerialNumberSetting:B
18427 +.field private smsSendSetting:B
18429 +.field private smsSetting:B
18431 +.field private subscriberId:Ljava/lang/String;
18433 +.field private subscriberIdSetting:B
18435 +.field private switchConnectivitySetting:B
18437 +.field private switchWifiStateSetting:B
18439 +.field private systemLogsSetting:B
18441 +.field private uid:I
18443 +.field private wifiInfoSetting:B
18446 +# direct methods
18447 +.method static constructor <clinit>()V
18448 + .registers 3
18450 + const/16 v0, 0x10
18452 + new-array v0, v0, [Ljava/lang/String;
18454 + const/4 v1, 0x0
18456 + const-string v2, "0"
18458 + aput-object v2, v0, v1
18460 + const/4 v1, 0x1
18462 + const-string v2, "1"
18464 + aput-object v2, v0, v1
18466 + const/4 v1, 0x2
18468 + const-string v2, "2"
18470 + aput-object v2, v0, v1
18472 + const/4 v1, 0x3
18474 + const-string v2, "3"
18476 + aput-object v2, v0, v1
18478 + const/4 v1, 0x4
18480 + const-string v2, "4"
18482 + aput-object v2, v0, v1
18484 + const/4 v1, 0x5
18486 + const-string v2, "5"
18488 + aput-object v2, v0, v1
18490 + const/4 v1, 0x6
18492 + const-string v2, "6"
18494 + aput-object v2, v0, v1
18496 + const/4 v1, 0x7
18498 + const-string v2, "7"
18500 + aput-object v2, v0, v1
18502 + const/16 v1, 0x8
18504 + const-string v2, "8"
18506 + aput-object v2, v0, v1
18508 + const/16 v1, 0x9
18510 + const-string v2, "9"
18512 + aput-object v2, v0, v1
18514 + const/16 v1, 0xa
18516 + const-string v2, "a"
18518 + aput-object v2, v0, v1
18520 + const/16 v1, 0xb
18522 + const-string v2, "b"
18524 + aput-object v2, v0, v1
18526 + const/16 v1, 0xc
18528 + const-string v2, "c"
18530 + aput-object v2, v0, v1
18532 + const/16 v1, 0xd
18534 + const-string v2, "d"
18536 + aput-object v2, v0, v1
18538 + const/16 v1, 0xe
18540 + const-string v2, "e"
18542 + aput-object v2, v0, v1
18544 + const/16 v1, 0xf
18546 + const-string v2, "f"
18548 + aput-object v2, v0, v1
18550 + sput-object v0, Landroid/privacy/PrivacySettings;->ID_PATTERN:[Ljava/lang/String;
18552 + new-instance v0, Landroid/privacy/PrivacySettings$1;
18554 + invoke-direct {v0}, Landroid/privacy/PrivacySettings$1;-><init>()V
18556 + sput-object v0, Landroid/privacy/PrivacySettings;->CREATOR:Landroid/os/Parcelable$Creator;
18558 + return-void
18559 +.end method
18561 +.method public constructor <init>(Landroid/os/Parcel;)V
18562 + .registers 4
18564 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
18566 + invoke-virtual {p1}, Landroid/os/Parcel;->readInt()I
18568 + move-result v0
18570 + const/4 v1, -0x1
18572 + if-ne v0, v1, :cond_122
18574 + const/4 v1, 0x0
18576 + :goto_b
18577 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->_id:Ljava/lang/Integer;
18579 + invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
18581 + move-result-object v1
18583 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->packageName:Ljava/lang/String;
18585 + invoke-virtual {p1}, Landroid/os/Parcel;->readInt()I
18587 + move-result v1
18589 + iput v1, p0, Landroid/privacy/PrivacySettings;->uid:I
18591 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18593 + move-result v1
18595 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
18597 + invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
18599 + move-result-object v1
18601 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->deviceId:Ljava/lang/String;
18603 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18605 + move-result v1
18607 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
18609 + invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
18611 + move-result-object v1
18613 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->line1Number:Ljava/lang/String;
18615 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18617 + move-result v1
18619 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
18621 + invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
18623 + move-result-object v1
18625 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationGpsLat:Ljava/lang/String;
18627 + invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
18629 + move-result-object v1
18631 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationGpsLon:Ljava/lang/String;
18633 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18635 + move-result v1
18637 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
18639 + invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
18641 + move-result-object v1
18643 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLat:Ljava/lang/String;
18645 + invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
18647 + move-result-object v1
18649 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLon:Ljava/lang/String;
18651 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18653 + move-result v1
18655 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->networkInfoSetting:B
18657 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18659 + move-result v1
18661 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->simInfoSetting:B
18663 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18665 + move-result v1
18667 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
18669 + invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
18671 + move-result-object v1
18673 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->simSerialNumber:Ljava/lang/String;
18675 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18677 + move-result v1
18679 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
18681 + invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
18683 + move-result-object v1
18685 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->subscriberId:Ljava/lang/String;
18687 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18689 + move-result v1
18691 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->accountsSetting:B
18693 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18695 + move-result v1
18697 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->accountsAuthTokensSetting:B
18699 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18701 + move-result v1
18703 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->outgoingCallsSetting:B
18705 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18707 + move-result v1
18709 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->incomingCallsSetting:B
18711 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18713 + move-result v1
18715 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->contactsSetting:B
18717 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18719 + move-result v1
18721 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->calendarSetting:B
18723 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18725 + move-result v1
18727 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->mmsSetting:B
18729 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18731 + move-result v1
18733 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->smsSetting:B
18735 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18737 + move-result v1
18739 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->callLogSetting:B
18741 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18743 + move-result v1
18745 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->bookmarksSetting:B
18747 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18749 + move-result v1
18751 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->systemLogsSetting:B
18753 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18755 + move-result v1
18757 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->notificationSetting:B
18759 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18761 + move-result v1
18763 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->intentBootCompletedSetting:B
18765 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18767 + move-result v1
18769 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->cameraSetting:B
18771 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18773 + move-result v1
18775 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->recordAudioSetting:B
18777 + invoke-virtual {p1}, Landroid/os/Parcel;->createIntArray()[I
18779 + move-result-object v1
18781 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->allowedContacts:[I
18783 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18785 + move-result v1
18787 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->smsSendSetting:B
18789 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18791 + move-result v1
18793 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->phoneCallSetting:B
18795 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18797 + move-result v1
18799 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->ipTableProtectSetting:B
18801 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18803 + move-result v1
18805 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->iccAccessSetting:B
18807 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18809 + move-result v1
18811 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->addOnManagementSetting:B
18813 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18815 + move-result v1
18817 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
18819 + invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
18821 + move-result-object v1
18823 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->androidID:Ljava/lang/String;
18825 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18827 + move-result v1
18829 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->wifiInfoSetting:B
18831 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18833 + move-result v1
18835 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->switchConnectivitySetting:B
18837 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18839 + move-result v1
18841 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->sendMmsSetting:B
18843 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18845 + move-result v1
18847 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->forceOnlineState:B
18849 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18851 + move-result v1
18853 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->switchWifiStateSetting:B
18855 + return-void
18857 + :cond_122
18858 + invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
18860 + move-result-object v1
18862 + goto/16 :goto_b
18863 +.end method
18865 +.method public constructor <init>(Ljava/lang/Integer;Ljava/lang/String;I)V
18866 + .registers 7
18868 + const/4 v2, 0x1
18870 + const/4 v1, 0x0
18872 + const/4 v0, 0x0
18874 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
18876 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->_id:Ljava/lang/Integer;
18878 + iput-object p2, p0, Landroid/privacy/PrivacySettings;->packageName:Ljava/lang/String;
18880 + iput p3, p0, Landroid/privacy/PrivacySettings;->uid:I
18882 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
18884 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->deviceId:Ljava/lang/String;
18886 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
18888 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->line1Number:Ljava/lang/String;
18890 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
18892 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationGpsLat:Ljava/lang/String;
18894 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationGpsLon:Ljava/lang/String;
18896 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
18898 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLat:Ljava/lang/String;
18900 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLon:Ljava/lang/String;
18902 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->networkInfoSetting:B
18904 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->simInfoSetting:B
18906 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
18908 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->simSerialNumber:Ljava/lang/String;
18910 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
18912 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->subscriberId:Ljava/lang/String;
18914 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsSetting:B
18916 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsAuthTokensSetting:B
18918 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->outgoingCallsSetting:B
18920 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->incomingCallsSetting:B
18922 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->contactsSetting:B
18924 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->calendarSetting:B
18926 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->mmsSetting:B
18928 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSetting:B
18930 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->callLogSetting:B
18932 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->bookmarksSetting:B
18934 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->systemLogsSetting:B
18936 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->notificationSetting:B
18938 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->intentBootCompletedSetting:B
18940 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->cameraSetting:B
18942 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->recordAudioSetting:B
18944 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->allowedContacts:[I
18946 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSendSetting:B
18948 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->phoneCallSetting:B
18950 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->ipTableProtectSetting:B
18952 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->iccAccessSetting:B
18954 + iput-byte v2, p0, Landroid/privacy/PrivacySettings;->addOnManagementSetting:B
18956 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
18958 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->androidID:Ljava/lang/String;
18960 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->wifiInfoSetting:B
18962 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->switchConnectivitySetting:B
18964 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->sendMmsSetting:B
18966 + iput-byte v2, p0, Landroid/privacy/PrivacySettings;->forceOnlineState:B
18968 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->switchWifiStateSetting:B
18970 + return-void
18971 +.end method
18973 +.method public constructor <init>(Ljava/lang/Integer;Ljava/lang/String;IBLjava/lang/String;BLjava/lang/String;BLjava/lang/String;Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;BBBLjava/lang/String;BLjava/lang/String;BBBBBBBBBBBBBBBB[IBBBBBBLjava/lang/String;BBBBB)V
18974 + .registers 50
18976 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
18978 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->_id:Ljava/lang/Integer;
18980 + iput-object p2, p0, Landroid/privacy/PrivacySettings;->packageName:Ljava/lang/String;
18982 + iput p3, p0, Landroid/privacy/PrivacySettings;->uid:I
18984 + iput-byte p4, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
18986 + iput-object p5, p0, Landroid/privacy/PrivacySettings;->deviceId:Ljava/lang/String;
18988 + iput-byte p6, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
18990 + iput-object p7, p0, Landroid/privacy/PrivacySettings;->line1Number:Ljava/lang/String;
18992 + iput-byte p8, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
18994 + iput-object p9, p0, Landroid/privacy/PrivacySettings;->locationGpsLat:Ljava/lang/String;
18996 + iput-object p10, p0, Landroid/privacy/PrivacySettings;->locationGpsLon:Ljava/lang/String;
18998 + iput-byte p11, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
19000 + iput-object p12, p0, Landroid/privacy/PrivacySettings;->locationNetworkLat:Ljava/lang/String;
19002 + iput-object p13, p0, Landroid/privacy/PrivacySettings;->locationNetworkLon:Ljava/lang/String;
19004 + iput-byte p14, p0, Landroid/privacy/PrivacySettings;->networkInfoSetting:B
19006 + move/from16 v0, p15
19008 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->simInfoSetting:B
19010 + move/from16 v0, p16
19012 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
19014 + move-object/from16 v0, p17
19016 + iput-object v0, p0, Landroid/privacy/PrivacySettings;->simSerialNumber:Ljava/lang/String;
19018 + move/from16 v0, p18
19020 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
19022 + move-object/from16 v0, p19
19024 + iput-object v0, p0, Landroid/privacy/PrivacySettings;->subscriberId:Ljava/lang/String;
19026 + move/from16 v0, p20
19028 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsSetting:B
19030 + move/from16 v0, p21
19032 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsAuthTokensSetting:B
19034 + move/from16 v0, p22
19036 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->outgoingCallsSetting:B
19038 + move/from16 v0, p23
19040 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->incomingCallsSetting:B
19042 + move/from16 v0, p24
19044 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->contactsSetting:B
19046 + move/from16 v0, p25
19048 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->calendarSetting:B
19050 + move/from16 v0, p26
19052 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->mmsSetting:B
19054 + move/from16 v0, p27
19056 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSetting:B
19058 + move/from16 v0, p28
19060 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->callLogSetting:B
19062 + move/from16 v0, p29
19064 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->bookmarksSetting:B
19066 + move/from16 v0, p30
19068 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->systemLogsSetting:B
19070 + move/from16 v0, p34
19072 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->notificationSetting:B
19074 + move/from16 v0, p35
19076 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->intentBootCompletedSetting:B
19078 + move/from16 v0, p32
19080 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->cameraSetting:B
19082 + move/from16 v0, p33
19084 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->recordAudioSetting:B
19086 + move-object/from16 v0, p36
19088 + iput-object v0, p0, Landroid/privacy/PrivacySettings;->allowedContacts:[I
19090 + move/from16 v0, p37
19092 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSendSetting:B
19094 + move/from16 v0, p38
19096 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->phoneCallSetting:B
19098 + move/from16 v0, p39
19100 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->ipTableProtectSetting:B
19102 + move/from16 v0, p40
19104 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->iccAccessSetting:B
19106 + move/from16 v0, p41
19108 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->addOnManagementSetting:B
19110 + move/from16 v0, p42
19112 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
19114 + move-object/from16 v0, p43
19116 + iput-object v0, p0, Landroid/privacy/PrivacySettings;->androidID:Ljava/lang/String;
19118 + move/from16 v0, p44
19120 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->wifiInfoSetting:B
19122 + move/from16 v0, p45
19124 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->switchConnectivitySetting:B
19126 + move/from16 v0, p46
19128 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->sendMmsSetting:B
19130 + move/from16 v0, p47
19132 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->forceOnlineState:B
19134 + move/from16 v0, p48
19136 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->switchWifiStateSetting:B
19138 + return-void
19139 +.end method
19141 +.method public constructor <init>(Ljava/lang/Integer;Ljava/lang/String;IZ)V
19142 + .registers 9
19144 + const/4 v3, 0x0
19146 + const/4 v2, 0x3
19148 + const/4 v1, 0x0
19150 + const/4 v0, 0x1
19152 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
19154 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->_id:Ljava/lang/Integer;
19156 + iput-object p2, p0, Landroid/privacy/PrivacySettings;->packageName:Ljava/lang/String;
19158 + iput p3, p0, Landroid/privacy/PrivacySettings;->uid:I
19160 + if-eqz p4, :cond_68
19162 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
19164 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->deviceId:Ljava/lang/String;
19166 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
19168 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->line1Number:Ljava/lang/String;
19170 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
19172 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationGpsLat:Ljava/lang/String;
19174 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationGpsLon:Ljava/lang/String;
19176 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
19178 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLat:Ljava/lang/String;
19180 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLon:Ljava/lang/String;
19182 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->networkInfoSetting:B
19184 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->simInfoSetting:B
19186 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
19188 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->simSerialNumber:Ljava/lang/String;
19190 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
19192 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->subscriberId:Ljava/lang/String;
19194 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsSetting:B
19196 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsAuthTokensSetting:B
19198 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->outgoingCallsSetting:B
19200 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->incomingCallsSetting:B
19202 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->contactsSetting:B
19204 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->calendarSetting:B
19206 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->mmsSetting:B
19208 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSetting:B
19210 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->callLogSetting:B
19212 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->bookmarksSetting:B
19214 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->systemLogsSetting:B
19216 + iput-byte v3, p0, Landroid/privacy/PrivacySettings;->notificationSetting:B
19218 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->intentBootCompletedSetting:B
19220 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->cameraSetting:B
19222 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->recordAudioSetting:B
19224 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->allowedContacts:[I
19226 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSendSetting:B
19228 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->phoneCallSetting:B
19230 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->ipTableProtectSetting:B
19232 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->iccAccessSetting:B
19234 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->addOnManagementSetting:B
19236 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
19238 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->androidID:Ljava/lang/String;
19240 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->wifiInfoSetting:B
19242 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->switchConnectivitySetting:B
19244 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->sendMmsSetting:B
19246 + iput-byte v3, p0, Landroid/privacy/PrivacySettings;->forceOnlineState:B
19248 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->switchWifiStateSetting:B
19250 + :goto_67
19251 + return-void
19253 + :cond_68
19254 + iput-byte v2, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
19256 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->deviceId:Ljava/lang/String;
19258 + iput-byte v2, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
19260 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->line1Number:Ljava/lang/String;
19262 + iput-byte v2, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
19264 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationGpsLat:Ljava/lang/String;
19266 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationGpsLon:Ljava/lang/String;
19268 + iput-byte v2, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
19270 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLat:Ljava/lang/String;
19272 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLon:Ljava/lang/String;
19274 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->networkInfoSetting:B
19276 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->simInfoSetting:B
19278 + iput-byte v2, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
19280 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->simSerialNumber:Ljava/lang/String;
19282 + iput-byte v2, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
19284 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->subscriberId:Ljava/lang/String;
19286 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsSetting:B
19288 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsAuthTokensSetting:B
19290 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->outgoingCallsSetting:B
19292 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->incomingCallsSetting:B
19294 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->contactsSetting:B
19296 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->calendarSetting:B
19298 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->mmsSetting:B
19300 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSetting:B
19302 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->callLogSetting:B
19304 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->bookmarksSetting:B
19306 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->systemLogsSetting:B
19308 + iput-byte v3, p0, Landroid/privacy/PrivacySettings;->notificationSetting:B
19310 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->intentBootCompletedSetting:B
19312 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->cameraSetting:B
19314 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->recordAudioSetting:B
19316 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->allowedContacts:[I
19318 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSendSetting:B
19320 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->phoneCallSetting:B
19322 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->ipTableProtectSetting:B
19324 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->iccAccessSetting:B
19326 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->addOnManagementSetting:B
19328 + iput-byte v2, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
19330 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->androidID:Ljava/lang/String;
19332 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->wifiInfoSetting:B
19334 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->switchConnectivitySetting:B
19336 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->sendMmsSetting:B
19338 + iput-byte v3, p0, Landroid/privacy/PrivacySettings;->forceOnlineState:B
19340 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->switchWifiStateSetting:B
19342 + goto :goto_67
19343 +.end method
19345 +.method private getRandomLat()Ljava/lang/String;
19346 + .registers 10
19348 + const-wide v7, 0x4056800000000000L
19350 + invoke-static {}, Ljava/lang/Math;->random()D
19352 + move-result-wide v3
19354 + const-wide v5, 0x4066800000000000L
19356 + mul-double v0, v3, v5
19358 + cmpl-double v3, v0, v7
19360 + if-lez v3, :cond_35
19362 + new-instance v2, Ljava/math/BigDecimal;
19364 + sub-double v3, v0, v7
19366 + invoke-direct {v2, v3, v4}, Ljava/math/BigDecimal;-><init>(D)V
19368 + :goto_1b
19369 + new-instance v3, Ljava/lang/StringBuilder;
19371 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
19373 + const/4 v4, 0x6
19375 + const/4 v5, 0x4
19377 + invoke-virtual {v2, v4, v5}, Ljava/math/BigDecimal;->setScale(II)Ljava/math/BigDecimal;
19379 + move-result-object v4
19381 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
19383 + move-result-object v3
19385 + const-string v4, ""
19387 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
19389 + move-result-object v3
19391 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
19393 + move-result-object v3
19395 + return-object v3
19397 + :cond_35
19398 + new-instance v2, Ljava/math/BigDecimal;
19400 + neg-double v3, v0
19402 + invoke-direct {v2, v3, v4}, Ljava/math/BigDecimal;-><init>(D)V
19404 + goto :goto_1b
19405 +.end method
19407 +.method private getRandomLon()Ljava/lang/String;
19408 + .registers 10
19410 + const-wide v7, 0x4066800000000000L
19412 + invoke-static {}, Ljava/lang/Math;->random()D
19414 + move-result-wide v3
19416 + const-wide v5, 0x4076800000000000L
19418 + mul-double v0, v3, v5
19420 + cmpl-double v3, v0, v7
19422 + if-lez v3, :cond_35
19424 + new-instance v2, Ljava/math/BigDecimal;
19426 + sub-double v3, v0, v7
19428 + invoke-direct {v2, v3, v4}, Ljava/math/BigDecimal;-><init>(D)V
19430 + :goto_1b
19431 + new-instance v3, Ljava/lang/StringBuilder;
19433 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
19435 + const/4 v4, 0x6
19437 + const/4 v5, 0x4
19439 + invoke-virtual {v2, v4, v5}, Ljava/math/BigDecimal;->setScale(II)Ljava/math/BigDecimal;
19441 + move-result-object v4
19443 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
19445 + move-result-object v3
19447 + const-string v4, ""
19449 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
19451 + move-result-object v3
19453 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
19455 + move-result-object v3
19457 + return-object v3
19459 + :cond_35
19460 + new-instance v2, Ljava/math/BigDecimal;
19462 + neg-double v3, v0
19464 + invoke-direct {v2, v3, v4}, Ljava/math/BigDecimal;-><init>(D)V
19466 + goto :goto_1b
19467 +.end method
19470 +# virtual methods
19471 +.method public describeContents()I
19472 + .registers 2
19474 + const/4 v0, 0x0
19476 + return v0
19477 +.end method
19479 +.method public getAccountsAuthTokensSetting()B
19480 + .registers 2
19482 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsAuthTokensSetting:B
19484 + return v0
19485 +.end method
19487 +.method public getAccountsSetting()B
19488 + .registers 2
19490 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsSetting:B
19492 + return v0
19493 +.end method
19495 +.method public getAddOnManagementSetting()B
19496 + .registers 2
19498 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->addOnManagementSetting:B
19500 + return v0
19501 +.end method
19503 +.method public getAllowedContacts()[I
19504 + .registers 2
19506 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->allowedContacts:[I
19508 + return-object v0
19509 +.end method
19511 +.method public getAndroidID()Ljava/lang/String;
19512 + .registers 6
19514 + iget-byte v3, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
19516 + const/4 v4, 0x1
19518 + if-ne v3, v4, :cond_9
19520 + const-string/jumbo v3, "q4a5w896ay21dr46"
19522 + :goto_8
19523 + return-object v3
19525 + :cond_9
19526 + iget-byte v3, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
19528 + const/4 v4, 0x3
19530 + if-ne v3, v4, :cond_36
19532 + new-instance v2, Ljava/util/Random;
19534 + invoke-direct {v2}, Ljava/util/Random;-><init>()V
19536 + new-instance v1, Ljava/lang/StringBuilder;
19538 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
19540 + const/4 v0, 0x0
19542 + :goto_19
19543 + sget-object v3, Landroid/privacy/PrivacySettings;->ID_PATTERN:[Ljava/lang/String;
19545 + array-length v3, v3
19547 + if-ge v0, v3, :cond_31
19549 + sget-object v3, Landroid/privacy/PrivacySettings;->ID_PATTERN:[Ljava/lang/String;
19551 + sget-object v4, Landroid/privacy/PrivacySettings;->ID_PATTERN:[Ljava/lang/String;
19553 + array-length v4, v4
19555 + add-int/lit8 v4, v4, -0x1
19557 + invoke-virtual {v2, v4}, Ljava/util/Random;->nextInt(I)I
19559 + move-result v4
19561 + aget-object v3, v3, v4
19563 + invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
19565 + add-int/lit8 v0, v0, 0x1
19567 + goto :goto_19
19569 + :cond_31
19570 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
19572 + move-result-object v3
19574 + goto :goto_8
19576 + :cond_36
19577 + iget-object v3, p0, Landroid/privacy/PrivacySettings;->androidID:Ljava/lang/String;
19579 + goto :goto_8
19580 +.end method
19582 +.method public getAndroidIdSetting()B
19583 + .registers 2
19585 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
19587 + return v0
19588 +.end method
19590 +.method public getBookmarksSetting()B
19591 + .registers 2
19593 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->bookmarksSetting:B
19595 + return v0
19596 +.end method
19598 +.method public getCalendarSetting()B
19599 + .registers 2
19601 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->calendarSetting:B
19603 + return v0
19604 +.end method
19606 +.method public getCallLogSetting()B
19607 + .registers 2
19609 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->callLogSetting:B
19611 + return v0
19612 +.end method
19614 +.method public getCameraSetting()B
19615 + .registers 2
19617 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->cameraSetting:B
19619 + return v0
19620 +.end method
19622 +.method public getContactsSetting()B
19623 + .registers 2
19625 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->contactsSetting:B
19627 + return v0
19628 +.end method
19630 +.method public getDeviceId()Ljava/lang/String;
19631 + .registers 9
19633 + const/4 v7, 0x0
19635 + const/16 v6, 0xf
19637 + iget-byte v3, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
19639 + const/4 v4, 0x1
19641 + if-ne v3, v4, :cond_b
19643 + const-string v3, ""
19645 + :goto_a
19646 + return-object v3
19648 + :cond_b
19649 + iget-byte v3, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
19651 + const/4 v4, 0x3
19653 + if-ne v3, v4, :cond_62
19655 + new-instance v1, Ljava/util/Random;
19657 + invoke-direct {v1}, Ljava/util/Random;-><init>()V
19659 + new-instance v3, Ljava/lang/StringBuilder;
19661 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
19663 + invoke-virtual {v1}, Ljava/util/Random;->nextLong()J
19665 + move-result-wide v4
19667 + invoke-static {v4, v5}, Ljava/lang/Math;->abs(J)J
19669 + move-result-wide v4
19671 + invoke-virtual {v3, v4, v5}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
19673 + move-result-object v3
19675 + const-string v4, ""
19677 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
19679 + move-result-object v3
19681 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
19683 + move-result-object v2
19685 + invoke-virtual {v2}, Ljava/lang/String;->length()I
19687 + move-result v3
19689 + if-le v3, v6, :cond_3b
19691 + invoke-virtual {v2, v7, v6}, Ljava/lang/String;->substring(II)Ljava/lang/String;
19693 + move-result-object v3
19695 + goto :goto_a
19697 + :cond_3b
19698 + invoke-virtual {v2}, Ljava/lang/String;->length()I
19700 + move-result v0
19702 + :goto_3f
19703 + const/16 v3, 0x10
19705 + if-gt v0, v3, :cond_5d
19707 + new-instance v3, Ljava/lang/StringBuilder;
19709 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
19711 + invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
19713 + move-result-object v3
19715 + const/16 v4, 0x9
19717 + invoke-virtual {v1, v4}, Ljava/util/Random;->nextInt(I)I
19719 + move-result v4
19721 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
19723 + move-result-object v3
19725 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
19727 + move-result-object v2
19729 + add-int/lit8 v0, v0, 0x1
19731 + goto :goto_3f
19733 + :cond_5d
19734 + invoke-virtual {v2, v7, v6}, Ljava/lang/String;->substring(II)Ljava/lang/String;
19736 + move-result-object v3
19738 + goto :goto_a
19740 + :cond_62
19741 + iget-object v3, p0, Landroid/privacy/PrivacySettings;->deviceId:Ljava/lang/String;
19743 + goto :goto_a
19744 +.end method
19746 +.method public getDeviceIdSetting()B
19747 + .registers 2
19749 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
19751 + return v0
19752 +.end method
19754 +.method public getForceOnlineState()B
19755 + .registers 2
19757 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->forceOnlineState:B
19759 + return v0
19760 +.end method
19762 +.method public getIccAccessSetting()B
19763 + .registers 2
19765 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->iccAccessSetting:B
19767 + return v0
19768 +.end method
19770 +.method public getIncomingCallsSetting()B
19771 + .registers 2
19773 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->incomingCallsSetting:B
19775 + return v0
19776 +.end method
19778 +.method public getIntentBootCompletedSetting()B
19779 + .registers 2
19781 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->intentBootCompletedSetting:B
19783 + return v0
19784 +.end method
19786 +.method public getIpTableProtectSetting()B
19787 + .registers 2
19789 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->ipTableProtectSetting:B
19791 + return v0
19792 +.end method
19794 +.method public getLine1Number()Ljava/lang/String;
19795 + .registers 9
19797 + const/4 v7, 0x0
19799 + const/16 v6, 0xd
19801 + iget-byte v3, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
19803 + const/4 v4, 0x1
19805 + if-ne v3, v4, :cond_b
19807 + const-string v3, ""
19809 + :goto_a
19810 + return-object v3
19812 + :cond_b
19813 + iget-byte v3, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
19815 + const/4 v4, 0x3
19817 + if-ne v3, v4, :cond_68
19819 + new-instance v1, Ljava/util/Random;
19821 + invoke-direct {v1}, Ljava/util/Random;-><init>()V
19823 + new-instance v3, Ljava/lang/StringBuilder;
19825 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
19827 + const-string v4, "+"
19829 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
19831 + move-result-object v3
19833 + invoke-virtual {v1}, Ljava/util/Random;->nextLong()J
19835 + move-result-wide v4
19837 + invoke-static {v4, v5}, Ljava/lang/Math;->abs(J)J
19839 + move-result-wide v4
19841 + invoke-virtual {v3, v4, v5}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
19843 + move-result-object v3
19845 + const-string v4, ""
19847 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
19849 + move-result-object v3
19851 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
19853 + move-result-object v2
19855 + invoke-virtual {v2}, Ljava/lang/String;->length()I
19857 + move-result v3
19859 + if-le v3, v6, :cond_41
19861 + invoke-virtual {v2, v7, v6}, Ljava/lang/String;->substring(II)Ljava/lang/String;
19863 + move-result-object v3
19865 + goto :goto_a
19867 + :cond_41
19868 + invoke-virtual {v2}, Ljava/lang/String;->length()I
19870 + move-result v0
19872 + :goto_45
19873 + const/16 v3, 0xe
19875 + if-gt v0, v3, :cond_63
19877 + new-instance v3, Ljava/lang/StringBuilder;
19879 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
19881 + invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
19883 + move-result-object v3
19885 + const/16 v4, 0x9
19887 + invoke-virtual {v1, v4}, Ljava/util/Random;->nextInt(I)I
19889 + move-result v4
19891 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
19893 + move-result-object v3
19895 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
19897 + move-result-object v2
19899 + add-int/lit8 v0, v0, 0x1
19901 + goto :goto_45
19903 + :cond_63
19904 + invoke-virtual {v2, v7, v6}, Ljava/lang/String;->substring(II)Ljava/lang/String;
19906 + move-result-object v3
19908 + goto :goto_a
19910 + :cond_68
19911 + iget-object v3, p0, Landroid/privacy/PrivacySettings;->line1Number:Ljava/lang/String;
19913 + goto :goto_a
19914 +.end method
19916 +.method public getLine1NumberSetting()B
19917 + .registers 2
19919 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
19921 + return v0
19922 +.end method
19924 +.method public getLocationGpsLat()Ljava/lang/String;
19925 + .registers 3
19927 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
19929 + const/4 v1, 0x1
19931 + if-ne v0, v1, :cond_8
19933 + const-string v0, ""
19935 + :goto_7
19936 + return-object v0
19938 + :cond_8
19939 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
19941 + const/4 v1, 0x3
19943 + if-ne v0, v1, :cond_12
19945 + invoke-direct {p0}, Landroid/privacy/PrivacySettings;->getRandomLat()Ljava/lang/String;
19947 + move-result-object v0
19949 + goto :goto_7
19951 + :cond_12
19952 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->locationGpsLat:Ljava/lang/String;
19954 + goto :goto_7
19955 +.end method
19957 +.method public getLocationGpsLon()Ljava/lang/String;
19958 + .registers 3
19960 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
19962 + const/4 v1, 0x1
19964 + if-ne v0, v1, :cond_8
19966 + const-string v0, ""
19968 + :goto_7
19969 + return-object v0
19971 + :cond_8
19972 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
19974 + const/4 v1, 0x3
19976 + if-ne v0, v1, :cond_12
19978 + invoke-direct {p0}, Landroid/privacy/PrivacySettings;->getRandomLon()Ljava/lang/String;
19980 + move-result-object v0
19982 + goto :goto_7
19984 + :cond_12
19985 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->locationGpsLon:Ljava/lang/String;
19987 + goto :goto_7
19988 +.end method
19990 +.method public getLocationGpsSetting()B
19991 + .registers 2
19993 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
19995 + return v0
19996 +.end method
19998 +.method public getLocationNetworkLat()Ljava/lang/String;
19999 + .registers 3
20001 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
20003 + const/4 v1, 0x1
20005 + if-ne v0, v1, :cond_8
20007 + const-string v0, ""
20009 + :goto_7
20010 + return-object v0
20012 + :cond_8
20013 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
20015 + const/4 v1, 0x3
20017 + if-ne v0, v1, :cond_12
20019 + invoke-direct {p0}, Landroid/privacy/PrivacySettings;->getRandomLat()Ljava/lang/String;
20021 + move-result-object v0
20023 + goto :goto_7
20025 + :cond_12
20026 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkLat:Ljava/lang/String;
20028 + goto :goto_7
20029 +.end method
20031 +.method public getLocationNetworkLon()Ljava/lang/String;
20032 + .registers 3
20034 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
20036 + const/4 v1, 0x1
20038 + if-ne v0, v1, :cond_8
20040 + const-string v0, ""
20042 + :goto_7
20043 + return-object v0
20045 + :cond_8
20046 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
20048 + const/4 v1, 0x3
20050 + if-ne v0, v1, :cond_12
20052 + invoke-direct {p0}, Landroid/privacy/PrivacySettings;->getRandomLon()Ljava/lang/String;
20054 + move-result-object v0
20056 + goto :goto_7
20058 + :cond_12
20059 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkLon:Ljava/lang/String;
20061 + goto :goto_7
20062 +.end method
20064 +.method public getLocationNetworkSetting()B
20065 + .registers 2
20067 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
20069 + return v0
20070 +.end method
20072 +.method public getMmsSetting()B
20073 + .registers 2
20075 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->mmsSetting:B
20077 + return v0
20078 +.end method
20080 +.method public getNetworkInfoSetting()B
20081 + .registers 2
20083 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->networkInfoSetting:B
20085 + return v0
20086 +.end method
20088 +.method public getNotificationSetting()B
20089 + .registers 2
20091 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->notificationSetting:B
20093 + return v0
20094 +.end method
20096 +.method public getOutgoingCallsSetting()B
20097 + .registers 2
20099 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->outgoingCallsSetting:B
20101 + return v0
20102 +.end method
20104 +.method public getPackageName()Ljava/lang/String;
20105 + .registers 2
20107 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->packageName:Ljava/lang/String;
20109 + return-object v0
20110 +.end method
20112 +.method public getPhoneCallSetting()B
20113 + .registers 2
20115 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->phoneCallSetting:B
20117 + return v0
20118 +.end method
20120 +.method public getRecordAudioSetting()B
20121 + .registers 2
20123 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->recordAudioSetting:B
20125 + return v0
20126 +.end method
20128 +.method public getSendMmsSetting()B
20129 + .registers 2
20131 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->sendMmsSetting:B
20133 + return v0
20134 +.end method
20136 +.method public getSimInfoSetting()B
20137 + .registers 2
20139 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->simInfoSetting:B
20141 + return v0
20142 +.end method
20144 +.method public getSimSerialNumber()Ljava/lang/String;
20145 + .registers 5
20147 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
20149 + const/4 v2, 0x1
20151 + if-ne v1, v2, :cond_8
20153 + const-string v1, ""
20155 + :goto_7
20156 + return-object v1
20158 + :cond_8
20159 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
20161 + const/4 v2, 0x3
20163 + if-ne v1, v2, :cond_2e
20165 + new-instance v0, Ljava/util/Random;
20167 + invoke-direct {v0}, Ljava/util/Random;-><init>()V
20169 + new-instance v1, Ljava/lang/StringBuilder;
20171 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
20173 + invoke-virtual {v0}, Ljava/util/Random;->nextLong()J
20175 + move-result-wide v2
20177 + invoke-static {v2, v3}, Ljava/lang/Math;->abs(J)J
20179 + move-result-wide v2
20181 + invoke-virtual {v1, v2, v3}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
20183 + move-result-object v1
20185 + const-string v2, ""
20187 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20189 + move-result-object v1
20191 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
20193 + move-result-object v1
20195 + goto :goto_7
20197 + :cond_2e
20198 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->simSerialNumber:Ljava/lang/String;
20200 + goto :goto_7
20201 +.end method
20203 +.method public getSimSerialNumberSetting()B
20204 + .registers 2
20206 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
20208 + return v0
20209 +.end method
20211 +.method public getSmsSendSetting()B
20212 + .registers 2
20214 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSendSetting:B
20216 + return v0
20217 +.end method
20219 +.method public getSmsSetting()B
20220 + .registers 2
20222 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSetting:B
20224 + return v0
20225 +.end method
20227 +.method public getSubscriberId()Ljava/lang/String;
20228 + .registers 9
20230 + const/4 v7, 0x0
20232 + const/16 v6, 0xf
20234 + iget-byte v3, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
20236 + const/4 v4, 0x1
20238 + if-ne v3, v4, :cond_b
20240 + const-string v3, ""
20242 + :goto_a
20243 + return-object v3
20245 + :cond_b
20246 + iget-byte v3, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
20248 + const/4 v4, 0x3
20250 + if-ne v3, v4, :cond_62
20252 + new-instance v1, Ljava/util/Random;
20254 + invoke-direct {v1}, Ljava/util/Random;-><init>()V
20256 + new-instance v3, Ljava/lang/StringBuilder;
20258 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
20260 + invoke-virtual {v1}, Ljava/util/Random;->nextLong()J
20262 + move-result-wide v4
20264 + invoke-static {v4, v5}, Ljava/lang/Math;->abs(J)J
20266 + move-result-wide v4
20268 + invoke-virtual {v3, v4, v5}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
20270 + move-result-object v3
20272 + const-string v4, ""
20274 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20276 + move-result-object v3
20278 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
20280 + move-result-object v2
20282 + invoke-virtual {v2}, Ljava/lang/String;->length()I
20284 + move-result v3
20286 + if-le v3, v6, :cond_3b
20288 + invoke-virtual {v2, v7, v6}, Ljava/lang/String;->substring(II)Ljava/lang/String;
20290 + move-result-object v3
20292 + goto :goto_a
20294 + :cond_3b
20295 + invoke-virtual {v2}, Ljava/lang/String;->length()I
20297 + move-result v0
20299 + :goto_3f
20300 + const/16 v3, 0x10
20302 + if-gt v0, v3, :cond_5d
20304 + new-instance v3, Ljava/lang/StringBuilder;
20306 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
20308 + invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20310 + move-result-object v3
20312 + const/16 v4, 0x9
20314 + invoke-virtual {v1, v4}, Ljava/util/Random;->nextInt(I)I
20316 + move-result v4
20318 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20320 + move-result-object v3
20322 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
20324 + move-result-object v2
20326 + add-int/lit8 v0, v0, 0x1
20328 + goto :goto_3f
20330 + :cond_5d
20331 + invoke-virtual {v2, v7, v6}, Ljava/lang/String;->substring(II)Ljava/lang/String;
20333 + move-result-object v3
20335 + goto :goto_a
20337 + :cond_62
20338 + iget-object v3, p0, Landroid/privacy/PrivacySettings;->subscriberId:Ljava/lang/String;
20340 + goto :goto_a
20341 +.end method
20343 +.method public getSubscriberIdSetting()B
20344 + .registers 2
20346 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
20348 + return v0
20349 +.end method
20351 +.method public getSwitchConnectivitySetting()B
20352 + .registers 2
20354 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->switchConnectivitySetting:B
20356 + return v0
20357 +.end method
20359 +.method public getSwitchWifiStateSetting()B
20360 + .registers 2
20362 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->switchWifiStateSetting:B
20364 + return v0
20365 +.end method
20367 +.method public getSystemLogsSetting()B
20368 + .registers 2
20370 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->systemLogsSetting:B
20372 + return v0
20373 +.end method
20375 +.method public getUid()I
20376 + .registers 2
20378 + iget v0, p0, Landroid/privacy/PrivacySettings;->uid:I
20380 + return v0
20381 +.end method
20383 +.method public getWifiInfoSetting()B
20384 + .registers 2
20386 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->wifiInfoSetting:B
20388 + return v0
20389 +.end method
20391 +.method public get_id()Ljava/lang/Integer;
20392 + .registers 2
20394 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->_id:Ljava/lang/Integer;
20396 + return-object v0
20397 +.end method
20399 +.method public setAccountsAuthTokensSetting(B)V
20400 + .registers 2
20402 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->accountsAuthTokensSetting:B
20404 + return-void
20405 +.end method
20407 +.method public setAccountsSetting(B)V
20408 + .registers 2
20410 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->accountsSetting:B
20412 + return-void
20413 +.end method
20415 +.method public setAddOnManagementSetting(B)V
20416 + .registers 2
20418 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->addOnManagementSetting:B
20420 + return-void
20421 +.end method
20423 +.method public setAllowedContacts([I)V
20424 + .registers 2
20426 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->allowedContacts:[I
20428 + return-void
20429 +.end method
20431 +.method public setAndroidID(Ljava/lang/String;)V
20432 + .registers 2
20434 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->androidID:Ljava/lang/String;
20436 + return-void
20437 +.end method
20439 +.method public setAndroidIdSetting(B)V
20440 + .registers 2
20442 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
20444 + return-void
20445 +.end method
20447 +.method public setBookmarksSetting(B)V
20448 + .registers 2
20450 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->bookmarksSetting:B
20452 + return-void
20453 +.end method
20455 +.method public setCalendarSetting(B)V
20456 + .registers 2
20458 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->calendarSetting:B
20460 + return-void
20461 +.end method
20463 +.method public setCallLogSetting(B)V
20464 + .registers 2
20466 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->callLogSetting:B
20468 + return-void
20469 +.end method
20471 +.method public setCameraSetting(B)V
20472 + .registers 2
20474 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->cameraSetting:B
20476 + return-void
20477 +.end method
20479 +.method public setContactsSetting(B)V
20480 + .registers 2
20482 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->contactsSetting:B
20484 + return-void
20485 +.end method
20487 +.method public setDeviceId(Ljava/lang/String;)V
20488 + .registers 2
20490 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->deviceId:Ljava/lang/String;
20492 + return-void
20493 +.end method
20495 +.method public setDeviceIdSetting(B)V
20496 + .registers 2
20498 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
20500 + return-void
20501 +.end method
20503 +.method public setForceOnlineState(B)V
20504 + .registers 2
20506 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->forceOnlineState:B
20508 + return-void
20509 +.end method
20511 +.method public setIccAccessSetting(B)V
20512 + .registers 2
20514 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->iccAccessSetting:B
20516 + return-void
20517 +.end method
20519 +.method public setIncomingCallsSetting(B)V
20520 + .registers 2
20522 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->incomingCallsSetting:B
20524 + return-void
20525 +.end method
20527 +.method public setIntentBootCompletedSetting(B)V
20528 + .registers 2
20530 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->intentBootCompletedSetting:B
20532 + return-void
20533 +.end method
20535 +.method public setIpTableProtectSetting(B)V
20536 + .registers 2
20538 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->ipTableProtectSetting:B
20540 + return-void
20541 +.end method
20543 +.method public setLine1Number(Ljava/lang/String;)V
20544 + .registers 2
20546 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->line1Number:Ljava/lang/String;
20548 + return-void
20549 +.end method
20551 +.method public setLine1NumberSetting(B)V
20552 + .registers 2
20554 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
20556 + return-void
20557 +.end method
20559 +.method public setLocationGpsLat(Ljava/lang/String;)V
20560 + .registers 2
20562 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->locationGpsLat:Ljava/lang/String;
20564 + return-void
20565 +.end method
20567 +.method public setLocationGpsLon(Ljava/lang/String;)V
20568 + .registers 2
20570 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->locationGpsLon:Ljava/lang/String;
20572 + return-void
20573 +.end method
20575 +.method public setLocationGpsSetting(B)V
20576 + .registers 2
20578 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
20580 + return-void
20581 +.end method
20583 +.method public setLocationNetworkLat(Ljava/lang/String;)V
20584 + .registers 2
20586 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLat:Ljava/lang/String;
20588 + return-void
20589 +.end method
20591 +.method public setLocationNetworkLon(Ljava/lang/String;)V
20592 + .registers 2
20594 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLon:Ljava/lang/String;
20596 + return-void
20597 +.end method
20599 +.method public setLocationNetworkSetting(B)V
20600 + .registers 2
20602 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
20604 + return-void
20605 +.end method
20607 +.method public setMmsSetting(B)V
20608 + .registers 2
20610 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->mmsSetting:B
20612 + return-void
20613 +.end method
20615 +.method public setNetworkInfoSetting(B)V
20616 + .registers 2
20618 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->networkInfoSetting:B
20620 + return-void
20621 +.end method
20623 +.method public setNotificationSetting(B)V
20624 + .registers 2
20626 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->notificationSetting:B
20628 + return-void
20629 +.end method
20631 +.method public setOutgoingCallsSetting(B)V
20632 + .registers 2
20634 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->outgoingCallsSetting:B
20636 + return-void
20637 +.end method
20639 +.method public setPackageName(Ljava/lang/String;)V
20640 + .registers 2
20642 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->packageName:Ljava/lang/String;
20644 + return-void
20645 +.end method
20647 +.method public setPhoneCallSetting(B)V
20648 + .registers 2
20650 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->phoneCallSetting:B
20652 + return-void
20653 +.end method
20655 +.method public setRecordAudioSetting(B)V
20656 + .registers 2
20658 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->recordAudioSetting:B
20660 + return-void
20661 +.end method
20663 +.method public setSendMmsSetting(B)V
20664 + .registers 2
20666 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->sendMmsSetting:B
20668 + return-void
20669 +.end method
20671 +.method public setSimInfoSetting(B)V
20672 + .registers 2
20674 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->simInfoSetting:B
20676 + return-void
20677 +.end method
20679 +.method public setSimSerialNumber(Ljava/lang/String;)V
20680 + .registers 2
20682 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->simSerialNumber:Ljava/lang/String;
20684 + return-void
20685 +.end method
20687 +.method public setSimSerialNumberSetting(B)V
20688 + .registers 2
20690 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
20692 + return-void
20693 +.end method
20695 +.method public setSmsSendSetting(B)V
20696 + .registers 2
20698 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->smsSendSetting:B
20700 + return-void
20701 +.end method
20703 +.method public setSmsSetting(B)V
20704 + .registers 2
20706 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->smsSetting:B
20708 + return-void
20709 +.end method
20711 +.method public setSubscriberId(Ljava/lang/String;)V
20712 + .registers 2
20714 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->subscriberId:Ljava/lang/String;
20716 + return-void
20717 +.end method
20719 +.method public setSubscriberIdSetting(B)V
20720 + .registers 2
20722 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
20724 + return-void
20725 +.end method
20727 +.method public setSwitchConnectivitySetting(B)V
20728 + .registers 2
20730 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->switchConnectivitySetting:B
20732 + return-void
20733 +.end method
20735 +.method public setSwitchWifiStateSetting(B)V
20736 + .registers 2
20738 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->switchWifiStateSetting:B
20740 + return-void
20741 +.end method
20743 +.method public setSystemLogsSetting(B)V
20744 + .registers 2
20746 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->systemLogsSetting:B
20748 + return-void
20749 +.end method
20751 +.method public setUid(I)V
20752 + .registers 2
20754 + iput p1, p0, Landroid/privacy/PrivacySettings;->uid:I
20756 + return-void
20757 +.end method
20759 +.method public setWifiInfoSetting(B)V
20760 + .registers 2
20762 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->wifiInfoSetting:B
20764 + return-void
20765 +.end method
20767 +.method public toString()Ljava/lang/String;
20768 + .registers 3
20770 + new-instance v0, Ljava/lang/StringBuilder;
20772 + invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
20774 + const-string v1, "PrivacySettings [_id="
20776 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20778 + move-result-object v0
20780 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->_id:Ljava/lang/Integer;
20782 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
20784 + move-result-object v0
20786 + const-string v1, ", accountsAuthTokensSetting="
20788 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20790 + move-result-object v0
20792 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->accountsAuthTokensSetting:B
20794 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20796 + move-result-object v0
20798 + const-string v1, ", accountsSetting="
20800 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20802 + move-result-object v0
20804 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->accountsSetting:B
20806 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20808 + move-result-object v0
20810 + const-string v1, ", bookmarksSetting="
20812 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20814 + move-result-object v0
20816 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->bookmarksSetting:B
20818 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20820 + move-result-object v0
20822 + const-string v1, ", calendarSetting="
20824 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20826 + move-result-object v0
20828 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->calendarSetting:B
20830 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20832 + move-result-object v0
20834 + const-string v1, ", callLogSetting="
20836 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20838 + move-result-object v0
20840 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->callLogSetting:B
20842 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20844 + move-result-object v0
20846 + const-string v1, ", contactsSetting="
20848 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20850 + move-result-object v0
20852 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->contactsSetting:B
20854 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20856 + move-result-object v0
20858 + const-string v1, ", deviceId="
20860 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20862 + move-result-object v0
20864 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->deviceId:Ljava/lang/String;
20866 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20868 + move-result-object v0
20870 + const-string v1, ", deviceIdSetting="
20872 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20874 + move-result-object v0
20876 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
20878 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20880 + move-result-object v0
20882 + const-string v1, ", incomingCallsSetting="
20884 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20886 + move-result-object v0
20888 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->incomingCallsSetting:B
20890 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20892 + move-result-object v0
20894 + const-string v1, ", intentBootCompletedSetting="
20896 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20898 + move-result-object v0
20900 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->intentBootCompletedSetting:B
20902 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20904 + move-result-object v0
20906 + const-string v1, ", line1Number="
20908 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20910 + move-result-object v0
20912 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->line1Number:Ljava/lang/String;
20914 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20916 + move-result-object v0
20918 + const-string v1, ", line1NumberSetting="
20920 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20922 + move-result-object v0
20924 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
20926 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20928 + move-result-object v0
20930 + const-string v1, ", locationGpsLat="
20932 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20934 + move-result-object v0
20936 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->locationGpsLat:Ljava/lang/String;
20938 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20940 + move-result-object v0
20942 + const-string v1, ", locationGpsLon="
20944 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20946 + move-result-object v0
20948 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->locationGpsLon:Ljava/lang/String;
20950 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20952 + move-result-object v0
20954 + const-string v1, ", locationGpsSetting="
20956 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20958 + move-result-object v0
20960 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
20962 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20964 + move-result-object v0
20966 + const-string v1, ", locationNetworkLat="
20968 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20970 + move-result-object v0
20972 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLat:Ljava/lang/String;
20974 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20976 + move-result-object v0
20978 + const-string v1, ", locationNetworkLon="
20980 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20982 + move-result-object v0
20984 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLon:Ljava/lang/String;
20986 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20988 + move-result-object v0
20990 + const-string v1, ", locationNetworkSetting="
20992 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20994 + move-result-object v0
20996 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
20998 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21000 + move-result-object v0
21002 + const-string v1, ", mmsSetting="
21004 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21006 + move-result-object v0
21008 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->mmsSetting:B
21010 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21012 + move-result-object v0
21014 + const-string v1, ", networkInfoSetting="
21016 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21018 + move-result-object v0
21020 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->networkInfoSetting:B
21022 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21024 + move-result-object v0
21026 + const-string v1, ", notificationSetting="
21028 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21030 + move-result-object v0
21032 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->notificationSetting:B
21034 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21036 + move-result-object v0
21038 + const-string v1, ", outgoingCallsSetting="
21040 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21042 + move-result-object v0
21044 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->outgoingCallsSetting:B
21046 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21048 + move-result-object v0
21050 + const-string v1, ", packageName="
21052 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21054 + move-result-object v0
21056 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->packageName:Ljava/lang/String;
21058 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21060 + move-result-object v0
21062 + const-string v1, ", simInfoSetting="
21064 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21066 + move-result-object v0
21068 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->simInfoSetting:B
21070 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21072 + move-result-object v0
21074 + const-string v1, ", simSerialNumber="
21076 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21078 + move-result-object v0
21080 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->simSerialNumber:Ljava/lang/String;
21082 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21084 + move-result-object v0
21086 + const-string v1, ", simSerialNumberSetting="
21088 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21090 + move-result-object v0
21092 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
21094 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21096 + move-result-object v0
21098 + const-string v1, ", smsSetting="
21100 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21102 + move-result-object v0
21104 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->smsSetting:B
21106 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21108 + move-result-object v0
21110 + const-string v1, ", subscriberId="
21112 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21114 + move-result-object v0
21116 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->subscriberId:Ljava/lang/String;
21118 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21120 + move-result-object v0
21122 + const-string v1, ", subscriberIdSetting="
21124 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21126 + move-result-object v0
21128 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
21130 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21132 + move-result-object v0
21134 + const-string v1, ", systemLogsSetting="
21136 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21138 + move-result-object v0
21140 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->systemLogsSetting:B
21142 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21144 + move-result-object v0
21146 + const-string v1, ", uid="
21148 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21150 + move-result-object v0
21152 + iget v1, p0, Landroid/privacy/PrivacySettings;->uid:I
21154 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21156 + move-result-object v0
21158 + const-string v1, ", phoneCallSetting="
21160 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21162 + move-result-object v0
21164 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->phoneCallSetting:B
21166 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21168 + move-result-object v0
21170 + const-string v1, ", smsSendSetting="
21172 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21174 + move-result-object v0
21176 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->smsSendSetting:B
21178 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21180 + move-result-object v0
21182 + const-string v1, ", recordAudioSetting="
21184 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21186 + move-result-object v0
21188 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->recordAudioSetting:B
21190 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21192 + move-result-object v0
21194 + const-string v1, ", cameraSetting="
21196 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21198 + move-result-object v0
21200 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->cameraSetting:B
21202 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21204 + move-result-object v0
21206 + const-string v1, ", ipTableProtectSetting="
21208 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21210 + move-result-object v0
21212 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->ipTableProtectSetting:B
21214 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21216 + move-result-object v0
21218 + const-string v1, ", iccAccessSetting="
21220 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21222 + move-result-object v0
21224 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->iccAccessSetting:B
21226 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21228 + move-result-object v0
21230 + const-string v1, ", addOnManagementSetting="
21232 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21234 + move-result-object v0
21236 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->addOnManagementSetting:B
21238 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21240 + move-result-object v0
21242 + const-string v1, ", android ID="
21244 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21246 + move-result-object v0
21248 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->androidID:Ljava/lang/String;
21250 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21252 + move-result-object v0
21254 + const-string v1, ", androidIdSetting="
21256 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21258 + move-result-object v0
21260 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
21262 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21264 + move-result-object v0
21266 + const-string v1, ", wifiInfoSetting="
21268 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21270 + move-result-object v0
21272 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->wifiInfoSetting:B
21274 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21276 + move-result-object v0
21278 + const-string v1, ", switchConnectivitySetting="
21280 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21282 + move-result-object v0
21284 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->switchConnectivitySetting:B
21286 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21288 + move-result-object v0
21290 + const-string v1, ", sendMmsSetting="
21292 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21294 + move-result-object v0
21296 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->sendMmsSetting:B
21298 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21300 + move-result-object v0
21302 + const-string v1, ", forceOnlineState="
21304 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21306 + move-result-object v0
21308 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->forceOnlineState:B
21310 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21312 + move-result-object v0
21314 + const-string v1, ", switchWifiStateSetting="
21316 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21318 + move-result-object v0
21320 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->switchWifiStateSetting:B
21322 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21324 + move-result-object v0
21326 + const-string v1, "]"
21328 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21330 + move-result-object v0
21332 + invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
21334 + move-result-object v0
21336 + return-object v0
21337 +.end method
21339 +.method public writeToParcel(Landroid/os/Parcel;I)V
21340 + .registers 4
21342 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->_id:Ljava/lang/Integer;
21344 + if-nez v0, :cond_ef
21346 + const/4 v0, -0x1
21348 + :goto_5
21349 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeInt(I)V
21351 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->packageName:Ljava/lang/String;
21353 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
21355 + iget v0, p0, Landroid/privacy/PrivacySettings;->uid:I
21357 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeInt(I)V
21359 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
21361 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21363 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->deviceId:Ljava/lang/String;
21365 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
21367 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
21369 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21371 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->line1Number:Ljava/lang/String;
21373 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
21375 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
21377 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21379 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->locationGpsLat:Ljava/lang/String;
21381 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
21383 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->locationGpsLon:Ljava/lang/String;
21385 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
21387 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
21389 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21391 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkLat:Ljava/lang/String;
21393 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
21395 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkLon:Ljava/lang/String;
21397 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
21399 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->networkInfoSetting:B
21401 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21403 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->simInfoSetting:B
21405 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21407 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
21409 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21411 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->simSerialNumber:Ljava/lang/String;
21413 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
21415 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
21417 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21419 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->subscriberId:Ljava/lang/String;
21421 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
21423 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsSetting:B
21425 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21427 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsAuthTokensSetting:B
21429 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21431 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->outgoingCallsSetting:B
21433 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21435 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->incomingCallsSetting:B
21437 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21439 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->contactsSetting:B
21441 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21443 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->calendarSetting:B
21445 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21447 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->mmsSetting:B
21449 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21451 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSetting:B
21453 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21455 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->callLogSetting:B
21457 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21459 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->bookmarksSetting:B
21461 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21463 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->systemLogsSetting:B
21465 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21467 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->notificationSetting:B
21469 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21471 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->intentBootCompletedSetting:B
21473 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21475 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->cameraSetting:B
21477 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21479 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->recordAudioSetting:B
21481 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21483 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->allowedContacts:[I
21485 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeIntArray([I)V
21487 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSendSetting:B
21489 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21491 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->phoneCallSetting:B
21493 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21495 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->ipTableProtectSetting:B
21497 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21499 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->iccAccessSetting:B
21501 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21503 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->addOnManagementSetting:B
21505 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21507 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
21509 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21511 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->androidID:Ljava/lang/String;
21513 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
21515 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->wifiInfoSetting:B
21517 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21519 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->switchConnectivitySetting:B
21521 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21523 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->sendMmsSetting:B
21525 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21527 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->forceOnlineState:B
21529 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21531 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->switchWifiStateSetting:B
21533 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21535 + return-void
21537 + :cond_ef
21538 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->_id:Ljava/lang/Integer;
21540 + invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
21542 + move-result v0
21544 + goto/16 :goto_5
21545 +.end method
21546 diff -Npru stock-framework/smali/android/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture.smali opd-framework/smali/android/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture.smali
21547 --- stock-framework/smali/android/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture.smali 1969-12-31 18:00:00.000000000 -0600
21548 +++ opd-framework/smali/android/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture.smali 2013-01-08 23:29:43.608287601 -0600
21549 @@ -0,0 +1,129 @@
21550 +.class Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;
21551 +.super Ljava/lang/Object;
21552 +.source "PrivacyAccountManager.java"
21554 +# interfaces
21555 +.implements Landroid/accounts/AccountManagerFuture;
21558 +# annotations
21559 +.annotation system Ldalvik/annotation/EnclosingClass;
21560 + value = Landroid/privacy/surrogate/PrivacyAccountManager;
21561 +.end annotation
21563 +.annotation system Ldalvik/annotation/InnerClass;
21564 + accessFlags = 0x2
21565 + name = "PrivacyAccountManagerFuture"
21566 +.end annotation
21568 +.annotation system Ldalvik/annotation/Signature;
21569 + value = {
21570 + "<V:",
21571 + "Ljava/lang/Object;",
21572 + ">",
21573 + "Ljava/lang/Object;",
21574 + "Landroid/accounts/AccountManagerFuture",
21575 + "<TV;>;"
21577 +.end annotation
21580 +# instance fields
21581 +.field private result:Ljava/lang/Object;
21582 + .annotation system Ldalvik/annotation/Signature;
21583 + value = {
21584 + "TV;"
21586 + .end annotation
21587 +.end field
21589 +.field final synthetic this$0:Landroid/privacy/surrogate/PrivacyAccountManager;
21592 +# direct methods
21593 +.method public constructor <init>(Landroid/privacy/surrogate/PrivacyAccountManager;Ljava/lang/Object;)V
21594 + .registers 3
21595 + .annotation system Ldalvik/annotation/Signature;
21596 + value = {
21597 + "(TV;)V"
21599 + .end annotation
21601 + iput-object p1, p0, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;->this$0:Landroid/privacy/surrogate/PrivacyAccountManager;
21603 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
21605 + iput-object p2, p0, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;->result:Ljava/lang/Object;
21607 + return-void
21608 +.end method
21611 +# virtual methods
21612 +.method public cancel(Z)Z
21613 + .registers 3
21615 + const/4 v0, 0x0
21617 + return v0
21618 +.end method
21620 +.method public getResult()Ljava/lang/Object;
21621 + .registers 2
21622 + .annotation system Ldalvik/annotation/Signature;
21623 + value = {
21624 + "()TV;"
21626 + .end annotation
21628 + .annotation system Ldalvik/annotation/Throws;
21629 + value = {
21630 + Landroid/accounts/OperationCanceledException;,
21631 + Ljava/io/IOException;,
21632 + Landroid/accounts/AuthenticatorException;
21634 + .end annotation
21636 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;->result:Ljava/lang/Object;
21638 + return-object v0
21639 +.end method
21641 +.method public getResult(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
21642 + .registers 5
21643 + .annotation system Ldalvik/annotation/Signature;
21644 + value = {
21645 + "(J",
21646 + "Ljava/util/concurrent/TimeUnit;",
21647 + ")TV;"
21649 + .end annotation
21651 + .annotation system Ldalvik/annotation/Throws;
21652 + value = {
21653 + Landroid/accounts/OperationCanceledException;,
21654 + Ljava/io/IOException;,
21655 + Landroid/accounts/AuthenticatorException;
21657 + .end annotation
21659 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;->result:Ljava/lang/Object;
21661 + return-object v0
21662 +.end method
21664 +.method public isCancelled()Z
21665 + .registers 2
21667 + const/4 v0, 0x0
21669 + return v0
21670 +.end method
21672 +.method public isDone()Z
21673 + .registers 2
21675 + const/4 v0, 0x1
21677 + return v0
21678 +.end method
21679 diff -Npru stock-framework/smali/android/privacy/surrogate/PrivacyAccountManager.smali opd-framework/smali/android/privacy/surrogate/PrivacyAccountManager.smali
21680 --- stock-framework/smali/android/privacy/surrogate/PrivacyAccountManager.smali 1969-12-31 18:00:00.000000000 -0600
21681 +++ opd-framework/smali/android/privacy/surrogate/PrivacyAccountManager.smali 2013-01-08 23:29:43.608287601 -0600
21682 @@ -0,0 +1,701 @@
21683 +.class public final Landroid/privacy/surrogate/PrivacyAccountManager;
21684 +.super Landroid/accounts/AccountManager;
21685 +.source "PrivacyAccountManager.java"
21688 +# annotations
21689 +.annotation system Ldalvik/annotation/MemberClasses;
21690 + value = {
21691 + Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;
21693 +.end annotation
21696 +# static fields
21697 +.field private static final TAG:Ljava/lang/String; = "PrivacyAccountManager"
21700 +# instance fields
21701 +.field private context:Landroid/content/Context;
21703 +.field private pSetMan:Landroid/privacy/PrivacySettingsManager;
21706 +# direct methods
21707 +.method public constructor <init>(Landroid/content/Context;Landroid/accounts/IAccountManager;)V
21708 + .registers 5
21710 + invoke-direct {p0, p1, p2}, Landroid/accounts/AccountManager;-><init>(Landroid/content/Context;Landroid/accounts/IAccountManager;)V
21712 + iput-object p1, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->context:Landroid/content/Context;
21714 + new-instance v0, Landroid/privacy/PrivacySettingsManager;
21716 + const-string/jumbo v1, "privacy"
21718 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
21720 + move-result-object v1
21722 + invoke-static {v1}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
21724 + move-result-object v1
21726 + invoke-direct {v0, p1, v1}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
21728 + iput-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
21730 + return-void
21731 +.end method
21733 +.method public constructor <init>(Landroid/content/Context;Landroid/accounts/IAccountManager;Landroid/os/Handler;)V
21734 + .registers 6
21736 + invoke-direct {p0, p1, p2, p3}, Landroid/accounts/AccountManager;-><init>(Landroid/content/Context;Landroid/accounts/IAccountManager;Landroid/os/Handler;)V
21738 + iput-object p1, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->context:Landroid/content/Context;
21740 + new-instance v0, Landroid/privacy/PrivacySettingsManager;
21742 + const-string/jumbo v1, "privacy"
21744 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
21746 + move-result-object v1
21748 + invoke-static {v1}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
21750 + move-result-object v1
21752 + invoke-direct {v0, p1, v1}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
21754 + iput-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
21756 + return-void
21757 +.end method
21760 +# virtual methods
21761 +.method public blockingGetAuthToken(Landroid/accounts/Account;Ljava/lang/String;Z)Ljava/lang/String;
21762 + .registers 12
21763 + .annotation system Ldalvik/annotation/Throws;
21764 + value = {
21765 + Landroid/accounts/OperationCanceledException;,
21766 + Ljava/io/IOException;,
21767 + Landroid/accounts/AuthenticatorException;
21769 + .end annotation
21771 + const/4 v5, 0x0
21773 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->context:Landroid/content/Context;
21775 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
21777 + move-result-object v1
21779 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
21781 + move-result v2
21783 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
21785 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
21787 + move-result-object v6
21789 + if-eqz v6, :cond_23
21791 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getAccountsAuthTokensSetting()B
21793 + move-result v0
21795 + if-eqz v0, :cond_23
21797 + const/4 v7, 0x0
21799 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
21801 + const/4 v3, 0x1
21803 + const-string v4, "authTokens"
21805 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
21807 + :goto_22
21808 + return-object v7
21810 + :cond_23
21811 + invoke-super {p0, p1, p2, p3}, Landroid/accounts/AccountManager;->blockingGetAuthToken(Landroid/accounts/Account;Ljava/lang/String;Z)Ljava/lang/String;
21813 + move-result-object v7
21815 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
21817 + const/4 v3, 0x0
21819 + const-string v4, "authTokens"
21821 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
21823 + goto :goto_22
21824 +.end method
21826 +.method public getAccounts()[Landroid/accounts/Account;
21827 + .registers 10
21829 + const/4 v5, 0x0
21831 + const/4 v3, 0x0
21833 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->context:Landroid/content/Context;
21835 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
21837 + move-result-object v1
21839 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
21841 + move-result v2
21843 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
21845 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
21847 + move-result-object v6
21849 + if-eqz v6, :cond_27
21851 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getAccountsSetting()B
21853 + move-result v0
21855 + if-eqz v0, :cond_27
21857 + const-string v8, "[empty accounts list]"
21859 + new-array v7, v3, [Landroid/accounts/Account;
21861 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
21863 + const/4 v3, 0x1
21865 + const-string v4, "accountsList"
21867 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
21869 + :goto_26
21870 + return-object v7
21872 + :cond_27
21873 + const-string v8, "[real value]"
21875 + invoke-super {p0}, Landroid/accounts/AccountManager;->getAccounts()[Landroid/accounts/Account;
21877 + move-result-object v7
21879 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
21881 + const-string v4, "accountsList"
21883 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
21885 + goto :goto_26
21886 +.end method
21888 +.method public getAccountsByType(Ljava/lang/String;)[Landroid/accounts/Account;
21889 + .registers 11
21891 + const/4 v5, 0x0
21893 + const/4 v3, 0x0
21895 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->context:Landroid/content/Context;
21897 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
21899 + move-result-object v1
21901 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
21903 + move-result v2
21905 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
21907 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
21909 + move-result-object v6
21911 + if-eqz v6, :cond_27
21913 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getAccountsSetting()B
21915 + move-result v0
21917 + if-eqz v0, :cond_27
21919 + const-string v8, "[empty accounts list]"
21921 + new-array v7, v3, [Landroid/accounts/Account;
21923 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
21925 + const/4 v3, 0x1
21927 + const-string v4, "accountsList"
21929 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
21931 + :goto_26
21932 + return-object v7
21934 + :cond_27
21935 + const-string v8, "[real value]"
21937 + invoke-super {p0, p1}, Landroid/accounts/AccountManager;->getAccountsByType(Ljava/lang/String;)[Landroid/accounts/Account;
21939 + move-result-object v7
21941 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
21943 + const-string v4, "accountsList"
21945 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
21947 + goto :goto_26
21948 +.end method
21950 +.method public getAccountsByTypeAndFeatures(Ljava/lang/String;[Ljava/lang/String;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;
21951 + .registers 14
21952 + .annotation system Ldalvik/annotation/Signature;
21953 + value = {
21954 + "(",
21955 + "Ljava/lang/String;",
21956 + "[",
21957 + "Ljava/lang/String;",
21958 + "Landroid/accounts/AccountManagerCallback",
21959 + "<[",
21960 + "Landroid/accounts/Account;",
21961 + ">;",
21962 + "Landroid/os/Handler;",
21963 + ")",
21964 + "Landroid/accounts/AccountManagerFuture",
21965 + "<[",
21966 + "Landroid/accounts/Account;",
21967 + ">;"
21969 + .end annotation
21971 + const/4 v5, 0x0
21973 + const/4 v3, 0x0
21975 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->context:Landroid/content/Context;
21977 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
21979 + move-result-object v1
21981 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
21983 + move-result v2
21985 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
21987 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
21989 + move-result-object v6
21991 + if-eqz v6, :cond_2c
21993 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getAccountsSetting()B
21995 + move-result v0
21997 + if-eqz v0, :cond_2c
21999 + const-string v8, "[false]"
22001 + new-instance v7, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;
22003 + new-array v0, v3, [Landroid/accounts/Account;
22005 + invoke-direct {v7, p0, v0}, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;-><init>(Landroid/privacy/surrogate/PrivacyAccountManager;Ljava/lang/Object;)V
22007 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22009 + const/4 v3, 0x1
22011 + const-string v4, "accountsList"
22013 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22015 + :goto_2b
22016 + return-object v7
22018 + :cond_2c
22019 + const-string v8, "[real value]"
22021 + invoke-super {p0, p1, p2, p3, p4}, Landroid/accounts/AccountManager;->getAccountsByTypeAndFeatures(Ljava/lang/String;[Ljava/lang/String;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;
22023 + move-result-object v7
22025 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22027 + const-string v4, "accountsList"
22029 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22031 + goto :goto_2b
22032 +.end method
22034 +.method public getAuthToken(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;Landroid/app/Activity;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;
22035 + .registers 16
22036 + .annotation system Ldalvik/annotation/Signature;
22037 + value = {
22038 + "(",
22039 + "Landroid/accounts/Account;",
22040 + "Ljava/lang/String;",
22041 + "Landroid/os/Bundle;",
22042 + "Landroid/app/Activity;",
22043 + "Landroid/accounts/AccountManagerCallback",
22044 + "<",
22045 + "Landroid/os/Bundle;",
22046 + ">;",
22047 + "Landroid/os/Handler;",
22048 + ")",
22049 + "Landroid/accounts/AccountManagerFuture",
22050 + "<",
22051 + "Landroid/os/Bundle;",
22052 + ">;"
22054 + .end annotation
22056 + const/4 v5, 0x0
22058 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->context:Landroid/content/Context;
22060 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
22062 + move-result-object v1
22064 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
22066 + move-result v2
22068 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22070 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
22072 + move-result-object v6
22074 + if-eqz v6, :cond_2e
22076 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getAccountsAuthTokensSetting()B
22078 + move-result v0
22080 + if-eqz v0, :cond_2e
22082 + const-string v8, "[empty]"
22084 + new-instance v7, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;
22086 + new-instance v0, Landroid/os/Bundle;
22088 + invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
22090 + invoke-direct {v7, p0, v0}, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;-><init>(Landroid/privacy/surrogate/PrivacyAccountManager;Ljava/lang/Object;)V
22092 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22094 + const/4 v3, 0x1
22096 + const-string v4, "authTokens"
22098 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22100 + :goto_2d
22101 + return-object v7
22103 + :cond_2e
22104 + const-string v8, "[real value]"
22106 + invoke-super/range {p0 .. p6}, Landroid/accounts/AccountManager;->getAuthToken(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;Landroid/app/Activity;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;
22108 + move-result-object v7
22110 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22112 + const/4 v3, 0x0
22114 + const-string v4, "authTokens"
22116 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22118 + goto :goto_2d
22119 +.end method
22121 +.method public getAuthToken(Landroid/accounts/Account;Ljava/lang/String;ZLandroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;
22122 + .registers 15
22123 + .annotation system Ldalvik/annotation/Signature;
22124 + value = {
22125 + "(",
22126 + "Landroid/accounts/Account;",
22127 + "Ljava/lang/String;",
22128 + "Z",
22129 + "Landroid/accounts/AccountManagerCallback",
22130 + "<",
22131 + "Landroid/os/Bundle;",
22132 + ">;",
22133 + "Landroid/os/Handler;",
22134 + ")",
22135 + "Landroid/accounts/AccountManagerFuture",
22136 + "<",
22137 + "Landroid/os/Bundle;",
22138 + ">;"
22140 + .end annotation
22142 + const/4 v5, 0x0
22144 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->context:Landroid/content/Context;
22146 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
22148 + move-result-object v1
22150 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
22152 + move-result v2
22154 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22156 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
22158 + move-result-object v6
22160 + if-eqz v6, :cond_2e
22162 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getAccountsAuthTokensSetting()B
22164 + move-result v0
22166 + if-eqz v0, :cond_2e
22168 + const-string v8, "[empty]"
22170 + new-instance v7, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;
22172 + new-instance v0, Landroid/os/Bundle;
22174 + invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
22176 + invoke-direct {v7, p0, v0}, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;-><init>(Landroid/privacy/surrogate/PrivacyAccountManager;Ljava/lang/Object;)V
22178 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22180 + const/4 v3, 0x1
22182 + const-string v4, "authTokens"
22184 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22186 + :goto_2d
22187 + return-object v7
22189 + :cond_2e
22190 + const-string v8, "[real value]"
22192 + invoke-super/range {p0 .. p5}, Landroid/accounts/AccountManager;->getAuthToken(Landroid/accounts/Account;Ljava/lang/String;ZLandroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;
22194 + move-result-object v7
22196 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22198 + const/4 v3, 0x0
22200 + const-string v4, "authTokens"
22202 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22204 + goto :goto_2d
22205 +.end method
22207 +.method public getAuthTokenByFeatures(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Landroid/app/Activity;Landroid/os/Bundle;Landroid/os/Bundle;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;
22208 + .registers 18
22209 + .annotation system Ldalvik/annotation/Signature;
22210 + value = {
22211 + "(",
22212 + "Ljava/lang/String;",
22213 + "Ljava/lang/String;",
22214 + "[",
22215 + "Ljava/lang/String;",
22216 + "Landroid/app/Activity;",
22217 + "Landroid/os/Bundle;",
22218 + "Landroid/os/Bundle;",
22219 + "Landroid/accounts/AccountManagerCallback",
22220 + "<",
22221 + "Landroid/os/Bundle;",
22222 + ">;",
22223 + "Landroid/os/Handler;",
22224 + ")",
22225 + "Landroid/accounts/AccountManagerFuture",
22226 + "<",
22227 + "Landroid/os/Bundle;",
22228 + ">;"
22230 + .end annotation
22232 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->context:Landroid/content/Context;
22234 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
22236 + move-result-object v1
22238 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
22240 + move-result v2
22242 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22244 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
22246 + move-result-object v6
22248 + if-eqz v6, :cond_2e
22250 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getAccountsAuthTokensSetting()B
22252 + move-result v0
22254 + if-eqz v0, :cond_2e
22256 + const-string v8, "[empty]"
22258 + new-instance v7, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;
22260 + new-instance v0, Landroid/os/Bundle;
22262 + invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
22264 + invoke-direct {v7, p0, v0}, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;-><init>(Landroid/privacy/surrogate/PrivacyAccountManager;Ljava/lang/Object;)V
22266 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22268 + const/4 v3, 0x1
22270 + const-string v4, "authTokens"
22272 + const/4 v5, 0x0
22274 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22276 + :goto_2d
22277 + return-object v7
22279 + :cond_2e
22280 + const-string v8, "[real value]"
22282 + invoke-super/range {p0 .. p8}, Landroid/accounts/AccountManager;->getAuthTokenByFeatures(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Landroid/app/Activity;Landroid/os/Bundle;Landroid/os/Bundle;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;
22284 + move-result-object v7
22286 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22288 + const/4 v3, 0x0
22290 + const-string v4, "authTokens"
22292 + const/4 v5, 0x0
22294 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22296 + goto :goto_2d
22297 +.end method
22299 +.method public hasFeatures(Landroid/accounts/Account;[Ljava/lang/String;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;
22300 + .registers 14
22301 + .annotation system Ldalvik/annotation/Signature;
22302 + value = {
22303 + "(",
22304 + "Landroid/accounts/Account;",
22305 + "[",
22306 + "Ljava/lang/String;",
22307 + "Landroid/accounts/AccountManagerCallback",
22308 + "<",
22309 + "Ljava/lang/Boolean;",
22310 + ">;",
22311 + "Landroid/os/Handler;",
22312 + ")",
22313 + "Landroid/accounts/AccountManagerFuture",
22314 + "<",
22315 + "Ljava/lang/Boolean;",
22316 + ">;"
22318 + .end annotation
22320 + const/4 v5, 0x0
22322 + const/4 v3, 0x0
22324 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->context:Landroid/content/Context;
22326 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
22328 + move-result-object v1
22330 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
22332 + move-result v2
22334 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22336 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
22338 + move-result-object v6
22340 + if-eqz v6, :cond_2e
22342 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getAccountsSetting()B
22344 + move-result v0
22346 + if-eqz v0, :cond_2e
22348 + const-string v8, "[false]"
22350 + new-instance v7, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;
22352 + invoke-static {v3}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
22354 + move-result-object v0
22356 + invoke-direct {v7, p0, v0}, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;-><init>(Landroid/privacy/surrogate/PrivacyAccountManager;Ljava/lang/Object;)V
22358 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22360 + const/4 v3, 0x1
22362 + const-string v4, "accountsList"
22364 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22366 + :goto_2d
22367 + return-object v7
22369 + :cond_2e
22370 + const-string v8, "[real value]"
22372 + invoke-super {p0, p1, p2, p3, p4}, Landroid/accounts/AccountManager;->hasFeatures(Landroid/accounts/Account;[Ljava/lang/String;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;
22374 + move-result-object v7
22376 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22378 + const-string v4, "accountsList"
22380 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22382 + goto :goto_2d
22383 +.end method
22384 diff -Npru stock-framework/smali/android/privacy/surrogate/PrivacyActivityManagerService.smali opd-framework/smali/android/privacy/surrogate/PrivacyActivityManagerService.smali
22385 --- stock-framework/smali/android/privacy/surrogate/PrivacyActivityManagerService.smali 1969-12-31 18:00:00.000000000 -0600
22386 +++ opd-framework/smali/android/privacy/surrogate/PrivacyActivityManagerService.smali 2013-01-08 23:29:43.612287626 -0600
22387 @@ -0,0 +1,1223 @@
22388 +.class public final Landroid/privacy/surrogate/PrivacyActivityManagerService;
22389 +.super Ljava/lang/Object;
22390 +.source "PrivacyActivityManagerService.java"
22393 +# static fields
22394 +.field private static final DATA_SMS_RECEIVED_INTENT:Ljava/lang/String; = "android.intent.action.DATA_SMS_RECEIVED"
22396 +.field private static final SMS_RECEIVED_ACTION_INTENT:Ljava/lang/String; = "android.provider.Telephony.SMS_RECEIVED"
22398 +.field private static final TAG:Ljava/lang/String; = "PrivacyActivityManagerService"
22400 +.field private static final WAP_PUSH_RECEIVED_INTENT:Ljava/lang/String; = "android.provider.Telephony.WAP_PUSH_RECEIVED"
22402 +.field private static pSetMan:Landroid/privacy/PrivacySettingsManager;
22404 +.field private static tmpIn:Landroid/content/Intent;
22406 +.field private static tmpInHash:J
22408 +.field private static tmpInReceivers:I
22410 +.field private static tmpMms:Landroid/content/Intent;
22412 +.field private static tmpMmsHash:J
22414 +.field private static tmpMmsReceivers:I
22416 +.field private static tmpOut:Landroid/content/Intent;
22418 +.field private static tmpOutHash:J
22420 +.field private static tmpOutReceivers:I
22422 +.field private static tmpPackageAddedHash:J
22424 +.field private static tmpSms:Landroid/content/Intent;
22426 +.field private static tmpSmsHash:J
22428 +.field private static tmpSmsReceivers:I
22431 +# direct methods
22432 +.method static constructor <clinit>()V
22433 + .registers 3
22435 + const/4 v2, 0x0
22437 + const-wide/16 v0, 0x0
22439 + sput-wide v0, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpInHash:J
22441 + sput v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpInReceivers:I
22443 + sput-wide v0, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOutHash:J
22445 + sput v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOutReceivers:I
22447 + sput-wide v0, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSmsHash:J
22449 + sput v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSmsReceivers:I
22451 + sput-wide v0, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMmsHash:J
22453 + sput v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMmsReceivers:I
22455 + sput-wide v0, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpPackageAddedHash:J
22457 + return-void
22458 +.end method
22460 +.method public constructor <init>()V
22461 + .registers 1
22463 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
22465 + return-void
22466 +.end method
22468 +.method public static enforcePrivacyPermission(Ljava/lang/String;ILandroid/content/Intent;Landroid/content/Context;I)V
22469 + .registers 29
22471 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22473 + if-nez v2, :cond_13
22475 + if-eqz p3, :cond_13
22477 + const-string/jumbo v2, "privacy"
22479 + move-object/from16 v0, p3
22481 + invoke-virtual {v0, v2}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
22483 + move-result-object v2
22485 + check-cast v2, Landroid/privacy/PrivacySettingsManager;
22487 + sput-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22489 + :cond_13
22490 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22492 + if-nez v2, :cond_2c
22494 + if-nez p3, :cond_2c
22496 + new-instance v2, Landroid/privacy/PrivacySettingsManager;
22498 + const/4 v3, 0x0
22500 + const-string/jumbo v4, "privacy"
22502 + invoke-static {v4}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
22504 + move-result-object v4
22506 + invoke-static {v4}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
22508 + move-result-object v4
22510 + invoke-direct {v2, v3, v4}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
22512 + sput-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22514 + :cond_2c
22515 + invoke-virtual/range {p2 .. p2}, Landroid/content/Intent;->getAction()Ljava/lang/String;
22517 + move-result-object v16
22519 + const-string v2, "android.intent.action.NEW_OUTGOING_CALL"
22521 + move-object/from16 v0, v16
22523 + invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
22525 + move-result v2
22527 + if-eqz v2, :cond_cc
22529 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22531 + move-object/from16 v0, p0
22533 + move/from16 v1, p1
22535 + invoke-virtual {v2, v0, v1}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
22537 + move-result-object v8
22539 + const-string v2, "android.intent.extra.PHONE_NUMBER"
22541 + move-object/from16 v0, p2
22543 + invoke-virtual {v0, v2}, Landroid/content/Intent;->getStringExtra(Ljava/lang/String;)Ljava/lang/String;
22545 + move-result-object v23
22547 + sget-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOutHash:J
22549 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
22551 + move-result-wide v4
22553 + cmp-long v2, v2, v4
22555 + if-eqz v2, :cond_66
22557 + invoke-virtual/range {p2 .. p2}, Landroid/content/Intent;->clone()Ljava/lang/Object;
22559 + move-result-object v2
22561 + check-cast v2, Landroid/content/Intent;
22563 + sput-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOut:Landroid/content/Intent;
22565 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
22567 + move-result-wide v2
22569 + sput-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOutHash:J
22571 + sput p4, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOutReceivers:I
22573 + :cond_66
22574 + if-eqz v8, :cond_93
22576 + :try_start_68
22577 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getOutgoingCallsSetting()B
22579 + move-result v2
22581 + if-eqz v2, :cond_93
22583 + const-string v23, ""
22585 + const-string v2, "android.intent.extra.PHONE_NUMBER"
22587 + move-object/from16 v0, p2
22589 + move-object/from16 v1, v23
22591 + invoke-virtual {v0, v2, v1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
22593 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22595 + const/4 v5, 0x1
22597 + const-string/jumbo v6, "outgoingCall"
22599 + const/4 v7, 0x0
22601 + move-object/from16 v3, p0
22603 + move/from16 v4, p1
22605 + invoke-virtual/range {v2 .. v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22606 + :try_end_87
22607 + .catch Ljava/lang/Exception; {:try_start_68 .. :try_end_87} :catch_bd
22609 + :cond_87
22610 + :goto_87
22611 + sget v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOutReceivers:I
22613 + const/4 v3, 0x1
22615 + if-le v2, v3, :cond_c8
22617 + sget v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOutReceivers:I
22619 + add-int/lit8 v2, v2, -0x1
22621 + sput v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOutReceivers:I
22623 + :cond_92
22624 + :goto_92
22625 + return-void
22627 + :cond_93
22628 + :try_start_93
22629 + sget-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOutHash:J
22631 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
22633 + move-result-wide v4
22635 + cmp-long v2, v2, v4
22637 + if-nez v2, :cond_87
22639 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOut:Landroid/content/Intent;
22641 + const-string v3, "android.intent.extra.PHONE_NUMBER"
22643 + invoke-virtual {v2, v3}, Landroid/content/Intent;->getStringExtra(Ljava/lang/String;)Ljava/lang/String;
22645 + move-result-object v23
22647 + const-string v2, "android.intent.extra.PHONE_NUMBER"
22649 + move-object/from16 v0, p2
22651 + move-object/from16 v1, v23
22653 + invoke-virtual {v0, v2, v1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
22655 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22657 + const/4 v5, 0x0
22659 + const-string/jumbo v6, "outgoingCall"
22661 + const/4 v7, 0x0
22663 + move-object/from16 v3, p0
22665 + move/from16 v4, p1
22667 + invoke-virtual/range {v2 .. v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22668 + :try_end_bc
22669 + .catch Ljava/lang/Exception; {:try_start_93 .. :try_end_bc} :catch_bd
22671 + goto :goto_87
22673 + :catch_bd
22674 + move-exception v20
22676 + const-string v2, "PrivacyActivityManagerService"
22678 + const-string v3, "failed to enforce intent broadcast permission"
22680 + move-object/from16 v0, v20
22682 + invoke-static {v2, v3, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
22684 + goto :goto_87
22686 + :cond_c8
22687 + const/4 v2, 0x0
22689 + sput-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOut:Landroid/content/Intent;
22691 + goto :goto_92
22693 + :cond_cc
22694 + const-string v2, "android.intent.action.PHONE_STATE"
22696 + move-object/from16 v0, v16
22698 + invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
22700 + move-result v2
22702 + if-eqz v2, :cond_170
22704 + const-string v2, "incoming_number"
22706 + move-object/from16 v0, p2
22708 + invoke-virtual {v0, v2}, Landroid/content/Intent;->getStringExtra(Ljava/lang/String;)Ljava/lang/String;
22710 + move-result-object v23
22712 + if-eqz v23, :cond_92
22714 + invoke-virtual/range {v23 .. v23}, Ljava/lang/String;->isEmpty()Z
22716 + move-result v2
22718 + if-nez v2, :cond_92
22720 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22722 + move-object/from16 v0, p0
22724 + move/from16 v1, p1
22726 + invoke-virtual {v2, v0, v1}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
22728 + move-result-object v8
22730 + sget-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpInHash:J
22732 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
22734 + move-result-wide v4
22736 + cmp-long v2, v2, v4
22738 + if-eqz v2, :cond_10a
22740 + invoke-virtual/range {p2 .. p2}, Landroid/content/Intent;->clone()Ljava/lang/Object;
22742 + move-result-object v2
22744 + check-cast v2, Landroid/content/Intent;
22746 + sput-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpIn:Landroid/content/Intent;
22748 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
22750 + move-result-wide v2
22752 + sput-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpInHash:J
22754 + sput p4, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpInReceivers:I
22756 + :cond_10a
22757 + if-eqz v8, :cond_137
22759 + :try_start_10c
22760 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getIncomingCallsSetting()B
22762 + move-result v2
22764 + if-eqz v2, :cond_137
22766 + const-string v23, ""
22768 + const-string v2, "incoming_number"
22770 + move-object/from16 v0, p2
22772 + move-object/from16 v1, v23
22774 + invoke-virtual {v0, v2, v1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
22776 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22778 + const/4 v5, 0x1
22780 + const-string v6, "incomingCall"
22782 + const/4 v7, 0x0
22784 + move-object/from16 v3, p0
22786 + move/from16 v4, p1
22788 + invoke-virtual/range {v2 .. v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22789 + :try_end_12a
22790 + .catch Ljava/lang/Exception; {:try_start_10c .. :try_end_12a} :catch_160
22792 + :cond_12a
22793 + :goto_12a
22794 + sget v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpInReceivers:I
22796 + const/4 v3, 0x1
22798 + if-le v2, v3, :cond_16b
22800 + sget v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpInReceivers:I
22802 + add-int/lit8 v2, v2, -0x1
22804 + sput v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpInReceivers:I
22806 + goto/16 :goto_92
22808 + :cond_137
22809 + :try_start_137
22810 + sget-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpInHash:J
22812 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
22814 + move-result-wide v4
22816 + cmp-long v2, v2, v4
22818 + if-nez v2, :cond_12a
22820 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpIn:Landroid/content/Intent;
22822 + const-string v3, "incoming_number"
22824 + invoke-virtual {v2, v3}, Landroid/content/Intent;->getStringExtra(Ljava/lang/String;)Ljava/lang/String;
22826 + move-result-object v23
22828 + const-string v2, "incoming_number"
22830 + move-object/from16 v0, p2
22832 + move-object/from16 v1, v23
22834 + invoke-virtual {v0, v2, v1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
22836 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22838 + const/4 v5, 0x0
22840 + const-string v6, "incomingCall"
22842 + const/4 v7, 0x0
22844 + move-object/from16 v3, p0
22846 + move/from16 v4, p1
22848 + invoke-virtual/range {v2 .. v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22849 + :try_end_15f
22850 + .catch Ljava/lang/Exception; {:try_start_137 .. :try_end_15f} :catch_160
22852 + goto :goto_12a
22854 + :catch_160
22855 + move-exception v20
22857 + const-string v2, "PrivacyActivityManagerService"
22859 + const-string v3, "failed to enforce intent broadcast permission"
22861 + move-object/from16 v0, v20
22863 + invoke-static {v2, v3, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
22865 + goto :goto_12a
22867 + :cond_16b
22868 + const/4 v2, 0x0
22870 + sput-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpIn:Landroid/content/Intent;
22872 + goto/16 :goto_92
22874 + :cond_170
22875 + const-string v2, "android.provider.Telephony.SMS_RECEIVED"
22877 + move-object/from16 v0, v16
22879 + invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
22881 + move-result v2
22883 + if-eqz v2, :cond_253
22885 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22887 + move-object/from16 v0, p0
22889 + move/from16 v1, p1
22891 + invoke-virtual {v2, v0, v1}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
22893 + move-result-object v8
22895 + const-string v23, "[real]"
22897 + const-string/jumbo v2, "pdus"
22899 + move-object/from16 v0, p2
22901 + invoke-virtual {v0, v2}, Landroid/content/Intent;->getSerializableExtra(Ljava/lang/String;)Ljava/io/Serializable;
22903 + move-result-object v2
22905 + check-cast v2, [Ljava/lang/Object;
22907 + move-object/from16 v22, v2
22909 + check-cast v22, [Ljava/lang/Object;
22911 + if-eqz v22, :cond_1f8
22913 + const/4 v2, 0x0
22915 + aget-object v2, v22, v2
22917 + check-cast v2, [B
22919 + check-cast v2, [B
22921 + move-object/from16 v19, v2
22923 + :goto_1a0
22924 + sget-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSmsHash:J
22926 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
22928 + move-result-wide v4
22930 + cmp-long v2, v2, v4
22932 + if-eqz v2, :cond_1ba
22934 + invoke-virtual/range {p2 .. p2}, Landroid/content/Intent;->clone()Ljava/lang/Object;
22936 + move-result-object v2
22938 + check-cast v2, Landroid/content/Intent;
22940 + sput-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSms:Landroid/content/Intent;
22942 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
22944 + move-result-wide v2
22946 + sput-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSmsHash:J
22948 + sput p4, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSmsReceivers:I
22950 + :cond_1ba
22951 + if-eqz v8, :cond_1fb
22953 + :try_start_1bc
22954 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getSmsSetting()B
22956 + move-result v2
22958 + if-eqz v2, :cond_1fb
22960 + const-string v23, "[empty]"
22962 + const/4 v2, 0x1
22964 + new-array v0, v2, [Ljava/lang/Object;
22966 + move-object/from16 v21, v0
22968 + const/4 v2, 0x0
22970 + const/16 v3, 0x10
22972 + new-array v3, v3, [B
22974 + fill-array-data v3, :array_3da
22976 + aput-object v3, v21, v2
22978 + const-string/jumbo v2, "pdus"
22980 + move-object/from16 v0, p2
22982 + move-object/from16 v1, v21
22984 + invoke-virtual {v0, v2, v1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/io/Serializable;)Landroid/content/Intent;
22986 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22988 + const/4 v5, 0x1
22990 + const-string/jumbo v6, "sms"
22992 + const/4 v7, 0x0
22994 + move-object/from16 v3, p0
22996 + move/from16 v4, p1
22998 + invoke-virtual/range {v2 .. v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22999 + :try_end_1eb
23000 + .catch Ljava/lang/Exception; {:try_start_1bc .. :try_end_1eb} :catch_240
23002 + :cond_1eb
23003 + :goto_1eb
23004 + sget v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSmsReceivers:I
23006 + const/4 v3, 0x1
23008 + if-le v2, v3, :cond_24e
23010 + sget v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSmsReceivers:I
23012 + add-int/lit8 v2, v2, -0x1
23014 + sput v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSmsReceivers:I
23016 + goto/16 :goto_92
23018 + :cond_1f8
23019 + const/16 v19, 0x0
23021 + goto :goto_1a0
23023 + :cond_1fb
23024 + :try_start_1fb
23025 + sget-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSmsHash:J
23027 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
23029 + move-result-wide v4
23031 + cmp-long v2, v2, v4
23033 + if-nez v2, :cond_1eb
23035 + const-string/jumbo v2, "pdus"
23037 + sget-object v3, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSms:Landroid/content/Intent;
23039 + const-string/jumbo v4, "pdus"
23041 + invoke-virtual {v3, v4}, Landroid/content/Intent;->getSerializableExtra(Ljava/lang/String;)Ljava/io/Serializable;
23043 + move-result-object v3
23045 + move-object/from16 v0, p2
23047 + invoke-virtual {v0, v2, v3}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/io/Serializable;)Landroid/content/Intent;
23049 + const-string/jumbo v2, "pdus"
23051 + move-object/from16 v0, p2
23053 + invoke-virtual {v0, v2}, Landroid/content/Intent;->getSerializableExtra(Ljava/lang/String;)Ljava/io/Serializable;
23055 + move-result-object v2
23057 + check-cast v2, [Ljava/lang/Object;
23059 + move-object v0, v2
23061 + check-cast v0, [Ljava/lang/Object;
23063 + move-object/from16 v22, v0
23065 + if-eqz v22, :cond_24b
23067 + const/4 v2, 0x0
23069 + aget-object v2, v22, v2
23071 + check-cast v2, [B
23073 + check-cast v2, [B
23075 + move-object/from16 v19, v2
23077 + :goto_231
23078 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23080 + const/4 v5, 0x0
23082 + const-string/jumbo v6, "sms"
23084 + const/4 v7, 0x0
23086 + move-object/from16 v3, p0
23088 + move/from16 v4, p1
23090 + invoke-virtual/range {v2 .. v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23091 + :try_end_23f
23092 + .catch Ljava/lang/Exception; {:try_start_1fb .. :try_end_23f} :catch_240
23094 + goto :goto_1eb
23096 + :catch_240
23097 + move-exception v20
23099 + const-string v2, "PrivacyActivityManagerService"
23101 + const-string v3, "failed to enforce intent broadcast permission"
23103 + move-object/from16 v0, v20
23105 + invoke-static {v2, v3, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
23107 + goto :goto_1eb
23109 + :cond_24b
23110 + const/16 v19, 0x0
23112 + goto :goto_231
23114 + :cond_24e
23115 + const/4 v2, 0x0
23117 + sput-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSms:Landroid/content/Intent;
23119 + goto/16 :goto_92
23121 + :cond_253
23122 + const-string v2, "android.provider.Telephony.WAP_PUSH_RECEIVED"
23124 + move-object/from16 v0, v16
23126 + invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
23128 + move-result v2
23130 + if-nez v2, :cond_267
23132 + const-string v2, "android.intent.action.DATA_SMS_RECEIVED"
23134 + move-object/from16 v0, v16
23136 + invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
23138 + move-result v2
23140 + if-eqz v2, :cond_340
23142 + :cond_267
23143 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23145 + move-object/from16 v0, p0
23147 + move/from16 v1, p1
23149 + invoke-virtual {v2, v0, v1}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
23151 + move-result-object v8
23153 + const-string v23, "[real]"
23155 + const-string/jumbo v2, "pdus"
23157 + move-object/from16 v0, p2
23159 + invoke-virtual {v0, v2}, Landroid/content/Intent;->getSerializableExtra(Ljava/lang/String;)Ljava/io/Serializable;
23161 + move-result-object v2
23163 + check-cast v2, [Ljava/lang/Object;
23165 + move-object/from16 v22, v2
23167 + check-cast v22, [Ljava/lang/Object;
23169 + if-eqz v22, :cond_2e5
23171 + const/4 v2, 0x0
23173 + aget-object v2, v22, v2
23175 + check-cast v2, [B
23177 + check-cast v2, [B
23179 + move-object/from16 v19, v2
23181 + :goto_28d
23182 + sget-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMmsHash:J
23184 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
23186 + move-result-wide v4
23188 + cmp-long v2, v2, v4
23190 + if-eqz v2, :cond_2a7
23192 + invoke-virtual/range {p2 .. p2}, Landroid/content/Intent;->clone()Ljava/lang/Object;
23194 + move-result-object v2
23196 + check-cast v2, Landroid/content/Intent;
23198 + sput-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMms:Landroid/content/Intent;
23200 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
23202 + move-result-wide v2
23204 + sput-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMmsHash:J
23206 + sput p4, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMmsReceivers:I
23208 + :cond_2a7
23209 + if-eqz v8, :cond_2e8
23211 + :try_start_2a9
23212 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getMmsSetting()B
23214 + move-result v2
23216 + if-eqz v2, :cond_2e8
23218 + const-string v23, "[empty]"
23220 + const/4 v2, 0x1
23222 + new-array v0, v2, [Ljava/lang/Object;
23224 + move-object/from16 v21, v0
23226 + const/4 v2, 0x0
23228 + const/16 v3, 0x10
23230 + new-array v3, v3, [B
23232 + fill-array-data v3, :array_3e6
23234 + aput-object v3, v21, v2
23236 + const-string/jumbo v2, "pdus"
23238 + move-object/from16 v0, p2
23240 + move-object/from16 v1, v21
23242 + invoke-virtual {v0, v2, v1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/io/Serializable;)Landroid/content/Intent;
23244 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23246 + const/4 v5, 0x1
23248 + const-string/jumbo v6, "mms"
23250 + const/4 v7, 0x0
23252 + move-object/from16 v3, p0
23254 + move/from16 v4, p1
23256 + invoke-virtual/range {v2 .. v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23257 + :try_end_2d8
23258 + .catch Ljava/lang/Exception; {:try_start_2a9 .. :try_end_2d8} :catch_32d
23260 + :cond_2d8
23261 + :goto_2d8
23262 + sget v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMmsReceivers:I
23264 + const/4 v3, 0x1
23266 + if-le v2, v3, :cond_33b
23268 + sget v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMmsReceivers:I
23270 + add-int/lit8 v2, v2, -0x1
23272 + sput v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMmsReceivers:I
23274 + goto/16 :goto_92
23276 + :cond_2e5
23277 + const/16 v19, 0x0
23279 + goto :goto_28d
23281 + :cond_2e8
23282 + :try_start_2e8
23283 + sget-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMmsHash:J
23285 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
23287 + move-result-wide v4
23289 + cmp-long v2, v2, v4
23291 + if-nez v2, :cond_2d8
23293 + const-string/jumbo v2, "pdus"
23295 + sget-object v3, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMms:Landroid/content/Intent;
23297 + const-string/jumbo v4, "pdus"
23299 + invoke-virtual {v3, v4}, Landroid/content/Intent;->getSerializableExtra(Ljava/lang/String;)Ljava/io/Serializable;
23301 + move-result-object v3
23303 + move-object/from16 v0, p2
23305 + invoke-virtual {v0, v2, v3}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/io/Serializable;)Landroid/content/Intent;
23307 + const-string/jumbo v2, "pdus"
23309 + move-object/from16 v0, p2
23311 + invoke-virtual {v0, v2}, Landroid/content/Intent;->getSerializableExtra(Ljava/lang/String;)Ljava/io/Serializable;
23313 + move-result-object v2
23315 + check-cast v2, [Ljava/lang/Object;
23317 + move-object v0, v2
23319 + check-cast v0, [Ljava/lang/Object;
23321 + move-object/from16 v22, v0
23323 + if-eqz v22, :cond_338
23325 + const/4 v2, 0x0
23327 + aget-object v2, v22, v2
23329 + check-cast v2, [B
23331 + check-cast v2, [B
23333 + move-object/from16 v19, v2
23335 + :goto_31e
23336 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23338 + const/4 v5, 0x0
23340 + const-string/jumbo v6, "mms"
23342 + const/4 v7, 0x0
23344 + move-object/from16 v3, p0
23346 + move/from16 v4, p1
23348 + invoke-virtual/range {v2 .. v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23349 + :try_end_32c
23350 + .catch Ljava/lang/Exception; {:try_start_2e8 .. :try_end_32c} :catch_32d
23352 + goto :goto_2d8
23354 + :catch_32d
23355 + move-exception v20
23357 + const-string v2, "PrivacyActivityManagerService"
23359 + const-string v3, "failed to enforce intent broadcast permission"
23361 + move-object/from16 v0, v20
23363 + invoke-static {v2, v3, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
23365 + goto :goto_2d8
23367 + :cond_338
23368 + const/16 v19, 0x0
23370 + goto :goto_31e
23372 + :cond_33b
23373 + const/4 v2, 0x0
23375 + sput-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMms:Landroid/content/Intent;
23377 + goto/16 :goto_92
23379 + :cond_340
23380 + const-string v2, "android.intent.action.BOOT_COMPLETED"
23382 + move-object/from16 v0, v16
23384 + invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
23386 + move-result v2
23388 + if-eqz v2, :cond_38d
23390 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23392 + invoke-virtual {v2}, Landroid/privacy/PrivacySettingsManager;->setBootCompleted()V
23394 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23396 + move-object/from16 v0, p0
23398 + invoke-virtual {v2, v0}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
23400 + move-result-object v8
23402 + if-eqz v8, :cond_376
23404 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getIntentBootCompletedSetting()B
23406 + move-result v2
23408 + if-eqz v2, :cond_376
23410 + const-string v2, "catchBootComplete"
23412 + move-object/from16 v0, p2
23414 + invoke-virtual {v0, v2}, Landroid/content/Intent;->setAction(Ljava/lang/String;)Landroid/content/Intent;
23416 + sget-object v9, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23418 + const/4 v12, 0x1
23420 + const-string v13, "intentBootCompleted"
23422 + const/4 v14, 0x0
23424 + const/4 v15, 0x0
23426 + move-object/from16 v10, p0
23428 + move/from16 v11, p1
23430 + invoke-virtual/range {v9 .. v15}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23432 + goto/16 :goto_92
23434 + :cond_376
23435 + const-string v2, "android.intent.action.BOOT_COMPLETED"
23437 + move-object/from16 v0, p2
23439 + invoke-virtual {v0, v2}, Landroid/content/Intent;->setAction(Ljava/lang/String;)Landroid/content/Intent;
23441 + sget-object v9, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23443 + const/4 v12, 0x0
23445 + const-string v13, "intentBootCompleted"
23447 + const/4 v14, 0x0
23449 + const/4 v15, 0x0
23451 + move-object/from16 v10, p0
23453 + move/from16 v11, p1
23455 + invoke-virtual/range {v9 .. v15}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23457 + goto/16 :goto_92
23459 + :cond_38d
23460 + const-string v2, "android.intent.action.PACKAGE_ADDED"
23462 + move-object/from16 v0, v16
23464 + invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
23466 + move-result v2
23468 + if-eqz v2, :cond_92
23470 + sget-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpPackageAddedHash:J
23472 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
23474 + move-result-wide v4
23476 + cmp-long v2, v2, v4
23478 + if-eqz v2, :cond_92
23480 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
23482 + move-result-wide v2
23484 + sput-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpPackageAddedHash:J
23486 + invoke-virtual/range {p2 .. p2}, Landroid/content/Intent;->getData()Landroid/net/Uri;
23488 + move-result-object v2
23490 + invoke-virtual {v2}, Landroid/net/Uri;->getSchemeSpecificPart()Ljava/lang/String;
23492 + move-result-object v17
23494 + invoke-virtual/range {p2 .. p2}, Landroid/content/Intent;->getExtras()Landroid/os/Bundle;
23496 + move-result-object v2
23498 + const-string v3, "android.intent.extra.UID"
23500 + invoke-virtual {v2, v3}, Landroid/os/Bundle;->getInt(Ljava/lang/String;)I
23502 + move-result v18
23504 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23506 + move-object/from16 v0, v17
23508 + move/from16 v1, v18
23510 + invoke-virtual {v2, v0, v1}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
23512 + move-result-object v8
23514 + if-eqz v8, :cond_92
23516 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getUid()I
23518 + move-result v2
23520 + move/from16 v0, v18
23522 + if-eq v2, v0, :cond_92
23524 + move/from16 v0, v18
23526 + invoke-virtual {v8, v0}, Landroid/privacy/PrivacySettings;->setUid(I)V
23528 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23530 + invoke-virtual {v2, v8}, Landroid/privacy/PrivacySettingsManager;->saveSettings(Landroid/privacy/PrivacySettings;)Z
23532 + goto/16 :goto_92
23534 + nop
23536 + :array_3da
23537 + .array-data 0x1
23538 + 0x0t
23539 + 0x20t
23540 + 0x1t
23541 + 0x81t
23542 + 0xf0t
23543 + 0x0t
23544 + 0x0t
23545 + 0x11t
23546 + 0x90t
23547 + 0x1t
23548 + 0x30t
23549 + 0x22t
23550 + 0x22t
23551 + 0x80t
23552 + 0x1t
23553 + 0x20t
23554 + .end array-data
23556 + :array_3e6
23557 + .array-data 0x1
23558 + 0x0t
23559 + 0x20t
23560 + 0x1t
23561 + 0x81t
23562 + 0xf0t
23563 + 0x0t
23564 + 0x0t
23565 + 0x11t
23566 + 0x90t
23567 + 0x1t
23568 + 0x30t
23569 + 0x22t
23570 + 0x22t
23571 + 0x80t
23572 + 0x1t
23573 + 0x20t
23574 + .end array-data
23575 +.end method
23577 +.method private static hashCode(Landroid/content/Intent;)J
23578 + .registers 7
23580 + const-wide/16 v3, 0x0
23582 + const-string/jumbo v2, "privacy_hash"
23584 + invoke-virtual {p0, v2, v3, v4}, Landroid/content/Intent;->getLongExtra(Ljava/lang/String;J)J
23586 + move-result-wide v0
23588 + cmp-long v2, v0, v3
23590 + if-nez v2, :cond_1e
23592 + invoke-virtual {p0}, Landroid/content/Intent;->filterHashCode()I
23594 + move-result v2
23596 + int-to-long v2, v2
23598 + invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
23600 + move-result-wide v4
23602 + add-long v0, v2, v4
23604 + const-string/jumbo v2, "privacy_hash"
23606 + invoke-virtual {p0, v2, v0, v1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;J)Landroid/content/Intent;
23608 + :cond_1e
23609 + return-wide v0
23610 +.end method
23611 diff -Npru stock-framework/smali/android/privacy/surrogate/PrivacyConnectivityManager.smali opd-framework/smali/android/privacy/surrogate/PrivacyConnectivityManager.smali
23612 --- stock-framework/smali/android/privacy/surrogate/PrivacyConnectivityManager.smali 1969-12-31 18:00:00.000000000 -0600
23613 +++ opd-framework/smali/android/privacy/surrogate/PrivacyConnectivityManager.smali 2013-01-08 23:29:43.612287626 -0600
23614 @@ -0,0 +1,1045 @@
23615 +.class public Landroid/privacy/surrogate/PrivacyConnectivityManager;
23616 +.super Landroid/net/ConnectivityManager;
23617 +.source "PrivacyConnectivityManager.java"
23620 +# static fields
23621 +.field private static final P_TAG:Ljava/lang/String; = "PrivacyConnectivityManager"
23624 +# instance fields
23625 +.field private context:Landroid/content/Context;
23627 +.field private pSetMan:Landroid/privacy/PrivacySettingsManager;
23630 +# direct methods
23631 +.method public constructor <init>(Landroid/net/IConnectivityManager;Landroid/content/Context;)V
23632 + .registers 6
23634 + invoke-direct {p0, p1}, Landroid/net/ConnectivityManager;-><init>(Landroid/net/IConnectivityManager;)V
23636 + iput-object p2, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
23638 + new-instance v0, Landroid/privacy/PrivacySettingsManager;
23640 + const-string/jumbo v1, "privacy"
23642 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
23644 + move-result-object v1
23646 + invoke-static {v1}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
23648 + move-result-object v1
23650 + invoke-direct {v0, p2, v1}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
23652 + iput-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23654 + const-string v0, "PrivacyConnectivityManager"
23656 + new-instance v1, Ljava/lang/StringBuilder;
23658 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
23660 + const-string/jumbo v2, "now in constructor for package: "
23662 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
23664 + move-result-object v1
23666 + invoke-virtual {p2}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
23668 + move-result-object v2
23670 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
23672 + move-result-object v1
23674 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
23676 + move-result-object v1
23678 + invoke-static {v0, v1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
23680 + return-void
23681 +.end method
23684 +# virtual methods
23685 +.method public getActiveLinkProperties()Landroid/net/LinkProperties;
23686 + .registers 10
23688 + const/4 v2, -0x1
23690 + const/4 v5, 0x0
23692 + new-instance v7, Landroid/net/LinkProperties;
23694 + invoke-direct {v7}, Landroid/net/LinkProperties;-><init>()V
23696 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23698 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
23700 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
23702 + move-result-object v1
23704 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
23706 + move-result v3
23708 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
23710 + move-result-object v8
23712 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23714 + if-eqz v0, :cond_34
23716 + if-eqz v8, :cond_34
23718 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
23720 + move-result v0
23722 + if-eqz v0, :cond_34
23724 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23726 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
23728 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
23730 + move-result-object v1
23732 + const/4 v3, 0x1
23734 + const-string/jumbo v4, "networkInfoCurrent"
23736 + move-object v6, v5
23738 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23740 + :goto_33
23741 + return-object v7
23743 + :cond_34
23744 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23746 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
23748 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
23750 + move-result-object v1
23752 + const/4 v3, 0x0
23754 + const-string/jumbo v4, "networkInfoCurrent"
23756 + move-object v6, v5
23758 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23760 + invoke-super {p0}, Landroid/net/ConnectivityManager;->getActiveLinkProperties()Landroid/net/LinkProperties;
23762 + move-result-object v7
23764 + goto :goto_33
23765 +.end method
23767 +.method public getActiveNetworkInfo()Landroid/net/NetworkInfo;
23768 + .registers 10
23770 + const/4 v3, 0x1
23772 + const/4 v2, -0x1
23774 + const/4 v6, 0x0
23776 + const/4 v5, 0x0
23778 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23780 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
23782 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
23784 + move-result-object v1
23786 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
23788 + move-result v4
23790 + invoke-virtual {v0, v1, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
23792 + move-result-object v8
23794 + new-instance v7, Landroid/net/NetworkInfo;
23796 + const-string v0, "MOBILE"
23798 + const-string v1, "UNKNOWN"
23800 + invoke-direct {v7, v6, v6, v0, v1}, Landroid/net/NetworkInfo;-><init>(IILjava/lang/String;Ljava/lang/String;)V
23802 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23804 + if-eqz v0, :cond_31
23806 + if-eqz v8, :cond_31
23808 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getForceOnlineState()B
23810 + move-result v0
23812 + if-nez v0, :cond_31
23814 + invoke-virtual {v7, v3}, Landroid/net/NetworkInfo;->setIsAvailable(Z)V
23816 + sget-object v0, Landroid/net/NetworkInfo$State;->CONNECTED:Landroid/net/NetworkInfo$State;
23818 + invoke-virtual {v7, v0}, Landroid/net/NetworkInfo;->setState(Landroid/net/NetworkInfo$State;)V
23820 + :cond_31
23821 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23823 + if-eqz v0, :cond_4d
23825 + if-eqz v8, :cond_4d
23827 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
23829 + move-result v0
23831 + if-eqz v0, :cond_4d
23833 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23835 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
23837 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
23839 + move-result-object v1
23841 + const-string/jumbo v4, "networkInfoCurrent"
23843 + move-object v6, v5
23845 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23847 + :goto_4c
23848 + return-object v7
23850 + :cond_4d
23851 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23853 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
23855 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
23857 + move-result-object v1
23859 + const-string/jumbo v4, "networkInfoCurrent"
23861 + move v3, v6
23863 + move-object v6, v5
23865 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23867 + invoke-super {p0}, Landroid/net/ConnectivityManager;->getActiveNetworkInfo()Landroid/net/NetworkInfo;
23869 + move-result-object v7
23871 + goto :goto_4c
23872 +.end method
23874 +.method public getActiveNetworkInfoForUid(I)Landroid/net/NetworkInfo;
23875 + .registers 11
23877 + const/4 v3, 0x1
23879 + const/4 v2, -0x1
23881 + const/4 v6, 0x0
23883 + const/4 v5, 0x0
23885 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23887 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
23889 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
23891 + move-result-object v1
23893 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
23895 + move-result v4
23897 + invoke-virtual {v0, v1, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
23899 + move-result-object v8
23901 + new-instance v7, Landroid/net/NetworkInfo;
23903 + const-string v0, "MOBILE"
23905 + const-string v1, "UNKNOWN"
23907 + invoke-direct {v7, v6, v6, v0, v1}, Landroid/net/NetworkInfo;-><init>(IILjava/lang/String;Ljava/lang/String;)V
23909 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23911 + if-eqz v0, :cond_31
23913 + if-eqz v8, :cond_31
23915 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getForceOnlineState()B
23917 + move-result v0
23919 + if-nez v0, :cond_31
23921 + invoke-virtual {v7, v3}, Landroid/net/NetworkInfo;->setIsAvailable(Z)V
23923 + sget-object v0, Landroid/net/NetworkInfo$State;->CONNECTED:Landroid/net/NetworkInfo$State;
23925 + invoke-virtual {v7, v0}, Landroid/net/NetworkInfo;->setState(Landroid/net/NetworkInfo$State;)V
23927 + :cond_31
23928 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23930 + if-eqz v0, :cond_4d
23932 + if-eqz v8, :cond_4d
23934 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
23936 + move-result v0
23938 + if-eqz v0, :cond_4d
23940 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23942 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
23944 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
23946 + move-result-object v1
23948 + const-string/jumbo v4, "networkInfoCurrent"
23950 + move-object v6, v5
23952 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23954 + :goto_4c
23955 + return-object v7
23957 + :cond_4d
23958 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23960 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
23962 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
23964 + move-result-object v1
23966 + const-string/jumbo v4, "networkInfoCurrent"
23968 + move v3, v6
23970 + move-object v6, v5
23972 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23974 + invoke-super {p0, p1}, Landroid/net/ConnectivityManager;->getActiveNetworkInfoForUid(I)Landroid/net/NetworkInfo;
23976 + move-result-object v7
23978 + goto :goto_4c
23979 +.end method
23981 +.method public getAllNetworkInfo()[Landroid/net/NetworkInfo;
23982 + .registers 10
23984 + const/4 v2, -0x1
23986 + const/4 v3, 0x1
23988 + const/4 v5, 0x0
23990 + const/4 v6, 0x0
23992 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23994 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
23996 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
23998 + move-result-object v1
24000 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
24002 + move-result v4
24004 + invoke-virtual {v0, v1, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
24006 + move-result-object v8
24008 + new-array v7, v3, [Landroid/net/NetworkInfo;
24010 + new-instance v0, Landroid/net/NetworkInfo;
24012 + const-string v1, "MOBILE"
24014 + const-string v4, "CONNECTED"
24016 + invoke-direct {v0, v6, v6, v1, v4}, Landroid/net/NetworkInfo;-><init>(IILjava/lang/String;Ljava/lang/String;)V
24018 + aput-object v0, v7, v6
24020 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24022 + if-eqz v0, :cond_39
24024 + if-eqz v8, :cond_39
24026 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getForceOnlineState()B
24028 + move-result v0
24030 + if-nez v0, :cond_39
24032 + aget-object v0, v7, v6
24034 + invoke-virtual {v0, v3}, Landroid/net/NetworkInfo;->setIsAvailable(Z)V
24036 + aget-object v0, v7, v6
24038 + sget-object v1, Landroid/net/NetworkInfo$State;->CONNECTED:Landroid/net/NetworkInfo$State;
24040 + invoke-virtual {v0, v1}, Landroid/net/NetworkInfo;->setState(Landroid/net/NetworkInfo$State;)V
24042 + :cond_39
24043 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24045 + if-eqz v0, :cond_55
24047 + if-eqz v8, :cond_55
24049 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
24051 + move-result v0
24053 + if-eqz v0, :cond_55
24055 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24057 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24059 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24061 + move-result-object v1
24063 + const-string/jumbo v4, "networkInfoCurrent"
24065 + move-object v6, v5
24067 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24069 + :goto_54
24070 + return-object v7
24072 + :cond_55
24073 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24075 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24077 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24079 + move-result-object v1
24081 + const-string/jumbo v4, "networkInfoCurrent"
24083 + move v3, v6
24085 + move-object v6, v5
24087 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24089 + invoke-super {p0}, Landroid/net/ConnectivityManager;->getAllNetworkInfo()[Landroid/net/NetworkInfo;
24091 + move-result-object v7
24093 + goto :goto_54
24094 +.end method
24096 +.method public getLinkProperties(I)Landroid/net/LinkProperties;
24097 + .registers 11
24099 + const/4 v2, -0x1
24101 + const/4 v5, 0x0
24103 + new-instance v7, Landroid/net/LinkProperties;
24105 + invoke-direct {v7}, Landroid/net/LinkProperties;-><init>()V
24107 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24109 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24111 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24113 + move-result-object v1
24115 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
24117 + move-result v3
24119 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
24121 + move-result-object v8
24123 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24125 + if-eqz v0, :cond_34
24127 + if-eqz v8, :cond_34
24129 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
24131 + move-result v0
24133 + if-eqz v0, :cond_34
24135 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24137 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24139 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24141 + move-result-object v1
24143 + const/4 v3, 0x1
24145 + const-string/jumbo v4, "networkInfoCurrent"
24147 + move-object v6, v5
24149 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24151 + :goto_33
24152 + return-object v7
24154 + :cond_34
24155 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24157 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24159 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24161 + move-result-object v1
24163 + const/4 v3, 0x0
24165 + const-string/jumbo v4, "networkInfoCurrent"
24167 + move-object v6, v5
24169 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24171 + invoke-super {p0, p1}, Landroid/net/ConnectivityManager;->getLinkProperties(I)Landroid/net/LinkProperties;
24173 + move-result-object v7
24175 + goto :goto_33
24176 +.end method
24178 +.method public getMobileDataEnabled()Z
24179 + .registers 9
24181 + const/4 v3, 0x1
24183 + const/4 v2, -0x1
24185 + const/4 v5, 0x0
24187 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24189 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24191 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24193 + move-result-object v1
24195 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
24197 + move-result v4
24199 + invoke-virtual {v0, v1, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
24201 + move-result-object v7
24203 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24205 + if-eqz v0, :cond_2f
24207 + if-eqz v7, :cond_2f
24209 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getForceOnlineState()B
24211 + move-result v0
24213 + if-nez v0, :cond_2f
24215 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24217 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24219 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24221 + move-result-object v1
24223 + const-string/jumbo v4, "networkInfoCurrent"
24225 + move-object v6, v5
24227 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24229 + :goto_2e
24230 + return v3
24232 + :cond_2f
24233 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24235 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24237 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24239 + move-result-object v1
24241 + const/4 v3, 0x0
24243 + const-string/jumbo v4, "networkInfoCurrent"
24245 + move-object v6, v5
24247 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24249 + invoke-super {p0}, Landroid/net/ConnectivityManager;->getMobileDataEnabled()Z
24251 + move-result v3
24253 + goto :goto_2e
24254 +.end method
24256 +.method public getNetworkInfo(I)Landroid/net/NetworkInfo;
24257 + .registers 11
24259 + const/4 v3, 0x1
24261 + const/4 v2, -0x1
24263 + const/4 v6, 0x0
24265 + const/4 v5, 0x0
24267 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24269 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24271 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24273 + move-result-object v1
24275 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
24277 + move-result v4
24279 + invoke-virtual {v0, v1, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
24281 + move-result-object v8
24283 + new-instance v7, Landroid/net/NetworkInfo;
24285 + const-string v0, "MOBILE"
24287 + const-string v1, "CONNECTED"
24289 + invoke-direct {v7, v6, v6, v0, v1}, Landroid/net/NetworkInfo;-><init>(IILjava/lang/String;Ljava/lang/String;)V
24291 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24293 + if-eqz v0, :cond_31
24295 + if-eqz v8, :cond_31
24297 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getForceOnlineState()B
24299 + move-result v0
24301 + if-nez v0, :cond_31
24303 + invoke-virtual {v7, v3}, Landroid/net/NetworkInfo;->setIsAvailable(Z)V
24305 + sget-object v0, Landroid/net/NetworkInfo$State;->CONNECTED:Landroid/net/NetworkInfo$State;
24307 + invoke-virtual {v7, v0}, Landroid/net/NetworkInfo;->setState(Landroid/net/NetworkInfo$State;)V
24309 + :cond_31
24310 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24312 + if-eqz v0, :cond_4d
24314 + if-eqz v8, :cond_4d
24316 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
24318 + move-result v0
24320 + if-eqz v0, :cond_4d
24322 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24324 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24326 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24328 + move-result-object v1
24330 + const-string/jumbo v4, "networkInfoCurrent"
24332 + move-object v6, v5
24334 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24336 + :goto_4c
24337 + return-object v7
24339 + :cond_4d
24340 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24342 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24344 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24346 + move-result-object v1
24348 + const-string/jumbo v4, "networkInfoCurrent"
24350 + move v3, v6
24352 + move-object v6, v5
24354 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24356 + invoke-super {p0, p1}, Landroid/net/ConnectivityManager;->getNetworkInfo(I)Landroid/net/NetworkInfo;
24358 + move-result-object v7
24360 + goto :goto_4c
24361 +.end method
24363 +.method public requestRouteToHost(II)Z
24364 + .registers 12
24366 + const/4 v8, 0x0
24368 + const/4 v3, 0x1
24370 + const/4 v2, -0x1
24372 + const/4 v5, 0x0
24374 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24376 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24378 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24380 + move-result-object v1
24382 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
24384 + move-result v4
24386 + invoke-virtual {v0, v1, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
24388 + move-result-object v7
24390 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24392 + if-eqz v0, :cond_30
24394 + if-eqz v7, :cond_30
24396 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getForceOnlineState()B
24398 + move-result v0
24400 + if-nez v0, :cond_30
24402 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24404 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24406 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24408 + move-result-object v1
24410 + const-string/jumbo v4, "networkInfoCurrent"
24412 + move-object v6, v5
24414 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24416 + :goto_2f
24417 + return v3
24419 + :cond_30
24420 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24422 + if-eqz v0, :cond_4d
24424 + if-eqz v7, :cond_4d
24426 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
24428 + move-result v0
24430 + if-eqz v0, :cond_4d
24432 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24434 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24436 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24438 + move-result-object v1
24440 + const-string/jumbo v4, "networkInfoCurrent"
24442 + move-object v6, v5
24444 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24446 + move v3, v8
24448 + goto :goto_2f
24450 + :cond_4d
24451 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24453 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24455 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24457 + move-result-object v1
24459 + const-string/jumbo v4, "networkInfoCurrent"
24461 + move v3, v8
24463 + move-object v6, v5
24465 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24467 + invoke-super {p0, p1, p2}, Landroid/net/ConnectivityManager;->requestRouteToHost(II)Z
24469 + move-result v3
24471 + goto :goto_2f
24472 +.end method
24474 +.method public requestRouteToHostAddress(ILjava/net/InetAddress;)Z
24475 + .registers 12
24477 + const/4 v8, 0x0
24479 + const/4 v3, 0x1
24481 + const/4 v2, -0x1
24483 + const/4 v5, 0x0
24485 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24487 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24489 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24491 + move-result-object v1
24493 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
24495 + move-result v4
24497 + invoke-virtual {v0, v1, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
24499 + move-result-object v7
24501 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24503 + if-eqz v0, :cond_30
24505 + if-eqz v7, :cond_30
24507 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getForceOnlineState()B
24509 + move-result v0
24511 + if-nez v0, :cond_30
24513 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24515 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24517 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24519 + move-result-object v1
24521 + const-string/jumbo v4, "networkInfoCurrent"
24523 + move-object v6, v5
24525 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24527 + :goto_2f
24528 + return v3
24530 + :cond_30
24531 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24533 + if-eqz v0, :cond_4d
24535 + if-eqz v7, :cond_4d
24537 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
24539 + move-result v0
24541 + if-eqz v0, :cond_4d
24543 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24545 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24547 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24549 + move-result-object v1
24551 + const-string/jumbo v4, "networkInfoCurrent"
24553 + move-object v6, v5
24555 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24557 + move v3, v8
24559 + goto :goto_2f
24561 + :cond_4d
24562 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24564 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24566 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24568 + move-result-object v1
24570 + const-string/jumbo v4, "networkInfoCurrent"
24572 + move v3, v8
24574 + move-object v6, v5
24576 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24578 + invoke-super {p0, p1, p2}, Landroid/net/ConnectivityManager;->requestRouteToHostAddress(ILjava/net/InetAddress;)Z
24580 + move-result v3
24582 + goto :goto_2f
24583 +.end method
24585 +.method public setMobileDataEnabled(Z)V
24586 + .registers 10
24588 + const/4 v2, -0x1
24590 + const/4 v5, 0x0
24592 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24594 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24596 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24598 + move-result-object v1
24600 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
24602 + move-result v3
24604 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
24606 + move-result-object v7
24608 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24610 + if-eqz v0, :cond_2f
24612 + if-eqz v7, :cond_2f
24614 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getSwitchConnectivitySetting()B
24616 + move-result v0
24618 + if-eqz v0, :cond_2f
24620 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24622 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24624 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24626 + move-result-object v1
24628 + const/4 v3, 0x1
24630 + const-string/jumbo v4, "switchconnectivity"
24632 + move-object v6, v5
24634 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24636 + :goto_2e
24637 + return-void
24639 + :cond_2f
24640 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24642 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24644 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24646 + move-result-object v1
24648 + const/4 v3, 0x0
24650 + const-string/jumbo v4, "switchconnectivity"
24652 + move-object v6, v5
24654 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24656 + invoke-super {p0, p1}, Landroid/net/ConnectivityManager;->setMobileDataEnabled(Z)V
24658 + goto :goto_2e
24659 +.end method
24660 diff -Npru stock-framework/smali/android/privacy/surrogate/PrivacyContentResolver.smali opd-framework/smali/android/privacy/surrogate/PrivacyContentResolver.smali
24661 --- stock-framework/smali/android/privacy/surrogate/PrivacyContentResolver.smali 1969-12-31 18:00:00.000000000 -0600
24662 +++ opd-framework/smali/android/privacy/surrogate/PrivacyContentResolver.smali 2013-01-08 23:29:43.616287638 -0600
24663 @@ -0,0 +1,868 @@
24664 +.class public final Landroid/privacy/surrogate/PrivacyContentResolver;
24665 +.super Ljava/lang/Object;
24666 +.source "PrivacyContentResolver.java"
24669 +# static fields
24670 +.field private static final MMS_CONTENT_URI_AUTHORITY:Ljava/lang/String; = "mms"
24672 +.field private static final MMS_SMS_CONTENT_URI_AUTHORITY:Ljava/lang/String; = "mms-sms"
24674 +.field private static final SMS_CONTENT_URI_AUTHORITY:Ljava/lang/String; = "sms"
24676 +.field private static final TAG:Ljava/lang/String; = "PrivacyContentResolver"
24678 +.field private static pSetMan:Landroid/privacy/PrivacySettingsManager;
24681 +# direct methods
24682 +.method public constructor <init>()V
24683 + .registers 1
24685 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
24687 + return-void
24688 +.end method
24690 +.method private static arrayToString([Ljava/lang/String;)Ljava/lang/String;
24691 + .registers 8
24693 + new-instance v4, Ljava/lang/StringBuffer;
24695 + invoke-direct {v4}, Ljava/lang/StringBuffer;-><init>()V
24697 + if-eqz p0, :cond_2d
24699 + move-object v0, p0
24701 + array-length v3, v0
24703 + const/4 v2, 0x0
24705 + :goto_a
24706 + if-ge v2, v3, :cond_30
24708 + aget-object v1, v0, v2
24710 + new-instance v5, Ljava/lang/StringBuilder;
24712 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
24714 + const-string v6, "["
24716 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
24718 + move-result-object v5
24720 + invoke-virtual {v5, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
24722 + move-result-object v5
24724 + const-string v6, "]"
24726 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
24728 + move-result-object v5
24730 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
24732 + move-result-object v5
24734 + invoke-virtual {v4, v5}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
24736 + add-int/lit8 v2, v2, 0x1
24738 + goto :goto_a
24740 + :cond_2d
24741 + const-string v5, ""
24743 + :goto_2f
24744 + return-object v5
24746 + :cond_30
24747 + invoke-virtual {v4}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
24749 + move-result-object v5
24751 + goto :goto_2f
24752 +.end method
24754 +.method public static enforcePrivacyPermission(Landroid/net/Uri;[Ljava/lang/String;Landroid/content/Context;Landroid/database/Cursor;)Landroid/database/Cursor;
24755 + .registers 21
24756 + .annotation system Ldalvik/annotation/Throws;
24757 + value = {
24758 + Landroid/os/RemoteException;
24760 + .end annotation
24762 + if-eqz p0, :cond_1db
24764 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24766 + if-nez v1, :cond_13
24768 + const-string/jumbo v1, "privacy"
24770 + move-object/from16 v0, p2
24772 + invoke-virtual {v0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
24774 + move-result-object v1
24776 + check-cast v1, Landroid/privacy/PrivacySettingsManager;
24778 + sput-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24780 + :cond_13
24781 + invoke-virtual/range {p2 .. p2}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24783 + move-result-object v2
24785 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
24787 + move-result v3
24789 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24791 + invoke-virtual {v1, v2, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
24793 + move-result-object v7
24795 + invoke-virtual/range {p0 .. p0}, Landroid/net/Uri;->getAuthority()Ljava/lang/String;
24797 + move-result-object v9
24799 + const-string v15, "[real]"
24801 + move-object/from16 v13, p3
24803 + if-eqz v9, :cond_54
24805 + const-string v1, "contacts"
24807 + invoke-virtual {v9, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
24809 + move-result v1
24811 + if-nez v1, :cond_3b
24813 + const-string v1, "com.android.contacts"
24815 + invoke-virtual {v9, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
24817 + move-result v1
24819 + if-eqz v1, :cond_ab
24821 + :cond_3b
24822 + if-eqz v7, :cond_54
24824 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getContactsSetting()B
24826 + move-result v1
24828 + const/4 v4, 0x1
24830 + if-ne v1, v4, :cond_55
24832 + const-string v15, "[empty]"
24834 + new-instance v13, Landroid/privacy/surrogate/PrivacyCursor;
24836 + invoke-direct {v13}, Landroid/privacy/surrogate/PrivacyCursor;-><init>()V
24838 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24840 + const/4 v4, 0x1
24842 + const-string v5, "contacts"
24844 + const/4 v6, 0x0
24846 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24848 + :cond_54
24849 + :goto_54
24850 + return-object v13
24852 + :cond_55
24853 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getContactsSetting()B
24855 + move-result v1
24857 + const/4 v4, 0x2
24859 + if-ne v1, v4, :cond_a1
24861 + invoke-virtual/range {p0 .. p0}, Landroid/net/Uri;->toString()Ljava/lang/String;
24863 + move-result-object v1
24865 + sget-object v4, Landroid/provider/ContactsContract$Contacts;->CONTENT_URI:Landroid/net/Uri;
24867 + invoke-virtual {v4}, Landroid/net/Uri;->toString()Ljava/lang/String;
24869 + move-result-object v4
24871 + invoke-virtual {v1, v4}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
24873 + move-result v1
24875 + if-eqz v1, :cond_a1
24877 + const/4 v11, 0x0
24879 + if-eqz p1, :cond_82
24881 + move-object/from16 v8, p1
24883 + array-length v12, v8
24885 + const/4 v10, 0x0
24887 + :goto_73
24888 + if-ge v10, v12, :cond_82
24890 + aget-object v16, v8, v10
24892 + const-string v1, "_id"
24894 + move-object/from16 v0, v16
24896 + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
24898 + move-result v1
24900 + if-eqz v1, :cond_93
24902 + const/4 v11, 0x1
24904 + :cond_82
24905 + if-nez v11, :cond_96
24907 + new-instance v13, Landroid/privacy/surrogate/PrivacyCursor;
24909 + invoke-direct {v13}, Landroid/privacy/surrogate/PrivacyCursor;-><init>()V
24911 + :goto_89
24912 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24914 + const/4 v4, 0x2
24916 + const-string v5, "contacts"
24918 + const/4 v6, 0x0
24920 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24922 + goto :goto_54
24924 + :cond_93
24925 + add-int/lit8 v10, v10, 0x1
24927 + goto :goto_73
24929 + :cond_96
24930 + new-instance v14, Landroid/privacy/surrogate/PrivacyCursor;
24932 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getAllowedContacts()[I
24934 + move-result-object v1
24936 + invoke-direct {v14, v13, v1}, Landroid/privacy/surrogate/PrivacyCursor;-><init>(Landroid/database/Cursor;[I)V
24938 + move-object v13, v14
24940 + goto :goto_89
24942 + :cond_a1
24943 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24945 + const/4 v4, 0x0
24947 + const-string v5, "contacts"
24949 + const/4 v6, 0x0
24951 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24953 + goto :goto_54
24955 + :cond_ab
24956 + const-string v1, "com.android.calendar"
24958 + invoke-virtual {v9, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
24960 + move-result v1
24962 + if-eqz v1, :cond_d8
24964 + if-eqz v7, :cond_cd
24966 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getCalendarSetting()B
24968 + move-result v1
24970 + const/4 v4, 0x1
24972 + if-ne v1, v4, :cond_cd
24974 + const-string v15, "[empty]"
24976 + new-instance v13, Landroid/privacy/surrogate/PrivacyCursor;
24978 + invoke-direct {v13}, Landroid/privacy/surrogate/PrivacyCursor;-><init>()V
24980 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24982 + const/4 v4, 0x1
24984 + const-string v5, "calendar"
24986 + const/4 v6, 0x0
24988 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24990 + goto :goto_54
24992 + :cond_cd
24993 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24995 + const/4 v4, 0x0
24997 + const-string v5, "calendar"
24999 + const/4 v6, 0x0
25001 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25003 + goto/16 :goto_54
25005 + :cond_d8
25006 + const-string/jumbo v1, "mms"
25008 + invoke-virtual {v9, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
25010 + move-result v1
25012 + if-eqz v1, :cond_109
25014 + if-eqz v7, :cond_fd
25016 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getMmsSetting()B
25018 + move-result v1
25020 + const/4 v4, 0x1
25022 + if-ne v1, v4, :cond_fd
25024 + const-string v15, "[empty]"
25026 + new-instance v13, Landroid/privacy/surrogate/PrivacyCursor;
25028 + invoke-direct {v13}, Landroid/privacy/surrogate/PrivacyCursor;-><init>()V
25030 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25032 + const/4 v4, 0x1
25034 + const-string/jumbo v5, "mms"
25036 + const/4 v6, 0x0
25038 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25040 + goto/16 :goto_54
25042 + :cond_fd
25043 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25045 + const/4 v4, 0x0
25047 + const-string/jumbo v5, "mms"
25049 + const/4 v6, 0x0
25051 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25053 + goto/16 :goto_54
25055 + :cond_109
25056 + const-string/jumbo v1, "sms"
25058 + invoke-virtual {v9, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
25060 + move-result v1
25062 + if-eqz v1, :cond_13a
25064 + if-eqz v7, :cond_12e
25066 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getSmsSetting()B
25068 + move-result v1
25070 + const/4 v4, 0x1
25072 + if-ne v1, v4, :cond_12e
25074 + const-string v15, "[empty]"
25076 + new-instance v13, Landroid/privacy/surrogate/PrivacyCursor;
25078 + invoke-direct {v13}, Landroid/privacy/surrogate/PrivacyCursor;-><init>()V
25080 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25082 + const/4 v4, 0x1
25084 + const-string/jumbo v5, "sms"
25086 + const/4 v6, 0x0
25088 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25090 + goto/16 :goto_54
25092 + :cond_12e
25093 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25095 + const/4 v4, 0x0
25097 + const-string/jumbo v5, "sms"
25099 + const/4 v6, 0x0
25101 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25103 + goto/16 :goto_54
25105 + :cond_13a
25106 + const-string/jumbo v1, "mms-sms"
25108 + invoke-virtual {v9, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
25110 + move-result v1
25112 + if-nez v1, :cond_14c
25114 + const-string/jumbo v1, "mms-sms-v2"
25116 + invoke-virtual {v9, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
25118 + move-result v1
25120 + if-eqz v1, :cond_17b
25122 + :cond_14c
25123 + if-eqz v7, :cond_16f
25125 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getMmsSetting()B
25127 + move-result v1
25129 + const/4 v4, 0x1
25131 + if-eq v1, v4, :cond_15c
25133 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getSmsSetting()B
25135 + move-result v1
25137 + const/4 v4, 0x1
25139 + if-ne v1, v4, :cond_16f
25141 + :cond_15c
25142 + const-string v15, "[empty]"
25144 + new-instance v13, Landroid/privacy/surrogate/PrivacyCursor;
25146 + invoke-direct {v13}, Landroid/privacy/surrogate/PrivacyCursor;-><init>()V
25148 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25150 + const/4 v4, 0x1
25152 + const-string/jumbo v5, "mmsSms"
25154 + const/4 v6, 0x0
25156 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25158 + goto/16 :goto_54
25160 + :cond_16f
25161 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25163 + const/4 v4, 0x0
25165 + const-string/jumbo v5, "mmsSms"
25167 + const/4 v6, 0x0
25169 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25171 + goto/16 :goto_54
25173 + :cond_17b
25174 + const-string v1, "call_log"
25176 + invoke-virtual {v9, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
25178 + move-result v1
25180 + if-eqz v1, :cond_1a9
25182 + if-eqz v7, :cond_19e
25184 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getCallLogSetting()B
25186 + move-result v1
25188 + const/4 v4, 0x1
25190 + if-ne v1, v4, :cond_19e
25192 + const-string v15, "[empty]"
25194 + new-instance v13, Landroid/privacy/surrogate/PrivacyCursor;
25196 + invoke-direct {v13}, Landroid/privacy/surrogate/PrivacyCursor;-><init>()V
25198 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25200 + const/4 v4, 0x1
25202 + const-string v5, "callLog"
25204 + const/4 v6, 0x0
25206 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25208 + goto/16 :goto_54
25210 + :cond_19e
25211 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25213 + const/4 v4, 0x0
25215 + const-string v5, "callLog"
25217 + const/4 v6, 0x0
25219 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25221 + goto/16 :goto_54
25223 + :cond_1a9
25224 + sget-object v1, Landroid/provider/Browser;->BOOKMARKS_URI:Landroid/net/Uri;
25226 + invoke-virtual {v1}, Landroid/net/Uri;->getAuthority()Ljava/lang/String;
25228 + move-result-object v1
25230 + invoke-virtual {v9, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
25232 + move-result v1
25234 + if-eqz v1, :cond_54
25236 + if-eqz v7, :cond_1d0
25238 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getBookmarksSetting()B
25240 + move-result v1
25242 + const/4 v4, 0x1
25244 + if-ne v1, v4, :cond_1d0
25246 + const-string v15, "[empty]"
25248 + new-instance v13, Landroid/privacy/surrogate/PrivacyCursor;
25250 + invoke-direct {v13}, Landroid/privacy/surrogate/PrivacyCursor;-><init>()V
25252 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25254 + const/4 v4, 0x1
25256 + const-string v5, "bookmarks"
25258 + const/4 v6, 0x0
25260 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25262 + goto/16 :goto_54
25264 + :cond_1d0
25265 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25267 + const/4 v4, 0x0
25269 + const-string v5, "bookmarks"
25271 + const/4 v6, 0x0
25273 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25275 + goto/16 :goto_54
25277 + :cond_1db
25278 + move-object/from16 v13, p3
25280 + goto/16 :goto_54
25281 +.end method
25283 +.method public static enforcePrivacyPermission(Landroid/net/Uri;[Ljava/lang/String;Landroid/content/Context;Landroid/database/Cursor;Z)Landroid/database/Cursor;
25284 + .registers 20
25285 + .annotation system Ldalvik/annotation/Throws;
25286 + value = {
25287 + Landroid/os/RemoteException;
25289 + .end annotation
25291 + if-eqz p0, :cond_dd
25293 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25295 + if-nez v1, :cond_13
25297 + const-string/jumbo v1, "privacy"
25299 + move-object/from16 v0, p2
25301 + invoke-virtual {v0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
25303 + move-result-object v1
25305 + check-cast v1, Landroid/privacy/PrivacySettingsManager;
25307 + sput-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25309 + :cond_13
25310 + invoke-virtual/range {p2 .. p2}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
25312 + move-result-object v2
25314 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
25316 + move-result v3
25318 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25320 + invoke-virtual {v1, v2, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
25322 + move-result-object v7
25324 + invoke-virtual {p0}, Landroid/net/Uri;->getAuthority()Ljava/lang/String;
25326 + move-result-object v9
25328 + const-string v14, "[real]"
25330 + move-object/from16 v13, p3
25332 + if-eqz v9, :cond_6d
25334 + const-string v1, "com.google.android.gsf.gservices"
25336 + invoke-virtual {v9, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
25338 + move-result v1
25340 + if-eqz v1, :cond_6d
25342 + if-eqz v7, :cond_cb
25344 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getSimInfoSetting()B
25346 + move-result v1
25348 + if-eqz v1, :cond_cb
25350 + invoke-interface/range {p3 .. p3}, Landroid/database/Cursor;->getPosition()I
25352 + move-result v8
25354 + const/4 v11, -0x1
25356 + const/4 v12, 0x0
25358 + :goto_41
25359 + :try_start_41
25360 + invoke-interface/range {p3 .. p3}, Landroid/database/Cursor;->getCount()I
25362 + move-result v1
25364 + if-ge v12, v1, :cond_5d
25366 + invoke-interface/range {p3 .. p3}, Landroid/database/Cursor;->moveToNext()Z
25368 + const/4 v1, 0x0
25370 + move-object/from16 v0, p3
25372 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
25374 + move-result-object v1
25376 + const-string v4, "android_id"
25378 + invoke-virtual {v1, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
25380 + move-result v1
25382 + if-eqz v1, :cond_6e
25384 + invoke-interface/range {p3 .. p3}, Landroid/database/Cursor;->getPosition()I
25385 + :try_end_5c
25386 + .catchall {:try_start_41 .. :try_end_5c} :catchall_8b
25387 + .catch Ljava/lang/Exception; {:try_start_41 .. :try_end_5c} :catch_71
25389 + move-result v11
25391 + :cond_5d
25392 + move-object/from16 v0, p3
25394 + invoke-interface {v0, v8}, Landroid/database/Cursor;->moveToPosition(I)Z
25396 + const/4 v1, -0x1
25398 + if-ne v11, v1, :cond_9e
25400 + const-string v1, "PrivacyContentResolver"
25402 + const-string/jumbo v4, "now we return real cursor, because forbidden_pos is -1"
25404 + invoke-static {v1, v4}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
25406 + :cond_6d
25407 + :goto_6d
25408 + return-object v13
25410 + :cond_6e
25411 + add-int/lit8 v12, v12, 0x1
25413 + goto :goto_41
25415 + :catch_71
25416 + move-exception v10
25418 + :try_start_72
25419 + const-string v1, "PrivacyContentResolver"
25421 + const-string/jumbo v4, "something went wrong while getting blocked permission for android id"
25423 + invoke-static {v1, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
25424 + :try_end_7a
25425 + .catchall {:try_start_72 .. :try_end_7a} :catchall_8b
25427 + move-object/from16 v0, p3
25429 + invoke-interface {v0, v8}, Landroid/database/Cursor;->moveToPosition(I)Z
25431 + const/4 v1, -0x1
25433 + if-ne v11, v1, :cond_9e
25435 + const-string v1, "PrivacyContentResolver"
25437 + const-string/jumbo v4, "now we return real cursor, because forbidden_pos is -1"
25439 + invoke-static {v1, v4}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
25441 + goto :goto_6d
25443 + :catchall_8b
25444 + move-exception v1
25446 + move-object/from16 v0, p3
25448 + invoke-interface {v0, v8}, Landroid/database/Cursor;->moveToPosition(I)Z
25450 + const/4 v4, -0x1
25452 + if-ne v11, v4, :cond_9d
25454 + const-string v1, "PrivacyContentResolver"
25456 + const-string/jumbo v4, "now we return real cursor, because forbidden_pos is -1"
25458 + invoke-static {v1, v4}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
25460 + goto :goto_6d
25462 + :cond_9d
25463 + throw v1
25465 + :cond_9e
25466 + const-string v1, "PrivacyContentResolver"
25468 + new-instance v4, Ljava/lang/StringBuilder;
25470 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
25472 + const-string/jumbo v5, "now blocking google access to android id and give fake cursor. forbidden_position: "
25474 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
25476 + move-result-object v4
25478 + invoke-virtual {v4, v11}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
25480 + move-result-object v4
25482 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
25484 + move-result-object v4
25486 + invoke-static {v1, v4}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
25488 + const-string v14, "[fake]"
25490 + new-instance v13, Landroid/privacy/surrogate/PrivacyCursor;
25492 + move-object/from16 v0, p3
25494 + invoke-direct {v13, v0, v11}, Landroid/privacy/surrogate/PrivacyCursor;-><init>(Landroid/database/Cursor;I)V
25496 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25498 + const/4 v4, 0x1
25500 + const-string/jumbo v5, "networkInfoSIM"
25502 + const/4 v6, 0x0
25504 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25506 + goto :goto_6d
25508 + :cond_cb
25509 + const-string v1, "PrivacyContentResolver"
25511 + const-string v4, "google is allowed to get real cursor"
25513 + invoke-static {v1, v4}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
25515 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25517 + const/4 v4, 0x0
25519 + const-string/jumbo v5, "networkInfoSIM"
25521 + const/4 v6, 0x0
25523 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25525 + goto :goto_6d
25527 + :cond_dd
25528 + move-object/from16 v13, p3
25530 + goto :goto_6d
25531 +.end method
25532 diff -Npru stock-framework/smali/android/privacy/surrogate/PrivacyCursor.smali opd-framework/smali/android/privacy/surrogate/PrivacyCursor.smali
25533 --- stock-framework/smali/android/privacy/surrogate/PrivacyCursor.smali 1969-12-31 18:00:00.000000000 -0600
25534 +++ opd-framework/smali/android/privacy/surrogate/PrivacyCursor.smali 2013-01-08 23:29:43.616287638 -0600
25535 @@ -0,0 +1,1765 @@
25536 +.class public Landroid/privacy/surrogate/PrivacyCursor;
25537 +.super Ljava/lang/Object;
25538 +.source "PrivacyCursor.java"
25540 +# interfaces
25541 +.implements Landroid/database/Cursor;
25544 +# static fields
25545 +.field private static final TAG:Ljava/lang/String; = "PrivacyCursor"
25547 +.field private static final mask:[Ljava/lang/String;
25550 +# instance fields
25551 +.field private allowedIdMapping:[I
25553 +.field private allowedIds:[I
25555 +.field private blockedColumnAndroidID:I
25557 +.field private googleCursor:Z
25559 +.field private realCursor:Landroid/database/Cursor;
25562 +# direct methods
25563 +.method static constructor <clinit>()V
25564 + .registers 3
25566 + const/16 v0, 0x10
25568 + new-array v0, v0, [Ljava/lang/String;
25570 + const/4 v1, 0x0
25572 + const-string v2, "0"
25574 + aput-object v2, v0, v1
25576 + const/4 v1, 0x1
25578 + const-string v2, "1"
25580 + aput-object v2, v0, v1
25582 + const/4 v1, 0x2
25584 + const-string v2, "2"
25586 + aput-object v2, v0, v1
25588 + const/4 v1, 0x3
25590 + const-string v2, "3"
25592 + aput-object v2, v0, v1
25594 + const/4 v1, 0x4
25596 + const-string v2, "4"
25598 + aput-object v2, v0, v1
25600 + const/4 v1, 0x5
25602 + const-string v2, "5"
25604 + aput-object v2, v0, v1
25606 + const/4 v1, 0x6
25608 + const-string v2, "6"
25610 + aput-object v2, v0, v1
25612 + const/4 v1, 0x7
25614 + const-string v2, "7"
25616 + aput-object v2, v0, v1
25618 + const/16 v1, 0x8
25620 + const-string v2, "8"
25622 + aput-object v2, v0, v1
25624 + const/16 v1, 0x9
25626 + const-string v2, "9"
25628 + aput-object v2, v0, v1
25630 + const/16 v1, 0xa
25632 + const-string v2, "a"
25634 + aput-object v2, v0, v1
25636 + const/16 v1, 0xb
25638 + const-string v2, "b"
25640 + aput-object v2, v0, v1
25642 + const/16 v1, 0xc
25644 + const-string v2, "c"
25646 + aput-object v2, v0, v1
25648 + const/16 v1, 0xd
25650 + const-string v2, "d"
25652 + aput-object v2, v0, v1
25654 + const/16 v1, 0xe
25656 + const-string v2, "e"
25658 + aput-object v2, v0, v1
25660 + const/16 v1, 0xf
25662 + const-string v2, "f"
25664 + aput-object v2, v0, v1
25666 + sput-object v0, Landroid/privacy/surrogate/PrivacyCursor;->mask:[Ljava/lang/String;
25668 + return-void
25669 +.end method
25671 +.method public constructor <init>()V
25672 + .registers 1
25674 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
25676 + return-void
25677 +.end method
25679 +.method public constructor <init>(Landroid/database/Cursor;I)V
25680 + .registers 6
25682 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
25684 + const/16 v0, -0xb
25686 + if-ne p2, v0, :cond_28
25688 + const/4 v0, 0x0
25690 + iput-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
25692 + :goto_a
25693 + iput p2, p0, Landroid/privacy/surrogate/PrivacyCursor;->blockedColumnAndroidID:I
25695 + const/4 v0, 0x1
25697 + iput-boolean v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
25699 + const-string v0, "PrivacyCursor"
25701 + new-instance v1, Ljava/lang/StringBuilder;
25703 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
25705 + const-string v2, "constructor is ready for google cursor! forbidden_position: "
25707 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
25709 + move-result-object v1
25711 + invoke-virtual {v1, p2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
25713 + move-result-object v1
25715 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
25717 + move-result-object v1
25719 + invoke-static {v0, v1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
25721 + return-void
25723 + :cond_28
25724 + iput-object p1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
25726 + goto :goto_a
25727 +.end method
25729 +.method public constructor <init>(Landroid/database/Cursor;[I)V
25730 + .registers 7
25732 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
25734 + if-eqz p2, :cond_8
25736 + array-length v2, p2
25738 + if-nez v2, :cond_9
25740 + :cond_8
25741 + const/4 p1, 0x0
25743 + :cond_9
25744 + iput-object p1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
25746 + iput-object p2, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIds:[I
25748 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
25750 + if-eqz v2, :cond_3f
25752 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
25754 + invoke-interface {v2}, Landroid/database/Cursor;->getPosition()I
25756 + move-result v0
25758 + array-length v2, p2
25760 + new-array v2, v2, [I
25762 + iput-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
25764 + const/4 v1, 0x0
25766 + :cond_1d
25767 + :goto_1d
25768 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
25770 + invoke-interface {v2}, Landroid/database/Cursor;->moveToNext()Z
25772 + move-result v2
25774 + if-eqz v2, :cond_3a
25776 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
25778 + invoke-direct {p0, v2}, Landroid/privacy/surrogate/PrivacyCursor;->isAllowed(Landroid/database/Cursor;)Z
25780 + move-result v2
25782 + if-eqz v2, :cond_1d
25784 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
25786 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
25788 + invoke-interface {v3}, Landroid/database/Cursor;->getPosition()I
25790 + move-result v3
25792 + aput v3, v2, v1
25794 + add-int/lit8 v1, v1, 0x1
25796 + goto :goto_1d
25798 + :cond_3a
25799 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
25801 + invoke-interface {v2, v0}, Landroid/database/Cursor;->moveToPosition(I)Z
25803 + :cond_3f
25804 + return-void
25805 +.end method
25807 +.method private getContactId(Landroid/database/Cursor;)I
25808 + .registers 5
25810 + const-string v2, "_id"
25812 + invoke-interface {p1, v2}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I
25814 + move-result v0
25816 + const/4 v1, -0x1
25818 + const/4 v2, -0x1
25820 + if-eq v0, v2, :cond_e
25822 + invoke-interface {p1, v0}, Landroid/database/Cursor;->getInt(I)I
25824 + move-result v1
25826 + :cond_e
25827 + return v1
25828 +.end method
25830 +.method private getFakeID()Ljava/lang/String;
25831 + .registers 8
25833 + :try_start_0
25834 + new-instance v3, Ljava/util/Random;
25836 + invoke-direct {v3}, Ljava/util/Random;-><init>()V
25838 + const-string v2, ""
25840 + const/4 v1, 0x0
25842 + :goto_8
25843 + const/16 v4, 0x10
25845 + if-ge v1, v4, :cond_34
25847 + new-instance v4, Ljava/lang/StringBuilder;
25849 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
25851 + invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
25853 + move-result-object v4
25855 + sget-object v5, Landroid/privacy/surrogate/PrivacyCursor;->mask:[Ljava/lang/String;
25857 + const/16 v6, 0xf
25859 + invoke-virtual {v3, v6}, Ljava/util/Random;->nextInt(I)I
25861 + move-result v6
25863 + aget-object v5, v5, v6
25865 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
25867 + move-result-object v4
25869 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
25870 + :try_end_26
25871 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_26} :catch_2a
25873 + move-result-object v2
25875 + add-int/lit8 v1, v1, 0x1
25877 + goto :goto_8
25879 + :catch_2a
25880 + move-exception v0
25882 + const-string v4, "PrivacyCursor"
25884 + const-string/jumbo v5, "something went wrong with creating fake ID"
25886 + invoke-static {v4, v5}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
25888 + const/4 v2, 0x0
25890 + :cond_34
25891 + return-object v2
25892 +.end method
25894 +.method private getMappedPos(I)I
25895 + .registers 4
25897 + const/4 v0, 0x0
25899 + :goto_1
25900 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
25902 + array-length v1, v1
25904 + if-ge v0, v1, :cond_10
25906 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
25908 + aget v1, v1, v0
25910 + if-ne v1, p1, :cond_d
25912 + :goto_c
25913 + return v0
25915 + :cond_d
25916 + add-int/lit8 v0, v0, 0x1
25918 + goto :goto_1
25920 + :cond_10
25921 + const/4 v0, -0x1
25923 + goto :goto_c
25924 +.end method
25926 +.method private isAllowed(I)Z
25927 + .registers 7
25929 + const/4 v4, 0x0
25931 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIds:[I
25933 + array-length v3, v0
25935 + const/4 v2, 0x0
25937 + :goto_5
25938 + if-ge v2, v3, :cond_c
25940 + aget v1, v0, v2
25942 + if-ne p1, v1, :cond_d
25944 + const/4 v4, 0x1
25946 + :cond_c
25947 + return v4
25949 + :cond_d
25950 + add-int/lit8 v2, v2, 0x1
25952 + goto :goto_5
25953 +.end method
25955 +.method private isAllowed(Landroid/database/Cursor;)Z
25956 + .registers 3
25958 + invoke-direct {p0, p1}, Landroid/privacy/surrogate/PrivacyCursor;->getContactId(Landroid/database/Cursor;)I
25960 + move-result v0
25962 + invoke-direct {p0, v0}, Landroid/privacy/surrogate/PrivacyCursor;->isAllowed(I)Z
25964 + move-result v0
25966 + return v0
25967 +.end method
25970 +# virtual methods
25971 +.method public close()V
25972 + .registers 2
25974 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
25976 + if-eqz v0, :cond_9
25978 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
25980 + invoke-interface {v0}, Landroid/database/Cursor;->close()V
25982 + :cond_9
25983 + return-void
25984 +.end method
25986 +.method public copyStringToBuffer(ILandroid/database/CharArrayBuffer;)V
25987 + .registers 4
25989 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
25991 + if-eqz v0, :cond_9
25993 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
25995 + invoke-interface {v0, p1, p2}, Landroid/database/Cursor;->copyStringToBuffer(ILandroid/database/CharArrayBuffer;)V
25997 + :cond_9
25998 + return-void
25999 +.end method
26001 +.method public deactivate()V
26002 + .registers 2
26004 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26006 + if-eqz v0, :cond_9
26008 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26010 + invoke-interface {v0}, Landroid/database/Cursor;->deactivate()V
26012 + :cond_9
26013 + return-void
26014 +.end method
26016 +.method public getBlob(I)[B
26017 + .registers 3
26019 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26021 + if-eqz v0, :cond_b
26023 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26025 + invoke-interface {v0, p1}, Landroid/database/Cursor;->getBlob(I)[B
26027 + move-result-object v0
26029 + :goto_a
26030 + return-object v0
26032 + :cond_b
26033 + const/4 v0, 0x0
26035 + new-array v0, v0, [B
26037 + goto :goto_a
26038 +.end method
26040 +.method public getColumnCount()I
26041 + .registers 2
26043 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26045 + if-eqz v0, :cond_b
26047 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26049 + invoke-interface {v0}, Landroid/database/Cursor;->getColumnCount()I
26051 + move-result v0
26053 + :goto_a
26054 + return v0
26056 + :cond_b
26057 + const/4 v0, 0x0
26059 + goto :goto_a
26060 +.end method
26062 +.method public getColumnIndex(Ljava/lang/String;)I
26063 + .registers 3
26065 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26067 + if-eqz v0, :cond_b
26069 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26071 + invoke-interface {v0, p1}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I
26073 + move-result v0
26075 + :goto_a
26076 + return v0
26078 + :cond_b
26079 + const/4 v0, -0x1
26081 + goto :goto_a
26082 +.end method
26084 +.method public getColumnIndexOrThrow(Ljava/lang/String;)I
26085 + .registers 3
26086 + .annotation system Ldalvik/annotation/Throws;
26087 + value = {
26088 + Ljava/lang/IllegalArgumentException;
26090 + .end annotation
26092 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26094 + if-eqz v0, :cond_b
26096 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26098 + invoke-interface {v0, p1}, Landroid/database/Cursor;->getColumnIndexOrThrow(Ljava/lang/String;)I
26100 + move-result v0
26102 + :goto_a
26103 + return v0
26105 + :cond_b
26106 + const/4 v0, -0x1
26108 + goto :goto_a
26109 +.end method
26111 +.method public getColumnName(I)Ljava/lang/String;
26112 + .registers 3
26114 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26116 + if-eqz v0, :cond_b
26118 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26120 + invoke-interface {v0, p1}, Landroid/database/Cursor;->getColumnName(I)Ljava/lang/String;
26122 + move-result-object v0
26124 + :goto_a
26125 + return-object v0
26127 + :cond_b
26128 + const-string v0, ""
26130 + goto :goto_a
26131 +.end method
26133 +.method public getColumnNames()[Ljava/lang/String;
26134 + .registers 4
26136 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26138 + if-eqz v0, :cond_b
26140 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26142 + invoke-interface {v0}, Landroid/database/Cursor;->getColumnNames()[Ljava/lang/String;
26144 + move-result-object v0
26146 + :goto_a
26147 + return-object v0
26149 + :cond_b
26150 + const/4 v0, 0x1
26152 + new-array v0, v0, [Ljava/lang/String;
26154 + const/4 v1, 0x0
26156 + const-string v2, ""
26158 + aput-object v2, v0, v1
26160 + goto :goto_a
26161 +.end method
26163 +.method public getCount()I
26164 + .registers 4
26166 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26168 + if-eqz v0, :cond_2b
26170 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26172 + if-eqz v0, :cond_2b
26174 + iget-boolean v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
26176 + if-nez v0, :cond_2b
26178 + const-string v0, "PrivacyCursor"
26180 + new-instance v1, Ljava/lang/StringBuilder;
26182 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
26184 + const-string v2, "getCount: "
26186 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
26188 + move-result-object v1
26190 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26192 + array-length v2, v2
26194 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
26196 + move-result-object v1
26198 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
26200 + move-result-object v1
26202 + invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
26204 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26206 + array-length v0, v0
26208 + :goto_2a
26209 + return v0
26211 + :cond_2b
26212 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26214 + if-eqz v0, :cond_36
26216 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26218 + invoke-interface {v0}, Landroid/database/Cursor;->getCount()I
26220 + move-result v0
26222 + goto :goto_2a
26224 + :cond_36
26225 + const/4 v0, 0x0
26227 + goto :goto_2a
26228 +.end method
26230 +.method public getDouble(I)D
26231 + .registers 4
26233 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26235 + if-eqz v0, :cond_b
26237 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26239 + invoke-interface {v0, p1}, Landroid/database/Cursor;->getDouble(I)D
26241 + move-result-wide v0
26243 + :goto_a
26244 + return-wide v0
26246 + :cond_b
26247 + const-wide/16 v0, 0x0
26249 + goto :goto_a
26250 +.end method
26252 +.method public getExtras()Landroid/os/Bundle;
26253 + .registers 2
26255 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26257 + if-eqz v0, :cond_b
26259 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26261 + invoke-interface {v0}, Landroid/database/Cursor;->getExtras()Landroid/os/Bundle;
26263 + move-result-object v0
26265 + :goto_a
26266 + return-object v0
26268 + :cond_b
26269 + new-instance v0, Landroid/os/Bundle;
26271 + invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
26273 + goto :goto_a
26274 +.end method
26276 +.method public getFloat(I)F
26277 + .registers 3
26279 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26281 + if-eqz v0, :cond_b
26283 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26285 + invoke-interface {v0, p1}, Landroid/database/Cursor;->getFloat(I)F
26287 + move-result v0
26289 + :goto_a
26290 + return v0
26292 + :cond_b
26293 + const/4 v0, 0x0
26295 + goto :goto_a
26296 +.end method
26298 +.method public getInt(I)I
26299 + .registers 4
26301 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26303 + if-eqz v1, :cond_b
26305 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26307 + invoke-interface {v1, p1}, Landroid/database/Cursor;->getInt(I)I
26309 + move-result v0
26311 + :goto_a
26312 + return v0
26314 + :cond_b
26315 + const/4 v0, 0x0
26317 + goto :goto_a
26318 +.end method
26320 +.method public getLong(I)J
26321 + .registers 4
26323 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26325 + if-eqz v0, :cond_b
26327 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26329 + invoke-interface {v0, p1}, Landroid/database/Cursor;->getLong(I)J
26331 + move-result-wide v0
26333 + :goto_a
26334 + return-wide v0
26336 + :cond_b
26337 + const-wide/16 v0, 0x0
26339 + goto :goto_a
26340 +.end method
26342 +.method public getPosition()I
26343 + .registers 5
26345 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26347 + if-eqz v1, :cond_3f
26349 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26351 + if-eqz v1, :cond_3f
26353 + iget-boolean v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
26355 + if-nez v1, :cond_3f
26357 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26359 + invoke-interface {v1}, Landroid/database/Cursor;->getPosition()I
26361 + move-result v1
26363 + invoke-direct {p0, v1}, Landroid/privacy/surrogate/PrivacyCursor;->getMappedPos(I)I
26365 + move-result v0
26367 + const-string v1, "PrivacyCursor"
26369 + new-instance v2, Ljava/lang/StringBuilder;
26371 + invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
26373 + const-string v3, "getPosition - mapped position: "
26375 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
26377 + move-result-object v2
26379 + invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
26381 + move-result-object v2
26383 + const-string v3, " real position: "
26385 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
26387 + move-result-object v2
26389 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26391 + invoke-interface {v3}, Landroid/database/Cursor;->getPosition()I
26393 + move-result v3
26395 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
26397 + move-result-object v2
26399 + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
26401 + move-result-object v2
26403 + invoke-static {v1, v2}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
26405 + :goto_3e
26406 + return v0
26408 + :cond_3f
26409 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26411 + if-eqz v1, :cond_4a
26413 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26415 + invoke-interface {v1}, Landroid/database/Cursor;->getPosition()I
26417 + move-result v0
26419 + goto :goto_3e
26421 + :cond_4a
26422 + const/4 v0, -0x1
26424 + goto :goto_3e
26425 +.end method
26427 +.method public getShort(I)S
26428 + .registers 3
26430 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26432 + if-eqz v0, :cond_b
26434 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26436 + invoke-interface {v0, p1}, Landroid/database/Cursor;->getShort(I)S
26438 + move-result v0
26440 + :goto_a
26441 + return v0
26443 + :cond_b
26444 + const/4 v0, 0x0
26446 + goto :goto_a
26447 +.end method
26449 +.method public getString(I)Ljava/lang/String;
26450 + .registers 9
26452 + iget-boolean v4, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
26454 + if-eqz v4, :cond_63
26456 + const/4 v4, 0x1
26458 + if-ne p1, v4, :cond_63
26460 + iget-object v4, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26462 + invoke-interface {v4}, Landroid/database/Cursor;->getPosition()I
26464 + move-result v4
26466 + iget v5, p0, Landroid/privacy/surrogate/PrivacyCursor;->blockedColumnAndroidID:I
26468 + if-ne v4, v5, :cond_63
26470 + const-string v4, "PrivacyCursor"
26472 + const-string v5, "google tries to get android_id with getString()"
26474 + invoke-static {v4, v5}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
26476 + invoke-direct {p0}, Landroid/privacy/surrogate/PrivacyCursor;->getFakeID()Ljava/lang/String;
26478 + move-result-object v2
26480 + if-eqz v2, :cond_58
26482 + :try_start_1e
26483 + new-instance v3, Ljava/math/BigInteger;
26485 + const/16 v4, 0x10
26487 + invoke-direct {v3, v2, v4}, Ljava/math/BigInteger;-><init>(Ljava/lang/String;I)V
26489 + invoke-static {v3}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
26491 + move-result-object v1
26493 + const-string v4, "PrivacyCursor"
26495 + new-instance v5, Ljava/lang/StringBuilder;
26497 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
26499 + const-string/jumbo v6, "returned : "
26501 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
26503 + move-result-object v5
26505 + invoke-virtual {v5, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
26507 + move-result-object v5
26509 + const-string v6, "(String) as fake android id"
26511 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
26513 + move-result-object v5
26515 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
26517 + move-result-object v5
26519 + invoke-static {v4, v5}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
26520 + :try_end_48
26521 + .catch Ljava/lang/Exception; {:try_start_1e .. :try_end_48} :catch_49
26523 + :goto_48
26524 + return-object v1
26526 + :catch_49
26527 + move-exception v0
26529 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
26531 + const-string v4, "PrivacyCursor"
26533 + const-string/jumbo v5, "returned \"\" as android_id"
26535 + invoke-static {v4, v5}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
26537 + const-string v1, ""
26539 + goto :goto_48
26541 + :cond_58
26542 + const-string v4, "PrivacyCursor"
26544 + const-string/jumbo v5, "returned \"\" as android_id"
26546 + invoke-static {v4, v5}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
26548 + const-string v1, ""
26550 + goto :goto_48
26552 + :cond_63
26553 + iget-object v4, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26555 + if-eqz v4, :cond_6e
26557 + iget-object v4, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26559 + invoke-interface {v4, p1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
26561 + move-result-object v1
26563 + goto :goto_48
26565 + :cond_6e
26566 + const-string v1, ""
26568 + goto :goto_48
26569 +.end method
26571 +.method public getType(I)I
26572 + .registers 3
26574 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26576 + if-eqz v0, :cond_b
26578 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26580 + invoke-interface {v0, p1}, Landroid/database/Cursor;->getType(I)I
26582 + move-result v0
26584 + :goto_a
26585 + return v0
26587 + :cond_b
26588 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26590 + const/4 v0, 0x0
26592 + goto :goto_a
26593 +.end method
26595 +.method public getWantsAllOnMoveCalls()Z
26596 + .registers 2
26598 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26600 + if-eqz v0, :cond_b
26602 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26604 + invoke-interface {v0}, Landroid/database/Cursor;->getWantsAllOnMoveCalls()Z
26606 + move-result v0
26608 + :goto_a
26609 + return v0
26611 + :cond_b
26612 + const/4 v0, 0x0
26614 + goto :goto_a
26615 +.end method
26617 +.method public isAfterLast()Z
26618 + .registers 2
26620 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26622 + if-eqz v0, :cond_b
26624 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26626 + invoke-interface {v0}, Landroid/database/Cursor;->isAfterLast()Z
26628 + move-result v0
26630 + :goto_a
26631 + return v0
26633 + :cond_b
26634 + const/4 v0, 0x0
26636 + goto :goto_a
26637 +.end method
26639 +.method public isBeforeFirst()Z
26640 + .registers 2
26642 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26644 + if-eqz v0, :cond_b
26646 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26648 + invoke-interface {v0}, Landroid/database/Cursor;->isBeforeFirst()Z
26650 + move-result v0
26652 + :goto_a
26653 + return v0
26655 + :cond_b
26656 + const/4 v0, 0x0
26658 + goto :goto_a
26659 +.end method
26661 +.method public isClosed()Z
26662 + .registers 2
26664 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26666 + if-eqz v0, :cond_b
26668 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26670 + invoke-interface {v0}, Landroid/database/Cursor;->isClosed()Z
26672 + move-result v0
26674 + :goto_a
26675 + return v0
26677 + :cond_b
26678 + const/4 v0, 0x0
26680 + goto :goto_a
26681 +.end method
26683 +.method public isFirst()Z
26684 + .registers 4
26686 + const/4 v0, 0x0
26688 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26690 + if-eqz v1, :cond_1b
26692 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26694 + if-eqz v1, :cond_1b
26696 + iget-boolean v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
26698 + if-nez v1, :cond_1b
26700 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26702 + invoke-interface {v1}, Landroid/database/Cursor;->getPosition()I
26704 + move-result v1
26706 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26708 + aget v2, v2, v0
26710 + if-ne v1, v2, :cond_1a
26712 + const/4 v0, 0x1
26714 + :cond_1a
26715 + :goto_1a
26716 + return v0
26718 + :cond_1b
26719 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26721 + if-eqz v1, :cond_1a
26723 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26725 + invoke-interface {v0}, Landroid/database/Cursor;->isFirst()Z
26727 + move-result v0
26729 + goto :goto_1a
26730 +.end method
26732 +.method public isLast()Z
26733 + .registers 4
26735 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26737 + if-eqz v0, :cond_1f
26739 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26741 + if-eqz v0, :cond_1f
26743 + iget-boolean v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
26745 + if-nez v0, :cond_1f
26747 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26749 + invoke-interface {v0}, Landroid/database/Cursor;->getPosition()I
26751 + move-result v0
26753 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26755 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26757 + array-length v2, v2
26759 + add-int/lit8 v2, v2, -0x1
26761 + aget v1, v1, v2
26763 + if-ne v0, v1, :cond_2a
26765 + const/4 v0, 0x1
26767 + :goto_1e
26768 + return v0
26770 + :cond_1f
26771 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26773 + if-eqz v0, :cond_2a
26775 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26777 + invoke-interface {v0}, Landroid/database/Cursor;->isLast()Z
26779 + move-result v0
26781 + goto :goto_1e
26783 + :cond_2a
26784 + const/4 v0, 0x0
26786 + goto :goto_1e
26787 +.end method
26789 +.method public isNull(I)Z
26790 + .registers 3
26792 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26794 + if-eqz v0, :cond_b
26796 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26798 + invoke-interface {v0, p1}, Landroid/database/Cursor;->isNull(I)Z
26800 + move-result v0
26802 + :goto_a
26803 + return v0
26805 + :cond_b
26806 + const/4 v0, 0x0
26808 + goto :goto_a
26809 +.end method
26811 +.method public move(I)Z
26812 + .registers 8
26814 + const/4 v2, 0x0
26816 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26818 + if-eqz v3, :cond_3e
26820 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26822 + if-eqz v3, :cond_3e
26824 + iget-boolean v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
26826 + if-nez v3, :cond_3e
26828 + const-string v3, "PrivacyCursor"
26830 + new-instance v4, Ljava/lang/StringBuilder;
26832 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
26834 + const-string/jumbo v5, "move - offset: "
26836 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
26838 + move-result-object v4
26840 + invoke-virtual {v4, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
26842 + move-result-object v4
26844 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
26846 + move-result-object v4
26848 + invoke-static {v3, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
26850 + :try_start_26
26851 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26853 + iget-object v4, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26855 + invoke-interface {v4}, Landroid/database/Cursor;->getPosition()I
26857 + move-result v4
26859 + invoke-direct {p0, v4}, Landroid/privacy/surrogate/PrivacyCursor;->getMappedPos(I)I
26861 + move-result v4
26863 + add-int/2addr v4, p1
26865 + aget v1, v3, v4
26867 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26869 + invoke-interface {v3, v1}, Landroid/database/Cursor;->moveToPosition(I)Z
26870 + :try_end_3a
26871 + .catch Ljava/lang/ArrayIndexOutOfBoundsException; {:try_start_26 .. :try_end_3a} :catch_3c
26873 + move-result v2
26875 + :cond_3b
26876 + :goto_3b
26877 + return v2
26879 + :catch_3c
26880 + move-exception v0
26882 + goto :goto_3b
26884 + :cond_3e
26885 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26887 + if-eqz v3, :cond_3b
26889 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26891 + invoke-interface {v3, p1}, Landroid/database/Cursor;->move(I)Z
26893 + goto :goto_3b
26894 +.end method
26896 +.method public moveToFirst()Z
26897 + .registers 4
26899 + const/4 v0, 0x0
26901 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26903 + if-eqz v1, :cond_18
26905 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26907 + if-eqz v1, :cond_18
26909 + iget-boolean v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
26911 + if-nez v1, :cond_18
26913 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26915 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26917 + aget v2, v2, v0
26919 + invoke-interface {v1, v2}, Landroid/database/Cursor;->moveToPosition(I)Z
26921 + move-result v0
26923 + :cond_17
26924 + :goto_17
26925 + return v0
26927 + :cond_18
26928 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26930 + if-eqz v1, :cond_17
26932 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26934 + invoke-interface {v1}, Landroid/database/Cursor;->moveToFirst()Z
26936 + move-result v0
26938 + goto :goto_17
26939 +.end method
26941 +.method public moveToLast()Z
26942 + .registers 5
26944 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26946 + if-eqz v1, :cond_1c
26948 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26950 + if-eqz v1, :cond_1c
26952 + iget-boolean v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
26954 + if-nez v1, :cond_1c
26956 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26958 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26960 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26962 + array-length v3, v3
26964 + add-int/lit8 v3, v3, -0x1
26966 + aget v2, v2, v3
26968 + invoke-interface {v1, v2}, Landroid/database/Cursor;->moveToPosition(I)Z
26970 + move-result v0
26972 + :goto_1b
26973 + return v0
26975 + :cond_1c
26976 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26978 + if-eqz v1, :cond_27
26980 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26982 + invoke-interface {v1}, Landroid/database/Cursor;->moveToLast()Z
26984 + move-result v0
26986 + goto :goto_1b
26988 + :cond_27
26989 + const/4 v0, 0x0
26991 + goto :goto_1b
26992 +.end method
26994 +.method public moveToNext()Z
26995 + .registers 3
26997 + const/4 v0, 0x0
26999 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27001 + if-eqz v1, :cond_29
27003 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
27005 + if-eqz v1, :cond_29
27007 + iget-boolean v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
27009 + if-nez v1, :cond_29
27011 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27013 + invoke-interface {v1}, Landroid/database/Cursor;->moveToNext()Z
27015 + move-result v1
27017 + if-nez v1, :cond_16
27019 + :cond_15
27020 + :goto_15
27021 + return v0
27023 + :cond_16
27024 + const/4 v0, 0x1
27026 + :goto_17
27027 + const/4 v1, 0x1
27029 + if-ne v0, v1, :cond_15
27031 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27033 + invoke-direct {p0, v1}, Landroid/privacy/surrogate/PrivacyCursor;->isAllowed(Landroid/database/Cursor;)Z
27035 + move-result v1
27037 + if-nez v1, :cond_15
27039 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27041 + invoke-interface {v1}, Landroid/database/Cursor;->moveToNext()Z
27043 + move-result v0
27045 + goto :goto_17
27047 + :cond_29
27048 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27050 + if-eqz v1, :cond_15
27052 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27054 + invoke-interface {v1}, Landroid/database/Cursor;->moveToNext()Z
27056 + move-result v0
27058 + goto :goto_15
27059 +.end method
27061 +.method public moveToPosition(I)Z
27062 + .registers 6
27064 + const/4 v1, 0x0
27066 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27068 + if-eqz v2, :cond_1a
27070 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
27072 + if-eqz v2, :cond_1a
27074 + iget-boolean v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
27076 + if-nez v2, :cond_1a
27078 + :try_start_d
27079 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27081 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
27083 + aget v3, v3, p1
27085 + invoke-interface {v2, v3}, Landroid/database/Cursor;->moveToPosition(I)Z
27086 + :try_end_16
27087 + .catch Ljava/lang/ArrayIndexOutOfBoundsException; {:try_start_d .. :try_end_16} :catch_18
27089 + move-result v1
27091 + :cond_17
27092 + :goto_17
27093 + return v1
27095 + :catch_18
27096 + move-exception v0
27098 + goto :goto_17
27100 + :cond_1a
27101 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27103 + if-eqz v2, :cond_17
27105 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27107 + invoke-interface {v2, p1}, Landroid/database/Cursor;->moveToPosition(I)Z
27109 + move-result v1
27111 + goto :goto_17
27112 +.end method
27114 +.method public moveToPrevious()Z
27115 + .registers 3
27117 + const/4 v0, 0x0
27119 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27121 + if-eqz v1, :cond_29
27123 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
27125 + if-eqz v1, :cond_29
27127 + iget-boolean v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
27129 + if-nez v1, :cond_29
27131 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27133 + invoke-interface {v1}, Landroid/database/Cursor;->moveToPrevious()Z
27135 + move-result v1
27137 + if-nez v1, :cond_16
27139 + :cond_15
27140 + :goto_15
27141 + return v0
27143 + :cond_16
27144 + const/4 v0, 0x1
27146 + :goto_17
27147 + const/4 v1, 0x1
27149 + if-ne v0, v1, :cond_15
27151 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27153 + invoke-direct {p0, v1}, Landroid/privacy/surrogate/PrivacyCursor;->isAllowed(Landroid/database/Cursor;)Z
27155 + move-result v1
27157 + if-nez v1, :cond_15
27159 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27161 + invoke-interface {v1}, Landroid/database/Cursor;->moveToPrevious()Z
27163 + move-result v0
27165 + goto :goto_17
27167 + :cond_29
27168 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27170 + if-eqz v1, :cond_15
27172 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27174 + invoke-interface {v1}, Landroid/database/Cursor;->moveToPrevious()Z
27176 + move-result v0
27178 + goto :goto_15
27179 +.end method
27181 +.method public registerContentObserver(Landroid/database/ContentObserver;)V
27182 + .registers 3
27184 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27186 + if-eqz v0, :cond_9
27188 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27190 + invoke-interface {v0, p1}, Landroid/database/Cursor;->registerContentObserver(Landroid/database/ContentObserver;)V
27192 + :cond_9
27193 + return-void
27194 +.end method
27196 +.method public registerDataSetObserver(Landroid/database/DataSetObserver;)V
27197 + .registers 3
27199 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27201 + if-eqz v0, :cond_9
27203 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27205 + invoke-interface {v0, p1}, Landroid/database/Cursor;->registerDataSetObserver(Landroid/database/DataSetObserver;)V
27207 + :cond_9
27208 + return-void
27209 +.end method
27211 +.method public requery()Z
27212 + .registers 2
27214 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27216 + if-eqz v0, :cond_b
27218 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27220 + invoke-interface {v0}, Landroid/database/Cursor;->requery()Z
27222 + move-result v0
27224 + :goto_a
27225 + return v0
27227 + :cond_b
27228 + const/4 v0, 0x0
27230 + goto :goto_a
27231 +.end method
27233 +.method public respond(Landroid/os/Bundle;)Landroid/os/Bundle;
27234 + .registers 3
27236 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27238 + if-eqz v0, :cond_b
27240 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27242 + invoke-interface {v0, p1}, Landroid/database/Cursor;->respond(Landroid/os/Bundle;)Landroid/os/Bundle;
27244 + move-result-object v0
27246 + :goto_a
27247 + return-object v0
27249 + :cond_b
27250 + new-instance v0, Landroid/os/Bundle;
27252 + invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
27254 + goto :goto_a
27255 +.end method
27257 +.method public setNotificationUri(Landroid/content/ContentResolver;Landroid/net/Uri;)V
27258 + .registers 4
27260 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27262 + if-eqz v0, :cond_9
27264 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27266 + invoke-interface {v0, p1, p2}, Landroid/database/Cursor;->setNotificationUri(Landroid/content/ContentResolver;Landroid/net/Uri;)V
27268 + :cond_9
27269 + return-void
27270 +.end method
27272 +.method public unregisterContentObserver(Landroid/database/ContentObserver;)V
27273 + .registers 3
27275 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27277 + if-eqz v0, :cond_9
27279 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27281 + invoke-interface {v0, p1}, Landroid/database/Cursor;->unregisterContentObserver(Landroid/database/ContentObserver;)V
27283 + :cond_9
27284 + return-void
27285 +.end method
27287 +.method public unregisterDataSetObserver(Landroid/database/DataSetObserver;)V
27288 + .registers 3
27290 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27292 + if-eqz v0, :cond_9
27294 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27296 + invoke-interface {v0, p1}, Landroid/database/Cursor;->unregisterDataSetObserver(Landroid/database/DataSetObserver;)V
27298 + :cond_9
27299 + return-void
27300 +.end method
27301 diff -Npru stock-framework/smali/android/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater.smali opd-framework/smali/android/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater.smali
27302 --- stock-framework/smali/android/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater.smali 1969-12-31 18:00:00.000000000 -0600
27303 +++ opd-framework/smali/android/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater.smali 2013-01-08 23:29:43.616287638 -0600
27304 @@ -0,0 +1,134 @@
27305 +.class Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;
27306 +.super Ljava/lang/Thread;
27307 +.source "PrivacyLocationManager.java"
27310 +# annotations
27311 +.annotation system Ldalvik/annotation/EnclosingClass;
27312 + value = Landroid/privacy/surrogate/PrivacyLocationManager;
27313 +.end annotation
27315 +.annotation system Ldalvik/annotation/InnerClass;
27316 + accessFlags = 0x2
27317 + name = "PrivacyLocationUpdater"
27318 +.end annotation
27321 +# instance fields
27322 +.field private intent:Landroid/app/PendingIntent;
27324 +.field private latitude:D
27326 +.field private listener:Landroid/location/LocationListener;
27328 +.field private longitude:D
27330 +.field private provider:Ljava/lang/String;
27332 +.field final synthetic this$0:Landroid/privacy/surrogate/PrivacyLocationManager;
27335 +# direct methods
27336 +.method public constructor <init>(Landroid/privacy/surrogate/PrivacyLocationManager;Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;DD)V
27337 + .registers 9
27339 + iput-object p1, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->this$0:Landroid/privacy/surrogate/PrivacyLocationManager;
27341 + invoke-direct {p0}, Ljava/lang/Thread;-><init>()V
27343 + iput-object p2, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->provider:Ljava/lang/String;
27345 + iput-object p3, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->listener:Landroid/location/LocationListener;
27347 + iput-object p4, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->intent:Landroid/app/PendingIntent;
27349 + iput-wide p5, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->latitude:D
27351 + iput-wide p7, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->longitude:D
27353 + return-void
27354 +.end method
27357 +# virtual methods
27358 +.method public run()V
27359 + .registers 8
27361 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->provider:Ljava/lang/String;
27363 + if-eqz v3, :cond_43
27365 + new-instance v2, Landroid/location/Location;
27367 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->provider:Ljava/lang/String;
27369 + invoke-direct {v2, v3}, Landroid/location/Location;-><init>(Ljava/lang/String;)V
27371 + iget-wide v3, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->latitude:D
27373 + invoke-virtual {v2, v3, v4}, Landroid/location/Location;->setLatitude(D)V
27375 + iget-wide v3, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->longitude:D
27377 + invoke-virtual {v2, v3, v4}, Landroid/location/Location;->setLongitude(D)V
27379 + const/4 v1, 0x0
27381 + :goto_16
27382 + const/4 v3, 0x5
27384 + if-ge v1, v3, :cond_43
27386 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->listener:Landroid/location/LocationListener;
27388 + if-eqz v3, :cond_34
27390 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->listener:Landroid/location/LocationListener;
27392 + invoke-interface {v3, v2}, Landroid/location/LocationListener;->onLocationChanged(Landroid/location/Location;)V
27394 + :cond_22
27395 + :goto_22
27396 + :try_start_22
27397 + invoke-static {}, Ljava/lang/Math;->random()D
27399 + move-result-wide v3
27401 + const-wide v5, 0x408f400000000000L
27403 + mul-double/2addr v3, v5
27405 + double-to-int v3, v3
27407 + int-to-long v3, v3
27409 + invoke-static {v3, v4}, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->sleep(J)V
27410 + :try_end_31
27411 + .catch Ljava/lang/InterruptedException; {:try_start_22 .. :try_end_31} :catch_3e
27413 + :goto_31
27414 + add-int/lit8 v1, v1, 0x1
27416 + goto :goto_16
27418 + :cond_34
27419 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->intent:Landroid/app/PendingIntent;
27421 + if-eqz v3, :cond_22
27423 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->intent:Landroid/app/PendingIntent;
27425 + invoke-virtual {v3}, Landroid/app/PendingIntent;->cancel()V
27427 + goto :goto_22
27429 + :catch_3e
27430 + move-exception v0
27432 + invoke-virtual {v0}, Ljava/lang/InterruptedException;->printStackTrace()V
27434 + goto :goto_31
27436 + :cond_43
27437 + return-void
27438 +.end method
27439 diff -Npru stock-framework/smali/android/privacy/surrogate/PrivacyLocationManager.smali opd-framework/smali/android/privacy/surrogate/PrivacyLocationManager.smali
27440 --- stock-framework/smali/android/privacy/surrogate/PrivacyLocationManager.smali 1969-12-31 18:00:00.000000000 -0600
27441 +++ opd-framework/smali/android/privacy/surrogate/PrivacyLocationManager.smali 2013-01-08 23:29:43.620287659 -0600
27442 @@ -0,0 +1,2091 @@
27443 +.class public final Landroid/privacy/surrogate/PrivacyLocationManager;
27444 +.super Landroid/location/LocationManager;
27445 +.source "PrivacyLocationManager.java"
27448 +# annotations
27449 +.annotation system Ldalvik/annotation/MemberClasses;
27450 + value = {
27451 + Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;
27453 +.end annotation
27456 +# static fields
27457 +.field private static final CUSTOM_LOCATION_UPDATE_COUNT:I = 0x5
27459 +.field private static final TAG:Ljava/lang/String; = "PrivacyLocationManager"
27462 +# instance fields
27463 +.field private context:Landroid/content/Context;
27465 +.field private lock:Ljava/lang/Object;
27467 +.field private pSetMan:Landroid/privacy/PrivacySettingsManager;
27470 +# direct methods
27471 +.method public constructor <init>(Landroid/location/ILocationManager;Landroid/content/Context;)V
27472 + .registers 5
27474 + invoke-direct {p0, p2, p1}, Landroid/location/LocationManager;-><init>(Landroid/content/Context;Landroid/location/ILocationManager;)V
27476 + new-instance v0, Ljava/lang/Object;
27478 + invoke-direct {v0}, Ljava/lang/Object;-><init>()V
27480 + iput-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->lock:Ljava/lang/Object;
27482 + iput-object p2, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->context:Landroid/content/Context;
27484 + new-instance v0, Landroid/privacy/PrivacySettingsManager;
27486 + const-string/jumbo v1, "privacy"
27488 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
27490 + move-result-object v1
27492 + invoke-static {v1}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
27494 + move-result-object v1
27496 + invoke-direct {v0, p2, v1}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
27498 + iput-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
27500 + return-void
27501 +.end method
27503 +.method private requestLocationUpdates(Landroid/location/Criteria;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
27504 + .registers 7
27506 + const/4 v2, 0x3
27508 + if-nez p1, :cond_5
27510 + const/4 v0, 0x0
27512 + :goto_4
27513 + return v0
27515 + :cond_5
27516 + invoke-virtual {p1}, Landroid/location/Criteria;->getAccuracy()I
27518 + move-result v0
27520 + const/4 v1, 0x1
27522 + if-eq v0, v1, :cond_24
27524 + invoke-virtual {p1}, Landroid/location/Criteria;->getBearingAccuracy()I
27526 + move-result v0
27528 + if-eq v0, v2, :cond_24
27530 + invoke-virtual {p1}, Landroid/location/Criteria;->getHorizontalAccuracy()I
27532 + move-result v0
27534 + if-eq v0, v2, :cond_24
27536 + invoke-virtual {p1}, Landroid/location/Criteria;->getVerticalAccuracy()I
27538 + move-result v0
27540 + if-eq v0, v2, :cond_24
27542 + invoke-virtual {p1}, Landroid/location/Criteria;->getSpeedAccuracy()I
27544 + move-result v0
27546 + if-ne v0, v2, :cond_2b
27548 + :cond_24
27549 + const-string v0, "gps"
27551 + invoke-direct {p0, v0, p2, p3}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
27553 + move-result v0
27555 + goto :goto_4
27557 + :cond_2b
27558 + const-string/jumbo v0, "network"
27560 + invoke-direct {p0, v0, p2, p3}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
27562 + move-result v0
27564 + goto :goto_4
27565 +.end method
27567 +.method private requestLocationUpdates(Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
27568 + .registers 24
27570 + move-object/from16 v0, p0
27572 + iget-object v0, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->lock:Ljava/lang/Object;
27574 + move-object/from16 v19, v0
27576 + monitor-enter v19
27578 + :try_start_7
27579 + move-object/from16 v0, p0
27581 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->context:Landroid/content/Context;
27583 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
27585 + move-result-object v2
27587 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
27589 + move-result v3
27591 + move-object/from16 v0, p0
27593 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
27595 + invoke-virtual {v1, v2, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
27597 + move-result-object v7
27599 + const/16 v18, 0x0
27601 + if-eqz v7, :cond_239
27603 + const-string v1, "gps"
27605 + move-object/from16 v0, p1
27607 + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
27609 + move-result v1
27611 + if-eqz v1, :cond_111
27613 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
27615 + move-result v1
27617 + packed-switch v1, :pswitch_data_25e
27619 + :cond_30
27620 + :goto_30
27621 + monitor-exit v19
27623 + return v18
27625 + :pswitch_32
27626 + move-object/from16 v0, p0
27628 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
27630 + const/4 v4, 0x0
27632 + const-string v5, "locationGPS"
27634 + const/4 v6, 0x0
27636 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
27638 + goto :goto_30
27640 + :catchall_3e
27641 + move-exception v1
27643 + monitor-exit v19
27644 + :try_end_40
27645 + .catchall {:try_start_7 .. :try_end_40} :catchall_3e
27647 + throw v1
27649 + :pswitch_41
27650 + if-eqz p3, :cond_46
27652 + :try_start_43
27653 + invoke-virtual/range {p3 .. p3}, Landroid/app/PendingIntent;->cancel()V
27655 + :cond_46
27656 + const/16 v18, 0x1
27658 + move-object/from16 v0, p0
27660 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
27662 + const/4 v4, 0x1
27664 + const-string v5, "locationGPS"
27666 + const/4 v6, 0x0
27668 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
27669 + :try_end_53
27670 + .catchall {:try_start_43 .. :try_end_53} :catchall_3e
27672 + goto :goto_30
27674 + :pswitch_54
27675 + :try_start_54
27676 + new-instance v8, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;
27678 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationGpsLat()Ljava/lang/String;
27680 + move-result-object v1
27682 + invoke-static {v1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
27684 + move-result-wide v13
27686 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationGpsLon()Ljava/lang/String;
27688 + move-result-object v1
27690 + invoke-static {v1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
27692 + move-result-wide v15
27694 + move-object/from16 v9, p0
27696 + move-object/from16 v10, p1
27698 + move-object/from16 v11, p2
27700 + move-object/from16 v12, p3
27702 + invoke-direct/range {v8 .. v16}, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;-><init>(Landroid/privacy/surrogate/PrivacyLocationManager;Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;DD)V
27704 + invoke-virtual {v8}, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->start()V
27705 + :try_end_74
27706 + .catchall {:try_start_54 .. :try_end_74} :catchall_3e
27707 + .catch Ljava/lang/NumberFormatException; {:try_start_54 .. :try_end_74} :catch_a6
27709 + const/16 v18, 0x1
27711 + :goto_76
27712 + :try_start_76
27713 + move-object/from16 v0, p0
27715 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
27717 + const/4 v4, 0x2
27719 + const-string v5, "locationGPS"
27721 + new-instance v6, Ljava/lang/StringBuilder;
27723 + invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
27725 + const-string v8, "Lat: "
27727 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
27729 + move-result-object v6
27731 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationGpsLat()Ljava/lang/String;
27733 + move-result-object v8
27735 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
27737 + move-result-object v6
27739 + const-string v8, " Lon: "
27741 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
27743 + move-result-object v6
27745 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationGpsLon()Ljava/lang/String;
27747 + move-result-object v8
27749 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
27751 + move-result-object v6
27753 + invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
27755 + move-result-object v6
27757 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
27759 + goto :goto_30
27761 + :catch_a6
27762 + move-exception v17
27764 + const-string v1, "PrivacyLocationManager"
27766 + const-string/jumbo v4, "requestLocationUpdates: invalid coordinates"
27768 + invoke-static {v1, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
27769 + :try_end_af
27770 + .catchall {:try_start_76 .. :try_end_af} :catchall_3e
27772 + const/16 v18, 0x1
27774 + goto :goto_76
27776 + :pswitch_b2
27777 + :try_start_b2
27778 + new-instance v8, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;
27780 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationGpsLat()Ljava/lang/String;
27782 + move-result-object v1
27784 + invoke-static {v1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
27786 + move-result-wide v13
27788 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationGpsLon()Ljava/lang/String;
27790 + move-result-object v1
27792 + invoke-static {v1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
27794 + move-result-wide v15
27796 + move-object/from16 v9, p0
27798 + move-object/from16 v10, p1
27800 + move-object/from16 v11, p2
27802 + move-object/from16 v12, p3
27804 + invoke-direct/range {v8 .. v16}, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;-><init>(Landroid/privacy/surrogate/PrivacyLocationManager;Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;DD)V
27806 + invoke-virtual {v8}, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->start()V
27807 + :try_end_d2
27808 + .catchall {:try_start_b2 .. :try_end_d2} :catchall_3e
27809 + .catch Ljava/lang/NumberFormatException; {:try_start_b2 .. :try_end_d2} :catch_105
27811 + const/16 v18, 0x1
27813 + :goto_d4
27814 + :try_start_d4
27815 + move-object/from16 v0, p0
27817 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
27819 + const/4 v4, 0x3
27821 + const-string v5, "locationGPS"
27823 + new-instance v6, Ljava/lang/StringBuilder;
27825 + invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
27827 + const-string v8, "Lat: "
27829 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
27831 + move-result-object v6
27833 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationGpsLat()Ljava/lang/String;
27835 + move-result-object v8
27837 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
27839 + move-result-object v6
27841 + const-string v8, " Lon: "
27843 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
27845 + move-result-object v6
27847 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationGpsLon()Ljava/lang/String;
27849 + move-result-object v8
27851 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
27853 + move-result-object v6
27855 + invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
27857 + move-result-object v6
27859 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
27861 + goto/16 :goto_30
27863 + :catch_105
27864 + move-exception v17
27866 + const-string v1, "PrivacyLocationManager"
27868 + const-string/jumbo v4, "requestLocationUpdates: invalid coordinates"
27870 + invoke-static {v1, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
27872 + const/16 v18, 0x1
27874 + goto :goto_d4
27876 + :cond_111
27877 + const-string/jumbo v1, "network"
27879 + move-object/from16 v0, p1
27881 + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
27883 + move-result v1
27885 + if-eqz v1, :cond_204
27887 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
27889 + move-result v1
27891 + packed-switch v1, :pswitch_data_26a
27893 + goto/16 :goto_30
27895 + :pswitch_125
27896 + move-object/from16 v0, p0
27898 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
27900 + const/4 v4, 0x0
27902 + const-string v5, "locationNetwork"
27904 + const/4 v6, 0x0
27906 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
27908 + goto/16 :goto_30
27910 + :pswitch_132
27911 + if-eqz p3, :cond_137
27913 + invoke-virtual/range {p3 .. p3}, Landroid/app/PendingIntent;->cancel()V
27915 + :cond_137
27916 + const/16 v18, 0x1
27918 + move-object/from16 v0, p0
27920 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
27922 + const/4 v4, 0x1
27924 + const-string v5, "locationNetwork"
27926 + const/4 v6, 0x0
27928 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
27929 + :try_end_144
27930 + .catchall {:try_start_d4 .. :try_end_144} :catchall_3e
27932 + goto/16 :goto_30
27934 + :pswitch_146
27935 + :try_start_146
27936 + new-instance v8, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;
27938 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationNetworkLat()Ljava/lang/String;
27940 + move-result-object v1
27942 + invoke-static {v1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
27944 + move-result-wide v13
27946 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationNetworkLon()Ljava/lang/String;
27948 + move-result-object v1
27950 + invoke-static {v1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
27952 + move-result-wide v15
27954 + move-object/from16 v9, p0
27956 + move-object/from16 v10, p1
27958 + move-object/from16 v11, p2
27960 + move-object/from16 v12, p3
27962 + invoke-direct/range {v8 .. v16}, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;-><init>(Landroid/privacy/surrogate/PrivacyLocationManager;Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;DD)V
27964 + invoke-virtual {v8}, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->start()V
27965 + :try_end_166
27966 + .catchall {:try_start_146 .. :try_end_166} :catchall_3e
27967 + .catch Ljava/lang/NumberFormatException; {:try_start_146 .. :try_end_166} :catch_199
27969 + const/16 v18, 0x1
27971 + :goto_168
27972 + :try_start_168
27973 + move-object/from16 v0, p0
27975 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
27977 + const/4 v4, 0x2
27979 + const-string v5, "locationNetwork"
27981 + new-instance v6, Ljava/lang/StringBuilder;
27983 + invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
27985 + const-string v8, "Lat: "
27987 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
27989 + move-result-object v6
27991 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationNetworkLat()Ljava/lang/String;
27993 + move-result-object v8
27995 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
27997 + move-result-object v6
27999 + const-string v8, " Lon: "
28001 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28003 + move-result-object v6
28005 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationNetworkLon()Ljava/lang/String;
28007 + move-result-object v8
28009 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28011 + move-result-object v6
28013 + invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
28015 + move-result-object v6
28017 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28019 + goto/16 :goto_30
28021 + :catch_199
28022 + move-exception v17
28024 + const-string v1, "PrivacyLocationManager"
28026 + const-string/jumbo v4, "requestLocationUpdates: invalid coordinates"
28028 + invoke-static {v1, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
28029 + :try_end_1a2
28030 + .catchall {:try_start_168 .. :try_end_1a2} :catchall_3e
28032 + const/16 v18, 0x1
28034 + goto :goto_168
28036 + :pswitch_1a5
28037 + :try_start_1a5
28038 + new-instance v8, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;
28040 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationNetworkLat()Ljava/lang/String;
28042 + move-result-object v1
28044 + invoke-static {v1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
28046 + move-result-wide v13
28048 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationNetworkLon()Ljava/lang/String;
28050 + move-result-object v1
28052 + invoke-static {v1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
28054 + move-result-wide v15
28056 + move-object/from16 v9, p0
28058 + move-object/from16 v10, p1
28060 + move-object/from16 v11, p2
28062 + move-object/from16 v12, p3
28064 + invoke-direct/range {v8 .. v16}, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;-><init>(Landroid/privacy/surrogate/PrivacyLocationManager;Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;DD)V
28066 + invoke-virtual {v8}, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->start()V
28067 + :try_end_1c5
28068 + .catchall {:try_start_1a5 .. :try_end_1c5} :catchall_3e
28069 + .catch Ljava/lang/NumberFormatException; {:try_start_1a5 .. :try_end_1c5} :catch_1f8
28071 + const/16 v18, 0x1
28073 + :goto_1c7
28074 + :try_start_1c7
28075 + move-object/from16 v0, p0
28077 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28079 + const/4 v4, 0x3
28081 + const-string v5, "locationNetwork"
28083 + new-instance v6, Ljava/lang/StringBuilder;
28085 + invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
28087 + const-string v8, "Lat: "
28089 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28091 + move-result-object v6
28093 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationNetworkLat()Ljava/lang/String;
28095 + move-result-object v8
28097 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28099 + move-result-object v6
28101 + const-string v8, " Lon: "
28103 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28105 + move-result-object v6
28107 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationNetworkLon()Ljava/lang/String;
28109 + move-result-object v8
28111 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28113 + move-result-object v6
28115 + invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
28117 + move-result-object v6
28119 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28121 + goto/16 :goto_30
28123 + :catch_1f8
28124 + move-exception v17
28126 + const-string v1, "PrivacyLocationManager"
28128 + const-string/jumbo v4, "requestLocationUpdates: invalid coordinates"
28130 + invoke-static {v1, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
28132 + const/16 v18, 0x1
28134 + goto :goto_1c7
28136 + :cond_204
28137 + const-string/jumbo v1, "passive"
28139 + move-object/from16 v0, p1
28141 + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
28143 + move-result v1
28145 + if-eqz v1, :cond_30
28147 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
28149 + move-result v1
28151 + if-nez v1, :cond_22a
28153 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
28155 + move-result v1
28157 + if-nez v1, :cond_22a
28159 + const/16 v18, 0x0
28161 + move-object/from16 v0, p0
28163 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28165 + const/4 v4, 0x0
28167 + const-string v5, "locationGPS"
28169 + const/4 v6, 0x0
28171 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28173 + goto/16 :goto_30
28175 + :cond_22a
28176 + const/16 v18, 0x1
28178 + move-object/from16 v0, p0
28180 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28182 + const/4 v4, 0x1
28184 + const-string v5, "locationGPS"
28186 + const/4 v6, 0x0
28188 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28190 + goto/16 :goto_30
28192 + :cond_239
28193 + const-string/jumbo v1, "network"
28195 + move-object/from16 v0, p1
28197 + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
28199 + move-result v1
28201 + if-eqz v1, :cond_251
28203 + move-object/from16 v0, p0
28205 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28207 + const/4 v4, 0x0
28209 + const-string v5, "locationNetwork"
28211 + const/4 v6, 0x0
28213 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28215 + goto/16 :goto_30
28217 + :cond_251
28218 + move-object/from16 v0, p0
28220 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28222 + const/4 v4, 0x0
28224 + const-string v5, "locationGPS"
28226 + const/4 v6, 0x0
28228 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28229 + :try_end_25c
28230 + .catchall {:try_start_1c7 .. :try_end_25c} :catchall_3e
28232 + goto/16 :goto_30
28234 + :pswitch_data_25e
28235 + .packed-switch 0x0
28236 + :pswitch_32
28237 + :pswitch_41
28238 + :pswitch_54
28239 + :pswitch_b2
28240 + .end packed-switch
28242 + :pswitch_data_26a
28243 + .packed-switch 0x0
28244 + :pswitch_125
28245 + :pswitch_132
28246 + :pswitch_146
28247 + :pswitch_1a5
28248 + .end packed-switch
28249 +.end method
28252 +# virtual methods
28253 +.method public addNmeaListener(Landroid/location/GpsStatus$NmeaListener;)Z
28254 + .registers 10
28256 + const/4 v5, 0x0
28258 + const/4 v7, 0x0
28260 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->context:Landroid/content/Context;
28262 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
28264 + move-result-object v1
28266 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
28268 + move-result v2
28270 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28272 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
28274 + move-result-object v6
28276 + if-eqz v6, :cond_24
28278 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
28280 + move-result v0
28282 + if-eqz v0, :cond_24
28284 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28286 + const/4 v3, 0x1
28288 + const-string v4, "locationGPS"
28290 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28292 + move v0, v7
28294 + :goto_23
28295 + return v0
28297 + :cond_24
28298 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28300 + const-string v4, "locationGPS"
28302 + move v3, v7
28304 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28306 + invoke-super {p0, p1}, Landroid/location/LocationManager;->addNmeaListener(Landroid/location/GpsStatus$NmeaListener;)Z
28308 + move-result v0
28310 + goto :goto_23
28311 +.end method
28313 +.method public getLastKnownLocation(Ljava/lang/String;)Landroid/location/Location;
28314 + .registers 14
28316 + const/4 v11, 0x3
28318 + const/4 v10, 0x2
28320 + const/4 v8, 0x1
28322 + const/4 v3, 0x0
28324 + const/4 v5, 0x0
28326 + if-nez p1, :cond_c
28328 + invoke-super {p0, p1}, Landroid/location/LocationManager;->getLastKnownLocation(Ljava/lang/String;)Landroid/location/Location;
28330 + move-result-object v7
28332 + :cond_b
28333 + :goto_b
28334 + return-object v7
28336 + :cond_c
28337 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->context:Landroid/content/Context;
28339 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
28341 + move-result-object v1
28343 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
28345 + move-result v2
28347 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28349 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
28351 + move-result-object v6
28353 + const/4 v7, 0x0
28355 + if-eqz v6, :cond_22c
28357 + const-string v0, "gps"
28359 + invoke-virtual {p1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
28361 + move-result v0
28363 + if-eqz v0, :cond_ff
28365 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
28367 + move-result v0
28369 + packed-switch v0, :pswitch_data_29a
28371 + goto :goto_b
28373 + :pswitch_2f
28374 + invoke-super {p0, p1}, Landroid/location/LocationManager;->getLastKnownLocation(Ljava/lang/String;)Landroid/location/Location;
28376 + move-result-object v7
28378 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28380 + const-string v4, "locationGPS"
28382 + if-eqz v7, :cond_5e
28384 + new-instance v5, Ljava/lang/StringBuilder;
28386 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
28388 + const-string v8, "Lat: "
28390 + invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28392 + move-result-object v5
28394 + invoke-virtual {v7}, Landroid/location/Location;->getLatitude()D
28396 + move-result-wide v8
28398 + invoke-virtual {v5, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28400 + move-result-object v5
28402 + const-string v8, " Lon: "
28404 + invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28406 + move-result-object v5
28408 + invoke-virtual {v7}, Landroid/location/Location;->getLongitude()D
28410 + move-result-wide v8
28412 + invoke-virtual {v5, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28414 + move-result-object v5
28416 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
28418 + move-result-object v5
28420 + :cond_5e
28421 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28423 + goto :goto_b
28425 + :pswitch_62
28426 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28428 + const-string v4, "locationGPS"
28430 + move v3, v8
28432 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28434 + goto :goto_b
28436 + :pswitch_6b
28437 + new-instance v7, Landroid/location/Location;
28439 + invoke-direct {v7, p1}, Landroid/location/Location;-><init>(Ljava/lang/String;)V
28441 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationGpsLat()Ljava/lang/String;
28443 + move-result-object v0
28445 + invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
28447 + move-result-wide v3
28449 + invoke-virtual {v7, v3, v4}, Landroid/location/Location;->setLatitude(D)V
28451 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationGpsLon()Ljava/lang/String;
28453 + move-result-object v0
28455 + invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
28457 + move-result-wide v3
28459 + invoke-virtual {v7, v3, v4}, Landroid/location/Location;->setLongitude(D)V
28461 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28463 + const-string v4, "locationGPS"
28465 + new-instance v3, Ljava/lang/StringBuilder;
28467 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
28469 + const-string v5, "Lat: "
28471 + invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28473 + move-result-object v3
28475 + invoke-virtual {v7}, Landroid/location/Location;->getLatitude()D
28477 + move-result-wide v8
28479 + invoke-virtual {v3, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28481 + move-result-object v3
28483 + const-string v5, " Lon: "
28485 + invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28487 + move-result-object v3
28489 + invoke-virtual {v7}, Landroid/location/Location;->getLongitude()D
28491 + move-result-wide v8
28493 + invoke-virtual {v3, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28495 + move-result-object v3
28497 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
28499 + move-result-object v5
28501 + move v3, v10
28503 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28505 + goto/16 :goto_b
28507 + :pswitch_b5
28508 + new-instance v7, Landroid/location/Location;
28510 + invoke-direct {v7, p1}, Landroid/location/Location;-><init>(Ljava/lang/String;)V
28512 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationGpsLat()Ljava/lang/String;
28514 + move-result-object v0
28516 + invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
28518 + move-result-wide v3
28520 + invoke-virtual {v7, v3, v4}, Landroid/location/Location;->setLatitude(D)V
28522 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationGpsLon()Ljava/lang/String;
28524 + move-result-object v0
28526 + invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
28528 + move-result-wide v3
28530 + invoke-virtual {v7, v3, v4}, Landroid/location/Location;->setLongitude(D)V
28532 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28534 + const-string v4, "locationGPS"
28536 + new-instance v3, Ljava/lang/StringBuilder;
28538 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
28540 + const-string v5, "Lat: "
28542 + invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28544 + move-result-object v3
28546 + invoke-virtual {v7}, Landroid/location/Location;->getLatitude()D
28548 + move-result-wide v8
28550 + invoke-virtual {v3, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28552 + move-result-object v3
28554 + const-string v5, " Lon: "
28556 + invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28558 + move-result-object v3
28560 + invoke-virtual {v7}, Landroid/location/Location;->getLongitude()D
28562 + move-result-wide v8
28564 + invoke-virtual {v3, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28566 + move-result-object v3
28568 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
28570 + move-result-object v5
28572 + move v3, v11
28574 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28576 + goto/16 :goto_b
28578 + :cond_ff
28579 + const-string/jumbo v0, "network"
28581 + invoke-virtual {p1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
28583 + move-result v0
28585 + if-eqz v0, :cond_1e3
28587 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
28589 + move-result v0
28591 + packed-switch v0, :pswitch_data_2a6
28593 + goto/16 :goto_b
28595 + :pswitch_111
28596 + invoke-super {p0, p1}, Landroid/location/LocationManager;->getLastKnownLocation(Ljava/lang/String;)Landroid/location/Location;
28598 + move-result-object v7
28600 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28602 + const-string v4, "locationNetwork"
28604 + if-eqz v7, :cond_140
28606 + new-instance v5, Ljava/lang/StringBuilder;
28608 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
28610 + const-string v8, "Lat: "
28612 + invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28614 + move-result-object v5
28616 + invoke-virtual {v7}, Landroid/location/Location;->getLatitude()D
28618 + move-result-wide v8
28620 + invoke-virtual {v5, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28622 + move-result-object v5
28624 + const-string v8, " Lon: "
28626 + invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28628 + move-result-object v5
28630 + invoke-virtual {v7}, Landroid/location/Location;->getLongitude()D
28632 + move-result-wide v8
28634 + invoke-virtual {v5, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28636 + move-result-object v5
28638 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
28640 + move-result-object v5
28642 + :cond_140
28643 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28645 + goto/16 :goto_b
28647 + :pswitch_145
28648 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28650 + const-string v4, "locationNetwork"
28652 + move v3, v8
28654 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28656 + goto/16 :goto_b
28658 + :pswitch_14f
28659 + new-instance v7, Landroid/location/Location;
28661 + invoke-direct {v7, p1}, Landroid/location/Location;-><init>(Ljava/lang/String;)V
28663 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkLat()Ljava/lang/String;
28665 + move-result-object v0
28667 + invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
28669 + move-result-wide v3
28671 + invoke-virtual {v7, v3, v4}, Landroid/location/Location;->setLatitude(D)V
28673 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkLon()Ljava/lang/String;
28675 + move-result-object v0
28677 + invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
28679 + move-result-wide v3
28681 + invoke-virtual {v7, v3, v4}, Landroid/location/Location;->setLongitude(D)V
28683 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28685 + const-string v4, "locationNetwork"
28687 + new-instance v3, Ljava/lang/StringBuilder;
28689 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
28691 + const-string v5, "Lat: "
28693 + invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28695 + move-result-object v3
28697 + invoke-virtual {v7}, Landroid/location/Location;->getLatitude()D
28699 + move-result-wide v8
28701 + invoke-virtual {v3, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28703 + move-result-object v3
28705 + const-string v5, " Lon: "
28707 + invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28709 + move-result-object v3
28711 + invoke-virtual {v7}, Landroid/location/Location;->getLongitude()D
28713 + move-result-wide v8
28715 + invoke-virtual {v3, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28717 + move-result-object v3
28719 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
28721 + move-result-object v5
28723 + move v3, v10
28725 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28727 + goto/16 :goto_b
28729 + :pswitch_199
28730 + new-instance v7, Landroid/location/Location;
28732 + invoke-direct {v7, p1}, Landroid/location/Location;-><init>(Ljava/lang/String;)V
28734 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkLat()Ljava/lang/String;
28736 + move-result-object v0
28738 + invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
28740 + move-result-wide v3
28742 + invoke-virtual {v7, v3, v4}, Landroid/location/Location;->setLatitude(D)V
28744 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkLon()Ljava/lang/String;
28746 + move-result-object v0
28748 + invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
28750 + move-result-wide v3
28752 + invoke-virtual {v7, v3, v4}, Landroid/location/Location;->setLongitude(D)V
28754 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28756 + const-string v4, "locationNetwork"
28758 + new-instance v3, Ljava/lang/StringBuilder;
28760 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
28762 + const-string v5, "Lat: "
28764 + invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28766 + move-result-object v3
28768 + invoke-virtual {v7}, Landroid/location/Location;->getLatitude()D
28770 + move-result-wide v8
28772 + invoke-virtual {v3, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28774 + move-result-object v3
28776 + const-string v5, " Lon: "
28778 + invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28780 + move-result-object v3
28782 + invoke-virtual {v7}, Landroid/location/Location;->getLongitude()D
28784 + move-result-wide v8
28786 + invoke-virtual {v3, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28788 + move-result-object v3
28790 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
28792 + move-result-object v5
28794 + move v3, v11
28796 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28798 + goto/16 :goto_b
28800 + :cond_1e3
28801 + const-string/jumbo v0, "passive"
28803 + invoke-virtual {p1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
28805 + move-result v0
28807 + if-eqz v0, :cond_b
28809 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
28811 + move-result v0
28813 + if-nez v0, :cond_b
28815 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
28817 + move-result v0
28819 + if-nez v0, :cond_b
28821 + invoke-super {p0, p1}, Landroid/location/LocationManager;->getLastKnownLocation(Ljava/lang/String;)Landroid/location/Location;
28823 + move-result-object v7
28825 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28827 + const-string v4, "locationGPS"
28829 + if-eqz v7, :cond_227
28831 + new-instance v5, Ljava/lang/StringBuilder;
28833 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
28835 + const-string v8, "Lat: "
28837 + invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28839 + move-result-object v5
28841 + invoke-virtual {v7}, Landroid/location/Location;->getLatitude()D
28843 + move-result-wide v8
28845 + invoke-virtual {v5, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28847 + move-result-object v5
28849 + const-string v8, " Lon: "
28851 + invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28853 + move-result-object v5
28855 + invoke-virtual {v7}, Landroid/location/Location;->getLongitude()D
28857 + move-result-wide v8
28859 + invoke-virtual {v5, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28861 + move-result-object v5
28863 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
28865 + move-result-object v5
28867 + :cond_227
28868 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28870 + goto/16 :goto_b
28872 + :cond_22c
28873 + invoke-super {p0, p1}, Landroid/location/LocationManager;->getLastKnownLocation(Ljava/lang/String;)Landroid/location/Location;
28875 + move-result-object v7
28877 + const-string/jumbo v0, "network"
28879 + invoke-virtual {p1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
28881 + move-result v0
28883 + if-eqz v0, :cond_269
28885 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28887 + const-string v4, "locationNetwork"
28889 + if-eqz v7, :cond_264
28891 + new-instance v5, Ljava/lang/StringBuilder;
28893 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
28895 + const-string v8, "Lat: "
28897 + invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28899 + move-result-object v5
28901 + invoke-virtual {v7}, Landroid/location/Location;->getLatitude()D
28903 + move-result-wide v8
28905 + invoke-virtual {v5, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28907 + move-result-object v5
28909 + const-string v8, " Lon: "
28911 + invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28913 + move-result-object v5
28915 + invoke-virtual {v7}, Landroid/location/Location;->getLongitude()D
28917 + move-result-wide v8
28919 + invoke-virtual {v5, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28921 + move-result-object v5
28923 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
28925 + move-result-object v5
28927 + :cond_264
28928 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28930 + goto/16 :goto_b
28932 + :cond_269
28933 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28935 + const-string v4, "locationGPS"
28937 + if-eqz v7, :cond_294
28939 + new-instance v5, Ljava/lang/StringBuilder;
28941 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
28943 + const-string v8, "Lat: "
28945 + invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28947 + move-result-object v5
28949 + invoke-virtual {v7}, Landroid/location/Location;->getLatitude()D
28951 + move-result-wide v8
28953 + invoke-virtual {v5, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28955 + move-result-object v5
28957 + const-string v8, " Lon: "
28959 + invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28961 + move-result-object v5
28963 + invoke-virtual {v7}, Landroid/location/Location;->getLongitude()D
28965 + move-result-wide v8
28967 + invoke-virtual {v5, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28969 + move-result-object v5
28971 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
28973 + move-result-object v5
28975 + :cond_294
28976 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28978 + goto/16 :goto_b
28980 + nop
28982 + :pswitch_data_29a
28983 + .packed-switch 0x0
28984 + :pswitch_2f
28985 + :pswitch_62
28986 + :pswitch_6b
28987 + :pswitch_b5
28988 + .end packed-switch
28990 + :pswitch_data_2a6
28991 + .packed-switch 0x0
28992 + :pswitch_111
28993 + :pswitch_145
28994 + :pswitch_14f
28995 + :pswitch_199
28996 + .end packed-switch
28997 +.end method
28999 +.method public getProvider(Ljava/lang/String;)Landroid/location/LocationProvider;
29000 + .registers 7
29002 + if-nez p1, :cond_7
29004 + invoke-super {p0, p1}, Landroid/location/LocationManager;->getProvider(Ljava/lang/String;)Landroid/location/LocationProvider;
29006 + move-result-object v0
29008 + :cond_6
29009 + :goto_6
29010 + return-object v0
29012 + :cond_7
29013 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29015 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->context:Landroid/content/Context;
29017 + invoke-virtual {v3}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
29019 + move-result-object v3
29021 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
29023 + move-result v4
29025 + invoke-virtual {v2, v3, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
29027 + move-result-object v1
29029 + const/4 v0, 0x0
29031 + if-eqz v1, :cond_5f
29033 + const-string v2, "gps"
29035 + invoke-virtual {p1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
29037 + move-result v2
29039 + if-eqz v2, :cond_2f
29041 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
29043 + move-result v2
29045 + packed-switch v2, :pswitch_data_64
29047 + :pswitch_29
29048 + goto :goto_6
29050 + :pswitch_2a
29051 + invoke-super {p0, p1}, Landroid/location/LocationManager;->getProvider(Ljava/lang/String;)Landroid/location/LocationProvider;
29053 + move-result-object v0
29055 + goto :goto_6
29057 + :cond_2f
29058 + const-string/jumbo v2, "network"
29060 + invoke-virtual {p1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
29062 + move-result v2
29064 + if-eqz v2, :cond_45
29066 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
29068 + move-result v2
29070 + packed-switch v2, :pswitch_data_70
29072 + :pswitch_3f
29073 + goto :goto_6
29075 + :pswitch_40
29076 + invoke-super {p0, p1}, Landroid/location/LocationManager;->getProvider(Ljava/lang/String;)Landroid/location/LocationProvider;
29078 + move-result-object v0
29080 + goto :goto_6
29082 + :cond_45
29083 + const-string/jumbo v2, "passive"
29085 + invoke-virtual {p1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
29087 + move-result v2
29089 + if-eqz v2, :cond_6
29091 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
29093 + move-result v2
29095 + if-eqz v2, :cond_5a
29097 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
29099 + move-result v2
29101 + if-nez v2, :cond_6
29103 + :cond_5a
29104 + invoke-super {p0, p1}, Landroid/location/LocationManager;->getProvider(Ljava/lang/String;)Landroid/location/LocationProvider;
29106 + move-result-object v0
29108 + goto :goto_6
29110 + :cond_5f
29111 + invoke-super {p0, p1}, Landroid/location/LocationManager;->getProvider(Ljava/lang/String;)Landroid/location/LocationProvider;
29113 + move-result-object v0
29115 + goto :goto_6
29117 + :pswitch_data_64
29118 + .packed-switch 0x0
29119 + :pswitch_2a
29120 + :pswitch_29
29121 + :pswitch_2a
29122 + :pswitch_2a
29123 + .end packed-switch
29125 + :pswitch_data_70
29126 + .packed-switch 0x0
29127 + :pswitch_40
29128 + :pswitch_3f
29129 + :pswitch_40
29130 + :pswitch_40
29131 + .end packed-switch
29132 +.end method
29134 +.method public isProviderEnabled(Ljava/lang/String;)Z
29135 + .registers 7
29137 + if-nez p1, :cond_7
29139 + invoke-super {p0, p1}, Landroid/location/LocationManager;->isProviderEnabled(Ljava/lang/String;)Z
29141 + move-result v0
29143 + :cond_6
29144 + :goto_6
29145 + :pswitch_6
29146 + return v0
29148 + :cond_7
29149 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29151 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->context:Landroid/content/Context;
29153 + invoke-virtual {v3}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
29155 + move-result-object v3
29157 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
29159 + move-result v4
29161 + invoke-virtual {v2, v3, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
29163 + move-result-object v1
29165 + const/4 v0, 0x0
29167 + if-eqz v1, :cond_65
29169 + const-string v2, "gps"
29171 + invoke-virtual {p1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
29173 + move-result v2
29175 + if-eqz v2, :cond_31
29177 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
29179 + move-result v2
29181 + packed-switch v2, :pswitch_data_6a
29183 + goto :goto_6
29185 + :pswitch_2a
29186 + invoke-super {p0, p1}, Landroid/location/LocationManager;->isProviderEnabled(Ljava/lang/String;)Z
29188 + move-result v0
29190 + goto :goto_6
29192 + :pswitch_2f
29193 + const/4 v0, 0x1
29195 + goto :goto_6
29197 + :cond_31
29198 + const-string/jumbo v2, "network"
29200 + invoke-virtual {p1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
29202 + move-result v2
29204 + if-eqz v2, :cond_49
29206 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
29208 + move-result v2
29210 + packed-switch v2, :pswitch_data_76
29212 + goto :goto_6
29214 + :pswitch_42
29215 + invoke-super {p0, p1}, Landroid/location/LocationManager;->isProviderEnabled(Ljava/lang/String;)Z
29217 + move-result v0
29219 + goto :goto_6
29221 + :pswitch_47
29222 + const/4 v0, 0x1
29224 + goto :goto_6
29226 + :cond_49
29227 + const-string/jumbo v2, "passive"
29229 + invoke-virtual {p1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
29231 + move-result v2
29233 + if-eqz v2, :cond_6
29235 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
29237 + move-result v2
29239 + if-eqz v2, :cond_5e
29241 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
29243 + move-result v2
29245 + if-nez v2, :cond_63
29247 + :cond_5e
29248 + invoke-super {p0, p1}, Landroid/location/LocationManager;->isProviderEnabled(Ljava/lang/String;)Z
29250 + move-result v0
29252 + goto :goto_6
29254 + :cond_63
29255 + const/4 v0, 0x0
29257 + goto :goto_6
29259 + :cond_65
29260 + invoke-super {p0, p1}, Landroid/location/LocationManager;->isProviderEnabled(Ljava/lang/String;)Z
29262 + move-result v0
29264 + goto :goto_6
29266 + :pswitch_data_6a
29267 + .packed-switch 0x0
29268 + :pswitch_2a
29269 + :pswitch_6
29270 + :pswitch_2f
29271 + :pswitch_2f
29272 + .end packed-switch
29274 + :pswitch_data_76
29275 + .packed-switch 0x0
29276 + :pswitch_42
29277 + :pswitch_6
29278 + :pswitch_47
29279 + :pswitch_47
29280 + .end packed-switch
29281 +.end method
29283 +.method public requestLocationUpdates(JFLandroid/location/Criteria;Landroid/app/PendingIntent;)V
29284 + .registers 7
29286 + if-eqz p4, :cond_4
29288 + if-nez p5, :cond_8
29290 + :cond_4
29291 + invoke-super/range {p0 .. p5}, Landroid/location/LocationManager;->requestLocationUpdates(JFLandroid/location/Criteria;Landroid/app/PendingIntent;)V
29293 + :cond_7
29294 + :goto_7
29295 + return-void
29297 + :cond_8
29298 + const/4 v0, 0x0
29300 + invoke-direct {p0, p4, v0, p5}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Landroid/location/Criteria;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
29302 + move-result v0
29304 + if-nez v0, :cond_7
29306 + invoke-super/range {p0 .. p5}, Landroid/location/LocationManager;->requestLocationUpdates(JFLandroid/location/Criteria;Landroid/app/PendingIntent;)V
29308 + goto :goto_7
29309 +.end method
29311 +.method public requestLocationUpdates(JFLandroid/location/Criteria;Landroid/location/LocationListener;Landroid/os/Looper;)V
29312 + .registers 8
29314 + if-eqz p4, :cond_4
29316 + if-nez p5, :cond_8
29318 + :cond_4
29319 + invoke-super/range {p0 .. p6}, Landroid/location/LocationManager;->requestLocationUpdates(JFLandroid/location/Criteria;Landroid/location/LocationListener;Landroid/os/Looper;)V
29321 + :cond_7
29322 + :goto_7
29323 + return-void
29325 + :cond_8
29326 + const/4 v0, 0x0
29328 + invoke-direct {p0, p4, p5, v0}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Landroid/location/Criteria;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
29330 + move-result v0
29332 + if-nez v0, :cond_7
29334 + invoke-super/range {p0 .. p6}, Landroid/location/LocationManager;->requestLocationUpdates(JFLandroid/location/Criteria;Landroid/location/LocationListener;Landroid/os/Looper;)V
29336 + goto :goto_7
29337 +.end method
29339 +.method public requestLocationUpdates(Ljava/lang/String;JFLandroid/app/PendingIntent;)V
29340 + .registers 7
29342 + if-eqz p1, :cond_4
29344 + if-nez p5, :cond_8
29346 + :cond_4
29347 + invoke-super/range {p0 .. p5}, Landroid/location/LocationManager;->requestLocationUpdates(Ljava/lang/String;JFLandroid/app/PendingIntent;)V
29349 + :cond_7
29350 + :goto_7
29351 + return-void
29353 + :cond_8
29354 + const/4 v0, 0x0
29356 + invoke-direct {p0, p1, v0, p5}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
29358 + move-result v0
29360 + if-nez v0, :cond_7
29362 + invoke-super/range {p0 .. p5}, Landroid/location/LocationManager;->requestLocationUpdates(Ljava/lang/String;JFLandroid/app/PendingIntent;)V
29364 + goto :goto_7
29365 +.end method
29367 +.method public requestLocationUpdates(Ljava/lang/String;JFLandroid/location/LocationListener;)V
29368 + .registers 7
29370 + if-eqz p1, :cond_4
29372 + if-nez p5, :cond_8
29374 + :cond_4
29375 + invoke-super/range {p0 .. p5}, Landroid/location/LocationManager;->requestLocationUpdates(Ljava/lang/String;JFLandroid/location/LocationListener;)V
29377 + :cond_7
29378 + :goto_7
29379 + return-void
29381 + :cond_8
29382 + const/4 v0, 0x0
29384 + invoke-direct {p0, p1, p5, v0}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
29386 + move-result v0
29388 + if-nez v0, :cond_7
29390 + invoke-super/range {p0 .. p5}, Landroid/location/LocationManager;->requestLocationUpdates(Ljava/lang/String;JFLandroid/location/LocationListener;)V
29392 + goto :goto_7
29393 +.end method
29395 +.method public requestLocationUpdates(Ljava/lang/String;JFLandroid/location/LocationListener;Landroid/os/Looper;)V
29396 + .registers 8
29398 + if-eqz p1, :cond_4
29400 + if-nez p5, :cond_8
29402 + :cond_4
29403 + invoke-super/range {p0 .. p6}, Landroid/location/LocationManager;->requestLocationUpdates(Ljava/lang/String;JFLandroid/location/LocationListener;Landroid/os/Looper;)V
29405 + :cond_7
29406 + :goto_7
29407 + return-void
29409 + :cond_8
29410 + const/4 v0, 0x0
29412 + invoke-direct {p0, p1, p5, v0}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
29414 + move-result v0
29416 + if-nez v0, :cond_7
29418 + invoke-super/range {p0 .. p6}, Landroid/location/LocationManager;->requestLocationUpdates(Ljava/lang/String;JFLandroid/location/LocationListener;Landroid/os/Looper;)V
29420 + goto :goto_7
29421 +.end method
29423 +.method public requestSingleUpdate(Landroid/location/Criteria;Landroid/app/PendingIntent;)V
29424 + .registers 4
29426 + if-eqz p1, :cond_4
29428 + if-nez p2, :cond_8
29430 + :cond_4
29431 + invoke-super {p0, p1, p2}, Landroid/location/LocationManager;->requestSingleUpdate(Landroid/location/Criteria;Landroid/app/PendingIntent;)V
29433 + :cond_7
29434 + :goto_7
29435 + return-void
29437 + :cond_8
29438 + const/4 v0, 0x0
29440 + invoke-direct {p0, p1, v0, p2}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Landroid/location/Criteria;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
29442 + move-result v0
29444 + if-nez v0, :cond_7
29446 + invoke-super {p0, p1, p2}, Landroid/location/LocationManager;->requestSingleUpdate(Landroid/location/Criteria;Landroid/app/PendingIntent;)V
29448 + goto :goto_7
29449 +.end method
29451 +.method public requestSingleUpdate(Landroid/location/Criteria;Landroid/location/LocationListener;Landroid/os/Looper;)V
29452 + .registers 5
29454 + if-eqz p1, :cond_4
29456 + if-nez p2, :cond_8
29458 + :cond_4
29459 + invoke-super {p0, p1, p2, p3}, Landroid/location/LocationManager;->requestSingleUpdate(Landroid/location/Criteria;Landroid/location/LocationListener;Landroid/os/Looper;)V
29461 + :cond_7
29462 + :goto_7
29463 + return-void
29465 + :cond_8
29466 + const/4 v0, 0x0
29468 + invoke-direct {p0, p1, p2, v0}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Landroid/location/Criteria;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
29470 + move-result v0
29472 + if-nez v0, :cond_7
29474 + invoke-super {p0, p1, p2, p3}, Landroid/location/LocationManager;->requestSingleUpdate(Landroid/location/Criteria;Landroid/location/LocationListener;Landroid/os/Looper;)V
29476 + goto :goto_7
29477 +.end method
29479 +.method public requestSingleUpdate(Ljava/lang/String;Landroid/app/PendingIntent;)V
29480 + .registers 4
29482 + if-eqz p1, :cond_4
29484 + if-nez p2, :cond_8
29486 + :cond_4
29487 + invoke-super {p0, p1, p2}, Landroid/location/LocationManager;->requestSingleUpdate(Ljava/lang/String;Landroid/app/PendingIntent;)V
29489 + :cond_7
29490 + :goto_7
29491 + return-void
29493 + :cond_8
29494 + const/4 v0, 0x0
29496 + invoke-direct {p0, p1, v0, p2}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
29498 + move-result v0
29500 + if-nez v0, :cond_7
29502 + invoke-super {p0, p1, p2}, Landroid/location/LocationManager;->requestSingleUpdate(Ljava/lang/String;Landroid/app/PendingIntent;)V
29504 + goto :goto_7
29505 +.end method
29507 +.method public requestSingleUpdate(Ljava/lang/String;Landroid/location/LocationListener;Landroid/os/Looper;)V
29508 + .registers 5
29510 + if-eqz p1, :cond_4
29512 + if-nez p2, :cond_8
29514 + :cond_4
29515 + invoke-super {p0, p1, p2, p3}, Landroid/location/LocationManager;->requestSingleUpdate(Ljava/lang/String;Landroid/location/LocationListener;Landroid/os/Looper;)V
29517 + :cond_7
29518 + :goto_7
29519 + return-void
29521 + :cond_8
29522 + const/4 v0, 0x0
29524 + invoke-direct {p0, p1, p2, v0}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
29526 + move-result v0
29528 + if-nez v0, :cond_7
29530 + invoke-super {p0, p1, p2, p3}, Landroid/location/LocationManager;->requestSingleUpdate(Ljava/lang/String;Landroid/location/LocationListener;Landroid/os/Looper;)V
29532 + goto :goto_7
29533 +.end method
29534 diff -Npru stock-framework/smali/android/privacy/surrogate/PrivacyTelephonyManager.smali opd-framework/smali/android/privacy/surrogate/PrivacyTelephonyManager.smali
29535 --- stock-framework/smali/android/privacy/surrogate/PrivacyTelephonyManager.smali 1969-12-31 18:00:00.000000000 -0600
29536 +++ opd-framework/smali/android/privacy/surrogate/PrivacyTelephonyManager.smali 2013-01-08 23:29:43.624287686 -0600
29537 @@ -0,0 +1,1385 @@
29538 +.class public final Landroid/privacy/surrogate/PrivacyTelephonyManager;
29539 +.super Landroid/telephony/TelephonyManager;
29540 +.source "PrivacyTelephonyManager.java"
29543 +# static fields
29544 +.field private static final NETWORK_TYPES:[I = null
29546 +.field private static final PHONE_TYPES:[I = null
29548 +.field private static final TAG:Ljava/lang/String; = "PrivacyTelephonyManager"
29551 +# instance fields
29552 +.field private context:Landroid/content/Context;
29554 +.field private pSetMan:Landroid/privacy/PrivacySettingsManager;
29557 +# direct methods
29558 +.method static constructor <clinit>()V
29559 + .registers 1
29561 + const/4 v0, 0x4
29563 + new-array v0, v0, [I
29565 + fill-array-data v0, :array_12
29567 + sput-object v0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->PHONE_TYPES:[I
29569 + const/16 v0, 0x10
29571 + new-array v0, v0, [I
29573 + fill-array-data v0, :array_1e
29575 + sput-object v0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->NETWORK_TYPES:[I
29577 + return-void
29579 + :array_12
29580 + .array-data 0x4
29581 + 0x0t 0x0t 0x0t 0x0t
29582 + 0x1t 0x0t 0x0t 0x0t
29583 + 0x2t 0x0t 0x0t 0x0t
29584 + 0x3t 0x0t 0x0t 0x0t
29585 + .end array-data
29587 + :array_1e
29588 + .array-data 0x4
29589 + 0x0t 0x0t 0x0t 0x0t
29590 + 0x1t 0x0t 0x0t 0x0t
29591 + 0x2t 0x0t 0x0t 0x0t
29592 + 0x3t 0x0t 0x0t 0x0t
29593 + 0x4t 0x0t 0x0t 0x0t
29594 + 0x5t 0x0t 0x0t 0x0t
29595 + 0x6t 0x0t 0x0t 0x0t
29596 + 0x7t 0x0t 0x0t 0x0t
29597 + 0x8t 0x0t 0x0t 0x0t
29598 + 0x9t 0x0t 0x0t 0x0t
29599 + 0xat 0x0t 0x0t 0x0t
29600 + 0xbt 0x0t 0x0t 0x0t
29601 + 0xct 0x0t 0x0t 0x0t
29602 + 0xdt 0x0t 0x0t 0x0t
29603 + 0xet 0x0t 0x0t 0x0t
29604 + 0xft 0x0t 0x0t 0x0t
29605 + .end array-data
29606 +.end method
29608 +.method public constructor <init>(Landroid/content/Context;)V
29609 + .registers 4
29611 + invoke-direct {p0, p1}, Landroid/telephony/TelephonyManager;-><init>(Landroid/content/Context;)V
29613 + iput-object p1, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
29615 + new-instance v0, Landroid/privacy/PrivacySettingsManager;
29617 + const-string/jumbo v1, "privacy"
29619 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
29621 + move-result-object v1
29623 + invoke-static {v1}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
29625 + move-result-object v1
29627 + invoke-direct {v0, p1, v1}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
29629 + iput-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29631 + return-void
29632 +.end method
29634 +.method private getNetworkInfo()Ljava/lang/String;
29635 + .registers 8
29637 + const/4 v5, 0x0
29639 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
29641 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
29643 + move-result-object v1
29645 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
29647 + move-result v2
29649 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29651 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
29653 + move-result-object v6
29655 + if-eqz v6, :cond_25
29657 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
29659 + move-result v0
29661 + if-eqz v0, :cond_25
29663 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29665 + const/4 v3, 0x1
29667 + const-string/jumbo v4, "networkInfoCurrent"
29669 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
29671 + const-string v5, ""
29673 + :goto_24
29674 + return-object v5
29676 + :cond_25
29677 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29679 + const/4 v3, 0x0
29681 + const-string/jumbo v4, "networkInfoCurrent"
29683 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
29685 + goto :goto_24
29686 +.end method
29688 +.method private getSimInfo()Ljava/lang/String;
29689 + .registers 8
29691 + const/4 v5, 0x0
29693 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
29695 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
29697 + move-result-object v1
29699 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
29701 + move-result v2
29703 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29705 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
29707 + move-result-object v6
29709 + if-eqz v6, :cond_25
29711 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getSimInfoSetting()B
29713 + move-result v0
29715 + if-eqz v0, :cond_25
29717 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29719 + const/4 v3, 0x1
29721 + const-string/jumbo v4, "networkInfoSIM"
29723 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
29725 + const-string v5, ""
29727 + :goto_24
29728 + return-object v5
29730 + :cond_25
29731 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29733 + const/4 v3, 0x0
29735 + const-string/jumbo v4, "networkInfoSIM"
29737 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
29739 + goto :goto_24
29740 +.end method
29743 +# virtual methods
29744 +.method public getAllCellInfo()Ljava/util/List;
29745 + .registers 6
29746 + .annotation system Ldalvik/annotation/Signature;
29747 + value = {
29748 + "()",
29749 + "Ljava/util/List",
29750 + "<",
29751 + "Landroid/telephony/CellInfo;",
29752 + ">;"
29754 + .end annotation
29756 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29758 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
29760 + invoke-virtual {v3}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
29762 + move-result-object v3
29764 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
29766 + move-result v4
29768 + invoke-virtual {v2, v3, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
29770 + move-result-object v1
29772 + const/4 v0, 0x0
29774 + if-eqz v1, :cond_1f
29776 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
29778 + move-result v2
29780 + const/4 v3, 0x1
29782 + if-ne v2, v3, :cond_20
29784 + new-instance v0, Ljava/util/ArrayList;
29786 + invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
29788 + :cond_1f
29789 + :goto_1f
29790 + return-object v0
29792 + :cond_20
29793 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
29795 + move-result v2
29797 + if-eqz v2, :cond_2c
29799 + new-instance v0, Ljava/util/ArrayList;
29801 + invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
29803 + goto :goto_1f
29805 + :cond_2c
29806 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getAllCellInfo()Ljava/util/List;
29808 + move-result-object v0
29810 + goto :goto_1f
29811 +.end method
29813 +.method public getCellLocation()Landroid/telephony/CellLocation;
29814 + .registers 10
29816 + const/4 v7, 0x0
29818 + :try_start_1
29819 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
29821 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
29823 + move-result-object v1
29825 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
29827 + move-result v2
29829 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29831 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
29833 + move-result-object v6
29835 + if-eqz v6, :cond_2c
29837 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
29839 + move-result v0
29841 + if-nez v0, :cond_1f
29843 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
29845 + move-result v0
29847 + if-eqz v0, :cond_2c
29849 + :cond_1f
29850 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29852 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
29854 + move-result v3
29856 + const-string v4, "locationNetwork"
29858 + const/4 v5, 0x0
29860 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
29862 + :goto_2b
29863 + return-object v7
29865 + :cond_2c
29866 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29868 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
29870 + move-result v3
29872 + const-string v4, "locationNetwork"
29874 + const/4 v5, 0x0
29876 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
29878 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getCellLocation()Landroid/telephony/CellLocation;
29879 + :try_end_3b
29880 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_3b} :catch_3d
29882 + move-result-object v7
29884 + goto :goto_2b
29886 + :catch_3d
29887 + move-exception v8
29889 + goto :goto_2b
29890 +.end method
29892 +.method public getCompleteVoiceMailNumber()Ljava/lang/String;
29893 + .registers 9
29895 + :try_start_0
29896 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
29898 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
29900 + move-result-object v1
29902 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
29904 + move-result v2
29906 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29908 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
29910 + move-result-object v6
29912 + const-string v5, ""
29914 + if-eqz v6, :cond_2a
29916 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLine1NumberSetting()B
29918 + move-result v0
29920 + if-eqz v0, :cond_2a
29922 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLine1Number()Ljava/lang/String;
29924 + move-result-object v5
29926 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29928 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLine1NumberSetting()B
29930 + move-result v3
29932 + const-string v4, "line1Number"
29934 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
29936 + :goto_29
29937 + return-object v5
29939 + :cond_2a
29940 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getCompleteVoiceMailNumber()Ljava/lang/String;
29942 + move-result-object v5
29944 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29946 + const/4 v3, 0x0
29948 + const-string v4, "line1Number"
29950 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
29951 + :try_end_36
29952 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_36} :catch_37
29954 + goto :goto_29
29956 + :catch_37
29957 + move-exception v7
29959 + const/4 v5, 0x0
29961 + goto :goto_29
29962 +.end method
29964 +.method public getDeviceId()Ljava/lang/String;
29965 + .registers 8
29967 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
29969 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
29971 + move-result-object v1
29973 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
29975 + move-result v2
29977 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29979 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
29981 + move-result-object v6
29983 + if-eqz v6, :cond_28
29985 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getDeviceIdSetting()B
29987 + move-result v0
29989 + if-eqz v0, :cond_28
29991 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getDeviceId()Ljava/lang/String;
29993 + move-result-object v5
29995 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29997 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getDeviceIdSetting()B
29999 + move-result v3
30001 + const-string v4, "deviceID"
30003 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30005 + :goto_27
30006 + return-object v5
30008 + :cond_28
30009 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getDeviceId()Ljava/lang/String;
30011 + move-result-object v5
30013 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30015 + const/4 v3, 0x0
30017 + const-string v4, "deviceID"
30019 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30021 + goto :goto_27
30022 +.end method
30024 +.method public getDeviceSoftwareVersion()Ljava/lang/String;
30025 + .registers 9
30027 + :try_start_0
30028 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30030 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30032 + move-result-object v1
30034 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
30036 + move-result v2
30038 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30040 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
30042 + move-result-object v6
30044 + const-string v5, ""
30046 + if-eqz v6, :cond_2a
30048 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getDeviceIdSetting()B
30050 + move-result v0
30052 + if-eqz v0, :cond_2a
30054 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getDeviceId()Ljava/lang/String;
30056 + move-result-object v5
30058 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30060 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getDeviceIdSetting()B
30062 + move-result v3
30064 + const-string v4, "deviceID"
30066 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30068 + :goto_29
30069 + return-object v5
30071 + :cond_2a
30072 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getDeviceSoftwareVersion()Ljava/lang/String;
30074 + move-result-object v5
30076 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30078 + const/4 v3, 0x0
30080 + const-string v4, "deviceID"
30082 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30083 + :try_end_36
30084 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_36} :catch_37
30086 + goto :goto_29
30088 + :catch_37
30089 + move-exception v7
30091 + const/4 v5, 0x0
30093 + goto :goto_29
30094 +.end method
30096 +.method public getIsimDomain()Ljava/lang/String;
30097 + .registers 2
30099 + invoke-virtual {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getNetworkOperatorName()Ljava/lang/String;
30101 + move-result-object v0
30103 + return-object v0
30104 +.end method
30106 +.method public getIsimImpi()Ljava/lang/String;
30107 + .registers 4
30109 + const-string v0, "PrivacyTelephonyManager"
30111 + new-instance v1, Ljava/lang/StringBuilder;
30113 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
30115 + const-string v2, "getIsimImpi - "
30117 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30119 + move-result-object v1
30121 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30123 + invoke-virtual {v2}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30125 + move-result-object v2
30127 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30129 + move-result-object v1
30131 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
30133 + move-result-object v1
30135 + invoke-static {v0, v1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
30137 + invoke-virtual {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getSubscriberId()Ljava/lang/String;
30139 + move-result-object v0
30141 + return-object v0
30142 +.end method
30144 +.method public getIsimImpu()[Ljava/lang/String;
30145 + .registers 10
30147 + const/4 v8, 0x0
30149 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30151 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30153 + move-result-object v1
30155 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
30157 + move-result v2
30159 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30161 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
30163 + move-result-object v6
30165 + const-string v0, "PrivacyTelephonyManager"
30167 + new-instance v3, Ljava/lang/StringBuilder;
30169 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
30171 + const-string v4, "getIsimImpu() - "
30173 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30175 + move-result-object v3
30177 + iget-object v4, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30179 + invoke-virtual {v4}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30181 + move-result-object v4
30183 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30185 + move-result-object v3
30187 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
30189 + move-result-object v3
30191 + invoke-static {v0, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
30193 + const/4 v0, 0x1
30195 + new-array v7, v0, [Ljava/lang/String;
30197 + if-eqz v6, :cond_4f
30199 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getSubscriberIdSetting()B
30201 + move-result v0
30203 + if-eqz v0, :cond_4f
30205 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getSubscriberId()Ljava/lang/String;
30207 + move-result-object v0
30209 + aput-object v0, v7, v8
30211 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30213 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getSubscriberIdSetting()B
30215 + move-result v3
30217 + const-string/jumbo v4, "subscriberID"
30219 + aget-object v5, v7, v8
30221 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30223 + :goto_4e
30224 + return-object v7
30226 + :cond_4f
30227 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getIsimImpu()[Ljava/lang/String;
30229 + move-result-object v7
30231 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30233 + const-string/jumbo v4, "subscriberID"
30235 + aget-object v5, v7, v8
30237 + move v3, v8
30239 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30241 + goto :goto_4e
30242 +.end method
30244 +.method public getLine1AlphaTag()Ljava/lang/String;
30245 + .registers 2
30247 + invoke-virtual {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getLine1Number()Ljava/lang/String;
30249 + move-result-object v0
30251 + return-object v0
30252 +.end method
30254 +.method public getLine1Number()Ljava/lang/String;
30255 + .registers 8
30257 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30259 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30261 + move-result-object v1
30263 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
30265 + move-result v2
30267 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30269 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
30271 + move-result-object v6
30273 + if-eqz v6, :cond_28
30275 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLine1NumberSetting()B
30277 + move-result v0
30279 + if-eqz v0, :cond_28
30281 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLine1Number()Ljava/lang/String;
30283 + move-result-object v5
30285 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30287 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLine1NumberSetting()B
30289 + move-result v3
30291 + const-string v4, "line1Number"
30293 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30295 + :goto_27
30296 + return-object v5
30298 + :cond_28
30299 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getLine1Number()Ljava/lang/String;
30301 + move-result-object v5
30303 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30305 + const/4 v3, 0x0
30307 + const-string v4, "line1Number"
30309 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30311 + goto :goto_27
30312 +.end method
30314 +.method public getMsisdn()Ljava/lang/String;
30315 + .registers 4
30317 + const-string v0, "PrivacyTelephonyManager"
30319 + new-instance v1, Ljava/lang/StringBuilder;
30321 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
30323 + const-string v2, "getMsisdn() - "
30325 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30327 + move-result-object v1
30329 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30331 + invoke-virtual {v2}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30333 + move-result-object v2
30335 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30337 + move-result-object v1
30339 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
30341 + move-result-object v1
30343 + invoke-static {v0, v1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
30345 + invoke-virtual {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getSubscriberId()Ljava/lang/String;
30347 + move-result-object v0
30349 + return-object v0
30350 +.end method
30352 +.method public getNeighboringCellInfo()Ljava/util/List;
30353 + .registers 10
30354 + .annotation system Ldalvik/annotation/Signature;
30355 + value = {
30356 + "()",
30357 + "Ljava/util/List",
30358 + "<",
30359 + "Landroid/telephony/NeighboringCellInfo;",
30360 + ">;"
30362 + .end annotation
30364 + iget-object v6, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30366 + iget-object v7, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30368 + invoke-virtual {v7}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30370 + move-result-object v7
30372 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
30374 + move-result v8
30376 + invoke-virtual {v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
30378 + move-result-object v5
30380 + const/4 v3, 0x0
30382 + const-string v4, "[null]"
30384 + if-eqz v5, :cond_1c
30386 + invoke-virtual {v5}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
30388 + move-result v6
30390 + const/4 v7, 0x1
30392 + if-ne v6, v7, :cond_1d
30394 + :cond_1c
30395 + :goto_1c
30396 + return-object v3
30398 + :cond_1d
30399 + invoke-virtual {v5}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
30401 + move-result v6
30403 + if-eqz v6, :cond_2b
30405 + new-instance v3, Ljava/util/ArrayList;
30407 + invoke-direct {v3}, Ljava/util/ArrayList;-><init>()V
30409 + const-string v4, "[empty list of cells]"
30411 + goto :goto_1c
30413 + :cond_2b
30414 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getNeighboringCellInfo()Ljava/util/List;
30416 + move-result-object v3
30418 + const-string v0, ""
30420 + invoke-interface {v3}, Ljava/util/List;->iterator()Ljava/util/Iterator;
30422 + move-result-object v2
30424 + :goto_35
30425 + invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z
30427 + move-result v6
30429 + if-eqz v6, :cond_5f
30431 + invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;
30433 + move-result-object v1
30435 + check-cast v1, Landroid/telephony/NeighboringCellInfo;
30437 + new-instance v6, Ljava/lang/StringBuilder;
30439 + invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
30441 + invoke-virtual {v6, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30443 + move-result-object v6
30445 + const-string v7, "\t"
30447 + invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30449 + move-result-object v6
30451 + invoke-virtual {v6, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
30453 + move-result-object v6
30455 + const-string v7, "\n"
30457 + invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30459 + move-result-object v6
30461 + invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
30463 + move-result-object v0
30465 + goto :goto_35
30467 + :cond_5f
30468 + new-instance v6, Ljava/lang/StringBuilder;
30470 + invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
30472 + const-string v7, "[real value]:\n"
30474 + invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30476 + move-result-object v6
30478 + invoke-virtual {v6, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30480 + move-result-object v6
30482 + invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
30484 + move-result-object v4
30486 + goto :goto_1c
30487 +.end method
30489 +.method public getNetworkCountryIso()Ljava/lang/String;
30490 + .registers 2
30492 + invoke-direct {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getNetworkInfo()Ljava/lang/String;
30494 + move-result-object v0
30496 + if-nez v0, :cond_a
30498 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getNetworkCountryIso()Ljava/lang/String;
30500 + move-result-object v0
30502 + :cond_a
30503 + return-object v0
30504 +.end method
30506 +.method public getNetworkOperator()Ljava/lang/String;
30507 + .registers 2
30509 + invoke-direct {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getNetworkInfo()Ljava/lang/String;
30511 + move-result-object v0
30513 + if-nez v0, :cond_a
30515 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getNetworkOperator()Ljava/lang/String;
30517 + move-result-object v0
30519 + :cond_a
30520 + return-object v0
30521 +.end method
30523 +.method public getNetworkOperatorName()Ljava/lang/String;
30524 + .registers 2
30526 + invoke-direct {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getNetworkInfo()Ljava/lang/String;
30528 + move-result-object v0
30530 + if-nez v0, :cond_a
30532 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getNetworkOperatorName()Ljava/lang/String;
30534 + move-result-object v0
30536 + :cond_a
30537 + return-object v0
30538 +.end method
30540 +.method public getNetworkType()I
30541 + .registers 7
30543 + const/4 v5, 0x0
30545 + :try_start_1
30546 + invoke-direct {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getNetworkInfo()Ljava/lang/String;
30548 + move-result-object v1
30550 + sget-object v3, Landroid/privacy/surrogate/PrivacyTelephonyManager;->NETWORK_TYPES:[I
30552 + const/4 v4, 0x0
30554 + aget v2, v3, v4
30556 + if-nez v1, :cond_10
30558 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getNetworkType()I
30559 + :try_end_f
30560 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_f} :catch_11
30562 + move-result v2
30564 + :cond_10
30565 + :goto_10
30566 + return v2
30568 + :catch_11
30569 + move-exception v0
30571 + sget-object v3, Landroid/privacy/surrogate/PrivacyTelephonyManager;->NETWORK_TYPES:[I
30573 + aget v2, v3, v5
30575 + goto :goto_10
30576 +.end method
30578 +.method public getPhoneType()I
30579 + .registers 5
30581 + invoke-direct {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getNetworkInfo()Ljava/lang/String;
30583 + move-result-object v0
30585 + sget-object v2, Landroid/privacy/surrogate/PrivacyTelephonyManager;->PHONE_TYPES:[I
30587 + const/4 v3, 0x0
30589 + aget v1, v2, v3
30591 + if-nez v0, :cond_f
30593 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getPhoneType()I
30595 + move-result v1
30597 + :cond_f
30598 + return v1
30599 +.end method
30601 +.method public getSimCountryIso()Ljava/lang/String;
30602 + .registers 2
30604 + invoke-direct {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getSimInfo()Ljava/lang/String;
30606 + move-result-object v0
30608 + if-nez v0, :cond_a
30610 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getSimCountryIso()Ljava/lang/String;
30612 + move-result-object v0
30614 + :cond_a
30615 + return-object v0
30616 +.end method
30618 +.method public getSimOperator()Ljava/lang/String;
30619 + .registers 2
30621 + invoke-direct {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getSimInfo()Ljava/lang/String;
30623 + move-result-object v0
30625 + if-nez v0, :cond_a
30627 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getSimOperator()Ljava/lang/String;
30629 + move-result-object v0
30631 + :cond_a
30632 + return-object v0
30633 +.end method
30635 +.method public getSimOperatorName()Ljava/lang/String;
30636 + .registers 2
30638 + invoke-direct {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getSimInfo()Ljava/lang/String;
30640 + move-result-object v0
30642 + if-nez v0, :cond_a
30644 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getSimOperatorName()Ljava/lang/String;
30646 + move-result-object v0
30648 + :cond_a
30649 + return-object v0
30650 +.end method
30652 +.method public getSimSerialNumber()Ljava/lang/String;
30653 + .registers 8
30655 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30657 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30659 + move-result-object v1
30661 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
30663 + move-result v2
30665 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30667 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
30669 + move-result-object v6
30671 + if-eqz v6, :cond_29
30673 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getSimSerialNumberSetting()B
30675 + move-result v0
30677 + if-eqz v0, :cond_29
30679 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getSimSerialNumber()Ljava/lang/String;
30681 + move-result-object v5
30683 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30685 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getSimSerialNumberSetting()B
30687 + move-result v3
30689 + const-string/jumbo v4, "simSerial"
30691 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30693 + :goto_28
30694 + return-object v5
30696 + :cond_29
30697 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getSimSerialNumber()Ljava/lang/String;
30699 + move-result-object v5
30701 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30703 + const/4 v3, 0x0
30705 + const-string/jumbo v4, "simSerial"
30707 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30709 + goto :goto_28
30710 +.end method
30712 +.method public getSubscriberId()Ljava/lang/String;
30713 + .registers 8
30715 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30717 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30719 + move-result-object v1
30721 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
30723 + move-result v2
30725 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30727 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
30729 + move-result-object v6
30731 + const-string v0, "PrivacyTelephonyManager"
30733 + new-instance v3, Ljava/lang/StringBuilder;
30735 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
30737 + const-string v4, "getSubscriberId() - "
30739 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30741 + move-result-object v3
30743 + iget-object v4, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30745 + invoke-virtual {v4}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30747 + move-result-object v4
30749 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30751 + move-result-object v3
30753 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
30755 + move-result-object v3
30757 + invoke-static {v0, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
30759 + if-eqz v6, :cond_47
30761 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getSubscriberIdSetting()B
30763 + move-result v0
30765 + if-eqz v0, :cond_47
30767 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getSubscriberId()Ljava/lang/String;
30769 + move-result-object v5
30771 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30773 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getSubscriberIdSetting()B
30775 + move-result v3
30777 + const-string/jumbo v4, "subscriberID"
30779 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30781 + :goto_46
30782 + return-object v5
30784 + :cond_47
30785 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getSubscriberId()Ljava/lang/String;
30787 + move-result-object v5
30789 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30791 + const/4 v3, 0x0
30793 + const-string/jumbo v4, "subscriberID"
30795 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30797 + goto :goto_46
30798 +.end method
30800 +.method public getVoiceMailAlphaTag()Ljava/lang/String;
30801 + .registers 2
30803 + invoke-virtual {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getVoiceMailNumber()Ljava/lang/String;
30805 + move-result-object v0
30807 + return-object v0
30808 +.end method
30810 +.method public getVoiceMailNumber()Ljava/lang/String;
30811 + .registers 8
30813 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30815 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30817 + move-result-object v1
30819 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
30821 + move-result v2
30823 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30825 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
30827 + move-result-object v6
30829 + if-eqz v6, :cond_28
30831 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLine1NumberSetting()B
30833 + move-result v0
30835 + if-eqz v0, :cond_28
30837 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLine1Number()Ljava/lang/String;
30839 + move-result-object v5
30841 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30843 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLine1NumberSetting()B
30845 + move-result v3
30847 + const-string v4, "line1Number"
30849 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30851 + :goto_27
30852 + return-object v5
30854 + :cond_28
30855 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getVoiceMailNumber()Ljava/lang/String;
30857 + move-result-object v5
30859 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30861 + const/4 v3, 0x0
30863 + const-string v4, "line1Number"
30865 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30867 + goto :goto_27
30868 +.end method
30870 +.method public listen(Landroid/telephony/PhoneStateListener;I)V
30871 + .registers 5
30873 + and-int/lit8 v1, p2, 0x10
30875 + if-nez v1, :cond_8
30877 + and-int/lit8 v1, p2, 0x20
30879 + if-eqz v1, :cond_29
30881 + :cond_8
30882 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30884 + if-eqz v1, :cond_27
30886 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30888 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30890 + move-result-object v0
30892 + :goto_12
30893 + if-eqz v0, :cond_1c
30895 + invoke-virtual {p1, v0}, Landroid/telephony/PhoneStateListener;->setPackageName(Ljava/lang/String;)V
30897 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30899 + invoke-virtual {p1, v1}, Landroid/telephony/PhoneStateListener;->setContext(Landroid/content/Context;)V
30901 + :cond_1c
30902 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
30904 + move-result v1
30906 + invoke-virtual {p1, v1}, Landroid/telephony/PhoneStateListener;->setUid(I)V
30908 + invoke-super {p0, p1, p2}, Landroid/telephony/TelephonyManager;->listen(Landroid/telephony/PhoneStateListener;I)V
30910 + :goto_26
30911 + return-void
30913 + :cond_27
30914 + const/4 v0, 0x0
30916 + goto :goto_12
30918 + :cond_29
30919 + invoke-super {p0, p1, p2}, Landroid/telephony/TelephonyManager;->listen(Landroid/telephony/PhoneStateListener;I)V
30921 + goto :goto_26
30922 +.end method
30923 diff -Npru stock-framework/smali/android/privacy/surrogate/PrivacyWifiManager.smali opd-framework/smali/android/privacy/surrogate/PrivacyWifiManager.smali
30924 --- stock-framework/smali/android/privacy/surrogate/PrivacyWifiManager.smali 1969-12-31 18:00:00.000000000 -0600
30925 +++ opd-framework/smali/android/privacy/surrogate/PrivacyWifiManager.smali 2013-01-08 23:29:43.624287686 -0600
30926 @@ -0,0 +1,1097 @@
30927 +.class public Landroid/privacy/surrogate/PrivacyWifiManager;
30928 +.super Landroid/net/wifi/WifiManager;
30929 +.source "PrivacyWifiManager.java"
30932 +# static fields
30933 +.field private static final P_TAG:Ljava/lang/String; = "PrivacyWifiManager"
30936 +# instance fields
30937 +.field private context:Landroid/content/Context;
30939 +.field private pSetMan:Landroid/privacy/PrivacySettingsManager;
30942 +# direct methods
30943 +.method public constructor <init>(Landroid/content/Context;Landroid/net/wifi/IWifiManager;)V
30944 + .registers 5
30946 + invoke-direct {p0, p1, p2}, Landroid/net/wifi/WifiManager;-><init>(Landroid/content/Context;Landroid/net/wifi/IWifiManager;)V
30948 + iput-object p1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
30950 + new-instance v0, Landroid/privacy/PrivacySettingsManager;
30952 + const-string/jumbo v1, "privacy"
30954 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
30956 + move-result-object v1
30958 + invoke-static {v1}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
30960 + move-result-object v1
30962 + invoke-direct {v0, p1, v1}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
30964 + iput-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30966 + return-void
30967 +.end method
30970 +# virtual methods
30971 +.method public getConfigFile()Ljava/lang/String;
30972 + .registers 9
30974 + const/4 v2, -0x1
30976 + const/4 v5, 0x0
30978 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30980 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
30982 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30984 + move-result-object v1
30986 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
30988 + move-result v3
30990 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
30992 + move-result-object v7
30994 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30996 + if-eqz v0, :cond_31
30998 + if-eqz v7, :cond_31
31000 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
31002 + move-result v0
31004 + if-eqz v0, :cond_31
31006 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31008 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31010 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31012 + move-result-object v1
31014 + const/4 v3, 0x1
31016 + const-string/jumbo v4, "wifiInfo"
31018 + move-object v6, v5
31020 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31022 + const-string v0, ""
31024 + :goto_30
31025 + return-object v0
31027 + :cond_31
31028 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31030 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31032 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31034 + move-result-object v1
31036 + const/4 v3, 0x0
31038 + const-string/jumbo v4, "wifiInfo"
31040 + move-object v6, v5
31042 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31044 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->getConfigFile()Ljava/lang/String;
31046 + move-result-object v0
31048 + goto :goto_30
31049 +.end method
31051 +.method public getConfiguredNetworks()Ljava/util/List;
31052 + .registers 10
31053 + .annotation system Ldalvik/annotation/Signature;
31054 + value = {
31055 + "()",
31056 + "Ljava/util/List",
31057 + "<",
31058 + "Landroid/net/wifi/WifiConfiguration;",
31059 + ">;"
31061 + .end annotation
31063 + const/4 v2, -0x1
31065 + const/4 v5, 0x0
31067 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31069 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31071 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31073 + move-result-object v1
31075 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31077 + move-result v3
31079 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31081 + move-result-object v8
31083 + new-instance v7, Ljava/util/ArrayList;
31085 + invoke-direct {v7}, Ljava/util/ArrayList;-><init>()V
31087 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31089 + if-eqz v0, :cond_34
31091 + if-eqz v8, :cond_34
31093 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
31095 + move-result v0
31097 + if-eqz v0, :cond_34
31099 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31101 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31103 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31105 + move-result-object v1
31107 + const/4 v3, 0x1
31109 + const-string/jumbo v4, "wifiInfo"
31111 + move-object v6, v5
31113 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31115 + :goto_33
31116 + return-object v7
31118 + :cond_34
31119 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31121 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31123 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31125 + move-result-object v1
31127 + const/4 v3, 0x0
31129 + const-string/jumbo v4, "wifiInfo"
31131 + move-object v6, v5
31133 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31135 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->getConfiguredNetworks()Ljava/util/List;
31137 + move-result-object v7
31139 + goto :goto_33
31140 +.end method
31142 +.method public getConnectionInfo()Landroid/net/wifi/WifiInfo;
31143 + .registers 10
31145 + const/4 v3, 0x1
31147 + const/4 v2, -0x1
31149 + const/4 v5, 0x0
31151 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31153 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31155 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31157 + move-result-object v1
31159 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31161 + move-result v4
31163 + invoke-virtual {v0, v1, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31165 + move-result-object v8
31167 + new-instance v7, Landroid/net/wifi/WifiInfo;
31169 + invoke-direct {v7, v3}, Landroid/net/wifi/WifiInfo;-><init>(Z)V
31171 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31173 + if-eqz v0, :cond_34
31175 + if-eqz v8, :cond_34
31177 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
31179 + move-result v0
31181 + if-eqz v0, :cond_34
31183 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31185 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31187 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31189 + move-result-object v1
31191 + const-string/jumbo v4, "wifiInfo"
31193 + move-object v6, v5
31195 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31197 + :goto_33
31198 + return-object v7
31200 + :cond_34
31201 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31203 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31205 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31207 + move-result-object v1
31209 + const/4 v3, 0x0
31211 + const-string/jumbo v4, "wifiInfo"
31213 + move-object v6, v5
31215 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31217 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->getConnectionInfo()Landroid/net/wifi/WifiInfo;
31219 + move-result-object v7
31221 + goto :goto_33
31222 +.end method
31224 +.method public getDhcpInfo()Landroid/net/DhcpInfo;
31225 + .registers 9
31227 + const/4 v2, -0x1
31229 + const/4 v5, 0x0
31231 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31233 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31235 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31237 + move-result-object v1
31239 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31241 + move-result v3
31243 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31245 + move-result-object v7
31247 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31249 + if-eqz v0, :cond_34
31251 + if-eqz v7, :cond_34
31253 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
31255 + move-result v0
31257 + if-eqz v0, :cond_34
31259 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31261 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31263 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31265 + move-result-object v1
31267 + const/4 v3, 0x1
31269 + const-string/jumbo v4, "wifiInfo"
31271 + move-object v6, v5
31273 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31275 + new-instance v0, Landroid/net/DhcpInfo;
31277 + invoke-direct {v0}, Landroid/net/DhcpInfo;-><init>()V
31279 + :goto_33
31280 + return-object v0
31282 + :cond_34
31283 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31285 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31287 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31289 + move-result-object v1
31291 + const/4 v3, 0x0
31293 + const-string/jumbo v4, "wifiInfo"
31295 + move-object v6, v5
31297 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31299 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->getDhcpInfo()Landroid/net/DhcpInfo;
31301 + move-result-object v0
31303 + goto :goto_33
31304 +.end method
31306 +.method public getFrequencyBand()I
31307 + .registers 9
31309 + const/4 v2, -0x1
31311 + const/4 v5, 0x0
31313 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31315 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31317 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31319 + move-result-object v1
31321 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31323 + move-result v3
31325 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31327 + move-result-object v7
31329 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31331 + if-eqz v0, :cond_2f
31333 + if-eqz v7, :cond_2f
31335 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
31337 + move-result v0
31339 + if-eqz v0, :cond_2f
31341 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31343 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31345 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31347 + move-result-object v1
31349 + const/4 v3, 0x1
31351 + const-string/jumbo v4, "wifiInfo"
31353 + move-object v6, v5
31355 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31357 + :goto_2e
31358 + return v2
31360 + :cond_2f
31361 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31363 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31365 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31367 + move-result-object v1
31369 + const/4 v3, 0x0
31371 + const-string/jumbo v4, "wifiInfo"
31373 + move-object v6, v5
31375 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31377 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->getFrequencyBand()I
31379 + move-result v2
31381 + goto :goto_2e
31382 +.end method
31384 +.method public getScanResults()Ljava/util/List;
31385 + .registers 10
31386 + .annotation system Ldalvik/annotation/Signature;
31387 + value = {
31388 + "()",
31389 + "Ljava/util/List",
31390 + "<",
31391 + "Landroid/net/wifi/ScanResult;",
31392 + ">;"
31394 + .end annotation
31396 + const/4 v2, -0x1
31398 + const/4 v5, 0x0
31400 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31402 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31404 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31406 + move-result-object v1
31408 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31410 + move-result v3
31412 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31414 + move-result-object v8
31416 + new-instance v7, Ljava/util/ArrayList;
31418 + invoke-direct {v7}, Ljava/util/ArrayList;-><init>()V
31420 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31422 + if-eqz v0, :cond_34
31424 + if-eqz v8, :cond_34
31426 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
31428 + move-result v0
31430 + if-eqz v0, :cond_34
31432 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31434 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31436 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31438 + move-result-object v1
31440 + const/4 v3, 0x1
31442 + const-string/jumbo v4, "wifiInfo"
31444 + move-object v6, v5
31446 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31448 + :goto_33
31449 + return-object v7
31451 + :cond_34
31452 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31454 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31456 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31458 + move-result-object v1
31460 + const/4 v3, 0x0
31462 + const-string/jumbo v4, "wifiInfo"
31464 + move-object v6, v5
31466 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31468 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->getScanResults()Ljava/util/List;
31470 + move-result-object v7
31472 + goto :goto_33
31473 +.end method
31475 +.method public getWifiApConfiguration()Landroid/net/wifi/WifiConfiguration;
31476 + .registers 9
31478 + const/4 v2, -0x1
31480 + const/4 v5, 0x0
31482 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31484 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31486 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31488 + move-result-object v1
31490 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31492 + move-result v3
31494 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31496 + move-result-object v7
31498 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31500 + if-eqz v0, :cond_34
31502 + if-eqz v7, :cond_34
31504 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
31506 + move-result v0
31508 + if-eqz v0, :cond_34
31510 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31512 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31514 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31516 + move-result-object v1
31518 + const/4 v3, 0x1
31520 + const-string/jumbo v4, "wifiInfo"
31522 + move-object v6, v5
31524 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31526 + new-instance v0, Landroid/net/wifi/WifiConfiguration;
31528 + invoke-direct {v0}, Landroid/net/wifi/WifiConfiguration;-><init>()V
31530 + :goto_33
31531 + return-object v0
31533 + :cond_34
31534 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31536 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31538 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31540 + move-result-object v1
31542 + const/4 v3, 0x0
31544 + const-string/jumbo v4, "wifiInfo"
31546 + move-object v6, v5
31548 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31550 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->getWifiApConfiguration()Landroid/net/wifi/WifiConfiguration;
31552 + move-result-object v0
31554 + goto :goto_33
31555 +.end method
31557 +.method public getWifiState()I
31558 + .registers 9
31560 + const/4 v3, 0x1
31562 + const/4 v2, -0x1
31564 + const/4 v5, 0x0
31566 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31568 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31570 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31572 + move-result-object v1
31574 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31576 + move-result v4
31578 + invoke-virtual {v0, v1, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31580 + move-result-object v7
31582 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31584 + if-eqz v0, :cond_30
31586 + if-eqz v7, :cond_30
31588 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getForceOnlineState()B
31590 + move-result v0
31592 + if-nez v0, :cond_30
31594 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31596 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31598 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31600 + move-result-object v1
31602 + const-string/jumbo v4, "wifiInfo"
31604 + move-object v6, v5
31606 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31608 + const/4 v0, 0x3
31610 + :goto_2f
31611 + return v0
31613 + :cond_30
31614 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31616 + if-eqz v0, :cond_4d
31618 + if-eqz v7, :cond_4d
31620 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
31622 + move-result v0
31624 + if-eqz v0, :cond_4d
31626 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31628 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31630 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31632 + move-result-object v1
31634 + const-string/jumbo v4, "wifiInfo"
31636 + move-object v6, v5
31638 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31640 + const/4 v0, 0x4
31642 + goto :goto_2f
31644 + :cond_4d
31645 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31647 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31649 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31651 + move-result-object v1
31653 + const/4 v3, 0x0
31655 + const-string/jumbo v4, "wifiInfo"
31657 + move-object v6, v5
31659 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31661 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->getWifiState()I
31663 + move-result v0
31665 + goto :goto_2f
31666 +.end method
31668 +.method public isWifiEnabled()Z
31669 + .registers 10
31671 + const/4 v8, 0x0
31673 + const/4 v3, 0x1
31675 + const/4 v2, -0x1
31677 + const/4 v5, 0x0
31679 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31681 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31683 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31685 + move-result-object v1
31687 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31689 + move-result v4
31691 + invoke-virtual {v0, v1, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31693 + move-result-object v7
31695 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31697 + if-eqz v0, :cond_30
31699 + if-eqz v7, :cond_30
31701 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getForceOnlineState()B
31703 + move-result v0
31705 + if-nez v0, :cond_30
31707 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31709 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31711 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31713 + move-result-object v1
31715 + const-string/jumbo v4, "wifiInfo"
31717 + move-object v6, v5
31719 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31721 + :goto_2f
31722 + return v3
31724 + :cond_30
31725 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31727 + if-eqz v0, :cond_4d
31729 + if-eqz v7, :cond_4d
31731 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
31733 + move-result v0
31735 + if-eqz v0, :cond_4d
31737 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31739 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31741 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31743 + move-result-object v1
31745 + const-string/jumbo v4, "wifiInfo"
31747 + move-object v6, v5
31749 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31751 + move v3, v8
31753 + goto :goto_2f
31755 + :cond_4d
31756 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31758 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31760 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31762 + move-result-object v1
31764 + const-string/jumbo v4, "wifiInfo"
31766 + move v3, v8
31768 + move-object v6, v5
31770 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31772 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->isWifiEnabled()Z
31774 + move-result v3
31776 + goto :goto_2f
31777 +.end method
31779 +.method public setWifiEnabled(Z)Z
31780 + .registers 11
31782 + const/4 v8, 0x0
31784 + const/4 v2, -0x1
31786 + const/4 v5, 0x0
31788 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31790 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31792 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31794 + move-result-object v1
31796 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31798 + move-result v3
31800 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31802 + move-result-object v7
31804 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31806 + if-eqz v0, :cond_31
31808 + if-eqz v7, :cond_31
31810 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getSwitchWifiStateSetting()B
31812 + move-result v0
31814 + if-eqz v0, :cond_31
31816 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31818 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31820 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31822 + move-result-object v1
31824 + const/4 v3, 0x1
31826 + const-string/jumbo v4, "switchWifiState"
31828 + move-object v6, v5
31830 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31832 + move v0, v8
31834 + :goto_30
31835 + return v0
31837 + :cond_31
31838 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31840 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31842 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31844 + move-result-object v1
31846 + const-string/jumbo v4, "switchWifiState"
31848 + move v3, v8
31850 + move-object v6, v5
31852 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31854 + invoke-super {p0, p1}, Landroid/net/wifi/WifiManager;->setWifiEnabled(Z)Z
31856 + move-result v0
31858 + goto :goto_30
31859 +.end method
31861 +.method public startScan()Z
31862 + .registers 10
31864 + const/4 v8, 0x0
31866 + const/4 v2, -0x1
31868 + const/4 v5, 0x0
31870 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31872 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31874 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31876 + move-result-object v1
31878 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31880 + move-result v3
31882 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31884 + move-result-object v7
31886 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31888 + if-eqz v0, :cond_31
31890 + if-eqz v7, :cond_31
31892 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
31894 + move-result v0
31896 + if-eqz v0, :cond_31
31898 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31900 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31902 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31904 + move-result-object v1
31906 + const/4 v3, 0x1
31908 + const-string/jumbo v4, "wifiInfo"
31910 + move-object v6, v5
31912 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31914 + move v0, v8
31916 + :goto_30
31917 + return v0
31919 + :cond_31
31920 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31922 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31924 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31926 + move-result-object v1
31928 + const-string/jumbo v4, "wifiInfo"
31930 + move v3, v8
31932 + move-object v6, v5
31934 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31936 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->startScan()Z
31938 + move-result v0
31940 + goto :goto_30
31941 +.end method
31943 +.method public startScanActive()Z
31944 + .registers 10
31946 + const/4 v8, 0x0
31948 + const/4 v2, -0x1
31950 + const/4 v5, 0x0
31952 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31954 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31956 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31958 + move-result-object v1
31960 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31962 + move-result v3
31964 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31966 + move-result-object v7
31968 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31970 + if-eqz v0, :cond_31
31972 + if-eqz v7, :cond_31
31974 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
31976 + move-result v0
31978 + if-eqz v0, :cond_31
31980 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31982 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31984 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31986 + move-result-object v1
31988 + const/4 v3, 0x1
31990 + const-string/jumbo v4, "wifiInfo"
31992 + move-object v6, v5
31994 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31996 + move v0, v8
31998 + :goto_30
31999 + return v0
32001 + :cond_31
32002 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32004 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
32006 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
32008 + move-result-object v1
32010 + const-string/jumbo v4, "wifiInfo"
32012 + move v3, v8
32014 + move-object v6, v5
32016 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
32018 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->startScanActive()Z
32020 + move-result v0
32022 + goto :goto_30
32023 +.end method
32024 diff -Npru stock-framework/smali/android/provider/Settings$Secure.smali opd-framework/smali/android/provider/Settings$Secure.smali
32025 --- stock-framework/smali/android/provider/Settings$Secure.smali 2013-01-08 23:29:05.044096372 -0600
32026 +++ opd-framework/smali/android/provider/Settings$Secure.smali 2013-01-08 23:29:43.704288077 -0600
32027 @@ -190,6 +190,8 @@
32029 .field public static final PREFERRED_TTY_MODE:Ljava/lang/String; = "preferred_tty_mode"
32031 +.field private static final PRIVACY_TAG:Ljava/lang/String; = "PM,SecureSettings"
32033 .field public static final SCREENSAVER_ACTIVATE_ON_DOCK:Ljava/lang/String; = "screensaver_activate_on_dock"
32035 .field public static final SCREENSAVER_ACTIVATE_ON_SLEEP:Ljava/lang/String; = "screensaver_activate_on_sleep"
32036 @@ -399,6 +401,14 @@
32037 .end annotation
32038 .end field
32040 +.field private static context:Landroid/content/Context;
32042 +.field private static mPm:Landroid/content/pm/IPackageManager;
32044 +.field private static pSetMan:Landroid/privacy/PrivacySettingsManager;
32046 +.field private static privacyMode:Z
32048 .field private static sIsSystemProcess:Z
32050 .field private static sLockSettings:Lcom/android/internal/widget/ILockSettings;
32051 @@ -408,9 +418,11 @@
32053 # direct methods
32054 .method static constructor <clinit>()V
32055 - .registers 6
32056 + .registers 7
32058 + const/4 v6, 0x3
32060 - const/4 v5, 0x3
32061 + const/4 v5, 0x0
32063 const-string v0, "content://settings/secure"
32065 @@ -440,7 +452,7 @@
32067 new-instance v0, Ljava/util/HashSet;
32069 - invoke-direct {v0, v5}, Ljava/util/HashSet;-><init>(I)V
32070 + invoke-direct {v0, v6}, Ljava/util/HashSet;-><init>(I)V
32072 sput-object v0, Landroid/provider/Settings$Secure;->MOVED_TO_LOCK_SETTINGS:Ljava/util/HashSet;
32074 @@ -1182,15 +1194,15 @@
32076 invoke-virtual {v0, v1}, Ljava/util/HashSet;->add(Ljava/lang/Object;)Z
32078 + sput-boolean v5, Landroid/provider/Settings$Secure;->privacyMode:Z
32080 const/16 v0, 0x21
32082 new-array v0, v0, [Ljava/lang/String;
32084 - const/4 v1, 0x0
32086 - const-string v2, "bugreport_in_power_menu"
32087 + const-string v1, "bugreport_in_power_menu"
32089 - aput-object v2, v0, v1
32090 + aput-object v1, v0, v5
32092 const/4 v1, 0x1
32094 @@ -1206,7 +1218,7 @@
32096 const-string/jumbo v1, "parental_control_redirect_url"
32098 - aput-object v1, v0, v5
32099 + aput-object v1, v0, v6
32101 const/4 v1, 0x4
32103 @@ -1699,6 +1711,70 @@
32104 return-void
32105 .end method
32107 +.method private static getPackageName()[Ljava/lang/String;
32108 + .registers 5
32110 + :try_start_0
32111 + sget-object v3, Landroid/provider/Settings$Secure;->mPm:Landroid/content/pm/IPackageManager;
32113 + if-eqz v3, :cond_f
32115 + invoke-static {}, Landroid/os/Process;->myUid()I
32117 + move-result v2
32119 + sget-object v3, Landroid/provider/Settings$Secure;->mPm:Landroid/content/pm/IPackageManager;
32121 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
32123 + move-result-object v1
32125 + :goto_e
32126 + return-object v1
32128 + :cond_f
32129 + const-string/jumbo v3, "package"
32131 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
32133 + move-result-object v3
32135 + invoke-static {v3}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
32137 + move-result-object v3
32139 + sput-object v3, Landroid/provider/Settings$Secure;->mPm:Landroid/content/pm/IPackageManager;
32141 + invoke-static {}, Landroid/os/Process;->myUid()I
32143 + move-result v2
32145 + sget-object v3, Landroid/provider/Settings$Secure;->mPm:Landroid/content/pm/IPackageManager;
32147 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
32148 + :try_end_25
32149 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_25} :catch_27
32151 + move-result-object v1
32153 + goto :goto_e
32155 + :catch_27
32156 + move-exception v0
32158 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
32160 + const-string v3, "PM,SecureSettings"
32162 + const-string/jumbo v4, "something went wrong with getting package name"
32164 + invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
32166 + const/4 v1, 0x0
32168 + goto :goto_e
32169 +.end method
32171 .method public static getString(Landroid/content/ContentResolver;Ljava/lang/String;)Ljava/lang/String;
32172 .registers 3
32174 @@ -1714,152 +1790,392 @@
32175 .end method
32177 .method public static getStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)Ljava/lang/String;
32178 - .registers 6
32179 + .registers 23
32181 - sget-object v0, Landroid/provider/Settings$Secure;->MOVED_TO_GLOBAL:Ljava/util/HashSet;
32182 + sget-object v3, Landroid/provider/Settings$Secure;->MOVED_TO_GLOBAL:Ljava/util/HashSet;
32184 - invoke-virtual {v0, p1}, Ljava/util/HashSet;->contains(Ljava/lang/Object;)Z
32185 + move-object/from16 v0, p1
32187 - move-result v0
32188 + invoke-virtual {v3, v0}, Ljava/util/HashSet;->contains(Ljava/lang/Object;)Z
32190 - if-eqz v0, :cond_31
32191 + move-result v3
32193 - const-string v0, "Settings"
32194 + if-eqz v3, :cond_35
32196 - new-instance v1, Ljava/lang/StringBuilder;
32197 + const-string v3, "Settings"
32199 - invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
32200 + new-instance v4, Ljava/lang/StringBuilder;
32202 - const-string v2, "Setting "
32203 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
32205 - invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
32206 + const-string v5, "Setting "
32208 - move-result-object v1
32209 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
32211 - invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
32212 + move-result-object v4
32214 - move-result-object v1
32215 + move-object/from16 v0, p1
32217 - const-string v2, " has moved from android.provider.Settings.Secure"
32218 + invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
32220 - invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
32221 + move-result-object v4
32223 - move-result-object v1
32224 + const-string v5, " has moved from android.provider.Settings.Secure"
32226 - const-string v2, " to android.provider.Settings.Global."
32227 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
32229 - invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
32230 + move-result-object v4
32232 - move-result-object v1
32233 + const-string v5, " to android.provider.Settings.Global."
32235 - invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
32236 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
32238 - move-result-object v1
32239 + move-result-object v4
32241 - invoke-static {v0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
32242 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
32244 - invoke-static {p0, p1, p2}, Landroid/provider/Settings$Global;->getStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)Ljava/lang/String;
32245 + move-result-object v4
32247 - move-result-object v0
32248 + invoke-static {v3, v4}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
32250 - :goto_30
32251 - return-object v0
32252 + invoke-static/range {p0 .. p2}, Landroid/provider/Settings$Global;->getStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)Ljava/lang/String;
32254 - :cond_31
32255 - sget-object v0, Landroid/provider/Settings$Secure;->MOVED_TO_LOCK_SETTINGS:Ljava/util/HashSet;
32256 + move-result-object v8
32258 - invoke-virtual {v0, p1}, Ljava/util/HashSet;->contains(Ljava/lang/Object;)Z
32259 + :goto_34
32260 + return-object v8
32262 - move-result v0
32263 + :cond_35
32264 + sget-object v3, Landroid/provider/Settings$Secure;->MOVED_TO_LOCK_SETTINGS:Ljava/util/HashSet;
32266 - if-eqz v0, :cond_6f
32267 + move-object/from16 v0, p1
32269 - const-class v1, Landroid/provider/Settings$Secure;
32270 + invoke-virtual {v3, v0}, Ljava/util/HashSet;->contains(Ljava/lang/Object;)Z
32272 - monitor-enter v1
32273 + move-result v3
32275 - :try_start_3c
32276 - sget-object v0, Landroid/provider/Settings$Secure;->sLockSettings:Lcom/android/internal/widget/ILockSettings;
32277 + if-eqz v3, :cond_79
32279 - if-nez v0, :cond_57
32280 + const-class v4, Landroid/provider/Settings$Secure;
32282 - const-string v0, "lock_settings"
32283 + monitor-enter v4
32285 - invoke-static {v0}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
32286 + :try_start_42
32287 + sget-object v3, Landroid/provider/Settings$Secure;->sLockSettings:Lcom/android/internal/widget/ILockSettings;
32289 - move-result-object v0
32290 + if-nez v3, :cond_5d
32292 - invoke-static {v0}, Lcom/android/internal/widget/ILockSettings$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/widget/ILockSettings;
32293 + const-string v3, "lock_settings"
32295 - move-result-object v0
32296 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
32298 - sput-object v0, Landroid/provider/Settings$Secure;->sLockSettings:Lcom/android/internal/widget/ILockSettings;
32299 + move-result-object v3
32301 + invoke-static {v3}, Lcom/android/internal/widget/ILockSettings$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/widget/ILockSettings;
32303 + move-result-object v3
32305 + sput-object v3, Landroid/provider/Settings$Secure;->sLockSettings:Lcom/android/internal/widget/ILockSettings;
32307 invoke-static {}, Landroid/os/Process;->myUid()I
32309 - move-result v0
32310 + move-result v3
32312 - const/16 v2, 0x3e8
32313 + const/16 v5, 0x3e8
32315 - if-ne v0, v2, :cond_69
32316 + if-ne v3, v5, :cond_73
32318 - const/4 v0, 0x1
32319 + const/4 v3, 0x1
32321 - :goto_55
32322 - sput-boolean v0, Landroid/provider/Settings$Secure;->sIsSystemProcess:Z
32323 + :goto_5b
32324 + sput-boolean v3, Landroid/provider/Settings$Secure;->sIsSystemProcess:Z
32326 - :cond_57
32327 - monitor-exit v1
32328 - :try_end_58
32329 - .catchall {:try_start_3c .. :try_end_58} :catchall_6b
32330 + :cond_5d
32331 + monitor-exit v4
32332 + :try_end_5e
32333 + .catchall {:try_start_42 .. :try_end_5e} :catchall_75
32335 - sget-object v0, Landroid/provider/Settings$Secure;->sLockSettings:Lcom/android/internal/widget/ILockSettings;
32336 + sget-object v3, Landroid/provider/Settings$Secure;->sLockSettings:Lcom/android/internal/widget/ILockSettings;
32338 - if-eqz v0, :cond_6f
32339 + if-eqz v3, :cond_79
32341 - sget-boolean v0, Landroid/provider/Settings$Secure;->sIsSystemProcess:Z
32342 + sget-boolean v3, Landroid/provider/Settings$Secure;->sIsSystemProcess:Z
32344 - if-nez v0, :cond_6f
32345 + if-nez v3, :cond_79
32347 - :try_start_60
32348 - sget-object v0, Landroid/provider/Settings$Secure;->sLockSettings:Lcom/android/internal/widget/ILockSettings;
32349 + :try_start_66
32350 + sget-object v3, Landroid/provider/Settings$Secure;->sLockSettings:Lcom/android/internal/widget/ILockSettings;
32352 - const-string v1, "0"
32353 + const-string v4, "0"
32355 - invoke-interface {v0, p1, v1, p2}, Lcom/android/internal/widget/ILockSettings;->getString(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;
32356 - :try_end_67
32357 - .catch Landroid/os/RemoteException; {:try_start_60 .. :try_end_67} :catch_6e
32358 + move-object/from16 v0, p1
32360 - move-result-object v0
32361 + move/from16 v1, p2
32363 - goto :goto_30
32364 + invoke-interface {v3, v0, v4, v1}, Lcom/android/internal/widget/ILockSettings;->getString(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;
32365 + :try_end_71
32366 + .catch Landroid/os/RemoteException; {:try_start_66 .. :try_end_71} :catch_78
32368 - :cond_69
32369 - const/4 v0, 0x0
32370 + move-result-object v8
32372 - goto :goto_55
32373 + goto :goto_34
32375 - :catchall_6b
32376 - move-exception v0
32377 + :cond_73
32378 + const/4 v3, 0x0
32380 - :try_start_6c
32381 - monitor-exit v1
32382 - :try_end_6d
32383 - .catchall {:try_start_6c .. :try_end_6d} :catchall_6b
32384 + goto :goto_5b
32386 - throw v0
32387 + :catchall_75
32388 + move-exception v3
32390 - :catch_6e
32391 - move-exception v0
32392 + :try_start_76
32393 + monitor-exit v4
32394 + :try_end_77
32395 + .catchall {:try_start_76 .. :try_end_77} :catchall_75
32397 - :cond_6f
32398 - sget-object v0, Landroid/provider/Settings$Secure;->sNameValueCache:Landroid/provider/Settings$NameValueCache;
32399 + throw v3
32401 - invoke-virtual {v0, p0, p1, p2}, Landroid/provider/Settings$NameValueCache;->getStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)Ljava/lang/String;
32402 + :catch_78
32403 + move-exception v3
32405 - move-result-object v0
32406 + :cond_79
32407 + const-string v3, "android_id"
32409 + move-object/from16 v0, p1
32411 + invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
32413 + move-result v3
32415 + if-eqz v3, :cond_f7
32417 + invoke-static {}, Landroid/provider/Settings$Secure;->initiate()V
32419 + :try_start_86
32420 + sget-object v3, Landroid/provider/Settings$Secure;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32422 + if-nez v3, :cond_9e
32424 + new-instance v3, Landroid/privacy/PrivacySettingsManager;
32426 + sget-object v4, Landroid/provider/Settings$Secure;->context:Landroid/content/Context;
32428 + const-string/jumbo v5, "privacy"
32430 + invoke-static {v5}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
32432 + move-result-object v5
32434 + invoke-static {v5}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
32436 + move-result-object v5
32438 + invoke-direct {v3, v4, v5}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
32440 + sput-object v3, Landroid/provider/Settings$Secure;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32442 + :cond_9e
32443 + sget-object v3, Landroid/provider/Settings$Secure;->mPm:Landroid/content/pm/IPackageManager;
32445 + if-nez v3, :cond_af
32447 + const-string/jumbo v3, "package"
32449 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
32451 + move-result-object v3
32453 + invoke-static {v3}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
32455 + move-result-object v3
32457 + sput-object v3, Landroid/provider/Settings$Secure;->mPm:Landroid/content/pm/IPackageManager;
32459 + :cond_af
32460 + const/16 v19, 0x0
32462 + invoke-static {}, Landroid/provider/Settings$Secure;->getPackageName()[Ljava/lang/String;
32464 + move-result-object v18
32466 + if-eqz v18, :cond_13c
32468 + move-object/from16 v0, v18
32470 + array-length v3, v0
32472 + if-lez v3, :cond_13c
32474 - goto :goto_30
32475 + const/16 v17, 0x0
32477 + :goto_be
32478 + move-object/from16 v0, v18
32480 + array-length v3, v0
32482 + move/from16 v0, v17
32484 + if-ge v0, v3, :cond_f7
32486 + sget-object v3, Landroid/provider/Settings$Secure;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32488 + aget-object v4, v18, v17
32490 + invoke-virtual {v3, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
32492 + move-result-object v19
32494 + if-eqz v19, :cond_11c
32496 + invoke-virtual/range {v19 .. v19}, Landroid/privacy/PrivacySettings;->getAndroidIdSetting()B
32498 + move-result v3
32500 + if-eqz v3, :cond_11c
32502 + invoke-virtual/range {v19 .. v19}, Landroid/privacy/PrivacySettings;->getAndroidID()Ljava/lang/String;
32504 + move-result-object v8
32506 + if-eqz v8, :cond_105
32508 + sget-object v3, Landroid/provider/Settings$Secure;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32510 + aget-object v4, v18, v17
32512 + const/4 v5, 0x0
32514 + invoke-virtual/range {v19 .. v19}, Landroid/privacy/PrivacySettings;->getAndroidIdSetting()B
32516 + move-result v6
32518 + const-string v7, "android_id"
32520 + const/4 v9, 0x0
32522 + invoke-virtual/range {v3 .. v9}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
32523 + :try_end_ea
32524 + .catch Ljava/lang/Exception; {:try_start_86 .. :try_end_ea} :catch_ec
32526 + goto/16 :goto_34
32528 + :catch_ec
32529 + move-exception v16
32531 + invoke-virtual/range {v16 .. v16}, Ljava/lang/Exception;->printStackTrace()V
32533 + const-string v3, "PM,SecureSettings"
32535 + const-string v4, "Got exception in getString()"
32537 + invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
32539 + :cond_f7
32540 + :goto_f7
32541 + sget-object v3, Landroid/provider/Settings$Secure;->sNameValueCache:Landroid/provider/Settings$NameValueCache;
32543 + move-object/from16 v0, p0
32545 + move-object/from16 v1, p1
32547 + move/from16 v2, p2
32549 + invoke-virtual {v3, v0, v1, v2}, Landroid/provider/Settings$NameValueCache;->getStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)Ljava/lang/String;
32551 + move-result-object v8
32553 + goto/16 :goto_34
32555 + :cond_105
32556 + :try_start_105
32557 + sget-object v9, Landroid/provider/Settings$Secure;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32559 + aget-object v10, v18, v17
32561 + const/4 v11, 0x0
32563 + invoke-virtual/range {v19 .. v19}, Landroid/privacy/PrivacySettings;->getAndroidIdSetting()B
32565 + move-result v12
32567 + const-string v13, "android_id"
32569 + const-string/jumbo v14, "q4a5w896ay21dr46"
32571 + const/4 v15, 0x0
32573 + invoke-virtual/range {v9 .. v15}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
32575 + const-string/jumbo v8, "q4a5w896ay21dr46"
32577 + goto/16 :goto_34
32579 + :cond_11c
32580 + move-object/from16 v0, v18
32582 + array-length v3, v0
32584 + add-int/lit8 v3, v3, -0x1
32586 + move/from16 v0, v17
32588 + if-ne v0, v3, :cond_137
32590 + sget-object v9, Landroid/provider/Settings$Secure;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32592 + move-object/from16 v0, v18
32594 + array-length v3, v0
32596 + add-int/lit8 v3, v3, -0x1
32598 + aget-object v10, v18, v3
32600 + const/4 v11, 0x0
32602 + const/4 v12, 0x0
32604 + const-string v13, "android_id"
32606 + const/4 v14, 0x0
32608 + const/4 v15, 0x0
32610 + invoke-virtual/range {v9 .. v15}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
32612 + :cond_137
32613 + const/16 v19, 0x0
32615 + add-int/lit8 v17, v17, 0x1
32617 + goto :goto_be
32619 + :cond_13c
32620 + sget-object v9, Landroid/provider/Settings$Secure;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32622 + move-object/from16 v0, v18
32624 + array-length v3, v0
32626 + add-int/lit8 v3, v3, -0x1
32628 + aget-object v10, v18, v3
32630 + const/4 v11, 0x0
32632 + const/4 v12, 0x0
32634 + const-string v13, "android_id"
32636 + const/4 v14, 0x0
32638 + const/4 v15, 0x0
32640 + invoke-virtual/range {v9 .. v15}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
32641 + :try_end_14e
32642 + .catch Ljava/lang/Exception; {:try_start_105 .. :try_end_14e} :catch_ec
32644 + goto :goto_f7
32645 .end method
32647 .method public static getUriFor(Ljava/lang/String;)Landroid/net/Uri;
32648 @@ -1926,6 +2242,71 @@
32649 goto :goto_32
32650 .end method
32652 +.method private static initiate()V
32653 + .registers 4
32655 + const/4 v1, 0x0
32657 + :try_start_1
32658 + sput-object v1, Landroid/provider/Settings$Secure;->context:Landroid/content/Context;
32660 + new-instance v1, Landroid/privacy/PrivacySettingsManager;
32662 + sget-object v2, Landroid/provider/Settings$Secure;->context:Landroid/content/Context;
32664 + const-string/jumbo v3, "privacy"
32666 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
32668 + move-result-object v3
32670 + invoke-static {v3}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
32672 + move-result-object v3
32674 + invoke-direct {v1, v2, v3}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
32676 + sput-object v1, Landroid/provider/Settings$Secure;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32678 + const-string/jumbo v1, "package"
32680 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
32682 + move-result-object v1
32684 + invoke-static {v1}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
32686 + move-result-object v1
32688 + sput-object v1, Landroid/provider/Settings$Secure;->mPm:Landroid/content/pm/IPackageManager;
32690 + const/4 v1, 0x1
32692 + sput-boolean v1, Landroid/provider/Settings$Secure;->privacyMode:Z
32693 + :try_end_27
32694 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_27} :catch_28
32696 + :goto_27
32697 + return-void
32699 + :catch_28
32700 + move-exception v0
32702 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
32704 + const-string v1, "PM,SecureSettings"
32706 + const-string v2, "Something went wrong with initalize variables"
32708 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
32710 + const/4 v1, 0x0
32712 + sput-boolean v1, Landroid/provider/Settings$Secure;->privacyMode:Z
32714 + goto :goto_27
32715 +.end method
32717 .method public static final isLocationProviderEnabled(Landroid/content/ContentResolver;Ljava/lang/String;)Z
32718 .registers 3
32720 diff -Npru stock-framework/smali/android/service/wallpaper/WallpaperService$Engine.smali opd-framework/smali/android/service/wallpaper/WallpaperService$Engine.smali
32721 --- stock-framework/smali/android/service/wallpaper/WallpaperService$Engine.smali 2013-01-08 23:29:05.140096848 -0600
32722 +++ opd-framework/smali/android/service/wallpaper/WallpaperService$Engine.smali 2013-01-08 23:29:43.808288590 -0600
32723 @@ -748,7 +748,7 @@
32725 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
32727 - const-string v0, "mVisible="
32728 + const-string/jumbo v0, "mVisible="
32730 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
32732 @@ -842,7 +842,7 @@
32734 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
32736 - const-string v0, "mType="
32737 + const-string/jumbo v0, "mType="
32739 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
32741 @@ -884,7 +884,7 @@
32743 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
32745 - const-string v0, "mVisibleInsets="
32746 + const-string/jumbo v0, "mVisibleInsets="
32748 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
32750 @@ -944,7 +944,7 @@
32752 monitor-enter v1
32754 - :try_start_10e
32755 + :try_start_111
32756 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
32758 const-string v0, "mPendingXOffset="
32759 @@ -1001,7 +1001,7 @@
32761 iget-object v0, p0, Landroid/service/wallpaper/WallpaperService$Engine;->mPendingMove:Landroid/view/MotionEvent;
32763 - if-eqz v0, :cond_164
32764 + if-eqz v0, :cond_167
32766 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
32768 @@ -1013,17 +1013,17 @@
32770 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->println(Ljava/lang/Object;)V
32772 - :cond_164
32773 + :cond_167
32774 monitor-exit v1
32776 return-void
32778 - :catchall_166
32779 + :catchall_169
32780 move-exception v0
32782 monitor-exit v1
32783 - :try_end_168
32784 - .catchall {:try_start_10e .. :try_end_168} :catchall_166
32785 + :try_end_16b
32786 + .catchall {:try_start_111 .. :try_end_16b} :catchall_169
32788 throw v0
32789 .end method
32790 diff -Npru stock-framework/smali/android/speech/srec/MicrophoneInputStream.smali opd-framework/smali/android/speech/srec/MicrophoneInputStream.smali
32791 --- stock-framework/smali/android/speech/srec/MicrophoneInputStream.smali 2013-01-08 23:29:05.148096892 -0600
32792 +++ opd-framework/smali/android/speech/srec/MicrophoneInputStream.smali 2013-01-08 23:29:43.820288653 -0600
32793 @@ -4,14 +4,30 @@
32796 # static fields
32797 +.field private static final GOT_ERROR:I = -0x3
32799 +.field private static final IS_ALLOWED:I = -0x1
32801 +.field private static final IS_NOT_ALLOWED:I = -0x2
32803 +.field private static final PRIVACY_TAG:Ljava/lang/String; = "PM,MicrophoneInputStream"
32805 .field private static final TAG:Ljava/lang/String; = "MicrophoneInputStream"
32808 # instance fields
32809 +.field private context:Landroid/content/Context;
32811 .field private mAudioRecord:I
32813 .field private mOneByte:[B
32815 +.field private mPm:Landroid/content/pm/IPackageManager;
32817 +.field private pSetMan:Landroid/privacy/PrivacySettingsManager;
32819 +.field private privacyMode:Z
32822 # direct methods
32823 .method static constructor <clinit>()V
32824 @@ -25,79 +41,167 @@
32825 .end method
32827 .method public constructor <init>(II)V
32828 - .registers 7
32829 + .registers 14
32830 .annotation system Ldalvik/annotation/Throws;
32831 value = {
32832 Ljava/io/IOException;
32834 .end annotation
32836 + const/4 v5, 0x0
32838 + const/4 v3, 0x1
32840 + const/4 v2, 0x0
32842 invoke-direct {p0}, Ljava/io/InputStream;-><init>()V
32844 - const/4 v1, 0x0
32845 + iput-boolean v2, p0, Landroid/speech/srec/MicrophoneInputStream;->privacyMode:Z
32847 - iput v1, p0, Landroid/speech/srec/MicrophoneInputStream;->mAudioRecord:I
32848 + iput v2, p0, Landroid/speech/srec/MicrophoneInputStream;->mAudioRecord:I
32850 - const/4 v1, 0x1
32851 + new-array v0, v3, [B
32853 - new-array v1, v1, [B
32854 + iput-object v0, p0, Landroid/speech/srec/MicrophoneInputStream;->mOneByte:[B
32856 - iput-object v1, p0, Landroid/speech/srec/MicrophoneInputStream;->mOneByte:[B
32857 + iget-boolean v0, p0, Landroid/speech/srec/MicrophoneInputStream;->privacyMode:Z
32859 - invoke-static {p1, p2}, Landroid/speech/srec/MicrophoneInputStream;->AudioRecordNew(II)I
32860 + if-nez v0, :cond_15
32862 + invoke-direct {p0}, Landroid/speech/srec/MicrophoneInputStream;->initiate()V
32864 + :cond_15
32865 + invoke-direct {p0}, Landroid/speech/srec/MicrophoneInputStream;->checkIfPackagesAllowed()I
32867 + move-result v0
32869 + const/4 v1, -0x2
32871 + if-ne v0, v1, :cond_43
32873 + invoke-direct {p0, v2}, Landroid/speech/srec/MicrophoneInputStream;->dataAccess(Z)V
32875 + invoke-direct {p0}, Landroid/speech/srec/MicrophoneInputStream;->getPackageName()[Ljava/lang/String;
32877 + move-result-object v7
32879 + if-eqz v7, :cond_3b
32881 + iget-object v0, p0, Landroid/speech/srec/MicrophoneInputStream;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32883 + aget-object v1, v7, v2
32885 + const-string/jumbo v4, "recordAudio"
32887 - move-result v1
32888 + iget-object v6, p0, Landroid/speech/srec/MicrophoneInputStream;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32890 - iput v1, p0, Landroid/speech/srec/MicrophoneInputStream;->mAudioRecord:I
32891 + aget-object v9, v7, v2
32893 - iget v1, p0, Landroid/speech/srec/MicrophoneInputStream;->mAudioRecord:I
32894 + invoke-static {}, Landroid/os/Process;->myUid()I
32896 - if-nez v1, :cond_1d
32897 + move-result v10
32899 - new-instance v1, Ljava/io/IOException;
32900 + invoke-virtual {v6, v9, v10}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
32902 - const-string v2, "AudioRecord constructor failed - busy?"
32903 + move-result-object v6
32905 - invoke-direct {v1, v2}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
32906 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
32908 - throw v1
32909 + :cond_3b
32910 + new-instance v0, Ljava/io/IOException;
32912 - :cond_1d
32913 - iget v1, p0, Landroid/speech/srec/MicrophoneInputStream;->mAudioRecord:I
32914 + const-string v1, "AudioRecord constructor failed - busy?"
32916 - invoke-static {v1}, Landroid/speech/srec/MicrophoneInputStream;->AudioRecordStart(I)I
32917 + invoke-direct {v0, v1}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
32919 + throw v0
32921 + :cond_43
32922 + invoke-direct {p0, v3}, Landroid/speech/srec/MicrophoneInputStream;->dataAccess(Z)V
32924 + invoke-direct {p0}, Landroid/speech/srec/MicrophoneInputStream;->getPackageName()[Ljava/lang/String;
32926 + move-result-object v7
32928 + if-eqz v7, :cond_63
32930 + iget-object v0, p0, Landroid/speech/srec/MicrophoneInputStream;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32932 + aget-object v1, v7, v2
32934 + const-string/jumbo v4, "recordAudio"
32936 + iget-object v3, p0, Landroid/speech/srec/MicrophoneInputStream;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32938 + aget-object v6, v7, v2
32940 + invoke-static {}, Landroid/os/Process;->myUid()I
32942 + move-result v9
32944 + invoke-virtual {v3, v6, v9}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
32946 + move-result-object v6
32948 + move v3, v2
32950 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
32952 + :cond_63
32953 + invoke-static {p1, p2}, Landroid/speech/srec/MicrophoneInputStream;->AudioRecordNew(II)I
32955 move-result v0
32957 - if-eqz v0, :cond_41
32958 + iput v0, p0, Landroid/speech/srec/MicrophoneInputStream;->mAudioRecord:I
32960 + iget v0, p0, Landroid/speech/srec/MicrophoneInputStream;->mAudioRecord:I
32962 + if-nez v0, :cond_75
32964 + new-instance v0, Ljava/io/IOException;
32966 + const-string v1, "AudioRecord constructor failed - busy?"
32968 + invoke-direct {v0, v1}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
32970 + throw v0
32972 + :cond_75
32973 + iget v0, p0, Landroid/speech/srec/MicrophoneInputStream;->mAudioRecord:I
32975 + invoke-static {v0}, Landroid/speech/srec/MicrophoneInputStream;->AudioRecordStart(I)I
32977 + move-result v8
32979 + if-eqz v8, :cond_99
32981 invoke-virtual {p0}, Landroid/speech/srec/MicrophoneInputStream;->close()V
32983 - new-instance v1, Ljava/io/IOException;
32984 + new-instance v0, Ljava/io/IOException;
32986 - new-instance v2, Ljava/lang/StringBuilder;
32987 + new-instance v1, Ljava/lang/StringBuilder;
32989 - invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
32990 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
32992 - const-string v3, "AudioRecord start failed: "
32993 + const-string v2, "AudioRecord start failed: "
32995 - invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
32996 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
32998 - move-result-object v2
32999 + move-result-object v1
33001 - invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
33002 + invoke-virtual {v1, v8}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
33004 - move-result-object v2
33005 + move-result-object v1
33007 - invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
33008 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
33010 - move-result-object v2
33011 + move-result-object v1
33013 - invoke-direct {v1, v2}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
33014 + invoke-direct {v0, v1}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
33016 - throw v1
33017 + throw v0
33019 - :cond_41
33020 + :cond_99
33021 return-void
33022 .end method
33024 @@ -131,6 +235,334 @@
33025 .end annotation
33026 .end method
33028 +.method private checkIfPackagesAllowed()I
33029 + .registers 9
33031 + const/4 v5, -0x3
33033 + :try_start_1
33034 + iget-object v6, p0, Landroid/speech/srec/MicrophoneInputStream;->pSetMan:Landroid/privacy/PrivacySettingsManager;
33036 + if-eqz v6, :cond_41
33038 + const/4 v2, 0x0
33040 + invoke-direct {p0}, Landroid/speech/srec/MicrophoneInputStream;->getPackageName()[Ljava/lang/String;
33042 + move-result-object v3
33044 + invoke-static {}, Landroid/os/Process;->myUid()I
33046 + move-result v4
33048 + if-eqz v3, :cond_2c
33050 + const/4 v1, 0x0
33052 + :goto_11
33053 + array-length v6, v3
33055 + if-ge v1, v6, :cond_2a
33057 + iget-object v6, p0, Landroid/speech/srec/MicrophoneInputStream;->pSetMan:Landroid/privacy/PrivacySettingsManager;
33059 + aget-object v7, v3, v1
33061 + invoke-virtual {v6, v7, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
33063 + move-result-object v2
33065 + if-eqz v2, :cond_26
33067 + invoke-virtual {v2}, Landroid/privacy/PrivacySettings;->getRecordAudioSetting()B
33069 + move-result v6
33071 + if-eqz v6, :cond_26
33073 + const/4 v5, -0x2
33075 + :goto_25
33076 + return v5
33078 + :cond_26
33079 + const/4 v2, 0x0
33081 + add-int/lit8 v1, v1, 0x1
33083 + goto :goto_11
33085 + :cond_2a
33086 + const/4 v5, -0x1
33088 + goto :goto_25
33090 + :cond_2c
33091 + const-string v6, "PM,MicrophoneInputStream"
33093 + const-string/jumbo v7, "return GOT_ERROR, because package_names are NULL"
33095 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
33096 + :try_end_34
33097 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_34} :catch_35
33099 + goto :goto_25
33101 + :catch_35
33102 + move-exception v0
33104 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
33106 + const-string v6, "PM,MicrophoneInputStream"
33108 + const-string v7, "Got exception in checkIfPackagesAllowed"
33110 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
33112 + goto :goto_25
33114 + :cond_41
33115 + :try_start_41
33116 + const-string v6, "PM,MicrophoneInputStream"
33118 + const-string/jumbo v7, "return GOT_ERROR, because pSetMan is NULL"
33120 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
33121 + :try_end_49
33122 + .catch Ljava/lang/Exception; {:try_start_41 .. :try_end_49} :catch_35
33124 + goto :goto_25
33125 +.end method
33127 +.method private dataAccess(Z)V
33128 + .registers 7
33130 + invoke-direct {p0}, Landroid/speech/srec/MicrophoneInputStream;->getPackageName()[Ljava/lang/String;
33132 + move-result-object v1
33134 + if-eqz p1, :cond_2f
33136 + if-eqz v1, :cond_2f
33138 + const/4 v0, 0x0
33140 + :goto_9
33141 + array-length v2, v1
33143 + if-ge v0, v2, :cond_58
33145 + const-string v2, "PM,MicrophoneInputStream"
33147 + new-instance v3, Ljava/lang/StringBuilder;
33149 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
33151 + const-string v4, "Allowed Package: -"
33153 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
33155 + move-result-object v3
33157 + aget-object v4, v1, v0
33159 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
33161 + move-result-object v3
33163 + const-string v4, "- accessing microphone."
33165 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
33167 + move-result-object v3
33169 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
33171 + move-result-object v3
33173 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
33175 + add-int/lit8 v0, v0, 0x1
33177 + goto :goto_9
33179 + :cond_2f
33180 + if-eqz v1, :cond_58
33182 + const/4 v0, 0x0
33184 + :goto_32
33185 + array-length v2, v1
33187 + if-ge v0, v2, :cond_58
33189 + const-string v2, "PM,MicrophoneInputStream"
33191 + new-instance v3, Ljava/lang/StringBuilder;
33193 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
33195 + const-string v4, "Blocked Package: -"
33197 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
33199 + move-result-object v3
33201 + aget-object v4, v1, v0
33203 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
33205 + move-result-object v3
33207 + const-string v4, "- accessing microphone."
33209 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
33211 + move-result-object v3
33213 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
33215 + move-result-object v3
33217 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
33219 + add-int/lit8 v0, v0, 0x1
33221 + goto :goto_32
33223 + :cond_58
33224 + return-void
33225 +.end method
33227 +.method private getPackageName()[Ljava/lang/String;
33228 + .registers 6
33230 + :try_start_0
33231 + iget-object v3, p0, Landroid/speech/srec/MicrophoneInputStream;->mPm:Landroid/content/pm/IPackageManager;
33233 + if-eqz v3, :cond_f
33235 + invoke-static {}, Landroid/os/Process;->myUid()I
33237 + move-result v2
33239 + iget-object v3, p0, Landroid/speech/srec/MicrophoneInputStream;->mPm:Landroid/content/pm/IPackageManager;
33241 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
33243 + move-result-object v1
33245 + :goto_e
33246 + return-object v1
33248 + :cond_f
33249 + const-string/jumbo v3, "package"
33251 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
33253 + move-result-object v3
33255 + invoke-static {v3}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
33257 + move-result-object v3
33259 + iput-object v3, p0, Landroid/speech/srec/MicrophoneInputStream;->mPm:Landroid/content/pm/IPackageManager;
33261 + invoke-static {}, Landroid/os/Process;->myUid()I
33263 + move-result v2
33265 + iget-object v3, p0, Landroid/speech/srec/MicrophoneInputStream;->mPm:Landroid/content/pm/IPackageManager;
33267 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
33268 + :try_end_25
33269 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_25} :catch_27
33271 + move-result-object v1
33273 + goto :goto_e
33275 + :catch_27
33276 + move-exception v0
33278 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
33280 + const-string v3, "PM,MicrophoneInputStream"
33282 + const-string/jumbo v4, "something went wrong with getting package name"
33284 + invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
33286 + const/4 v1, 0x0
33288 + goto :goto_e
33289 +.end method
33291 +.method private initiate()V
33292 + .registers 5
33294 + const/4 v1, 0x0
33296 + :try_start_1
33297 + iput-object v1, p0, Landroid/speech/srec/MicrophoneInputStream;->context:Landroid/content/Context;
33299 + new-instance v1, Landroid/privacy/PrivacySettingsManager;
33301 + iget-object v2, p0, Landroid/speech/srec/MicrophoneInputStream;->context:Landroid/content/Context;
33303 + const-string/jumbo v3, "privacy"
33305 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
33307 + move-result-object v3
33309 + invoke-static {v3}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
33311 + move-result-object v3
33313 + invoke-direct {v1, v2, v3}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
33315 + iput-object v1, p0, Landroid/speech/srec/MicrophoneInputStream;->pSetMan:Landroid/privacy/PrivacySettingsManager;
33317 + const-string/jumbo v1, "package"
33319 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
33321 + move-result-object v1
33323 + invoke-static {v1}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
33325 + move-result-object v1
33327 + iput-object v1, p0, Landroid/speech/srec/MicrophoneInputStream;->mPm:Landroid/content/pm/IPackageManager;
33329 + const/4 v1, 0x1
33331 + iput-boolean v1, p0, Landroid/speech/srec/MicrophoneInputStream;->privacyMode:Z
33332 + :try_end_27
33333 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_27} :catch_28
33335 + :goto_27
33336 + return-void
33338 + :catch_28
33339 + move-exception v0
33341 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
33343 + const-string v1, "PM,MicrophoneInputStream"
33345 + const-string v2, "Something went wrong with initalize variables"
33347 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
33349 + const/4 v1, 0x0
33351 + iput-boolean v1, p0, Landroid/speech/srec/MicrophoneInputStream;->privacyMode:Z
33353 + goto :goto_27
33354 +.end method
33357 # virtual methods
33358 .method public close()V
33359 diff -Npru stock-framework/smali/android/telephony/PhoneStateListener$1.smali opd-framework/smali/android/telephony/PhoneStateListener$1.smali
33360 --- stock-framework/smali/android/telephony/PhoneStateListener$1.smali 2013-01-08 23:29:05.196097130 -0600
33361 +++ opd-framework/smali/android/telephony/PhoneStateListener$1.smali 2013-01-08 23:29:43.880288948 -0600
33362 @@ -64,23 +64,196 @@
33363 .end method
33365 .method public onCallStateChanged(ILjava/lang/String;)V
33366 - .registers 6
33367 + .registers 19
33369 - iget-object v0, p0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33370 + move-object/from16 v0, p0
33372 - iget-object v0, v0, Landroid/telephony/PhoneStateListener;->mHandler:Landroid/os/Handler;
33373 + iget-object v3, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33375 - const/16 v1, 0x20
33376 + #getter for: Landroid/telephony/PhoneStateListener;->context:Landroid/content/Context;
33377 + invoke-static {v3}, Landroid/telephony/PhoneStateListener;->access$000(Landroid/telephony/PhoneStateListener;)Landroid/content/Context;
33379 - const/4 v2, 0x0
33380 + move-result-object v3
33382 - invoke-static {v0, v1, p1, v2, p2}, Landroid/os/Message;->obtain(Landroid/os/Handler;IIILjava/lang/Object;)Landroid/os/Message;
33383 + if-eqz v3, :cond_99
33385 - move-result-object v0
33386 + if-eqz p2, :cond_99
33388 - invoke-virtual {v0}, Landroid/os/Message;->sendToTarget()V
33389 + invoke-virtual/range {p2 .. p2}, Ljava/lang/String;->isEmpty()Z
33391 + move-result v3
33393 + if-nez v3, :cond_99
33395 + move-object/from16 v0, p0
33397 + iget-object v3, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33399 + #getter for: Landroid/telephony/PhoneStateListener;->context:Landroid/content/Context;
33400 + invoke-static {v3}, Landroid/telephony/PhoneStateListener;->access$000(Landroid/telephony/PhoneStateListener;)Landroid/content/Context;
33402 + move-result-object v3
33404 + const-string/jumbo v4, "privacy"
33406 + invoke-virtual {v3, v4}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
33408 + move-result-object v2
33410 + check-cast v2, Landroid/privacy/PrivacySettingsManager;
33412 + move-object/from16 v0, p0
33414 + iget-object v3, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33416 + #getter for: Landroid/telephony/PhoneStateListener;->packageName:Ljava/lang/String;
33417 + invoke-static {v3}, Landroid/telephony/PhoneStateListener;->access$100(Landroid/telephony/PhoneStateListener;)Ljava/lang/String;
33419 + move-result-object v3
33421 + move-object/from16 v0, p0
33423 + iget-object v4, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33425 + #getter for: Landroid/telephony/PhoneStateListener;->uid:I
33426 + invoke-static {v4}, Landroid/telephony/PhoneStateListener;->access$200(Landroid/telephony/PhoneStateListener;)I
33428 + move-result v4
33430 + invoke-virtual {v2, v3, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
33432 + move-result-object v8
33434 + if-eqz v8, :cond_6a
33436 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getIncomingCallsSetting()B
33438 + move-result v3
33440 + if-eqz v3, :cond_6a
33442 + const-string v7, ""
33444 + move-object/from16 v0, p0
33446 + iget-object v3, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33448 + iget-object v3, v3, Landroid/telephony/PhoneStateListener;->mHandler:Landroid/os/Handler;
33450 + const/16 v4, 0x20
33452 + const/4 v5, 0x0
33454 + move/from16 v0, p1
33456 + invoke-static {v3, v4, v0, v5, v7}, Landroid/os/Message;->obtain(Landroid/os/Handler;IIILjava/lang/Object;)Landroid/os/Message;
33458 + move-result-object v3
33460 + invoke-virtual {v3}, Landroid/os/Message;->sendToTarget()V
33462 + move-object/from16 v0, p0
33464 + iget-object v3, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33466 + #getter for: Landroid/telephony/PhoneStateListener;->packageName:Ljava/lang/String;
33467 + invoke-static {v3}, Landroid/telephony/PhoneStateListener;->access$100(Landroid/telephony/PhoneStateListener;)Ljava/lang/String;
33469 + move-result-object v3
33471 + move-object/from16 v0, p0
33473 + iget-object v4, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33475 + #getter for: Landroid/telephony/PhoneStateListener;->uid:I
33476 + invoke-static {v4}, Landroid/telephony/PhoneStateListener;->access$200(Landroid/telephony/PhoneStateListener;)I
33478 + move-result v4
33480 + const/4 v5, 0x1
33482 + const-string v6, "incomingCall"
33484 + invoke-virtual/range {v2 .. v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
33486 + :goto_69
33487 return-void
33489 + :cond_6a
33490 + move-object/from16 v0, p0
33492 + iget-object v3, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33494 + iget-object v3, v3, Landroid/telephony/PhoneStateListener;->mHandler:Landroid/os/Handler;
33496 + const/16 v4, 0x20
33498 + const/4 v5, 0x0
33500 + move/from16 v0, p1
33502 + move-object/from16 v1, p2
33504 + invoke-static {v3, v4, v0, v5, v1}, Landroid/os/Message;->obtain(Landroid/os/Handler;IIILjava/lang/Object;)Landroid/os/Message;
33506 + move-result-object v3
33508 + invoke-virtual {v3}, Landroid/os/Message;->sendToTarget()V
33510 + move-object/from16 v0, p0
33512 + iget-object v3, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33514 + #getter for: Landroid/telephony/PhoneStateListener;->packageName:Ljava/lang/String;
33515 + invoke-static {v3}, Landroid/telephony/PhoneStateListener;->access$100(Landroid/telephony/PhoneStateListener;)Ljava/lang/String;
33517 + move-result-object v10
33519 + move-object/from16 v0, p0
33521 + iget-object v3, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33523 + #getter for: Landroid/telephony/PhoneStateListener;->uid:I
33524 + invoke-static {v3}, Landroid/telephony/PhoneStateListener;->access$200(Landroid/telephony/PhoneStateListener;)I
33526 + move-result v11
33528 + const/4 v12, 0x0
33530 + const-string v13, "incomingCall"
33532 + move-object v9, v2
33534 + move-object/from16 v14, p2
33536 + move-object v15, v8
33538 + invoke-virtual/range {v9 .. v15}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
33540 + goto :goto_69
33542 + :cond_99
33543 + move-object/from16 v0, p0
33545 + iget-object v3, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33547 + iget-object v3, v3, Landroid/telephony/PhoneStateListener;->mHandler:Landroid/os/Handler;
33549 + const/16 v4, 0x20
33551 + const/4 v5, 0x0
33553 + move/from16 v0, p1
33555 + move-object/from16 v1, p2
33557 + invoke-static {v3, v4, v0, v5, v1}, Landroid/os/Message;->obtain(Landroid/os/Handler;IIILjava/lang/Object;)Landroid/os/Message;
33559 + move-result-object v3
33561 + invoke-virtual {v3}, Landroid/os/Message;->sendToTarget()V
33563 + goto :goto_69
33564 .end method
33566 .method public onCellInfoChanged(Ljava/util/List;)V
33567 @@ -113,27 +286,124 @@
33568 .end method
33570 .method public onCellLocationChanged(Landroid/os/Bundle;)V
33571 - .registers 6
33572 + .registers 10
33574 + const/4 v5, 0x0
33576 const/4 v3, 0x0
33578 invoke-static {p1}, Landroid/telephony/CellLocation;->newFromBundle(Landroid/os/Bundle;)Landroid/telephony/CellLocation;
33580 + move-result-object v7
33582 + iget-object v1, p0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33584 + #getter for: Landroid/telephony/PhoneStateListener;->context:Landroid/content/Context;
33585 + invoke-static {v1}, Landroid/telephony/PhoneStateListener;->access$000(Landroid/telephony/PhoneStateListener;)Landroid/content/Context;
33587 + move-result-object v1
33589 + if-eqz v1, :cond_4a
33591 + iget-object v1, p0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33593 + #getter for: Landroid/telephony/PhoneStateListener;->context:Landroid/content/Context;
33594 + invoke-static {v1}, Landroid/telephony/PhoneStateListener;->access$000(Landroid/telephony/PhoneStateListener;)Landroid/content/Context;
33596 + move-result-object v1
33598 + const-string/jumbo v2, "privacy"
33600 + invoke-virtual {v1, v2}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
33602 move-result-object v0
33604 + check-cast v0, Landroid/privacy/PrivacySettingsManager;
33606 + iget-object v1, p0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33608 + #getter for: Landroid/telephony/PhoneStateListener;->packageName:Ljava/lang/String;
33609 + invoke-static {v1}, Landroid/telephony/PhoneStateListener;->access$100(Landroid/telephony/PhoneStateListener;)Ljava/lang/String;
33611 + move-result-object v1
33613 + iget-object v2, p0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33615 + #getter for: Landroid/telephony/PhoneStateListener;->uid:I
33616 + invoke-static {v2}, Landroid/telephony/PhoneStateListener;->access$200(Landroid/telephony/PhoneStateListener;)I
33618 + move-result v2
33620 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
33622 + move-result-object v6
33624 + if-eqz v6, :cond_4b
33626 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
33628 + move-result v1
33630 + if-eqz v1, :cond_4b
33632 + iget-object v1, p0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33634 + #getter for: Landroid/telephony/PhoneStateListener;->packageName:Ljava/lang/String;
33635 + invoke-static {v1}, Landroid/telephony/PhoneStateListener;->access$100(Landroid/telephony/PhoneStateListener;)Ljava/lang/String;
33637 + move-result-object v1
33639 + iget-object v2, p0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33641 + #getter for: Landroid/telephony/PhoneStateListener;->uid:I
33642 + invoke-static {v2}, Landroid/telephony/PhoneStateListener;->access$200(Landroid/telephony/PhoneStateListener;)I
33644 + move-result v2
33646 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
33648 + move-result v3
33650 + const-string v4, "locationNetwork"
33652 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
33654 + :cond_4a
33655 + :goto_4a
33656 + return-void
33658 + :cond_4b
33659 iget-object v1, p0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33661 iget-object v1, v1, Landroid/telephony/PhoneStateListener;->mHandler:Landroid/os/Handler;
33663 const/16 v2, 0x10
33665 - invoke-static {v1, v2, v3, v3, v0}, Landroid/os/Message;->obtain(Landroid/os/Handler;IIILjava/lang/Object;)Landroid/os/Message;
33666 + invoke-static {v1, v2, v3, v3, v7}, Landroid/os/Message;->obtain(Landroid/os/Handler;IIILjava/lang/Object;)Landroid/os/Message;
33668 move-result-object v1
33670 invoke-virtual {v1}, Landroid/os/Message;->sendToTarget()V
33672 - return-void
33673 + iget-object v1, p0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33675 + #getter for: Landroid/telephony/PhoneStateListener;->packageName:Ljava/lang/String;
33676 + invoke-static {v1}, Landroid/telephony/PhoneStateListener;->access$100(Landroid/telephony/PhoneStateListener;)Ljava/lang/String;
33678 + move-result-object v1
33680 + iget-object v2, p0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33682 + #getter for: Landroid/telephony/PhoneStateListener;->uid:I
33683 + invoke-static {v2}, Landroid/telephony/PhoneStateListener;->access$200(Landroid/telephony/PhoneStateListener;)I
33685 + move-result v2
33687 + const-string v4, "locationNetwork"
33689 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
33691 + goto :goto_4a
33692 .end method
33694 .method public onDataActivity(I)V
33695 diff -Npru stock-framework/smali/android/telephony/PhoneStateListener.smali opd-framework/smali/android/telephony/PhoneStateListener.smali
33696 --- stock-framework/smali/android/telephony/PhoneStateListener.smali 2013-01-08 23:29:03.636089390 -0600
33697 +++ opd-framework/smali/android/telephony/PhoneStateListener.smali 2013-01-08 23:29:42.820283692 -0600
33698 @@ -31,12 +31,20 @@
33700 .field public static final LISTEN_SIGNAL_STRENGTHS:I = 0x100
33702 +.field private static final TAG:Ljava/lang/String; = "PhoneStateListener"
33705 # instance fields
33706 .field callback:Lcom/android/internal/telephony/IPhoneStateListener;
33708 +.field private context:Landroid/content/Context;
33710 .field mHandler:Landroid/os/Handler;
33712 +.field private packageName:Ljava/lang/String;
33714 +.field private uid:I
33717 # direct methods
33718 .method public constructor <init>()V
33719 @@ -59,6 +67,30 @@
33720 return-void
33721 .end method
33723 +.method static synthetic access$000(Landroid/telephony/PhoneStateListener;)Landroid/content/Context;
33724 + .registers 2
33726 + iget-object v0, p0, Landroid/telephony/PhoneStateListener;->context:Landroid/content/Context;
33728 + return-object v0
33729 +.end method
33731 +.method static synthetic access$100(Landroid/telephony/PhoneStateListener;)Ljava/lang/String;
33732 + .registers 2
33734 + iget-object v0, p0, Landroid/telephony/PhoneStateListener;->packageName:Ljava/lang/String;
33736 + return-object v0
33737 +.end method
33739 +.method static synthetic access$200(Landroid/telephony/PhoneStateListener;)I
33740 + .registers 2
33742 + iget v0, p0, Landroid/telephony/PhoneStateListener;->uid:I
33744 + return v0
33745 +.end method
33748 # virtual methods
33749 .method public onCallForwardingIndicatorChanged(Z)V
33750 @@ -143,3 +175,27 @@
33752 return-void
33753 .end method
33755 +.method public setContext(Landroid/content/Context;)V
33756 + .registers 2
33758 + iput-object p1, p0, Landroid/telephony/PhoneStateListener;->context:Landroid/content/Context;
33760 + return-void
33761 +.end method
33763 +.method public setPackageName(Ljava/lang/String;)V
33764 + .registers 2
33766 + iput-object p1, p0, Landroid/telephony/PhoneStateListener;->packageName:Ljava/lang/String;
33768 + return-void
33769 +.end method
33771 +.method public setUid(I)V
33772 + .registers 2
33774 + iput p1, p0, Landroid/telephony/PhoneStateListener;->uid:I
33776 + return-void
33777 +.end method
33778 diff -Npru stock-framework/smali/android/telephony/ServiceState.smali opd-framework/smali/android/telephony/ServiceState.smali
33779 --- stock-framework/smali/android/telephony/ServiceState.smali 2013-01-08 23:29:05.196097130 -0600
33780 +++ opd-framework/smali/android/telephony/ServiceState.smali 2013-01-08 23:29:43.884288974 -0600
33781 @@ -668,48 +668,6 @@
33782 return-void
33783 .end method
33785 -.method private setNullState(I)V
33786 - .registers 5
33788 - const/4 v2, 0x0
33790 - const/4 v1, 0x0
33792 - const/4 v0, -0x1
33794 - iput p1, p0, Landroid/telephony/ServiceState;->mState:I
33796 - iput-boolean v1, p0, Landroid/telephony/ServiceState;->mRoaming:Z
33798 - iput-object v2, p0, Landroid/telephony/ServiceState;->mOperatorAlphaLong:Ljava/lang/String;
33800 - iput-object v2, p0, Landroid/telephony/ServiceState;->mOperatorAlphaShort:Ljava/lang/String;
33802 - iput-object v2, p0, Landroid/telephony/ServiceState;->mOperatorNumeric:Ljava/lang/String;
33804 - iput-boolean v1, p0, Landroid/telephony/ServiceState;->mIsManualNetworkSelection:Z
33806 - iput v1, p0, Landroid/telephony/ServiceState;->mRadioTechnology:I
33808 - iput-boolean v1, p0, Landroid/telephony/ServiceState;->mCssIndicator:Z
33810 - iput v0, p0, Landroid/telephony/ServiceState;->mNetworkId:I
33812 - iput v0, p0, Landroid/telephony/ServiceState;->mSystemId:I
33814 - iput v0, p0, Landroid/telephony/ServiceState;->mCdmaRoamingIndicator:I
33816 - iput v0, p0, Landroid/telephony/ServiceState;->mCdmaDefaultRoamingIndicator:I
33818 - iput v0, p0, Landroid/telephony/ServiceState;->mCdmaEriIconIndex:I
33820 - iput v0, p0, Landroid/telephony/ServiceState;->mCdmaEriIconMode:I
33822 - iput-boolean v1, p0, Landroid/telephony/ServiceState;->mIsEmergencyOnly:Z
33824 - return-void
33825 -.end method
33828 # virtual methods
33829 .method protected copyFrom(Landroid/telephony/ServiceState;)V
33830 @@ -1511,6 +1469,48 @@
33831 return-void
33832 .end method
33834 +.method setNullState(I)V
33835 + .registers 5
33837 + const/4 v2, 0x0
33839 + const/4 v1, 0x0
33841 + const/4 v0, -0x1
33843 + iput p1, p0, Landroid/telephony/ServiceState;->mState:I
33845 + iput-boolean v1, p0, Landroid/telephony/ServiceState;->mRoaming:Z
33847 + iput-object v2, p0, Landroid/telephony/ServiceState;->mOperatorAlphaLong:Ljava/lang/String;
33849 + iput-object v2, p0, Landroid/telephony/ServiceState;->mOperatorAlphaShort:Ljava/lang/String;
33851 + iput-object v2, p0, Landroid/telephony/ServiceState;->mOperatorNumeric:Ljava/lang/String;
33853 + iput-boolean v1, p0, Landroid/telephony/ServiceState;->mIsManualNetworkSelection:Z
33855 + iput v1, p0, Landroid/telephony/ServiceState;->mRadioTechnology:I
33857 + iput-boolean v1, p0, Landroid/telephony/ServiceState;->mCssIndicator:Z
33859 + iput v0, p0, Landroid/telephony/ServiceState;->mNetworkId:I
33861 + iput v0, p0, Landroid/telephony/ServiceState;->mSystemId:I
33863 + iput v0, p0, Landroid/telephony/ServiceState;->mCdmaRoamingIndicator:I
33865 + iput v0, p0, Landroid/telephony/ServiceState;->mCdmaDefaultRoamingIndicator:I
33867 + iput v0, p0, Landroid/telephony/ServiceState;->mCdmaEriIconIndex:I
33869 + iput v0, p0, Landroid/telephony/ServiceState;->mCdmaEriIconMode:I
33871 + iput-boolean v1, p0, Landroid/telephony/ServiceState;->mIsEmergencyOnly:Z
33873 + return-void
33874 +.end method
33876 .method public setOperatorAlphaLong(Ljava/lang/String;)V
33877 .registers 2
33879 @@ -1560,7 +1560,7 @@
33881 const/4 v0, 0x3
33883 - invoke-direct {p0, v0}, Landroid/telephony/ServiceState;->setNullState(I)V
33884 + invoke-virtual {p0, v0}, Landroid/telephony/ServiceState;->setNullState(I)V
33886 return-void
33887 .end method
33888 @@ -1570,7 +1570,7 @@
33890 const/4 v0, 0x1
33892 - invoke-direct {p0, v0}, Landroid/telephony/ServiceState;->setNullState(I)V
33893 + invoke-virtual {p0, v0}, Landroid/telephony/ServiceState;->setNullState(I)V
33895 return-void
33896 .end method
33897 diff -Npru stock-framework/smali/com/android/internal/os/BatteryStatsImpl$StopwatchTimer.smali opd-framework/smali/com/android/internal/os/BatteryStatsImpl$StopwatchTimer.smali
33898 --- stock-framework/smali/com/android/internal/os/BatteryStatsImpl$StopwatchTimer.smali 2013-01-08 23:29:06.140101806 -0600
33899 +++ opd-framework/smali/com/android/internal/os/BatteryStatsImpl$StopwatchTimer.smali 2013-01-08 23:29:44.864293829 -0600
33900 @@ -307,7 +307,7 @@
33902 move-result-object v0
33904 - const-string v1, "mUpdateTime="
33905 + const-string/jumbo v1, "mUpdateTime="
33907 invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
33909 diff -Npru stock-framework/smali/com/android/internal/os/BatteryStatsImpl$Timer.smali opd-framework/smali/com/android/internal/os/BatteryStatsImpl$Timer.smali
33910 --- stock-framework/smali/com/android/internal/os/BatteryStatsImpl$Timer.smali 2013-01-08 23:29:06.136101787 -0600
33911 +++ opd-framework/smali/com/android/internal/os/BatteryStatsImpl$Timer.smali 2013-01-08 23:29:44.860293811 -0600
33912 @@ -330,7 +330,7 @@
33914 move-result-object v0
33916 - const-string v1, "mTotalTime="
33917 + const-string/jumbo v1, "mTotalTime="
33919 invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;