Huge refactor for 4.2
[auto-patcher.git] / patches / opd / 4.2 / aokp / 20130109 / framework.patch
blob9b7485d08319f3d720745c934de7041e4703b0ef
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-09 02:52:58.987611513 -0600
3 +++ opd-framework/smali/android/app/BackStackRecord.smali 2013-01-09 02:52:38.751511170 -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-09 02:52:58.991611535 -0600
360 +++ opd-framework/smali/android/app/ContextImpl$10.smali 2013-01-09 02:52:38.755511194 -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-09 02:52:58.995611559 -0600
402 +++ opd-framework/smali/android/app/ContextImpl$22.smali 2013-01-09 02:52:38.763511234 -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-09 02:52:59.011611639 -0600
440 +++ opd-framework/smali/android/app/ContextImpl$31.smali 2013-01-09 02:52:38.779511309 -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-09 02:52:59.015611655 -0600
465 +++ opd-framework/smali/android/app/ContextImpl$37.smali 2013-01-09 02:52:38.791511373 -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-09 02:52:59.015611655 -0600
490 +++ opd-framework/smali/android/app/ContextImpl$39.smali 2013-01-09 02:52:38.791511373 -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-09 02:52:59.015611655 -0600
560 +++ opd-framework/smali/android/app/ContextImpl$3.smali 2013-01-09 02:52:38.795511389 -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-09 02:52:59.015611655 -0600
590 +++ opd-framework/smali/android/app/ContextImpl$40.smali 2013-01-09 02:52:38.795511389 -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-09 02:52:38.795511389 -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-09 02:52:59.039611771 -0600
688 +++ opd-framework/smali/android/app/ContextImpl.smali 2013-01-09 02:52:38.855511686 -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 @@ -5094,10 +5142,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-09 02:52:59.051611833 -0600
828 +++ opd-framework/smali/android/app/Fragment.smali 2013-01-09 02:52:38.879511809 -0600
829 @@ -623,11 +623,11 @@
830 :cond_13b
831 iget-object v0, p0, Landroid/app/Fragment;->mTarget:Landroid/app/Fragment;
833 - if-eqz v0, :cond_156
834 + if-eqz v0, :cond_157
836 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
838 - const-string v0, "mTarget="
839 + const-string/jumbo v0, "mTarget="
841 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
843 @@ -643,10 +643,10 @@
845 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->println(I)V
847 - :cond_156
848 + :cond_157
849 iget v0, p0, Landroid/app/Fragment;->mNextAnim:I
851 - if-eqz v0, :cond_167
852 + if-eqz v0, :cond_168
854 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
856 @@ -658,10 +658,10 @@
858 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->println(I)V
860 - :cond_167
861 + :cond_168
862 iget-object v0, p0, Landroid/app/Fragment;->mContainer:Landroid/view/ViewGroup;
864 - if-eqz v0, :cond_178
865 + if-eqz v0, :cond_179
867 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
869 @@ -673,10 +673,10 @@
871 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->println(Ljava/lang/Object;)V
873 - :cond_178
874 + :cond_179
875 iget-object v0, p0, Landroid/app/Fragment;->mView:Landroid/view/View;
877 - if-eqz v0, :cond_18a
878 + if-eqz v0, :cond_18b
880 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
882 @@ -688,10 +688,10 @@
884 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->println(Ljava/lang/Object;)V
886 - :cond_18a
887 + :cond_18b
888 iget-object v0, p0, Landroid/app/Fragment;->mAnimatingAway:Landroid/animation/Animator;
890 - if-eqz v0, :cond_1a8
891 + if-eqz v0, :cond_1a9
893 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
895 @@ -713,10 +713,10 @@
897 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->println(I)V
899 - :cond_1a8
900 + :cond_1a9
901 iget-object v0, p0, Landroid/app/Fragment;->mLoaderManager:Landroid/app/LoaderManagerImpl;
903 - if-eqz v0, :cond_1cc
904 + if-eqz v0, :cond_1cd
906 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
908 @@ -746,10 +746,10 @@
910 invoke-virtual {v0, v1, p2, p3, p4}, Landroid/app/LoaderManagerImpl;->dump(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
912 - :cond_1cc
913 + :cond_1cd
914 iget-object v0, p0, Landroid/app/Fragment;->mChildFragmentManager:Landroid/app/FragmentManagerImpl;
916 - if-eqz v0, :cond_209
917 + if-eqz v0, :cond_20a
919 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
921 @@ -803,7 +803,7 @@
923 invoke-virtual {v0, v1, p2, p3, p4}, Landroid/app/FragmentManagerImpl;->dump(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
925 - :cond_209
926 + :cond_20a
927 return-void
928 .end method
930 diff -Npru stock-framework/smali/android/app/Instrumentation$1.smali opd-framework/smali/android/app/Instrumentation$1.smali
931 --- stock-framework/smali/android/app/Instrumentation$1.smali 2013-01-09 02:52:59.215612651 -0600
932 +++ opd-framework/smali/android/app/Instrumentation$1.smali 2013-01-09 02:52:39.267513729 -0600
933 @@ -1,14 +1,96 @@
934 -.class synthetic Landroid/app/Instrumentation$1;
935 +.class Landroid/app/Instrumentation$1;
936 .super Ljava/lang/Object;
937 .source "Instrumentation.java"
939 +# interfaces
940 +.implements Ljava/lang/Runnable;
943 # annotations
944 -.annotation system Ldalvik/annotation/EnclosingClass;
945 - value = Landroid/app/Instrumentation;
946 +.annotation system Ldalvik/annotation/EnclosingMethod;
947 + 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;
948 .end annotation
950 .annotation system Ldalvik/annotation/InnerClass;
951 - accessFlags = 0x1008
952 + accessFlags = 0x0
953 name = null
954 .end annotation
957 +# instance fields
958 +.field final synthetic this$0:Landroid/app/Instrumentation;
960 +.field final synthetic val$tmp:Landroid/content/Context;
963 +# direct methods
964 +.method constructor <init>(Landroid/app/Instrumentation;Landroid/content/Context;)V
965 + .registers 3
967 + iput-object p1, p0, Landroid/app/Instrumentation$1;->this$0:Landroid/app/Instrumentation;
969 + iput-object p2, p0, Landroid/app/Instrumentation$1;->val$tmp:Landroid/content/Context;
971 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
973 + return-void
974 +.end method
977 +# virtual methods
978 +.method public run()V
979 + .registers 5
981 + const-wide/16 v2, 0x3e8
983 + :try_start_2
984 + invoke-static {v2, v3}, Ljava/lang/Thread;->sleep(J)V
985 + :try_end_5
986 + .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_5} :catch_35
988 + :goto_5
989 + new-instance v1, Landroid/content/Intent;
991 + const-string v2, "android.privacy.BLOCKED_PHONE_CALL"
993 + invoke-direct {v1, v2}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
995 + new-instance v0, Landroid/os/Bundle;
997 + invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
999 + const-string/jumbo v2, "packageName"
1001 + iget-object v3, p0, Landroid/app/Instrumentation$1;->val$tmp:Landroid/content/Context;
1003 + invoke-virtual {v3}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
1005 + move-result-object v3
1007 + invoke-virtual {v0, v2, v3}, Landroid/os/Bundle;->putString(Ljava/lang/String;Ljava/lang/String;)V
1009 + const-string/jumbo v2, "phoneState"
1011 + const/4 v3, 0x0
1013 + invoke-virtual {v0, v2, v3}, Landroid/os/Bundle;->putInt(Ljava/lang/String;I)V
1015 + invoke-virtual {v1, v0}, Landroid/content/Intent;->putExtras(Landroid/os/Bundle;)Landroid/content/Intent;
1017 + iget-object v2, p0, Landroid/app/Instrumentation$1;->val$tmp:Landroid/content/Context;
1019 + invoke-virtual {v2, v1}, Landroid/content/Context;->sendBroadcast(Landroid/content/Intent;)V
1021 + const-string v2, "PrivacyContext"
1023 + const-string/jumbo v3, "sent privacy intent"
1025 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
1027 + return-void
1029 + :catch_35
1030 + move-exception v2
1032 + goto :goto_5
1033 +.end method
1034 diff -Npru stock-framework/smali/android/app/Instrumentation$2.smali opd-framework/smali/android/app/Instrumentation$2.smali
1035 --- stock-framework/smali/android/app/Instrumentation$2.smali 1969-12-31 18:00:00.000000000 -0600
1036 +++ opd-framework/smali/android/app/Instrumentation$2.smali 2013-01-09 02:52:39.283513809 -0600
1037 @@ -0,0 +1,96 @@
1038 +.class Landroid/app/Instrumentation$2;
1039 +.super Ljava/lang/Object;
1040 +.source "Instrumentation.java"
1042 +# interfaces
1043 +.implements Ljava/lang/Runnable;
1046 +# annotations
1047 +.annotation system Ldalvik/annotation/EnclosingMethod;
1048 + 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
1049 +.end annotation
1051 +.annotation system Ldalvik/annotation/InnerClass;
1052 + accessFlags = 0x0
1053 + name = null
1054 +.end annotation
1057 +# instance fields
1058 +.field final synthetic this$0:Landroid/app/Instrumentation;
1060 +.field final synthetic val$tmp:Landroid/content/Context;
1063 +# direct methods
1064 +.method constructor <init>(Landroid/app/Instrumentation;Landroid/content/Context;)V
1065 + .registers 3
1067 + iput-object p1, p0, Landroid/app/Instrumentation$2;->this$0:Landroid/app/Instrumentation;
1069 + iput-object p2, p0, Landroid/app/Instrumentation$2;->val$tmp:Landroid/content/Context;
1071 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
1073 + return-void
1074 +.end method
1077 +# virtual methods
1078 +.method public run()V
1079 + .registers 5
1081 + const-wide/16 v2, 0x3e8
1083 + :try_start_2
1084 + invoke-static {v2, v3}, Ljava/lang/Thread;->sleep(J)V
1085 + :try_end_5
1086 + .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_5} :catch_35
1088 + :goto_5
1089 + new-instance v1, Landroid/content/Intent;
1091 + const-string v2, "android.privacy.BLOCKED_PHONE_CALL"
1093 + invoke-direct {v1, v2}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
1095 + new-instance v0, Landroid/os/Bundle;
1097 + invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
1099 + const-string/jumbo v2, "packageName"
1101 + iget-object v3, p0, Landroid/app/Instrumentation$2;->val$tmp:Landroid/content/Context;
1103 + invoke-virtual {v3}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
1105 + move-result-object v3
1107 + invoke-virtual {v0, v2, v3}, Landroid/os/Bundle;->putString(Ljava/lang/String;Ljava/lang/String;)V
1109 + const-string/jumbo v2, "phoneState"
1111 + const/4 v3, 0x0
1113 + invoke-virtual {v0, v2, v3}, Landroid/os/Bundle;->putInt(Ljava/lang/String;I)V
1115 + invoke-virtual {v1, v0}, Landroid/content/Intent;->putExtras(Landroid/os/Bundle;)Landroid/content/Intent;
1117 + iget-object v2, p0, Landroid/app/Instrumentation$2;->val$tmp:Landroid/content/Context;
1119 + invoke-virtual {v2, v1}, Landroid/content/Context;->sendBroadcast(Landroid/content/Intent;)V
1121 + const-string v2, "PrivacyContext"
1123 + const-string/jumbo v3, "sent privacy intent"
1125 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
1127 + return-void
1129 + :catch_35
1130 + move-exception v2
1132 + goto :goto_5
1133 +.end method
1134 diff -Npru stock-framework/smali/android/app/Instrumentation$3.smali opd-framework/smali/android/app/Instrumentation$3.smali
1135 --- stock-framework/smali/android/app/Instrumentation$3.smali 1969-12-31 18:00:00.000000000 -0600
1136 +++ opd-framework/smali/android/app/Instrumentation$3.smali 2013-01-09 02:52:39.283513809 -0600
1137 @@ -0,0 +1,96 @@
1138 +.class Landroid/app/Instrumentation$3;
1139 +.super Ljava/lang/Object;
1140 +.source "Instrumentation.java"
1142 +# interfaces
1143 +.implements Ljava/lang/Runnable;
1146 +# annotations
1147 +.annotation system Ldalvik/annotation/EnclosingMethod;
1148 + 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;
1149 +.end annotation
1151 +.annotation system Ldalvik/annotation/InnerClass;
1152 + accessFlags = 0x0
1153 + name = null
1154 +.end annotation
1157 +# instance fields
1158 +.field final synthetic this$0:Landroid/app/Instrumentation;
1160 +.field final synthetic val$tmp:Landroid/content/Context;
1163 +# direct methods
1164 +.method constructor <init>(Landroid/app/Instrumentation;Landroid/content/Context;)V
1165 + .registers 3
1167 + iput-object p1, p0, Landroid/app/Instrumentation$3;->this$0:Landroid/app/Instrumentation;
1169 + iput-object p2, p0, Landroid/app/Instrumentation$3;->val$tmp:Landroid/content/Context;
1171 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
1173 + return-void
1174 +.end method
1177 +# virtual methods
1178 +.method public run()V
1179 + .registers 5
1181 + const-wide/16 v2, 0x3e8
1183 + :try_start_2
1184 + invoke-static {v2, v3}, Ljava/lang/Thread;->sleep(J)V
1185 + :try_end_5
1186 + .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_5} :catch_35
1188 + :goto_5
1189 + new-instance v1, Landroid/content/Intent;
1191 + const-string v2, "android.privacy.BLOCKED_PHONE_CALL"
1193 + invoke-direct {v1, v2}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
1195 + new-instance v0, Landroid/os/Bundle;
1197 + invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
1199 + const-string/jumbo v2, "packageName"
1201 + iget-object v3, p0, Landroid/app/Instrumentation$3;->val$tmp:Landroid/content/Context;
1203 + invoke-virtual {v3}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
1205 + move-result-object v3
1207 + invoke-virtual {v0, v2, v3}, Landroid/os/Bundle;->putString(Ljava/lang/String;Ljava/lang/String;)V
1209 + const-string/jumbo v2, "phoneState"
1211 + const/4 v3, 0x0
1213 + invoke-virtual {v0, v2, v3}, Landroid/os/Bundle;->putInt(Ljava/lang/String;I)V
1215 + invoke-virtual {v1, v0}, Landroid/content/Intent;->putExtras(Landroid/os/Bundle;)Landroid/content/Intent;
1217 + iget-object v2, p0, Landroid/app/Instrumentation$3;->val$tmp:Landroid/content/Context;
1219 + invoke-virtual {v2, v1}, Landroid/content/Context;->sendBroadcast(Landroid/content/Intent;)V
1221 + const-string v2, "PrivacyContext"
1223 + const-string/jumbo v3, "sent privacy intent"
1225 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
1227 + return-void
1229 + :catch_35
1230 + move-exception v2
1232 + goto :goto_5
1233 +.end method
1234 diff -Npru stock-framework/smali/android/app/Instrumentation$4.smali opd-framework/smali/android/app/Instrumentation$4.smali
1235 --- stock-framework/smali/android/app/Instrumentation$4.smali 1969-12-31 18:00:00.000000000 -0600
1236 +++ opd-framework/smali/android/app/Instrumentation$4.smali 2013-01-09 02:52:39.283513809 -0600
1237 @@ -0,0 +1,96 @@
1238 +.class Landroid/app/Instrumentation$4;
1239 +.super Ljava/lang/Object;
1240 +.source "Instrumentation.java"
1242 +# interfaces
1243 +.implements Ljava/lang/Runnable;
1246 +# annotations
1247 +.annotation system Ldalvik/annotation/EnclosingMethod;
1248 + 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;
1249 +.end annotation
1251 +.annotation system Ldalvik/annotation/InnerClass;
1252 + accessFlags = 0x0
1253 + name = null
1254 +.end annotation
1257 +# instance fields
1258 +.field final synthetic this$0:Landroid/app/Instrumentation;
1260 +.field final synthetic val$tmp:Landroid/content/Context;
1263 +# direct methods
1264 +.method constructor <init>(Landroid/app/Instrumentation;Landroid/content/Context;)V
1265 + .registers 3
1267 + iput-object p1, p0, Landroid/app/Instrumentation$4;->this$0:Landroid/app/Instrumentation;
1269 + iput-object p2, p0, Landroid/app/Instrumentation$4;->val$tmp:Landroid/content/Context;
1271 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
1273 + return-void
1274 +.end method
1277 +# virtual methods
1278 +.method public run()V
1279 + .registers 5
1281 + const-wide/16 v2, 0x3e8
1283 + :try_start_2
1284 + invoke-static {v2, v3}, Ljava/lang/Thread;->sleep(J)V
1285 + :try_end_5
1286 + .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_5} :catch_35
1288 + :goto_5
1289 + new-instance v1, Landroid/content/Intent;
1291 + const-string v2, "android.privacy.BLOCKED_PHONE_CALL"
1293 + invoke-direct {v1, v2}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
1295 + new-instance v0, Landroid/os/Bundle;
1297 + invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
1299 + const-string/jumbo v2, "packageName"
1301 + iget-object v3, p0, Landroid/app/Instrumentation$4;->val$tmp:Landroid/content/Context;
1303 + invoke-virtual {v3}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
1305 + move-result-object v3
1307 + invoke-virtual {v0, v2, v3}, Landroid/os/Bundle;->putString(Ljava/lang/String;Ljava/lang/String;)V
1309 + const-string/jumbo v2, "phoneState"
1311 + const/4 v3, 0x0
1313 + invoke-virtual {v0, v2, v3}, Landroid/os/Bundle;->putInt(Ljava/lang/String;I)V
1315 + invoke-virtual {v1, v0}, Landroid/content/Intent;->putExtras(Landroid/os/Bundle;)Landroid/content/Intent;
1317 + iget-object v2, p0, Landroid/app/Instrumentation$4;->val$tmp:Landroid/content/Context;
1319 + invoke-virtual {v2, v1}, Landroid/content/Context;->sendBroadcast(Landroid/content/Intent;)V
1321 + const-string v2, "PrivacyContext"
1323 + const-string/jumbo v3, "sent privacy intent"
1325 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
1327 + return-void
1329 + :catch_35
1330 + move-exception v2
1332 + goto :goto_5
1333 +.end method
1334 diff -Npru stock-framework/smali/android/app/Instrumentation.smali opd-framework/smali/android/app/Instrumentation.smali
1335 --- stock-framework/smali/android/app/Instrumentation.smali 2013-01-09 02:52:59.227612709 -0600
1336 +++ opd-framework/smali/android/app/Instrumentation.smali 2013-01-09 02:52:39.315513967 -0600
1337 @@ -6,7 +6,6 @@
1338 # annotations
1339 .annotation system Ldalvik/annotation/MemberClasses;
1340 value = {
1341 - Landroid/app/Instrumentation$1;,
1342 Landroid/app/Instrumentation$Idler;,
1343 Landroid/app/Instrumentation$ActivityGoing;,
1344 Landroid/app/Instrumentation$ActivityWaiter;,
1345 @@ -53,6 +52,8 @@
1347 .field private mPerformanceCollector:Landroid/os/PerformanceCollector;
1349 +.field private mPrvSvc:Landroid/privacy/PrivacySettingsManager;
1351 .field private mRunner:Ljava/lang/Thread;
1353 .field private final mSync:Ljava/lang/Object;
1354 @@ -891,176 +892,131 @@
1355 .end method
1357 .method public execStartActivitiesAsUser(Landroid/content/Context;Landroid/os/IBinder;Landroid/os/IBinder;Landroid/app/Activity;[Landroid/content/Intent;Landroid/os/Bundle;I)V
1358 - .registers 20
1360 - move-object v2, p2
1362 - check-cast v2, Landroid/app/IApplicationThread;
1364 - iget-object v1, p0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1366 - if-eqz v1, :cond_37
1368 - iget-object v3, p0, Landroid/app/Instrumentation;->mSync:Ljava/lang/Object;
1370 - monitor-enter v3
1372 - :try_start_a
1373 - iget-object v1, p0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1375 - invoke-interface {v1}, Ljava/util/List;->size()I
1377 - move-result v8
1379 - const/4 v10, 0x0
1381 - :goto_11
1382 - if-ge v10, v8, :cond_36
1383 + .registers 31
1385 - iget-object v1, p0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1387 - invoke-interface {v1, v10}, Ljava/util/List;->get(I)Ljava/lang/Object;
1389 - move-result-object v9
1391 - check-cast v9, Landroid/app/Instrumentation$ActivityMonitor;
1393 - const/4 v1, 0x0
1394 + move-object/from16 v3, p2
1396 - const/4 v5, 0x0
1397 + check-cast v3, Landroid/app/IApplicationThread;
1399 - aget-object v5, p5, v5
1400 + const-string v2, "Instrumentation"
1402 - invoke-virtual {v9, p1, v1, v5}, Landroid/app/Instrumentation$ActivityMonitor;->match(Landroid/content/Context;Landroid/app/Activity;Landroid/content/Intent;)Z
1403 + new-instance v4, Ljava/lang/StringBuilder;
1405 - move-result v1
1406 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
1408 - if-eqz v1, :cond_33
1409 + const-string v6, "PDroid:Instrumentation:execStartActivitiesAsUser: execStartActivitiesAsUser for "
1411 - iget v1, v9, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
1412 + invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1414 - add-int/lit8 v1, v1, 0x1
1415 + move-result-object v4
1417 - iput v1, v9, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
1418 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
1420 - invoke-virtual {v9}, Landroid/app/Instrumentation$ActivityMonitor;->isBlocking()Z
1421 + move-result-object v6
1423 - move-result v1
1424 + invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1426 - if-eqz v1, :cond_36
1427 + move-result-object v4
1429 - monitor-exit v3
1430 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
1432 - :goto_32
1433 - return-void
1434 + move-result-object v4
1436 - :cond_33
1437 - add-int/lit8 v10, v10, 0x1
1438 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
1440 - goto :goto_11
1441 + if-eqz p5, :cond_6f
1443 - :cond_36
1444 - monitor-exit v3
1445 - :try_end_37
1446 - .catchall {:try_start_a .. :try_end_37} :catchall_57
1447 + const/4 v13, 0x0
1449 - :cond_37
1450 - :try_start_37
1451 - move-object/from16 v0, p5
1452 + move-object/from16 v12, p5
1454 - array-length v1, v0
1455 + array-length v0, v12
1457 - new-array v4, v1, [Ljava/lang/String;
1458 + move/from16 v19, v0
1460 - const/4 v10, 0x0
1461 + const/16 v17, 0x0
1463 - :goto_3d
1464 - move-object/from16 v0, p5
1465 + :goto_2a
1466 + move/from16 v0, v17
1468 - array-length v1, v0
1469 + move/from16 v1, v19
1471 - if-ge v10, v1, :cond_5a
1472 + if-ge v0, v1, :cond_51
1474 - aget-object v1, p5, v10
1475 + aget-object v18, v12, v17
1477 - const/4 v3, 0x0
1478 + :try_start_32
1479 + invoke-virtual/range {v18 .. v18}, Landroid/content/Intent;->getAction()Ljava/lang/String;
1481 - invoke-virtual {v1, v3}, Landroid/content/Intent;->setAllowFds(Z)V
1482 + move-result-object v2
1484 - aget-object v1, p5, v10
1485 + if-eqz v2, :cond_cc
1487 - invoke-virtual {p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
1488 + invoke-virtual/range {v18 .. v18}, Landroid/content/Intent;->getAction()Ljava/lang/String;
1490 - move-result-object v3
1491 + move-result-object v2
1493 - invoke-virtual {v1, v3}, Landroid/content/Intent;->resolveTypeIfNeeded(Landroid/content/ContentResolver;)Ljava/lang/String;
1494 + const-string v4, "android.intent.action.CALL"
1496 - move-result-object v1
1497 + invoke-virtual {v2, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
1499 - aput-object v1, v4, v10
1500 - :try_end_54
1501 - .catch Landroid/os/RemoteException; {:try_start_37 .. :try_end_54} :catch_70
1502 + move-result v2
1504 - add-int/lit8 v10, v10, 0x1
1505 + if-nez v2, :cond_50
1507 - goto :goto_3d
1508 + invoke-virtual/range {v18 .. v18}, Landroid/content/Intent;->getAction()Ljava/lang/String;
1510 - :catchall_57
1511 - move-exception v1
1512 + move-result-object v2
1514 - :try_start_58
1515 - monitor-exit v3
1516 - :try_end_59
1517 - .catchall {:try_start_58 .. :try_end_59} :catchall_57
1518 + const-string v4, "android.intent.action.DIAL"
1520 - throw v1
1521 + invoke-virtual {v2, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
1522 + :try_end_4d
1523 + .catch Ljava/lang/Exception; {:try_start_32 .. :try_end_4d} :catch_ae
1525 - :cond_5a
1526 - :try_start_5a
1527 - invoke-static {}, Landroid/app/ActivityManagerNative;->getDefault()Landroid/app/IActivityManager;
1528 + move-result v2
1530 - move-result-object v1
1531 + if-eqz v2, :cond_cc
1533 - move-object/from16 v3, p5
1534 + :cond_50
1535 + const/4 v13, 0x1
1537 - move-object v5, p3
1538 + :cond_51
1539 + if-nez v13, :cond_d0
1541 - move-object/from16 v6, p6
1542 + const-string v2, "Instrumentation"
1544 - move/from16 v7, p7
1545 + new-instance v4, Ljava/lang/StringBuilder;
1547 - 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
1548 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
1550 - move-result v11
1551 + const-string v6, "PDroid:Instrumentation:execStartActivitiesAsUser: No provided intents triggered checking for "
1553 - const/4 v1, 0x0
1554 + invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1556 - aget-object v1, p5, v1
1557 + move-result-object v4
1559 - invoke-static {v11, v1}, Landroid/app/Instrumentation;->checkStartActivityResult(ILjava/lang/Object;)V
1560 - :try_end_6f
1561 - .catch Landroid/os/RemoteException; {:try_start_5a .. :try_end_6f} :catch_70
1562 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
1564 - goto :goto_32
1565 + move-result-object v6
1567 - :catch_70
1568 - move-exception v1
1569 + invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1571 - goto :goto_32
1572 -.end method
1573 + move-result-object v4
1575 -.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;
1576 - .registers 25
1577 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
1579 - move-object/from16 v3, p2
1580 + move-result-object v4
1582 - check-cast v3, Landroid/app/IApplicationThread;
1583 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
1585 + :cond_6f
1586 + :goto_6f
1587 move-object/from16 v0, p0
1589 iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1591 - if-eqz v2, :cond_49
1592 + if-eqz v2, :cond_283
1594 move-object/from16 v0, p0
1596 @@ -1068,524 +1024,2595 @@
1598 monitor-enter v4
1600 - :try_start_f
1601 + :try_start_7a
1602 move-object/from16 v0, p0
1604 iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1606 invoke-interface {v2}, Ljava/util/List;->size()I
1608 - move-result v13
1609 + move-result v9
1611 + const/16 v16, 0x0
1613 - const/4 v15, 0x0
1614 + :goto_84
1615 + move/from16 v0, v16
1617 - :goto_18
1618 - if-ge v15, v13, :cond_48
1619 + if-ge v0, v9, :cond_282
1621 move-object/from16 v0, p0
1623 iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1625 - invoke-interface {v2, v15}, Ljava/util/List;->get(I)Ljava/lang/Object;
1626 + move/from16 v0, v16
1628 + invoke-interface {v2, v0}, Ljava/util/List;->get(I)Ljava/lang/Object;
1630 - move-result-object v14
1631 + move-result-object v11
1633 - check-cast v14, Landroid/app/Instrumentation$ActivityMonitor;
1634 + check-cast v11, Landroid/app/Instrumentation$ActivityMonitor;
1636 const/4 v2, 0x0
1638 - move-object/from16 v0, p1
1639 + const/4 v6, 0x0
1641 - move-object/from16 v1, p5
1642 + aget-object v6, p5, v6
1644 + move-object/from16 v0, p1
1646 - invoke-virtual {v14, v0, v2, v1}, Landroid/app/Instrumentation$ActivityMonitor;->match(Landroid/content/Context;Landroid/app/Activity;Landroid/content/Intent;)Z
1647 + invoke-virtual {v11, v0, v2, v6}, Landroid/app/Instrumentation$ActivityMonitor;->match(Landroid/content/Context;Landroid/app/Activity;Landroid/content/Intent;)Z
1649 move-result v2
1651 - if-eqz v2, :cond_45
1652 + if-eqz v2, :cond_27e
1654 - iget v2, v14, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
1655 + iget v2, v11, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
1657 add-int/lit8 v2, v2, 0x1
1659 - iput v2, v14, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
1660 + iput v2, v11, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
1662 - invoke-virtual {v14}, Landroid/app/Instrumentation$ActivityMonitor;->isBlocking()Z
1663 + invoke-virtual {v11}, Landroid/app/Instrumentation$ActivityMonitor;->isBlocking()Z
1665 move-result v2
1667 - if-eqz v2, :cond_48
1668 + if-eqz v2, :cond_282
1670 - if-ltz p6, :cond_43
1672 - invoke-virtual {v14}, Landroid/app/Instrumentation$ActivityMonitor;->getResult()Landroid/app/Instrumentation$ActivityResult;
1674 - move-result-object v2
1676 - :goto_41
1677 monitor-exit v4
1678 + :try_end_ad
1679 + .catchall {:try_start_7a .. :try_end_ad} :catchall_2a6
1681 - :goto_42
1682 - return-object v2
1683 + :goto_ad
1684 + return-void
1686 - :cond_43
1687 - const/4 v2, 0x0
1688 + :catch_ae
1689 + move-exception v14
1691 - goto :goto_41
1692 + const-string v2, "Instrumentation"
1694 - :cond_45
1695 - add-int/lit8 v15, v15, 0x1
1696 + new-instance v4, Ljava/lang/StringBuilder;
1698 - goto :goto_18
1699 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
1701 - :cond_48
1702 - monitor-exit v4
1703 - :try_end_49
1704 - .catchall {:try_start_f .. :try_end_49} :catchall_7e
1705 + const-string v6, "PDroid:Instrumentation:execStartActivitiesAsUser: Exception occurred when checking intents for "
1707 - :cond_49
1708 - const/4 v2, 0x0
1709 + invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1711 - :try_start_4a
1712 - move-object/from16 v0, p5
1713 + move-result-object v4
1715 - invoke-virtual {v0, v2}, Landroid/content/Intent;->setAllowFds(Z)V
1716 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
1718 - invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->migrateExtraStreamToClipData()Z
1719 + move-result-object v6
1721 - invoke-static {}, Landroid/app/ActivityManagerNative;->getDefault()Landroid/app/IActivityManager;
1722 + invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1724 - move-result-object v2
1725 + move-result-object v4
1727 - invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
1728 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
1730 move-result-object v4
1732 - move-object/from16 v0, p5
1733 + invoke-static {v2, v4, v14}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
1735 - invoke-virtual {v0, v4}, Landroid/content/Intent;->resolveTypeIfNeeded(Landroid/content/ContentResolver;)Ljava/lang/String;
1736 + const/4 v13, 0x1
1738 - move-result-object v5
1739 + :cond_cc
1740 + add-int/lit8 v17, v17, 0x1
1742 - if-eqz p4, :cond_81
1743 + goto/16 :goto_2a
1745 - move-object/from16 v0, p4
1746 + :cond_d0
1747 + const-string v2, "Instrumentation"
1749 - iget-object v7, v0, Landroid/app/Activity;->mEmbeddedID:Ljava/lang/String;
1750 + new-instance v4, Ljava/lang/StringBuilder;
1752 - :goto_66
1753 - const/4 v9, 0x0
1754 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
1756 - const/4 v10, 0x0
1757 + const-string v6, "PDroid:Instrumentation:execStartActivitiesAsUser: One or more intents triggered checking for "
1759 - const/4 v11, 0x0
1760 + invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1762 - move-object/from16 v4, p5
1763 + move-result-object v4
1765 - move-object/from16 v6, p3
1766 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
1768 - move/from16 v8, p6
1769 + move-result-object v6
1771 - move-object/from16 v12, p7
1772 + invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1774 - 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
1775 + move-result-object v4
1777 - move-result v16
1778 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
1780 - move/from16 v0, v16
1781 + move-result-object v4
1783 - move-object/from16 v1, p5
1784 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
1786 - invoke-static {v0, v1}, Landroid/app/Instrumentation;->checkStartActivityResult(ILjava/lang/Object;)V
1787 - :try_end_7c
1788 - .catch Landroid/os/RemoteException; {:try_start_4a .. :try_end_7c} :catch_83
1789 + move-object/from16 v0, p0
1791 - :goto_7c
1792 - const/4 v2, 0x0
1793 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
1795 - goto :goto_42
1796 + if-eqz v2, :cond_fc
1798 - :catchall_7e
1799 - move-exception v2
1800 + move-object/from16 v0, p0
1802 - :try_start_7f
1803 - monitor-exit v4
1804 - :try_end_80
1805 - .catchall {:try_start_7f .. :try_end_80} :catchall_7e
1806 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
1808 - throw v2
1809 + invoke-virtual {v2}, Landroid/privacy/PrivacySettingsManager;->isServiceAvailable()Z
1811 - :cond_81
1812 - const/4 v7, 0x0
1813 + move-result v2
1815 - goto :goto_66
1816 + if-nez v2, :cond_18f
1818 - :catch_83
1819 - move-exception v2
1820 + :cond_fc
1821 + new-instance v2, Landroid/privacy/PrivacySettingsManager;
1823 - goto :goto_7c
1824 -.end method
1825 + const-string/jumbo v4, "privacy"
1827 -.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;
1828 - .registers 27
1829 + invoke-static {v4}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
1831 - move-object/from16 v3, p2
1832 + move-result-object v4
1834 - check-cast v3, Landroid/app/IApplicationThread;
1835 + invoke-static {v4}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
1837 - move-object/from16 v0, p0
1838 + move-result-object v4
1840 - iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1841 + move-object/from16 v0, p1
1843 - if-eqz v2, :cond_4e
1844 + invoke-direct {v2, v0, v4}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
1846 move-object/from16 v0, p0
1848 - iget-object v4, v0, Landroid/app/Instrumentation;->mSync:Ljava/lang/Object;
1850 - monitor-enter v4
1851 + iput-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
1853 - :try_start_f
1854 move-object/from16 v0, p0
1856 - iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1857 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
1859 - invoke-interface {v2}, Ljava/util/List;->size()I
1860 + if-eqz v2, :cond_187
1862 - move-result v14
1863 + const-string v2, "Instrumentation"
1865 - const/16 v16, 0x0
1866 + const-string v4, "PDroid:Instrumentation:execStartActivitiesAsUser: Obtained privacy service"
1868 - :goto_19
1869 - move/from16 v0, v16
1870 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
1872 - if-ge v0, v14, :cond_4d
1873 + :goto_11f
1874 + const/4 v10, 0x0
1876 move-object/from16 v0, p0
1878 - iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1879 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
1881 - move/from16 v0, v16
1882 + if-eqz v2, :cond_130
1884 - invoke-interface {v2, v0}, Ljava/util/List;->get(I)Ljava/lang/Object;
1885 + move-object/from16 v0, p0
1887 - move-result-object v15
1888 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
1890 - check-cast v15, Landroid/app/Instrumentation$ActivityMonitor;
1891 + invoke-virtual {v2}, Landroid/privacy/PrivacySettingsManager;->isServiceAvailable()Z
1893 - const/4 v2, 0x0
1894 + move-result v2
1896 - move-object/from16 v0, p1
1897 + if-nez v2, :cond_197
1899 - move-object/from16 v1, p5
1900 + :cond_130
1901 + const-string v2, "Instrumentation"
1903 - invoke-virtual {v15, v0, v2, v1}, Landroid/app/Instrumentation$ActivityMonitor;->match(Landroid/content/Context;Landroid/app/Activity;Landroid/content/Intent;)Z
1904 + const-string v4, "PDroid:Instrumentation:execStartActivitiesAsUser: Privacy service not available - assuming permission denied"
1906 - move-result v2
1907 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
1909 - if-eqz v2, :cond_4a
1910 + const/4 v10, 0x0
1912 - iget v2, v15, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
1913 + move-object/from16 v0, p0
1915 - add-int/lit8 v2, v2, 0x1
1916 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
1918 - iput v2, v15, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
1919 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
1921 - invoke-virtual {v15}, Landroid/app/Instrumentation$ActivityMonitor;->isBlocking()Z
1922 + move-result-object v4
1924 - move-result v2
1925 + const/4 v6, 0x1
1927 - if-eqz v2, :cond_4d
1928 + const-string/jumbo v7, "phoneCall"
1930 - if-ltz p6, :cond_48
1931 + const/4 v8, 0x0
1933 - invoke-virtual {v15}, Landroid/app/Instrumentation$ActivityMonitor;->getResult()Landroid/app/Instrumentation$ActivityResult;
1934 + invoke-virtual {v2, v4, v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
1936 - move-result-object v2
1937 + :goto_148
1938 + if-nez v10, :cond_6f
1940 - :goto_46
1941 - monitor-exit v4
1942 + new-instance v15, Ljava/util/ArrayList;
1944 - :goto_47
1945 - return-object v2
1946 + move-object/from16 v0, p5
1948 - :cond_48
1949 - const/4 v2, 0x0
1950 + array-length v2, v0
1952 - goto :goto_46
1953 + invoke-direct {v15, v2}, Ljava/util/ArrayList;-><init>(I)V
1955 - :cond_4a
1956 - add-int/lit8 v16, v16, 0x1
1957 + move-object/from16 v12, p5
1959 - goto :goto_19
1960 + array-length v0, v12
1962 - :cond_4d
1963 - monitor-exit v4
1964 - :try_end_4e
1965 - .catchall {:try_start_f .. :try_end_4e} :catchall_87
1966 + move/from16 v19, v0
1968 - :cond_4e
1969 - const/4 v2, 0x0
1970 + const/16 v17, 0x0
1972 - :try_start_4f
1973 - move-object/from16 v0, p5
1974 + :goto_159
1975 + move/from16 v0, v17
1977 - invoke-virtual {v0, v2}, Landroid/content/Intent;->setAllowFds(Z)V
1978 + move/from16 v1, v19
1980 - invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->migrateExtraStreamToClipData()Z
1981 + if-ge v0, v1, :cond_25d
1983 - invoke-static {}, Landroid/app/ActivityManagerNative;->getDefault()Landroid/app/IActivityManager;
1984 + aget-object v18, v12, v17
1986 + :try_start_161
1987 + invoke-virtual/range {v18 .. v18}, Landroid/content/Intent;->getAction()Ljava/lang/String;
1989 move-result-object v2
1991 - invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
1992 + if-eqz v2, :cond_17f
1994 - move-result-object v4
1995 + invoke-virtual/range {v18 .. v18}, Landroid/content/Intent;->getAction()Ljava/lang/String;
1997 - move-object/from16 v0, p5
1998 + move-result-object v2
2000 - invoke-virtual {v0, v4}, Landroid/content/Intent;->resolveTypeIfNeeded(Landroid/content/ContentResolver;)Ljava/lang/String;
2001 + const-string v4, "android.intent.action.CALL"
2003 - move-result-object v5
2004 + invoke-virtual {v2, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
2006 - if-eqz p4, :cond_8a
2007 + move-result v2
2009 - move-object/from16 v0, p4
2010 + if-nez v2, :cond_184
2012 - iget-object v7, v0, Landroid/app/Activity;->mEmbeddedID:Ljava/lang/String;
2013 + invoke-virtual/range {v18 .. v18}, Landroid/content/Intent;->getAction()Ljava/lang/String;
2015 - :goto_6b
2016 - const/4 v9, 0x0
2017 + move-result-object v2
2019 - const/4 v10, 0x0
2020 + const-string v4, "android.intent.action.DIAL"
2022 - const/4 v11, 0x0
2023 + invoke-virtual {v2, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
2025 - invoke-virtual/range {p8 .. p8}, Landroid/os/UserHandle;->getIdentifier()I
2026 + move-result v2
2028 - move-result v13
2029 + if-nez v2, :cond_184
2031 - move-object/from16 v4, p5
2032 + :cond_17f
2033 + move-object/from16 v0, v18
2035 - move-object/from16 v6, p3
2036 + invoke-interface {v15, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
2037 + :try_end_184
2038 + .catch Ljava/lang/Exception; {:try_start_161 .. :try_end_184} :catch_23e
2040 - move/from16 v8, p6
2041 + :cond_184
2042 + :goto_184
2043 + add-int/lit8 v17, v17, 0x1
2045 - move-object/from16 v12, p7
2046 + goto :goto_159
2048 - 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
2049 + :cond_187
2050 + const-string v2, "Instrumentation"
2052 - move-result v17
2053 + const-string v4, "PDroid:Instrumentation:execStartActivitiesAsUser: Privacy service not obtained"
2055 - move/from16 v0, v17
2056 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2058 - move-object/from16 v1, p5
2059 + goto :goto_11f
2061 - invoke-static {v0, v1}, Landroid/app/Instrumentation;->checkStartActivityResult(ILjava/lang/Object;)V
2062 - :try_end_85
2063 - .catch Landroid/os/RemoteException; {:try_start_4f .. :try_end_85} :catch_8c
2064 + :cond_18f
2065 + const-string v2, "Instrumentation"
2067 - :goto_85
2068 - const/4 v2, 0x0
2069 + const-string v4, "PDroid:Instrumentation:execStartActivitiesAsUser: Already had privacy service"
2071 - goto :goto_47
2072 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2074 - :catchall_87
2075 - move-exception v2
2076 + goto :goto_11f
2078 - :try_start_88
2079 - monitor-exit v4
2080 - :try_end_89
2081 - .catchall {:try_start_88 .. :try_end_89} :catchall_87
2082 + :cond_197
2083 + move-object/from16 v0, p0
2085 - throw v2
2086 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2088 - :cond_8a
2089 - const/4 v7, 0x0
2090 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2092 - goto :goto_6b
2093 + move-result-object v4
2095 - :catch_8c
2096 - move-exception v2
2097 + invoke-virtual {v2, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
2099 - goto :goto_85
2100 -.end method
2101 + move-result-object v20
2103 -.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;
2104 - .registers 25
2105 + if-nez v20, :cond_1d4
2107 - move-object/from16 v3, p2
2108 + const-string v2, "Instrumentation"
2110 - check-cast v3, Landroid/app/IApplicationThread;
2111 + new-instance v4, Ljava/lang/StringBuilder;
2113 - move-object/from16 v0, p0
2114 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
2116 - iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
2117 + const-string v6, "PDroid:Instrumentation:execStartActivitiesAsUser: Call intents allowed: No settings for package: "
2119 - if-eqz v2, :cond_49
2120 + invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2122 - move-object/from16 v0, p0
2123 + move-result-object v4
2125 - iget-object v4, v0, Landroid/app/Instrumentation;->mSync:Ljava/lang/Object;
2126 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2128 - monitor-enter v4
2129 + move-result-object v6
2131 - :try_start_f
2132 - move-object/from16 v0, p0
2133 + invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2135 - iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
2136 + move-result-object v4
2138 - invoke-interface {v2}, Ljava/util/List;->size()I
2139 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2141 - move-result v13
2142 + move-result-object v4
2144 - const/4 v15, 0x0
2145 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2147 - :goto_18
2148 - if-ge v15, v13, :cond_48
2149 + const/4 v10, 0x1
2151 move-object/from16 v0, p0
2153 - iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
2154 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2156 - invoke-interface {v2, v15}, Ljava/util/List;->get(I)Ljava/lang/Object;
2157 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2159 - move-result-object v14
2160 + move-result-object v4
2162 - check-cast v14, Landroid/app/Instrumentation$ActivityMonitor;
2163 + const/4 v6, 0x1
2165 - const/4 v2, 0x0
2166 + const-string/jumbo v7, "phoneCall"
2168 - move-object/from16 v0, p1
2169 + const/4 v8, 0x0
2171 - move-object/from16 v1, p5
2172 + invoke-virtual {v2, v4, v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
2174 - invoke-virtual {v14, v0, v2, v1}, Landroid/app/Instrumentation$ActivityMonitor;->match(Landroid/content/Context;Landroid/app/Activity;Landroid/content/Intent;)Z
2175 + goto/16 :goto_148
2177 + :cond_1d4
2178 + invoke-virtual/range {v20 .. v20}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
2180 move-result v2
2182 - if-eqz v2, :cond_45
2183 + if-nez v2, :cond_20c
2185 - iget v2, v14, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
2186 + const-string v2, "Instrumentation"
2188 - add-int/lit8 v2, v2, 0x1
2189 + new-instance v4, Ljava/lang/StringBuilder;
2191 - iput v2, v14, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
2192 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
2194 - invoke-virtual {v14}, Landroid/app/Instrumentation$ActivityMonitor;->isBlocking()Z
2195 + const-string v6, "PDroid:Instrumentation:execStartActivitiesAsUser: Call intents allowed: Settings permit "
2197 - move-result v2
2198 + invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2200 - if-eqz v2, :cond_48
2201 + move-result-object v4
2203 - if-ltz p6, :cond_43
2204 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2206 - invoke-virtual {v14}, Landroid/app/Instrumentation$ActivityMonitor;->getResult()Landroid/app/Instrumentation$ActivityResult;
2207 + move-result-object v6
2209 - move-result-object v2
2210 + invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2212 - :goto_41
2213 - monitor-exit v4
2214 + move-result-object v4
2216 - :goto_42
2217 - return-object v2
2218 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2220 - :cond_43
2221 - const/4 v2, 0x0
2222 + move-result-object v4
2224 - goto :goto_41
2225 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2227 - :cond_45
2228 - add-int/lit8 v15, v15, 0x1
2229 + const/4 v10, 0x1
2231 - goto :goto_18
2232 + move-object/from16 v0, p0
2234 - :cond_48
2235 - monitor-exit v4
2236 - :try_end_49
2237 - .catchall {:try_start_f .. :try_end_49} :catchall_7e
2238 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2240 - :cond_49
2241 - const/4 v2, 0x0
2242 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2244 - :try_start_4a
2245 - move-object/from16 v0, p5
2246 + move-result-object v4
2248 - invoke-virtual {v0, v2}, Landroid/content/Intent;->setAllowFds(Z)V
2249 + invoke-virtual/range {v20 .. v20}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
2251 - invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->migrateExtraStreamToClipData()Z
2252 + move-result v6
2254 - invoke-static {}, Landroid/app/ActivityManagerNative;->getDefault()Landroid/app/IActivityManager;
2255 + const-string/jumbo v7, "phoneCall"
2257 - move-result-object v2
2258 + const/4 v8, 0x0
2260 - invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
2261 + invoke-virtual {v2, v4, v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
2263 - move-result-object v4
2264 + goto/16 :goto_148
2266 - move-object/from16 v0, p5
2267 + :cond_20c
2268 + const-string v2, "Instrumentation"
2270 - invoke-virtual {v0, v4}, Landroid/content/Intent;->resolveTypeIfNeeded(Landroid/content/ContentResolver;)Ljava/lang/String;
2271 + new-instance v4, Ljava/lang/StringBuilder;
2273 - move-result-object v5
2274 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
2276 - if-eqz p4, :cond_81
2277 + const-string v6, "PDroid:Instrumentation:execStartActivitiesAsUser: Call intents denied: Settings deny "
2279 - move-object/from16 v0, p4
2280 + invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2282 - iget-object v7, v0, Landroid/app/Fragment;->mWho:Ljava/lang/String;
2283 + move-result-object v4
2285 - :goto_66
2286 - const/4 v9, 0x0
2287 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2289 - const/4 v10, 0x0
2290 + move-result-object v6
2292 - const/4 v11, 0x0
2293 + invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2295 - move-object/from16 v4, p5
2296 + move-result-object v4
2298 - move-object/from16 v6, p3
2299 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2301 - move/from16 v8, p6
2302 + move-result-object v4
2304 - move-object/from16 v12, p7
2305 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2307 - 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
2308 + const/4 v10, 0x0
2310 - move-result v16
2311 + move-object/from16 v0, p0
2313 - move/from16 v0, v16
2314 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2316 - move-object/from16 v1, p5
2317 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2319 - invoke-static {v0, v1}, Landroid/app/Instrumentation;->checkStartActivityResult(ILjava/lang/Object;)V
2320 - :try_end_7c
2321 - .catch Landroid/os/RemoteException; {:try_start_4a .. :try_end_7c} :catch_83
2322 + move-result-object v4
2324 + invoke-virtual/range {v20 .. v20}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
2326 + move-result v6
2328 + const-string/jumbo v7, "phoneCall"
2330 + const/4 v8, 0x0
2332 + invoke-virtual {v2, v4, v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
2334 + goto/16 :goto_148
2336 + :catch_23e
2337 + move-exception v14
2339 + const-string v2, "Instrumentation"
2341 + new-instance v4, Ljava/lang/StringBuilder;
2343 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
2345 + const-string v6, "PDroid:Instrumentation:execStartActivitiesAsUser: Exception occurred when checking intent for "
2347 + invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2349 + move-result-object v4
2351 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2353 + move-result-object v6
2355 + invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2357 + move-result-object v4
2359 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2361 + move-result-object v4
2363 + invoke-static {v2, v4, v14}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
2365 + goto/16 :goto_184
2367 + :cond_25d
2368 + invoke-interface {v15}, Ljava/util/List;->size()I
2370 + move-result v2
2372 + new-array v2, v2, [Landroid/content/Intent;
2374 + invoke-interface {v15, v2}, Ljava/util/List;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
2376 + move-result-object p5
2378 + check-cast p5, [Landroid/content/Intent;
2380 + move-object/from16 v22, p1
2382 + new-instance v2, Ljava/lang/Thread;
2384 + new-instance v4, Landroid/app/Instrumentation$2;
2386 + move-object/from16 v0, p0
2388 + move-object/from16 v1, v22
2390 + invoke-direct {v4, v0, v1}, Landroid/app/Instrumentation$2;-><init>(Landroid/app/Instrumentation;Landroid/content/Context;)V
2392 + invoke-direct {v2, v4}, Ljava/lang/Thread;-><init>(Ljava/lang/Runnable;)V
2394 + invoke-virtual {v2}, Ljava/lang/Thread;->start()V
2396 + goto/16 :goto_6f
2398 + :cond_27e
2399 + add-int/lit8 v16, v16, 0x1
2401 + goto/16 :goto_84
2403 + :cond_282
2404 + :try_start_282
2405 + monitor-exit v4
2406 + :try_end_283
2407 + .catchall {:try_start_282 .. :try_end_283} :catchall_2a6
2409 + :cond_283
2410 + :try_start_283
2411 + move-object/from16 v0, p5
2413 + array-length v2, v0
2415 + new-array v5, v2, [Ljava/lang/String;
2417 + const/16 v16, 0x0
2419 + :goto_28a
2420 + move-object/from16 v0, p5
2422 + array-length v2, v0
2424 + move/from16 v0, v16
2426 + if-ge v0, v2, :cond_2a9
2428 + aget-object v2, p5, v16
2430 + const/4 v4, 0x0
2432 + invoke-virtual {v2, v4}, Landroid/content/Intent;->setAllowFds(Z)V
2434 + aget-object v2, p5, v16
2436 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
2438 + move-result-object v4
2440 + invoke-virtual {v2, v4}, Landroid/content/Intent;->resolveTypeIfNeeded(Landroid/content/ContentResolver;)Ljava/lang/String;
2442 + move-result-object v2
2444 + aput-object v2, v5, v16
2445 + :try_end_2a3
2446 + .catch Landroid/os/RemoteException; {:try_start_283 .. :try_end_2a3} :catch_2c3
2448 + add-int/lit8 v16, v16, 0x1
2450 + goto :goto_28a
2452 + :catchall_2a6
2453 + move-exception v2
2455 + :try_start_2a7
2456 + monitor-exit v4
2457 + :try_end_2a8
2458 + .catchall {:try_start_2a7 .. :try_end_2a8} :catchall_2a6
2460 + throw v2
2462 + :cond_2a9
2463 + :try_start_2a9
2464 + invoke-static {}, Landroid/app/ActivityManagerNative;->getDefault()Landroid/app/IActivityManager;
2466 + move-result-object v2
2468 + move-object/from16 v4, p5
2470 + move-object/from16 v6, p3
2472 + move-object/from16 v7, p6
2474 + move/from16 v8, p7
2476 + 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
2478 + move-result v21
2480 + const/4 v2, 0x0
2482 + aget-object v2, p5, v2
2484 + move/from16 v0, v21
2486 + invoke-static {v0, v2}, Landroid/app/Instrumentation;->checkStartActivityResult(ILjava/lang/Object;)V
2487 + :try_end_2c1
2488 + .catch Landroid/os/RemoteException; {:try_start_2a9 .. :try_end_2c1} :catch_2c3
2490 + goto/16 :goto_ad
2492 + :catch_2c3
2493 + move-exception v2
2495 + goto/16 :goto_ad
2496 +.end method
2498 +.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;
2499 + .registers 29
2501 + move-object/from16 v3, p2
2503 + check-cast v3, Landroid/app/IApplicationThread;
2505 + const/4 v14, 0x1
2507 + :try_start_5
2508 + const-string v2, "Instrumentation"
2510 + new-instance v4, Ljava/lang/StringBuilder;
2512 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
2514 + const-string v5, "PDroid:Instrumentation:execStartActivity: execStartActivity for "
2516 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2518 + move-result-object v4
2520 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2522 + move-result-object v5
2524 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2526 + move-result-object v4
2528 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2530 + move-result-object v4
2532 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2534 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->getAction()Ljava/lang/String;
2536 + move-result-object v2
2538 + if-eqz v2, :cond_b7
2540 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->getAction()Ljava/lang/String;
2542 + move-result-object v2
2544 + const-string v4, "android.intent.action.CALL"
2546 + invoke-virtual {v2, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
2548 + move-result v2
2550 + if-nez v2, :cond_3f
2552 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->getAction()Ljava/lang/String;
2554 + move-result-object v2
2556 + const-string v4, "android.intent.action.DIAL"
2558 + invoke-virtual {v2, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
2560 + move-result v2
2562 + if-eqz v2, :cond_b7
2564 + :cond_3f
2565 + const/4 v14, 0x0
2567 + const-string v2, "Instrumentation"
2569 + new-instance v4, Ljava/lang/StringBuilder;
2571 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
2573 + const-string v5, "PDroid:Instrumentation:execStartActivity: Intent action = Intent.ACTION_CALL or Intent.ACTION_DIAL for "
2575 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2577 + move-result-object v4
2579 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2581 + move-result-object v5
2583 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2585 + move-result-object v4
2587 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2589 + move-result-object v4
2591 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2593 + move-object/from16 v0, p0
2595 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2597 + if-eqz v2, :cond_6c
2599 + move-object/from16 v0, p0
2601 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2603 + invoke-virtual {v2}, Landroid/privacy/PrivacySettingsManager;->isServiceAvailable()Z
2605 + move-result v2
2607 + if-nez v2, :cond_125
2609 + :cond_6c
2610 + new-instance v2, Landroid/privacy/PrivacySettingsManager;
2612 + const-string/jumbo v4, "privacy"
2614 + invoke-static {v4}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
2616 + move-result-object v4
2618 + invoke-static {v4}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
2620 + move-result-object v4
2622 + move-object/from16 v0, p1
2624 + invoke-direct {v2, v0, v4}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
2626 + move-object/from16 v0, p0
2628 + iput-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2630 + move-object/from16 v0, p0
2632 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2634 + if-eqz v2, :cond_fb
2636 + const-string v2, "Instrumentation"
2638 + const-string v4, "PDroid:Instrumentation:execStartActivity: Obtained privacy service"
2640 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2642 + :goto_8f
2643 + move-object/from16 v0, p0
2645 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2647 + if-eqz v2, :cond_9f
2649 + move-object/from16 v0, p0
2651 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2653 + invoke-virtual {v2}, Landroid/privacy/PrivacySettingsManager;->isServiceAvailable()Z
2655 + move-result v2
2657 + if-nez v2, :cond_12e
2659 + :cond_9f
2660 + const-string v2, "Instrumentation"
2662 + const-string v4, "PDroid:Instrumentation:execStartActivity: Privacy service not available: rejecting call attempt"
2664 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2666 + const/4 v14, 0x0
2668 + move-object/from16 v0, p0
2670 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2672 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2674 + move-result-object v4
2676 + const/4 v5, 0x1
2678 + const-string/jumbo v6, "phoneCall"
2680 + const/4 v7, 0x0
2682 + invoke-virtual {v2, v4, v5, v6, v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
2683 + :try_end_b7
2684 + .catch Ljava/lang/Exception; {:try_start_5 .. :try_end_b7} :catch_103
2686 + :cond_b7
2687 + :goto_b7
2688 + move-object/from16 v0, p0
2690 + iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
2692 + if-eqz v2, :cond_1fb
2694 + move-object/from16 v0, p0
2696 + iget-object v4, v0, Landroid/app/Instrumentation;->mSync:Ljava/lang/Object;
2698 + monitor-enter v4
2700 + :try_start_c2
2701 + move-object/from16 v0, p0
2703 + iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
2705 + invoke-interface {v2}, Ljava/util/List;->size()I
2707 + move-result v13
2709 + const/16 v17, 0x0
2711 + :goto_cc
2712 + move/from16 v0, v17
2714 + if-ge v0, v13, :cond_1fa
2716 + move-object/from16 v0, p0
2718 + iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
2720 + move/from16 v0, v17
2722 + invoke-interface {v2, v0}, Ljava/util/List;->get(I)Ljava/lang/Object;
2724 + move-result-object v15
2726 + check-cast v15, Landroid/app/Instrumentation$ActivityMonitor;
2728 + const/4 v2, 0x0
2730 + move-object/from16 v0, p1
2732 + move-object/from16 v1, p5
2734 + invoke-virtual {v15, v0, v2, v1}, Landroid/app/Instrumentation$ActivityMonitor;->match(Landroid/content/Context;Landroid/app/Activity;Landroid/content/Intent;)Z
2736 + move-result v2
2738 + if-eqz v2, :cond_1f6
2740 + iget v2, v15, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
2742 + add-int/lit8 v2, v2, 0x1
2744 + iput v2, v15, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
2746 + invoke-virtual {v15}, Landroid/app/Instrumentation$ActivityMonitor;->isBlocking()Z
2748 + move-result v2
2750 + if-eqz v2, :cond_1fa
2752 + if-ltz p6, :cond_1f3
2754 + invoke-virtual {v15}, Landroid/app/Instrumentation$ActivityMonitor;->getResult()Landroid/app/Instrumentation$ActivityResult;
2756 + move-result-object v2
2758 + :goto_f9
2759 + monitor-exit v4
2760 + :try_end_fa
2761 + .catchall {:try_start_c2 .. :try_end_fa} :catchall_215
2763 + :goto_fa
2764 + return-object v2
2766 + :cond_fb
2767 + :try_start_fb
2768 + const-string v2, "Instrumentation"
2770 + const-string v4, "PDroid:Instrumentation:execStartActivity: Privacy service not obtained"
2772 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2773 + :try_end_102
2774 + .catch Ljava/lang/Exception; {:try_start_fb .. :try_end_102} :catch_103
2776 + goto :goto_8f
2778 + :catch_103
2779 + move-exception v16
2781 + if-eqz p1, :cond_1e8
2783 + const-string v2, "Instrumentation"
2785 + new-instance v4, Ljava/lang/StringBuilder;
2787 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
2789 + const-string v5, "PDroid:Instrumentation:execStartActivity: Exception occurred handling intent for "
2791 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2793 + move-result-object v4
2795 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2797 + move-result-object v5
2799 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2801 + move-result-object v4
2803 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2805 + move-result-object v4
2807 + move-object/from16 v0, v16
2809 + invoke-static {v2, v4, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
2811 + goto :goto_b7
2813 + :cond_125
2814 + :try_start_125
2815 + const-string v2, "Instrumentation"
2817 + const-string v4, "PDroid:Instrumentation:execStartActivity: Already had privacy service"
2819 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2821 + goto/16 :goto_8f
2823 + :cond_12e
2824 + move-object/from16 v0, p0
2826 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2828 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2830 + move-result-object v4
2832 + invoke-virtual {v2, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
2834 + move-result-object v18
2836 + if-nez v18, :cond_16b
2838 + const-string v2, "Instrumentation"
2840 + new-instance v4, Ljava/lang/StringBuilder;
2842 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
2844 + const-string v5, "PDroid:Instrumentation:execStartActivity: Call allowed: No settings for package: "
2846 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2848 + move-result-object v4
2850 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2852 + move-result-object v5
2854 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2856 + move-result-object v4
2858 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2860 + move-result-object v4
2862 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2864 + const/4 v14, 0x1
2866 + move-object/from16 v0, p0
2868 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2870 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2872 + move-result-object v4
2874 + const/4 v5, 0x0
2876 + const-string/jumbo v6, "phoneCall"
2878 + const/4 v7, 0x0
2880 + invoke-virtual {v2, v4, v5, v6, v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
2882 + goto/16 :goto_b7
2884 + :cond_16b
2885 + invoke-virtual/range {v18 .. v18}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
2887 + move-result v2
2889 + if-nez v2, :cond_1a3
2891 + const-string v2, "Instrumentation"
2893 + new-instance v4, Ljava/lang/StringBuilder;
2895 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
2897 + const-string v5, "PDroid:Instrumentation:execStartActivity: Call allowed: Settings permit "
2899 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2901 + move-result-object v4
2903 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2905 + move-result-object v5
2907 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2909 + move-result-object v4
2911 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2913 + move-result-object v4
2915 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2917 + const/4 v14, 0x1
2919 + move-object/from16 v0, p0
2921 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2923 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2925 + move-result-object v4
2927 + invoke-virtual/range {v18 .. v18}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
2929 + move-result v5
2931 + const-string/jumbo v6, "phoneCall"
2933 + const/4 v7, 0x0
2935 + invoke-virtual {v2, v4, v5, v6, v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
2937 + goto/16 :goto_b7
2939 + :cond_1a3
2940 + const-string v2, "Instrumentation"
2942 + new-instance v4, Ljava/lang/StringBuilder;
2944 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
2946 + const-string v5, "PDroid:Instrumentation:execStartActivity: Call denied: Settings deny "
2948 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2950 + move-result-object v4
2952 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2954 + move-result-object v5
2956 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2958 + move-result-object v4
2960 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2962 + move-result-object v4
2964 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2966 + const/4 v14, 0x0
2968 + move-object/from16 v20, p1
2970 + new-instance v2, Ljava/lang/Thread;
2972 + new-instance v4, Landroid/app/Instrumentation$1;
2974 + move-object/from16 v0, p0
2976 + move-object/from16 v1, v20
2978 + invoke-direct {v4, v0, v1}, Landroid/app/Instrumentation$1;-><init>(Landroid/app/Instrumentation;Landroid/content/Context;)V
2980 + invoke-direct {v2, v4}, Ljava/lang/Thread;-><init>(Ljava/lang/Runnable;)V
2982 + invoke-virtual {v2}, Ljava/lang/Thread;->start()V
2984 + move-object/from16 v0, p0
2986 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2988 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2990 + move-result-object v4
2992 + invoke-virtual/range {v18 .. v18}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
2994 + move-result v5
2996 + const-string/jumbo v6, "phoneCall"
2998 + const/4 v7, 0x0
3000 + invoke-virtual {v2, v4, v5, v6, v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
3001 + :try_end_1e6
3002 + .catch Ljava/lang/Exception; {:try_start_125 .. :try_end_1e6} :catch_103
3004 + goto/16 :goto_b7
3006 + :cond_1e8
3007 + const-string v2, "Instrumentation"
3009 + const-string v4, "PDroid:Instrumentation:execStartActivity: Exception occurred handling intent for unknown package"
3011 + move-object/from16 v0, v16
3013 + invoke-static {v2, v4, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
3015 + goto/16 :goto_b7
3017 + :cond_1f3
3018 + const/4 v2, 0x0
3020 + goto/16 :goto_f9
3022 + :cond_1f6
3023 + add-int/lit8 v17, v17, 0x1
3025 + goto/16 :goto_cc
3027 + :cond_1fa
3028 + :try_start_1fa
3029 + monitor-exit v4
3030 + :try_end_1fb
3031 + .catchall {:try_start_1fa .. :try_end_1fb} :catchall_215
3033 + :cond_1fb
3034 + if-nez v14, :cond_218
3036 + :try_start_1fd
3037 + new-instance v2, Landroid/app/Instrumentation$ActivityResult;
3039 + move/from16 v0, p6
3041 + move-object/from16 v1, p5
3043 + invoke-direct {v2, v0, v1}, Landroid/app/Instrumentation$ActivityResult;-><init>(ILandroid/content/Intent;)V
3044 + :try_end_206
3045 + .catch Ljava/lang/Exception; {:try_start_1fd .. :try_end_206} :catch_208
3047 + goto/16 :goto_fa
3049 + :catch_208
3050 + move-exception v16
3052 + const-string v2, "Instrumentation"
3054 + const-string v4, "PDroid:Instrumentation:execStartActivity: Exception occurred while trying to create ActivityResult"
3056 + move-object/from16 v0, v16
3058 + invoke-static {v2, v4, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
3060 + const/4 v2, 0x0
3062 + goto/16 :goto_fa
3064 + :catchall_215
3065 + move-exception v2
3067 + :try_start_216
3068 + monitor-exit v4
3069 + :try_end_217
3070 + .catchall {:try_start_216 .. :try_end_217} :catchall_215
3072 + throw v2
3074 + :cond_218
3075 + const/4 v2, 0x0
3077 + :try_start_219
3078 + move-object/from16 v0, p5
3080 + invoke-virtual {v0, v2}, Landroid/content/Intent;->setAllowFds(Z)V
3082 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->migrateExtraStreamToClipData()Z
3084 + invoke-static {}, Landroid/app/ActivityManagerNative;->getDefault()Landroid/app/IActivityManager;
3086 + move-result-object v2
3088 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
3090 + move-result-object v4
3092 + move-object/from16 v0, p5
3094 + invoke-virtual {v0, v4}, Landroid/content/Intent;->resolveTypeIfNeeded(Landroid/content/ContentResolver;)Ljava/lang/String;
3096 + move-result-object v5
3098 + if-eqz p4, :cond_24e
3100 + move-object/from16 v0, p4
3102 + iget-object v7, v0, Landroid/app/Activity;->mEmbeddedID:Ljava/lang/String;
3104 + :goto_235
3105 + const/4 v9, 0x0
3107 + const/4 v10, 0x0
3109 + const/4 v11, 0x0
3111 + move-object/from16 v4, p5
3113 + move-object/from16 v6, p3
3115 + move/from16 v8, p6
3117 + move-object/from16 v12, p7
3119 + 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
3121 + move-result v19
3123 + move/from16 v0, v19
3125 + move-object/from16 v1, p5
3127 + invoke-static {v0, v1}, Landroid/app/Instrumentation;->checkStartActivityResult(ILjava/lang/Object;)V
3128 + :try_end_24b
3129 + .catch Landroid/os/RemoteException; {:try_start_219 .. :try_end_24b} :catch_250
3131 + :goto_24b
3132 + const/4 v2, 0x0
3134 + goto/16 :goto_fa
3136 + :cond_24e
3137 + const/4 v7, 0x0
3139 + goto :goto_235
3141 + :catch_250
3142 + move-exception v2
3144 + goto :goto_24b
3145 +.end method
3147 +.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;
3148 + .registers 32
3150 + move-object/from16 v4, p2
3152 + check-cast v4, Landroid/app/IApplicationThread;
3154 + const/16 v16, 0x1
3156 + :try_start_6
3157 + const-string v3, "Instrumentation"
3159 + new-instance v5, Ljava/lang/StringBuilder;
3161 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
3163 + const-string v6, "PDroid:Instrumentation:execStartActivity (with UserHandle): execStartActivity for "
3165 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3167 + move-result-object v5
3169 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3171 + move-result-object v6
3173 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3175 + move-result-object v5
3177 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3179 + move-result-object v5
3181 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3183 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->getAction()Ljava/lang/String;
3185 + move-result-object v3
3187 + if-eqz v3, :cond_ba
3189 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->getAction()Ljava/lang/String;
3191 + move-result-object v3
3193 + const-string v5, "android.intent.action.CALL"
3195 + invoke-virtual {v3, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
3197 + move-result v3
3199 + if-nez v3, :cond_40
3201 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->getAction()Ljava/lang/String;
3203 + move-result-object v3
3205 + const-string v5, "android.intent.action.DIAL"
3207 + invoke-virtual {v3, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
3209 + move-result v3
3211 + if-eqz v3, :cond_ba
3213 + :cond_40
3214 + const/16 v16, 0x0
3216 + const-string v3, "Instrumentation"
3218 + new-instance v5, Ljava/lang/StringBuilder;
3220 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
3222 + const-string v6, "PDroid:Instrumentation:execStartActivity (with UserHandle): Intent action = Intent.ACTION_CALL or Intent.ACTION_DIAL for "
3224 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3226 + move-result-object v5
3228 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3230 + move-result-object v6
3232 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3234 + move-result-object v5
3236 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3238 + move-result-object v5
3240 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3242 + move-object/from16 v0, p0
3244 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3246 + if-eqz v3, :cond_6e
3248 + move-object/from16 v0, p0
3250 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3252 + invoke-virtual {v3}, Landroid/privacy/PrivacySettingsManager;->isServiceAvailable()Z
3254 + move-result v3
3256 + if-nez v3, :cond_12e
3258 + :cond_6e
3259 + new-instance v3, Landroid/privacy/PrivacySettingsManager;
3261 + const-string/jumbo v5, "privacy"
3263 + invoke-static {v5}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
3265 + move-result-object v5
3267 + invoke-static {v5}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
3269 + move-result-object v5
3271 + move-object/from16 v0, p1
3273 + invoke-direct {v3, v0, v5}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
3275 + move-object/from16 v0, p0
3277 + iput-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3279 + move-object/from16 v0, p0
3281 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3283 + if-eqz v3, :cond_104
3285 + const-string v3, "Instrumentation"
3287 + const-string v5, "PDroid:Instrumentation:execStartActivity (with UserHandle): Obtained privacy service"
3289 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3291 + :goto_91
3292 + move-object/from16 v0, p0
3294 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3296 + if-eqz v3, :cond_a1
3298 + move-object/from16 v0, p0
3300 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3302 + invoke-virtual {v3}, Landroid/privacy/PrivacySettingsManager;->isServiceAvailable()Z
3304 + move-result v3
3306 + if-nez v3, :cond_137
3308 + :cond_a1
3309 + const-string v3, "Instrumentation"
3311 + const-string v5, "PDroid:Instrumentation:execStartActivity (with UserHandle): Privacy service not available: rejecting call attempt"
3313 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3315 + const/16 v16, 0x0
3317 + move-object/from16 v0, p0
3319 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3321 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3323 + move-result-object v5
3325 + const/4 v6, 0x1
3327 + const-string/jumbo v7, "phoneCall"
3329 + const/4 v8, 0x0
3331 + invoke-virtual {v3, v5, v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
3332 + :try_end_ba
3333 + .catch Ljava/lang/Exception; {:try_start_6 .. :try_end_ba} :catch_10c
3335 + :cond_ba
3336 + :goto_ba
3337 + move-object/from16 v0, p0
3339 + iget-object v3, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
3341 + if-eqz v3, :cond_207
3343 + move-object/from16 v0, p0
3345 + iget-object v5, v0, Landroid/app/Instrumentation;->mSync:Ljava/lang/Object;
3347 + monitor-enter v5
3349 + :try_start_c5
3350 + move-object/from16 v0, p0
3352 + iget-object v3, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
3354 + invoke-interface {v3}, Ljava/util/List;->size()I
3356 + move-result v15
3358 + const/16 v19, 0x0
3360 + :goto_cf
3361 + move/from16 v0, v19
3363 + if-ge v0, v15, :cond_206
3365 + move-object/from16 v0, p0
3367 + iget-object v3, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
3369 + move/from16 v0, v19
3371 + invoke-interface {v3, v0}, Ljava/util/List;->get(I)Ljava/lang/Object;
3373 + move-result-object v17
3375 + check-cast v17, Landroid/app/Instrumentation$ActivityMonitor;
3377 + const/4 v3, 0x0
3379 + move-object/from16 v0, v17
3381 + move-object/from16 v1, p1
3383 + move-object/from16 v2, p5
3385 + invoke-virtual {v0, v1, v3, v2}, Landroid/app/Instrumentation$ActivityMonitor;->match(Landroid/content/Context;Landroid/app/Activity;Landroid/content/Intent;)Z
3387 + move-result v3
3389 + if-eqz v3, :cond_202
3391 + move-object/from16 v0, v17
3393 + iget v3, v0, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
3395 + add-int/lit8 v3, v3, 0x1
3397 + move-object/from16 v0, v17
3399 + iput v3, v0, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
3401 + invoke-virtual/range {v17 .. v17}, Landroid/app/Instrumentation$ActivityMonitor;->isBlocking()Z
3403 + move-result v3
3405 + if-eqz v3, :cond_206
3407 + if-ltz p6, :cond_1ff
3409 + invoke-virtual/range {v17 .. v17}, Landroid/app/Instrumentation$ActivityMonitor;->getResult()Landroid/app/Instrumentation$ActivityResult;
3411 + move-result-object v3
3413 + :goto_102
3414 + monitor-exit v5
3415 + :try_end_103
3416 + .catchall {:try_start_c5 .. :try_end_103} :catchall_221
3418 + :goto_103
3419 + return-object v3
3421 + :cond_104
3422 + :try_start_104
3423 + const-string v3, "Instrumentation"
3425 + const-string v5, "PDroid:Instrumentation:execStartActivity (with UserHandle): Privacy service not obtained"
3427 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3428 + :try_end_10b
3429 + .catch Ljava/lang/Exception; {:try_start_104 .. :try_end_10b} :catch_10c
3431 + goto :goto_91
3433 + :catch_10c
3434 + move-exception v18
3436 + if-eqz p1, :cond_1f4
3438 + const-string v3, "Instrumentation"
3440 + new-instance v5, Ljava/lang/StringBuilder;
3442 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
3444 + const-string v6, "PDroid:Instrumentation:execStartActivity (with UserHandle): Exception occurred handling intent for "
3446 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3448 + move-result-object v5
3450 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3452 + move-result-object v6
3454 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3456 + move-result-object v5
3458 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3460 + move-result-object v5
3462 + move-object/from16 v0, v18
3464 + invoke-static {v3, v5, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
3466 + goto :goto_ba
3468 + :cond_12e
3469 + :try_start_12e
3470 + const-string v3, "Instrumentation"
3472 + const-string v5, "PDroid:Instrumentation:execStartActivity (with UserHandle): Already had privacy service"
3474 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3476 + goto/16 :goto_91
3478 + :cond_137
3479 + move-object/from16 v0, p0
3481 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3483 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3485 + move-result-object v5
3487 + invoke-virtual {v3, v5}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
3489 + move-result-object v20
3491 + if-nez v20, :cond_175
3493 + const-string v3, "Instrumentation"
3495 + new-instance v5, Ljava/lang/StringBuilder;
3497 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
3499 + const-string v6, "PDroid:Instrumentation:execStartActivity (with UserHandle): Call allowed: No settings for package: "
3501 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3503 + move-result-object v5
3505 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3507 + move-result-object v6
3509 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3511 + move-result-object v5
3513 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3515 + move-result-object v5
3517 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3519 + const/16 v16, 0x1
3521 + move-object/from16 v0, p0
3523 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3525 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3527 + move-result-object v5
3529 + const/4 v6, 0x0
3531 + const-string/jumbo v7, "phoneCall"
3533 + const/4 v8, 0x0
3535 + invoke-virtual {v3, v5, v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
3537 + goto/16 :goto_ba
3539 + :cond_175
3540 + invoke-virtual/range {v20 .. v20}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
3542 + move-result v3
3544 + if-nez v3, :cond_1ae
3546 + const-string v3, "Instrumentation"
3548 + new-instance v5, Ljava/lang/StringBuilder;
3550 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
3552 + const-string v6, "PDroid:Instrumentation:execStartActivity (with UserHandle): Call allowed: Settings permit "
3554 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3556 + move-result-object v5
3558 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3560 + move-result-object v6
3562 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3564 + move-result-object v5
3566 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3568 + move-result-object v5
3570 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3572 + const/16 v16, 0x1
3574 + move-object/from16 v0, p0
3576 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3578 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3580 + move-result-object v5
3582 + invoke-virtual/range {v20 .. v20}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
3584 + move-result v6
3586 + const-string/jumbo v7, "phoneCall"
3588 + const/4 v8, 0x0
3590 + invoke-virtual {v3, v5, v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
3592 + goto/16 :goto_ba
3594 + :cond_1ae
3595 + const-string v3, "Instrumentation"
3597 + new-instance v5, Ljava/lang/StringBuilder;
3599 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
3601 + const-string v6, "PDroid:Instrumentation:execStartActivity (with UserHandle): Call denied: Settings deny "
3603 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3605 + move-result-object v5
3607 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3609 + move-result-object v6
3611 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3613 + move-result-object v5
3615 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3617 + move-result-object v5
3619 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3621 + move-object/from16 v22, p1
3623 + const/16 v16, 0x0
3625 + new-instance v3, Ljava/lang/Thread;
3627 + new-instance v5, Landroid/app/Instrumentation$4;
3629 + move-object/from16 v0, p0
3631 + move-object/from16 v1, v22
3633 + invoke-direct {v5, v0, v1}, Landroid/app/Instrumentation$4;-><init>(Landroid/app/Instrumentation;Landroid/content/Context;)V
3635 + invoke-direct {v3, v5}, Ljava/lang/Thread;-><init>(Ljava/lang/Runnable;)V
3637 + invoke-virtual {v3}, Ljava/lang/Thread;->start()V
3639 + move-object/from16 v0, p0
3641 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3643 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3645 + move-result-object v5
3647 + invoke-virtual/range {v20 .. v20}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
3649 + move-result v6
3651 + const-string/jumbo v7, "phoneCall"
3653 + const/4 v8, 0x0
3655 + invoke-virtual {v3, v5, v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
3656 + :try_end_1f2
3657 + .catch Ljava/lang/Exception; {:try_start_12e .. :try_end_1f2} :catch_10c
3659 + goto/16 :goto_ba
3661 + :cond_1f4
3662 + const-string v3, "Instrumentation"
3664 + const-string v5, "PDroid:Instrumentation:execStartActivity (with UserHandle): Exception occurred handling intent for unknown package"
3666 + move-object/from16 v0, v18
3668 + invoke-static {v3, v5, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
3670 + goto/16 :goto_ba
3672 + :cond_1ff
3673 + const/4 v3, 0x0
3675 + goto/16 :goto_102
3677 + :cond_202
3678 + add-int/lit8 v19, v19, 0x1
3680 + goto/16 :goto_cf
3682 + :cond_206
3683 + :try_start_206
3684 + monitor-exit v5
3685 + :try_end_207
3686 + .catchall {:try_start_206 .. :try_end_207} :catchall_221
3688 + :cond_207
3689 + if-nez v16, :cond_224
3691 + :try_start_209
3692 + new-instance v3, Landroid/app/Instrumentation$ActivityResult;
3694 + move/from16 v0, p6
3696 + move-object/from16 v1, p5
3698 + invoke-direct {v3, v0, v1}, Landroid/app/Instrumentation$ActivityResult;-><init>(ILandroid/content/Intent;)V
3699 + :try_end_212
3700 + .catch Ljava/lang/Exception; {:try_start_209 .. :try_end_212} :catch_214
3702 + goto/16 :goto_103
3704 + :catch_214
3705 + move-exception v18
3707 + const-string v3, "Instrumentation"
3709 + const-string v5, "PDroid:Instrumentation:execStartActivity (with UserHandle): Exception occurred while trying to create ActivityResult"
3711 + move-object/from16 v0, v18
3713 + invoke-static {v3, v5, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
3715 + const/4 v3, 0x0
3717 + goto/16 :goto_103
3719 + :catchall_221
3720 + move-exception v3
3722 + :try_start_222
3723 + monitor-exit v5
3724 + :try_end_223
3725 + .catchall {:try_start_222 .. :try_end_223} :catchall_221
3727 + throw v3
3729 + :cond_224
3730 + const/4 v3, 0x0
3732 + :try_start_225
3733 + move-object/from16 v0, p5
3735 + invoke-virtual {v0, v3}, Landroid/content/Intent;->setAllowFds(Z)V
3737 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->migrateExtraStreamToClipData()Z
3739 + invoke-static {}, Landroid/app/ActivityManagerNative;->getDefault()Landroid/app/IActivityManager;
3741 + move-result-object v3
3743 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
3745 + move-result-object v5
3747 + move-object/from16 v0, p5
3749 + invoke-virtual {v0, v5}, Landroid/content/Intent;->resolveTypeIfNeeded(Landroid/content/ContentResolver;)Ljava/lang/String;
3751 + move-result-object v6
3753 + if-eqz p4, :cond_25e
3755 + move-object/from16 v0, p4
3757 + iget-object v8, v0, Landroid/app/Activity;->mEmbeddedID:Ljava/lang/String;
3759 + :goto_241
3760 + const/4 v10, 0x0
3762 + const/4 v11, 0x0
3764 + const/4 v12, 0x0
3766 + invoke-virtual/range {p8 .. p8}, Landroid/os/UserHandle;->getIdentifier()I
3768 + move-result v14
3770 + move-object/from16 v5, p5
3772 + move-object/from16 v7, p3
3774 + move/from16 v9, p6
3776 + move-object/from16 v13, p7
3778 + 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
3780 + move-result v21
3782 + move/from16 v0, v21
3784 + move-object/from16 v1, p5
3786 + invoke-static {v0, v1}, Landroid/app/Instrumentation;->checkStartActivityResult(ILjava/lang/Object;)V
3787 + :try_end_25b
3788 + .catch Landroid/os/RemoteException; {:try_start_225 .. :try_end_25b} :catch_260
3790 + :goto_25b
3791 + const/4 v3, 0x0
3793 + goto/16 :goto_103
3795 + :cond_25e
3796 + const/4 v8, 0x0
3798 + goto :goto_241
3800 + :catch_260
3801 + move-exception v3
3803 + goto :goto_25b
3804 +.end method
3806 +.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;
3807 + .registers 29
3809 + move-object/from16 v3, p2
3811 + check-cast v3, Landroid/app/IApplicationThread;
3813 + const/4 v14, 0x1
3815 + :try_start_5
3816 + const-string v2, "Instrumentation"
3818 + new-instance v4, Ljava/lang/StringBuilder;
3820 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
3822 + const-string v5, "PDroid:Instrumentation:execStartActivity (with Fragments): execStartActivity for "
3824 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3826 + move-result-object v4
3828 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3830 + move-result-object v5
3832 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3834 + move-result-object v4
3836 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3838 + move-result-object v4
3840 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3842 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->getAction()Ljava/lang/String;
3844 + move-result-object v2
3846 + if-eqz v2, :cond_b7
3848 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->getAction()Ljava/lang/String;
3850 + move-result-object v2
3852 + const-string v4, "android.intent.action.CALL"
3854 + invoke-virtual {v2, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
3856 + move-result v2
3858 + if-nez v2, :cond_3f
3860 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->getAction()Ljava/lang/String;
3862 + move-result-object v2
3864 + const-string v4, "android.intent.action.DIAL"
3866 + invoke-virtual {v2, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
3868 + move-result v2
3870 + if-eqz v2, :cond_b7
3872 + :cond_3f
3873 + const/4 v14, 0x0
3875 + const-string v2, "Instrumentation"
3877 + new-instance v4, Ljava/lang/StringBuilder;
3879 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
3881 + const-string v5, "PDroid:Instrumentation:execStartActivity (with Fragments): Intent action = Intent.ACTION_CALL or Intent.ACTION_DIAL for "
3883 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3885 + move-result-object v4
3887 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3889 + move-result-object v5
3891 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3893 + move-result-object v4
3895 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3897 + move-result-object v4
3899 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3901 + move-object/from16 v0, p0
3903 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3905 + if-eqz v2, :cond_6c
3907 + move-object/from16 v0, p0
3909 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3911 + invoke-virtual {v2}, Landroid/privacy/PrivacySettingsManager;->isServiceAvailable()Z
3913 + move-result v2
3915 + if-nez v2, :cond_125
3917 + :cond_6c
3918 + new-instance v2, Landroid/privacy/PrivacySettingsManager;
3920 + const-string/jumbo v4, "privacy"
3922 + invoke-static {v4}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
3924 + move-result-object v4
3926 + invoke-static {v4}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
3928 + move-result-object v4
3930 + move-object/from16 v0, p1
3932 + invoke-direct {v2, v0, v4}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
3934 + move-object/from16 v0, p0
3936 + iput-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3938 + move-object/from16 v0, p0
3940 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3942 + if-eqz v2, :cond_fb
3944 + const-string v2, "Instrumentation"
3946 + const-string v4, "PDroid:Instrumentation:execStartActivity (with Fragments): Obtained privacy service"
3948 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3950 + :goto_8f
3951 + move-object/from16 v0, p0
3953 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3955 + if-eqz v2, :cond_9f
3957 + move-object/from16 v0, p0
3959 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3961 + invoke-virtual {v2}, Landroid/privacy/PrivacySettingsManager;->isServiceAvailable()Z
3963 + move-result v2
3965 + if-nez v2, :cond_12e
3967 + :cond_9f
3968 + const-string v2, "Instrumentation"
3970 + const-string v4, "PDroid:Instrumentation:execStartActivity (with Fragments): Privacy service not available: rejecting call attempt"
3972 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3974 + const/4 v14, 0x0
3976 + move-object/from16 v0, p0
3978 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3980 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3982 + move-result-object v4
3984 + const/4 v5, 0x1
3986 + const-string/jumbo v6, "phoneCall"
3988 + const/4 v7, 0x0
3990 + invoke-virtual {v2, v4, v5, v6, v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
3991 + :try_end_b7
3992 + .catch Ljava/lang/Exception; {:try_start_5 .. :try_end_b7} :catch_103
3994 + :cond_b7
3995 + :goto_b7
3996 + move-object/from16 v0, p0
3998 + iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
4000 + if-eqz v2, :cond_1fb
4002 + move-object/from16 v0, p0
4004 + iget-object v4, v0, Landroid/app/Instrumentation;->mSync:Ljava/lang/Object;
4006 + monitor-enter v4
4008 + :try_start_c2
4009 + move-object/from16 v0, p0
4011 + iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
4013 + invoke-interface {v2}, Ljava/util/List;->size()I
4015 + move-result v13
4017 + const/16 v17, 0x0
4019 + :goto_cc
4020 + move/from16 v0, v17
4022 + if-ge v0, v13, :cond_1fa
4024 + move-object/from16 v0, p0
4026 + iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
4028 + move/from16 v0, v17
4030 + invoke-interface {v2, v0}, Ljava/util/List;->get(I)Ljava/lang/Object;
4032 + move-result-object v15
4034 + check-cast v15, Landroid/app/Instrumentation$ActivityMonitor;
4036 + const/4 v2, 0x0
4038 + move-object/from16 v0, p1
4040 + move-object/from16 v1, p5
4042 + invoke-virtual {v15, v0, v2, v1}, Landroid/app/Instrumentation$ActivityMonitor;->match(Landroid/content/Context;Landroid/app/Activity;Landroid/content/Intent;)Z
4044 + move-result v2
4046 + if-eqz v2, :cond_1f6
4048 + iget v2, v15, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
4050 + add-int/lit8 v2, v2, 0x1
4052 + iput v2, v15, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
4054 + invoke-virtual {v15}, Landroid/app/Instrumentation$ActivityMonitor;->isBlocking()Z
4056 + move-result v2
4058 + if-eqz v2, :cond_1fa
4060 + if-ltz p6, :cond_1f3
4062 + invoke-virtual {v15}, Landroid/app/Instrumentation$ActivityMonitor;->getResult()Landroid/app/Instrumentation$ActivityResult;
4064 + move-result-object v2
4066 + :goto_f9
4067 + monitor-exit v4
4068 + :try_end_fa
4069 + .catchall {:try_start_c2 .. :try_end_fa} :catchall_215
4071 + :goto_fa
4072 + return-object v2
4074 + :cond_fb
4075 + :try_start_fb
4076 + const-string v2, "Instrumentation"
4078 + const-string v4, "PDroid:Instrumentation:execStartActivity (with Fragments): Privacy service not obtained"
4080 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
4081 + :try_end_102
4082 + .catch Ljava/lang/Exception; {:try_start_fb .. :try_end_102} :catch_103
4084 + goto :goto_8f
4086 + :catch_103
4087 + move-exception v16
4089 + if-eqz p1, :cond_1e8
4091 + const-string v2, "Instrumentation"
4093 + new-instance v4, Ljava/lang/StringBuilder;
4095 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
4097 + const-string v5, "PDroid:Instrumentation:execStartActivity (with Fragments): Exception occurred handling intent for "
4099 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4101 + move-result-object v4
4103 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
4105 + move-result-object v5
4107 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4109 + move-result-object v4
4111 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
4113 + move-result-object v4
4115 + move-object/from16 v0, v16
4117 + invoke-static {v2, v4, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
4119 + goto :goto_b7
4121 + :cond_125
4122 + :try_start_125
4123 + const-string v2, "Instrumentation"
4125 + const-string v4, "PDroid:Instrumentation:execStartActivity (with Fragments): Already had privacy service"
4127 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
4129 + goto/16 :goto_8f
4131 + :cond_12e
4132 + move-object/from16 v0, p0
4134 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
4136 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
4138 + move-result-object v4
4140 + invoke-virtual {v2, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
4142 + move-result-object v18
4144 + if-nez v18, :cond_16b
4146 + const-string v2, "Instrumentation"
4148 + new-instance v4, Ljava/lang/StringBuilder;
4150 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
4152 + const-string v5, "PDroid:Instrumentation:execStartActivity (with Fragments): Call allowed: No settings for package: "
4154 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4156 + move-result-object v4
4158 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
4160 + move-result-object v5
4162 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4164 + move-result-object v4
4166 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
4168 + move-result-object v4
4170 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
4172 + const/4 v14, 0x1
4174 + move-object/from16 v0, p0
4176 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
4178 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
4180 + move-result-object v4
4182 + const/4 v5, 0x0
4184 + const-string/jumbo v6, "phoneCall"
4186 + const/4 v7, 0x0
4188 + invoke-virtual {v2, v4, v5, v6, v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
4190 + goto/16 :goto_b7
4192 + :cond_16b
4193 + invoke-virtual/range {v18 .. v18}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
4195 + move-result v2
4197 + if-nez v2, :cond_1a3
4199 + const-string v2, "Instrumentation"
4201 + new-instance v4, Ljava/lang/StringBuilder;
4203 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
4205 + const-string v5, "PDroid:Instrumentation:execStartActivity (with Fragments): Call allowed: Settings permit "
4207 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4209 + move-result-object v4
4211 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
4213 + move-result-object v5
4215 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4217 + move-result-object v4
4219 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
4221 + move-result-object v4
4223 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
4225 + const/4 v14, 0x1
4227 + move-object/from16 v0, p0
4229 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
4231 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
4233 + move-result-object v4
4235 + invoke-virtual/range {v18 .. v18}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
4237 + move-result v5
4239 + const-string/jumbo v6, "phoneCall"
4241 + const/4 v7, 0x0
4243 + invoke-virtual {v2, v4, v5, v6, v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
4245 + goto/16 :goto_b7
4247 + :cond_1a3
4248 + const-string v2, "Instrumentation"
4250 + new-instance v4, Ljava/lang/StringBuilder;
4252 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
4254 + const-string v5, "PDroid:Instrumentation:execStartActivity (with Fragments): Call denied: Settings deny "
4256 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4258 + move-result-object v4
4260 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
4262 + move-result-object v5
4264 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4266 + move-result-object v4
4268 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
4270 + move-result-object v4
4272 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
4274 + move-object/from16 v20, p1
4276 + const/4 v14, 0x0
4278 + new-instance v2, Ljava/lang/Thread;
4280 + new-instance v4, Landroid/app/Instrumentation$3;
4282 + move-object/from16 v0, p0
4284 + move-object/from16 v1, v20
4286 + invoke-direct {v4, v0, v1}, Landroid/app/Instrumentation$3;-><init>(Landroid/app/Instrumentation;Landroid/content/Context;)V
4288 + invoke-direct {v2, v4}, Ljava/lang/Thread;-><init>(Ljava/lang/Runnable;)V
4290 + invoke-virtual {v2}, Ljava/lang/Thread;->start()V
4292 + move-object/from16 v0, p0
4294 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
4296 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
4298 + move-result-object v4
4300 + invoke-virtual/range {v18 .. v18}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
4302 + move-result v5
4304 + const-string/jumbo v6, "phoneCall"
4306 + const/4 v7, 0x0
4308 + invoke-virtual {v2, v4, v5, v6, v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
4309 + :try_end_1e6
4310 + .catch Ljava/lang/Exception; {:try_start_125 .. :try_end_1e6} :catch_103
4312 + goto/16 :goto_b7
4314 + :cond_1e8
4315 + const-string v2, "Instrumentation"
4317 + const-string v4, "PDroid:Instrumentation:execStartActivity (with Fragments): Exception occurred handling intent for unknown package"
4319 + move-object/from16 v0, v16
4321 + invoke-static {v2, v4, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
4323 + goto/16 :goto_b7
4325 + :cond_1f3
4326 + const/4 v2, 0x0
4328 + goto/16 :goto_f9
4330 + :cond_1f6
4331 + add-int/lit8 v17, v17, 0x1
4333 + goto/16 :goto_cc
4335 + :cond_1fa
4336 + :try_start_1fa
4337 + monitor-exit v4
4338 + :try_end_1fb
4339 + .catchall {:try_start_1fa .. :try_end_1fb} :catchall_215
4341 + :cond_1fb
4342 + if-nez v14, :cond_218
4344 + :try_start_1fd
4345 + new-instance v2, Landroid/app/Instrumentation$ActivityResult;
4347 + move/from16 v0, p6
4349 + move-object/from16 v1, p5
4351 + invoke-direct {v2, v0, v1}, Landroid/app/Instrumentation$ActivityResult;-><init>(ILandroid/content/Intent;)V
4352 + :try_end_206
4353 + .catch Ljava/lang/Exception; {:try_start_1fd .. :try_end_206} :catch_208
4355 + goto/16 :goto_fa
4357 + :catch_208
4358 + move-exception v16
4360 + const-string v2, "Instrumentation"
4362 + const-string v4, "PDroid:Instrumentation:execStartActivity (with Fragments): Exception occurred while trying to create ActivityResult"
4364 + move-object/from16 v0, v16
4366 + invoke-static {v2, v4, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
4368 - :goto_7c
4369 const/4 v2, 0x0
4371 - goto :goto_42
4372 + goto/16 :goto_fa
4374 - :catchall_7e
4375 + :catchall_215
4376 move-exception v2
4378 - :try_start_7f
4379 + :try_start_216
4380 monitor-exit v4
4381 - :try_end_80
4382 - .catchall {:try_start_7f .. :try_end_80} :catchall_7e
4383 + :try_end_217
4384 + .catchall {:try_start_216 .. :try_end_217} :catchall_215
4386 throw v2
4388 - :cond_81
4389 + :cond_218
4390 + const/4 v2, 0x0
4392 + :try_start_219
4393 + move-object/from16 v0, p5
4395 + invoke-virtual {v0, v2}, Landroid/content/Intent;->setAllowFds(Z)V
4397 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->migrateExtraStreamToClipData()Z
4399 + invoke-static {}, Landroid/app/ActivityManagerNative;->getDefault()Landroid/app/IActivityManager;
4401 + move-result-object v2
4403 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
4405 + move-result-object v4
4407 + move-object/from16 v0, p5
4409 + invoke-virtual {v0, v4}, Landroid/content/Intent;->resolveTypeIfNeeded(Landroid/content/ContentResolver;)Ljava/lang/String;
4411 + move-result-object v5
4413 + if-eqz p4, :cond_24e
4415 + move-object/from16 v0, p4
4417 + iget-object v7, v0, Landroid/app/Fragment;->mWho:Ljava/lang/String;
4419 + :goto_235
4420 + const/4 v9, 0x0
4422 + const/4 v10, 0x0
4424 + const/4 v11, 0x0
4426 + move-object/from16 v4, p5
4428 + move-object/from16 v6, p3
4430 + move/from16 v8, p6
4432 + move-object/from16 v12, p7
4434 + 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
4436 + move-result v19
4438 + move/from16 v0, v19
4440 + move-object/from16 v1, p5
4442 + invoke-static {v0, v1}, Landroid/app/Instrumentation;->checkStartActivityResult(ILjava/lang/Object;)V
4443 + :try_end_24b
4444 + .catch Landroid/os/RemoteException; {:try_start_219 .. :try_end_24b} :catch_250
4446 + :goto_24b
4447 + const/4 v2, 0x0
4449 + goto/16 :goto_fa
4451 + :cond_24e
4452 const/4 v7, 0x0
4454 - goto :goto_66
4455 + goto :goto_235
4457 - :catch_83
4458 + :catch_250
4459 move-exception v2
4461 - goto :goto_7c
4462 + goto :goto_24b
4463 .end method
4465 .method public finish(ILandroid/os/Bundle;)V
4466 diff -Npru stock-framework/smali/android/content/AsyncTaskLoader.smali opd-framework/smali/android/content/AsyncTaskLoader.smali
4467 --- stock-framework/smali/android/content/AsyncTaskLoader.smali 2013-01-09 02:52:59.543614277 -0600
4468 +++ opd-framework/smali/android/content/AsyncTaskLoader.smali 2013-01-09 02:52:39.895516847 -0600
4469 @@ -167,11 +167,11 @@
4471 iget-object v0, p0, Landroid/content/AsyncTaskLoader;->mTask:Landroid/content/AsyncTaskLoader$LoadTask;
4473 - if-eqz v0, :cond_20
4474 + if-eqz v0, :cond_21
4476 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
4478 - const-string v0, "mTask="
4479 + const-string/jumbo v0, "mTask="
4481 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
4483 @@ -189,10 +189,10 @@
4485 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->println(Z)V
4487 - :cond_20
4488 + :cond_21
4489 iget-object v0, p0, Landroid/content/AsyncTaskLoader;->mCancellingTask:Landroid/content/AsyncTaskLoader$LoadTask;
4491 - if-eqz v0, :cond_3d
4492 + if-eqz v0, :cond_3e
4494 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
4496 @@ -214,14 +214,14 @@
4498 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->println(Z)V
4500 - :cond_3d
4501 + :cond_3e
4502 iget-wide v0, p0, Landroid/content/AsyncTaskLoader;->mUpdateThrottle:J
4504 const-wide/16 v2, 0x0
4506 cmp-long v0, v0, v2
4508 - if-eqz v0, :cond_64
4509 + if-eqz v0, :cond_65
4511 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
4513 @@ -247,7 +247,7 @@
4515 invoke-virtual {p3}, Ljava/io/PrintWriter;->println()V
4517 - :cond_64
4518 + :cond_65
4519 return-void
4520 .end method
4522 diff -Npru stock-framework/smali/android/content/ContentProviderOperation.smali opd-framework/smali/android/content/ContentProviderOperation.smali
4523 --- stock-framework/smali/android/content/ContentProviderOperation.smali 2013-01-09 02:52:59.595614535 -0600
4524 +++ opd-framework/smali/android/content/ContentProviderOperation.smali 2013-01-09 02:52:39.955517141 -0600
4525 @@ -1216,7 +1216,7 @@
4527 invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
4529 - const-string v1, "mType: "
4530 + const-string/jumbo v1, "mType: "
4532 invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4534 diff -Npru stock-framework/smali/android/content/ContentResolver.smali opd-framework/smali/android/content/ContentResolver.smali
4535 --- stock-framework/smali/android/content/ContentResolver.smali 2013-01-09 02:52:59.027611715 -0600
4536 +++ opd-framework/smali/android/content/ContentResolver.smali 2013-01-09 02:52:38.819511512 -0600
4537 @@ -3541,8 +3541,8 @@
4539 invoke-virtual {v0, v9}, Landroid/os/CancellationSignal;->setRemote(Landroid/os/ICancellationSignal;)V
4540 :try_end_1d
4541 - .catchall {:try_start_a .. :try_end_1d} :catchall_b9
4542 - .catch Landroid/os/RemoteException; {:try_start_a .. :try_end_1d} :catch_a6
4543 + .catchall {:try_start_a .. :try_end_1d} :catchall_d5
4544 + .catch Landroid/os/RemoteException; {:try_start_a .. :try_end_1d} :catch_c2
4546 :cond_1d
4547 move-object/from16 v4, p1
4548 @@ -3557,25 +3557,39 @@
4550 :try_start_27
4551 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;
4552 - :try_end_2a
4553 - .catchall {:try_start_27 .. :try_end_2a} :catchall_b9
4554 - .catch Landroid/os/DeadObjectException; {:try_start_27 .. :try_end_2a} :catch_3e
4555 - .catch Landroid/os/RemoteException; {:try_start_27 .. :try_end_2a} :catch_a6
4557 move-result-object v19
4559 - :goto_2b
4560 - if-nez v19, :cond_6c
4561 + move-object/from16 v0, p0
4563 + iget-object v4, v0, Landroid/content/ContentResolver;->mContext:Landroid/content/Context;
4565 + move-object/from16 v0, p1
4567 + move-object/from16 v1, p2
4569 + move-object/from16 v2, v19
4571 + 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;
4572 + :try_end_38
4573 + .catchall {:try_start_27 .. :try_end_38} :catchall_d5
4574 + .catch Landroid/os/DeadObjectException; {:try_start_27 .. :try_end_38} :catch_4c
4575 + .catch Landroid/os/RemoteException; {:try_start_27 .. :try_end_38} :catch_c2
4577 + move-result-object v19
4579 + :goto_39
4580 + if-nez v19, :cond_88
4582 const/16 v22, 0x0
4584 - if-eqz v3, :cond_36
4585 + if-eqz v3, :cond_44
4587 move-object/from16 v0, p0
4589 invoke-virtual {v0, v3}, Landroid/content/ContentResolver;->releaseUnstableProvider(Landroid/content/IContentProvider;)Z
4591 - :cond_36
4592 + :cond_44
4593 if-eqz v10, :cond_8
4595 move-object/from16 v0, p0
4596 @@ -3584,32 +3598,32 @@
4598 goto :goto_8
4600 - :catch_3e
4601 + :catch_4c
4602 move-exception v18
4604 - :try_start_3f
4605 + :try_start_4d
4606 move-object/from16 v0, p0
4608 invoke-virtual {v0, v3}, Landroid/content/ContentResolver;->unstableProviderDied(Landroid/content/IContentProvider;)V
4610 invoke-virtual/range {p0 .. p1}, Landroid/content/ContentResolver;->acquireProvider(Landroid/net/Uri;)Landroid/content/IContentProvider;
4611 - :try_end_47
4612 - .catchall {:try_start_3f .. :try_end_47} :catchall_b9
4613 - .catch Landroid/os/RemoteException; {:try_start_3f .. :try_end_47} :catch_a6
4614 + :try_end_55
4615 + .catchall {:try_start_4d .. :try_end_55} :catchall_d5
4616 + .catch Landroid/os/RemoteException; {:try_start_4d .. :try_end_55} :catch_c2
4618 move-result-object v10
4620 - if-nez v10, :cond_5b
4621 + if-nez v10, :cond_69
4623 const/16 v22, 0x0
4625 - if-eqz v3, :cond_53
4626 + if-eqz v3, :cond_61
4628 move-object/from16 v0, p0
4630 invoke-virtual {v0, v3}, Landroid/content/ContentResolver;->releaseUnstableProvider(Landroid/content/IContentProvider;)Z
4632 - :cond_53
4633 + :cond_61
4634 if-eqz v10, :cond_8
4636 move-object/from16 v0, p0
4637 @@ -3618,7 +3632,7 @@
4639 goto :goto_8
4641 - :cond_5b
4642 + :cond_69
4643 move-object/from16 v11, p1
4645 move-object/from16 v12, p2
4646 @@ -3631,14 +3645,28 @@
4648 move-object/from16 v16, v9
4650 - :try_start_67
4651 + :try_start_75
4652 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;
4654 move-result-object v19
4656 - goto :goto_2b
4657 + move-object/from16 v0, p0
4659 + iget-object v4, v0, Landroid/content/ContentResolver;->mContext:Landroid/content/Context;
4661 + move-object/from16 v0, p1
4663 + move-object/from16 v1, p2
4665 + move-object/from16 v2, v19
4667 + 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;
4669 + move-result-object v19
4671 + goto :goto_39
4673 - :cond_6c
4674 + :cond_88
4675 invoke-interface/range {v19 .. v19}, Landroid/database/Cursor;->getCount()I
4677 invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J
4678 @@ -3661,11 +3689,11 @@
4680 new-instance v22, Landroid/content/ContentResolver$CursorWrapperInner;
4682 - if-eqz v10, :cond_a1
4683 + if-eqz v10, :cond_bd
4685 move-object v4, v10
4687 - :goto_87
4688 + :goto_a3
4689 move-object/from16 v0, v22
4691 move-object/from16 v1, p0
4692 @@ -3673,19 +3701,19 @@
4693 move-object/from16 v2, v19
4695 invoke-direct {v0, v1, v2, v4}, Landroid/content/ContentResolver$CursorWrapperInner;-><init>(Landroid/content/ContentResolver;Landroid/database/Cursor;Landroid/content/IContentProvider;)V
4696 - :try_end_90
4697 - .catchall {:try_start_67 .. :try_end_90} :catchall_b9
4698 - .catch Landroid/os/RemoteException; {:try_start_67 .. :try_end_90} :catch_a6
4699 + :try_end_ac
4700 + .catchall {:try_start_75 .. :try_end_ac} :catchall_d5
4701 + .catch Landroid/os/RemoteException; {:try_start_75 .. :try_end_ac} :catch_c2
4703 const/4 v10, 0x0
4705 - if-eqz v3, :cond_98
4706 + if-eqz v3, :cond_b4
4708 move-object/from16 v0, p0
4710 invoke-virtual {v0, v3}, Landroid/content/ContentResolver;->releaseUnstableProvider(Landroid/content/IContentProvider;)Z
4712 - :cond_98
4713 + :cond_b4
4714 if-eqz v10, :cond_8
4716 move-object/from16 v0, p0
4717 @@ -3694,29 +3722,29 @@
4719 goto/16 :goto_8
4721 - :cond_a1
4722 - :try_start_a1
4723 + :cond_bd
4724 + :try_start_bd
4725 invoke-virtual/range {p0 .. p1}, Landroid/content/ContentResolver;->acquireProvider(Landroid/net/Uri;)Landroid/content/IContentProvider;
4726 - :try_end_a4
4727 - .catchall {:try_start_a1 .. :try_end_a4} :catchall_b9
4728 - .catch Landroid/os/RemoteException; {:try_start_a1 .. :try_end_a4} :catch_a6
4729 + :try_end_c0
4730 + .catchall {:try_start_bd .. :try_end_c0} :catchall_d5
4731 + .catch Landroid/os/RemoteException; {:try_start_bd .. :try_end_c0} :catch_c2
4733 move-result-object v4
4735 - goto :goto_87
4736 + goto :goto_a3
4738 - :catch_a6
4739 + :catch_c2
4740 move-exception v18
4742 const/16 v22, 0x0
4744 - if-eqz v3, :cond_b0
4745 + if-eqz v3, :cond_cc
4747 move-object/from16 v0, p0
4749 invoke-virtual {v0, v3}, Landroid/content/ContentResolver;->releaseUnstableProvider(Landroid/content/IContentProvider;)Z
4751 - :cond_b0
4752 + :cond_cc
4753 if-eqz v10, :cond_8
4755 move-object/from16 v0, p0
4756 @@ -3725,23 +3753,23 @@
4758 goto/16 :goto_8
4760 - :catchall_b9
4761 + :catchall_d5
4762 move-exception v4
4764 - if-eqz v3, :cond_c1
4765 + if-eqz v3, :cond_dd
4767 move-object/from16 v0, p0
4769 invoke-virtual {v0, v3}, Landroid/content/ContentResolver;->releaseUnstableProvider(Landroid/content/IContentProvider;)Z
4771 - :cond_c1
4772 - if-eqz v10, :cond_c8
4773 + :cond_dd
4774 + if-eqz v10, :cond_e4
4776 move-object/from16 v0, p0
4778 invoke-virtual {v0, v10}, Landroid/content/ContentResolver;->releaseProvider(Landroid/content/IContentProvider;)Z
4780 - :cond_c8
4781 + :cond_e4
4782 throw v4
4783 .end method
4785 diff -Npru stock-framework/smali/android/hardware/Camera$EventHandler.smali opd-framework/smali/android/hardware/Camera$EventHandler.smali
4786 --- stock-framework/smali/android/hardware/Camera$EventHandler.smali 2013-01-09 02:53:00.379618419 -0600
4787 +++ opd-framework/smali/android/hardware/Camera$EventHandler.smali 2013-01-09 02:52:40.559520136 -0600
4788 @@ -36,418 +36,644 @@
4790 # virtual methods
4791 .method public handleMessage(Landroid/os/Message;)V
4792 - .registers 9
4793 + .registers 16
4795 - const/4 v3, 0x1
4796 + const/4 v7, 0x1
4798 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4800 + #getter for: Landroid/hardware/Camera;->privacyMode:Z
4801 + invoke-static {v0}, Landroid/hardware/Camera;->access$000(Landroid/hardware/Camera;)Z
4803 + move-result v0
4805 + if-nez v0, :cond_e
4807 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4809 + #calls: Landroid/hardware/Camera;->initiate()V
4810 + invoke-static {v0}, Landroid/hardware/Camera;->access$100(Landroid/hardware/Camera;)V
4812 + :cond_e
4813 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4815 + #calls: Landroid/hardware/Camera;->getPackageName()[Ljava/lang/String;
4816 + invoke-static {v0}, Landroid/hardware/Camera;->access$200(Landroid/hardware/Camera;)[Ljava/lang/String;
4818 + move-result-object v10
4820 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4822 + #calls: Landroid/hardware/Camera;->checkIfPackagesAllowed()I
4823 + invoke-static {v0}, Landroid/hardware/Camera;->access$300(Landroid/hardware/Camera;)I
4825 + move-result v0
4827 + const/4 v1, -0x2
4829 + if-ne v0, v1, :cond_68
4831 + const/4 v7, 0x0
4833 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4835 + const/4 v1, 0x0
4837 + #calls: Landroid/hardware/Camera;->dataAccess(Z)V
4838 + invoke-static {v0, v1}, Landroid/hardware/Camera;->access$400(Landroid/hardware/Camera;Z)V
4840 + if-eqz v10, :cond_48
4842 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4844 + #getter for: Landroid/hardware/Camera;->pSetMan:Landroid/privacy/PrivacySettingsManager;
4845 + invoke-static {v0}, Landroid/hardware/Camera;->access$500(Landroid/hardware/Camera;)Landroid/privacy/PrivacySettingsManager;
4847 + move-result-object v0
4849 + const/4 v1, 0x0
4851 + aget-object v1, v10, v1
4853 const/4 v2, 0x0
4855 - iget v4, p1, Landroid/os/Message;->what:I
4856 + const/4 v3, 0x1
4858 + const-string v4, "camera"
4860 + const/4 v5, 0x0
4862 + iget-object v6, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4864 + #getter for: Landroid/hardware/Camera;->pSetMan:Landroid/privacy/PrivacySettingsManager;
4865 + invoke-static {v6}, Landroid/hardware/Camera;->access$500(Landroid/hardware/Camera;)Landroid/privacy/PrivacySettingsManager;
4867 + move-result-object v6
4869 + const/4 v12, 0x0
4871 + aget-object v12, v10, v12
4873 + invoke-static {}, Landroid/os/Process;->myUid()I
4875 + move-result v13
4877 + invoke-virtual {v6, v12, v13}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
4879 - sparse-switch v4, :sswitch_data_158
4880 + move-result-object v6
4882 - const-string v3, "Camera"
4883 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
4885 - new-instance v4, Ljava/lang/StringBuilder;
4886 + :cond_48
4887 + :goto_48
4888 + iget v0, p1, Landroid/os/Message;->what:I
4890 - invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
4891 + sparse-switch v0, :sswitch_data_218
4893 - const-string v5, "Unknown message type "
4894 + const-string v0, "Camera"
4896 - invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4897 + new-instance v1, Ljava/lang/StringBuilder;
4899 - move-result-object v4
4900 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
4902 - iget v5, p1, Landroid/os/Message;->what:I
4903 + const-string v2, "Unknown message type "
4905 - invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
4906 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4908 - move-result-object v4
4909 + move-result-object v1
4911 + iget v2, p1, Landroid/os/Message;->what:I
4913 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
4915 + move-result-object v1
4917 - invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
4918 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
4920 - move-result-object v4
4921 + move-result-object v1
4923 - invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
4924 + invoke-static {v0, v1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
4926 - :cond_21
4927 - :goto_21
4928 + :cond_67
4929 + :goto_67
4930 return-void
4932 - :sswitch_22
4933 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4934 + :cond_68
4935 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4937 + const/4 v1, 0x1
4939 + #calls: Landroid/hardware/Camera;->dataAccess(Z)V
4940 + invoke-static {v0, v1}, Landroid/hardware/Camera;->access$400(Landroid/hardware/Camera;Z)V
4942 + if-eqz v10, :cond_48
4944 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4946 + #getter for: Landroid/hardware/Camera;->pSetMan:Landroid/privacy/PrivacySettingsManager;
4947 + invoke-static {v0}, Landroid/hardware/Camera;->access$500(Landroid/hardware/Camera;)Landroid/privacy/PrivacySettingsManager;
4949 + move-result-object v0
4951 + const/4 v1, 0x0
4953 + aget-object v1, v10, v1
4955 + const/4 v2, 0x0
4957 + const/4 v3, 0x0
4959 + const-string v4, "camera"
4961 + const/4 v5, 0x0
4963 + iget-object v6, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4965 + #getter for: Landroid/hardware/Camera;->pSetMan:Landroid/privacy/PrivacySettingsManager;
4966 + invoke-static {v6}, Landroid/hardware/Camera;->access$500(Landroid/hardware/Camera;)Landroid/privacy/PrivacySettingsManager;
4968 + move-result-object v6
4970 + const/4 v12, 0x0
4972 + aget-object v12, v10, v12
4974 + invoke-static {}, Landroid/os/Process;->myUid()I
4976 + move-result v13
4978 + invoke-virtual {v6, v12, v13}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
4980 + move-result-object v6
4982 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
4984 + goto :goto_48
4986 + :sswitch_93
4987 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4989 #getter for: Landroid/hardware/Camera;->mShutterCallback:Landroid/hardware/Camera$ShutterCallback;
4990 - invoke-static {v3}, Landroid/hardware/Camera;->access$000(Landroid/hardware/Camera;)Landroid/hardware/Camera$ShutterCallback;
4991 + invoke-static {v0}, Landroid/hardware/Camera;->access$600(Landroid/hardware/Camera;)Landroid/hardware/Camera$ShutterCallback;
4993 - move-result-object v3
4994 + move-result-object v0
4996 - if-eqz v3, :cond_21
4997 + if-eqz v0, :cond_67
4999 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5000 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5002 #getter for: Landroid/hardware/Camera;->mShutterCallback:Landroid/hardware/Camera$ShutterCallback;
5003 - invoke-static {v3}, Landroid/hardware/Camera;->access$000(Landroid/hardware/Camera;)Landroid/hardware/Camera$ShutterCallback;
5004 + invoke-static {v0}, Landroid/hardware/Camera;->access$600(Landroid/hardware/Camera;)Landroid/hardware/Camera$ShutterCallback;
5006 - move-result-object v3
5007 + move-result-object v0
5009 - invoke-interface {v3}, Landroid/hardware/Camera$ShutterCallback;->onShutter()V
5010 + invoke-interface {v0}, Landroid/hardware/Camera$ShutterCallback;->onShutter()V
5012 - goto :goto_21
5013 + goto :goto_67
5015 - :sswitch_34
5016 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5017 + :sswitch_a5
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 {v3}, Landroid/hardware/Camera;->access$100(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5022 + invoke-static {v0}, Landroid/hardware/Camera;->access$700(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5024 + move-result-object v0
5026 - move-result-object v3
5027 + if-eqz v0, :cond_67
5029 - if-eqz v3, :cond_21
5030 + if-eqz v7, :cond_c1
5032 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5033 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5035 #getter for: Landroid/hardware/Camera;->mRawImageCallback:Landroid/hardware/Camera$PictureCallback;
5036 - invoke-static {v3}, Landroid/hardware/Camera;->access$100(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5037 + invoke-static {v0}, Landroid/hardware/Camera;->access$700(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5039 - move-result-object v4
5040 + move-result-object v1
5042 - iget-object v3, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
5043 + iget-object v0, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
5045 - check-cast v3, [B
5046 + check-cast v0, [B
5048 - check-cast v3, [B
5049 + check-cast v0, [B
5051 - iget-object v5, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5052 + iget-object v2, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5054 - invoke-interface {v4, v3, v5}, Landroid/hardware/Camera$PictureCallback;->onPictureTaken([BLandroid/hardware/Camera;)V
5055 + invoke-interface {v1, v0, v2}, Landroid/hardware/Camera$PictureCallback;->onPictureTaken([BLandroid/hardware/Camera;)V
5057 - goto :goto_21
5058 + goto :goto_67
5060 - :sswitch_4e
5061 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5062 + :cond_c1
5063 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5065 + #getter for: Landroid/hardware/Camera;->mRawImageCallback:Landroid/hardware/Camera$PictureCallback;
5066 + invoke-static {v0}, Landroid/hardware/Camera;->access$700(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5068 + move-result-object v0
5070 + const/4 v1, 0x0
5072 + iget-object v2, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5074 + invoke-interface {v0, v1, v2}, Landroid/hardware/Camera$PictureCallback;->onPictureTaken([BLandroid/hardware/Camera;)V
5076 + goto :goto_67
5078 + :sswitch_ce
5079 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5081 #getter for: Landroid/hardware/Camera;->mJpegCallback:Landroid/hardware/Camera$PictureCallback;
5082 - invoke-static {v3}, Landroid/hardware/Camera;->access$200(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5083 + invoke-static {v0}, Landroid/hardware/Camera;->access$800(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5085 - move-result-object v3
5086 + move-result-object v0
5088 - if-eqz v3, :cond_21
5089 + if-eqz v0, :cond_67
5091 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5092 + if-eqz v7, :cond_eb
5094 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5096 #getter for: Landroid/hardware/Camera;->mJpegCallback:Landroid/hardware/Camera$PictureCallback;
5097 - invoke-static {v3}, Landroid/hardware/Camera;->access$200(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5098 + invoke-static {v0}, Landroid/hardware/Camera;->access$800(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5100 - move-result-object v4
5101 + move-result-object v1
5103 - iget-object v3, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
5104 + iget-object v0, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
5106 - check-cast v3, [B
5107 + check-cast v0, [B
5109 - check-cast v3, [B
5110 + check-cast v0, [B
5112 - iget-object v5, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5113 + iget-object v2, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5115 - invoke-interface {v4, v3, v5}, Landroid/hardware/Camera$PictureCallback;->onPictureTaken([BLandroid/hardware/Camera;)V
5116 + invoke-interface {v1, v0, v2}, Landroid/hardware/Camera$PictureCallback;->onPictureTaken([BLandroid/hardware/Camera;)V
5118 - goto :goto_21
5119 + goto/16 :goto_67
5121 - :sswitch_68
5122 - iget-object v4, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5123 + :cond_eb
5124 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5126 - #getter for: Landroid/hardware/Camera;->mPreviewCallback:Landroid/hardware/Camera$PreviewCallback;
5127 - invoke-static {v4}, Landroid/hardware/Camera;->access$300(Landroid/hardware/Camera;)Landroid/hardware/Camera$PreviewCallback;
5128 + #getter for: Landroid/hardware/Camera;->mJpegCallback:Landroid/hardware/Camera$PictureCallback;
5129 + invoke-static {v0}, Landroid/hardware/Camera;->access$800(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5131 + move-result-object v0
5133 + iget-object v1, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5135 + #calls: Landroid/hardware/Camera;->getFakeImage()[B
5136 + invoke-static {v1}, Landroid/hardware/Camera;->access$900(Landroid/hardware/Camera;)[B
5138 move-result-object v1
5140 - if-eqz v1, :cond_21
5141 + iget-object v2, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5143 + invoke-interface {v0, v1, v2}, Landroid/hardware/Camera$PictureCallback;->onPictureTaken([BLandroid/hardware/Camera;)V
5145 - iget-object v4, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5146 + goto/16 :goto_67
5148 + :sswitch_fe
5149 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5151 + #getter for: Landroid/hardware/Camera;->mPreviewCallback:Landroid/hardware/Camera$PreviewCallback;
5152 + invoke-static {v0}, Landroid/hardware/Camera;->access$1000(Landroid/hardware/Camera;)Landroid/hardware/Camera$PreviewCallback;
5154 + move-result-object v9
5156 + if-eqz v9, :cond_67
5158 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5160 #getter for: Landroid/hardware/Camera;->mOneShot:Z
5161 - invoke-static {v4}, Landroid/hardware/Camera;->access$400(Landroid/hardware/Camera;)Z
5162 + invoke-static {v0}, Landroid/hardware/Camera;->access$1100(Landroid/hardware/Camera;)Z
5164 - move-result v4
5165 + move-result v0
5167 - if-eqz v4, :cond_8a
5168 + if-eqz v0, :cond_123
5170 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5171 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5173 - const/4 v4, 0x0
5174 + const/4 v1, 0x0
5176 #setter for: Landroid/hardware/Camera;->mPreviewCallback:Landroid/hardware/Camera$PreviewCallback;
5177 - invoke-static {v3, v4}, Landroid/hardware/Camera;->access$302(Landroid/hardware/Camera;Landroid/hardware/Camera$PreviewCallback;)Landroid/hardware/Camera$PreviewCallback;
5178 + invoke-static {v0, v1}, Landroid/hardware/Camera;->access$1002(Landroid/hardware/Camera;Landroid/hardware/Camera$PreviewCallback;)Landroid/hardware/Camera$PreviewCallback;
5180 + :cond_114
5181 + :goto_114
5182 + if-eqz v7, :cond_133
5184 - :cond_7e
5185 - :goto_7e
5186 - iget-object v3, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
5187 + iget-object v0, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
5189 - check-cast v3, [B
5190 + check-cast v0, [B
5192 - check-cast v3, [B
5193 + check-cast v0, [B
5195 - iget-object v4, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5196 + iget-object v1, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5198 - invoke-interface {v1, v3, v4}, Landroid/hardware/Camera$PreviewCallback;->onPreviewFrame([BLandroid/hardware/Camera;)V
5199 + invoke-interface {v9, v0, v1}, Landroid/hardware/Camera$PreviewCallback;->onPreviewFrame([BLandroid/hardware/Camera;)V
5201 - goto :goto_21
5202 + goto/16 :goto_67
5204 - :cond_8a
5205 - iget-object v4, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5206 + :cond_123
5207 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5209 #getter for: Landroid/hardware/Camera;->mWithBuffer:Z
5210 - invoke-static {v4}, Landroid/hardware/Camera;->access$500(Landroid/hardware/Camera;)Z
5211 + invoke-static {v0}, Landroid/hardware/Camera;->access$1200(Landroid/hardware/Camera;)Z
5213 + move-result v0
5215 + if-nez v0, :cond_114
5217 - move-result v4
5218 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5220 - if-nez v4, :cond_7e
5221 + const/4 v1, 0x1
5223 - iget-object v4, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5224 + const/4 v2, 0x0
5226 #calls: Landroid/hardware/Camera;->setHasPreviewCallback(ZZ)V
5227 - invoke-static {v4, v3, v2}, Landroid/hardware/Camera;->access$600(Landroid/hardware/Camera;ZZ)V
5228 + invoke-static {v0, v1, v2}, Landroid/hardware/Camera;->access$1300(Landroid/hardware/Camera;ZZ)V
5230 + goto :goto_114
5232 + :cond_133
5233 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5235 - goto :goto_7e
5236 + #calls: Landroid/hardware/Camera;->getFakeImage()[B
5237 + invoke-static {v0}, Landroid/hardware/Camera;->access$900(Landroid/hardware/Camera;)[B
5239 + move-result-object v0
5241 - :sswitch_98
5242 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5243 + iget-object v1, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5245 + invoke-interface {v9, v0, v1}, Landroid/hardware/Camera$PreviewCallback;->onPreviewFrame([BLandroid/hardware/Camera;)V
5247 + goto/16 :goto_67
5249 + :sswitch_140
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 {v3}, Landroid/hardware/Camera;->access$700(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5254 + invoke-static {v0}, Landroid/hardware/Camera;->access$1400(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5256 - move-result-object v3
5257 + move-result-object v0
5259 - if-eqz v3, :cond_21
5260 + if-eqz v0, :cond_67
5262 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5263 + if-eqz v7, :cond_15d
5265 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5267 #getter for: Landroid/hardware/Camera;->mPostviewCallback:Landroid/hardware/Camera$PictureCallback;
5268 - invoke-static {v3}, Landroid/hardware/Camera;->access$700(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5269 + invoke-static {v0}, Landroid/hardware/Camera;->access$1400(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5271 - move-result-object v4
5272 + move-result-object v1
5274 - iget-object v3, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
5275 + iget-object v0, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
5277 - check-cast v3, [B
5278 + check-cast v0, [B
5280 - check-cast v3, [B
5281 + check-cast v0, [B
5283 - iget-object v5, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5284 + iget-object v2, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5286 - invoke-interface {v4, v3, v5}, Landroid/hardware/Camera$PictureCallback;->onPictureTaken([BLandroid/hardware/Camera;)V
5287 + invoke-interface {v1, v0, v2}, Landroid/hardware/Camera$PictureCallback;->onPictureTaken([BLandroid/hardware/Camera;)V
5289 - goto/16 :goto_21
5290 + goto/16 :goto_67
5292 - :sswitch_b3
5293 - const/4 v0, 0x0
5294 + :cond_15d
5295 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5297 + #getter for: Landroid/hardware/Camera;->mPostviewCallback:Landroid/hardware/Camera$PictureCallback;
5298 + invoke-static {v0}, Landroid/hardware/Camera;->access$1400(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5300 + move-result-object v0
5302 + iget-object v1, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5304 + #calls: Landroid/hardware/Camera;->getFakeImage()[B
5305 + invoke-static {v1}, Landroid/hardware/Camera;->access$900(Landroid/hardware/Camera;)[B
5307 - iget-object v4, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5308 + move-result-object v1
5310 + iget-object v2, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5312 + invoke-interface {v0, v1, v2}, Landroid/hardware/Camera$PictureCallback;->onPictureTaken([BLandroid/hardware/Camera;)V
5314 + goto/16 :goto_67
5316 + :sswitch_170
5317 + const/4 v8, 0x0
5319 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5321 #getter for: Landroid/hardware/Camera;->mAutoFocusCallbackLock:Ljava/lang/Object;
5322 - invoke-static {v4}, Landroid/hardware/Camera;->access$800(Landroid/hardware/Camera;)Ljava/lang/Object;
5323 + invoke-static {v0}, Landroid/hardware/Camera;->access$1500(Landroid/hardware/Camera;)Ljava/lang/Object;
5325 - move-result-object v4
5326 + move-result-object v1
5328 - monitor-enter v4
5329 + monitor-enter v1
5331 - :try_start_bb
5332 - iget-object v5, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5333 + :try_start_178
5334 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5336 #getter for: Landroid/hardware/Camera;->mAutoFocusCallback:Landroid/hardware/Camera$AutoFocusCallback;
5337 - invoke-static {v5}, Landroid/hardware/Camera;->access$900(Landroid/hardware/Camera;)Landroid/hardware/Camera$AutoFocusCallback;
5338 + invoke-static {v0}, Landroid/hardware/Camera;->access$1600(Landroid/hardware/Camera;)Landroid/hardware/Camera$AutoFocusCallback;
5340 - move-result-object v0
5341 + move-result-object v8
5343 - monitor-exit v4
5344 - :try_end_c2
5345 - .catchall {:try_start_bb .. :try_end_c2} :catchall_cf
5346 + monitor-exit v1
5347 + :try_end_17f
5348 + .catchall {:try_start_178 .. :try_end_17f} :catchall_18d
5350 - if-eqz v0, :cond_21
5351 + if-eqz v8, :cond_67
5353 - iget v4, p1, Landroid/os/Message;->arg1:I
5354 + iget v0, p1, Landroid/os/Message;->arg1:I
5356 - if-nez v4, :cond_d2
5357 + if-nez v0, :cond_190
5359 - :goto_c8
5360 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5361 + const/4 v11, 0x0
5363 - invoke-interface {v0, v2, v3}, Landroid/hardware/Camera$AutoFocusCallback;->onAutoFocus(ZLandroid/hardware/Camera;)V
5364 + :goto_186
5365 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5367 - goto/16 :goto_21
5368 + invoke-interface {v8, v11, v0}, Landroid/hardware/Camera$AutoFocusCallback;->onAutoFocus(ZLandroid/hardware/Camera;)V
5370 - :catchall_cf
5371 - move-exception v3
5372 + goto/16 :goto_67
5374 - :try_start_d0
5375 - monitor-exit v4
5376 - :try_end_d1
5377 - .catchall {:try_start_d0 .. :try_end_d1} :catchall_cf
5378 + :catchall_18d
5379 + move-exception v0
5381 - throw v3
5382 + :try_start_18e
5383 + monitor-exit v1
5384 + :try_end_18f
5385 + .catchall {:try_start_18e .. :try_end_18f} :catchall_18d
5387 - :cond_d2
5388 - move v2, v3
5389 + throw v0
5391 - goto :goto_c8
5392 + :cond_190
5393 + const/4 v11, 0x1
5395 - :sswitch_d4
5396 - iget-object v4, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5397 + goto :goto_186
5399 + :sswitch_192
5400 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5402 #getter for: Landroid/hardware/Camera;->mZoomListener:Landroid/hardware/Camera$OnZoomChangeListener;
5403 - invoke-static {v4}, Landroid/hardware/Camera;->access$1000(Landroid/hardware/Camera;)Landroid/hardware/Camera$OnZoomChangeListener;
5404 + invoke-static {v0}, Landroid/hardware/Camera;->access$1700(Landroid/hardware/Camera;)Landroid/hardware/Camera$OnZoomChangeListener;
5406 - move-result-object v4
5407 + move-result-object v0
5409 - if-eqz v4, :cond_21
5410 + if-eqz v0, :cond_67
5412 - iget-object v4, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5413 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5415 #getter for: Landroid/hardware/Camera;->mZoomListener:Landroid/hardware/Camera$OnZoomChangeListener;
5416 - invoke-static {v4}, Landroid/hardware/Camera;->access$1000(Landroid/hardware/Camera;)Landroid/hardware/Camera$OnZoomChangeListener;
5417 + invoke-static {v0}, Landroid/hardware/Camera;->access$1700(Landroid/hardware/Camera;)Landroid/hardware/Camera$OnZoomChangeListener;
5419 - move-result-object v4
5420 + move-result-object v1
5422 - iget v5, p1, Landroid/os/Message;->arg1:I
5423 + iget v2, p1, Landroid/os/Message;->arg1:I
5425 - iget v6, p1, Landroid/os/Message;->arg2:I
5426 + iget v0, p1, Landroid/os/Message;->arg2:I
5428 - if-eqz v6, :cond_ef
5429 + if-eqz v0, :cond_1ae
5431 - :goto_e8
5432 - iget-object v6, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5433 + const/4 v0, 0x1
5435 - invoke-interface {v4, v5, v3, v6}, Landroid/hardware/Camera$OnZoomChangeListener;->onZoomChange(IZLandroid/hardware/Camera;)V
5436 + :goto_1a7
5437 + iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5439 - goto/16 :goto_21
5440 + invoke-interface {v1, v2, v0, v3}, Landroid/hardware/Camera$OnZoomChangeListener;->onZoomChange(IZLandroid/hardware/Camera;)V
5442 - :cond_ef
5443 - move v3, v2
5444 + goto/16 :goto_67
5446 - goto :goto_e8
5447 + :cond_1ae
5448 + const/4 v0, 0x0
5450 - :sswitch_f1
5451 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5452 + goto :goto_1a7
5454 + :sswitch_1b0
5455 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5457 #getter for: Landroid/hardware/Camera;->mFaceListener:Landroid/hardware/Camera$FaceDetectionListener;
5458 - invoke-static {v3}, Landroid/hardware/Camera;->access$1100(Landroid/hardware/Camera;)Landroid/hardware/Camera$FaceDetectionListener;
5459 + invoke-static {v0}, Landroid/hardware/Camera;->access$1800(Landroid/hardware/Camera;)Landroid/hardware/Camera$FaceDetectionListener;
5461 - move-result-object v3
5462 + move-result-object v0
5464 - if-eqz v3, :cond_21
5465 + if-eqz v0, :cond_67
5467 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5468 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5470 #getter for: Landroid/hardware/Camera;->mFaceListener:Landroid/hardware/Camera$FaceDetectionListener;
5471 - invoke-static {v3}, Landroid/hardware/Camera;->access$1100(Landroid/hardware/Camera;)Landroid/hardware/Camera$FaceDetectionListener;
5472 + invoke-static {v0}, Landroid/hardware/Camera;->access$1800(Landroid/hardware/Camera;)Landroid/hardware/Camera$FaceDetectionListener;
5474 - move-result-object v4
5475 + move-result-object v1
5477 - iget-object v3, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
5478 + iget-object v0, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
5480 - check-cast v3, [Landroid/hardware/Camera$Face;
5481 + check-cast v0, [Landroid/hardware/Camera$Face;
5483 - check-cast v3, [Landroid/hardware/Camera$Face;
5484 + check-cast v0, [Landroid/hardware/Camera$Face;
5486 - iget-object v5, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5487 + iget-object v2, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5489 - invoke-interface {v4, v3, v5}, Landroid/hardware/Camera$FaceDetectionListener;->onFaceDetection([Landroid/hardware/Camera$Face;Landroid/hardware/Camera;)V
5490 + invoke-interface {v1, v0, v2}, Landroid/hardware/Camera$FaceDetectionListener;->onFaceDetection([Landroid/hardware/Camera$Face;Landroid/hardware/Camera;)V
5492 - goto/16 :goto_21
5493 + goto/16 :goto_67
5495 - :sswitch_10c
5496 - const-string v3, "Camera"
5497 + :sswitch_1cb
5498 + const-string v0, "Camera"
5500 - new-instance v4, Ljava/lang/StringBuilder;
5501 + new-instance v1, Ljava/lang/StringBuilder;
5503 - invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
5504 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
5506 - const-string v5, "Error "
5507 + const-string v2, "Error "
5509 - invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
5510 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
5512 - move-result-object v4
5513 + move-result-object v1
5515 - iget v5, p1, Landroid/os/Message;->arg1:I
5516 + iget v2, p1, Landroid/os/Message;->arg1:I
5518 - invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
5519 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
5521 - move-result-object v4
5522 + move-result-object v1
5524 - invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
5525 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
5527 - move-result-object v4
5528 + move-result-object v1
5530 - invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
5531 + invoke-static {v0, v1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
5533 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5534 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5536 #getter for: Landroid/hardware/Camera;->mErrorCallback:Landroid/hardware/Camera$ErrorCallback;
5537 - invoke-static {v3}, Landroid/hardware/Camera;->access$1200(Landroid/hardware/Camera;)Landroid/hardware/Camera$ErrorCallback;
5538 + invoke-static {v0}, Landroid/hardware/Camera;->access$1900(Landroid/hardware/Camera;)Landroid/hardware/Camera$ErrorCallback;
5540 - move-result-object v3
5541 + move-result-object v0
5543 - if-eqz v3, :cond_21
5544 + if-eqz v0, :cond_67
5546 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5547 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5549 #getter for: Landroid/hardware/Camera;->mErrorCallback:Landroid/hardware/Camera$ErrorCallback;
5550 - invoke-static {v3}, Landroid/hardware/Camera;->access$1200(Landroid/hardware/Camera;)Landroid/hardware/Camera$ErrorCallback;
5551 + invoke-static {v0}, Landroid/hardware/Camera;->access$1900(Landroid/hardware/Camera;)Landroid/hardware/Camera$ErrorCallback;
5553 - move-result-object v3
5554 + move-result-object v0
5556 - iget v4, p1, Landroid/os/Message;->arg1:I
5557 + iget v1, p1, Landroid/os/Message;->arg1:I
5559 - iget-object v5, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5560 + iget-object v2, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5562 - invoke-interface {v3, v4, v5}, Landroid/hardware/Camera$ErrorCallback;->onError(ILandroid/hardware/Camera;)V
5563 + invoke-interface {v0, v1, v2}, Landroid/hardware/Camera$ErrorCallback;->onError(ILandroid/hardware/Camera;)V
5565 - goto/16 :goto_21
5566 + goto/16 :goto_67
5568 - :sswitch_13d
5569 - iget-object v4, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5570 + :sswitch_1fc
5571 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5573 #getter for: Landroid/hardware/Camera;->mAutoFocusMoveCallback:Landroid/hardware/Camera$AutoFocusMoveCallback;
5574 - invoke-static {v4}, Landroid/hardware/Camera;->access$1300(Landroid/hardware/Camera;)Landroid/hardware/Camera$AutoFocusMoveCallback;
5575 + invoke-static {v0}, Landroid/hardware/Camera;->access$2000(Landroid/hardware/Camera;)Landroid/hardware/Camera$AutoFocusMoveCallback;
5577 - move-result-object v4
5578 + move-result-object v0
5580 - if-eqz v4, :cond_21
5581 + if-eqz v0, :cond_67
5583 - iget-object v4, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5584 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5586 #getter for: Landroid/hardware/Camera;->mAutoFocusMoveCallback:Landroid/hardware/Camera$AutoFocusMoveCallback;
5587 - invoke-static {v4}, Landroid/hardware/Camera;->access$1300(Landroid/hardware/Camera;)Landroid/hardware/Camera$AutoFocusMoveCallback;
5588 + invoke-static {v0}, Landroid/hardware/Camera;->access$2000(Landroid/hardware/Camera;)Landroid/hardware/Camera$AutoFocusMoveCallback;
5590 - move-result-object v4
5591 + move-result-object v1
5593 - iget v5, p1, Landroid/os/Message;->arg1:I
5594 + iget v0, p1, Landroid/os/Message;->arg1:I
5596 - if-nez v5, :cond_156
5597 + if-nez v0, :cond_216
5599 - :goto_14f
5600 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5601 + const/4 v0, 0x0
5603 + :goto_20f
5604 + iget-object v2, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5606 - invoke-interface {v4, v2, v3}, Landroid/hardware/Camera$AutoFocusMoveCallback;->onAutoFocusMoving(ZLandroid/hardware/Camera;)V
5607 + invoke-interface {v1, v0, v2}, Landroid/hardware/Camera$AutoFocusMoveCallback;->onAutoFocusMoving(ZLandroid/hardware/Camera;)V
5609 - goto/16 :goto_21
5610 + goto/16 :goto_67
5612 - :cond_156
5613 - move v2, v3
5614 + :cond_216
5615 + const/4 v0, 0x1
5617 - goto :goto_14f
5618 + goto :goto_20f
5620 - :sswitch_data_158
5621 + :sswitch_data_218
5622 .sparse-switch
5623 - 0x1 -> :sswitch_10c
5624 - 0x2 -> :sswitch_22
5625 - 0x4 -> :sswitch_b3
5626 - 0x8 -> :sswitch_d4
5627 - 0x10 -> :sswitch_68
5628 - 0x40 -> :sswitch_98
5629 - 0x80 -> :sswitch_34
5630 - 0x100 -> :sswitch_4e
5631 - 0x400 -> :sswitch_f1
5632 - 0x800 -> :sswitch_13d
5633 + 0x1 -> :sswitch_1cb
5634 + 0x2 -> :sswitch_93
5635 + 0x4 -> :sswitch_170
5636 + 0x8 -> :sswitch_192
5637 + 0x10 -> :sswitch_fe
5638 + 0x40 -> :sswitch_140
5639 + 0x80 -> :sswitch_a5
5640 + 0x100 -> :sswitch_ce
5641 + 0x400 -> :sswitch_1b0
5642 + 0x800 -> :sswitch_1fc
5643 .end sparse-switch
5644 .end method
5645 diff -Npru stock-framework/smali/android/hardware/Camera.smali opd-framework/smali/android/hardware/Camera.smali
5646 --- stock-framework/smali/android/hardware/Camera.smali 2013-01-09 02:53:00.403618537 -0600
5647 +++ opd-framework/smali/android/hardware/Camera.smali 2013-01-09 02:52:40.563520160 -0600
5648 @@ -62,10 +62,20 @@
5650 .field private static final CAMERA_MSG_ZOOM:I = 0x8
5652 +.field private static final GOT_ERROR:I = -0x3
5654 +.field private static final IS_ALLOWED:I = -0x1
5656 +.field private static final IS_NOT_ALLOWED:I = -0x2
5658 +.field private static final PRIVACY_TAG:Ljava/lang/String; = "PM,Camera"
5660 .field private static final TAG:Ljava/lang/String; = "Camera"
5663 # instance fields
5664 +.field private context:Landroid/content/Context;
5666 .field private mAutoFocusCallback:Landroid/hardware/Camera$AutoFocusCallback;
5668 .field private mAutoFocusCallbackLock:Ljava/lang/Object;
5669 @@ -86,6 +96,8 @@
5671 .field private mOneShot:Z
5673 +.field private mPm:Landroid/content/pm/IPackageManager;
5675 .field private mPostviewCallback:Landroid/hardware/Camera$PictureCallback;
5677 .field private mPreviewCallback:Landroid/hardware/Camera$PreviewCallback;
5678 @@ -98,16 +110,20 @@
5680 .field private mZoomListener:Landroid/hardware/Camera$OnZoomChangeListener;
5682 +.field private pSetMan:Landroid/privacy/PrivacySettingsManager;
5684 +.field private privacyMode:Z
5687 # direct methods
5688 .method constructor <init>()V
5689 - .registers 2
5690 + .registers 3
5692 - invoke-direct {p0}, Ljava/lang/Object;-><init>()V
5693 + const/4 v1, 0x0
5695 - const/4 v0, 0x0
5696 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
5698 - iput-boolean v0, p0, Landroid/hardware/Camera;->mFaceDetectionRunning:Z
5699 + iput-boolean v1, p0, Landroid/hardware/Camera;->mFaceDetectionRunning:Z
5701 new-instance v0, Ljava/lang/Object;
5703 @@ -115,19 +131,21 @@
5705 iput-object v0, p0, Landroid/hardware/Camera;->mAutoFocusCallbackLock:Ljava/lang/Object;
5707 + iput-boolean v1, p0, Landroid/hardware/Camera;->privacyMode:Z
5709 return-void
5710 .end method
5712 .method constructor <init>(I)V
5713 - .registers 5
5714 + .registers 6
5716 + const/4 v3, 0x0
5718 const/4 v2, 0x0
5720 invoke-direct {p0}, Ljava/lang/Object;-><init>()V
5722 - const/4 v1, 0x0
5724 - iput-boolean v1, p0, Landroid/hardware/Camera;->mFaceDetectionRunning:Z
5725 + iput-boolean v3, p0, Landroid/hardware/Camera;->mFaceDetectionRunning:Z
5727 new-instance v1, Ljava/lang/Object;
5729 @@ -135,6 +153,8 @@
5731 iput-object v1, p0, Landroid/hardware/Camera;->mAutoFocusCallbackLock:Ljava/lang/Object;
5733 + iput-boolean v3, p0, Landroid/hardware/Camera;->privacyMode:Z
5735 iput-object v2, p0, Landroid/hardware/Camera;->mShutterCallback:Landroid/hardware/Camera$ShutterCallback;
5737 iput-object v2, p0, Landroid/hardware/Camera;->mRawImageCallback:Landroid/hardware/Camera$PictureCallback;
5738 @@ -147,11 +167,13 @@
5740 iput-object v2, p0, Landroid/hardware/Camera;->mZoomListener:Landroid/hardware/Camera$OnZoomChangeListener;
5742 + invoke-direct {p0}, Landroid/hardware/Camera;->initiate()V
5744 invoke-static {}, Landroid/os/Looper;->myLooper()Landroid/os/Looper;
5746 move-result-object v0
5748 - if-eqz v0, :cond_30
5749 + if-eqz v0, :cond_35
5751 new-instance v1, Landroid/hardware/Camera$EventHandler;
5753 @@ -159,7 +181,7 @@
5755 iput-object v1, p0, Landroid/hardware/Camera;->mEventHandler:Landroid/hardware/Camera$EventHandler;
5757 - :goto_27
5758 + :goto_2c
5759 new-instance v1, Ljava/lang/ref/WeakReference;
5761 invoke-direct {v1, p0}, Ljava/lang/ref/WeakReference;-><init>(Ljava/lang/Object;)V
5762 @@ -168,12 +190,12 @@
5764 return-void
5766 - :cond_30
5767 + :cond_35
5768 invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper;
5770 move-result-object v0
5772 - if-eqz v0, :cond_3e
5773 + if-eqz v0, :cond_43
5775 new-instance v1, Landroid/hardware/Camera$EventHandler;
5777 @@ -181,12 +203,12 @@
5779 iput-object v1, p0, Landroid/hardware/Camera;->mEventHandler:Landroid/hardware/Camera$EventHandler;
5781 - goto :goto_27
5782 + goto :goto_2c
5784 - :cond_3e
5785 + :cond_43
5786 iput-object v2, p0, Landroid/hardware/Camera;->mEventHandler:Landroid/hardware/Camera$EventHandler;
5788 - goto :goto_27
5789 + goto :goto_2c
5790 .end method
5792 .method private final native _addCallbackBuffer([BI)V
5793 @@ -207,122 +229,184 @@
5794 .method private final native _stopPreview()V
5795 .end method
5797 -.method static synthetic access$000(Landroid/hardware/Camera;)Landroid/hardware/Camera$ShutterCallback;
5798 +.method static synthetic access$000(Landroid/hardware/Camera;)Z
5799 .registers 2
5801 - iget-object v0, p0, Landroid/hardware/Camera;->mShutterCallback:Landroid/hardware/Camera$ShutterCallback;
5802 + iget-boolean v0, p0, Landroid/hardware/Camera;->privacyMode:Z
5804 - return-object v0
5805 + return v0
5806 .end method
5808 -.method static synthetic access$100(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5809 +.method static synthetic access$100(Landroid/hardware/Camera;)V
5810 + .registers 1
5812 + invoke-direct {p0}, Landroid/hardware/Camera;->initiate()V
5814 + return-void
5815 +.end method
5817 +.method static synthetic access$1000(Landroid/hardware/Camera;)Landroid/hardware/Camera$PreviewCallback;
5818 .registers 2
5820 - iget-object v0, p0, Landroid/hardware/Camera;->mRawImageCallback:Landroid/hardware/Camera$PictureCallback;
5821 + iget-object v0, p0, Landroid/hardware/Camera;->mPreviewCallback:Landroid/hardware/Camera$PreviewCallback;
5823 return-object v0
5824 .end method
5826 -.method static synthetic access$1000(Landroid/hardware/Camera;)Landroid/hardware/Camera$OnZoomChangeListener;
5827 +.method static synthetic access$1002(Landroid/hardware/Camera;Landroid/hardware/Camera$PreviewCallback;)Landroid/hardware/Camera$PreviewCallback;
5828 .registers 2
5830 - iget-object v0, p0, Landroid/hardware/Camera;->mZoomListener:Landroid/hardware/Camera$OnZoomChangeListener;
5831 + iput-object p1, p0, Landroid/hardware/Camera;->mPreviewCallback:Landroid/hardware/Camera$PreviewCallback;
5833 + return-object p1
5834 +.end method
5836 +.method static synthetic access$1100(Landroid/hardware/Camera;)Z
5837 + .registers 2
5839 + iget-boolean v0, p0, Landroid/hardware/Camera;->mOneShot:Z
5841 + return v0
5842 +.end method
5844 +.method static synthetic access$1200(Landroid/hardware/Camera;)Z
5845 + .registers 2
5847 + iget-boolean v0, p0, Landroid/hardware/Camera;->mWithBuffer:Z
5849 + return v0
5850 +.end method
5852 +.method static synthetic access$1300(Landroid/hardware/Camera;ZZ)V
5853 + .registers 3
5855 + invoke-direct {p0, p1, p2}, Landroid/hardware/Camera;->setHasPreviewCallback(ZZ)V
5857 + return-void
5858 +.end method
5860 +.method static synthetic access$1400(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5861 + .registers 2
5863 + iget-object v0, p0, Landroid/hardware/Camera;->mPostviewCallback:Landroid/hardware/Camera$PictureCallback;
5865 return-object v0
5866 .end method
5868 -.method static synthetic access$1100(Landroid/hardware/Camera;)Landroid/hardware/Camera$FaceDetectionListener;
5869 +.method static synthetic access$1500(Landroid/hardware/Camera;)Ljava/lang/Object;
5870 .registers 2
5872 - iget-object v0, p0, Landroid/hardware/Camera;->mFaceListener:Landroid/hardware/Camera$FaceDetectionListener;
5873 + iget-object v0, p0, Landroid/hardware/Camera;->mAutoFocusCallbackLock:Ljava/lang/Object;
5875 return-object v0
5876 .end method
5878 -.method static synthetic access$1200(Landroid/hardware/Camera;)Landroid/hardware/Camera$ErrorCallback;
5879 +.method static synthetic access$1600(Landroid/hardware/Camera;)Landroid/hardware/Camera$AutoFocusCallback;
5880 .registers 2
5882 - iget-object v0, p0, Landroid/hardware/Camera;->mErrorCallback:Landroid/hardware/Camera$ErrorCallback;
5883 + iget-object v0, p0, Landroid/hardware/Camera;->mAutoFocusCallback:Landroid/hardware/Camera$AutoFocusCallback;
5885 return-object v0
5886 .end method
5888 -.method static synthetic access$1300(Landroid/hardware/Camera;)Landroid/hardware/Camera$AutoFocusMoveCallback;
5889 +.method static synthetic access$1700(Landroid/hardware/Camera;)Landroid/hardware/Camera$OnZoomChangeListener;
5890 .registers 2
5892 - iget-object v0, p0, Landroid/hardware/Camera;->mAutoFocusMoveCallback:Landroid/hardware/Camera$AutoFocusMoveCallback;
5893 + iget-object v0, p0, Landroid/hardware/Camera;->mZoomListener:Landroid/hardware/Camera$OnZoomChangeListener;
5895 return-object v0
5896 .end method
5898 -.method static synthetic access$200(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5899 +.method static synthetic access$1800(Landroid/hardware/Camera;)Landroid/hardware/Camera$FaceDetectionListener;
5900 .registers 2
5902 - iget-object v0, p0, Landroid/hardware/Camera;->mJpegCallback:Landroid/hardware/Camera$PictureCallback;
5903 + iget-object v0, p0, Landroid/hardware/Camera;->mFaceListener:Landroid/hardware/Camera$FaceDetectionListener;
5905 return-object v0
5906 .end method
5908 -.method static synthetic access$300(Landroid/hardware/Camera;)Landroid/hardware/Camera$PreviewCallback;
5909 +.method static synthetic access$1900(Landroid/hardware/Camera;)Landroid/hardware/Camera$ErrorCallback;
5910 .registers 2
5912 - iget-object v0, p0, Landroid/hardware/Camera;->mPreviewCallback:Landroid/hardware/Camera$PreviewCallback;
5913 + iget-object v0, p0, Landroid/hardware/Camera;->mErrorCallback:Landroid/hardware/Camera$ErrorCallback;
5915 return-object v0
5916 .end method
5918 -.method static synthetic access$302(Landroid/hardware/Camera;Landroid/hardware/Camera$PreviewCallback;)Landroid/hardware/Camera$PreviewCallback;
5919 +.method static synthetic access$200(Landroid/hardware/Camera;)[Ljava/lang/String;
5920 .registers 2
5922 - iput-object p1, p0, Landroid/hardware/Camera;->mPreviewCallback:Landroid/hardware/Camera$PreviewCallback;
5923 + invoke-direct {p0}, Landroid/hardware/Camera;->getPackageName()[Ljava/lang/String;
5925 - return-object p1
5926 + move-result-object v0
5928 + return-object v0
5929 .end method
5931 -.method static synthetic access$400(Landroid/hardware/Camera;)Z
5932 +.method static synthetic access$2000(Landroid/hardware/Camera;)Landroid/hardware/Camera$AutoFocusMoveCallback;
5933 .registers 2
5935 - iget-boolean v0, p0, Landroid/hardware/Camera;->mOneShot:Z
5936 + iget-object v0, p0, Landroid/hardware/Camera;->mAutoFocusMoveCallback:Landroid/hardware/Camera$AutoFocusMoveCallback;
5938 - return v0
5939 + return-object v0
5940 .end method
5942 -.method static synthetic access$500(Landroid/hardware/Camera;)Z
5943 +.method static synthetic access$300(Landroid/hardware/Camera;)I
5944 .registers 2
5946 - iget-boolean v0, p0, Landroid/hardware/Camera;->mWithBuffer:Z
5947 + invoke-direct {p0}, Landroid/hardware/Camera;->checkIfPackagesAllowed()I
5949 + move-result v0
5951 return v0
5952 .end method
5954 -.method static synthetic access$600(Landroid/hardware/Camera;ZZ)V
5955 - .registers 3
5956 +.method static synthetic access$400(Landroid/hardware/Camera;Z)V
5957 + .registers 2
5959 - invoke-direct {p0, p1, p2}, Landroid/hardware/Camera;->setHasPreviewCallback(ZZ)V
5960 + invoke-direct {p0, p1}, Landroid/hardware/Camera;->dataAccess(Z)V
5962 return-void
5963 .end method
5965 +.method static synthetic access$500(Landroid/hardware/Camera;)Landroid/privacy/PrivacySettingsManager;
5966 + .registers 2
5968 + iget-object v0, p0, Landroid/hardware/Camera;->pSetMan:Landroid/privacy/PrivacySettingsManager;
5970 + return-object v0
5971 +.end method
5973 +.method static synthetic access$600(Landroid/hardware/Camera;)Landroid/hardware/Camera$ShutterCallback;
5974 + .registers 2
5976 + iget-object v0, p0, Landroid/hardware/Camera;->mShutterCallback:Landroid/hardware/Camera$ShutterCallback;
5978 + return-object v0
5979 +.end method
5981 .method static synthetic access$700(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5982 .registers 2
5984 - iget-object v0, p0, Landroid/hardware/Camera;->mPostviewCallback:Landroid/hardware/Camera$PictureCallback;
5985 + iget-object v0, p0, Landroid/hardware/Camera;->mRawImageCallback:Landroid/hardware/Camera$PictureCallback;
5987 return-object v0
5988 .end method
5990 -.method static synthetic access$800(Landroid/hardware/Camera;)Ljava/lang/Object;
5991 +.method static synthetic access$800(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5992 .registers 2
5994 - iget-object v0, p0, Landroid/hardware/Camera;->mAutoFocusCallbackLock:Ljava/lang/Object;
5995 + iget-object v0, p0, Landroid/hardware/Camera;->mJpegCallback:Landroid/hardware/Camera$PictureCallback;
5997 return-object v0
5998 .end method
6000 -.method static synthetic access$900(Landroid/hardware/Camera;)Landroid/hardware/Camera$AutoFocusCallback;
6001 +.method static synthetic access$900(Landroid/hardware/Camera;)[B
6002 .registers 2
6004 - iget-object v0, p0, Landroid/hardware/Camera;->mAutoFocusCallback:Landroid/hardware/Camera$AutoFocusCallback;
6005 + invoke-direct {p0}, Landroid/hardware/Camera;->getFakeImage()[B
6007 + move-result-object v0
6009 return-object v0
6010 .end method
6011 @@ -368,6 +452,205 @@
6012 return-void
6013 .end method
6015 +.method private checkIfPackagesAllowed()I
6016 + .registers 9
6018 + const/4 v5, -0x3
6020 + :try_start_1
6021 + iget-object v6, p0, Landroid/hardware/Camera;->pSetMan:Landroid/privacy/PrivacySettingsManager;
6023 + if-eqz v6, :cond_41
6025 + const/4 v2, 0x0
6027 + invoke-direct {p0}, Landroid/hardware/Camera;->getPackageName()[Ljava/lang/String;
6029 + move-result-object v3
6031 + invoke-static {}, Landroid/os/Process;->myUid()I
6033 + move-result v4
6035 + if-eqz v3, :cond_2c
6037 + const/4 v1, 0x0
6039 + :goto_11
6040 + array-length v6, v3
6042 + if-ge v1, v6, :cond_2a
6044 + iget-object v6, p0, Landroid/hardware/Camera;->pSetMan:Landroid/privacy/PrivacySettingsManager;
6046 + aget-object v7, v3, v1
6048 + invoke-virtual {v6, v7, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
6050 + move-result-object v2
6052 + if-eqz v2, :cond_26
6054 + invoke-virtual {v2}, Landroid/privacy/PrivacySettings;->getCameraSetting()B
6056 + move-result v6
6058 + if-eqz v6, :cond_26
6060 + const/4 v5, -0x2
6062 + :goto_25
6063 + return v5
6065 + :cond_26
6066 + const/4 v2, 0x0
6068 + add-int/lit8 v1, v1, 0x1
6070 + goto :goto_11
6072 + :cond_2a
6073 + const/4 v5, -0x1
6075 + goto :goto_25
6077 + :cond_2c
6078 + const-string v6, "PM,Camera"
6080 + const-string/jumbo v7, "return GOT_ERROR, because package_names are NULL"
6082 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
6083 + :try_end_34
6084 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_34} :catch_35
6086 + goto :goto_25
6088 + :catch_35
6089 + move-exception v0
6091 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
6093 + const-string v6, "PM,Camera"
6095 + const-string v7, "Got exception in checkIfPackagesAllowed"
6097 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
6099 + goto :goto_25
6101 + :cond_41
6102 + :try_start_41
6103 + const-string v6, "PM,Camera"
6105 + const-string/jumbo v7, "return GOT_ERROR, because pSetMan is NULL"
6107 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
6108 + :try_end_49
6109 + .catch Ljava/lang/Exception; {:try_start_41 .. :try_end_49} :catch_35
6111 + goto :goto_25
6112 +.end method
6114 +.method private dataAccess(Z)V
6115 + .registers 7
6117 + invoke-direct {p0}, Landroid/hardware/Camera;->getPackageName()[Ljava/lang/String;
6119 + move-result-object v1
6121 + if-eqz p1, :cond_2f
6123 + if-eqz v1, :cond_2f
6125 + const/4 v0, 0x0
6127 + :goto_9
6128 + array-length v2, v1
6130 + if-ge v0, v2, :cond_58
6132 + const-string v2, "PM,Camera"
6134 + new-instance v3, Ljava/lang/StringBuilder;
6136 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
6138 + const-string v4, "Allowed Package: -"
6140 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
6142 + move-result-object v3
6144 + aget-object v4, v1, v0
6146 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
6148 + move-result-object v3
6150 + const-string v4, "- accessing camera."
6152 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
6154 + move-result-object v3
6156 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
6158 + move-result-object v3
6160 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
6162 + add-int/lit8 v0, v0, 0x1
6164 + goto :goto_9
6166 + :cond_2f
6167 + if-eqz v1, :cond_58
6169 + const/4 v0, 0x0
6171 + :goto_32
6172 + array-length v2, v1
6174 + if-ge v0, v2, :cond_58
6176 + const-string v2, "PM,Camera"
6178 + new-instance v3, Ljava/lang/StringBuilder;
6180 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
6182 + const-string v4, "Blocked Package: -"
6184 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
6186 + move-result-object v3
6188 + aget-object v4, v1, v0
6190 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
6192 + move-result-object v3
6194 + const-string v4, "- accessing camera."
6196 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
6198 + move-result-object v3
6200 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
6202 + move-result-object v3
6204 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
6206 + add-int/lit8 v0, v0, 0x1
6208 + goto :goto_32
6210 + :cond_58
6211 + return-void
6212 +.end method
6214 .method private native enableFocusMoveCallback(I)V
6215 .end method
6217 @@ -433,9 +716,193 @@
6218 return-object v1
6219 .end method
6221 +.method private getFakeImage()[B
6222 + .registers 9
6224 + :try_start_0
6225 + const-string v2, "/system/media/PDroid.jpeg"
6227 + new-instance v5, Ljava/io/File;
6229 + invoke-direct {v5, v2}, Ljava/io/File;-><init>(Ljava/lang/String;)V
6231 + const/4 v3, 0x0
6233 + new-instance v3, Ljava/io/FileInputStream;
6235 + invoke-direct {v3, v5}, Ljava/io/FileInputStream;-><init>(Ljava/io/File;)V
6237 + invoke-static {v3}, Landroid/graphics/BitmapFactory;->decodeStream(Ljava/io/InputStream;)Landroid/graphics/Bitmap;
6239 + move-result-object v0
6241 + new-instance v4, Ljava/io/ByteArrayOutputStream;
6243 + invoke-direct {v4}, Ljava/io/ByteArrayOutputStream;-><init>()V
6245 + sget-object v6, Landroid/graphics/Bitmap$CompressFormat;->JPEG:Landroid/graphics/Bitmap$CompressFormat;
6247 + const/16 v7, 0x64
6249 + invoke-virtual {v0, v6, v7, v4}, Landroid/graphics/Bitmap;->compress(Landroid/graphics/Bitmap$CompressFormat;ILjava/io/OutputStream;)Z
6251 + invoke-virtual {v4}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B
6252 + :try_end_20
6253 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_20} :catch_22
6255 + move-result-object v6
6257 + :goto_21
6258 + return-object v6
6260 + :catch_22
6261 + move-exception v1
6263 + const-string v6, "PM,Camera"
6265 + const-string/jumbo v7, "something went wrong with getting the picture!"
6267 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
6269 + invoke-virtual {v1}, Ljava/lang/Exception;->printStackTrace()V
6271 + const/4 v6, 0x0
6273 + goto :goto_21
6274 +.end method
6276 .method public static native getNumberOfCameras()I
6277 .end method
6279 +.method private getPackageName()[Ljava/lang/String;
6280 + .registers 6
6282 + :try_start_0
6283 + iget-object v3, p0, Landroid/hardware/Camera;->mPm:Landroid/content/pm/IPackageManager;
6285 + if-eqz v3, :cond_f
6287 + invoke-static {}, Landroid/os/Process;->myUid()I
6289 + move-result v2
6291 + iget-object v3, p0, Landroid/hardware/Camera;->mPm:Landroid/content/pm/IPackageManager;
6293 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
6295 + move-result-object v1
6297 + :goto_e
6298 + return-object v1
6300 + :cond_f
6301 + const-string/jumbo v3, "package"
6303 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
6305 + move-result-object v3
6307 + invoke-static {v3}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
6309 + move-result-object v3
6311 + iput-object v3, p0, Landroid/hardware/Camera;->mPm:Landroid/content/pm/IPackageManager;
6313 + invoke-static {}, Landroid/os/Process;->myUid()I
6315 + move-result v2
6317 + iget-object v3, p0, Landroid/hardware/Camera;->mPm:Landroid/content/pm/IPackageManager;
6319 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
6320 + :try_end_25
6321 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_25} :catch_27
6323 + move-result-object v1
6325 + goto :goto_e
6327 + :catch_27
6328 + move-exception v0
6330 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
6332 + const-string v3, "PM,Camera"
6334 + const-string/jumbo v4, "something went wrong with getting package name"
6336 + invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
6338 + const/4 v1, 0x0
6340 + goto :goto_e
6341 +.end method
6343 +.method private initiate()V
6344 + .registers 5
6346 + const/4 v1, 0x0
6348 + :try_start_1
6349 + iput-object v1, p0, Landroid/hardware/Camera;->context:Landroid/content/Context;
6351 + new-instance v1, Landroid/privacy/PrivacySettingsManager;
6353 + iget-object v2, p0, Landroid/hardware/Camera;->context:Landroid/content/Context;
6355 + const-string/jumbo v3, "privacy"
6357 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
6359 + move-result-object v3
6361 + invoke-static {v3}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
6363 + move-result-object v3
6365 + invoke-direct {v1, v2, v3}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
6367 + iput-object v1, p0, Landroid/hardware/Camera;->pSetMan:Landroid/privacy/PrivacySettingsManager;
6369 + const-string/jumbo v1, "package"
6371 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
6373 + move-result-object v1
6375 + invoke-static {v1}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
6377 + move-result-object v1
6379 + iput-object v1, p0, Landroid/hardware/Camera;->mPm:Landroid/content/pm/IPackageManager;
6381 + const/4 v1, 0x1
6383 + iput-boolean v1, p0, Landroid/hardware/Camera;->privacyMode:Z
6384 + :try_end_27
6385 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_27} :catch_28
6387 + :goto_27
6388 + return-void
6390 + :catch_28
6391 + move-exception v0
6393 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
6395 + const-string v1, "PM,Camera"
6397 + const-string v2, "Something went wrong with initalize variables"
6399 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
6401 + const/4 v1, 0x0
6403 + iput-boolean v1, p0, Landroid/hardware/Camera;->privacyMode:Z
6405 + goto :goto_27
6406 +.end method
6408 .method private final native native_autoFocus()V
6409 .end method
6411 @@ -1018,7 +1485,7 @@
6412 .end method
6414 .method public final takePicture(Landroid/hardware/Camera$ShutterCallback;Landroid/hardware/Camera$PictureCallback;Landroid/hardware/Camera$PictureCallback;Landroid/hardware/Camera$PictureCallback;)V
6415 - .registers 7
6416 + .registers 8
6418 iput-object p1, p0, Landroid/hardware/Camera;->mShutterCallback:Landroid/hardware/Camera$ShutterCallback;
6420 @@ -1028,36 +1495,62 @@
6422 iput-object p4, p0, Landroid/hardware/Camera;->mJpegCallback:Landroid/hardware/Camera$PictureCallback;
6424 + iget-boolean v1, p0, Landroid/hardware/Camera;->privacyMode:Z
6426 + if-nez v1, :cond_f
6428 + invoke-direct {p0}, Landroid/hardware/Camera;->initiate()V
6430 + :cond_f
6431 + invoke-direct {p0}, Landroid/hardware/Camera;->checkIfPackagesAllowed()I
6433 + move-result v1
6435 + const/4 v2, -0x2
6437 + if-ne v1, v2, :cond_20
6439 + const/4 v1, 0x0
6441 + iput-object v1, p0, Landroid/hardware/Camera;->mRawImageCallback:Landroid/hardware/Camera$PictureCallback;
6443 + const-string v1, "PM,Camera"
6445 + const-string v2, "blocked rawImageCallback -> it will never be called!"
6447 + invoke-static {v1, v2}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
6449 + :cond_20
6450 const/4 v0, 0x0
6452 iget-object v1, p0, Landroid/hardware/Camera;->mShutterCallback:Landroid/hardware/Camera$ShutterCallback;
6454 - if-eqz v1, :cond_f
6455 + if-eqz v1, :cond_27
6457 or-int/lit8 v0, v0, 0x2
6459 - :cond_f
6460 + :cond_27
6461 iget-object v1, p0, Landroid/hardware/Camera;->mRawImageCallback:Landroid/hardware/Camera$PictureCallback;
6463 - if-eqz v1, :cond_15
6464 + if-eqz v1, :cond_2d
6466 or-int/lit16 v0, v0, 0x80
6468 - :cond_15
6469 + :cond_2d
6470 iget-object v1, p0, Landroid/hardware/Camera;->mPostviewCallback:Landroid/hardware/Camera$PictureCallback;
6472 - if-eqz v1, :cond_1b
6473 + if-eqz v1, :cond_33
6475 or-int/lit8 v0, v0, 0x40
6477 - :cond_1b
6478 + :cond_33
6479 iget-object v1, p0, Landroid/hardware/Camera;->mJpegCallback:Landroid/hardware/Camera$PictureCallback;
6481 - if-eqz v1, :cond_21
6482 + if-eqz v1, :cond_39
6484 or-int/lit16 v0, v0, 0x100
6486 - :cond_21
6487 + :cond_39
6488 invoke-direct {p0, v0}, Landroid/hardware/Camera;->native_takePicture(I)V
6490 const/4 v1, 0x0
6491 diff -Npru stock-framework/smali/android/media/AudioRecord.smali opd-framework/smali/android/media/AudioRecord.smali
6492 --- stock-framework/smali/android/media/AudioRecord.smali 2013-01-09 02:53:00.791620465 -0600
6493 +++ opd-framework/smali/android/media/AudioRecord.smali 2013-01-09 02:52:40.735521013 -0600
6494 @@ -29,10 +29,18 @@
6496 .field public static final ERROR_INVALID_OPERATION:I = -0x3
6498 +.field private static final GOT_ERROR:I = -0x3
6500 +.field private static final IS_ALLOWED:I = -0x1
6502 +.field private static final IS_NOT_ALLOWED:I = -0x2
6504 .field private static final NATIVE_EVENT_MARKER:I = 0x2
6506 .field private static final NATIVE_EVENT_NEW_POS:I = 0x3
6508 +.field private static final PRIVACY_TAG:Ljava/lang/String; = "PM,AudioRecord"
6510 .field public static final RECORDSTATE_RECORDING:I = 0x3
6512 .field public static final RECORDSTATE_STOPPED:I = 0x1
6513 @@ -47,6 +55,8 @@
6516 # instance fields
6517 +.field private context:Landroid/content/Context;
6519 .field private mAudioFormat:I
6521 .field private mChannelConfiguration:I
6522 @@ -65,6 +75,8 @@
6524 .field private mNativeRecorderInJavaObj:I
6526 +.field private mPm:Landroid/content/pm/IPackageManager;
6528 .field private mPositionListener:Landroid/media/AudioRecord$OnRecordPositionUpdateListener;
6530 .field private final mPositionListenerLock:Ljava/lang/Object;
6531 @@ -81,6 +93,10 @@
6533 .field private mState:I
6535 +.field private pSetMan:Landroid/privacy/PrivacySettingsManager;
6537 +.field private privacyMode:Z
6540 # direct methods
6541 .method public constructor <init>(IIIII)V
6542 @@ -159,6 +175,10 @@
6544 const/4 v0, 0x0
6546 + iput-boolean v0, p0, Landroid/media/AudioRecord;->privacyMode:Z
6548 + const/4 v0, 0x0
6550 iput v0, p0, Landroid/media/AudioRecord;->mState:I
6552 const/4 v0, 0x1
6553 @@ -171,7 +191,7 @@
6555 iput-object v0, p0, Landroid/media/AudioRecord;->mInitializationLooper:Landroid/os/Looper;
6557 - if-nez v0, :cond_4f
6558 + if-nez v0, :cond_52
6560 invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper;
6562 @@ -179,7 +199,7 @@
6564 iput-object v0, p0, Landroid/media/AudioRecord;->mInitializationLooper:Landroid/os/Looper;
6566 - :cond_4f
6567 + :cond_52
6568 invoke-direct {p0, p1, p2, p3, p4}, Landroid/media/AudioRecord;->audioParamCheck(IIII)V
6570 invoke-direct {p0, p5}, Landroid/media/AudioRecord;->audioBuffSizeCheck(I)V
6571 @@ -214,7 +234,7 @@
6573 move-result v8
6575 - if-eqz v8, :cond_8f
6576 + if-eqz v8, :cond_92
6578 new-instance v0, Ljava/lang/StringBuilder;
6580 @@ -242,10 +262,12 @@
6582 invoke-static {v0}, Landroid/media/AudioRecord;->loge(Ljava/lang/String;)V
6584 - :goto_8e
6585 + :goto_91
6586 return-void
6588 - :cond_8f
6589 + :cond_92
6590 + invoke-direct {p0}, Landroid/media/AudioRecord;->initiate()V
6592 const/4 v0, 0x0
6594 aget v0, v7, v0
6595 @@ -256,7 +278,7 @@
6597 iput v0, p0, Landroid/media/AudioRecord;->mState:I
6599 - goto :goto_8e
6600 + goto :goto_91
6601 .end method
6603 .method static synthetic access$000(Landroid/media/AudioRecord;)Ljava/lang/Object;
6604 @@ -481,6 +503,205 @@
6605 .end sparse-switch
6606 .end method
6608 +.method private checkIfPackagesAllowed()I
6609 + .registers 9
6611 + const/4 v5, -0x3
6613 + :try_start_1
6614 + iget-object v6, p0, Landroid/media/AudioRecord;->pSetMan:Landroid/privacy/PrivacySettingsManager;
6616 + if-eqz v6, :cond_41
6618 + const/4 v2, 0x0
6620 + invoke-direct {p0}, Landroid/media/AudioRecord;->getPackageName()[Ljava/lang/String;
6622 + move-result-object v3
6624 + invoke-static {}, Landroid/os/Process;->myUid()I
6626 + move-result v4
6628 + if-eqz v3, :cond_2c
6630 + const/4 v1, 0x0
6632 + :goto_11
6633 + array-length v6, v3
6635 + if-ge v1, v6, :cond_2a
6637 + iget-object v6, p0, Landroid/media/AudioRecord;->pSetMan:Landroid/privacy/PrivacySettingsManager;
6639 + aget-object v7, v3, v1
6641 + invoke-virtual {v6, v7, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
6643 + move-result-object v2
6645 + if-eqz v2, :cond_26
6647 + invoke-virtual {v2}, Landroid/privacy/PrivacySettings;->getRecordAudioSetting()B
6649 + move-result v6
6651 + if-eqz v6, :cond_26
6653 + const/4 v5, -0x2
6655 + :goto_25
6656 + return v5
6658 + :cond_26
6659 + const/4 v2, 0x0
6661 + add-int/lit8 v1, v1, 0x1
6663 + goto :goto_11
6665 + :cond_2a
6666 + const/4 v5, -0x1
6668 + goto :goto_25
6670 + :cond_2c
6671 + const-string v6, "PM,AudioRecord"
6673 + const-string/jumbo v7, "return GOT_ERROR, because package_names are NULL"
6675 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
6676 + :try_end_34
6677 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_34} :catch_35
6679 + goto :goto_25
6681 + :catch_35
6682 + move-exception v0
6684 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
6686 + const-string v6, "PM,AudioRecord"
6688 + const-string v7, "Got exception in checkIfPackagesAllowed"
6690 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
6692 + goto :goto_25
6694 + :cond_41
6695 + :try_start_41
6696 + const-string v6, "PM,AudioRecord"
6698 + const-string/jumbo v7, "return GOT_ERROR, because pSetMan is NULL"
6700 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
6701 + :try_end_49
6702 + .catch Ljava/lang/Exception; {:try_start_41 .. :try_end_49} :catch_35
6704 + goto :goto_25
6705 +.end method
6707 +.method private dataAccess(Z)V
6708 + .registers 7
6710 + invoke-direct {p0}, Landroid/media/AudioRecord;->getPackageName()[Ljava/lang/String;
6712 + move-result-object v1
6714 + if-eqz p1, :cond_2f
6716 + if-eqz v1, :cond_2f
6718 + const/4 v0, 0x0
6720 + :goto_9
6721 + array-length v2, v1
6723 + if-ge v0, v2, :cond_58
6725 + const-string v2, "PM,AudioRecord"
6727 + new-instance v3, Ljava/lang/StringBuilder;
6729 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
6731 + const-string v4, "Allowed Package: -"
6733 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
6735 + move-result-object v3
6737 + aget-object v4, v1, v0
6739 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
6741 + move-result-object v3
6743 + const-string v4, "- accessing microphone."
6745 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
6747 + move-result-object v3
6749 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
6751 + move-result-object v3
6753 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
6755 + add-int/lit8 v0, v0, 0x1
6757 + goto :goto_9
6759 + :cond_2f
6760 + if-eqz v1, :cond_58
6762 + const/4 v0, 0x0
6764 + :goto_32
6765 + array-length v2, v1
6767 + if-ge v0, v2, :cond_58
6769 + const-string v2, "PM,AudioRecord"
6771 + new-instance v3, Ljava/lang/StringBuilder;
6773 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
6775 + const-string v4, "Blocked Package: -"
6777 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
6779 + move-result-object v3
6781 + aget-object v4, v1, v0
6783 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
6785 + move-result-object v3
6787 + const-string v4, "- accessing microphone."
6789 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
6791 + move-result-object v3
6793 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
6795 + move-result-object v3
6797 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
6799 + add-int/lit8 v0, v0, 0x1
6801 + goto :goto_32
6803 + :cond_58
6804 + return-void
6805 +.end method
6807 .method public static getMinBufferSize(III)I
6808 .registers 8
6810 @@ -571,6 +792,135 @@
6811 .end sparse-switch
6812 .end method
6814 +.method private getPackageName()[Ljava/lang/String;
6815 + .registers 6
6817 + :try_start_0
6818 + iget-object v3, p0, Landroid/media/AudioRecord;->mPm:Landroid/content/pm/IPackageManager;
6820 + if-eqz v3, :cond_f
6822 + invoke-static {}, Landroid/os/Process;->myUid()I
6824 + move-result v2
6826 + iget-object v3, p0, Landroid/media/AudioRecord;->mPm:Landroid/content/pm/IPackageManager;
6828 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
6830 + move-result-object v1
6832 + :goto_e
6833 + return-object v1
6835 + :cond_f
6836 + const-string/jumbo v3, "package"
6838 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
6840 + move-result-object v3
6842 + invoke-static {v3}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
6844 + move-result-object v3
6846 + iput-object v3, p0, Landroid/media/AudioRecord;->mPm:Landroid/content/pm/IPackageManager;
6848 + invoke-static {}, Landroid/os/Process;->myUid()I
6850 + move-result v2
6852 + iget-object v3, p0, Landroid/media/AudioRecord;->mPm:Landroid/content/pm/IPackageManager;
6854 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
6855 + :try_end_25
6856 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_25} :catch_27
6858 + move-result-object v1
6860 + goto :goto_e
6862 + :catch_27
6863 + move-exception v0
6865 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
6867 + const-string v3, "PM,AudioRecord"
6869 + const-string/jumbo v4, "something went wrong with getting package name"
6871 + invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
6873 + const/4 v1, 0x0
6875 + goto :goto_e
6876 +.end method
6878 +.method private initiate()V
6879 + .registers 5
6881 + const/4 v1, 0x0
6883 + :try_start_1
6884 + iput-object v1, p0, Landroid/media/AudioRecord;->context:Landroid/content/Context;
6886 + new-instance v1, Landroid/privacy/PrivacySettingsManager;
6888 + iget-object v2, p0, Landroid/media/AudioRecord;->context:Landroid/content/Context;
6890 + const-string/jumbo v3, "privacy"
6892 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
6894 + move-result-object v3
6896 + invoke-static {v3}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
6898 + move-result-object v3
6900 + invoke-direct {v1, v2, v3}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
6902 + iput-object v1, p0, Landroid/media/AudioRecord;->pSetMan:Landroid/privacy/PrivacySettingsManager;
6904 + const-string/jumbo v1, "package"
6906 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
6908 + move-result-object v1
6910 + invoke-static {v1}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
6912 + move-result-object v1
6914 + iput-object v1, p0, Landroid/media/AudioRecord;->mPm:Landroid/content/pm/IPackageManager;
6916 + const/4 v1, 0x1
6918 + iput-boolean v1, p0, Landroid/media/AudioRecord;->privacyMode:Z
6919 + :try_end_27
6920 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_27} :catch_28
6922 + :goto_27
6923 + return-void
6925 + :catch_28
6926 + move-exception v0
6928 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
6930 + const-string v1, "PM,AudioRecord"
6932 + const-string v2, "Something went wrong with initalize variables"
6934 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
6936 + const/4 v1, 0x0
6938 + iput-boolean v1, p0, Landroid/media/AudioRecord;->privacyMode:Z
6940 + goto :goto_27
6941 +.end method
6943 .method private static logd(Ljava/lang/String;)V
6944 .registers 4
6946 @@ -1021,19 +1371,68 @@
6947 .end method
6949 .method public startRecording()V
6950 - .registers 4
6951 + .registers 11
6952 .annotation system Ldalvik/annotation/Throws;
6953 value = {
6954 Ljava/lang/IllegalStateException;
6956 .end annotation
6958 + const/4 v5, 0x0
6960 + const/4 v3, 0x1
6962 + const/4 v2, 0x0
6964 + iget-boolean v0, p0, Landroid/media/AudioRecord;->privacyMode:Z
6966 + if-nez v0, :cond_a
6968 + invoke-direct {p0}, Landroid/media/AudioRecord;->initiate()V
6970 + :cond_a
6971 iget v0, p0, Landroid/media/AudioRecord;->mState:I
6973 - const/4 v1, 0x1
6974 + if-ne v0, v3, :cond_15
6976 + invoke-direct {p0}, Landroid/media/AudioRecord;->checkIfPackagesAllowed()I
6978 + move-result v0
6980 + const/4 v1, -0x2
6982 + if-ne v0, v1, :cond_3d
6984 - if-eq v0, v1, :cond_e
6985 + :cond_15
6986 + invoke-direct {p0, v2}, Landroid/media/AudioRecord;->dataAccess(Z)V
6988 + invoke-direct {p0}, Landroid/media/AudioRecord;->getPackageName()[Ljava/lang/String;
6990 + move-result-object v7
6992 + if-eqz v7, :cond_34
6994 + iget-object v0, p0, Landroid/media/AudioRecord;->pSetMan:Landroid/privacy/PrivacySettingsManager;
6996 + aget-object v1, v7, v2
6998 + const-string/jumbo v4, "recordAudio"
7000 + iget-object v6, p0, Landroid/media/AudioRecord;->pSetMan:Landroid/privacy/PrivacySettingsManager;
7002 + aget-object v8, v7, v2
7004 + invoke-static {}, Landroid/os/Process;->myUid()I
7006 + move-result v9
7008 + invoke-virtual {v6, v8, v9}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
7010 + move-result-object v6
7012 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
7014 + :cond_34
7015 new-instance v0, Ljava/lang/IllegalStateException;
7017 const-string/jumbo v1, "startRecording() called on an uninitialized AudioRecord."
7018 @@ -1042,7 +1441,38 @@
7020 throw v0
7022 - :cond_e
7023 + :cond_3d
7024 + invoke-direct {p0, v3}, Landroid/media/AudioRecord;->dataAccess(Z)V
7026 + invoke-direct {p0}, Landroid/media/AudioRecord;->getPackageName()[Ljava/lang/String;
7028 + move-result-object v7
7030 + if-eqz v7, :cond_5d
7032 + iget-object v0, p0, Landroid/media/AudioRecord;->pSetMan:Landroid/privacy/PrivacySettingsManager;
7034 + aget-object v1, v7, v2
7036 + const-string/jumbo v4, "recordAudio"
7038 + iget-object v3, p0, Landroid/media/AudioRecord;->pSetMan:Landroid/privacy/PrivacySettingsManager;
7040 + aget-object v6, v7, v2
7042 + invoke-static {}, Landroid/os/Process;->myUid()I
7044 + move-result v8
7046 + invoke-virtual {v3, v6, v8}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
7048 + move-result-object v6
7050 + move v3, v2
7052 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
7054 + :cond_5d
7055 iget-object v1, p0, Landroid/media/AudioRecord;->mRecordingStateLock:Ljava/lang/Object;
7057 monitor-enter v1
7058 @@ -1051,28 +1481,28 @@
7060 const/4 v2, 0x0
7062 - :try_start_13
7063 + :try_start_62
7064 invoke-direct {p0, v0, v2}, Landroid/media/AudioRecord;->native_start(II)I
7066 move-result v0
7068 - if-nez v0, :cond_1c
7069 + if-nez v0, :cond_6b
7071 const/4 v0, 0x3
7073 iput v0, p0, Landroid/media/AudioRecord;->mRecordingState:I
7075 - :cond_1c
7076 + :cond_6b
7077 monitor-exit v1
7079 return-void
7081 - :catchall_1e
7082 + :catchall_6d
7083 move-exception v0
7085 monitor-exit v1
7086 - :try_end_20
7087 - .catchall {:try_start_13 .. :try_end_20} :catchall_1e
7088 + :try_end_6f
7089 + .catchall {:try_start_62 .. :try_end_6f} :catchall_6d
7091 throw v0
7092 .end method
7093 diff -Npru stock-framework/smali/android/media/MediaRecorder$PrivacyRunner.smali opd-framework/smali/android/media/MediaRecorder$PrivacyRunner.smali
7094 --- stock-framework/smali/android/media/MediaRecorder$PrivacyRunner.smali 1969-12-31 18:00:00.000000000 -0600
7095 +++ opd-framework/smali/android/media/MediaRecorder$PrivacyRunner.smali 2013-01-09 02:52:40.843521548 -0600
7096 @@ -0,0 +1,215 @@
7097 +.class Landroid/media/MediaRecorder$PrivacyRunner;
7098 +.super Ljava/lang/Thread;
7099 +.source "MediaRecorder.java"
7102 +# annotations
7103 +.annotation system Ldalvik/annotation/EnclosingClass;
7104 + value = Landroid/media/MediaRecorder;
7105 +.end annotation
7107 +.annotation system Ldalvik/annotation/InnerClass;
7108 + accessFlags = 0x2
7109 + name = "PrivacyRunner"
7110 +.end annotation
7113 +# static fields
7114 +.field private static final OFFSET_DELAY:J = 0x9c4L
7117 +# instance fields
7118 +.field private delay:J
7120 +.field final synthetic this$0:Landroid/media/MediaRecorder;
7123 +# direct methods
7124 +.method public constructor <init>(Landroid/media/MediaRecorder;)V
7125 + .registers 4
7127 + iput-object p1, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7129 + invoke-direct {p0}, Ljava/lang/Thread;-><init>()V
7131 + const-wide/16 v0, 0x9c4
7133 + iput-wide v0, p0, Landroid/media/MediaRecorder$PrivacyRunner;->delay:J
7135 + return-void
7136 +.end method
7139 +# virtual methods
7140 +.method public getDelay()J
7141 + .registers 3
7143 + iget-wide v0, p0, Landroid/media/MediaRecorder$PrivacyRunner;->delay:J
7145 + return-wide v0
7146 +.end method
7148 +.method public run()V
7149 + .registers 5
7151 + :try_start_0
7152 + iget-wide v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->delay:J
7154 + invoke-static {v2, v3}, Ljava/lang/Thread;->sleep(J)V
7156 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7158 + #calls: Landroid/media/MediaRecorder;->privacyStop()V
7159 + invoke-static {v2}, Landroid/media/MediaRecorder;->access$300(Landroid/media/MediaRecorder;)V
7161 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7163 + #getter for: Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
7164 + invoke-static {v2}, Landroid/media/MediaRecorder;->access$400(Landroid/media/MediaRecorder;)Ljava/lang/String;
7166 + move-result-object v2
7168 + if-eqz v2, :cond_2f
7170 + new-instance v1, Ljava/io/File;
7172 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7174 + #getter for: Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
7175 + invoke-static {v2}, Landroid/media/MediaRecorder;->access$400(Landroid/media/MediaRecorder;)Ljava/lang/String;
7177 + move-result-object v2
7179 + invoke-direct {v1, v2}, Ljava/io/File;-><init>(Ljava/lang/String;)V
7181 + invoke-virtual {v1}, Ljava/io/File;->delete()Z
7183 + move-result v2
7185 + if-eqz v2, :cond_29
7187 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7189 + const/4 v3, 0x1
7191 + #setter for: Landroid/media/MediaRecorder;->deletedFile:Z
7192 + invoke-static {v2, v3}, Landroid/media/MediaRecorder;->access$502(Landroid/media/MediaRecorder;Z)Z
7193 + :try_end_29
7194 + .catchall {:try_start_0 .. :try_end_29} :catchall_73
7195 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_29} :catch_57
7197 + :cond_29
7198 + :goto_29
7199 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7201 + :goto_2b
7202 + #calls: Landroid/media/MediaRecorder;->privacyStop()V
7203 + invoke-static {v2}, Landroid/media/MediaRecorder;->access$300(Landroid/media/MediaRecorder;)V
7205 + return-void
7207 + :cond_2f
7208 + :try_start_2f
7209 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7211 + #getter for: Landroid/media/MediaRecorder;->mFd:Ljava/io/FileDescriptor;
7212 + invoke-static {v2}, Landroid/media/MediaRecorder;->access$600(Landroid/media/MediaRecorder;)Ljava/io/FileDescriptor;
7214 + move-result-object v2
7216 + if-eqz v2, :cond_65
7218 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7220 + #getter for: Landroid/media/MediaRecorder;->pFileDescriptorPath:Ljava/lang/String;
7221 + invoke-static {v2}, Landroid/media/MediaRecorder;->access$700(Landroid/media/MediaRecorder;)Ljava/lang/String;
7223 + move-result-object v2
7225 + if-eqz v2, :cond_65
7227 + new-instance v1, Ljava/io/File;
7229 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7231 + #getter for: Landroid/media/MediaRecorder;->pFileDescriptorPath:Ljava/lang/String;
7232 + invoke-static {v2}, Landroid/media/MediaRecorder;->access$700(Landroid/media/MediaRecorder;)Ljava/lang/String;
7234 + move-result-object v2
7236 + invoke-direct {v1, v2}, Ljava/io/File;-><init>(Ljava/lang/String;)V
7238 + invoke-virtual {v1}, Ljava/io/File;->delete()Z
7240 + move-result v2
7242 + if-eqz v2, :cond_29
7244 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7246 + const/4 v3, 0x1
7248 + #setter for: Landroid/media/MediaRecorder;->deletedFile:Z
7249 + invoke-static {v2, v3}, Landroid/media/MediaRecorder;->access$502(Landroid/media/MediaRecorder;Z)Z
7250 + :try_end_56
7251 + .catchall {:try_start_2f .. :try_end_56} :catchall_73
7252 + .catch Ljava/lang/Exception; {:try_start_2f .. :try_end_56} :catch_57
7254 + goto :goto_29
7256 + :catch_57
7257 + move-exception v0
7259 + :try_start_58
7260 + const-string v2, "PM,MediaRecorder"
7262 + const-string v3, "Something went wrong while waiting for cancel the stream!"
7264 + invoke-static {v2, v3}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
7266 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
7267 + :try_end_62
7268 + .catchall {:try_start_58 .. :try_end_62} :catchall_73
7270 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7272 + goto :goto_2b
7274 + :cond_65
7275 + :try_start_65
7276 + const-string v2, "PM,MediaRecorder"
7278 + const-string v3, "Can\'t delete temporary File, because all is null?! It could be that we only want to record audio?!"
7280 + invoke-static {v2, v3}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
7282 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7284 + const/4 v3, 0x0
7286 + #setter for: Landroid/media/MediaRecorder;->deletedFile:Z
7287 + invoke-static {v2, v3}, Landroid/media/MediaRecorder;->access$502(Landroid/media/MediaRecorder;Z)Z
7288 + :try_end_72
7289 + .catchall {:try_start_65 .. :try_end_72} :catchall_73
7290 + .catch Ljava/lang/Exception; {:try_start_65 .. :try_end_72} :catch_57
7292 + goto :goto_29
7294 + :catchall_73
7295 + move-exception v2
7297 + iget-object v3, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7299 + #calls: Landroid/media/MediaRecorder;->privacyStop()V
7300 + invoke-static {v3}, Landroid/media/MediaRecorder;->access$300(Landroid/media/MediaRecorder;)V
7302 + throw v2
7303 +.end method
7305 +.method public setDelay(J)V
7306 + .registers 3
7308 + iput-wide p1, p0, Landroid/media/MediaRecorder$PrivacyRunner;->delay:J
7310 + return-void
7311 +.end method
7312 diff -Npru stock-framework/smali/android/media/MediaRecorder.smali opd-framework/smali/android/media/MediaRecorder.smali
7313 --- stock-framework/smali/android/media/MediaRecorder.smali 2013-01-09 02:53:00.987621433 -0600
7314 +++ opd-framework/smali/android/media/MediaRecorder.smali 2013-01-09 02:52:40.847521564 -0600
7315 @@ -6,6 +6,7 @@
7316 # annotations
7317 .annotation system Ldalvik/annotation/MemberClasses;
7318 value = {
7319 + Landroid/media/MediaRecorder$PrivacyRunner;,
7320 Landroid/media/MediaRecorder$EventHandler;,
7321 Landroid/media/MediaRecorder$OnInfoListener;,
7322 Landroid/media/MediaRecorder$OnErrorListener;,
7323 @@ -19,6 +20,14 @@
7326 # static fields
7327 +.field private static final BOTH_DATA_ACCESS:I = 0xb
7329 +.field private static final GOT_ERROR:I = -0x3
7331 +.field private static final IS_ALLOWED:I = -0x1
7333 +.field private static final IS_NOT_ALLOWED:I = -0x2
7335 .field public static final MEDIA_ERROR_SERVER_DIED:I = 0x64
7337 .field public static final MEDIA_RECORDER_ERROR_UNKNOWN:I = 0x1
7338 @@ -53,10 +62,30 @@
7340 .field public static final MEDIA_RECORDER_TRACK_INTER_CHUNK_TIME_MS:I = 0x3ee
7342 +.field private static final MIC_DATA_ACCESS:I = 0xa
7344 +.field private static final MODE_RECORD_AUDIO:I = 0x2
7346 +.field private static final MODE_RECORD_BOTH:I = 0x3
7348 +.field private static final PRIVACY_PATH_DEF:Ljava/lang/String; = "/data/data/"
7350 +.field private static final PRIVACY_TAG:Ljava/lang/String; = "PM,MediaRecorder"
7352 +.field private static final STATE_RECORD_AUDIO:I = 0x0
7354 +.field private static final STATE_RECORD_BOTH:I = 0x1
7356 .field private static final TAG:Ljava/lang/String; = "MediaRecorder"
7359 # instance fields
7360 +.field private ACTUAL_STATE:I
7362 +.field private context:Landroid/content/Context;
7364 +.field private deletedFile:Z
7366 .field private mEventHandler:Landroid/media/MediaRecorder$EventHandler;
7368 .field private mFd:Ljava/io/FileDescriptor;
7369 @@ -69,8 +98,24 @@
7371 .field private mPath:Ljava/lang/String;
7373 +.field private mPm:Landroid/content/pm/IPackageManager;
7375 .field private mSurface:Landroid/view/Surface;
7377 +.field private pFileDescriptor:Ljava/io/FileDescriptor;
7379 +.field private pFileDescriptorPath:Ljava/lang/String;
7381 +.field private pPath:Ljava/lang/String;
7383 +.field private pRunner:Landroid/media/MediaRecorder$PrivacyRunner;
7385 +.field private pSetMan:Landroid/privacy/PrivacySettingsManager;
7387 +.field private privacyMode:Z
7389 +.field private stoppedStream:Z
7392 # direct methods
7393 .method static constructor <clinit>()V
7394 @@ -86,15 +131,35 @@
7395 .end method
7397 .method public constructor <init>()V
7398 - .registers 3
7399 + .registers 4
7401 + const/4 v2, 0x0
7403 + const/4 v1, 0x0
7405 invoke-direct {p0}, Ljava/lang/Object;-><init>()V
7407 + iput-object v1, p0, Landroid/media/MediaRecorder;->pPath:Ljava/lang/String;
7409 + iput-object v1, p0, Landroid/media/MediaRecorder;->pFileDescriptorPath:Ljava/lang/String;
7411 + iput-object v1, p0, Landroid/media/MediaRecorder;->pFileDescriptor:Ljava/io/FileDescriptor;
7413 + iput-object v1, p0, Landroid/media/MediaRecorder;->pRunner:Landroid/media/MediaRecorder$PrivacyRunner;
7415 + iput-boolean v2, p0, Landroid/media/MediaRecorder;->deletedFile:Z
7417 + iput-boolean v2, p0, Landroid/media/MediaRecorder;->privacyMode:Z
7419 + iput-boolean v2, p0, Landroid/media/MediaRecorder;->stoppedStream:Z
7421 + iput v2, p0, Landroid/media/MediaRecorder;->ACTUAL_STATE:I
7423 invoke-static {}, Landroid/os/Looper;->myLooper()Landroid/os/Looper;
7425 move-result-object v0
7427 - if-eqz v0, :cond_19
7428 + if-eqz v0, :cond_2e
7430 new-instance v1, Landroid/media/MediaRecorder$EventHandler;
7432 @@ -102,7 +167,9 @@
7434 iput-object v1, p0, Landroid/media/MediaRecorder;->mEventHandler:Landroid/media/MediaRecorder$EventHandler;
7436 - :goto_10
7437 + :goto_22
7438 + invoke-direct {p0}, Landroid/media/MediaRecorder;->initiate()V
7440 new-instance v1, Ljava/lang/ref/WeakReference;
7442 invoke-direct {v1, p0}, Ljava/lang/ref/WeakReference;-><init>(Ljava/lang/Object;)V
7443 @@ -111,12 +178,12 @@
7445 return-void
7447 - :cond_19
7448 + :cond_2e
7449 invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper;
7451 move-result-object v0
7453 - if-eqz v0, :cond_27
7454 + if-eqz v0, :cond_3c
7456 new-instance v1, Landroid/media/MediaRecorder$EventHandler;
7458 @@ -124,14 +191,12 @@
7460 iput-object v1, p0, Landroid/media/MediaRecorder;->mEventHandler:Landroid/media/MediaRecorder$EventHandler;
7462 - goto :goto_10
7464 - :cond_27
7465 - const/4 v1, 0x0
7466 + goto :goto_22
7468 + :cond_3c
7469 iput-object v1, p0, Landroid/media/MediaRecorder;->mEventHandler:Landroid/media/MediaRecorder$EventHandler;
7471 - goto :goto_10
7472 + goto :goto_22
7473 .end method
7475 .method private native _prepare()V
7476 @@ -143,45 +208,1757 @@
7477 .end annotation
7478 .end method
7480 -.method private native _setOutputFile(Ljava/io/FileDescriptor;JJ)V
7481 - .annotation system Ldalvik/annotation/Throws;
7482 - value = {
7483 - Ljava/lang/IllegalStateException;,
7484 - Ljava/io/IOException;
7486 - .end annotation
7487 -.end method
7488 +.method private native _setOutputFile(Ljava/io/FileDescriptor;JJ)V
7489 + .annotation system Ldalvik/annotation/Throws;
7490 + value = {
7491 + Ljava/lang/IllegalStateException;,
7492 + Ljava/io/IOException;
7494 + .end annotation
7495 +.end method
7497 +.method static synthetic access$000(Landroid/media/MediaRecorder;)I
7498 + .registers 2
7500 + iget v0, p0, Landroid/media/MediaRecorder;->mNativeContext:I
7502 + return v0
7503 +.end method
7505 +.method static synthetic access$100(Landroid/media/MediaRecorder;)Landroid/media/MediaRecorder$OnErrorListener;
7506 + .registers 2
7508 + iget-object v0, p0, Landroid/media/MediaRecorder;->mOnErrorListener:Landroid/media/MediaRecorder$OnErrorListener;
7510 + return-object v0
7511 +.end method
7513 +.method static synthetic access$200(Landroid/media/MediaRecorder;)Landroid/media/MediaRecorder$OnInfoListener;
7514 + .registers 2
7516 + iget-object v0, p0, Landroid/media/MediaRecorder;->mOnInfoListener:Landroid/media/MediaRecorder$OnInfoListener;
7518 + return-object v0
7519 +.end method
7521 +.method static synthetic access$300(Landroid/media/MediaRecorder;)V
7522 + .registers 1
7524 + invoke-direct {p0}, Landroid/media/MediaRecorder;->privacyStop()V
7526 + return-void
7527 +.end method
7529 +.method static synthetic access$400(Landroid/media/MediaRecorder;)Ljava/lang/String;
7530 + .registers 2
7532 + iget-object v0, p0, Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
7534 + return-object v0
7535 +.end method
7537 +.method static synthetic access$502(Landroid/media/MediaRecorder;Z)Z
7538 + .registers 2
7540 + iput-boolean p1, p0, Landroid/media/MediaRecorder;->deletedFile:Z
7542 + return p1
7543 +.end method
7545 +.method static synthetic access$600(Landroid/media/MediaRecorder;)Ljava/io/FileDescriptor;
7546 + .registers 2
7548 + iget-object v0, p0, Landroid/media/MediaRecorder;->mFd:Ljava/io/FileDescriptor;
7550 + return-object v0
7551 +.end method
7553 +.method static synthetic access$700(Landroid/media/MediaRecorder;)Ljava/lang/String;
7554 + .registers 2
7556 + iget-object v0, p0, Landroid/media/MediaRecorder;->pFileDescriptorPath:Ljava/lang/String;
7558 + return-object v0
7559 +.end method
7561 +.method private checkIfPackagesAllowed(I)I
7562 + .registers 12
7564 + const/4 v6, -0x1
7566 + const/4 v5, -0x2
7568 + const/4 v7, -0x3
7570 + :try_start_3
7571 + iget-object v8, p0, Landroid/media/MediaRecorder;->pSetMan:Landroid/privacy/PrivacySettingsManager;
7573 + if-eqz v8, :cond_5b
7575 + const/4 v2, 0x0
7577 + invoke-direct {p0}, Landroid/media/MediaRecorder;->getPackageName()[Ljava/lang/String;
7579 + move-result-object v3
7581 + invoke-static {}, Landroid/os/Process;->myUid()I
7583 + move-result v4
7585 + if-eqz v3, :cond_51
7587 + packed-switch p1, :pswitch_data_72
7589 + move v5, v7
7591 + :cond_16
7592 + :goto_16
7593 + return v5
7595 + :pswitch_17
7596 + const/4 v1, 0x0
7598 + :goto_18
7599 + array-length v8, v3
7601 + if-ge v1, v8, :cond_2f
7603 + iget-object v8, p0, Landroid/media/MediaRecorder;->pSetMan:Landroid/privacy/PrivacySettingsManager;
7605 + aget-object v9, v3, v1
7607 + invoke-virtual {v8, v9, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
7609 + move-result-object v2
7611 + if-eqz v2, :cond_2b
7613 + invoke-virtual {v2}, Landroid/privacy/PrivacySettings;->getRecordAudioSetting()B
7615 + move-result v8
7617 + if-nez v8, :cond_16
7619 + :cond_2b
7620 + const/4 v2, 0x0
7622 + add-int/lit8 v1, v1, 0x1
7624 + goto :goto_18
7626 + :cond_2f
7627 + move v5, v6
7629 + goto :goto_16
7631 + :pswitch_31
7632 + const/4 v1, 0x0
7634 + :goto_32
7635 + array-length v8, v3
7637 + if-ge v1, v8, :cond_4f
7639 + iget-object v8, p0, Landroid/media/MediaRecorder;->pSetMan:Landroid/privacy/PrivacySettingsManager;
7641 + aget-object v9, v3, v1
7643 + invoke-virtual {v8, v9, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
7645 + move-result-object v2
7647 + if-eqz v2, :cond_4b
7649 + invoke-virtual {v2}, Landroid/privacy/PrivacySettings;->getRecordAudioSetting()B
7651 + move-result v8
7653 + if-nez v8, :cond_16
7655 + invoke-virtual {v2}, Landroid/privacy/PrivacySettings;->getCameraSetting()B
7657 + move-result v8
7659 + if-nez v8, :cond_16
7661 + :cond_4b
7662 + const/4 v2, 0x0
7664 + add-int/lit8 v1, v1, 0x1
7666 + goto :goto_32
7668 + :cond_4f
7669 + move v5, v6
7671 + goto :goto_16
7673 + :cond_51
7674 + const-string v5, "PM,MediaRecorder"
7676 + const-string/jumbo v6, "return GOT_ERROR, because package_names are NULL"
7678 + invoke-static {v5, v6}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
7680 + move v5, v7
7682 + goto :goto_16
7684 + :cond_5b
7685 + const-string v5, "PM,MediaRecorder"
7687 + const-string/jumbo v6, "return GOT_ERROR, because pSetMan is NULL"
7689 + invoke-static {v5, v6}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
7690 + :try_end_63
7691 + .catch Ljava/lang/Exception; {:try_start_3 .. :try_end_63} :catch_65
7693 + move v5, v7
7695 + goto :goto_16
7697 + :catch_65
7698 + move-exception v0
7700 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
7702 + const-string v5, "PM,MediaRecorder"
7704 + const-string v6, "Got exception in checkIfPackagesAllowed"
7706 + invoke-static {v5, v6}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
7708 + move v5, v7
7710 + goto :goto_16
7712 + :pswitch_data_72
7713 + .packed-switch 0x2
7714 + :pswitch_17
7715 + :pswitch_31
7716 + .end packed-switch
7717 +.end method
7719 +.method private dataAccess(ZI)V
7720 + .registers 8
7722 + invoke-direct {p0}, Landroid/media/MediaRecorder;->getPackageName()[Ljava/lang/String;
7724 + move-result-object v1
7726 + if-eqz p1, :cond_5a
7728 + if-eqz v1, :cond_5a
7730 + packed-switch p2, :pswitch_data_ae
7732 + :cond_b
7733 + :goto_b
7734 + return-void
7736 + :pswitch_c
7737 + const/4 v0, 0x0
7739 + :goto_d
7740 + array-length v2, v1
7742 + if-ge v0, v2, :cond_b
7744 + const-string v2, "PM,MediaRecorder"
7746 + new-instance v3, Ljava/lang/StringBuilder;
7748 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
7750 + const-string v4, "Allowed Package: -"
7752 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7754 + move-result-object v3
7756 + aget-object v4, v1, v0
7758 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7760 + move-result-object v3
7762 + const-string v4, "- accessing microphone."
7764 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7766 + move-result-object v3
7768 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
7770 + move-result-object v3
7772 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
7774 + add-int/lit8 v0, v0, 0x1
7776 + goto :goto_d
7778 + :pswitch_33
7779 + const/4 v0, 0x0
7781 + :goto_34
7782 + array-length v2, v1
7784 + if-ge v0, v2, :cond_b
7786 + const-string v2, "PM,MediaRecorder"
7788 + new-instance v3, Ljava/lang/StringBuilder;
7790 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
7792 + const-string v4, "Allowed Package: -"
7794 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7796 + move-result-object v3
7798 + aget-object v4, v1, v0
7800 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7802 + move-result-object v3
7804 + const-string v4, "- accessing microphone and camera."
7806 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7808 + move-result-object v3
7810 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
7812 + move-result-object v3
7814 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
7816 + add-int/lit8 v0, v0, 0x1
7818 + goto :goto_34
7820 + :cond_5a
7821 + if-eqz v1, :cond_b
7823 + packed-switch p2, :pswitch_data_b6
7825 + goto :goto_b
7827 + :pswitch_60
7828 + const/4 v0, 0x0
7830 + :goto_61
7831 + array-length v2, v1
7833 + if-ge v0, v2, :cond_b
7835 + const-string v2, "PM,MediaRecorder"
7837 + new-instance v3, Ljava/lang/StringBuilder;
7839 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
7841 + const-string v4, "Blocked Package: -"
7843 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7845 + move-result-object v3
7847 + aget-object v4, v1, v0
7849 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7851 + move-result-object v3
7853 + const-string v4, "- accessing microphone."
7855 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7857 + move-result-object v3
7859 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
7861 + move-result-object v3
7863 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
7865 + add-int/lit8 v0, v0, 0x1
7867 + goto :goto_61
7869 + :pswitch_87
7870 + const/4 v0, 0x0
7872 + :goto_88
7873 + array-length v2, v1
7875 + if-ge v0, v2, :cond_b
7877 + const-string v2, "PM,MediaRecorder"
7879 + new-instance v3, Ljava/lang/StringBuilder;
7881 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
7883 + const-string v4, "Blocked Package: -"
7885 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7887 + move-result-object v3
7889 + aget-object v4, v1, v0
7891 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7893 + move-result-object v3
7895 + const-string v4, "- accessing microphone and camera."
7897 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7899 + move-result-object v3
7901 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
7903 + move-result-object v3
7905 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
7907 + add-int/lit8 v0, v0, 0x1
7909 + goto :goto_88
7911 + :pswitch_data_ae
7912 + .packed-switch 0xa
7913 + :pswitch_c
7914 + :pswitch_33
7915 + .end packed-switch
7917 + :pswitch_data_b6
7918 + .packed-switch 0xa
7919 + :pswitch_60
7920 + :pswitch_87
7921 + .end packed-switch
7922 +.end method
7924 +.method public static final getAudioSourceMax()I
7925 + .registers 1
7927 + const/16 v0, 0x8
7929 + return v0
7930 +.end method
7932 +.method private getPackageName()[Ljava/lang/String;
7933 + .registers 6
7935 + :try_start_0
7936 + iget-object v3, p0, Landroid/media/MediaRecorder;->mPm:Landroid/content/pm/IPackageManager;
7938 + if-eqz v3, :cond_f
7940 + invoke-static {}, Landroid/os/Process;->myUid()I
7942 + move-result v2
7944 + iget-object v3, p0, Landroid/media/MediaRecorder;->mPm:Landroid/content/pm/IPackageManager;
7946 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
7948 + move-result-object v1
7950 + :goto_e
7951 + return-object v1
7953 + :cond_f
7954 + const-string/jumbo v3, "package"
7956 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
7958 + move-result-object v3
7960 + invoke-static {v3}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
7962 + move-result-object v3
7964 + iput-object v3, p0, Landroid/media/MediaRecorder;->mPm:Landroid/content/pm/IPackageManager;
7966 + invoke-static {}, Landroid/os/Process;->myUid()I
7968 + move-result v2
7970 + iget-object v3, p0, Landroid/media/MediaRecorder;->mPm:Landroid/content/pm/IPackageManager;
7972 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
7973 + :try_end_25
7974 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_25} :catch_27
7976 + move-result-object v1
7978 + goto :goto_e
7980 + :catch_27
7981 + move-exception v0
7983 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
7985 + const-string v3, "PM,MediaRecorder"
7987 + const-string/jumbo v4, "something went wrong with getting package name"
7989 + invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
7991 + const/4 v1, 0x0
7993 + goto :goto_e
7994 +.end method
7996 +.method private getPrivacyFileDescriptor()Ljava/io/FileDescriptor;
7997 + .registers 19
7999 + invoke-direct/range {p0 .. p0}, Landroid/media/MediaRecorder;->getPackageName()[Ljava/lang/String;
8001 + move-result-object v12
8003 + new-instance v14, Ljava/util/Random;
8005 + invoke-direct {v14}, Ljava/util/Random;-><init>()V
8007 + const/4 v1, 0x0
8009 + new-instance v15, Ljava/lang/StringBuilder;
8011 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
8013 + invoke-virtual {v14}, Ljava/util/Random;->nextLong()J
8015 + move-result-wide v16
8017 + invoke-virtual/range {v15 .. v17}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
8019 + move-result-object v15
8021 + const-string v16, ".tmp"
8023 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8025 + move-result-object v15
8027 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8029 + move-result-object v2
8031 + const/4 v7, 0x0
8033 + const/4 v3, 0x0
8035 + const/4 v11, 0x0
8037 + :goto_24
8038 + array-length v15, v12
8040 + if-ge v11, v15, :cond_247
8042 + :try_start_27
8043 + new-instance v9, Ljava/io/File;
8045 + new-instance v15, Ljava/lang/StringBuilder;
8047 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
8049 + const-string v16, "/data/data/"
8051 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8053 + move-result-object v15
8055 + aget-object v16, v12, v11
8057 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8059 + move-result-object v15
8061 + const-string v16, "/cache/"
8063 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8065 + move-result-object v15
8067 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8069 + move-result-object v15
8071 + invoke-direct {v9, v15}, Ljava/io/File;-><init>(Ljava/lang/String;)V
8073 + invoke-virtual {v9}, Ljava/io/File;->mkdirs()Z
8075 + new-instance v8, Ljava/io/FileWriter;
8077 + new-instance v15, Ljava/lang/StringBuilder;
8079 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
8081 + const-string v16, "/data/data/"
8083 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8085 + move-result-object v15
8087 + aget-object v16, v12, v11
8089 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8091 + move-result-object v15
8093 + const-string v16, "/cache/"
8095 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8097 + move-result-object v15
8099 + invoke-virtual {v15, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8101 + move-result-object v15
8103 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8105 + move-result-object v15
8107 + invoke-direct {v8, v15}, Ljava/io/FileWriter;-><init>(Ljava/lang/String;)V
8108 + :try_end_6e
8109 + .catchall {:try_start_27 .. :try_end_6e} :catchall_155
8110 + .catch Ljava/lang/Exception; {:try_start_27 .. :try_end_6e} :catch_15c
8112 + :try_start_6e
8113 + const-string/jumbo v15, "test"
8115 + invoke-virtual {v8, v15}, Ljava/io/FileWriter;->write(Ljava/lang/String;)V
8117 + invoke-virtual {v8}, Ljava/io/FileWriter;->flush()V
8119 + invoke-virtual {v8}, Ljava/io/FileWriter;->close()V
8121 + new-instance v4, Ljava/io/File;
8123 + new-instance v15, Ljava/lang/StringBuilder;
8125 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
8127 + const-string v16, "/data/data/"
8129 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8131 + move-result-object v15
8133 + aget-object v16, v12, v11
8135 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8137 + move-result-object v15
8139 + const-string v16, "/cache/"
8141 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8143 + move-result-object v15
8145 + invoke-virtual {v15, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8147 + move-result-object v15
8149 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8151 + move-result-object v15
8153 + invoke-direct {v4, v15}, Ljava/io/File;-><init>(Ljava/lang/String;)V
8154 + :try_end_9e
8155 + .catchall {:try_start_6e .. :try_end_9e} :catchall_235
8156 + .catch Ljava/lang/Exception; {:try_start_6e .. :try_end_9e} :catch_23e
8158 + :try_start_9e
8159 + invoke-virtual {v4}, Ljava/io/File;->delete()Z
8161 + const-string v15, "PM,MediaRecorder"
8163 + new-instance v16, Ljava/lang/StringBuilder;
8165 + invoke-direct/range {v16 .. v16}, Ljava/lang/StringBuilder;-><init>()V
8167 + const-string v17, "found our package: "
8169 + invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8171 + move-result-object v16
8173 + aget-object v17, v12, v11
8175 + invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8177 + move-result-object v16
8179 + const-string v17, " with internal path. File: "
8181 + invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8183 + move-result-object v16
8185 + move-object/from16 v0, v16
8187 + invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8189 + move-result-object v16
8191 + invoke-virtual/range {v16 .. v16}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8193 + move-result-object v16
8195 + invoke-static/range {v15 .. v16}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
8197 + aget-object v1, v12, v11
8198 + :try_end_c9
8199 + .catchall {:try_start_9e .. :try_end_c9} :catchall_239
8200 + .catch Ljava/lang/Exception; {:try_start_9e .. :try_end_c9} :catch_242
8202 + const/4 v7, 0x0
8204 + const/4 v3, 0x0
8206 + invoke-static {}, Ljava/lang/System;->gc()V
8208 + move-object v4, v3
8210 + move-object v8, v7
8212 + :goto_d0
8213 + if-eqz v1, :cond_172
8215 + :try_start_d2
8216 + new-instance v10, Ljava/io/FileOutputStream;
8218 + new-instance v15, Ljava/lang/StringBuilder;
8220 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
8222 + const-string v16, "/data/data/"
8224 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8226 + move-result-object v15
8228 + invoke-virtual {v15, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8230 + move-result-object v15
8232 + const-string v16, "/cache/"
8234 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8236 + move-result-object v15
8238 + invoke-virtual {v15, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8240 + move-result-object v15
8242 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8244 + move-result-object v15
8246 + invoke-direct {v10, v15}, Ljava/io/FileOutputStream;-><init>(Ljava/lang/String;)V
8248 + invoke-virtual {v10}, Ljava/io/FileOutputStream;->getFD()Ljava/io/FileDescriptor;
8250 + move-result-object v6
8252 + new-instance v15, Ljava/lang/StringBuilder;
8254 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
8256 + const-string v16, "/data/data/"
8258 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8260 + move-result-object v15
8262 + invoke-virtual {v15, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8264 + move-result-object v15
8266 + const-string v16, "/cache/"
8268 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8270 + move-result-object v15
8272 + invoke-virtual {v15, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8274 + move-result-object v15
8276 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8278 + move-result-object v15
8280 + move-object/from16 v0, p0
8282 + iput-object v15, v0, Landroid/media/MediaRecorder;->pFileDescriptorPath:Ljava/lang/String;
8284 + const-string v15, "PM,MediaRecorder"
8286 + new-instance v16, Ljava/lang/StringBuilder;
8288 + invoke-direct/range {v16 .. v16}, Ljava/lang/StringBuilder;-><init>()V
8290 + const-string/jumbo v17, "returned fileDescriptor for package: "
8292 + invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8294 + move-result-object v16
8296 + move-object/from16 v0, v16
8298 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8300 + move-result-object v16
8302 + const-string v17, " with internal path. Path: "
8304 + invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8306 + move-result-object v16
8308 + const-string v17, "/data/data/"
8310 + invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8312 + move-result-object v16
8314 + move-object/from16 v0, v16
8316 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8318 + move-result-object v16
8320 + const-string v17, "/cache/"
8322 + invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8324 + move-result-object v16
8326 + move-object/from16 v0, v16
8328 + invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8330 + move-result-object v16
8332 + invoke-virtual/range {v16 .. v16}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8334 + move-result-object v16
8336 + invoke-static/range {v15 .. v16}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
8337 + :try_end_152
8338 + .catch Ljava/lang/Exception; {:try_start_d2 .. :try_end_152} :catch_166
8340 + move-object v3, v4
8342 + move-object v7, v8
8344 + :goto_154
8345 + return-object v6
8347 + :catchall_155
8348 + move-exception v15
8350 + :goto_156
8351 + const/4 v7, 0x0
8353 + const/4 v3, 0x0
8355 + invoke-static {}, Ljava/lang/System;->gc()V
8357 + throw v15
8359 + :catch_15c
8360 + move-exception v15
8362 + :goto_15d
8363 + const/4 v7, 0x0
8365 + const/4 v3, 0x0
8367 + invoke-static {}, Ljava/lang/System;->gc()V
8369 + add-int/lit8 v11, v11, 0x1
8371 + goto/16 :goto_24
8373 + :catch_166
8374 + move-exception v5
8376 + const-string v15, "PM,MediaRecorder"
8378 + const-string v16, "Got exception while creating fileDescriptor -> return null"
8380 + invoke-static/range {v15 .. v16}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
8382 + const/4 v6, 0x0
8384 + move-object v3, v4
8386 + move-object v7, v8
8388 + goto :goto_154
8390 + :cond_172
8391 + :try_start_172
8392 + invoke-static {}, Landroid/os/Environment;->getExternalStorageDirectory()Ljava/io/File;
8394 + move-result-object v15
8396 + invoke-virtual {v15}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
8398 + move-result-object v13
8400 + new-instance v7, Ljava/io/FileWriter;
8402 + new-instance v15, Ljava/lang/StringBuilder;
8404 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
8406 + invoke-virtual {v15, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8408 + move-result-object v15
8410 + const-string v16, "/"
8412 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8414 + move-result-object v15
8416 + invoke-virtual {v15, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8418 + move-result-object v15
8420 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8422 + move-result-object v15
8424 + invoke-direct {v7, v15}, Ljava/io/FileWriter;-><init>(Ljava/lang/String;)V
8425 + :try_end_196
8426 + .catch Ljava/lang/Exception; {:try_start_172 .. :try_end_196} :catch_22e
8428 + :try_start_196
8429 + const-string/jumbo v15, "test"
8431 + invoke-virtual {v7, v15}, Ljava/io/FileWriter;->write(Ljava/lang/String;)V
8433 + invoke-virtual {v7}, Ljava/io/FileWriter;->flush()V
8435 + invoke-virtual {v7}, Ljava/io/FileWriter;->close()V
8437 + new-instance v3, Ljava/io/File;
8439 + new-instance v15, Ljava/lang/StringBuilder;
8441 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
8443 + invoke-virtual {v15, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8445 + move-result-object v15
8447 + const-string v16, "/"
8449 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8451 + move-result-object v15
8453 + invoke-virtual {v15, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8455 + move-result-object v15
8457 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8459 + move-result-object v15
8461 + invoke-direct {v3, v15}, Ljava/io/File;-><init>(Ljava/lang/String;)V
8462 + :try_end_1be
8463 + .catch Ljava/lang/Exception; {:try_start_196 .. :try_end_1be} :catch_232
8465 + :try_start_1be
8466 + invoke-virtual {v3}, Ljava/io/File;->delete()Z
8468 + new-instance v10, Ljava/io/FileOutputStream;
8470 + new-instance v15, Ljava/lang/StringBuilder;
8472 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
8474 + invoke-virtual {v15, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8476 + move-result-object v15
8478 + const-string v16, "/"
8480 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8482 + move-result-object v15
8484 + invoke-virtual {v15, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8486 + move-result-object v15
8488 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8490 + move-result-object v15
8492 + invoke-direct {v10, v15}, Ljava/io/FileOutputStream;-><init>(Ljava/lang/String;)V
8494 + invoke-virtual {v10}, Ljava/io/FileOutputStream;->getFD()Ljava/io/FileDescriptor;
8496 + move-result-object v6
8498 + new-instance v15, Ljava/lang/StringBuilder;
8500 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
8502 + invoke-virtual {v15, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8504 + move-result-object v15
8506 + const-string v16, "/"
8508 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8510 + move-result-object v15
8512 + invoke-virtual {v15, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8514 + move-result-object v15
8516 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8518 + move-result-object v15
8520 + move-object/from16 v0, p0
8522 + iput-object v15, v0, Landroid/media/MediaRecorder;->pFileDescriptorPath:Ljava/lang/String;
8524 + const-string v15, "PM,MediaRecorder"
8526 + new-instance v16, Ljava/lang/StringBuilder;
8528 + invoke-direct/range {v16 .. v16}, Ljava/lang/StringBuilder;-><init>()V
8530 + const-string v17, "Returned FileDescriptor. Path: "
8532 + invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8534 + move-result-object v16
8536 + move-object/from16 v0, v16
8538 + invoke-virtual {v0, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8540 + move-result-object v16
8542 + const-string v17, "/"
8544 + invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8546 + move-result-object v16
8548 + move-object/from16 v0, v16
8550 + invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8552 + move-result-object v16
8554 + const-string v17, " . It is on SDCard!"
8556 + invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8558 + move-result-object v16
8560 + invoke-virtual/range {v16 .. v16}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8562 + move-result-object v16
8564 + invoke-static/range {v15 .. v16}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
8565 + :try_end_228
8566 + .catch Ljava/lang/Exception; {:try_start_1be .. :try_end_228} :catch_22a
8568 + goto/16 :goto_154
8570 + :catch_22a
8571 + move-exception v5
8573 + :goto_22b
8574 + const/4 v6, 0x0
8576 + goto/16 :goto_154
8578 + :catch_22e
8579 + move-exception v5
8581 + move-object v3, v4
8583 + move-object v7, v8
8585 + goto :goto_22b
8587 + :catch_232
8588 + move-exception v5
8590 + move-object v3, v4
8592 + goto :goto_22b
8594 + :catchall_235
8595 + move-exception v15
8597 + move-object v7, v8
8599 + goto/16 :goto_156
8601 + :catchall_239
8602 + move-exception v15
8604 + move-object v3, v4
8606 + move-object v7, v8
8608 + goto/16 :goto_156
8610 + :catch_23e
8611 + move-exception v15
8613 + move-object v7, v8
8615 + goto/16 :goto_15d
8617 + :catch_242
8618 + move-exception v15
8620 + move-object v3, v4
8622 + move-object v7, v8
8624 + goto/16 :goto_15d
8626 + :cond_247
8627 + move-object v4, v3
8629 + move-object v8, v7
8631 + goto/16 :goto_d0
8632 +.end method
8634 +.method private getPrivacyPath()Ljava/lang/String;
8635 + .registers 16
8637 + invoke-direct {p0}, Landroid/media/MediaRecorder;->getPackageName()[Ljava/lang/String;
8639 + move-result-object v9
8641 + new-instance v11, Ljava/util/Random;
8643 + invoke-direct {v11}, Ljava/util/Random;-><init>()V
8645 + const/4 v0, 0x0
8647 + new-instance v12, Ljava/lang/StringBuilder;
8649 + invoke-direct {v12}, Ljava/lang/StringBuilder;-><init>()V
8651 + invoke-virtual {v11}, Ljava/util/Random;->nextLong()J
8653 + move-result-wide v13
8655 + invoke-virtual {v12, v13, v14}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
8657 + move-result-object v12
8659 + const-string v13, ".tmp"
8661 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8663 + move-result-object v12
8665 + invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8667 + move-result-object v1
8669 + const/4 v5, 0x0
8671 + const/4 v2, 0x0
8673 + const/4 v8, 0x0
8675 + :goto_24
8676 + array-length v12, v9
8678 + if-ge v8, v12, :cond_1eb
8680 + :try_start_27
8681 + new-instance v7, Ljava/io/File;
8683 + new-instance v12, Ljava/lang/StringBuilder;
8685 + invoke-direct {v12}, Ljava/lang/StringBuilder;-><init>()V
8687 + const-string v13, "/data/data/"
8689 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8691 + move-result-object v12
8693 + aget-object v13, v9, v8
8695 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8697 + move-result-object v12
8699 + const-string v13, "/cache/"
8701 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8703 + move-result-object v12
8705 + invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8707 + move-result-object v12
8709 + invoke-direct {v7, v12}, Ljava/io/File;-><init>(Ljava/lang/String;)V
8711 + invoke-virtual {v7}, Ljava/io/File;->mkdirs()Z
8713 + new-instance v6, Ljava/io/FileWriter;
8715 + new-instance v12, Ljava/lang/StringBuilder;
8717 + invoke-direct {v12}, Ljava/lang/StringBuilder;-><init>()V
8719 + const-string v13, "/data/data/"
8721 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8723 + move-result-object v12
8725 + aget-object v13, v9, v8
8727 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8729 + move-result-object v12
8731 + const-string v13, "/cache/"
8733 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8735 + move-result-object v12
8737 + invoke-virtual {v12, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8739 + move-result-object v12
8741 + invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8743 + move-result-object v12
8745 + invoke-direct {v6, v12}, Ljava/io/FileWriter;-><init>(Ljava/lang/String;)V
8746 + :try_end_6e
8747 + .catchall {:try_start_27 .. :try_end_6e} :catchall_12d
8748 + .catch Ljava/lang/Exception; {:try_start_27 .. :try_end_6e} :catch_134
8750 + :try_start_6e
8751 + const-string/jumbo v12, "test"
8753 + invoke-virtual {v6, v12}, Ljava/io/FileWriter;->write(Ljava/lang/String;)V
8755 + invoke-virtual {v6}, Ljava/io/FileWriter;->flush()V
8757 + invoke-virtual {v6}, Ljava/io/FileWriter;->close()V
8759 + new-instance v3, Ljava/io/File;
8761 + new-instance v12, Ljava/lang/StringBuilder;
8763 + invoke-direct {v12}, Ljava/lang/StringBuilder;-><init>()V
8765 + const-string v13, "/data/data/"
8767 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8769 + move-result-object v12
8771 + aget-object v13, v9, v8
8773 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8775 + move-result-object v12
8777 + const-string v13, "/cache/"
8779 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8781 + move-result-object v12
8783 + invoke-virtual {v12, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8785 + move-result-object v12
8787 + invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8789 + move-result-object v12
8791 + invoke-direct {v3, v12}, Ljava/io/File;-><init>(Ljava/lang/String;)V
8792 + :try_end_9e
8793 + .catchall {:try_start_6e .. :try_end_9e} :catchall_1d9
8794 + .catch Ljava/lang/Exception; {:try_start_6e .. :try_end_9e} :catch_1e2
8796 + :try_start_9e
8797 + invoke-virtual {v3}, Ljava/io/File;->delete()Z
8799 + const-string v12, "PM,MediaRecorder"
8801 + new-instance v13, Ljava/lang/StringBuilder;
8803 + invoke-direct {v13}, Ljava/lang/StringBuilder;-><init>()V
8805 + const-string v14, "found our package: "
8807 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8809 + move-result-object v13
8811 + aget-object v14, v9, v8
8813 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8815 + move-result-object v13
8817 + const-string v14, " with internal path. File: "
8819 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8821 + move-result-object v13
8823 + invoke-virtual {v13, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8825 + move-result-object v13
8827 + invoke-virtual {v13}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8829 + move-result-object v13
8831 + invoke-static {v12, v13}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
8833 + aget-object v0, v9, v8
8834 + :try_end_c7
8835 + .catchall {:try_start_9e .. :try_end_c7} :catchall_1dd
8836 + .catch Ljava/lang/Exception; {:try_start_9e .. :try_end_c7} :catch_1e6
8838 + const/4 v5, 0x0
8840 + const/4 v2, 0x0
8842 + invoke-static {}, Ljava/lang/System;->gc()V
8844 + move-object v3, v2
8846 + move-object v6, v5
8848 + :goto_ce
8849 + if-eqz v0, :cond_13e
8851 + const-string v12, "PM,MediaRecorder"
8853 + new-instance v13, Ljava/lang/StringBuilder;
8855 + invoke-direct {v13}, Ljava/lang/StringBuilder;-><init>()V
8857 + const-string/jumbo v14, "returned file: "
8859 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8861 + move-result-object v13
8863 + invoke-virtual {v13, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8865 + move-result-object v13
8867 + const-string v14, " for package: "
8869 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8871 + move-result-object v13
8873 + invoke-virtual {v13, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8875 + move-result-object v13
8877 + const-string v14, " with internal path. Path: "
8879 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8881 + move-result-object v13
8883 + const-string v14, "/data/data/"
8885 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8887 + move-result-object v13
8889 + invoke-virtual {v13, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8891 + move-result-object v13
8893 + const-string v14, "/cache/"
8895 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8897 + move-result-object v13
8899 + invoke-virtual {v13, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8901 + move-result-object v13
8903 + invoke-virtual {v13}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8905 + move-result-object v13
8907 + invoke-static {v12, v13}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
8909 + new-instance v12, Ljava/lang/StringBuilder;
8911 + invoke-direct {v12}, Ljava/lang/StringBuilder;-><init>()V
8913 + const-string v13, "/data/data/"
8915 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8917 + move-result-object v12
8919 + invoke-virtual {v12, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8921 + move-result-object v12
8923 + const-string v13, "/cache/"
8925 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8927 + move-result-object v12
8929 + invoke-virtual {v12, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8931 + move-result-object v12
8933 + invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8935 + move-result-object v12
8937 + move-object v2, v3
8939 + move-object v5, v6
8941 + :goto_12c
8942 + return-object v12
8944 + :catchall_12d
8945 + move-exception v12
8947 + :goto_12e
8948 + const/4 v5, 0x0
8950 + const/4 v2, 0x0
8952 + invoke-static {}, Ljava/lang/System;->gc()V
8954 + throw v12
8956 + :catch_134
8957 + move-exception v12
8959 + :goto_135
8960 + const/4 v5, 0x0
8962 + const/4 v2, 0x0
8964 + invoke-static {}, Ljava/lang/System;->gc()V
8966 + add-int/lit8 v8, v8, 0x1
8968 + goto/16 :goto_24
8970 + :cond_13e
8971 + :try_start_13e
8972 + invoke-static {}, Landroid/os/Environment;->getExternalStorageDirectory()Ljava/io/File;
8974 + move-result-object v12
8976 + invoke-virtual {v12}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
8978 + move-result-object v10
8980 + new-instance v5, Ljava/io/FileWriter;
8982 + new-instance v12, Ljava/lang/StringBuilder;
8984 + invoke-direct {v12}, Ljava/lang/StringBuilder;-><init>()V
8986 + invoke-virtual {v12, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8988 + move-result-object v12
8990 + const-string v13, "/"
8992 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8994 + move-result-object v12
8996 + invoke-virtual {v12, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8998 + move-result-object v12
9000 + invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
9002 + move-result-object v12
9004 + invoke-direct {v5, v12}, Ljava/io/FileWriter;-><init>(Ljava/lang/String;)V
9005 + :try_end_162
9006 + .catch Ljava/lang/Exception; {:try_start_13e .. :try_end_162} :catch_1ce
9008 + :try_start_162
9009 + const-string/jumbo v12, "test"
9011 + invoke-virtual {v5, v12}, Ljava/io/FileWriter;->write(Ljava/lang/String;)V
9013 + invoke-virtual {v5}, Ljava/io/FileWriter;->flush()V
9015 + invoke-virtual {v5}, Ljava/io/FileWriter;->close()V
9017 + new-instance v2, Ljava/io/File;
9019 + new-instance v12, Ljava/lang/StringBuilder;
9021 + invoke-direct {v12}, Ljava/lang/StringBuilder;-><init>()V
9023 + invoke-virtual {v12, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9025 + move-result-object v12
9027 + const-string v13, "/"
9029 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9031 + move-result-object v12
9033 + invoke-virtual {v12, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9035 + move-result-object v12
9037 + invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
9039 + move-result-object v12
9041 + invoke-direct {v2, v12}, Ljava/io/File;-><init>(Ljava/lang/String;)V
9042 + :try_end_18a
9043 + .catch Ljava/lang/Exception; {:try_start_162 .. :try_end_18a} :catch_1d4
9045 + :try_start_18a
9046 + invoke-virtual {v2}, Ljava/io/File;->delete()Z
9048 + const-string v12, "PM,MediaRecorder"
9050 + new-instance v13, Ljava/lang/StringBuilder;
9052 + invoke-direct {v13}, Ljava/lang/StringBuilder;-><init>()V
9054 + const-string v14, "Return filePath: "
9056 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9058 + move-result-object v13
9060 + invoke-virtual {v13, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9062 + move-result-object v13
9064 + const-string v14, "/"
9066 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9068 + move-result-object v13
9070 + invoke-virtual {v13, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9072 + move-result-object v13
9074 + const-string v14, " . It is on SDCard!"
9076 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9078 + move-result-object v13
9080 + invoke-virtual {v13}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
9082 + move-result-object v13
9084 + invoke-static {v12, v13}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
9086 + new-instance v12, Ljava/lang/StringBuilder;
9088 + invoke-direct {v12}, Ljava/lang/StringBuilder;-><init>()V
9090 + invoke-virtual {v12, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9092 + move-result-object v12
9094 + const-string v13, "/"
9096 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9098 + move-result-object v12
9100 + invoke-virtual {v12, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9102 + move-result-object v12
9104 + invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
9105 + :try_end_1cb
9106 + .catch Ljava/lang/Exception; {:try_start_18a .. :try_end_1cb} :catch_1d7
9108 + move-result-object v12
9110 + goto/16 :goto_12c
9112 + :catch_1ce
9113 + move-exception v4
9115 + move-object v2, v3
9117 + move-object v5, v6
9119 + :goto_1d1
9120 + const/4 v12, 0x0
9122 + goto/16 :goto_12c
9124 + :catch_1d4
9125 + move-exception v4
9127 + move-object v2, v3
9129 + goto :goto_1d1
9131 + :catch_1d7
9132 + move-exception v4
9134 + goto :goto_1d1
9136 + :catchall_1d9
9137 + move-exception v12
9139 + move-object v5, v6
9141 + goto/16 :goto_12e
9143 + :catchall_1dd
9144 + move-exception v12
9146 + move-object v2, v3
9148 + move-object v5, v6
9150 + goto/16 :goto_12e
9152 + :catch_1e2
9153 + move-exception v12
9155 + move-object v5, v6
9157 + goto/16 :goto_135
9159 + :catch_1e6
9160 + move-exception v12
9162 + move-object v2, v3
9164 + move-object v5, v6
9166 + goto/16 :goto_135
9168 + :cond_1eb
9169 + move-object v3, v2
9171 + move-object v6, v5
9173 + goto/16 :goto_ce
9174 +.end method
9176 +.method private initiate()V
9177 + .registers 5
9179 + const/4 v1, 0x0
9181 + :try_start_1
9182 + iput-object v1, p0, Landroid/media/MediaRecorder;->context:Landroid/content/Context;
9184 + new-instance v1, Landroid/privacy/PrivacySettingsManager;
9186 + iget-object v2, p0, Landroid/media/MediaRecorder;->context:Landroid/content/Context;
9188 + const-string/jumbo v3, "privacy"
9190 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
9192 + move-result-object v3
9194 + invoke-static {v3}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
9196 + move-result-object v3
9198 + invoke-direct {v1, v2, v3}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
9200 + iput-object v1, p0, Landroid/media/MediaRecorder;->pSetMan:Landroid/privacy/PrivacySettingsManager;
9202 + const-string/jumbo v1, "package"
9204 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
9206 -.method static synthetic access$000(Landroid/media/MediaRecorder;)I
9207 - .registers 2
9208 + move-result-object v1
9210 - iget v0, p0, Landroid/media/MediaRecorder;->mNativeContext:I
9211 + invoke-static {v1}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
9213 - return v0
9214 -.end method
9215 + move-result-object v1
9217 -.method static synthetic access$100(Landroid/media/MediaRecorder;)Landroid/media/MediaRecorder$OnErrorListener;
9218 - .registers 2
9219 + iput-object v1, p0, Landroid/media/MediaRecorder;->mPm:Landroid/content/pm/IPackageManager;
9221 - iget-object v0, p0, Landroid/media/MediaRecorder;->mOnErrorListener:Landroid/media/MediaRecorder$OnErrorListener;
9222 + const/4 v1, 0x1
9224 - return-object v0
9225 -.end method
9226 + iput-boolean v1, p0, Landroid/media/MediaRecorder;->privacyMode:Z
9227 + :try_end_27
9228 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_27} :catch_28
9230 -.method static synthetic access$200(Landroid/media/MediaRecorder;)Landroid/media/MediaRecorder$OnInfoListener;
9231 - .registers 2
9232 + :goto_27
9233 + return-void
9235 - iget-object v0, p0, Landroid/media/MediaRecorder;->mOnInfoListener:Landroid/media/MediaRecorder$OnInfoListener;
9236 + :catch_28
9237 + move-exception v0
9239 - return-object v0
9240 -.end method
9241 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
9243 -.method public static final getAudioSourceMax()I
9244 - .registers 1
9245 + const-string v1, "PM,MediaRecorder"
9247 - const/16 v0, 0x8
9248 + const-string v2, "Something went wrong with initalize variables"
9250 - return v0
9251 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
9253 + const/4 v1, 0x0
9255 + iput-boolean v1, p0, Landroid/media/MediaRecorder;->privacyMode:Z
9257 + goto :goto_27
9258 .end method
9260 .method private final native native_finalize()V
9261 @@ -236,17 +2013,104 @@
9262 goto :goto_a
9263 .end method
9265 +.method private privacyStop()V
9266 + .registers 4
9268 + :try_start_0
9269 + invoke-virtual {p0}, Landroid/media/MediaRecorder;->stop()V
9270 + :try_end_3
9271 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_3} :catch_4
9273 + :goto_3
9274 + return-void
9276 + :catch_4
9277 + move-exception v0
9279 + const-string v1, "PM,MediaRecorder"
9281 + const-string v2, "Got exception while trying to call privacyStop()"
9283 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
9285 + goto :goto_3
9286 +.end method
9288 .method private native setParameter(Ljava/lang/String;)V
9289 .end method
9292 # virtual methods
9293 .method protected finalize()V
9294 - .registers 1
9295 + .registers 4
9297 + const/4 v2, 0x1
9299 + iget-boolean v1, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9301 + if-nez v1, :cond_18
9303 + iget-object v1, p0, Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
9305 + if-eqz v1, :cond_1c
9307 + new-instance v0, Ljava/io/File;
9309 + iget-object v1, p0, Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
9311 + invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
9313 + invoke-virtual {v0}, Ljava/io/File;->delete()Z
9315 + move-result v1
9317 + if-eqz v1, :cond_18
9319 + iput-boolean v2, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9321 + :cond_18
9322 + :goto_18
9323 invoke-direct {p0}, Landroid/media/MediaRecorder;->native_finalize()V
9325 return-void
9327 + :cond_1c
9328 + iget-object v1, p0, Landroid/media/MediaRecorder;->mFd:Ljava/io/FileDescriptor;
9330 + if-eqz v1, :cond_34
9332 + iget-object v1, p0, Landroid/media/MediaRecorder;->pFileDescriptorPath:Ljava/lang/String;
9334 + if-eqz v1, :cond_34
9336 + new-instance v0, Ljava/io/File;
9338 + iget-object v1, p0, Landroid/media/MediaRecorder;->pFileDescriptorPath:Ljava/lang/String;
9340 + invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
9342 + invoke-virtual {v0}, Ljava/io/File;->delete()Z
9344 + move-result v1
9346 + if-eqz v1, :cond_18
9348 + iput-boolean v2, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9350 + goto :goto_18
9352 + :cond_34
9353 + const-string v1, "PM,MediaRecorder"
9355 + const-string v2, "Can\'t delete temporary File, because all is null?! It could be that we only want to record audio?!"
9357 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
9359 + const/4 v1, 0x0
9361 + iput-boolean v1, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9363 + goto :goto_18
9364 .end method
9366 .method public native getMaxAmplitude()I
9367 @@ -258,7 +2122,7 @@
9368 .end method
9370 .method public prepare()V
9371 - .registers 8
9372 + .registers 16
9373 .annotation system Ldalvik/annotation/Throws;
9374 value = {
9375 Ljava/lang/IllegalStateException;,
9376 @@ -266,20 +2130,75 @@
9378 .end annotation
9380 - const-wide/16 v2, 0x0
9381 + const/4 v1, -0x2
9383 + const/4 v3, 0x1
9385 + const-wide/16 v13, 0x0
9387 + const/4 v5, 0x0
9389 + const/4 v2, 0x0
9391 + iget-boolean v0, p0, Landroid/media/MediaRecorder;->privacyMode:Z
9393 + if-nez v0, :cond_d
9395 + invoke-direct {p0}, Landroid/media/MediaRecorder;->initiate()V
9397 + :cond_d
9398 + iput-boolean v2, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9400 + const/4 v9, 0x0
9402 + iget v0, p0, Landroid/media/MediaRecorder;->ACTUAL_STATE:I
9404 + packed-switch v0, :pswitch_data_f2
9406 + :cond_15
9407 + :goto_15
9408 + invoke-direct {p0}, Landroid/media/MediaRecorder;->getPackageName()[Ljava/lang/String;
9410 + move-result-object v8
9412 + if-nez v9, :cond_2f
9414 + iget v0, p0, Landroid/media/MediaRecorder;->ACTUAL_STATE:I
9416 + if-ne v0, v3, :cond_c3
9418 + if-eqz v8, :cond_c3
9420 + array-length v0, v8
9422 + if-lez v0, :cond_c3
9424 + iget-object v0, p0, Landroid/media/MediaRecorder;->pSetMan:Landroid/privacy/PrivacySettingsManager;
9426 + aget-object v1, v8, v2
9428 + const-string v4, "camera"
9430 + move v3, v2
9432 + move-object v6, v5
9434 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
9436 + :cond_2f
9437 + :goto_2f
9438 iget-object v0, p0, Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
9440 - if-eqz v0, :cond_25
9441 + if-eqz v0, :cond_db
9443 - new-instance v6, Ljava/io/FileOutputStream;
9444 + new-instance v7, Ljava/io/FileOutputStream;
9446 iget-object v0, p0, Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
9448 - invoke-direct {v6, v0}, Ljava/io/FileOutputStream;-><init>(Ljava/lang/String;)V
9449 + invoke-direct {v7, v0}, Ljava/io/FileOutputStream;-><init>(Ljava/lang/String;)V
9451 - :try_start_d
9452 - invoke-virtual {v6}, Ljava/io/FileOutputStream;->getFD()Ljava/io/FileDescriptor;
9453 + :try_start_3a
9454 + invoke-virtual {v7}, Ljava/io/FileOutputStream;->getFD()Ljava/io/FileDescriptor;
9456 move-result-object v1
9458 @@ -290,39 +2209,189 @@
9459 move-object v0, p0
9461 invoke-direct/range {v0 .. v5}, Landroid/media/MediaRecorder;->_setOutputFile(Ljava/io/FileDescriptor;JJ)V
9462 - :try_end_19
9463 - .catchall {:try_start_d .. :try_end_19} :catchall_20
9464 + :try_end_46
9465 + .catchall {:try_start_3a .. :try_end_46} :catchall_d6
9467 - invoke-virtual {v6}, Ljava/io/FileOutputStream;->close()V
9468 + invoke-virtual {v7}, Ljava/io/FileOutputStream;->close()V
9470 - :goto_1c
9471 + :goto_49
9472 invoke-direct {p0}, Landroid/media/MediaRecorder;->_prepare()V
9474 return-void
9476 - :catchall_20
9477 + :pswitch_4d
9478 + const/4 v0, 0x2
9480 + invoke-direct {p0, v0}, Landroid/media/MediaRecorder;->checkIfPackagesAllowed(I)I
9482 + move-result v0
9484 + if-ne v0, v1, :cond_15
9486 + invoke-direct {p0}, Landroid/media/MediaRecorder;->getPackageName()[Ljava/lang/String;
9488 + move-result-object v10
9490 + if-eqz v10, :cond_68
9492 + array-length v0, v10
9494 + if-lez v0, :cond_68
9496 + iget-object v0, p0, Landroid/media/MediaRecorder;->pSetMan:Landroid/privacy/PrivacySettingsManager;
9498 + aget-object v1, v10, v2
9500 + const-string/jumbo v4, "recordAudio"
9502 + move-object v6, v5
9504 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
9506 + :cond_68
9507 + new-instance v0, Landroid/media/MediaRecorder$PrivacyRunner;
9509 + invoke-direct {v0, p0}, Landroid/media/MediaRecorder$PrivacyRunner;-><init>(Landroid/media/MediaRecorder;)V
9511 + iput-object v0, p0, Landroid/media/MediaRecorder;->pRunner:Landroid/media/MediaRecorder$PrivacyRunner;
9513 + iget-object v0, p0, Landroid/media/MediaRecorder;->pRunner:Landroid/media/MediaRecorder$PrivacyRunner;
9515 + const-wide/16 v11, 0x32
9517 + invoke-virtual {v0, v11, v12}, Landroid/media/MediaRecorder$PrivacyRunner;->setDelay(J)V
9519 + iget-object v0, p0, Landroid/media/MediaRecorder;->pRunner:Landroid/media/MediaRecorder$PrivacyRunner;
9521 + invoke-virtual {v0}, Landroid/media/MediaRecorder$PrivacyRunner;->start()V
9523 + const/4 v9, 0x1
9525 + goto :goto_15
9527 + :pswitch_7d
9528 + const/4 v0, 0x3
9530 + invoke-direct {p0, v0}, Landroid/media/MediaRecorder;->checkIfPackagesAllowed(I)I
9532 + move-result v0
9534 + if-ne v0, v1, :cond_15
9536 + invoke-direct {p0}, Landroid/media/MediaRecorder;->getPackageName()[Ljava/lang/String;
9538 + move-result-object v10
9540 + if-eqz v10, :cond_97
9542 + array-length v0, v10
9544 + if-lez v0, :cond_97
9546 + iget-object v0, p0, Landroid/media/MediaRecorder;->pSetMan:Landroid/privacy/PrivacySettingsManager;
9548 + aget-object v1, v10, v2
9550 + const-string v4, "camera"
9552 + move-object v6, v5
9554 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
9556 + :cond_97
9557 + iget-object v0, p0, Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
9559 + if-eqz v0, :cond_b0
9561 + invoke-direct {p0}, Landroid/media/MediaRecorder;->getPrivacyPath()Ljava/lang/String;
9563 + move-result-object v0
9565 + iput-object v0, p0, Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
9567 + :goto_a1
9568 + new-instance v0, Landroid/media/MediaRecorder$PrivacyRunner;
9570 + invoke-direct {v0, p0}, Landroid/media/MediaRecorder$PrivacyRunner;-><init>(Landroid/media/MediaRecorder;)V
9572 + iput-object v0, p0, Landroid/media/MediaRecorder;->pRunner:Landroid/media/MediaRecorder$PrivacyRunner;
9574 + iget-object v0, p0, Landroid/media/MediaRecorder;->pRunner:Landroid/media/MediaRecorder$PrivacyRunner;
9576 + invoke-virtual {v0}, Landroid/media/MediaRecorder$PrivacyRunner;->start()V
9578 + const/4 v9, 0x1
9580 + goto/16 :goto_15
9582 + :cond_b0
9583 + iget-object v0, p0, Landroid/media/MediaRecorder;->mFd:Ljava/io/FileDescriptor;
9585 + if-eqz v0, :cond_bb
9587 + invoke-direct {p0}, Landroid/media/MediaRecorder;->getPrivacyFileDescriptor()Ljava/io/FileDescriptor;
9589 + move-result-object v0
9591 + iput-object v0, p0, Landroid/media/MediaRecorder;->mFd:Ljava/io/FileDescriptor;
9593 + goto :goto_a1
9595 + :cond_bb
9596 + new-instance v0, Ljava/io/IOException;
9598 + const-string v1, "No valid output file"
9600 + invoke-direct {v0, v1}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
9602 + throw v0
9604 + :cond_c3
9605 + if-eqz v8, :cond_2f
9607 + array-length v0, v8
9609 + if-lez v0, :cond_2f
9611 + iget-object v0, p0, Landroid/media/MediaRecorder;->pSetMan:Landroid/privacy/PrivacySettingsManager;
9613 + aget-object v1, v8, v2
9615 + const-string/jumbo v4, "recordAudio"
9617 + move v3, v2
9619 + move-object v6, v5
9621 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
9623 + goto/16 :goto_2f
9625 + :catchall_d6
9626 move-exception v0
9628 - invoke-virtual {v6}, Ljava/io/FileOutputStream;->close()V
9629 + invoke-virtual {v7}, Ljava/io/FileOutputStream;->close()V
9631 throw v0
9633 - :cond_25
9634 + :cond_db
9635 iget-object v0, p0, Landroid/media/MediaRecorder;->mFd:Ljava/io/FileDescriptor;
9637 - if-eqz v0, :cond_31
9638 + if-eqz v0, :cond_e9
9640 iget-object v1, p0, Landroid/media/MediaRecorder;->mFd:Ljava/io/FileDescriptor;
9642 move-object v0, p0
9644 - move-wide v4, v2
9645 + move-wide v2, v13
9647 + move-wide v4, v13
9649 invoke-direct/range {v0 .. v5}, Landroid/media/MediaRecorder;->_setOutputFile(Ljava/io/FileDescriptor;JJ)V
9651 - goto :goto_1c
9652 + goto/16 :goto_49
9654 - :cond_31
9655 + :cond_e9
9656 new-instance v0, Ljava/io/IOException;
9658 const-string v1, "No valid output file"
9659 @@ -330,23 +2399,99 @@
9660 invoke-direct {v0, v1}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
9662 throw v0
9664 + nop
9666 + :pswitch_data_f2
9667 + .packed-switch 0x0
9668 + :pswitch_4d
9669 + :pswitch_7d
9670 + .end packed-switch
9671 .end method
9673 .method public native release()V
9674 .end method
9676 .method public reset()V
9677 - .registers 3
9678 + .registers 5
9680 + const/4 v3, 0x0
9682 + const/4 v2, 0x1
9684 invoke-direct {p0}, Landroid/media/MediaRecorder;->native_reset()V
9686 - iget-object v0, p0, Landroid/media/MediaRecorder;->mEventHandler:Landroid/media/MediaRecorder$EventHandler;
9687 + iget-boolean v1, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9689 - const/4 v1, 0x0
9690 + if-nez v1, :cond_1c
9692 + iget-object v1, p0, Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
9694 + if-eqz v1, :cond_27
9696 + new-instance v0, Ljava/io/File;
9698 + iget-object v1, p0, Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
9700 + invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
9702 + invoke-virtual {v0}, Ljava/io/File;->delete()Z
9704 + move-result v1
9706 + if-eqz v1, :cond_1c
9708 - invoke-virtual {v0, v1}, Landroid/media/MediaRecorder$EventHandler;->removeCallbacksAndMessages(Ljava/lang/Object;)V
9709 + iput-boolean v2, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9711 + :cond_1c
9712 + :goto_1c
9713 + iput-object v3, p0, Landroid/media/MediaRecorder;->pRunner:Landroid/media/MediaRecorder$PrivacyRunner;
9715 + invoke-static {}, Ljava/lang/System;->gc()V
9717 + iget-object v1, p0, Landroid/media/MediaRecorder;->mEventHandler:Landroid/media/MediaRecorder$EventHandler;
9719 + invoke-virtual {v1, v3}, Landroid/media/MediaRecorder$EventHandler;->removeCallbacksAndMessages(Ljava/lang/Object;)V
9721 return-void
9723 + :cond_27
9724 + iget-object v1, p0, Landroid/media/MediaRecorder;->mFd:Ljava/io/FileDescriptor;
9726 + if-eqz v1, :cond_3f
9728 + iget-object v1, p0, Landroid/media/MediaRecorder;->pFileDescriptorPath:Ljava/lang/String;
9730 + if-eqz v1, :cond_3f
9732 + new-instance v0, Ljava/io/File;
9734 + iget-object v1, p0, Landroid/media/MediaRecorder;->pFileDescriptorPath:Ljava/lang/String;
9736 + invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
9738 + invoke-virtual {v0}, Ljava/io/File;->delete()Z
9740 + move-result v1
9742 + if-eqz v1, :cond_1c
9744 + iput-boolean v2, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9746 + goto :goto_1c
9748 + :cond_3f
9749 + const-string v1, "PM,MediaRecorder"
9751 + const-string v2, "Can\'t delete temporary File, because all is null?! It could be that we only want to record audio?!"
9753 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
9755 + const/4 v1, 0x0
9757 + iput-boolean v1, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9759 + goto :goto_1c
9760 .end method
9762 .method public setAudioChannels(I)V
9763 @@ -506,6 +2651,10 @@
9764 .method public setCaptureRate(D)V
9765 .registers 8
9767 + const/4 v3, 0x1
9769 + iput v3, p0, Landroid/media/MediaRecorder;->ACTUAL_STATE:I
9771 const-string/jumbo v3, "time-lapse-enable=1"
9773 invoke-direct {p0, v3}, Landroid/media/MediaRecorder;->setParameter(Ljava/lang/String;)V
9774 @@ -800,6 +2949,10 @@
9776 iput-object p1, p0, Landroid/media/MediaRecorder;->mFd:Ljava/io/FileDescriptor;
9778 + const/4 v0, 0x0
9780 + iput-boolean v0, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9782 return-void
9783 .end method
9785 @@ -817,6 +2970,10 @@
9787 iput-object p1, p0, Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
9789 + const/4 v0, 0x0
9791 + iput-boolean v0, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9793 return-void
9794 .end method
9796 @@ -829,7 +2986,11 @@
9797 .end method
9799 .method public setPreviewDisplay(Landroid/view/Surface;)V
9800 - .registers 2
9801 + .registers 3
9803 + const/4 v0, 0x1
9805 + iput v0, p0, Landroid/media/MediaRecorder;->ACTUAL_STATE:I
9807 iput-object p1, p0, Landroid/media/MediaRecorder;->mSurface:Landroid/view/Surface;
9809 @@ -839,6 +3000,10 @@
9810 .method public setProfile(Landroid/media/CamcorderProfile;)V
9811 .registers 4
9813 + const/4 v0, 0x1
9815 + iput v0, p0, Landroid/media/MediaRecorder;->ACTUAL_STATE:I
9817 iget v0, p1, Landroid/media/CamcorderProfile;->fileFormat:I
9819 invoke-virtual {p0, v0}, Landroid/media/MediaRecorder;->setOutputFormat(I)V
9820 @@ -865,18 +3030,18 @@
9822 const/16 v1, 0x3e8
9824 - if-lt v0, v1, :cond_28
9825 + if-lt v0, v1, :cond_2b
9827 iget v0, p1, Landroid/media/CamcorderProfile;->quality:I
9829 const/16 v1, 0x3ef
9831 - if-gt v0, v1, :cond_28
9832 + if-gt v0, v1, :cond_2b
9834 - :goto_27
9835 + :goto_2a
9836 return-void
9838 - :cond_28
9839 + :cond_2b
9840 iget v0, p1, Landroid/media/CamcorderProfile;->audioBitRate:I
9842 invoke-virtual {p0, v0}, Landroid/media/MediaRecorder;->setAudioEncodingBitRate(I)V
9843 @@ -893,7 +3058,7 @@
9845 invoke-virtual {p0, v0}, Landroid/media/MediaRecorder;->setAudioEncoder(I)V
9847 - goto :goto_27
9848 + goto :goto_2a
9849 .end method
9851 .method public native setVideoEncoder(I)V
9852 @@ -907,7 +3072,11 @@
9853 .method public setVideoEncodingBitRate(I)V
9854 .registers 4
9856 - if-gtz p1, :cond_a
9857 + const/4 v0, 0x1
9859 + iput v0, p0, Landroid/media/MediaRecorder;->ACTUAL_STATE:I
9861 + if-gtz p1, :cond_d
9863 new-instance v0, Ljava/lang/IllegalArgumentException;
9865 @@ -917,7 +3086,7 @@
9867 throw v0
9869 - :cond_a
9870 + :cond_d
9871 new-instance v0, Ljava/lang/StringBuilder;
9873 invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
9874 diff -Npru stock-framework/smali/android/net/NetworkInfo.smali opd-framework/smali/android/net/NetworkInfo.smali
9875 --- stock-framework/smali/android/net/NetworkInfo.smali 2013-01-09 02:53:01.375623361 -0600
9876 +++ opd-framework/smali/android/net/NetworkInfo.smali 2013-01-09 02:52:41.043522540 -0600
9877 @@ -822,6 +822,14 @@
9878 throw v0
9879 .end method
9881 +.method public setState(Landroid/net/NetworkInfo$State;)V
9882 + .registers 2
9884 + iput-object p1, p0, Landroid/net/NetworkInfo;->mState:Landroid/net/NetworkInfo$State;
9886 + return-void
9887 +.end method
9889 .method setSubtype(ILjava/lang/String;)V
9890 .registers 4
9892 diff -Npru stock-framework/smali/android/net/wifi/WifiInfo.smali opd-framework/smali/android/net/wifi/WifiInfo.smali
9893 --- stock-framework/smali/android/net/wifi/WifiInfo.smali 2013-01-09 02:53:01.551624231 -0600
9894 +++ opd-framework/smali/android/net/wifi/WifiInfo.smali 2013-01-09 02:52:41.187523254 -0600
9895 @@ -265,6 +265,44 @@
9896 return-void
9897 .end method
9899 +.method public constructor <init>(Z)V
9900 + .registers 4
9902 + const/4 v1, -0x1
9904 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
9906 + const-string v0, ""
9908 + invoke-static {v0}, Landroid/net/wifi/WifiSsid;->createFromAsciiEncoded(Ljava/lang/String;)Landroid/net/wifi/WifiSsid;
9910 + move-result-object v0
9912 + iput-object v0, p0, Landroid/net/wifi/WifiInfo;->mWifiSsid:Landroid/net/wifi/WifiSsid;
9914 + const-string v0, ""
9916 + iput-object v0, p0, Landroid/net/wifi/WifiInfo;->mBSSID:Ljava/lang/String;
9918 + iput v1, p0, Landroid/net/wifi/WifiInfo;->mNetworkId:I
9920 + sget-object v0, Landroid/net/wifi/SupplicantState;->UNINITIALIZED:Landroid/net/wifi/SupplicantState;
9922 + iput-object v0, p0, Landroid/net/wifi/WifiInfo;->mSupplicantState:Landroid/net/wifi/SupplicantState;
9924 + const/16 v0, -0x270f
9926 + iput v0, p0, Landroid/net/wifi/WifiInfo;->mRssi:I
9928 + iput v1, p0, Landroid/net/wifi/WifiInfo;->mLinkSpeed:I
9930 + const/4 v0, 0x0
9932 + iput-boolean v0, p0, Landroid/net/wifi/WifiInfo;->mHiddenSSID:Z
9934 + return-void
9935 +.end method
9937 .method static synthetic access$002(Landroid/net/wifi/WifiInfo;Landroid/net/wifi/WifiSsid;)Landroid/net/wifi/WifiSsid;
9938 .registers 2
9940 diff -Npru stock-framework/smali/android/net/wifi/WifiStateMachine.smali opd-framework/smali/android/net/wifi/WifiStateMachine.smali
9941 --- stock-framework/smali/android/net/wifi/WifiStateMachine.smali 2013-01-09 02:53:01.623624587 -0600
9942 +++ opd-framework/smali/android/net/wifi/WifiStateMachine.smali 2013-01-09 02:52:41.243523532 -0600
9943 @@ -6758,7 +6758,7 @@
9945 invoke-virtual {v2, v0}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
9947 - const-string v2, "mSuspendOptNeedsDisabled "
9948 + const-string/jumbo v2, "mSuspendOptNeedsDisabled "
9950 invoke-virtual {v1, v2}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
9952 diff -Npru stock-framework/smali/android/os/Looper.smali opd-framework/smali/android/os/Looper.smali
9953 --- stock-framework/smali/android/os/Looper.smali 2013-01-09 02:53:01.871625821 -0600
9954 +++ opd-framework/smali/android/os/Looper.smali 2013-01-09 02:52:41.467524639 -0600
9955 @@ -473,7 +473,7 @@
9957 invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
9959 - const-string v5, "mThread="
9960 + const-string/jumbo v5, "mThread="
9962 invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9964 @@ -503,11 +503,11 @@
9966 iget-object v4, p0, Landroid/os/Looper;->mQueue:Landroid/os/MessageQueue;
9968 - if-eqz v4, :cond_92
9969 + if-eqz v4, :cond_93
9971 iget-object v4, p0, Landroid/os/Looper;->mQueue:Landroid/os/MessageQueue;
9973 - :goto_4c
9974 + :goto_4d
9975 invoke-virtual {v5, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
9977 move-result-object v4
9978 @@ -520,13 +520,13 @@
9980 iget-object v4, p0, Landroid/os/Looper;->mQueue:Landroid/os/MessageQueue;
9982 - if-eqz v4, :cond_b2
9983 + if-eqz v4, :cond_b3
9985 iget-object v5, p0, Landroid/os/Looper;->mQueue:Landroid/os/MessageQueue;
9987 monitor-enter v5
9989 - :try_start_5e
9990 + :try_start_5f
9991 invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J
9993 move-result-wide v2
9994 @@ -537,8 +537,8 @@
9996 const/4 v1, 0x0
9998 - :goto_67
9999 - if-eqz v0, :cond_95
10000 + :goto_68
10001 + if-eqz v0, :cond_96
10003 new-instance v4, Ljava/lang/StringBuilder;
10005 @@ -577,18 +577,18 @@
10006 add-int/lit8 v1, v1, 0x1
10008 iget-object v0, v0, Landroid/os/Message;->next:Landroid/os/Message;
10009 - :try_end_91
10010 - .catchall {:try_start_5e .. :try_end_91} :catchall_b3
10011 + :try_end_92
10012 + .catchall {:try_start_5f .. :try_end_92} :catchall_b4
10014 - goto :goto_67
10015 + goto :goto_68
10017 - :cond_92
10018 + :cond_93
10019 const-string v4, "(null"
10021 - goto :goto_4c
10022 + goto :goto_4d
10024 - :cond_95
10025 - :try_start_95
10026 + :cond_96
10027 + :try_start_96
10028 new-instance v4, Ljava/lang/StringBuilder;
10030 invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
10031 @@ -617,15 +617,15 @@
10033 monitor-exit v5
10035 - :cond_b2
10036 + :cond_b3
10037 return-void
10039 - :catchall_b3
10040 + :catchall_b4
10041 move-exception v4
10043 monitor-exit v5
10044 - :try_end_b5
10045 - .catchall {:try_start_95 .. :try_end_b5} :catchall_b3
10046 + :try_end_b6
10047 + .catchall {:try_start_96 .. :try_end_b6} :catchall_b4
10049 throw v4
10050 .end method
10051 diff -Npru stock-framework/smali/android/os/SystemProperties.smali opd-framework/smali/android/os/SystemProperties.smali
10052 --- stock-framework/smali/android/os/SystemProperties.smali 2013-01-09 02:53:01.927626099 -0600
10053 +++ opd-framework/smali/android/os/SystemProperties.smali 2013-01-09 02:52:41.523524920 -0600
10054 @@ -4,10 +4,26 @@
10057 # static fields
10058 +.field private static final GOT_ERROR:I = -0x3
10060 +.field private static final IS_ALLOWED:I = -0x1
10062 +.field private static final IS_NOT_ALLOWED:I = -0x2
10064 +.field private static final PRIVACY_TAG:Ljava/lang/String; = "SystemProperties"
10066 .field public static final PROP_NAME_MAX:I = 0x1f
10068 .field public static final PROP_VALUE_MAX:I = 0x5b
10070 +.field private static context:Landroid/content/Context;
10072 +.field private static mPm:Landroid/content/pm/IPackageManager;
10074 +.field private static pSetMan:Landroid/privacy/PrivacySettingsManager;
10076 +.field private static privacyMode:Z
10078 .field private static final sChangeCallbacks:Ljava/util/ArrayList;
10079 .annotation system Ldalvik/annotation/Signature;
10080 value = {
10081 @@ -30,6 +46,10 @@
10083 sput-object v0, Landroid/os/SystemProperties;->sChangeCallbacks:Ljava/util/ArrayList;
10085 + const/4 v0, 0x0
10087 + sput-boolean v0, Landroid/os/SystemProperties;->privacyMode:Z
10089 return-void
10090 .end method
10092 @@ -142,6 +162,205 @@
10093 throw v2
10094 .end method
10096 +.method private static checkIfPackagesAllowed()I
10097 + .registers 8
10099 + const/4 v5, -0x3
10101 + :try_start_1
10102 + sget-object v6, Landroid/os/SystemProperties;->pSetMan:Landroid/privacy/PrivacySettingsManager;
10104 + if-eqz v6, :cond_41
10106 + const/4 v2, 0x0
10108 + invoke-static {}, Landroid/os/SystemProperties;->getPackageName()[Ljava/lang/String;
10110 + move-result-object v3
10112 + invoke-static {}, Landroid/os/Process;->myUid()I
10114 + move-result v4
10116 + if-eqz v3, :cond_2c
10118 + const/4 v1, 0x0
10120 + :goto_11
10121 + array-length v6, v3
10123 + if-ge v1, v6, :cond_2a
10125 + sget-object v6, Landroid/os/SystemProperties;->pSetMan:Landroid/privacy/PrivacySettingsManager;
10127 + aget-object v7, v3, v1
10129 + invoke-virtual {v6, v7, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
10131 + move-result-object v2
10133 + if-eqz v2, :cond_26
10135 + invoke-virtual {v2}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
10137 + move-result v6
10139 + if-eqz v6, :cond_26
10141 + const/4 v5, -0x2
10143 + :goto_25
10144 + return v5
10146 + :cond_26
10147 + const/4 v2, 0x0
10149 + add-int/lit8 v1, v1, 0x1
10151 + goto :goto_11
10153 + :cond_2a
10154 + const/4 v5, -0x1
10156 + goto :goto_25
10158 + :cond_2c
10159 + const-string v6, "SystemProperties"
10161 + const-string/jumbo v7, "return GOT_ERROR, because package_names are NULL"
10163 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
10164 + :try_end_34
10165 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_34} :catch_35
10167 + goto :goto_25
10169 + :catch_35
10170 + move-exception v0
10172 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
10174 + const-string v6, "SystemProperties"
10176 + const-string v7, "Got exception in checkIfPackagesAllowed"
10178 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
10180 + goto :goto_25
10182 + :cond_41
10183 + :try_start_41
10184 + const-string v6, "SystemProperties"
10186 + const-string/jumbo v7, "return GOT_ERROR, because pSetMan is NULL"
10188 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
10189 + :try_end_49
10190 + .catch Ljava/lang/Exception; {:try_start_41 .. :try_end_49} :catch_35
10192 + goto :goto_25
10193 +.end method
10195 +.method private static dataAccess(Z)V
10196 + .registers 6
10198 + invoke-static {}, Landroid/os/SystemProperties;->getPackageName()[Ljava/lang/String;
10200 + move-result-object v1
10202 + if-eqz p0, :cond_2f
10204 + if-eqz v1, :cond_2f
10206 + const/4 v0, 0x0
10208 + :goto_9
10209 + array-length v2, v1
10211 + if-ge v0, v2, :cond_58
10213 + const-string v2, "SystemProperties"
10215 + new-instance v3, Ljava/lang/StringBuilder;
10217 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
10219 + const-string v4, "Allowed Package: -"
10221 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
10223 + move-result-object v3
10225 + aget-object v4, v1, v0
10227 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
10229 + move-result-object v3
10231 + const-string v4, "- accessing networkinfo."
10233 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
10235 + move-result-object v3
10237 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
10239 + move-result-object v3
10241 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
10243 + add-int/lit8 v0, v0, 0x1
10245 + goto :goto_9
10247 + :cond_2f
10248 + if-eqz v1, :cond_58
10250 + const/4 v0, 0x0
10252 + :goto_32
10253 + array-length v2, v1
10255 + if-ge v0, v2, :cond_58
10257 + const-string v2, "SystemProperties"
10259 + new-instance v3, Ljava/lang/StringBuilder;
10261 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
10263 + const-string v4, "Blocked Package: -"
10265 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
10267 + move-result-object v3
10269 + aget-object v4, v1, v0
10271 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
10273 + move-result-object v3
10275 + const-string v4, "- accessing networkinfo."
10277 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
10279 + move-result-object v3
10281 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
10283 + move-result-object v3
10285 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
10287 + add-int/lit8 v0, v0, 0x1
10289 + goto :goto_32
10291 + :cond_58
10292 + return-void
10293 +.end method
10295 .method public static get(Ljava/lang/String;)Ljava/lang/String;
10296 .registers 3
10298 @@ -162,11 +381,53 @@
10299 throw v0
10301 :cond_10
10302 + const-string v0, "gsm.operator.alpha"
10304 + invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
10306 + move-result v0
10308 + if-nez v0, :cond_20
10310 + const-string v0, "gsm.operator.numeric"
10312 + invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
10314 + move-result v0
10316 + if-eqz v0, :cond_35
10318 + :cond_20
10319 + invoke-static {}, Landroid/os/SystemProperties;->initiate()V
10321 + invoke-static {}, Landroid/os/SystemProperties;->checkIfPackagesAllowed()I
10323 + move-result v0
10325 + const/4 v1, -0x2
10327 + if-ne v0, v1, :cond_31
10329 + const/4 v0, 0x0
10331 + invoke-static {v0}, Landroid/os/SystemProperties;->dataAccess(Z)V
10333 + const-string v0, ""
10335 + :goto_30
10336 + return-object v0
10338 + :cond_31
10339 + const/4 v0, 0x1
10341 + invoke-static {v0}, Landroid/os/SystemProperties;->dataAccess(Z)V
10343 + :cond_35
10344 invoke-static {p0}, Landroid/os/SystemProperties;->native_get(Ljava/lang/String;)Ljava/lang/String;
10346 move-result-object v0
10348 - return-object v0
10349 + goto :goto_30
10350 .end method
10352 .method public static get(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
10353 @@ -189,11 +450,53 @@
10354 throw v0
10356 :cond_10
10357 + const-string v0, "gsm.operator.alpha"
10359 + invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
10361 + move-result v0
10363 + if-nez v0, :cond_20
10365 + const-string v0, "gsm.operator.numeric"
10367 + invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
10369 + move-result v0
10371 + if-eqz v0, :cond_35
10373 + :cond_20
10374 + invoke-static {}, Landroid/os/SystemProperties;->initiate()V
10376 + invoke-static {}, Landroid/os/SystemProperties;->checkIfPackagesAllowed()I
10378 + move-result v0
10380 + const/4 v1, -0x2
10382 + if-ne v0, v1, :cond_31
10384 + const/4 v0, 0x0
10386 + invoke-static {v0}, Landroid/os/SystemProperties;->dataAccess(Z)V
10388 + const-string v0, ""
10390 + :goto_30
10391 + return-object v0
10393 + :cond_31
10394 + const/4 v0, 0x1
10396 + invoke-static {v0}, Landroid/os/SystemProperties;->dataAccess(Z)V
10398 + :cond_35
10399 invoke-static {p0, p1}, Landroid/os/SystemProperties;->native_get(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
10401 move-result-object v0
10403 - return-object v0
10404 + goto :goto_30
10405 .end method
10407 .method public static getBoolean(Ljava/lang/String;Z)Z
10408 @@ -376,6 +679,135 @@
10409 goto :goto_2c
10410 .end method
10412 +.method private static getPackageName()[Ljava/lang/String;
10413 + .registers 5
10415 + :try_start_0
10416 + sget-object v3, Landroid/os/SystemProperties;->mPm:Landroid/content/pm/IPackageManager;
10418 + if-eqz v3, :cond_f
10420 + invoke-static {}, Landroid/os/Process;->myUid()I
10422 + move-result v2
10424 + sget-object v3, Landroid/os/SystemProperties;->mPm:Landroid/content/pm/IPackageManager;
10426 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
10428 + move-result-object v1
10430 + :goto_e
10431 + return-object v1
10433 + :cond_f
10434 + const-string/jumbo v3, "package"
10436 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
10438 + move-result-object v3
10440 + invoke-static {v3}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
10442 + move-result-object v3
10444 + sput-object v3, Landroid/os/SystemProperties;->mPm:Landroid/content/pm/IPackageManager;
10446 + invoke-static {}, Landroid/os/Process;->myUid()I
10448 + move-result v2
10450 + sget-object v3, Landroid/os/SystemProperties;->mPm:Landroid/content/pm/IPackageManager;
10452 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
10453 + :try_end_25
10454 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_25} :catch_27
10456 + move-result-object v1
10458 + goto :goto_e
10460 + :catch_27
10461 + move-exception v0
10463 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
10465 + const-string v3, "SystemProperties"
10467 + const-string/jumbo v4, "something went wrong with getting package name"
10469 + invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
10471 + const/4 v1, 0x0
10473 + goto :goto_e
10474 +.end method
10476 +.method private static initiate()V
10477 + .registers 4
10479 + const/4 v1, 0x0
10481 + :try_start_1
10482 + sput-object v1, Landroid/os/SystemProperties;->context:Landroid/content/Context;
10484 + new-instance v1, Landroid/privacy/PrivacySettingsManager;
10486 + sget-object v2, Landroid/os/SystemProperties;->context:Landroid/content/Context;
10488 + const-string/jumbo v3, "privacy"
10490 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
10492 + move-result-object v3
10494 + invoke-static {v3}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
10496 + move-result-object v3
10498 + invoke-direct {v1, v2, v3}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
10500 + sput-object v1, Landroid/os/SystemProperties;->pSetMan:Landroid/privacy/PrivacySettingsManager;
10502 + const-string/jumbo v1, "package"
10504 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
10506 + move-result-object v1
10508 + invoke-static {v1}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
10510 + move-result-object v1
10512 + sput-object v1, Landroid/os/SystemProperties;->mPm:Landroid/content/pm/IPackageManager;
10514 + const/4 v1, 0x1
10516 + sput-boolean v1, Landroid/os/SystemProperties;->privacyMode:Z
10517 + :try_end_27
10518 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_27} :catch_28
10520 + :goto_27
10521 + return-void
10523 + :catch_28
10524 + move-exception v0
10526 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
10528 + const-string v1, "SystemProperties"
10530 + const-string v2, "Something went wrong with initalize variables"
10532 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
10534 + const/4 v1, 0x0
10536 + sput-boolean v1, Landroid/os/SystemProperties;->privacyMode:Z
10538 + goto :goto_27
10539 +.end method
10541 .method private static native native_add_change_callback()V
10542 .end method
10544 diff -Npru stock-framework/smali/android/privacy/IPrivacySettingsManager.smali opd-framework/smali/android/privacy/IPrivacySettingsManager.smali
10545 --- stock-framework/smali/android/privacy/IPrivacySettingsManager.smali 1969-12-31 18:00:00.000000000 -0600
10546 +++ opd-framework/smali/android/privacy/IPrivacySettingsManager.smali 2013-01-09 02:52:41.627525436 -0600
10547 @@ -0,0 +1,104 @@
10548 +.class public interface abstract Landroid/privacy/IPrivacySettingsManager;
10549 +.super Ljava/lang/Object;
10550 +.source "IPrivacySettingsManager.java"
10552 +# interfaces
10553 +.implements Landroid/os/IInterface;
10556 +# annotations
10557 +.annotation system Ldalvik/annotation/MemberClasses;
10558 + value = {
10559 + Landroid/privacy/IPrivacySettingsManager$Stub;
10561 +.end annotation
10564 +# virtual methods
10565 +.method public abstract addObserver(Ljava/lang/String;)V
10566 + .annotation system Ldalvik/annotation/Throws;
10567 + value = {
10568 + Landroid/os/RemoteException;
10570 + .end annotation
10571 +.end method
10573 +.method public abstract deleteSettings(Ljava/lang/String;)Z
10574 + .annotation system Ldalvik/annotation/Throws;
10575 + value = {
10576 + Landroid/os/RemoteException;
10578 + .end annotation
10579 +.end method
10581 +.method public abstract getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
10582 + .annotation system Ldalvik/annotation/Throws;
10583 + value = {
10584 + Landroid/os/RemoteException;
10586 + .end annotation
10587 +.end method
10589 +.method public abstract getVersion()D
10590 + .annotation system Ldalvik/annotation/Throws;
10591 + value = {
10592 + Landroid/os/RemoteException;
10594 + .end annotation
10595 +.end method
10597 +.method public abstract notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
10598 + .annotation system Ldalvik/annotation/Throws;
10599 + value = {
10600 + Landroid/os/RemoteException;
10602 + .end annotation
10603 +.end method
10605 +.method public abstract purgeSettings()Z
10606 + .annotation system Ldalvik/annotation/Throws;
10607 + value = {
10608 + Landroid/os/RemoteException;
10610 + .end annotation
10611 +.end method
10613 +.method public abstract registerObservers()V
10614 + .annotation system Ldalvik/annotation/Throws;
10615 + value = {
10616 + Landroid/os/RemoteException;
10618 + .end annotation
10619 +.end method
10621 +.method public abstract saveSettings(Landroid/privacy/PrivacySettings;)Z
10622 + .annotation system Ldalvik/annotation/Throws;
10623 + value = {
10624 + Landroid/os/RemoteException;
10626 + .end annotation
10627 +.end method
10629 +.method public abstract setBootCompleted()V
10630 + .annotation system Ldalvik/annotation/Throws;
10631 + value = {
10632 + Landroid/os/RemoteException;
10634 + .end annotation
10635 +.end method
10637 +.method public abstract setEnabled(Z)Z
10638 + .annotation system Ldalvik/annotation/Throws;
10639 + value = {
10640 + Landroid/os/RemoteException;
10642 + .end annotation
10643 +.end method
10645 +.method public abstract setNotificationsEnabled(Z)Z
10646 + .annotation system Ldalvik/annotation/Throws;
10647 + value = {
10648 + Landroid/os/RemoteException;
10650 + .end annotation
10651 +.end method
10652 diff -Npru stock-framework/smali/android/privacy/IPrivacySettingsManager$Stub$Proxy.smali opd-framework/smali/android/privacy/IPrivacySettingsManager$Stub$Proxy.smali
10653 --- stock-framework/smali/android/privacy/IPrivacySettingsManager$Stub$Proxy.smali 1969-12-31 18:00:00.000000000 -0600
10654 +++ opd-framework/smali/android/privacy/IPrivacySettingsManager$Stub$Proxy.smali 2013-01-09 02:52:41.627525436 -0600
10655 @@ -0,0 +1,743 @@
10656 +.class Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;
10657 +.super Ljava/lang/Object;
10658 +.source "IPrivacySettingsManager.java"
10660 +# interfaces
10661 +.implements Landroid/privacy/IPrivacySettingsManager;
10664 +# annotations
10665 +.annotation system Ldalvik/annotation/EnclosingClass;
10666 + value = Landroid/privacy/IPrivacySettingsManager$Stub;
10667 +.end annotation
10669 +.annotation system Ldalvik/annotation/InnerClass;
10670 + accessFlags = 0xa
10671 + name = "Proxy"
10672 +.end annotation
10675 +# instance fields
10676 +.field private mRemote:Landroid/os/IBinder;
10679 +# direct methods
10680 +.method constructor <init>(Landroid/os/IBinder;)V
10681 + .registers 2
10683 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
10685 + iput-object p1, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
10687 + return-void
10688 +.end method
10691 +# virtual methods
10692 +.method public addObserver(Ljava/lang/String;)V
10693 + .registers 7
10694 + .annotation system Ldalvik/annotation/Throws;
10695 + value = {
10696 + Landroid/os/RemoteException;
10698 + .end annotation
10700 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10702 + move-result-object v0
10704 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10706 + move-result-object v1
10708 + :try_start_8
10709 + const-string v2, "android.privacy.IPrivacySettingsManager"
10711 + invoke-virtual {v0, v2}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
10713 + invoke-virtual {v0, p1}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
10715 + iget-object v2, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
10717 + const/4 v3, 0x6
10719 + const/4 v4, 0x0
10721 + invoke-interface {v2, v3, v0, v1, v4}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
10723 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
10724 + :try_end_1a
10725 + .catchall {:try_start_8 .. :try_end_1a} :catchall_21
10727 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10729 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10731 + return-void
10733 + :catchall_21
10734 + move-exception v2
10736 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10738 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10740 + throw v2
10741 +.end method
10743 +.method public asBinder()Landroid/os/IBinder;
10744 + .registers 2
10746 + iget-object v0, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
10748 + return-object v0
10749 +.end method
10751 +.method public deleteSettings(Ljava/lang/String;)Z
10752 + .registers 8
10753 + .annotation system Ldalvik/annotation/Throws;
10754 + value = {
10755 + Landroid/os/RemoteException;
10757 + .end annotation
10759 + const/4 v2, 0x0
10761 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10763 + move-result-object v0
10765 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10767 + move-result-object v1
10769 + :try_start_9
10770 + const-string v3, "android.privacy.IPrivacySettingsManager"
10772 + invoke-virtual {v0, v3}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
10774 + invoke-virtual {v0, p1}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
10776 + iget-object v3, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
10778 + const/4 v4, 0x3
10780 + const/4 v5, 0x0
10782 + invoke-interface {v3, v4, v0, v1, v5}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
10784 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
10786 + invoke-virtual {v1}, Landroid/os/Parcel;->readInt()I
10787 + :try_end_1e
10788 + .catchall {:try_start_9 .. :try_end_1e} :catchall_29
10790 + move-result v3
10792 + if-eqz v3, :cond_22
10794 + const/4 v2, 0x1
10796 + :cond_22
10797 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10799 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10801 + return v2
10803 + :catchall_29
10804 + move-exception v3
10806 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10808 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10810 + throw v3
10811 +.end method
10813 +.method public getInterfaceDescriptor()Ljava/lang/String;
10814 + .registers 2
10816 + const-string v0, "android.privacy.IPrivacySettingsManager"
10818 + return-object v0
10819 +.end method
10821 +.method public getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
10822 + .registers 8
10823 + .annotation system Ldalvik/annotation/Throws;
10824 + value = {
10825 + Landroid/os/RemoteException;
10827 + .end annotation
10829 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10831 + move-result-object v0
10833 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10835 + move-result-object v1
10837 + :try_start_8
10838 + const-string v3, "android.privacy.IPrivacySettingsManager"
10840 + invoke-virtual {v0, v3}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
10842 + invoke-virtual {v0, p1}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
10844 + iget-object v3, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
10846 + const/4 v4, 0x1
10848 + const/4 v5, 0x0
10850 + invoke-interface {v3, v4, v0, v1, v5}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
10852 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
10854 + invoke-virtual {v1}, Landroid/os/Parcel;->readInt()I
10856 + move-result v3
10858 + if-eqz v3, :cond_2f
10860 + sget-object v3, Landroid/privacy/PrivacySettings;->CREATOR:Landroid/os/Parcelable$Creator;
10862 + invoke-interface {v3, v1}, Landroid/os/Parcelable$Creator;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
10864 + move-result-object v2
10866 + check-cast v2, Landroid/privacy/PrivacySettings;
10867 + :try_end_28
10868 + .catchall {:try_start_8 .. :try_end_28} :catchall_31
10870 + :goto_28
10871 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10873 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10875 + return-object v2
10877 + :cond_2f
10878 + const/4 v2, 0x0
10880 + goto :goto_28
10882 + :catchall_31
10883 + move-exception v3
10885 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10887 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10889 + throw v3
10890 +.end method
10892 +.method public getVersion()D
10893 + .registers 8
10894 + .annotation system Ldalvik/annotation/Throws;
10895 + value = {
10896 + Landroid/os/RemoteException;
10898 + .end annotation
10900 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10902 + move-result-object v0
10904 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10906 + move-result-object v1
10908 + :try_start_8
10909 + const-string v4, "android.privacy.IPrivacySettingsManager"
10911 + invoke-virtual {v0, v4}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
10913 + iget-object v4, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
10915 + const/16 v5, 0x8
10917 + const/4 v6, 0x0
10919 + invoke-interface {v4, v5, v0, v1, v6}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
10921 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
10923 + invoke-virtual {v1}, Landroid/os/Parcel;->readDouble()D
10924 + :try_end_1b
10925 + .catchall {:try_start_8 .. :try_end_1b} :catchall_23
10927 + move-result-wide v2
10929 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10931 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10933 + return-wide v2
10935 + :catchall_23
10936 + move-exception v4
10938 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10940 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10942 + throw v4
10943 +.end method
10945 +.method public notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
10946 + .registers 10
10947 + .annotation system Ldalvik/annotation/Throws;
10948 + value = {
10949 + Landroid/os/RemoteException;
10951 + .end annotation
10953 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10955 + move-result-object v0
10957 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10959 + move-result-object v1
10961 + :try_start_8
10962 + const-string v2, "android.privacy.IPrivacySettingsManager"
10964 + invoke-virtual {v0, v2}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
10966 + invoke-virtual {v0, p1}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
10968 + invoke-virtual {v0, p2}, Landroid/os/Parcel;->writeByte(B)V
10970 + invoke-virtual {v0, p3}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
10972 + invoke-virtual {v0, p4}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
10974 + iget-object v2, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
10976 + const/4 v3, 0x4
10978 + const/4 v4, 0x0
10980 + invoke-interface {v2, v3, v0, v1, v4}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
10982 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
10983 + :try_end_23
10984 + .catchall {:try_start_8 .. :try_end_23} :catchall_2a
10986 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10988 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10990 + return-void
10992 + :catchall_2a
10993 + move-exception v2
10995 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10997 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10999 + throw v2
11000 +.end method
11002 +.method public purgeSettings()Z
11003 + .registers 7
11004 + .annotation system Ldalvik/annotation/Throws;
11005 + value = {
11006 + Landroid/os/RemoteException;
11008 + .end annotation
11010 + const/4 v2, 0x0
11012 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
11014 + move-result-object v0
11016 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
11018 + move-result-object v1
11020 + :try_start_9
11021 + const-string v3, "android.privacy.IPrivacySettingsManager"
11023 + invoke-virtual {v0, v3}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
11025 + iget-object v3, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
11027 + const/4 v4, 0x7
11029 + const/4 v5, 0x0
11031 + invoke-interface {v3, v4, v0, v1, v5}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
11033 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
11035 + invoke-virtual {v1}, Landroid/os/Parcel;->readInt()I
11036 + :try_end_1b
11037 + .catchall {:try_start_9 .. :try_end_1b} :catchall_26
11039 + move-result v3
11041 + if-eqz v3, :cond_1f
11043 + const/4 v2, 0x1
11045 + :cond_1f
11046 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
11048 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
11050 + return v2
11052 + :catchall_26
11053 + move-exception v3
11055 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
11057 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
11059 + throw v3
11060 +.end method
11062 +.method public registerObservers()V
11063 + .registers 6
11064 + .annotation system Ldalvik/annotation/Throws;
11065 + value = {
11066 + Landroid/os/RemoteException;
11068 + .end annotation
11070 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
11072 + move-result-object v0
11074 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
11076 + move-result-object v1
11078 + :try_start_8
11079 + const-string v2, "android.privacy.IPrivacySettingsManager"
11081 + invoke-virtual {v0, v2}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
11083 + iget-object v2, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
11085 + const/4 v3, 0x5
11087 + const/4 v4, 0x0
11089 + invoke-interface {v2, v3, v0, v1, v4}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
11091 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
11092 + :try_end_17
11093 + .catchall {:try_start_8 .. :try_end_17} :catchall_1e
11095 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
11097 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
11099 + return-void
11101 + :catchall_1e
11102 + move-exception v2
11104 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
11106 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
11108 + throw v2
11109 +.end method
11111 +.method public saveSettings(Landroid/privacy/PrivacySettings;)Z
11112 + .registers 9
11113 + .annotation system Ldalvik/annotation/Throws;
11114 + value = {
11115 + Landroid/os/RemoteException;
11117 + .end annotation
11119 + const/4 v2, 0x1
11121 + const/4 v3, 0x0
11123 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
11125 + move-result-object v0
11127 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
11129 + move-result-object v1
11131 + :try_start_a
11132 + const-string v4, "android.privacy.IPrivacySettingsManager"
11134 + invoke-virtual {v0, v4}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
11136 + if-eqz p1, :cond_30
11138 + const/4 v4, 0x1
11140 + invoke-virtual {v0, v4}, Landroid/os/Parcel;->writeInt(I)V
11142 + const/4 v4, 0x0
11144 + invoke-virtual {p1, v0, v4}, Landroid/privacy/PrivacySettings;->writeToParcel(Landroid/os/Parcel;I)V
11146 + :goto_19
11147 + iget-object v4, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
11149 + const/4 v5, 0x2
11151 + const/4 v6, 0x0
11153 + invoke-interface {v4, v5, v0, v1, v6}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
11155 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
11157 + invoke-virtual {v1}, Landroid/os/Parcel;->readInt()I
11158 + :try_end_26
11159 + .catchall {:try_start_a .. :try_end_26} :catchall_35
11161 + move-result v4
11163 + if-eqz v4, :cond_3d
11165 + :goto_29
11166 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
11168 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
11170 + return v2
11172 + :cond_30
11173 + const/4 v4, 0x0
11175 + :try_start_31
11176 + invoke-virtual {v0, v4}, Landroid/os/Parcel;->writeInt(I)V
11177 + :try_end_34
11178 + .catchall {:try_start_31 .. :try_end_34} :catchall_35
11180 + goto :goto_19
11182 + :catchall_35
11183 + move-exception v3
11185 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
11187 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
11189 + throw v3
11191 + :cond_3d
11192 + move v2, v3
11194 + goto :goto_29
11195 +.end method
11197 +.method public setBootCompleted()V
11198 + .registers 6
11199 + .annotation system Ldalvik/annotation/Throws;
11200 + value = {
11201 + Landroid/os/RemoteException;
11203 + .end annotation
11205 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
11207 + move-result-object v0
11209 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
11211 + move-result-object v1
11213 + :try_start_8
11214 + const-string v2, "android.privacy.IPrivacySettingsManager"
11216 + invoke-virtual {v0, v2}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
11218 + iget-object v2, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
11220 + const/16 v3, 0xb
11222 + const/4 v4, 0x0
11224 + invoke-interface {v2, v3, v0, v1, v4}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
11226 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
11227 + :try_end_18
11228 + .catchall {:try_start_8 .. :try_end_18} :catchall_1f
11230 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
11232 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
11234 + return-void
11236 + :catchall_1f
11237 + move-exception v2
11239 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
11241 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
11243 + throw v2
11244 +.end method
11246 +.method public setEnabled(Z)Z
11247 + .registers 9
11248 + .annotation system Ldalvik/annotation/Throws;
11249 + value = {
11250 + Landroid/os/RemoteException;
11252 + .end annotation
11254 + const/4 v2, 0x1
11256 + const/4 v3, 0x0
11258 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
11260 + move-result-object v0
11262 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
11264 + move-result-object v1
11266 + :try_start_a
11267 + const-string v4, "android.privacy.IPrivacySettingsManager"
11269 + invoke-virtual {v0, v4}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
11271 + if-eqz p1, :cond_2d
11273 + move v4, v2
11275 + :goto_12
11276 + invoke-virtual {v0, v4}, Landroid/os/Parcel;->writeInt(I)V
11278 + iget-object v4, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
11280 + const/16 v5, 0x9
11282 + const/4 v6, 0x0
11284 + invoke-interface {v4, v5, v0, v1, v6}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
11286 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
11288 + invoke-virtual {v1}, Landroid/os/Parcel;->readInt()I
11289 + :try_end_23
11290 + .catchall {:try_start_a .. :try_end_23} :catchall_31
11292 + move-result v4
11294 + if-eqz v4, :cond_2f
11296 + :goto_26
11297 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
11299 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
11301 + return v2
11303 + :cond_2d
11304 + move v4, v3
11306 + goto :goto_12
11308 + :cond_2f
11309 + move v2, v3
11311 + goto :goto_26
11313 + :catchall_31
11314 + move-exception v3
11316 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
11318 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
11320 + throw v3
11321 +.end method
11323 +.method public setNotificationsEnabled(Z)Z
11324 + .registers 9
11325 + .annotation system Ldalvik/annotation/Throws;
11326 + value = {
11327 + Landroid/os/RemoteException;
11329 + .end annotation
11331 + const/4 v2, 0x1
11333 + const/4 v3, 0x0
11335 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
11337 + move-result-object v0
11339 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
11341 + move-result-object v1
11343 + :try_start_a
11344 + const-string v4, "android.privacy.IPrivacySettingsManager"
11346 + invoke-virtual {v0, v4}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
11348 + if-eqz p1, :cond_2d
11350 + move v4, v2
11352 + :goto_12
11353 + invoke-virtual {v0, v4}, Landroid/os/Parcel;->writeInt(I)V
11355 + iget-object v4, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
11357 + const/16 v5, 0xa
11359 + const/4 v6, 0x0
11361 + invoke-interface {v4, v5, v0, v1, v6}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
11363 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
11365 + invoke-virtual {v1}, Landroid/os/Parcel;->readInt()I
11366 + :try_end_23
11367 + .catchall {:try_start_a .. :try_end_23} :catchall_31
11369 + move-result v4
11371 + if-eqz v4, :cond_2f
11373 + :goto_26
11374 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
11376 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
11378 + return v2
11380 + :cond_2d
11381 + move v4, v3
11383 + goto :goto_12
11385 + :cond_2f
11386 + move v2, v3
11388 + goto :goto_26
11390 + :catchall_31
11391 + move-exception v3
11393 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
11395 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
11397 + throw v3
11398 +.end method
11399 diff -Npru stock-framework/smali/android/privacy/IPrivacySettingsManager$Stub.smali opd-framework/smali/android/privacy/IPrivacySettingsManager$Stub.smali
11400 --- stock-framework/smali/android/privacy/IPrivacySettingsManager$Stub.smali 1969-12-31 18:00:00.000000000 -0600
11401 +++ opd-framework/smali/android/privacy/IPrivacySettingsManager$Stub.smali 2013-01-09 02:52:41.627525436 -0600
11402 @@ -0,0 +1,412 @@
11403 +.class public abstract Landroid/privacy/IPrivacySettingsManager$Stub;
11404 +.super Landroid/os/Binder;
11405 +.source "IPrivacySettingsManager.java"
11407 +# interfaces
11408 +.implements Landroid/privacy/IPrivacySettingsManager;
11411 +# annotations
11412 +.annotation system Ldalvik/annotation/EnclosingClass;
11413 + value = Landroid/privacy/IPrivacySettingsManager;
11414 +.end annotation
11416 +.annotation system Ldalvik/annotation/InnerClass;
11417 + accessFlags = 0x409
11418 + name = "Stub"
11419 +.end annotation
11421 +.annotation system Ldalvik/annotation/MemberClasses;
11422 + value = {
11423 + Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;
11425 +.end annotation
11428 +# static fields
11429 +.field private static final DESCRIPTOR:Ljava/lang/String; = "android.privacy.IPrivacySettingsManager"
11431 +.field static final TRANSACTION_addObserver:I = 0x6
11433 +.field static final TRANSACTION_deleteSettings:I = 0x3
11435 +.field static final TRANSACTION_getSettings:I = 0x1
11437 +.field static final TRANSACTION_getVersion:I = 0x8
11439 +.field static final TRANSACTION_notification:I = 0x4
11441 +.field static final TRANSACTION_purgeSettings:I = 0x7
11443 +.field static final TRANSACTION_registerObservers:I = 0x5
11445 +.field static final TRANSACTION_saveSettings:I = 0x2
11447 +.field static final TRANSACTION_setBootCompleted:I = 0xb
11449 +.field static final TRANSACTION_setEnabled:I = 0x9
11451 +.field static final TRANSACTION_setNotificationsEnabled:I = 0xa
11454 +# direct methods
11455 +.method public constructor <init>()V
11456 + .registers 2
11458 + invoke-direct {p0}, Landroid/os/Binder;-><init>()V
11460 + const-string v0, "android.privacy.IPrivacySettingsManager"
11462 + invoke-virtual {p0, p0, v0}, Landroid/privacy/IPrivacySettingsManager$Stub;->attachInterface(Landroid/os/IInterface;Ljava/lang/String;)V
11464 + return-void
11465 +.end method
11467 +.method public static asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
11468 + .registers 3
11470 + if-nez p0, :cond_4
11472 + const/4 v0, 0x0
11474 + :goto_3
11475 + return-object v0
11477 + :cond_4
11478 + const-string v1, "android.privacy.IPrivacySettingsManager"
11480 + invoke-interface {p0, v1}, Landroid/os/IBinder;->queryLocalInterface(Ljava/lang/String;)Landroid/os/IInterface;
11482 + move-result-object v0
11484 + if-eqz v0, :cond_13
11486 + instance-of v1, v0, Landroid/privacy/IPrivacySettingsManager;
11488 + if-eqz v1, :cond_13
11490 + check-cast v0, Landroid/privacy/IPrivacySettingsManager;
11492 + goto :goto_3
11494 + :cond_13
11495 + new-instance v0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;
11497 + invoke-direct {v0, p0}, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
11499 + goto :goto_3
11500 +.end method
11503 +# virtual methods
11504 +.method public asBinder()Landroid/os/IBinder;
11505 + .registers 1
11507 + return-object p0
11508 +.end method
11510 +.method public onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
11511 + .registers 14
11512 + .annotation system Ldalvik/annotation/Throws;
11513 + value = {
11514 + Landroid/os/RemoteException;
11516 + .end annotation
11518 + const/4 v6, 0x0
11520 + const/4 v7, 0x1
11522 + sparse-switch p1, :sswitch_data_10e
11524 + invoke-super {p0, p1, p2, p3, p4}, Landroid/os/Binder;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
11526 + move-result v7
11528 + :goto_9
11529 + return v7
11531 + :sswitch_a
11532 + const-string v6, "android.privacy.IPrivacySettingsManager"
11534 + invoke-virtual {p3, v6}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
11536 + goto :goto_9
11538 + :sswitch_10
11539 + const-string v8, "android.privacy.IPrivacySettingsManager"
11541 + invoke-virtual {p2, v8}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
11543 + invoke-virtual {p2}, Landroid/os/Parcel;->readString()Ljava/lang/String;
11545 + move-result-object v0
11547 + invoke-virtual {p0, v0}, Landroid/privacy/IPrivacySettingsManager$Stub;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
11549 + move-result-object v4
11551 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
11553 + if-eqz v4, :cond_29
11555 + invoke-virtual {p3, v7}, Landroid/os/Parcel;->writeInt(I)V
11557 + invoke-virtual {v4, p3, v7}, Landroid/privacy/PrivacySettings;->writeToParcel(Landroid/os/Parcel;I)V
11559 + goto :goto_9
11561 + :cond_29
11562 + invoke-virtual {p3, v6}, Landroid/os/Parcel;->writeInt(I)V
11564 + goto :goto_9
11566 + :sswitch_2d
11567 + const-string v8, "android.privacy.IPrivacySettingsManager"
11569 + invoke-virtual {p2, v8}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
11571 + invoke-virtual {p2}, Landroid/os/Parcel;->readInt()I
11573 + move-result v8
11575 + if-eqz v8, :cond_4e
11577 + sget-object v8, Landroid/privacy/PrivacySettings;->CREATOR:Landroid/os/Parcelable$Creator;
11579 + invoke-interface {v8, p2}, Landroid/os/Parcelable$Creator;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
11581 + move-result-object v0
11583 + check-cast v0, Landroid/privacy/PrivacySettings;
11585 + :goto_40
11586 + invoke-virtual {p0, v0}, Landroid/privacy/IPrivacySettingsManager$Stub;->saveSettings(Landroid/privacy/PrivacySettings;)Z
11588 + move-result v4
11590 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
11592 + if-eqz v4, :cond_4a
11594 + move v6, v7
11596 + :cond_4a
11597 + invoke-virtual {p3, v6}, Landroid/os/Parcel;->writeInt(I)V
11599 + goto :goto_9
11601 + :cond_4e
11602 + const/4 v0, 0x0
11604 + goto :goto_40
11606 + :sswitch_50
11607 + const-string v8, "android.privacy.IPrivacySettingsManager"
11609 + invoke-virtual {p2, v8}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
11611 + invoke-virtual {p2}, Landroid/os/Parcel;->readString()Ljava/lang/String;
11613 + move-result-object v0
11615 + invoke-virtual {p0, v0}, Landroid/privacy/IPrivacySettingsManager$Stub;->deleteSettings(Ljava/lang/String;)Z
11617 + move-result v4
11619 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
11621 + if-eqz v4, :cond_63
11623 + move v6, v7
11625 + :cond_63
11626 + invoke-virtual {p3, v6}, Landroid/os/Parcel;->writeInt(I)V
11628 + goto :goto_9
11630 + :sswitch_67
11631 + const-string v6, "android.privacy.IPrivacySettingsManager"
11633 + invoke-virtual {p2, v6}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
11635 + invoke-virtual {p2}, Landroid/os/Parcel;->readString()Ljava/lang/String;
11637 + move-result-object v0
11639 + invoke-virtual {p2}, Landroid/os/Parcel;->readByte()B
11641 + move-result v1
11643 + invoke-virtual {p2}, Landroid/os/Parcel;->readString()Ljava/lang/String;
11645 + move-result-object v2
11647 + invoke-virtual {p2}, Landroid/os/Parcel;->readString()Ljava/lang/String;
11649 + move-result-object v3
11651 + invoke-virtual {p0, v0, v1, v2, v3}, Landroid/privacy/IPrivacySettingsManager$Stub;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
11653 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
11655 + goto :goto_9
11657 + :sswitch_83
11658 + const-string v6, "android.privacy.IPrivacySettingsManager"
11660 + invoke-virtual {p2, v6}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
11662 + invoke-virtual {p0}, Landroid/privacy/IPrivacySettingsManager$Stub;->registerObservers()V
11664 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
11666 + goto/16 :goto_9
11668 + :sswitch_90
11669 + const-string v6, "android.privacy.IPrivacySettingsManager"
11671 + invoke-virtual {p2, v6}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
11673 + invoke-virtual {p2}, Landroid/os/Parcel;->readString()Ljava/lang/String;
11675 + move-result-object v0
11677 + invoke-virtual {p0, v0}, Landroid/privacy/IPrivacySettingsManager$Stub;->addObserver(Ljava/lang/String;)V
11679 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
11681 + goto/16 :goto_9
11683 + :sswitch_a1
11684 + const-string v8, "android.privacy.IPrivacySettingsManager"
11686 + invoke-virtual {p2, v8}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
11688 + invoke-virtual {p0}, Landroid/privacy/IPrivacySettingsManager$Stub;->purgeSettings()Z
11690 + move-result v4
11692 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
11694 + if-eqz v4, :cond_b0
11696 + move v6, v7
11698 + :cond_b0
11699 + invoke-virtual {p3, v6}, Landroid/os/Parcel;->writeInt(I)V
11701 + goto/16 :goto_9
11703 + :sswitch_b5
11704 + const-string v6, "android.privacy.IPrivacySettingsManager"
11706 + invoke-virtual {p2, v6}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
11708 + invoke-virtual {p0}, Landroid/privacy/IPrivacySettingsManager$Stub;->getVersion()D
11710 + move-result-wide v4
11712 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
11714 + invoke-virtual {p3, v4, v5}, Landroid/os/Parcel;->writeDouble(D)V
11716 + goto/16 :goto_9
11718 + :sswitch_c6
11719 + const-string v8, "android.privacy.IPrivacySettingsManager"
11721 + invoke-virtual {p2, v8}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
11723 + invoke-virtual {p2}, Landroid/os/Parcel;->readInt()I
11725 + move-result v8
11727 + if-eqz v8, :cond_e1
11729 + move v0, v7
11731 + :goto_d2
11732 + invoke-virtual {p0, v0}, Landroid/privacy/IPrivacySettingsManager$Stub;->setEnabled(Z)Z
11734 + move-result v4
11736 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
11738 + if-eqz v4, :cond_dc
11740 + move v6, v7
11742 + :cond_dc
11743 + invoke-virtual {p3, v6}, Landroid/os/Parcel;->writeInt(I)V
11745 + goto/16 :goto_9
11747 + :cond_e1
11748 + move v0, v6
11750 + goto :goto_d2
11752 + :sswitch_e3
11753 + const-string v8, "android.privacy.IPrivacySettingsManager"
11755 + invoke-virtual {p2, v8}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
11757 + invoke-virtual {p2}, Landroid/os/Parcel;->readInt()I
11759 + move-result v8
11761 + if-eqz v8, :cond_fe
11763 + move v0, v7
11765 + :goto_ef
11766 + invoke-virtual {p0, v0}, Landroid/privacy/IPrivacySettingsManager$Stub;->setNotificationsEnabled(Z)Z
11768 + move-result v4
11770 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
11772 + if-eqz v4, :cond_f9
11774 + move v6, v7
11776 + :cond_f9
11777 + invoke-virtual {p3, v6}, Landroid/os/Parcel;->writeInt(I)V
11779 + goto/16 :goto_9
11781 + :cond_fe
11782 + move v0, v6
11784 + goto :goto_ef
11786 + :sswitch_100
11787 + const-string v6, "android.privacy.IPrivacySettingsManager"
11789 + invoke-virtual {p2, v6}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
11791 + invoke-virtual {p0}, Landroid/privacy/IPrivacySettingsManager$Stub;->setBootCompleted()V
11793 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
11795 + goto/16 :goto_9
11797 + nop
11799 + :sswitch_data_10e
11800 + .sparse-switch
11801 + 0x1 -> :sswitch_10
11802 + 0x2 -> :sswitch_2d
11803 + 0x3 -> :sswitch_50
11804 + 0x4 -> :sswitch_67
11805 + 0x5 -> :sswitch_83
11806 + 0x6 -> :sswitch_90
11807 + 0x7 -> :sswitch_a1
11808 + 0x8 -> :sswitch_b5
11809 + 0x9 -> :sswitch_c6
11810 + 0xa -> :sswitch_e3
11811 + 0xb -> :sswitch_100
11812 + 0x5f4e5446 -> :sswitch_a
11813 + .end sparse-switch
11814 +.end method
11815 diff -Npru stock-framework/smali/android/privacy/PrivacyFileObserver.smali opd-framework/smali/android/privacy/PrivacyFileObserver.smali
11816 --- stock-framework/smali/android/privacy/PrivacyFileObserver.smali 1969-12-31 18:00:00.000000000 -0600
11817 +++ opd-framework/smali/android/privacy/PrivacyFileObserver.smali 2013-01-09 02:52:41.627525436 -0600
11818 @@ -0,0 +1,272 @@
11819 +.class public final Landroid/privacy/PrivacyFileObserver;
11820 +.super Landroid/os/FileObserver;
11821 +.source "PrivacyFileObserver.java"
11824 +# static fields
11825 +.field public static final PACKAGE_PATH_INDEX:I = 0x3
11827 +.field public static final SETTINGS_TYPE_INDEX:I = 0x4
11829 +.field public static final TAG:Ljava/lang/String; = "PrivacyFileObserver"
11832 +# instance fields
11833 +.field public absolutePath:Ljava/lang/String;
11835 +.field public children:Ljava/util/HashMap;
11836 + .annotation system Ldalvik/annotation/Signature;
11837 + value = {
11838 + "Ljava/util/HashMap",
11839 + "<",
11840 + "Ljava/lang/String;",
11841 + "Landroid/privacy/PrivacyFileObserver;",
11842 + ">;"
11844 + .end annotation
11845 +.end field
11847 +.field private pSetManServ:Landroid/privacy/PrivacySettingsManagerService;
11850 +# direct methods
11851 +.method public constructor <init>(Ljava/lang/String;Landroid/privacy/PrivacySettingsManagerService;)V
11852 + .registers 12
11854 + const/16 v8, 0xfff
11856 + invoke-direct {p0, p1, v8}, Landroid/os/FileObserver;-><init>(Ljava/lang/String;I)V
11858 + iput-object p1, p0, Landroid/privacy/PrivacyFileObserver;->absolutePath:Ljava/lang/String;
11860 + iput-object p2, p0, Landroid/privacy/PrivacyFileObserver;->pSetManServ:Landroid/privacy/PrivacySettingsManagerService;
11862 + new-instance v8, Ljava/util/HashMap;
11864 + invoke-direct {v8}, Ljava/util/HashMap;-><init>()V
11866 + iput-object v8, p0, Landroid/privacy/PrivacyFileObserver;->children:Ljava/util/HashMap;
11868 + new-instance v7, Ljava/io/File;
11870 + iget-object v8, p0, Landroid/privacy/PrivacyFileObserver;->absolutePath:Ljava/lang/String;
11872 + invoke-direct {v7, v8}, Ljava/io/File;-><init>(Ljava/lang/String;)V
11874 + invoke-virtual {v7}, Ljava/io/File;->isDirectory()Z
11876 + move-result v8
11878 + if-eqz v8, :cond_42
11880 + invoke-virtual {v7}, Ljava/io/File;->listFiles()[Ljava/io/File;
11882 + move-result-object v6
11884 + move-object v0, v6
11886 + array-length v4, v0
11888 + const/4 v3, 0x0
11890 + :goto_24
11891 + if-ge v3, v4, :cond_42
11893 + aget-object v2, v0, v3
11895 + invoke-virtual {v2}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
11897 + move-result-object v5
11899 + new-instance v1, Landroid/privacy/PrivacyFileObserver;
11901 + invoke-direct {v1, v5, p2}, Landroid/privacy/PrivacyFileObserver;-><init>(Ljava/lang/String;Landroid/privacy/PrivacySettingsManagerService;)V
11903 + iget-object v8, p0, Landroid/privacy/PrivacyFileObserver;->children:Ljava/util/HashMap;
11905 + invoke-virtual {v8, v5, v1}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
11907 + invoke-virtual {v2}, Ljava/io/File;->isFile()Z
11909 + move-result v8
11911 + if-eqz v8, :cond_3f
11913 + invoke-virtual {v1}, Landroid/privacy/PrivacyFileObserver;->startWatching()V
11915 + :cond_3f
11916 + add-int/lit8 v3, v3, 0x1
11918 + goto :goto_24
11920 + :cond_42
11921 + return-void
11922 +.end method
11925 +# virtual methods
11926 +.method public addObserver(Ljava/lang/String;)V
11927 + .registers 6
11929 + new-instance v2, Ljava/lang/StringBuilder;
11931 + invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
11933 + iget-object v3, p0, Landroid/privacy/PrivacyFileObserver;->absolutePath:Ljava/lang/String;
11935 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
11937 + move-result-object v2
11939 + const-string v3, "/"
11941 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
11943 + move-result-object v2
11945 + invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
11947 + move-result-object v2
11949 + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
11951 + move-result-object v1
11953 + iget-object v2, p0, Landroid/privacy/PrivacyFileObserver;->children:Ljava/util/HashMap;
11955 + invoke-virtual {v2, v1}, Ljava/util/HashMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;
11957 + new-instance v0, Landroid/privacy/PrivacyFileObserver;
11959 + iget-object v2, p0, Landroid/privacy/PrivacyFileObserver;->pSetManServ:Landroid/privacy/PrivacySettingsManagerService;
11961 + invoke-direct {v0, v1, v2}, Landroid/privacy/PrivacyFileObserver;-><init>(Ljava/lang/String;Landroid/privacy/PrivacySettingsManagerService;)V
11963 + iget-object v2, p0, Landroid/privacy/PrivacyFileObserver;->children:Ljava/util/HashMap;
11965 + invoke-virtual {v2, v1, v0}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
11967 + return-void
11968 +.end method
11970 +.method public onEvent(ILjava/lang/String;)V
11971 + .registers 12
11973 + and-int/lit8 v5, p1, 0x1
11975 + if-eqz v5, :cond_48
11977 + new-instance v4, Ljava/util/StringTokenizer;
11979 + iget-object v5, p0, Landroid/privacy/PrivacyFileObserver;->absolutePath:Ljava/lang/String;
11981 + const-string v6, "/"
11983 + invoke-direct {v4, v5, v6}, Ljava/util/StringTokenizer;-><init>(Ljava/lang/String;Ljava/lang/String;)V
11985 + const/4 v0, 0x0
11987 + :goto_e
11988 + const/4 v5, 0x3
11990 + if-ge v0, v5, :cond_1d
11992 + invoke-virtual {v4}, Ljava/util/StringTokenizer;->hasMoreElements()Z
11994 + move-result v5
11996 + if-eqz v5, :cond_1d
11998 + invoke-virtual {v4}, Ljava/util/StringTokenizer;->nextToken()Ljava/lang/String;
12000 + add-int/lit8 v0, v0, 0x1
12002 + goto :goto_e
12004 + :cond_1d
12005 + invoke-virtual {v4}, Ljava/util/StringTokenizer;->nextToken()Ljava/lang/String;
12007 + move-result-object v2
12009 + const/4 v3, 0x0
12011 + invoke-virtual {v4}, Ljava/util/StringTokenizer;->hasMoreElements()Z
12013 + move-result v5
12015 + if-eqz v5, :cond_2c
12017 + invoke-virtual {v4}, Ljava/util/StringTokenizer;->nextToken()Ljava/lang/String;
12019 + move-result-object v3
12021 + :cond_2c
12022 + if-eqz v3, :cond_49
12024 + :try_start_2e
12025 + const-string v5, "ipTableProtectSetting"
12027 + invoke-virtual {v3, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
12029 + move-result v5
12031 + if-eqz v5, :cond_49
12033 + iget-object v5, p0, Landroid/privacy/PrivacyFileObserver;->pSetManServ:Landroid/privacy/PrivacySettingsManagerService;
12035 + invoke-virtual {v5, v2}, Landroid/privacy/PrivacySettingsManagerService;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
12037 + move-result-object v1
12039 + iget-object v5, p0, Landroid/privacy/PrivacyFileObserver;->pSetManServ:Landroid/privacy/PrivacySettingsManagerService;
12041 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getIpTableProtectSetting()B
12043 + move-result v6
12045 + const-string v7, "iptables"
12047 + const/4 v8, 0x0
12049 + invoke-virtual {v5, v2, v6, v7, v8}, Landroid/privacy/PrivacySettingsManagerService;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
12051 + :cond_48
12052 + :goto_48
12053 + return-void
12055 + :cond_49
12056 + iget-object v5, p0, Landroid/privacy/PrivacyFileObserver;->pSetManServ:Landroid/privacy/PrivacySettingsManagerService;
12058 + invoke-virtual {v5, v2}, Landroid/privacy/PrivacySettingsManagerService;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
12060 + move-result-object v1
12062 + iget-object v5, p0, Landroid/privacy/PrivacyFileObserver;->pSetManServ:Landroid/privacy/PrivacySettingsManagerService;
12064 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getSystemLogsSetting()B
12066 + move-result v6
12068 + const-string/jumbo v7, "systemLogs"
12070 + const/4 v8, 0x0
12072 + invoke-virtual {v5, v2, v6, v7, v8}, Landroid/privacy/PrivacySettingsManagerService;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
12073 + :try_end_5c
12074 + .catch Ljava/lang/Exception; {:try_start_2e .. :try_end_5c} :catch_5d
12076 + goto :goto_48
12078 + :catch_5d
12079 + move-exception v5
12081 + goto :goto_48
12082 +.end method
12084 +.method public startWatching()V
12085 + .registers 1
12087 + invoke-super {p0}, Landroid/os/FileObserver;->startWatching()V
12089 + return-void
12090 +.end method
12091 diff -Npru stock-framework/smali/android/privacy/PrivacyPersistenceAdapter.smali opd-framework/smali/android/privacy/PrivacyPersistenceAdapter.smali
12092 --- stock-framework/smali/android/privacy/PrivacyPersistenceAdapter.smali 1969-12-31 18:00:00.000000000 -0600
12093 +++ opd-framework/smali/android/privacy/PrivacyPersistenceAdapter.smali 2013-01-09 02:52:41.635525471 -0600
12094 @@ -0,0 +1,5005 @@
12095 +.class public final Landroid/privacy/PrivacyPersistenceAdapter;
12096 +.super Ljava/lang/Object;
12097 +.source "PrivacyPersistenceAdapter.java"
12100 +# static fields
12101 +.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) );"
12103 +.field private static final CREATE_TABLE_MAP:Ljava/lang/String; = "CREATE TABLE IF NOT EXISTS map ( name TEXT PRIMARY KEY, value TEXT );"
12105 +.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);"
12107 +.field private static final DATABASE_FIELDS:[Ljava/lang/String; = null
12109 +.field private static final DATABASE_FILE:Ljava/lang/String; = "/data/system/privacy.db"
12111 +.field private static final DATABASE_VERSION:I = 0x4
12113 +.field public static final DUMMY_UID:I = -0x1
12115 +.field private static final INSERT_ENABLED:Ljava/lang/String; = "INSERT OR REPLACE INTO map (name, value) VALUES (\"enabled\", \"1\");"
12117 +.field private static final INSERT_NOTIFICATIONS_ENABLED:Ljava/lang/String; = "INSERT OR REPLACE INTO map (name, value) VALUES (\"notifications_enabled\", \"1\");"
12119 +.field private static final INSERT_VERSION:Ljava/lang/String; = "INSERT OR REPLACE INTO map (name, value) VALUES (\"db_version\", 4);"
12121 +.field private static final LOG_LOCKING:Z = false
12123 +.field private static final RETRY_QUERY_COUNT:I = 0x5
12125 +.field public static final SETTINGS_DIRECTORY:Ljava/lang/String; = "/data/system/privacy"
12127 +.field public static final SETTING_DB_VERSION:Ljava/lang/String; = "db_version"
12129 +.field public static final SETTING_ENABLED:Ljava/lang/String; = "enabled"
12131 +.field public static final SETTING_NOTIFICATIONS_ENABLED:Ljava/lang/String; = "notifications_enabled"
12133 +.field private static final TABLE_ALLOWED_CONTACTS:Ljava/lang/String; = "allowed_contacts"
12135 +.field private static final TABLE_MAP:Ljava/lang/String; = "map"
12137 +.field private static final TABLE_SETTINGS:Ljava/lang/String; = "settings"
12139 +.field private static final TABLE_VERSION:Ljava/lang/String; = "version"
12141 +.field private static final TAG:Ljava/lang/String; = "PrivacyPersistenceAdapter"
12143 +.field public static final VALUE_FALSE:Ljava/lang/String; = "0"
12145 +.field public static final VALUE_TRUE:Ljava/lang/String; = "1"
12147 +.field public static volatile sDbAccessThreads:Ljava/lang/Integer;
12149 +.field private static sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
12151 +.field public static volatile sDbVersion:I
12154 +# instance fields
12155 +.field private mContext:Landroid/content/Context;
12157 +.field private mDb:Landroid/database/sqlite/SQLiteDatabase;
12160 +# direct methods
12161 +.method static constructor <clinit>()V
12162 + .registers 3
12164 + const/4 v2, 0x0
12166 + invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
12168 + move-result-object v0
12170 + sput-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
12172 + new-instance v0, Ljava/util/concurrent/locks/ReentrantReadWriteLock;
12174 + invoke-direct {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;-><init>()V
12176 + sput-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
12178 + const/16 v0, 0x2f
12180 + new-array v0, v0, [Ljava/lang/String;
12182 + const-string v1, "_id"
12184 + aput-object v1, v0, v2
12186 + const/4 v1, 0x1
12188 + const-string/jumbo v2, "packageName"
12190 + aput-object v2, v0, v1
12192 + const/4 v1, 0x2
12194 + const-string/jumbo v2, "uid"
12196 + aput-object v2, v0, v1
12198 + const/4 v1, 0x3
12200 + const-string v2, "deviceIdSetting"
12202 + aput-object v2, v0, v1
12204 + const/4 v1, 0x4
12206 + const-string v2, "deviceId"
12208 + aput-object v2, v0, v1
12210 + const/4 v1, 0x5
12212 + const-string v2, "line1NumberSetting"
12214 + aput-object v2, v0, v1
12216 + const/4 v1, 0x6
12218 + const-string v2, "line1Number"
12220 + aput-object v2, v0, v1
12222 + const/4 v1, 0x7
12224 + const-string v2, "locationGpsSetting"
12226 + aput-object v2, v0, v1
12228 + const/16 v1, 0x8
12230 + const-string v2, "locationGpsLat"
12232 + aput-object v2, v0, v1
12234 + const/16 v1, 0x9
12236 + const-string v2, "locationGpsLon"
12238 + aput-object v2, v0, v1
12240 + const/16 v1, 0xa
12242 + const-string v2, "locationNetworkSetting"
12244 + aput-object v2, v0, v1
12246 + const/16 v1, 0xb
12248 + const-string v2, "locationNetworkLat"
12250 + aput-object v2, v0, v1
12252 + const/16 v1, 0xc
12254 + const-string v2, "locationNetworkLon"
12256 + aput-object v2, v0, v1
12258 + const/16 v1, 0xd
12260 + const-string/jumbo v2, "networkInfoSetting"
12262 + aput-object v2, v0, v1
12264 + const/16 v1, 0xe
12266 + const-string/jumbo v2, "simInfoSetting"
12268 + aput-object v2, v0, v1
12270 + const/16 v1, 0xf
12272 + const-string/jumbo v2, "simSerialNumberSetting"
12274 + aput-object v2, v0, v1
12276 + const/16 v1, 0x10
12278 + const-string/jumbo v2, "simSerialNumber"
12280 + aput-object v2, v0, v1
12282 + const/16 v1, 0x11
12284 + const-string/jumbo v2, "subscriberIdSetting"
12286 + aput-object v2, v0, v1
12288 + const/16 v1, 0x12
12290 + const-string/jumbo v2, "subscriberId"
12292 + aput-object v2, v0, v1
12294 + const/16 v1, 0x13
12296 + const-string v2, "accountsSetting"
12298 + aput-object v2, v0, v1
12300 + const/16 v1, 0x14
12302 + const-string v2, "accountsAuthTokensSetting"
12304 + aput-object v2, v0, v1
12306 + const/16 v1, 0x15
12308 + const-string/jumbo v2, "outgoingCallsSetting"
12310 + aput-object v2, v0, v1
12312 + const/16 v1, 0x16
12314 + const-string v2, "incomingCallsSetting"
12316 + aput-object v2, v0, v1
12318 + const/16 v1, 0x17
12320 + const-string v2, "contactsSetting"
12322 + aput-object v2, v0, v1
12324 + const/16 v1, 0x18
12326 + const-string v2, "calendarSetting"
12328 + aput-object v2, v0, v1
12330 + const/16 v1, 0x19
12332 + const-string/jumbo v2, "mmsSetting"
12334 + aput-object v2, v0, v1
12336 + const/16 v1, 0x1a
12338 + const-string/jumbo v2, "smsSetting"
12340 + aput-object v2, v0, v1
12342 + const/16 v1, 0x1b
12344 + const-string v2, "callLogSetting"
12346 + aput-object v2, v0, v1
12348 + const/16 v1, 0x1c
12350 + const-string v2, "bookmarksSetting"
12352 + aput-object v2, v0, v1
12354 + const/16 v1, 0x1d
12356 + const-string/jumbo v2, "systemLogsSetting"
12358 + aput-object v2, v0, v1
12360 + const/16 v1, 0x1e
12362 + const-string v2, "externalStorageSetting"
12364 + aput-object v2, v0, v1
12366 + const/16 v1, 0x1f
12368 + const-string v2, "cameraSetting"
12370 + aput-object v2, v0, v1
12372 + const/16 v1, 0x20
12374 + const-string/jumbo v2, "recordAudioSetting"
12376 + aput-object v2, v0, v1
12378 + const/16 v1, 0x21
12380 + const-string/jumbo v2, "notificationSetting"
12382 + aput-object v2, v0, v1
12384 + const/16 v1, 0x22
12386 + const-string v2, "intentBootCompletedSetting"
12388 + aput-object v2, v0, v1
12390 + const/16 v1, 0x23
12392 + const-string/jumbo v2, "smsSendSetting"
12394 + aput-object v2, v0, v1
12396 + const/16 v1, 0x24
12398 + const-string/jumbo v2, "phoneCallSetting"
12400 + aput-object v2, v0, v1
12402 + const/16 v1, 0x25
12404 + const-string v2, "ipTableProtectSetting"
12406 + aput-object v2, v0, v1
12408 + const/16 v1, 0x26
12410 + const-string v2, "iccAccessSetting"
12412 + aput-object v2, v0, v1
12414 + const/16 v1, 0x27
12416 + const-string v2, "addOnManagementSetting"
12418 + aput-object v2, v0, v1
12420 + const/16 v1, 0x28
12422 + const-string v2, "androidIdSetting"
12424 + aput-object v2, v0, v1
12426 + const/16 v1, 0x29
12428 + const-string v2, "androidId"
12430 + aput-object v2, v0, v1
12432 + const/16 v1, 0x2a
12434 + const-string/jumbo v2, "wifiInfoSetting"
12436 + aput-object v2, v0, v1
12438 + const/16 v1, 0x2b
12440 + const-string/jumbo v2, "switchConnectivitySetting"
12442 + aput-object v2, v0, v1
12444 + const/16 v1, 0x2c
12446 + const-string/jumbo v2, "sendMmsSetting"
12448 + aput-object v2, v0, v1
12450 + const/16 v1, 0x2d
12452 + const-string v2, "forceOnlineState"
12454 + aput-object v2, v0, v1
12456 + const/16 v1, 0x2e
12458 + const-string/jumbo v2, "switchWifiStateSetting"
12460 + aput-object v2, v0, v1
12462 + sput-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->DATABASE_FIELDS:[Ljava/lang/String;
12464 + return-void
12465 +.end method
12467 +.method public constructor <init>(Landroid/content/Context;)V
12468 + .registers 4
12470 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
12472 + iput-object p1, p0, Landroid/privacy/PrivacyPersistenceAdapter;->mContext:Landroid/content/Context;
12474 + new-instance v0, Ljava/io/File;
12476 + const-string v1, "/data/system/"
12478 + invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
12480 + invoke-virtual {v0}, Ljava/io/File;->canWrite()Z
12482 + move-result v0
12484 + if-eqz v0, :cond_6c
12486 + new-instance v0, Ljava/io/File;
12488 + const-string v1, "/data/system/privacy.db"
12490 + invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
12492 + invoke-virtual {v0}, Ljava/io/File;->exists()Z
12494 + move-result v0
12496 + if-eqz v0, :cond_2c
12498 + new-instance v0, Ljava/io/File;
12500 + const-string v1, "/data/system/privacy"
12502 + invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
12504 + invoke-virtual {v0}, Ljava/io/File;->exists()Z
12506 + move-result v0
12508 + if-nez v0, :cond_5e
12510 + :cond_2c
12511 + sget-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
12513 + invoke-interface {v0}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
12515 + move-result-object v0
12517 + invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V
12519 + :try_start_35
12520 + new-instance v0, Ljava/io/File;
12522 + const-string v1, "/data/system/privacy.db"
12524 + invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
12526 + invoke-virtual {v0}, Ljava/io/File;->exists()Z
12528 + move-result v0
12530 + if-nez v0, :cond_45
12532 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->createDatabase()V
12534 + :cond_45
12535 + new-instance v0, Ljava/io/File;
12537 + const-string v1, "/data/system/privacy"
12539 + invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
12541 + invoke-virtual {v0}, Ljava/io/File;->exists()Z
12543 + move-result v0
12545 + if-nez v0, :cond_55
12547 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->createSettingsDir()V
12548 + :try_end_55
12549 + .catchall {:try_start_35 .. :try_end_55} :catchall_6d
12551 + :cond_55
12552 + sget-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
12554 + invoke-interface {v0}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
12556 + move-result-object v0
12558 + invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V
12560 + :cond_5e
12561 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->getDbVersion()I
12563 + move-result v0
12565 + sput v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbVersion:I
12567 + sget v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbVersion:I
12569 + const/4 v1, 0x4
12571 + if-ge v0, v1, :cond_6c
12573 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->upgradeDatabase()V
12575 + :cond_6c
12576 + return-void
12578 + :catchall_6d
12579 + move-exception v0
12581 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
12583 + invoke-interface {v1}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
12585 + move-result-object v1
12587 + invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V
12589 + throw v0
12590 +.end method
12592 +.method private closeIdleDatabase()V
12593 + .registers 3
12595 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
12597 + monitor-enter v1
12599 + :try_start_3
12600 + sget-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
12602 + sget-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
12604 + invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
12606 + move-result v0
12608 + add-int/lit8 v0, v0, -0x1
12610 + invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
12612 + move-result-object v0
12614 + sput-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
12616 + sget-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
12618 + invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
12620 + move-result v0
12622 + if-nez v0, :cond_2c
12624 + iget-object v0, p0, Landroid/privacy/PrivacyPersistenceAdapter;->mDb:Landroid/database/sqlite/SQLiteDatabase;
12626 + if-eqz v0, :cond_2c
12628 + iget-object v0, p0, Landroid/privacy/PrivacyPersistenceAdapter;->mDb:Landroid/database/sqlite/SQLiteDatabase;
12630 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z
12632 + move-result v0
12634 + if-eqz v0, :cond_2c
12636 + iget-object v0, p0, Landroid/privacy/PrivacyPersistenceAdapter;->mDb:Landroid/database/sqlite/SQLiteDatabase;
12638 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->close()V
12640 + :cond_2c
12641 + monitor-exit v1
12643 + return-void
12645 + :catchall_2e
12646 + move-exception v0
12648 + monitor-exit v1
12649 + :try_end_30
12650 + .catchall {:try_start_3 .. :try_end_30} :catchall_2e
12652 + throw v0
12653 +.end method
12655 +.method private createDatabase()V
12656 + .registers 6
12658 + const-string v2, "PrivacyPersistenceAdapter"
12660 + const-string v3, "createDatabase - creating privacy database file"
12662 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
12664 + :try_start_7
12665 + const-string v2, "/data/system/privacy.db"
12667 + const/4 v3, 0x0
12669 + const/high16 v4, 0x1000
12671 + invoke-static {v2, v3, v4}, Landroid/database/sqlite/SQLiteDatabase;->openDatabase(Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;I)Landroid/database/sqlite/SQLiteDatabase;
12673 + move-result-object v0
12675 + const-string v2, "PrivacyPersistenceAdapter"
12677 + const-string v3, "createDatabase - creating privacy database"
12679 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
12681 + 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);"
12683 + invoke-virtual {v0, v2}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
12685 + const-string v2, "CREATE TABLE IF NOT EXISTS allowed_contacts ( settings_id, contact_id, PRIMARY KEY(settings_id, contact_id) );"
12687 + invoke-virtual {v0, v2}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
12689 + const-string v2, "CREATE TABLE IF NOT EXISTS map ( name TEXT PRIMARY KEY, value TEXT );"
12691 + invoke-virtual {v0, v2}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
12693 + const-string v2, "INSERT OR REPLACE INTO map (name, value) VALUES (\"db_version\", 4);"
12695 + invoke-virtual {v0, v2}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
12697 + const-string v2, "INSERT OR REPLACE INTO map (name, value) VALUES (\"enabled\", \"1\");"
12699 + invoke-virtual {v0, v2}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
12701 + const-string v2, "INSERT OR REPLACE INTO map (name, value) VALUES (\"notifications_enabled\", \"1\");"
12703 + invoke-virtual {v0, v2}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
12705 + if-eqz v0, :cond_40
12707 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z
12709 + move-result v2
12711 + if-eqz v2, :cond_40
12713 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->close()V
12714 + :try_end_40
12715 + .catch Landroid/database/SQLException; {:try_start_7 .. :try_end_40} :catch_41
12717 + :cond_40
12718 + :goto_40
12719 + return-void
12721 + :catch_41
12722 + move-exception v1
12724 + const-string v2, "PrivacyPersistenceAdapter"
12726 + const-string v3, "createDatabase - failed to create privacy database"
12728 + invoke-static {v2, v3, v1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
12730 + goto :goto_40
12731 +.end method
12733 +.method private createSettingsDir()V
12734 + .registers 5
12736 + const/4 v3, 0x1
12738 + const/4 v2, 0x0
12740 + new-instance v0, Ljava/io/File;
12742 + const-string v1, "/data/system/privacy/"
12744 + invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
12746 + invoke-virtual {v0}, Ljava/io/File;->mkdirs()Z
12748 + invoke-virtual {v0, v3, v2}, Ljava/io/File;->setReadable(ZZ)Z
12750 + invoke-virtual {v0, v3, v2}, Ljava/io/File;->setExecutable(ZZ)Z
12752 + return-void
12753 +.end method
12755 +.method private deleteRecursive(Ljava/io/File;)V
12756 + .registers 7
12758 + invoke-virtual {p1}, Ljava/io/File;->isDirectory()Z
12760 + move-result v4
12762 + if-eqz v4, :cond_16
12764 + invoke-virtual {p1}, Ljava/io/File;->listFiles()[Ljava/io/File;
12766 + move-result-object v0
12768 + array-length v3, v0
12770 + const/4 v2, 0x0
12772 + :goto_c
12773 + if-ge v2, v3, :cond_16
12775 + aget-object v1, v0, v2
12777 + invoke-direct {p0, v1}, Landroid/privacy/PrivacyPersistenceAdapter;->deleteRecursive(Ljava/io/File;)V
12779 + add-int/lit8 v2, v2, 0x1
12781 + goto :goto_c
12783 + :cond_16
12784 + invoke-virtual {p1}, Ljava/io/File;->delete()Z
12786 + return-void
12787 +.end method
12789 +.method private declared-synchronized getDatabase()Landroid/database/sqlite/SQLiteDatabase;
12790 + .registers 4
12792 + monitor-enter p0
12794 + :try_start_1
12795 + iget-object v0, p0, Landroid/privacy/PrivacyPersistenceAdapter;->mDb:Landroid/database/sqlite/SQLiteDatabase;
12797 + if-eqz v0, :cond_15
12799 + iget-object v0, p0, Landroid/privacy/PrivacyPersistenceAdapter;->mDb:Landroid/database/sqlite/SQLiteDatabase;
12801 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z
12803 + move-result v0
12805 + if-eqz v0, :cond_15
12807 + iget-object v0, p0, Landroid/privacy/PrivacyPersistenceAdapter;->mDb:Landroid/database/sqlite/SQLiteDatabase;
12809 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->isReadOnly()Z
12811 + move-result v0
12813 + if-eqz v0, :cond_1f
12815 + :cond_15
12816 + const-string v0, "/data/system/privacy.db"
12818 + const/4 v1, 0x0
12820 + const/4 v2, 0x0
12822 + invoke-static {v0, v1, v2}, Landroid/database/sqlite/SQLiteDatabase;->openDatabase(Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;I)Landroid/database/sqlite/SQLiteDatabase;
12824 + move-result-object v0
12826 + iput-object v0, p0, Landroid/privacy/PrivacyPersistenceAdapter;->mDb:Landroid/database/sqlite/SQLiteDatabase;
12828 + :cond_1f
12829 + iget-object v0, p0, Landroid/privacy/PrivacyPersistenceAdapter;->mDb:Landroid/database/sqlite/SQLiteDatabase;
12830 + :try_end_21
12831 + .catchall {:try_start_1 .. :try_end_21} :catchall_23
12833 + monitor-exit p0
12835 + return-object v0
12837 + :catchall_23
12838 + move-exception v0
12840 + monitor-exit p0
12842 + throw v0
12843 +.end method
12845 +.method private getDbVersion()I
12846 + .registers 6
12848 + const/4 v2, 0x1
12850 + const-string v3, "db_version"
12852 + invoke-virtual {p0, v3}, Landroid/privacy/PrivacyPersistenceAdapter;->getValue(Ljava/lang/String;)Ljava/lang/String;
12854 + move-result-object v1
12856 + if-nez v1, :cond_11
12858 + const-string v3, "PrivacyPersistenceAdapter"
12860 + const-string v4, "PrivacyPersistenceAdapter:getDbVersion: getValue returned null; assuming version = 1"
12862 + invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
12864 + :goto_10
12865 + return v2
12867 + :cond_11
12868 + :try_start_11
12869 + invoke-static {v1}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
12870 + :try_end_14
12871 + .catch Ljava/lang/Exception; {:try_start_11 .. :try_end_14} :catch_16
12873 + move-result v2
12875 + goto :goto_10
12877 + :catch_16
12878 + move-exception v0
12880 + const-string v3, "PrivacyPersistenceAdapter"
12882 + const-string v4, "PrivacyPersistenceAdapter:getDbVersion: failed to parse database version; returning 1"
12884 + invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
12886 + goto :goto_10
12887 +.end method
12889 +.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;
12890 + .registers 16
12891 + .annotation system Ldalvik/annotation/Throws;
12892 + value = {
12893 + Ljava/lang/Exception;
12895 + .end annotation
12897 + const/4 v0, 0x0
12899 + const/4 v3, 0x0
12901 + const/4 v2, 0x0
12903 + :goto_3
12904 + if-nez v3, :cond_27
12906 + const/4 v4, 0x5
12908 + if-ge v2, v4, :cond_27
12910 + if-eqz v0, :cond_d
12912 + :try_start_a
12913 + invoke-interface {v0}, Landroid/database/Cursor;->close()V
12915 + :cond_d
12916 + 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;
12917 + :try_end_10
12918 + .catch Ljava/lang/IllegalStateException; {:try_start_a .. :try_end_10} :catch_15
12920 + move-result-object v0
12922 + const/4 v3, 0x1
12924 + :goto_12
12925 + add-int/lit8 v2, v2, 0x1
12927 + goto :goto_3
12929 + :catch_15
12930 + move-exception v1
12932 + const/4 v3, 0x0
12934 + if-eqz p1, :cond_22
12936 + invoke-virtual {p1}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z
12938 + move-result v4
12940 + if-eqz v4, :cond_22
12942 + invoke-virtual {p1}, Landroid/database/sqlite/SQLiteDatabase;->close()V
12944 + :cond_22
12945 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->getDatabase()Landroid/database/sqlite/SQLiteDatabase;
12947 + move-result-object p1
12949 + goto :goto_12
12951 + :cond_27
12952 + if-nez v3, :cond_32
12954 + new-instance v4, Ljava/lang/Exception;
12956 + const-string/jumbo v5, "query - failed to execute query on the DB"
12958 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
12960 + throw v4
12962 + :cond_32
12963 + return-object v0
12964 +.end method
12966 +.method private rawQuery(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;)Landroid/database/Cursor;
12967 + .registers 9
12968 + .annotation system Ldalvik/annotation/Throws;
12969 + value = {
12970 + Ljava/lang/Exception;
12972 + .end annotation
12974 + const/4 v0, 0x0
12976 + const/4 v3, 0x0
12978 + const/4 v2, 0x0
12980 + :goto_3
12981 + if-nez v3, :cond_28
12983 + const/4 v4, 0x5
12985 + if-ge v2, v4, :cond_28
12987 + if-eqz v0, :cond_d
12989 + :try_start_a
12990 + invoke-interface {v0}, Landroid/database/Cursor;->close()V
12992 + :cond_d
12993 + const/4 v4, 0x0
12995 + invoke-virtual {p1, p2, v4}, Landroid/database/sqlite/SQLiteDatabase;->rawQuery(Ljava/lang/String;[Ljava/lang/String;)Landroid/database/Cursor;
12996 + :try_end_11
12997 + .catch Ljava/lang/IllegalStateException; {:try_start_a .. :try_end_11} :catch_16
12999 + move-result-object v0
13001 + const/4 v3, 0x1
13003 + :goto_13
13004 + add-int/lit8 v2, v2, 0x1
13006 + goto :goto_3
13008 + :catch_16
13009 + move-exception v1
13011 + const/4 v3, 0x0
13013 + if-eqz p1, :cond_23
13015 + invoke-virtual {p1}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z
13017 + move-result v4
13019 + if-eqz v4, :cond_23
13021 + invoke-virtual {p1}, Landroid/database/sqlite/SQLiteDatabase;->close()V
13023 + :cond_23
13024 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->getDatabase()Landroid/database/sqlite/SQLiteDatabase;
13026 + move-result-object p1
13028 + goto :goto_13
13030 + :cond_28
13031 + if-nez v3, :cond_33
13033 + new-instance v4, Ljava/lang/Exception;
13035 + const-string/jumbo v5, "query - failed to execute query on the DB"
13037 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
13039 + throw v4
13041 + :cond_33
13042 + return-object v0
13043 +.end method
13045 +.method private upgradeDatabase()V
13046 + .registers 18
13048 + sget v14, Landroid/privacy/PrivacyPersistenceAdapter;->sDbVersion:I
13050 + const/4 v15, 0x4
13052 + if-ge v14, v15, :cond_31
13054 + const-string v14, "PrivacyPersistenceAdapter"
13056 + new-instance v15, Ljava/lang/StringBuilder;
13058 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
13060 + const-string v16, "PrivacyPersistenceAdapter:upgradeDatabase - upgrading DB from version "
13062 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13064 + move-result-object v15
13066 + sget v16, Landroid/privacy/PrivacyPersistenceAdapter;->sDbVersion:I
13068 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
13070 + move-result-object v15
13072 + const-string v16, " to "
13074 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13076 + move-result-object v15
13078 + const/16 v16, 0x4
13080 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
13082 + move-result-object v15
13084 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
13086 + move-result-object v15
13088 + invoke-static {v14, v15}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
13090 + const/4 v3, 0x0
13092 + sget v14, Landroid/privacy/PrivacyPersistenceAdapter;->sDbVersion:I
13094 + packed-switch v14, :pswitch_data_12c
13096 + :cond_31
13097 + :goto_31
13098 + return-void
13100 + :pswitch_32
13101 + :try_start_32
13102 + sget-object v15, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
13104 + monitor-enter v15
13105 + :try_end_35
13106 + .catchall {:try_start_32 .. :try_end_35} :catchall_11e
13107 + .catch Landroid/database/SQLException; {:try_start_32 .. :try_end_35} :catch_e6
13109 + :try_start_35
13110 + sget-object v14, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
13112 + sget-object v14, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
13114 + invoke-virtual {v14}, Ljava/lang/Integer;->intValue()I
13116 + move-result v14
13118 + add-int/lit8 v14, v14, 0x1
13120 + invoke-static {v14}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
13122 + move-result-object v14
13124 + sput-object v14, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
13126 + monitor-exit v15
13127 + :try_end_46
13128 + .catchall {:try_start_35 .. :try_end_46} :catchall_e3
13130 + :try_start_46
13131 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->getDatabase()Landroid/database/sqlite/SQLiteDatabase;
13133 + move-result-object v3
13135 + if-eqz v3, :cond_109
13137 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z
13139 + move-result v14
13141 + if-eqz v14, :cond_109
13143 + sget-object v14, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
13145 + invoke-interface {v14}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
13147 + move-result-object v14
13149 + invoke-interface {v14}, Ljava/util/concurrent/locks/Lock;->lock()V
13150 + :try_end_5b
13151 + .catchall {:try_start_46 .. :try_end_5b} :catchall_11e
13152 + .catch Landroid/database/SQLException; {:try_start_46 .. :try_end_5b} :catch_e6
13154 + :try_start_5b
13155 + sget v14, Landroid/privacy/PrivacyPersistenceAdapter;->sDbVersion:I
13157 + const/4 v15, 0x4
13159 + if-ge v14, v15, :cond_100
13161 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->beginTransaction()V
13162 + :try_end_63
13163 + .catchall {:try_start_5b .. :try_end_63} :catchall_113
13165 + :try_start_63
13166 + const-string v14, "DROP TABLE IF EXISTS version;"
13168 + invoke-virtual {v3, v14}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
13170 + const-string v14, "CREATE TABLE IF NOT EXISTS allowed_contacts ( settings_id, contact_id, PRIMARY KEY(settings_id, contact_id) );"
13172 + invoke-virtual {v3, v14}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
13174 + const-string v14, "CREATE TABLE IF NOT EXISTS map ( name TEXT PRIMARY KEY, value TEXT );"
13176 + invoke-virtual {v3, v14}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
13178 + const-string v14, "INSERT OR REPLACE INTO map (name, value) VALUES (\"db_version\", 4);"
13180 + invoke-virtual {v3, v14}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
13182 + const-string v14, "INSERT OR REPLACE INTO map (name, value) VALUES (\"enabled\", \"1\");"
13184 + invoke-virtual {v3, v14}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
13186 + const-string v14, "INSERT OR REPLACE INTO map (name, value) VALUES (\"notifications_enabled\", \"1\");"
13188 + invoke-virtual {v3, v14}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
13190 + invoke-virtual/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->purgeSettings()Z
13192 + new-instance v11, Ljava/io/File;
13194 + const-string v14, "/data/system/privacy"
13196 + invoke-direct {v11, v14}, Ljava/io/File;-><init>(Ljava/lang/String;)V
13198 + invoke-virtual {v11}, Ljava/io/File;->listFiles()[Ljava/io/File;
13200 + move-result-object v1
13202 + array-length v7, v1
13204 + const/4 v5, 0x0
13206 + move v6, v5
13208 + :goto_92
13209 + if-ge v6, v7, :cond_f7
13211 + aget-object v10, v1, v6
13213 + invoke-virtual {v10}, Ljava/io/File;->listFiles()[Ljava/io/File;
13215 + move-result-object v2
13217 + array-length v8, v2
13219 + const/4 v5, 0x0
13221 + :goto_9c
13222 + if-ge v5, v8, :cond_f3
13224 + aget-object v13, v2, v5
13226 + invoke-virtual {v13}, Ljava/io/File;->isDirectory()Z
13228 + move-result v14
13230 + if-eqz v14, :cond_e0
13232 + invoke-virtual {v13}, Ljava/io/File;->listFiles()[Ljava/io/File;
13234 + move-result-object v12
13236 + const/4 v14, 0x0
13238 + aget-object v14, v12, v14
13240 + if-eqz v14, :cond_e0
13242 + new-instance v9, Ljava/io/File;
13244 + new-instance v14, Ljava/lang/StringBuilder;
13246 + invoke-direct {v14}, Ljava/lang/StringBuilder;-><init>()V
13248 + invoke-virtual {v14, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
13250 + move-result-object v14
13252 + const-string v15, "/"
13254 + invoke-virtual {v14, v15}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13256 + move-result-object v14
13258 + const/4 v15, 0x0
13260 + aget-object v15, v12, v15
13262 + invoke-virtual {v15}, Ljava/io/File;->getName()Ljava/lang/String;
13264 + move-result-object v15
13266 + invoke-virtual {v14, v15}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13268 + move-result-object v14
13270 + invoke-virtual {v14}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
13272 + move-result-object v14
13274 + invoke-direct {v9, v14}, Ljava/io/File;-><init>(Ljava/lang/String;)V
13276 + invoke-virtual {v9}, Ljava/io/File;->delete()Z
13278 + const/4 v14, 0x0
13280 + aget-object v14, v12, v14
13282 + invoke-virtual {v14, v9}, Ljava/io/File;->renameTo(Ljava/io/File;)Z
13284 + move-object/from16 v0, p0
13286 + invoke-direct {v0, v13}, Landroid/privacy/PrivacyPersistenceAdapter;->deleteRecursive(Ljava/io/File;)V
13287 + :try_end_e0
13288 + .catchall {:try_start_63 .. :try_end_e0} :catchall_10e
13290 + :cond_e0
13291 + add-int/lit8 v5, v5, 0x1
13293 + goto :goto_9c
13295 + :catchall_e3
13296 + move-exception v14
13298 + :try_start_e4
13299 + monitor-exit v15
13300 + :try_end_e5
13301 + .catchall {:try_start_e4 .. :try_end_e5} :catchall_e3
13303 + :try_start_e5
13304 + throw v14
13305 + :try_end_e6
13306 + .catchall {:try_start_e5 .. :try_end_e6} :catchall_11e
13307 + .catch Landroid/database/SQLException; {:try_start_e5 .. :try_end_e6} :catch_e6
13309 + :catch_e6
13310 + move-exception v4
13312 + :try_start_e7
13313 + const-string v14, "PrivacyPersistenceAdapter"
13315 + const-string v15, "PrivacyPersistenceAdapter:upgradeDatabase: SQLException occurred performing database upgrade"
13317 + invoke-static {v14, v15, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
13318 + :try_end_ee
13319 + .catchall {:try_start_e7 .. :try_end_ee} :catchall_11e
13321 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
13323 + goto/16 :goto_31
13325 + :cond_f3
13326 + add-int/lit8 v5, v6, 0x1
13328 + move v6, v5
13330 + goto :goto_92
13332 + :cond_f7
13333 + :try_start_f7
13334 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->setTransactionSuccessful()V
13336 + const/4 v14, 0x4
13338 + sput v14, Landroid/privacy/PrivacyPersistenceAdapter;->sDbVersion:I
13339 + :try_end_fd
13340 + .catchall {:try_start_f7 .. :try_end_fd} :catchall_10e
13342 + :try_start_fd
13343 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
13344 + :try_end_100
13345 + .catchall {:try_start_fd .. :try_end_100} :catchall_113
13347 + :cond_100
13348 + :try_start_100
13349 + sget-object v14, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
13351 + invoke-interface {v14}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
13353 + move-result-object v14
13355 + invoke-interface {v14}, Ljava/util/concurrent/locks/Lock;->unlock()V
13356 + :try_end_109
13357 + .catchall {:try_start_100 .. :try_end_109} :catchall_11e
13358 + .catch Landroid/database/SQLException; {:try_start_100 .. :try_end_109} :catch_e6
13360 + :cond_109
13361 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
13363 + goto/16 :goto_31
13365 + :catchall_10e
13366 + move-exception v14
13368 + :try_start_10f
13369 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
13371 + throw v14
13372 + :try_end_113
13373 + .catchall {:try_start_10f .. :try_end_113} :catchall_113
13375 + :catchall_113
13376 + move-exception v14
13378 + :try_start_114
13379 + sget-object v15, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
13381 + invoke-interface {v15}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
13383 + move-result-object v15
13385 + invoke-interface {v15}, Ljava/util/concurrent/locks/Lock;->unlock()V
13387 + throw v14
13388 + :try_end_11e
13389 + .catchall {:try_start_114 .. :try_end_11e} :catchall_11e
13390 + .catch Landroid/database/SQLException; {:try_start_114 .. :try_end_11e} :catch_e6
13392 + :catchall_11e
13393 + move-exception v14
13395 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
13397 + throw v14
13399 + :pswitch_123
13400 + const-string v14, "PrivacyPersistenceAdapter"
13402 + const-string v15, "PrivacyPersistenceAdapter:upgradeDatabase: Database is already at the most recent version"
13404 + invoke-static {v14, v15}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
13406 + goto/16 :goto_31
13408 + :pswitch_data_12c
13409 + .packed-switch 0x1
13410 + :pswitch_32
13411 + :pswitch_32
13412 + :pswitch_32
13413 + :pswitch_123
13414 + .end packed-switch
13415 +.end method
13417 +.method private writeExternalSettings(Ljava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)Z
13418 + .registers 12
13419 + .annotation system Ldalvik/annotation/Throws;
13420 + value = {
13421 + Ljava/lang/Exception;
13423 + .end annotation
13425 + const/4 v7, 0x1
13427 + new-instance v2, Ljava/io/File;
13429 + new-instance v5, Ljava/lang/StringBuilder;
13431 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
13433 + const-string v6, "/data/system/privacy/"
13435 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13437 + move-result-object v5
13439 + invoke-virtual {v5, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13441 + move-result-object v5
13443 + const-string v6, "/"
13445 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13447 + move-result-object v5
13449 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
13451 + move-result-object v5
13453 + invoke-direct {v2, v5}, Ljava/io/File;-><init>(Ljava/lang/String;)V
13455 + new-instance v3, Ljava/io/File;
13457 + new-instance v5, Ljava/lang/StringBuilder;
13459 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
13461 + const-string v6, "/data/system/privacy/"
13463 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13465 + move-result-object v5
13467 + invoke-virtual {v5, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13469 + move-result-object v5
13471 + const-string v6, "/"
13473 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13475 + move-result-object v5
13477 + const-string v6, "/"
13479 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13481 + move-result-object v5
13483 + invoke-virtual {v5, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13485 + move-result-object v5
13487 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
13489 + move-result-object v5
13491 + invoke-direct {v3, v5}, Ljava/io/File;-><init>(Ljava/lang/String;)V
13493 + const/4 v1, 0x0
13495 + sget-object v5, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
13497 + invoke-interface {v5}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
13499 + move-result-object v5
13501 + invoke-interface {v5}, Ljava/util/concurrent/locks/Lock;->lock()V
13503 + :try_start_51
13504 + invoke-virtual {v2}, Ljava/io/File;->mkdirs()Z
13506 + const/4 v5, 0x1
13508 + const/4 v6, 0x0
13510 + invoke-virtual {v2, v5, v6}, Ljava/io/File;->setReadable(ZZ)Z
13512 + const/4 v5, 0x1
13514 + const/4 v6, 0x0
13516 + invoke-virtual {v2, v5, v6}, Ljava/io/File;->setExecutable(ZZ)Z
13518 + invoke-virtual {v3}, Ljava/io/File;->createNewFile()Z
13520 + const/4 v5, 0x1
13522 + const/4 v6, 0x0
13524 + invoke-virtual {v3, v5, v6}, Ljava/io/File;->setReadable(ZZ)Z
13526 + new-instance v4, Ljava/io/OutputStreamWriter;
13528 + new-instance v5, Ljava/io/FileOutputStream;
13530 + invoke-direct {v5, v3}, Ljava/io/FileOutputStream;-><init>(Ljava/io/File;)V
13532 + invoke-direct {v4, v5}, Ljava/io/OutputStreamWriter;-><init>(Ljava/io/OutputStream;)V
13534 + const-string/jumbo v5, "systemLogsSetting"
13536 + invoke-virtual {p1, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
13538 + move-result v5
13540 + if-eqz v5, :cond_a4
13542 + new-instance v5, Ljava/lang/StringBuilder;
13544 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
13546 + invoke-virtual {p3}, Landroid/privacy/PrivacySettings;->getSystemLogsSetting()B
13548 + move-result v6
13550 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
13552 + move-result-object v5
13554 + const-string v6, ""
13556 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13558 + move-result-object v5
13560 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
13562 + move-result-object v5
13564 + invoke-virtual {v4, v5}, Ljava/io/OutputStreamWriter;->append(Ljava/lang/CharSequence;)Ljava/io/Writer;
13566 + :cond_93
13567 + :goto_93
13568 + invoke-virtual {v4}, Ljava/io/OutputStreamWriter;->flush()V
13570 + invoke-virtual {v4}, Ljava/io/OutputStreamWriter;->close()V
13571 + :try_end_99
13572 + .catchall {:try_start_51 .. :try_end_99} :catchall_d1
13573 + .catch Ljava/io/IOException; {:try_start_51 .. :try_end_99} :catch_c7
13575 + const/4 v1, 0x1
13577 + sget-object v5, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
13579 + invoke-interface {v5}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
13581 + move-result-object v5
13583 + invoke-interface {v5}, Ljava/util/concurrent/locks/Lock;->unlock()V
13585 + return v7
13587 + :cond_a4
13588 + :try_start_a4
13589 + const-string v5, "ipTableProtectSetting"
13591 + invoke-virtual {p1, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
13593 + move-result v5
13595 + if-eqz v5, :cond_93
13597 + new-instance v5, Ljava/lang/StringBuilder;
13599 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
13601 + invoke-virtual {p3}, Landroid/privacy/PrivacySettings;->getIpTableProtectSetting()B
13603 + move-result v6
13605 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
13607 + move-result-object v5
13609 + const-string v6, ""
13611 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13613 + move-result-object v5
13615 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
13617 + move-result-object v5
13619 + invoke-virtual {v4, v5}, Ljava/io/OutputStreamWriter;->append(Ljava/lang/CharSequence;)Ljava/io/Writer;
13620 + :try_end_c6
13621 + .catchall {:try_start_a4 .. :try_end_c6} :catchall_d1
13622 + .catch Ljava/io/IOException; {:try_start_a4 .. :try_end_c6} :catch_c7
13624 + goto :goto_93
13626 + :catch_c7
13627 + move-exception v0
13629 + :try_start_c8
13630 + new-instance v5, Ljava/lang/Exception;
13632 + const-string/jumbo v6, "saveSettings - could not write settings to file"
13634 + invoke-direct {v5, v6, v0}, Ljava/lang/Exception;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
13636 + throw v5
13637 + :try_end_d1
13638 + .catchall {:try_start_c8 .. :try_end_d1} :catchall_d1
13640 + :catchall_d1
13641 + move-exception v5
13643 + sget-object v6, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
13645 + invoke-interface {v6}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
13647 + move-result-object v6
13649 + invoke-interface {v6}, Ljava/util/concurrent/locks/Lock;->unlock()V
13651 + throw v5
13652 +.end method
13655 +# virtual methods
13656 +.method public deleteSettings(Ljava/lang/String;)Z
13657 + .registers 16
13659 + const/4 v11, 0x1
13661 + const/4 v0, 0x0
13663 + :try_start_2
13664 + sget-object v2, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
13666 + monitor-enter v2
13667 + :try_end_5
13668 + .catchall {:try_start_2 .. :try_end_5} :catchall_148
13669 + .catch Landroid/database/sqlite/SQLiteException; {:try_start_2 .. :try_end_5} :catch_fe
13670 + .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_5} :catch_13b
13672 + :try_start_5
13673 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
13675 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
13677 + invoke-virtual {v1}, Ljava/lang/Integer;->intValue()I
13679 + move-result v1
13681 + add-int/lit8 v1, v1, 0x1
13683 + invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
13685 + move-result-object v1
13687 + sput-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
13689 + monitor-exit v2
13690 + :try_end_16
13691 + .catchall {:try_start_5 .. :try_end_16} :catchall_fb
13693 + :try_start_16
13694 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->getDatabase()Landroid/database/sqlite/SQLiteDatabase;
13696 + move-result-object v0
13698 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
13700 + invoke-interface {v1}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
13702 + move-result-object v1
13704 + invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->lock()V
13705 + :try_end_23
13706 + .catchall {:try_start_16 .. :try_end_23} :catchall_148
13707 + .catch Landroid/database/sqlite/SQLiteException; {:try_start_16 .. :try_end_23} :catch_fe
13708 + .catch Ljava/lang/Exception; {:try_start_16 .. :try_end_23} :catch_13b
13710 + :try_start_23
13711 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->beginTransaction()V
13712 + :try_end_26
13713 + .catchall {:try_start_23 .. :try_end_26} :catchall_130
13715 + :try_start_26
13716 + const-string/jumbo v1, "settings"
13718 + const/4 v2, 0x1
13720 + new-array v2, v2, [Ljava/lang/String;
13722 + const/4 v3, 0x0
13724 + const-string v4, "_id"
13726 + aput-object v4, v2, v3
13728 + const-string/jumbo v3, "packageName=?"
13730 + const/4 v4, 0x1
13732 + new-array v4, v4, [Ljava/lang/String;
13734 + const/4 v5, 0x0
13736 + aput-object p1, v4, v5
13738 + const/4 v5, 0x0
13740 + const/4 v6, 0x0
13742 + const/4 v7, 0x0
13744 + 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;
13746 + move-result-object v8
13748 + if-eqz v8, :cond_10b
13750 + invoke-interface {v8}, Landroid/database/Cursor;->getCount()I
13752 + move-result v1
13754 + if-lez v1, :cond_10b
13756 + invoke-interface {v8}, Landroid/database/Cursor;->moveToFirst()Z
13758 + move-result v1
13760 + if-eqz v1, :cond_10b
13762 + const/4 v1, 0x0
13764 + invoke-interface {v8, v1}, Landroid/database/Cursor;->getInt(I)I
13766 + move-result v10
13768 + const-string v1, "allowed_contacts"
13770 + const-string/jumbo v2, "settings_id=?"
13772 + const/4 v3, 0x1
13774 + new-array v3, v3, [Ljava/lang/String;
13776 + const/4 v4, 0x0
13778 + invoke-static {v10}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;
13780 + move-result-object v5
13782 + aput-object v5, v3, v4
13784 + invoke-virtual {v0, v1, v2, v3}, Landroid/database/sqlite/SQLiteDatabase;->delete(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)I
13786 + invoke-interface {v8}, Landroid/database/Cursor;->close()V
13788 + :goto_69
13789 + const-string/jumbo v1, "settings"
13791 + const-string/jumbo v2, "packageName=?"
13793 + const/4 v3, 0x1
13795 + new-array v3, v3, [Ljava/lang/String;
13797 + const/4 v4, 0x0
13799 + aput-object p1, v3, v4
13801 + invoke-virtual {v0, v1, v2, v3}, Landroid/database/sqlite/SQLiteDatabase;->delete(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)I
13803 + move-result v1
13805 + if-nez v1, :cond_99
13807 + const-string v1, "PrivacyPersistenceAdapter"
13809 + new-instance v2, Ljava/lang/StringBuilder;
13811 + invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
13813 + const-string v3, "deleteSettings - database entry for "
13815 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13817 + move-result-object v2
13819 + invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13821 + move-result-object v2
13823 + const-string v3, " not found"
13825 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13827 + move-result-object v2
13829 + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
13831 + move-result-object v2
13833 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
13835 + :cond_99
13836 + new-instance v12, Ljava/io/File;
13838 + new-instance v1, Ljava/lang/StringBuilder;
13840 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
13842 + const-string v2, "/data/system/privacy/"
13844 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13846 + move-result-object v1
13848 + invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13850 + move-result-object v1
13852 + const-string v2, "/"
13854 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13856 + move-result-object v1
13858 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
13860 + move-result-object v1
13862 + invoke-direct {v12, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
13864 + new-instance v13, Ljava/io/File;
13866 + new-instance v1, Ljava/lang/StringBuilder;
13868 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
13870 + const-string v2, "/data/system/privacy/"
13872 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13874 + move-result-object v1
13876 + invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13878 + move-result-object v1
13880 + const-string v2, "/systemLogsSetting"
13882 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13884 + move-result-object v1
13886 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
13888 + move-result-object v1
13890 + invoke-direct {v13, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
13892 + invoke-virtual {v13}, Ljava/io/File;->delete()Z
13894 + invoke-virtual {v12}, Ljava/io/File;->list()[Ljava/lang/String;
13896 + move-result-object v1
13898 + if-eqz v1, :cond_e5
13900 + invoke-virtual {v12}, Ljava/io/File;->list()[Ljava/lang/String;
13902 + move-result-object v1
13904 + array-length v1, v1
13906 + if-nez v1, :cond_e8
13908 + :cond_e5
13909 + invoke-virtual {v12}, Ljava/io/File;->delete()Z
13911 + :cond_e8
13912 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->setTransactionSuccessful()V
13913 + :try_end_eb
13914 + .catchall {:try_start_26 .. :try_end_eb} :catchall_12b
13916 + :try_start_eb
13917 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
13918 + :try_end_ee
13919 + .catchall {:try_start_eb .. :try_end_ee} :catchall_130
13921 + :try_start_ee
13922 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
13924 + invoke-interface {v1}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
13926 + move-result-object v1
13928 + invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V
13929 + :try_end_f7
13930 + .catchall {:try_start_ee .. :try_end_f7} :catchall_148
13931 + .catch Landroid/database/sqlite/SQLiteException; {:try_start_ee .. :try_end_f7} :catch_fe
13932 + .catch Ljava/lang/Exception; {:try_start_ee .. :try_end_f7} :catch_13b
13934 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
13936 + :goto_fa
13937 + return v11
13939 + :catchall_fb
13940 + move-exception v1
13942 + :try_start_fc
13943 + monitor-exit v2
13944 + :try_end_fd
13945 + .catchall {:try_start_fc .. :try_end_fd} :catchall_fb
13947 + :try_start_fd
13948 + throw v1
13949 + :try_end_fe
13950 + .catchall {:try_start_fd .. :try_end_fe} :catchall_148
13951 + .catch Landroid/database/sqlite/SQLiteException; {:try_start_fd .. :try_end_fe} :catch_fe
13952 + .catch Ljava/lang/Exception; {:try_start_fd .. :try_end_fe} :catch_13b
13954 + :catch_fe
13955 + move-exception v9
13957 + const/4 v11, 0x0
13959 + :try_start_100
13960 + const-string v1, "PrivacyPersistenceAdapter"
13962 + const-string v2, "PrivacyPersistenceAdapter:deleteSettings: failed to open the database, or open a transaction"
13964 + invoke-static {v1, v2, v9}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
13965 + :try_end_107
13966 + .catchall {:try_start_100 .. :try_end_107} :catchall_148
13968 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
13970 + goto :goto_fa
13972 + :cond_10b
13973 + :try_start_10b
13974 + const-string v1, "PrivacyPersistenceAdapter"
13976 + new-instance v2, Ljava/lang/StringBuilder;
13978 + invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
13980 + const-string v3, "deleteSettings - database entry for "
13982 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13984 + move-result-object v2
13986 + invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13988 + move-result-object v2
13990 + const-string v3, " not found"
13992 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13994 + move-result-object v2
13996 + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
13998 + move-result-object v2
14000 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
14001 + :try_end_129
14002 + .catchall {:try_start_10b .. :try_end_129} :catchall_12b
14004 + goto/16 :goto_69
14006 + :catchall_12b
14007 + move-exception v1
14009 + :try_start_12c
14010 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
14012 + throw v1
14013 + :try_end_130
14014 + .catchall {:try_start_12c .. :try_end_130} :catchall_130
14016 + :catchall_130
14017 + move-exception v1
14019 + :try_start_131
14020 + sget-object v2, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
14022 + invoke-interface {v2}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
14024 + move-result-object v2
14026 + invoke-interface {v2}, Ljava/util/concurrent/locks/Lock;->unlock()V
14028 + throw v1
14029 + :try_end_13b
14030 + .catchall {:try_start_131 .. :try_end_13b} :catchall_148
14031 + .catch Landroid/database/sqlite/SQLiteException; {:try_start_131 .. :try_end_13b} :catch_fe
14032 + .catch Ljava/lang/Exception; {:try_start_131 .. :try_end_13b} :catch_13b
14034 + :catch_13b
14035 + move-exception v9
14037 + const/4 v11, 0x0
14039 + :try_start_13d
14040 + const-string v1, "PrivacyPersistenceAdapter"
14042 + const-string v2, "PrivacyPersistenceAdapter:deleteSettings - could not delete settings"
14044 + invoke-static {v1, v2, v9}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
14045 + :try_end_144
14046 + .catchall {:try_start_13d .. :try_end_144} :catchall_148
14048 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
14050 + goto :goto_fa
14052 + :catchall_148
14053 + move-exception v1
14055 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
14057 + throw v1
14058 +.end method
14060 +.method public getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
14061 + .registers 58
14063 + const/16 v55, 0x0
14065 + if-nez p1, :cond_c
14067 + new-instance v1, Ljava/security/InvalidParameterException;
14069 + const-string v4, "PrivacyPersistenceAdapter:getSettings:insufficient application identifier - package name is required"
14071 + invoke-direct {v1, v4}, Ljava/security/InvalidParameterException;-><init>(Ljava/lang/String;)V
14073 + throw v1
14075 + :cond_c
14076 + :try_start_c
14077 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
14079 + monitor-enter v4
14080 + :try_end_f
14081 + .catch Landroid/database/sqlite/SQLiteException; {:try_start_c .. :try_end_f} :catch_2ce
14083 + :try_start_f
14084 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
14086 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
14088 + invoke-virtual {v1}, Ljava/lang/Integer;->intValue()I
14090 + move-result v1
14092 + add-int/lit8 v1, v1, 0x1
14094 + invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
14096 + move-result-object v1
14098 + sput-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
14100 + monitor-exit v4
14101 + :try_end_20
14102 + .catchall {:try_start_f .. :try_end_20} :catchall_2cb
14104 + :try_start_20
14105 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->getDatabase()Landroid/database/sqlite/SQLiteDatabase;
14106 + :try_end_23
14107 + .catch Landroid/database/sqlite/SQLiteException; {:try_start_20 .. :try_end_23} :catch_2ce
14109 + move-result-object v2
14111 + const/16 v53, 0x0
14113 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
14115 + invoke-interface {v1}, Ljava/util/concurrent/locks/ReadWriteLock;->readLock()Ljava/util/concurrent/locks/Lock;
14117 + move-result-object v1
14119 + invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->lock()V
14121 + :try_start_2f
14122 + const-string/jumbo v3, "settings"
14124 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->DATABASE_FIELDS:[Ljava/lang/String;
14126 + const-string/jumbo v5, "packageName=?"
14128 + const/4 v1, 0x1
14130 + new-array v6, v1, [Ljava/lang/String;
14132 + const/4 v1, 0x0
14134 + aput-object p1, v6, v1
14136 + const/4 v7, 0x0
14138 + const/4 v8, 0x0
14140 + const/4 v9, 0x0
14142 + const/4 v10, 0x0
14144 + move-object/from16 v1, p0
14146 + 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;
14148 + move-result-object v53
14150 + if-eqz v53, :cond_310
14152 + invoke-interface/range {v53 .. v53}, Landroid/database/Cursor;->getCount()I
14154 + move-result v1
14156 + const/4 v4, 0x1
14158 + if-eq v1, v4, :cond_6a
14160 + const-string v1, "PrivacyPersistenceAdapter"
14162 + new-instance v4, Ljava/lang/StringBuilder;
14164 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
14166 + const-string v5, "Multiple privacy settings found for package "
14168 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
14170 + move-result-object v4
14172 + move-object/from16 v0, p1
14174 + invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
14176 + move-result-object v4
14178 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
14180 + move-result-object v4
14182 + invoke-static {v1, v4}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
14184 + :cond_6a
14185 + invoke-interface/range {v53 .. v53}, Landroid/database/Cursor;->moveToFirst()Z
14187 + move-result v1
14189 + if-eqz v1, :cond_310
14191 + new-instance v3, Landroid/privacy/PrivacySettings;
14193 + const/4 v1, 0x0
14195 + move-object/from16 v0, v53
14197 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getInt(I)I
14199 + move-result v1
14201 + invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
14203 + move-result-object v4
14205 + const/4 v1, 0x1
14207 + move-object/from16 v0, v53
14209 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14211 + move-result-object v5
14213 + const/4 v1, 0x2
14215 + move-object/from16 v0, v53
14217 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getInt(I)I
14219 + move-result v6
14221 + const/4 v1, 0x3
14223 + move-object/from16 v0, v53
14225 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14227 + move-result v1
14229 + int-to-byte v7, v1
14231 + const/4 v1, 0x4
14233 + move-object/from16 v0, v53
14235 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14237 + move-result-object v8
14239 + const/4 v1, 0x5
14241 + move-object/from16 v0, v53
14243 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14245 + move-result v1
14247 + int-to-byte v9, v1
14249 + const/4 v1, 0x6
14251 + move-object/from16 v0, v53
14253 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14255 + move-result-object v10
14257 + const/4 v1, 0x7
14259 + move-object/from16 v0, v53
14261 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14263 + move-result v1
14265 + int-to-byte v11, v1
14267 + const/16 v1, 0x8
14269 + move-object/from16 v0, v53
14271 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14273 + move-result-object v12
14275 + const/16 v1, 0x9
14277 + move-object/from16 v0, v53
14279 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14281 + move-result-object v13
14283 + const/16 v1, 0xa
14285 + move-object/from16 v0, v53
14287 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14289 + move-result v1
14291 + int-to-byte v14, v1
14293 + const/16 v1, 0xb
14295 + move-object/from16 v0, v53
14297 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14299 + move-result-object v15
14301 + const/16 v1, 0xc
14303 + move-object/from16 v0, v53
14305 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14307 + move-result-object v16
14309 + const/16 v1, 0xd
14311 + move-object/from16 v0, v53
14313 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14315 + move-result v1
14317 + int-to-byte v0, v1
14319 + move/from16 v17, v0
14321 + const/16 v1, 0xe
14323 + move-object/from16 v0, v53
14325 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14327 + move-result v1
14329 + int-to-byte v0, v1
14331 + move/from16 v18, v0
14333 + const/16 v1, 0xf
14335 + move-object/from16 v0, v53
14337 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14339 + move-result v1
14341 + int-to-byte v0, v1
14343 + move/from16 v19, v0
14345 + const/16 v1, 0x10
14347 + move-object/from16 v0, v53
14349 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14351 + move-result-object v20
14353 + const/16 v1, 0x11
14355 + move-object/from16 v0, v53
14357 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14359 + move-result v1
14361 + int-to-byte v0, v1
14363 + move/from16 v21, v0
14365 + const/16 v1, 0x12
14367 + move-object/from16 v0, v53
14369 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14371 + move-result-object v22
14373 + const/16 v1, 0x13
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 v23, v0
14385 + const/16 v1, 0x14
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 v24, v0
14397 + const/16 v1, 0x15
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 v25, v0
14409 + const/16 v1, 0x16
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 v26, v0
14421 + const/16 v1, 0x17
14423 + move-object/from16 v0, v53
14425 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14427 + move-result v1
14429 + int-to-byte v0, v1
14431 + move/from16 v27, v0
14433 + const/16 v1, 0x18
14435 + move-object/from16 v0, v53
14437 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14439 + move-result v1
14441 + int-to-byte v0, v1
14443 + move/from16 v28, v0
14445 + const/16 v1, 0x19
14447 + move-object/from16 v0, v53
14449 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14451 + move-result v1
14453 + int-to-byte v0, v1
14455 + move/from16 v29, v0
14457 + const/16 v1, 0x1a
14459 + move-object/from16 v0, v53
14461 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14463 + move-result v1
14465 + int-to-byte v0, v1
14467 + move/from16 v30, v0
14469 + const/16 v1, 0x1b
14471 + move-object/from16 v0, v53
14473 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14475 + move-result v1
14477 + int-to-byte v0, v1
14479 + move/from16 v31, v0
14481 + const/16 v1, 0x1c
14483 + move-object/from16 v0, v53
14485 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14487 + move-result v1
14489 + int-to-byte v0, v1
14491 + move/from16 v32, v0
14493 + const/16 v1, 0x1d
14495 + move-object/from16 v0, v53
14497 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14499 + move-result v1
14501 + int-to-byte v0, v1
14503 + move/from16 v33, v0
14505 + const/16 v1, 0x1e
14507 + move-object/from16 v0, v53
14509 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14511 + move-result v1
14513 + int-to-byte v0, v1
14515 + move/from16 v34, v0
14517 + const/16 v1, 0x1f
14519 + move-object/from16 v0, v53
14521 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14523 + move-result v1
14525 + int-to-byte v0, v1
14527 + move/from16 v35, v0
14529 + const/16 v1, 0x20
14531 + move-object/from16 v0, v53
14533 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14535 + move-result v1
14537 + int-to-byte v0, v1
14539 + move/from16 v36, v0
14541 + const/16 v1, 0x21
14543 + move-object/from16 v0, v53
14545 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14547 + move-result v1
14549 + int-to-byte v0, v1
14551 + move/from16 v37, v0
14553 + const/16 v1, 0x22
14555 + move-object/from16 v0, v53
14557 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14559 + move-result v1
14561 + int-to-byte v0, v1
14563 + move/from16 v38, v0
14565 + const/16 v39, 0x0
14567 + const/16 v1, 0x23
14569 + move-object/from16 v0, v53
14571 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14573 + move-result v1
14575 + int-to-byte v0, v1
14577 + move/from16 v40, v0
14579 + const/16 v1, 0x24
14581 + move-object/from16 v0, v53
14583 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14585 + move-result v1
14587 + int-to-byte v0, v1
14589 + move/from16 v41, v0
14591 + const/16 v1, 0x25
14593 + move-object/from16 v0, v53
14595 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14597 + move-result v1
14599 + int-to-byte v0, v1
14601 + move/from16 v42, v0
14603 + const/16 v1, 0x26
14605 + move-object/from16 v0, v53
14607 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14609 + move-result v1
14611 + int-to-byte v0, v1
14613 + move/from16 v43, v0
14615 + const/16 v1, 0x27
14617 + move-object/from16 v0, v53
14619 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14621 + move-result v1
14623 + int-to-byte v0, v1
14625 + move/from16 v44, v0
14627 + const/16 v1, 0x28
14629 + move-object/from16 v0, v53
14631 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14633 + move-result v1
14635 + int-to-byte v0, v1
14637 + move/from16 v45, v0
14639 + const/16 v1, 0x29
14641 + move-object/from16 v0, v53
14643 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14645 + move-result-object v46
14647 + const/16 v1, 0x2a
14649 + move-object/from16 v0, v53
14651 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14653 + move-result v1
14655 + int-to-byte v0, v1
14657 + move/from16 v47, v0
14659 + const/16 v1, 0x2b
14661 + move-object/from16 v0, v53
14663 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14665 + move-result v1
14667 + int-to-byte v0, v1
14669 + move/from16 v48, v0
14671 + const/16 v1, 0x2c
14673 + move-object/from16 v0, v53
14675 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14677 + move-result v1
14679 + int-to-byte v0, v1
14681 + move/from16 v49, v0
14683 + const/16 v1, 0x2d
14685 + move-object/from16 v0, v53
14687 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14689 + move-result v1
14691 + int-to-byte v0, v1
14693 + move/from16 v50, v0
14695 + const/16 v1, 0x2e
14697 + move-object/from16 v0, v53
14699 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14701 + move-result v1
14703 + int-to-byte v0, v1
14705 + move/from16 v51, v0
14707 + 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
14708 + :try_end_24c
14709 + .catchall {:try_start_2f .. :try_end_24c} :catchall_2f5
14710 + .catch Ljava/lang/Exception; {:try_start_2f .. :try_end_24c} :catch_30c
14712 + :try_start_24c
14713 + const-string v6, "allowed_contacts"
14715 + const/4 v1, 0x1
14717 + new-array v7, v1, [Ljava/lang/String;
14719 + const/4 v1, 0x0
14721 + const-string v4, "contact_id"
14723 + aput-object v4, v7, v1
14725 + const-string/jumbo v8, "settings_id=?"
14727 + const/4 v1, 0x1
14729 + new-array v9, v1, [Ljava/lang/String;
14731 + const/4 v1, 0x0
14733 + invoke-virtual {v3}, Landroid/privacy/PrivacySettings;->get_id()Ljava/lang/Integer;
14735 + move-result-object v4
14737 + invoke-virtual {v4}, Ljava/lang/Integer;->intValue()I
14739 + move-result v4
14741 + invoke-static {v4}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;
14743 + move-result-object v4
14745 + aput-object v4, v9, v1
14747 + const/4 v10, 0x0
14749 + const/4 v11, 0x0
14751 + const/4 v12, 0x0
14753 + const/4 v13, 0x0
14755 + move-object/from16 v4, p0
14757 + move-object v5, v2
14759 + 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;
14761 + move-result-object v53
14763 + if-eqz v53, :cond_2e3
14765 + invoke-interface/range {v53 .. v53}, Landroid/database/Cursor;->getCount()I
14767 + move-result v1
14769 + if-lez v1, :cond_2e3
14771 + invoke-interface/range {v53 .. v53}, Landroid/database/Cursor;->getCount()I
14773 + move-result v1
14775 + new-array v0, v1, [I
14777 + move-object/from16 v52, v0
14779 + :goto_286
14780 + invoke-interface/range {v53 .. v53}, Landroid/database/Cursor;->moveToNext()Z
14782 + move-result v1
14784 + if-eqz v1, :cond_2de
14786 + invoke-interface/range {v53 .. v53}, Landroid/database/Cursor;->getPosition()I
14788 + move-result v1
14790 + const/4 v4, 0x0
14792 + move-object/from16 v0, v53
14794 + invoke-interface {v0, v4}, Landroid/database/Cursor;->getInt(I)I
14796 + move-result v4
14798 + aput v4, v52, v1
14799 + :try_end_299
14800 + .catchall {:try_start_24c .. :try_end_299} :catchall_30a
14801 + .catch Ljava/lang/Exception; {:try_start_24c .. :try_end_299} :catch_29a
14803 + goto :goto_286
14805 + :catch_29a
14806 + move-exception v54
14808 + :goto_29b
14809 + :try_start_29b
14810 + const-string v1, "PrivacyPersistenceAdapter"
14812 + new-instance v4, Ljava/lang/StringBuilder;
14814 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
14816 + const-string v5, "getSettings - failed to get settings for package: "
14818 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
14820 + move-result-object v4
14822 + move-object/from16 v0, p1
14824 + invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
14826 + move-result-object v4
14828 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
14830 + move-result-object v4
14832 + move-object/from16 v0, v54
14834 + invoke-static {v1, v4, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
14835 + :try_end_2b7
14836 + .catchall {:try_start_29b .. :try_end_2b7} :catchall_30a
14838 + if-eqz v53, :cond_2bc
14840 + invoke-interface/range {v53 .. v53}, Landroid/database/Cursor;->close()V
14842 + :cond_2bc
14843 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
14845 + invoke-interface {v1}, Ljava/util/concurrent/locks/ReadWriteLock;->readLock()Ljava/util/concurrent/locks/Lock;
14847 + move-result-object v1
14849 + invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V
14851 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
14853 + :goto_2c8
14854 + move-object/from16 v55, v3
14856 + :goto_2ca
14857 + return-object v55
14859 + :catchall_2cb
14860 + move-exception v1
14862 + :try_start_2cc
14863 + monitor-exit v4
14864 + :try_end_2cd
14865 + .catchall {:try_start_2cc .. :try_end_2cd} :catchall_2cb
14867 + :try_start_2cd
14868 + throw v1
14869 + :try_end_2ce
14870 + .catch Landroid/database/sqlite/SQLiteException; {:try_start_2cd .. :try_end_2ce} :catch_2ce
14872 + :catch_2ce
14873 + move-exception v54
14875 + const-string v1, "PrivacyPersistenceAdapter"
14877 + const-string v4, "getSettings - database could not be opened"
14879 + move-object/from16 v0, v54
14881 + invoke-static {v1, v4, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
14883 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
14885 + move-object/from16 v3, v55
14887 + goto :goto_2ca
14889 + :cond_2de
14890 + :try_start_2de
14891 + move-object/from16 v0, v52
14893 + invoke-virtual {v3, v0}, Landroid/privacy/PrivacySettings;->setAllowedContacts([I)V
14894 + :try_end_2e3
14895 + .catchall {:try_start_2de .. :try_end_2e3} :catchall_30a
14896 + .catch Ljava/lang/Exception; {:try_start_2de .. :try_end_2e3} :catch_29a
14898 + :cond_2e3
14899 + :goto_2e3
14900 + if-eqz v53, :cond_2e8
14902 + invoke-interface/range {v53 .. v53}, Landroid/database/Cursor;->close()V
14904 + :cond_2e8
14905 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
14907 + invoke-interface {v1}, Ljava/util/concurrent/locks/ReadWriteLock;->readLock()Ljava/util/concurrent/locks/Lock;
14909 + move-result-object v1
14911 + invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V
14913 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
14915 + goto :goto_2c8
14917 + :catchall_2f5
14918 + move-exception v1
14920 + move-object/from16 v3, v55
14922 + :goto_2f8
14923 + if-eqz v53, :cond_2fd
14925 + invoke-interface/range {v53 .. v53}, Landroid/database/Cursor;->close()V
14927 + :cond_2fd
14928 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
14930 + invoke-interface {v4}, Ljava/util/concurrent/locks/ReadWriteLock;->readLock()Ljava/util/concurrent/locks/Lock;
14932 + move-result-object v4
14934 + invoke-interface {v4}, Ljava/util/concurrent/locks/Lock;->unlock()V
14936 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
14938 + throw v1
14940 + :catchall_30a
14941 + move-exception v1
14943 + goto :goto_2f8
14945 + :catch_30c
14946 + move-exception v54
14948 + move-object/from16 v3, v55
14950 + goto :goto_29b
14952 + :cond_310
14953 + move-object/from16 v3, v55
14955 + goto :goto_2e3
14956 +.end method
14958 +.method public getValue(Ljava/lang/String;)Ljava/lang/String;
14959 + .registers 15
14961 + const/4 v0, 0x0
14963 + const/4 v12, 0x0
14965 + :try_start_2
14966 + sget-object v2, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
14968 + monitor-enter v2
14969 + :try_end_5
14970 + .catchall {:try_start_2 .. :try_end_5} :catchall_41
14972 + :try_start_5
14973 + sget-object v3, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
14975 + sget-object v3, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
14977 + invoke-virtual {v3}, Ljava/lang/Integer;->intValue()I
14979 + move-result v3
14981 + add-int/lit8 v3, v3, 0x1
14983 + invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
14985 + move-result-object v3
14987 + sput-object v3, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
14989 + monitor-exit v2
14990 + :try_end_16
14991 + .catchall {:try_start_5 .. :try_end_16} :catchall_3e
14993 + :try_start_16
14994 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->getDatabase()Landroid/database/sqlite/SQLiteDatabase;
14996 + move-result-object v1
14998 + if-eqz v1, :cond_22
15000 + invoke-virtual {v1}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z
15002 + move-result v2
15004 + if-nez v2, :cond_46
15006 + :cond_22
15007 + const-string v2, "PrivacyPersistenceAdapter"
15009 + new-instance v3, Ljava/lang/StringBuilder;
15011 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
15013 + const-string v4, "PrivacyPersistenceAdapter:getValue: Database not obtained while getting value for name: "
15015 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
15017 + move-result-object v3
15019 + invoke-virtual {v3, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
15021 + move-result-object v3
15023 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
15025 + move-result-object v3
15027 + invoke-static {v2, v3}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
15028 + :try_end_3a
15029 + .catchall {:try_start_16 .. :try_end_3a} :catchall_41
15031 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
15033 + :goto_3d
15034 + return-object v0
15036 + :catchall_3e
15037 + move-exception v0
15039 + :try_start_3f
15040 + monitor-exit v2
15041 + :try_end_40
15042 + .catchall {:try_start_3f .. :try_end_40} :catchall_3e
15044 + :try_start_40
15045 + throw v0
15046 + :try_end_41
15047 + .catchall {:try_start_40 .. :try_end_41} :catchall_41
15049 + :catchall_41
15050 + move-exception v0
15052 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
15054 + throw v0
15056 + :cond_46
15057 + :try_start_46
15058 + sget-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
15060 + invoke-interface {v0}, Ljava/util/concurrent/locks/ReadWriteLock;->readLock()Ljava/util/concurrent/locks/Lock;
15062 + move-result-object v0
15064 + invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V
15065 + :try_end_4f
15066 + .catchall {:try_start_46 .. :try_end_4f} :catchall_41
15068 + :try_start_4f
15069 + const-string/jumbo v2, "map"
15071 + const/4 v0, 0x1
15073 + new-array v3, v0, [Ljava/lang/String;
15075 + const/4 v0, 0x0
15077 + const-string/jumbo v4, "value"
15079 + aput-object v4, v3, v0
15081 + const-string/jumbo v4, "name=?"
15083 + const/4 v0, 0x1
15085 + new-array v5, v0, [Ljava/lang/String;
15087 + const/4 v0, 0x0
15089 + aput-object p1, v5, v0
15091 + const/4 v6, 0x0
15093 + const/4 v7, 0x0
15095 + const/4 v8, 0x0
15097 + const/4 v9, 0x0
15099 + move-object v0, p0
15101 + 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;
15103 + move-result-object v10
15105 + if-eqz v10, :cond_97
15107 + invoke-interface {v10}, Landroid/database/Cursor;->getCount()I
15109 + move-result v0
15111 + if-lez v0, :cond_97
15113 + invoke-interface {v10}, Landroid/database/Cursor;->moveToFirst()Z
15115 + move-result v0
15117 + if-eqz v0, :cond_97
15119 + const-string/jumbo v0, "value"
15121 + invoke-interface {v10, v0}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I
15123 + move-result v0
15125 + invoke-interface {v10, v0}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
15127 + move-result-object v12
15129 + invoke-interface {v10}, Landroid/database/Cursor;->close()V
15130 + :try_end_89
15131 + .catchall {:try_start_4f .. :try_end_89} :catchall_d3
15132 + .catch Ljava/lang/Exception; {:try_start_4f .. :try_end_89} :catch_b0
15134 + :goto_89
15135 + :try_start_89
15136 + sget-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
15138 + invoke-interface {v0}, Ljava/util/concurrent/locks/ReadWriteLock;->readLock()Ljava/util/concurrent/locks/Lock;
15140 + move-result-object v0
15142 + invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V
15143 + :try_end_92
15144 + .catchall {:try_start_89 .. :try_end_92} :catchall_41
15146 + :goto_92
15147 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
15149 + move-object v0, v12
15151 + goto :goto_3d
15153 + :cond_97
15154 + :try_start_97
15155 + const-string v0, "PrivacyPersistenceAdapter"
15157 + new-instance v2, Ljava/lang/StringBuilder;
15159 + invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
15161 + const-string v3, "PrivacyPersistenceAdapter:getValue: Could not get value for name: "
15163 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
15165 + move-result-object v2
15167 + invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
15169 + move-result-object v2
15171 + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
15173 + move-result-object v2
15175 + invoke-static {v0, v2}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
15176 + :try_end_af
15177 + .catchall {:try_start_97 .. :try_end_af} :catchall_d3
15178 + .catch Ljava/lang/Exception; {:try_start_97 .. :try_end_af} :catch_b0
15180 + goto :goto_89
15182 + :catch_b0
15183 + move-exception v11
15185 + :try_start_b1
15186 + const-string v0, "PrivacyPersistenceAdapter"
15188 + new-instance v2, Ljava/lang/StringBuilder;
15190 + invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
15192 + const-string v3, "PrivacyPersistenceAdapter:getValue: Exception occurred while getting value for name: "
15194 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
15196 + move-result-object v2
15198 + invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
15200 + move-result-object v2
15202 + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
15204 + move-result-object v2
15206 + invoke-static {v0, v2, v11}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
15207 + :try_end_c9
15208 + .catchall {:try_start_b1 .. :try_end_c9} :catchall_d3
15210 + :try_start_c9
15211 + sget-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
15213 + invoke-interface {v0}, Ljava/util/concurrent/locks/ReadWriteLock;->readLock()Ljava/util/concurrent/locks/Lock;
15215 + move-result-object v0
15217 + invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V
15219 + goto :goto_92
15221 + :catchall_d3
15222 + move-exception v0
15224 + sget-object v2, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
15226 + invoke-interface {v2}, Ljava/util/concurrent/locks/ReadWriteLock;->readLock()Ljava/util/concurrent/locks/Lock;
15228 + move-result-object v2
15230 + invoke-interface {v2}, Ljava/util/concurrent/locks/Lock;->unlock()V
15232 + throw v0
15233 + :try_end_de
15234 + .catchall {:try_start_c9 .. :try_end_de} :catchall_41
15235 +.end method
15237 +.method public purgeSettings()Z
15238 + .registers 26
15240 + const/16 v23, 0x1
15242 + new-instance v13, Ljava/util/HashSet;
15244 + invoke-direct {v13}, Ljava/util/HashSet;-><init>()V
15246 + move-object/from16 v0, p0
15248 + iget-object v2, v0, Landroid/privacy/PrivacyPersistenceAdapter;->mContext:Landroid/content/Context;
15250 + invoke-virtual {v2}, Landroid/content/Context;->getPackageManager()Landroid/content/pm/PackageManager;
15252 + move-result-object v20
15254 + const/4 v2, 0x0
15256 + move-object/from16 v0, v20
15258 + invoke-virtual {v0, v2}, Landroid/content/pm/PackageManager;->getInstalledApplications(I)Ljava/util/List;
15260 + move-result-object v18
15262 + invoke-interface/range {v18 .. v18}, Ljava/util/List;->iterator()Ljava/util/Iterator;
15264 + move-result-object v17
15266 + :goto_1a
15267 + invoke-interface/range {v17 .. v17}, Ljava/util/Iterator;->hasNext()Z
15269 + move-result v2
15271 + if-eqz v2, :cond_2c
15273 + invoke-interface/range {v17 .. v17}, Ljava/util/Iterator;->next()Ljava/lang/Object;
15275 + move-result-object v12
15277 + check-cast v12, Landroid/content/pm/ApplicationInfo;
15279 + iget-object v2, v12, Landroid/content/pm/ApplicationInfo;->packageName:Ljava/lang/String;
15281 + invoke-interface {v13, v2}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
15283 + goto :goto_1a
15285 + :cond_2c
15286 + const/4 v3, 0x0
15288 + :try_start_2d
15289 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
15291 + monitor-enter v4
15292 + :try_end_30
15293 + .catchall {:try_start_2d .. :try_end_30} :catchall_11b
15294 + .catch Ljava/lang/Exception; {:try_start_2d .. :try_end_30} :catch_56
15296 + :try_start_30
15297 + sget-object v2, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
15299 + sget-object v2, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
15301 + invoke-virtual {v2}, Ljava/lang/Integer;->intValue()I
15303 + move-result v2
15305 + add-int/lit8 v2, v2, 0x1
15307 + invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
15309 + move-result-object v2
15311 + sput-object v2, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
15313 + monitor-exit v4
15314 + :try_end_41
15315 + .catchall {:try_start_30 .. :try_end_41} :catchall_53
15317 + :try_start_41
15318 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->getDatabase()Landroid/database/sqlite/SQLiteDatabase;
15320 + move-result-object v3
15322 + if-nez v3, :cond_68
15324 + const-string v2, "PrivacyPersistenceAdapter"
15326 + const-string v4, "PrivacyPersistenceAdapter:purgeSettings: db could not be obtained"
15328 + invoke-static {v2, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
15329 + :try_end_4e
15330 + .catchall {:try_start_41 .. :try_end_4e} :catchall_11b
15331 + .catch Ljava/lang/Exception; {:try_start_41 .. :try_end_4e} :catch_56
15333 + const/4 v2, 0x0
15335 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
15337 + :goto_52
15338 + return v2
15340 + :catchall_53
15341 + move-exception v2
15343 + :try_start_54
15344 + monitor-exit v4
15345 + :try_end_55
15346 + .catchall {:try_start_54 .. :try_end_55} :catchall_53
15348 + :try_start_55
15349 + throw v2
15350 + :try_end_56
15351 + .catchall {:try_start_55 .. :try_end_56} :catchall_11b
15352 + .catch Ljava/lang/Exception; {:try_start_55 .. :try_end_56} :catch_56
15354 + :catch_56
15355 + move-exception v16
15357 + :try_start_57
15358 + const-string v2, "PrivacyPersistenceAdapter"
15360 + const-string v4, "PrivacyPersistenceAdapter:purgeSettings - purging DB failed"
15362 + move-object/from16 v0, v16
15364 + invoke-static {v2, v4, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
15365 + :try_end_60
15366 + .catchall {:try_start_57 .. :try_end_60} :catchall_11b
15368 + const/16 v23, 0x0
15370 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
15372 + :goto_65
15373 + move/from16 v2, v23
15375 + goto :goto_52
15377 + :cond_68
15378 + :try_start_68
15379 + sget-object v2, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
15381 + invoke-interface {v2}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
15383 + move-result-object v2
15385 + invoke-interface {v2}, Ljava/util/concurrent/locks/Lock;->lock()V
15386 + :try_end_71
15387 + .catchall {:try_start_68 .. :try_end_71} :catchall_11b
15388 + .catch Ljava/lang/Exception; {:try_start_68 .. :try_end_71} :catch_56
15390 + const/4 v15, 0x0
15392 + :try_start_72
15393 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->beginTransaction()V
15394 + :try_end_75
15395 + .catchall {:try_start_72 .. :try_end_75} :catchall_110
15397 + :try_start_75
15398 + const-string/jumbo v4, "settings"
15400 + const/4 v2, 0x1
15402 + new-array v5, v2, [Ljava/lang/String;
15404 + const/4 v2, 0x0
15406 + const-string/jumbo v6, "packageName"
15408 + aput-object v6, v5, v2
15410 + const/4 v6, 0x0
15412 + const/4 v7, 0x0
15414 + const/4 v8, 0x0
15416 + const/4 v9, 0x0
15418 + const/4 v10, 0x0
15420 + const/4 v11, 0x0
15422 + move-object/from16 v2, p0
15424 + 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;
15426 + move-result-object v15
15428 + if-eqz v15, :cond_bd
15430 + invoke-interface {v15}, Landroid/database/Cursor;->getCount()I
15432 + move-result v2
15434 + if-lez v2, :cond_bd
15436 + invoke-interface {v15}, Landroid/database/Cursor;->moveToFirst()Z
15438 + move-result v2
15440 + if-eqz v2, :cond_bd
15442 + :cond_9b
15443 + const/4 v2, 0x0
15445 + invoke-interface {v15, v2}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
15447 + move-result-object v22
15449 + move-object/from16 v0, v22
15451 + invoke-interface {v13, v0}, Ljava/util/Set;->contains(Ljava/lang/Object;)Z
15453 + move-result v2
15455 + if-nez v2, :cond_b7
15457 + const-string/jumbo v2, "settings"
15459 + const-string/jumbo v4, "packageName = ?"
15461 + const/4 v5, 0x1
15463 + new-array v5, v5, [Ljava/lang/String;
15465 + const/4 v6, 0x0
15467 + aput-object v22, v5, v6
15469 + invoke-virtual {v3, v2, v4, v5}, Landroid/database/sqlite/SQLiteDatabase;->delete(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)I
15471 + :cond_b7
15472 + invoke-interface {v15}, Landroid/database/Cursor;->moveToNext()Z
15474 + move-result v2
15476 + if-nez v2, :cond_9b
15478 + :cond_bd
15479 + new-instance v24, Ljava/io/File;
15481 + const-string v2, "/data/system/privacy"
15483 + move-object/from16 v0, v24
15485 + invoke-direct {v0, v2}, Ljava/io/File;-><init>(Ljava/lang/String;)V
15487 + invoke-virtual/range {v24 .. v24}, Ljava/io/File;->listFiles()[Ljava/io/File;
15489 + move-result-object v14
15491 + array-length v0, v14
15493 + move/from16 v19, v0
15495 + const/16 v17, 0x0
15497 + :goto_cf
15498 + move/from16 v0, v17
15500 + move/from16 v1, v19
15502 + if-ge v0, v1, :cond_ed
15504 + aget-object v21, v14, v17
15506 + invoke-virtual/range {v21 .. v21}, Ljava/io/File;->getName()Ljava/lang/String;
15508 + move-result-object v22
15510 + move-object/from16 v0, v22
15512 + invoke-interface {v13, v0}, Ljava/util/Set;->contains(Ljava/lang/Object;)Z
15514 + move-result v2
15516 + if-nez v2, :cond_ea
15518 + move-object/from16 v0, p0
15520 + move-object/from16 v1, v21
15522 + invoke-direct {v0, v1}, Landroid/privacy/PrivacyPersistenceAdapter;->deleteRecursive(Ljava/io/File;)V
15524 + :cond_ea
15525 + add-int/lit8 v17, v17, 0x1
15527 + goto :goto_cf
15529 + :cond_ed
15530 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->setTransactionSuccessful()V
15531 + :try_end_f0
15532 + .catchall {:try_start_75 .. :try_end_f0} :catchall_106
15534 + if-eqz v15, :cond_f5
15536 + :try_start_f2
15537 + invoke-interface {v15}, Landroid/database/Cursor;->close()V
15539 + :cond_f5
15540 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
15541 + :try_end_f8
15542 + .catchall {:try_start_f2 .. :try_end_f8} :catchall_110
15544 + :try_start_f8
15545 + sget-object v2, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
15547 + invoke-interface {v2}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
15549 + move-result-object v2
15551 + invoke-interface {v2}, Ljava/util/concurrent/locks/Lock;->unlock()V
15552 + :try_end_101
15553 + .catchall {:try_start_f8 .. :try_end_101} :catchall_11b
15554 + .catch Ljava/lang/Exception; {:try_start_f8 .. :try_end_101} :catch_56
15556 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
15558 + goto/16 :goto_65
15560 + :catchall_106
15561 + move-exception v2
15563 + if-eqz v15, :cond_10c
15565 + :try_start_109
15566 + invoke-interface {v15}, Landroid/database/Cursor;->close()V
15568 + :cond_10c
15569 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
15571 + throw v2
15572 + :try_end_110
15573 + .catchall {:try_start_109 .. :try_end_110} :catchall_110
15575 + :catchall_110
15576 + move-exception v2
15578 + :try_start_111
15579 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
15581 + invoke-interface {v4}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
15583 + move-result-object v4
15585 + invoke-interface {v4}, Ljava/util/concurrent/locks/Lock;->unlock()V
15587 + throw v2
15588 + :try_end_11b
15589 + .catchall {:try_start_111 .. :try_end_11b} :catchall_11b
15590 + .catch Ljava/lang/Exception; {:try_start_111 .. :try_end_11b} :catch_56
15592 + :catchall_11b
15593 + move-exception v2
15595 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
15597 + throw v2
15598 +.end method
15600 +.method public saveSettings(Landroid/privacy/PrivacySettings;)Z
15601 + .registers 25
15603 + const/16 v19, 0x0
15605 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getPackageName()Ljava/lang/String;
15607 + move-result-object v18
15609 + if-eqz v18, :cond_e
15611 + invoke-virtual/range {v18 .. v18}, Ljava/lang/String;->isEmpty()Z
15613 + move-result v4
15615 + if-eqz v4, :cond_18
15617 + :cond_e
15618 + const-string v4, "PrivacyPersistenceAdapter"
15620 + const-string/jumbo v5, "saveSettings - either package name is missing"
15622 + invoke-static {v4, v5}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
15624 + const/4 v4, 0x0
15626 + :goto_17
15627 + return v4
15629 + :cond_18
15630 + new-instance v22, Landroid/content/ContentValues;
15632 + invoke-direct/range {v22 .. v22}, Landroid/content/ContentValues;-><init>()V
15634 + const-string/jumbo v4, "packageName"
15636 + move-object/from16 v0, v22
15638 + move-object/from16 v1, v18
15640 + invoke-virtual {v0, v4, v1}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
15642 + const-string/jumbo v4, "uid"
15644 + const/4 v5, -0x1
15646 + invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
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/Integer;)V
15654 + const-string v4, "deviceIdSetting"
15656 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getDeviceIdSetting()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 v4, "deviceId"
15670 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getDeviceId()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 v4, "line1NumberSetting"
15680 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getLine1NumberSetting()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 v4, "line1Number"
15694 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getLine1Number()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, "locationGpsSetting"
15704 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()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, "locationGpsLat"
15718 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getLocationGpsLat()Ljava/lang/String;
15720 + move-result-object v5
15722 + move-object/from16 v0, v22
15724 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
15726 + const-string v4, "locationGpsLon"
15728 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getLocationGpsLon()Ljava/lang/String;
15730 + move-result-object v5
15732 + move-object/from16 v0, v22
15734 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
15736 + const-string v4, "locationNetworkSetting"
15738 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
15740 + move-result v5
15742 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15744 + move-result-object v5
15746 + move-object/from16 v0, v22
15748 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15750 + const-string v4, "locationNetworkLat"
15752 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getLocationNetworkLat()Ljava/lang/String;
15754 + move-result-object v5
15756 + move-object/from16 v0, v22
15758 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
15760 + const-string v4, "locationNetworkLon"
15762 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getLocationNetworkLon()Ljava/lang/String;
15764 + move-result-object v5
15766 + move-object/from16 v0, v22
15768 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
15770 + const-string/jumbo v4, "networkInfoSetting"
15772 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
15774 + move-result v5
15776 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15778 + move-result-object v5
15780 + move-object/from16 v0, v22
15782 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15784 + const-string/jumbo v4, "simInfoSetting"
15786 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSimInfoSetting()B
15788 + move-result v5
15790 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15792 + move-result-object v5
15794 + move-object/from16 v0, v22
15796 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15798 + const-string/jumbo v4, "simSerialNumberSetting"
15800 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSimSerialNumberSetting()B
15802 + move-result v5
15804 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15806 + move-result-object v5
15808 + move-object/from16 v0, v22
15810 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15812 + const-string/jumbo v4, "simSerialNumber"
15814 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSimSerialNumber()Ljava/lang/String;
15816 + move-result-object v5
15818 + move-object/from16 v0, v22
15820 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
15822 + const-string/jumbo v4, "subscriberIdSetting"
15824 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSubscriberIdSetting()B
15826 + move-result v5
15828 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15830 + move-result-object v5
15832 + move-object/from16 v0, v22
15834 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15836 + const-string/jumbo v4, "subscriberId"
15838 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSubscriberId()Ljava/lang/String;
15840 + move-result-object v5
15842 + move-object/from16 v0, v22
15844 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
15846 + const-string v4, "accountsSetting"
15848 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getAccountsSetting()B
15850 + move-result v5
15852 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15854 + move-result-object v5
15856 + move-object/from16 v0, v22
15858 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15860 + const-string v4, "accountsAuthTokensSetting"
15862 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getAccountsAuthTokensSetting()B
15864 + move-result v5
15866 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15868 + move-result-object v5
15870 + move-object/from16 v0, v22
15872 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15874 + const-string/jumbo v4, "outgoingCallsSetting"
15876 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getOutgoingCallsSetting()B
15878 + move-result v5
15880 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15882 + move-result-object v5
15884 + move-object/from16 v0, v22
15886 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15888 + const-string v4, "incomingCallsSetting"
15890 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getIncomingCallsSetting()B
15892 + move-result v5
15894 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15896 + move-result-object v5
15898 + move-object/from16 v0, v22
15900 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15902 + const-string v4, "contactsSetting"
15904 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getContactsSetting()B
15906 + move-result v5
15908 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15910 + move-result-object v5
15912 + move-object/from16 v0, v22
15914 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15916 + const-string v4, "calendarSetting"
15918 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getCalendarSetting()B
15920 + move-result v5
15922 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15924 + move-result-object v5
15926 + move-object/from16 v0, v22
15928 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15930 + const-string/jumbo v4, "mmsSetting"
15932 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getMmsSetting()B
15934 + move-result v5
15936 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15938 + move-result-object v5
15940 + move-object/from16 v0, v22
15942 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15944 + const-string/jumbo v4, "smsSetting"
15946 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSmsSetting()B
15948 + move-result v5
15950 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15952 + move-result-object v5
15954 + move-object/from16 v0, v22
15956 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15958 + const-string v4, "callLogSetting"
15960 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getCallLogSetting()B
15962 + move-result v5
15964 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15966 + move-result-object v5
15968 + move-object/from16 v0, v22
15970 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15972 + const-string v4, "bookmarksSetting"
15974 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getBookmarksSetting()B
15976 + move-result v5
15978 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15980 + move-result-object v5
15982 + move-object/from16 v0, v22
15984 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15986 + const-string/jumbo v4, "systemLogsSetting"
15988 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSystemLogsSetting()B
15990 + move-result v5
15992 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15994 + move-result-object v5
15996 + move-object/from16 v0, v22
15998 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16000 + const-string/jumbo v4, "notificationSetting"
16002 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getNotificationSetting()B
16004 + move-result v5
16006 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16008 + move-result-object v5
16010 + move-object/from16 v0, v22
16012 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16014 + const-string v4, "intentBootCompletedSetting"
16016 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getIntentBootCompletedSetting()B
16018 + move-result v5
16020 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16022 + move-result-object v5
16024 + move-object/from16 v0, v22
16026 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16028 + const-string v4, "cameraSetting"
16030 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getCameraSetting()B
16032 + move-result v5
16034 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16036 + move-result-object v5
16038 + move-object/from16 v0, v22
16040 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16042 + const-string/jumbo v4, "recordAudioSetting"
16044 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getRecordAudioSetting()B
16046 + move-result v5
16048 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16050 + move-result-object v5
16052 + move-object/from16 v0, v22
16054 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16056 + const-string/jumbo v4, "smsSendSetting"
16058 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSmsSendSetting()B
16060 + move-result v5
16062 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16064 + move-result-object v5
16066 + move-object/from16 v0, v22
16068 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16070 + const-string/jumbo v4, "phoneCallSetting"
16072 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
16074 + move-result v5
16076 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16078 + move-result-object v5
16080 + move-object/from16 v0, v22
16082 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16084 + const-string v4, "ipTableProtectSetting"
16086 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getIpTableProtectSetting()B
16088 + move-result v5
16090 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16092 + move-result-object v5
16094 + move-object/from16 v0, v22
16096 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16098 + const-string v4, "iccAccessSetting"
16100 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getIccAccessSetting()B
16102 + move-result v5
16104 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16106 + move-result-object v5
16108 + move-object/from16 v0, v22
16110 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16112 + const-string v4, "addOnManagementSetting"
16114 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getAddOnManagementSetting()B
16116 + move-result v5
16118 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16120 + move-result-object v5
16122 + move-object/from16 v0, v22
16124 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16126 + const-string v4, "androidIdSetting"
16128 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getAndroidIdSetting()B
16130 + move-result v5
16132 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16134 + move-result-object v5
16136 + move-object/from16 v0, v22
16138 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16140 + const-string v4, "androidId"
16142 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getAndroidID()Ljava/lang/String;
16144 + move-result-object v5
16146 + move-object/from16 v0, v22
16148 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
16150 + const-string/jumbo v4, "wifiInfoSetting"
16152 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
16154 + move-result v5
16156 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16158 + move-result-object v5
16160 + move-object/from16 v0, v22
16162 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16164 + const-string/jumbo v4, "switchConnectivitySetting"
16166 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSwitchConnectivitySetting()B
16168 + move-result v5
16170 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16172 + move-result-object v5
16174 + move-object/from16 v0, v22
16176 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16178 + const-string/jumbo v4, "sendMmsSetting"
16180 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSendMmsSetting()B
16182 + move-result v5
16184 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16186 + move-result-object v5
16188 + move-object/from16 v0, v22
16190 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16192 + const-string v4, "forceOnlineState"
16194 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getForceOnlineState()B
16196 + move-result v5
16198 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16200 + move-result-object v5
16202 + move-object/from16 v0, v22
16204 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16206 + const-string/jumbo v4, "switchWifiStateSetting"
16208 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSwitchWifiStateSetting()B
16210 + move-result v5
16212 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16214 + move-result-object v5
16216 + move-object/from16 v0, v22
16218 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16220 + const/4 v3, 0x0
16222 + const/4 v13, 0x0
16224 + :try_start_2a9
16225 + sget-object v5, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
16227 + monitor-enter v5
16228 + :try_end_2ac
16229 + .catchall {:try_start_2a9 .. :try_end_2ac} :catchall_33c
16230 + .catch Ljava/lang/Exception; {:try_start_2a9 .. :try_end_2ac} :catch_311
16232 + :try_start_2ac
16233 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
16235 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
16237 + invoke-virtual {v4}, Ljava/lang/Integer;->intValue()I
16239 + move-result v4
16241 + add-int/lit8 v4, v4, 0x1
16243 + invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
16245 + move-result-object v4
16247 + sput-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
16249 + monitor-exit v5
16250 + :try_end_2bd
16251 + .catchall {:try_start_2ac .. :try_end_2bd} :catchall_339
16253 + :try_start_2bd
16254 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->getDatabase()Landroid/database/sqlite/SQLiteDatabase;
16256 + move-result-object v3
16258 + if-eqz v3, :cond_4f2
16260 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z
16262 + move-result v4
16264 + if-eqz v4, :cond_4f2
16266 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
16268 + invoke-interface {v4}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
16270 + move-result-object v4
16272 + invoke-interface {v4}, Ljava/util/concurrent/locks/Lock;->lock()V
16273 + :try_end_2d2
16274 + .catchall {:try_start_2bd .. :try_end_2d2} :catchall_33c
16275 + .catch Ljava/lang/Exception; {:try_start_2bd .. :try_end_2d2} :catch_311
16277 + :try_start_2d2
16278 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->beginTransaction()V
16279 + :try_end_2d5
16280 + .catchall {:try_start_2d2 .. :try_end_2d5} :catchall_306
16282 + :try_start_2d5
16283 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->get_id()Ljava/lang/Integer;
16285 + move-result-object v16
16287 + if-eqz v16, :cond_38d
16289 + const-string/jumbo v4, "settings"
16291 + const-string v5, "_id=?"
16293 + const/4 v6, 0x1
16295 + new-array v6, v6, [Ljava/lang/String;
16297 + const/4 v7, 0x0
16299 + invoke-virtual/range {v16 .. v16}, Ljava/lang/Integer;->toString()Ljava/lang/String;
16301 + move-result-object v8
16303 + aput-object v8, v6, v7
16305 + move-object/from16 v0, v22
16307 + 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
16309 + move-result v4
16311 + const/4 v5, 0x1
16313 + if-ge v4, v5, :cond_341
16315 + new-instance v4, Ljava/lang/Exception;
16317 + const-string/jumbo v5, "saveSettings - failed to update database entry"
16319 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
16321 + throw v4
16322 + :try_end_2fc
16323 + .catchall {:try_start_2d5 .. :try_end_2fc} :catchall_2fc
16325 + :catchall_2fc
16326 + move-exception v4
16328 + :try_start_2fd
16329 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
16331 + if-eqz v13, :cond_305
16333 + invoke-interface {v13}, Landroid/database/Cursor;->close()V
16335 + :cond_305
16336 + throw v4
16337 + :try_end_306
16338 + .catchall {:try_start_2fd .. :try_end_306} :catchall_306
16340 + :catchall_306
16341 + move-exception v4
16343 + :try_start_307
16344 + sget-object v5, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
16346 + invoke-interface {v5}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
16348 + move-result-object v5
16350 + invoke-interface {v5}, Ljava/util/concurrent/locks/Lock;->unlock()V
16352 + throw v4
16353 + :try_end_311
16354 + .catchall {:try_start_307 .. :try_end_311} :catchall_33c
16355 + .catch Ljava/lang/Exception; {:try_start_307 .. :try_end_311} :catch_311
16357 + :catch_311
16358 + move-exception v14
16360 + :try_start_312
16361 + const-string v4, "PrivacyPersistenceAdapter"
16363 + new-instance v5, Ljava/lang/StringBuilder;
16365 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
16367 + const-string v6, "PrivacyPersistenceAdapter:saveSettings: saving for "
16369 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
16371 + move-result-object v5
16373 + move-object/from16 v0, v18
16375 + invoke-virtual {v5, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
16377 + move-result-object v5
16379 + const-string v6, " failed"
16381 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
16383 + move-result-object v5
16385 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
16387 + move-result-object v5
16389 + invoke-static {v4, v5, v14}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
16390 + :try_end_332
16391 + .catchall {:try_start_312 .. :try_end_332} :catchall_33c
16393 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
16395 + :goto_335
16396 + move/from16 v4, v19
16398 + goto/16 :goto_17
16400 + :catchall_339
16401 + move-exception v4
16403 + :try_start_33a
16404 + monitor-exit v5
16405 + :try_end_33b
16406 + .catchall {:try_start_33a .. :try_end_33b} :catchall_339
16408 + :try_start_33b
16409 + throw v4
16410 + :try_end_33c
16411 + .catchall {:try_start_33b .. :try_end_33c} :catchall_33c
16412 + .catch Ljava/lang/Exception; {:try_start_33b .. :try_end_33c} :catch_311
16414 + :catchall_33c
16415 + move-exception v4
16417 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
16419 + throw v4
16421 + :cond_341
16422 + :try_start_341
16423 + const-string v4, "allowed_contacts"
16425 + const-string/jumbo v5, "settings_id=?"
16427 + const/4 v6, 0x1
16429 + new-array v6, v6, [Ljava/lang/String;
16431 + const/4 v7, 0x0
16433 + invoke-virtual/range {v16 .. v16}, Ljava/lang/Integer;->toString()Ljava/lang/String;
16435 + move-result-object v8
16437 + aput-object v8, v6, v7
16439 + invoke-virtual {v3, v4, v5, v6}, Landroid/database/sqlite/SQLiteDatabase;->delete(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)I
16441 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getAllowedContacts()[I
16443 + move-result-object v11
16445 + if-eqz v11, :cond_4af
16447 + new-instance v12, Landroid/content/ContentValues;
16449 + invoke-direct {v12}, Landroid/content/ContentValues;-><init>()V
16451 + const/4 v15, 0x0
16453 + :goto_35f
16454 + array-length v4, v11
16456 + if-ge v15, v4, :cond_4af
16458 + const-string/jumbo v4, "settings_id"
16460 + move-object/from16 v0, v16
16462 + invoke-virtual {v12, v4, v0}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Integer;)V
16464 + const-string v4, "contact_id"
16466 + aget v5, v11, v15
16468 + invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
16470 + move-result-object v5
16472 + invoke-virtual {v12, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Integer;)V
16474 + const-string v4, "allowed_contacts"
16476 + const/4 v5, 0x0
16478 + invoke-virtual {v3, v4, v5, v12}, Landroid/database/sqlite/SQLiteDatabase;->insert(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J
16480 + move-result-wide v4
16482 + const-wide/16 v6, -0x1
16484 + cmp-long v4, v4, v6
16486 + if-nez v4, :cond_38a
16488 + new-instance v4, Ljava/lang/Exception;
16490 + const-string v5, "PrivacyPersistenceAdapter:saveSettings: failed to update database entry (contacts)"
16492 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
16494 + throw v4
16496 + :cond_38a
16497 + add-int/lit8 v15, v15, 0x1
16499 + goto :goto_35f
16501 + :cond_38d
16502 + const-string/jumbo v4, "settings"
16504 + const/4 v5, 0x1
16506 + new-array v5, v5, [Ljava/lang/String;
16508 + const/4 v6, 0x0
16510 + const-string v7, "_id"
16512 + aput-object v7, v5, v6
16514 + const-string/jumbo v6, "packageName=?"
16516 + const/4 v7, 0x1
16518 + new-array v7, v7, [Ljava/lang/String;
16520 + const/4 v8, 0x0
16522 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getPackageName()Ljava/lang/String;
16524 + move-result-object v9
16526 + aput-object v9, v7, v8
16528 + const/4 v8, 0x0
16530 + const/4 v9, 0x0
16532 + const/4 v10, 0x0
16534 + 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;
16536 + move-result-object v13
16538 + if-eqz v13, :cond_4a7
16540 + invoke-interface {v13}, Landroid/database/Cursor;->getCount()I
16542 + move-result v4
16544 + const/4 v5, 0x1
16546 + if-ne v4, v5, :cond_433
16548 + const-string/jumbo v4, "settings"
16550 + const-string/jumbo v5, "packageName=?"
16552 + const/4 v6, 0x1
16554 + new-array v6, v6, [Ljava/lang/String;
16556 + const/4 v7, 0x0
16558 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getPackageName()Ljava/lang/String;
16560 + move-result-object v8
16562 + aput-object v8, v6, v7
16564 + move-object/from16 v0, v22
16566 + 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
16568 + move-result v4
16570 + const/4 v5, 0x1
16572 + if-ge v4, v5, :cond_3d7
16574 + new-instance v4, Ljava/lang/Exception;
16576 + const-string/jumbo v5, "saveSettings - failed to update database entry"
16578 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
16580 + throw v4
16582 + :cond_3d7
16583 + invoke-interface {v13}, Landroid/database/Cursor;->moveToFirst()Z
16585 + move-result v4
16587 + if-eqz v4, :cond_4af
16589 + const/4 v4, 0x0
16591 + invoke-interface {v13, v4}, Landroid/database/Cursor;->getInt(I)I
16593 + move-result v4
16595 + invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
16597 + move-result-object v17
16599 + const-string v4, "allowed_contacts"
16601 + const-string/jumbo v5, "settings_id=?"
16603 + const/4 v6, 0x1
16605 + new-array v6, v6, [Ljava/lang/String;
16607 + const/4 v7, 0x0
16609 + invoke-virtual/range {v17 .. v17}, Ljava/lang/Integer;->toString()Ljava/lang/String;
16611 + move-result-object v8
16613 + aput-object v8, v6, v7
16615 + invoke-virtual {v3, v4, v5, v6}, Landroid/database/sqlite/SQLiteDatabase;->delete(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)I
16617 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getAllowedContacts()[I
16619 + move-result-object v11
16621 + if-eqz v11, :cond_4af
16623 + new-instance v12, Landroid/content/ContentValues;
16625 + invoke-direct {v12}, Landroid/content/ContentValues;-><init>()V
16627 + const/4 v15, 0x0
16629 + :goto_404
16630 + array-length v4, v11
16632 + if-ge v15, v4, :cond_4af
16634 + const-string/jumbo v4, "settings_id"
16636 + move-object/from16 v0, v17
16638 + invoke-virtual {v12, v4, v0}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Integer;)V
16640 + const-string v4, "contact_id"
16642 + aget v5, v11, v15
16644 + invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
16646 + move-result-object v5
16648 + invoke-virtual {v12, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Integer;)V
16650 + const-string v4, "allowed_contacts"
16652 + const/4 v5, 0x0
16654 + invoke-virtual {v3, v4, v5, v12}, Landroid/database/sqlite/SQLiteDatabase;->insert(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J
16656 + move-result-wide v4
16658 + const-wide/16 v6, -0x1
16660 + cmp-long v4, v4, v6
16662 + if-nez v4, :cond_430
16664 + new-instance v4, Ljava/lang/Exception;
16666 + const-string/jumbo v5, "saveSettings - failed to update database entry (contacts)"
16668 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
16670 + throw v4
16672 + :cond_430
16673 + add-int/lit8 v15, v15, 0x1
16675 + goto :goto_404
16677 + :cond_433
16678 + invoke-interface {v13}, Landroid/database/Cursor;->getCount()I
16680 + move-result v4
16682 + if-nez v4, :cond_49f
16684 + const-string/jumbo v4, "settings"
16686 + const/4 v5, 0x0
16688 + move-object/from16 v0, v22
16690 + invoke-virtual {v3, v4, v5, v0}, Landroid/database/sqlite/SQLiteDatabase;->insert(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J
16692 + move-result-wide v20
16694 + const-wide/16 v4, -0x1
16696 + cmp-long v4, v20, v4
16698 + if-nez v4, :cond_451
16700 + new-instance v4, Ljava/lang/Exception;
16702 + const-string v5, "PrivacyPersistenceAdapter:saveSettings - failed to insert new record into DB"
16704 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
16706 + throw v4
16708 + :cond_451
16709 + const-string v4, "allowed_contacts"
16711 + const-string/jumbo v5, "settings_id=?"
16713 + const/4 v6, 0x1
16715 + new-array v6, v6, [Ljava/lang/String;
16717 + const/4 v7, 0x0
16719 + invoke-static/range {v20 .. v21}, Ljava/lang/Long;->toString(J)Ljava/lang/String;
16721 + move-result-object v8
16723 + aput-object v8, v6, v7
16725 + invoke-virtual {v3, v4, v5, v6}, Landroid/database/sqlite/SQLiteDatabase;->delete(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)I
16727 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getAllowedContacts()[I
16729 + move-result-object v11
16731 + if-eqz v11, :cond_4af
16733 + new-instance v12, Landroid/content/ContentValues;
16735 + invoke-direct {v12}, Landroid/content/ContentValues;-><init>()V
16737 + const/4 v15, 0x0
16739 + :goto_46f
16740 + array-length v4, v11
16742 + if-ge v15, v4, :cond_4af
16744 + const-string/jumbo v4, "settings_id"
16746 + invoke-static/range {v20 .. v21}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
16748 + move-result-object v5
16750 + invoke-virtual {v12, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Long;)V
16752 + const-string v4, "contact_id"
16754 + aget v5, v11, v15
16756 + invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
16758 + move-result-object v5
16760 + invoke-virtual {v12, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Integer;)V
16762 + const-string v4, "allowed_contacts"
16764 + const/4 v5, 0x0
16766 + invoke-virtual {v3, v4, v5, v12}, Landroid/database/sqlite/SQLiteDatabase;->insert(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J
16768 + move-result-wide v4
16770 + const-wide/16 v6, -0x1
16772 + cmp-long v4, v4, v6
16774 + if-nez v4, :cond_49c
16776 + new-instance v4, Ljava/lang/Exception;
16778 + const-string v5, "PrivacyPersistenceAdapter:saveSettings:failed to update database entry (contacts)"
16780 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
16782 + throw v4
16784 + :cond_49c
16785 + add-int/lit8 v15, v15, 0x1
16787 + goto :goto_46f
16789 + :cond_49f
16790 + new-instance v4, Ljava/lang/Exception;
16792 + const-string v5, "PrivacyPersistenceAdapter:saveSettings:duplicate entries in the privacy.db"
16794 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
16796 + throw v4
16798 + :cond_4a7
16799 + new-instance v4, Ljava/lang/Exception;
16801 + const-string v5, "PrivacyPersistenceAdapter:saveSettings:cursor is null, database access failed"
16803 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
16805 + throw v4
16807 + :cond_4af
16808 + const-string/jumbo v4, "systemLogsSetting"
16810 + move-object/from16 v0, p0
16812 + move-object/from16 v1, v18
16814 + move-object/from16 v2, p1
16816 + invoke-direct {v0, v4, v1, v2}, Landroid/privacy/PrivacyPersistenceAdapter;->writeExternalSettings(Ljava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)Z
16818 + move-result v4
16820 + if-nez v4, :cond_4c6
16822 + new-instance v4, Ljava/lang/Exception;
16824 + const-string v5, "PrivacyPersistenceAdapter:saveSettings:failed to write systemLogsSettings file"
16826 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
16828 + throw v4
16830 + :cond_4c6
16831 + const-string v4, "ipTableProtectSetting"
16833 + move-object/from16 v0, p0
16835 + move-object/from16 v1, v18
16837 + move-object/from16 v2, p1
16839 + invoke-direct {v0, v4, v1, v2}, Landroid/privacy/PrivacyPersistenceAdapter;->writeExternalSettings(Ljava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)Z
16841 + move-result v4
16843 + if-nez v4, :cond_4dc
16845 + new-instance v4, Ljava/lang/Exception;
16847 + const-string v5, "PrivacyPersistenceAdapter:saveSettings:failed to write ipTableProtectSetting file"
16849 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
16851 + throw v4
16853 + :cond_4dc
16854 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->setTransactionSuccessful()V
16855 + :try_end_4df
16856 + .catchall {:try_start_341 .. :try_end_4df} :catchall_2fc
16858 + :try_start_4df
16859 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
16861 + if-eqz v13, :cond_4e7
16863 + invoke-interface {v13}, Landroid/database/Cursor;->close()V
16864 + :try_end_4e7
16865 + .catchall {:try_start_4df .. :try_end_4e7} :catchall_306
16867 + :cond_4e7
16868 + :try_start_4e7
16869 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
16871 + invoke-interface {v4}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
16873 + move-result-object v4
16875 + invoke-interface {v4}, Ljava/util/concurrent/locks/Lock;->unlock()V
16876 + :try_end_4f0
16877 + .catchall {:try_start_4e7 .. :try_end_4f0} :catchall_33c
16878 + .catch Ljava/lang/Exception; {:try_start_4e7 .. :try_end_4f0} :catch_311
16880 + const/16 v19, 0x1
16882 + :cond_4f2
16883 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
16885 + goto/16 :goto_335
16886 +.end method
16888 +.method public setValue(Ljava/lang/String;Ljava/lang/String;)Z
16889 + .registers 11
16891 + const/4 v3, 0x0
16893 + const-string v4, "PrivacyPersistenceAdapter"
16895 + new-instance v5, Ljava/lang/StringBuilder;
16897 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
16899 + const-string/jumbo v6, "setValue - name "
16901 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
16903 + move-result-object v5
16905 + invoke-virtual {v5, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
16907 + move-result-object v5
16909 + const-string v6, " value "
16911 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
16913 + move-result-object v5
16915 + invoke-virtual {v5, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
16917 + move-result-object v5
16919 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
16921 + move-result-object v5
16923 + invoke-static {v4, v5}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
16925 + new-instance v2, Landroid/content/ContentValues;
16927 + invoke-direct {v2}, Landroid/content/ContentValues;-><init>()V
16929 + const-string/jumbo v4, "name"
16931 + invoke-virtual {v2, v4, p1}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
16933 + const-string/jumbo v4, "value"
16935 + invoke-virtual {v2, v4, p2}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
16937 + const/4 v1, 0x0
16939 + :try_start_36
16940 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
16942 + monitor-enter v4
16943 + :try_end_39
16944 + .catchall {:try_start_36 .. :try_end_39} :catchall_75
16946 + :try_start_39
16947 + sget-object v5, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
16949 + sget-object v5, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
16951 + invoke-virtual {v5}, Ljava/lang/Integer;->intValue()I
16953 + move-result v5
16955 + add-int/lit8 v5, v5, 0x1
16957 + invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
16959 + move-result-object v5
16961 + sput-object v5, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
16963 + monitor-exit v4
16964 + :try_end_4a
16965 + .catchall {:try_start_39 .. :try_end_4a} :catchall_72
16967 + :try_start_4a
16968 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->getDatabase()Landroid/database/sqlite/SQLiteDatabase;
16970 + move-result-object v0
16972 + if-eqz v0, :cond_56
16974 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z
16976 + move-result v4
16978 + if-nez v4, :cond_7a
16980 + :cond_56
16981 + const-string v4, "PrivacyPersistenceAdapter"
16983 + new-instance v5, Ljava/lang/StringBuilder;
16985 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
16987 + const-string v6, "PrivacyPersistenceAdapter:setValue: Database not obtained while setting value for name: "
16989 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
16991 + move-result-object v5
16993 + invoke-virtual {v5, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
16995 + move-result-object v5
16997 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
16999 + move-result-object v5
17001 + invoke-static {v4, v5}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
17002 + :try_end_6e
17003 + .catchall {:try_start_4a .. :try_end_6e} :catchall_75
17005 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
17007 + :goto_71
17008 + return v3
17010 + :catchall_72
17011 + move-exception v3
17013 + :try_start_73
17014 + monitor-exit v4
17015 + :try_end_74
17016 + .catchall {:try_start_73 .. :try_end_74} :catchall_72
17018 + :try_start_74
17019 + throw v3
17020 + :try_end_75
17021 + .catchall {:try_start_74 .. :try_end_75} :catchall_75
17023 + :catchall_75
17024 + move-exception v3
17026 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
17028 + throw v3
17030 + :cond_7a
17031 + :try_start_7a
17032 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
17034 + invoke-interface {v4}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
17036 + move-result-object v4
17038 + invoke-interface {v4}, Ljava/util/concurrent/locks/Lock;->lock()V
17039 + :try_end_83
17040 + .catchall {:try_start_7a .. :try_end_83} :catchall_75
17042 + :try_start_83
17043 + const-string/jumbo v4, "map"
17045 + const/4 v5, 0x0
17047 + invoke-virtual {v0, v4, v5, v2}, Landroid/database/sqlite/SQLiteDatabase;->replace(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J
17048 + :try_end_8a
17049 + .catchall {:try_start_83 .. :try_end_8a} :catchall_a2
17051 + move-result-wide v4
17053 + const-wide/16 v6, -0x1
17055 + cmp-long v4, v4, v6
17057 + if-eqz v4, :cond_a0
17059 + const/4 v1, 0x1
17061 + :goto_92
17062 + :try_start_92
17063 + sget-object v3, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
17065 + invoke-interface {v3}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
17067 + move-result-object v3
17069 + invoke-interface {v3}, Ljava/util/concurrent/locks/Lock;->unlock()V
17070 + :try_end_9b
17071 + .catchall {:try_start_92 .. :try_end_9b} :catchall_75
17073 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
17075 + move v3, v1
17077 + goto :goto_71
17079 + :cond_a0
17080 + move v1, v3
17082 + goto :goto_92
17084 + :catchall_a2
17085 + move-exception v3
17087 + :try_start_a3
17088 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
17090 + invoke-interface {v4}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
17092 + move-result-object v4
17094 + invoke-interface {v4}, Ljava/util/concurrent/locks/Lock;->unlock()V
17096 + throw v3
17097 + :try_end_ad
17098 + .catchall {:try_start_a3 .. :try_end_ad} :catchall_75
17099 +.end method
17100 diff -Npru stock-framework/smali/android/privacy/PrivacySettings$1.smali opd-framework/smali/android/privacy/PrivacySettings$1.smali
17101 --- stock-framework/smali/android/privacy/PrivacySettings$1.smali 1969-12-31 18:00:00.000000000 -0600
17102 +++ opd-framework/smali/android/privacy/PrivacySettings$1.smali 2013-01-09 02:52:41.635525471 -0600
17103 @@ -0,0 +1,77 @@
17104 +.class final Landroid/privacy/PrivacySettings$1;
17105 +.super Ljava/lang/Object;
17106 +.source "PrivacySettings.java"
17108 +# interfaces
17109 +.implements Landroid/os/Parcelable$Creator;
17112 +# annotations
17113 +.annotation system Ldalvik/annotation/EnclosingClass;
17114 + value = Landroid/privacy/PrivacySettings;
17115 +.end annotation
17117 +.annotation system Ldalvik/annotation/InnerClass;
17118 + accessFlags = 0x8
17119 + name = null
17120 +.end annotation
17122 +.annotation system Ldalvik/annotation/Signature;
17123 + value = {
17124 + "Ljava/lang/Object;",
17125 + "Landroid/os/Parcelable$Creator",
17126 + "<",
17127 + "Landroid/privacy/PrivacySettings;",
17128 + ">;"
17130 +.end annotation
17133 +# direct methods
17134 +.method constructor <init>()V
17135 + .registers 1
17137 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
17139 + return-void
17140 +.end method
17143 +# virtual methods
17144 +.method public createFromParcel(Landroid/os/Parcel;)Landroid/privacy/PrivacySettings;
17145 + .registers 3
17147 + new-instance v0, Landroid/privacy/PrivacySettings;
17149 + invoke-direct {v0, p1}, Landroid/privacy/PrivacySettings;-><init>(Landroid/os/Parcel;)V
17151 + return-object v0
17152 +.end method
17154 +.method public bridge synthetic createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
17155 + .registers 3
17157 + invoke-virtual {p0, p1}, Landroid/privacy/PrivacySettings$1;->createFromParcel(Landroid/os/Parcel;)Landroid/privacy/PrivacySettings;
17159 + move-result-object v0
17161 + return-object v0
17162 +.end method
17164 +.method public newArray(I)[Landroid/privacy/PrivacySettings;
17165 + .registers 3
17167 + new-array v0, p1, [Landroid/privacy/PrivacySettings;
17169 + return-object v0
17170 +.end method
17172 +.method public bridge synthetic newArray(I)[Ljava/lang/Object;
17173 + .registers 3
17175 + invoke-virtual {p0, p1}, Landroid/privacy/PrivacySettings$1;->newArray(I)[Landroid/privacy/PrivacySettings;
17177 + move-result-object v0
17179 + return-object v0
17180 +.end method
17181 diff -Npru stock-framework/smali/android/privacy/PrivacySettingsManagerService.smali opd-framework/smali/android/privacy/PrivacySettingsManagerService.smali
17182 --- stock-framework/smali/android/privacy/PrivacySettingsManagerService.smali 1969-12-31 18:00:00.000000000 -0600
17183 +++ opd-framework/smali/android/privacy/PrivacySettingsManagerService.smali 2013-01-09 02:52:41.643525511 -0600
17184 @@ -0,0 +1,665 @@
17185 +.class public final Landroid/privacy/PrivacySettingsManagerService;
17186 +.super Landroid/privacy/IPrivacySettingsManager$Stub;
17187 +.source "PrivacySettingsManagerService.java"
17190 +# static fields
17191 +.field private static final READ_PRIVACY_SETTINGS:Ljava/lang/String; = "android.privacy.READ_PRIVACY_SETTINGS"
17193 +.field private static final TAG:Ljava/lang/String; = "PrivacySettingsManagerService"
17195 +.field private static final VERSION:D = 1.51
17197 +.field private static final WRITE_PRIVACY_SETTINGS:Ljava/lang/String; = "android.privacy.WRITE_PRIVACY_SETTINGS"
17199 +.field public static obs:Landroid/privacy/PrivacyFileObserver;
17202 +# instance fields
17203 +.field private bootCompleted:Z
17205 +.field private context:Landroid/content/Context;
17207 +.field private enabled:Z
17209 +.field private notificationsEnabled:Z
17211 +.field private persistenceAdapter:Landroid/privacy/PrivacyPersistenceAdapter;
17214 +# direct methods
17215 +.method public constructor <init>(Landroid/content/Context;)V
17216 + .registers 5
17218 + invoke-direct {p0}, Landroid/privacy/IPrivacySettingsManager$Stub;-><init>()V
17220 + const-string v0, "PrivacySettingsManagerService"
17222 + new-instance v1, Ljava/lang/StringBuilder;
17224 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
17226 + const-string v2, "PrivacySettingsManagerService - initializing for package: "
17228 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
17230 + move-result-object v1
17232 + invoke-virtual {p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
17234 + move-result-object v2
17236 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
17238 + move-result-object v1
17240 + const-string v2, " UID: "
17242 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
17244 + move-result-object v1
17246 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
17248 + move-result v2
17250 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
17252 + move-result-object v1
17254 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
17256 + move-result-object v1
17258 + invoke-static {v0, v1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
17260 + iput-object p1, p0, Landroid/privacy/PrivacySettingsManagerService;->context:Landroid/content/Context;
17262 + new-instance v0, Landroid/privacy/PrivacyPersistenceAdapter;
17264 + invoke-direct {v0, p1}, Landroid/privacy/PrivacyPersistenceAdapter;-><init>(Landroid/content/Context;)V
17266 + iput-object v0, p0, Landroid/privacy/PrivacySettingsManagerService;->persistenceAdapter:Landroid/privacy/PrivacyPersistenceAdapter;
17268 + new-instance v0, Landroid/privacy/PrivacyFileObserver;
17270 + const-string v1, "/data/system/privacy"
17272 + invoke-direct {v0, v1, p0}, Landroid/privacy/PrivacyFileObserver;-><init>(Ljava/lang/String;Landroid/privacy/PrivacySettingsManagerService;)V
17274 + sput-object v0, Landroid/privacy/PrivacySettingsManagerService;->obs:Landroid/privacy/PrivacyFileObserver;
17276 + iget-object v0, p0, Landroid/privacy/PrivacySettingsManagerService;->persistenceAdapter:Landroid/privacy/PrivacyPersistenceAdapter;
17278 + const-string v1, "enabled"
17280 + invoke-virtual {v0, v1}, Landroid/privacy/PrivacyPersistenceAdapter;->getValue(Ljava/lang/String;)Ljava/lang/String;
17282 + move-result-object v0
17284 + const-string v1, "1"
17286 + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
17288 + move-result v0
17290 + iput-boolean v0, p0, Landroid/privacy/PrivacySettingsManagerService;->enabled:Z
17292 + iget-object v0, p0, Landroid/privacy/PrivacySettingsManagerService;->persistenceAdapter:Landroid/privacy/PrivacyPersistenceAdapter;
17294 + const-string/jumbo v1, "notifications_enabled"
17296 + invoke-virtual {v0, v1}, Landroid/privacy/PrivacyPersistenceAdapter;->getValue(Ljava/lang/String;)Ljava/lang/String;
17298 + move-result-object v0
17300 + const-string v1, "1"
17302 + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
17304 + move-result v0
17306 + iput-boolean v0, p0, Landroid/privacy/PrivacySettingsManagerService;->notificationsEnabled:Z
17308 + const/4 v0, 0x0
17310 + iput-boolean v0, p0, Landroid/privacy/PrivacySettingsManagerService;->bootCompleted:Z
17312 + return-void
17313 +.end method
17315 +.method private checkCallerCanReadOrThrow()V
17316 + .registers 4
17318 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
17320 + move-result v0
17322 + const/16 v1, 0x3e8
17324 + if-ne v0, v1, :cond_9
17326 + :goto_8
17327 + return-void
17329 + :cond_9
17330 + iget-object v0, p0, Landroid/privacy/PrivacySettingsManagerService;->context:Landroid/content/Context;
17332 + const-string v1, "android.privacy.READ_PRIVACY_SETTINGS"
17334 + const-string v2, "Requires READ_PRIVACY_SETTINGS"
17336 + invoke-virtual {v0, v1, v2}, Landroid/content/Context;->enforceCallingPermission(Ljava/lang/String;Ljava/lang/String;)V
17338 + goto :goto_8
17339 +.end method
17341 +.method private checkCallerCanReadSettings()Z
17342 + .registers 3
17344 + :try_start_0
17345 + invoke-direct {p0}, Landroid/privacy/PrivacySettingsManagerService;->checkCallerCanReadOrThrow()V
17346 + :try_end_3
17347 + .catch Ljava/lang/SecurityException; {:try_start_0 .. :try_end_3} :catch_5
17349 + const/4 v1, 0x1
17351 + :goto_4
17352 + return v1
17354 + :catch_5
17355 + move-exception v0
17357 + const/4 v1, 0x0
17359 + goto :goto_4
17360 +.end method
17362 +.method private checkCallerCanWriteOrThrow()V
17363 + .registers 4
17364 + .annotation system Ldalvik/annotation/Throws;
17365 + value = {
17366 + Landroid/os/RemoteException;
17368 + .end annotation
17370 + iget-object v0, p0, Landroid/privacy/PrivacySettingsManagerService;->context:Landroid/content/Context;
17372 + const-string v1, "android.privacy.WRITE_PRIVACY_SETTINGS"
17374 + const-string v2, "Requires WRITE_PRIVACY_SETTINGS"
17376 + invoke-virtual {v0, v1, v2}, Landroid/content/Context;->enforceCallingPermission(Ljava/lang/String;Ljava/lang/String;)V
17378 + return-void
17379 +.end method
17381 +.method private checkCallerCanWriteSettings()Z
17382 + .registers 3
17383 + .annotation system Ldalvik/annotation/Throws;
17384 + value = {
17385 + Landroid/os/RemoteException;
17387 + .end annotation
17389 + :try_start_0
17390 + invoke-direct {p0}, Landroid/privacy/PrivacySettingsManagerService;->checkCallerCanWriteOrThrow()V
17391 + :try_end_3
17392 + .catch Ljava/lang/SecurityException; {:try_start_0 .. :try_end_3} :catch_5
17394 + const/4 v1, 0x1
17396 + :goto_4
17397 + return v1
17399 + :catch_5
17400 + move-exception v0
17402 + const/4 v1, 0x0
17404 + goto :goto_4
17405 +.end method
17408 +# virtual methods
17409 +.method public addObserver(Ljava/lang/String;)V
17410 + .registers 3
17411 + .annotation system Ldalvik/annotation/Throws;
17412 + value = {
17413 + Landroid/os/RemoteException;
17415 + .end annotation
17417 + invoke-direct {p0}, Landroid/privacy/PrivacySettingsManagerService;->checkCallerCanWriteOrThrow()V
17419 + sget-object v0, Landroid/privacy/PrivacySettingsManagerService;->obs:Landroid/privacy/PrivacyFileObserver;
17421 + invoke-virtual {v0, p1}, Landroid/privacy/PrivacyFileObserver;->addObserver(Ljava/lang/String;)V
17423 + return-void
17424 +.end method
17426 +.method public deleteSettings(Ljava/lang/String;)Z
17427 + .registers 7
17428 + .annotation system Ldalvik/annotation/Throws;
17429 + value = {
17430 + Landroid/os/RemoteException;
17432 + .end annotation
17434 + const/4 v4, 0x1
17436 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
17438 + move-result v2
17440 + const/16 v3, 0x3e8
17442 + if-eq v2, v3, :cond_c
17444 + invoke-direct {p0}, Landroid/privacy/PrivacySettingsManagerService;->checkCallerCanWriteOrThrow()V
17446 + :cond_c
17447 + iget-object v2, p0, Landroid/privacy/PrivacySettingsManagerService;->persistenceAdapter:Landroid/privacy/PrivacyPersistenceAdapter;
17449 + invoke-virtual {v2, p1}, Landroid/privacy/PrivacyPersistenceAdapter;->deleteSettings(Ljava/lang/String;)Z
17451 + move-result v1
17453 + new-instance v2, Ljava/lang/StringBuilder;
17455 + invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
17457 + const-string v3, "/data/system/privacy/"
17459 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
17461 + move-result-object v2
17463 + invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
17465 + move-result-object v2
17467 + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
17469 + move-result-object v0
17471 + new-instance v2, Ljava/io/File;
17473 + invoke-direct {v2, v0}, Ljava/io/File;-><init>(Ljava/lang/String;)V
17475 + invoke-virtual {v2}, Ljava/io/File;->exists()Z
17477 + move-result v2
17479 + if-eqz v2, :cond_38
17481 + if-ne v1, v4, :cond_38
17483 + sget-object v2, Landroid/privacy/PrivacySettingsManagerService;->obs:Landroid/privacy/PrivacyFileObserver;
17485 + invoke-virtual {v2, v0}, Landroid/privacy/PrivacyFileObserver;->addObserver(Ljava/lang/String;)V
17487 + :cond_37
17488 + :goto_37
17489 + return v1
17491 + :cond_38
17492 + if-ne v1, v4, :cond_37
17494 + sget-object v2, Landroid/privacy/PrivacySettingsManagerService;->obs:Landroid/privacy/PrivacyFileObserver;
17496 + iget-object v2, v2, Landroid/privacy/PrivacyFileObserver;->children:Ljava/util/HashMap;
17498 + invoke-virtual {v2, v0}, Ljava/util/HashMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;
17500 + goto :goto_37
17501 +.end method
17503 +.method public getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
17504 + .registers 4
17506 + iget-boolean v0, p0, Landroid/privacy/PrivacySettingsManagerService;->enabled:Z
17508 + if-nez v0, :cond_2e
17510 + iget-object v0, p0, Landroid/privacy/PrivacySettingsManagerService;->context:Landroid/content/Context;
17512 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
17514 + move-result-object v0
17516 + const-string v1, "com.privacy.pdroid"
17518 + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
17520 + move-result v0
17522 + if-nez v0, :cond_2e
17524 + iget-object v0, p0, Landroid/privacy/PrivacySettingsManagerService;->context:Landroid/content/Context;
17526 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
17528 + move-result-object v0
17530 + const-string v1, "com.privacy.pdroid.Addon"
17532 + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
17534 + move-result v0
17536 + if-nez v0, :cond_2e
17538 + iget-object v0, p0, Landroid/privacy/PrivacySettingsManagerService;->context:Landroid/content/Context;
17540 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
17542 + move-result-object v0
17544 + const-string v1, "com.android.privacy.pdroid.extension"
17546 + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
17548 + move-result v0
17550 + if-eqz v0, :cond_35
17552 + :cond_2e
17553 + iget-object v0, p0, Landroid/privacy/PrivacySettingsManagerService;->persistenceAdapter:Landroid/privacy/PrivacyPersistenceAdapter;
17555 + invoke-virtual {v0, p1}, Landroid/privacy/PrivacyPersistenceAdapter;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
17557 + move-result-object v0
17559 + :goto_34
17560 + return-object v0
17562 + :cond_35
17563 + const/4 v0, 0x0
17565 + goto :goto_34
17566 +.end method
17568 +.method public getVersion()D
17569 + .registers 3
17571 + const-wide v0, 0x3ff828f5c28f5c29L
17573 + return-wide v0
17574 +.end method
17576 +.method public notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
17577 + .registers 8
17579 + iget-boolean v1, p0, Landroid/privacy/PrivacySettingsManagerService;->bootCompleted:Z
17581 + if-eqz v1, :cond_34
17583 + iget-boolean v1, p0, Landroid/privacy/PrivacySettingsManagerService;->notificationsEnabled:Z
17585 + if-eqz v1, :cond_34
17587 + new-instance v0, Landroid/content/Intent;
17589 + invoke-direct {v0}, Landroid/content/Intent;-><init>()V
17591 + const-string v1, "com.privacy.pdroid.PRIVACY_NOTIFICATION"
17593 + invoke-virtual {v0, v1}, Landroid/content/Intent;->setAction(Ljava/lang/String;)Landroid/content/Intent;
17595 + const-string/jumbo v1, "packageName"
17597 + invoke-virtual {v0, v1, p1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
17599 + const-string/jumbo v1, "uid"
17601 + const/4 v2, -0x1
17603 + invoke-virtual {v0, v1, v2}, Landroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent;
17605 + const-string v1, "accessMode"
17607 + invoke-virtual {v0, v1, p2}, Landroid/content/Intent;->putExtra(Ljava/lang/String;B)Landroid/content/Intent;
17609 + const-string v1, "dataType"
17611 + invoke-virtual {v0, v1, p3}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
17613 + const-string/jumbo v1, "output"
17615 + invoke-virtual {v0, v1, p4}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
17617 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManagerService;->context:Landroid/content/Context;
17619 + invoke-virtual {v1, v0}, Landroid/content/Context;->sendBroadcast(Landroid/content/Intent;)V
17621 + :cond_34
17622 + return-void
17623 +.end method
17625 +.method public purgeSettings()Z
17626 + .registers 2
17628 + iget-object v0, p0, Landroid/privacy/PrivacySettingsManagerService;->persistenceAdapter:Landroid/privacy/PrivacyPersistenceAdapter;
17630 + invoke-virtual {v0}, Landroid/privacy/PrivacyPersistenceAdapter;->purgeSettings()Z
17632 + move-result v0
17634 + return v0
17635 +.end method
17637 +.method public registerObservers()V
17638 + .registers 3
17639 + .annotation system Ldalvik/annotation/Throws;
17640 + value = {
17641 + Landroid/os/RemoteException;
17643 + .end annotation
17645 + invoke-direct {p0}, Landroid/privacy/PrivacySettingsManagerService;->checkCallerCanWriteOrThrow()V
17647 + new-instance v0, Landroid/privacy/PrivacyFileObserver;
17649 + const-string v1, "/data/system/privacy"
17651 + invoke-direct {v0, v1, p0}, Landroid/privacy/PrivacyFileObserver;-><init>(Ljava/lang/String;Landroid/privacy/PrivacySettingsManagerService;)V
17653 + sput-object v0, Landroid/privacy/PrivacySettingsManagerService;->obs:Landroid/privacy/PrivacyFileObserver;
17655 + return-void
17656 +.end method
17658 +.method public saveSettings(Landroid/privacy/PrivacySettings;)Z
17659 + .registers 6
17660 + .annotation system Ldalvik/annotation/Throws;
17661 + value = {
17662 + Landroid/os/RemoteException;
17664 + .end annotation
17666 + const-string v1, "PrivacySettingsManagerService"
17668 + new-instance v2, Ljava/lang/StringBuilder;
17670 + invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
17672 + const-string/jumbo v3, "saveSettings - checking if caller (UID: "
17674 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
17676 + move-result-object v2
17678 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
17680 + move-result v3
17682 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
17684 + move-result-object v2
17686 + const-string v3, ") has sufficient permissions"
17688 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
17690 + move-result-object v2
17692 + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
17694 + move-result-object v2
17696 + invoke-static {v1, v2}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
17698 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
17700 + move-result v1
17702 + const/16 v2, 0x3e8
17704 + if-eq v1, v2, :cond_2e
17706 + invoke-direct {p0}, Landroid/privacy/PrivacySettingsManagerService;->checkCallerCanWriteOrThrow()V
17708 + :cond_2e
17709 + const-string v1, "PrivacySettingsManagerService"
17711 + new-instance v2, Ljava/lang/StringBuilder;
17713 + invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
17715 + const-string/jumbo v3, "saveSettings - "
17717 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
17719 + move-result-object v2
17721 + invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
17723 + move-result-object v2
17725 + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
17727 + move-result-object v2
17729 + invoke-static {v1, v2}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
17731 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManagerService;->persistenceAdapter:Landroid/privacy/PrivacyPersistenceAdapter;
17733 + invoke-virtual {v1, p1}, Landroid/privacy/PrivacyPersistenceAdapter;->saveSettings(Landroid/privacy/PrivacySettings;)Z
17735 + move-result v0
17737 + const/4 v1, 0x1
17739 + if-ne v0, v1, :cond_59
17741 + sget-object v1, Landroid/privacy/PrivacySettingsManagerService;->obs:Landroid/privacy/PrivacyFileObserver;
17743 + invoke-virtual {p1}, Landroid/privacy/PrivacySettings;->getPackageName()Ljava/lang/String;
17745 + move-result-object v2
17747 + invoke-virtual {v1, v2}, Landroid/privacy/PrivacyFileObserver;->addObserver(Ljava/lang/String;)V
17749 + :cond_59
17750 + return v0
17751 +.end method
17753 +.method public setBootCompleted()V
17754 + .registers 2
17756 + const/4 v0, 0x1
17758 + iput-boolean v0, p0, Landroid/privacy/PrivacySettingsManagerService;->bootCompleted:Z
17760 + return-void
17761 +.end method
17763 +.method public setEnabled(Z)Z
17764 + .registers 6
17765 + .annotation system Ldalvik/annotation/Throws;
17766 + value = {
17767 + Landroid/os/RemoteException;
17769 + .end annotation
17771 + const/4 v1, 0x1
17773 + invoke-direct {p0}, Landroid/privacy/PrivacySettingsManagerService;->checkCallerCanWriteOrThrow()V
17775 + if-eqz p1, :cond_15
17777 + const-string v0, "1"
17779 + :goto_8
17780 + iget-object v2, p0, Landroid/privacy/PrivacySettingsManagerService;->persistenceAdapter:Landroid/privacy/PrivacyPersistenceAdapter;
17782 + const-string v3, "enabled"
17784 + invoke-virtual {v2, v3, v0}, Landroid/privacy/PrivacyPersistenceAdapter;->setValue(Ljava/lang/String;Ljava/lang/String;)Z
17786 + move-result v2
17788 + if-eqz v2, :cond_18
17790 + iput-boolean v1, p0, Landroid/privacy/PrivacySettingsManagerService;->enabled:Z
17792 + :goto_14
17793 + return v1
17795 + :cond_15
17796 + const-string v0, "0"
17798 + goto :goto_8
17800 + :cond_18
17801 + const/4 v1, 0x0
17803 + goto :goto_14
17804 +.end method
17806 +.method public setNotificationsEnabled(Z)Z
17807 + .registers 6
17808 + .annotation system Ldalvik/annotation/Throws;
17809 + value = {
17810 + Landroid/os/RemoteException;
17812 + .end annotation
17814 + const/4 v1, 0x1
17816 + invoke-direct {p0}, Landroid/privacy/PrivacySettingsManagerService;->checkCallerCanWriteOrThrow()V
17818 + if-eqz p1, :cond_18
17820 + const-string v0, "1"
17822 + :goto_8
17823 + iget-object v2, p0, Landroid/privacy/PrivacySettingsManagerService;->persistenceAdapter:Landroid/privacy/PrivacyPersistenceAdapter;
17825 + const-string/jumbo v3, "notifications_enabled"
17827 + invoke-virtual {v2, v3, v0}, Landroid/privacy/PrivacyPersistenceAdapter;->setValue(Ljava/lang/String;Ljava/lang/String;)Z
17829 + move-result v2
17831 + if-eqz v2, :cond_1b
17833 + iput-boolean v1, p0, Landroid/privacy/PrivacySettingsManagerService;->notificationsEnabled:Z
17835 + iput-boolean v1, p0, Landroid/privacy/PrivacySettingsManagerService;->bootCompleted:Z
17837 + :goto_17
17838 + return v1
17840 + :cond_18
17841 + const-string v0, "0"
17843 + goto :goto_8
17845 + :cond_1b
17846 + const/4 v1, 0x0
17848 + goto :goto_17
17849 +.end method
17850 diff -Npru stock-framework/smali/android/privacy/PrivacySettingsManager.smali opd-framework/smali/android/privacy/PrivacySettingsManager.smali
17851 --- stock-framework/smali/android/privacy/PrivacySettingsManager.smali 1969-12-31 18:00:00.000000000 -0600
17852 +++ opd-framework/smali/android/privacy/PrivacySettingsManager.smali 2013-01-09 02:52:41.643525511 -0600
17853 @@ -0,0 +1,537 @@
17854 +.class public final Landroid/privacy/PrivacySettingsManager;
17855 +.super Ljava/lang/Object;
17856 +.source "PrivacySettingsManager.java"
17859 +# static fields
17860 +.field public static final ACTION_PRIVACY_NOTIFICATION:Ljava/lang/String; = "com.privacy.pdroid.PRIVACY_NOTIFICATION"
17862 +.field public static final ACTION_PRIVACY_NOTIFICATION_ADDON:Ljava/lang/String; = "com.privacy.pdroid.PRIVACY_NOTIFICATION_ADDON"
17864 +.field private static final TAG:Ljava/lang/String; = "PrivacySettingsManager"
17867 +# instance fields
17868 +.field private service:Landroid/privacy/IPrivacySettingsManager;
17871 +# direct methods
17872 +.method public constructor <init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
17873 + .registers 3
17875 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
17877 + iput-object p2, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
17879 + return-void
17880 +.end method
17883 +# virtual methods
17884 +.method public addObserver(Ljava/lang/String;)V
17885 + .registers 5
17887 + :try_start_0
17888 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
17890 + if-eqz v1, :cond_a
17892 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
17894 + invoke-interface {v1, p1}, Landroid/privacy/IPrivacySettingsManager;->addObserver(Ljava/lang/String;)V
17896 + :goto_9
17897 + return-void
17899 + :cond_a
17900 + const-string v1, "PrivacySettingsManager"
17902 + const-string v2, "deleteSettings - PrivacySettingsManagerService is null"
17904 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
17905 + :try_end_11
17906 + .catch Landroid/os/RemoteException; {:try_start_0 .. :try_end_11} :catch_12
17908 + goto :goto_9
17910 + :catch_12
17911 + move-exception v0
17913 + const-string v1, "PrivacySettingsManager"
17915 + const-string v2, "RemoteException in addObserver: "
17917 + invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
17919 + goto :goto_9
17920 +.end method
17922 +.method public deleteSettings(Ljava/lang/String;)Z
17923 + .registers 6
17925 + const/4 v1, 0x0
17927 + :try_start_1
17928 + iget-object v2, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
17930 + if-eqz v2, :cond_c
17932 + iget-object v2, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
17934 + invoke-interface {v2, p1}, Landroid/privacy/IPrivacySettingsManager;->deleteSettings(Ljava/lang/String;)Z
17936 + move-result v1
17938 + :goto_b
17939 + return v1
17941 + :cond_c
17942 + const-string v2, "PrivacySettingsManager"
17944 + const-string v3, "deleteSettings - PrivacySettingsManagerService is null"
17946 + invoke-static {v2, v3}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
17947 + :try_end_13
17948 + .catch Landroid/os/RemoteException; {:try_start_1 .. :try_end_13} :catch_14
17950 + goto :goto_b
17952 + :catch_14
17953 + move-exception v0
17955 + const-string v2, "PrivacySettingsManager"
17957 + const-string v3, "RemoteException in deleteSettings: "
17959 + invoke-static {v2, v3, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
17961 + goto :goto_b
17962 +.end method
17964 +.method public deleteSettings(Ljava/lang/String;I)Z
17965 + .registers 4
17966 + .annotation runtime Ljava/lang/Deprecated;
17967 + .end annotation
17969 + invoke-virtual {p0, p1}, Landroid/privacy/PrivacySettingsManager;->deleteSettings(Ljava/lang/String;)Z
17971 + move-result v0
17973 + return v0
17974 +.end method
17976 +.method public getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
17977 + .registers 6
17979 + const/4 v1, 0x0
17981 + :try_start_1
17982 + iget-object v2, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
17984 + if-eqz v2, :cond_c
17986 + iget-object v2, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
17988 + invoke-interface {v2, p1}, Landroid/privacy/IPrivacySettingsManager;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
17990 + move-result-object v1
17992 + :goto_b
17993 + return-object v1
17995 + :cond_c
17996 + const-string v2, "PrivacySettingsManager"
17998 + const-string v3, "getSettings - PrivacySettingsManagerService is null"
18000 + invoke-static {v2, v3}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
18001 + :try_end_13
18002 + .catch Landroid/os/RemoteException; {:try_start_1 .. :try_end_13} :catch_14
18004 + goto :goto_b
18006 + :catch_14
18007 + move-exception v0
18009 + invoke-virtual {v0}, Landroid/os/RemoteException;->printStackTrace()V
18011 + goto :goto_b
18012 +.end method
18014 +.method public getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
18015 + .registers 4
18016 + .annotation runtime Ljava/lang/Deprecated;
18017 + .end annotation
18019 + invoke-virtual {p0, p1}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
18021 + move-result-object v0
18023 + return-object v0
18024 +.end method
18026 +.method public getVersion()D
18027 + .registers 4
18029 + :try_start_0
18030 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18032 + if-eqz v1, :cond_b
18034 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18036 + invoke-interface {v1}, Landroid/privacy/IPrivacySettingsManager;->getVersion()D
18038 + move-result-wide v1
18040 + :goto_a
18041 + return-wide v1
18043 + :cond_b
18044 + const-string v1, "PrivacySettingsManager"
18046 + const-string v2, "getVersion - PrivacySettingsManagerService is null"
18048 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
18049 + :try_end_12
18050 + .catch Landroid/os/RemoteException; {:try_start_0 .. :try_end_12} :catch_15
18052 + :goto_12
18053 + const-wide/16 v1, 0x0
18055 + goto :goto_a
18057 + :catch_15
18058 + move-exception v0
18060 + const-string v1, "PrivacySettingsManager"
18062 + const-string v2, "RemoteException in getVersion: "
18064 + invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
18066 + goto :goto_12
18067 +.end method
18069 +.method public isServiceAvailable()Z
18070 + .registers 2
18072 + iget-object v0, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18074 + if-eqz v0, :cond_6
18076 + const/4 v0, 0x1
18078 + :goto_5
18079 + return v0
18081 + :cond_6
18082 + const/4 v0, 0x0
18084 + goto :goto_5
18085 +.end method
18087 +.method public notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
18088 + .registers 8
18090 + :try_start_0
18091 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18093 + if-eqz v1, :cond_a
18095 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18097 + invoke-interface {v1, p1, p2, p3, p4}, Landroid/privacy/IPrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
18099 + :goto_9
18100 + return-void
18102 + :cond_a
18103 + const-string v1, "PrivacySettingsManager"
18105 + const-string v2, "deleteSettings - PrivacySettingsManagerService is null"
18107 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
18108 + :try_end_11
18109 + .catch Landroid/os/RemoteException; {:try_start_0 .. :try_end_11} :catch_12
18111 + goto :goto_9
18113 + :catch_12
18114 + move-exception v0
18116 + const-string v1, "PrivacySettingsManager"
18118 + const-string v2, "RemoteException in notification: "
18120 + invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
18122 + goto :goto_9
18123 +.end method
18125 +.method public notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
18126 + .registers 6
18127 + .annotation runtime Ljava/lang/Deprecated;
18128 + .end annotation
18130 + invoke-virtual {p0, p1, p2, p3, p4}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
18132 + return-void
18133 +.end method
18135 +.method public notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
18136 + .registers 7
18137 + .annotation runtime Ljava/lang/Deprecated;
18138 + .end annotation
18140 + invoke-virtual {p0, p1, p3, p4, p5}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
18142 + return-void
18143 +.end method
18145 +.method public purgeSettings()Z
18146 + .registers 4
18148 + :try_start_0
18149 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18151 + if-eqz v1, :cond_b
18153 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18155 + invoke-interface {v1}, Landroid/privacy/IPrivacySettingsManager;->purgeSettings()Z
18157 + move-result v1
18159 + :goto_a
18160 + return v1
18162 + :cond_b
18163 + const-string v1, "PrivacySettingsManager"
18165 + const-string/jumbo v2, "purgeSettings - PrivacySettingsManagerService is null"
18167 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
18168 + :try_end_13
18169 + .catch Landroid/os/RemoteException; {:try_start_0 .. :try_end_13} :catch_15
18171 + :goto_13
18172 + const/4 v1, 0x0
18174 + goto :goto_a
18176 + :catch_15
18177 + move-exception v0
18179 + const-string v1, "PrivacySettingsManager"
18181 + const-string v2, "RemoteException in purgeSettings: "
18183 + invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
18185 + goto :goto_13
18186 +.end method
18188 +.method public registerObservers()V
18189 + .registers 4
18191 + :try_start_0
18192 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18194 + if-eqz v1, :cond_a
18196 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18198 + invoke-interface {v1}, Landroid/privacy/IPrivacySettingsManager;->registerObservers()V
18200 + :goto_9
18201 + return-void
18203 + :cond_a
18204 + const-string v1, "PrivacySettingsManager"
18206 + const-string v2, "deleteSettings - PrivacySettingsManagerService is null"
18208 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
18209 + :try_end_11
18210 + .catch Landroid/os/RemoteException; {:try_start_0 .. :try_end_11} :catch_12
18212 + goto :goto_9
18214 + :catch_12
18215 + move-exception v0
18217 + const-string v1, "PrivacySettingsManager"
18219 + const-string v2, "RemoteException in registerObservers: "
18221 + invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
18223 + goto :goto_9
18224 +.end method
18226 +.method public saveSettings(Landroid/privacy/PrivacySettings;)Z
18227 + .registers 6
18229 + const/4 v1, 0x0
18231 + :try_start_1
18232 + iget-object v2, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18234 + if-eqz v2, :cond_c
18236 + iget-object v2, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18238 + invoke-interface {v2, p1}, Landroid/privacy/IPrivacySettingsManager;->saveSettings(Landroid/privacy/PrivacySettings;)Z
18240 + move-result v1
18242 + :goto_b
18243 + return v1
18245 + :cond_c
18246 + const-string v2, "PrivacySettingsManager"
18248 + const-string/jumbo v3, "saveSettings - PrivacySettingsManagerService is null"
18250 + invoke-static {v2, v3}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
18251 + :try_end_14
18252 + .catch Landroid/os/RemoteException; {:try_start_1 .. :try_end_14} :catch_15
18254 + goto :goto_b
18256 + :catch_15
18257 + move-exception v0
18259 + const-string v2, "PrivacySettingsManager"
18261 + const-string v3, "RemoteException in saveSettings: "
18263 + invoke-static {v2, v3, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
18265 + goto :goto_b
18266 +.end method
18268 +.method public setBootCompleted()V
18269 + .registers 4
18271 + :try_start_0
18272 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18274 + if-eqz v1, :cond_a
18276 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18278 + invoke-interface {v1}, Landroid/privacy/IPrivacySettingsManager;->setBootCompleted()V
18280 + :goto_9
18281 + return-void
18283 + :cond_a
18284 + const-string v1, "PrivacySettingsManager"
18286 + const-string/jumbo v2, "setBootCompleted - PrivacySettingsManagerService is null"
18288 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
18289 + :try_end_12
18290 + .catch Landroid/os/RemoteException; {:try_start_0 .. :try_end_12} :catch_13
18292 + goto :goto_9
18294 + :catch_13
18295 + move-exception v0
18297 + const-string v1, "PrivacySettingsManager"
18299 + const-string v2, "RemoteException in setBootCompleted: "
18301 + invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
18303 + goto :goto_9
18304 +.end method
18306 +.method public setEnabled(Z)Z
18307 + .registers 5
18309 + :try_start_0
18310 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18312 + if-eqz v1, :cond_b
18314 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18316 + invoke-interface {v1, p1}, Landroid/privacy/IPrivacySettingsManager;->setEnabled(Z)Z
18318 + move-result v1
18320 + :goto_a
18321 + return v1
18323 + :cond_b
18324 + const-string v1, "PrivacySettingsManager"
18326 + const-string/jumbo v2, "setEnabled - PrivacySettingsManagerService is null"
18328 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
18329 + :try_end_13
18330 + .catch Landroid/os/RemoteException; {:try_start_0 .. :try_end_13} :catch_15
18332 + :goto_13
18333 + const/4 v1, 0x0
18335 + goto :goto_a
18337 + :catch_15
18338 + move-exception v0
18340 + const-string v1, "PrivacySettingsManager"
18342 + const-string v2, "RemoteException in setEnabled: "
18344 + invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
18346 + goto :goto_13
18347 +.end method
18349 +.method public setNotificationsEnabled(Z)Z
18350 + .registers 5
18352 + :try_start_0
18353 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18355 + if-eqz v1, :cond_b
18357 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18359 + invoke-interface {v1, p1}, Landroid/privacy/IPrivacySettingsManager;->setNotificationsEnabled(Z)Z
18361 + move-result v1
18363 + :goto_a
18364 + return v1
18366 + :cond_b
18367 + const-string v1, "PrivacySettingsManager"
18369 + const-string/jumbo v2, "setNotificationsEnabled - PrivacySettingsManagerService is null"
18371 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
18372 + :try_end_13
18373 + .catch Landroid/os/RemoteException; {:try_start_0 .. :try_end_13} :catch_15
18375 + :goto_13
18376 + const/4 v1, 0x0
18378 + goto :goto_a
18380 + :catch_15
18381 + move-exception v0
18383 + const-string v1, "PrivacySettingsManager"
18385 + const-string v2, "RemoteException in setNotificationsEnabled: "
18387 + invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
18389 + goto :goto_13
18390 +.end method
18391 diff -Npru stock-framework/smali/android/privacy/PrivacySettings.smali opd-framework/smali/android/privacy/PrivacySettings.smali
18392 --- stock-framework/smali/android/privacy/PrivacySettings.smali 1969-12-31 18:00:00.000000000 -0600
18393 +++ opd-framework/smali/android/privacy/PrivacySettings.smali 2013-01-09 02:52:41.639525495 -0600
18394 @@ -0,0 +1,3295 @@
18395 +.class public final Landroid/privacy/PrivacySettings;
18396 +.super Ljava/lang/Object;
18397 +.source "PrivacySettings.java"
18399 +# interfaces
18400 +.implements Landroid/os/Parcelable;
18403 +# static fields
18404 +.field public static final CREATOR:Landroid/os/Parcelable$Creator; = null
18405 + .annotation system Ldalvik/annotation/Signature;
18406 + value = {
18407 + "Landroid/os/Parcelable$Creator",
18408 + "<",
18409 + "Landroid/privacy/PrivacySettings;",
18410 + ">;"
18412 + .end annotation
18413 +.end field
18415 +.field public static final CUSTOM:B = 0x2t
18417 +.field public static final DATA_ACCOUNTS_LIST:Ljava/lang/String; = "accountsList"
18419 +.field public static final DATA_ANDROID_ID:Ljava/lang/String; = "android_id"
18421 +.field public static final DATA_AUTH_TOKENS:Ljava/lang/String; = "authTokens"
18423 +.field public static final DATA_BOOKMARKS:Ljava/lang/String; = "bookmarks"
18425 +.field public static final DATA_CALENDAR:Ljava/lang/String; = "calendar"
18427 +.field public static final DATA_CALL_LOG:Ljava/lang/String; = "callLog"
18429 +.field public static final DATA_CAMERA:Ljava/lang/String; = "camera"
18431 +.field public static final DATA_CONTACTS:Ljava/lang/String; = "contacts"
18433 +.field public static final DATA_DEVICE_ID:Ljava/lang/String; = "deviceID"
18435 +.field public static final DATA_ICC_ACCESS:Ljava/lang/String; = "iccAccess"
18437 +.field public static final DATA_INCOMING_CALL:Ljava/lang/String; = "incomingCall"
18439 +.field public static final DATA_INTENT_BOOT_COMPLETED:Ljava/lang/String; = "intentBootCompleted"
18441 +.field public static final DATA_IP_TABLES:Ljava/lang/String; = "iptables"
18443 +.field public static final DATA_LINE_1_NUMBER:Ljava/lang/String; = "line1Number"
18445 +.field public static final DATA_LOCATION_GPS:Ljava/lang/String; = "locationGPS"
18447 +.field public static final DATA_LOCATION_NETWORK:Ljava/lang/String; = "locationNetwork"
18449 +.field public static final DATA_MMS:Ljava/lang/String; = "mms"
18451 +.field public static final DATA_MMS_SMS:Ljava/lang/String; = "mmsSms"
18453 +.field public static final DATA_NETWORK_INFO_CURRENT:Ljava/lang/String; = "networkInfoCurrent"
18455 +.field public static final DATA_NETWORK_INFO_SIM:Ljava/lang/String; = "networkInfoSIM"
18457 +.field public static final DATA_OUTGOING_CALL:Ljava/lang/String; = "outgoingCall"
18459 +.field public static final DATA_PHONE_CALL:Ljava/lang/String; = "phoneCall"
18461 +.field public static final DATA_RECORD_AUDIO:Ljava/lang/String; = "recordAudio"
18463 +.field public static final DATA_SEND_MMS:Ljava/lang/String; = "sendMms"
18465 +.field public static final DATA_SIM_SERIAL:Ljava/lang/String; = "simSerial"
18467 +.field public static final DATA_SMS:Ljava/lang/String; = "sms"
18469 +.field public static final DATA_SMS_SEND:Ljava/lang/String; = "SmsSend"
18471 +.field public static final DATA_SUBSCRIBER_ID:Ljava/lang/String; = "subscriberID"
18473 +.field public static final DATA_SWITCH_CONNECTIVITY:Ljava/lang/String; = "switchconnectivity"
18475 +.field public static final DATA_SWITCH_WIFI_STATE:Ljava/lang/String; = "switchWifiState"
18477 +.field public static final DATA_SYSTEM_LOGS:Ljava/lang/String; = "systemLogs"
18479 +.field public static final DATA_WIFI_INFO:Ljava/lang/String; = "wifiInfo"
18481 +.field public static final EMPTY:B = 0x1t
18483 +.field public static final ID_PATTERN:[Ljava/lang/String; = null
18485 +.field public static final RANDOM:B = 0x3t
18487 +.field public static final REAL:B = 0x0t
18489 +.field public static final SETTING_NOTIFY_OFF:B = 0x0t
18491 +.field public static final SETTING_NOTIFY_ON:B = 0x1t
18494 +# instance fields
18495 +.field private final _id:Ljava/lang/Integer;
18497 +.field private accountsAuthTokensSetting:B
18499 +.field private accountsSetting:B
18501 +.field private addOnManagementSetting:B
18503 +.field private allowedContacts:[I
18505 +.field private androidID:Ljava/lang/String;
18507 +.field private androidIdSetting:B
18509 +.field private bookmarksSetting:B
18511 +.field private calendarSetting:B
18513 +.field private callLogSetting:B
18515 +.field private cameraSetting:B
18517 +.field private contactsSetting:B
18519 +.field private deviceId:Ljava/lang/String;
18521 +.field private deviceIdSetting:B
18523 +.field private forceOnlineState:B
18525 +.field private iccAccessSetting:B
18527 +.field private incomingCallsSetting:B
18529 +.field private intentBootCompletedSetting:B
18531 +.field private ipTableProtectSetting:B
18533 +.field private line1Number:Ljava/lang/String;
18535 +.field private line1NumberSetting:B
18537 +.field private locationGpsLat:Ljava/lang/String;
18539 +.field private locationGpsLon:Ljava/lang/String;
18541 +.field private locationGpsSetting:B
18543 +.field private locationNetworkLat:Ljava/lang/String;
18545 +.field private locationNetworkLon:Ljava/lang/String;
18547 +.field private locationNetworkSetting:B
18549 +.field private mmsSetting:B
18551 +.field private networkInfoSetting:B
18553 +.field private notificationSetting:B
18555 +.field private outgoingCallsSetting:B
18557 +.field private packageName:Ljava/lang/String;
18559 +.field private phoneCallSetting:B
18561 +.field private recordAudioSetting:B
18563 +.field private sendMmsSetting:B
18565 +.field private simInfoSetting:B
18567 +.field private simSerialNumber:Ljava/lang/String;
18569 +.field private simSerialNumberSetting:B
18571 +.field private smsSendSetting:B
18573 +.field private smsSetting:B
18575 +.field private subscriberId:Ljava/lang/String;
18577 +.field private subscriberIdSetting:B
18579 +.field private switchConnectivitySetting:B
18581 +.field private switchWifiStateSetting:B
18583 +.field private systemLogsSetting:B
18585 +.field private uid:I
18587 +.field private wifiInfoSetting:B
18590 +# direct methods
18591 +.method static constructor <clinit>()V
18592 + .registers 3
18594 + const/16 v0, 0x10
18596 + new-array v0, v0, [Ljava/lang/String;
18598 + const/4 v1, 0x0
18600 + const-string v2, "0"
18602 + aput-object v2, v0, v1
18604 + const/4 v1, 0x1
18606 + const-string v2, "1"
18608 + aput-object v2, v0, v1
18610 + const/4 v1, 0x2
18612 + const-string v2, "2"
18614 + aput-object v2, v0, v1
18616 + const/4 v1, 0x3
18618 + const-string v2, "3"
18620 + aput-object v2, v0, v1
18622 + const/4 v1, 0x4
18624 + const-string v2, "4"
18626 + aput-object v2, v0, v1
18628 + const/4 v1, 0x5
18630 + const-string v2, "5"
18632 + aput-object v2, v0, v1
18634 + const/4 v1, 0x6
18636 + const-string v2, "6"
18638 + aput-object v2, v0, v1
18640 + const/4 v1, 0x7
18642 + const-string v2, "7"
18644 + aput-object v2, v0, v1
18646 + const/16 v1, 0x8
18648 + const-string v2, "8"
18650 + aput-object v2, v0, v1
18652 + const/16 v1, 0x9
18654 + const-string v2, "9"
18656 + aput-object v2, v0, v1
18658 + const/16 v1, 0xa
18660 + const-string v2, "a"
18662 + aput-object v2, v0, v1
18664 + const/16 v1, 0xb
18666 + const-string v2, "b"
18668 + aput-object v2, v0, v1
18670 + const/16 v1, 0xc
18672 + const-string v2, "c"
18674 + aput-object v2, v0, v1
18676 + const/16 v1, 0xd
18678 + const-string v2, "d"
18680 + aput-object v2, v0, v1
18682 + const/16 v1, 0xe
18684 + const-string v2, "e"
18686 + aput-object v2, v0, v1
18688 + const/16 v1, 0xf
18690 + const-string v2, "f"
18692 + aput-object v2, v0, v1
18694 + sput-object v0, Landroid/privacy/PrivacySettings;->ID_PATTERN:[Ljava/lang/String;
18696 + new-instance v0, Landroid/privacy/PrivacySettings$1;
18698 + invoke-direct {v0}, Landroid/privacy/PrivacySettings$1;-><init>()V
18700 + sput-object v0, Landroid/privacy/PrivacySettings;->CREATOR:Landroid/os/Parcelable$Creator;
18702 + return-void
18703 +.end method
18705 +.method public constructor <init>(Landroid/os/Parcel;)V
18706 + .registers 4
18708 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
18710 + invoke-virtual {p1}, Landroid/os/Parcel;->readInt()I
18712 + move-result v0
18714 + const/4 v1, -0x1
18716 + if-ne v0, v1, :cond_122
18718 + const/4 v1, 0x0
18720 + :goto_b
18721 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->_id:Ljava/lang/Integer;
18723 + invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
18725 + move-result-object v1
18727 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->packageName:Ljava/lang/String;
18729 + invoke-virtual {p1}, Landroid/os/Parcel;->readInt()I
18731 + move-result v1
18733 + iput v1, p0, Landroid/privacy/PrivacySettings;->uid:I
18735 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18737 + move-result v1
18739 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
18741 + invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
18743 + move-result-object v1
18745 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->deviceId:Ljava/lang/String;
18747 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18749 + move-result v1
18751 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
18753 + invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
18755 + move-result-object v1
18757 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->line1Number:Ljava/lang/String;
18759 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18761 + move-result v1
18763 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
18765 + invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
18767 + move-result-object v1
18769 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationGpsLat:Ljava/lang/String;
18771 + invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
18773 + move-result-object v1
18775 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationGpsLon:Ljava/lang/String;
18777 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18779 + move-result v1
18781 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
18783 + invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
18785 + move-result-object v1
18787 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLat:Ljava/lang/String;
18789 + invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
18791 + move-result-object v1
18793 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLon:Ljava/lang/String;
18795 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18797 + move-result v1
18799 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->networkInfoSetting:B
18801 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18803 + move-result v1
18805 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->simInfoSetting:B
18807 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18809 + move-result v1
18811 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
18813 + invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
18815 + move-result-object v1
18817 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->simSerialNumber:Ljava/lang/String;
18819 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18821 + move-result v1
18823 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
18825 + invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
18827 + move-result-object v1
18829 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->subscriberId:Ljava/lang/String;
18831 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18833 + move-result v1
18835 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->accountsSetting:B
18837 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18839 + move-result v1
18841 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->accountsAuthTokensSetting:B
18843 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18845 + move-result v1
18847 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->outgoingCallsSetting:B
18849 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18851 + move-result v1
18853 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->incomingCallsSetting:B
18855 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18857 + move-result v1
18859 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->contactsSetting:B
18861 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18863 + move-result v1
18865 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->calendarSetting:B
18867 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18869 + move-result v1
18871 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->mmsSetting:B
18873 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18875 + move-result v1
18877 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->smsSetting:B
18879 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18881 + move-result v1
18883 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->callLogSetting:B
18885 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18887 + move-result v1
18889 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->bookmarksSetting:B
18891 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18893 + move-result v1
18895 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->systemLogsSetting:B
18897 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18899 + move-result v1
18901 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->notificationSetting:B
18903 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18905 + move-result v1
18907 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->intentBootCompletedSetting:B
18909 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18911 + move-result v1
18913 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->cameraSetting:B
18915 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18917 + move-result v1
18919 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->recordAudioSetting:B
18921 + invoke-virtual {p1}, Landroid/os/Parcel;->createIntArray()[I
18923 + move-result-object v1
18925 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->allowedContacts:[I
18927 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18929 + move-result v1
18931 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->smsSendSetting:B
18933 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18935 + move-result v1
18937 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->phoneCallSetting:B
18939 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18941 + move-result v1
18943 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->ipTableProtectSetting:B
18945 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18947 + move-result v1
18949 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->iccAccessSetting:B
18951 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18953 + move-result v1
18955 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->addOnManagementSetting:B
18957 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18959 + move-result v1
18961 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
18963 + invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
18965 + move-result-object v1
18967 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->androidID:Ljava/lang/String;
18969 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18971 + move-result v1
18973 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->wifiInfoSetting:B
18975 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18977 + move-result v1
18979 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->switchConnectivitySetting:B
18981 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18983 + move-result v1
18985 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->sendMmsSetting:B
18987 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18989 + move-result v1
18991 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->forceOnlineState:B
18993 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18995 + move-result v1
18997 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->switchWifiStateSetting:B
18999 + return-void
19001 + :cond_122
19002 + invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
19004 + move-result-object v1
19006 + goto/16 :goto_b
19007 +.end method
19009 +.method public constructor <init>(Ljava/lang/Integer;Ljava/lang/String;I)V
19010 + .registers 7
19012 + const/4 v2, 0x1
19014 + const/4 v1, 0x0
19016 + const/4 v0, 0x0
19018 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
19020 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->_id:Ljava/lang/Integer;
19022 + iput-object p2, p0, Landroid/privacy/PrivacySettings;->packageName:Ljava/lang/String;
19024 + iput p3, p0, Landroid/privacy/PrivacySettings;->uid:I
19026 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
19028 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->deviceId:Ljava/lang/String;
19030 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
19032 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->line1Number:Ljava/lang/String;
19034 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
19036 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationGpsLat:Ljava/lang/String;
19038 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationGpsLon:Ljava/lang/String;
19040 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
19042 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLat:Ljava/lang/String;
19044 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLon:Ljava/lang/String;
19046 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->networkInfoSetting:B
19048 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->simInfoSetting:B
19050 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
19052 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->simSerialNumber:Ljava/lang/String;
19054 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
19056 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->subscriberId:Ljava/lang/String;
19058 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsSetting:B
19060 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsAuthTokensSetting:B
19062 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->outgoingCallsSetting:B
19064 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->incomingCallsSetting:B
19066 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->contactsSetting:B
19068 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->calendarSetting:B
19070 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->mmsSetting:B
19072 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSetting:B
19074 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->callLogSetting:B
19076 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->bookmarksSetting:B
19078 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->systemLogsSetting:B
19080 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->notificationSetting:B
19082 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->intentBootCompletedSetting:B
19084 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->cameraSetting:B
19086 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->recordAudioSetting:B
19088 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->allowedContacts:[I
19090 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSendSetting:B
19092 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->phoneCallSetting:B
19094 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->ipTableProtectSetting:B
19096 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->iccAccessSetting:B
19098 + iput-byte v2, p0, Landroid/privacy/PrivacySettings;->addOnManagementSetting:B
19100 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
19102 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->androidID:Ljava/lang/String;
19104 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->wifiInfoSetting:B
19106 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->switchConnectivitySetting:B
19108 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->sendMmsSetting:B
19110 + iput-byte v2, p0, Landroid/privacy/PrivacySettings;->forceOnlineState:B
19112 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->switchWifiStateSetting:B
19114 + return-void
19115 +.end method
19117 +.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
19118 + .registers 50
19120 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
19122 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->_id:Ljava/lang/Integer;
19124 + iput-object p2, p0, Landroid/privacy/PrivacySettings;->packageName:Ljava/lang/String;
19126 + iput p3, p0, Landroid/privacy/PrivacySettings;->uid:I
19128 + iput-byte p4, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
19130 + iput-object p5, p0, Landroid/privacy/PrivacySettings;->deviceId:Ljava/lang/String;
19132 + iput-byte p6, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
19134 + iput-object p7, p0, Landroid/privacy/PrivacySettings;->line1Number:Ljava/lang/String;
19136 + iput-byte p8, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
19138 + iput-object p9, p0, Landroid/privacy/PrivacySettings;->locationGpsLat:Ljava/lang/String;
19140 + iput-object p10, p0, Landroid/privacy/PrivacySettings;->locationGpsLon:Ljava/lang/String;
19142 + iput-byte p11, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
19144 + iput-object p12, p0, Landroid/privacy/PrivacySettings;->locationNetworkLat:Ljava/lang/String;
19146 + iput-object p13, p0, Landroid/privacy/PrivacySettings;->locationNetworkLon:Ljava/lang/String;
19148 + iput-byte p14, p0, Landroid/privacy/PrivacySettings;->networkInfoSetting:B
19150 + move/from16 v0, p15
19152 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->simInfoSetting:B
19154 + move/from16 v0, p16
19156 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
19158 + move-object/from16 v0, p17
19160 + iput-object v0, p0, Landroid/privacy/PrivacySettings;->simSerialNumber:Ljava/lang/String;
19162 + move/from16 v0, p18
19164 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
19166 + move-object/from16 v0, p19
19168 + iput-object v0, p0, Landroid/privacy/PrivacySettings;->subscriberId:Ljava/lang/String;
19170 + move/from16 v0, p20
19172 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsSetting:B
19174 + move/from16 v0, p21
19176 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsAuthTokensSetting:B
19178 + move/from16 v0, p22
19180 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->outgoingCallsSetting:B
19182 + move/from16 v0, p23
19184 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->incomingCallsSetting:B
19186 + move/from16 v0, p24
19188 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->contactsSetting:B
19190 + move/from16 v0, p25
19192 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->calendarSetting:B
19194 + move/from16 v0, p26
19196 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->mmsSetting:B
19198 + move/from16 v0, p27
19200 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSetting:B
19202 + move/from16 v0, p28
19204 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->callLogSetting:B
19206 + move/from16 v0, p29
19208 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->bookmarksSetting:B
19210 + move/from16 v0, p30
19212 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->systemLogsSetting:B
19214 + move/from16 v0, p34
19216 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->notificationSetting:B
19218 + move/from16 v0, p35
19220 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->intentBootCompletedSetting:B
19222 + move/from16 v0, p32
19224 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->cameraSetting:B
19226 + move/from16 v0, p33
19228 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->recordAudioSetting:B
19230 + move-object/from16 v0, p36
19232 + iput-object v0, p0, Landroid/privacy/PrivacySettings;->allowedContacts:[I
19234 + move/from16 v0, p37
19236 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSendSetting:B
19238 + move/from16 v0, p38
19240 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->phoneCallSetting:B
19242 + move/from16 v0, p39
19244 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->ipTableProtectSetting:B
19246 + move/from16 v0, p40
19248 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->iccAccessSetting:B
19250 + move/from16 v0, p41
19252 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->addOnManagementSetting:B
19254 + move/from16 v0, p42
19256 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
19258 + move-object/from16 v0, p43
19260 + iput-object v0, p0, Landroid/privacy/PrivacySettings;->androidID:Ljava/lang/String;
19262 + move/from16 v0, p44
19264 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->wifiInfoSetting:B
19266 + move/from16 v0, p45
19268 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->switchConnectivitySetting:B
19270 + move/from16 v0, p46
19272 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->sendMmsSetting:B
19274 + move/from16 v0, p47
19276 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->forceOnlineState:B
19278 + move/from16 v0, p48
19280 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->switchWifiStateSetting:B
19282 + return-void
19283 +.end method
19285 +.method public constructor <init>(Ljava/lang/Integer;Ljava/lang/String;IZ)V
19286 + .registers 9
19288 + const/4 v3, 0x0
19290 + const/4 v2, 0x3
19292 + const/4 v1, 0x0
19294 + const/4 v0, 0x1
19296 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
19298 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->_id:Ljava/lang/Integer;
19300 + iput-object p2, p0, Landroid/privacy/PrivacySettings;->packageName:Ljava/lang/String;
19302 + iput p3, p0, Landroid/privacy/PrivacySettings;->uid:I
19304 + if-eqz p4, :cond_68
19306 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
19308 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->deviceId:Ljava/lang/String;
19310 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
19312 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->line1Number:Ljava/lang/String;
19314 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
19316 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationGpsLat:Ljava/lang/String;
19318 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationGpsLon:Ljava/lang/String;
19320 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
19322 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLat:Ljava/lang/String;
19324 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLon:Ljava/lang/String;
19326 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->networkInfoSetting:B
19328 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->simInfoSetting:B
19330 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
19332 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->simSerialNumber:Ljava/lang/String;
19334 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
19336 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->subscriberId:Ljava/lang/String;
19338 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsSetting:B
19340 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsAuthTokensSetting:B
19342 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->outgoingCallsSetting:B
19344 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->incomingCallsSetting:B
19346 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->contactsSetting:B
19348 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->calendarSetting:B
19350 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->mmsSetting:B
19352 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSetting:B
19354 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->callLogSetting:B
19356 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->bookmarksSetting:B
19358 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->systemLogsSetting:B
19360 + iput-byte v3, p0, Landroid/privacy/PrivacySettings;->notificationSetting:B
19362 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->intentBootCompletedSetting:B
19364 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->cameraSetting:B
19366 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->recordAudioSetting:B
19368 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->allowedContacts:[I
19370 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSendSetting:B
19372 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->phoneCallSetting:B
19374 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->ipTableProtectSetting:B
19376 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->iccAccessSetting:B
19378 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->addOnManagementSetting:B
19380 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
19382 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->androidID:Ljava/lang/String;
19384 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->wifiInfoSetting:B
19386 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->switchConnectivitySetting:B
19388 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->sendMmsSetting:B
19390 + iput-byte v3, p0, Landroid/privacy/PrivacySettings;->forceOnlineState:B
19392 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->switchWifiStateSetting:B
19394 + :goto_67
19395 + return-void
19397 + :cond_68
19398 + iput-byte v2, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
19400 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->deviceId:Ljava/lang/String;
19402 + iput-byte v2, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
19404 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->line1Number:Ljava/lang/String;
19406 + iput-byte v2, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
19408 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationGpsLat:Ljava/lang/String;
19410 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationGpsLon:Ljava/lang/String;
19412 + iput-byte v2, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
19414 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLat:Ljava/lang/String;
19416 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLon:Ljava/lang/String;
19418 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->networkInfoSetting:B
19420 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->simInfoSetting:B
19422 + iput-byte v2, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
19424 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->simSerialNumber:Ljava/lang/String;
19426 + iput-byte v2, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
19428 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->subscriberId:Ljava/lang/String;
19430 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsSetting:B
19432 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsAuthTokensSetting:B
19434 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->outgoingCallsSetting:B
19436 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->incomingCallsSetting:B
19438 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->contactsSetting:B
19440 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->calendarSetting:B
19442 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->mmsSetting:B
19444 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSetting:B
19446 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->callLogSetting:B
19448 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->bookmarksSetting:B
19450 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->systemLogsSetting:B
19452 + iput-byte v3, p0, Landroid/privacy/PrivacySettings;->notificationSetting:B
19454 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->intentBootCompletedSetting:B
19456 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->cameraSetting:B
19458 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->recordAudioSetting:B
19460 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->allowedContacts:[I
19462 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSendSetting:B
19464 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->phoneCallSetting:B
19466 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->ipTableProtectSetting:B
19468 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->iccAccessSetting:B
19470 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->addOnManagementSetting:B
19472 + iput-byte v2, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
19474 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->androidID:Ljava/lang/String;
19476 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->wifiInfoSetting:B
19478 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->switchConnectivitySetting:B
19480 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->sendMmsSetting:B
19482 + iput-byte v3, p0, Landroid/privacy/PrivacySettings;->forceOnlineState:B
19484 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->switchWifiStateSetting:B
19486 + goto :goto_67
19487 +.end method
19489 +.method private getRandomLat()Ljava/lang/String;
19490 + .registers 10
19492 + const-wide v7, 0x4056800000000000L
19494 + invoke-static {}, Ljava/lang/Math;->random()D
19496 + move-result-wide v3
19498 + const-wide v5, 0x4066800000000000L
19500 + mul-double v0, v3, v5
19502 + cmpl-double v3, v0, v7
19504 + if-lez v3, :cond_35
19506 + new-instance v2, Ljava/math/BigDecimal;
19508 + sub-double v3, v0, v7
19510 + invoke-direct {v2, v3, v4}, Ljava/math/BigDecimal;-><init>(D)V
19512 + :goto_1b
19513 + new-instance v3, Ljava/lang/StringBuilder;
19515 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
19517 + const/4 v4, 0x6
19519 + const/4 v5, 0x4
19521 + invoke-virtual {v2, v4, v5}, Ljava/math/BigDecimal;->setScale(II)Ljava/math/BigDecimal;
19523 + move-result-object v4
19525 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
19527 + move-result-object v3
19529 + const-string v4, ""
19531 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
19533 + move-result-object v3
19535 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
19537 + move-result-object v3
19539 + return-object v3
19541 + :cond_35
19542 + new-instance v2, Ljava/math/BigDecimal;
19544 + neg-double v3, v0
19546 + invoke-direct {v2, v3, v4}, Ljava/math/BigDecimal;-><init>(D)V
19548 + goto :goto_1b
19549 +.end method
19551 +.method private getRandomLon()Ljava/lang/String;
19552 + .registers 10
19554 + const-wide v7, 0x4066800000000000L
19556 + invoke-static {}, Ljava/lang/Math;->random()D
19558 + move-result-wide v3
19560 + const-wide v5, 0x4076800000000000L
19562 + mul-double v0, v3, v5
19564 + cmpl-double v3, v0, v7
19566 + if-lez v3, :cond_35
19568 + new-instance v2, Ljava/math/BigDecimal;
19570 + sub-double v3, v0, v7
19572 + invoke-direct {v2, v3, v4}, Ljava/math/BigDecimal;-><init>(D)V
19574 + :goto_1b
19575 + new-instance v3, Ljava/lang/StringBuilder;
19577 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
19579 + const/4 v4, 0x6
19581 + const/4 v5, 0x4
19583 + invoke-virtual {v2, v4, v5}, Ljava/math/BigDecimal;->setScale(II)Ljava/math/BigDecimal;
19585 + move-result-object v4
19587 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
19589 + move-result-object v3
19591 + const-string v4, ""
19593 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
19595 + move-result-object v3
19597 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
19599 + move-result-object v3
19601 + return-object v3
19603 + :cond_35
19604 + new-instance v2, Ljava/math/BigDecimal;
19606 + neg-double v3, v0
19608 + invoke-direct {v2, v3, v4}, Ljava/math/BigDecimal;-><init>(D)V
19610 + goto :goto_1b
19611 +.end method
19614 +# virtual methods
19615 +.method public describeContents()I
19616 + .registers 2
19618 + const/4 v0, 0x0
19620 + return v0
19621 +.end method
19623 +.method public getAccountsAuthTokensSetting()B
19624 + .registers 2
19626 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsAuthTokensSetting:B
19628 + return v0
19629 +.end method
19631 +.method public getAccountsSetting()B
19632 + .registers 2
19634 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsSetting:B
19636 + return v0
19637 +.end method
19639 +.method public getAddOnManagementSetting()B
19640 + .registers 2
19642 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->addOnManagementSetting:B
19644 + return v0
19645 +.end method
19647 +.method public getAllowedContacts()[I
19648 + .registers 2
19650 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->allowedContacts:[I
19652 + return-object v0
19653 +.end method
19655 +.method public getAndroidID()Ljava/lang/String;
19656 + .registers 6
19658 + iget-byte v3, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
19660 + const/4 v4, 0x1
19662 + if-ne v3, v4, :cond_9
19664 + const-string/jumbo v3, "q4a5w896ay21dr46"
19666 + :goto_8
19667 + return-object v3
19669 + :cond_9
19670 + iget-byte v3, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
19672 + const/4 v4, 0x3
19674 + if-ne v3, v4, :cond_36
19676 + new-instance v2, Ljava/util/Random;
19678 + invoke-direct {v2}, Ljava/util/Random;-><init>()V
19680 + new-instance v1, Ljava/lang/StringBuilder;
19682 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
19684 + const/4 v0, 0x0
19686 + :goto_19
19687 + sget-object v3, Landroid/privacy/PrivacySettings;->ID_PATTERN:[Ljava/lang/String;
19689 + array-length v3, v3
19691 + if-ge v0, v3, :cond_31
19693 + sget-object v3, Landroid/privacy/PrivacySettings;->ID_PATTERN:[Ljava/lang/String;
19695 + sget-object v4, Landroid/privacy/PrivacySettings;->ID_PATTERN:[Ljava/lang/String;
19697 + array-length v4, v4
19699 + add-int/lit8 v4, v4, -0x1
19701 + invoke-virtual {v2, v4}, Ljava/util/Random;->nextInt(I)I
19703 + move-result v4
19705 + aget-object v3, v3, v4
19707 + invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
19709 + add-int/lit8 v0, v0, 0x1
19711 + goto :goto_19
19713 + :cond_31
19714 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
19716 + move-result-object v3
19718 + goto :goto_8
19720 + :cond_36
19721 + iget-object v3, p0, Landroid/privacy/PrivacySettings;->androidID:Ljava/lang/String;
19723 + goto :goto_8
19724 +.end method
19726 +.method public getAndroidIdSetting()B
19727 + .registers 2
19729 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
19731 + return v0
19732 +.end method
19734 +.method public getBookmarksSetting()B
19735 + .registers 2
19737 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->bookmarksSetting:B
19739 + return v0
19740 +.end method
19742 +.method public getCalendarSetting()B
19743 + .registers 2
19745 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->calendarSetting:B
19747 + return v0
19748 +.end method
19750 +.method public getCallLogSetting()B
19751 + .registers 2
19753 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->callLogSetting:B
19755 + return v0
19756 +.end method
19758 +.method public getCameraSetting()B
19759 + .registers 2
19761 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->cameraSetting:B
19763 + return v0
19764 +.end method
19766 +.method public getContactsSetting()B
19767 + .registers 2
19769 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->contactsSetting:B
19771 + return v0
19772 +.end method
19774 +.method public getDeviceId()Ljava/lang/String;
19775 + .registers 9
19777 + const/4 v7, 0x0
19779 + const/16 v6, 0xf
19781 + iget-byte v3, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
19783 + const/4 v4, 0x1
19785 + if-ne v3, v4, :cond_b
19787 + const-string v3, ""
19789 + :goto_a
19790 + return-object v3
19792 + :cond_b
19793 + iget-byte v3, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
19795 + const/4 v4, 0x3
19797 + if-ne v3, v4, :cond_62
19799 + new-instance v1, Ljava/util/Random;
19801 + invoke-direct {v1}, Ljava/util/Random;-><init>()V
19803 + new-instance v3, Ljava/lang/StringBuilder;
19805 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
19807 + invoke-virtual {v1}, Ljava/util/Random;->nextLong()J
19809 + move-result-wide v4
19811 + invoke-static {v4, v5}, Ljava/lang/Math;->abs(J)J
19813 + move-result-wide v4
19815 + invoke-virtual {v3, v4, v5}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
19817 + move-result-object v3
19819 + const-string v4, ""
19821 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
19823 + move-result-object v3
19825 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
19827 + move-result-object v2
19829 + invoke-virtual {v2}, Ljava/lang/String;->length()I
19831 + move-result v3
19833 + if-le v3, v6, :cond_3b
19835 + invoke-virtual {v2, v7, v6}, Ljava/lang/String;->substring(II)Ljava/lang/String;
19837 + move-result-object v3
19839 + goto :goto_a
19841 + :cond_3b
19842 + invoke-virtual {v2}, Ljava/lang/String;->length()I
19844 + move-result v0
19846 + :goto_3f
19847 + const/16 v3, 0x10
19849 + if-gt v0, v3, :cond_5d
19851 + new-instance v3, Ljava/lang/StringBuilder;
19853 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
19855 + invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
19857 + move-result-object v3
19859 + const/16 v4, 0x9
19861 + invoke-virtual {v1, v4}, Ljava/util/Random;->nextInt(I)I
19863 + move-result v4
19865 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
19867 + move-result-object v3
19869 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
19871 + move-result-object v2
19873 + add-int/lit8 v0, v0, 0x1
19875 + goto :goto_3f
19877 + :cond_5d
19878 + invoke-virtual {v2, v7, v6}, Ljava/lang/String;->substring(II)Ljava/lang/String;
19880 + move-result-object v3
19882 + goto :goto_a
19884 + :cond_62
19885 + iget-object v3, p0, Landroid/privacy/PrivacySettings;->deviceId:Ljava/lang/String;
19887 + goto :goto_a
19888 +.end method
19890 +.method public getDeviceIdSetting()B
19891 + .registers 2
19893 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
19895 + return v0
19896 +.end method
19898 +.method public getForceOnlineState()B
19899 + .registers 2
19901 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->forceOnlineState:B
19903 + return v0
19904 +.end method
19906 +.method public getIccAccessSetting()B
19907 + .registers 2
19909 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->iccAccessSetting:B
19911 + return v0
19912 +.end method
19914 +.method public getIncomingCallsSetting()B
19915 + .registers 2
19917 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->incomingCallsSetting:B
19919 + return v0
19920 +.end method
19922 +.method public getIntentBootCompletedSetting()B
19923 + .registers 2
19925 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->intentBootCompletedSetting:B
19927 + return v0
19928 +.end method
19930 +.method public getIpTableProtectSetting()B
19931 + .registers 2
19933 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->ipTableProtectSetting:B
19935 + return v0
19936 +.end method
19938 +.method public getLine1Number()Ljava/lang/String;
19939 + .registers 9
19941 + const/4 v7, 0x0
19943 + const/16 v6, 0xd
19945 + iget-byte v3, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
19947 + const/4 v4, 0x1
19949 + if-ne v3, v4, :cond_b
19951 + const-string v3, ""
19953 + :goto_a
19954 + return-object v3
19956 + :cond_b
19957 + iget-byte v3, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
19959 + const/4 v4, 0x3
19961 + if-ne v3, v4, :cond_68
19963 + new-instance v1, Ljava/util/Random;
19965 + invoke-direct {v1}, Ljava/util/Random;-><init>()V
19967 + new-instance v3, Ljava/lang/StringBuilder;
19969 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
19971 + const-string v4, "+"
19973 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
19975 + move-result-object v3
19977 + invoke-virtual {v1}, Ljava/util/Random;->nextLong()J
19979 + move-result-wide v4
19981 + invoke-static {v4, v5}, Ljava/lang/Math;->abs(J)J
19983 + move-result-wide v4
19985 + invoke-virtual {v3, v4, v5}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
19987 + move-result-object v3
19989 + const-string v4, ""
19991 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
19993 + move-result-object v3
19995 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
19997 + move-result-object v2
19999 + invoke-virtual {v2}, Ljava/lang/String;->length()I
20001 + move-result v3
20003 + if-le v3, v6, :cond_41
20005 + invoke-virtual {v2, v7, v6}, Ljava/lang/String;->substring(II)Ljava/lang/String;
20007 + move-result-object v3
20009 + goto :goto_a
20011 + :cond_41
20012 + invoke-virtual {v2}, Ljava/lang/String;->length()I
20014 + move-result v0
20016 + :goto_45
20017 + const/16 v3, 0xe
20019 + if-gt v0, v3, :cond_63
20021 + new-instance v3, Ljava/lang/StringBuilder;
20023 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
20025 + invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20027 + move-result-object v3
20029 + const/16 v4, 0x9
20031 + invoke-virtual {v1, v4}, Ljava/util/Random;->nextInt(I)I
20033 + move-result v4
20035 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20037 + move-result-object v3
20039 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
20041 + move-result-object v2
20043 + add-int/lit8 v0, v0, 0x1
20045 + goto :goto_45
20047 + :cond_63
20048 + invoke-virtual {v2, v7, v6}, Ljava/lang/String;->substring(II)Ljava/lang/String;
20050 + move-result-object v3
20052 + goto :goto_a
20054 + :cond_68
20055 + iget-object v3, p0, Landroid/privacy/PrivacySettings;->line1Number:Ljava/lang/String;
20057 + goto :goto_a
20058 +.end method
20060 +.method public getLine1NumberSetting()B
20061 + .registers 2
20063 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
20065 + return v0
20066 +.end method
20068 +.method public getLocationGpsLat()Ljava/lang/String;
20069 + .registers 3
20071 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
20073 + const/4 v1, 0x1
20075 + if-ne v0, v1, :cond_8
20077 + const-string v0, ""
20079 + :goto_7
20080 + return-object v0
20082 + :cond_8
20083 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
20085 + const/4 v1, 0x3
20087 + if-ne v0, v1, :cond_12
20089 + invoke-direct {p0}, Landroid/privacy/PrivacySettings;->getRandomLat()Ljava/lang/String;
20091 + move-result-object v0
20093 + goto :goto_7
20095 + :cond_12
20096 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->locationGpsLat:Ljava/lang/String;
20098 + goto :goto_7
20099 +.end method
20101 +.method public getLocationGpsLon()Ljava/lang/String;
20102 + .registers 3
20104 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
20106 + const/4 v1, 0x1
20108 + if-ne v0, v1, :cond_8
20110 + const-string v0, ""
20112 + :goto_7
20113 + return-object v0
20115 + :cond_8
20116 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
20118 + const/4 v1, 0x3
20120 + if-ne v0, v1, :cond_12
20122 + invoke-direct {p0}, Landroid/privacy/PrivacySettings;->getRandomLon()Ljava/lang/String;
20124 + move-result-object v0
20126 + goto :goto_7
20128 + :cond_12
20129 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->locationGpsLon:Ljava/lang/String;
20131 + goto :goto_7
20132 +.end method
20134 +.method public getLocationGpsSetting()B
20135 + .registers 2
20137 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
20139 + return v0
20140 +.end method
20142 +.method public getLocationNetworkLat()Ljava/lang/String;
20143 + .registers 3
20145 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
20147 + const/4 v1, 0x1
20149 + if-ne v0, v1, :cond_8
20151 + const-string v0, ""
20153 + :goto_7
20154 + return-object v0
20156 + :cond_8
20157 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
20159 + const/4 v1, 0x3
20161 + if-ne v0, v1, :cond_12
20163 + invoke-direct {p0}, Landroid/privacy/PrivacySettings;->getRandomLat()Ljava/lang/String;
20165 + move-result-object v0
20167 + goto :goto_7
20169 + :cond_12
20170 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkLat:Ljava/lang/String;
20172 + goto :goto_7
20173 +.end method
20175 +.method public getLocationNetworkLon()Ljava/lang/String;
20176 + .registers 3
20178 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
20180 + const/4 v1, 0x1
20182 + if-ne v0, v1, :cond_8
20184 + const-string v0, ""
20186 + :goto_7
20187 + return-object v0
20189 + :cond_8
20190 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
20192 + const/4 v1, 0x3
20194 + if-ne v0, v1, :cond_12
20196 + invoke-direct {p0}, Landroid/privacy/PrivacySettings;->getRandomLon()Ljava/lang/String;
20198 + move-result-object v0
20200 + goto :goto_7
20202 + :cond_12
20203 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkLon:Ljava/lang/String;
20205 + goto :goto_7
20206 +.end method
20208 +.method public getLocationNetworkSetting()B
20209 + .registers 2
20211 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
20213 + return v0
20214 +.end method
20216 +.method public getMmsSetting()B
20217 + .registers 2
20219 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->mmsSetting:B
20221 + return v0
20222 +.end method
20224 +.method public getNetworkInfoSetting()B
20225 + .registers 2
20227 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->networkInfoSetting:B
20229 + return v0
20230 +.end method
20232 +.method public getNotificationSetting()B
20233 + .registers 2
20235 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->notificationSetting:B
20237 + return v0
20238 +.end method
20240 +.method public getOutgoingCallsSetting()B
20241 + .registers 2
20243 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->outgoingCallsSetting:B
20245 + return v0
20246 +.end method
20248 +.method public getPackageName()Ljava/lang/String;
20249 + .registers 2
20251 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->packageName:Ljava/lang/String;
20253 + return-object v0
20254 +.end method
20256 +.method public getPhoneCallSetting()B
20257 + .registers 2
20259 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->phoneCallSetting:B
20261 + return v0
20262 +.end method
20264 +.method public getRecordAudioSetting()B
20265 + .registers 2
20267 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->recordAudioSetting:B
20269 + return v0
20270 +.end method
20272 +.method public getSendMmsSetting()B
20273 + .registers 2
20275 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->sendMmsSetting:B
20277 + return v0
20278 +.end method
20280 +.method public getSimInfoSetting()B
20281 + .registers 2
20283 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->simInfoSetting:B
20285 + return v0
20286 +.end method
20288 +.method public getSimSerialNumber()Ljava/lang/String;
20289 + .registers 5
20291 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
20293 + const/4 v2, 0x1
20295 + if-ne v1, v2, :cond_8
20297 + const-string v1, ""
20299 + :goto_7
20300 + return-object v1
20302 + :cond_8
20303 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
20305 + const/4 v2, 0x3
20307 + if-ne v1, v2, :cond_2e
20309 + new-instance v0, Ljava/util/Random;
20311 + invoke-direct {v0}, Ljava/util/Random;-><init>()V
20313 + new-instance v1, Ljava/lang/StringBuilder;
20315 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
20317 + invoke-virtual {v0}, Ljava/util/Random;->nextLong()J
20319 + move-result-wide v2
20321 + invoke-static {v2, v3}, Ljava/lang/Math;->abs(J)J
20323 + move-result-wide v2
20325 + invoke-virtual {v1, v2, v3}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
20327 + move-result-object v1
20329 + const-string v2, ""
20331 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20333 + move-result-object v1
20335 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
20337 + move-result-object v1
20339 + goto :goto_7
20341 + :cond_2e
20342 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->simSerialNumber:Ljava/lang/String;
20344 + goto :goto_7
20345 +.end method
20347 +.method public getSimSerialNumberSetting()B
20348 + .registers 2
20350 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
20352 + return v0
20353 +.end method
20355 +.method public getSmsSendSetting()B
20356 + .registers 2
20358 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSendSetting:B
20360 + return v0
20361 +.end method
20363 +.method public getSmsSetting()B
20364 + .registers 2
20366 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSetting:B
20368 + return v0
20369 +.end method
20371 +.method public getSubscriberId()Ljava/lang/String;
20372 + .registers 9
20374 + const/4 v7, 0x0
20376 + const/16 v6, 0xf
20378 + iget-byte v3, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
20380 + const/4 v4, 0x1
20382 + if-ne v3, v4, :cond_b
20384 + const-string v3, ""
20386 + :goto_a
20387 + return-object v3
20389 + :cond_b
20390 + iget-byte v3, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
20392 + const/4 v4, 0x3
20394 + if-ne v3, v4, :cond_62
20396 + new-instance v1, Ljava/util/Random;
20398 + invoke-direct {v1}, Ljava/util/Random;-><init>()V
20400 + new-instance v3, Ljava/lang/StringBuilder;
20402 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
20404 + invoke-virtual {v1}, Ljava/util/Random;->nextLong()J
20406 + move-result-wide v4
20408 + invoke-static {v4, v5}, Ljava/lang/Math;->abs(J)J
20410 + move-result-wide v4
20412 + invoke-virtual {v3, v4, v5}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
20414 + move-result-object v3
20416 + const-string v4, ""
20418 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20420 + move-result-object v3
20422 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
20424 + move-result-object v2
20426 + invoke-virtual {v2}, Ljava/lang/String;->length()I
20428 + move-result v3
20430 + if-le v3, v6, :cond_3b
20432 + invoke-virtual {v2, v7, v6}, Ljava/lang/String;->substring(II)Ljava/lang/String;
20434 + move-result-object v3
20436 + goto :goto_a
20438 + :cond_3b
20439 + invoke-virtual {v2}, Ljava/lang/String;->length()I
20441 + move-result v0
20443 + :goto_3f
20444 + const/16 v3, 0x10
20446 + if-gt v0, v3, :cond_5d
20448 + new-instance v3, Ljava/lang/StringBuilder;
20450 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
20452 + invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20454 + move-result-object v3
20456 + const/16 v4, 0x9
20458 + invoke-virtual {v1, v4}, Ljava/util/Random;->nextInt(I)I
20460 + move-result v4
20462 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20464 + move-result-object v3
20466 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
20468 + move-result-object v2
20470 + add-int/lit8 v0, v0, 0x1
20472 + goto :goto_3f
20474 + :cond_5d
20475 + invoke-virtual {v2, v7, v6}, Ljava/lang/String;->substring(II)Ljava/lang/String;
20477 + move-result-object v3
20479 + goto :goto_a
20481 + :cond_62
20482 + iget-object v3, p0, Landroid/privacy/PrivacySettings;->subscriberId:Ljava/lang/String;
20484 + goto :goto_a
20485 +.end method
20487 +.method public getSubscriberIdSetting()B
20488 + .registers 2
20490 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
20492 + return v0
20493 +.end method
20495 +.method public getSwitchConnectivitySetting()B
20496 + .registers 2
20498 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->switchConnectivitySetting:B
20500 + return v0
20501 +.end method
20503 +.method public getSwitchWifiStateSetting()B
20504 + .registers 2
20506 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->switchWifiStateSetting:B
20508 + return v0
20509 +.end method
20511 +.method public getSystemLogsSetting()B
20512 + .registers 2
20514 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->systemLogsSetting:B
20516 + return v0
20517 +.end method
20519 +.method public getUid()I
20520 + .registers 2
20522 + iget v0, p0, Landroid/privacy/PrivacySettings;->uid:I
20524 + return v0
20525 +.end method
20527 +.method public getWifiInfoSetting()B
20528 + .registers 2
20530 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->wifiInfoSetting:B
20532 + return v0
20533 +.end method
20535 +.method public get_id()Ljava/lang/Integer;
20536 + .registers 2
20538 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->_id:Ljava/lang/Integer;
20540 + return-object v0
20541 +.end method
20543 +.method public setAccountsAuthTokensSetting(B)V
20544 + .registers 2
20546 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->accountsAuthTokensSetting:B
20548 + return-void
20549 +.end method
20551 +.method public setAccountsSetting(B)V
20552 + .registers 2
20554 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->accountsSetting:B
20556 + return-void
20557 +.end method
20559 +.method public setAddOnManagementSetting(B)V
20560 + .registers 2
20562 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->addOnManagementSetting:B
20564 + return-void
20565 +.end method
20567 +.method public setAllowedContacts([I)V
20568 + .registers 2
20570 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->allowedContacts:[I
20572 + return-void
20573 +.end method
20575 +.method public setAndroidID(Ljava/lang/String;)V
20576 + .registers 2
20578 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->androidID:Ljava/lang/String;
20580 + return-void
20581 +.end method
20583 +.method public setAndroidIdSetting(B)V
20584 + .registers 2
20586 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
20588 + return-void
20589 +.end method
20591 +.method public setBookmarksSetting(B)V
20592 + .registers 2
20594 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->bookmarksSetting:B
20596 + return-void
20597 +.end method
20599 +.method public setCalendarSetting(B)V
20600 + .registers 2
20602 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->calendarSetting:B
20604 + return-void
20605 +.end method
20607 +.method public setCallLogSetting(B)V
20608 + .registers 2
20610 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->callLogSetting:B
20612 + return-void
20613 +.end method
20615 +.method public setCameraSetting(B)V
20616 + .registers 2
20618 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->cameraSetting:B
20620 + return-void
20621 +.end method
20623 +.method public setContactsSetting(B)V
20624 + .registers 2
20626 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->contactsSetting:B
20628 + return-void
20629 +.end method
20631 +.method public setDeviceId(Ljava/lang/String;)V
20632 + .registers 2
20634 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->deviceId:Ljava/lang/String;
20636 + return-void
20637 +.end method
20639 +.method public setDeviceIdSetting(B)V
20640 + .registers 2
20642 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
20644 + return-void
20645 +.end method
20647 +.method public setForceOnlineState(B)V
20648 + .registers 2
20650 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->forceOnlineState:B
20652 + return-void
20653 +.end method
20655 +.method public setIccAccessSetting(B)V
20656 + .registers 2
20658 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->iccAccessSetting:B
20660 + return-void
20661 +.end method
20663 +.method public setIncomingCallsSetting(B)V
20664 + .registers 2
20666 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->incomingCallsSetting:B
20668 + return-void
20669 +.end method
20671 +.method public setIntentBootCompletedSetting(B)V
20672 + .registers 2
20674 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->intentBootCompletedSetting:B
20676 + return-void
20677 +.end method
20679 +.method public setIpTableProtectSetting(B)V
20680 + .registers 2
20682 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->ipTableProtectSetting:B
20684 + return-void
20685 +.end method
20687 +.method public setLine1Number(Ljava/lang/String;)V
20688 + .registers 2
20690 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->line1Number:Ljava/lang/String;
20692 + return-void
20693 +.end method
20695 +.method public setLine1NumberSetting(B)V
20696 + .registers 2
20698 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
20700 + return-void
20701 +.end method
20703 +.method public setLocationGpsLat(Ljava/lang/String;)V
20704 + .registers 2
20706 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->locationGpsLat:Ljava/lang/String;
20708 + return-void
20709 +.end method
20711 +.method public setLocationGpsLon(Ljava/lang/String;)V
20712 + .registers 2
20714 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->locationGpsLon:Ljava/lang/String;
20716 + return-void
20717 +.end method
20719 +.method public setLocationGpsSetting(B)V
20720 + .registers 2
20722 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
20724 + return-void
20725 +.end method
20727 +.method public setLocationNetworkLat(Ljava/lang/String;)V
20728 + .registers 2
20730 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLat:Ljava/lang/String;
20732 + return-void
20733 +.end method
20735 +.method public setLocationNetworkLon(Ljava/lang/String;)V
20736 + .registers 2
20738 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLon:Ljava/lang/String;
20740 + return-void
20741 +.end method
20743 +.method public setLocationNetworkSetting(B)V
20744 + .registers 2
20746 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
20748 + return-void
20749 +.end method
20751 +.method public setMmsSetting(B)V
20752 + .registers 2
20754 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->mmsSetting:B
20756 + return-void
20757 +.end method
20759 +.method public setNetworkInfoSetting(B)V
20760 + .registers 2
20762 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->networkInfoSetting:B
20764 + return-void
20765 +.end method
20767 +.method public setNotificationSetting(B)V
20768 + .registers 2
20770 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->notificationSetting:B
20772 + return-void
20773 +.end method
20775 +.method public setOutgoingCallsSetting(B)V
20776 + .registers 2
20778 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->outgoingCallsSetting:B
20780 + return-void
20781 +.end method
20783 +.method public setPackageName(Ljava/lang/String;)V
20784 + .registers 2
20786 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->packageName:Ljava/lang/String;
20788 + return-void
20789 +.end method
20791 +.method public setPhoneCallSetting(B)V
20792 + .registers 2
20794 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->phoneCallSetting:B
20796 + return-void
20797 +.end method
20799 +.method public setRecordAudioSetting(B)V
20800 + .registers 2
20802 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->recordAudioSetting:B
20804 + return-void
20805 +.end method
20807 +.method public setSendMmsSetting(B)V
20808 + .registers 2
20810 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->sendMmsSetting:B
20812 + return-void
20813 +.end method
20815 +.method public setSimInfoSetting(B)V
20816 + .registers 2
20818 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->simInfoSetting:B
20820 + return-void
20821 +.end method
20823 +.method public setSimSerialNumber(Ljava/lang/String;)V
20824 + .registers 2
20826 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->simSerialNumber:Ljava/lang/String;
20828 + return-void
20829 +.end method
20831 +.method public setSimSerialNumberSetting(B)V
20832 + .registers 2
20834 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
20836 + return-void
20837 +.end method
20839 +.method public setSmsSendSetting(B)V
20840 + .registers 2
20842 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->smsSendSetting:B
20844 + return-void
20845 +.end method
20847 +.method public setSmsSetting(B)V
20848 + .registers 2
20850 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->smsSetting:B
20852 + return-void
20853 +.end method
20855 +.method public setSubscriberId(Ljava/lang/String;)V
20856 + .registers 2
20858 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->subscriberId:Ljava/lang/String;
20860 + return-void
20861 +.end method
20863 +.method public setSubscriberIdSetting(B)V
20864 + .registers 2
20866 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
20868 + return-void
20869 +.end method
20871 +.method public setSwitchConnectivitySetting(B)V
20872 + .registers 2
20874 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->switchConnectivitySetting:B
20876 + return-void
20877 +.end method
20879 +.method public setSwitchWifiStateSetting(B)V
20880 + .registers 2
20882 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->switchWifiStateSetting:B
20884 + return-void
20885 +.end method
20887 +.method public setSystemLogsSetting(B)V
20888 + .registers 2
20890 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->systemLogsSetting:B
20892 + return-void
20893 +.end method
20895 +.method public setUid(I)V
20896 + .registers 2
20898 + iput p1, p0, Landroid/privacy/PrivacySettings;->uid:I
20900 + return-void
20901 +.end method
20903 +.method public setWifiInfoSetting(B)V
20904 + .registers 2
20906 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->wifiInfoSetting:B
20908 + return-void
20909 +.end method
20911 +.method public toString()Ljava/lang/String;
20912 + .registers 3
20914 + new-instance v0, Ljava/lang/StringBuilder;
20916 + invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
20918 + const-string v1, "PrivacySettings [_id="
20920 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20922 + move-result-object v0
20924 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->_id:Ljava/lang/Integer;
20926 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
20928 + move-result-object v0
20930 + const-string v1, ", accountsAuthTokensSetting="
20932 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20934 + move-result-object v0
20936 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->accountsAuthTokensSetting:B
20938 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20940 + move-result-object v0
20942 + const-string v1, ", accountsSetting="
20944 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20946 + move-result-object v0
20948 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->accountsSetting:B
20950 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20952 + move-result-object v0
20954 + const-string v1, ", bookmarksSetting="
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;->bookmarksSetting:B
20962 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20964 + move-result-object v0
20966 + const-string v1, ", calendarSetting="
20968 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20970 + move-result-object v0
20972 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->calendarSetting:B
20974 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20976 + move-result-object v0
20978 + const-string v1, ", callLogSetting="
20980 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20982 + move-result-object v0
20984 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->callLogSetting:B
20986 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20988 + move-result-object v0
20990 + const-string v1, ", contactsSetting="
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;->contactsSetting:B
20998 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21000 + move-result-object v0
21002 + const-string v1, ", deviceId="
21004 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21006 + move-result-object v0
21008 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->deviceId:Ljava/lang/String;
21010 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21012 + move-result-object v0
21014 + const-string v1, ", deviceIdSetting="
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;->deviceIdSetting:B
21022 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21024 + move-result-object v0
21026 + const-string v1, ", incomingCallsSetting="
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;->incomingCallsSetting:B
21034 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21036 + move-result-object v0
21038 + const-string v1, ", intentBootCompletedSetting="
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;->intentBootCompletedSetting:B
21046 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21048 + move-result-object v0
21050 + const-string v1, ", line1Number="
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;->line1Number: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, ", line1NumberSetting="
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;->line1NumberSetting:B
21070 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21072 + move-result-object v0
21074 + const-string v1, ", locationGpsLat="
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;->locationGpsLat: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, ", locationGpsLon="
21088 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21090 + move-result-object v0
21092 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->locationGpsLon:Ljava/lang/String;
21094 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21096 + move-result-object v0
21098 + const-string v1, ", locationGpsSetting="
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;->locationGpsSetting:B
21106 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21108 + move-result-object v0
21110 + const-string v1, ", locationNetworkLat="
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;->locationNetworkLat: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, ", locationNetworkLon="
21124 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21126 + move-result-object v0
21128 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLon:Ljava/lang/String;
21130 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21132 + move-result-object v0
21134 + const-string v1, ", locationNetworkSetting="
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;->locationNetworkSetting:B
21142 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21144 + move-result-object v0
21146 + const-string v1, ", mmsSetting="
21148 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21150 + move-result-object v0
21152 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->mmsSetting:B
21154 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21156 + move-result-object v0
21158 + const-string v1, ", networkInfoSetting="
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;->networkInfoSetting:B
21166 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21168 + move-result-object v0
21170 + const-string v1, ", notificationSetting="
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;->notificationSetting:B
21178 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21180 + move-result-object v0
21182 + const-string v1, ", outgoingCallsSetting="
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;->outgoingCallsSetting:B
21190 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21192 + move-result-object v0
21194 + const-string v1, ", packageName="
21196 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21198 + move-result-object v0
21200 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->packageName:Ljava/lang/String;
21202 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21204 + move-result-object v0
21206 + const-string v1, ", simInfoSetting="
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;->simInfoSetting:B
21214 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21216 + move-result-object v0
21218 + const-string v1, ", simSerialNumber="
21220 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21222 + move-result-object v0
21224 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->simSerialNumber:Ljava/lang/String;
21226 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21228 + move-result-object v0
21230 + const-string v1, ", simSerialNumberSetting="
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;->simSerialNumberSetting:B
21238 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21240 + move-result-object v0
21242 + const-string v1, ", smsSetting="
21244 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21246 + move-result-object v0
21248 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->smsSetting:B
21250 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21252 + move-result-object v0
21254 + const-string v1, ", subscriberId="
21256 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21258 + move-result-object v0
21260 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->subscriberId:Ljava/lang/String;
21262 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21264 + move-result-object v0
21266 + const-string v1, ", subscriberIdSetting="
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;->subscriberIdSetting:B
21274 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21276 + move-result-object v0
21278 + const-string v1, ", systemLogsSetting="
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;->systemLogsSetting:B
21286 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21288 + move-result-object v0
21290 + const-string v1, ", uid="
21292 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21294 + move-result-object v0
21296 + iget v1, p0, Landroid/privacy/PrivacySettings;->uid:I
21298 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21300 + move-result-object v0
21302 + const-string v1, ", phoneCallSetting="
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;->phoneCallSetting:B
21310 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21312 + move-result-object v0
21314 + const-string v1, ", smsSendSetting="
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;->smsSendSetting:B
21322 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21324 + move-result-object v0
21326 + const-string v1, ", recordAudioSetting="
21328 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21330 + move-result-object v0
21332 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->recordAudioSetting:B
21334 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21336 + move-result-object v0
21338 + const-string v1, ", cameraSetting="
21340 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21342 + move-result-object v0
21344 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->cameraSetting:B
21346 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21348 + move-result-object v0
21350 + const-string v1, ", ipTableProtectSetting="
21352 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21354 + move-result-object v0
21356 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->ipTableProtectSetting:B
21358 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21360 + move-result-object v0
21362 + const-string v1, ", iccAccessSetting="
21364 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21366 + move-result-object v0
21368 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->iccAccessSetting:B
21370 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21372 + move-result-object v0
21374 + const-string v1, ", addOnManagementSetting="
21376 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21378 + move-result-object v0
21380 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->addOnManagementSetting:B
21382 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21384 + move-result-object v0
21386 + const-string v1, ", android ID="
21388 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21390 + move-result-object v0
21392 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->androidID:Ljava/lang/String;
21394 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21396 + move-result-object v0
21398 + const-string v1, ", androidIdSetting="
21400 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21402 + move-result-object v0
21404 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
21406 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21408 + move-result-object v0
21410 + const-string v1, ", wifiInfoSetting="
21412 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21414 + move-result-object v0
21416 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->wifiInfoSetting:B
21418 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21420 + move-result-object v0
21422 + const-string v1, ", switchConnectivitySetting="
21424 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21426 + move-result-object v0
21428 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->switchConnectivitySetting:B
21430 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21432 + move-result-object v0
21434 + const-string v1, ", sendMmsSetting="
21436 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21438 + move-result-object v0
21440 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->sendMmsSetting:B
21442 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21444 + move-result-object v0
21446 + const-string v1, ", forceOnlineState="
21448 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21450 + move-result-object v0
21452 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->forceOnlineState:B
21454 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21456 + move-result-object v0
21458 + const-string v1, ", switchWifiStateSetting="
21460 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21462 + move-result-object v0
21464 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->switchWifiStateSetting:B
21466 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21468 + move-result-object v0
21470 + const-string v1, "]"
21472 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21474 + move-result-object v0
21476 + invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
21478 + move-result-object v0
21480 + return-object v0
21481 +.end method
21483 +.method public writeToParcel(Landroid/os/Parcel;I)V
21484 + .registers 4
21486 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->_id:Ljava/lang/Integer;
21488 + if-nez v0, :cond_ef
21490 + const/4 v0, -0x1
21492 + :goto_5
21493 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeInt(I)V
21495 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->packageName:Ljava/lang/String;
21497 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
21499 + iget v0, p0, Landroid/privacy/PrivacySettings;->uid:I
21501 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeInt(I)V
21503 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
21505 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21507 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->deviceId:Ljava/lang/String;
21509 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
21511 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
21513 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21515 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->line1Number:Ljava/lang/String;
21517 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
21519 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
21521 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21523 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->locationGpsLat:Ljava/lang/String;
21525 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
21527 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->locationGpsLon:Ljava/lang/String;
21529 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
21531 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
21533 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21535 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkLat:Ljava/lang/String;
21537 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
21539 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkLon:Ljava/lang/String;
21541 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
21543 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->networkInfoSetting:B
21545 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21547 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->simInfoSetting:B
21549 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21551 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
21553 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21555 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->simSerialNumber:Ljava/lang/String;
21557 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
21559 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
21561 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21563 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->subscriberId:Ljava/lang/String;
21565 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
21567 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsSetting:B
21569 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21571 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsAuthTokensSetting:B
21573 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21575 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->outgoingCallsSetting:B
21577 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21579 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->incomingCallsSetting:B
21581 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21583 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->contactsSetting:B
21585 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21587 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->calendarSetting:B
21589 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21591 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->mmsSetting:B
21593 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21595 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSetting:B
21597 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21599 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->callLogSetting:B
21601 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21603 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->bookmarksSetting:B
21605 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21607 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->systemLogsSetting:B
21609 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21611 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->notificationSetting:B
21613 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21615 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->intentBootCompletedSetting:B
21617 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21619 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->cameraSetting:B
21621 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21623 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->recordAudioSetting:B
21625 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21627 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->allowedContacts:[I
21629 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeIntArray([I)V
21631 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSendSetting:B
21633 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21635 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->phoneCallSetting:B
21637 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21639 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->ipTableProtectSetting:B
21641 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21643 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->iccAccessSetting:B
21645 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21647 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->addOnManagementSetting:B
21649 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21651 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
21653 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21655 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->androidID:Ljava/lang/String;
21657 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
21659 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->wifiInfoSetting:B
21661 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21663 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->switchConnectivitySetting:B
21665 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21667 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->sendMmsSetting:B
21669 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21671 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->forceOnlineState:B
21673 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21675 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->switchWifiStateSetting:B
21677 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21679 + return-void
21681 + :cond_ef
21682 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->_id:Ljava/lang/Integer;
21684 + invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
21686 + move-result v0
21688 + goto/16 :goto_5
21689 +.end method
21690 diff -Npru stock-framework/smali/android/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture.smali opd-framework/smali/android/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture.smali
21691 --- stock-framework/smali/android/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture.smali 1969-12-31 18:00:00.000000000 -0600
21692 +++ opd-framework/smali/android/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture.smali 2013-01-09 02:52:41.643525511 -0600
21693 @@ -0,0 +1,129 @@
21694 +.class Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;
21695 +.super Ljava/lang/Object;
21696 +.source "PrivacyAccountManager.java"
21698 +# interfaces
21699 +.implements Landroid/accounts/AccountManagerFuture;
21702 +# annotations
21703 +.annotation system Ldalvik/annotation/EnclosingClass;
21704 + value = Landroid/privacy/surrogate/PrivacyAccountManager;
21705 +.end annotation
21707 +.annotation system Ldalvik/annotation/InnerClass;
21708 + accessFlags = 0x2
21709 + name = "PrivacyAccountManagerFuture"
21710 +.end annotation
21712 +.annotation system Ldalvik/annotation/Signature;
21713 + value = {
21714 + "<V:",
21715 + "Ljava/lang/Object;",
21716 + ">",
21717 + "Ljava/lang/Object;",
21718 + "Landroid/accounts/AccountManagerFuture",
21719 + "<TV;>;"
21721 +.end annotation
21724 +# instance fields
21725 +.field private result:Ljava/lang/Object;
21726 + .annotation system Ldalvik/annotation/Signature;
21727 + value = {
21728 + "TV;"
21730 + .end annotation
21731 +.end field
21733 +.field final synthetic this$0:Landroid/privacy/surrogate/PrivacyAccountManager;
21736 +# direct methods
21737 +.method public constructor <init>(Landroid/privacy/surrogate/PrivacyAccountManager;Ljava/lang/Object;)V
21738 + .registers 3
21739 + .annotation system Ldalvik/annotation/Signature;
21740 + value = {
21741 + "(TV;)V"
21743 + .end annotation
21745 + iput-object p1, p0, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;->this$0:Landroid/privacy/surrogate/PrivacyAccountManager;
21747 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
21749 + iput-object p2, p0, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;->result:Ljava/lang/Object;
21751 + return-void
21752 +.end method
21755 +# virtual methods
21756 +.method public cancel(Z)Z
21757 + .registers 3
21759 + const/4 v0, 0x0
21761 + return v0
21762 +.end method
21764 +.method public getResult()Ljava/lang/Object;
21765 + .registers 2
21766 + .annotation system Ldalvik/annotation/Signature;
21767 + value = {
21768 + "()TV;"
21770 + .end annotation
21772 + .annotation system Ldalvik/annotation/Throws;
21773 + value = {
21774 + Landroid/accounts/OperationCanceledException;,
21775 + Ljava/io/IOException;,
21776 + Landroid/accounts/AuthenticatorException;
21778 + .end annotation
21780 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;->result:Ljava/lang/Object;
21782 + return-object v0
21783 +.end method
21785 +.method public getResult(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
21786 + .registers 5
21787 + .annotation system Ldalvik/annotation/Signature;
21788 + value = {
21789 + "(J",
21790 + "Ljava/util/concurrent/TimeUnit;",
21791 + ")TV;"
21793 + .end annotation
21795 + .annotation system Ldalvik/annotation/Throws;
21796 + value = {
21797 + Landroid/accounts/OperationCanceledException;,
21798 + Ljava/io/IOException;,
21799 + Landroid/accounts/AuthenticatorException;
21801 + .end annotation
21803 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;->result:Ljava/lang/Object;
21805 + return-object v0
21806 +.end method
21808 +.method public isCancelled()Z
21809 + .registers 2
21811 + const/4 v0, 0x0
21813 + return v0
21814 +.end method
21816 +.method public isDone()Z
21817 + .registers 2
21819 + const/4 v0, 0x1
21821 + return v0
21822 +.end method
21823 diff -Npru stock-framework/smali/android/privacy/surrogate/PrivacyAccountManager.smali opd-framework/smali/android/privacy/surrogate/PrivacyAccountManager.smali
21824 --- stock-framework/smali/android/privacy/surrogate/PrivacyAccountManager.smali 1969-12-31 18:00:00.000000000 -0600
21825 +++ opd-framework/smali/android/privacy/surrogate/PrivacyAccountManager.smali 2013-01-09 02:52:41.647525535 -0600
21826 @@ -0,0 +1,701 @@
21827 +.class public final Landroid/privacy/surrogate/PrivacyAccountManager;
21828 +.super Landroid/accounts/AccountManager;
21829 +.source "PrivacyAccountManager.java"
21832 +# annotations
21833 +.annotation system Ldalvik/annotation/MemberClasses;
21834 + value = {
21835 + Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;
21837 +.end annotation
21840 +# static fields
21841 +.field private static final TAG:Ljava/lang/String; = "PrivacyAccountManager"
21844 +# instance fields
21845 +.field private context:Landroid/content/Context;
21847 +.field private pSetMan:Landroid/privacy/PrivacySettingsManager;
21850 +# direct methods
21851 +.method public constructor <init>(Landroid/content/Context;Landroid/accounts/IAccountManager;)V
21852 + .registers 5
21854 + invoke-direct {p0, p1, p2}, Landroid/accounts/AccountManager;-><init>(Landroid/content/Context;Landroid/accounts/IAccountManager;)V
21856 + iput-object p1, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->context:Landroid/content/Context;
21858 + new-instance v0, Landroid/privacy/PrivacySettingsManager;
21860 + const-string/jumbo v1, "privacy"
21862 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
21864 + move-result-object v1
21866 + invoke-static {v1}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
21868 + move-result-object v1
21870 + invoke-direct {v0, p1, v1}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
21872 + iput-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
21874 + return-void
21875 +.end method
21877 +.method public constructor <init>(Landroid/content/Context;Landroid/accounts/IAccountManager;Landroid/os/Handler;)V
21878 + .registers 6
21880 + invoke-direct {p0, p1, p2, p3}, Landroid/accounts/AccountManager;-><init>(Landroid/content/Context;Landroid/accounts/IAccountManager;Landroid/os/Handler;)V
21882 + iput-object p1, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->context:Landroid/content/Context;
21884 + new-instance v0, Landroid/privacy/PrivacySettingsManager;
21886 + const-string/jumbo v1, "privacy"
21888 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
21890 + move-result-object v1
21892 + invoke-static {v1}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
21894 + move-result-object v1
21896 + invoke-direct {v0, p1, v1}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
21898 + iput-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
21900 + return-void
21901 +.end method
21904 +# virtual methods
21905 +.method public blockingGetAuthToken(Landroid/accounts/Account;Ljava/lang/String;Z)Ljava/lang/String;
21906 + .registers 12
21907 + .annotation system Ldalvik/annotation/Throws;
21908 + value = {
21909 + Landroid/accounts/OperationCanceledException;,
21910 + Ljava/io/IOException;,
21911 + Landroid/accounts/AuthenticatorException;
21913 + .end annotation
21915 + const/4 v5, 0x0
21917 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->context:Landroid/content/Context;
21919 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
21921 + move-result-object v1
21923 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
21925 + move-result v2
21927 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
21929 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
21931 + move-result-object v6
21933 + if-eqz v6, :cond_23
21935 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getAccountsAuthTokensSetting()B
21937 + move-result v0
21939 + if-eqz v0, :cond_23
21941 + const/4 v7, 0x0
21943 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
21945 + const/4 v3, 0x1
21947 + const-string v4, "authTokens"
21949 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
21951 + :goto_22
21952 + return-object v7
21954 + :cond_23
21955 + invoke-super {p0, p1, p2, p3}, Landroid/accounts/AccountManager;->blockingGetAuthToken(Landroid/accounts/Account;Ljava/lang/String;Z)Ljava/lang/String;
21957 + move-result-object v7
21959 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
21961 + const/4 v3, 0x0
21963 + const-string v4, "authTokens"
21965 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
21967 + goto :goto_22
21968 +.end method
21970 +.method public getAccounts()[Landroid/accounts/Account;
21971 + .registers 10
21973 + const/4 v5, 0x0
21975 + const/4 v3, 0x0
21977 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->context:Landroid/content/Context;
21979 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
21981 + move-result-object v1
21983 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
21985 + move-result v2
21987 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
21989 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
21991 + move-result-object v6
21993 + if-eqz v6, :cond_27
21995 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getAccountsSetting()B
21997 + move-result v0
21999 + if-eqz v0, :cond_27
22001 + const-string v8, "[empty accounts list]"
22003 + new-array v7, v3, [Landroid/accounts/Account;
22005 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22007 + const/4 v3, 0x1
22009 + const-string v4, "accountsList"
22011 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22013 + :goto_26
22014 + return-object v7
22016 + :cond_27
22017 + const-string v8, "[real value]"
22019 + invoke-super {p0}, Landroid/accounts/AccountManager;->getAccounts()[Landroid/accounts/Account;
22021 + move-result-object v7
22023 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22025 + const-string v4, "accountsList"
22027 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22029 + goto :goto_26
22030 +.end method
22032 +.method public getAccountsByType(Ljava/lang/String;)[Landroid/accounts/Account;
22033 + .registers 11
22035 + const/4 v5, 0x0
22037 + const/4 v3, 0x0
22039 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->context:Landroid/content/Context;
22041 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
22043 + move-result-object v1
22045 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
22047 + move-result v2
22049 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22051 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
22053 + move-result-object v6
22055 + if-eqz v6, :cond_27
22057 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getAccountsSetting()B
22059 + move-result v0
22061 + if-eqz v0, :cond_27
22063 + const-string v8, "[empty accounts list]"
22065 + new-array v7, v3, [Landroid/accounts/Account;
22067 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22069 + const/4 v3, 0x1
22071 + const-string v4, "accountsList"
22073 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22075 + :goto_26
22076 + return-object v7
22078 + :cond_27
22079 + const-string v8, "[real value]"
22081 + invoke-super {p0, p1}, Landroid/accounts/AccountManager;->getAccountsByType(Ljava/lang/String;)[Landroid/accounts/Account;
22083 + move-result-object v7
22085 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22087 + const-string v4, "accountsList"
22089 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22091 + goto :goto_26
22092 +.end method
22094 +.method public getAccountsByTypeAndFeatures(Ljava/lang/String;[Ljava/lang/String;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;
22095 + .registers 14
22096 + .annotation system Ldalvik/annotation/Signature;
22097 + value = {
22098 + "(",
22099 + "Ljava/lang/String;",
22100 + "[",
22101 + "Ljava/lang/String;",
22102 + "Landroid/accounts/AccountManagerCallback",
22103 + "<[",
22104 + "Landroid/accounts/Account;",
22105 + ">;",
22106 + "Landroid/os/Handler;",
22107 + ")",
22108 + "Landroid/accounts/AccountManagerFuture",
22109 + "<[",
22110 + "Landroid/accounts/Account;",
22111 + ">;"
22113 + .end annotation
22115 + const/4 v5, 0x0
22117 + const/4 v3, 0x0
22119 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->context:Landroid/content/Context;
22121 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
22123 + move-result-object v1
22125 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
22127 + move-result v2
22129 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22131 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
22133 + move-result-object v6
22135 + if-eqz v6, :cond_2c
22137 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getAccountsSetting()B
22139 + move-result v0
22141 + if-eqz v0, :cond_2c
22143 + const-string v8, "[false]"
22145 + new-instance v7, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;
22147 + new-array v0, v3, [Landroid/accounts/Account;
22149 + invoke-direct {v7, p0, v0}, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;-><init>(Landroid/privacy/surrogate/PrivacyAccountManager;Ljava/lang/Object;)V
22151 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22153 + const/4 v3, 0x1
22155 + const-string v4, "accountsList"
22157 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22159 + :goto_2b
22160 + return-object v7
22162 + :cond_2c
22163 + const-string v8, "[real value]"
22165 + 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;
22167 + move-result-object v7
22169 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22171 + const-string v4, "accountsList"
22173 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22175 + goto :goto_2b
22176 +.end method
22178 +.method public getAuthToken(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;Landroid/app/Activity;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;
22179 + .registers 16
22180 + .annotation system Ldalvik/annotation/Signature;
22181 + value = {
22182 + "(",
22183 + "Landroid/accounts/Account;",
22184 + "Ljava/lang/String;",
22185 + "Landroid/os/Bundle;",
22186 + "Landroid/app/Activity;",
22187 + "Landroid/accounts/AccountManagerCallback",
22188 + "<",
22189 + "Landroid/os/Bundle;",
22190 + ">;",
22191 + "Landroid/os/Handler;",
22192 + ")",
22193 + "Landroid/accounts/AccountManagerFuture",
22194 + "<",
22195 + "Landroid/os/Bundle;",
22196 + ">;"
22198 + .end annotation
22200 + const/4 v5, 0x0
22202 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->context:Landroid/content/Context;
22204 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
22206 + move-result-object v1
22208 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
22210 + move-result v2
22212 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22214 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
22216 + move-result-object v6
22218 + if-eqz v6, :cond_2e
22220 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getAccountsAuthTokensSetting()B
22222 + move-result v0
22224 + if-eqz v0, :cond_2e
22226 + const-string v8, "[empty]"
22228 + new-instance v7, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;
22230 + new-instance v0, Landroid/os/Bundle;
22232 + invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
22234 + invoke-direct {v7, p0, v0}, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;-><init>(Landroid/privacy/surrogate/PrivacyAccountManager;Ljava/lang/Object;)V
22236 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22238 + const/4 v3, 0x1
22240 + const-string v4, "authTokens"
22242 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22244 + :goto_2d
22245 + return-object v7
22247 + :cond_2e
22248 + const-string v8, "[real value]"
22250 + 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;
22252 + move-result-object v7
22254 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22256 + const/4 v3, 0x0
22258 + const-string v4, "authTokens"
22260 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22262 + goto :goto_2d
22263 +.end method
22265 +.method public getAuthToken(Landroid/accounts/Account;Ljava/lang/String;ZLandroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;
22266 + .registers 15
22267 + .annotation system Ldalvik/annotation/Signature;
22268 + value = {
22269 + "(",
22270 + "Landroid/accounts/Account;",
22271 + "Ljava/lang/String;",
22272 + "Z",
22273 + "Landroid/accounts/AccountManagerCallback",
22274 + "<",
22275 + "Landroid/os/Bundle;",
22276 + ">;",
22277 + "Landroid/os/Handler;",
22278 + ")",
22279 + "Landroid/accounts/AccountManagerFuture",
22280 + "<",
22281 + "Landroid/os/Bundle;",
22282 + ">;"
22284 + .end annotation
22286 + const/4 v5, 0x0
22288 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->context:Landroid/content/Context;
22290 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
22292 + move-result-object v1
22294 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
22296 + move-result v2
22298 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22300 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
22302 + move-result-object v6
22304 + if-eqz v6, :cond_2e
22306 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getAccountsAuthTokensSetting()B
22308 + move-result v0
22310 + if-eqz v0, :cond_2e
22312 + const-string v8, "[empty]"
22314 + new-instance v7, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;
22316 + new-instance v0, Landroid/os/Bundle;
22318 + invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
22320 + invoke-direct {v7, p0, v0}, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;-><init>(Landroid/privacy/surrogate/PrivacyAccountManager;Ljava/lang/Object;)V
22322 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22324 + const/4 v3, 0x1
22326 + const-string v4, "authTokens"
22328 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22330 + :goto_2d
22331 + return-object v7
22333 + :cond_2e
22334 + const-string v8, "[real value]"
22336 + invoke-super/range {p0 .. p5}, Landroid/accounts/AccountManager;->getAuthToken(Landroid/accounts/Account;Ljava/lang/String;ZLandroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;
22338 + move-result-object v7
22340 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22342 + const/4 v3, 0x0
22344 + const-string v4, "authTokens"
22346 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22348 + goto :goto_2d
22349 +.end method
22351 +.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;
22352 + .registers 18
22353 + .annotation system Ldalvik/annotation/Signature;
22354 + value = {
22355 + "(",
22356 + "Ljava/lang/String;",
22357 + "Ljava/lang/String;",
22358 + "[",
22359 + "Ljava/lang/String;",
22360 + "Landroid/app/Activity;",
22361 + "Landroid/os/Bundle;",
22362 + "Landroid/os/Bundle;",
22363 + "Landroid/accounts/AccountManagerCallback",
22364 + "<",
22365 + "Landroid/os/Bundle;",
22366 + ">;",
22367 + "Landroid/os/Handler;",
22368 + ")",
22369 + "Landroid/accounts/AccountManagerFuture",
22370 + "<",
22371 + "Landroid/os/Bundle;",
22372 + ">;"
22374 + .end annotation
22376 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->context:Landroid/content/Context;
22378 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
22380 + move-result-object v1
22382 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
22384 + move-result v2
22386 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22388 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
22390 + move-result-object v6
22392 + if-eqz v6, :cond_2e
22394 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getAccountsAuthTokensSetting()B
22396 + move-result v0
22398 + if-eqz v0, :cond_2e
22400 + const-string v8, "[empty]"
22402 + new-instance v7, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;
22404 + new-instance v0, Landroid/os/Bundle;
22406 + invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
22408 + invoke-direct {v7, p0, v0}, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;-><init>(Landroid/privacy/surrogate/PrivacyAccountManager;Ljava/lang/Object;)V
22410 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22412 + const/4 v3, 0x1
22414 + const-string v4, "authTokens"
22416 + const/4 v5, 0x0
22418 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22420 + :goto_2d
22421 + return-object v7
22423 + :cond_2e
22424 + const-string v8, "[real value]"
22426 + 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;
22428 + move-result-object v7
22430 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22432 + const/4 v3, 0x0
22434 + const-string v4, "authTokens"
22436 + const/4 v5, 0x0
22438 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22440 + goto :goto_2d
22441 +.end method
22443 +.method public hasFeatures(Landroid/accounts/Account;[Ljava/lang/String;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;
22444 + .registers 14
22445 + .annotation system Ldalvik/annotation/Signature;
22446 + value = {
22447 + "(",
22448 + "Landroid/accounts/Account;",
22449 + "[",
22450 + "Ljava/lang/String;",
22451 + "Landroid/accounts/AccountManagerCallback",
22452 + "<",
22453 + "Ljava/lang/Boolean;",
22454 + ">;",
22455 + "Landroid/os/Handler;",
22456 + ")",
22457 + "Landroid/accounts/AccountManagerFuture",
22458 + "<",
22459 + "Ljava/lang/Boolean;",
22460 + ">;"
22462 + .end annotation
22464 + const/4 v5, 0x0
22466 + const/4 v3, 0x0
22468 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->context:Landroid/content/Context;
22470 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
22472 + move-result-object v1
22474 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
22476 + move-result v2
22478 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22480 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
22482 + move-result-object v6
22484 + if-eqz v6, :cond_2e
22486 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getAccountsSetting()B
22488 + move-result v0
22490 + if-eqz v0, :cond_2e
22492 + const-string v8, "[false]"
22494 + new-instance v7, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;
22496 + invoke-static {v3}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
22498 + move-result-object v0
22500 + invoke-direct {v7, p0, v0}, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;-><init>(Landroid/privacy/surrogate/PrivacyAccountManager;Ljava/lang/Object;)V
22502 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22504 + const/4 v3, 0x1
22506 + const-string v4, "accountsList"
22508 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22510 + :goto_2d
22511 + return-object v7
22513 + :cond_2e
22514 + const-string v8, "[real value]"
22516 + 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;
22518 + move-result-object v7
22520 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22522 + const-string v4, "accountsList"
22524 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22526 + goto :goto_2d
22527 +.end method
22528 diff -Npru stock-framework/smali/android/privacy/surrogate/PrivacyActivityManagerService.smali opd-framework/smali/android/privacy/surrogate/PrivacyActivityManagerService.smali
22529 --- stock-framework/smali/android/privacy/surrogate/PrivacyActivityManagerService.smali 1969-12-31 18:00:00.000000000 -0600
22530 +++ opd-framework/smali/android/privacy/surrogate/PrivacyActivityManagerService.smali 2013-01-09 02:52:41.647525535 -0600
22531 @@ -0,0 +1,1223 @@
22532 +.class public final Landroid/privacy/surrogate/PrivacyActivityManagerService;
22533 +.super Ljava/lang/Object;
22534 +.source "PrivacyActivityManagerService.java"
22537 +# static fields
22538 +.field private static final DATA_SMS_RECEIVED_INTENT:Ljava/lang/String; = "android.intent.action.DATA_SMS_RECEIVED"
22540 +.field private static final SMS_RECEIVED_ACTION_INTENT:Ljava/lang/String; = "android.provider.Telephony.SMS_RECEIVED"
22542 +.field private static final TAG:Ljava/lang/String; = "PrivacyActivityManagerService"
22544 +.field private static final WAP_PUSH_RECEIVED_INTENT:Ljava/lang/String; = "android.provider.Telephony.WAP_PUSH_RECEIVED"
22546 +.field private static pSetMan:Landroid/privacy/PrivacySettingsManager;
22548 +.field private static tmpIn:Landroid/content/Intent;
22550 +.field private static tmpInHash:J
22552 +.field private static tmpInReceivers:I
22554 +.field private static tmpMms:Landroid/content/Intent;
22556 +.field private static tmpMmsHash:J
22558 +.field private static tmpMmsReceivers:I
22560 +.field private static tmpOut:Landroid/content/Intent;
22562 +.field private static tmpOutHash:J
22564 +.field private static tmpOutReceivers:I
22566 +.field private static tmpPackageAddedHash:J
22568 +.field private static tmpSms:Landroid/content/Intent;
22570 +.field private static tmpSmsHash:J
22572 +.field private static tmpSmsReceivers:I
22575 +# direct methods
22576 +.method static constructor <clinit>()V
22577 + .registers 3
22579 + const/4 v2, 0x0
22581 + const-wide/16 v0, 0x0
22583 + sput-wide v0, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpInHash:J
22585 + sput v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpInReceivers:I
22587 + sput-wide v0, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOutHash:J
22589 + sput v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOutReceivers:I
22591 + sput-wide v0, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSmsHash:J
22593 + sput v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSmsReceivers:I
22595 + sput-wide v0, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMmsHash:J
22597 + sput v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMmsReceivers:I
22599 + sput-wide v0, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpPackageAddedHash:J
22601 + return-void
22602 +.end method
22604 +.method public constructor <init>()V
22605 + .registers 1
22607 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
22609 + return-void
22610 +.end method
22612 +.method public static enforcePrivacyPermission(Ljava/lang/String;ILandroid/content/Intent;Landroid/content/Context;I)V
22613 + .registers 29
22615 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22617 + if-nez v2, :cond_13
22619 + if-eqz p3, :cond_13
22621 + const-string/jumbo v2, "privacy"
22623 + move-object/from16 v0, p3
22625 + invoke-virtual {v0, v2}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
22627 + move-result-object v2
22629 + check-cast v2, Landroid/privacy/PrivacySettingsManager;
22631 + sput-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22633 + :cond_13
22634 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22636 + if-nez v2, :cond_2c
22638 + if-nez p3, :cond_2c
22640 + new-instance v2, Landroid/privacy/PrivacySettingsManager;
22642 + const/4 v3, 0x0
22644 + const-string/jumbo v4, "privacy"
22646 + invoke-static {v4}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
22648 + move-result-object v4
22650 + invoke-static {v4}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
22652 + move-result-object v4
22654 + invoke-direct {v2, v3, v4}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
22656 + sput-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22658 + :cond_2c
22659 + invoke-virtual/range {p2 .. p2}, Landroid/content/Intent;->getAction()Ljava/lang/String;
22661 + move-result-object v16
22663 + const-string v2, "android.intent.action.NEW_OUTGOING_CALL"
22665 + move-object/from16 v0, v16
22667 + invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
22669 + move-result v2
22671 + if-eqz v2, :cond_cc
22673 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22675 + move-object/from16 v0, p0
22677 + move/from16 v1, p1
22679 + invoke-virtual {v2, v0, v1}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
22681 + move-result-object v8
22683 + const-string v2, "android.intent.extra.PHONE_NUMBER"
22685 + move-object/from16 v0, p2
22687 + invoke-virtual {v0, v2}, Landroid/content/Intent;->getStringExtra(Ljava/lang/String;)Ljava/lang/String;
22689 + move-result-object v23
22691 + sget-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOutHash:J
22693 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
22695 + move-result-wide v4
22697 + cmp-long v2, v2, v4
22699 + if-eqz v2, :cond_66
22701 + invoke-virtual/range {p2 .. p2}, Landroid/content/Intent;->clone()Ljava/lang/Object;
22703 + move-result-object v2
22705 + check-cast v2, Landroid/content/Intent;
22707 + sput-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOut:Landroid/content/Intent;
22709 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
22711 + move-result-wide v2
22713 + sput-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOutHash:J
22715 + sput p4, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOutReceivers:I
22717 + :cond_66
22718 + if-eqz v8, :cond_93
22720 + :try_start_68
22721 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getOutgoingCallsSetting()B
22723 + move-result v2
22725 + if-eqz v2, :cond_93
22727 + const-string v23, ""
22729 + const-string v2, "android.intent.extra.PHONE_NUMBER"
22731 + move-object/from16 v0, p2
22733 + move-object/from16 v1, v23
22735 + invoke-virtual {v0, v2, v1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
22737 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22739 + const/4 v5, 0x1
22741 + const-string/jumbo v6, "outgoingCall"
22743 + const/4 v7, 0x0
22745 + move-object/from16 v3, p0
22747 + move/from16 v4, p1
22749 + invoke-virtual/range {v2 .. v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22750 + :try_end_87
22751 + .catch Ljava/lang/Exception; {:try_start_68 .. :try_end_87} :catch_bd
22753 + :cond_87
22754 + :goto_87
22755 + sget v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOutReceivers:I
22757 + const/4 v3, 0x1
22759 + if-le v2, v3, :cond_c8
22761 + sget v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOutReceivers:I
22763 + add-int/lit8 v2, v2, -0x1
22765 + sput v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOutReceivers:I
22767 + :cond_92
22768 + :goto_92
22769 + return-void
22771 + :cond_93
22772 + :try_start_93
22773 + sget-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOutHash:J
22775 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
22777 + move-result-wide v4
22779 + cmp-long v2, v2, v4
22781 + if-nez v2, :cond_87
22783 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOut:Landroid/content/Intent;
22785 + const-string v3, "android.intent.extra.PHONE_NUMBER"
22787 + invoke-virtual {v2, v3}, Landroid/content/Intent;->getStringExtra(Ljava/lang/String;)Ljava/lang/String;
22789 + move-result-object v23
22791 + const-string v2, "android.intent.extra.PHONE_NUMBER"
22793 + move-object/from16 v0, p2
22795 + move-object/from16 v1, v23
22797 + invoke-virtual {v0, v2, v1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
22799 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22801 + const/4 v5, 0x0
22803 + const-string/jumbo v6, "outgoingCall"
22805 + const/4 v7, 0x0
22807 + move-object/from16 v3, p0
22809 + move/from16 v4, p1
22811 + invoke-virtual/range {v2 .. v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22812 + :try_end_bc
22813 + .catch Ljava/lang/Exception; {:try_start_93 .. :try_end_bc} :catch_bd
22815 + goto :goto_87
22817 + :catch_bd
22818 + move-exception v20
22820 + const-string v2, "PrivacyActivityManagerService"
22822 + const-string v3, "failed to enforce intent broadcast permission"
22824 + move-object/from16 v0, v20
22826 + invoke-static {v2, v3, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
22828 + goto :goto_87
22830 + :cond_c8
22831 + const/4 v2, 0x0
22833 + sput-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOut:Landroid/content/Intent;
22835 + goto :goto_92
22837 + :cond_cc
22838 + const-string v2, "android.intent.action.PHONE_STATE"
22840 + move-object/from16 v0, v16
22842 + invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
22844 + move-result v2
22846 + if-eqz v2, :cond_170
22848 + const-string v2, "incoming_number"
22850 + move-object/from16 v0, p2
22852 + invoke-virtual {v0, v2}, Landroid/content/Intent;->getStringExtra(Ljava/lang/String;)Ljava/lang/String;
22854 + move-result-object v23
22856 + if-eqz v23, :cond_92
22858 + invoke-virtual/range {v23 .. v23}, Ljava/lang/String;->isEmpty()Z
22860 + move-result v2
22862 + if-nez v2, :cond_92
22864 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22866 + move-object/from16 v0, p0
22868 + move/from16 v1, p1
22870 + invoke-virtual {v2, v0, v1}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
22872 + move-result-object v8
22874 + sget-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpInHash:J
22876 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
22878 + move-result-wide v4
22880 + cmp-long v2, v2, v4
22882 + if-eqz v2, :cond_10a
22884 + invoke-virtual/range {p2 .. p2}, Landroid/content/Intent;->clone()Ljava/lang/Object;
22886 + move-result-object v2
22888 + check-cast v2, Landroid/content/Intent;
22890 + sput-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpIn:Landroid/content/Intent;
22892 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
22894 + move-result-wide v2
22896 + sput-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpInHash:J
22898 + sput p4, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpInReceivers:I
22900 + :cond_10a
22901 + if-eqz v8, :cond_137
22903 + :try_start_10c
22904 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getIncomingCallsSetting()B
22906 + move-result v2
22908 + if-eqz v2, :cond_137
22910 + const-string v23, ""
22912 + const-string v2, "incoming_number"
22914 + move-object/from16 v0, p2
22916 + move-object/from16 v1, v23
22918 + invoke-virtual {v0, v2, v1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
22920 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22922 + const/4 v5, 0x1
22924 + const-string v6, "incomingCall"
22926 + const/4 v7, 0x0
22928 + move-object/from16 v3, p0
22930 + move/from16 v4, p1
22932 + invoke-virtual/range {v2 .. v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22933 + :try_end_12a
22934 + .catch Ljava/lang/Exception; {:try_start_10c .. :try_end_12a} :catch_160
22936 + :cond_12a
22937 + :goto_12a
22938 + sget v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpInReceivers:I
22940 + const/4 v3, 0x1
22942 + if-le v2, v3, :cond_16b
22944 + sget v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpInReceivers:I
22946 + add-int/lit8 v2, v2, -0x1
22948 + sput v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpInReceivers:I
22950 + goto/16 :goto_92
22952 + :cond_137
22953 + :try_start_137
22954 + sget-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpInHash:J
22956 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
22958 + move-result-wide v4
22960 + cmp-long v2, v2, v4
22962 + if-nez v2, :cond_12a
22964 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpIn:Landroid/content/Intent;
22966 + const-string v3, "incoming_number"
22968 + invoke-virtual {v2, v3}, Landroid/content/Intent;->getStringExtra(Ljava/lang/String;)Ljava/lang/String;
22970 + move-result-object v23
22972 + const-string v2, "incoming_number"
22974 + move-object/from16 v0, p2
22976 + move-object/from16 v1, v23
22978 + invoke-virtual {v0, v2, v1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
22980 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22982 + const/4 v5, 0x0
22984 + const-string v6, "incomingCall"
22986 + const/4 v7, 0x0
22988 + move-object/from16 v3, p0
22990 + move/from16 v4, p1
22992 + invoke-virtual/range {v2 .. v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22993 + :try_end_15f
22994 + .catch Ljava/lang/Exception; {:try_start_137 .. :try_end_15f} :catch_160
22996 + goto :goto_12a
22998 + :catch_160
22999 + move-exception v20
23001 + const-string v2, "PrivacyActivityManagerService"
23003 + const-string v3, "failed to enforce intent broadcast permission"
23005 + move-object/from16 v0, v20
23007 + invoke-static {v2, v3, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
23009 + goto :goto_12a
23011 + :cond_16b
23012 + const/4 v2, 0x0
23014 + sput-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpIn:Landroid/content/Intent;
23016 + goto/16 :goto_92
23018 + :cond_170
23019 + const-string v2, "android.provider.Telephony.SMS_RECEIVED"
23021 + move-object/from16 v0, v16
23023 + invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
23025 + move-result v2
23027 + if-eqz v2, :cond_253
23029 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23031 + move-object/from16 v0, p0
23033 + move/from16 v1, p1
23035 + invoke-virtual {v2, v0, v1}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
23037 + move-result-object v8
23039 + const-string v23, "[real]"
23041 + const-string/jumbo v2, "pdus"
23043 + move-object/from16 v0, p2
23045 + invoke-virtual {v0, v2}, Landroid/content/Intent;->getSerializableExtra(Ljava/lang/String;)Ljava/io/Serializable;
23047 + move-result-object v2
23049 + check-cast v2, [Ljava/lang/Object;
23051 + move-object/from16 v22, v2
23053 + check-cast v22, [Ljava/lang/Object;
23055 + if-eqz v22, :cond_1f8
23057 + const/4 v2, 0x0
23059 + aget-object v2, v22, v2
23061 + check-cast v2, [B
23063 + check-cast v2, [B
23065 + move-object/from16 v19, v2
23067 + :goto_1a0
23068 + sget-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSmsHash:J
23070 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
23072 + move-result-wide v4
23074 + cmp-long v2, v2, v4
23076 + if-eqz v2, :cond_1ba
23078 + invoke-virtual/range {p2 .. p2}, Landroid/content/Intent;->clone()Ljava/lang/Object;
23080 + move-result-object v2
23082 + check-cast v2, Landroid/content/Intent;
23084 + sput-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSms:Landroid/content/Intent;
23086 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
23088 + move-result-wide v2
23090 + sput-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSmsHash:J
23092 + sput p4, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSmsReceivers:I
23094 + :cond_1ba
23095 + if-eqz v8, :cond_1fb
23097 + :try_start_1bc
23098 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getSmsSetting()B
23100 + move-result v2
23102 + if-eqz v2, :cond_1fb
23104 + const-string v23, "[empty]"
23106 + const/4 v2, 0x1
23108 + new-array v0, v2, [Ljava/lang/Object;
23110 + move-object/from16 v21, v0
23112 + const/4 v2, 0x0
23114 + const/16 v3, 0x10
23116 + new-array v3, v3, [B
23118 + fill-array-data v3, :array_3da
23120 + aput-object v3, v21, v2
23122 + const-string/jumbo v2, "pdus"
23124 + move-object/from16 v0, p2
23126 + move-object/from16 v1, v21
23128 + invoke-virtual {v0, v2, v1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/io/Serializable;)Landroid/content/Intent;
23130 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23132 + const/4 v5, 0x1
23134 + const-string/jumbo v6, "sms"
23136 + const/4 v7, 0x0
23138 + move-object/from16 v3, p0
23140 + move/from16 v4, p1
23142 + invoke-virtual/range {v2 .. v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23143 + :try_end_1eb
23144 + .catch Ljava/lang/Exception; {:try_start_1bc .. :try_end_1eb} :catch_240
23146 + :cond_1eb
23147 + :goto_1eb
23148 + sget v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSmsReceivers:I
23150 + const/4 v3, 0x1
23152 + if-le v2, v3, :cond_24e
23154 + sget v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSmsReceivers:I
23156 + add-int/lit8 v2, v2, -0x1
23158 + sput v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSmsReceivers:I
23160 + goto/16 :goto_92
23162 + :cond_1f8
23163 + const/16 v19, 0x0
23165 + goto :goto_1a0
23167 + :cond_1fb
23168 + :try_start_1fb
23169 + sget-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSmsHash:J
23171 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
23173 + move-result-wide v4
23175 + cmp-long v2, v2, v4
23177 + if-nez v2, :cond_1eb
23179 + const-string/jumbo v2, "pdus"
23181 + sget-object v3, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSms:Landroid/content/Intent;
23183 + const-string/jumbo v4, "pdus"
23185 + invoke-virtual {v3, v4}, Landroid/content/Intent;->getSerializableExtra(Ljava/lang/String;)Ljava/io/Serializable;
23187 + move-result-object v3
23189 + move-object/from16 v0, p2
23191 + invoke-virtual {v0, v2, v3}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/io/Serializable;)Landroid/content/Intent;
23193 + const-string/jumbo v2, "pdus"
23195 + move-object/from16 v0, p2
23197 + invoke-virtual {v0, v2}, Landroid/content/Intent;->getSerializableExtra(Ljava/lang/String;)Ljava/io/Serializable;
23199 + move-result-object v2
23201 + check-cast v2, [Ljava/lang/Object;
23203 + move-object v0, v2
23205 + check-cast v0, [Ljava/lang/Object;
23207 + move-object/from16 v22, v0
23209 + if-eqz v22, :cond_24b
23211 + const/4 v2, 0x0
23213 + aget-object v2, v22, v2
23215 + check-cast v2, [B
23217 + check-cast v2, [B
23219 + move-object/from16 v19, v2
23221 + :goto_231
23222 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23224 + const/4 v5, 0x0
23226 + const-string/jumbo v6, "sms"
23228 + const/4 v7, 0x0
23230 + move-object/from16 v3, p0
23232 + move/from16 v4, p1
23234 + invoke-virtual/range {v2 .. v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23235 + :try_end_23f
23236 + .catch Ljava/lang/Exception; {:try_start_1fb .. :try_end_23f} :catch_240
23238 + goto :goto_1eb
23240 + :catch_240
23241 + move-exception v20
23243 + const-string v2, "PrivacyActivityManagerService"
23245 + const-string v3, "failed to enforce intent broadcast permission"
23247 + move-object/from16 v0, v20
23249 + invoke-static {v2, v3, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
23251 + goto :goto_1eb
23253 + :cond_24b
23254 + const/16 v19, 0x0
23256 + goto :goto_231
23258 + :cond_24e
23259 + const/4 v2, 0x0
23261 + sput-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSms:Landroid/content/Intent;
23263 + goto/16 :goto_92
23265 + :cond_253
23266 + const-string v2, "android.provider.Telephony.WAP_PUSH_RECEIVED"
23268 + move-object/from16 v0, v16
23270 + invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
23272 + move-result v2
23274 + if-nez v2, :cond_267
23276 + const-string v2, "android.intent.action.DATA_SMS_RECEIVED"
23278 + move-object/from16 v0, v16
23280 + invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
23282 + move-result v2
23284 + if-eqz v2, :cond_340
23286 + :cond_267
23287 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23289 + move-object/from16 v0, p0
23291 + move/from16 v1, p1
23293 + invoke-virtual {v2, v0, v1}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
23295 + move-result-object v8
23297 + const-string v23, "[real]"
23299 + const-string/jumbo v2, "pdus"
23301 + move-object/from16 v0, p2
23303 + invoke-virtual {v0, v2}, Landroid/content/Intent;->getSerializableExtra(Ljava/lang/String;)Ljava/io/Serializable;
23305 + move-result-object v2
23307 + check-cast v2, [Ljava/lang/Object;
23309 + move-object/from16 v22, v2
23311 + check-cast v22, [Ljava/lang/Object;
23313 + if-eqz v22, :cond_2e5
23315 + const/4 v2, 0x0
23317 + aget-object v2, v22, v2
23319 + check-cast v2, [B
23321 + check-cast v2, [B
23323 + move-object/from16 v19, v2
23325 + :goto_28d
23326 + sget-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMmsHash:J
23328 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
23330 + move-result-wide v4
23332 + cmp-long v2, v2, v4
23334 + if-eqz v2, :cond_2a7
23336 + invoke-virtual/range {p2 .. p2}, Landroid/content/Intent;->clone()Ljava/lang/Object;
23338 + move-result-object v2
23340 + check-cast v2, Landroid/content/Intent;
23342 + sput-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMms:Landroid/content/Intent;
23344 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
23346 + move-result-wide v2
23348 + sput-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMmsHash:J
23350 + sput p4, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMmsReceivers:I
23352 + :cond_2a7
23353 + if-eqz v8, :cond_2e8
23355 + :try_start_2a9
23356 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getMmsSetting()B
23358 + move-result v2
23360 + if-eqz v2, :cond_2e8
23362 + const-string v23, "[empty]"
23364 + const/4 v2, 0x1
23366 + new-array v0, v2, [Ljava/lang/Object;
23368 + move-object/from16 v21, v0
23370 + const/4 v2, 0x0
23372 + const/16 v3, 0x10
23374 + new-array v3, v3, [B
23376 + fill-array-data v3, :array_3e6
23378 + aput-object v3, v21, v2
23380 + const-string/jumbo v2, "pdus"
23382 + move-object/from16 v0, p2
23384 + move-object/from16 v1, v21
23386 + invoke-virtual {v0, v2, v1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/io/Serializable;)Landroid/content/Intent;
23388 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23390 + const/4 v5, 0x1
23392 + const-string/jumbo v6, "mms"
23394 + const/4 v7, 0x0
23396 + move-object/from16 v3, p0
23398 + move/from16 v4, p1
23400 + invoke-virtual/range {v2 .. v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23401 + :try_end_2d8
23402 + .catch Ljava/lang/Exception; {:try_start_2a9 .. :try_end_2d8} :catch_32d
23404 + :cond_2d8
23405 + :goto_2d8
23406 + sget v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMmsReceivers:I
23408 + const/4 v3, 0x1
23410 + if-le v2, v3, :cond_33b
23412 + sget v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMmsReceivers:I
23414 + add-int/lit8 v2, v2, -0x1
23416 + sput v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMmsReceivers:I
23418 + goto/16 :goto_92
23420 + :cond_2e5
23421 + const/16 v19, 0x0
23423 + goto :goto_28d
23425 + :cond_2e8
23426 + :try_start_2e8
23427 + sget-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMmsHash:J
23429 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
23431 + move-result-wide v4
23433 + cmp-long v2, v2, v4
23435 + if-nez v2, :cond_2d8
23437 + const-string/jumbo v2, "pdus"
23439 + sget-object v3, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMms:Landroid/content/Intent;
23441 + const-string/jumbo v4, "pdus"
23443 + invoke-virtual {v3, v4}, Landroid/content/Intent;->getSerializableExtra(Ljava/lang/String;)Ljava/io/Serializable;
23445 + move-result-object v3
23447 + move-object/from16 v0, p2
23449 + invoke-virtual {v0, v2, v3}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/io/Serializable;)Landroid/content/Intent;
23451 + const-string/jumbo v2, "pdus"
23453 + move-object/from16 v0, p2
23455 + invoke-virtual {v0, v2}, Landroid/content/Intent;->getSerializableExtra(Ljava/lang/String;)Ljava/io/Serializable;
23457 + move-result-object v2
23459 + check-cast v2, [Ljava/lang/Object;
23461 + move-object v0, v2
23463 + check-cast v0, [Ljava/lang/Object;
23465 + move-object/from16 v22, v0
23467 + if-eqz v22, :cond_338
23469 + const/4 v2, 0x0
23471 + aget-object v2, v22, v2
23473 + check-cast v2, [B
23475 + check-cast v2, [B
23477 + move-object/from16 v19, v2
23479 + :goto_31e
23480 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23482 + const/4 v5, 0x0
23484 + const-string/jumbo v6, "mms"
23486 + const/4 v7, 0x0
23488 + move-object/from16 v3, p0
23490 + move/from16 v4, p1
23492 + invoke-virtual/range {v2 .. v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23493 + :try_end_32c
23494 + .catch Ljava/lang/Exception; {:try_start_2e8 .. :try_end_32c} :catch_32d
23496 + goto :goto_2d8
23498 + :catch_32d
23499 + move-exception v20
23501 + const-string v2, "PrivacyActivityManagerService"
23503 + const-string v3, "failed to enforce intent broadcast permission"
23505 + move-object/from16 v0, v20
23507 + invoke-static {v2, v3, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
23509 + goto :goto_2d8
23511 + :cond_338
23512 + const/16 v19, 0x0
23514 + goto :goto_31e
23516 + :cond_33b
23517 + const/4 v2, 0x0
23519 + sput-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMms:Landroid/content/Intent;
23521 + goto/16 :goto_92
23523 + :cond_340
23524 + const-string v2, "android.intent.action.BOOT_COMPLETED"
23526 + move-object/from16 v0, v16
23528 + invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
23530 + move-result v2
23532 + if-eqz v2, :cond_38d
23534 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23536 + invoke-virtual {v2}, Landroid/privacy/PrivacySettingsManager;->setBootCompleted()V
23538 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23540 + move-object/from16 v0, p0
23542 + invoke-virtual {v2, v0}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
23544 + move-result-object v8
23546 + if-eqz v8, :cond_376
23548 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getIntentBootCompletedSetting()B
23550 + move-result v2
23552 + if-eqz v2, :cond_376
23554 + const-string v2, "catchBootComplete"
23556 + move-object/from16 v0, p2
23558 + invoke-virtual {v0, v2}, Landroid/content/Intent;->setAction(Ljava/lang/String;)Landroid/content/Intent;
23560 + sget-object v9, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23562 + const/4 v12, 0x1
23564 + const-string v13, "intentBootCompleted"
23566 + const/4 v14, 0x0
23568 + const/4 v15, 0x0
23570 + move-object/from16 v10, p0
23572 + move/from16 v11, p1
23574 + invoke-virtual/range {v9 .. v15}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23576 + goto/16 :goto_92
23578 + :cond_376
23579 + const-string v2, "android.intent.action.BOOT_COMPLETED"
23581 + move-object/from16 v0, p2
23583 + invoke-virtual {v0, v2}, Landroid/content/Intent;->setAction(Ljava/lang/String;)Landroid/content/Intent;
23585 + sget-object v9, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23587 + const/4 v12, 0x0
23589 + const-string v13, "intentBootCompleted"
23591 + const/4 v14, 0x0
23593 + const/4 v15, 0x0
23595 + move-object/from16 v10, p0
23597 + move/from16 v11, p1
23599 + invoke-virtual/range {v9 .. v15}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23601 + goto/16 :goto_92
23603 + :cond_38d
23604 + const-string v2, "android.intent.action.PACKAGE_ADDED"
23606 + move-object/from16 v0, v16
23608 + invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
23610 + move-result v2
23612 + if-eqz v2, :cond_92
23614 + sget-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpPackageAddedHash:J
23616 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
23618 + move-result-wide v4
23620 + cmp-long v2, v2, v4
23622 + if-eqz v2, :cond_92
23624 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
23626 + move-result-wide v2
23628 + sput-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpPackageAddedHash:J
23630 + invoke-virtual/range {p2 .. p2}, Landroid/content/Intent;->getData()Landroid/net/Uri;
23632 + move-result-object v2
23634 + invoke-virtual {v2}, Landroid/net/Uri;->getSchemeSpecificPart()Ljava/lang/String;
23636 + move-result-object v17
23638 + invoke-virtual/range {p2 .. p2}, Landroid/content/Intent;->getExtras()Landroid/os/Bundle;
23640 + move-result-object v2
23642 + const-string v3, "android.intent.extra.UID"
23644 + invoke-virtual {v2, v3}, Landroid/os/Bundle;->getInt(Ljava/lang/String;)I
23646 + move-result v18
23648 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23650 + move-object/from16 v0, v17
23652 + move/from16 v1, v18
23654 + invoke-virtual {v2, v0, v1}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
23656 + move-result-object v8
23658 + if-eqz v8, :cond_92
23660 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getUid()I
23662 + move-result v2
23664 + move/from16 v0, v18
23666 + if-eq v2, v0, :cond_92
23668 + move/from16 v0, v18
23670 + invoke-virtual {v8, v0}, Landroid/privacy/PrivacySettings;->setUid(I)V
23672 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23674 + invoke-virtual {v2, v8}, Landroid/privacy/PrivacySettingsManager;->saveSettings(Landroid/privacy/PrivacySettings;)Z
23676 + goto/16 :goto_92
23678 + nop
23680 + :array_3da
23681 + .array-data 0x1
23682 + 0x0t
23683 + 0x20t
23684 + 0x1t
23685 + 0x81t
23686 + 0xf0t
23687 + 0x0t
23688 + 0x0t
23689 + 0x11t
23690 + 0x90t
23691 + 0x1t
23692 + 0x30t
23693 + 0x22t
23694 + 0x22t
23695 + 0x80t
23696 + 0x1t
23697 + 0x20t
23698 + .end array-data
23700 + :array_3e6
23701 + .array-data 0x1
23702 + 0x0t
23703 + 0x20t
23704 + 0x1t
23705 + 0x81t
23706 + 0xf0t
23707 + 0x0t
23708 + 0x0t
23709 + 0x11t
23710 + 0x90t
23711 + 0x1t
23712 + 0x30t
23713 + 0x22t
23714 + 0x22t
23715 + 0x80t
23716 + 0x1t
23717 + 0x20t
23718 + .end array-data
23719 +.end method
23721 +.method private static hashCode(Landroid/content/Intent;)J
23722 + .registers 7
23724 + const-wide/16 v3, 0x0
23726 + const-string/jumbo v2, "privacy_hash"
23728 + invoke-virtual {p0, v2, v3, v4}, Landroid/content/Intent;->getLongExtra(Ljava/lang/String;J)J
23730 + move-result-wide v0
23732 + cmp-long v2, v0, v3
23734 + if-nez v2, :cond_1e
23736 + invoke-virtual {p0}, Landroid/content/Intent;->filterHashCode()I
23738 + move-result v2
23740 + int-to-long v2, v2
23742 + invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
23744 + move-result-wide v4
23746 + add-long v0, v2, v4
23748 + const-string/jumbo v2, "privacy_hash"
23750 + invoke-virtual {p0, v2, v0, v1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;J)Landroid/content/Intent;
23752 + :cond_1e
23753 + return-wide v0
23754 +.end method
23755 diff -Npru stock-framework/smali/android/privacy/surrogate/PrivacyConnectivityManager.smali opd-framework/smali/android/privacy/surrogate/PrivacyConnectivityManager.smali
23756 --- stock-framework/smali/android/privacy/surrogate/PrivacyConnectivityManager.smali 1969-12-31 18:00:00.000000000 -0600
23757 +++ opd-framework/smali/android/privacy/surrogate/PrivacyConnectivityManager.smali 2013-01-09 02:52:41.651525551 -0600
23758 @@ -0,0 +1,1045 @@
23759 +.class public Landroid/privacy/surrogate/PrivacyConnectivityManager;
23760 +.super Landroid/net/ConnectivityManager;
23761 +.source "PrivacyConnectivityManager.java"
23764 +# static fields
23765 +.field private static final P_TAG:Ljava/lang/String; = "PrivacyConnectivityManager"
23768 +# instance fields
23769 +.field private context:Landroid/content/Context;
23771 +.field private pSetMan:Landroid/privacy/PrivacySettingsManager;
23774 +# direct methods
23775 +.method public constructor <init>(Landroid/net/IConnectivityManager;Landroid/content/Context;)V
23776 + .registers 6
23778 + invoke-direct {p0, p1}, Landroid/net/ConnectivityManager;-><init>(Landroid/net/IConnectivityManager;)V
23780 + iput-object p2, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
23782 + new-instance v0, Landroid/privacy/PrivacySettingsManager;
23784 + const-string/jumbo v1, "privacy"
23786 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
23788 + move-result-object v1
23790 + invoke-static {v1}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
23792 + move-result-object v1
23794 + invoke-direct {v0, p2, v1}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
23796 + iput-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23798 + const-string v0, "PrivacyConnectivityManager"
23800 + new-instance v1, Ljava/lang/StringBuilder;
23802 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
23804 + const-string/jumbo v2, "now in constructor for package: "
23806 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
23808 + move-result-object v1
23810 + invoke-virtual {p2}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
23812 + move-result-object v2
23814 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
23816 + move-result-object v1
23818 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
23820 + move-result-object v1
23822 + invoke-static {v0, v1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
23824 + return-void
23825 +.end method
23828 +# virtual methods
23829 +.method public getActiveLinkProperties()Landroid/net/LinkProperties;
23830 + .registers 10
23832 + const/4 v2, -0x1
23834 + const/4 v5, 0x0
23836 + new-instance v7, Landroid/net/LinkProperties;
23838 + invoke-direct {v7}, Landroid/net/LinkProperties;-><init>()V
23840 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23842 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
23844 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
23846 + move-result-object v1
23848 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
23850 + move-result v3
23852 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
23854 + move-result-object v8
23856 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23858 + if-eqz v0, :cond_34
23860 + if-eqz v8, :cond_34
23862 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
23864 + move-result v0
23866 + if-eqz v0, :cond_34
23868 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23870 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
23872 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
23874 + move-result-object v1
23876 + const/4 v3, 0x1
23878 + const-string/jumbo v4, "networkInfoCurrent"
23880 + move-object v6, v5
23882 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23884 + :goto_33
23885 + return-object v7
23887 + :cond_34
23888 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23890 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
23892 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
23894 + move-result-object v1
23896 + const/4 v3, 0x0
23898 + const-string/jumbo v4, "networkInfoCurrent"
23900 + move-object v6, v5
23902 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23904 + invoke-super {p0}, Landroid/net/ConnectivityManager;->getActiveLinkProperties()Landroid/net/LinkProperties;
23906 + move-result-object v7
23908 + goto :goto_33
23909 +.end method
23911 +.method public getActiveNetworkInfo()Landroid/net/NetworkInfo;
23912 + .registers 10
23914 + const/4 v3, 0x1
23916 + const/4 v2, -0x1
23918 + const/4 v6, 0x0
23920 + const/4 v5, 0x0
23922 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23924 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
23926 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
23928 + move-result-object v1
23930 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
23932 + move-result v4
23934 + invoke-virtual {v0, v1, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
23936 + move-result-object v8
23938 + new-instance v7, Landroid/net/NetworkInfo;
23940 + const-string v0, "MOBILE"
23942 + const-string v1, "UNKNOWN"
23944 + invoke-direct {v7, v6, v6, v0, v1}, Landroid/net/NetworkInfo;-><init>(IILjava/lang/String;Ljava/lang/String;)V
23946 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23948 + if-eqz v0, :cond_31
23950 + if-eqz v8, :cond_31
23952 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getForceOnlineState()B
23954 + move-result v0
23956 + if-nez v0, :cond_31
23958 + invoke-virtual {v7, v3}, Landroid/net/NetworkInfo;->setIsAvailable(Z)V
23960 + sget-object v0, Landroid/net/NetworkInfo$State;->CONNECTED:Landroid/net/NetworkInfo$State;
23962 + invoke-virtual {v7, v0}, Landroid/net/NetworkInfo;->setState(Landroid/net/NetworkInfo$State;)V
23964 + :cond_31
23965 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23967 + if-eqz v0, :cond_4d
23969 + if-eqz v8, :cond_4d
23971 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
23973 + move-result v0
23975 + if-eqz v0, :cond_4d
23977 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23979 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
23981 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
23983 + move-result-object v1
23985 + const-string/jumbo v4, "networkInfoCurrent"
23987 + move-object v6, v5
23989 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23991 + :goto_4c
23992 + return-object v7
23994 + :cond_4d
23995 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23997 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
23999 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24001 + move-result-object v1
24003 + const-string/jumbo v4, "networkInfoCurrent"
24005 + move v3, v6
24007 + move-object v6, v5
24009 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24011 + invoke-super {p0}, Landroid/net/ConnectivityManager;->getActiveNetworkInfo()Landroid/net/NetworkInfo;
24013 + move-result-object v7
24015 + goto :goto_4c
24016 +.end method
24018 +.method public getActiveNetworkInfoForUid(I)Landroid/net/NetworkInfo;
24019 + .registers 11
24021 + const/4 v3, 0x1
24023 + const/4 v2, -0x1
24025 + const/4 v6, 0x0
24027 + const/4 v5, 0x0
24029 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24031 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24033 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24035 + move-result-object v1
24037 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
24039 + move-result v4
24041 + invoke-virtual {v0, v1, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
24043 + move-result-object v8
24045 + new-instance v7, Landroid/net/NetworkInfo;
24047 + const-string v0, "MOBILE"
24049 + const-string v1, "UNKNOWN"
24051 + invoke-direct {v7, v6, v6, v0, v1}, Landroid/net/NetworkInfo;-><init>(IILjava/lang/String;Ljava/lang/String;)V
24053 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24055 + if-eqz v0, :cond_31
24057 + if-eqz v8, :cond_31
24059 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getForceOnlineState()B
24061 + move-result v0
24063 + if-nez v0, :cond_31
24065 + invoke-virtual {v7, v3}, Landroid/net/NetworkInfo;->setIsAvailable(Z)V
24067 + sget-object v0, Landroid/net/NetworkInfo$State;->CONNECTED:Landroid/net/NetworkInfo$State;
24069 + invoke-virtual {v7, v0}, Landroid/net/NetworkInfo;->setState(Landroid/net/NetworkInfo$State;)V
24071 + :cond_31
24072 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24074 + if-eqz v0, :cond_4d
24076 + if-eqz v8, :cond_4d
24078 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
24080 + move-result v0
24082 + if-eqz v0, :cond_4d
24084 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24086 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24088 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24090 + move-result-object v1
24092 + const-string/jumbo v4, "networkInfoCurrent"
24094 + move-object v6, v5
24096 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24098 + :goto_4c
24099 + return-object v7
24101 + :cond_4d
24102 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24104 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24106 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24108 + move-result-object v1
24110 + const-string/jumbo v4, "networkInfoCurrent"
24112 + move v3, v6
24114 + move-object v6, v5
24116 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24118 + invoke-super {p0, p1}, Landroid/net/ConnectivityManager;->getActiveNetworkInfoForUid(I)Landroid/net/NetworkInfo;
24120 + move-result-object v7
24122 + goto :goto_4c
24123 +.end method
24125 +.method public getAllNetworkInfo()[Landroid/net/NetworkInfo;
24126 + .registers 10
24128 + const/4 v2, -0x1
24130 + const/4 v3, 0x1
24132 + const/4 v5, 0x0
24134 + const/4 v6, 0x0
24136 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24138 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24140 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24142 + move-result-object v1
24144 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
24146 + move-result v4
24148 + invoke-virtual {v0, v1, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
24150 + move-result-object v8
24152 + new-array v7, v3, [Landroid/net/NetworkInfo;
24154 + new-instance v0, Landroid/net/NetworkInfo;
24156 + const-string v1, "MOBILE"
24158 + const-string v4, "CONNECTED"
24160 + invoke-direct {v0, v6, v6, v1, v4}, Landroid/net/NetworkInfo;-><init>(IILjava/lang/String;Ljava/lang/String;)V
24162 + aput-object v0, v7, v6
24164 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24166 + if-eqz v0, :cond_39
24168 + if-eqz v8, :cond_39
24170 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getForceOnlineState()B
24172 + move-result v0
24174 + if-nez v0, :cond_39
24176 + aget-object v0, v7, v6
24178 + invoke-virtual {v0, v3}, Landroid/net/NetworkInfo;->setIsAvailable(Z)V
24180 + aget-object v0, v7, v6
24182 + sget-object v1, Landroid/net/NetworkInfo$State;->CONNECTED:Landroid/net/NetworkInfo$State;
24184 + invoke-virtual {v0, v1}, Landroid/net/NetworkInfo;->setState(Landroid/net/NetworkInfo$State;)V
24186 + :cond_39
24187 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24189 + if-eqz v0, :cond_55
24191 + if-eqz v8, :cond_55
24193 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
24195 + move-result v0
24197 + if-eqz v0, :cond_55
24199 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24201 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24203 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24205 + move-result-object v1
24207 + const-string/jumbo v4, "networkInfoCurrent"
24209 + move-object v6, v5
24211 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24213 + :goto_54
24214 + return-object v7
24216 + :cond_55
24217 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24219 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24221 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24223 + move-result-object v1
24225 + const-string/jumbo v4, "networkInfoCurrent"
24227 + move v3, v6
24229 + move-object v6, v5
24231 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24233 + invoke-super {p0}, Landroid/net/ConnectivityManager;->getAllNetworkInfo()[Landroid/net/NetworkInfo;
24235 + move-result-object v7
24237 + goto :goto_54
24238 +.end method
24240 +.method public getLinkProperties(I)Landroid/net/LinkProperties;
24241 + .registers 11
24243 + const/4 v2, -0x1
24245 + const/4 v5, 0x0
24247 + new-instance v7, Landroid/net/LinkProperties;
24249 + invoke-direct {v7}, Landroid/net/LinkProperties;-><init>()V
24251 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24253 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24255 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24257 + move-result-object v1
24259 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
24261 + move-result v3
24263 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
24265 + move-result-object v8
24267 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24269 + if-eqz v0, :cond_34
24271 + if-eqz v8, :cond_34
24273 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
24275 + move-result v0
24277 + if-eqz v0, :cond_34
24279 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24281 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24283 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24285 + move-result-object v1
24287 + const/4 v3, 0x1
24289 + const-string/jumbo v4, "networkInfoCurrent"
24291 + move-object v6, v5
24293 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24295 + :goto_33
24296 + return-object v7
24298 + :cond_34
24299 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24301 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24303 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24305 + move-result-object v1
24307 + const/4 v3, 0x0
24309 + const-string/jumbo v4, "networkInfoCurrent"
24311 + move-object v6, v5
24313 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24315 + invoke-super {p0, p1}, Landroid/net/ConnectivityManager;->getLinkProperties(I)Landroid/net/LinkProperties;
24317 + move-result-object v7
24319 + goto :goto_33
24320 +.end method
24322 +.method public getMobileDataEnabled()Z
24323 + .registers 9
24325 + const/4 v3, 0x1
24327 + const/4 v2, -0x1
24329 + const/4 v5, 0x0
24331 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24333 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24335 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24337 + move-result-object v1
24339 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
24341 + move-result v4
24343 + invoke-virtual {v0, v1, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
24345 + move-result-object v7
24347 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24349 + if-eqz v0, :cond_2f
24351 + if-eqz v7, :cond_2f
24353 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getForceOnlineState()B
24355 + move-result v0
24357 + if-nez v0, :cond_2f
24359 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24361 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24363 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24365 + move-result-object v1
24367 + const-string/jumbo v4, "networkInfoCurrent"
24369 + move-object v6, v5
24371 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24373 + :goto_2e
24374 + return v3
24376 + :cond_2f
24377 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24379 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24381 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24383 + move-result-object v1
24385 + const/4 v3, 0x0
24387 + const-string/jumbo v4, "networkInfoCurrent"
24389 + move-object v6, v5
24391 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24393 + invoke-super {p0}, Landroid/net/ConnectivityManager;->getMobileDataEnabled()Z
24395 + move-result v3
24397 + goto :goto_2e
24398 +.end method
24400 +.method public getNetworkInfo(I)Landroid/net/NetworkInfo;
24401 + .registers 11
24403 + const/4 v3, 0x1
24405 + const/4 v2, -0x1
24407 + const/4 v6, 0x0
24409 + const/4 v5, 0x0
24411 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24413 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24415 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24417 + move-result-object v1
24419 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
24421 + move-result v4
24423 + invoke-virtual {v0, v1, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
24425 + move-result-object v8
24427 + new-instance v7, Landroid/net/NetworkInfo;
24429 + const-string v0, "MOBILE"
24431 + const-string v1, "CONNECTED"
24433 + invoke-direct {v7, v6, v6, v0, v1}, Landroid/net/NetworkInfo;-><init>(IILjava/lang/String;Ljava/lang/String;)V
24435 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24437 + if-eqz v0, :cond_31
24439 + if-eqz v8, :cond_31
24441 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getForceOnlineState()B
24443 + move-result v0
24445 + if-nez v0, :cond_31
24447 + invoke-virtual {v7, v3}, Landroid/net/NetworkInfo;->setIsAvailable(Z)V
24449 + sget-object v0, Landroid/net/NetworkInfo$State;->CONNECTED:Landroid/net/NetworkInfo$State;
24451 + invoke-virtual {v7, v0}, Landroid/net/NetworkInfo;->setState(Landroid/net/NetworkInfo$State;)V
24453 + :cond_31
24454 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24456 + if-eqz v0, :cond_4d
24458 + if-eqz v8, :cond_4d
24460 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
24462 + move-result v0
24464 + if-eqz v0, :cond_4d
24466 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24468 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24470 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24472 + move-result-object v1
24474 + const-string/jumbo v4, "networkInfoCurrent"
24476 + move-object v6, v5
24478 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24480 + :goto_4c
24481 + return-object v7
24483 + :cond_4d
24484 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24486 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24488 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24490 + move-result-object v1
24492 + const-string/jumbo v4, "networkInfoCurrent"
24494 + move v3, v6
24496 + move-object v6, v5
24498 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24500 + invoke-super {p0, p1}, Landroid/net/ConnectivityManager;->getNetworkInfo(I)Landroid/net/NetworkInfo;
24502 + move-result-object v7
24504 + goto :goto_4c
24505 +.end method
24507 +.method public requestRouteToHost(II)Z
24508 + .registers 12
24510 + const/4 v8, 0x0
24512 + const/4 v3, 0x1
24514 + const/4 v2, -0x1
24516 + const/4 v5, 0x0
24518 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24520 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24522 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24524 + move-result-object v1
24526 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
24528 + move-result v4
24530 + invoke-virtual {v0, v1, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
24532 + move-result-object v7
24534 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24536 + if-eqz v0, :cond_30
24538 + if-eqz v7, :cond_30
24540 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getForceOnlineState()B
24542 + move-result v0
24544 + if-nez v0, :cond_30
24546 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24548 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24550 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24552 + move-result-object v1
24554 + const-string/jumbo v4, "networkInfoCurrent"
24556 + move-object v6, v5
24558 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24560 + :goto_2f
24561 + return v3
24563 + :cond_30
24564 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24566 + if-eqz v0, :cond_4d
24568 + if-eqz v7, :cond_4d
24570 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
24572 + move-result v0
24574 + if-eqz v0, :cond_4d
24576 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24578 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24580 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24582 + move-result-object v1
24584 + const-string/jumbo v4, "networkInfoCurrent"
24586 + move-object v6, v5
24588 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24590 + move v3, v8
24592 + goto :goto_2f
24594 + :cond_4d
24595 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24597 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24599 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24601 + move-result-object v1
24603 + const-string/jumbo v4, "networkInfoCurrent"
24605 + move v3, v8
24607 + move-object v6, v5
24609 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24611 + invoke-super {p0, p1, p2}, Landroid/net/ConnectivityManager;->requestRouteToHost(II)Z
24613 + move-result v3
24615 + goto :goto_2f
24616 +.end method
24618 +.method public requestRouteToHostAddress(ILjava/net/InetAddress;)Z
24619 + .registers 12
24621 + const/4 v8, 0x0
24623 + const/4 v3, 0x1
24625 + const/4 v2, -0x1
24627 + const/4 v5, 0x0
24629 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24631 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24633 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24635 + move-result-object v1
24637 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
24639 + move-result v4
24641 + invoke-virtual {v0, v1, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
24643 + move-result-object v7
24645 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24647 + if-eqz v0, :cond_30
24649 + if-eqz v7, :cond_30
24651 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getForceOnlineState()B
24653 + move-result v0
24655 + if-nez v0, :cond_30
24657 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24659 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24661 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24663 + move-result-object v1
24665 + const-string/jumbo v4, "networkInfoCurrent"
24667 + move-object v6, v5
24669 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24671 + :goto_2f
24672 + return v3
24674 + :cond_30
24675 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24677 + if-eqz v0, :cond_4d
24679 + if-eqz v7, :cond_4d
24681 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
24683 + move-result v0
24685 + if-eqz v0, :cond_4d
24687 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24689 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24691 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24693 + move-result-object v1
24695 + const-string/jumbo v4, "networkInfoCurrent"
24697 + move-object v6, v5
24699 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24701 + move v3, v8
24703 + goto :goto_2f
24705 + :cond_4d
24706 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24708 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24710 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24712 + move-result-object v1
24714 + const-string/jumbo v4, "networkInfoCurrent"
24716 + move v3, v8
24718 + move-object v6, v5
24720 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24722 + invoke-super {p0, p1, p2}, Landroid/net/ConnectivityManager;->requestRouteToHostAddress(ILjava/net/InetAddress;)Z
24724 + move-result v3
24726 + goto :goto_2f
24727 +.end method
24729 +.method public setMobileDataEnabled(Z)V
24730 + .registers 10
24732 + const/4 v2, -0x1
24734 + const/4 v5, 0x0
24736 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24738 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24740 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24742 + move-result-object v1
24744 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
24746 + move-result v3
24748 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
24750 + move-result-object v7
24752 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24754 + if-eqz v0, :cond_2f
24756 + if-eqz v7, :cond_2f
24758 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getSwitchConnectivitySetting()B
24760 + move-result v0
24762 + if-eqz v0, :cond_2f
24764 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24766 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24768 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24770 + move-result-object v1
24772 + const/4 v3, 0x1
24774 + const-string/jumbo v4, "switchconnectivity"
24776 + move-object v6, v5
24778 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24780 + :goto_2e
24781 + return-void
24783 + :cond_2f
24784 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24786 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24788 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24790 + move-result-object v1
24792 + const/4 v3, 0x0
24794 + const-string/jumbo v4, "switchconnectivity"
24796 + move-object v6, v5
24798 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24800 + invoke-super {p0, p1}, Landroid/net/ConnectivityManager;->setMobileDataEnabled(Z)V
24802 + goto :goto_2e
24803 +.end method
24804 diff -Npru stock-framework/smali/android/privacy/surrogate/PrivacyContentResolver.smali opd-framework/smali/android/privacy/surrogate/PrivacyContentResolver.smali
24805 --- stock-framework/smali/android/privacy/surrogate/PrivacyContentResolver.smali 1969-12-31 18:00:00.000000000 -0600
24806 +++ opd-framework/smali/android/privacy/surrogate/PrivacyContentResolver.smali 2013-01-09 02:52:41.651525551 -0600
24807 @@ -0,0 +1,868 @@
24808 +.class public final Landroid/privacy/surrogate/PrivacyContentResolver;
24809 +.super Ljava/lang/Object;
24810 +.source "PrivacyContentResolver.java"
24813 +# static fields
24814 +.field private static final MMS_CONTENT_URI_AUTHORITY:Ljava/lang/String; = "mms"
24816 +.field private static final MMS_SMS_CONTENT_URI_AUTHORITY:Ljava/lang/String; = "mms-sms"
24818 +.field private static final SMS_CONTENT_URI_AUTHORITY:Ljava/lang/String; = "sms"
24820 +.field private static final TAG:Ljava/lang/String; = "PrivacyContentResolver"
24822 +.field private static pSetMan:Landroid/privacy/PrivacySettingsManager;
24825 +# direct methods
24826 +.method public constructor <init>()V
24827 + .registers 1
24829 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
24831 + return-void
24832 +.end method
24834 +.method private static arrayToString([Ljava/lang/String;)Ljava/lang/String;
24835 + .registers 8
24837 + new-instance v4, Ljava/lang/StringBuffer;
24839 + invoke-direct {v4}, Ljava/lang/StringBuffer;-><init>()V
24841 + if-eqz p0, :cond_2d
24843 + move-object v0, p0
24845 + array-length v3, v0
24847 + const/4 v2, 0x0
24849 + :goto_a
24850 + if-ge v2, v3, :cond_30
24852 + aget-object v1, v0, v2
24854 + new-instance v5, Ljava/lang/StringBuilder;
24856 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
24858 + const-string v6, "["
24860 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
24862 + move-result-object v5
24864 + invoke-virtual {v5, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
24866 + move-result-object v5
24868 + const-string v6, "]"
24870 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
24872 + move-result-object v5
24874 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
24876 + move-result-object v5
24878 + invoke-virtual {v4, v5}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
24880 + add-int/lit8 v2, v2, 0x1
24882 + goto :goto_a
24884 + :cond_2d
24885 + const-string v5, ""
24887 + :goto_2f
24888 + return-object v5
24890 + :cond_30
24891 + invoke-virtual {v4}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
24893 + move-result-object v5
24895 + goto :goto_2f
24896 +.end method
24898 +.method public static enforcePrivacyPermission(Landroid/net/Uri;[Ljava/lang/String;Landroid/content/Context;Landroid/database/Cursor;)Landroid/database/Cursor;
24899 + .registers 21
24900 + .annotation system Ldalvik/annotation/Throws;
24901 + value = {
24902 + Landroid/os/RemoteException;
24904 + .end annotation
24906 + if-eqz p0, :cond_1db
24908 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24910 + if-nez v1, :cond_13
24912 + const-string/jumbo v1, "privacy"
24914 + move-object/from16 v0, p2
24916 + invoke-virtual {v0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
24918 + move-result-object v1
24920 + check-cast v1, Landroid/privacy/PrivacySettingsManager;
24922 + sput-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24924 + :cond_13
24925 + invoke-virtual/range {p2 .. p2}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24927 + move-result-object v2
24929 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
24931 + move-result v3
24933 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24935 + invoke-virtual {v1, v2, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
24937 + move-result-object v7
24939 + invoke-virtual/range {p0 .. p0}, Landroid/net/Uri;->getAuthority()Ljava/lang/String;
24941 + move-result-object v9
24943 + const-string v15, "[real]"
24945 + move-object/from16 v13, p3
24947 + if-eqz v9, :cond_54
24949 + const-string v1, "contacts"
24951 + invoke-virtual {v9, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
24953 + move-result v1
24955 + if-nez v1, :cond_3b
24957 + const-string v1, "com.android.contacts"
24959 + invoke-virtual {v9, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
24961 + move-result v1
24963 + if-eqz v1, :cond_ab
24965 + :cond_3b
24966 + if-eqz v7, :cond_54
24968 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getContactsSetting()B
24970 + move-result v1
24972 + const/4 v4, 0x1
24974 + if-ne v1, v4, :cond_55
24976 + const-string v15, "[empty]"
24978 + new-instance v13, Landroid/privacy/surrogate/PrivacyCursor;
24980 + invoke-direct {v13}, Landroid/privacy/surrogate/PrivacyCursor;-><init>()V
24982 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24984 + const/4 v4, 0x1
24986 + const-string v5, "contacts"
24988 + const/4 v6, 0x0
24990 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24992 + :cond_54
24993 + :goto_54
24994 + return-object v13
24996 + :cond_55
24997 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getContactsSetting()B
24999 + move-result v1
25001 + const/4 v4, 0x2
25003 + if-ne v1, v4, :cond_a1
25005 + invoke-virtual/range {p0 .. p0}, Landroid/net/Uri;->toString()Ljava/lang/String;
25007 + move-result-object v1
25009 + sget-object v4, Landroid/provider/ContactsContract$Contacts;->CONTENT_URI:Landroid/net/Uri;
25011 + invoke-virtual {v4}, Landroid/net/Uri;->toString()Ljava/lang/String;
25013 + move-result-object v4
25015 + invoke-virtual {v1, v4}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
25017 + move-result v1
25019 + if-eqz v1, :cond_a1
25021 + const/4 v11, 0x0
25023 + if-eqz p1, :cond_82
25025 + move-object/from16 v8, p1
25027 + array-length v12, v8
25029 + const/4 v10, 0x0
25031 + :goto_73
25032 + if-ge v10, v12, :cond_82
25034 + aget-object v16, v8, v10
25036 + const-string v1, "_id"
25038 + move-object/from16 v0, v16
25040 + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
25042 + move-result v1
25044 + if-eqz v1, :cond_93
25046 + const/4 v11, 0x1
25048 + :cond_82
25049 + if-nez v11, :cond_96
25051 + new-instance v13, Landroid/privacy/surrogate/PrivacyCursor;
25053 + invoke-direct {v13}, Landroid/privacy/surrogate/PrivacyCursor;-><init>()V
25055 + :goto_89
25056 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25058 + const/4 v4, 0x2
25060 + const-string v5, "contacts"
25062 + const/4 v6, 0x0
25064 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25066 + goto :goto_54
25068 + :cond_93
25069 + add-int/lit8 v10, v10, 0x1
25071 + goto :goto_73
25073 + :cond_96
25074 + new-instance v14, Landroid/privacy/surrogate/PrivacyCursor;
25076 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getAllowedContacts()[I
25078 + move-result-object v1
25080 + invoke-direct {v14, v13, v1}, Landroid/privacy/surrogate/PrivacyCursor;-><init>(Landroid/database/Cursor;[I)V
25082 + move-object v13, v14
25084 + goto :goto_89
25086 + :cond_a1
25087 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25089 + const/4 v4, 0x0
25091 + const-string v5, "contacts"
25093 + const/4 v6, 0x0
25095 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25097 + goto :goto_54
25099 + :cond_ab
25100 + const-string v1, "com.android.calendar"
25102 + invoke-virtual {v9, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
25104 + move-result v1
25106 + if-eqz v1, :cond_d8
25108 + if-eqz v7, :cond_cd
25110 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getCalendarSetting()B
25112 + move-result v1
25114 + const/4 v4, 0x1
25116 + if-ne v1, v4, :cond_cd
25118 + const-string v15, "[empty]"
25120 + new-instance v13, Landroid/privacy/surrogate/PrivacyCursor;
25122 + invoke-direct {v13}, Landroid/privacy/surrogate/PrivacyCursor;-><init>()V
25124 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25126 + const/4 v4, 0x1
25128 + const-string v5, "calendar"
25130 + const/4 v6, 0x0
25132 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25134 + goto :goto_54
25136 + :cond_cd
25137 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25139 + const/4 v4, 0x0
25141 + const-string v5, "calendar"
25143 + const/4 v6, 0x0
25145 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25147 + goto/16 :goto_54
25149 + :cond_d8
25150 + const-string/jumbo v1, "mms"
25152 + invoke-virtual {v9, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
25154 + move-result v1
25156 + if-eqz v1, :cond_109
25158 + if-eqz v7, :cond_fd
25160 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getMmsSetting()B
25162 + move-result v1
25164 + const/4 v4, 0x1
25166 + if-ne v1, v4, :cond_fd
25168 + const-string v15, "[empty]"
25170 + new-instance v13, Landroid/privacy/surrogate/PrivacyCursor;
25172 + invoke-direct {v13}, Landroid/privacy/surrogate/PrivacyCursor;-><init>()V
25174 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25176 + const/4 v4, 0x1
25178 + const-string/jumbo v5, "mms"
25180 + const/4 v6, 0x0
25182 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25184 + goto/16 :goto_54
25186 + :cond_fd
25187 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25189 + const/4 v4, 0x0
25191 + const-string/jumbo v5, "mms"
25193 + const/4 v6, 0x0
25195 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25197 + goto/16 :goto_54
25199 + :cond_109
25200 + const-string/jumbo v1, "sms"
25202 + invoke-virtual {v9, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
25204 + move-result v1
25206 + if-eqz v1, :cond_13a
25208 + if-eqz v7, :cond_12e
25210 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getSmsSetting()B
25212 + move-result v1
25214 + const/4 v4, 0x1
25216 + if-ne v1, v4, :cond_12e
25218 + const-string v15, "[empty]"
25220 + new-instance v13, Landroid/privacy/surrogate/PrivacyCursor;
25222 + invoke-direct {v13}, Landroid/privacy/surrogate/PrivacyCursor;-><init>()V
25224 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25226 + const/4 v4, 0x1
25228 + const-string/jumbo v5, "sms"
25230 + const/4 v6, 0x0
25232 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25234 + goto/16 :goto_54
25236 + :cond_12e
25237 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25239 + const/4 v4, 0x0
25241 + const-string/jumbo v5, "sms"
25243 + const/4 v6, 0x0
25245 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25247 + goto/16 :goto_54
25249 + :cond_13a
25250 + const-string/jumbo v1, "mms-sms"
25252 + invoke-virtual {v9, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
25254 + move-result v1
25256 + if-nez v1, :cond_14c
25258 + const-string/jumbo v1, "mms-sms-v2"
25260 + invoke-virtual {v9, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
25262 + move-result v1
25264 + if-eqz v1, :cond_17b
25266 + :cond_14c
25267 + if-eqz v7, :cond_16f
25269 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getMmsSetting()B
25271 + move-result v1
25273 + const/4 v4, 0x1
25275 + if-eq v1, v4, :cond_15c
25277 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getSmsSetting()B
25279 + move-result v1
25281 + const/4 v4, 0x1
25283 + if-ne v1, v4, :cond_16f
25285 + :cond_15c
25286 + const-string v15, "[empty]"
25288 + new-instance v13, Landroid/privacy/surrogate/PrivacyCursor;
25290 + invoke-direct {v13}, Landroid/privacy/surrogate/PrivacyCursor;-><init>()V
25292 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25294 + const/4 v4, 0x1
25296 + const-string/jumbo v5, "mmsSms"
25298 + const/4 v6, 0x0
25300 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25302 + goto/16 :goto_54
25304 + :cond_16f
25305 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25307 + const/4 v4, 0x0
25309 + const-string/jumbo v5, "mmsSms"
25311 + const/4 v6, 0x0
25313 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25315 + goto/16 :goto_54
25317 + :cond_17b
25318 + const-string v1, "call_log"
25320 + invoke-virtual {v9, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
25322 + move-result v1
25324 + if-eqz v1, :cond_1a9
25326 + if-eqz v7, :cond_19e
25328 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getCallLogSetting()B
25330 + move-result v1
25332 + const/4 v4, 0x1
25334 + if-ne v1, v4, :cond_19e
25336 + const-string v15, "[empty]"
25338 + new-instance v13, Landroid/privacy/surrogate/PrivacyCursor;
25340 + invoke-direct {v13}, Landroid/privacy/surrogate/PrivacyCursor;-><init>()V
25342 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25344 + const/4 v4, 0x1
25346 + const-string v5, "callLog"
25348 + const/4 v6, 0x0
25350 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25352 + goto/16 :goto_54
25354 + :cond_19e
25355 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25357 + const/4 v4, 0x0
25359 + const-string v5, "callLog"
25361 + const/4 v6, 0x0
25363 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25365 + goto/16 :goto_54
25367 + :cond_1a9
25368 + sget-object v1, Landroid/provider/Browser;->BOOKMARKS_URI:Landroid/net/Uri;
25370 + invoke-virtual {v1}, Landroid/net/Uri;->getAuthority()Ljava/lang/String;
25372 + move-result-object v1
25374 + invoke-virtual {v9, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
25376 + move-result v1
25378 + if-eqz v1, :cond_54
25380 + if-eqz v7, :cond_1d0
25382 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getBookmarksSetting()B
25384 + move-result v1
25386 + const/4 v4, 0x1
25388 + if-ne v1, v4, :cond_1d0
25390 + const-string v15, "[empty]"
25392 + new-instance v13, Landroid/privacy/surrogate/PrivacyCursor;
25394 + invoke-direct {v13}, Landroid/privacy/surrogate/PrivacyCursor;-><init>()V
25396 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25398 + const/4 v4, 0x1
25400 + const-string v5, "bookmarks"
25402 + const/4 v6, 0x0
25404 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25406 + goto/16 :goto_54
25408 + :cond_1d0
25409 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25411 + const/4 v4, 0x0
25413 + const-string v5, "bookmarks"
25415 + const/4 v6, 0x0
25417 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25419 + goto/16 :goto_54
25421 + :cond_1db
25422 + move-object/from16 v13, p3
25424 + goto/16 :goto_54
25425 +.end method
25427 +.method public static enforcePrivacyPermission(Landroid/net/Uri;[Ljava/lang/String;Landroid/content/Context;Landroid/database/Cursor;Z)Landroid/database/Cursor;
25428 + .registers 20
25429 + .annotation system Ldalvik/annotation/Throws;
25430 + value = {
25431 + Landroid/os/RemoteException;
25433 + .end annotation
25435 + if-eqz p0, :cond_dd
25437 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25439 + if-nez v1, :cond_13
25441 + const-string/jumbo v1, "privacy"
25443 + move-object/from16 v0, p2
25445 + invoke-virtual {v0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
25447 + move-result-object v1
25449 + check-cast v1, Landroid/privacy/PrivacySettingsManager;
25451 + sput-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25453 + :cond_13
25454 + invoke-virtual/range {p2 .. p2}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
25456 + move-result-object v2
25458 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
25460 + move-result v3
25462 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25464 + invoke-virtual {v1, v2, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
25466 + move-result-object v7
25468 + invoke-virtual {p0}, Landroid/net/Uri;->getAuthority()Ljava/lang/String;
25470 + move-result-object v9
25472 + const-string v14, "[real]"
25474 + move-object/from16 v13, p3
25476 + if-eqz v9, :cond_6d
25478 + const-string v1, "com.google.android.gsf.gservices"
25480 + invoke-virtual {v9, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
25482 + move-result v1
25484 + if-eqz v1, :cond_6d
25486 + if-eqz v7, :cond_cb
25488 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getSimInfoSetting()B
25490 + move-result v1
25492 + if-eqz v1, :cond_cb
25494 + invoke-interface/range {p3 .. p3}, Landroid/database/Cursor;->getPosition()I
25496 + move-result v8
25498 + const/4 v11, -0x1
25500 + const/4 v12, 0x0
25502 + :goto_41
25503 + :try_start_41
25504 + invoke-interface/range {p3 .. p3}, Landroid/database/Cursor;->getCount()I
25506 + move-result v1
25508 + if-ge v12, v1, :cond_5d
25510 + invoke-interface/range {p3 .. p3}, Landroid/database/Cursor;->moveToNext()Z
25512 + const/4 v1, 0x0
25514 + move-object/from16 v0, p3
25516 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
25518 + move-result-object v1
25520 + const-string v4, "android_id"
25522 + invoke-virtual {v1, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
25524 + move-result v1
25526 + if-eqz v1, :cond_6e
25528 + invoke-interface/range {p3 .. p3}, Landroid/database/Cursor;->getPosition()I
25529 + :try_end_5c
25530 + .catchall {:try_start_41 .. :try_end_5c} :catchall_8b
25531 + .catch Ljava/lang/Exception; {:try_start_41 .. :try_end_5c} :catch_71
25533 + move-result v11
25535 + :cond_5d
25536 + move-object/from16 v0, p3
25538 + invoke-interface {v0, v8}, Landroid/database/Cursor;->moveToPosition(I)Z
25540 + const/4 v1, -0x1
25542 + if-ne v11, v1, :cond_9e
25544 + const-string v1, "PrivacyContentResolver"
25546 + const-string/jumbo v4, "now we return real cursor, because forbidden_pos is -1"
25548 + invoke-static {v1, v4}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
25550 + :cond_6d
25551 + :goto_6d
25552 + return-object v13
25554 + :cond_6e
25555 + add-int/lit8 v12, v12, 0x1
25557 + goto :goto_41
25559 + :catch_71
25560 + move-exception v10
25562 + :try_start_72
25563 + const-string v1, "PrivacyContentResolver"
25565 + const-string/jumbo v4, "something went wrong while getting blocked permission for android id"
25567 + invoke-static {v1, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
25568 + :try_end_7a
25569 + .catchall {:try_start_72 .. :try_end_7a} :catchall_8b
25571 + move-object/from16 v0, p3
25573 + invoke-interface {v0, v8}, Landroid/database/Cursor;->moveToPosition(I)Z
25575 + const/4 v1, -0x1
25577 + if-ne v11, v1, :cond_9e
25579 + const-string v1, "PrivacyContentResolver"
25581 + const-string/jumbo v4, "now we return real cursor, because forbidden_pos is -1"
25583 + invoke-static {v1, v4}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
25585 + goto :goto_6d
25587 + :catchall_8b
25588 + move-exception v1
25590 + move-object/from16 v0, p3
25592 + invoke-interface {v0, v8}, Landroid/database/Cursor;->moveToPosition(I)Z
25594 + const/4 v4, -0x1
25596 + if-ne v11, v4, :cond_9d
25598 + const-string v1, "PrivacyContentResolver"
25600 + const-string/jumbo v4, "now we return real cursor, because forbidden_pos is -1"
25602 + invoke-static {v1, v4}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
25604 + goto :goto_6d
25606 + :cond_9d
25607 + throw v1
25609 + :cond_9e
25610 + const-string v1, "PrivacyContentResolver"
25612 + new-instance v4, Ljava/lang/StringBuilder;
25614 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
25616 + const-string/jumbo v5, "now blocking google access to android id and give fake cursor. forbidden_position: "
25618 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
25620 + move-result-object v4
25622 + invoke-virtual {v4, v11}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
25624 + move-result-object v4
25626 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
25628 + move-result-object v4
25630 + invoke-static {v1, v4}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
25632 + const-string v14, "[fake]"
25634 + new-instance v13, Landroid/privacy/surrogate/PrivacyCursor;
25636 + move-object/from16 v0, p3
25638 + invoke-direct {v13, v0, v11}, Landroid/privacy/surrogate/PrivacyCursor;-><init>(Landroid/database/Cursor;I)V
25640 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25642 + const/4 v4, 0x1
25644 + const-string/jumbo v5, "networkInfoSIM"
25646 + const/4 v6, 0x0
25648 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25650 + goto :goto_6d
25652 + :cond_cb
25653 + const-string v1, "PrivacyContentResolver"
25655 + const-string v4, "google is allowed to get real cursor"
25657 + invoke-static {v1, v4}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
25659 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25661 + const/4 v4, 0x0
25663 + const-string/jumbo v5, "networkInfoSIM"
25665 + const/4 v6, 0x0
25667 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25669 + goto :goto_6d
25671 + :cond_dd
25672 + move-object/from16 v13, p3
25674 + goto :goto_6d
25675 +.end method
25676 diff -Npru stock-framework/smali/android/privacy/surrogate/PrivacyCursor.smali opd-framework/smali/android/privacy/surrogate/PrivacyCursor.smali
25677 --- stock-framework/smali/android/privacy/surrogate/PrivacyCursor.smali 1969-12-31 18:00:00.000000000 -0600
25678 +++ opd-framework/smali/android/privacy/surrogate/PrivacyCursor.smali 2013-01-09 02:52:41.655525575 -0600
25679 @@ -0,0 +1,1765 @@
25680 +.class public Landroid/privacy/surrogate/PrivacyCursor;
25681 +.super Ljava/lang/Object;
25682 +.source "PrivacyCursor.java"
25684 +# interfaces
25685 +.implements Landroid/database/Cursor;
25688 +# static fields
25689 +.field private static final TAG:Ljava/lang/String; = "PrivacyCursor"
25691 +.field private static final mask:[Ljava/lang/String;
25694 +# instance fields
25695 +.field private allowedIdMapping:[I
25697 +.field private allowedIds:[I
25699 +.field private blockedColumnAndroidID:I
25701 +.field private googleCursor:Z
25703 +.field private realCursor:Landroid/database/Cursor;
25706 +# direct methods
25707 +.method static constructor <clinit>()V
25708 + .registers 3
25710 + const/16 v0, 0x10
25712 + new-array v0, v0, [Ljava/lang/String;
25714 + const/4 v1, 0x0
25716 + const-string v2, "0"
25718 + aput-object v2, v0, v1
25720 + const/4 v1, 0x1
25722 + const-string v2, "1"
25724 + aput-object v2, v0, v1
25726 + const/4 v1, 0x2
25728 + const-string v2, "2"
25730 + aput-object v2, v0, v1
25732 + const/4 v1, 0x3
25734 + const-string v2, "3"
25736 + aput-object v2, v0, v1
25738 + const/4 v1, 0x4
25740 + const-string v2, "4"
25742 + aput-object v2, v0, v1
25744 + const/4 v1, 0x5
25746 + const-string v2, "5"
25748 + aput-object v2, v0, v1
25750 + const/4 v1, 0x6
25752 + const-string v2, "6"
25754 + aput-object v2, v0, v1
25756 + const/4 v1, 0x7
25758 + const-string v2, "7"
25760 + aput-object v2, v0, v1
25762 + const/16 v1, 0x8
25764 + const-string v2, "8"
25766 + aput-object v2, v0, v1
25768 + const/16 v1, 0x9
25770 + const-string v2, "9"
25772 + aput-object v2, v0, v1
25774 + const/16 v1, 0xa
25776 + const-string v2, "a"
25778 + aput-object v2, v0, v1
25780 + const/16 v1, 0xb
25782 + const-string v2, "b"
25784 + aput-object v2, v0, v1
25786 + const/16 v1, 0xc
25788 + const-string v2, "c"
25790 + aput-object v2, v0, v1
25792 + const/16 v1, 0xd
25794 + const-string v2, "d"
25796 + aput-object v2, v0, v1
25798 + const/16 v1, 0xe
25800 + const-string v2, "e"
25802 + aput-object v2, v0, v1
25804 + const/16 v1, 0xf
25806 + const-string v2, "f"
25808 + aput-object v2, v0, v1
25810 + sput-object v0, Landroid/privacy/surrogate/PrivacyCursor;->mask:[Ljava/lang/String;
25812 + return-void
25813 +.end method
25815 +.method public constructor <init>()V
25816 + .registers 1
25818 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
25820 + return-void
25821 +.end method
25823 +.method public constructor <init>(Landroid/database/Cursor;I)V
25824 + .registers 6
25826 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
25828 + const/16 v0, -0xb
25830 + if-ne p2, v0, :cond_28
25832 + const/4 v0, 0x0
25834 + iput-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
25836 + :goto_a
25837 + iput p2, p0, Landroid/privacy/surrogate/PrivacyCursor;->blockedColumnAndroidID:I
25839 + const/4 v0, 0x1
25841 + iput-boolean v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
25843 + const-string v0, "PrivacyCursor"
25845 + new-instance v1, Ljava/lang/StringBuilder;
25847 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
25849 + const-string v2, "constructor is ready for google cursor! forbidden_position: "
25851 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
25853 + move-result-object v1
25855 + invoke-virtual {v1, p2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
25857 + move-result-object v1
25859 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
25861 + move-result-object v1
25863 + invoke-static {v0, v1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
25865 + return-void
25867 + :cond_28
25868 + iput-object p1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
25870 + goto :goto_a
25871 +.end method
25873 +.method public constructor <init>(Landroid/database/Cursor;[I)V
25874 + .registers 7
25876 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
25878 + if-eqz p2, :cond_8
25880 + array-length v2, p2
25882 + if-nez v2, :cond_9
25884 + :cond_8
25885 + const/4 p1, 0x0
25887 + :cond_9
25888 + iput-object p1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
25890 + iput-object p2, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIds:[I
25892 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
25894 + if-eqz v2, :cond_3f
25896 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
25898 + invoke-interface {v2}, Landroid/database/Cursor;->getPosition()I
25900 + move-result v0
25902 + array-length v2, p2
25904 + new-array v2, v2, [I
25906 + iput-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
25908 + const/4 v1, 0x0
25910 + :cond_1d
25911 + :goto_1d
25912 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
25914 + invoke-interface {v2}, Landroid/database/Cursor;->moveToNext()Z
25916 + move-result v2
25918 + if-eqz v2, :cond_3a
25920 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
25922 + invoke-direct {p0, v2}, Landroid/privacy/surrogate/PrivacyCursor;->isAllowed(Landroid/database/Cursor;)Z
25924 + move-result v2
25926 + if-eqz v2, :cond_1d
25928 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
25930 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
25932 + invoke-interface {v3}, Landroid/database/Cursor;->getPosition()I
25934 + move-result v3
25936 + aput v3, v2, v1
25938 + add-int/lit8 v1, v1, 0x1
25940 + goto :goto_1d
25942 + :cond_3a
25943 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
25945 + invoke-interface {v2, v0}, Landroid/database/Cursor;->moveToPosition(I)Z
25947 + :cond_3f
25948 + return-void
25949 +.end method
25951 +.method private getContactId(Landroid/database/Cursor;)I
25952 + .registers 5
25954 + const-string v2, "_id"
25956 + invoke-interface {p1, v2}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I
25958 + move-result v0
25960 + const/4 v1, -0x1
25962 + const/4 v2, -0x1
25964 + if-eq v0, v2, :cond_e
25966 + invoke-interface {p1, v0}, Landroid/database/Cursor;->getInt(I)I
25968 + move-result v1
25970 + :cond_e
25971 + return v1
25972 +.end method
25974 +.method private getFakeID()Ljava/lang/String;
25975 + .registers 8
25977 + :try_start_0
25978 + new-instance v3, Ljava/util/Random;
25980 + invoke-direct {v3}, Ljava/util/Random;-><init>()V
25982 + const-string v2, ""
25984 + const/4 v1, 0x0
25986 + :goto_8
25987 + const/16 v4, 0x10
25989 + if-ge v1, v4, :cond_34
25991 + new-instance v4, Ljava/lang/StringBuilder;
25993 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
25995 + invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
25997 + move-result-object v4
25999 + sget-object v5, Landroid/privacy/surrogate/PrivacyCursor;->mask:[Ljava/lang/String;
26001 + const/16 v6, 0xf
26003 + invoke-virtual {v3, v6}, Ljava/util/Random;->nextInt(I)I
26005 + move-result v6
26007 + aget-object v5, v5, v6
26009 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
26011 + move-result-object v4
26013 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
26014 + :try_end_26
26015 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_26} :catch_2a
26017 + move-result-object v2
26019 + add-int/lit8 v1, v1, 0x1
26021 + goto :goto_8
26023 + :catch_2a
26024 + move-exception v0
26026 + const-string v4, "PrivacyCursor"
26028 + const-string/jumbo v5, "something went wrong with creating fake ID"
26030 + invoke-static {v4, v5}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
26032 + const/4 v2, 0x0
26034 + :cond_34
26035 + return-object v2
26036 +.end method
26038 +.method private getMappedPos(I)I
26039 + .registers 4
26041 + const/4 v0, 0x0
26043 + :goto_1
26044 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26046 + array-length v1, v1
26048 + if-ge v0, v1, :cond_10
26050 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26052 + aget v1, v1, v0
26054 + if-ne v1, p1, :cond_d
26056 + :goto_c
26057 + return v0
26059 + :cond_d
26060 + add-int/lit8 v0, v0, 0x1
26062 + goto :goto_1
26064 + :cond_10
26065 + const/4 v0, -0x1
26067 + goto :goto_c
26068 +.end method
26070 +.method private isAllowed(I)Z
26071 + .registers 7
26073 + const/4 v4, 0x0
26075 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIds:[I
26077 + array-length v3, v0
26079 + const/4 v2, 0x0
26081 + :goto_5
26082 + if-ge v2, v3, :cond_c
26084 + aget v1, v0, v2
26086 + if-ne p1, v1, :cond_d
26088 + const/4 v4, 0x1
26090 + :cond_c
26091 + return v4
26093 + :cond_d
26094 + add-int/lit8 v2, v2, 0x1
26096 + goto :goto_5
26097 +.end method
26099 +.method private isAllowed(Landroid/database/Cursor;)Z
26100 + .registers 3
26102 + invoke-direct {p0, p1}, Landroid/privacy/surrogate/PrivacyCursor;->getContactId(Landroid/database/Cursor;)I
26104 + move-result v0
26106 + invoke-direct {p0, v0}, Landroid/privacy/surrogate/PrivacyCursor;->isAllowed(I)Z
26108 + move-result v0
26110 + return v0
26111 +.end method
26114 +# virtual methods
26115 +.method public close()V
26116 + .registers 2
26118 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26120 + if-eqz v0, :cond_9
26122 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26124 + invoke-interface {v0}, Landroid/database/Cursor;->close()V
26126 + :cond_9
26127 + return-void
26128 +.end method
26130 +.method public copyStringToBuffer(ILandroid/database/CharArrayBuffer;)V
26131 + .registers 4
26133 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26135 + if-eqz v0, :cond_9
26137 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26139 + invoke-interface {v0, p1, p2}, Landroid/database/Cursor;->copyStringToBuffer(ILandroid/database/CharArrayBuffer;)V
26141 + :cond_9
26142 + return-void
26143 +.end method
26145 +.method public deactivate()V
26146 + .registers 2
26148 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26150 + if-eqz v0, :cond_9
26152 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26154 + invoke-interface {v0}, Landroid/database/Cursor;->deactivate()V
26156 + :cond_9
26157 + return-void
26158 +.end method
26160 +.method public getBlob(I)[B
26161 + .registers 3
26163 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26165 + if-eqz v0, :cond_b
26167 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26169 + invoke-interface {v0, p1}, Landroid/database/Cursor;->getBlob(I)[B
26171 + move-result-object v0
26173 + :goto_a
26174 + return-object v0
26176 + :cond_b
26177 + const/4 v0, 0x0
26179 + new-array v0, v0, [B
26181 + goto :goto_a
26182 +.end method
26184 +.method public getColumnCount()I
26185 + .registers 2
26187 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26189 + if-eqz v0, :cond_b
26191 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26193 + invoke-interface {v0}, Landroid/database/Cursor;->getColumnCount()I
26195 + move-result v0
26197 + :goto_a
26198 + return v0
26200 + :cond_b
26201 + const/4 v0, 0x0
26203 + goto :goto_a
26204 +.end method
26206 +.method public getColumnIndex(Ljava/lang/String;)I
26207 + .registers 3
26209 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26211 + if-eqz v0, :cond_b
26213 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26215 + invoke-interface {v0, p1}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I
26217 + move-result v0
26219 + :goto_a
26220 + return v0
26222 + :cond_b
26223 + const/4 v0, -0x1
26225 + goto :goto_a
26226 +.end method
26228 +.method public getColumnIndexOrThrow(Ljava/lang/String;)I
26229 + .registers 3
26230 + .annotation system Ldalvik/annotation/Throws;
26231 + value = {
26232 + Ljava/lang/IllegalArgumentException;
26234 + .end annotation
26236 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26238 + if-eqz v0, :cond_b
26240 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26242 + invoke-interface {v0, p1}, Landroid/database/Cursor;->getColumnIndexOrThrow(Ljava/lang/String;)I
26244 + move-result v0
26246 + :goto_a
26247 + return v0
26249 + :cond_b
26250 + const/4 v0, -0x1
26252 + goto :goto_a
26253 +.end method
26255 +.method public getColumnName(I)Ljava/lang/String;
26256 + .registers 3
26258 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26260 + if-eqz v0, :cond_b
26262 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26264 + invoke-interface {v0, p1}, Landroid/database/Cursor;->getColumnName(I)Ljava/lang/String;
26266 + move-result-object v0
26268 + :goto_a
26269 + return-object v0
26271 + :cond_b
26272 + const-string v0, ""
26274 + goto :goto_a
26275 +.end method
26277 +.method public getColumnNames()[Ljava/lang/String;
26278 + .registers 4
26280 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26282 + if-eqz v0, :cond_b
26284 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26286 + invoke-interface {v0}, Landroid/database/Cursor;->getColumnNames()[Ljava/lang/String;
26288 + move-result-object v0
26290 + :goto_a
26291 + return-object v0
26293 + :cond_b
26294 + const/4 v0, 0x1
26296 + new-array v0, v0, [Ljava/lang/String;
26298 + const/4 v1, 0x0
26300 + const-string v2, ""
26302 + aput-object v2, v0, v1
26304 + goto :goto_a
26305 +.end method
26307 +.method public getCount()I
26308 + .registers 4
26310 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26312 + if-eqz v0, :cond_2b
26314 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26316 + if-eqz v0, :cond_2b
26318 + iget-boolean v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
26320 + if-nez v0, :cond_2b
26322 + const-string v0, "PrivacyCursor"
26324 + new-instance v1, Ljava/lang/StringBuilder;
26326 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
26328 + const-string v2, "getCount: "
26330 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
26332 + move-result-object v1
26334 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26336 + array-length v2, v2
26338 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
26340 + move-result-object v1
26342 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
26344 + move-result-object v1
26346 + invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
26348 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26350 + array-length v0, v0
26352 + :goto_2a
26353 + return v0
26355 + :cond_2b
26356 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26358 + if-eqz v0, :cond_36
26360 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26362 + invoke-interface {v0}, Landroid/database/Cursor;->getCount()I
26364 + move-result v0
26366 + goto :goto_2a
26368 + :cond_36
26369 + const/4 v0, 0x0
26371 + goto :goto_2a
26372 +.end method
26374 +.method public getDouble(I)D
26375 + .registers 4
26377 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26379 + if-eqz v0, :cond_b
26381 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26383 + invoke-interface {v0, p1}, Landroid/database/Cursor;->getDouble(I)D
26385 + move-result-wide v0
26387 + :goto_a
26388 + return-wide v0
26390 + :cond_b
26391 + const-wide/16 v0, 0x0
26393 + goto :goto_a
26394 +.end method
26396 +.method public getExtras()Landroid/os/Bundle;
26397 + .registers 2
26399 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26401 + if-eqz v0, :cond_b
26403 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26405 + invoke-interface {v0}, Landroid/database/Cursor;->getExtras()Landroid/os/Bundle;
26407 + move-result-object v0
26409 + :goto_a
26410 + return-object v0
26412 + :cond_b
26413 + new-instance v0, Landroid/os/Bundle;
26415 + invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
26417 + goto :goto_a
26418 +.end method
26420 +.method public getFloat(I)F
26421 + .registers 3
26423 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26425 + if-eqz v0, :cond_b
26427 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26429 + invoke-interface {v0, p1}, Landroid/database/Cursor;->getFloat(I)F
26431 + move-result v0
26433 + :goto_a
26434 + return v0
26436 + :cond_b
26437 + const/4 v0, 0x0
26439 + goto :goto_a
26440 +.end method
26442 +.method public getInt(I)I
26443 + .registers 4
26445 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26447 + if-eqz v1, :cond_b
26449 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26451 + invoke-interface {v1, p1}, Landroid/database/Cursor;->getInt(I)I
26453 + move-result v0
26455 + :goto_a
26456 + return v0
26458 + :cond_b
26459 + const/4 v0, 0x0
26461 + goto :goto_a
26462 +.end method
26464 +.method public getLong(I)J
26465 + .registers 4
26467 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26469 + if-eqz v0, :cond_b
26471 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26473 + invoke-interface {v0, p1}, Landroid/database/Cursor;->getLong(I)J
26475 + move-result-wide v0
26477 + :goto_a
26478 + return-wide v0
26480 + :cond_b
26481 + const-wide/16 v0, 0x0
26483 + goto :goto_a
26484 +.end method
26486 +.method public getPosition()I
26487 + .registers 5
26489 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26491 + if-eqz v1, :cond_3f
26493 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26495 + if-eqz v1, :cond_3f
26497 + iget-boolean v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
26499 + if-nez v1, :cond_3f
26501 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26503 + invoke-interface {v1}, Landroid/database/Cursor;->getPosition()I
26505 + move-result v1
26507 + invoke-direct {p0, v1}, Landroid/privacy/surrogate/PrivacyCursor;->getMappedPos(I)I
26509 + move-result v0
26511 + const-string v1, "PrivacyCursor"
26513 + new-instance v2, Ljava/lang/StringBuilder;
26515 + invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
26517 + const-string v3, "getPosition - mapped position: "
26519 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
26521 + move-result-object v2
26523 + invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
26525 + move-result-object v2
26527 + const-string v3, " real position: "
26529 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
26531 + move-result-object v2
26533 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26535 + invoke-interface {v3}, Landroid/database/Cursor;->getPosition()I
26537 + move-result v3
26539 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
26541 + move-result-object v2
26543 + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
26545 + move-result-object v2
26547 + invoke-static {v1, v2}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
26549 + :goto_3e
26550 + return v0
26552 + :cond_3f
26553 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26555 + if-eqz v1, :cond_4a
26557 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26559 + invoke-interface {v1}, Landroid/database/Cursor;->getPosition()I
26561 + move-result v0
26563 + goto :goto_3e
26565 + :cond_4a
26566 + const/4 v0, -0x1
26568 + goto :goto_3e
26569 +.end method
26571 +.method public getShort(I)S
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;->getShort(I)S
26582 + move-result v0
26584 + :goto_a
26585 + return v0
26587 + :cond_b
26588 + const/4 v0, 0x0
26590 + goto :goto_a
26591 +.end method
26593 +.method public getString(I)Ljava/lang/String;
26594 + .registers 9
26596 + iget-boolean v4, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
26598 + if-eqz v4, :cond_63
26600 + const/4 v4, 0x1
26602 + if-ne p1, v4, :cond_63
26604 + iget-object v4, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26606 + invoke-interface {v4}, Landroid/database/Cursor;->getPosition()I
26608 + move-result v4
26610 + iget v5, p0, Landroid/privacy/surrogate/PrivacyCursor;->blockedColumnAndroidID:I
26612 + if-ne v4, v5, :cond_63
26614 + const-string v4, "PrivacyCursor"
26616 + const-string v5, "google tries to get android_id with getString()"
26618 + invoke-static {v4, v5}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
26620 + invoke-direct {p0}, Landroid/privacy/surrogate/PrivacyCursor;->getFakeID()Ljava/lang/String;
26622 + move-result-object v2
26624 + if-eqz v2, :cond_58
26626 + :try_start_1e
26627 + new-instance v3, Ljava/math/BigInteger;
26629 + const/16 v4, 0x10
26631 + invoke-direct {v3, v2, v4}, Ljava/math/BigInteger;-><init>(Ljava/lang/String;I)V
26633 + invoke-static {v3}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
26635 + move-result-object v1
26637 + const-string v4, "PrivacyCursor"
26639 + new-instance v5, Ljava/lang/StringBuilder;
26641 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
26643 + const-string/jumbo v6, "returned : "
26645 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
26647 + move-result-object v5
26649 + invoke-virtual {v5, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
26651 + move-result-object v5
26653 + const-string v6, "(String) as fake android id"
26655 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
26657 + move-result-object v5
26659 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
26661 + move-result-object v5
26663 + invoke-static {v4, v5}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
26664 + :try_end_48
26665 + .catch Ljava/lang/Exception; {:try_start_1e .. :try_end_48} :catch_49
26667 + :goto_48
26668 + return-object v1
26670 + :catch_49
26671 + move-exception v0
26673 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
26675 + const-string v4, "PrivacyCursor"
26677 + const-string/jumbo v5, "returned \"\" as android_id"
26679 + invoke-static {v4, v5}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
26681 + const-string v1, ""
26683 + goto :goto_48
26685 + :cond_58
26686 + const-string v4, "PrivacyCursor"
26688 + const-string/jumbo v5, "returned \"\" as android_id"
26690 + invoke-static {v4, v5}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
26692 + const-string v1, ""
26694 + goto :goto_48
26696 + :cond_63
26697 + iget-object v4, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26699 + if-eqz v4, :cond_6e
26701 + iget-object v4, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26703 + invoke-interface {v4, p1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
26705 + move-result-object v1
26707 + goto :goto_48
26709 + :cond_6e
26710 + const-string v1, ""
26712 + goto :goto_48
26713 +.end method
26715 +.method public getType(I)I
26716 + .registers 3
26718 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26720 + if-eqz v0, :cond_b
26722 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26724 + invoke-interface {v0, p1}, Landroid/database/Cursor;->getType(I)I
26726 + move-result v0
26728 + :goto_a
26729 + return v0
26731 + :cond_b
26732 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26734 + const/4 v0, 0x0
26736 + goto :goto_a
26737 +.end method
26739 +.method public getWantsAllOnMoveCalls()Z
26740 + .registers 2
26742 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26744 + if-eqz v0, :cond_b
26746 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26748 + invoke-interface {v0}, Landroid/database/Cursor;->getWantsAllOnMoveCalls()Z
26750 + move-result v0
26752 + :goto_a
26753 + return v0
26755 + :cond_b
26756 + const/4 v0, 0x0
26758 + goto :goto_a
26759 +.end method
26761 +.method public isAfterLast()Z
26762 + .registers 2
26764 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26766 + if-eqz v0, :cond_b
26768 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26770 + invoke-interface {v0}, Landroid/database/Cursor;->isAfterLast()Z
26772 + move-result v0
26774 + :goto_a
26775 + return v0
26777 + :cond_b
26778 + const/4 v0, 0x0
26780 + goto :goto_a
26781 +.end method
26783 +.method public isBeforeFirst()Z
26784 + .registers 2
26786 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26788 + if-eqz v0, :cond_b
26790 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26792 + invoke-interface {v0}, Landroid/database/Cursor;->isBeforeFirst()Z
26794 + move-result v0
26796 + :goto_a
26797 + return v0
26799 + :cond_b
26800 + const/4 v0, 0x0
26802 + goto :goto_a
26803 +.end method
26805 +.method public isClosed()Z
26806 + .registers 2
26808 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26810 + if-eqz v0, :cond_b
26812 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26814 + invoke-interface {v0}, Landroid/database/Cursor;->isClosed()Z
26816 + move-result v0
26818 + :goto_a
26819 + return v0
26821 + :cond_b
26822 + const/4 v0, 0x0
26824 + goto :goto_a
26825 +.end method
26827 +.method public isFirst()Z
26828 + .registers 4
26830 + const/4 v0, 0x0
26832 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26834 + if-eqz v1, :cond_1b
26836 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26838 + if-eqz v1, :cond_1b
26840 + iget-boolean v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
26842 + if-nez v1, :cond_1b
26844 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26846 + invoke-interface {v1}, Landroid/database/Cursor;->getPosition()I
26848 + move-result v1
26850 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26852 + aget v2, v2, v0
26854 + if-ne v1, v2, :cond_1a
26856 + const/4 v0, 0x1
26858 + :cond_1a
26859 + :goto_1a
26860 + return v0
26862 + :cond_1b
26863 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26865 + if-eqz v1, :cond_1a
26867 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26869 + invoke-interface {v0}, Landroid/database/Cursor;->isFirst()Z
26871 + move-result v0
26873 + goto :goto_1a
26874 +.end method
26876 +.method public isLast()Z
26877 + .registers 4
26879 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26881 + if-eqz v0, :cond_1f
26883 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26885 + if-eqz v0, :cond_1f
26887 + iget-boolean v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
26889 + if-nez v0, :cond_1f
26891 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26893 + invoke-interface {v0}, Landroid/database/Cursor;->getPosition()I
26895 + move-result v0
26897 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26899 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26901 + array-length v2, v2
26903 + add-int/lit8 v2, v2, -0x1
26905 + aget v1, v1, v2
26907 + if-ne v0, v1, :cond_2a
26909 + const/4 v0, 0x1
26911 + :goto_1e
26912 + return v0
26914 + :cond_1f
26915 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26917 + if-eqz v0, :cond_2a
26919 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26921 + invoke-interface {v0}, Landroid/database/Cursor;->isLast()Z
26923 + move-result v0
26925 + goto :goto_1e
26927 + :cond_2a
26928 + const/4 v0, 0x0
26930 + goto :goto_1e
26931 +.end method
26933 +.method public isNull(I)Z
26934 + .registers 3
26936 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26938 + if-eqz v0, :cond_b
26940 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26942 + invoke-interface {v0, p1}, Landroid/database/Cursor;->isNull(I)Z
26944 + move-result v0
26946 + :goto_a
26947 + return v0
26949 + :cond_b
26950 + const/4 v0, 0x0
26952 + goto :goto_a
26953 +.end method
26955 +.method public move(I)Z
26956 + .registers 8
26958 + const/4 v2, 0x0
26960 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26962 + if-eqz v3, :cond_3e
26964 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26966 + if-eqz v3, :cond_3e
26968 + iget-boolean v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
26970 + if-nez v3, :cond_3e
26972 + const-string v3, "PrivacyCursor"
26974 + new-instance v4, Ljava/lang/StringBuilder;
26976 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
26978 + const-string/jumbo v5, "move - offset: "
26980 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
26982 + move-result-object v4
26984 + invoke-virtual {v4, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
26986 + move-result-object v4
26988 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
26990 + move-result-object v4
26992 + invoke-static {v3, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
26994 + :try_start_26
26995 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26997 + iget-object v4, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26999 + invoke-interface {v4}, Landroid/database/Cursor;->getPosition()I
27001 + move-result v4
27003 + invoke-direct {p0, v4}, Landroid/privacy/surrogate/PrivacyCursor;->getMappedPos(I)I
27005 + move-result v4
27007 + add-int/2addr v4, p1
27009 + aget v1, v3, v4
27011 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27013 + invoke-interface {v3, v1}, Landroid/database/Cursor;->moveToPosition(I)Z
27014 + :try_end_3a
27015 + .catch Ljava/lang/ArrayIndexOutOfBoundsException; {:try_start_26 .. :try_end_3a} :catch_3c
27017 + move-result v2
27019 + :cond_3b
27020 + :goto_3b
27021 + return v2
27023 + :catch_3c
27024 + move-exception v0
27026 + goto :goto_3b
27028 + :cond_3e
27029 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27031 + if-eqz v3, :cond_3b
27033 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27035 + invoke-interface {v3, p1}, Landroid/database/Cursor;->move(I)Z
27037 + goto :goto_3b
27038 +.end method
27040 +.method public moveToFirst()Z
27041 + .registers 4
27043 + const/4 v0, 0x0
27045 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27047 + if-eqz v1, :cond_18
27049 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
27051 + if-eqz v1, :cond_18
27053 + iget-boolean v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
27055 + if-nez v1, :cond_18
27057 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27059 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
27061 + aget v2, v2, v0
27063 + invoke-interface {v1, v2}, Landroid/database/Cursor;->moveToPosition(I)Z
27065 + move-result v0
27067 + :cond_17
27068 + :goto_17
27069 + return v0
27071 + :cond_18
27072 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27074 + if-eqz v1, :cond_17
27076 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27078 + invoke-interface {v1}, Landroid/database/Cursor;->moveToFirst()Z
27080 + move-result v0
27082 + goto :goto_17
27083 +.end method
27085 +.method public moveToLast()Z
27086 + .registers 5
27088 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27090 + if-eqz v1, :cond_1c
27092 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
27094 + if-eqz v1, :cond_1c
27096 + iget-boolean v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
27098 + if-nez v1, :cond_1c
27100 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27102 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
27104 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
27106 + array-length v3, v3
27108 + add-int/lit8 v3, v3, -0x1
27110 + aget v2, v2, v3
27112 + invoke-interface {v1, v2}, Landroid/database/Cursor;->moveToPosition(I)Z
27114 + move-result v0
27116 + :goto_1b
27117 + return v0
27119 + :cond_1c
27120 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27122 + if-eqz v1, :cond_27
27124 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27126 + invoke-interface {v1}, Landroid/database/Cursor;->moveToLast()Z
27128 + move-result v0
27130 + goto :goto_1b
27132 + :cond_27
27133 + const/4 v0, 0x0
27135 + goto :goto_1b
27136 +.end method
27138 +.method public moveToNext()Z
27139 + .registers 3
27141 + const/4 v0, 0x0
27143 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27145 + if-eqz v1, :cond_29
27147 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
27149 + if-eqz v1, :cond_29
27151 + iget-boolean v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
27153 + if-nez v1, :cond_29
27155 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27157 + invoke-interface {v1}, Landroid/database/Cursor;->moveToNext()Z
27159 + move-result v1
27161 + if-nez v1, :cond_16
27163 + :cond_15
27164 + :goto_15
27165 + return v0
27167 + :cond_16
27168 + const/4 v0, 0x1
27170 + :goto_17
27171 + const/4 v1, 0x1
27173 + if-ne v0, v1, :cond_15
27175 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27177 + invoke-direct {p0, v1}, Landroid/privacy/surrogate/PrivacyCursor;->isAllowed(Landroid/database/Cursor;)Z
27179 + move-result v1
27181 + if-nez v1, :cond_15
27183 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27185 + invoke-interface {v1}, Landroid/database/Cursor;->moveToNext()Z
27187 + move-result v0
27189 + goto :goto_17
27191 + :cond_29
27192 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27194 + if-eqz v1, :cond_15
27196 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27198 + invoke-interface {v1}, Landroid/database/Cursor;->moveToNext()Z
27200 + move-result v0
27202 + goto :goto_15
27203 +.end method
27205 +.method public moveToPosition(I)Z
27206 + .registers 6
27208 + const/4 v1, 0x0
27210 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27212 + if-eqz v2, :cond_1a
27214 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
27216 + if-eqz v2, :cond_1a
27218 + iget-boolean v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
27220 + if-nez v2, :cond_1a
27222 + :try_start_d
27223 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27225 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
27227 + aget v3, v3, p1
27229 + invoke-interface {v2, v3}, Landroid/database/Cursor;->moveToPosition(I)Z
27230 + :try_end_16
27231 + .catch Ljava/lang/ArrayIndexOutOfBoundsException; {:try_start_d .. :try_end_16} :catch_18
27233 + move-result v1
27235 + :cond_17
27236 + :goto_17
27237 + return v1
27239 + :catch_18
27240 + move-exception v0
27242 + goto :goto_17
27244 + :cond_1a
27245 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27247 + if-eqz v2, :cond_17
27249 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27251 + invoke-interface {v2, p1}, Landroid/database/Cursor;->moveToPosition(I)Z
27253 + move-result v1
27255 + goto :goto_17
27256 +.end method
27258 +.method public moveToPrevious()Z
27259 + .registers 3
27261 + const/4 v0, 0x0
27263 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27265 + if-eqz v1, :cond_29
27267 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
27269 + if-eqz v1, :cond_29
27271 + iget-boolean v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
27273 + if-nez v1, :cond_29
27275 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27277 + invoke-interface {v1}, Landroid/database/Cursor;->moveToPrevious()Z
27279 + move-result v1
27281 + if-nez v1, :cond_16
27283 + :cond_15
27284 + :goto_15
27285 + return v0
27287 + :cond_16
27288 + const/4 v0, 0x1
27290 + :goto_17
27291 + const/4 v1, 0x1
27293 + if-ne v0, v1, :cond_15
27295 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27297 + invoke-direct {p0, v1}, Landroid/privacy/surrogate/PrivacyCursor;->isAllowed(Landroid/database/Cursor;)Z
27299 + move-result v1
27301 + if-nez v1, :cond_15
27303 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27305 + invoke-interface {v1}, Landroid/database/Cursor;->moveToPrevious()Z
27307 + move-result v0
27309 + goto :goto_17
27311 + :cond_29
27312 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27314 + if-eqz v1, :cond_15
27316 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27318 + invoke-interface {v1}, Landroid/database/Cursor;->moveToPrevious()Z
27320 + move-result v0
27322 + goto :goto_15
27323 +.end method
27325 +.method public registerContentObserver(Landroid/database/ContentObserver;)V
27326 + .registers 3
27328 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27330 + if-eqz v0, :cond_9
27332 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27334 + invoke-interface {v0, p1}, Landroid/database/Cursor;->registerContentObserver(Landroid/database/ContentObserver;)V
27336 + :cond_9
27337 + return-void
27338 +.end method
27340 +.method public registerDataSetObserver(Landroid/database/DataSetObserver;)V
27341 + .registers 3
27343 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27345 + if-eqz v0, :cond_9
27347 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27349 + invoke-interface {v0, p1}, Landroid/database/Cursor;->registerDataSetObserver(Landroid/database/DataSetObserver;)V
27351 + :cond_9
27352 + return-void
27353 +.end method
27355 +.method public requery()Z
27356 + .registers 2
27358 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27360 + if-eqz v0, :cond_b
27362 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27364 + invoke-interface {v0}, Landroid/database/Cursor;->requery()Z
27366 + move-result v0
27368 + :goto_a
27369 + return v0
27371 + :cond_b
27372 + const/4 v0, 0x0
27374 + goto :goto_a
27375 +.end method
27377 +.method public respond(Landroid/os/Bundle;)Landroid/os/Bundle;
27378 + .registers 3
27380 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27382 + if-eqz v0, :cond_b
27384 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27386 + invoke-interface {v0, p1}, Landroid/database/Cursor;->respond(Landroid/os/Bundle;)Landroid/os/Bundle;
27388 + move-result-object v0
27390 + :goto_a
27391 + return-object v0
27393 + :cond_b
27394 + new-instance v0, Landroid/os/Bundle;
27396 + invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
27398 + goto :goto_a
27399 +.end method
27401 +.method public setNotificationUri(Landroid/content/ContentResolver;Landroid/net/Uri;)V
27402 + .registers 4
27404 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27406 + if-eqz v0, :cond_9
27408 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27410 + invoke-interface {v0, p1, p2}, Landroid/database/Cursor;->setNotificationUri(Landroid/content/ContentResolver;Landroid/net/Uri;)V
27412 + :cond_9
27413 + return-void
27414 +.end method
27416 +.method public unregisterContentObserver(Landroid/database/ContentObserver;)V
27417 + .registers 3
27419 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27421 + if-eqz v0, :cond_9
27423 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27425 + invoke-interface {v0, p1}, Landroid/database/Cursor;->unregisterContentObserver(Landroid/database/ContentObserver;)V
27427 + :cond_9
27428 + return-void
27429 +.end method
27431 +.method public unregisterDataSetObserver(Landroid/database/DataSetObserver;)V
27432 + .registers 3
27434 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27436 + if-eqz v0, :cond_9
27438 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27440 + invoke-interface {v0, p1}, Landroid/database/Cursor;->unregisterDataSetObserver(Landroid/database/DataSetObserver;)V
27442 + :cond_9
27443 + return-void
27444 +.end method
27445 diff -Npru stock-framework/smali/android/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater.smali opd-framework/smali/android/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater.smali
27446 --- stock-framework/smali/android/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater.smali 1969-12-31 18:00:00.000000000 -0600
27447 +++ opd-framework/smali/android/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater.smali 2013-01-09 02:52:41.655525575 -0600
27448 @@ -0,0 +1,134 @@
27449 +.class Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;
27450 +.super Ljava/lang/Thread;
27451 +.source "PrivacyLocationManager.java"
27454 +# annotations
27455 +.annotation system Ldalvik/annotation/EnclosingClass;
27456 + value = Landroid/privacy/surrogate/PrivacyLocationManager;
27457 +.end annotation
27459 +.annotation system Ldalvik/annotation/InnerClass;
27460 + accessFlags = 0x2
27461 + name = "PrivacyLocationUpdater"
27462 +.end annotation
27465 +# instance fields
27466 +.field private intent:Landroid/app/PendingIntent;
27468 +.field private latitude:D
27470 +.field private listener:Landroid/location/LocationListener;
27472 +.field private longitude:D
27474 +.field private provider:Ljava/lang/String;
27476 +.field final synthetic this$0:Landroid/privacy/surrogate/PrivacyLocationManager;
27479 +# direct methods
27480 +.method public constructor <init>(Landroid/privacy/surrogate/PrivacyLocationManager;Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;DD)V
27481 + .registers 9
27483 + iput-object p1, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->this$0:Landroid/privacy/surrogate/PrivacyLocationManager;
27485 + invoke-direct {p0}, Ljava/lang/Thread;-><init>()V
27487 + iput-object p2, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->provider:Ljava/lang/String;
27489 + iput-object p3, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->listener:Landroid/location/LocationListener;
27491 + iput-object p4, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->intent:Landroid/app/PendingIntent;
27493 + iput-wide p5, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->latitude:D
27495 + iput-wide p7, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->longitude:D
27497 + return-void
27498 +.end method
27501 +# virtual methods
27502 +.method public run()V
27503 + .registers 8
27505 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->provider:Ljava/lang/String;
27507 + if-eqz v3, :cond_43
27509 + new-instance v2, Landroid/location/Location;
27511 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->provider:Ljava/lang/String;
27513 + invoke-direct {v2, v3}, Landroid/location/Location;-><init>(Ljava/lang/String;)V
27515 + iget-wide v3, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->latitude:D
27517 + invoke-virtual {v2, v3, v4}, Landroid/location/Location;->setLatitude(D)V
27519 + iget-wide v3, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->longitude:D
27521 + invoke-virtual {v2, v3, v4}, Landroid/location/Location;->setLongitude(D)V
27523 + const/4 v1, 0x0
27525 + :goto_16
27526 + const/4 v3, 0x5
27528 + if-ge v1, v3, :cond_43
27530 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->listener:Landroid/location/LocationListener;
27532 + if-eqz v3, :cond_34
27534 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->listener:Landroid/location/LocationListener;
27536 + invoke-interface {v3, v2}, Landroid/location/LocationListener;->onLocationChanged(Landroid/location/Location;)V
27538 + :cond_22
27539 + :goto_22
27540 + :try_start_22
27541 + invoke-static {}, Ljava/lang/Math;->random()D
27543 + move-result-wide v3
27545 + const-wide v5, 0x408f400000000000L
27547 + mul-double/2addr v3, v5
27549 + double-to-int v3, v3
27551 + int-to-long v3, v3
27553 + invoke-static {v3, v4}, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->sleep(J)V
27554 + :try_end_31
27555 + .catch Ljava/lang/InterruptedException; {:try_start_22 .. :try_end_31} :catch_3e
27557 + :goto_31
27558 + add-int/lit8 v1, v1, 0x1
27560 + goto :goto_16
27562 + :cond_34
27563 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->intent:Landroid/app/PendingIntent;
27565 + if-eqz v3, :cond_22
27567 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->intent:Landroid/app/PendingIntent;
27569 + invoke-virtual {v3}, Landroid/app/PendingIntent;->cancel()V
27571 + goto :goto_22
27573 + :catch_3e
27574 + move-exception v0
27576 + invoke-virtual {v0}, Ljava/lang/InterruptedException;->printStackTrace()V
27578 + goto :goto_31
27580 + :cond_43
27581 + return-void
27582 +.end method
27583 diff -Npru stock-framework/smali/android/privacy/surrogate/PrivacyLocationManager.smali opd-framework/smali/android/privacy/surrogate/PrivacyLocationManager.smali
27584 --- stock-framework/smali/android/privacy/surrogate/PrivacyLocationManager.smali 1969-12-31 18:00:00.000000000 -0600
27585 +++ opd-framework/smali/android/privacy/surrogate/PrivacyLocationManager.smali 2013-01-09 02:52:41.659525591 -0600
27586 @@ -0,0 +1,2091 @@
27587 +.class public final Landroid/privacy/surrogate/PrivacyLocationManager;
27588 +.super Landroid/location/LocationManager;
27589 +.source "PrivacyLocationManager.java"
27592 +# annotations
27593 +.annotation system Ldalvik/annotation/MemberClasses;
27594 + value = {
27595 + Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;
27597 +.end annotation
27600 +# static fields
27601 +.field private static final CUSTOM_LOCATION_UPDATE_COUNT:I = 0x5
27603 +.field private static final TAG:Ljava/lang/String; = "PrivacyLocationManager"
27606 +# instance fields
27607 +.field private context:Landroid/content/Context;
27609 +.field private lock:Ljava/lang/Object;
27611 +.field private pSetMan:Landroid/privacy/PrivacySettingsManager;
27614 +# direct methods
27615 +.method public constructor <init>(Landroid/location/ILocationManager;Landroid/content/Context;)V
27616 + .registers 5
27618 + invoke-direct {p0, p2, p1}, Landroid/location/LocationManager;-><init>(Landroid/content/Context;Landroid/location/ILocationManager;)V
27620 + new-instance v0, Ljava/lang/Object;
27622 + invoke-direct {v0}, Ljava/lang/Object;-><init>()V
27624 + iput-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->lock:Ljava/lang/Object;
27626 + iput-object p2, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->context:Landroid/content/Context;
27628 + new-instance v0, Landroid/privacy/PrivacySettingsManager;
27630 + const-string/jumbo v1, "privacy"
27632 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
27634 + move-result-object v1
27636 + invoke-static {v1}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
27638 + move-result-object v1
27640 + invoke-direct {v0, p2, v1}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
27642 + iput-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
27644 + return-void
27645 +.end method
27647 +.method private requestLocationUpdates(Landroid/location/Criteria;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
27648 + .registers 7
27650 + const/4 v2, 0x3
27652 + if-nez p1, :cond_5
27654 + const/4 v0, 0x0
27656 + :goto_4
27657 + return v0
27659 + :cond_5
27660 + invoke-virtual {p1}, Landroid/location/Criteria;->getAccuracy()I
27662 + move-result v0
27664 + const/4 v1, 0x1
27666 + if-eq v0, v1, :cond_24
27668 + invoke-virtual {p1}, Landroid/location/Criteria;->getBearingAccuracy()I
27670 + move-result v0
27672 + if-eq v0, v2, :cond_24
27674 + invoke-virtual {p1}, Landroid/location/Criteria;->getHorizontalAccuracy()I
27676 + move-result v0
27678 + if-eq v0, v2, :cond_24
27680 + invoke-virtual {p1}, Landroid/location/Criteria;->getVerticalAccuracy()I
27682 + move-result v0
27684 + if-eq v0, v2, :cond_24
27686 + invoke-virtual {p1}, Landroid/location/Criteria;->getSpeedAccuracy()I
27688 + move-result v0
27690 + if-ne v0, v2, :cond_2b
27692 + :cond_24
27693 + const-string v0, "gps"
27695 + invoke-direct {p0, v0, p2, p3}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
27697 + move-result v0
27699 + goto :goto_4
27701 + :cond_2b
27702 + const-string/jumbo v0, "network"
27704 + invoke-direct {p0, v0, p2, p3}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
27706 + move-result v0
27708 + goto :goto_4
27709 +.end method
27711 +.method private requestLocationUpdates(Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
27712 + .registers 24
27714 + move-object/from16 v0, p0
27716 + iget-object v0, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->lock:Ljava/lang/Object;
27718 + move-object/from16 v19, v0
27720 + monitor-enter v19
27722 + :try_start_7
27723 + move-object/from16 v0, p0
27725 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->context:Landroid/content/Context;
27727 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
27729 + move-result-object v2
27731 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
27733 + move-result v3
27735 + move-object/from16 v0, p0
27737 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
27739 + invoke-virtual {v1, v2, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
27741 + move-result-object v7
27743 + const/16 v18, 0x0
27745 + if-eqz v7, :cond_239
27747 + const-string v1, "gps"
27749 + move-object/from16 v0, p1
27751 + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
27753 + move-result v1
27755 + if-eqz v1, :cond_111
27757 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
27759 + move-result v1
27761 + packed-switch v1, :pswitch_data_25e
27763 + :cond_30
27764 + :goto_30
27765 + monitor-exit v19
27767 + return v18
27769 + :pswitch_32
27770 + move-object/from16 v0, p0
27772 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
27774 + const/4 v4, 0x0
27776 + const-string v5, "locationGPS"
27778 + const/4 v6, 0x0
27780 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
27782 + goto :goto_30
27784 + :catchall_3e
27785 + move-exception v1
27787 + monitor-exit v19
27788 + :try_end_40
27789 + .catchall {:try_start_7 .. :try_end_40} :catchall_3e
27791 + throw v1
27793 + :pswitch_41
27794 + if-eqz p3, :cond_46
27796 + :try_start_43
27797 + invoke-virtual/range {p3 .. p3}, Landroid/app/PendingIntent;->cancel()V
27799 + :cond_46
27800 + const/16 v18, 0x1
27802 + move-object/from16 v0, p0
27804 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
27806 + const/4 v4, 0x1
27808 + const-string v5, "locationGPS"
27810 + const/4 v6, 0x0
27812 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
27813 + :try_end_53
27814 + .catchall {:try_start_43 .. :try_end_53} :catchall_3e
27816 + goto :goto_30
27818 + :pswitch_54
27819 + :try_start_54
27820 + new-instance v8, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;
27822 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationGpsLat()Ljava/lang/String;
27824 + move-result-object v1
27826 + invoke-static {v1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
27828 + move-result-wide v13
27830 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationGpsLon()Ljava/lang/String;
27832 + move-result-object v1
27834 + invoke-static {v1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
27836 + move-result-wide v15
27838 + move-object/from16 v9, p0
27840 + move-object/from16 v10, p1
27842 + move-object/from16 v11, p2
27844 + move-object/from16 v12, p3
27846 + 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
27848 + invoke-virtual {v8}, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->start()V
27849 + :try_end_74
27850 + .catchall {:try_start_54 .. :try_end_74} :catchall_3e
27851 + .catch Ljava/lang/NumberFormatException; {:try_start_54 .. :try_end_74} :catch_a6
27853 + const/16 v18, 0x1
27855 + :goto_76
27856 + :try_start_76
27857 + move-object/from16 v0, p0
27859 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
27861 + const/4 v4, 0x2
27863 + const-string v5, "locationGPS"
27865 + new-instance v6, Ljava/lang/StringBuilder;
27867 + invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
27869 + const-string v8, "Lat: "
27871 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
27873 + move-result-object v6
27875 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationGpsLat()Ljava/lang/String;
27877 + move-result-object v8
27879 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
27881 + move-result-object v6
27883 + const-string v8, " Lon: "
27885 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
27887 + move-result-object v6
27889 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationGpsLon()Ljava/lang/String;
27891 + move-result-object v8
27893 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
27895 + move-result-object v6
27897 + invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
27899 + move-result-object v6
27901 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
27903 + goto :goto_30
27905 + :catch_a6
27906 + move-exception v17
27908 + const-string v1, "PrivacyLocationManager"
27910 + const-string/jumbo v4, "requestLocationUpdates: invalid coordinates"
27912 + invoke-static {v1, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
27913 + :try_end_af
27914 + .catchall {:try_start_76 .. :try_end_af} :catchall_3e
27916 + const/16 v18, 0x1
27918 + goto :goto_76
27920 + :pswitch_b2
27921 + :try_start_b2
27922 + new-instance v8, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;
27924 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationGpsLat()Ljava/lang/String;
27926 + move-result-object v1
27928 + invoke-static {v1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
27930 + move-result-wide v13
27932 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationGpsLon()Ljava/lang/String;
27934 + move-result-object v1
27936 + invoke-static {v1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
27938 + move-result-wide v15
27940 + move-object/from16 v9, p0
27942 + move-object/from16 v10, p1
27944 + move-object/from16 v11, p2
27946 + move-object/from16 v12, p3
27948 + 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
27950 + invoke-virtual {v8}, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->start()V
27951 + :try_end_d2
27952 + .catchall {:try_start_b2 .. :try_end_d2} :catchall_3e
27953 + .catch Ljava/lang/NumberFormatException; {:try_start_b2 .. :try_end_d2} :catch_105
27955 + const/16 v18, 0x1
27957 + :goto_d4
27958 + :try_start_d4
27959 + move-object/from16 v0, p0
27961 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
27963 + const/4 v4, 0x3
27965 + const-string v5, "locationGPS"
27967 + new-instance v6, Ljava/lang/StringBuilder;
27969 + invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
27971 + const-string v8, "Lat: "
27973 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
27975 + move-result-object v6
27977 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationGpsLat()Ljava/lang/String;
27979 + move-result-object v8
27981 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
27983 + move-result-object v6
27985 + const-string v8, " Lon: "
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;->getLocationGpsLon()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 + invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
28001 + move-result-object v6
28003 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28005 + goto/16 :goto_30
28007 + :catch_105
28008 + move-exception v17
28010 + const-string v1, "PrivacyLocationManager"
28012 + const-string/jumbo v4, "requestLocationUpdates: invalid coordinates"
28014 + invoke-static {v1, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
28016 + const/16 v18, 0x1
28018 + goto :goto_d4
28020 + :cond_111
28021 + const-string/jumbo v1, "network"
28023 + move-object/from16 v0, p1
28025 + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
28027 + move-result v1
28029 + if-eqz v1, :cond_204
28031 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
28033 + move-result v1
28035 + packed-switch v1, :pswitch_data_26a
28037 + goto/16 :goto_30
28039 + :pswitch_125
28040 + move-object/from16 v0, p0
28042 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28044 + const/4 v4, 0x0
28046 + const-string v5, "locationNetwork"
28048 + const/4 v6, 0x0
28050 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28052 + goto/16 :goto_30
28054 + :pswitch_132
28055 + if-eqz p3, :cond_137
28057 + invoke-virtual/range {p3 .. p3}, Landroid/app/PendingIntent;->cancel()V
28059 + :cond_137
28060 + const/16 v18, 0x1
28062 + move-object/from16 v0, p0
28064 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28066 + const/4 v4, 0x1
28068 + const-string v5, "locationNetwork"
28070 + const/4 v6, 0x0
28072 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28073 + :try_end_144
28074 + .catchall {:try_start_d4 .. :try_end_144} :catchall_3e
28076 + goto/16 :goto_30
28078 + :pswitch_146
28079 + :try_start_146
28080 + new-instance v8, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;
28082 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationNetworkLat()Ljava/lang/String;
28084 + move-result-object v1
28086 + invoke-static {v1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
28088 + move-result-wide v13
28090 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationNetworkLon()Ljava/lang/String;
28092 + move-result-object v1
28094 + invoke-static {v1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
28096 + move-result-wide v15
28098 + move-object/from16 v9, p0
28100 + move-object/from16 v10, p1
28102 + move-object/from16 v11, p2
28104 + move-object/from16 v12, p3
28106 + 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
28108 + invoke-virtual {v8}, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->start()V
28109 + :try_end_166
28110 + .catchall {:try_start_146 .. :try_end_166} :catchall_3e
28111 + .catch Ljava/lang/NumberFormatException; {:try_start_146 .. :try_end_166} :catch_199
28113 + const/16 v18, 0x1
28115 + :goto_168
28116 + :try_start_168
28117 + move-object/from16 v0, p0
28119 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28121 + const/4 v4, 0x2
28123 + const-string v5, "locationNetwork"
28125 + new-instance v6, Ljava/lang/StringBuilder;
28127 + invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
28129 + const-string v8, "Lat: "
28131 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28133 + move-result-object v6
28135 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationNetworkLat()Ljava/lang/String;
28137 + move-result-object v8
28139 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28141 + move-result-object v6
28143 + const-string v8, " Lon: "
28145 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28147 + move-result-object v6
28149 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationNetworkLon()Ljava/lang/String;
28151 + move-result-object v8
28153 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28155 + move-result-object v6
28157 + invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
28159 + move-result-object v6
28161 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28163 + goto/16 :goto_30
28165 + :catch_199
28166 + move-exception v17
28168 + const-string v1, "PrivacyLocationManager"
28170 + const-string/jumbo v4, "requestLocationUpdates: invalid coordinates"
28172 + invoke-static {v1, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
28173 + :try_end_1a2
28174 + .catchall {:try_start_168 .. :try_end_1a2} :catchall_3e
28176 + const/16 v18, 0x1
28178 + goto :goto_168
28180 + :pswitch_1a5
28181 + :try_start_1a5
28182 + new-instance v8, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;
28184 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationNetworkLat()Ljava/lang/String;
28186 + move-result-object v1
28188 + invoke-static {v1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
28190 + move-result-wide v13
28192 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationNetworkLon()Ljava/lang/String;
28194 + move-result-object v1
28196 + invoke-static {v1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
28198 + move-result-wide v15
28200 + move-object/from16 v9, p0
28202 + move-object/from16 v10, p1
28204 + move-object/from16 v11, p2
28206 + move-object/from16 v12, p3
28208 + 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
28210 + invoke-virtual {v8}, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->start()V
28211 + :try_end_1c5
28212 + .catchall {:try_start_1a5 .. :try_end_1c5} :catchall_3e
28213 + .catch Ljava/lang/NumberFormatException; {:try_start_1a5 .. :try_end_1c5} :catch_1f8
28215 + const/16 v18, 0x1
28217 + :goto_1c7
28218 + :try_start_1c7
28219 + move-object/from16 v0, p0
28221 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28223 + const/4 v4, 0x3
28225 + const-string v5, "locationNetwork"
28227 + new-instance v6, Ljava/lang/StringBuilder;
28229 + invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
28231 + const-string v8, "Lat: "
28233 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28235 + move-result-object v6
28237 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationNetworkLat()Ljava/lang/String;
28239 + move-result-object v8
28241 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28243 + move-result-object v6
28245 + const-string v8, " Lon: "
28247 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28249 + move-result-object v6
28251 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationNetworkLon()Ljava/lang/String;
28253 + move-result-object v8
28255 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28257 + move-result-object v6
28259 + invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
28261 + move-result-object v6
28263 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28265 + goto/16 :goto_30
28267 + :catch_1f8
28268 + move-exception v17
28270 + const-string v1, "PrivacyLocationManager"
28272 + const-string/jumbo v4, "requestLocationUpdates: invalid coordinates"
28274 + invoke-static {v1, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
28276 + const/16 v18, 0x1
28278 + goto :goto_1c7
28280 + :cond_204
28281 + const-string/jumbo v1, "passive"
28283 + move-object/from16 v0, p1
28285 + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
28287 + move-result v1
28289 + if-eqz v1, :cond_30
28291 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
28293 + move-result v1
28295 + if-nez v1, :cond_22a
28297 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
28299 + move-result v1
28301 + if-nez v1, :cond_22a
28303 + const/16 v18, 0x0
28305 + move-object/from16 v0, p0
28307 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28309 + const/4 v4, 0x0
28311 + const-string v5, "locationGPS"
28313 + const/4 v6, 0x0
28315 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28317 + goto/16 :goto_30
28319 + :cond_22a
28320 + const/16 v18, 0x1
28322 + move-object/from16 v0, p0
28324 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28326 + const/4 v4, 0x1
28328 + const-string v5, "locationGPS"
28330 + const/4 v6, 0x0
28332 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28334 + goto/16 :goto_30
28336 + :cond_239
28337 + const-string/jumbo v1, "network"
28339 + move-object/from16 v0, p1
28341 + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
28343 + move-result v1
28345 + if-eqz v1, :cond_251
28347 + move-object/from16 v0, p0
28349 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28351 + const/4 v4, 0x0
28353 + const-string v5, "locationNetwork"
28355 + const/4 v6, 0x0
28357 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28359 + goto/16 :goto_30
28361 + :cond_251
28362 + move-object/from16 v0, p0
28364 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28366 + const/4 v4, 0x0
28368 + const-string v5, "locationGPS"
28370 + const/4 v6, 0x0
28372 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28373 + :try_end_25c
28374 + .catchall {:try_start_1c7 .. :try_end_25c} :catchall_3e
28376 + goto/16 :goto_30
28378 + :pswitch_data_25e
28379 + .packed-switch 0x0
28380 + :pswitch_32
28381 + :pswitch_41
28382 + :pswitch_54
28383 + :pswitch_b2
28384 + .end packed-switch
28386 + :pswitch_data_26a
28387 + .packed-switch 0x0
28388 + :pswitch_125
28389 + :pswitch_132
28390 + :pswitch_146
28391 + :pswitch_1a5
28392 + .end packed-switch
28393 +.end method
28396 +# virtual methods
28397 +.method public addNmeaListener(Landroid/location/GpsStatus$NmeaListener;)Z
28398 + .registers 10
28400 + const/4 v5, 0x0
28402 + const/4 v7, 0x0
28404 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->context:Landroid/content/Context;
28406 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
28408 + move-result-object v1
28410 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
28412 + move-result v2
28414 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28416 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
28418 + move-result-object v6
28420 + if-eqz v6, :cond_24
28422 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
28424 + move-result v0
28426 + if-eqz v0, :cond_24
28428 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28430 + const/4 v3, 0x1
28432 + const-string v4, "locationGPS"
28434 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28436 + move v0, v7
28438 + :goto_23
28439 + return v0
28441 + :cond_24
28442 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28444 + const-string v4, "locationGPS"
28446 + move v3, v7
28448 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28450 + invoke-super {p0, p1}, Landroid/location/LocationManager;->addNmeaListener(Landroid/location/GpsStatus$NmeaListener;)Z
28452 + move-result v0
28454 + goto :goto_23
28455 +.end method
28457 +.method public getLastKnownLocation(Ljava/lang/String;)Landroid/location/Location;
28458 + .registers 14
28460 + const/4 v11, 0x3
28462 + const/4 v10, 0x2
28464 + const/4 v8, 0x1
28466 + const/4 v3, 0x0
28468 + const/4 v5, 0x0
28470 + if-nez p1, :cond_c
28472 + invoke-super {p0, p1}, Landroid/location/LocationManager;->getLastKnownLocation(Ljava/lang/String;)Landroid/location/Location;
28474 + move-result-object v7
28476 + :cond_b
28477 + :goto_b
28478 + return-object v7
28480 + :cond_c
28481 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->context:Landroid/content/Context;
28483 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
28485 + move-result-object v1
28487 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
28489 + move-result v2
28491 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28493 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
28495 + move-result-object v6
28497 + const/4 v7, 0x0
28499 + if-eqz v6, :cond_22c
28501 + const-string v0, "gps"
28503 + invoke-virtual {p1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
28505 + move-result v0
28507 + if-eqz v0, :cond_ff
28509 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
28511 + move-result v0
28513 + packed-switch v0, :pswitch_data_29a
28515 + goto :goto_b
28517 + :pswitch_2f
28518 + invoke-super {p0, p1}, Landroid/location/LocationManager;->getLastKnownLocation(Ljava/lang/String;)Landroid/location/Location;
28520 + move-result-object v7
28522 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28524 + const-string v4, "locationGPS"
28526 + if-eqz v7, :cond_5e
28528 + new-instance v5, Ljava/lang/StringBuilder;
28530 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
28532 + const-string v8, "Lat: "
28534 + invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28536 + move-result-object v5
28538 + invoke-virtual {v7}, Landroid/location/Location;->getLatitude()D
28540 + move-result-wide v8
28542 + invoke-virtual {v5, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28544 + move-result-object v5
28546 + const-string v8, " Lon: "
28548 + invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28550 + move-result-object v5
28552 + invoke-virtual {v7}, Landroid/location/Location;->getLongitude()D
28554 + move-result-wide v8
28556 + invoke-virtual {v5, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28558 + move-result-object v5
28560 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
28562 + move-result-object v5
28564 + :cond_5e
28565 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28567 + goto :goto_b
28569 + :pswitch_62
28570 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28572 + const-string v4, "locationGPS"
28574 + move v3, v8
28576 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28578 + goto :goto_b
28580 + :pswitch_6b
28581 + new-instance v7, Landroid/location/Location;
28583 + invoke-direct {v7, p1}, Landroid/location/Location;-><init>(Ljava/lang/String;)V
28585 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationGpsLat()Ljava/lang/String;
28587 + move-result-object v0
28589 + invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
28591 + move-result-wide v3
28593 + invoke-virtual {v7, v3, v4}, Landroid/location/Location;->setLatitude(D)V
28595 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationGpsLon()Ljava/lang/String;
28597 + move-result-object v0
28599 + invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
28601 + move-result-wide v3
28603 + invoke-virtual {v7, v3, v4}, Landroid/location/Location;->setLongitude(D)V
28605 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28607 + const-string v4, "locationGPS"
28609 + new-instance v3, Ljava/lang/StringBuilder;
28611 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
28613 + const-string v5, "Lat: "
28615 + invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28617 + move-result-object v3
28619 + invoke-virtual {v7}, Landroid/location/Location;->getLatitude()D
28621 + move-result-wide v8
28623 + invoke-virtual {v3, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28625 + move-result-object v3
28627 + const-string v5, " Lon: "
28629 + invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28631 + move-result-object v3
28633 + invoke-virtual {v7}, Landroid/location/Location;->getLongitude()D
28635 + move-result-wide v8
28637 + invoke-virtual {v3, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28639 + move-result-object v3
28641 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
28643 + move-result-object v5
28645 + move v3, v10
28647 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28649 + goto/16 :goto_b
28651 + :pswitch_b5
28652 + new-instance v7, Landroid/location/Location;
28654 + invoke-direct {v7, p1}, Landroid/location/Location;-><init>(Ljava/lang/String;)V
28656 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationGpsLat()Ljava/lang/String;
28658 + move-result-object v0
28660 + invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
28662 + move-result-wide v3
28664 + invoke-virtual {v7, v3, v4}, Landroid/location/Location;->setLatitude(D)V
28666 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationGpsLon()Ljava/lang/String;
28668 + move-result-object v0
28670 + invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
28672 + move-result-wide v3
28674 + invoke-virtual {v7, v3, v4}, Landroid/location/Location;->setLongitude(D)V
28676 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28678 + const-string v4, "locationGPS"
28680 + new-instance v3, Ljava/lang/StringBuilder;
28682 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
28684 + const-string v5, "Lat: "
28686 + invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28688 + move-result-object v3
28690 + invoke-virtual {v7}, Landroid/location/Location;->getLatitude()D
28692 + move-result-wide v8
28694 + invoke-virtual {v3, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28696 + move-result-object v3
28698 + const-string v5, " Lon: "
28700 + invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28702 + move-result-object v3
28704 + invoke-virtual {v7}, Landroid/location/Location;->getLongitude()D
28706 + move-result-wide v8
28708 + invoke-virtual {v3, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28710 + move-result-object v3
28712 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
28714 + move-result-object v5
28716 + move v3, v11
28718 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28720 + goto/16 :goto_b
28722 + :cond_ff
28723 + const-string/jumbo v0, "network"
28725 + invoke-virtual {p1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
28727 + move-result v0
28729 + if-eqz v0, :cond_1e3
28731 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
28733 + move-result v0
28735 + packed-switch v0, :pswitch_data_2a6
28737 + goto/16 :goto_b
28739 + :pswitch_111
28740 + invoke-super {p0, p1}, Landroid/location/LocationManager;->getLastKnownLocation(Ljava/lang/String;)Landroid/location/Location;
28742 + move-result-object v7
28744 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28746 + const-string v4, "locationNetwork"
28748 + if-eqz v7, :cond_140
28750 + new-instance v5, Ljava/lang/StringBuilder;
28752 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
28754 + const-string v8, "Lat: "
28756 + invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28758 + move-result-object v5
28760 + invoke-virtual {v7}, Landroid/location/Location;->getLatitude()D
28762 + move-result-wide v8
28764 + invoke-virtual {v5, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28766 + move-result-object v5
28768 + const-string v8, " Lon: "
28770 + invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28772 + move-result-object v5
28774 + invoke-virtual {v7}, Landroid/location/Location;->getLongitude()D
28776 + move-result-wide v8
28778 + invoke-virtual {v5, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28780 + move-result-object v5
28782 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
28784 + move-result-object v5
28786 + :cond_140
28787 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28789 + goto/16 :goto_b
28791 + :pswitch_145
28792 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28794 + const-string v4, "locationNetwork"
28796 + move v3, v8
28798 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28800 + goto/16 :goto_b
28802 + :pswitch_14f
28803 + new-instance v7, Landroid/location/Location;
28805 + invoke-direct {v7, p1}, Landroid/location/Location;-><init>(Ljava/lang/String;)V
28807 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkLat()Ljava/lang/String;
28809 + move-result-object v0
28811 + invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
28813 + move-result-wide v3
28815 + invoke-virtual {v7, v3, v4}, Landroid/location/Location;->setLatitude(D)V
28817 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkLon()Ljava/lang/String;
28819 + move-result-object v0
28821 + invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
28823 + move-result-wide v3
28825 + invoke-virtual {v7, v3, v4}, Landroid/location/Location;->setLongitude(D)V
28827 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28829 + const-string v4, "locationNetwork"
28831 + new-instance v3, Ljava/lang/StringBuilder;
28833 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
28835 + const-string v5, "Lat: "
28837 + invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28839 + move-result-object v3
28841 + invoke-virtual {v7}, Landroid/location/Location;->getLatitude()D
28843 + move-result-wide v8
28845 + invoke-virtual {v3, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28847 + move-result-object v3
28849 + const-string v5, " Lon: "
28851 + invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28853 + move-result-object v3
28855 + invoke-virtual {v7}, Landroid/location/Location;->getLongitude()D
28857 + move-result-wide v8
28859 + invoke-virtual {v3, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28861 + move-result-object v3
28863 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
28865 + move-result-object v5
28867 + move v3, v10
28869 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28871 + goto/16 :goto_b
28873 + :pswitch_199
28874 + new-instance v7, Landroid/location/Location;
28876 + invoke-direct {v7, p1}, Landroid/location/Location;-><init>(Ljava/lang/String;)V
28878 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkLat()Ljava/lang/String;
28880 + move-result-object v0
28882 + invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
28884 + move-result-wide v3
28886 + invoke-virtual {v7, v3, v4}, Landroid/location/Location;->setLatitude(D)V
28888 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkLon()Ljava/lang/String;
28890 + move-result-object v0
28892 + invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
28894 + move-result-wide v3
28896 + invoke-virtual {v7, v3, v4}, Landroid/location/Location;->setLongitude(D)V
28898 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28900 + const-string v4, "locationNetwork"
28902 + new-instance v3, Ljava/lang/StringBuilder;
28904 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
28906 + const-string v5, "Lat: "
28908 + invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28910 + move-result-object v3
28912 + invoke-virtual {v7}, Landroid/location/Location;->getLatitude()D
28914 + move-result-wide v8
28916 + invoke-virtual {v3, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28918 + move-result-object v3
28920 + const-string v5, " Lon: "
28922 + invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28924 + move-result-object v3
28926 + invoke-virtual {v7}, Landroid/location/Location;->getLongitude()D
28928 + move-result-wide v8
28930 + invoke-virtual {v3, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28932 + move-result-object v3
28934 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
28936 + move-result-object v5
28938 + move v3, v11
28940 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28942 + goto/16 :goto_b
28944 + :cond_1e3
28945 + const-string/jumbo v0, "passive"
28947 + invoke-virtual {p1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
28949 + move-result v0
28951 + if-eqz v0, :cond_b
28953 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
28955 + move-result v0
28957 + if-nez v0, :cond_b
28959 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
28961 + move-result v0
28963 + if-nez v0, :cond_b
28965 + invoke-super {p0, p1}, Landroid/location/LocationManager;->getLastKnownLocation(Ljava/lang/String;)Landroid/location/Location;
28967 + move-result-object v7
28969 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28971 + const-string v4, "locationGPS"
28973 + if-eqz v7, :cond_227
28975 + new-instance v5, Ljava/lang/StringBuilder;
28977 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
28979 + const-string v8, "Lat: "
28981 + invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28983 + move-result-object v5
28985 + invoke-virtual {v7}, Landroid/location/Location;->getLatitude()D
28987 + move-result-wide v8
28989 + invoke-virtual {v5, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28991 + move-result-object v5
28993 + const-string v8, " Lon: "
28995 + invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28997 + move-result-object v5
28999 + invoke-virtual {v7}, Landroid/location/Location;->getLongitude()D
29001 + move-result-wide v8
29003 + invoke-virtual {v5, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
29005 + move-result-object v5
29007 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
29009 + move-result-object v5
29011 + :cond_227
29012 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
29014 + goto/16 :goto_b
29016 + :cond_22c
29017 + invoke-super {p0, p1}, Landroid/location/LocationManager;->getLastKnownLocation(Ljava/lang/String;)Landroid/location/Location;
29019 + move-result-object v7
29021 + const-string/jumbo v0, "network"
29023 + invoke-virtual {p1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
29025 + move-result v0
29027 + if-eqz v0, :cond_269
29029 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29031 + const-string v4, "locationNetwork"
29033 + if-eqz v7, :cond_264
29035 + new-instance v5, Ljava/lang/StringBuilder;
29037 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
29039 + const-string v8, "Lat: "
29041 + invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
29043 + move-result-object v5
29045 + invoke-virtual {v7}, Landroid/location/Location;->getLatitude()D
29047 + move-result-wide v8
29049 + invoke-virtual {v5, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
29051 + move-result-object v5
29053 + const-string v8, " Lon: "
29055 + invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
29057 + move-result-object v5
29059 + invoke-virtual {v7}, Landroid/location/Location;->getLongitude()D
29061 + move-result-wide v8
29063 + invoke-virtual {v5, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
29065 + move-result-object v5
29067 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
29069 + move-result-object v5
29071 + :cond_264
29072 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
29074 + goto/16 :goto_b
29076 + :cond_269
29077 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29079 + const-string v4, "locationGPS"
29081 + if-eqz v7, :cond_294
29083 + new-instance v5, Ljava/lang/StringBuilder;
29085 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
29087 + const-string v8, "Lat: "
29089 + invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
29091 + move-result-object v5
29093 + invoke-virtual {v7}, Landroid/location/Location;->getLatitude()D
29095 + move-result-wide v8
29097 + invoke-virtual {v5, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
29099 + move-result-object v5
29101 + const-string v8, " Lon: "
29103 + invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
29105 + move-result-object v5
29107 + invoke-virtual {v7}, Landroid/location/Location;->getLongitude()D
29109 + move-result-wide v8
29111 + invoke-virtual {v5, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
29113 + move-result-object v5
29115 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
29117 + move-result-object v5
29119 + :cond_294
29120 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
29122 + goto/16 :goto_b
29124 + nop
29126 + :pswitch_data_29a
29127 + .packed-switch 0x0
29128 + :pswitch_2f
29129 + :pswitch_62
29130 + :pswitch_6b
29131 + :pswitch_b5
29132 + .end packed-switch
29134 + :pswitch_data_2a6
29135 + .packed-switch 0x0
29136 + :pswitch_111
29137 + :pswitch_145
29138 + :pswitch_14f
29139 + :pswitch_199
29140 + .end packed-switch
29141 +.end method
29143 +.method public getProvider(Ljava/lang/String;)Landroid/location/LocationProvider;
29144 + .registers 7
29146 + if-nez p1, :cond_7
29148 + invoke-super {p0, p1}, Landroid/location/LocationManager;->getProvider(Ljava/lang/String;)Landroid/location/LocationProvider;
29150 + move-result-object v0
29152 + :cond_6
29153 + :goto_6
29154 + return-object v0
29156 + :cond_7
29157 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29159 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->context:Landroid/content/Context;
29161 + invoke-virtual {v3}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
29163 + move-result-object v3
29165 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
29167 + move-result v4
29169 + invoke-virtual {v2, v3, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
29171 + move-result-object v1
29173 + const/4 v0, 0x0
29175 + if-eqz v1, :cond_5f
29177 + const-string v2, "gps"
29179 + invoke-virtual {p1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
29181 + move-result v2
29183 + if-eqz v2, :cond_2f
29185 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
29187 + move-result v2
29189 + packed-switch v2, :pswitch_data_64
29191 + :pswitch_29
29192 + goto :goto_6
29194 + :pswitch_2a
29195 + invoke-super {p0, p1}, Landroid/location/LocationManager;->getProvider(Ljava/lang/String;)Landroid/location/LocationProvider;
29197 + move-result-object v0
29199 + goto :goto_6
29201 + :cond_2f
29202 + const-string/jumbo v2, "network"
29204 + invoke-virtual {p1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
29206 + move-result v2
29208 + if-eqz v2, :cond_45
29210 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
29212 + move-result v2
29214 + packed-switch v2, :pswitch_data_70
29216 + :pswitch_3f
29217 + goto :goto_6
29219 + :pswitch_40
29220 + invoke-super {p0, p1}, Landroid/location/LocationManager;->getProvider(Ljava/lang/String;)Landroid/location/LocationProvider;
29222 + move-result-object v0
29224 + goto :goto_6
29226 + :cond_45
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_5a
29241 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
29243 + move-result v2
29245 + if-nez v2, :cond_6
29247 + :cond_5a
29248 + invoke-super {p0, p1}, Landroid/location/LocationManager;->getProvider(Ljava/lang/String;)Landroid/location/LocationProvider;
29250 + move-result-object v0
29252 + goto :goto_6
29254 + :cond_5f
29255 + invoke-super {p0, p1}, Landroid/location/LocationManager;->getProvider(Ljava/lang/String;)Landroid/location/LocationProvider;
29257 + move-result-object v0
29259 + goto :goto_6
29261 + :pswitch_data_64
29262 + .packed-switch 0x0
29263 + :pswitch_2a
29264 + :pswitch_29
29265 + :pswitch_2a
29266 + :pswitch_2a
29267 + .end packed-switch
29269 + :pswitch_data_70
29270 + .packed-switch 0x0
29271 + :pswitch_40
29272 + :pswitch_3f
29273 + :pswitch_40
29274 + :pswitch_40
29275 + .end packed-switch
29276 +.end method
29278 +.method public isProviderEnabled(Ljava/lang/String;)Z
29279 + .registers 7
29281 + if-nez p1, :cond_7
29283 + invoke-super {p0, p1}, Landroid/location/LocationManager;->isProviderEnabled(Ljava/lang/String;)Z
29285 + move-result v0
29287 + :cond_6
29288 + :goto_6
29289 + :pswitch_6
29290 + return v0
29292 + :cond_7
29293 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29295 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->context:Landroid/content/Context;
29297 + invoke-virtual {v3}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
29299 + move-result-object v3
29301 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
29303 + move-result v4
29305 + invoke-virtual {v2, v3, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
29307 + move-result-object v1
29309 + const/4 v0, 0x0
29311 + if-eqz v1, :cond_65
29313 + const-string v2, "gps"
29315 + invoke-virtual {p1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
29317 + move-result v2
29319 + if-eqz v2, :cond_31
29321 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
29323 + move-result v2
29325 + packed-switch v2, :pswitch_data_6a
29327 + goto :goto_6
29329 + :pswitch_2a
29330 + invoke-super {p0, p1}, Landroid/location/LocationManager;->isProviderEnabled(Ljava/lang/String;)Z
29332 + move-result v0
29334 + goto :goto_6
29336 + :pswitch_2f
29337 + const/4 v0, 0x1
29339 + goto :goto_6
29341 + :cond_31
29342 + const-string/jumbo v2, "network"
29344 + invoke-virtual {p1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
29346 + move-result v2
29348 + if-eqz v2, :cond_49
29350 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
29352 + move-result v2
29354 + packed-switch v2, :pswitch_data_76
29356 + goto :goto_6
29358 + :pswitch_42
29359 + invoke-super {p0, p1}, Landroid/location/LocationManager;->isProviderEnabled(Ljava/lang/String;)Z
29361 + move-result v0
29363 + goto :goto_6
29365 + :pswitch_47
29366 + const/4 v0, 0x1
29368 + goto :goto_6
29370 + :cond_49
29371 + const-string/jumbo v2, "passive"
29373 + invoke-virtual {p1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
29375 + move-result v2
29377 + if-eqz v2, :cond_6
29379 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
29381 + move-result v2
29383 + if-eqz v2, :cond_5e
29385 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
29387 + move-result v2
29389 + if-nez v2, :cond_63
29391 + :cond_5e
29392 + invoke-super {p0, p1}, Landroid/location/LocationManager;->isProviderEnabled(Ljava/lang/String;)Z
29394 + move-result v0
29396 + goto :goto_6
29398 + :cond_63
29399 + const/4 v0, 0x0
29401 + goto :goto_6
29403 + :cond_65
29404 + invoke-super {p0, p1}, Landroid/location/LocationManager;->isProviderEnabled(Ljava/lang/String;)Z
29406 + move-result v0
29408 + goto :goto_6
29410 + :pswitch_data_6a
29411 + .packed-switch 0x0
29412 + :pswitch_2a
29413 + :pswitch_6
29414 + :pswitch_2f
29415 + :pswitch_2f
29416 + .end packed-switch
29418 + :pswitch_data_76
29419 + .packed-switch 0x0
29420 + :pswitch_42
29421 + :pswitch_6
29422 + :pswitch_47
29423 + :pswitch_47
29424 + .end packed-switch
29425 +.end method
29427 +.method public requestLocationUpdates(JFLandroid/location/Criteria;Landroid/app/PendingIntent;)V
29428 + .registers 7
29430 + if-eqz p4, :cond_4
29432 + if-nez p5, :cond_8
29434 + :cond_4
29435 + invoke-super/range {p0 .. p5}, Landroid/location/LocationManager;->requestLocationUpdates(JFLandroid/location/Criteria;Landroid/app/PendingIntent;)V
29437 + :cond_7
29438 + :goto_7
29439 + return-void
29441 + :cond_8
29442 + const/4 v0, 0x0
29444 + invoke-direct {p0, p4, v0, p5}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Landroid/location/Criteria;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
29446 + move-result v0
29448 + if-nez v0, :cond_7
29450 + invoke-super/range {p0 .. p5}, Landroid/location/LocationManager;->requestLocationUpdates(JFLandroid/location/Criteria;Landroid/app/PendingIntent;)V
29452 + goto :goto_7
29453 +.end method
29455 +.method public requestLocationUpdates(JFLandroid/location/Criteria;Landroid/location/LocationListener;Landroid/os/Looper;)V
29456 + .registers 8
29458 + if-eqz p4, :cond_4
29460 + if-nez p5, :cond_8
29462 + :cond_4
29463 + invoke-super/range {p0 .. p6}, Landroid/location/LocationManager;->requestLocationUpdates(JFLandroid/location/Criteria;Landroid/location/LocationListener;Landroid/os/Looper;)V
29465 + :cond_7
29466 + :goto_7
29467 + return-void
29469 + :cond_8
29470 + const/4 v0, 0x0
29472 + invoke-direct {p0, p4, p5, v0}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Landroid/location/Criteria;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
29474 + move-result v0
29476 + if-nez v0, :cond_7
29478 + invoke-super/range {p0 .. p6}, Landroid/location/LocationManager;->requestLocationUpdates(JFLandroid/location/Criteria;Landroid/location/LocationListener;Landroid/os/Looper;)V
29480 + goto :goto_7
29481 +.end method
29483 +.method public requestLocationUpdates(Ljava/lang/String;JFLandroid/app/PendingIntent;)V
29484 + .registers 7
29486 + if-eqz p1, :cond_4
29488 + if-nez p5, :cond_8
29490 + :cond_4
29491 + invoke-super/range {p0 .. p5}, Landroid/location/LocationManager;->requestLocationUpdates(Ljava/lang/String;JFLandroid/app/PendingIntent;)V
29493 + :cond_7
29494 + :goto_7
29495 + return-void
29497 + :cond_8
29498 + const/4 v0, 0x0
29500 + invoke-direct {p0, p1, v0, p5}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
29502 + move-result v0
29504 + if-nez v0, :cond_7
29506 + invoke-super/range {p0 .. p5}, Landroid/location/LocationManager;->requestLocationUpdates(Ljava/lang/String;JFLandroid/app/PendingIntent;)V
29508 + goto :goto_7
29509 +.end method
29511 +.method public requestLocationUpdates(Ljava/lang/String;JFLandroid/location/LocationListener;)V
29512 + .registers 7
29514 + if-eqz p1, :cond_4
29516 + if-nez p5, :cond_8
29518 + :cond_4
29519 + invoke-super/range {p0 .. p5}, Landroid/location/LocationManager;->requestLocationUpdates(Ljava/lang/String;JFLandroid/location/LocationListener;)V
29521 + :cond_7
29522 + :goto_7
29523 + return-void
29525 + :cond_8
29526 + const/4 v0, 0x0
29528 + invoke-direct {p0, p1, p5, v0}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
29530 + move-result v0
29532 + if-nez v0, :cond_7
29534 + invoke-super/range {p0 .. p5}, Landroid/location/LocationManager;->requestLocationUpdates(Ljava/lang/String;JFLandroid/location/LocationListener;)V
29536 + goto :goto_7
29537 +.end method
29539 +.method public requestLocationUpdates(Ljava/lang/String;JFLandroid/location/LocationListener;Landroid/os/Looper;)V
29540 + .registers 8
29542 + if-eqz p1, :cond_4
29544 + if-nez p5, :cond_8
29546 + :cond_4
29547 + invoke-super/range {p0 .. p6}, Landroid/location/LocationManager;->requestLocationUpdates(Ljava/lang/String;JFLandroid/location/LocationListener;Landroid/os/Looper;)V
29549 + :cond_7
29550 + :goto_7
29551 + return-void
29553 + :cond_8
29554 + const/4 v0, 0x0
29556 + invoke-direct {p0, p1, p5, v0}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
29558 + move-result v0
29560 + if-nez v0, :cond_7
29562 + invoke-super/range {p0 .. p6}, Landroid/location/LocationManager;->requestLocationUpdates(Ljava/lang/String;JFLandroid/location/LocationListener;Landroid/os/Looper;)V
29564 + goto :goto_7
29565 +.end method
29567 +.method public requestSingleUpdate(Landroid/location/Criteria;Landroid/app/PendingIntent;)V
29568 + .registers 4
29570 + if-eqz p1, :cond_4
29572 + if-nez p2, :cond_8
29574 + :cond_4
29575 + invoke-super {p0, p1, p2}, Landroid/location/LocationManager;->requestSingleUpdate(Landroid/location/Criteria;Landroid/app/PendingIntent;)V
29577 + :cond_7
29578 + :goto_7
29579 + return-void
29581 + :cond_8
29582 + const/4 v0, 0x0
29584 + invoke-direct {p0, p1, v0, p2}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Landroid/location/Criteria;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
29586 + move-result v0
29588 + if-nez v0, :cond_7
29590 + invoke-super {p0, p1, p2}, Landroid/location/LocationManager;->requestSingleUpdate(Landroid/location/Criteria;Landroid/app/PendingIntent;)V
29592 + goto :goto_7
29593 +.end method
29595 +.method public requestSingleUpdate(Landroid/location/Criteria;Landroid/location/LocationListener;Landroid/os/Looper;)V
29596 + .registers 5
29598 + if-eqz p1, :cond_4
29600 + if-nez p2, :cond_8
29602 + :cond_4
29603 + invoke-super {p0, p1, p2, p3}, Landroid/location/LocationManager;->requestSingleUpdate(Landroid/location/Criteria;Landroid/location/LocationListener;Landroid/os/Looper;)V
29605 + :cond_7
29606 + :goto_7
29607 + return-void
29609 + :cond_8
29610 + const/4 v0, 0x0
29612 + invoke-direct {p0, p1, p2, v0}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Landroid/location/Criteria;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
29614 + move-result v0
29616 + if-nez v0, :cond_7
29618 + invoke-super {p0, p1, p2, p3}, Landroid/location/LocationManager;->requestSingleUpdate(Landroid/location/Criteria;Landroid/location/LocationListener;Landroid/os/Looper;)V
29620 + goto :goto_7
29621 +.end method
29623 +.method public requestSingleUpdate(Ljava/lang/String;Landroid/app/PendingIntent;)V
29624 + .registers 4
29626 + if-eqz p1, :cond_4
29628 + if-nez p2, :cond_8
29630 + :cond_4
29631 + invoke-super {p0, p1, p2}, Landroid/location/LocationManager;->requestSingleUpdate(Ljava/lang/String;Landroid/app/PendingIntent;)V
29633 + :cond_7
29634 + :goto_7
29635 + return-void
29637 + :cond_8
29638 + const/4 v0, 0x0
29640 + invoke-direct {p0, p1, v0, p2}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
29642 + move-result v0
29644 + if-nez v0, :cond_7
29646 + invoke-super {p0, p1, p2}, Landroid/location/LocationManager;->requestSingleUpdate(Ljava/lang/String;Landroid/app/PendingIntent;)V
29648 + goto :goto_7
29649 +.end method
29651 +.method public requestSingleUpdate(Ljava/lang/String;Landroid/location/LocationListener;Landroid/os/Looper;)V
29652 + .registers 5
29654 + if-eqz p1, :cond_4
29656 + if-nez p2, :cond_8
29658 + :cond_4
29659 + invoke-super {p0, p1, p2, p3}, Landroid/location/LocationManager;->requestSingleUpdate(Ljava/lang/String;Landroid/location/LocationListener;Landroid/os/Looper;)V
29661 + :cond_7
29662 + :goto_7
29663 + return-void
29665 + :cond_8
29666 + const/4 v0, 0x0
29668 + invoke-direct {p0, p1, p2, v0}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
29670 + move-result v0
29672 + if-nez v0, :cond_7
29674 + invoke-super {p0, p1, p2, p3}, Landroid/location/LocationManager;->requestSingleUpdate(Ljava/lang/String;Landroid/location/LocationListener;Landroid/os/Looper;)V
29676 + goto :goto_7
29677 +.end method
29678 diff -Npru stock-framework/smali/android/privacy/surrogate/PrivacyTelephonyManager.smali opd-framework/smali/android/privacy/surrogate/PrivacyTelephonyManager.smali
29679 --- stock-framework/smali/android/privacy/surrogate/PrivacyTelephonyManager.smali 1969-12-31 18:00:00.000000000 -0600
29680 +++ opd-framework/smali/android/privacy/surrogate/PrivacyTelephonyManager.smali 2013-01-09 02:52:41.663525610 -0600
29681 @@ -0,0 +1,1385 @@
29682 +.class public final Landroid/privacy/surrogate/PrivacyTelephonyManager;
29683 +.super Landroid/telephony/TelephonyManager;
29684 +.source "PrivacyTelephonyManager.java"
29687 +# static fields
29688 +.field private static final NETWORK_TYPES:[I = null
29690 +.field private static final PHONE_TYPES:[I = null
29692 +.field private static final TAG:Ljava/lang/String; = "PrivacyTelephonyManager"
29695 +# instance fields
29696 +.field private context:Landroid/content/Context;
29698 +.field private pSetMan:Landroid/privacy/PrivacySettingsManager;
29701 +# direct methods
29702 +.method static constructor <clinit>()V
29703 + .registers 1
29705 + const/4 v0, 0x4
29707 + new-array v0, v0, [I
29709 + fill-array-data v0, :array_12
29711 + sput-object v0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->PHONE_TYPES:[I
29713 + const/16 v0, 0x10
29715 + new-array v0, v0, [I
29717 + fill-array-data v0, :array_1e
29719 + sput-object v0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->NETWORK_TYPES:[I
29721 + return-void
29723 + :array_12
29724 + .array-data 0x4
29725 + 0x0t 0x0t 0x0t 0x0t
29726 + 0x1t 0x0t 0x0t 0x0t
29727 + 0x2t 0x0t 0x0t 0x0t
29728 + 0x3t 0x0t 0x0t 0x0t
29729 + .end array-data
29731 + :array_1e
29732 + .array-data 0x4
29733 + 0x0t 0x0t 0x0t 0x0t
29734 + 0x1t 0x0t 0x0t 0x0t
29735 + 0x2t 0x0t 0x0t 0x0t
29736 + 0x3t 0x0t 0x0t 0x0t
29737 + 0x4t 0x0t 0x0t 0x0t
29738 + 0x5t 0x0t 0x0t 0x0t
29739 + 0x6t 0x0t 0x0t 0x0t
29740 + 0x7t 0x0t 0x0t 0x0t
29741 + 0x8t 0x0t 0x0t 0x0t
29742 + 0x9t 0x0t 0x0t 0x0t
29743 + 0xat 0x0t 0x0t 0x0t
29744 + 0xbt 0x0t 0x0t 0x0t
29745 + 0xct 0x0t 0x0t 0x0t
29746 + 0xdt 0x0t 0x0t 0x0t
29747 + 0xet 0x0t 0x0t 0x0t
29748 + 0xft 0x0t 0x0t 0x0t
29749 + .end array-data
29750 +.end method
29752 +.method public constructor <init>(Landroid/content/Context;)V
29753 + .registers 4
29755 + invoke-direct {p0, p1}, Landroid/telephony/TelephonyManager;-><init>(Landroid/content/Context;)V
29757 + iput-object p1, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
29759 + new-instance v0, Landroid/privacy/PrivacySettingsManager;
29761 + const-string/jumbo v1, "privacy"
29763 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
29765 + move-result-object v1
29767 + invoke-static {v1}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
29769 + move-result-object v1
29771 + invoke-direct {v0, p1, v1}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
29773 + iput-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29775 + return-void
29776 +.end method
29778 +.method private getNetworkInfo()Ljava/lang/String;
29779 + .registers 8
29781 + const/4 v5, 0x0
29783 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
29785 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
29787 + move-result-object v1
29789 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
29791 + move-result v2
29793 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29795 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
29797 + move-result-object v6
29799 + if-eqz v6, :cond_25
29801 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
29803 + move-result v0
29805 + if-eqz v0, :cond_25
29807 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29809 + const/4 v3, 0x1
29811 + const-string/jumbo v4, "networkInfoCurrent"
29813 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
29815 + const-string v5, ""
29817 + :goto_24
29818 + return-object v5
29820 + :cond_25
29821 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29823 + const/4 v3, 0x0
29825 + const-string/jumbo v4, "networkInfoCurrent"
29827 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
29829 + goto :goto_24
29830 +.end method
29832 +.method private getSimInfo()Ljava/lang/String;
29833 + .registers 8
29835 + const/4 v5, 0x0
29837 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
29839 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
29841 + move-result-object v1
29843 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
29845 + move-result v2
29847 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29849 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
29851 + move-result-object v6
29853 + if-eqz v6, :cond_25
29855 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getSimInfoSetting()B
29857 + move-result v0
29859 + if-eqz v0, :cond_25
29861 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29863 + const/4 v3, 0x1
29865 + const-string/jumbo v4, "networkInfoSIM"
29867 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
29869 + const-string v5, ""
29871 + :goto_24
29872 + return-object v5
29874 + :cond_25
29875 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29877 + const/4 v3, 0x0
29879 + const-string/jumbo v4, "networkInfoSIM"
29881 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
29883 + goto :goto_24
29884 +.end method
29887 +# virtual methods
29888 +.method public getAllCellInfo()Ljava/util/List;
29889 + .registers 6
29890 + .annotation system Ldalvik/annotation/Signature;
29891 + value = {
29892 + "()",
29893 + "Ljava/util/List",
29894 + "<",
29895 + "Landroid/telephony/CellInfo;",
29896 + ">;"
29898 + .end annotation
29900 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29902 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
29904 + invoke-virtual {v3}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
29906 + move-result-object v3
29908 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
29910 + move-result v4
29912 + invoke-virtual {v2, v3, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
29914 + move-result-object v1
29916 + const/4 v0, 0x0
29918 + if-eqz v1, :cond_1f
29920 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
29922 + move-result v2
29924 + const/4 v3, 0x1
29926 + if-ne v2, v3, :cond_20
29928 + new-instance v0, Ljava/util/ArrayList;
29930 + invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
29932 + :cond_1f
29933 + :goto_1f
29934 + return-object v0
29936 + :cond_20
29937 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
29939 + move-result v2
29941 + if-eqz v2, :cond_2c
29943 + new-instance v0, Ljava/util/ArrayList;
29945 + invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
29947 + goto :goto_1f
29949 + :cond_2c
29950 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getAllCellInfo()Ljava/util/List;
29952 + move-result-object v0
29954 + goto :goto_1f
29955 +.end method
29957 +.method public getCellLocation()Landroid/telephony/CellLocation;
29958 + .registers 10
29960 + const/4 v7, 0x0
29962 + :try_start_1
29963 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
29965 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
29967 + move-result-object v1
29969 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
29971 + move-result v2
29973 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29975 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
29977 + move-result-object v6
29979 + if-eqz v6, :cond_2c
29981 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
29983 + move-result v0
29985 + if-nez v0, :cond_1f
29987 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
29989 + move-result v0
29991 + if-eqz v0, :cond_2c
29993 + :cond_1f
29994 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29996 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
29998 + move-result v3
30000 + const-string v4, "locationNetwork"
30002 + const/4 v5, 0x0
30004 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30006 + :goto_2b
30007 + return-object v7
30009 + :cond_2c
30010 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30012 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
30014 + move-result v3
30016 + const-string v4, "locationNetwork"
30018 + const/4 v5, 0x0
30020 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30022 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getCellLocation()Landroid/telephony/CellLocation;
30023 + :try_end_3b
30024 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_3b} :catch_3d
30026 + move-result-object v7
30028 + goto :goto_2b
30030 + :catch_3d
30031 + move-exception v8
30033 + goto :goto_2b
30034 +.end method
30036 +.method public getCompleteVoiceMailNumber()Ljava/lang/String;
30037 + .registers 9
30039 + :try_start_0
30040 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30042 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30044 + move-result-object v1
30046 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
30048 + move-result v2
30050 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30052 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
30054 + move-result-object v6
30056 + const-string v5, ""
30058 + if-eqz v6, :cond_2a
30060 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLine1NumberSetting()B
30062 + move-result v0
30064 + if-eqz v0, :cond_2a
30066 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLine1Number()Ljava/lang/String;
30068 + move-result-object v5
30070 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30072 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLine1NumberSetting()B
30074 + move-result v3
30076 + const-string v4, "line1Number"
30078 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30080 + :goto_29
30081 + return-object v5
30083 + :cond_2a
30084 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getCompleteVoiceMailNumber()Ljava/lang/String;
30086 + move-result-object v5
30088 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30090 + const/4 v3, 0x0
30092 + const-string v4, "line1Number"
30094 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30095 + :try_end_36
30096 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_36} :catch_37
30098 + goto :goto_29
30100 + :catch_37
30101 + move-exception v7
30103 + const/4 v5, 0x0
30105 + goto :goto_29
30106 +.end method
30108 +.method public getDeviceId()Ljava/lang/String;
30109 + .registers 8
30111 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30113 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30115 + move-result-object v1
30117 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
30119 + move-result v2
30121 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30123 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
30125 + move-result-object v6
30127 + if-eqz v6, :cond_28
30129 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getDeviceIdSetting()B
30131 + move-result v0
30133 + if-eqz v0, :cond_28
30135 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getDeviceId()Ljava/lang/String;
30137 + move-result-object v5
30139 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30141 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getDeviceIdSetting()B
30143 + move-result v3
30145 + const-string v4, "deviceID"
30147 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30149 + :goto_27
30150 + return-object v5
30152 + :cond_28
30153 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getDeviceId()Ljava/lang/String;
30155 + move-result-object v5
30157 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30159 + const/4 v3, 0x0
30161 + const-string v4, "deviceID"
30163 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30165 + goto :goto_27
30166 +.end method
30168 +.method public getDeviceSoftwareVersion()Ljava/lang/String;
30169 + .registers 9
30171 + :try_start_0
30172 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30174 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30176 + move-result-object v1
30178 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
30180 + move-result v2
30182 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30184 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
30186 + move-result-object v6
30188 + const-string v5, ""
30190 + if-eqz v6, :cond_2a
30192 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getDeviceIdSetting()B
30194 + move-result v0
30196 + if-eqz v0, :cond_2a
30198 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getDeviceId()Ljava/lang/String;
30200 + move-result-object v5
30202 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30204 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getDeviceIdSetting()B
30206 + move-result v3
30208 + const-string v4, "deviceID"
30210 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30212 + :goto_29
30213 + return-object v5
30215 + :cond_2a
30216 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getDeviceSoftwareVersion()Ljava/lang/String;
30218 + move-result-object v5
30220 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30222 + const/4 v3, 0x0
30224 + const-string v4, "deviceID"
30226 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30227 + :try_end_36
30228 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_36} :catch_37
30230 + goto :goto_29
30232 + :catch_37
30233 + move-exception v7
30235 + const/4 v5, 0x0
30237 + goto :goto_29
30238 +.end method
30240 +.method public getIsimDomain()Ljava/lang/String;
30241 + .registers 2
30243 + invoke-virtual {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getNetworkOperatorName()Ljava/lang/String;
30245 + move-result-object v0
30247 + return-object v0
30248 +.end method
30250 +.method public getIsimImpi()Ljava/lang/String;
30251 + .registers 4
30253 + const-string v0, "PrivacyTelephonyManager"
30255 + new-instance v1, Ljava/lang/StringBuilder;
30257 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
30259 + const-string v2, "getIsimImpi - "
30261 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30263 + move-result-object v1
30265 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30267 + invoke-virtual {v2}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30269 + move-result-object v2
30271 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30273 + move-result-object v1
30275 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
30277 + move-result-object v1
30279 + invoke-static {v0, v1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
30281 + invoke-virtual {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getSubscriberId()Ljava/lang/String;
30283 + move-result-object v0
30285 + return-object v0
30286 +.end method
30288 +.method public getIsimImpu()[Ljava/lang/String;
30289 + .registers 10
30291 + const/4 v8, 0x0
30293 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30295 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30297 + move-result-object v1
30299 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
30301 + move-result v2
30303 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30305 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
30307 + move-result-object v6
30309 + const-string v0, "PrivacyTelephonyManager"
30311 + new-instance v3, Ljava/lang/StringBuilder;
30313 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
30315 + const-string v4, "getIsimImpu() - "
30317 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30319 + move-result-object v3
30321 + iget-object v4, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30323 + invoke-virtual {v4}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30325 + move-result-object v4
30327 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30329 + move-result-object v3
30331 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
30333 + move-result-object v3
30335 + invoke-static {v0, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
30337 + const/4 v0, 0x1
30339 + new-array v7, v0, [Ljava/lang/String;
30341 + if-eqz v6, :cond_4f
30343 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getSubscriberIdSetting()B
30345 + move-result v0
30347 + if-eqz v0, :cond_4f
30349 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getSubscriberId()Ljava/lang/String;
30351 + move-result-object v0
30353 + aput-object v0, v7, v8
30355 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30357 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getSubscriberIdSetting()B
30359 + move-result v3
30361 + const-string/jumbo v4, "subscriberID"
30363 + aget-object v5, v7, v8
30365 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30367 + :goto_4e
30368 + return-object v7
30370 + :cond_4f
30371 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getIsimImpu()[Ljava/lang/String;
30373 + move-result-object v7
30375 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30377 + const-string/jumbo v4, "subscriberID"
30379 + aget-object v5, v7, v8
30381 + move v3, v8
30383 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30385 + goto :goto_4e
30386 +.end method
30388 +.method public getLine1AlphaTag()Ljava/lang/String;
30389 + .registers 2
30391 + invoke-virtual {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getLine1Number()Ljava/lang/String;
30393 + move-result-object v0
30395 + return-object v0
30396 +.end method
30398 +.method public getLine1Number()Ljava/lang/String;
30399 + .registers 8
30401 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30403 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30405 + move-result-object v1
30407 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
30409 + move-result v2
30411 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30413 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
30415 + move-result-object v6
30417 + if-eqz v6, :cond_28
30419 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLine1NumberSetting()B
30421 + move-result v0
30423 + if-eqz v0, :cond_28
30425 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLine1Number()Ljava/lang/String;
30427 + move-result-object v5
30429 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30431 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLine1NumberSetting()B
30433 + move-result v3
30435 + const-string v4, "line1Number"
30437 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30439 + :goto_27
30440 + return-object v5
30442 + :cond_28
30443 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getLine1Number()Ljava/lang/String;
30445 + move-result-object v5
30447 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30449 + const/4 v3, 0x0
30451 + const-string v4, "line1Number"
30453 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30455 + goto :goto_27
30456 +.end method
30458 +.method public getMsisdn()Ljava/lang/String;
30459 + .registers 4
30461 + const-string v0, "PrivacyTelephonyManager"
30463 + new-instance v1, Ljava/lang/StringBuilder;
30465 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
30467 + const-string v2, "getMsisdn() - "
30469 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30471 + move-result-object v1
30473 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30475 + invoke-virtual {v2}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30477 + move-result-object v2
30479 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30481 + move-result-object v1
30483 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
30485 + move-result-object v1
30487 + invoke-static {v0, v1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
30489 + invoke-virtual {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getSubscriberId()Ljava/lang/String;
30491 + move-result-object v0
30493 + return-object v0
30494 +.end method
30496 +.method public getNeighboringCellInfo()Ljava/util/List;
30497 + .registers 10
30498 + .annotation system Ldalvik/annotation/Signature;
30499 + value = {
30500 + "()",
30501 + "Ljava/util/List",
30502 + "<",
30503 + "Landroid/telephony/NeighboringCellInfo;",
30504 + ">;"
30506 + .end annotation
30508 + iget-object v6, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30510 + iget-object v7, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30512 + invoke-virtual {v7}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30514 + move-result-object v7
30516 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
30518 + move-result v8
30520 + invoke-virtual {v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
30522 + move-result-object v5
30524 + const/4 v3, 0x0
30526 + const-string v4, "[null]"
30528 + if-eqz v5, :cond_1c
30530 + invoke-virtual {v5}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
30532 + move-result v6
30534 + const/4 v7, 0x1
30536 + if-ne v6, v7, :cond_1d
30538 + :cond_1c
30539 + :goto_1c
30540 + return-object v3
30542 + :cond_1d
30543 + invoke-virtual {v5}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
30545 + move-result v6
30547 + if-eqz v6, :cond_2b
30549 + new-instance v3, Ljava/util/ArrayList;
30551 + invoke-direct {v3}, Ljava/util/ArrayList;-><init>()V
30553 + const-string v4, "[empty list of cells]"
30555 + goto :goto_1c
30557 + :cond_2b
30558 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getNeighboringCellInfo()Ljava/util/List;
30560 + move-result-object v3
30562 + const-string v0, ""
30564 + invoke-interface {v3}, Ljava/util/List;->iterator()Ljava/util/Iterator;
30566 + move-result-object v2
30568 + :goto_35
30569 + invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z
30571 + move-result v6
30573 + if-eqz v6, :cond_5f
30575 + invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;
30577 + move-result-object v1
30579 + check-cast v1, Landroid/telephony/NeighboringCellInfo;
30581 + new-instance v6, Ljava/lang/StringBuilder;
30583 + invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
30585 + invoke-virtual {v6, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30587 + move-result-object v6
30589 + const-string v7, "\t"
30591 + invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30593 + move-result-object v6
30595 + invoke-virtual {v6, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
30597 + move-result-object v6
30599 + const-string v7, "\n"
30601 + invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30603 + move-result-object v6
30605 + invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
30607 + move-result-object v0
30609 + goto :goto_35
30611 + :cond_5f
30612 + new-instance v6, Ljava/lang/StringBuilder;
30614 + invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
30616 + const-string v7, "[real value]:\n"
30618 + invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30620 + move-result-object v6
30622 + invoke-virtual {v6, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30624 + move-result-object v6
30626 + invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
30628 + move-result-object v4
30630 + goto :goto_1c
30631 +.end method
30633 +.method public getNetworkCountryIso()Ljava/lang/String;
30634 + .registers 2
30636 + invoke-direct {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getNetworkInfo()Ljava/lang/String;
30638 + move-result-object v0
30640 + if-nez v0, :cond_a
30642 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getNetworkCountryIso()Ljava/lang/String;
30644 + move-result-object v0
30646 + :cond_a
30647 + return-object v0
30648 +.end method
30650 +.method public getNetworkOperator()Ljava/lang/String;
30651 + .registers 2
30653 + invoke-direct {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getNetworkInfo()Ljava/lang/String;
30655 + move-result-object v0
30657 + if-nez v0, :cond_a
30659 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getNetworkOperator()Ljava/lang/String;
30661 + move-result-object v0
30663 + :cond_a
30664 + return-object v0
30665 +.end method
30667 +.method public getNetworkOperatorName()Ljava/lang/String;
30668 + .registers 2
30670 + invoke-direct {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getNetworkInfo()Ljava/lang/String;
30672 + move-result-object v0
30674 + if-nez v0, :cond_a
30676 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getNetworkOperatorName()Ljava/lang/String;
30678 + move-result-object v0
30680 + :cond_a
30681 + return-object v0
30682 +.end method
30684 +.method public getNetworkType()I
30685 + .registers 7
30687 + const/4 v5, 0x0
30689 + :try_start_1
30690 + invoke-direct {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getNetworkInfo()Ljava/lang/String;
30692 + move-result-object v1
30694 + sget-object v3, Landroid/privacy/surrogate/PrivacyTelephonyManager;->NETWORK_TYPES:[I
30696 + const/4 v4, 0x0
30698 + aget v2, v3, v4
30700 + if-nez v1, :cond_10
30702 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getNetworkType()I
30703 + :try_end_f
30704 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_f} :catch_11
30706 + move-result v2
30708 + :cond_10
30709 + :goto_10
30710 + return v2
30712 + :catch_11
30713 + move-exception v0
30715 + sget-object v3, Landroid/privacy/surrogate/PrivacyTelephonyManager;->NETWORK_TYPES:[I
30717 + aget v2, v3, v5
30719 + goto :goto_10
30720 +.end method
30722 +.method public getPhoneType()I
30723 + .registers 5
30725 + invoke-direct {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getNetworkInfo()Ljava/lang/String;
30727 + move-result-object v0
30729 + sget-object v2, Landroid/privacy/surrogate/PrivacyTelephonyManager;->PHONE_TYPES:[I
30731 + const/4 v3, 0x0
30733 + aget v1, v2, v3
30735 + if-nez v0, :cond_f
30737 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getPhoneType()I
30739 + move-result v1
30741 + :cond_f
30742 + return v1
30743 +.end method
30745 +.method public getSimCountryIso()Ljava/lang/String;
30746 + .registers 2
30748 + invoke-direct {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getSimInfo()Ljava/lang/String;
30750 + move-result-object v0
30752 + if-nez v0, :cond_a
30754 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getSimCountryIso()Ljava/lang/String;
30756 + move-result-object v0
30758 + :cond_a
30759 + return-object v0
30760 +.end method
30762 +.method public getSimOperator()Ljava/lang/String;
30763 + .registers 2
30765 + invoke-direct {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getSimInfo()Ljava/lang/String;
30767 + move-result-object v0
30769 + if-nez v0, :cond_a
30771 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getSimOperator()Ljava/lang/String;
30773 + move-result-object v0
30775 + :cond_a
30776 + return-object v0
30777 +.end method
30779 +.method public getSimOperatorName()Ljava/lang/String;
30780 + .registers 2
30782 + invoke-direct {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getSimInfo()Ljava/lang/String;
30784 + move-result-object v0
30786 + if-nez v0, :cond_a
30788 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getSimOperatorName()Ljava/lang/String;
30790 + move-result-object v0
30792 + :cond_a
30793 + return-object v0
30794 +.end method
30796 +.method public getSimSerialNumber()Ljava/lang/String;
30797 + .registers 8
30799 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30801 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30803 + move-result-object v1
30805 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
30807 + move-result v2
30809 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30811 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
30813 + move-result-object v6
30815 + if-eqz v6, :cond_29
30817 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getSimSerialNumberSetting()B
30819 + move-result v0
30821 + if-eqz v0, :cond_29
30823 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getSimSerialNumber()Ljava/lang/String;
30825 + move-result-object v5
30827 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30829 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getSimSerialNumberSetting()B
30831 + move-result v3
30833 + const-string/jumbo v4, "simSerial"
30835 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30837 + :goto_28
30838 + return-object v5
30840 + :cond_29
30841 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getSimSerialNumber()Ljava/lang/String;
30843 + move-result-object v5
30845 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30847 + const/4 v3, 0x0
30849 + const-string/jumbo v4, "simSerial"
30851 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30853 + goto :goto_28
30854 +.end method
30856 +.method public getSubscriberId()Ljava/lang/String;
30857 + .registers 8
30859 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30861 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30863 + move-result-object v1
30865 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
30867 + move-result v2
30869 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30871 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
30873 + move-result-object v6
30875 + const-string v0, "PrivacyTelephonyManager"
30877 + new-instance v3, Ljava/lang/StringBuilder;
30879 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
30881 + const-string v4, "getSubscriberId() - "
30883 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30885 + move-result-object v3
30887 + iget-object v4, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30889 + invoke-virtual {v4}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30891 + move-result-object v4
30893 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30895 + move-result-object v3
30897 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
30899 + move-result-object v3
30901 + invoke-static {v0, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
30903 + if-eqz v6, :cond_47
30905 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getSubscriberIdSetting()B
30907 + move-result v0
30909 + if-eqz v0, :cond_47
30911 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getSubscriberId()Ljava/lang/String;
30913 + move-result-object v5
30915 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30917 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getSubscriberIdSetting()B
30919 + move-result v3
30921 + const-string/jumbo v4, "subscriberID"
30923 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30925 + :goto_46
30926 + return-object v5
30928 + :cond_47
30929 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getSubscriberId()Ljava/lang/String;
30931 + move-result-object v5
30933 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30935 + const/4 v3, 0x0
30937 + const-string/jumbo v4, "subscriberID"
30939 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30941 + goto :goto_46
30942 +.end method
30944 +.method public getVoiceMailAlphaTag()Ljava/lang/String;
30945 + .registers 2
30947 + invoke-virtual {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getVoiceMailNumber()Ljava/lang/String;
30949 + move-result-object v0
30951 + return-object v0
30952 +.end method
30954 +.method public getVoiceMailNumber()Ljava/lang/String;
30955 + .registers 8
30957 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30959 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30961 + move-result-object v1
30963 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
30965 + move-result v2
30967 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30969 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
30971 + move-result-object v6
30973 + if-eqz v6, :cond_28
30975 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLine1NumberSetting()B
30977 + move-result v0
30979 + if-eqz v0, :cond_28
30981 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLine1Number()Ljava/lang/String;
30983 + move-result-object v5
30985 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30987 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLine1NumberSetting()B
30989 + move-result v3
30991 + const-string v4, "line1Number"
30993 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30995 + :goto_27
30996 + return-object v5
30998 + :cond_28
30999 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getVoiceMailNumber()Ljava/lang/String;
31001 + move-result-object v5
31003 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31005 + const/4 v3, 0x0
31007 + const-string v4, "line1Number"
31009 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31011 + goto :goto_27
31012 +.end method
31014 +.method public listen(Landroid/telephony/PhoneStateListener;I)V
31015 + .registers 5
31017 + and-int/lit8 v1, p2, 0x10
31019 + if-nez v1, :cond_8
31021 + and-int/lit8 v1, p2, 0x20
31023 + if-eqz v1, :cond_29
31025 + :cond_8
31026 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
31028 + if-eqz v1, :cond_27
31030 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
31032 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31034 + move-result-object v0
31036 + :goto_12
31037 + if-eqz v0, :cond_1c
31039 + invoke-virtual {p1, v0}, Landroid/telephony/PhoneStateListener;->setPackageName(Ljava/lang/String;)V
31041 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
31043 + invoke-virtual {p1, v1}, Landroid/telephony/PhoneStateListener;->setContext(Landroid/content/Context;)V
31045 + :cond_1c
31046 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31048 + move-result v1
31050 + invoke-virtual {p1, v1}, Landroid/telephony/PhoneStateListener;->setUid(I)V
31052 + invoke-super {p0, p1, p2}, Landroid/telephony/TelephonyManager;->listen(Landroid/telephony/PhoneStateListener;I)V
31054 + :goto_26
31055 + return-void
31057 + :cond_27
31058 + const/4 v0, 0x0
31060 + goto :goto_12
31062 + :cond_29
31063 + invoke-super {p0, p1, p2}, Landroid/telephony/TelephonyManager;->listen(Landroid/telephony/PhoneStateListener;I)V
31065 + goto :goto_26
31066 +.end method
31067 diff -Npru stock-framework/smali/android/privacy/surrogate/PrivacyWifiManager.smali opd-framework/smali/android/privacy/surrogate/PrivacyWifiManager.smali
31068 --- stock-framework/smali/android/privacy/surrogate/PrivacyWifiManager.smali 1969-12-31 18:00:00.000000000 -0600
31069 +++ opd-framework/smali/android/privacy/surrogate/PrivacyWifiManager.smali 2013-01-09 02:52:41.667525634 -0600
31070 @@ -0,0 +1,1097 @@
31071 +.class public Landroid/privacy/surrogate/PrivacyWifiManager;
31072 +.super Landroid/net/wifi/WifiManager;
31073 +.source "PrivacyWifiManager.java"
31076 +# static fields
31077 +.field private static final P_TAG:Ljava/lang/String; = "PrivacyWifiManager"
31080 +# instance fields
31081 +.field private context:Landroid/content/Context;
31083 +.field private pSetMan:Landroid/privacy/PrivacySettingsManager;
31086 +# direct methods
31087 +.method public constructor <init>(Landroid/content/Context;Landroid/net/wifi/IWifiManager;)V
31088 + .registers 5
31090 + invoke-direct {p0, p1, p2}, Landroid/net/wifi/WifiManager;-><init>(Landroid/content/Context;Landroid/net/wifi/IWifiManager;)V
31092 + iput-object p1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31094 + new-instance v0, Landroid/privacy/PrivacySettingsManager;
31096 + const-string/jumbo v1, "privacy"
31098 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
31100 + move-result-object v1
31102 + invoke-static {v1}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
31104 + move-result-object v1
31106 + invoke-direct {v0, p1, v1}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
31108 + iput-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31110 + return-void
31111 +.end method
31114 +# virtual methods
31115 +.method public getConfigFile()Ljava/lang/String;
31116 + .registers 9
31118 + const/4 v2, -0x1
31120 + const/4 v5, 0x0
31122 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31124 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31126 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31128 + move-result-object v1
31130 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31132 + move-result v3
31134 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31136 + move-result-object v7
31138 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31140 + if-eqz v0, :cond_31
31142 + if-eqz v7, :cond_31
31144 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
31146 + move-result v0
31148 + if-eqz v0, :cond_31
31150 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31152 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31154 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31156 + move-result-object v1
31158 + const/4 v3, 0x1
31160 + const-string/jumbo v4, "wifiInfo"
31162 + move-object v6, v5
31164 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31166 + const-string v0, ""
31168 + :goto_30
31169 + return-object v0
31171 + :cond_31
31172 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31174 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31176 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31178 + move-result-object v1
31180 + const/4 v3, 0x0
31182 + const-string/jumbo v4, "wifiInfo"
31184 + move-object v6, v5
31186 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31188 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->getConfigFile()Ljava/lang/String;
31190 + move-result-object v0
31192 + goto :goto_30
31193 +.end method
31195 +.method public getConfiguredNetworks()Ljava/util/List;
31196 + .registers 10
31197 + .annotation system Ldalvik/annotation/Signature;
31198 + value = {
31199 + "()",
31200 + "Ljava/util/List",
31201 + "<",
31202 + "Landroid/net/wifi/WifiConfiguration;",
31203 + ">;"
31205 + .end annotation
31207 + const/4 v2, -0x1
31209 + const/4 v5, 0x0
31211 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31213 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31215 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31217 + move-result-object v1
31219 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31221 + move-result v3
31223 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31225 + move-result-object v8
31227 + new-instance v7, Ljava/util/ArrayList;
31229 + invoke-direct {v7}, Ljava/util/ArrayList;-><init>()V
31231 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31233 + if-eqz v0, :cond_34
31235 + if-eqz v8, :cond_34
31237 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
31239 + move-result v0
31241 + if-eqz v0, :cond_34
31243 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31245 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31247 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31249 + move-result-object v1
31251 + const/4 v3, 0x1
31253 + const-string/jumbo v4, "wifiInfo"
31255 + move-object v6, v5
31257 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31259 + :goto_33
31260 + return-object v7
31262 + :cond_34
31263 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31265 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31267 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31269 + move-result-object v1
31271 + const/4 v3, 0x0
31273 + const-string/jumbo v4, "wifiInfo"
31275 + move-object v6, v5
31277 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31279 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->getConfiguredNetworks()Ljava/util/List;
31281 + move-result-object v7
31283 + goto :goto_33
31284 +.end method
31286 +.method public getConnectionInfo()Landroid/net/wifi/WifiInfo;
31287 + .registers 10
31289 + const/4 v3, 0x1
31291 + const/4 v2, -0x1
31293 + const/4 v5, 0x0
31295 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31297 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31299 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31301 + move-result-object v1
31303 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31305 + move-result v4
31307 + invoke-virtual {v0, v1, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31309 + move-result-object v8
31311 + new-instance v7, Landroid/net/wifi/WifiInfo;
31313 + invoke-direct {v7, v3}, Landroid/net/wifi/WifiInfo;-><init>(Z)V
31315 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31317 + if-eqz v0, :cond_34
31319 + if-eqz v8, :cond_34
31321 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
31323 + move-result v0
31325 + if-eqz v0, :cond_34
31327 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31329 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31331 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31333 + move-result-object v1
31335 + const-string/jumbo v4, "wifiInfo"
31337 + move-object v6, v5
31339 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31341 + :goto_33
31342 + return-object v7
31344 + :cond_34
31345 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31347 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31349 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31351 + move-result-object v1
31353 + const/4 v3, 0x0
31355 + const-string/jumbo v4, "wifiInfo"
31357 + move-object v6, v5
31359 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31361 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->getConnectionInfo()Landroid/net/wifi/WifiInfo;
31363 + move-result-object v7
31365 + goto :goto_33
31366 +.end method
31368 +.method public getDhcpInfo()Landroid/net/DhcpInfo;
31369 + .registers 9
31371 + const/4 v2, -0x1
31373 + const/4 v5, 0x0
31375 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31377 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31379 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31381 + move-result-object v1
31383 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31385 + move-result v3
31387 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31389 + move-result-object v7
31391 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31393 + if-eqz v0, :cond_34
31395 + if-eqz v7, :cond_34
31397 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
31399 + move-result v0
31401 + if-eqz v0, :cond_34
31403 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31405 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31407 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31409 + move-result-object v1
31411 + const/4 v3, 0x1
31413 + const-string/jumbo v4, "wifiInfo"
31415 + move-object v6, v5
31417 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31419 + new-instance v0, Landroid/net/DhcpInfo;
31421 + invoke-direct {v0}, Landroid/net/DhcpInfo;-><init>()V
31423 + :goto_33
31424 + return-object v0
31426 + :cond_34
31427 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31429 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31431 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31433 + move-result-object v1
31435 + const/4 v3, 0x0
31437 + const-string/jumbo v4, "wifiInfo"
31439 + move-object v6, v5
31441 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31443 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->getDhcpInfo()Landroid/net/DhcpInfo;
31445 + move-result-object v0
31447 + goto :goto_33
31448 +.end method
31450 +.method public getFrequencyBand()I
31451 + .registers 9
31453 + const/4 v2, -0x1
31455 + const/4 v5, 0x0
31457 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31459 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31461 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31463 + move-result-object v1
31465 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31467 + move-result v3
31469 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31471 + move-result-object v7
31473 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31475 + if-eqz v0, :cond_2f
31477 + if-eqz v7, :cond_2f
31479 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
31481 + move-result v0
31483 + if-eqz v0, :cond_2f
31485 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31487 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31489 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31491 + move-result-object v1
31493 + const/4 v3, 0x1
31495 + const-string/jumbo v4, "wifiInfo"
31497 + move-object v6, v5
31499 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31501 + :goto_2e
31502 + return v2
31504 + :cond_2f
31505 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31507 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31509 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31511 + move-result-object v1
31513 + const/4 v3, 0x0
31515 + const-string/jumbo v4, "wifiInfo"
31517 + move-object v6, v5
31519 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31521 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->getFrequencyBand()I
31523 + move-result v2
31525 + goto :goto_2e
31526 +.end method
31528 +.method public getScanResults()Ljava/util/List;
31529 + .registers 10
31530 + .annotation system Ldalvik/annotation/Signature;
31531 + value = {
31532 + "()",
31533 + "Ljava/util/List",
31534 + "<",
31535 + "Landroid/net/wifi/ScanResult;",
31536 + ">;"
31538 + .end annotation
31540 + const/4 v2, -0x1
31542 + const/4 v5, 0x0
31544 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31546 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31548 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31550 + move-result-object v1
31552 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31554 + move-result v3
31556 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31558 + move-result-object v8
31560 + new-instance v7, Ljava/util/ArrayList;
31562 + invoke-direct {v7}, Ljava/util/ArrayList;-><init>()V
31564 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31566 + if-eqz v0, :cond_34
31568 + if-eqz v8, :cond_34
31570 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
31572 + move-result v0
31574 + if-eqz v0, :cond_34
31576 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31578 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31580 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31582 + move-result-object v1
31584 + const/4 v3, 0x1
31586 + const-string/jumbo v4, "wifiInfo"
31588 + move-object v6, v5
31590 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31592 + :goto_33
31593 + return-object v7
31595 + :cond_34
31596 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31598 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31600 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31602 + move-result-object v1
31604 + const/4 v3, 0x0
31606 + const-string/jumbo v4, "wifiInfo"
31608 + move-object v6, v5
31610 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31612 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->getScanResults()Ljava/util/List;
31614 + move-result-object v7
31616 + goto :goto_33
31617 +.end method
31619 +.method public getWifiApConfiguration()Landroid/net/wifi/WifiConfiguration;
31620 + .registers 9
31622 + const/4 v2, -0x1
31624 + const/4 v5, 0x0
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 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31636 + move-result v3
31638 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31640 + move-result-object v7
31642 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31644 + if-eqz v0, :cond_34
31646 + if-eqz v7, :cond_34
31648 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
31650 + move-result v0
31652 + if-eqz v0, :cond_34
31654 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31656 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31658 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31660 + move-result-object v1
31662 + const/4 v3, 0x1
31664 + const-string/jumbo v4, "wifiInfo"
31666 + move-object v6, v5
31668 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31670 + new-instance v0, Landroid/net/wifi/WifiConfiguration;
31672 + invoke-direct {v0}, Landroid/net/wifi/WifiConfiguration;-><init>()V
31674 + :goto_33
31675 + return-object v0
31677 + :cond_34
31678 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31680 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31682 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31684 + move-result-object v1
31686 + const/4 v3, 0x0
31688 + const-string/jumbo v4, "wifiInfo"
31690 + move-object v6, v5
31692 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31694 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->getWifiApConfiguration()Landroid/net/wifi/WifiConfiguration;
31696 + move-result-object v0
31698 + goto :goto_33
31699 +.end method
31701 +.method public getWifiState()I
31702 + .registers 9
31704 + const/4 v3, 0x1
31706 + const/4 v2, -0x1
31708 + const/4 v5, 0x0
31710 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31712 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31714 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31716 + move-result-object v1
31718 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31720 + move-result v4
31722 + invoke-virtual {v0, v1, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31724 + move-result-object v7
31726 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31728 + if-eqz v0, :cond_30
31730 + if-eqz v7, :cond_30
31732 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getForceOnlineState()B
31734 + move-result v0
31736 + if-nez v0, :cond_30
31738 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31740 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31742 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31744 + move-result-object v1
31746 + const-string/jumbo v4, "wifiInfo"
31748 + move-object v6, v5
31750 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31752 + const/4 v0, 0x3
31754 + :goto_2f
31755 + return v0
31757 + :cond_30
31758 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31760 + if-eqz v0, :cond_4d
31762 + if-eqz v7, :cond_4d
31764 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
31766 + move-result v0
31768 + if-eqz v0, :cond_4d
31770 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31772 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31774 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31776 + move-result-object v1
31778 + const-string/jumbo v4, "wifiInfo"
31780 + move-object v6, v5
31782 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31784 + const/4 v0, 0x4
31786 + goto :goto_2f
31788 + :cond_4d
31789 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31791 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31793 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31795 + move-result-object v1
31797 + const/4 v3, 0x0
31799 + const-string/jumbo v4, "wifiInfo"
31801 + move-object v6, v5
31803 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31805 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->getWifiState()I
31807 + move-result v0
31809 + goto :goto_2f
31810 +.end method
31812 +.method public isWifiEnabled()Z
31813 + .registers 10
31815 + const/4 v8, 0x0
31817 + const/4 v3, 0x1
31819 + const/4 v2, -0x1
31821 + const/4 v5, 0x0
31823 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31825 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31827 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31829 + move-result-object v1
31831 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31833 + move-result v4
31835 + invoke-virtual {v0, v1, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31837 + move-result-object v7
31839 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31841 + if-eqz v0, :cond_30
31843 + if-eqz v7, :cond_30
31845 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getForceOnlineState()B
31847 + move-result v0
31849 + if-nez v0, :cond_30
31851 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31853 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31855 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31857 + move-result-object v1
31859 + const-string/jumbo v4, "wifiInfo"
31861 + move-object v6, v5
31863 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31865 + :goto_2f
31866 + return v3
31868 + :cond_30
31869 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31871 + if-eqz v0, :cond_4d
31873 + if-eqz v7, :cond_4d
31875 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
31877 + move-result v0
31879 + if-eqz v0, :cond_4d
31881 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31883 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31885 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31887 + move-result-object v1
31889 + const-string/jumbo v4, "wifiInfo"
31891 + move-object v6, v5
31893 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31895 + move v3, v8
31897 + goto :goto_2f
31899 + :cond_4d
31900 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31902 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31904 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31906 + move-result-object v1
31908 + const-string/jumbo v4, "wifiInfo"
31910 + move v3, v8
31912 + move-object v6, v5
31914 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31916 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->isWifiEnabled()Z
31918 + move-result v3
31920 + goto :goto_2f
31921 +.end method
31923 +.method public setWifiEnabled(Z)Z
31924 + .registers 11
31926 + const/4 v8, 0x0
31928 + const/4 v2, -0x1
31930 + const/4 v5, 0x0
31932 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31934 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31936 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31938 + move-result-object v1
31940 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31942 + move-result v3
31944 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31946 + move-result-object v7
31948 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31950 + if-eqz v0, :cond_31
31952 + if-eqz v7, :cond_31
31954 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getSwitchWifiStateSetting()B
31956 + move-result v0
31958 + if-eqz v0, :cond_31
31960 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31962 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31964 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31966 + move-result-object v1
31968 + const/4 v3, 0x1
31970 + const-string/jumbo v4, "switchWifiState"
31972 + move-object v6, v5
31974 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31976 + move v0, v8
31978 + :goto_30
31979 + return v0
31981 + :cond_31
31982 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31984 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31986 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31988 + move-result-object v1
31990 + const-string/jumbo v4, "switchWifiState"
31992 + move v3, v8
31994 + move-object v6, v5
31996 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31998 + invoke-super {p0, p1}, Landroid/net/wifi/WifiManager;->setWifiEnabled(Z)Z
32000 + move-result v0
32002 + goto :goto_30
32003 +.end method
32005 +.method public startScan()Z
32006 + .registers 10
32008 + const/4 v8, 0x0
32010 + const/4 v2, -0x1
32012 + const/4 v5, 0x0
32014 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32016 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
32018 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
32020 + move-result-object v1
32022 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
32024 + move-result v3
32026 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
32028 + move-result-object v7
32030 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32032 + if-eqz v0, :cond_31
32034 + if-eqz v7, :cond_31
32036 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
32038 + move-result v0
32040 + if-eqz v0, :cond_31
32042 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32044 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
32046 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
32048 + move-result-object v1
32050 + const/4 v3, 0x1
32052 + const-string/jumbo v4, "wifiInfo"
32054 + move-object v6, v5
32056 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
32058 + move v0, v8
32060 + :goto_30
32061 + return v0
32063 + :cond_31
32064 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32066 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
32068 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
32070 + move-result-object v1
32072 + const-string/jumbo v4, "wifiInfo"
32074 + move v3, v8
32076 + move-object v6, v5
32078 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
32080 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->startScan()Z
32082 + move-result v0
32084 + goto :goto_30
32085 +.end method
32087 +.method public startScanActive()Z
32088 + .registers 10
32090 + const/4 v8, 0x0
32092 + const/4 v2, -0x1
32094 + const/4 v5, 0x0
32096 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32098 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
32100 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
32102 + move-result-object v1
32104 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
32106 + move-result v3
32108 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
32110 + move-result-object v7
32112 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32114 + if-eqz v0, :cond_31
32116 + if-eqz v7, :cond_31
32118 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
32120 + move-result v0
32122 + if-eqz v0, :cond_31
32124 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32126 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
32128 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
32130 + move-result-object v1
32132 + const/4 v3, 0x1
32134 + const-string/jumbo v4, "wifiInfo"
32136 + move-object v6, v5
32138 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
32140 + move v0, v8
32142 + :goto_30
32143 + return v0
32145 + :cond_31
32146 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32148 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
32150 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
32152 + move-result-object v1
32154 + const-string/jumbo v4, "wifiInfo"
32156 + move v3, v8
32158 + move-object v6, v5
32160 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
32162 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->startScanActive()Z
32164 + move-result v0
32166 + goto :goto_30
32167 +.end method
32168 diff -Npru stock-framework/smali/android/provider/Settings$Secure.smali opd-framework/smali/android/provider/Settings$Secure.smali
32169 --- stock-framework/smali/android/provider/Settings$Secure.smali 2013-01-09 02:53:02.091626905 -0600
32170 +++ opd-framework/smali/android/provider/Settings$Secure.smali 2013-01-09 02:52:41.831526444 -0600
32171 @@ -196,6 +196,8 @@
32173 .field public static final PREFERRED_TTY_MODE:Ljava/lang/String; = "preferred_tty_mode"
32175 +.field private static final PRIVACY_TAG:Ljava/lang/String; = "PM,SecureSettings"
32177 .field public static final SCREENSAVER_ACTIVATE_ON_DOCK:Ljava/lang/String; = "screensaver_activate_on_dock"
32179 .field public static final SCREENSAVER_ACTIVATE_ON_SLEEP:Ljava/lang/String; = "screensaver_activate_on_sleep"
32180 @@ -405,6 +407,14 @@
32181 .end annotation
32182 .end field
32184 +.field private static context:Landroid/content/Context;
32186 +.field private static mPm:Landroid/content/pm/IPackageManager;
32188 +.field private static pSetMan:Landroid/privacy/PrivacySettingsManager;
32190 +.field private static privacyMode:Z
32192 .field private static sIsSystemProcess:Z
32194 .field private static sLockSettings:Lcom/android/internal/widget/ILockSettings;
32195 @@ -414,9 +424,11 @@
32197 # direct methods
32198 .method static constructor <clinit>()V
32199 - .registers 6
32200 + .registers 7
32202 + const/4 v6, 0x3
32204 - const/4 v5, 0x3
32205 + const/4 v5, 0x0
32207 const-string v0, "content://settings/secure"
32209 @@ -446,7 +458,7 @@
32211 new-instance v0, Ljava/util/HashSet;
32213 - invoke-direct {v0, v5}, Ljava/util/HashSet;-><init>(I)V
32214 + invoke-direct {v0, v6}, Ljava/util/HashSet;-><init>(I)V
32216 sput-object v0, Landroid/provider/Settings$Secure;->MOVED_TO_LOCK_SETTINGS:Ljava/util/HashSet;
32218 @@ -1188,15 +1200,15 @@
32220 invoke-virtual {v0, v1}, Ljava/util/HashSet;->add(Ljava/lang/Object;)Z
32222 + sput-boolean v5, Landroid/provider/Settings$Secure;->privacyMode:Z
32224 const/16 v0, 0x21
32226 new-array v0, v0, [Ljava/lang/String;
32228 - const/4 v1, 0x0
32230 - const-string v2, "bugreport_in_power_menu"
32231 + const-string v1, "bugreport_in_power_menu"
32233 - aput-object v2, v0, v1
32234 + aput-object v1, v0, v5
32236 const/4 v1, 0x1
32238 @@ -1212,7 +1224,7 @@
32240 const-string/jumbo v1, "parental_control_redirect_url"
32242 - aput-object v1, v0, v5
32243 + aput-object v1, v0, v6
32245 const/4 v1, 0x4
32247 @@ -1705,6 +1717,70 @@
32248 return-void
32249 .end method
32251 +.method private static getPackageName()[Ljava/lang/String;
32252 + .registers 5
32254 + :try_start_0
32255 + sget-object v3, Landroid/provider/Settings$Secure;->mPm:Landroid/content/pm/IPackageManager;
32257 + if-eqz v3, :cond_f
32259 + invoke-static {}, Landroid/os/Process;->myUid()I
32261 + move-result v2
32263 + sget-object v3, Landroid/provider/Settings$Secure;->mPm:Landroid/content/pm/IPackageManager;
32265 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
32267 + move-result-object v1
32269 + :goto_e
32270 + return-object v1
32272 + :cond_f
32273 + const-string/jumbo v3, "package"
32275 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
32277 + move-result-object v3
32279 + invoke-static {v3}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
32281 + move-result-object v3
32283 + sput-object v3, Landroid/provider/Settings$Secure;->mPm:Landroid/content/pm/IPackageManager;
32285 + invoke-static {}, Landroid/os/Process;->myUid()I
32287 + move-result v2
32289 + sget-object v3, Landroid/provider/Settings$Secure;->mPm:Landroid/content/pm/IPackageManager;
32291 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
32292 + :try_end_25
32293 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_25} :catch_27
32295 + move-result-object v1
32297 + goto :goto_e
32299 + :catch_27
32300 + move-exception v0
32302 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
32304 + const-string v3, "PM,SecureSettings"
32306 + const-string/jumbo v4, "something went wrong with getting package name"
32308 + invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
32310 + const/4 v1, 0x0
32312 + goto :goto_e
32313 +.end method
32315 .method public static getString(Landroid/content/ContentResolver;Ljava/lang/String;)Ljava/lang/String;
32316 .registers 3
32318 @@ -1720,152 +1796,392 @@
32319 .end method
32321 .method public static getStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)Ljava/lang/String;
32322 - .registers 6
32323 + .registers 23
32325 - sget-object v0, Landroid/provider/Settings$Secure;->MOVED_TO_GLOBAL:Ljava/util/HashSet;
32326 + sget-object v3, Landroid/provider/Settings$Secure;->MOVED_TO_GLOBAL:Ljava/util/HashSet;
32328 - invoke-virtual {v0, p1}, Ljava/util/HashSet;->contains(Ljava/lang/Object;)Z
32329 + move-object/from16 v0, p1
32331 - move-result v0
32332 + invoke-virtual {v3, v0}, Ljava/util/HashSet;->contains(Ljava/lang/Object;)Z
32334 - if-eqz v0, :cond_31
32335 + move-result v3
32337 - const-string v0, "Settings"
32338 + if-eqz v3, :cond_35
32340 - new-instance v1, Ljava/lang/StringBuilder;
32341 + const-string v3, "Settings"
32343 - invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
32344 + new-instance v4, Ljava/lang/StringBuilder;
32346 - const-string v2, "Setting "
32347 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
32349 - invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
32350 + const-string v5, "Setting "
32352 - move-result-object v1
32353 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
32355 - invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
32356 + move-result-object v4
32358 - move-result-object v1
32359 + move-object/from16 v0, p1
32361 - const-string v2, " has moved from android.provider.Settings.Secure"
32362 + invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
32364 - invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
32365 + move-result-object v4
32367 - move-result-object v1
32368 + const-string v5, " has moved from android.provider.Settings.Secure"
32370 - const-string v2, " to android.provider.Settings.Global."
32371 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
32373 - invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
32374 + move-result-object v4
32376 - move-result-object v1
32377 + const-string v5, " to android.provider.Settings.Global."
32379 - invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
32380 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
32382 - move-result-object v1
32383 + move-result-object v4
32385 - invoke-static {v0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
32386 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
32388 - invoke-static {p0, p1, p2}, Landroid/provider/Settings$Global;->getStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)Ljava/lang/String;
32389 + move-result-object v4
32391 - move-result-object v0
32392 + invoke-static {v3, v4}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
32394 - :goto_30
32395 - return-object v0
32396 + invoke-static/range {p0 .. p2}, Landroid/provider/Settings$Global;->getStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)Ljava/lang/String;
32398 - :cond_31
32399 - sget-object v0, Landroid/provider/Settings$Secure;->MOVED_TO_LOCK_SETTINGS:Ljava/util/HashSet;
32400 + move-result-object v8
32402 - invoke-virtual {v0, p1}, Ljava/util/HashSet;->contains(Ljava/lang/Object;)Z
32403 + :goto_34
32404 + return-object v8
32406 - move-result v0
32407 + :cond_35
32408 + sget-object v3, Landroid/provider/Settings$Secure;->MOVED_TO_LOCK_SETTINGS:Ljava/util/HashSet;
32410 - if-eqz v0, :cond_6f
32411 + move-object/from16 v0, p1
32413 - const-class v1, Landroid/provider/Settings$Secure;
32414 + invoke-virtual {v3, v0}, Ljava/util/HashSet;->contains(Ljava/lang/Object;)Z
32416 - monitor-enter v1
32417 + move-result v3
32419 - :try_start_3c
32420 - sget-object v0, Landroid/provider/Settings$Secure;->sLockSettings:Lcom/android/internal/widget/ILockSettings;
32421 + if-eqz v3, :cond_79
32423 - if-nez v0, :cond_57
32424 + const-class v4, Landroid/provider/Settings$Secure;
32426 - const-string v0, "lock_settings"
32427 + monitor-enter v4
32429 - invoke-static {v0}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
32430 + :try_start_42
32431 + sget-object v3, Landroid/provider/Settings$Secure;->sLockSettings:Lcom/android/internal/widget/ILockSettings;
32433 - move-result-object v0
32434 + if-nez v3, :cond_5d
32436 - invoke-static {v0}, Lcom/android/internal/widget/ILockSettings$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/widget/ILockSettings;
32437 + const-string v3, "lock_settings"
32439 - move-result-object v0
32440 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
32442 - sput-object v0, Landroid/provider/Settings$Secure;->sLockSettings:Lcom/android/internal/widget/ILockSettings;
32443 + move-result-object v3
32445 + invoke-static {v3}, Lcom/android/internal/widget/ILockSettings$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/widget/ILockSettings;
32447 + move-result-object v3
32449 + sput-object v3, Landroid/provider/Settings$Secure;->sLockSettings:Lcom/android/internal/widget/ILockSettings;
32451 invoke-static {}, Landroid/os/Process;->myUid()I
32453 - move-result v0
32454 + move-result v3
32456 - const/16 v2, 0x3e8
32457 + const/16 v5, 0x3e8
32459 - if-ne v0, v2, :cond_69
32460 + if-ne v3, v5, :cond_73
32462 - const/4 v0, 0x1
32463 + const/4 v3, 0x1
32465 - :goto_55
32466 - sput-boolean v0, Landroid/provider/Settings$Secure;->sIsSystemProcess:Z
32467 + :goto_5b
32468 + sput-boolean v3, Landroid/provider/Settings$Secure;->sIsSystemProcess:Z
32470 - :cond_57
32471 - monitor-exit v1
32472 - :try_end_58
32473 - .catchall {:try_start_3c .. :try_end_58} :catchall_6b
32474 + :cond_5d
32475 + monitor-exit v4
32476 + :try_end_5e
32477 + .catchall {:try_start_42 .. :try_end_5e} :catchall_75
32479 - sget-object v0, Landroid/provider/Settings$Secure;->sLockSettings:Lcom/android/internal/widget/ILockSettings;
32480 + sget-object v3, Landroid/provider/Settings$Secure;->sLockSettings:Lcom/android/internal/widget/ILockSettings;
32482 - if-eqz v0, :cond_6f
32483 + if-eqz v3, :cond_79
32485 - sget-boolean v0, Landroid/provider/Settings$Secure;->sIsSystemProcess:Z
32486 + sget-boolean v3, Landroid/provider/Settings$Secure;->sIsSystemProcess:Z
32488 - if-nez v0, :cond_6f
32489 + if-nez v3, :cond_79
32491 - :try_start_60
32492 - sget-object v0, Landroid/provider/Settings$Secure;->sLockSettings:Lcom/android/internal/widget/ILockSettings;
32493 + :try_start_66
32494 + sget-object v3, Landroid/provider/Settings$Secure;->sLockSettings:Lcom/android/internal/widget/ILockSettings;
32496 - const-string v1, "0"
32497 + const-string v4, "0"
32499 - invoke-interface {v0, p1, v1, p2}, Lcom/android/internal/widget/ILockSettings;->getString(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;
32500 - :try_end_67
32501 - .catch Landroid/os/RemoteException; {:try_start_60 .. :try_end_67} :catch_6e
32502 + move-object/from16 v0, p1
32504 - move-result-object v0
32505 + move/from16 v1, p2
32507 - goto :goto_30
32508 + invoke-interface {v3, v0, v4, v1}, Lcom/android/internal/widget/ILockSettings;->getString(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;
32509 + :try_end_71
32510 + .catch Landroid/os/RemoteException; {:try_start_66 .. :try_end_71} :catch_78
32512 - :cond_69
32513 - const/4 v0, 0x0
32514 + move-result-object v8
32516 - goto :goto_55
32517 + goto :goto_34
32519 - :catchall_6b
32520 - move-exception v0
32521 + :cond_73
32522 + const/4 v3, 0x0
32524 - :try_start_6c
32525 - monitor-exit v1
32526 - :try_end_6d
32527 - .catchall {:try_start_6c .. :try_end_6d} :catchall_6b
32528 + goto :goto_5b
32530 - throw v0
32531 + :catchall_75
32532 + move-exception v3
32534 - :catch_6e
32535 - move-exception v0
32536 + :try_start_76
32537 + monitor-exit v4
32538 + :try_end_77
32539 + .catchall {:try_start_76 .. :try_end_77} :catchall_75
32541 - :cond_6f
32542 - sget-object v0, Landroid/provider/Settings$Secure;->sNameValueCache:Landroid/provider/Settings$NameValueCache;
32543 + throw v3
32545 - invoke-virtual {v0, p0, p1, p2}, Landroid/provider/Settings$NameValueCache;->getStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)Ljava/lang/String;
32546 + :catch_78
32547 + move-exception v3
32549 - move-result-object v0
32550 + :cond_79
32551 + const-string v3, "android_id"
32553 + move-object/from16 v0, p1
32555 + invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
32557 + move-result v3
32559 + if-eqz v3, :cond_f7
32561 + invoke-static {}, Landroid/provider/Settings$Secure;->initiate()V
32563 + :try_start_86
32564 + sget-object v3, Landroid/provider/Settings$Secure;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32566 + if-nez v3, :cond_9e
32568 + new-instance v3, Landroid/privacy/PrivacySettingsManager;
32570 + sget-object v4, Landroid/provider/Settings$Secure;->context:Landroid/content/Context;
32572 + const-string/jumbo v5, "privacy"
32574 + invoke-static {v5}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
32576 + move-result-object v5
32578 + invoke-static {v5}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
32580 + move-result-object v5
32582 + invoke-direct {v3, v4, v5}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
32584 + sput-object v3, Landroid/provider/Settings$Secure;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32586 + :cond_9e
32587 + sget-object v3, Landroid/provider/Settings$Secure;->mPm:Landroid/content/pm/IPackageManager;
32589 + if-nez v3, :cond_af
32591 + const-string/jumbo v3, "package"
32593 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
32595 + move-result-object v3
32597 + invoke-static {v3}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
32599 + move-result-object v3
32601 + sput-object v3, Landroid/provider/Settings$Secure;->mPm:Landroid/content/pm/IPackageManager;
32603 + :cond_af
32604 + const/16 v19, 0x0
32606 + invoke-static {}, Landroid/provider/Settings$Secure;->getPackageName()[Ljava/lang/String;
32608 + move-result-object v18
32610 + if-eqz v18, :cond_13c
32612 + move-object/from16 v0, v18
32614 + array-length v3, v0
32616 + if-lez v3, :cond_13c
32618 - goto :goto_30
32619 + const/16 v17, 0x0
32621 + :goto_be
32622 + move-object/from16 v0, v18
32624 + array-length v3, v0
32626 + move/from16 v0, v17
32628 + if-ge v0, v3, :cond_f7
32630 + sget-object v3, Landroid/provider/Settings$Secure;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32632 + aget-object v4, v18, v17
32634 + invoke-virtual {v3, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
32636 + move-result-object v19
32638 + if-eqz v19, :cond_11c
32640 + invoke-virtual/range {v19 .. v19}, Landroid/privacy/PrivacySettings;->getAndroidIdSetting()B
32642 + move-result v3
32644 + if-eqz v3, :cond_11c
32646 + invoke-virtual/range {v19 .. v19}, Landroid/privacy/PrivacySettings;->getAndroidID()Ljava/lang/String;
32648 + move-result-object v8
32650 + if-eqz v8, :cond_105
32652 + sget-object v3, Landroid/provider/Settings$Secure;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32654 + aget-object v4, v18, v17
32656 + const/4 v5, 0x0
32658 + invoke-virtual/range {v19 .. v19}, Landroid/privacy/PrivacySettings;->getAndroidIdSetting()B
32660 + move-result v6
32662 + const-string v7, "android_id"
32664 + const/4 v9, 0x0
32666 + invoke-virtual/range {v3 .. v9}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
32667 + :try_end_ea
32668 + .catch Ljava/lang/Exception; {:try_start_86 .. :try_end_ea} :catch_ec
32670 + goto/16 :goto_34
32672 + :catch_ec
32673 + move-exception v16
32675 + invoke-virtual/range {v16 .. v16}, Ljava/lang/Exception;->printStackTrace()V
32677 + const-string v3, "PM,SecureSettings"
32679 + const-string v4, "Got exception in getString()"
32681 + invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
32683 + :cond_f7
32684 + :goto_f7
32685 + sget-object v3, Landroid/provider/Settings$Secure;->sNameValueCache:Landroid/provider/Settings$NameValueCache;
32687 + move-object/from16 v0, p0
32689 + move-object/from16 v1, p1
32691 + move/from16 v2, p2
32693 + invoke-virtual {v3, v0, v1, v2}, Landroid/provider/Settings$NameValueCache;->getStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)Ljava/lang/String;
32695 + move-result-object v8
32697 + goto/16 :goto_34
32699 + :cond_105
32700 + :try_start_105
32701 + sget-object v9, Landroid/provider/Settings$Secure;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32703 + aget-object v10, v18, v17
32705 + const/4 v11, 0x0
32707 + invoke-virtual/range {v19 .. v19}, Landroid/privacy/PrivacySettings;->getAndroidIdSetting()B
32709 + move-result v12
32711 + const-string v13, "android_id"
32713 + const-string/jumbo v14, "q4a5w896ay21dr46"
32715 + const/4 v15, 0x0
32717 + invoke-virtual/range {v9 .. v15}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
32719 + const-string/jumbo v8, "q4a5w896ay21dr46"
32721 + goto/16 :goto_34
32723 + :cond_11c
32724 + move-object/from16 v0, v18
32726 + array-length v3, v0
32728 + add-int/lit8 v3, v3, -0x1
32730 + move/from16 v0, v17
32732 + if-ne v0, v3, :cond_137
32734 + sget-object v9, Landroid/provider/Settings$Secure;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32736 + move-object/from16 v0, v18
32738 + array-length v3, v0
32740 + add-int/lit8 v3, v3, -0x1
32742 + aget-object v10, v18, v3
32744 + const/4 v11, 0x0
32746 + const/4 v12, 0x0
32748 + const-string v13, "android_id"
32750 + const/4 v14, 0x0
32752 + const/4 v15, 0x0
32754 + invoke-virtual/range {v9 .. v15}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
32756 + :cond_137
32757 + const/16 v19, 0x0
32759 + add-int/lit8 v17, v17, 0x1
32761 + goto :goto_be
32763 + :cond_13c
32764 + sget-object v9, Landroid/provider/Settings$Secure;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32766 + move-object/from16 v0, v18
32768 + array-length v3, v0
32770 + add-int/lit8 v3, v3, -0x1
32772 + aget-object v10, v18, v3
32774 + const/4 v11, 0x0
32776 + const/4 v12, 0x0
32778 + const-string v13, "android_id"
32780 + const/4 v14, 0x0
32782 + const/4 v15, 0x0
32784 + invoke-virtual/range {v9 .. v15}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
32785 + :try_end_14e
32786 + .catch Ljava/lang/Exception; {:try_start_105 .. :try_end_14e} :catch_ec
32788 + goto :goto_f7
32789 .end method
32791 .method public static getUriFor(Ljava/lang/String;)Landroid/net/Uri;
32792 @@ -1932,6 +2248,71 @@
32793 goto :goto_32
32794 .end method
32796 +.method private static initiate()V
32797 + .registers 4
32799 + const/4 v1, 0x0
32801 + :try_start_1
32802 + sput-object v1, Landroid/provider/Settings$Secure;->context:Landroid/content/Context;
32804 + new-instance v1, Landroid/privacy/PrivacySettingsManager;
32806 + sget-object v2, Landroid/provider/Settings$Secure;->context:Landroid/content/Context;
32808 + const-string/jumbo v3, "privacy"
32810 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
32812 + move-result-object v3
32814 + invoke-static {v3}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
32816 + move-result-object v3
32818 + invoke-direct {v1, v2, v3}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
32820 + sput-object v1, Landroid/provider/Settings$Secure;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32822 + const-string/jumbo v1, "package"
32824 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
32826 + move-result-object v1
32828 + invoke-static {v1}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
32830 + move-result-object v1
32832 + sput-object v1, Landroid/provider/Settings$Secure;->mPm:Landroid/content/pm/IPackageManager;
32834 + const/4 v1, 0x1
32836 + sput-boolean v1, Landroid/provider/Settings$Secure;->privacyMode:Z
32837 + :try_end_27
32838 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_27} :catch_28
32840 + :goto_27
32841 + return-void
32843 + :catch_28
32844 + move-exception v0
32846 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
32848 + const-string v1, "PM,SecureSettings"
32850 + const-string v2, "Something went wrong with initalize variables"
32852 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
32854 + const/4 v1, 0x0
32856 + sput-boolean v1, Landroid/provider/Settings$Secure;->privacyMode:Z
32858 + goto :goto_27
32859 +.end method
32861 .method public static final isLocationProviderEnabled(Landroid/content/ContentResolver;Ljava/lang/String;)Z
32862 .registers 3
32864 diff -Npru stock-framework/smali/android/service/wallpaper/WallpaperService$Engine.smali opd-framework/smali/android/service/wallpaper/WallpaperService$Engine.smali
32865 --- stock-framework/smali/android/service/wallpaper/WallpaperService$Engine.smali 2013-01-09 02:53:02.191627403 -0600
32866 +++ opd-framework/smali/android/service/wallpaper/WallpaperService$Engine.smali 2013-01-09 02:52:42.055527554 -0600
32867 @@ -842,7 +842,7 @@
32869 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
32871 - const-string v0, "mType="
32872 + const-string/jumbo v0, "mType="
32874 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
32876 @@ -944,7 +944,7 @@
32878 monitor-enter v1
32880 - :try_start_110
32881 + :try_start_111
32882 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
32884 const-string v0, "mPendingXOffset="
32885 @@ -1001,7 +1001,7 @@
32887 iget-object v0, p0, Landroid/service/wallpaper/WallpaperService$Engine;->mPendingMove:Landroid/view/MotionEvent;
32889 - if-eqz v0, :cond_166
32890 + if-eqz v0, :cond_167
32892 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
32894 @@ -1013,17 +1013,17 @@
32896 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->println(Ljava/lang/Object;)V
32898 - :cond_166
32899 + :cond_167
32900 monitor-exit v1
32902 return-void
32904 - :catchall_168
32905 + :catchall_169
32906 move-exception v0
32908 monitor-exit v1
32909 - :try_end_16a
32910 - .catchall {:try_start_110 .. :try_end_16a} :catchall_168
32911 + :try_end_16b
32912 + .catchall {:try_start_111 .. :try_end_16b} :catchall_169
32914 throw v0
32915 .end method
32916 diff -Npru stock-framework/smali/android/speech/srec/MicrophoneInputStream.smali opd-framework/smali/android/speech/srec/MicrophoneInputStream.smali
32917 --- stock-framework/smali/android/speech/srec/MicrophoneInputStream.smali 2013-01-09 02:53:02.199627443 -0600
32918 +++ opd-framework/smali/android/speech/srec/MicrophoneInputStream.smali 2013-01-09 02:52:42.067527618 -0600
32919 @@ -4,14 +4,30 @@
32922 # static fields
32923 +.field private static final GOT_ERROR:I = -0x3
32925 +.field private static final IS_ALLOWED:I = -0x1
32927 +.field private static final IS_NOT_ALLOWED:I = -0x2
32929 +.field private static final PRIVACY_TAG:Ljava/lang/String; = "PM,MicrophoneInputStream"
32931 .field private static final TAG:Ljava/lang/String; = "MicrophoneInputStream"
32934 # instance fields
32935 +.field private context:Landroid/content/Context;
32937 .field private mAudioRecord:I
32939 .field private mOneByte:[B
32941 +.field private mPm:Landroid/content/pm/IPackageManager;
32943 +.field private pSetMan:Landroid/privacy/PrivacySettingsManager;
32945 +.field private privacyMode:Z
32948 # direct methods
32949 .method static constructor <clinit>()V
32950 @@ -25,79 +41,167 @@
32951 .end method
32953 .method public constructor <init>(II)V
32954 - .registers 7
32955 + .registers 14
32956 .annotation system Ldalvik/annotation/Throws;
32957 value = {
32958 Ljava/io/IOException;
32960 .end annotation
32962 + const/4 v5, 0x0
32964 + const/4 v3, 0x1
32966 + const/4 v2, 0x0
32968 invoke-direct {p0}, Ljava/io/InputStream;-><init>()V
32970 - const/4 v1, 0x0
32971 + iput-boolean v2, p0, Landroid/speech/srec/MicrophoneInputStream;->privacyMode:Z
32973 - iput v1, p0, Landroid/speech/srec/MicrophoneInputStream;->mAudioRecord:I
32974 + iput v2, p0, Landroid/speech/srec/MicrophoneInputStream;->mAudioRecord:I
32976 - const/4 v1, 0x1
32977 + new-array v0, v3, [B
32979 - new-array v1, v1, [B
32980 + iput-object v0, p0, Landroid/speech/srec/MicrophoneInputStream;->mOneByte:[B
32982 - iput-object v1, p0, Landroid/speech/srec/MicrophoneInputStream;->mOneByte:[B
32983 + iget-boolean v0, p0, Landroid/speech/srec/MicrophoneInputStream;->privacyMode:Z
32985 - invoke-static {p1, p2}, Landroid/speech/srec/MicrophoneInputStream;->AudioRecordNew(II)I
32986 + if-nez v0, :cond_15
32988 + invoke-direct {p0}, Landroid/speech/srec/MicrophoneInputStream;->initiate()V
32990 + :cond_15
32991 + invoke-direct {p0}, Landroid/speech/srec/MicrophoneInputStream;->checkIfPackagesAllowed()I
32993 + move-result v0
32995 + const/4 v1, -0x2
32997 + if-ne v0, v1, :cond_43
32999 + invoke-direct {p0, v2}, Landroid/speech/srec/MicrophoneInputStream;->dataAccess(Z)V
33001 + invoke-direct {p0}, Landroid/speech/srec/MicrophoneInputStream;->getPackageName()[Ljava/lang/String;
33003 + move-result-object v7
33005 + if-eqz v7, :cond_3b
33007 + iget-object v0, p0, Landroid/speech/srec/MicrophoneInputStream;->pSetMan:Landroid/privacy/PrivacySettingsManager;
33009 + aget-object v1, v7, v2
33011 + const-string/jumbo v4, "recordAudio"
33013 - move-result v1
33014 + iget-object v6, p0, Landroid/speech/srec/MicrophoneInputStream;->pSetMan:Landroid/privacy/PrivacySettingsManager;
33016 - iput v1, p0, Landroid/speech/srec/MicrophoneInputStream;->mAudioRecord:I
33017 + aget-object v9, v7, v2
33019 - iget v1, p0, Landroid/speech/srec/MicrophoneInputStream;->mAudioRecord:I
33020 + invoke-static {}, Landroid/os/Process;->myUid()I
33022 - if-nez v1, :cond_1d
33023 + move-result v10
33025 - new-instance v1, Ljava/io/IOException;
33026 + invoke-virtual {v6, v9, v10}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
33028 - const-string v2, "AudioRecord constructor failed - busy?"
33029 + move-result-object v6
33031 - invoke-direct {v1, v2}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
33032 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
33034 - throw v1
33035 + :cond_3b
33036 + new-instance v0, Ljava/io/IOException;
33038 - :cond_1d
33039 - iget v1, p0, Landroid/speech/srec/MicrophoneInputStream;->mAudioRecord:I
33040 + const-string v1, "AudioRecord constructor failed - busy?"
33042 - invoke-static {v1}, Landroid/speech/srec/MicrophoneInputStream;->AudioRecordStart(I)I
33043 + invoke-direct {v0, v1}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
33045 + throw v0
33047 + :cond_43
33048 + invoke-direct {p0, v3}, Landroid/speech/srec/MicrophoneInputStream;->dataAccess(Z)V
33050 + invoke-direct {p0}, Landroid/speech/srec/MicrophoneInputStream;->getPackageName()[Ljava/lang/String;
33052 + move-result-object v7
33054 + if-eqz v7, :cond_63
33056 + iget-object v0, p0, Landroid/speech/srec/MicrophoneInputStream;->pSetMan:Landroid/privacy/PrivacySettingsManager;
33058 + aget-object v1, v7, v2
33060 + const-string/jumbo v4, "recordAudio"
33062 + iget-object v3, p0, Landroid/speech/srec/MicrophoneInputStream;->pSetMan:Landroid/privacy/PrivacySettingsManager;
33064 + aget-object v6, v7, v2
33066 + invoke-static {}, Landroid/os/Process;->myUid()I
33068 + move-result v9
33070 + invoke-virtual {v3, v6, v9}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
33072 + move-result-object v6
33074 + move v3, v2
33076 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
33078 + :cond_63
33079 + invoke-static {p1, p2}, Landroid/speech/srec/MicrophoneInputStream;->AudioRecordNew(II)I
33081 move-result v0
33083 - if-eqz v0, :cond_41
33084 + iput v0, p0, Landroid/speech/srec/MicrophoneInputStream;->mAudioRecord:I
33086 + iget v0, p0, Landroid/speech/srec/MicrophoneInputStream;->mAudioRecord:I
33088 + if-nez v0, :cond_75
33090 + new-instance v0, Ljava/io/IOException;
33092 + const-string v1, "AudioRecord constructor failed - busy?"
33094 + invoke-direct {v0, v1}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
33096 + throw v0
33098 + :cond_75
33099 + iget v0, p0, Landroid/speech/srec/MicrophoneInputStream;->mAudioRecord:I
33101 + invoke-static {v0}, Landroid/speech/srec/MicrophoneInputStream;->AudioRecordStart(I)I
33103 + move-result v8
33105 + if-eqz v8, :cond_99
33107 invoke-virtual {p0}, Landroid/speech/srec/MicrophoneInputStream;->close()V
33109 - new-instance v1, Ljava/io/IOException;
33110 + new-instance v0, Ljava/io/IOException;
33112 - new-instance v2, Ljava/lang/StringBuilder;
33113 + new-instance v1, Ljava/lang/StringBuilder;
33115 - invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
33116 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
33118 - const-string v3, "AudioRecord start failed: "
33119 + const-string v2, "AudioRecord start failed: "
33121 - invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
33122 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
33124 - move-result-object v2
33125 + move-result-object v1
33127 - invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
33128 + invoke-virtual {v1, v8}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
33130 - move-result-object v2
33131 + move-result-object v1
33133 - invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
33134 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
33136 - move-result-object v2
33137 + move-result-object v1
33139 - invoke-direct {v1, v2}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
33140 + invoke-direct {v0, v1}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
33142 - throw v1
33143 + throw v0
33145 - :cond_41
33146 + :cond_99
33147 return-void
33148 .end method
33150 @@ -131,6 +235,334 @@
33151 .end annotation
33152 .end method
33154 +.method private checkIfPackagesAllowed()I
33155 + .registers 9
33157 + const/4 v5, -0x3
33159 + :try_start_1
33160 + iget-object v6, p0, Landroid/speech/srec/MicrophoneInputStream;->pSetMan:Landroid/privacy/PrivacySettingsManager;
33162 + if-eqz v6, :cond_41
33164 + const/4 v2, 0x0
33166 + invoke-direct {p0}, Landroid/speech/srec/MicrophoneInputStream;->getPackageName()[Ljava/lang/String;
33168 + move-result-object v3
33170 + invoke-static {}, Landroid/os/Process;->myUid()I
33172 + move-result v4
33174 + if-eqz v3, :cond_2c
33176 + const/4 v1, 0x0
33178 + :goto_11
33179 + array-length v6, v3
33181 + if-ge v1, v6, :cond_2a
33183 + iget-object v6, p0, Landroid/speech/srec/MicrophoneInputStream;->pSetMan:Landroid/privacy/PrivacySettingsManager;
33185 + aget-object v7, v3, v1
33187 + invoke-virtual {v6, v7, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
33189 + move-result-object v2
33191 + if-eqz v2, :cond_26
33193 + invoke-virtual {v2}, Landroid/privacy/PrivacySettings;->getRecordAudioSetting()B
33195 + move-result v6
33197 + if-eqz v6, :cond_26
33199 + const/4 v5, -0x2
33201 + :goto_25
33202 + return v5
33204 + :cond_26
33205 + const/4 v2, 0x0
33207 + add-int/lit8 v1, v1, 0x1
33209 + goto :goto_11
33211 + :cond_2a
33212 + const/4 v5, -0x1
33214 + goto :goto_25
33216 + :cond_2c
33217 + const-string v6, "PM,MicrophoneInputStream"
33219 + const-string/jumbo v7, "return GOT_ERROR, because package_names are NULL"
33221 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
33222 + :try_end_34
33223 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_34} :catch_35
33225 + goto :goto_25
33227 + :catch_35
33228 + move-exception v0
33230 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
33232 + const-string v6, "PM,MicrophoneInputStream"
33234 + const-string v7, "Got exception in checkIfPackagesAllowed"
33236 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
33238 + goto :goto_25
33240 + :cond_41
33241 + :try_start_41
33242 + const-string v6, "PM,MicrophoneInputStream"
33244 + const-string/jumbo v7, "return GOT_ERROR, because pSetMan is NULL"
33246 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
33247 + :try_end_49
33248 + .catch Ljava/lang/Exception; {:try_start_41 .. :try_end_49} :catch_35
33250 + goto :goto_25
33251 +.end method
33253 +.method private dataAccess(Z)V
33254 + .registers 7
33256 + invoke-direct {p0}, Landroid/speech/srec/MicrophoneInputStream;->getPackageName()[Ljava/lang/String;
33258 + move-result-object v1
33260 + if-eqz p1, :cond_2f
33262 + if-eqz v1, :cond_2f
33264 + const/4 v0, 0x0
33266 + :goto_9
33267 + array-length v2, v1
33269 + if-ge v0, v2, :cond_58
33271 + const-string v2, "PM,MicrophoneInputStream"
33273 + new-instance v3, Ljava/lang/StringBuilder;
33275 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
33277 + const-string v4, "Allowed Package: -"
33279 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
33281 + move-result-object v3
33283 + aget-object v4, v1, v0
33285 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
33287 + move-result-object v3
33289 + const-string v4, "- accessing microphone."
33291 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
33293 + move-result-object v3
33295 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
33297 + move-result-object v3
33299 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
33301 + add-int/lit8 v0, v0, 0x1
33303 + goto :goto_9
33305 + :cond_2f
33306 + if-eqz v1, :cond_58
33308 + const/4 v0, 0x0
33310 + :goto_32
33311 + array-length v2, v1
33313 + if-ge v0, v2, :cond_58
33315 + const-string v2, "PM,MicrophoneInputStream"
33317 + new-instance v3, Ljava/lang/StringBuilder;
33319 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
33321 + const-string v4, "Blocked Package: -"
33323 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
33325 + move-result-object v3
33327 + aget-object v4, v1, v0
33329 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
33331 + move-result-object v3
33333 + const-string v4, "- accessing microphone."
33335 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
33337 + move-result-object v3
33339 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
33341 + move-result-object v3
33343 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
33345 + add-int/lit8 v0, v0, 0x1
33347 + goto :goto_32
33349 + :cond_58
33350 + return-void
33351 +.end method
33353 +.method private getPackageName()[Ljava/lang/String;
33354 + .registers 6
33356 + :try_start_0
33357 + iget-object v3, p0, Landroid/speech/srec/MicrophoneInputStream;->mPm:Landroid/content/pm/IPackageManager;
33359 + if-eqz v3, :cond_f
33361 + invoke-static {}, Landroid/os/Process;->myUid()I
33363 + move-result v2
33365 + iget-object v3, p0, Landroid/speech/srec/MicrophoneInputStream;->mPm:Landroid/content/pm/IPackageManager;
33367 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
33369 + move-result-object v1
33371 + :goto_e
33372 + return-object v1
33374 + :cond_f
33375 + const-string/jumbo v3, "package"
33377 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
33379 + move-result-object v3
33381 + invoke-static {v3}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
33383 + move-result-object v3
33385 + iput-object v3, p0, Landroid/speech/srec/MicrophoneInputStream;->mPm:Landroid/content/pm/IPackageManager;
33387 + invoke-static {}, Landroid/os/Process;->myUid()I
33389 + move-result v2
33391 + iget-object v3, p0, Landroid/speech/srec/MicrophoneInputStream;->mPm:Landroid/content/pm/IPackageManager;
33393 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
33394 + :try_end_25
33395 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_25} :catch_27
33397 + move-result-object v1
33399 + goto :goto_e
33401 + :catch_27
33402 + move-exception v0
33404 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
33406 + const-string v3, "PM,MicrophoneInputStream"
33408 + const-string/jumbo v4, "something went wrong with getting package name"
33410 + invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
33412 + const/4 v1, 0x0
33414 + goto :goto_e
33415 +.end method
33417 +.method private initiate()V
33418 + .registers 5
33420 + const/4 v1, 0x0
33422 + :try_start_1
33423 + iput-object v1, p0, Landroid/speech/srec/MicrophoneInputStream;->context:Landroid/content/Context;
33425 + new-instance v1, Landroid/privacy/PrivacySettingsManager;
33427 + iget-object v2, p0, Landroid/speech/srec/MicrophoneInputStream;->context:Landroid/content/Context;
33429 + const-string/jumbo v3, "privacy"
33431 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
33433 + move-result-object v3
33435 + invoke-static {v3}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
33437 + move-result-object v3
33439 + invoke-direct {v1, v2, v3}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
33441 + iput-object v1, p0, Landroid/speech/srec/MicrophoneInputStream;->pSetMan:Landroid/privacy/PrivacySettingsManager;
33443 + const-string/jumbo v1, "package"
33445 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
33447 + move-result-object v1
33449 + invoke-static {v1}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
33451 + move-result-object v1
33453 + iput-object v1, p0, Landroid/speech/srec/MicrophoneInputStream;->mPm:Landroid/content/pm/IPackageManager;
33455 + const/4 v1, 0x1
33457 + iput-boolean v1, p0, Landroid/speech/srec/MicrophoneInputStream;->privacyMode:Z
33458 + :try_end_27
33459 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_27} :catch_28
33461 + :goto_27
33462 + return-void
33464 + :catch_28
33465 + move-exception v0
33467 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
33469 + const-string v1, "PM,MicrophoneInputStream"
33471 + const-string v2, "Something went wrong with initalize variables"
33473 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
33475 + const/4 v1, 0x0
33477 + iput-boolean v1, p0, Landroid/speech/srec/MicrophoneInputStream;->privacyMode:Z
33479 + goto :goto_27
33480 +.end method
33483 # virtual methods
33484 .method public close()V
33485 diff -Npru stock-framework/smali/android/telephony/PhoneStateListener$1.smali opd-framework/smali/android/telephony/PhoneStateListener$1.smali
33486 --- stock-framework/smali/android/telephony/PhoneStateListener$1.smali 2013-01-09 02:53:02.247627685 -0600
33487 +++ opd-framework/smali/android/telephony/PhoneStateListener$1.smali 2013-01-09 02:52:42.119527872 -0600
33488 @@ -64,23 +64,196 @@
33489 .end method
33491 .method public onCallStateChanged(ILjava/lang/String;)V
33492 - .registers 6
33493 + .registers 19
33495 - iget-object v0, p0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33496 + move-object/from16 v0, p0
33498 - iget-object v0, v0, Landroid/telephony/PhoneStateListener;->mHandler:Landroid/os/Handler;
33499 + iget-object v3, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33501 - const/16 v1, 0x20
33502 + #getter for: Landroid/telephony/PhoneStateListener;->context:Landroid/content/Context;
33503 + invoke-static {v3}, Landroid/telephony/PhoneStateListener;->access$000(Landroid/telephony/PhoneStateListener;)Landroid/content/Context;
33505 - const/4 v2, 0x0
33506 + move-result-object v3
33508 - invoke-static {v0, v1, p1, v2, p2}, Landroid/os/Message;->obtain(Landroid/os/Handler;IIILjava/lang/Object;)Landroid/os/Message;
33509 + if-eqz v3, :cond_99
33511 - move-result-object v0
33512 + if-eqz p2, :cond_99
33514 - invoke-virtual {v0}, Landroid/os/Message;->sendToTarget()V
33515 + invoke-virtual/range {p2 .. p2}, Ljava/lang/String;->isEmpty()Z
33517 + move-result v3
33519 + if-nez v3, :cond_99
33521 + move-object/from16 v0, p0
33523 + iget-object v3, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33525 + #getter for: Landroid/telephony/PhoneStateListener;->context:Landroid/content/Context;
33526 + invoke-static {v3}, Landroid/telephony/PhoneStateListener;->access$000(Landroid/telephony/PhoneStateListener;)Landroid/content/Context;
33528 + move-result-object v3
33530 + const-string/jumbo v4, "privacy"
33532 + invoke-virtual {v3, v4}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
33534 + move-result-object v2
33536 + check-cast v2, Landroid/privacy/PrivacySettingsManager;
33538 + move-object/from16 v0, p0
33540 + iget-object v3, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33542 + #getter for: Landroid/telephony/PhoneStateListener;->packageName:Ljava/lang/String;
33543 + invoke-static {v3}, Landroid/telephony/PhoneStateListener;->access$100(Landroid/telephony/PhoneStateListener;)Ljava/lang/String;
33545 + move-result-object v3
33547 + move-object/from16 v0, p0
33549 + iget-object v4, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33551 + #getter for: Landroid/telephony/PhoneStateListener;->uid:I
33552 + invoke-static {v4}, Landroid/telephony/PhoneStateListener;->access$200(Landroid/telephony/PhoneStateListener;)I
33554 + move-result v4
33556 + invoke-virtual {v2, v3, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
33558 + move-result-object v8
33560 + if-eqz v8, :cond_6a
33562 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getIncomingCallsSetting()B
33564 + move-result v3
33566 + if-eqz v3, :cond_6a
33568 + const-string v7, ""
33570 + move-object/from16 v0, p0
33572 + iget-object v3, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33574 + iget-object v3, v3, Landroid/telephony/PhoneStateListener;->mHandler:Landroid/os/Handler;
33576 + const/16 v4, 0x20
33578 + const/4 v5, 0x0
33580 + move/from16 v0, p1
33582 + invoke-static {v3, v4, v0, v5, v7}, Landroid/os/Message;->obtain(Landroid/os/Handler;IIILjava/lang/Object;)Landroid/os/Message;
33584 + move-result-object v3
33586 + invoke-virtual {v3}, Landroid/os/Message;->sendToTarget()V
33588 + move-object/from16 v0, p0
33590 + iget-object v3, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33592 + #getter for: Landroid/telephony/PhoneStateListener;->packageName:Ljava/lang/String;
33593 + invoke-static {v3}, Landroid/telephony/PhoneStateListener;->access$100(Landroid/telephony/PhoneStateListener;)Ljava/lang/String;
33595 + move-result-object v3
33597 + move-object/from16 v0, p0
33599 + iget-object v4, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33601 + #getter for: Landroid/telephony/PhoneStateListener;->uid:I
33602 + invoke-static {v4}, Landroid/telephony/PhoneStateListener;->access$200(Landroid/telephony/PhoneStateListener;)I
33604 + move-result v4
33606 + const/4 v5, 0x1
33608 + const-string v6, "incomingCall"
33610 + invoke-virtual/range {v2 .. v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
33612 + :goto_69
33613 return-void
33615 + :cond_6a
33616 + move-object/from16 v0, p0
33618 + iget-object v3, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33620 + iget-object v3, v3, Landroid/telephony/PhoneStateListener;->mHandler:Landroid/os/Handler;
33622 + const/16 v4, 0x20
33624 + const/4 v5, 0x0
33626 + move/from16 v0, p1
33628 + move-object/from16 v1, p2
33630 + invoke-static {v3, v4, v0, v5, v1}, Landroid/os/Message;->obtain(Landroid/os/Handler;IIILjava/lang/Object;)Landroid/os/Message;
33632 + move-result-object v3
33634 + invoke-virtual {v3}, Landroid/os/Message;->sendToTarget()V
33636 + move-object/from16 v0, p0
33638 + iget-object v3, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33640 + #getter for: Landroid/telephony/PhoneStateListener;->packageName:Ljava/lang/String;
33641 + invoke-static {v3}, Landroid/telephony/PhoneStateListener;->access$100(Landroid/telephony/PhoneStateListener;)Ljava/lang/String;
33643 + move-result-object v10
33645 + move-object/from16 v0, p0
33647 + iget-object v3, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33649 + #getter for: Landroid/telephony/PhoneStateListener;->uid:I
33650 + invoke-static {v3}, Landroid/telephony/PhoneStateListener;->access$200(Landroid/telephony/PhoneStateListener;)I
33652 + move-result v11
33654 + const/4 v12, 0x0
33656 + const-string v13, "incomingCall"
33658 + move-object v9, v2
33660 + move-object/from16 v14, p2
33662 + move-object v15, v8
33664 + invoke-virtual/range {v9 .. v15}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
33666 + goto :goto_69
33668 + :cond_99
33669 + move-object/from16 v0, p0
33671 + iget-object v3, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33673 + iget-object v3, v3, Landroid/telephony/PhoneStateListener;->mHandler:Landroid/os/Handler;
33675 + const/16 v4, 0x20
33677 + const/4 v5, 0x0
33679 + move/from16 v0, p1
33681 + move-object/from16 v1, p2
33683 + invoke-static {v3, v4, v0, v5, v1}, Landroid/os/Message;->obtain(Landroid/os/Handler;IIILjava/lang/Object;)Landroid/os/Message;
33685 + move-result-object v3
33687 + invoke-virtual {v3}, Landroid/os/Message;->sendToTarget()V
33689 + goto :goto_69
33690 .end method
33692 .method public onCellInfoChanged(Ljava/util/List;)V
33693 @@ -113,27 +286,124 @@
33694 .end method
33696 .method public onCellLocationChanged(Landroid/os/Bundle;)V
33697 - .registers 6
33698 + .registers 10
33700 + const/4 v5, 0x0
33702 const/4 v3, 0x0
33704 invoke-static {p1}, Landroid/telephony/CellLocation;->newFromBundle(Landroid/os/Bundle;)Landroid/telephony/CellLocation;
33706 + move-result-object v7
33708 + iget-object v1, p0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33710 + #getter for: Landroid/telephony/PhoneStateListener;->context:Landroid/content/Context;
33711 + invoke-static {v1}, Landroid/telephony/PhoneStateListener;->access$000(Landroid/telephony/PhoneStateListener;)Landroid/content/Context;
33713 + move-result-object v1
33715 + if-eqz v1, :cond_4a
33717 + iget-object v1, p0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33719 + #getter for: Landroid/telephony/PhoneStateListener;->context:Landroid/content/Context;
33720 + invoke-static {v1}, Landroid/telephony/PhoneStateListener;->access$000(Landroid/telephony/PhoneStateListener;)Landroid/content/Context;
33722 + move-result-object v1
33724 + const-string/jumbo v2, "privacy"
33726 + invoke-virtual {v1, v2}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
33728 move-result-object v0
33730 + check-cast v0, Landroid/privacy/PrivacySettingsManager;
33732 + iget-object v1, p0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33734 + #getter for: Landroid/telephony/PhoneStateListener;->packageName:Ljava/lang/String;
33735 + invoke-static {v1}, Landroid/telephony/PhoneStateListener;->access$100(Landroid/telephony/PhoneStateListener;)Ljava/lang/String;
33737 + move-result-object v1
33739 + iget-object v2, p0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33741 + #getter for: Landroid/telephony/PhoneStateListener;->uid:I
33742 + invoke-static {v2}, Landroid/telephony/PhoneStateListener;->access$200(Landroid/telephony/PhoneStateListener;)I
33744 + move-result v2
33746 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
33748 + move-result-object v6
33750 + if-eqz v6, :cond_4b
33752 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
33754 + move-result v1
33756 + if-eqz v1, :cond_4b
33758 + iget-object v1, p0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33760 + #getter for: Landroid/telephony/PhoneStateListener;->packageName:Ljava/lang/String;
33761 + invoke-static {v1}, Landroid/telephony/PhoneStateListener;->access$100(Landroid/telephony/PhoneStateListener;)Ljava/lang/String;
33763 + move-result-object v1
33765 + iget-object v2, p0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33767 + #getter for: Landroid/telephony/PhoneStateListener;->uid:I
33768 + invoke-static {v2}, Landroid/telephony/PhoneStateListener;->access$200(Landroid/telephony/PhoneStateListener;)I
33770 + move-result v2
33772 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
33774 + move-result v3
33776 + const-string v4, "locationNetwork"
33778 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
33780 + :cond_4a
33781 + :goto_4a
33782 + return-void
33784 + :cond_4b
33785 iget-object v1, p0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33787 iget-object v1, v1, Landroid/telephony/PhoneStateListener;->mHandler:Landroid/os/Handler;
33789 const/16 v2, 0x10
33791 - invoke-static {v1, v2, v3, v3, v0}, Landroid/os/Message;->obtain(Landroid/os/Handler;IIILjava/lang/Object;)Landroid/os/Message;
33792 + invoke-static {v1, v2, v3, v3, v7}, Landroid/os/Message;->obtain(Landroid/os/Handler;IIILjava/lang/Object;)Landroid/os/Message;
33794 move-result-object v1
33796 invoke-virtual {v1}, Landroid/os/Message;->sendToTarget()V
33798 - return-void
33799 + iget-object v1, p0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33801 + #getter for: Landroid/telephony/PhoneStateListener;->packageName:Ljava/lang/String;
33802 + invoke-static {v1}, Landroid/telephony/PhoneStateListener;->access$100(Landroid/telephony/PhoneStateListener;)Ljava/lang/String;
33804 + move-result-object v1
33806 + iget-object v2, p0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33808 + #getter for: Landroid/telephony/PhoneStateListener;->uid:I
33809 + invoke-static {v2}, Landroid/telephony/PhoneStateListener;->access$200(Landroid/telephony/PhoneStateListener;)I
33811 + move-result v2
33813 + const-string v4, "locationNetwork"
33815 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
33817 + goto :goto_4a
33818 .end method
33820 .method public onDataActivity(I)V
33821 diff -Npru stock-framework/smali/android/telephony/PhoneStateListener.smali opd-framework/smali/android/telephony/PhoneStateListener.smali
33822 --- stock-framework/smali/android/telephony/PhoneStateListener.smali 2013-01-09 02:53:00.795620481 -0600
33823 +++ opd-framework/smali/android/telephony/PhoneStateListener.smali 2013-01-09 02:52:40.739521029 -0600
33824 @@ -31,12 +31,20 @@
33826 .field public static final LISTEN_SIGNAL_STRENGTHS:I = 0x100
33828 +.field private static final TAG:Ljava/lang/String; = "PhoneStateListener"
33831 # instance fields
33832 .field callback:Lcom/android/internal/telephony/IPhoneStateListener;
33834 +.field private context:Landroid/content/Context;
33836 .field mHandler:Landroid/os/Handler;
33838 +.field private packageName:Ljava/lang/String;
33840 +.field private uid:I
33843 # direct methods
33844 .method public constructor <init>()V
33845 @@ -59,6 +67,30 @@
33846 return-void
33847 .end method
33849 +.method static synthetic access$000(Landroid/telephony/PhoneStateListener;)Landroid/content/Context;
33850 + .registers 2
33852 + iget-object v0, p0, Landroid/telephony/PhoneStateListener;->context:Landroid/content/Context;
33854 + return-object v0
33855 +.end method
33857 +.method static synthetic access$100(Landroid/telephony/PhoneStateListener;)Ljava/lang/String;
33858 + .registers 2
33860 + iget-object v0, p0, Landroid/telephony/PhoneStateListener;->packageName:Ljava/lang/String;
33862 + return-object v0
33863 +.end method
33865 +.method static synthetic access$200(Landroid/telephony/PhoneStateListener;)I
33866 + .registers 2
33868 + iget v0, p0, Landroid/telephony/PhoneStateListener;->uid:I
33870 + return v0
33871 +.end method
33874 # virtual methods
33875 .method public onCallForwardingIndicatorChanged(Z)V
33876 @@ -143,3 +175,27 @@
33878 return-void
33879 .end method
33881 +.method public setContext(Landroid/content/Context;)V
33882 + .registers 2
33884 + iput-object p1, p0, Landroid/telephony/PhoneStateListener;->context:Landroid/content/Context;
33886 + return-void
33887 +.end method
33889 +.method public setPackageName(Ljava/lang/String;)V
33890 + .registers 2
33892 + iput-object p1, p0, Landroid/telephony/PhoneStateListener;->packageName:Ljava/lang/String;
33894 + return-void
33895 +.end method
33897 +.method public setUid(I)V
33898 + .registers 2
33900 + iput p1, p0, Landroid/telephony/PhoneStateListener;->uid:I
33902 + return-void
33903 +.end method
33904 diff -Npru stock-framework/smali/android/telephony/ServiceState.smali opd-framework/smali/android/telephony/ServiceState.smali
33905 --- stock-framework/smali/android/telephony/ServiceState.smali 2013-01-09 02:53:02.247627685 -0600
33906 +++ opd-framework/smali/android/telephony/ServiceState.smali 2013-01-09 02:52:42.123527891 -0600
33907 @@ -668,48 +668,6 @@
33908 return-void
33909 .end method
33911 -.method private setNullState(I)V
33912 - .registers 5
33914 - const/4 v2, 0x0
33916 - const/4 v1, 0x0
33918 - const/4 v0, -0x1
33920 - iput p1, p0, Landroid/telephony/ServiceState;->mState:I
33922 - iput-boolean v1, p0, Landroid/telephony/ServiceState;->mRoaming:Z
33924 - iput-object v2, p0, Landroid/telephony/ServiceState;->mOperatorAlphaLong:Ljava/lang/String;
33926 - iput-object v2, p0, Landroid/telephony/ServiceState;->mOperatorAlphaShort:Ljava/lang/String;
33928 - iput-object v2, p0, Landroid/telephony/ServiceState;->mOperatorNumeric:Ljava/lang/String;
33930 - iput-boolean v1, p0, Landroid/telephony/ServiceState;->mIsManualNetworkSelection:Z
33932 - iput v1, p0, Landroid/telephony/ServiceState;->mRadioTechnology:I
33934 - iput-boolean v1, p0, Landroid/telephony/ServiceState;->mCssIndicator:Z
33936 - iput v0, p0, Landroid/telephony/ServiceState;->mNetworkId:I
33938 - iput v0, p0, Landroid/telephony/ServiceState;->mSystemId:I
33940 - iput v0, p0, Landroid/telephony/ServiceState;->mCdmaRoamingIndicator:I
33942 - iput v0, p0, Landroid/telephony/ServiceState;->mCdmaDefaultRoamingIndicator:I
33944 - iput v0, p0, Landroid/telephony/ServiceState;->mCdmaEriIconIndex:I
33946 - iput v0, p0, Landroid/telephony/ServiceState;->mCdmaEriIconMode:I
33948 - iput-boolean v1, p0, Landroid/telephony/ServiceState;->mIsEmergencyOnly:Z
33950 - return-void
33951 -.end method
33954 # virtual methods
33955 .method protected copyFrom(Landroid/telephony/ServiceState;)V
33956 @@ -1511,6 +1469,48 @@
33957 return-void
33958 .end method
33960 +.method setNullState(I)V
33961 + .registers 5
33963 + const/4 v2, 0x0
33965 + const/4 v1, 0x0
33967 + const/4 v0, -0x1
33969 + iput p1, p0, Landroid/telephony/ServiceState;->mState:I
33971 + iput-boolean v1, p0, Landroid/telephony/ServiceState;->mRoaming:Z
33973 + iput-object v2, p0, Landroid/telephony/ServiceState;->mOperatorAlphaLong:Ljava/lang/String;
33975 + iput-object v2, p0, Landroid/telephony/ServiceState;->mOperatorAlphaShort:Ljava/lang/String;
33977 + iput-object v2, p0, Landroid/telephony/ServiceState;->mOperatorNumeric:Ljava/lang/String;
33979 + iput-boolean v1, p0, Landroid/telephony/ServiceState;->mIsManualNetworkSelection:Z
33981 + iput v1, p0, Landroid/telephony/ServiceState;->mRadioTechnology:I
33983 + iput-boolean v1, p0, Landroid/telephony/ServiceState;->mCssIndicator:Z
33985 + iput v0, p0, Landroid/telephony/ServiceState;->mNetworkId:I
33987 + iput v0, p0, Landroid/telephony/ServiceState;->mSystemId:I
33989 + iput v0, p0, Landroid/telephony/ServiceState;->mCdmaRoamingIndicator:I
33991 + iput v0, p0, Landroid/telephony/ServiceState;->mCdmaDefaultRoamingIndicator:I
33993 + iput v0, p0, Landroid/telephony/ServiceState;->mCdmaEriIconIndex:I
33995 + iput v0, p0, Landroid/telephony/ServiceState;->mCdmaEriIconMode:I
33997 + iput-boolean v1, p0, Landroid/telephony/ServiceState;->mIsEmergencyOnly:Z
33999 + return-void
34000 +.end method
34002 .method public setOperatorAlphaLong(Ljava/lang/String;)V
34003 .registers 2
34005 @@ -1560,7 +1560,7 @@
34007 const/4 v0, 0x3
34009 - invoke-direct {p0, v0}, Landroid/telephony/ServiceState;->setNullState(I)V
34010 + invoke-virtual {p0, v0}, Landroid/telephony/ServiceState;->setNullState(I)V
34012 return-void
34013 .end method
34014 @@ -1570,7 +1570,7 @@
34016 const/4 v0, 0x1
34018 - invoke-direct {p0, v0}, Landroid/telephony/ServiceState;->setNullState(I)V
34019 + invoke-virtual {p0, v0}, Landroid/telephony/ServiceState;->setNullState(I)V
34021 return-void
34022 .end method
34023 diff -Npru stock-framework/smali/android/widget/TextView.smali opd-framework/smali/android/widget/TextView.smali
34024 --- stock-framework/smali/android/widget/TextView.smali 2013-01-09 02:53:00.575619395 -0600
34025 +++ opd-framework/smali/android/widget/TextView.smali 2013-01-09 02:52:40.655520612 -0600
34026 @@ -9244,7 +9244,7 @@
34028 iget-object v1, p0, Landroid/widget/TextView;->mText:Ljava/lang/CharSequence;
34030 - if-eqz v1, :cond_be
34031 + if-eqz v1, :cond_bf
34033 new-instance v1, Ljava/lang/StringBuilder;
34035 @@ -9254,7 +9254,7 @@
34037 move-result-object v1
34039 - const-string v2, "mText=\""
34040 + const-string/jumbo v2, "mText=\""
34042 invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
34044 @@ -9278,7 +9278,7 @@
34046 iget-object v1, p0, Landroid/widget/TextView;->mLayout:Landroid/text/Layout;
34048 - if-eqz v1, :cond_b8
34049 + if-eqz v1, :cond_b9
34051 new-instance v1, Ljava/lang/StringBuilder;
34053 @@ -9324,15 +9324,15 @@
34055 move-result-object v0
34057 - :cond_b8
34058 - :goto_b8
34059 + :cond_b9
34060 + :goto_b9
34061 const-string v1, "View"
34063 invoke-static {v1, v0}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
34065 return-void
34067 - :cond_be
34068 + :cond_bf
34069 new-instance v1, Ljava/lang/StringBuilder;
34071 invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
34072 @@ -9341,7 +9341,7 @@
34074 move-result-object v1
34076 - const-string v2, "mText=NULL"
34077 + const-string/jumbo v2, "mText=NULL"
34079 invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
34081 @@ -9351,7 +9351,7 @@
34083 move-result-object v0
34085 - goto :goto_b8
34086 + goto :goto_b9
34087 .end method
34089 .method protected deleteText_internal(II)V
34090 diff -Npru stock-framework/smali/com/android/internal/os/BatteryStatsImpl$Timer.smali opd-framework/smali/com/android/internal/os/BatteryStatsImpl$Timer.smali
34091 --- stock-framework/smali/com/android/internal/os/BatteryStatsImpl$Timer.smali 2013-01-09 02:53:03.235632578 -0600
34092 +++ opd-framework/smali/com/android/internal/os/BatteryStatsImpl$Timer.smali 2013-01-09 02:52:43.187533167 -0600
34093 @@ -330,7 +330,7 @@
34095 move-result-object v0
34097 - const-string v1, "mTotalTime="
34098 + const-string/jumbo v1, "mTotalTime="
34100 invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;