Add framework2 to cm patches to support temasek builds (3.0.212)
[auto-patcher.git] / patches / openpdroid / 4.3 / cm / 20130808 / framework2.patch
blobeebf13db145648abf0292bf9f8ee11b13190de87
1 diff -Npruw stock-framework/smali/android/app/Activity.smali pdroid-framework/smali/android/app/Activity.smali
2 --- stock-framework/smali/android/app/Activity.smali 2013-08-15 23:20:15.056304566 -0500
3 +++ pdroid-framework/smali/android/app/Activity.smali 2013-08-15 23:20:05.864304838 -0500
4 @@ -2019,7 +2019,7 @@
6 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
8 - const-string v1, "mLoadersStarted="
9 + const-string/jumbo v1, "mLoadersStarted="
11 invoke-virtual {p3, v1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
13 @@ -2049,7 +2049,7 @@
15 iget-object v1, p0, Landroid/app/Activity;->mLoaderManager:Landroid/app/LoaderManagerImpl;
17 - if-eqz v1, :cond_aa
18 + if-eqz v1, :cond_ab
20 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
22 @@ -2095,7 +2095,7 @@
24 invoke-virtual {v1, v2, p2, p3, p4}, Landroid/app/LoaderManagerImpl;->dump(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
26 - :cond_aa
27 + :cond_ab
28 iget-object v1, p0, Landroid/app/Activity;->mFragments:Landroid/app/FragmentManagerImpl;
30 invoke-virtual {v1, p1, p2, p3, p4}, Landroid/app/FragmentManagerImpl;->dump(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
31 diff -Npruw stock-framework/smali/android/app/BackStackRecord.smali pdroid-framework/smali/android/app/BackStackRecord.smali
32 --- stock-framework/smali/android/app/BackStackRecord.smali 2013-08-15 23:20:15.392304556 -0500
33 +++ pdroid-framework/smali/android/app/BackStackRecord.smali 2013-08-15 23:20:06.180304829 -0500
34 @@ -727,11 +727,11 @@
35 .method dump(Ljava/lang/String;Ljava/io/PrintWriter;Z)V
36 .registers 11
38 - if-eqz p3, :cond_dc
39 + if-eqz p3, :cond_dd
41 invoke-virtual {p2, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
43 - const-string v5, "mName="
44 + const-string/jumbo v5, "mName="
46 invoke-virtual {p2, v5}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
48 @@ -757,7 +757,7 @@
50 iget v5, p0, Landroid/app/BackStackRecord;->mTransition:I
52 - if-eqz v5, :cond_47
53 + if-eqz v5, :cond_48
55 invoke-virtual {p2, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
57 @@ -785,16 +785,16 @@
59 invoke-virtual {p2, v5}, Ljava/io/PrintWriter;->println(Ljava/lang/String;)V
61 - :cond_47
62 + :cond_48
63 iget v5, p0, Landroid/app/BackStackRecord;->mEnterAnim:I
65 - if-nez v5, :cond_4f
66 + if-nez v5, :cond_50
68 iget v5, p0, Landroid/app/BackStackRecord;->mExitAnim:I
70 - if-eqz v5, :cond_6e
71 + if-eqz v5, :cond_6f
73 - :cond_4f
74 + :cond_50
75 invoke-virtual {p2, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
77 const-string v5, "mEnterAnim=#"
78 @@ -821,16 +821,16 @@
80 invoke-virtual {p2, v5}, Ljava/io/PrintWriter;->println(Ljava/lang/String;)V
82 - :cond_6e
83 + :cond_6f
84 iget v5, p0, Landroid/app/BackStackRecord;->mPopEnterAnim:I
86 - if-nez v5, :cond_76
87 + if-nez v5, :cond_77
89 iget v5, p0, Landroid/app/BackStackRecord;->mPopExitAnim:I
91 - if-eqz v5, :cond_96
92 + if-eqz v5, :cond_97
94 - :cond_76
95 + :cond_77
96 invoke-virtual {p2, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
98 const-string/jumbo v5, "mPopEnterAnim=#"
99 @@ -857,16 +857,16 @@
101 invoke-virtual {p2, v5}, Ljava/io/PrintWriter;->println(Ljava/lang/String;)V
103 - :cond_96
104 + :cond_97
105 iget v5, p0, Landroid/app/BackStackRecord;->mBreadCrumbTitleRes:I
107 - if-nez v5, :cond_9e
108 + if-nez v5, :cond_9f
110 iget-object v5, p0, Landroid/app/BackStackRecord;->mBreadCrumbTitleText:Ljava/lang/CharSequence;
112 - if-eqz v5, :cond_b9
113 + if-eqz v5, :cond_ba
115 - :cond_9e
116 + :cond_9f
117 invoke-virtual {p2, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
119 const-string v5, "mBreadCrumbTitleRes=#"
120 @@ -889,16 +889,16 @@
122 invoke-virtual {p2, v5}, Ljava/io/PrintWriter;->println(Ljava/lang/Object;)V
124 - :cond_b9
125 + :cond_ba
126 iget v5, p0, Landroid/app/BackStackRecord;->mBreadCrumbShortTitleRes:I
128 - if-nez v5, :cond_c1
129 + if-nez v5, :cond_c2
131 iget-object v5, p0, Landroid/app/BackStackRecord;->mBreadCrumbShortTitleText:Ljava/lang/CharSequence;
133 - if-eqz v5, :cond_dc
134 + if-eqz v5, :cond_dd
136 - :cond_c1
137 + :cond_c2
138 invoke-virtual {p2, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
140 const-string v5, "mBreadCrumbShortTitleRes=#"
141 @@ -921,10 +921,10 @@
143 invoke-virtual {p2, v5}, Ljava/io/PrintWriter;->println(Ljava/lang/Object;)V
145 - :cond_dc
146 + :cond_dd
147 iget-object v5, p0, Landroid/app/BackStackRecord;->mHead:Landroid/app/BackStackRecord$Op;
149 - if-eqz v5, :cond_1f8
150 + if-eqz v5, :cond_1f9
152 invoke-virtual {p2, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
154 @@ -954,8 +954,8 @@
156 const/4 v3, 0x0
158 - :goto_fe
159 - if-eqz v4, :cond_1f8
160 + :goto_ff
161 + if-eqz v4, :cond_1f9
163 iget v5, v4, Landroid/app/BackStackRecord$Op;->cmd:I
165 @@ -981,7 +981,7 @@
167 move-result-object v0
169 - :goto_11a
170 + :goto_11b
171 invoke-virtual {p2, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
173 const-string v5, " Op #"
174 @@ -1004,17 +1004,17 @@
176 invoke-virtual {p2, v5}, Ljava/io/PrintWriter;->println(Ljava/lang/Object;)V
178 - if-eqz p3, :cond_188
179 + if-eqz p3, :cond_189
181 iget v5, v4, Landroid/app/BackStackRecord$Op;->enterAnim:I
183 - if-nez v5, :cond_141
184 + if-nez v5, :cond_142
186 iget v5, v4, Landroid/app/BackStackRecord$Op;->exitAnim:I
188 - if-eqz v5, :cond_160
189 + if-eqz v5, :cond_161
191 - :cond_141
192 + :cond_142
193 invoke-virtual {p2, v2}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
195 const-string v5, "enterAnim=#"
196 @@ -1041,16 +1041,16 @@
198 invoke-virtual {p2, v5}, Ljava/io/PrintWriter;->println(Ljava/lang/String;)V
200 - :cond_160
201 + :cond_161
202 iget v5, v4, Landroid/app/BackStackRecord$Op;->popEnterAnim:I
204 - if-nez v5, :cond_168
205 + if-nez v5, :cond_169
207 iget v5, v4, Landroid/app/BackStackRecord$Op;->popExitAnim:I
209 - if-eqz v5, :cond_188
210 + if-eqz v5, :cond_189
212 - :cond_168
213 + :cond_169
214 invoke-virtual {p2, v2}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
216 const-string/jumbo v5, "popEnterAnim=#"
217 @@ -1077,10 +1077,10 @@
219 invoke-virtual {p2, v5}, Ljava/io/PrintWriter;->println(Ljava/lang/String;)V
221 - :cond_188
222 + :cond_189
223 iget-object v5, v4, Landroid/app/BackStackRecord$Op;->removed:Ljava/util/ArrayList;
225 - if-eqz v5, :cond_1f2
226 + if-eqz v5, :cond_1f3
228 iget-object v5, v4, Landroid/app/BackStackRecord$Op;->removed:Ljava/util/ArrayList;
230 @@ -1088,18 +1088,18 @@
232 move-result v5
234 - if-lez v5, :cond_1f2
235 + if-lez v5, :cond_1f3
237 const/4 v1, 0x0
239 - :goto_195
240 + :goto_196
241 iget-object v5, v4, Landroid/app/BackStackRecord$Op;->removed:Ljava/util/ArrayList;
243 invoke-virtual {v5}, Ljava/util/ArrayList;->size()I
245 move-result v5
247 - if-ge v1, v5, :cond_1f2
248 + if-ge v1, v5, :cond_1f3
250 invoke-virtual {p2, v2}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
252 @@ -1111,13 +1111,13 @@
254 const/4 v6, 0x1
256 - if-ne v5, v6, :cond_1da
257 + if-ne v5, v6, :cond_1db
259 const-string v5, "Removed: "
261 invoke-virtual {p2, v5}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
263 - :goto_1ae
264 + :goto_1af
265 iget-object v5, v4, Landroid/app/BackStackRecord$Op;->removed:Ljava/util/ArrayList;
267 invoke-virtual {v5, v1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
268 @@ -1128,56 +1128,56 @@
270 add-int/lit8 v1, v1, 0x1
272 - goto :goto_195
273 + goto :goto_196
275 - :pswitch_1ba
276 + :pswitch_1bb
277 const-string v0, "NULL"
279 - goto/16 :goto_11a
280 + goto/16 :goto_11b
282 - :pswitch_1be
283 + :pswitch_1bf
284 const-string v0, "ADD"
286 - goto/16 :goto_11a
287 + goto/16 :goto_11b
289 - :pswitch_1c2
290 + :pswitch_1c3
291 const-string v0, "REPLACE"
293 - goto/16 :goto_11a
294 + goto/16 :goto_11b
296 - :pswitch_1c6
297 + :pswitch_1c7
298 const-string v0, "REMOVE"
300 - goto/16 :goto_11a
301 + goto/16 :goto_11b
303 - :pswitch_1ca
304 + :pswitch_1cb
305 const-string v0, "HIDE"
307 - goto/16 :goto_11a
308 + goto/16 :goto_11b
310 - :pswitch_1ce
311 + :pswitch_1cf
312 const-string v0, "SHOW"
314 - goto/16 :goto_11a
315 + goto/16 :goto_11b
317 - :pswitch_1d2
318 + :pswitch_1d3
319 const-string v0, "DETACH"
321 - goto/16 :goto_11a
322 + goto/16 :goto_11b
324 - :pswitch_1d6
325 + :pswitch_1d7
326 const-string v0, "ATTACH"
328 - goto/16 :goto_11a
329 + goto/16 :goto_11b
331 - :cond_1da
332 - if-nez v1, :cond_1e1
333 + :cond_1db
334 + if-nez v1, :cond_1e2
336 const-string v5, "Removed:"
338 invoke-virtual {p2, v5}, Ljava/io/PrintWriter;->println(Ljava/lang/String;)V
340 - :cond_1e1
341 + :cond_1e2
342 invoke-virtual {p2, v2}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
344 const-string v5, " #"
345 @@ -1190,30 +1190,28 @@
347 invoke-virtual {p2, v5}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
349 - goto :goto_1ae
350 + goto :goto_1af
352 - :cond_1f2
353 + :cond_1f3
354 iget-object v4, v4, Landroid/app/BackStackRecord$Op;->next:Landroid/app/BackStackRecord$Op;
356 add-int/lit8 v3, v3, 0x1
358 - goto/16 :goto_fe
359 + goto/16 :goto_ff
361 - :cond_1f8
362 + :cond_1f9
363 return-void
365 - nop
367 :pswitch_data_1fa
368 .packed-switch 0x0
369 - :pswitch_1ba
370 - :pswitch_1be
371 - :pswitch_1c2
372 - :pswitch_1c6
373 - :pswitch_1ca
374 - :pswitch_1ce
375 - :pswitch_1d2
376 - :pswitch_1d6
377 + :pswitch_1bb
378 + :pswitch_1bf
379 + :pswitch_1c3
380 + :pswitch_1c7
381 + :pswitch_1cb
382 + :pswitch_1cf
383 + :pswitch_1d3
384 + :pswitch_1d7
385 .end packed-switch
386 .end method
388 diff -Npruw stock-framework/smali/android/app/ContextImpl$10.smali pdroid-framework/smali/android/app/ContextImpl$10.smali
389 --- stock-framework/smali/android/app/ContextImpl$10.smali 2013-08-15 23:20:15.396304556 -0500
390 +++ pdroid-framework/smali/android/app/ContextImpl$10.smali 2013-08-15 23:20:06.184304828 -0500
391 @@ -26,21 +26,31 @@
393 # virtual methods
394 .method public createStaticService()Ljava/lang/Object;
395 - .registers 4
396 + .registers 5
398 - const-string v1, "connectivity"
399 + const-string v2, "connectivity"
401 - invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
402 + invoke-static {v2}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
404 move-result-object v0
406 - new-instance v1, Landroid/net/ConnectivityManager;
407 + const-string v2, "ContextImpl"
409 + const-string v3, "PDroid:ContextImpl: returning PrivacyConnectivityManager"
411 + invoke-static {v2, v3}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
413 invoke-static {v0}, Landroid/net/IConnectivityManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/IConnectivityManager;
415 - move-result-object v2
416 + move-result-object v1
418 + new-instance v2, Landroid/privacy/surrogate/PrivacyConnectivityManager;
420 + invoke-static {}, Landroid/app/ContextImpl;->getStaticOuterContext()Landroid/content/Context;
422 + move-result-object v3
424 - invoke-direct {v1, v2}, Landroid/net/ConnectivityManager;-><init>(Landroid/net/IConnectivityManager;)V
425 + invoke-direct {v2, v1, v3}, Landroid/privacy/surrogate/PrivacyConnectivityManager;-><init>(Landroid/net/IConnectivityManager;Landroid/content/Context;)V
427 - return-object v1
428 + return-object v2
429 .end method
430 diff -Npruw stock-framework/smali/android/app/ContextImpl$22.smali pdroid-framework/smali/android/app/ContextImpl$22.smali
431 --- stock-framework/smali/android/app/ContextImpl$22.smali 2013-08-15 23:20:15.400304556 -0500
432 +++ pdroid-framework/smali/android/app/ContextImpl$22.smali 2013-08-15 23:20:06.184304828 -0500
433 @@ -26,7 +26,7 @@
435 # virtual methods
436 .method public createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
437 - .registers 5
438 + .registers 6
440 const-string v1, "location"
442 @@ -34,13 +34,23 @@
444 move-result-object v0
446 - new-instance v1, Landroid/location/LocationManager;
447 + const-string v1, "ContextImpl"
449 + const-string v2, "PDroid:ContextImpl: returning PrivacyLocationManager"
451 + invoke-static {v1, v2}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
453 + new-instance v1, Landroid/privacy/surrogate/PrivacyLocationManager;
455 invoke-static {v0}, Landroid/location/ILocationManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/location/ILocationManager;
457 move-result-object v2
459 - invoke-direct {v1, p1, v2}, Landroid/location/LocationManager;-><init>(Landroid/content/Context;Landroid/location/ILocationManager;)V
460 + invoke-static {}, Landroid/app/ContextImpl;->getStaticOuterContext()Landroid/content/Context;
462 + move-result-object v3
464 + invoke-direct {v1, v2, v3}, Landroid/privacy/surrogate/PrivacyLocationManager;-><init>(Landroid/location/ILocationManager;Landroid/content/Context;)V
466 return-object v1
467 .end method
468 diff -Npruw stock-framework/smali/android/app/ContextImpl$31.smali pdroid-framework/smali/android/app/ContextImpl$31.smali
469 --- stock-framework/smali/android/app/ContextImpl$31.smali 2013-08-15 23:20:15.404304556 -0500
470 +++ pdroid-framework/smali/android/app/ContextImpl$31.smali 2013-08-15 23:20:06.188304828 -0500
471 @@ -28,13 +28,19 @@
472 .method public createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
473 .registers 4
475 - new-instance v0, Landroid/telephony/TelephonyManager;
476 + const-string v0, "ContextImpl"
478 + const-string v1, "PDroid:ContextImpl: returning PrivacyTelephonyManager"
480 + invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
482 + new-instance v0, Landroid/privacy/surrogate/PrivacyTelephonyManager;
484 invoke-virtual {p1}, Landroid/app/ContextImpl;->getOuterContext()Landroid/content/Context;
486 move-result-object v1
488 - invoke-direct {v0, v1}, Landroid/telephony/TelephonyManager;-><init>(Landroid/content/Context;)V
489 + invoke-direct {v0, v1}, Landroid/privacy/surrogate/PrivacyTelephonyManager;-><init>(Landroid/content/Context;)V
491 return-object v0
492 .end method
493 diff -Npruw stock-framework/smali/android/app/ContextImpl$36.smali pdroid-framework/smali/android/app/ContextImpl$36.smali
494 --- stock-framework/smali/android/app/ContextImpl$36.smali 2013-08-15 23:20:15.404304556 -0500
495 +++ pdroid-framework/smali/android/app/ContextImpl$36.smali 2013-08-15 23:20:06.188304828 -0500
496 @@ -38,13 +38,19 @@
498 move-result-object v1
500 - new-instance v2, Landroid/net/wifi/WifiManager;
501 + const-string v2, "ContextImpl"
503 + const-string v3, "PDroid:ContextImpl: returning PrivacyWifiManager"
505 + invoke-static {v2, v3}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
507 + new-instance v2, Landroid/privacy/surrogate/PrivacyWifiManager;
509 invoke-virtual {p1}, Landroid/app/ContextImpl;->getOuterContext()Landroid/content/Context;
511 move-result-object v3
513 - invoke-direct {v2, v3, v1}, Landroid/net/wifi/WifiManager;-><init>(Landroid/content/Context;Landroid/net/wifi/IWifiManager;)V
514 + invoke-direct {v2, v3, v1}, Landroid/privacy/surrogate/PrivacyWifiManager;-><init>(Landroid/content/Context;Landroid/net/wifi/IWifiManager;)V
516 return-object v2
517 .end method
518 diff -Npruw stock-framework/smali/android/app/ContextImpl$38.smali pdroid-framework/smali/android/app/ContextImpl$38.smali
519 --- stock-framework/smali/android/app/ContextImpl$38.smali 2013-08-15 23:20:15.408304556 -0500
520 +++ pdroid-framework/smali/android/app/ContextImpl$38.smali 2013-08-15 23:20:06.188304828 -0500
521 @@ -1,5 +1,5 @@
522 .class final Landroid/app/ContextImpl$38;
523 -.super Landroid/app/ContextImpl$ServiceFetcher;
524 +.super Landroid/app/ContextImpl$StaticServiceFetcher;
525 .source "ContextImpl.java"
528 @@ -18,45 +18,39 @@
529 .method constructor <init>()V
530 .registers 1
532 - invoke-direct {p0}, Landroid/app/ContextImpl$ServiceFetcher;-><init>()V
533 + invoke-direct {p0}, Landroid/app/ContextImpl$StaticServiceFetcher;-><init>()V
535 return-void
536 .end method
539 # virtual methods
540 -.method public getService(Landroid/app/ContextImpl;)Ljava/lang/Object;
541 - .registers 6
542 +.method public createStaticService()Ljava/lang/Object;
543 + .registers 5
545 - #getter for: Landroid/app/ContextImpl;->mDisplay:Landroid/view/Display;
546 - invoke-static {p1}, Landroid/app/ContextImpl;->access$100(Landroid/app/ContextImpl;)Landroid/view/Display;
547 + const-string v2, "ContextImpl"
549 - move-result-object v0
550 + const-string v3, "PDroid:ContextImpl: Creating static privacy service"
552 - if-nez v0, :cond_17
553 + invoke-static {v2, v3}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
555 - invoke-virtual {p1}, Landroid/app/ContextImpl;->getOuterContext()Landroid/content/Context;
556 + const-string/jumbo v2, "privacy"
558 - move-result-object v2
559 + invoke-static {v2}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
561 - const-string v3, "display"
562 + move-result-object v0
564 - invoke-virtual {v2, v3}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
565 + invoke-static {v0}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
567 move-result-object v1
569 - check-cast v1, Landroid/hardware/display/DisplayManager;
571 - const/4 v2, 0x0
572 + new-instance v2, Landroid/privacy/PrivacySettingsManager;
574 - invoke-virtual {v1, v2}, Landroid/hardware/display/DisplayManager;->getDisplay(I)Landroid/view/Display;
576 - move-result-object v0
577 + invoke-static {}, Landroid/app/ContextImpl;->getStaticOuterContext()Landroid/content/Context;
579 - :cond_17
580 - new-instance v2, Landroid/view/WindowManagerImpl;
581 + move-result-object v3
583 - invoke-direct {v2, v0}, Landroid/view/WindowManagerImpl;-><init>(Landroid/view/Display;)V
584 + invoke-direct {v2, v3, v1}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
586 return-object v2
587 .end method
588 diff -Npruw stock-framework/smali/android/app/ContextImpl$39.smali pdroid-framework/smali/android/app/ContextImpl$39.smali
589 --- stock-framework/smali/android/app/ContextImpl$39.smali 2013-08-15 23:20:15.408304556 -0500
590 +++ pdroid-framework/smali/android/app/ContextImpl$39.smali 2013-08-15 23:20:06.188304828 -0500
591 @@ -25,22 +25,38 @@
594 # virtual methods
595 -.method public createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
596 - .registers 5
597 +.method public getService(Landroid/app/ContextImpl;)Ljava/lang/Object;
598 + .registers 6
600 - const-string/jumbo v2, "user"
602 - invoke-static {v2}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
603 + #getter for: Landroid/app/ContextImpl;->mDisplay:Landroid/view/Display;
604 + invoke-static {p1}, Landroid/app/ContextImpl;->access$100(Landroid/app/ContextImpl;)Landroid/view/Display;
606 move-result-object v0
608 - invoke-static {v0}, Landroid/os/IUserManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IUserManager;
609 + if-nez v0, :cond_17
611 + invoke-virtual {p1}, Landroid/app/ContextImpl;->getOuterContext()Landroid/content/Context;
613 + move-result-object v2
615 + const-string v3, "display"
617 + invoke-virtual {v2, v3}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
619 move-result-object v1
621 - new-instance v2, Landroid/os/UserManager;
622 + check-cast v1, Landroid/hardware/display/DisplayManager;
624 + const/4 v2, 0x0
626 + invoke-virtual {v1, v2}, Landroid/hardware/display/DisplayManager;->getDisplay(I)Landroid/view/Display;
628 + move-result-object v0
630 + :cond_17
631 + new-instance v2, Landroid/view/WindowManagerImpl;
633 - invoke-direct {v2, p1, v1}, Landroid/os/UserManager;-><init>(Landroid/content/Context;Landroid/os/IUserManager;)V
634 + invoke-direct {v2, v0}, Landroid/view/WindowManagerImpl;-><init>(Landroid/view/Display;)V
636 return-object v2
637 .end method
638 diff -Npruw stock-framework/smali/android/app/ContextImpl$3.smali pdroid-framework/smali/android/app/ContextImpl$3.smali
639 --- stock-framework/smali/android/app/ContextImpl$3.smali 2013-08-15 23:20:15.408304556 -0500
640 +++ pdroid-framework/smali/android/app/ContextImpl$3.smali 2013-08-15 23:20:06.188304828 -0500
641 @@ -26,7 +26,7 @@
643 # virtual methods
644 .method public createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
645 - .registers 5
646 + .registers 6
648 const-string v2, "account"
650 @@ -38,9 +38,15 @@
652 move-result-object v1
654 - new-instance v2, Landroid/accounts/AccountManager;
655 + const-string v2, "ContextImpl"
657 - invoke-direct {v2, p1, v1}, Landroid/accounts/AccountManager;-><init>(Landroid/content/Context;Landroid/accounts/IAccountManager;)V
658 + const-string v3, "PDroid:ContextImpl: returning PrivacyAccountManager rather than AccountManager"
660 + invoke-static {v2, v3}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
662 + new-instance v2, Landroid/privacy/surrogate/PrivacyAccountManager;
664 + invoke-direct {v2, p1, v1}, Landroid/privacy/surrogate/PrivacyAccountManager;-><init>(Landroid/content/Context;Landroid/accounts/IAccountManager;)V
666 return-object v2
667 .end method
668 diff -Npruw stock-framework/smali/android/app/ContextImpl$40.smali pdroid-framework/smali/android/app/ContextImpl$40.smali
669 --- stock-framework/smali/android/app/ContextImpl$40.smali 2013-08-15 23:20:15.408304556 -0500
670 +++ pdroid-framework/smali/android/app/ContextImpl$40.smali 2013-08-15 23:20:06.188304828 -0500
671 @@ -28,19 +28,19 @@
672 .method public createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
673 .registers 5
675 - const-string v2, "appops"
676 + const-string/jumbo v2, "user"
678 invoke-static {v2}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
680 move-result-object v0
682 - invoke-static {v0}, Lcom/android/internal/app/IAppOpsService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/app/IAppOpsService;
683 + invoke-static {v0}, Landroid/os/IUserManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IUserManager;
685 move-result-object v1
687 - new-instance v2, Landroid/app/AppOpsManager;
688 + new-instance v2, Landroid/os/UserManager;
690 - invoke-direct {v2, p1, v1}, Landroid/app/AppOpsManager;-><init>(Landroid/content/Context;Lcom/android/internal/app/IAppOpsService;)V
691 + invoke-direct {v2, p1, v1}, Landroid/os/UserManager;-><init>(Landroid/content/Context;Landroid/os/IUserManager;)V
693 return-object v2
694 .end method
695 diff -Npruw stock-framework/smali/android/app/ContextImpl$41.smali pdroid-framework/smali/android/app/ContextImpl$41.smali
696 --- stock-framework/smali/android/app/ContextImpl$41.smali 2013-08-15 23:20:15.408304556 -0500
697 +++ pdroid-framework/smali/android/app/ContextImpl$41.smali 2013-08-15 23:20:06.192304828 -0500
698 @@ -28,19 +28,19 @@
699 .method public createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
700 .registers 5
702 - invoke-virtual {p1}, Landroid/app/ContextImpl;->getOuterContext()Landroid/content/Context;
703 + const-string v2, "appops"
705 - move-result-object v0
706 + invoke-static {v2}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
708 - new-instance v1, Landroid/app/ProfileManager;
709 + move-result-object v0
711 - iget-object v2, p1, Landroid/app/ContextImpl;->mMainThread:Landroid/app/ActivityThread;
712 + invoke-static {v0}, Lcom/android/internal/app/IAppOpsService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/app/IAppOpsService;
714 - invoke-virtual {v2}, Landroid/app/ActivityThread;->getHandler()Landroid/os/Handler;
715 + move-result-object v1
717 - move-result-object v2
718 + new-instance v2, Landroid/app/AppOpsManager;
720 - invoke-direct {v1, v0, v2}, Landroid/app/ProfileManager;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
721 + invoke-direct {v2, p1, v1}, Landroid/app/AppOpsManager;-><init>(Landroid/content/Context;Lcom/android/internal/app/IAppOpsService;)V
723 - return-object v1
724 + return-object v2
725 .end method
726 diff -Npruw stock-framework/smali/android/app/ContextImpl$42.smali pdroid-framework/smali/android/app/ContextImpl$42.smali
727 --- stock-framework/smali/android/app/ContextImpl$42.smali 2013-08-15 23:20:15.408304556 -0500
728 +++ pdroid-framework/smali/android/app/ContextImpl$42.smali 2013-08-15 23:20:06.192304828 -0500
729 @@ -26,17 +26,21 @@
731 # virtual methods
732 .method public createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
733 - .registers 3
734 + .registers 5
736 - iget-object v0, p1, Landroid/app/ContextImpl;->mMainThread:Landroid/app/ActivityThread;
738 - invoke-virtual {v0}, Landroid/app/ActivityThread;->getHandler()Landroid/os/Handler;
739 + invoke-virtual {p1}, Landroid/app/ContextImpl;->getOuterContext()Landroid/content/Context;
741 move-result-object v0
743 - invoke-static {p1, v0}, Landroid/net/wimax/WimaxHelper;->createWimaxService(Landroid/content/Context;Landroid/os/Handler;)Ljava/lang/Object;
744 + new-instance v1, Landroid/app/ProfileManager;
746 - move-result-object v0
747 + iget-object v2, p1, Landroid/app/ContextImpl;->mMainThread:Landroid/app/ActivityThread;
749 + invoke-virtual {v2}, Landroid/app/ActivityThread;->getHandler()Landroid/os/Handler;
751 + move-result-object v2
753 + invoke-direct {v1, v0, v2}, Landroid/app/ProfileManager;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
755 - return-object v0
756 + return-object v1
757 .end method
758 diff -Npruw stock-framework/smali/android/app/ContextImpl$43.smali pdroid-framework/smali/android/app/ContextImpl$43.smali
759 --- stock-framework/smali/android/app/ContextImpl$43.smali 2013-08-15 23:20:15.408304556 -0500
760 +++ pdroid-framework/smali/android/app/ContextImpl$43.smali 2013-08-15 23:20:06.192304828 -0500
761 @@ -26,21 +26,17 @@
763 # virtual methods
764 .method public createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
765 - .registers 5
766 + .registers 3
768 - const-string v2, "fm_receiver"
769 + iget-object v0, p1, Landroid/app/ContextImpl;->mMainThread:Landroid/app/ActivityThread;
771 - invoke-static {v2}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
772 + invoke-virtual {v0}, Landroid/app/ActivityThread;->getHandler()Landroid/os/Handler;
774 move-result-object v0
776 - invoke-static {v0}, Lcom/stericsson/hardware/fm/IFmReceiver$Stub;->asInterface(Landroid/os/IBinder;)Lcom/stericsson/hardware/fm/IFmReceiver;
777 + invoke-static {p1, v0}, Landroid/net/wimax/WimaxHelper;->createWimaxService(Landroid/content/Context;Landroid/os/Handler;)Ljava/lang/Object;
779 - move-result-object v1
781 - new-instance v2, Lcom/stericsson/hardware/fm/FmReceiverImpl;
783 - invoke-direct {v2, v1}, Lcom/stericsson/hardware/fm/FmReceiverImpl;-><init>(Lcom/stericsson/hardware/fm/IFmReceiver;)V
784 + move-result-object v0
786 - return-object v2
787 + return-object v0
788 .end method
789 diff -Npruw stock-framework/smali/android/app/ContextImpl$44.smali pdroid-framework/smali/android/app/ContextImpl$44.smali
790 --- stock-framework/smali/android/app/ContextImpl$44.smali 2013-08-15 23:20:15.408304556 -0500
791 +++ pdroid-framework/smali/android/app/ContextImpl$44.smali 2013-08-15 23:20:06.192304828 -0500
792 @@ -28,19 +28,19 @@
793 .method public createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
794 .registers 5
796 - const-string v2, "fm_transmitter"
797 + const-string v2, "fm_receiver"
799 invoke-static {v2}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
801 move-result-object v0
803 - invoke-static {v0}, Lcom/stericsson/hardware/fm/IFmTransmitter$Stub;->asInterface(Landroid/os/IBinder;)Lcom/stericsson/hardware/fm/IFmTransmitter;
804 + invoke-static {v0}, Lcom/stericsson/hardware/fm/IFmReceiver$Stub;->asInterface(Landroid/os/IBinder;)Lcom/stericsson/hardware/fm/IFmReceiver;
806 move-result-object v1
808 - new-instance v2, Lcom/stericsson/hardware/fm/FmTransmitterImpl;
809 + new-instance v2, Lcom/stericsson/hardware/fm/FmReceiverImpl;
811 - invoke-direct {v2, v1}, Lcom/stericsson/hardware/fm/FmTransmitterImpl;-><init>(Lcom/stericsson/hardware/fm/IFmTransmitter;)V
812 + invoke-direct {v2, v1}, Lcom/stericsson/hardware/fm/FmReceiverImpl;-><init>(Lcom/stericsson/hardware/fm/IFmReceiver;)V
814 return-object v2
815 .end method
816 diff -Npruw stock-framework/smali/android/app/ContextImpl$45.smali pdroid-framework/smali/android/app/ContextImpl$45.smali
817 --- stock-framework/smali/android/app/ContextImpl$45.smali 1969-12-31 18:00:00.000000000 -0600
818 +++ pdroid-framework/smali/android/app/ContextImpl$45.smali 2013-08-15 23:20:06.192304828 -0500
819 @@ -0,0 +1,46 @@
820 +.class final Landroid/app/ContextImpl$45;
821 +.super Landroid/app/ContextImpl$ServiceFetcher;
822 +.source "ContextImpl.java"
825 +# annotations
826 +.annotation system Ldalvik/annotation/EnclosingClass;
827 + value = Landroid/app/ContextImpl;
828 +.end annotation
830 +.annotation system Ldalvik/annotation/InnerClass;
831 + accessFlags = 0x8
832 + name = null
833 +.end annotation
836 +# direct methods
837 +.method constructor <init>()V
838 + .registers 1
840 + invoke-direct {p0}, Landroid/app/ContextImpl$ServiceFetcher;-><init>()V
842 + return-void
843 +.end method
846 +# virtual methods
847 +.method public createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
848 + .registers 5
850 + const-string v2, "fm_transmitter"
852 + invoke-static {v2}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
854 + move-result-object v0
856 + invoke-static {v0}, Lcom/stericsson/hardware/fm/IFmTransmitter$Stub;->asInterface(Landroid/os/IBinder;)Lcom/stericsson/hardware/fm/IFmTransmitter;
858 + move-result-object v1
860 + new-instance v2, Lcom/stericsson/hardware/fm/FmTransmitterImpl;
862 + invoke-direct {v2, v1}, Lcom/stericsson/hardware/fm/FmTransmitterImpl;-><init>(Lcom/stericsson/hardware/fm/IFmTransmitter;)V
864 + return-object v2
865 +.end method
866 diff -Npruw stock-framework/smali/android/app/ContextImpl.smali pdroid-framework/smali/android/app/ContextImpl.smali
867 --- stock-framework/smali/android/app/ContextImpl.smali 2013-08-15 23:20:15.428304555 -0500
868 +++ pdroid-framework/smali/android/app/ContextImpl.smali 2013-08-15 23:20:06.208304828 -0500
869 @@ -36,6 +36,8 @@
871 .field private static sNextPerContextServiceCacheIndex:I
873 +.field private static sOuterContext:Landroid/content/Context;
875 .field private static final sSharedPrefs:Ljava/util/HashMap;
876 .annotation system Ldalvik/annotation/Signature;
877 value = {
878 @@ -118,6 +120,10 @@
880 sput-object v0, Landroid/app/ContextImpl;->sSharedPrefs:Ljava/util/HashMap;
882 + const/4 v0, 0x0
884 + sput-object v0, Landroid/app/ContextImpl;->sOuterContext:Landroid/content/Context;
886 new-array v0, v1, [Ljava/lang/String;
888 sput-object v0, Landroid/app/ContextImpl;->EMPTY_FILE_LIST:[Ljava/lang/String;
889 @@ -430,7 +436,7 @@
891 invoke-static {v0, v1}, Landroid/app/ContextImpl;->registerService(Ljava/lang/String;Landroid/app/ContextImpl$ServiceFetcher;)V
893 - const-string/jumbo v0, "window"
894 + const-string/jumbo v0, "privacy"
896 new-instance v1, Landroid/app/ContextImpl$38;
898 @@ -438,7 +444,7 @@
900 invoke-static {v0, v1}, Landroid/app/ContextImpl;->registerService(Ljava/lang/String;Landroid/app/ContextImpl$ServiceFetcher;)V
902 - const-string/jumbo v0, "user"
903 + const-string/jumbo v0, "window"
905 new-instance v1, Landroid/app/ContextImpl$39;
907 @@ -446,7 +452,7 @@
909 invoke-static {v0, v1}, Landroid/app/ContextImpl;->registerService(Ljava/lang/String;Landroid/app/ContextImpl$ServiceFetcher;)V
911 - const-string v0, "appops"
912 + const-string/jumbo v0, "user"
914 new-instance v1, Landroid/app/ContextImpl$40;
916 @@ -454,7 +460,7 @@
918 invoke-static {v0, v1}, Landroid/app/ContextImpl;->registerService(Ljava/lang/String;Landroid/app/ContextImpl$ServiceFetcher;)V
920 - const-string/jumbo v0, "profile"
921 + const-string v0, "appops"
923 new-instance v1, Landroid/app/ContextImpl$41;
925 @@ -462,7 +468,7 @@
927 invoke-static {v0, v1}, Landroid/app/ContextImpl;->registerService(Ljava/lang/String;Landroid/app/ContextImpl$ServiceFetcher;)V
929 - const-string v0, "WiMax"
930 + const-string/jumbo v0, "profile"
932 new-instance v1, Landroid/app/ContextImpl$42;
934 @@ -470,7 +476,7 @@
936 invoke-static {v0, v1}, Landroid/app/ContextImpl;->registerService(Ljava/lang/String;Landroid/app/ContextImpl$ServiceFetcher;)V
938 - const-string v0, "fm_receiver"
939 + const-string v0, "WiMax"
941 new-instance v1, Landroid/app/ContextImpl$43;
943 @@ -478,7 +484,7 @@
945 invoke-static {v0, v1}, Landroid/app/ContextImpl;->registerService(Ljava/lang/String;Landroid/app/ContextImpl$ServiceFetcher;)V
947 - const-string v0, "fm_transmitter"
948 + const-string v0, "fm_receiver"
950 new-instance v1, Landroid/app/ContextImpl$44;
952 @@ -486,6 +492,14 @@
954 invoke-static {v0, v1}, Landroid/app/ContextImpl;->registerService(Ljava/lang/String;Landroid/app/ContextImpl$ServiceFetcher;)V
956 + const-string v0, "fm_transmitter"
958 + new-instance v1, Landroid/app/ContextImpl$45;
960 + invoke-direct {v1}, Landroid/app/ContextImpl$45;-><init>()V
962 + invoke-static {v0, v1}, Landroid/app/ContextImpl;->registerService(Ljava/lang/String;Landroid/app/ContextImpl$ServiceFetcher;)V
964 return-void
965 .end method
967 @@ -518,8 +532,21 @@
969 iput-object v0, p0, Landroid/app/ContextImpl;->mServiceCache:Ljava/util/ArrayList;
971 + sget-object v0, Landroid/app/ContextImpl;->sOuterContext:Landroid/content/Context;
973 + if-eqz v0, :cond_26
975 + const-string v0, "ContextImpl"
977 + const-string v1, "PDroid:ContextImpl: ContextImpl being created but already has sOuterContext"
979 + invoke-static {v0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
981 + :cond_26
982 iput-object p0, p0, Landroid/app/ContextImpl;->mOuterContext:Landroid/content/Context;
984 + sput-object p0, Landroid/app/ContextImpl;->sOuterContext:Landroid/content/Context;
986 return-void
987 .end method
989 @@ -580,8 +607,21 @@
991 iput-object v0, p0, Landroid/app/ContextImpl;->mDisplay:Landroid/view/Display;
993 + sget-object v0, Landroid/app/ContextImpl;->sOuterContext:Landroid/content/Context;
995 + if-eqz v0, :cond_42
997 + const-string v0, "ContextImpl"
999 + const-string v1, "PDroid:ContextImpl: ContextImpl being created but already has sOuterContext"
1001 + invoke-static {v0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
1003 + :cond_42
1004 iput-object p0, p0, Landroid/app/ContextImpl;->mOuterContext:Landroid/content/Context;
1006 + sput-object p0, Landroid/app/ContextImpl;->sOuterContext:Landroid/content/Context;
1008 return-void
1009 .end method
1011 @@ -1085,6 +1125,14 @@
1012 throw v0
1013 .end method
1015 +.method static final getStaticOuterContext()Landroid/content/Context;
1016 + .registers 1
1018 + sget-object v0, Landroid/app/ContextImpl;->sOuterContext:Landroid/content/Context;
1020 + return-object v0
1021 +.end method
1023 .method private getWallpaperManager()Landroid/app/WallpaperManager;
1024 .registers 2
1026 @@ -5259,10 +5307,23 @@
1027 .end method
1029 .method final setOuterContext(Landroid/content/Context;)V
1030 - .registers 2
1031 + .registers 4
1033 + sget-object v0, Landroid/app/ContextImpl;->sOuterContext:Landroid/content/Context;
1035 + if-eqz v0, :cond_b
1037 + const-string v0, "ContextImpl"
1039 + const-string v1, "PDroid:ContextImpl: ContextImpl being created but already has sOuterContext"
1041 + invoke-static {v0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
1043 + :cond_b
1044 iput-object p1, p0, Landroid/app/ContextImpl;->mOuterContext:Landroid/content/Context;
1046 + sput-object p1, Landroid/app/ContextImpl;->sOuterContext:Landroid/content/Context;
1048 return-void
1049 .end method
1051 diff -Npruw stock-framework/smali/android/app/Instrumentation$1.smali pdroid-framework/smali/android/app/Instrumentation$1.smali
1052 --- stock-framework/smali/android/app/Instrumentation$1.smali 2013-08-15 23:20:15.528304552 -0500
1053 +++ pdroid-framework/smali/android/app/Instrumentation$1.smali 2013-08-15 23:20:06.308304825 -0500
1054 @@ -1,14 +1,96 @@
1055 -.class synthetic Landroid/app/Instrumentation$1;
1056 +.class Landroid/app/Instrumentation$1;
1057 .super Ljava/lang/Object;
1058 .source "Instrumentation.java"
1060 +# interfaces
1061 +.implements Ljava/lang/Runnable;
1064 # annotations
1065 -.annotation system Ldalvik/annotation/EnclosingClass;
1066 - value = Landroid/app/Instrumentation;
1067 +.annotation system Ldalvik/annotation/EnclosingMethod;
1068 + 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;
1069 .end annotation
1071 .annotation system Ldalvik/annotation/InnerClass;
1072 - accessFlags = 0x1008
1073 + accessFlags = 0x0
1074 name = null
1075 .end annotation
1078 +# instance fields
1079 +.field final synthetic this$0:Landroid/app/Instrumentation;
1081 +.field final synthetic val$tmp:Landroid/content/Context;
1084 +# direct methods
1085 +.method constructor <init>(Landroid/app/Instrumentation;Landroid/content/Context;)V
1086 + .registers 3
1088 + iput-object p1, p0, Landroid/app/Instrumentation$1;->this$0:Landroid/app/Instrumentation;
1090 + iput-object p2, p0, Landroid/app/Instrumentation$1;->val$tmp:Landroid/content/Context;
1092 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
1094 + return-void
1095 +.end method
1098 +# virtual methods
1099 +.method public run()V
1100 + .registers 5
1102 + const-wide/16 v2, 0x3e8
1104 + :try_start_2
1105 + invoke-static {v2, v3}, Ljava/lang/Thread;->sleep(J)V
1106 + :try_end_5
1107 + .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_5} :catch_35
1109 + :goto_5
1110 + new-instance v1, Landroid/content/Intent;
1112 + const-string v2, "android.privacy.BLOCKED_PHONE_CALL"
1114 + invoke-direct {v1, v2}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
1116 + new-instance v0, Landroid/os/Bundle;
1118 + invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
1120 + const-string/jumbo v2, "packageName"
1122 + iget-object v3, p0, Landroid/app/Instrumentation$1;->val$tmp:Landroid/content/Context;
1124 + invoke-virtual {v3}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
1126 + move-result-object v3
1128 + invoke-virtual {v0, v2, v3}, Landroid/os/Bundle;->putString(Ljava/lang/String;Ljava/lang/String;)V
1130 + const-string/jumbo v2, "phoneState"
1132 + const/4 v3, 0x0
1134 + invoke-virtual {v0, v2, v3}, Landroid/os/Bundle;->putInt(Ljava/lang/String;I)V
1136 + invoke-virtual {v1, v0}, Landroid/content/Intent;->putExtras(Landroid/os/Bundle;)Landroid/content/Intent;
1138 + iget-object v2, p0, Landroid/app/Instrumentation$1;->val$tmp:Landroid/content/Context;
1140 + invoke-virtual {v2, v1}, Landroid/content/Context;->sendBroadcast(Landroid/content/Intent;)V
1142 + const-string v2, "PrivacyContext"
1144 + const-string/jumbo v3, "sent privacy intent"
1146 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
1148 + return-void
1150 + :catch_35
1151 + move-exception v2
1153 + goto :goto_5
1154 +.end method
1155 diff -Npruw stock-framework/smali/android/app/Instrumentation$2.smali pdroid-framework/smali/android/app/Instrumentation$2.smali
1156 --- stock-framework/smali/android/app/Instrumentation$2.smali 1969-12-31 18:00:00.000000000 -0600
1157 +++ pdroid-framework/smali/android/app/Instrumentation$2.smali 2013-08-15 23:20:06.308304825 -0500
1158 @@ -0,0 +1,96 @@
1159 +.class Landroid/app/Instrumentation$2;
1160 +.super Ljava/lang/Object;
1161 +.source "Instrumentation.java"
1163 +# interfaces
1164 +.implements Ljava/lang/Runnable;
1167 +# annotations
1168 +.annotation system Ldalvik/annotation/EnclosingMethod;
1169 + 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
1170 +.end annotation
1172 +.annotation system Ldalvik/annotation/InnerClass;
1173 + accessFlags = 0x0
1174 + name = null
1175 +.end annotation
1178 +# instance fields
1179 +.field final synthetic this$0:Landroid/app/Instrumentation;
1181 +.field final synthetic val$tmp:Landroid/content/Context;
1184 +# direct methods
1185 +.method constructor <init>(Landroid/app/Instrumentation;Landroid/content/Context;)V
1186 + .registers 3
1188 + iput-object p1, p0, Landroid/app/Instrumentation$2;->this$0:Landroid/app/Instrumentation;
1190 + iput-object p2, p0, Landroid/app/Instrumentation$2;->val$tmp:Landroid/content/Context;
1192 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
1194 + return-void
1195 +.end method
1198 +# virtual methods
1199 +.method public run()V
1200 + .registers 5
1202 + const-wide/16 v2, 0x3e8
1204 + :try_start_2
1205 + invoke-static {v2, v3}, Ljava/lang/Thread;->sleep(J)V
1206 + :try_end_5
1207 + .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_5} :catch_35
1209 + :goto_5
1210 + new-instance v1, Landroid/content/Intent;
1212 + const-string v2, "android.privacy.BLOCKED_PHONE_CALL"
1214 + invoke-direct {v1, v2}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
1216 + new-instance v0, Landroid/os/Bundle;
1218 + invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
1220 + const-string/jumbo v2, "packageName"
1222 + iget-object v3, p0, Landroid/app/Instrumentation$2;->val$tmp:Landroid/content/Context;
1224 + invoke-virtual {v3}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
1226 + move-result-object v3
1228 + invoke-virtual {v0, v2, v3}, Landroid/os/Bundle;->putString(Ljava/lang/String;Ljava/lang/String;)V
1230 + const-string/jumbo v2, "phoneState"
1232 + const/4 v3, 0x0
1234 + invoke-virtual {v0, v2, v3}, Landroid/os/Bundle;->putInt(Ljava/lang/String;I)V
1236 + invoke-virtual {v1, v0}, Landroid/content/Intent;->putExtras(Landroid/os/Bundle;)Landroid/content/Intent;
1238 + iget-object v2, p0, Landroid/app/Instrumentation$2;->val$tmp:Landroid/content/Context;
1240 + invoke-virtual {v2, v1}, Landroid/content/Context;->sendBroadcast(Landroid/content/Intent;)V
1242 + const-string v2, "PrivacyContext"
1244 + const-string/jumbo v3, "sent privacy intent"
1246 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
1248 + return-void
1250 + :catch_35
1251 + move-exception v2
1253 + goto :goto_5
1254 +.end method
1255 diff -Npruw stock-framework/smali/android/app/Instrumentation$3.smali pdroid-framework/smali/android/app/Instrumentation$3.smali
1256 --- stock-framework/smali/android/app/Instrumentation$3.smali 1969-12-31 18:00:00.000000000 -0600
1257 +++ pdroid-framework/smali/android/app/Instrumentation$3.smali 2013-08-15 23:20:06.308304825 -0500
1258 @@ -0,0 +1,96 @@
1259 +.class Landroid/app/Instrumentation$3;
1260 +.super Ljava/lang/Object;
1261 +.source "Instrumentation.java"
1263 +# interfaces
1264 +.implements Ljava/lang/Runnable;
1267 +# annotations
1268 +.annotation system Ldalvik/annotation/EnclosingMethod;
1269 + 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;
1270 +.end annotation
1272 +.annotation system Ldalvik/annotation/InnerClass;
1273 + accessFlags = 0x0
1274 + name = null
1275 +.end annotation
1278 +# instance fields
1279 +.field final synthetic this$0:Landroid/app/Instrumentation;
1281 +.field final synthetic val$tmp:Landroid/content/Context;
1284 +# direct methods
1285 +.method constructor <init>(Landroid/app/Instrumentation;Landroid/content/Context;)V
1286 + .registers 3
1288 + iput-object p1, p0, Landroid/app/Instrumentation$3;->this$0:Landroid/app/Instrumentation;
1290 + iput-object p2, p0, Landroid/app/Instrumentation$3;->val$tmp:Landroid/content/Context;
1292 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
1294 + return-void
1295 +.end method
1298 +# virtual methods
1299 +.method public run()V
1300 + .registers 5
1302 + const-wide/16 v2, 0x3e8
1304 + :try_start_2
1305 + invoke-static {v2, v3}, Ljava/lang/Thread;->sleep(J)V
1306 + :try_end_5
1307 + .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_5} :catch_35
1309 + :goto_5
1310 + new-instance v1, Landroid/content/Intent;
1312 + const-string v2, "android.privacy.BLOCKED_PHONE_CALL"
1314 + invoke-direct {v1, v2}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
1316 + new-instance v0, Landroid/os/Bundle;
1318 + invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
1320 + const-string/jumbo v2, "packageName"
1322 + iget-object v3, p0, Landroid/app/Instrumentation$3;->val$tmp:Landroid/content/Context;
1324 + invoke-virtual {v3}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
1326 + move-result-object v3
1328 + invoke-virtual {v0, v2, v3}, Landroid/os/Bundle;->putString(Ljava/lang/String;Ljava/lang/String;)V
1330 + const-string/jumbo v2, "phoneState"
1332 + const/4 v3, 0x0
1334 + invoke-virtual {v0, v2, v3}, Landroid/os/Bundle;->putInt(Ljava/lang/String;I)V
1336 + invoke-virtual {v1, v0}, Landroid/content/Intent;->putExtras(Landroid/os/Bundle;)Landroid/content/Intent;
1338 + iget-object v2, p0, Landroid/app/Instrumentation$3;->val$tmp:Landroid/content/Context;
1340 + invoke-virtual {v2, v1}, Landroid/content/Context;->sendBroadcast(Landroid/content/Intent;)V
1342 + const-string v2, "PrivacyContext"
1344 + const-string/jumbo v3, "sent privacy intent"
1346 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
1348 + return-void
1350 + :catch_35
1351 + move-exception v2
1353 + goto :goto_5
1354 +.end method
1355 diff -Npruw stock-framework/smali/android/app/Instrumentation$4.smali pdroid-framework/smali/android/app/Instrumentation$4.smali
1356 --- stock-framework/smali/android/app/Instrumentation$4.smali 1969-12-31 18:00:00.000000000 -0600
1357 +++ pdroid-framework/smali/android/app/Instrumentation$4.smali 2013-08-15 23:20:06.308304825 -0500
1358 @@ -0,0 +1,96 @@
1359 +.class Landroid/app/Instrumentation$4;
1360 +.super Ljava/lang/Object;
1361 +.source "Instrumentation.java"
1363 +# interfaces
1364 +.implements Ljava/lang/Runnable;
1367 +# annotations
1368 +.annotation system Ldalvik/annotation/EnclosingMethod;
1369 + 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;
1370 +.end annotation
1372 +.annotation system Ldalvik/annotation/InnerClass;
1373 + accessFlags = 0x0
1374 + name = null
1375 +.end annotation
1378 +# instance fields
1379 +.field final synthetic this$0:Landroid/app/Instrumentation;
1381 +.field final synthetic val$tmp:Landroid/content/Context;
1384 +# direct methods
1385 +.method constructor <init>(Landroid/app/Instrumentation;Landroid/content/Context;)V
1386 + .registers 3
1388 + iput-object p1, p0, Landroid/app/Instrumentation$4;->this$0:Landroid/app/Instrumentation;
1390 + iput-object p2, p0, Landroid/app/Instrumentation$4;->val$tmp:Landroid/content/Context;
1392 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
1394 + return-void
1395 +.end method
1398 +# virtual methods
1399 +.method public run()V
1400 + .registers 5
1402 + const-wide/16 v2, 0x3e8
1404 + :try_start_2
1405 + invoke-static {v2, v3}, Ljava/lang/Thread;->sleep(J)V
1406 + :try_end_5
1407 + .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_5} :catch_35
1409 + :goto_5
1410 + new-instance v1, Landroid/content/Intent;
1412 + const-string v2, "android.privacy.BLOCKED_PHONE_CALL"
1414 + invoke-direct {v1, v2}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
1416 + new-instance v0, Landroid/os/Bundle;
1418 + invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
1420 + const-string/jumbo v2, "packageName"
1422 + iget-object v3, p0, Landroid/app/Instrumentation$4;->val$tmp:Landroid/content/Context;
1424 + invoke-virtual {v3}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
1426 + move-result-object v3
1428 + invoke-virtual {v0, v2, v3}, Landroid/os/Bundle;->putString(Ljava/lang/String;Ljava/lang/String;)V
1430 + const-string/jumbo v2, "phoneState"
1432 + const/4 v3, 0x0
1434 + invoke-virtual {v0, v2, v3}, Landroid/os/Bundle;->putInt(Ljava/lang/String;I)V
1436 + invoke-virtual {v1, v0}, Landroid/content/Intent;->putExtras(Landroid/os/Bundle;)Landroid/content/Intent;
1438 + iget-object v2, p0, Landroid/app/Instrumentation$4;->val$tmp:Landroid/content/Context;
1440 + invoke-virtual {v2, v1}, Landroid/content/Context;->sendBroadcast(Landroid/content/Intent;)V
1442 + const-string v2, "PrivacyContext"
1444 + const-string/jumbo v3, "sent privacy intent"
1446 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
1448 + return-void
1450 + :catch_35
1451 + move-exception v2
1453 + goto :goto_5
1454 +.end method
1455 diff -Npruw stock-framework/smali/android/app/Instrumentation.smali pdroid-framework/smali/android/app/Instrumentation.smali
1456 --- stock-framework/smali/android/app/Instrumentation.smali 2013-08-15 23:20:15.532304552 -0500
1457 +++ pdroid-framework/smali/android/app/Instrumentation.smali 2013-08-15 23:20:06.316304825 -0500
1458 @@ -6,7 +6,6 @@
1459 # annotations
1460 .annotation system Ldalvik/annotation/MemberClasses;
1461 value = {
1462 - Landroid/app/Instrumentation$1;,
1463 Landroid/app/Instrumentation$Idler;,
1464 Landroid/app/Instrumentation$ActivityGoing;,
1465 Landroid/app/Instrumentation$ActivityWaiter;,
1466 @@ -53,6 +52,8 @@
1468 .field private mPerformanceCollector:Landroid/os/PerformanceCollector;
1470 +.field private mPrvSvc:Landroid/privacy/PrivacySettingsManager;
1472 .field private mRunner:Ljava/lang/Thread;
1474 .field private final mSync:Ljava/lang/Object;
1475 @@ -899,182 +900,131 @@
1476 .end method
1478 .method public execStartActivitiesAsUser(Landroid/content/Context;Landroid/os/IBinder;Landroid/os/IBinder;Landroid/app/Activity;[Landroid/content/Intent;Landroid/os/Bundle;I)V
1479 - .registers 21
1481 - move-object v2, p2
1483 - check-cast v2, Landroid/app/IApplicationThread;
1485 - iget-object v1, p0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1487 - if-eqz v1, :cond_37
1489 - iget-object v3, p0, Landroid/app/Instrumentation;->mSync:Ljava/lang/Object;
1491 - monitor-enter v3
1493 - :try_start_a
1494 - iget-object v1, p0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1496 - invoke-interface {v1}, Ljava/util/List;->size()I
1498 - move-result v9
1500 - const/4 v11, 0x0
1502 - :goto_11
1503 - if-ge v11, v9, :cond_36
1504 + .registers 32
1506 - iget-object v1, p0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1508 - invoke-interface {v1, v11}, Ljava/util/List;->get(I)Ljava/lang/Object;
1510 - move-result-object v10
1512 - check-cast v10, Landroid/app/Instrumentation$ActivityMonitor;
1514 - const/4 v1, 0x0
1516 - const/4 v4, 0x0
1518 - aget-object v4, p5, v4
1520 - invoke-virtual {v10, p1, v1, v4}, Landroid/app/Instrumentation$ActivityMonitor;->match(Landroid/content/Context;Landroid/app/Activity;Landroid/content/Intent;)Z
1521 + move-object/from16 v3, p2
1523 - move-result v1
1524 + check-cast v3, Landroid/app/IApplicationThread;
1526 - if-eqz v1, :cond_33
1527 + const-string v2, "Instrumentation"
1529 - iget v1, v10, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
1530 + new-instance v4, Ljava/lang/StringBuilder;
1532 - add-int/lit8 v1, v1, 0x1
1533 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
1535 - iput v1, v10, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
1536 + const-string v5, "PDroid:Instrumentation:execStartActivitiesAsUser: execStartActivitiesAsUser for "
1538 - invoke-virtual {v10}, Landroid/app/Instrumentation$ActivityMonitor;->isBlocking()Z
1539 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1541 - move-result v1
1542 + move-result-object v4
1544 - if-eqz v1, :cond_36
1545 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
1547 - monitor-exit v3
1548 + move-result-object v5
1550 - :goto_32
1551 - return-void
1552 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1554 - :cond_33
1555 - add-int/lit8 v11, v11, 0x1
1556 + move-result-object v4
1558 - goto :goto_11
1559 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
1561 - :cond_36
1562 - monitor-exit v3
1563 - :try_end_37
1564 - .catchall {:try_start_a .. :try_end_37} :catchall_5b
1565 + move-result-object v4
1567 - :cond_37
1568 - :try_start_37
1569 - move-object/from16 v0, p5
1570 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
1572 - array-length v1, v0
1573 + if-eqz p5, :cond_6f
1575 - new-array v5, v1, [Ljava/lang/String;
1576 + const/4 v14, 0x0
1578 - const/4 v11, 0x0
1579 + move-object/from16 v13, p5
1581 - :goto_3d
1582 - move-object/from16 v0, p5
1583 + array-length v0, v13
1585 - array-length v1, v0
1586 + move/from16 v20, v0
1588 - if-ge v11, v1, :cond_5e
1589 + const/16 v18, 0x0
1591 - aget-object v1, p5, v11
1592 + :goto_2a
1593 + move/from16 v0, v18
1595 - invoke-virtual {v1}, Landroid/content/Intent;->migrateExtraStreamToClipData()Z
1596 + move/from16 v1, v20
1598 - aget-object v1, p5, v11
1599 + if-ge v0, v1, :cond_51
1601 - invoke-virtual {v1}, Landroid/content/Intent;->prepareToLeaveProcess()V
1602 + aget-object v19, v13, v18
1604 - aget-object v1, p5, v11
1605 + :try_start_32
1606 + invoke-virtual/range {v19 .. v19}, Landroid/content/Intent;->getAction()Ljava/lang/String;
1608 - invoke-virtual {p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
1609 + move-result-object v2
1611 - move-result-object v3
1612 + if-eqz v2, :cond_cc
1614 - invoke-virtual {v1, v3}, Landroid/content/Intent;->resolveTypeIfNeeded(Landroid/content/ContentResolver;)Ljava/lang/String;
1615 + invoke-virtual/range {v19 .. v19}, Landroid/content/Intent;->getAction()Ljava/lang/String;
1617 - move-result-object v1
1618 + move-result-object v2
1620 - aput-object v1, v5, v11
1621 - :try_end_58
1622 - .catch Landroid/os/RemoteException; {:try_start_37 .. :try_end_58} :catch_79
1623 + const-string v4, "android.intent.action.CALL"
1625 - add-int/lit8 v11, v11, 0x1
1626 + invoke-virtual {v2, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
1628 - goto :goto_3d
1629 + move-result v2
1631 - :catchall_5b
1632 - move-exception v1
1633 + if-nez v2, :cond_50
1635 - :try_start_5c
1636 - monitor-exit v3
1637 - :try_end_5d
1638 - .catchall {:try_start_5c .. :try_end_5d} :catchall_5b
1639 + invoke-virtual/range {v19 .. v19}, Landroid/content/Intent;->getAction()Ljava/lang/String;
1641 - throw v1
1642 + move-result-object v2
1644 - :cond_5e
1645 - :try_start_5e
1646 - invoke-static {}, Landroid/app/ActivityManagerNative;->getDefault()Landroid/app/IActivityManager;
1647 + const-string v4, "android.intent.action.DIAL"
1649 - move-result-object v1
1650 + invoke-virtual {v2, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
1651 + :try_end_4d
1652 + .catch Ljava/lang/Exception; {:try_start_32 .. :try_end_4d} :catch_ae
1654 - invoke-virtual {p1}, Landroid/content/Context;->getBasePackageName()Ljava/lang/String;
1655 + move-result v2
1657 - move-result-object v3
1658 + if-eqz v2, :cond_cc
1660 - move-object/from16 v4, p5
1661 + :cond_50
1662 + const/4 v14, 0x1
1664 - move-object/from16 v6, p3
1665 + :cond_51
1666 + if-nez v14, :cond_d0
1668 - move-object/from16 v7, p6
1669 + const-string v2, "Instrumentation"
1671 - move/from16 v8, p7
1672 + new-instance v4, Ljava/lang/StringBuilder;
1674 - invoke-interface/range {v1 .. v8}, Landroid/app/IActivityManager;->startActivities(Landroid/app/IApplicationThread;Ljava/lang/String;[Landroid/content/Intent;[Ljava/lang/String;Landroid/os/IBinder;Landroid/os/Bundle;I)I
1675 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
1677 - move-result v12
1678 + const-string v5, "PDroid:Instrumentation:execStartActivitiesAsUser: No provided intents triggered checking for "
1680 - const/4 v1, 0x0
1681 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1683 - aget-object v1, p5, v1
1684 + move-result-object v4
1686 - invoke-static {v12, v1}, Landroid/app/Instrumentation;->checkStartActivityResult(ILjava/lang/Object;)V
1687 - :try_end_78
1688 - .catch Landroid/os/RemoteException; {:try_start_5e .. :try_end_78} :catch_79
1689 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
1691 - goto :goto_32
1692 + move-result-object v5
1694 - :catch_79
1695 - move-exception v1
1696 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1698 - goto :goto_32
1699 -.end method
1700 + move-result-object v4
1702 -.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;
1703 - .registers 26
1704 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
1706 - move-object/from16 v3, p2
1707 + move-result-object v4
1709 - check-cast v3, Landroid/app/IApplicationThread;
1710 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
1712 + :cond_6f
1713 + :goto_6f
1714 move-object/from16 v0, p0
1716 iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1718 - if-eqz v2, :cond_4e
1719 + if-eqz v2, :cond_289
1721 move-object/from16 v0, p0
1723 @@ -1082,540 +1032,2621 @@
1725 monitor-enter v4
1727 - :try_start_f
1728 + :try_start_7a
1729 move-object/from16 v0, p0
1731 iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1733 invoke-interface {v2}, Ljava/util/List;->size()I
1735 - move-result v14
1736 + move-result v10
1738 - const/16 v16, 0x0
1739 + const/16 v17, 0x0
1741 - :goto_19
1742 - move/from16 v0, v16
1743 + :goto_84
1744 + move/from16 v0, v17
1746 - if-ge v0, v14, :cond_4d
1747 + if-ge v0, v10, :cond_288
1749 move-object/from16 v0, p0
1751 iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1753 - move/from16 v0, v16
1754 + move/from16 v0, v17
1756 invoke-interface {v2, v0}, Ljava/util/List;->get(I)Ljava/lang/Object;
1758 - move-result-object v15
1759 + move-result-object v12
1761 - check-cast v15, Landroid/app/Instrumentation$ActivityMonitor;
1762 + check-cast v12, Landroid/app/Instrumentation$ActivityMonitor;
1764 const/4 v2, 0x0
1766 - move-object/from16 v0, p1
1767 + const/4 v5, 0x0
1769 - move-object/from16 v1, p5
1770 + aget-object v5, p5, v5
1772 - invoke-virtual {v15, v0, v2, v1}, Landroid/app/Instrumentation$ActivityMonitor;->match(Landroid/content/Context;Landroid/app/Activity;Landroid/content/Intent;)Z
1773 + move-object/from16 v0, p1
1775 + invoke-virtual {v12, v0, v2, v5}, Landroid/app/Instrumentation$ActivityMonitor;->match(Landroid/content/Context;Landroid/app/Activity;Landroid/content/Intent;)Z
1777 move-result v2
1779 - if-eqz v2, :cond_4a
1780 + if-eqz v2, :cond_284
1782 - iget v2, v15, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
1783 + iget v2, v12, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
1785 add-int/lit8 v2, v2, 0x1
1787 - iput v2, v15, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
1788 + iput v2, v12, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
1790 - invoke-virtual {v15}, Landroid/app/Instrumentation$ActivityMonitor;->isBlocking()Z
1791 + invoke-virtual {v12}, Landroid/app/Instrumentation$ActivityMonitor;->isBlocking()Z
1793 move-result v2
1795 - if-eqz v2, :cond_4d
1797 - if-ltz p6, :cond_48
1799 - invoke-virtual {v15}, Landroid/app/Instrumentation$ActivityMonitor;->getResult()Landroid/app/Instrumentation$ActivityResult;
1800 + if-eqz v2, :cond_288
1802 - move-result-object v2
1804 - :goto_46
1805 monitor-exit v4
1806 + :try_end_ad
1807 + .catchall {:try_start_7a .. :try_end_ad} :catchall_2b0
1809 - :goto_47
1810 - return-object v2
1811 + :goto_ad
1812 + return-void
1814 - :cond_48
1815 - const/4 v2, 0x0
1816 + :catch_ae
1817 + move-exception v15
1819 - goto :goto_46
1820 + const-string v2, "Instrumentation"
1822 - :cond_4a
1823 - add-int/lit8 v16, v16, 0x1
1824 + new-instance v4, Ljava/lang/StringBuilder;
1826 - goto :goto_19
1827 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
1829 - :cond_4d
1830 - monitor-exit v4
1831 - :try_end_4e
1832 - .catchall {:try_start_f .. :try_end_4e} :catchall_84
1833 + const-string v5, "PDroid:Instrumentation:execStartActivitiesAsUser: Exception occurred when checking intents for "
1835 - :cond_4e
1836 - :try_start_4e
1837 - invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->migrateExtraStreamToClipData()Z
1838 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1840 - invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->prepareToLeaveProcess()V
1841 + move-result-object v4
1843 - invoke-static {}, Landroid/app/ActivityManagerNative;->getDefault()Landroid/app/IActivityManager;
1844 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
1846 - move-result-object v2
1847 + move-result-object v5
1849 - invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getBasePackageName()Ljava/lang/String;
1850 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1852 move-result-object v4
1854 - invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
1855 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
1857 - move-result-object v5
1858 + move-result-object v4
1860 - move-object/from16 v0, p5
1861 + invoke-static {v2, v4, v15}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
1863 - invoke-virtual {v0, v5}, Landroid/content/Intent;->resolveTypeIfNeeded(Landroid/content/ContentResolver;)Ljava/lang/String;
1864 + const/4 v14, 0x1
1866 - move-result-object v6
1867 + :cond_cc
1868 + add-int/lit8 v18, v18, 0x1
1870 - if-eqz p4, :cond_87
1871 + goto/16 :goto_2a
1873 - move-object/from16 v0, p4
1874 + :cond_d0
1875 + const-string v2, "Instrumentation"
1877 - iget-object v8, v0, Landroid/app/Activity;->mEmbeddedID:Ljava/lang/String;
1878 + new-instance v4, Ljava/lang/StringBuilder;
1880 - :goto_6c
1881 - const/4 v10, 0x0
1882 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
1884 - const/4 v11, 0x0
1885 + const-string v5, "PDroid:Instrumentation:execStartActivitiesAsUser: One or more intents triggered checking for "
1887 - const/4 v12, 0x0
1888 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1890 - move-object/from16 v5, p5
1891 + move-result-object v4
1893 - move-object/from16 v7, p3
1894 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
1896 - move/from16 v9, p6
1897 + move-result-object v5
1899 - move-object/from16 v13, p7
1900 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1902 - invoke-interface/range {v2 .. v13}, Landroid/app/IActivityManager;->startActivity(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILjava/lang/String;Landroid/os/ParcelFileDescriptor;Landroid/os/Bundle;)I
1903 + move-result-object v4
1905 - move-result v17
1906 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
1908 - move/from16 v0, v17
1909 + move-result-object v4
1911 - move-object/from16 v1, p5
1912 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
1914 - invoke-static {v0, v1}, Landroid/app/Instrumentation;->checkStartActivityResult(ILjava/lang/Object;)V
1915 - :try_end_82
1916 - .catch Landroid/os/RemoteException; {:try_start_4e .. :try_end_82} :catch_89
1917 + move-object/from16 v0, p0
1919 - :goto_82
1920 - const/4 v2, 0x0
1921 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
1923 - goto :goto_47
1924 + if-eqz v2, :cond_fc
1926 - :catchall_84
1927 - move-exception v2
1928 + move-object/from16 v0, p0
1930 - :try_start_85
1931 - monitor-exit v4
1932 - :try_end_86
1933 - .catchall {:try_start_85 .. :try_end_86} :catchall_84
1934 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
1936 - throw v2
1937 + invoke-virtual {v2}, Landroid/privacy/PrivacySettingsManager;->isServiceAvailable()Z
1939 - :cond_87
1940 - const/4 v8, 0x0
1941 + move-result v2
1943 - goto :goto_6c
1944 + if-nez v2, :cond_193
1946 - :catch_89
1947 - move-exception v2
1948 + :cond_fc
1949 + new-instance v2, Landroid/privacy/PrivacySettingsManager;
1951 - goto :goto_82
1952 -.end method
1953 + const-string/jumbo v4, "privacy"
1955 -.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;
1956 - .registers 29
1957 + invoke-static {v4}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
1959 - move-object/from16 v4, p2
1960 + move-result-object v4
1962 - check-cast v4, Landroid/app/IApplicationThread;
1963 + invoke-static {v4}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
1965 - move-object/from16 v0, p0
1966 + move-result-object v4
1968 - iget-object v3, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1969 + move-object/from16 v0, p1
1971 - if-eqz v3, :cond_56
1972 + invoke-direct {v2, v0, v4}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
1974 move-object/from16 v0, p0
1976 - iget-object v5, v0, Landroid/app/Instrumentation;->mSync:Ljava/lang/Object;
1978 - monitor-enter v5
1979 + iput-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
1981 - :try_start_f
1982 move-object/from16 v0, p0
1984 - iget-object v3, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1986 - invoke-interface {v3}, Ljava/util/List;->size()I
1987 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
1989 - move-result v16
1990 + if-eqz v2, :cond_18b
1992 - const/16 v18, 0x0
1993 + const-string v2, "Instrumentation"
1995 - :goto_19
1996 - move/from16 v0, v18
1997 + const-string v4, "PDroid:Instrumentation:execStartActivitiesAsUser: Obtained privacy service"
1999 - move/from16 v1, v16
2000 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2002 - if-ge v0, v1, :cond_55
2003 + :goto_11f
2004 + const/4 v11, 0x0
2006 move-object/from16 v0, p0
2008 - iget-object v3, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
2010 - move/from16 v0, v18
2011 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2013 - invoke-interface {v3, v0}, Ljava/util/List;->get(I)Ljava/lang/Object;
2014 + if-eqz v2, :cond_130
2016 - move-result-object v17
2017 + move-object/from16 v0, p0
2019 - check-cast v17, Landroid/app/Instrumentation$ActivityMonitor;
2020 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2022 - const/4 v3, 0x0
2023 + invoke-virtual {v2}, Landroid/privacy/PrivacySettingsManager;->isServiceAvailable()Z
2025 - move-object/from16 v0, v17
2026 + move-result v2
2028 - move-object/from16 v1, p1
2029 + if-nez v2, :cond_19b
2031 - move-object/from16 v2, p5
2032 + :cond_130
2033 + const-string v2, "Instrumentation"
2035 - invoke-virtual {v0, v1, v3, v2}, Landroid/app/Instrumentation$ActivityMonitor;->match(Landroid/content/Context;Landroid/app/Activity;Landroid/content/Intent;)Z
2036 + const-string v4, "PDroid:Instrumentation:execStartActivitiesAsUser: Privacy service not available - assuming permission denied"
2038 - move-result v3
2039 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2041 - if-eqz v3, :cond_52
2042 + const/4 v11, 0x0
2044 - move-object/from16 v0, v17
2045 + move-object/from16 v0, p0
2047 - iget v3, v0, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
2048 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2050 - add-int/lit8 v3, v3, 0x1
2051 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2053 - move-object/from16 v0, v17
2054 + move-result-object v4
2056 - iput v3, v0, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
2057 + const/4 v5, 0x1
2059 - invoke-virtual/range {v17 .. v17}, Landroid/app/Instrumentation$ActivityMonitor;->isBlocking()Z
2060 + const-string/jumbo v7, "phoneCall"
2062 - move-result v3
2063 + const/4 v8, 0x0
2065 - if-eqz v3, :cond_55
2066 + invoke-virtual {v2, v4, v5, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
2068 - if-ltz p6, :cond_50
2069 + :goto_148
2070 + if-nez v11, :cond_6f
2072 - invoke-virtual/range {v17 .. v17}, Landroid/app/Instrumentation$ActivityMonitor;->getResult()Landroid/app/Instrumentation$ActivityResult;
2073 + new-instance v16, Ljava/util/ArrayList;
2075 - move-result-object v3
2076 + move-object/from16 v0, p5
2078 - :goto_4e
2079 - monitor-exit v5
2080 + array-length v2, v0
2082 - :goto_4f
2083 - return-object v3
2084 + move-object/from16 v0, v16
2086 - :cond_50
2087 - const/4 v3, 0x0
2088 + invoke-direct {v0, v2}, Ljava/util/ArrayList;-><init>(I)V
2090 - goto :goto_4e
2091 + move-object/from16 v13, p5
2093 - :cond_52
2094 - add-int/lit8 v18, v18, 0x1
2095 + array-length v0, v13
2097 - goto :goto_19
2098 + move/from16 v20, v0
2100 - :cond_55
2101 - monitor-exit v5
2102 - :try_end_56
2103 - .catchall {:try_start_f .. :try_end_56} :catchall_90
2104 + const/16 v18, 0x0
2106 - :cond_56
2107 - :try_start_56
2108 - invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->migrateExtraStreamToClipData()Z
2109 + :goto_15b
2110 + move/from16 v0, v18
2112 - invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->prepareToLeaveProcess()V
2113 + move/from16 v1, v20
2115 - invoke-static {}, Landroid/app/ActivityManagerNative;->getDefault()Landroid/app/IActivityManager;
2116 + if-ge v0, v1, :cond_261
2118 - move-result-object v3
2119 + aget-object v19, v13, v18
2121 - invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getBasePackageName()Ljava/lang/String;
2122 + :try_start_163
2123 + invoke-virtual/range {v19 .. v19}, Landroid/content/Intent;->getAction()Ljava/lang/String;
2125 - move-result-object v5
2126 + move-result-object v2
2128 - invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
2129 + if-eqz v2, :cond_181
2131 - move-result-object v6
2132 + invoke-virtual/range {v19 .. v19}, Landroid/content/Intent;->getAction()Ljava/lang/String;
2134 - move-object/from16 v0, p5
2135 + move-result-object v2
2137 - invoke-virtual {v0, v6}, Landroid/content/Intent;->resolveTypeIfNeeded(Landroid/content/ContentResolver;)Ljava/lang/String;
2138 + const-string v4, "android.intent.action.CALL"
2140 - move-result-object v7
2141 + invoke-virtual {v2, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
2143 - if-eqz p4, :cond_93
2144 + move-result v2
2146 - move-object/from16 v0, p4
2147 + if-nez v2, :cond_188
2149 - iget-object v9, v0, Landroid/app/Activity;->mEmbeddedID:Ljava/lang/String;
2150 + invoke-virtual/range {v19 .. v19}, Landroid/content/Intent;->getAction()Ljava/lang/String;
2152 - :goto_74
2153 - const/4 v11, 0x0
2154 + move-result-object v2
2156 - const/4 v12, 0x0
2157 + const-string v4, "android.intent.action.DIAL"
2159 - const/4 v13, 0x0
2160 + invoke-virtual {v2, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
2162 - invoke-virtual/range {p8 .. p8}, Landroid/os/UserHandle;->getIdentifier()I
2163 + move-result v2
2165 - move-result v15
2166 + if-nez v2, :cond_188
2168 - move-object/from16 v6, p5
2169 + :cond_181
2170 + move-object/from16 v0, v16
2172 - move-object/from16 v8, p3
2173 + move-object/from16 v1, v19
2175 - move/from16 v10, p6
2176 + invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
2177 + :try_end_188
2178 + .catch Ljava/lang/Exception; {:try_start_163 .. :try_end_188} :catch_242
2180 - move-object/from16 v14, p7
2181 + :cond_188
2182 + :goto_188
2183 + add-int/lit8 v18, v18, 0x1
2185 - invoke-interface/range {v3 .. v15}, Landroid/app/IActivityManager;->startActivityAsUser(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILjava/lang/String;Landroid/os/ParcelFileDescriptor;Landroid/os/Bundle;I)I
2186 + goto :goto_15b
2188 - move-result v19
2189 + :cond_18b
2190 + const-string v2, "Instrumentation"
2192 - move/from16 v0, v19
2193 + const-string v4, "PDroid:Instrumentation:execStartActivitiesAsUser: Privacy service not obtained"
2195 - move-object/from16 v1, p5
2196 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2198 - invoke-static {v0, v1}, Landroid/app/Instrumentation;->checkStartActivityResult(ILjava/lang/Object;)V
2199 - :try_end_8e
2200 - .catch Landroid/os/RemoteException; {:try_start_56 .. :try_end_8e} :catch_95
2201 + goto :goto_11f
2203 - :goto_8e
2204 - const/4 v3, 0x0
2205 + :cond_193
2206 + const-string v2, "Instrumentation"
2208 - goto :goto_4f
2209 + const-string v4, "PDroid:Instrumentation:execStartActivitiesAsUser: Already had privacy service"
2211 - :catchall_90
2212 - move-exception v3
2213 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2215 - :try_start_91
2216 - monitor-exit v5
2217 - :try_end_92
2218 - .catchall {:try_start_91 .. :try_end_92} :catchall_90
2219 + goto :goto_11f
2221 - throw v3
2222 + :cond_19b
2223 + move-object/from16 v0, p0
2225 - :cond_93
2226 - const/4 v9, 0x0
2227 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2229 - goto :goto_74
2230 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2232 - :catch_95
2233 - move-exception v3
2234 + move-result-object v4
2236 - goto :goto_8e
2237 -.end method
2238 + invoke-virtual {v2, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
2240 -.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;
2241 - .registers 26
2242 + move-result-object v21
2244 - move-object/from16 v3, p2
2245 + if-nez v21, :cond_1d8
2247 - check-cast v3, Landroid/app/IApplicationThread;
2248 + const-string v2, "Instrumentation"
2250 - move-object/from16 v0, p0
2251 + new-instance v4, Ljava/lang/StringBuilder;
2253 - iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
2254 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
2256 - if-eqz v2, :cond_4e
2257 + const-string v5, "PDroid:Instrumentation:execStartActivitiesAsUser: Call intents allowed: No settings for package: "
2259 - move-object/from16 v0, p0
2260 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2262 - iget-object v4, v0, Landroid/app/Instrumentation;->mSync:Ljava/lang/Object;
2263 + move-result-object v4
2265 - monitor-enter v4
2266 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2268 - :try_start_f
2269 - move-object/from16 v0, p0
2270 + move-result-object v5
2272 - iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
2273 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2275 - invoke-interface {v2}, Ljava/util/List;->size()I
2276 + move-result-object v4
2278 - move-result v14
2279 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2281 - const/16 v16, 0x0
2282 + move-result-object v4
2284 - :goto_19
2285 - move/from16 v0, v16
2286 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2288 - if-ge v0, v14, :cond_4d
2289 + const/4 v11, 0x1
2291 move-object/from16 v0, p0
2293 - iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
2294 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2296 - move/from16 v0, v16
2297 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2299 - invoke-interface {v2, v0}, Ljava/util/List;->get(I)Ljava/lang/Object;
2300 + move-result-object v4
2302 - move-result-object v15
2303 + const/4 v5, 0x1
2305 - check-cast v15, Landroid/app/Instrumentation$ActivityMonitor;
2306 + const-string/jumbo v7, "phoneCall"
2308 - const/4 v2, 0x0
2309 + const/4 v8, 0x0
2311 - move-object/from16 v0, p1
2312 + invoke-virtual {v2, v4, v5, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
2314 - move-object/from16 v1, p5
2315 + goto/16 :goto_148
2317 - invoke-virtual {v15, v0, v2, v1}, Landroid/app/Instrumentation$ActivityMonitor;->match(Landroid/content/Context;Landroid/app/Activity;Landroid/content/Intent;)Z
2318 + :cond_1d8
2319 + invoke-virtual/range {v21 .. v21}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
2321 move-result v2
2323 - if-eqz v2, :cond_4a
2324 + if-nez v2, :cond_210
2326 - iget v2, v15, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
2327 + const-string v2, "Instrumentation"
2329 - add-int/lit8 v2, v2, 0x1
2330 + new-instance v4, Ljava/lang/StringBuilder;
2332 - iput v2, v15, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
2333 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
2335 - invoke-virtual {v15}, Landroid/app/Instrumentation$ActivityMonitor;->isBlocking()Z
2336 + const-string v5, "PDroid:Instrumentation:execStartActivitiesAsUser: Call intents allowed: Settings permit "
2338 - move-result v2
2339 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2341 - if-eqz v2, :cond_4d
2342 + move-result-object v4
2344 - if-ltz p6, :cond_48
2345 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2347 - invoke-virtual {v15}, Landroid/app/Instrumentation$ActivityMonitor;->getResult()Landroid/app/Instrumentation$ActivityResult;
2348 + move-result-object v5
2350 - move-result-object v2
2351 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2353 - :goto_46
2354 - monitor-exit v4
2355 + move-result-object v4
2357 - :goto_47
2358 - return-object v2
2359 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2361 - :cond_48
2362 - const/4 v2, 0x0
2363 + move-result-object v4
2365 - goto :goto_46
2366 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2368 - :cond_4a
2369 - add-int/lit8 v16, v16, 0x1
2370 + const/4 v11, 0x1
2372 - goto :goto_19
2373 + move-object/from16 v0, p0
2375 - :cond_4d
2376 - monitor-exit v4
2377 - :try_end_4e
2378 - .catchall {:try_start_f .. :try_end_4e} :catchall_84
2379 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2381 - :cond_4e
2382 - :try_start_4e
2383 - invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->migrateExtraStreamToClipData()Z
2384 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2386 - invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->prepareToLeaveProcess()V
2387 + move-result-object v4
2389 - invoke-static {}, Landroid/app/ActivityManagerNative;->getDefault()Landroid/app/IActivityManager;
2390 + invoke-virtual/range {v21 .. v21}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
2392 - move-result-object v2
2393 + move-result v5
2395 - invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getBasePackageName()Ljava/lang/String;
2396 + const-string/jumbo v7, "phoneCall"
2398 - move-result-object v4
2399 + const/4 v8, 0x0
2401 - invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
2402 + invoke-virtual {v2, v4, v5, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
2404 - move-result-object v5
2405 + goto/16 :goto_148
2407 - move-object/from16 v0, p5
2408 + :cond_210
2409 + const-string v2, "Instrumentation"
2411 - invoke-virtual {v0, v5}, Landroid/content/Intent;->resolveTypeIfNeeded(Landroid/content/ContentResolver;)Ljava/lang/String;
2412 + new-instance v4, Ljava/lang/StringBuilder;
2414 - move-result-object v6
2415 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
2417 - if-eqz p4, :cond_87
2418 + const-string v5, "PDroid:Instrumentation:execStartActivitiesAsUser: Call intents denied: Settings deny "
2420 - move-object/from16 v0, p4
2421 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2423 - iget-object v8, v0, Landroid/app/Fragment;->mWho:Ljava/lang/String;
2424 + move-result-object v4
2426 - :goto_6c
2427 - const/4 v10, 0x0
2428 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2430 - const/4 v11, 0x0
2431 + move-result-object v5
2433 - const/4 v12, 0x0
2434 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2436 - move-object/from16 v5, p5
2437 + move-result-object v4
2439 - move-object/from16 v7, p3
2440 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2442 + move-result-object v4
2444 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2446 + const/4 v11, 0x0
2448 + move-object/from16 v0, p0
2450 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2452 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2454 + move-result-object v4
2456 + invoke-virtual/range {v21 .. v21}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
2458 + move-result v5
2460 + const-string/jumbo v7, "phoneCall"
2462 + const/4 v8, 0x0
2464 + invoke-virtual {v2, v4, v5, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
2466 + goto/16 :goto_148
2468 + :catch_242
2469 + move-exception v15
2471 + const-string v2, "Instrumentation"
2473 + new-instance v4, Ljava/lang/StringBuilder;
2475 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
2477 + const-string v5, "PDroid:Instrumentation:execStartActivitiesAsUser: Exception occurred when checking intent for "
2479 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2481 + move-result-object v4
2483 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2485 + move-result-object v5
2487 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2489 + move-result-object v4
2491 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2493 + move-result-object v4
2495 + invoke-static {v2, v4, v15}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
2497 + goto/16 :goto_188
2499 + :cond_261
2500 + invoke-interface/range {v16 .. v16}, Ljava/util/List;->size()I
2502 + move-result v2
2504 + new-array v2, v2, [Landroid/content/Intent;
2506 + move-object/from16 v0, v16
2508 + invoke-interface {v0, v2}, Ljava/util/List;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
2510 + move-result-object p5
2512 + check-cast p5, [Landroid/content/Intent;
2514 + move-object/from16 v23, p1
2516 + new-instance v2, Ljava/lang/Thread;
2518 + new-instance v4, Landroid/app/Instrumentation$2;
2520 + move-object/from16 v0, p0
2522 + move-object/from16 v1, v23
2524 + invoke-direct {v4, v0, v1}, Landroid/app/Instrumentation$2;-><init>(Landroid/app/Instrumentation;Landroid/content/Context;)V
2526 + invoke-direct {v2, v4}, Ljava/lang/Thread;-><init>(Ljava/lang/Runnable;)V
2528 + invoke-virtual {v2}, Ljava/lang/Thread;->start()V
2530 + goto/16 :goto_6f
2532 + :cond_284
2533 + add-int/lit8 v17, v17, 0x1
2535 + goto/16 :goto_84
2537 + :cond_288
2538 + :try_start_288
2539 + monitor-exit v4
2540 + :try_end_289
2541 + .catchall {:try_start_288 .. :try_end_289} :catchall_2b0
2543 - move/from16 v9, p6
2544 + :cond_289
2545 + :try_start_289
2546 + move-object/from16 v0, p5
2548 + array-length v2, v0
2550 - move-object/from16 v13, p7
2551 + new-array v6, v2, [Ljava/lang/String;
2553 - invoke-interface/range {v2 .. v13}, Landroid/app/IActivityManager;->startActivity(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILjava/lang/String;Landroid/os/ParcelFileDescriptor;Landroid/os/Bundle;)I
2554 + const/16 v17, 0x0
2556 + :goto_290
2557 + move-object/from16 v0, p5
2559 - move-result v17
2560 + array-length v2, v0
2562 move/from16 v0, v17
2564 - move-object/from16 v1, p5
2565 + if-ge v0, v2, :cond_2b3
2567 - invoke-static {v0, v1}, Landroid/app/Instrumentation;->checkStartActivityResult(ILjava/lang/Object;)V
2568 - :try_end_82
2569 - .catch Landroid/os/RemoteException; {:try_start_4e .. :try_end_82} :catch_89
2570 + aget-object v2, p5, v17
2572 - :goto_82
2573 - const/4 v2, 0x0
2574 + invoke-virtual {v2}, Landroid/content/Intent;->migrateExtraStreamToClipData()Z
2576 + aget-object v2, p5, v17
2578 + invoke-virtual {v2}, Landroid/content/Intent;->prepareToLeaveProcess()V
2580 + aget-object v2, p5, v17
2582 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
2584 + move-result-object v4
2586 + invoke-virtual {v2, v4}, Landroid/content/Intent;->resolveTypeIfNeeded(Landroid/content/ContentResolver;)Ljava/lang/String;
2588 + move-result-object v2
2590 + aput-object v2, v6, v17
2591 + :try_end_2ad
2592 + .catch Landroid/os/RemoteException; {:try_start_289 .. :try_end_2ad} :catch_2d1
2594 - goto :goto_47
2595 + add-int/lit8 v17, v17, 0x1
2597 - :catchall_84
2598 + goto :goto_290
2600 + :catchall_2b0
2601 move-exception v2
2603 - :try_start_85
2604 + :try_start_2b1
2605 monitor-exit v4
2606 - :try_end_86
2607 - .catchall {:try_start_85 .. :try_end_86} :catchall_84
2608 + :try_end_2b2
2609 + .catchall {:try_start_2b1 .. :try_end_2b2} :catchall_2b0
2611 throw v2
2613 - :cond_87
2614 - const/4 v8, 0x0
2615 + :cond_2b3
2616 + :try_start_2b3
2617 + invoke-static {}, Landroid/app/ActivityManagerNative;->getDefault()Landroid/app/IActivityManager;
2619 + move-result-object v2
2621 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getBasePackageName()Ljava/lang/String;
2623 + move-result-object v4
2625 + move-object/from16 v5, p5
2627 + move-object/from16 v7, p3
2629 + move-object/from16 v8, p6
2631 - goto :goto_6c
2632 + move/from16 v9, p7
2634 - :catch_89
2635 + invoke-interface/range {v2 .. v9}, Landroid/app/IActivityManager;->startActivities(Landroid/app/IApplicationThread;Ljava/lang/String;[Landroid/content/Intent;[Ljava/lang/String;Landroid/os/IBinder;Landroid/os/Bundle;I)I
2637 + move-result v22
2639 + const/4 v2, 0x0
2641 + aget-object v2, p5, v2
2643 + move/from16 v0, v22
2645 + invoke-static {v0, v2}, Landroid/app/Instrumentation;->checkStartActivityResult(ILjava/lang/Object;)V
2646 + :try_end_2cf
2647 + .catch Landroid/os/RemoteException; {:try_start_2b3 .. :try_end_2cf} :catch_2d1
2649 + goto/16 :goto_ad
2651 + :catch_2d1
2652 move-exception v2
2654 - goto :goto_82
2655 + goto/16 :goto_ad
2656 +.end method
2658 +.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;
2659 + .registers 31
2661 + move-object/from16 v4, p2
2663 + check-cast v4, Landroid/app/IApplicationThread;
2665 + const/16 v16, 0x1
2667 + :try_start_6
2668 + const-string v3, "Instrumentation"
2670 + new-instance v5, Ljava/lang/StringBuilder;
2672 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
2674 + const-string v6, "PDroid:Instrumentation:execStartActivity: execStartActivity for "
2676 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2678 + move-result-object v5
2680 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2682 + move-result-object v6
2684 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2686 + move-result-object v5
2688 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2690 + move-result-object v5
2692 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2694 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->getAction()Ljava/lang/String;
2696 + move-result-object v3
2698 + if-eqz v3, :cond_ba
2700 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->getAction()Ljava/lang/String;
2702 + move-result-object v3
2704 + const-string v5, "android.intent.action.CALL"
2706 + invoke-virtual {v3, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
2708 + move-result v3
2710 + if-nez v3, :cond_40
2712 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->getAction()Ljava/lang/String;
2714 + move-result-object v3
2716 + const-string v5, "android.intent.action.DIAL"
2718 + invoke-virtual {v3, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
2720 + move-result v3
2722 + if-eqz v3, :cond_ba
2724 + :cond_40
2725 + const/16 v16, 0x0
2727 + const-string v3, "Instrumentation"
2729 + new-instance v5, Ljava/lang/StringBuilder;
2731 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
2733 + const-string v6, "PDroid:Instrumentation:execStartActivity: Intent action = Intent.ACTION_CALL or Intent.ACTION_DIAL for "
2735 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2737 + move-result-object v5
2739 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2741 + move-result-object v6
2743 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2745 + move-result-object v5
2747 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2749 + move-result-object v5
2751 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2753 + move-object/from16 v0, p0
2755 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2757 + if-eqz v3, :cond_6e
2759 + move-object/from16 v0, p0
2761 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2763 + invoke-virtual {v3}, Landroid/privacy/PrivacySettingsManager;->isServiceAvailable()Z
2765 + move-result v3
2767 + if-nez v3, :cond_12e
2769 + :cond_6e
2770 + new-instance v3, Landroid/privacy/PrivacySettingsManager;
2772 + const-string/jumbo v5, "privacy"
2774 + invoke-static {v5}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
2776 + move-result-object v5
2778 + invoke-static {v5}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
2780 + move-result-object v5
2782 + move-object/from16 v0, p1
2784 + invoke-direct {v3, v0, v5}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
2786 + move-object/from16 v0, p0
2788 + iput-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2790 + move-object/from16 v0, p0
2792 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2794 + if-eqz v3, :cond_104
2796 + const-string v3, "Instrumentation"
2798 + const-string v5, "PDroid:Instrumentation:execStartActivity: Obtained privacy service"
2800 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2802 + :goto_91
2803 + move-object/from16 v0, p0
2805 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2807 + if-eqz v3, :cond_a1
2809 + move-object/from16 v0, p0
2811 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2813 + invoke-virtual {v3}, Landroid/privacy/PrivacySettingsManager;->isServiceAvailable()Z
2815 + move-result v3
2817 + if-nez v3, :cond_137
2819 + :cond_a1
2820 + const-string v3, "Instrumentation"
2822 + const-string v5, "PDroid:Instrumentation:execStartActivity: Privacy service not available: rejecting call attempt"
2824 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2826 + const/16 v16, 0x0
2828 + move-object/from16 v0, p0
2830 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2832 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2834 + move-result-object v5
2836 + const/4 v6, 0x1
2838 + const-string/jumbo v7, "phoneCall"
2840 + const/4 v8, 0x0
2842 + invoke-virtual {v3, v5, v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
2843 + :try_end_ba
2844 + .catch Ljava/lang/Exception; {:try_start_6 .. :try_end_ba} :catch_10c
2846 + :cond_ba
2847 + :goto_ba
2848 + move-object/from16 v0, p0
2850 + iget-object v3, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
2852 + if-eqz v3, :cond_207
2854 + move-object/from16 v0, p0
2856 + iget-object v5, v0, Landroid/app/Instrumentation;->mSync:Ljava/lang/Object;
2858 + monitor-enter v5
2860 + :try_start_c5
2861 + move-object/from16 v0, p0
2863 + iget-object v3, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
2865 + invoke-interface {v3}, Ljava/util/List;->size()I
2867 + move-result v15
2869 + const/16 v19, 0x0
2871 + :goto_cf
2872 + move/from16 v0, v19
2874 + if-ge v0, v15, :cond_206
2876 + move-object/from16 v0, p0
2878 + iget-object v3, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
2880 + move/from16 v0, v19
2882 + invoke-interface {v3, v0}, Ljava/util/List;->get(I)Ljava/lang/Object;
2884 + move-result-object v17
2886 + check-cast v17, Landroid/app/Instrumentation$ActivityMonitor;
2888 + const/4 v3, 0x0
2890 + move-object/from16 v0, v17
2892 + move-object/from16 v1, p1
2894 + move-object/from16 v2, p5
2896 + invoke-virtual {v0, v1, v3, v2}, Landroid/app/Instrumentation$ActivityMonitor;->match(Landroid/content/Context;Landroid/app/Activity;Landroid/content/Intent;)Z
2898 + move-result v3
2900 + if-eqz v3, :cond_202
2902 + move-object/from16 v0, v17
2904 + iget v3, v0, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
2906 + add-int/lit8 v3, v3, 0x1
2908 + move-object/from16 v0, v17
2910 + iput v3, v0, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
2912 + invoke-virtual/range {v17 .. v17}, Landroid/app/Instrumentation$ActivityMonitor;->isBlocking()Z
2914 + move-result v3
2916 + if-eqz v3, :cond_206
2918 + if-ltz p6, :cond_1ff
2920 + invoke-virtual/range {v17 .. v17}, Landroid/app/Instrumentation$ActivityMonitor;->getResult()Landroid/app/Instrumentation$ActivityResult;
2922 + move-result-object v3
2924 + :goto_102
2925 + monitor-exit v5
2926 + :try_end_103
2927 + .catchall {:try_start_c5 .. :try_end_103} :catchall_221
2929 + :goto_103
2930 + return-object v3
2932 + :cond_104
2933 + :try_start_104
2934 + const-string v3, "Instrumentation"
2936 + const-string v5, "PDroid:Instrumentation:execStartActivity: Privacy service not obtained"
2938 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2939 + :try_end_10b
2940 + .catch Ljava/lang/Exception; {:try_start_104 .. :try_end_10b} :catch_10c
2942 + goto :goto_91
2944 + :catch_10c
2945 + move-exception v18
2947 + if-eqz p1, :cond_1f4
2949 + const-string v3, "Instrumentation"
2951 + new-instance v5, Ljava/lang/StringBuilder;
2953 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
2955 + const-string v6, "PDroid:Instrumentation:execStartActivity: Exception occurred handling intent for "
2957 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2959 + move-result-object v5
2961 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2963 + move-result-object v6
2965 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2967 + move-result-object v5
2969 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2971 + move-result-object v5
2973 + move-object/from16 v0, v18
2975 + invoke-static {v3, v5, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
2977 + goto :goto_ba
2979 + :cond_12e
2980 + :try_start_12e
2981 + const-string v3, "Instrumentation"
2983 + const-string v5, "PDroid:Instrumentation:execStartActivity: Already had privacy service"
2985 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2987 + goto/16 :goto_91
2989 + :cond_137
2990 + move-object/from16 v0, p0
2992 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2994 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2996 + move-result-object v5
2998 + invoke-virtual {v3, v5}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
3000 + move-result-object v20
3002 + if-nez v20, :cond_175
3004 + const-string v3, "Instrumentation"
3006 + new-instance v5, Ljava/lang/StringBuilder;
3008 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
3010 + const-string v6, "PDroid:Instrumentation:execStartActivity: Call allowed: No settings for package: "
3012 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3014 + move-result-object v5
3016 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3018 + move-result-object v6
3020 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3022 + move-result-object v5
3024 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3026 + move-result-object v5
3028 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3030 + const/16 v16, 0x1
3032 + move-object/from16 v0, p0
3034 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3036 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3038 + move-result-object v5
3040 + const/4 v6, 0x0
3042 + const-string/jumbo v7, "phoneCall"
3044 + const/4 v8, 0x0
3046 + invoke-virtual {v3, v5, v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
3048 + goto/16 :goto_ba
3050 + :cond_175
3051 + invoke-virtual/range {v20 .. v20}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
3053 + move-result v3
3055 + if-nez v3, :cond_1ae
3057 + const-string v3, "Instrumentation"
3059 + new-instance v5, Ljava/lang/StringBuilder;
3061 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
3063 + const-string v6, "PDroid:Instrumentation:execStartActivity: Call allowed: Settings permit "
3065 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3067 + move-result-object v5
3069 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3071 + move-result-object v6
3073 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3075 + move-result-object v5
3077 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3079 + move-result-object v5
3081 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3083 + const/16 v16, 0x1
3085 + move-object/from16 v0, p0
3087 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3089 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3091 + move-result-object v5
3093 + invoke-virtual/range {v20 .. v20}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
3095 + move-result v6
3097 + const-string/jumbo v7, "phoneCall"
3099 + const/4 v8, 0x0
3101 + invoke-virtual {v3, v5, v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
3103 + goto/16 :goto_ba
3105 + :cond_1ae
3106 + const-string v3, "Instrumentation"
3108 + new-instance v5, Ljava/lang/StringBuilder;
3110 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
3112 + const-string v6, "PDroid:Instrumentation:execStartActivity: Call denied: Settings deny "
3114 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3116 + move-result-object v5
3118 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3120 + move-result-object v6
3122 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3124 + move-result-object v5
3126 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3128 + move-result-object v5
3130 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3132 + const/16 v16, 0x0
3134 + move-object/from16 v22, p1
3136 + new-instance v3, Ljava/lang/Thread;
3138 + new-instance v5, Landroid/app/Instrumentation$1;
3140 + move-object/from16 v0, p0
3142 + move-object/from16 v1, v22
3144 + invoke-direct {v5, v0, v1}, Landroid/app/Instrumentation$1;-><init>(Landroid/app/Instrumentation;Landroid/content/Context;)V
3146 + invoke-direct {v3, v5}, Ljava/lang/Thread;-><init>(Ljava/lang/Runnable;)V
3148 + invoke-virtual {v3}, Ljava/lang/Thread;->start()V
3150 + move-object/from16 v0, p0
3152 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3154 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3156 + move-result-object v5
3158 + invoke-virtual/range {v20 .. v20}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
3160 + move-result v6
3162 + const-string/jumbo v7, "phoneCall"
3164 + const/4 v8, 0x0
3166 + invoke-virtual {v3, v5, v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
3167 + :try_end_1f2
3168 + .catch Ljava/lang/Exception; {:try_start_12e .. :try_end_1f2} :catch_10c
3170 + goto/16 :goto_ba
3172 + :cond_1f4
3173 + const-string v3, "Instrumentation"
3175 + const-string v5, "PDroid:Instrumentation:execStartActivity: Exception occurred handling intent for unknown package"
3177 + move-object/from16 v0, v18
3179 + invoke-static {v3, v5, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
3181 + goto/16 :goto_ba
3183 + :cond_1ff
3184 + const/4 v3, 0x0
3186 + goto/16 :goto_102
3188 + :cond_202
3189 + add-int/lit8 v19, v19, 0x1
3191 + goto/16 :goto_cf
3193 + :cond_206
3194 + :try_start_206
3195 + monitor-exit v5
3196 + :try_end_207
3197 + .catchall {:try_start_206 .. :try_end_207} :catchall_221
3199 + :cond_207
3200 + if-nez v16, :cond_224
3202 + :try_start_209
3203 + new-instance v3, Landroid/app/Instrumentation$ActivityResult;
3205 + move/from16 v0, p6
3207 + move-object/from16 v1, p5
3209 + invoke-direct {v3, v0, v1}, Landroid/app/Instrumentation$ActivityResult;-><init>(ILandroid/content/Intent;)V
3210 + :try_end_212
3211 + .catch Ljava/lang/Exception; {:try_start_209 .. :try_end_212} :catch_214
3213 + goto/16 :goto_103
3215 + :catch_214
3216 + move-exception v18
3218 + const-string v3, "Instrumentation"
3220 + const-string v5, "PDroid:Instrumentation:execStartActivity: Exception occurred while trying to create ActivityResult"
3222 + move-object/from16 v0, v18
3224 + invoke-static {v3, v5, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
3226 + const/4 v3, 0x0
3228 + goto/16 :goto_103
3230 + :catchall_221
3231 + move-exception v3
3233 + :try_start_222
3234 + monitor-exit v5
3235 + :try_end_223
3236 + .catchall {:try_start_222 .. :try_end_223} :catchall_221
3238 + throw v3
3240 + :cond_224
3241 + :try_start_224
3242 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->migrateExtraStreamToClipData()Z
3244 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->prepareToLeaveProcess()V
3246 + invoke-static {}, Landroid/app/ActivityManagerNative;->getDefault()Landroid/app/IActivityManager;
3248 + move-result-object v3
3250 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getBasePackageName()Ljava/lang/String;
3252 + move-result-object v5
3254 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
3256 + move-result-object v6
3258 + move-object/from16 v0, p5
3260 + invoke-virtual {v0, v6}, Landroid/content/Intent;->resolveTypeIfNeeded(Landroid/content/ContentResolver;)Ljava/lang/String;
3262 + move-result-object v7
3264 + if-eqz p4, :cond_25b
3266 + move-object/from16 v0, p4
3268 + iget-object v9, v0, Landroid/app/Activity;->mEmbeddedID:Ljava/lang/String;
3270 + :goto_242
3271 + const/4 v11, 0x0
3273 + const/4 v12, 0x0
3275 + const/4 v13, 0x0
3277 + move-object/from16 v6, p5
3279 + move-object/from16 v8, p3
3281 + move/from16 v10, p6
3283 + move-object/from16 v14, p7
3285 + invoke-interface/range {v3 .. v14}, Landroid/app/IActivityManager;->startActivity(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILjava/lang/String;Landroid/os/ParcelFileDescriptor;Landroid/os/Bundle;)I
3287 + move-result v21
3289 + move/from16 v0, v21
3291 + move-object/from16 v1, p5
3293 + invoke-static {v0, v1}, Landroid/app/Instrumentation;->checkStartActivityResult(ILjava/lang/Object;)V
3294 + :try_end_258
3295 + .catch Landroid/os/RemoteException; {:try_start_224 .. :try_end_258} :catch_25d
3297 + :goto_258
3298 + const/4 v3, 0x0
3300 + goto/16 :goto_103
3302 + :cond_25b
3303 + const/4 v9, 0x0
3305 + goto :goto_242
3307 + :catch_25d
3308 + move-exception v3
3310 + goto :goto_258
3311 +.end method
3313 +.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;
3314 + .registers 33
3316 + move-object/from16 v4, p2
3318 + check-cast v4, Landroid/app/IApplicationThread;
3320 + const/16 v17, 0x1
3322 + :try_start_6
3323 + const-string v3, "Instrumentation"
3325 + new-instance v5, Ljava/lang/StringBuilder;
3327 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
3329 + const-string v6, "PDroid:Instrumentation:execStartActivity (with UserHandle): execStartActivity for "
3331 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3333 + move-result-object v5
3335 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3337 + move-result-object v6
3339 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3341 + move-result-object v5
3343 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3345 + move-result-object v5
3347 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3349 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->getAction()Ljava/lang/String;
3351 + move-result-object v3
3353 + if-eqz v3, :cond_ba
3355 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->getAction()Ljava/lang/String;
3357 + move-result-object v3
3359 + const-string v5, "android.intent.action.CALL"
3361 + invoke-virtual {v3, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
3363 + move-result v3
3365 + if-nez v3, :cond_40
3367 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->getAction()Ljava/lang/String;
3369 + move-result-object v3
3371 + const-string v5, "android.intent.action.DIAL"
3373 + invoke-virtual {v3, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
3375 + move-result v3
3377 + if-eqz v3, :cond_ba
3379 + :cond_40
3380 + const/16 v17, 0x0
3382 + const-string v3, "Instrumentation"
3384 + new-instance v5, Ljava/lang/StringBuilder;
3386 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
3388 + const-string v6, "PDroid:Instrumentation:execStartActivity (with UserHandle): Intent action = Intent.ACTION_CALL or Intent.ACTION_DIAL for "
3390 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3392 + move-result-object v5
3394 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3396 + move-result-object v6
3398 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3400 + move-result-object v5
3402 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3404 + move-result-object v5
3406 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3408 + move-object/from16 v0, p0
3410 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3412 + if-eqz v3, :cond_6e
3414 + move-object/from16 v0, p0
3416 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3418 + invoke-virtual {v3}, Landroid/privacy/PrivacySettingsManager;->isServiceAvailable()Z
3420 + move-result v3
3422 + if-nez v3, :cond_130
3424 + :cond_6e
3425 + new-instance v3, Landroid/privacy/PrivacySettingsManager;
3427 + const-string/jumbo v5, "privacy"
3429 + invoke-static {v5}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
3431 + move-result-object v5
3433 + invoke-static {v5}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
3435 + move-result-object v5
3437 + move-object/from16 v0, p1
3439 + invoke-direct {v3, v0, v5}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
3441 + move-object/from16 v0, p0
3443 + iput-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3445 + move-object/from16 v0, p0
3447 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3449 + if-eqz v3, :cond_106
3451 + const-string v3, "Instrumentation"
3453 + const-string v5, "PDroid:Instrumentation:execStartActivity (with UserHandle): Obtained privacy service"
3455 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3457 + :goto_91
3458 + move-object/from16 v0, p0
3460 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3462 + if-eqz v3, :cond_a1
3464 + move-object/from16 v0, p0
3466 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3468 + invoke-virtual {v3}, Landroid/privacy/PrivacySettingsManager;->isServiceAvailable()Z
3470 + move-result v3
3472 + if-nez v3, :cond_139
3474 + :cond_a1
3475 + const-string v3, "Instrumentation"
3477 + const-string v5, "PDroid:Instrumentation:execStartActivity (with UserHandle): Privacy service not available: rejecting call attempt"
3479 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3481 + const/16 v17, 0x0
3483 + move-object/from16 v0, p0
3485 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3487 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3489 + move-result-object v5
3491 + const/4 v6, 0x1
3493 + const-string/jumbo v7, "phoneCall"
3495 + const/4 v8, 0x0
3497 + invoke-virtual {v3, v5, v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
3498 + :try_end_ba
3499 + .catch Ljava/lang/Exception; {:try_start_6 .. :try_end_ba} :catch_10e
3501 + :cond_ba
3502 + :goto_ba
3503 + move-object/from16 v0, p0
3505 + iget-object v3, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
3507 + if-eqz v3, :cond_209
3509 + move-object/from16 v0, p0
3511 + iget-object v5, v0, Landroid/app/Instrumentation;->mSync:Ljava/lang/Object;
3513 + monitor-enter v5
3515 + :try_start_c5
3516 + move-object/from16 v0, p0
3518 + iget-object v3, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
3520 + invoke-interface {v3}, Ljava/util/List;->size()I
3522 + move-result v16
3524 + const/16 v20, 0x0
3526 + :goto_cf
3527 + move/from16 v0, v20
3529 + move/from16 v1, v16
3531 + if-ge v0, v1, :cond_208
3533 + move-object/from16 v0, p0
3535 + iget-object v3, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
3537 + move/from16 v0, v20
3539 + invoke-interface {v3, v0}, Ljava/util/List;->get(I)Ljava/lang/Object;
3541 + move-result-object v18
3543 + check-cast v18, Landroid/app/Instrumentation$ActivityMonitor;
3545 + const/4 v3, 0x0
3547 + move-object/from16 v0, v18
3549 + move-object/from16 v1, p1
3551 + move-object/from16 v2, p5
3553 + invoke-virtual {v0, v1, v3, v2}, Landroid/app/Instrumentation$ActivityMonitor;->match(Landroid/content/Context;Landroid/app/Activity;Landroid/content/Intent;)Z
3555 + move-result v3
3557 + if-eqz v3, :cond_204
3559 + move-object/from16 v0, v18
3561 + iget v3, v0, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
3563 + add-int/lit8 v3, v3, 0x1
3565 + move-object/from16 v0, v18
3567 + iput v3, v0, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
3569 + invoke-virtual/range {v18 .. v18}, Landroid/app/Instrumentation$ActivityMonitor;->isBlocking()Z
3571 + move-result v3
3573 + if-eqz v3, :cond_208
3575 + if-ltz p6, :cond_201
3577 + invoke-virtual/range {v18 .. v18}, Landroid/app/Instrumentation$ActivityMonitor;->getResult()Landroid/app/Instrumentation$ActivityResult;
3579 + move-result-object v3
3581 + :goto_104
3582 + monitor-exit v5
3583 + :try_end_105
3584 + .catchall {:try_start_c5 .. :try_end_105} :catchall_223
3586 + :goto_105
3587 + return-object v3
3589 + :cond_106
3590 + :try_start_106
3591 + const-string v3, "Instrumentation"
3593 + const-string v5, "PDroid:Instrumentation:execStartActivity (with UserHandle): Privacy service not obtained"
3595 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3596 + :try_end_10d
3597 + .catch Ljava/lang/Exception; {:try_start_106 .. :try_end_10d} :catch_10e
3599 + goto :goto_91
3601 + :catch_10e
3602 + move-exception v19
3604 + if-eqz p1, :cond_1f6
3606 + const-string v3, "Instrumentation"
3608 + new-instance v5, Ljava/lang/StringBuilder;
3610 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
3612 + const-string v6, "PDroid:Instrumentation:execStartActivity (with UserHandle): Exception occurred handling intent for "
3614 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3616 + move-result-object v5
3618 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3620 + move-result-object v6
3622 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3624 + move-result-object v5
3626 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3628 + move-result-object v5
3630 + move-object/from16 v0, v19
3632 + invoke-static {v3, v5, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
3634 + goto :goto_ba
3636 + :cond_130
3637 + :try_start_130
3638 + const-string v3, "Instrumentation"
3640 + const-string v5, "PDroid:Instrumentation:execStartActivity (with UserHandle): Already had privacy service"
3642 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3644 + goto/16 :goto_91
3646 + :cond_139
3647 + move-object/from16 v0, p0
3649 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3651 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3653 + move-result-object v5
3655 + invoke-virtual {v3, v5}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
3657 + move-result-object v21
3659 + if-nez v21, :cond_177
3661 + const-string v3, "Instrumentation"
3663 + new-instance v5, Ljava/lang/StringBuilder;
3665 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
3667 + const-string v6, "PDroid:Instrumentation:execStartActivity (with UserHandle): Call allowed: No settings for package: "
3669 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3671 + move-result-object v5
3673 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3675 + move-result-object v6
3677 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3679 + move-result-object v5
3681 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3683 + move-result-object v5
3685 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3687 + const/16 v17, 0x1
3689 + move-object/from16 v0, p0
3691 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3693 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3695 + move-result-object v5
3697 + const/4 v6, 0x0
3699 + const-string/jumbo v7, "phoneCall"
3701 + const/4 v8, 0x0
3703 + invoke-virtual {v3, v5, v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
3705 + goto/16 :goto_ba
3707 + :cond_177
3708 + invoke-virtual/range {v21 .. v21}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
3710 + move-result v3
3712 + if-nez v3, :cond_1b0
3714 + const-string v3, "Instrumentation"
3716 + new-instance v5, Ljava/lang/StringBuilder;
3718 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
3720 + const-string v6, "PDroid:Instrumentation:execStartActivity (with UserHandle): Call allowed: Settings permit "
3722 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3724 + move-result-object v5
3726 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3728 + move-result-object v6
3730 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3732 + move-result-object v5
3734 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3736 + move-result-object v5
3738 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3740 + const/16 v17, 0x1
3742 + move-object/from16 v0, p0
3744 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3746 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3748 + move-result-object v5
3750 + invoke-virtual/range {v21 .. v21}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
3752 + move-result v6
3754 + const-string/jumbo v7, "phoneCall"
3756 + const/4 v8, 0x0
3758 + invoke-virtual {v3, v5, v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
3760 + goto/16 :goto_ba
3762 + :cond_1b0
3763 + const-string v3, "Instrumentation"
3765 + new-instance v5, Ljava/lang/StringBuilder;
3767 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
3769 + const-string v6, "PDroid:Instrumentation:execStartActivity (with UserHandle): Call denied: Settings deny "
3771 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3773 + move-result-object v5
3775 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3777 + move-result-object v6
3779 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3781 + move-result-object v5
3783 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3785 + move-result-object v5
3787 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3789 + move-object/from16 v23, p1
3791 + const/16 v17, 0x0
3793 + new-instance v3, Ljava/lang/Thread;
3795 + new-instance v5, Landroid/app/Instrumentation$4;
3797 + move-object/from16 v0, p0
3799 + move-object/from16 v1, v23
3801 + invoke-direct {v5, v0, v1}, Landroid/app/Instrumentation$4;-><init>(Landroid/app/Instrumentation;Landroid/content/Context;)V
3803 + invoke-direct {v3, v5}, Ljava/lang/Thread;-><init>(Ljava/lang/Runnable;)V
3805 + invoke-virtual {v3}, Ljava/lang/Thread;->start()V
3807 + move-object/from16 v0, p0
3809 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3811 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3813 + move-result-object v5
3815 + invoke-virtual/range {v21 .. v21}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
3817 + move-result v6
3819 + const-string/jumbo v7, "phoneCall"
3821 + const/4 v8, 0x0
3823 + invoke-virtual {v3, v5, v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
3824 + :try_end_1f4
3825 + .catch Ljava/lang/Exception; {:try_start_130 .. :try_end_1f4} :catch_10e
3827 + goto/16 :goto_ba
3829 + :cond_1f6
3830 + const-string v3, "Instrumentation"
3832 + const-string v5, "PDroid:Instrumentation:execStartActivity (with UserHandle): Exception occurred handling intent for unknown package"
3834 + move-object/from16 v0, v19
3836 + invoke-static {v3, v5, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
3838 + goto/16 :goto_ba
3840 + :cond_201
3841 + const/4 v3, 0x0
3843 + goto/16 :goto_104
3845 + :cond_204
3846 + add-int/lit8 v20, v20, 0x1
3848 + goto/16 :goto_cf
3850 + :cond_208
3851 + :try_start_208
3852 + monitor-exit v5
3853 + :try_end_209
3854 + .catchall {:try_start_208 .. :try_end_209} :catchall_223
3856 + :cond_209
3857 + if-nez v17, :cond_226
3859 + :try_start_20b
3860 + new-instance v3, Landroid/app/Instrumentation$ActivityResult;
3862 + move/from16 v0, p6
3864 + move-object/from16 v1, p5
3866 + invoke-direct {v3, v0, v1}, Landroid/app/Instrumentation$ActivityResult;-><init>(ILandroid/content/Intent;)V
3867 + :try_end_214
3868 + .catch Ljava/lang/Exception; {:try_start_20b .. :try_end_214} :catch_216
3870 + goto/16 :goto_105
3872 + :catch_216
3873 + move-exception v19
3875 + const-string v3, "Instrumentation"
3877 + const-string v5, "PDroid:Instrumentation:execStartActivity (with UserHandle): Exception occurred while trying to create ActivityResult"
3879 + move-object/from16 v0, v19
3881 + invoke-static {v3, v5, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
3883 + const/4 v3, 0x0
3885 + goto/16 :goto_105
3887 + :catchall_223
3888 + move-exception v3
3890 + :try_start_224
3891 + monitor-exit v5
3892 + :try_end_225
3893 + .catchall {:try_start_224 .. :try_end_225} :catchall_223
3895 + throw v3
3897 + :cond_226
3898 + :try_start_226
3899 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->migrateExtraStreamToClipData()Z
3901 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->prepareToLeaveProcess()V
3903 + invoke-static {}, Landroid/app/ActivityManagerNative;->getDefault()Landroid/app/IActivityManager;
3905 + move-result-object v3
3907 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getBasePackageName()Ljava/lang/String;
3909 + move-result-object v5
3911 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
3913 + move-result-object v6
3915 + move-object/from16 v0, p5
3917 + invoke-virtual {v0, v6}, Landroid/content/Intent;->resolveTypeIfNeeded(Landroid/content/ContentResolver;)Ljava/lang/String;
3919 + move-result-object v7
3921 + if-eqz p4, :cond_261
3923 + move-object/from16 v0, p4
3925 + iget-object v9, v0, Landroid/app/Activity;->mEmbeddedID:Ljava/lang/String;
3927 + :goto_244
3928 + const/4 v11, 0x0
3930 + const/4 v12, 0x0
3932 + const/4 v13, 0x0
3934 + invoke-virtual/range {p8 .. p8}, Landroid/os/UserHandle;->getIdentifier()I
3936 + move-result v15
3938 + move-object/from16 v6, p5
3940 + move-object/from16 v8, p3
3942 + move/from16 v10, p6
3944 + move-object/from16 v14, p7
3946 + invoke-interface/range {v3 .. v15}, Landroid/app/IActivityManager;->startActivityAsUser(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILjava/lang/String;Landroid/os/ParcelFileDescriptor;Landroid/os/Bundle;I)I
3948 + move-result v22
3950 + move/from16 v0, v22
3952 + move-object/from16 v1, p5
3954 + invoke-static {v0, v1}, Landroid/app/Instrumentation;->checkStartActivityResult(ILjava/lang/Object;)V
3955 + :try_end_25e
3956 + .catch Landroid/os/RemoteException; {:try_start_226 .. :try_end_25e} :catch_263
3958 + :goto_25e
3959 + const/4 v3, 0x0
3961 + goto/16 :goto_105
3963 + :cond_261
3964 + const/4 v9, 0x0
3966 + goto :goto_244
3968 + :catch_263
3969 + move-exception v3
3971 + goto :goto_25e
3972 +.end method
3974 +.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;
3975 + .registers 31
3977 + move-object/from16 v4, p2
3979 + check-cast v4, Landroid/app/IApplicationThread;
3981 + const/16 v16, 0x1
3983 + :try_start_6
3984 + const-string v3, "Instrumentation"
3986 + new-instance v5, Ljava/lang/StringBuilder;
3988 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
3990 + const-string v6, "PDroid:Instrumentation:execStartActivity (with Fragments): execStartActivity for "
3992 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3994 + move-result-object v5
3996 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3998 + move-result-object v6
4000 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4002 + move-result-object v5
4004 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
4006 + move-result-object v5
4008 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
4010 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->getAction()Ljava/lang/String;
4012 + move-result-object v3
4014 + if-eqz v3, :cond_ba
4016 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->getAction()Ljava/lang/String;
4018 + move-result-object v3
4020 + const-string v5, "android.intent.action.CALL"
4022 + invoke-virtual {v3, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
4024 + move-result v3
4026 + if-nez v3, :cond_40
4028 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->getAction()Ljava/lang/String;
4030 + move-result-object v3
4032 + const-string v5, "android.intent.action.DIAL"
4034 + invoke-virtual {v3, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
4036 + move-result v3
4038 + if-eqz v3, :cond_ba
4040 + :cond_40
4041 + const/16 v16, 0x0
4043 + const-string v3, "Instrumentation"
4045 + new-instance v5, Ljava/lang/StringBuilder;
4047 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
4049 + const-string v6, "PDroid:Instrumentation:execStartActivity (with Fragments): Intent action = Intent.ACTION_CALL or Intent.ACTION_DIAL for "
4051 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4053 + move-result-object v5
4055 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
4057 + move-result-object v6
4059 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4061 + move-result-object v5
4063 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
4065 + move-result-object v5
4067 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
4069 + move-object/from16 v0, p0
4071 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
4073 + if-eqz v3, :cond_6e
4075 + move-object/from16 v0, p0
4077 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
4079 + invoke-virtual {v3}, Landroid/privacy/PrivacySettingsManager;->isServiceAvailable()Z
4081 + move-result v3
4083 + if-nez v3, :cond_12e
4085 + :cond_6e
4086 + new-instance v3, Landroid/privacy/PrivacySettingsManager;
4088 + const-string/jumbo v5, "privacy"
4090 + invoke-static {v5}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
4092 + move-result-object v5
4094 + invoke-static {v5}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
4096 + move-result-object v5
4098 + move-object/from16 v0, p1
4100 + invoke-direct {v3, v0, v5}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
4102 + move-object/from16 v0, p0
4104 + iput-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
4106 + move-object/from16 v0, p0
4108 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
4110 + if-eqz v3, :cond_104
4112 + const-string v3, "Instrumentation"
4114 + const-string v5, "PDroid:Instrumentation:execStartActivity (with Fragments): Obtained privacy service"
4116 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
4118 + :goto_91
4119 + move-object/from16 v0, p0
4121 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
4123 + if-eqz v3, :cond_a1
4125 + move-object/from16 v0, p0
4127 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
4129 + invoke-virtual {v3}, Landroid/privacy/PrivacySettingsManager;->isServiceAvailable()Z
4131 + move-result v3
4133 + if-nez v3, :cond_137
4135 + :cond_a1
4136 + const-string v3, "Instrumentation"
4138 + const-string v5, "PDroid:Instrumentation:execStartActivity (with Fragments): Privacy service not available: rejecting call attempt"
4140 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
4142 + const/16 v16, 0x0
4144 + move-object/from16 v0, p0
4146 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
4148 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
4150 + move-result-object v5
4152 + const/4 v6, 0x1
4154 + const-string/jumbo v7, "phoneCall"
4156 + const/4 v8, 0x0
4158 + invoke-virtual {v3, v5, v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
4159 + :try_end_ba
4160 + .catch Ljava/lang/Exception; {:try_start_6 .. :try_end_ba} :catch_10c
4162 + :cond_ba
4163 + :goto_ba
4164 + move-object/from16 v0, p0
4166 + iget-object v3, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
4168 + if-eqz v3, :cond_207
4170 + move-object/from16 v0, p0
4172 + iget-object v5, v0, Landroid/app/Instrumentation;->mSync:Ljava/lang/Object;
4174 + monitor-enter v5
4176 + :try_start_c5
4177 + move-object/from16 v0, p0
4179 + iget-object v3, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
4181 + invoke-interface {v3}, Ljava/util/List;->size()I
4183 + move-result v15
4185 + const/16 v19, 0x0
4187 + :goto_cf
4188 + move/from16 v0, v19
4190 + if-ge v0, v15, :cond_206
4192 + move-object/from16 v0, p0
4194 + iget-object v3, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
4196 + move/from16 v0, v19
4198 + invoke-interface {v3, v0}, Ljava/util/List;->get(I)Ljava/lang/Object;
4200 + move-result-object v17
4202 + check-cast v17, Landroid/app/Instrumentation$ActivityMonitor;
4204 + const/4 v3, 0x0
4206 + move-object/from16 v0, v17
4208 + move-object/from16 v1, p1
4210 + move-object/from16 v2, p5
4212 + invoke-virtual {v0, v1, v3, v2}, Landroid/app/Instrumentation$ActivityMonitor;->match(Landroid/content/Context;Landroid/app/Activity;Landroid/content/Intent;)Z
4214 + move-result v3
4216 + if-eqz v3, :cond_202
4218 + move-object/from16 v0, v17
4220 + iget v3, v0, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
4222 + add-int/lit8 v3, v3, 0x1
4224 + move-object/from16 v0, v17
4226 + iput v3, v0, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
4228 + invoke-virtual/range {v17 .. v17}, Landroid/app/Instrumentation$ActivityMonitor;->isBlocking()Z
4230 + move-result v3
4232 + if-eqz v3, :cond_206
4234 + if-ltz p6, :cond_1ff
4236 + invoke-virtual/range {v17 .. v17}, Landroid/app/Instrumentation$ActivityMonitor;->getResult()Landroid/app/Instrumentation$ActivityResult;
4238 + move-result-object v3
4240 + :goto_102
4241 + monitor-exit v5
4242 + :try_end_103
4243 + .catchall {:try_start_c5 .. :try_end_103} :catchall_221
4245 + :goto_103
4246 + return-object v3
4248 + :cond_104
4249 + :try_start_104
4250 + const-string v3, "Instrumentation"
4252 + const-string v5, "PDroid:Instrumentation:execStartActivity (with Fragments): Privacy service not obtained"
4254 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
4255 + :try_end_10b
4256 + .catch Ljava/lang/Exception; {:try_start_104 .. :try_end_10b} :catch_10c
4258 + goto :goto_91
4260 + :catch_10c
4261 + move-exception v18
4263 + if-eqz p1, :cond_1f4
4265 + const-string v3, "Instrumentation"
4267 + new-instance v5, Ljava/lang/StringBuilder;
4269 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
4271 + const-string v6, "PDroid:Instrumentation:execStartActivity (with Fragments): Exception occurred handling intent for "
4273 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4275 + move-result-object v5
4277 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
4279 + move-result-object v6
4281 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4283 + move-result-object v5
4285 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
4287 + move-result-object v5
4289 + move-object/from16 v0, v18
4291 + invoke-static {v3, v5, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
4293 + goto :goto_ba
4295 + :cond_12e
4296 + :try_start_12e
4297 + const-string v3, "Instrumentation"
4299 + const-string v5, "PDroid:Instrumentation:execStartActivity (with Fragments): Already had privacy service"
4301 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
4303 + goto/16 :goto_91
4305 + :cond_137
4306 + move-object/from16 v0, p0
4308 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
4310 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
4312 + move-result-object v5
4314 + invoke-virtual {v3, v5}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
4316 + move-result-object v20
4318 + if-nez v20, :cond_175
4320 + const-string v3, "Instrumentation"
4322 + new-instance v5, Ljava/lang/StringBuilder;
4324 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
4326 + const-string v6, "PDroid:Instrumentation:execStartActivity (with Fragments): Call allowed: No settings for package: "
4328 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4330 + move-result-object v5
4332 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
4334 + move-result-object v6
4336 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4338 + move-result-object v5
4340 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
4342 + move-result-object v5
4344 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
4346 + const/16 v16, 0x1
4348 + move-object/from16 v0, p0
4350 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
4352 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
4354 + move-result-object v5
4356 + const/4 v6, 0x0
4358 + const-string/jumbo v7, "phoneCall"
4360 + const/4 v8, 0x0
4362 + invoke-virtual {v3, v5, v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
4364 + goto/16 :goto_ba
4366 + :cond_175
4367 + invoke-virtual/range {v20 .. v20}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
4369 + move-result v3
4371 + if-nez v3, :cond_1ae
4373 + const-string v3, "Instrumentation"
4375 + new-instance v5, Ljava/lang/StringBuilder;
4377 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
4379 + const-string v6, "PDroid:Instrumentation:execStartActivity (with Fragments): Call allowed: Settings permit "
4381 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4383 + move-result-object v5
4385 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
4387 + move-result-object v6
4389 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4391 + move-result-object v5
4393 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
4395 + move-result-object v5
4397 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
4399 + const/16 v16, 0x1
4401 + move-object/from16 v0, p0
4403 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
4405 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
4407 + move-result-object v5
4409 + invoke-virtual/range {v20 .. v20}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
4411 + move-result v6
4413 + const-string/jumbo v7, "phoneCall"
4415 + const/4 v8, 0x0
4417 + invoke-virtual {v3, v5, v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
4419 + goto/16 :goto_ba
4421 + :cond_1ae
4422 + const-string v3, "Instrumentation"
4424 + new-instance v5, Ljava/lang/StringBuilder;
4426 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
4428 + const-string v6, "PDroid:Instrumentation:execStartActivity (with Fragments): Call denied: Settings deny "
4430 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4432 + move-result-object v5
4434 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
4436 + move-result-object v6
4438 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4440 + move-result-object v5
4442 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
4444 + move-result-object v5
4446 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
4448 + move-object/from16 v22, p1
4450 + const/16 v16, 0x0
4452 + new-instance v3, Ljava/lang/Thread;
4454 + new-instance v5, Landroid/app/Instrumentation$3;
4456 + move-object/from16 v0, p0
4458 + move-object/from16 v1, v22
4460 + invoke-direct {v5, v0, v1}, Landroid/app/Instrumentation$3;-><init>(Landroid/app/Instrumentation;Landroid/content/Context;)V
4462 + invoke-direct {v3, v5}, Ljava/lang/Thread;-><init>(Ljava/lang/Runnable;)V
4464 + invoke-virtual {v3}, Ljava/lang/Thread;->start()V
4466 + move-object/from16 v0, p0
4468 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
4470 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
4472 + move-result-object v5
4474 + invoke-virtual/range {v20 .. v20}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
4476 + move-result v6
4478 + const-string/jumbo v7, "phoneCall"
4480 + const/4 v8, 0x0
4482 + invoke-virtual {v3, v5, v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
4483 + :try_end_1f2
4484 + .catch Ljava/lang/Exception; {:try_start_12e .. :try_end_1f2} :catch_10c
4486 + goto/16 :goto_ba
4488 + :cond_1f4
4489 + const-string v3, "Instrumentation"
4491 + const-string v5, "PDroid:Instrumentation:execStartActivity (with Fragments): Exception occurred handling intent for unknown package"
4493 + move-object/from16 v0, v18
4495 + invoke-static {v3, v5, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
4497 + goto/16 :goto_ba
4499 + :cond_1ff
4500 + const/4 v3, 0x0
4502 + goto/16 :goto_102
4504 + :cond_202
4505 + add-int/lit8 v19, v19, 0x1
4507 + goto/16 :goto_cf
4509 + :cond_206
4510 + :try_start_206
4511 + monitor-exit v5
4512 + :try_end_207
4513 + .catchall {:try_start_206 .. :try_end_207} :catchall_221
4515 + :cond_207
4516 + if-nez v16, :cond_224
4518 + :try_start_209
4519 + new-instance v3, Landroid/app/Instrumentation$ActivityResult;
4521 + move/from16 v0, p6
4523 + move-object/from16 v1, p5
4525 + invoke-direct {v3, v0, v1}, Landroid/app/Instrumentation$ActivityResult;-><init>(ILandroid/content/Intent;)V
4526 + :try_end_212
4527 + .catch Ljava/lang/Exception; {:try_start_209 .. :try_end_212} :catch_214
4529 + goto/16 :goto_103
4531 + :catch_214
4532 + move-exception v18
4534 + const-string v3, "Instrumentation"
4536 + const-string v5, "PDroid:Instrumentation:execStartActivity (with Fragments): Exception occurred while trying to create ActivityResult"
4538 + move-object/from16 v0, v18
4540 + invoke-static {v3, v5, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
4542 + const/4 v3, 0x0
4544 + goto/16 :goto_103
4546 + :catchall_221
4547 + move-exception v3
4549 + :try_start_222
4550 + monitor-exit v5
4551 + :try_end_223
4552 + .catchall {:try_start_222 .. :try_end_223} :catchall_221
4554 + throw v3
4556 + :cond_224
4557 + :try_start_224
4558 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->migrateExtraStreamToClipData()Z
4560 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->prepareToLeaveProcess()V
4562 + invoke-static {}, Landroid/app/ActivityManagerNative;->getDefault()Landroid/app/IActivityManager;
4564 + move-result-object v3
4566 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getBasePackageName()Ljava/lang/String;
4568 + move-result-object v5
4570 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
4572 + move-result-object v6
4574 + move-object/from16 v0, p5
4576 + invoke-virtual {v0, v6}, Landroid/content/Intent;->resolveTypeIfNeeded(Landroid/content/ContentResolver;)Ljava/lang/String;
4578 + move-result-object v7
4580 + if-eqz p4, :cond_25b
4582 + move-object/from16 v0, p4
4584 + iget-object v9, v0, Landroid/app/Fragment;->mWho:Ljava/lang/String;
4586 + :goto_242
4587 + const/4 v11, 0x0
4589 + const/4 v12, 0x0
4591 + const/4 v13, 0x0
4593 + move-object/from16 v6, p5
4595 + move-object/from16 v8, p3
4597 + move/from16 v10, p6
4599 + move-object/from16 v14, p7
4601 + invoke-interface/range {v3 .. v14}, Landroid/app/IActivityManager;->startActivity(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILjava/lang/String;Landroid/os/ParcelFileDescriptor;Landroid/os/Bundle;)I
4603 + move-result v21
4605 + move/from16 v0, v21
4607 + move-object/from16 v1, p5
4609 + invoke-static {v0, v1}, Landroid/app/Instrumentation;->checkStartActivityResult(ILjava/lang/Object;)V
4610 + :try_end_258
4611 + .catch Landroid/os/RemoteException; {:try_start_224 .. :try_end_258} :catch_25d
4613 + :goto_258
4614 + const/4 v3, 0x0
4616 + goto/16 :goto_103
4618 + :cond_25b
4619 + const/4 v9, 0x0
4621 + goto :goto_242
4623 + :catch_25d
4624 + move-exception v3
4626 + goto :goto_258
4627 .end method
4629 .method public finish(ILandroid/os/Bundle;)V
4630 diff -Npruw stock-framework/smali/android/app/LoaderManagerImpl$LoaderInfo.smali pdroid-framework/smali/android/app/LoaderManagerImpl$LoaderInfo.smali
4631 --- stock-framework/smali/android/app/LoaderManagerImpl$LoaderInfo.smali 2013-08-15 23:20:15.552304552 -0500
4632 +++ pdroid-framework/smali/android/app/LoaderManagerImpl$LoaderInfo.smali 2013-08-15 23:20:06.336304824 -0500
4633 @@ -534,7 +534,7 @@
4635 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
4637 - const-string v0, "mLoader="
4638 + const-string/jumbo v0, "mLoader="
4640 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
4642 @@ -544,7 +544,7 @@
4644 iget-object v0, p0, Landroid/app/LoaderManagerImpl$LoaderInfo;->mLoader:Landroid/content/Loader;
4646 - if-eqz v0, :cond_4d
4647 + if-eqz v0, :cond_4e
4649 iget-object v0, p0, Landroid/app/LoaderManagerImpl$LoaderInfo;->mLoader:Landroid/content/Loader;
4651 @@ -568,16 +568,16 @@
4653 invoke-virtual {v0, v1, p2, p3, p4}, Landroid/content/Loader;->dump(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
4655 - :cond_4d
4656 + :cond_4e
4657 iget-boolean v0, p0, Landroid/app/LoaderManagerImpl$LoaderInfo;->mHaveData:Z
4659 - if-nez v0, :cond_55
4660 + if-nez v0, :cond_56
4662 iget-boolean v0, p0, Landroid/app/LoaderManagerImpl$LoaderInfo;->mDeliveredData:Z
4664 - if-eqz v0, :cond_79
4665 + if-eqz v0, :cond_7a
4667 - :cond_55
4668 + :cond_56
4669 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
4671 const-string v0, "mHaveData="
4672 @@ -606,7 +606,7 @@
4674 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->println(Ljava/lang/Object;)V
4676 - :cond_79
4677 + :cond_7a
4678 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
4680 const-string/jumbo v0, "mStarted="
4681 @@ -661,7 +661,7 @@
4683 iget-object v0, p0, Landroid/app/LoaderManagerImpl$LoaderInfo;->mPendingLoader:Landroid/app/LoaderManagerImpl$LoaderInfo;
4685 - if-eqz v0, :cond_eb
4686 + if-eqz v0, :cond_ec
4688 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
4690 @@ -699,7 +699,7 @@
4692 invoke-virtual {v0, v1, p2, p3, p4}, Landroid/app/LoaderManagerImpl$LoaderInfo;->dump(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
4694 - :cond_eb
4695 + :cond_ec
4696 return-void
4697 .end method
4699 diff -Npruw stock-framework/smali/android/content/ContentResolver.smali pdroid-framework/smali/android/content/ContentResolver.smali
4700 --- stock-framework/smali/android/content/ContentResolver.smali 2013-08-15 23:20:15.416304556 -0500
4701 +++ pdroid-framework/smali/android/content/ContentResolver.smali 2013-08-15 23:20:06.196304828 -0500
4702 @@ -3757,8 +3757,8 @@
4704 invoke-virtual {v0, v10}, Landroid/os/CancellationSignal;->setRemote(Landroid/os/ICancellationSignal;)V
4705 :try_end_1f
4706 - .catchall {:try_start_c .. :try_end_1f} :catchall_d9
4707 - .catch Landroid/os/RemoteException; {:try_start_c .. :try_end_1f} :catch_c1
4708 + .catchall {:try_start_c .. :try_end_1f} :catchall_f5
4709 + .catch Landroid/os/RemoteException; {:try_start_c .. :try_end_1f} :catch_dd
4711 :cond_1f
4712 :try_start_1f
4713 @@ -3777,30 +3777,44 @@
4714 move-object/from16 v9, p5
4716 invoke-interface/range {v3 .. v10}, Landroid/content/IContentProvider;->query(Ljava/lang/String;Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Landroid/os/ICancellationSignal;)Landroid/database/Cursor;
4717 - :try_end_30
4718 - .catchall {:try_start_1f .. :try_end_30} :catchall_d9
4719 - .catch Landroid/os/DeadObjectException; {:try_start_1f .. :try_end_30} :catch_49
4720 - .catch Landroid/os/RemoteException; {:try_start_1f .. :try_end_30} :catch_c1
4722 move-result-object v20
4724 - :goto_31
4725 - if-nez v20, :cond_80
4726 + move-object/from16 v0, p0
4728 + iget-object v4, v0, Landroid/content/ContentResolver;->mContext:Landroid/content/Context;
4730 + move-object/from16 v0, p1
4732 + move-object/from16 v1, p2
4734 + move-object/from16 v2, v20
4736 + 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;
4737 + :try_end_3e
4738 + .catchall {:try_start_1f .. :try_end_3e} :catchall_f5
4739 + .catch Landroid/os/DeadObjectException; {:try_start_1f .. :try_end_3e} :catch_57
4740 + .catch Landroid/os/RemoteException; {:try_start_1f .. :try_end_3e} :catch_dd
4742 + move-result-object v20
4744 + :goto_3f
4745 + if-nez v20, :cond_9c
4747 const/16 v23, 0x0
4749 - if-eqz v20, :cond_3a
4750 + if-eqz v20, :cond_48
4752 invoke-interface/range {v20 .. v20}, Landroid/database/Cursor;->close()V
4754 - :cond_3a
4755 - if-eqz v3, :cond_41
4756 + :cond_48
4757 + if-eqz v3, :cond_4f
4759 move-object/from16 v0, p0
4761 invoke-virtual {v0, v3}, Landroid/content/ContentResolver;->releaseUnstableProvider(Landroid/content/IContentProvider;)Z
4763 - :cond_41
4764 + :cond_4f
4765 if-eqz v11, :cond_8
4767 move-object/from16 v0, p0
4768 @@ -3809,37 +3823,37 @@
4770 goto :goto_8
4772 - :catch_49
4773 + :catch_57
4774 move-exception v19
4776 - :try_start_4a
4777 + :try_start_58
4778 move-object/from16 v0, p0
4780 invoke-virtual {v0, v3}, Landroid/content/ContentResolver;->unstableProviderDied(Landroid/content/IContentProvider;)V
4782 invoke-virtual/range {p0 .. p1}, Landroid/content/ContentResolver;->acquireProvider(Landroid/net/Uri;)Landroid/content/IContentProvider;
4783 - :try_end_52
4784 - .catchall {:try_start_4a .. :try_end_52} :catchall_d9
4785 - .catch Landroid/os/RemoteException; {:try_start_4a .. :try_end_52} :catch_c1
4786 + :try_end_60
4787 + .catchall {:try_start_58 .. :try_end_60} :catchall_f5
4788 + .catch Landroid/os/RemoteException; {:try_start_58 .. :try_end_60} :catch_dd
4790 move-result-object v11
4792 - if-nez v11, :cond_6b
4793 + if-nez v11, :cond_79
4795 const/16 v23, 0x0
4797 - if-eqz v20, :cond_5c
4798 + if-eqz v20, :cond_6a
4800 invoke-interface/range {v20 .. v20}, Landroid/database/Cursor;->close()V
4802 - :cond_5c
4803 - if-eqz v3, :cond_63
4804 + :cond_6a
4805 + if-eqz v3, :cond_71
4807 move-object/from16 v0, p0
4809 invoke-virtual {v0, v3}, Landroid/content/ContentResolver;->releaseUnstableProvider(Landroid/content/IContentProvider;)Z
4811 - :cond_63
4812 + :cond_71
4813 if-eqz v11, :cond_8
4815 move-object/from16 v0, p0
4816 @@ -3848,8 +3862,8 @@
4818 goto :goto_8
4820 - :cond_6b
4821 - :try_start_6b
4822 + :cond_79
4823 + :try_start_79
4824 move-object/from16 v0, p0
4826 iget-object v12, v0, Landroid/content/ContentResolver;->mPackageName:Ljava/lang/String;
4827 @@ -3870,9 +3884,23 @@
4829 move-result-object v20
4831 - goto :goto_31
4832 + move-object/from16 v0, p0
4834 + iget-object v4, v0, Landroid/content/ContentResolver;->mContext:Landroid/content/Context;
4836 + move-object/from16 v0, p1
4838 + move-object/from16 v1, p2
4840 + move-object/from16 v2, v20
4842 + 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;
4844 + move-result-object v20
4846 + goto :goto_3f
4848 - :cond_80
4849 + :cond_9c
4850 invoke-interface/range {v20 .. v20}, Landroid/database/Cursor;->getCount()I
4852 invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J
4853 @@ -3895,11 +3923,11 @@
4855 new-instance v23, Landroid/content/ContentResolver$CursorWrapperInner;
4857 - if-eqz v11, :cond_bc
4858 + if-eqz v11, :cond_d8
4860 move-object v4, v11
4862 - :goto_9b
4863 + :goto_b7
4864 move-object/from16 v0, v23
4866 move-object/from16 v1, p0
4867 @@ -3907,26 +3935,26 @@
4868 move-object/from16 v2, v20
4870 invoke-direct {v0, v1, v2, v4}, Landroid/content/ContentResolver$CursorWrapperInner;-><init>(Landroid/content/ContentResolver;Landroid/database/Cursor;Landroid/content/IContentProvider;)V
4871 - :try_end_a4
4872 - .catchall {:try_start_6b .. :try_end_a4} :catchall_d9
4873 - .catch Landroid/os/RemoteException; {:try_start_6b .. :try_end_a4} :catch_c1
4874 + :try_end_c0
4875 + .catchall {:try_start_79 .. :try_end_c0} :catchall_f5
4876 + .catch Landroid/os/RemoteException; {:try_start_79 .. :try_end_c0} :catch_dd
4878 const/4 v11, 0x0
4880 const/16 v20, 0x0
4882 - if-eqz v20, :cond_ac
4883 + if-eqz v20, :cond_c8
4885 invoke-interface/range {v20 .. v20}, Landroid/database/Cursor;->close()V
4887 - :cond_ac
4888 - if-eqz v3, :cond_b3
4889 + :cond_c8
4890 + if-eqz v3, :cond_cf
4892 move-object/from16 v0, p0
4894 invoke-virtual {v0, v3}, Landroid/content/ContentResolver;->releaseUnstableProvider(Landroid/content/IContentProvider;)Z
4896 - :cond_b3
4897 + :cond_cf
4898 if-eqz v11, :cond_8
4900 move-object/from16 v0, p0
4901 @@ -3935,34 +3963,34 @@
4903 goto/16 :goto_8
4905 - :cond_bc
4906 - :try_start_bc
4907 + :cond_d8
4908 + :try_start_d8
4909 invoke-virtual/range {p0 .. p1}, Landroid/content/ContentResolver;->acquireProvider(Landroid/net/Uri;)Landroid/content/IContentProvider;
4910 - :try_end_bf
4911 - .catchall {:try_start_bc .. :try_end_bf} :catchall_d9
4912 - .catch Landroid/os/RemoteException; {:try_start_bc .. :try_end_bf} :catch_c1
4913 + :try_end_db
4914 + .catchall {:try_start_d8 .. :try_end_db} :catchall_f5
4915 + .catch Landroid/os/RemoteException; {:try_start_d8 .. :try_end_db} :catch_dd
4917 move-result-object v4
4919 - goto :goto_9b
4920 + goto :goto_b7
4922 - :catch_c1
4923 + :catch_dd
4924 move-exception v19
4926 const/16 v23, 0x0
4928 - if-eqz v20, :cond_c9
4929 + if-eqz v20, :cond_e5
4931 invoke-interface/range {v20 .. v20}, Landroid/database/Cursor;->close()V
4933 - :cond_c9
4934 - if-eqz v3, :cond_d0
4935 + :cond_e5
4936 + if-eqz v3, :cond_ec
4938 move-object/from16 v0, p0
4940 invoke-virtual {v0, v3}, Landroid/content/ContentResolver;->releaseUnstableProvider(Landroid/content/IContentProvider;)Z
4942 - :cond_d0
4943 + :cond_ec
4944 if-eqz v11, :cond_8
4946 move-object/from16 v0, p0
4947 @@ -3971,28 +3999,28 @@
4949 goto/16 :goto_8
4951 - :catchall_d9
4952 + :catchall_f5
4953 move-exception v4
4955 - if-eqz v20, :cond_df
4956 + if-eqz v20, :cond_fb
4958 invoke-interface/range {v20 .. v20}, Landroid/database/Cursor;->close()V
4960 - :cond_df
4961 - if-eqz v3, :cond_e6
4962 + :cond_fb
4963 + if-eqz v3, :cond_102
4965 move-object/from16 v0, p0
4967 invoke-virtual {v0, v3}, Landroid/content/ContentResolver;->releaseUnstableProvider(Landroid/content/IContentProvider;)Z
4969 - :cond_e6
4970 - if-eqz v11, :cond_ed
4971 + :cond_102
4972 + if-eqz v11, :cond_109
4974 move-object/from16 v0, p0
4976 invoke-virtual {v0, v11}, Landroid/content/ContentResolver;->releaseProvider(Landroid/content/IContentProvider;)Z
4978 - :cond_ed
4979 + :cond_109
4980 throw v4
4981 .end method
4983 diff -Npruw stock-framework/smali/android/content/pm/ContainerEncryptionParams.smali pdroid-framework/smali/android/content/pm/ContainerEncryptionParams.smali
4984 --- stock-framework/smali/android/content/pm/ContainerEncryptionParams.smali 2013-08-15 23:20:15.852304543 -0500
4985 +++ pdroid-framework/smali/android/content/pm/ContainerEncryptionParams.smali 2013-08-15 23:20:06.680304814 -0500
4986 @@ -837,7 +837,7 @@
4988 invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4990 - const-string v1, "mMacAlgorithm=\""
4991 + const-string/jumbo v1, "mMacAlgorithm=\""
4993 invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4995 @@ -849,7 +849,7 @@
4997 invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4999 - const-string v1, "mMacSpec="
5000 + const-string/jumbo v1, "mMacSpec="
5002 invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
5004 @@ -861,7 +861,7 @@
5006 invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
5008 - const-string v1, "mMacKey="
5009 + const-string/jumbo v1, "mMacKey="
5011 invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
5013 diff -Npruw stock-framework/smali/android/hardware/Camera$EventHandler.smali pdroid-framework/smali/android/hardware/Camera$EventHandler.smali
5014 --- stock-framework/smali/android/hardware/Camera$EventHandler.smali 2013-08-15 23:20:16.256304531 -0500
5015 +++ pdroid-framework/smali/android/hardware/Camera$EventHandler.smali 2013-08-15 23:20:07.164304799 -0500
5016 @@ -36,501 +36,879 @@
5018 # virtual methods
5019 .method public handleMessage(Landroid/os/Message;)V
5020 - .registers 11
5021 + .registers 19
5023 - const/16 v7, 0x101
5024 + const/4 v8, 0x1
5026 - const/4 v5, 0x1
5027 + move-object/from16 v0, p0
5029 - const/4 v4, 0x0
5030 + iget-object v1, v0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5032 + #getter for: Landroid/hardware/Camera;->privacyMode:Z
5033 + invoke-static {v1}, Landroid/hardware/Camera;->access$000(Landroid/hardware/Camera;)Z
5035 + move-result v1
5037 + if-nez v1, :cond_12
5039 + move-object/from16 v0, p0
5041 + iget-object v1, v0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5043 + #calls: Landroid/hardware/Camera;->initiate()V
5044 + invoke-static {v1}, Landroid/hardware/Camera;->access$100(Landroid/hardware/Camera;)V
5046 + :cond_12
5047 + move-object/from16 v0, p0
5049 + iget-object v1, v0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5051 + #calls: Landroid/hardware/Camera;->getPackageName()[Ljava/lang/String;
5052 + invoke-static {v1}, Landroid/hardware/Camera;->access$200(Landroid/hardware/Camera;)[Ljava/lang/String;
5054 + move-result-object v12
5056 + move-object/from16 v0, p0
5058 + iget-object v1, v0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5060 + #calls: Landroid/hardware/Camera;->checkIfPackagesAllowed()I
5061 + invoke-static {v1}, Landroid/hardware/Camera;->access$300(Landroid/hardware/Camera;)I
5063 + move-result v1
5065 + const/4 v2, -0x2
5067 + if-ne v1, v2, :cond_7c
5069 + const/4 v8, 0x0
5071 + move-object/from16 v0, p0
5073 + iget-object v1, v0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5075 + const/4 v2, 0x0
5077 + #calls: Landroid/hardware/Camera;->dataAccess(Z)V
5078 + invoke-static {v1, v2}, Landroid/hardware/Camera;->access$400(Landroid/hardware/Camera;Z)V
5080 + if-eqz v12, :cond_58
5082 + move-object/from16 v0, p0
5084 + iget-object v1, v0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5086 + #getter for: Landroid/hardware/Camera;->pSetMan:Landroid/privacy/PrivacySettingsManager;
5087 + invoke-static {v1}, Landroid/hardware/Camera;->access$500(Landroid/hardware/Camera;)Landroid/privacy/PrivacySettingsManager;
5089 - iget v6, p1, Landroid/os/Message;->what:I
5090 + move-result-object v1
5092 - sparse-switch v6, :sswitch_data_1a0
5093 + const/4 v2, 0x0
5095 - const-string v5, "Camera"
5096 + aget-object v2, v12, v2
5098 - new-instance v6, Ljava/lang/StringBuilder;
5099 + const/4 v3, 0x0
5101 - invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
5102 + const/4 v4, 0x1
5104 - const-string v7, "Unknown message type "
5105 + const-string v5, "camera"
5107 - invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
5108 + const/4 v6, 0x0
5110 + move-object/from16 v0, p0
5112 + iget-object v7, v0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5114 + #getter for: Landroid/hardware/Camera;->pSetMan:Landroid/privacy/PrivacySettingsManager;
5115 + invoke-static {v7}, Landroid/hardware/Camera;->access$500(Landroid/hardware/Camera;)Landroid/privacy/PrivacySettingsManager;
5117 + move-result-object v7
5119 + const/4 v15, 0x0
5121 + aget-object v15, v12, v15
5123 + invoke-static {}, Landroid/os/Process;->myUid()I
5125 + move-result v16
5127 + move/from16 v0, v16
5129 + invoke-virtual {v7, v15, v0}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
5131 + move-result-object v7
5133 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
5135 - move-result-object v6
5136 + :cond_58
5137 + :goto_58
5138 + move-object/from16 v0, p1
5140 - iget v7, p1, Landroid/os/Message;->what:I
5141 + iget v1, v0, Landroid/os/Message;->what:I
5143 - invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
5144 + sparse-switch v1, :sswitch_data_2f8
5146 - move-result-object v6
5147 + const-string v1, "Camera"
5149 - invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
5150 + new-instance v2, Ljava/lang/StringBuilder;
5152 - move-result-object v6
5153 + invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
5155 - invoke-static {v5, v6}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
5156 + const-string v3, "Unknown message type "
5158 - :cond_23
5159 - :goto_23
5160 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
5162 + move-result-object v2
5164 + move-object/from16 v0, p1
5166 + iget v3, v0, Landroid/os/Message;->what:I
5168 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
5170 + move-result-object v2
5172 + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
5174 + move-result-object v2
5176 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
5178 + :cond_7b
5179 + :goto_7b
5180 return-void
5182 - :sswitch_24
5183 - iget-object v5, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5184 + :cond_7c
5185 + move-object/from16 v0, p0
5187 + iget-object v1, v0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5189 + const/4 v2, 0x1
5191 + #calls: Landroid/hardware/Camera;->dataAccess(Z)V
5192 + invoke-static {v1, v2}, Landroid/hardware/Camera;->access$400(Landroid/hardware/Camera;Z)V
5194 + if-eqz v12, :cond_58
5196 + move-object/from16 v0, p0
5198 + iget-object v1, v0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5200 + #getter for: Landroid/hardware/Camera;->pSetMan:Landroid/privacy/PrivacySettingsManager;
5201 + invoke-static {v1}, Landroid/hardware/Camera;->access$500(Landroid/hardware/Camera;)Landroid/privacy/PrivacySettingsManager;
5203 + move-result-object v1
5205 + const/4 v2, 0x0
5207 + aget-object v2, v12, v2
5209 + const/4 v3, 0x0
5211 + const/4 v4, 0x0
5213 + const-string v5, "camera"
5215 + const/4 v6, 0x0
5217 + move-object/from16 v0, p0
5219 + iget-object v7, v0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5221 + #getter for: Landroid/hardware/Camera;->pSetMan:Landroid/privacy/PrivacySettingsManager;
5222 + invoke-static {v7}, Landroid/hardware/Camera;->access$500(Landroid/hardware/Camera;)Landroid/privacy/PrivacySettingsManager;
5224 + move-result-object v7
5226 + const/4 v15, 0x0
5228 + aget-object v15, v12, v15
5230 + invoke-static {}, Landroid/os/Process;->myUid()I
5232 + move-result v16
5234 + move/from16 v0, v16
5236 + invoke-virtual {v7, v15, v0}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
5238 + move-result-object v7
5240 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
5242 + goto :goto_58
5244 + :sswitch_af
5245 + move-object/from16 v0, p0
5247 + iget-object v1, v0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5249 #getter for: Landroid/hardware/Camera;->mShutterCallback:Landroid/hardware/Camera$ShutterCallback;
5250 - invoke-static {v5}, Landroid/hardware/Camera;->access$000(Landroid/hardware/Camera;)Landroid/hardware/Camera$ShutterCallback;
5251 + invoke-static {v1}, Landroid/hardware/Camera;->access$600(Landroid/hardware/Camera;)Landroid/hardware/Camera$ShutterCallback;
5253 - move-result-object v5
5254 + move-result-object v1
5256 - if-eqz v5, :cond_23
5257 + if-eqz v1, :cond_7b
5259 - iget-object v5, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5260 + move-object/from16 v0, p0
5262 + iget-object v1, v0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5264 #getter for: Landroid/hardware/Camera;->mShutterCallback:Landroid/hardware/Camera$ShutterCallback;
5265 - invoke-static {v5}, Landroid/hardware/Camera;->access$000(Landroid/hardware/Camera;)Landroid/hardware/Camera$ShutterCallback;
5266 + invoke-static {v1}, Landroid/hardware/Camera;->access$600(Landroid/hardware/Camera;)Landroid/hardware/Camera$ShutterCallback;
5268 + move-result-object v1
5270 - move-result-object v5
5271 + invoke-interface {v1}, Landroid/hardware/Camera$ShutterCallback;->onShutter()V
5273 - invoke-interface {v5}, Landroid/hardware/Camera$ShutterCallback;->onShutter()V
5274 + goto :goto_7b
5276 - goto :goto_23
5277 + :sswitch_c5
5278 + move-object/from16 v0, p0
5280 - :sswitch_36
5281 - iget-object v5, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5282 + iget-object v1, v0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5284 #getter for: Landroid/hardware/Camera;->mRawImageCallback:Landroid/hardware/Camera$PictureCallback;
5285 - invoke-static {v5}, Landroid/hardware/Camera;->access$100(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5286 + invoke-static {v1}, Landroid/hardware/Camera;->access$700(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5288 + move-result-object v1
5290 - move-result-object v5
5291 + if-eqz v1, :cond_7b
5293 - if-eqz v5, :cond_23
5294 + if-eqz v8, :cond_e9
5296 - iget-object v5, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5297 + move-object/from16 v0, p0
5299 + iget-object v1, v0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5301 #getter for: Landroid/hardware/Camera;->mRawImageCallback:Landroid/hardware/Camera$PictureCallback;
5302 - invoke-static {v5}, Landroid/hardware/Camera;->access$100(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5303 + invoke-static {v1}, Landroid/hardware/Camera;->access$700(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5305 + move-result-object v2
5307 - move-result-object v6
5308 + move-object/from16 v0, p1
5310 - iget-object v5, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
5311 + iget-object v1, v0, Landroid/os/Message;->obj:Ljava/lang/Object;
5313 - check-cast v5, [B
5314 + check-cast v1, [B
5316 - check-cast v5, [B
5317 + check-cast v1, [B
5319 - iget-object v7, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5320 + move-object/from16 v0, p0
5322 - invoke-interface {v6, v5, v7}, Landroid/hardware/Camera$PictureCallback;->onPictureTaken([BLandroid/hardware/Camera;)V
5323 + iget-object v3, v0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5325 - goto :goto_23
5326 + invoke-interface {v2, v1, v3}, Landroid/hardware/Camera$PictureCallback;->onPictureTaken([BLandroid/hardware/Camera;)V
5328 - :sswitch_50
5329 - iget-object v5, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5330 + goto :goto_7b
5332 + :cond_e9
5333 + move-object/from16 v0, p0
5335 + iget-object v1, v0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5337 + #getter for: Landroid/hardware/Camera;->mRawImageCallback:Landroid/hardware/Camera$PictureCallback;
5338 + invoke-static {v1}, Landroid/hardware/Camera;->access$700(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5340 + move-result-object v1
5342 + const/4 v2, 0x0
5344 + move-object/from16 v0, p0
5346 + iget-object v3, v0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5348 + invoke-interface {v1, v2, v3}, Landroid/hardware/Camera$PictureCallback;->onPictureTaken([BLandroid/hardware/Camera;)V
5350 + goto :goto_7b
5352 + :sswitch_fa
5353 + move-object/from16 v0, p0
5355 + iget-object v1, v0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5357 #getter for: Landroid/hardware/Camera;->mJpegCallback:Landroid/hardware/Camera$PictureCallback;
5358 - invoke-static {v5}, Landroid/hardware/Camera;->access$200(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5359 + invoke-static {v1}, Landroid/hardware/Camera;->access$800(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5361 - move-result-object v5
5362 + move-result-object v1
5364 - if-eqz v5, :cond_23
5365 + if-eqz v1, :cond_7b
5367 - iget-object v5, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5368 + if-eqz v8, :cond_11f
5370 + move-object/from16 v0, p0
5372 + iget-object v1, v0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5374 #getter for: Landroid/hardware/Camera;->mJpegCallback:Landroid/hardware/Camera$PictureCallback;
5375 - invoke-static {v5}, Landroid/hardware/Camera;->access$200(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5376 + invoke-static {v1}, Landroid/hardware/Camera;->access$800(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5378 - move-result-object v6
5379 + move-result-object v2
5381 - iget-object v5, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
5382 + move-object/from16 v0, p1
5384 - check-cast v5, [B
5385 + iget-object v1, v0, Landroid/os/Message;->obj:Ljava/lang/Object;
5387 - check-cast v5, [B
5388 + check-cast v1, [B
5390 - iget-object v7, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5391 + check-cast v1, [B
5393 - invoke-interface {v6, v5, v7}, Landroid/hardware/Camera$PictureCallback;->onPictureTaken([BLandroid/hardware/Camera;)V
5394 + move-object/from16 v0, p0
5396 - goto :goto_23
5397 + iget-object v3, v0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5399 - :sswitch_6a
5400 - iget-object v6, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5401 + invoke-interface {v2, v1, v3}, Landroid/hardware/Camera$PictureCallback;->onPictureTaken([BLandroid/hardware/Camera;)V
5403 - #getter for: Landroid/hardware/Camera;->mPreviewCallback:Landroid/hardware/Camera$PreviewCallback;
5404 - invoke-static {v6}, Landroid/hardware/Camera;->access$300(Landroid/hardware/Camera;)Landroid/hardware/Camera$PreviewCallback;
5405 + goto/16 :goto_7b
5407 + :cond_11f
5408 + move-object/from16 v0, p0
5410 + iget-object v1, v0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5412 + #getter for: Landroid/hardware/Camera;->mJpegCallback:Landroid/hardware/Camera$PictureCallback;
5413 + invoke-static {v1}, Landroid/hardware/Camera;->access$800(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5415 + move-result-object v1
5417 + move-object/from16 v0, p0
5419 + iget-object v2, v0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5421 + #calls: Landroid/hardware/Camera;->getFakeImage()[B
5422 + invoke-static {v2}, Landroid/hardware/Camera;->access$900(Landroid/hardware/Camera;)[B
5424 move-result-object v2
5426 - if-eqz v2, :cond_23
5427 + move-object/from16 v0, p0
5429 + iget-object v3, v0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5431 + invoke-interface {v1, v2, v3}, Landroid/hardware/Camera$PictureCallback;->onPictureTaken([BLandroid/hardware/Camera;)V
5433 + goto/16 :goto_7b
5435 + :sswitch_138
5436 + move-object/from16 v0, p0
5438 - iget-object v6, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5439 + iget-object v1, v0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5441 + #getter for: Landroid/hardware/Camera;->mPreviewCallback:Landroid/hardware/Camera$PreviewCallback;
5442 + invoke-static {v1}, Landroid/hardware/Camera;->access$1000(Landroid/hardware/Camera;)Landroid/hardware/Camera$PreviewCallback;
5444 + move-result-object v11
5446 + if-eqz v11, :cond_7b
5448 + move-object/from16 v0, p0
5450 + iget-object v1, v0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5452 #getter for: Landroid/hardware/Camera;->mOneShot:Z
5453 - invoke-static {v6}, Landroid/hardware/Camera;->access$400(Landroid/hardware/Camera;)Z
5454 + invoke-static {v1}, Landroid/hardware/Camera;->access$1100(Landroid/hardware/Camera;)Z
5456 - move-result v6
5457 + move-result v1
5459 - if-eqz v6, :cond_8c
5460 + if-eqz v1, :cond_167
5462 - iget-object v5, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5463 + move-object/from16 v0, p0
5465 - const/4 v6, 0x0
5466 + iget-object v1, v0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5468 + const/4 v2, 0x0
5470 #setter for: Landroid/hardware/Camera;->mPreviewCallback:Landroid/hardware/Camera$PreviewCallback;
5471 - invoke-static {v5, v6}, Landroid/hardware/Camera;->access$302(Landroid/hardware/Camera;Landroid/hardware/Camera$PreviewCallback;)Landroid/hardware/Camera$PreviewCallback;
5472 + invoke-static {v1, v2}, Landroid/hardware/Camera;->access$1002(Landroid/hardware/Camera;Landroid/hardware/Camera$PreviewCallback;)Landroid/hardware/Camera$PreviewCallback;
5474 + :cond_154
5475 + :goto_154
5476 + if-eqz v8, :cond_17b
5478 + move-object/from16 v0, p1
5480 - :cond_80
5481 - :goto_80
5482 - iget-object v5, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
5483 + iget-object v1, v0, Landroid/os/Message;->obj:Ljava/lang/Object;
5485 - check-cast v5, [B
5486 + check-cast v1, [B
5488 - check-cast v5, [B
5489 + check-cast v1, [B
5491 - iget-object v6, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5492 + move-object/from16 v0, p0
5494 - invoke-interface {v2, v5, v6}, Landroid/hardware/Camera$PreviewCallback;->onPreviewFrame([BLandroid/hardware/Camera;)V
5495 + iget-object v2, v0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5497 - goto :goto_23
5498 + invoke-interface {v11, v1, v2}, Landroid/hardware/Camera$PreviewCallback;->onPreviewFrame([BLandroid/hardware/Camera;)V
5500 - :cond_8c
5501 - iget-object v6, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5502 + goto/16 :goto_7b
5504 + :cond_167
5505 + move-object/from16 v0, p0
5507 + iget-object v1, v0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5509 #getter for: Landroid/hardware/Camera;->mWithBuffer:Z
5510 - invoke-static {v6}, Landroid/hardware/Camera;->access$500(Landroid/hardware/Camera;)Z
5511 + invoke-static {v1}, Landroid/hardware/Camera;->access$1200(Landroid/hardware/Camera;)Z
5513 + move-result v1
5515 - move-result v6
5516 + if-nez v1, :cond_154
5518 - if-nez v6, :cond_80
5519 + move-object/from16 v0, p0
5521 - iget-object v6, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5522 + iget-object v1, v0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5524 + const/4 v2, 0x1
5526 + const/4 v3, 0x0
5528 #calls: Landroid/hardware/Camera;->setHasPreviewCallback(ZZ)V
5529 - invoke-static {v6, v5, v4}, Landroid/hardware/Camera;->access$600(Landroid/hardware/Camera;ZZ)V
5530 + invoke-static {v1, v2, v3}, Landroid/hardware/Camera;->access$1300(Landroid/hardware/Camera;ZZ)V
5532 + goto :goto_154
5534 + :cond_17b
5535 + move-object/from16 v0, p0
5537 + iget-object v1, v0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5539 + #calls: Landroid/hardware/Camera;->getFakeImage()[B
5540 + invoke-static {v1}, Landroid/hardware/Camera;->access$900(Landroid/hardware/Camera;)[B
5542 + move-result-object v1
5544 - goto :goto_80
5545 + move-object/from16 v0, p0
5547 - :sswitch_9a
5548 - iget-object v5, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5549 + iget-object v2, v0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5551 + invoke-interface {v11, v1, v2}, Landroid/hardware/Camera$PreviewCallback;->onPreviewFrame([BLandroid/hardware/Camera;)V
5553 + goto/16 :goto_7b
5555 + :sswitch_18c
5556 + move-object/from16 v0, p0
5558 + iget-object v1, v0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5560 #getter for: Landroid/hardware/Camera;->mPostviewCallback:Landroid/hardware/Camera$PictureCallback;
5561 - invoke-static {v5}, Landroid/hardware/Camera;->access$700(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5562 + invoke-static {v1}, Landroid/hardware/Camera;->access$1400(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5564 + move-result-object v1
5566 + if-eqz v1, :cond_7b
5568 + if-eqz v8, :cond_1b1
5570 + move-object/from16 v0, p0
5572 + iget-object v1, v0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5574 + #getter for: Landroid/hardware/Camera;->mPostviewCallback:Landroid/hardware/Camera$PictureCallback;
5575 + invoke-static {v1}, Landroid/hardware/Camera;->access$1400(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5577 + move-result-object v2
5579 + move-object/from16 v0, p1
5581 + iget-object v1, v0, Landroid/os/Message;->obj:Ljava/lang/Object;
5583 + check-cast v1, [B
5585 + check-cast v1, [B
5587 + move-object/from16 v0, p0
5589 - move-result-object v5
5590 + iget-object v3, v0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5592 - if-eqz v5, :cond_23
5593 + invoke-interface {v2, v1, v3}, Landroid/hardware/Camera$PictureCallback;->onPictureTaken([BLandroid/hardware/Camera;)V
5595 - iget-object v5, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5596 + goto/16 :goto_7b
5598 + :cond_1b1
5599 + move-object/from16 v0, p0
5601 + iget-object v1, v0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5603 #getter for: Landroid/hardware/Camera;->mPostviewCallback:Landroid/hardware/Camera$PictureCallback;
5604 - invoke-static {v5}, Landroid/hardware/Camera;->access$700(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5605 + invoke-static {v1}, Landroid/hardware/Camera;->access$1400(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5607 - move-result-object v6
5608 + move-result-object v1
5610 - iget-object v5, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
5611 + move-object/from16 v0, p0
5613 - check-cast v5, [B
5614 + iget-object v2, v0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5616 - check-cast v5, [B
5617 + #calls: Landroid/hardware/Camera;->getFakeImage()[B
5618 + invoke-static {v2}, Landroid/hardware/Camera;->access$900(Landroid/hardware/Camera;)[B
5620 + move-result-object v2
5622 - iget-object v7, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5623 + move-object/from16 v0, p0
5625 - invoke-interface {v6, v5, v7}, Landroid/hardware/Camera$PictureCallback;->onPictureTaken([BLandroid/hardware/Camera;)V
5626 + iget-object v3, v0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5628 - goto/16 :goto_23
5629 + invoke-interface {v1, v2, v3}, Landroid/hardware/Camera$PictureCallback;->onPictureTaken([BLandroid/hardware/Camera;)V
5631 - :sswitch_b5
5632 - const/4 v0, 0x0
5633 + goto/16 :goto_7b
5635 - iget-object v6, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5636 + :sswitch_1ca
5637 + const/4 v9, 0x0
5639 + move-object/from16 v0, p0
5641 + iget-object v1, v0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5643 #getter for: Landroid/hardware/Camera;->mAutoFocusCallbackLock:Ljava/lang/Object;
5644 - invoke-static {v6}, Landroid/hardware/Camera;->access$800(Landroid/hardware/Camera;)Ljava/lang/Object;
5645 + invoke-static {v1}, Landroid/hardware/Camera;->access$1500(Landroid/hardware/Camera;)Ljava/lang/Object;
5647 - move-result-object v6
5648 + move-result-object v2
5650 - monitor-enter v6
5651 + monitor-enter v2
5653 - :try_start_bd
5654 - iget-object v7, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5655 + :try_start_1d4
5656 + move-object/from16 v0, p0
5658 + iget-object v1, v0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5660 #getter for: Landroid/hardware/Camera;->mAutoFocusCallback:Landroid/hardware/Camera$AutoFocusCallback;
5661 - invoke-static {v7}, Landroid/hardware/Camera;->access$900(Landroid/hardware/Camera;)Landroid/hardware/Camera$AutoFocusCallback;
5662 + invoke-static {v1}, Landroid/hardware/Camera;->access$1600(Landroid/hardware/Camera;)Landroid/hardware/Camera$AutoFocusCallback;
5664 + move-result-object v9
5666 + monitor-exit v2
5667 + :try_end_1dd
5668 + .catchall {:try_start_1d4 .. :try_end_1dd} :catchall_1ef
5670 - move-result-object v0
5671 + if-eqz v9, :cond_7b
5673 - monitor-exit v6
5674 - :try_end_c4
5675 - .catchall {:try_start_bd .. :try_end_c4} :catchall_d1
5676 + move-object/from16 v0, p1
5678 - if-eqz v0, :cond_23
5679 + iget v1, v0, Landroid/os/Message;->arg1:I
5681 - iget v6, p1, Landroid/os/Message;->arg1:I
5682 + if-nez v1, :cond_1f2
5684 - if-nez v6, :cond_d4
5685 + const/4 v14, 0x0
5687 - :goto_ca
5688 - iget-object v5, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5689 + :goto_1e6
5690 + move-object/from16 v0, p0
5692 - invoke-interface {v0, v4, v5}, Landroid/hardware/Camera$AutoFocusCallback;->onAutoFocus(ZLandroid/hardware/Camera;)V
5693 + iget-object v1, v0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5695 - goto/16 :goto_23
5696 + invoke-interface {v9, v14, v1}, Landroid/hardware/Camera$AutoFocusCallback;->onAutoFocus(ZLandroid/hardware/Camera;)V
5698 - :catchall_d1
5699 - move-exception v5
5700 + goto/16 :goto_7b
5702 - :try_start_d2
5703 - monitor-exit v6
5704 - :try_end_d3
5705 - .catchall {:try_start_d2 .. :try_end_d3} :catchall_d1
5706 + :catchall_1ef
5707 + move-exception v1
5709 - throw v5
5710 + :try_start_1f0
5711 + monitor-exit v2
5712 + :try_end_1f1
5713 + .catchall {:try_start_1f0 .. :try_end_1f1} :catchall_1ef
5715 - :cond_d4
5716 - move v4, v5
5717 + throw v1
5719 - goto :goto_ca
5720 + :cond_1f2
5721 + const/4 v14, 0x1
5723 - :sswitch_d6
5724 - iget-object v6, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5725 + goto :goto_1e6
5727 + :sswitch_1f4
5728 + move-object/from16 v0, p0
5730 + iget-object v1, v0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5732 #getter for: Landroid/hardware/Camera;->mZoomListener:Landroid/hardware/Camera$OnZoomChangeListener;
5733 - invoke-static {v6}, Landroid/hardware/Camera;->access$1000(Landroid/hardware/Camera;)Landroid/hardware/Camera$OnZoomChangeListener;
5734 + invoke-static {v1}, Landroid/hardware/Camera;->access$1700(Landroid/hardware/Camera;)Landroid/hardware/Camera$OnZoomChangeListener;
5736 + move-result-object v1
5738 - move-result-object v6
5739 + if-eqz v1, :cond_7b
5741 - if-eqz v6, :cond_23
5742 + move-object/from16 v0, p0
5744 - iget-object v6, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5745 + iget-object v1, v0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5747 #getter for: Landroid/hardware/Camera;->mZoomListener:Landroid/hardware/Camera$OnZoomChangeListener;
5748 - invoke-static {v6}, Landroid/hardware/Camera;->access$1000(Landroid/hardware/Camera;)Landroid/hardware/Camera$OnZoomChangeListener;
5749 + invoke-static {v1}, Landroid/hardware/Camera;->access$1700(Landroid/hardware/Camera;)Landroid/hardware/Camera$OnZoomChangeListener;
5751 - move-result-object v6
5752 + move-result-object v2
5754 + move-object/from16 v0, p1
5756 + iget v3, v0, Landroid/os/Message;->arg1:I
5758 + move-object/from16 v0, p1
5760 - iget v7, p1, Landroid/os/Message;->arg1:I
5761 + iget v1, v0, Landroid/os/Message;->arg2:I
5763 - iget v8, p1, Landroid/os/Message;->arg2:I
5764 + if-eqz v1, :cond_21a
5766 - if-eqz v8, :cond_f1
5767 + const/4 v1, 0x1
5769 - :goto_ea
5770 - iget-object v8, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5771 + :goto_211
5772 + move-object/from16 v0, p0
5774 - invoke-interface {v6, v7, v5, v8}, Landroid/hardware/Camera$OnZoomChangeListener;->onZoomChange(IZLandroid/hardware/Camera;)V
5775 + iget-object v4, v0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5777 - goto/16 :goto_23
5778 + invoke-interface {v2, v3, v1, v4}, Landroid/hardware/Camera$OnZoomChangeListener;->onZoomChange(IZLandroid/hardware/Camera;)V
5780 + goto/16 :goto_7b
5782 + :cond_21a
5783 + const/4 v1, 0x0
5785 - :cond_f1
5786 - move v5, v4
5787 + goto :goto_211
5789 - goto :goto_ea
5790 + :sswitch_21c
5791 + move-object/from16 v0, p0
5793 - :sswitch_f3
5794 - iget-object v5, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5795 + iget-object v1, v0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5797 #getter for: Landroid/hardware/Camera;->mFaceListener:Landroid/hardware/Camera$FaceDetectionListener;
5798 - invoke-static {v5}, Landroid/hardware/Camera;->access$1100(Landroid/hardware/Camera;)Landroid/hardware/Camera$FaceDetectionListener;
5799 + invoke-static {v1}, Landroid/hardware/Camera;->access$1800(Landroid/hardware/Camera;)Landroid/hardware/Camera$FaceDetectionListener;
5801 - move-result-object v5
5802 + move-result-object v1
5804 - if-eqz v5, :cond_23
5805 + if-eqz v1, :cond_7b
5807 - iget-object v5, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5808 + move-object/from16 v0, p0
5810 + iget-object v1, v0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5812 #getter for: Landroid/hardware/Camera;->mFaceListener:Landroid/hardware/Camera$FaceDetectionListener;
5813 - invoke-static {v5}, Landroid/hardware/Camera;->access$1100(Landroid/hardware/Camera;)Landroid/hardware/Camera$FaceDetectionListener;
5814 + invoke-static {v1}, Landroid/hardware/Camera;->access$1800(Landroid/hardware/Camera;)Landroid/hardware/Camera$FaceDetectionListener;
5816 + move-result-object v2
5818 - move-result-object v6
5819 + move-object/from16 v0, p1
5821 - iget-object v5, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
5822 + iget-object v1, v0, Landroid/os/Message;->obj:Ljava/lang/Object;
5824 - check-cast v5, [Landroid/hardware/Camera$Face;
5825 + check-cast v1, [Landroid/hardware/Camera$Face;
5827 - check-cast v5, [Landroid/hardware/Camera$Face;
5828 + check-cast v1, [Landroid/hardware/Camera$Face;
5830 - iget-object v7, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5831 + move-object/from16 v0, p0
5833 - invoke-interface {v6, v5, v7}, Landroid/hardware/Camera$FaceDetectionListener;->onFaceDetection([Landroid/hardware/Camera$Face;Landroid/hardware/Camera;)V
5834 + iget-object v3, v0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5836 - goto/16 :goto_23
5837 + invoke-interface {v2, v1, v3}, Landroid/hardware/Camera$FaceDetectionListener;->onFaceDetection([Landroid/hardware/Camera$Face;Landroid/hardware/Camera;)V
5839 - :sswitch_10e
5840 - const-string v5, "Camera"
5841 + goto/16 :goto_7b
5843 - new-instance v6, Ljava/lang/StringBuilder;
5844 + :sswitch_23f
5845 + const-string v1, "Camera"
5847 - invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
5848 + new-instance v2, Ljava/lang/StringBuilder;
5850 - const-string v7, "Error "
5851 + invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
5853 - invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
5854 + const-string v3, "Error "
5856 - move-result-object v6
5857 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
5859 - iget v7, p1, Landroid/os/Message;->arg1:I
5860 + move-result-object v2
5862 - invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
5863 + move-object/from16 v0, p1
5865 - move-result-object v6
5866 + iget v3, v0, Landroid/os/Message;->arg1:I
5868 - invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
5869 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
5871 - move-result-object v6
5872 + move-result-object v2
5874 - invoke-static {v5, v6}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
5875 + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
5877 - iget-object v5, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5878 + move-result-object v2
5880 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
5882 + move-object/from16 v0, p0
5884 + iget-object v1, v0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5886 #getter for: Landroid/hardware/Camera;->mErrorCallback:Landroid/hardware/Camera$ErrorCallback;
5887 - invoke-static {v5}, Landroid/hardware/Camera;->access$1200(Landroid/hardware/Camera;)Landroid/hardware/Camera$ErrorCallback;
5888 + invoke-static {v1}, Landroid/hardware/Camera;->access$1900(Landroid/hardware/Camera;)Landroid/hardware/Camera$ErrorCallback;
5890 + move-result-object v1
5892 - move-result-object v5
5893 + if-eqz v1, :cond_7b
5895 - if-eqz v5, :cond_23
5896 + move-object/from16 v0, p0
5898 - iget-object v5, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5899 + iget-object v1, v0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5901 #getter for: Landroid/hardware/Camera;->mErrorCallback:Landroid/hardware/Camera$ErrorCallback;
5902 - invoke-static {v5}, Landroid/hardware/Camera;->access$1200(Landroid/hardware/Camera;)Landroid/hardware/Camera$ErrorCallback;
5903 + invoke-static {v1}, Landroid/hardware/Camera;->access$1900(Landroid/hardware/Camera;)Landroid/hardware/Camera$ErrorCallback;
5905 + move-result-object v1
5907 + move-object/from16 v0, p1
5909 + iget v2, v0, Landroid/os/Message;->arg1:I
5911 - move-result-object v5
5912 + move-object/from16 v0, p0
5914 - iget v6, p1, Landroid/os/Message;->arg1:I
5915 + iget-object v3, v0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5917 - iget-object v7, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5918 + invoke-interface {v1, v2, v3}, Landroid/hardware/Camera$ErrorCallback;->onError(ILandroid/hardware/Camera;)V
5920 - invoke-interface {v5, v6, v7}, Landroid/hardware/Camera$ErrorCallback;->onError(ILandroid/hardware/Camera;)V
5921 + goto/16 :goto_7b
5923 - goto/16 :goto_23
5924 + :sswitch_27a
5925 + move-object/from16 v0, p0
5927 - :sswitch_13f
5928 - iget-object v6, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5929 + iget-object v1, v0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5931 #getter for: Landroid/hardware/Camera;->mAutoFocusMoveCallback:Landroid/hardware/Camera$AutoFocusMoveCallback;
5932 - invoke-static {v6}, Landroid/hardware/Camera;->access$1300(Landroid/hardware/Camera;)Landroid/hardware/Camera$AutoFocusMoveCallback;
5933 + invoke-static {v1}, Landroid/hardware/Camera;->access$2000(Landroid/hardware/Camera;)Landroid/hardware/Camera$AutoFocusMoveCallback;
5935 - move-result-object v6
5936 + move-result-object v1
5938 - if-eqz v6, :cond_23
5939 + if-eqz v1, :cond_7b
5941 - iget-object v6, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5942 + move-object/from16 v0, p0
5944 + iget-object v1, v0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5946 #getter for: Landroid/hardware/Camera;->mAutoFocusMoveCallback:Landroid/hardware/Camera$AutoFocusMoveCallback;
5947 - invoke-static {v6}, Landroid/hardware/Camera;->access$1300(Landroid/hardware/Camera;)Landroid/hardware/Camera$AutoFocusMoveCallback;
5948 + invoke-static {v1}, Landroid/hardware/Camera;->access$2000(Landroid/hardware/Camera;)Landroid/hardware/Camera$AutoFocusMoveCallback;
5950 + move-result-object v2
5952 - move-result-object v6
5953 + move-object/from16 v0, p1
5955 - iget v7, p1, Landroid/os/Message;->arg1:I
5956 + iget v1, v0, Landroid/os/Message;->arg1:I
5958 - if-nez v7, :cond_158
5959 + if-nez v1, :cond_29c
5961 - :goto_151
5962 - iget-object v5, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5963 + const/4 v1, 0x0
5965 - invoke-interface {v6, v4, v5}, Landroid/hardware/Camera$AutoFocusMoveCallback;->onAutoFocusMoving(ZLandroid/hardware/Camera;)V
5966 + :goto_293
5967 + move-object/from16 v0, p0
5969 - goto/16 :goto_23
5970 + iget-object v3, v0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5972 - :cond_158
5973 - move v4, v5
5974 + invoke-interface {v2, v1, v3}, Landroid/hardware/Camera$AutoFocusMoveCallback;->onAutoFocusMoving(ZLandroid/hardware/Camera;)V
5976 - goto :goto_151
5977 + goto/16 :goto_7b
5979 - :sswitch_15a
5980 - new-array v3, v7, [I
5981 + :cond_29c
5982 + const/4 v1, 0x1
5984 - const/4 v1, 0x0
5985 + goto :goto_293
5987 + :sswitch_29e
5988 + const/16 v1, 0x101
5990 - :goto_15d
5991 - if-ge v1, v7, :cond_170
5992 + new-array v13, v1, [I
5994 - iget-object v5, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
5995 + const/4 v10, 0x0
5997 - check-cast v5, [B
5998 + :goto_2a3
5999 + const/16 v1, 0x101
6001 - check-cast v5, [B
6002 + if-ge v10, v1, :cond_2ba
6004 - mul-int/lit8 v6, v1, 0x4
6005 + move-object/from16 v0, p1
6007 + iget-object v1, v0, Landroid/os/Message;->obj:Ljava/lang/Object;
6009 + check-cast v1, [B
6011 + check-cast v1, [B
6013 + mul-int/lit8 v2, v10, 0x4
6015 #calls: Landroid/hardware/Camera;->byteToInt([BI)I
6016 - invoke-static {v5, v6}, Landroid/hardware/Camera;->access$1400([BI)I
6017 + invoke-static {v1, v2}, Landroid/hardware/Camera;->access$2100([BI)I
6019 + move-result v1
6021 - move-result v5
6022 + aput v1, v13, v10
6024 - aput v5, v3, v1
6025 + add-int/lit8 v10, v10, 0x1
6027 - add-int/lit8 v1, v1, 0x1
6028 + goto :goto_2a3
6030 - goto :goto_15d
6031 + :cond_2ba
6032 + move-object/from16 v0, p0
6034 - :cond_170
6035 - iget-object v5, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
6036 + iget-object v1, v0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
6038 #getter for: Landroid/hardware/Camera;->mCameraDataCallback:Landroid/hardware/Camera$CameraDataCallback;
6039 - invoke-static {v5}, Landroid/hardware/Camera;->access$1500(Landroid/hardware/Camera;)Landroid/hardware/Camera$CameraDataCallback;
6040 + invoke-static {v1}, Landroid/hardware/Camera;->access$2200(Landroid/hardware/Camera;)Landroid/hardware/Camera$CameraDataCallback;
6042 + move-result-object v1
6044 - move-result-object v5
6045 + if-eqz v1, :cond_7b
6047 - if-eqz v5, :cond_23
6048 + move-object/from16 v0, p0
6050 - iget-object v5, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
6051 + iget-object v1, v0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
6053 #getter for: Landroid/hardware/Camera;->mCameraDataCallback:Landroid/hardware/Camera$CameraDataCallback;
6054 - invoke-static {v5}, Landroid/hardware/Camera;->access$1500(Landroid/hardware/Camera;)Landroid/hardware/Camera$CameraDataCallback;
6055 + invoke-static {v1}, Landroid/hardware/Camera;->access$2200(Landroid/hardware/Camera;)Landroid/hardware/Camera$CameraDataCallback;
6057 - move-result-object v5
6058 + move-result-object v1
6060 - iget-object v6, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
6061 + move-object/from16 v0, p0
6063 - invoke-interface {v5, v3, v6}, Landroid/hardware/Camera$CameraDataCallback;->onCameraData([ILandroid/hardware/Camera;)V
6064 + iget-object v2, v0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
6066 - goto/16 :goto_23
6067 + invoke-interface {v1, v13, v2}, Landroid/hardware/Camera$CameraDataCallback;->onCameraData([ILandroid/hardware/Camera;)V
6069 - :sswitch_185
6070 - iget-object v5, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
6071 + goto/16 :goto_7b
6073 + :sswitch_2d5
6074 + move-object/from16 v0, p0
6076 + iget-object v1, v0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
6078 #getter for: Landroid/hardware/Camera;->mCameraMetaDataCallback:Landroid/hardware/Camera$CameraMetaDataCallback;
6079 - invoke-static {v5}, Landroid/hardware/Camera;->access$1600(Landroid/hardware/Camera;)Landroid/hardware/Camera$CameraMetaDataCallback;
6080 + invoke-static {v1}, Landroid/hardware/Camera;->access$2300(Landroid/hardware/Camera;)Landroid/hardware/Camera$CameraMetaDataCallback;
6082 + move-result-object v1
6084 - move-result-object v5
6085 + if-eqz v1, :cond_7b
6087 - if-eqz v5, :cond_23
6088 + move-object/from16 v0, p0
6090 - iget-object v5, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
6091 + iget-object v1, v0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
6093 #getter for: Landroid/hardware/Camera;->mCameraMetaDataCallback:Landroid/hardware/Camera$CameraMetaDataCallback;
6094 - invoke-static {v5}, Landroid/hardware/Camera;->access$1600(Landroid/hardware/Camera;)Landroid/hardware/Camera$CameraMetaDataCallback;
6095 + invoke-static {v1}, Landroid/hardware/Camera;->access$2300(Landroid/hardware/Camera;)Landroid/hardware/Camera$CameraMetaDataCallback;
6097 + move-result-object v2
6099 + move-object/from16 v0, p1
6101 - move-result-object v6
6102 + iget-object v1, v0, Landroid/os/Message;->obj:Ljava/lang/Object;
6104 - iget-object v5, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
6105 + check-cast v1, [I
6107 - check-cast v5, [I
6108 + check-cast v1, [I
6110 - check-cast v5, [I
6111 + move-object/from16 v0, p0
6113 - iget-object v7, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
6114 + iget-object v3, v0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
6116 - invoke-interface {v6, v5, v7}, Landroid/hardware/Camera$CameraMetaDataCallback;->onCameraMetaData([ILandroid/hardware/Camera;)V
6117 + invoke-interface {v2, v1, v3}, Landroid/hardware/Camera$CameraMetaDataCallback;->onCameraMetaData([ILandroid/hardware/Camera;)V
6119 - goto/16 :goto_23
6120 + goto/16 :goto_7b
6122 - :sswitch_data_1a0
6123 + :sswitch_data_2f8
6124 .sparse-switch
6125 - 0x1 -> :sswitch_10e
6126 - 0x2 -> :sswitch_24
6127 - 0x4 -> :sswitch_b5
6128 - 0x8 -> :sswitch_d6
6129 - 0x10 -> :sswitch_6a
6130 - 0x40 -> :sswitch_9a
6131 - 0x80 -> :sswitch_36
6132 - 0x100 -> :sswitch_50
6133 - 0x400 -> :sswitch_f3
6134 - 0x800 -> :sswitch_13f
6135 - 0x1000 -> :sswitch_15a
6136 - 0x2000 -> :sswitch_185
6137 + 0x1 -> :sswitch_23f
6138 + 0x2 -> :sswitch_af
6139 + 0x4 -> :sswitch_1ca
6140 + 0x8 -> :sswitch_1f4
6141 + 0x10 -> :sswitch_138
6142 + 0x40 -> :sswitch_18c
6143 + 0x80 -> :sswitch_c5
6144 + 0x100 -> :sswitch_fa
6145 + 0x400 -> :sswitch_21c
6146 + 0x800 -> :sswitch_27a
6147 + 0x1000 -> :sswitch_29e
6148 + 0x2000 -> :sswitch_2d5
6149 .end sparse-switch
6150 .end method
6151 diff -Npruw stock-framework/smali/android/hardware/Camera.smali pdroid-framework/smali/android/hardware/Camera.smali
6152 --- stock-framework/smali/android/hardware/Camera.smali 2013-08-15 23:20:16.264304531 -0500
6153 +++ pdroid-framework/smali/android/hardware/Camera.smali 2013-08-15 23:20:07.172304799 -0500
6154 @@ -69,10 +69,20 @@
6156 .field private static final CAMERA_MSG_ZOOM:I = 0x8
6158 +.field private static final GOT_ERROR:I = -0x3
6160 +.field private static final IS_ALLOWED:I = -0x1
6162 +.field private static final IS_NOT_ALLOWED:I = -0x2
6164 +.field private static final PRIVACY_TAG:Ljava/lang/String; = "PM,Camera"
6166 .field private static final TAG:Ljava/lang/String; = "Camera"
6169 # instance fields
6170 +.field private context:Landroid/content/Context;
6172 .field private mAutoFocusCallback:Landroid/hardware/Camera$AutoFocusCallback;
6174 .field private mAutoFocusCallbackLock:Ljava/lang/Object;
6175 @@ -97,6 +107,8 @@
6177 .field private mOneShot:Z
6179 +.field private mPm:Landroid/content/pm/IPackageManager;
6181 .field private mPostviewCallback:Landroid/hardware/Camera$PictureCallback;
6183 .field private mPreviewCallback:Landroid/hardware/Camera$PreviewCallback;
6184 @@ -109,16 +121,20 @@
6186 .field private mZoomListener:Landroid/hardware/Camera$OnZoomChangeListener;
6188 +.field private pSetMan:Landroid/privacy/PrivacySettingsManager;
6190 +.field private privacyMode:Z
6193 # direct methods
6194 .method constructor <init>()V
6195 - .registers 2
6196 + .registers 3
6198 - invoke-direct {p0}, Ljava/lang/Object;-><init>()V
6199 + const/4 v1, 0x0
6201 - const/4 v0, 0x0
6202 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
6204 - iput-boolean v0, p0, Landroid/hardware/Camera;->mFaceDetectionRunning:Z
6205 + iput-boolean v1, p0, Landroid/hardware/Camera;->mFaceDetectionRunning:Z
6207 new-instance v0, Ljava/lang/Object;
6209 @@ -126,19 +142,21 @@
6211 iput-object v0, p0, Landroid/hardware/Camera;->mAutoFocusCallbackLock:Ljava/lang/Object;
6213 + iput-boolean v1, p0, Landroid/hardware/Camera;->privacyMode:Z
6215 return-void
6216 .end method
6218 .method constructor <init>(I)V
6219 - .registers 6
6220 + .registers 7
6222 + const/4 v4, 0x0
6224 const/4 v3, 0x0
6226 invoke-direct {p0}, Ljava/lang/Object;-><init>()V
6228 - const/4 v2, 0x0
6230 - iput-boolean v2, p0, Landroid/hardware/Camera;->mFaceDetectionRunning:Z
6231 + iput-boolean v4, p0, Landroid/hardware/Camera;->mFaceDetectionRunning:Z
6233 new-instance v2, Ljava/lang/Object;
6235 @@ -146,6 +164,8 @@
6237 iput-object v2, p0, Landroid/hardware/Camera;->mAutoFocusCallbackLock:Ljava/lang/Object;
6239 + iput-boolean v4, p0, Landroid/hardware/Camera;->privacyMode:Z
6241 iput-object v3, p0, Landroid/hardware/Camera;->mShutterCallback:Landroid/hardware/Camera$ShutterCallback;
6243 iput-object v3, p0, Landroid/hardware/Camera;->mRawImageCallback:Landroid/hardware/Camera$PictureCallback;
6244 @@ -162,11 +182,13 @@
6246 iput-object v3, p0, Landroid/hardware/Camera;->mCameraMetaDataCallback:Landroid/hardware/Camera$CameraMetaDataCallback;
6248 + invoke-direct {p0}, Landroid/hardware/Camera;->initiate()V
6250 invoke-static {}, Landroid/os/Looper;->myLooper()Landroid/os/Looper;
6252 move-result-object v0
6254 - if-eqz v0, :cond_38
6255 + if-eqz v0, :cond_3d
6257 new-instance v2, Landroid/hardware/Camera$EventHandler;
6259 @@ -174,7 +196,7 @@
6261 iput-object v2, p0, Landroid/hardware/Camera;->mEventHandler:Landroid/hardware/Camera$EventHandler;
6263 - :goto_2b
6264 + :goto_30
6265 invoke-static {}, Landroid/app/ActivityThread;->currentPackageName()Ljava/lang/String;
6267 move-result-object v1
6268 @@ -187,12 +209,12 @@
6270 return-void
6272 - :cond_38
6273 + :cond_3d
6274 invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper;
6276 move-result-object v0
6278 - if-eqz v0, :cond_46
6279 + if-eqz v0, :cond_4b
6281 new-instance v2, Landroid/hardware/Camera$EventHandler;
6283 @@ -200,12 +222,12 @@
6285 iput-object v2, p0, Landroid/hardware/Camera;->mEventHandler:Landroid/hardware/Camera$EventHandler;
6287 - goto :goto_2b
6288 + goto :goto_30
6290 - :cond_46
6291 + :cond_4b
6292 iput-object v3, p0, Landroid/hardware/Camera;->mEventHandler:Landroid/hardware/Camera$EventHandler;
6294 - goto :goto_2b
6295 + goto :goto_30
6296 .end method
6298 .method private final native _addCallbackBuffer([BI)V
6299 @@ -226,23 +248,87 @@
6300 .method private final native _stopPreview()V
6301 .end method
6303 -.method static synthetic access$000(Landroid/hardware/Camera;)Landroid/hardware/Camera$ShutterCallback;
6304 +.method static synthetic access$000(Landroid/hardware/Camera;)Z
6305 .registers 2
6307 - iget-object v0, p0, Landroid/hardware/Camera;->mShutterCallback:Landroid/hardware/Camera$ShutterCallback;
6308 + iget-boolean v0, p0, Landroid/hardware/Camera;->privacyMode:Z
6310 + return v0
6311 +.end method
6313 +.method static synthetic access$100(Landroid/hardware/Camera;)V
6314 + .registers 1
6316 + invoke-direct {p0}, Landroid/hardware/Camera;->initiate()V
6318 + return-void
6319 +.end method
6321 +.method static synthetic access$1000(Landroid/hardware/Camera;)Landroid/hardware/Camera$PreviewCallback;
6322 + .registers 2
6324 + iget-object v0, p0, Landroid/hardware/Camera;->mPreviewCallback:Landroid/hardware/Camera$PreviewCallback;
6326 return-object v0
6327 .end method
6329 -.method static synthetic access$100(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
6330 +.method static synthetic access$1002(Landroid/hardware/Camera;Landroid/hardware/Camera$PreviewCallback;)Landroid/hardware/Camera$PreviewCallback;
6331 .registers 2
6333 - iget-object v0, p0, Landroid/hardware/Camera;->mRawImageCallback:Landroid/hardware/Camera$PictureCallback;
6334 + iput-object p1, p0, Landroid/hardware/Camera;->mPreviewCallback:Landroid/hardware/Camera$PreviewCallback;
6336 + return-object p1
6337 +.end method
6339 +.method static synthetic access$1100(Landroid/hardware/Camera;)Z
6340 + .registers 2
6342 + iget-boolean v0, p0, Landroid/hardware/Camera;->mOneShot:Z
6344 + return v0
6345 +.end method
6347 +.method static synthetic access$1200(Landroid/hardware/Camera;)Z
6348 + .registers 2
6350 + iget-boolean v0, p0, Landroid/hardware/Camera;->mWithBuffer:Z
6352 + return v0
6353 +.end method
6355 +.method static synthetic access$1300(Landroid/hardware/Camera;ZZ)V
6356 + .registers 3
6358 + invoke-direct {p0, p1, p2}, Landroid/hardware/Camera;->setHasPreviewCallback(ZZ)V
6360 + return-void
6361 +.end method
6363 +.method static synthetic access$1400(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
6364 + .registers 2
6366 + iget-object v0, p0, Landroid/hardware/Camera;->mPostviewCallback:Landroid/hardware/Camera$PictureCallback;
6368 return-object v0
6369 .end method
6371 -.method static synthetic access$1000(Landroid/hardware/Camera;)Landroid/hardware/Camera$OnZoomChangeListener;
6372 +.method static synthetic access$1500(Landroid/hardware/Camera;)Ljava/lang/Object;
6373 + .registers 2
6375 + iget-object v0, p0, Landroid/hardware/Camera;->mAutoFocusCallbackLock:Ljava/lang/Object;
6377 + return-object v0
6378 +.end method
6380 +.method static synthetic access$1600(Landroid/hardware/Camera;)Landroid/hardware/Camera$AutoFocusCallback;
6381 + .registers 2
6383 + iget-object v0, p0, Landroid/hardware/Camera;->mAutoFocusCallback:Landroid/hardware/Camera$AutoFocusCallback;
6385 + return-object v0
6386 +.end method
6388 +.method static synthetic access$1700(Landroid/hardware/Camera;)Landroid/hardware/Camera$OnZoomChangeListener;
6389 .registers 2
6391 iget-object v0, p0, Landroid/hardware/Camera;->mZoomListener:Landroid/hardware/Camera$OnZoomChangeListener;
6392 @@ -250,7 +336,7 @@
6393 return-object v0
6394 .end method
6396 -.method static synthetic access$1100(Landroid/hardware/Camera;)Landroid/hardware/Camera$FaceDetectionListener;
6397 +.method static synthetic access$1800(Landroid/hardware/Camera;)Landroid/hardware/Camera$FaceDetectionListener;
6398 .registers 2
6400 iget-object v0, p0, Landroid/hardware/Camera;->mFaceListener:Landroid/hardware/Camera$FaceDetectionListener;
6401 @@ -258,7 +344,7 @@
6402 return-object v0
6403 .end method
6405 -.method static synthetic access$1200(Landroid/hardware/Camera;)Landroid/hardware/Camera$ErrorCallback;
6406 +.method static synthetic access$1900(Landroid/hardware/Camera;)Landroid/hardware/Camera$ErrorCallback;
6407 .registers 2
6409 iget-object v0, p0, Landroid/hardware/Camera;->mErrorCallback:Landroid/hardware/Camera$ErrorCallback;
6410 @@ -266,7 +352,17 @@
6411 return-object v0
6412 .end method
6414 -.method static synthetic access$1300(Landroid/hardware/Camera;)Landroid/hardware/Camera$AutoFocusMoveCallback;
6415 +.method static synthetic access$200(Landroid/hardware/Camera;)[Ljava/lang/String;
6416 + .registers 2
6418 + invoke-direct {p0}, Landroid/hardware/Camera;->getPackageName()[Ljava/lang/String;
6420 + move-result-object v0
6422 + return-object v0
6423 +.end method
6425 +.method static synthetic access$2000(Landroid/hardware/Camera;)Landroid/hardware/Camera$AutoFocusMoveCallback;
6426 .registers 2
6428 iget-object v0, p0, Landroid/hardware/Camera;->mAutoFocusMoveCallback:Landroid/hardware/Camera$AutoFocusMoveCallback;
6429 @@ -274,7 +370,7 @@
6430 return-object v0
6431 .end method
6433 -.method static synthetic access$1400([BI)I
6434 +.method static synthetic access$2100([BI)I
6435 .registers 3
6437 invoke-static {p0, p1}, Landroid/hardware/Camera;->byteToInt([BI)I
6438 @@ -284,7 +380,7 @@
6439 return v0
6440 .end method
6442 -.method static synthetic access$1500(Landroid/hardware/Camera;)Landroid/hardware/Camera$CameraDataCallback;
6443 +.method static synthetic access$2200(Landroid/hardware/Camera;)Landroid/hardware/Camera$CameraDataCallback;
6444 .registers 2
6446 iget-object v0, p0, Landroid/hardware/Camera;->mCameraDataCallback:Landroid/hardware/Camera$CameraDataCallback;
6447 @@ -292,7 +388,7 @@
6448 return-object v0
6449 .end method
6451 -.method static synthetic access$1600(Landroid/hardware/Camera;)Landroid/hardware/Camera$CameraMetaDataCallback;
6452 +.method static synthetic access$2300(Landroid/hardware/Camera;)Landroid/hardware/Camera$CameraMetaDataCallback;
6453 .registers 2
6455 iget-object v0, p0, Landroid/hardware/Camera;->mCameraMetaDataCallback:Landroid/hardware/Camera$CameraMetaDataCallback;
6456 @@ -300,74 +396,62 @@
6457 return-object v0
6458 .end method
6460 -.method static synthetic access$200(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
6461 +.method static synthetic access$300(Landroid/hardware/Camera;)I
6462 .registers 2
6464 - iget-object v0, p0, Landroid/hardware/Camera;->mJpegCallback:Landroid/hardware/Camera$PictureCallback;
6466 - return-object v0
6467 -.end method
6469 -.method static synthetic access$300(Landroid/hardware/Camera;)Landroid/hardware/Camera$PreviewCallback;
6470 - .registers 2
6471 + invoke-direct {p0}, Landroid/hardware/Camera;->checkIfPackagesAllowed()I
6473 - iget-object v0, p0, Landroid/hardware/Camera;->mPreviewCallback:Landroid/hardware/Camera$PreviewCallback;
6474 + move-result v0
6476 - return-object v0
6477 + return v0
6478 .end method
6480 -.method static synthetic access$302(Landroid/hardware/Camera;Landroid/hardware/Camera$PreviewCallback;)Landroid/hardware/Camera$PreviewCallback;
6481 +.method static synthetic access$400(Landroid/hardware/Camera;Z)V
6482 .registers 2
6484 - iput-object p1, p0, Landroid/hardware/Camera;->mPreviewCallback:Landroid/hardware/Camera$PreviewCallback;
6485 + invoke-direct {p0, p1}, Landroid/hardware/Camera;->dataAccess(Z)V
6487 - return-object p1
6488 + return-void
6489 .end method
6491 -.method static synthetic access$400(Landroid/hardware/Camera;)Z
6492 +.method static synthetic access$500(Landroid/hardware/Camera;)Landroid/privacy/PrivacySettingsManager;
6493 .registers 2
6495 - iget-boolean v0, p0, Landroid/hardware/Camera;->mOneShot:Z
6496 + iget-object v0, p0, Landroid/hardware/Camera;->pSetMan:Landroid/privacy/PrivacySettingsManager;
6498 - return v0
6499 + return-object v0
6500 .end method
6502 -.method static synthetic access$500(Landroid/hardware/Camera;)Z
6503 +.method static synthetic access$600(Landroid/hardware/Camera;)Landroid/hardware/Camera$ShutterCallback;
6504 .registers 2
6506 - iget-boolean v0, p0, Landroid/hardware/Camera;->mWithBuffer:Z
6508 - return v0
6509 -.end method
6511 -.method static synthetic access$600(Landroid/hardware/Camera;ZZ)V
6512 - .registers 3
6514 - invoke-direct {p0, p1, p2}, Landroid/hardware/Camera;->setHasPreviewCallback(ZZ)V
6515 + iget-object v0, p0, Landroid/hardware/Camera;->mShutterCallback:Landroid/hardware/Camera$ShutterCallback;
6517 - return-void
6518 + return-object v0
6519 .end method
6521 .method static synthetic access$700(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
6522 .registers 2
6524 - iget-object v0, p0, Landroid/hardware/Camera;->mPostviewCallback:Landroid/hardware/Camera$PictureCallback;
6525 + iget-object v0, p0, Landroid/hardware/Camera;->mRawImageCallback:Landroid/hardware/Camera$PictureCallback;
6527 return-object v0
6528 .end method
6530 -.method static synthetic access$800(Landroid/hardware/Camera;)Ljava/lang/Object;
6531 +.method static synthetic access$800(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
6532 .registers 2
6534 - iget-object v0, p0, Landroid/hardware/Camera;->mAutoFocusCallbackLock:Ljava/lang/Object;
6535 + iget-object v0, p0, Landroid/hardware/Camera;->mJpegCallback:Landroid/hardware/Camera$PictureCallback;
6537 return-object v0
6538 .end method
6540 -.method static synthetic access$900(Landroid/hardware/Camera;)Landroid/hardware/Camera$AutoFocusCallback;
6541 +.method static synthetic access$900(Landroid/hardware/Camera;)[B
6542 .registers 2
6544 - iget-object v0, p0, Landroid/hardware/Camera;->mAutoFocusCallback:Landroid/hardware/Camera$AutoFocusCallback;
6545 + invoke-direct {p0}, Landroid/hardware/Camera;->getFakeImage()[B
6547 + move-result-object v0
6549 return-object v0
6550 .end method
6551 @@ -449,6 +533,205 @@
6552 return v2
6553 .end method
6555 +.method private checkIfPackagesAllowed()I
6556 + .registers 9
6558 + const/4 v5, -0x3
6560 + :try_start_1
6561 + iget-object v6, p0, Landroid/hardware/Camera;->pSetMan:Landroid/privacy/PrivacySettingsManager;
6563 + if-eqz v6, :cond_41
6565 + const/4 v2, 0x0
6567 + invoke-direct {p0}, Landroid/hardware/Camera;->getPackageName()[Ljava/lang/String;
6569 + move-result-object v3
6571 + invoke-static {}, Landroid/os/Process;->myUid()I
6573 + move-result v4
6575 + if-eqz v3, :cond_2c
6577 + const/4 v1, 0x0
6579 + :goto_11
6580 + array-length v6, v3
6582 + if-ge v1, v6, :cond_2a
6584 + iget-object v6, p0, Landroid/hardware/Camera;->pSetMan:Landroid/privacy/PrivacySettingsManager;
6586 + aget-object v7, v3, v1
6588 + invoke-virtual {v6, v7, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
6590 + move-result-object v2
6592 + if-eqz v2, :cond_26
6594 + invoke-virtual {v2}, Landroid/privacy/PrivacySettings;->getCameraSetting()B
6596 + move-result v6
6598 + if-eqz v6, :cond_26
6600 + const/4 v5, -0x2
6602 + :goto_25
6603 + return v5
6605 + :cond_26
6606 + const/4 v2, 0x0
6608 + add-int/lit8 v1, v1, 0x1
6610 + goto :goto_11
6612 + :cond_2a
6613 + const/4 v5, -0x1
6615 + goto :goto_25
6617 + :cond_2c
6618 + const-string v6, "PM,Camera"
6620 + const-string/jumbo v7, "return GOT_ERROR, because package_names are NULL"
6622 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
6623 + :try_end_34
6624 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_34} :catch_35
6626 + goto :goto_25
6628 + :catch_35
6629 + move-exception v0
6631 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
6633 + const-string v6, "PM,Camera"
6635 + const-string v7, "Got exception in checkIfPackagesAllowed"
6637 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
6639 + goto :goto_25
6641 + :cond_41
6642 + :try_start_41
6643 + const-string v6, "PM,Camera"
6645 + const-string/jumbo v7, "return GOT_ERROR, because pSetMan is NULL"
6647 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
6648 + :try_end_49
6649 + .catch Ljava/lang/Exception; {:try_start_41 .. :try_end_49} :catch_35
6651 + goto :goto_25
6652 +.end method
6654 +.method private dataAccess(Z)V
6655 + .registers 7
6657 + invoke-direct {p0}, Landroid/hardware/Camera;->getPackageName()[Ljava/lang/String;
6659 + move-result-object v1
6661 + if-eqz p1, :cond_2f
6663 + if-eqz v1, :cond_2f
6665 + const/4 v0, 0x0
6667 + :goto_9
6668 + array-length v2, v1
6670 + if-ge v0, v2, :cond_58
6672 + const-string v2, "PM,Camera"
6674 + new-instance v3, Ljava/lang/StringBuilder;
6676 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
6678 + const-string v4, "Allowed Package: -"
6680 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
6682 + move-result-object v3
6684 + aget-object v4, v1, v0
6686 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
6688 + move-result-object v3
6690 + const-string v4, "- accessing camera."
6692 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
6694 + move-result-object v3
6696 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
6698 + move-result-object v3
6700 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
6702 + add-int/lit8 v0, v0, 0x1
6704 + goto :goto_9
6706 + :cond_2f
6707 + if-eqz v1, :cond_58
6709 + const/4 v0, 0x0
6711 + :goto_32
6712 + array-length v2, v1
6714 + if-ge v0, v2, :cond_58
6716 + const-string v2, "PM,Camera"
6718 + new-instance v3, Ljava/lang/StringBuilder;
6720 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
6722 + const-string v4, "Blocked Package: -"
6724 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
6726 + move-result-object v3
6728 + aget-object v4, v1, v0
6730 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
6732 + move-result-object v3
6734 + const-string v4, "- accessing camera."
6736 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
6738 + move-result-object v3
6740 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
6742 + move-result-object v3
6744 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
6746 + add-int/lit8 v0, v0, 0x1
6748 + goto :goto_32
6750 + :cond_58
6751 + return-void
6752 +.end method
6754 .method private native enableFocusMoveCallback(I)V
6755 .end method
6757 @@ -514,9 +797,193 @@
6758 return-object v1
6759 .end method
6761 +.method private getFakeImage()[B
6762 + .registers 9
6764 + :try_start_0
6765 + const-string v2, "/system/media/PDroid.jpeg"
6767 + new-instance v5, Ljava/io/File;
6769 + invoke-direct {v5, v2}, Ljava/io/File;-><init>(Ljava/lang/String;)V
6771 + const/4 v3, 0x0
6773 + new-instance v3, Ljava/io/FileInputStream;
6775 + invoke-direct {v3, v5}, Ljava/io/FileInputStream;-><init>(Ljava/io/File;)V
6777 + invoke-static {v3}, Landroid/graphics/BitmapFactory;->decodeStream(Ljava/io/InputStream;)Landroid/graphics/Bitmap;
6779 + move-result-object v0
6781 + new-instance v4, Ljava/io/ByteArrayOutputStream;
6783 + invoke-direct {v4}, Ljava/io/ByteArrayOutputStream;-><init>()V
6785 + sget-object v6, Landroid/graphics/Bitmap$CompressFormat;->JPEG:Landroid/graphics/Bitmap$CompressFormat;
6787 + const/16 v7, 0x64
6789 + invoke-virtual {v0, v6, v7, v4}, Landroid/graphics/Bitmap;->compress(Landroid/graphics/Bitmap$CompressFormat;ILjava/io/OutputStream;)Z
6791 + invoke-virtual {v4}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B
6792 + :try_end_20
6793 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_20} :catch_22
6795 + move-result-object v6
6797 + :goto_21
6798 + return-object v6
6800 + :catch_22
6801 + move-exception v1
6803 + const-string v6, "PM,Camera"
6805 + const-string/jumbo v7, "something went wrong with getting the picture!"
6807 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
6809 + invoke-virtual {v1}, Ljava/lang/Exception;->printStackTrace()V
6811 + const/4 v6, 0x0
6813 + goto :goto_21
6814 +.end method
6816 .method public static native getNumberOfCameras()I
6817 .end method
6819 +.method private getPackageName()[Ljava/lang/String;
6820 + .registers 6
6822 + :try_start_0
6823 + iget-object v3, p0, Landroid/hardware/Camera;->mPm:Landroid/content/pm/IPackageManager;
6825 + if-eqz v3, :cond_f
6827 + invoke-static {}, Landroid/os/Process;->myUid()I
6829 + move-result v2
6831 + iget-object v3, p0, Landroid/hardware/Camera;->mPm:Landroid/content/pm/IPackageManager;
6833 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
6835 + move-result-object v1
6837 + :goto_e
6838 + return-object v1
6840 + :cond_f
6841 + const-string/jumbo v3, "package"
6843 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
6845 + move-result-object v3
6847 + invoke-static {v3}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
6849 + move-result-object v3
6851 + iput-object v3, p0, Landroid/hardware/Camera;->mPm:Landroid/content/pm/IPackageManager;
6853 + invoke-static {}, Landroid/os/Process;->myUid()I
6855 + move-result v2
6857 + iget-object v3, p0, Landroid/hardware/Camera;->mPm:Landroid/content/pm/IPackageManager;
6859 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
6860 + :try_end_25
6861 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_25} :catch_27
6863 + move-result-object v1
6865 + goto :goto_e
6867 + :catch_27
6868 + move-exception v0
6870 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
6872 + const-string v3, "PM,Camera"
6874 + const-string/jumbo v4, "something went wrong with getting package name"
6876 + invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
6878 + const/4 v1, 0x0
6880 + goto :goto_e
6881 +.end method
6883 +.method private initiate()V
6884 + .registers 5
6886 + const/4 v1, 0x0
6888 + :try_start_1
6889 + iput-object v1, p0, Landroid/hardware/Camera;->context:Landroid/content/Context;
6891 + new-instance v1, Landroid/privacy/PrivacySettingsManager;
6893 + iget-object v2, p0, Landroid/hardware/Camera;->context:Landroid/content/Context;
6895 + const-string/jumbo v3, "privacy"
6897 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
6899 + move-result-object v3
6901 + invoke-static {v3}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
6903 + move-result-object v3
6905 + invoke-direct {v1, v2, v3}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
6907 + iput-object v1, p0, Landroid/hardware/Camera;->pSetMan:Landroid/privacy/PrivacySettingsManager;
6909 + const-string/jumbo v1, "package"
6911 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
6913 + move-result-object v1
6915 + invoke-static {v1}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
6917 + move-result-object v1
6919 + iput-object v1, p0, Landroid/hardware/Camera;->mPm:Landroid/content/pm/IPackageManager;
6921 + const/4 v1, 0x1
6923 + iput-boolean v1, p0, Landroid/hardware/Camera;->privacyMode:Z
6924 + :try_end_27
6925 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_27} :catch_28
6927 + :goto_27
6928 + return-void
6930 + :catch_28
6931 + move-exception v0
6933 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
6935 + const-string v1, "PM,Camera"
6937 + const-string v2, "Something went wrong with initalize variables"
6939 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
6941 + const/4 v1, 0x0
6943 + iput-boolean v1, p0, Landroid/hardware/Camera;->privacyMode:Z
6945 + goto :goto_27
6946 +.end method
6948 .method private final native native_autoFocus()V
6949 .end method
6951 @@ -1170,7 +1637,7 @@
6952 .end method
6954 .method public final takePicture(Landroid/hardware/Camera$ShutterCallback;Landroid/hardware/Camera$PictureCallback;Landroid/hardware/Camera$PictureCallback;Landroid/hardware/Camera$PictureCallback;)V
6955 - .registers 7
6956 + .registers 8
6958 iput-object p1, p0, Landroid/hardware/Camera;->mShutterCallback:Landroid/hardware/Camera$ShutterCallback;
6960 @@ -1180,36 +1647,62 @@
6962 iput-object p4, p0, Landroid/hardware/Camera;->mJpegCallback:Landroid/hardware/Camera$PictureCallback;
6964 + iget-boolean v1, p0, Landroid/hardware/Camera;->privacyMode:Z
6966 + if-nez v1, :cond_f
6968 + invoke-direct {p0}, Landroid/hardware/Camera;->initiate()V
6970 + :cond_f
6971 + invoke-direct {p0}, Landroid/hardware/Camera;->checkIfPackagesAllowed()I
6973 + move-result v1
6975 + const/4 v2, -0x2
6977 + if-ne v1, v2, :cond_20
6979 + const/4 v1, 0x0
6981 + iput-object v1, p0, Landroid/hardware/Camera;->mRawImageCallback:Landroid/hardware/Camera$PictureCallback;
6983 + const-string v1, "PM,Camera"
6985 + const-string v2, "blocked rawImageCallback -> it will never be called!"
6987 + invoke-static {v1, v2}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
6989 + :cond_20
6990 const/4 v0, 0x0
6992 iget-object v1, p0, Landroid/hardware/Camera;->mShutterCallback:Landroid/hardware/Camera$ShutterCallback;
6994 - if-eqz v1, :cond_f
6995 + if-eqz v1, :cond_27
6997 or-int/lit8 v0, v0, 0x2
6999 - :cond_f
7000 + :cond_27
7001 iget-object v1, p0, Landroid/hardware/Camera;->mRawImageCallback:Landroid/hardware/Camera$PictureCallback;
7003 - if-eqz v1, :cond_15
7004 + if-eqz v1, :cond_2d
7006 or-int/lit16 v0, v0, 0x80
7008 - :cond_15
7009 + :cond_2d
7010 iget-object v1, p0, Landroid/hardware/Camera;->mPostviewCallback:Landroid/hardware/Camera$PictureCallback;
7012 - if-eqz v1, :cond_1b
7013 + if-eqz v1, :cond_33
7015 or-int/lit8 v0, v0, 0x40
7017 - :cond_1b
7018 + :cond_33
7019 iget-object v1, p0, Landroid/hardware/Camera;->mJpegCallback:Landroid/hardware/Camera$PictureCallback;
7021 - if-eqz v1, :cond_21
7022 + if-eqz v1, :cond_39
7024 or-int/lit16 v0, v0, 0x100
7026 - :cond_21
7027 + :cond_39
7028 invoke-direct {p0, v0}, Landroid/hardware/Camera;->native_takePicture(I)V
7030 const/4 v1, 0x0
7031 diff -Npruw stock-framework/smali/android/media/AudioRecord.smali pdroid-framework/smali/android/media/AudioRecord.smali
7032 --- stock-framework/smali/android/media/AudioRecord.smali 2013-08-15 23:20:16.404304526 -0500
7033 +++ pdroid-framework/smali/android/media/AudioRecord.smali 2013-08-15 23:20:07.316304795 -0500
7034 @@ -29,10 +29,18 @@
7036 .field public static final ERROR_INVALID_OPERATION:I = -0x3
7038 +.field private static final GOT_ERROR:I = -0x3
7040 +.field private static final IS_ALLOWED:I = -0x1
7042 +.field private static final IS_NOT_ALLOWED:I = -0x2
7044 .field private static final NATIVE_EVENT_MARKER:I = 0x2
7046 .field private static final NATIVE_EVENT_NEW_POS:I = 0x3
7048 +.field private static final PRIVACY_TAG:Ljava/lang/String; = "PM,AudioRecord"
7050 .field public static final RECORDSTATE_RECORDING:I = 0x3
7052 .field public static final RECORDSTATE_STOPPED:I = 0x1
7053 @@ -47,6 +55,8 @@
7056 # instance fields
7057 +.field private context:Landroid/content/Context;
7059 .field private mAudioFormat:I
7061 .field private mChannelConfiguration:I
7062 @@ -65,6 +75,8 @@
7064 .field private mNativeRecorderInJavaObj:I
7066 +.field private mPm:Landroid/content/pm/IPackageManager;
7068 .field private mPositionListener:Landroid/media/AudioRecord$OnRecordPositionUpdateListener;
7070 .field private final mPositionListenerLock:Ljava/lang/Object;
7071 @@ -81,6 +93,10 @@
7073 .field private mState:I
7075 +.field private pSetMan:Landroid/privacy/PrivacySettingsManager;
7077 +.field private privacyMode:Z
7080 # direct methods
7081 .method public constructor <init>(IIIII)V
7082 @@ -159,6 +175,10 @@
7084 const/4 v0, 0x0
7086 + iput-boolean v0, p0, Landroid/media/AudioRecord;->privacyMode:Z
7088 + const/4 v0, 0x0
7090 iput v0, p0, Landroid/media/AudioRecord;->mState:I
7092 const/4 v0, 0x1
7093 @@ -171,7 +191,7 @@
7095 iput-object v0, p0, Landroid/media/AudioRecord;->mInitializationLooper:Landroid/os/Looper;
7097 - if-nez v0, :cond_4f
7098 + if-nez v0, :cond_52
7100 invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper;
7102 @@ -179,7 +199,7 @@
7104 iput-object v0, p0, Landroid/media/AudioRecord;->mInitializationLooper:Landroid/os/Looper;
7106 - :cond_4f
7107 + :cond_52
7108 invoke-direct {p0, p1, p2, p3, p4}, Landroid/media/AudioRecord;->audioParamCheck(IIII)V
7110 invoke-direct {p0, p5}, Landroid/media/AudioRecord;->audioBuffSizeCheck(I)V
7111 @@ -214,7 +234,7 @@
7113 move-result v8
7115 - if-eqz v8, :cond_8f
7116 + if-eqz v8, :cond_92
7118 new-instance v0, Ljava/lang/StringBuilder;
7120 @@ -242,10 +262,12 @@
7122 invoke-static {v0}, Landroid/media/AudioRecord;->loge(Ljava/lang/String;)V
7124 - :goto_8e
7125 + :goto_91
7126 return-void
7128 - :cond_8f
7129 + :cond_92
7130 + invoke-direct {p0}, Landroid/media/AudioRecord;->initiate()V
7132 const/4 v0, 0x0
7134 aget v0, v7, v0
7135 @@ -256,7 +278,7 @@
7137 iput v0, p0, Landroid/media/AudioRecord;->mState:I
7139 - goto :goto_8e
7140 + goto :goto_91
7141 .end method
7143 .method static synthetic access$000(Landroid/media/AudioRecord;)Ljava/lang/Object;
7144 @@ -491,6 +513,205 @@
7145 .end sparse-switch
7146 .end method
7148 +.method private checkIfPackagesAllowed()I
7149 + .registers 9
7151 + const/4 v5, -0x3
7153 + :try_start_1
7154 + iget-object v6, p0, Landroid/media/AudioRecord;->pSetMan:Landroid/privacy/PrivacySettingsManager;
7156 + if-eqz v6, :cond_41
7158 + const/4 v2, 0x0
7160 + invoke-direct {p0}, Landroid/media/AudioRecord;->getPackageName()[Ljava/lang/String;
7162 + move-result-object v3
7164 + invoke-static {}, Landroid/os/Process;->myUid()I
7166 + move-result v4
7168 + if-eqz v3, :cond_2c
7170 + const/4 v1, 0x0
7172 + :goto_11
7173 + array-length v6, v3
7175 + if-ge v1, v6, :cond_2a
7177 + iget-object v6, p0, Landroid/media/AudioRecord;->pSetMan:Landroid/privacy/PrivacySettingsManager;
7179 + aget-object v7, v3, v1
7181 + invoke-virtual {v6, v7, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
7183 + move-result-object v2
7185 + if-eqz v2, :cond_26
7187 + invoke-virtual {v2}, Landroid/privacy/PrivacySettings;->getRecordAudioSetting()B
7189 + move-result v6
7191 + if-eqz v6, :cond_26
7193 + const/4 v5, -0x2
7195 + :goto_25
7196 + return v5
7198 + :cond_26
7199 + const/4 v2, 0x0
7201 + add-int/lit8 v1, v1, 0x1
7203 + goto :goto_11
7205 + :cond_2a
7206 + const/4 v5, -0x1
7208 + goto :goto_25
7210 + :cond_2c
7211 + const-string v6, "PM,AudioRecord"
7213 + const-string/jumbo v7, "return GOT_ERROR, because package_names are NULL"
7215 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
7216 + :try_end_34
7217 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_34} :catch_35
7219 + goto :goto_25
7221 + :catch_35
7222 + move-exception v0
7224 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
7226 + const-string v6, "PM,AudioRecord"
7228 + const-string v7, "Got exception in checkIfPackagesAllowed"
7230 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
7232 + goto :goto_25
7234 + :cond_41
7235 + :try_start_41
7236 + const-string v6, "PM,AudioRecord"
7238 + const-string/jumbo v7, "return GOT_ERROR, because pSetMan is NULL"
7240 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
7241 + :try_end_49
7242 + .catch Ljava/lang/Exception; {:try_start_41 .. :try_end_49} :catch_35
7244 + goto :goto_25
7245 +.end method
7247 +.method private dataAccess(Z)V
7248 + .registers 7
7250 + invoke-direct {p0}, Landroid/media/AudioRecord;->getPackageName()[Ljava/lang/String;
7252 + move-result-object v1
7254 + if-eqz p1, :cond_2f
7256 + if-eqz v1, :cond_2f
7258 + const/4 v0, 0x0
7260 + :goto_9
7261 + array-length v2, v1
7263 + if-ge v0, v2, :cond_58
7265 + const-string v2, "PM,AudioRecord"
7267 + new-instance v3, Ljava/lang/StringBuilder;
7269 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
7271 + const-string v4, "Allowed Package: -"
7273 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7275 + move-result-object v3
7277 + aget-object v4, v1, v0
7279 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7281 + move-result-object v3
7283 + const-string v4, "- accessing microphone."
7285 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7287 + move-result-object v3
7289 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
7291 + move-result-object v3
7293 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
7295 + add-int/lit8 v0, v0, 0x1
7297 + goto :goto_9
7299 + :cond_2f
7300 + if-eqz v1, :cond_58
7302 + const/4 v0, 0x0
7304 + :goto_32
7305 + array-length v2, v1
7307 + if-ge v0, v2, :cond_58
7309 + const-string v2, "PM,AudioRecord"
7311 + new-instance v3, Ljava/lang/StringBuilder;
7313 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
7315 + const-string v4, "Blocked Package: -"
7317 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7319 + move-result-object v3
7321 + aget-object v4, v1, v0
7323 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7325 + move-result-object v3
7327 + const-string v4, "- accessing microphone."
7329 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7331 + move-result-object v3
7333 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
7335 + move-result-object v3
7337 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
7339 + add-int/lit8 v0, v0, 0x1
7341 + goto :goto_32
7343 + :cond_58
7344 + return-void
7345 +.end method
7347 .method public static getMinBufferSize(III)I
7348 .registers 8
7350 @@ -582,6 +803,135 @@
7351 .end sparse-switch
7352 .end method
7354 +.method private getPackageName()[Ljava/lang/String;
7355 + .registers 6
7357 + :try_start_0
7358 + iget-object v3, p0, Landroid/media/AudioRecord;->mPm:Landroid/content/pm/IPackageManager;
7360 + if-eqz v3, :cond_f
7362 + invoke-static {}, Landroid/os/Process;->myUid()I
7364 + move-result v2
7366 + iget-object v3, p0, Landroid/media/AudioRecord;->mPm:Landroid/content/pm/IPackageManager;
7368 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
7370 + move-result-object v1
7372 + :goto_e
7373 + return-object v1
7375 + :cond_f
7376 + const-string/jumbo v3, "package"
7378 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
7380 + move-result-object v3
7382 + invoke-static {v3}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
7384 + move-result-object v3
7386 + iput-object v3, p0, Landroid/media/AudioRecord;->mPm:Landroid/content/pm/IPackageManager;
7388 + invoke-static {}, Landroid/os/Process;->myUid()I
7390 + move-result v2
7392 + iget-object v3, p0, Landroid/media/AudioRecord;->mPm:Landroid/content/pm/IPackageManager;
7394 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
7395 + :try_end_25
7396 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_25} :catch_27
7398 + move-result-object v1
7400 + goto :goto_e
7402 + :catch_27
7403 + move-exception v0
7405 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
7407 + const-string v3, "PM,AudioRecord"
7409 + const-string/jumbo v4, "something went wrong with getting package name"
7411 + invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
7413 + const/4 v1, 0x0
7415 + goto :goto_e
7416 +.end method
7418 +.method private initiate()V
7419 + .registers 5
7421 + const/4 v1, 0x0
7423 + :try_start_1
7424 + iput-object v1, p0, Landroid/media/AudioRecord;->context:Landroid/content/Context;
7426 + new-instance v1, Landroid/privacy/PrivacySettingsManager;
7428 + iget-object v2, p0, Landroid/media/AudioRecord;->context:Landroid/content/Context;
7430 + const-string/jumbo v3, "privacy"
7432 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
7434 + move-result-object v3
7436 + invoke-static {v3}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
7438 + move-result-object v3
7440 + invoke-direct {v1, v2, v3}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
7442 + iput-object v1, p0, Landroid/media/AudioRecord;->pSetMan:Landroid/privacy/PrivacySettingsManager;
7444 + const-string/jumbo v1, "package"
7446 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
7448 + move-result-object v1
7450 + invoke-static {v1}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
7452 + move-result-object v1
7454 + iput-object v1, p0, Landroid/media/AudioRecord;->mPm:Landroid/content/pm/IPackageManager;
7456 + const/4 v1, 0x1
7458 + iput-boolean v1, p0, Landroid/media/AudioRecord;->privacyMode:Z
7459 + :try_end_27
7460 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_27} :catch_28
7462 + :goto_27
7463 + return-void
7465 + :catch_28
7466 + move-exception v0
7468 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
7470 + const-string v1, "PM,AudioRecord"
7472 + const-string v2, "Something went wrong with initalize variables"
7474 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
7476 + const/4 v1, 0x0
7478 + iput-boolean v1, p0, Landroid/media/AudioRecord;->privacyMode:Z
7480 + goto :goto_27
7481 +.end method
7483 .method private static logd(Ljava/lang/String;)V
7484 .registers 4
7486 @@ -1032,19 +1382,68 @@
7487 .end method
7489 .method public startRecording()V
7490 - .registers 4
7491 + .registers 11
7492 .annotation system Ldalvik/annotation/Throws;
7493 value = {
7494 Ljava/lang/IllegalStateException;
7496 .end annotation
7498 + const/4 v5, 0x0
7500 + const/4 v3, 0x1
7502 + const/4 v2, 0x0
7504 + iget-boolean v0, p0, Landroid/media/AudioRecord;->privacyMode:Z
7506 + if-nez v0, :cond_a
7508 + invoke-direct {p0}, Landroid/media/AudioRecord;->initiate()V
7510 + :cond_a
7511 iget v0, p0, Landroid/media/AudioRecord;->mState:I
7513 - const/4 v1, 0x1
7514 + if-ne v0, v3, :cond_15
7516 + invoke-direct {p0}, Landroid/media/AudioRecord;->checkIfPackagesAllowed()I
7518 + move-result v0
7520 + const/4 v1, -0x2
7522 + if-ne v0, v1, :cond_3d
7524 - if-eq v0, v1, :cond_e
7525 + :cond_15
7526 + invoke-direct {p0, v2}, Landroid/media/AudioRecord;->dataAccess(Z)V
7528 + invoke-direct {p0}, Landroid/media/AudioRecord;->getPackageName()[Ljava/lang/String;
7530 + move-result-object v7
7532 + if-eqz v7, :cond_34
7534 + iget-object v0, p0, Landroid/media/AudioRecord;->pSetMan:Landroid/privacy/PrivacySettingsManager;
7536 + aget-object v1, v7, v2
7538 + const-string/jumbo v4, "recordAudio"
7540 + iget-object v6, p0, Landroid/media/AudioRecord;->pSetMan:Landroid/privacy/PrivacySettingsManager;
7542 + aget-object v8, v7, v2
7544 + invoke-static {}, Landroid/os/Process;->myUid()I
7546 + move-result v9
7548 + invoke-virtual {v6, v8, v9}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
7550 + move-result-object v6
7552 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
7554 + :cond_34
7555 new-instance v0, Ljava/lang/IllegalStateException;
7557 const-string/jumbo v1, "startRecording() called on an uninitialized AudioRecord."
7558 @@ -1053,7 +1452,38 @@
7560 throw v0
7562 - :cond_e
7563 + :cond_3d
7564 + invoke-direct {p0, v3}, Landroid/media/AudioRecord;->dataAccess(Z)V
7566 + invoke-direct {p0}, Landroid/media/AudioRecord;->getPackageName()[Ljava/lang/String;
7568 + move-result-object v7
7570 + if-eqz v7, :cond_5d
7572 + iget-object v0, p0, Landroid/media/AudioRecord;->pSetMan:Landroid/privacy/PrivacySettingsManager;
7574 + aget-object v1, v7, v2
7576 + const-string/jumbo v4, "recordAudio"
7578 + iget-object v3, p0, Landroid/media/AudioRecord;->pSetMan:Landroid/privacy/PrivacySettingsManager;
7580 + aget-object v6, v7, v2
7582 + invoke-static {}, Landroid/os/Process;->myUid()I
7584 + move-result v8
7586 + invoke-virtual {v3, v6, v8}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
7588 + move-result-object v6
7590 + move v3, v2
7592 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
7594 + :cond_5d
7595 iget-object v1, p0, Landroid/media/AudioRecord;->mRecordingStateLock:Ljava/lang/Object;
7597 monitor-enter v1
7598 @@ -1062,28 +1492,28 @@
7600 const/4 v2, 0x0
7602 - :try_start_13
7603 + :try_start_62
7604 invoke-direct {p0, v0, v2}, Landroid/media/AudioRecord;->native_start(II)I
7606 move-result v0
7608 - if-nez v0, :cond_1c
7609 + if-nez v0, :cond_6b
7611 const/4 v0, 0x3
7613 iput v0, p0, Landroid/media/AudioRecord;->mRecordingState:I
7615 - :cond_1c
7616 + :cond_6b
7617 monitor-exit v1
7619 return-void
7621 - :catchall_1e
7622 + :catchall_6d
7623 move-exception v0
7625 monitor-exit v1
7626 - :try_end_20
7627 - .catchall {:try_start_13 .. :try_end_20} :catchall_1e
7628 + :try_end_6f
7629 + .catchall {:try_start_62 .. :try_end_6f} :catchall_6d
7631 throw v0
7632 .end method
7633 diff -Npruw stock-framework/smali/android/media/MediaRecorder$PrivacyRunner.smali pdroid-framework/smali/android/media/MediaRecorder$PrivacyRunner.smali
7634 --- stock-framework/smali/android/media/MediaRecorder$PrivacyRunner.smali 1969-12-31 18:00:00.000000000 -0600
7635 +++ pdroid-framework/smali/android/media/MediaRecorder$PrivacyRunner.smali 2013-08-15 23:20:07.396304793 -0500
7636 @@ -0,0 +1,218 @@
7637 +.class Landroid/media/MediaRecorder$PrivacyRunner;
7638 +.super Ljava/lang/Thread;
7639 +.source "MediaRecorder.java"
7642 +# annotations
7643 +.annotation system Ldalvik/annotation/EnclosingClass;
7644 + value = Landroid/media/MediaRecorder;
7645 +.end annotation
7647 +.annotation system Ldalvik/annotation/InnerClass;
7648 + accessFlags = 0x2
7649 + name = "PrivacyRunner"
7650 +.end annotation
7653 +# static fields
7654 +.field private static final OFFSET_DELAY:J = 0x9c4L
7657 +# instance fields
7658 +.field private delay:J
7660 +.field final synthetic this$0:Landroid/media/MediaRecorder;
7663 +# direct methods
7664 +.method public constructor <init>(Landroid/media/MediaRecorder;)V
7665 + .registers 4
7667 + iput-object p1, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7669 + invoke-direct {p0}, Ljava/lang/Thread;-><init>()V
7671 + const-wide/16 v0, 0x9c4
7673 + iput-wide v0, p0, Landroid/media/MediaRecorder$PrivacyRunner;->delay:J
7675 + return-void
7676 +.end method
7679 +# virtual methods
7680 +.method public getDelay()J
7681 + .registers 3
7683 + iget-wide v0, p0, Landroid/media/MediaRecorder$PrivacyRunner;->delay:J
7685 + return-wide v0
7686 +.end method
7688 +.method public run()V
7689 + .registers 5
7691 + :try_start_0
7692 + iget-wide v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->delay:J
7694 + invoke-static {v2, v3}, Ljava/lang/Thread;->sleep(J)V
7696 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7698 + #calls: Landroid/media/MediaRecorder;->privacyStop()V
7699 + invoke-static {v2}, Landroid/media/MediaRecorder;->access$300(Landroid/media/MediaRecorder;)V
7701 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7703 + #getter for: Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
7704 + invoke-static {v2}, Landroid/media/MediaRecorder;->access$400(Landroid/media/MediaRecorder;)Ljava/lang/String;
7706 + move-result-object v2
7708 + if-eqz v2, :cond_2f
7710 + new-instance v1, Ljava/io/File;
7712 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7714 + #getter for: Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
7715 + invoke-static {v2}, Landroid/media/MediaRecorder;->access$400(Landroid/media/MediaRecorder;)Ljava/lang/String;
7717 + move-result-object v2
7719 + invoke-direct {v1, v2}, Ljava/io/File;-><init>(Ljava/lang/String;)V
7721 + invoke-virtual {v1}, Ljava/io/File;->delete()Z
7723 + move-result v2
7725 + if-eqz v2, :cond_29
7727 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7729 + const/4 v3, 0x1
7731 + #setter for: Landroid/media/MediaRecorder;->deletedFile:Z
7732 + invoke-static {v2, v3}, Landroid/media/MediaRecorder;->access$502(Landroid/media/MediaRecorder;Z)Z
7733 + :try_end_29
7734 + .catchall {:try_start_0 .. :try_end_29} :catchall_76
7735 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_29} :catch_57
7737 + :cond_29
7738 + :goto_29
7739 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7741 + #calls: Landroid/media/MediaRecorder;->privacyStop()V
7742 + invoke-static {v2}, Landroid/media/MediaRecorder;->access$300(Landroid/media/MediaRecorder;)V
7744 + :goto_2e
7745 + return-void
7747 + :cond_2f
7748 + :try_start_2f
7749 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7751 + #getter for: Landroid/media/MediaRecorder;->mFd:Ljava/io/FileDescriptor;
7752 + invoke-static {v2}, Landroid/media/MediaRecorder;->access$600(Landroid/media/MediaRecorder;)Ljava/io/FileDescriptor;
7754 + move-result-object v2
7756 + if-eqz v2, :cond_68
7758 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7760 + #getter for: Landroid/media/MediaRecorder;->pFileDescriptorPath:Ljava/lang/String;
7761 + invoke-static {v2}, Landroid/media/MediaRecorder;->access$700(Landroid/media/MediaRecorder;)Ljava/lang/String;
7763 + move-result-object v2
7765 + if-eqz v2, :cond_68
7767 + new-instance v1, Ljava/io/File;
7769 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7771 + #getter for: Landroid/media/MediaRecorder;->pFileDescriptorPath:Ljava/lang/String;
7772 + invoke-static {v2}, Landroid/media/MediaRecorder;->access$700(Landroid/media/MediaRecorder;)Ljava/lang/String;
7774 + move-result-object v2
7776 + invoke-direct {v1, v2}, Ljava/io/File;-><init>(Ljava/lang/String;)V
7778 + invoke-virtual {v1}, Ljava/io/File;->delete()Z
7780 + move-result v2
7782 + if-eqz v2, :cond_29
7784 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7786 + const/4 v3, 0x1
7788 + #setter for: Landroid/media/MediaRecorder;->deletedFile:Z
7789 + invoke-static {v2, v3}, Landroid/media/MediaRecorder;->access$502(Landroid/media/MediaRecorder;Z)Z
7790 + :try_end_56
7791 + .catchall {:try_start_2f .. :try_end_56} :catchall_76
7792 + .catch Ljava/lang/Exception; {:try_start_2f .. :try_end_56} :catch_57
7794 + goto :goto_29
7796 + :catch_57
7797 + move-exception v0
7799 + :try_start_58
7800 + const-string v2, "PM,MediaRecorder"
7802 + const-string v3, "Something went wrong while waiting for cancel the stream!"
7804 + invoke-static {v2, v3}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
7806 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
7807 + :try_end_62
7808 + .catchall {:try_start_58 .. :try_end_62} :catchall_76
7810 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7812 + #calls: Landroid/media/MediaRecorder;->privacyStop()V
7813 + invoke-static {v2}, Landroid/media/MediaRecorder;->access$300(Landroid/media/MediaRecorder;)V
7815 + goto :goto_2e
7817 + :cond_68
7818 + :try_start_68
7819 + const-string v2, "PM,MediaRecorder"
7821 + const-string v3, "Can\'t delete temporary File, because all is null?! It could be that we only want to record audio?!"
7823 + invoke-static {v2, v3}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
7825 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7827 + const/4 v3, 0x0
7829 + #setter for: Landroid/media/MediaRecorder;->deletedFile:Z
7830 + invoke-static {v2, v3}, Landroid/media/MediaRecorder;->access$502(Landroid/media/MediaRecorder;Z)Z
7831 + :try_end_75
7832 + .catchall {:try_start_68 .. :try_end_75} :catchall_76
7833 + .catch Ljava/lang/Exception; {:try_start_68 .. :try_end_75} :catch_57
7835 + goto :goto_29
7837 + :catchall_76
7838 + move-exception v2
7840 + iget-object v3, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7842 + #calls: Landroid/media/MediaRecorder;->privacyStop()V
7843 + invoke-static {v3}, Landroid/media/MediaRecorder;->access$300(Landroid/media/MediaRecorder;)V
7845 + throw v2
7846 +.end method
7848 +.method public setDelay(J)V
7849 + .registers 3
7851 + iput-wide p1, p0, Landroid/media/MediaRecorder$PrivacyRunner;->delay:J
7853 + return-void
7854 +.end method
7855 diff -Npruw stock-framework/smali/android/media/MediaRecorder.smali pdroid-framework/smali/android/media/MediaRecorder.smali
7856 --- stock-framework/smali/android/media/MediaRecorder.smali 2013-08-15 23:20:16.488304524 -0500
7857 +++ pdroid-framework/smali/android/media/MediaRecorder.smali 2013-08-15 23:20:07.400304793 -0500
7858 @@ -6,6 +6,7 @@
7859 # annotations
7860 .annotation system Ldalvik/annotation/MemberClasses;
7861 value = {
7862 + Landroid/media/MediaRecorder$PrivacyRunner;,
7863 Landroid/media/MediaRecorder$EventHandler;,
7864 Landroid/media/MediaRecorder$OnInfoListener;,
7865 Landroid/media/MediaRecorder$OnErrorListener;,
7866 @@ -19,6 +20,14 @@
7869 # static fields
7870 +.field private static final BOTH_DATA_ACCESS:I = 0xb
7872 +.field private static final GOT_ERROR:I = -0x3
7874 +.field private static final IS_ALLOWED:I = -0x1
7876 +.field private static final IS_NOT_ALLOWED:I = -0x2
7878 .field public static final MEDIA_ERROR_SERVER_DIED:I = 0x64
7880 .field public static final MEDIA_RECORDER_ERROR_UNKNOWN:I = 0x1
7881 @@ -53,10 +62,30 @@
7883 .field public static final MEDIA_RECORDER_TRACK_INTER_CHUNK_TIME_MS:I = 0x3ee
7885 +.field private static final MIC_DATA_ACCESS:I = 0xa
7887 +.field private static final MODE_RECORD_AUDIO:I = 0x2
7889 +.field private static final MODE_RECORD_BOTH:I = 0x3
7891 +.field private static final PRIVACY_PATH_DEF:Ljava/lang/String; = "/data/data/"
7893 +.field private static final PRIVACY_TAG:Ljava/lang/String; = "PM,MediaRecorder"
7895 +.field private static final STATE_RECORD_AUDIO:I = 0x0
7897 +.field private static final STATE_RECORD_BOTH:I = 0x1
7899 .field private static final TAG:Ljava/lang/String; = "MediaRecorder"
7902 # instance fields
7903 +.field private ACTUAL_STATE:I
7905 +.field private context:Landroid/content/Context;
7907 +.field private deletedFile:Z
7909 .field private mEventHandler:Landroid/media/MediaRecorder$EventHandler;
7911 .field private mFd:Ljava/io/FileDescriptor;
7912 @@ -69,8 +98,24 @@
7914 .field private mPath:Ljava/lang/String;
7916 +.field private mPm:Landroid/content/pm/IPackageManager;
7918 .field private mSurface:Landroid/view/Surface;
7920 +.field private pFileDescriptor:Ljava/io/FileDescriptor;
7922 +.field private pFileDescriptorPath:Ljava/lang/String;
7924 +.field private pPath:Ljava/lang/String;
7926 +.field private pRunner:Landroid/media/MediaRecorder$PrivacyRunner;
7928 +.field private pSetMan:Landroid/privacy/PrivacySettingsManager;
7930 +.field private privacyMode:Z
7932 +.field private stoppedStream:Z
7935 # direct methods
7936 .method static constructor <clinit>()V
7937 @@ -86,15 +131,35 @@
7938 .end method
7940 .method public constructor <init>()V
7941 - .registers 4
7942 + .registers 5
7944 + const/4 v3, 0x0
7946 + const/4 v2, 0x0
7948 invoke-direct {p0}, Ljava/lang/Object;-><init>()V
7950 + iput-object v2, p0, Landroid/media/MediaRecorder;->pPath:Ljava/lang/String;
7952 + iput-object v2, p0, Landroid/media/MediaRecorder;->pFileDescriptorPath:Ljava/lang/String;
7954 + iput-object v2, p0, Landroid/media/MediaRecorder;->pFileDescriptor:Ljava/io/FileDescriptor;
7956 + iput-object v2, p0, Landroid/media/MediaRecorder;->pRunner:Landroid/media/MediaRecorder$PrivacyRunner;
7958 + iput-boolean v3, p0, Landroid/media/MediaRecorder;->deletedFile:Z
7960 + iput-boolean v3, p0, Landroid/media/MediaRecorder;->privacyMode:Z
7962 + iput-boolean v3, p0, Landroid/media/MediaRecorder;->stoppedStream:Z
7964 + iput v3, p0, Landroid/media/MediaRecorder;->ACTUAL_STATE:I
7966 invoke-static {}, Landroid/os/Looper;->myLooper()Landroid/os/Looper;
7968 move-result-object v0
7970 - if-eqz v0, :cond_1d
7971 + if-eqz v0, :cond_32
7973 new-instance v2, Landroid/media/MediaRecorder$EventHandler;
7975 @@ -102,7 +167,9 @@
7977 iput-object v2, p0, Landroid/media/MediaRecorder;->mEventHandler:Landroid/media/MediaRecorder$EventHandler;
7979 - :goto_10
7980 + :goto_22
7981 + invoke-direct {p0}, Landroid/media/MediaRecorder;->initiate()V
7983 invoke-static {}, Landroid/app/ActivityThread;->currentPackageName()Ljava/lang/String;
7985 move-result-object v1
7986 @@ -115,12 +182,12 @@
7988 return-void
7990 - :cond_1d
7991 + :cond_32
7992 invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper;
7994 move-result-object v0
7996 - if-eqz v0, :cond_2b
7997 + if-eqz v0, :cond_40
7999 new-instance v2, Landroid/media/MediaRecorder$EventHandler;
8001 @@ -128,14 +195,12 @@
8003 iput-object v2, p0, Landroid/media/MediaRecorder;->mEventHandler:Landroid/media/MediaRecorder$EventHandler;
8005 - goto :goto_10
8007 - :cond_2b
8008 - const/4 v2, 0x0
8009 + goto :goto_22
8011 + :cond_40
8012 iput-object v2, p0, Landroid/media/MediaRecorder;->mEventHandler:Landroid/media/MediaRecorder$EventHandler;
8014 - goto :goto_10
8015 + goto :goto_22
8016 .end method
8018 .method private native _prepare()V
8019 @@ -180,12 +245,1724 @@
8020 return-object v0
8021 .end method
8023 -.method public static final getAudioSourceMax()I
8024 +.method static synthetic access$300(Landroid/media/MediaRecorder;)V
8025 .registers 1
8027 - const/4 v0, 0x7
8028 + invoke-direct {p0}, Landroid/media/MediaRecorder;->privacyStop()V
8030 + return-void
8031 +.end method
8033 +.method static synthetic access$400(Landroid/media/MediaRecorder;)Ljava/lang/String;
8034 + .registers 2
8036 + iget-object v0, p0, Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
8038 + return-object v0
8039 +.end method
8041 +.method static synthetic access$502(Landroid/media/MediaRecorder;Z)Z
8042 + .registers 2
8044 + iput-boolean p1, p0, Landroid/media/MediaRecorder;->deletedFile:Z
8046 + return p1
8047 +.end method
8049 +.method static synthetic access$600(Landroid/media/MediaRecorder;)Ljava/io/FileDescriptor;
8050 + .registers 2
8052 + iget-object v0, p0, Landroid/media/MediaRecorder;->mFd:Ljava/io/FileDescriptor;
8054 + return-object v0
8055 +.end method
8057 +.method static synthetic access$700(Landroid/media/MediaRecorder;)Ljava/lang/String;
8058 + .registers 2
8060 + iget-object v0, p0, Landroid/media/MediaRecorder;->pFileDescriptorPath:Ljava/lang/String;
8062 + return-object v0
8063 +.end method
8065 +.method private checkIfPackagesAllowed(I)I
8066 + .registers 12
8068 + const/4 v6, -0x1
8070 + const/4 v5, -0x2
8072 + const/4 v7, -0x3
8074 + :try_start_3
8075 + iget-object v8, p0, Landroid/media/MediaRecorder;->pSetMan:Landroid/privacy/PrivacySettingsManager;
8077 + if-eqz v8, :cond_5b
8079 + const/4 v2, 0x0
8081 + invoke-direct {p0}, Landroid/media/MediaRecorder;->getPackageName()[Ljava/lang/String;
8083 + move-result-object v3
8085 + invoke-static {}, Landroid/os/Process;->myUid()I
8087 + move-result v4
8089 + if-eqz v3, :cond_51
8091 + packed-switch p1, :pswitch_data_72
8093 + move v5, v7
8095 + :cond_16
8096 + :goto_16
8097 + return v5
8099 + :pswitch_17
8100 + const/4 v1, 0x0
8102 + :goto_18
8103 + array-length v8, v3
8105 + if-ge v1, v8, :cond_2f
8107 + iget-object v8, p0, Landroid/media/MediaRecorder;->pSetMan:Landroid/privacy/PrivacySettingsManager;
8109 + aget-object v9, v3, v1
8111 + invoke-virtual {v8, v9, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
8113 + move-result-object v2
8115 + if-eqz v2, :cond_2b
8117 + invoke-virtual {v2}, Landroid/privacy/PrivacySettings;->getRecordAudioSetting()B
8119 + move-result v8
8121 + if-nez v8, :cond_16
8123 + :cond_2b
8124 + const/4 v2, 0x0
8126 + add-int/lit8 v1, v1, 0x1
8128 + goto :goto_18
8130 + :cond_2f
8131 + move v5, v6
8133 + goto :goto_16
8135 + :pswitch_31
8136 + const/4 v1, 0x0
8138 + :goto_32
8139 + array-length v8, v3
8141 + if-ge v1, v8, :cond_4f
8143 + iget-object v8, p0, Landroid/media/MediaRecorder;->pSetMan:Landroid/privacy/PrivacySettingsManager;
8145 + aget-object v9, v3, v1
8147 + invoke-virtual {v8, v9, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
8149 + move-result-object v2
8151 + if-eqz v2, :cond_4b
8153 + invoke-virtual {v2}, Landroid/privacy/PrivacySettings;->getRecordAudioSetting()B
8155 + move-result v8
8157 + if-nez v8, :cond_16
8159 + invoke-virtual {v2}, Landroid/privacy/PrivacySettings;->getCameraSetting()B
8161 + move-result v8
8163 + if-nez v8, :cond_16
8165 + :cond_4b
8166 + const/4 v2, 0x0
8168 + add-int/lit8 v1, v1, 0x1
8170 + goto :goto_32
8172 + :cond_4f
8173 + move v5, v6
8175 + goto :goto_16
8177 + :cond_51
8178 + const-string v5, "PM,MediaRecorder"
8180 + const-string/jumbo v6, "return GOT_ERROR, because package_names are NULL"
8182 + invoke-static {v5, v6}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
8184 + move v5, v7
8186 + goto :goto_16
8188 + :cond_5b
8189 + const-string v5, "PM,MediaRecorder"
8191 + const-string/jumbo v6, "return GOT_ERROR, because pSetMan is NULL"
8193 + invoke-static {v5, v6}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
8194 + :try_end_63
8195 + .catch Ljava/lang/Exception; {:try_start_3 .. :try_end_63} :catch_65
8197 + move v5, v7
8199 + goto :goto_16
8201 + :catch_65
8202 + move-exception v0
8204 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
8206 + const-string v5, "PM,MediaRecorder"
8208 + const-string v6, "Got exception in checkIfPackagesAllowed"
8210 + invoke-static {v5, v6}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
8212 + move v5, v7
8214 + goto :goto_16
8216 + :pswitch_data_72
8217 + .packed-switch 0x2
8218 + :pswitch_17
8219 + :pswitch_31
8220 + .end packed-switch
8221 +.end method
8223 +.method private dataAccess(ZI)V
8224 + .registers 8
8226 + invoke-direct {p0}, Landroid/media/MediaRecorder;->getPackageName()[Ljava/lang/String;
8228 + move-result-object v1
8230 + if-eqz p1, :cond_5a
8232 + if-eqz v1, :cond_5a
8234 + packed-switch p2, :pswitch_data_ae
8236 + :cond_b
8237 + :goto_b
8238 + return-void
8240 + :pswitch_c
8241 + const/4 v0, 0x0
8243 + :goto_d
8244 + array-length v2, v1
8246 + if-ge v0, v2, :cond_b
8248 + const-string v2, "PM,MediaRecorder"
8250 + new-instance v3, Ljava/lang/StringBuilder;
8252 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
8254 + const-string v4, "Allowed Package: -"
8256 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8258 + move-result-object v3
8260 + aget-object v4, v1, v0
8262 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8264 + move-result-object v3
8266 + const-string v4, "- accessing microphone."
8268 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8270 + move-result-object v3
8272 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8274 + move-result-object v3
8276 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
8278 + add-int/lit8 v0, v0, 0x1
8280 + goto :goto_d
8282 + :pswitch_33
8283 + const/4 v0, 0x0
8285 + :goto_34
8286 + array-length v2, v1
8288 + if-ge v0, v2, :cond_b
8290 + const-string v2, "PM,MediaRecorder"
8292 + new-instance v3, Ljava/lang/StringBuilder;
8294 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
8296 + const-string v4, "Allowed Package: -"
8298 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8300 + move-result-object v3
8302 + aget-object v4, v1, v0
8304 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8306 + move-result-object v3
8308 + const-string v4, "- accessing microphone and camera."
8310 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8312 + move-result-object v3
8314 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8316 + move-result-object v3
8318 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
8320 + add-int/lit8 v0, v0, 0x1
8322 + goto :goto_34
8324 + :cond_5a
8325 + if-eqz v1, :cond_b
8327 + packed-switch p2, :pswitch_data_b6
8329 + goto :goto_b
8331 + :pswitch_60
8332 + const/4 v0, 0x0
8334 + :goto_61
8335 + array-length v2, v1
8337 + if-ge v0, v2, :cond_b
8339 + const-string v2, "PM,MediaRecorder"
8341 + new-instance v3, Ljava/lang/StringBuilder;
8343 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
8345 + const-string v4, "Blocked Package: -"
8347 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8349 + move-result-object v3
8351 + aget-object v4, v1, v0
8353 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8355 + move-result-object v3
8357 + const-string v4, "- accessing microphone."
8359 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8361 + move-result-object v3
8363 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8365 + move-result-object v3
8367 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
8369 + add-int/lit8 v0, v0, 0x1
8371 + goto :goto_61
8373 + :pswitch_87
8374 + const/4 v0, 0x0
8376 + :goto_88
8377 + array-length v2, v1
8379 + if-ge v0, v2, :cond_b
8381 + const-string v2, "PM,MediaRecorder"
8383 + new-instance v3, Ljava/lang/StringBuilder;
8385 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
8387 + const-string v4, "Blocked Package: -"
8389 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8391 + move-result-object v3
8393 + aget-object v4, v1, v0
8395 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8397 + move-result-object v3
8399 + const-string v4, "- accessing microphone and camera."
8401 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8403 + move-result-object v3
8405 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8407 + move-result-object v3
8409 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
8411 + add-int/lit8 v0, v0, 0x1
8413 + goto :goto_88
8415 + :pswitch_data_ae
8416 + .packed-switch 0xa
8417 + :pswitch_c
8418 + :pswitch_33
8419 + .end packed-switch
8421 + :pswitch_data_b6
8422 + .packed-switch 0xa
8423 + :pswitch_60
8424 + :pswitch_87
8425 + .end packed-switch
8426 +.end method
8428 +.method public static final getAudioSourceMax()I
8429 + .registers 1
8431 + const/4 v0, 0x7
8433 + return v0
8434 +.end method
8436 +.method private getPackageName()[Ljava/lang/String;
8437 + .registers 6
8439 + :try_start_0
8440 + iget-object v3, p0, Landroid/media/MediaRecorder;->mPm:Landroid/content/pm/IPackageManager;
8442 + if-eqz v3, :cond_f
8444 + invoke-static {}, Landroid/os/Process;->myUid()I
8446 + move-result v2
8448 + iget-object v3, p0, Landroid/media/MediaRecorder;->mPm:Landroid/content/pm/IPackageManager;
8450 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
8452 + move-result-object v1
8454 + :goto_e
8455 + return-object v1
8457 + :cond_f
8458 + const-string/jumbo v3, "package"
8460 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
8462 + move-result-object v3
8464 + invoke-static {v3}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
8466 + move-result-object v3
8468 + iput-object v3, p0, Landroid/media/MediaRecorder;->mPm:Landroid/content/pm/IPackageManager;
8470 + invoke-static {}, Landroid/os/Process;->myUid()I
8472 + move-result v2
8474 + iget-object v3, p0, Landroid/media/MediaRecorder;->mPm:Landroid/content/pm/IPackageManager;
8476 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
8477 + :try_end_25
8478 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_25} :catch_27
8480 + move-result-object v1
8482 + goto :goto_e
8484 + :catch_27
8485 + move-exception v0
8487 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
8489 + const-string v3, "PM,MediaRecorder"
8491 + const-string/jumbo v4, "something went wrong with getting package name"
8493 + invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
8495 + const/4 v1, 0x0
8497 + goto :goto_e
8498 +.end method
8500 +.method private getPrivacyFileDescriptor()Ljava/io/FileDescriptor;
8501 + .registers 19
8503 + invoke-direct/range {p0 .. p0}, Landroid/media/MediaRecorder;->getPackageName()[Ljava/lang/String;
8505 + move-result-object v12
8507 + new-instance v14, Ljava/util/Random;
8509 + invoke-direct {v14}, Ljava/util/Random;-><init>()V
8511 + const/4 v1, 0x0
8513 + new-instance v15, Ljava/lang/StringBuilder;
8515 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
8517 + invoke-virtual {v14}, Ljava/util/Random;->nextLong()J
8519 + move-result-wide v16
8521 + invoke-virtual/range {v15 .. v17}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
8523 + move-result-object v15
8525 + const-string v16, ".tmp"
8527 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8529 + move-result-object v15
8531 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8533 + move-result-object v2
8535 + const/4 v7, 0x0
8537 + const/4 v3, 0x0
8539 + const/4 v11, 0x0
8541 + :goto_24
8542 + array-length v15, v12
8544 + if-ge v11, v15, :cond_247
8546 + :try_start_27
8547 + new-instance v9, Ljava/io/File;
8549 + new-instance v15, Ljava/lang/StringBuilder;
8551 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
8553 + const-string v16, "/data/data/"
8555 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8557 + move-result-object v15
8559 + aget-object v16, v12, v11
8561 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8563 + move-result-object v15
8565 + const-string v16, "/cache/"
8567 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8569 + move-result-object v15
8571 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8573 + move-result-object v15
8575 + invoke-direct {v9, v15}, Ljava/io/File;-><init>(Ljava/lang/String;)V
8577 + invoke-virtual {v9}, Ljava/io/File;->mkdirs()Z
8579 + new-instance v8, Ljava/io/FileWriter;
8581 + new-instance v15, Ljava/lang/StringBuilder;
8583 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
8585 + const-string v16, "/data/data/"
8587 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8589 + move-result-object v15
8591 + aget-object v16, v12, v11
8593 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8595 + move-result-object v15
8597 + const-string v16, "/cache/"
8599 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8601 + move-result-object v15
8603 + invoke-virtual {v15, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8605 + move-result-object v15
8607 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8609 + move-result-object v15
8611 + invoke-direct {v8, v15}, Ljava/io/FileWriter;-><init>(Ljava/lang/String;)V
8612 + :try_end_6e
8613 + .catchall {:try_start_27 .. :try_end_6e} :catchall_15f
8614 + .catch Ljava/lang/Exception; {:try_start_27 .. :try_end_6e} :catch_155
8616 + :try_start_6e
8617 + const-string/jumbo v15, "test"
8619 + invoke-virtual {v8, v15}, Ljava/io/FileWriter;->write(Ljava/lang/String;)V
8621 + invoke-virtual {v8}, Ljava/io/FileWriter;->flush()V
8623 + invoke-virtual {v8}, Ljava/io/FileWriter;->close()V
8625 + new-instance v4, Ljava/io/File;
8627 + new-instance v15, Ljava/lang/StringBuilder;
8629 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
8631 + const-string v16, "/data/data/"
8633 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8635 + move-result-object v15
8637 + aget-object v16, v12, v11
8639 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8641 + move-result-object v15
8643 + const-string v16, "/cache/"
8645 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8647 + move-result-object v15
8649 + invoke-virtual {v15, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8651 + move-result-object v15
8653 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8655 + move-result-object v15
8657 + invoke-direct {v4, v15}, Ljava/io/File;-><init>(Ljava/lang/String;)V
8658 + :try_end_9e
8659 + .catchall {:try_start_6e .. :try_end_9e} :catchall_235
8660 + .catch Ljava/lang/Exception; {:try_start_6e .. :try_end_9e} :catch_23e
8662 + :try_start_9e
8663 + invoke-virtual {v4}, Ljava/io/File;->delete()Z
8665 + const-string v15, "PM,MediaRecorder"
8667 + new-instance v16, Ljava/lang/StringBuilder;
8669 + invoke-direct/range {v16 .. v16}, Ljava/lang/StringBuilder;-><init>()V
8671 + const-string v17, "found our package: "
8673 + invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8675 + move-result-object v16
8677 + aget-object v17, v12, v11
8679 + invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8681 + move-result-object v16
8683 + const-string v17, " with internal path. File: "
8685 + invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8687 + move-result-object v16
8689 + move-object/from16 v0, v16
8691 + invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8693 + move-result-object v16
8695 + invoke-virtual/range {v16 .. v16}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8697 + move-result-object v16
8699 + invoke-static/range {v15 .. v16}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
8701 + aget-object v1, v12, v11
8702 + :try_end_c9
8703 + .catchall {:try_start_9e .. :try_end_c9} :catchall_239
8704 + .catch Ljava/lang/Exception; {:try_start_9e .. :try_end_c9} :catch_242
8706 + const/4 v7, 0x0
8708 + const/4 v3, 0x0
8710 + invoke-static {}, Ljava/lang/System;->gc()V
8712 + move-object v4, v3
8714 + move-object v8, v7
8716 + :goto_d0
8717 + if-eqz v1, :cond_172
8719 + :try_start_d2
8720 + new-instance v10, Ljava/io/FileOutputStream;
8722 + new-instance v15, Ljava/lang/StringBuilder;
8724 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
8726 + const-string v16, "/data/data/"
8728 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8730 + move-result-object v15
8732 + invoke-virtual {v15, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8734 + move-result-object v15
8736 + const-string v16, "/cache/"
8738 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8740 + move-result-object v15
8742 + invoke-virtual {v15, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8744 + move-result-object v15
8746 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8748 + move-result-object v15
8750 + invoke-direct {v10, v15}, Ljava/io/FileOutputStream;-><init>(Ljava/lang/String;)V
8752 + invoke-virtual {v10}, Ljava/io/FileOutputStream;->getFD()Ljava/io/FileDescriptor;
8754 + move-result-object v6
8756 + new-instance v15, Ljava/lang/StringBuilder;
8758 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
8760 + const-string v16, "/data/data/"
8762 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8764 + move-result-object v15
8766 + invoke-virtual {v15, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8768 + move-result-object v15
8770 + const-string v16, "/cache/"
8772 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8774 + move-result-object v15
8776 + invoke-virtual {v15, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8778 + move-result-object v15
8780 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8782 + move-result-object v15
8784 + move-object/from16 v0, p0
8786 + iput-object v15, v0, Landroid/media/MediaRecorder;->pFileDescriptorPath:Ljava/lang/String;
8788 + const-string v15, "PM,MediaRecorder"
8790 + new-instance v16, Ljava/lang/StringBuilder;
8792 + invoke-direct/range {v16 .. v16}, Ljava/lang/StringBuilder;-><init>()V
8794 + const-string/jumbo v17, "returned fileDescriptor for package: "
8796 + invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8798 + move-result-object v16
8800 + move-object/from16 v0, v16
8802 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8804 + move-result-object v16
8806 + const-string v17, " with internal path. Path: "
8808 + invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8810 + move-result-object v16
8812 + const-string v17, "/data/data/"
8814 + invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8816 + move-result-object v16
8818 + move-object/from16 v0, v16
8820 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8822 + move-result-object v16
8824 + const-string v17, "/cache/"
8826 + invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8828 + move-result-object v16
8830 + move-object/from16 v0, v16
8832 + invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8834 + move-result-object v16
8836 + invoke-virtual/range {v16 .. v16}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8838 + move-result-object v16
8840 + invoke-static/range {v15 .. v16}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
8841 + :try_end_152
8842 + .catch Ljava/lang/Exception; {:try_start_d2 .. :try_end_152} :catch_166
8844 + move-object v3, v4
8846 + move-object v7, v8
8848 + :goto_154
8849 + return-object v6
8851 + :catch_155
8852 + move-exception v15
8854 + :goto_156
8855 + const/4 v7, 0x0
8857 + const/4 v3, 0x0
8859 + invoke-static {}, Ljava/lang/System;->gc()V
8861 + add-int/lit8 v11, v11, 0x1
8863 + goto/16 :goto_24
8865 + :catchall_15f
8866 + move-exception v15
8868 + :goto_160
8869 + const/4 v7, 0x0
8871 + const/4 v3, 0x0
8873 + invoke-static {}, Ljava/lang/System;->gc()V
8875 + throw v15
8877 + :catch_166
8878 + move-exception v5
8880 + const-string v15, "PM,MediaRecorder"
8882 + const-string v16, "Got exception while creating fileDescriptor -> return null"
8884 + invoke-static/range {v15 .. v16}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
8886 + const/4 v6, 0x0
8888 + move-object v3, v4
8890 + move-object v7, v8
8892 + goto :goto_154
8894 + :cond_172
8895 + :try_start_172
8896 + invoke-static {}, Landroid/os/Environment;->getExternalStorageDirectory()Ljava/io/File;
8898 + move-result-object v15
8900 + invoke-virtual {v15}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
8902 + move-result-object v13
8904 + new-instance v7, Ljava/io/FileWriter;
8906 + new-instance v15, Ljava/lang/StringBuilder;
8908 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
8910 + invoke-virtual {v15, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8912 + move-result-object v15
8914 + const-string v16, "/"
8916 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8918 + move-result-object v15
8920 + invoke-virtual {v15, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8922 + move-result-object v15
8924 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8926 + move-result-object v15
8928 + invoke-direct {v7, v15}, Ljava/io/FileWriter;-><init>(Ljava/lang/String;)V
8929 + :try_end_196
8930 + .catch Ljava/lang/Exception; {:try_start_172 .. :try_end_196} :catch_22e
8932 + :try_start_196
8933 + const-string/jumbo v15, "test"
8935 + invoke-virtual {v7, v15}, Ljava/io/FileWriter;->write(Ljava/lang/String;)V
8937 + invoke-virtual {v7}, Ljava/io/FileWriter;->flush()V
8939 + invoke-virtual {v7}, Ljava/io/FileWriter;->close()V
8941 + new-instance v3, Ljava/io/File;
8943 + new-instance v15, Ljava/lang/StringBuilder;
8945 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
8947 + invoke-virtual {v15, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8949 + move-result-object v15
8951 + const-string v16, "/"
8953 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8955 + move-result-object v15
8957 + invoke-virtual {v15, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8959 + move-result-object v15
8961 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8963 + move-result-object v15
8965 + invoke-direct {v3, v15}, Ljava/io/File;-><init>(Ljava/lang/String;)V
8966 + :try_end_1be
8967 + .catch Ljava/lang/Exception; {:try_start_196 .. :try_end_1be} :catch_232
8969 + :try_start_1be
8970 + invoke-virtual {v3}, Ljava/io/File;->delete()Z
8972 + new-instance v10, Ljava/io/FileOutputStream;
8974 + new-instance v15, Ljava/lang/StringBuilder;
8976 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
8978 + invoke-virtual {v15, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8980 + move-result-object v15
8982 + const-string v16, "/"
8984 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8986 + move-result-object v15
8988 + invoke-virtual {v15, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8990 + move-result-object v15
8992 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8994 + move-result-object v15
8996 + invoke-direct {v10, v15}, Ljava/io/FileOutputStream;-><init>(Ljava/lang/String;)V
8998 + invoke-virtual {v10}, Ljava/io/FileOutputStream;->getFD()Ljava/io/FileDescriptor;
9000 + move-result-object v6
9002 + new-instance v15, Ljava/lang/StringBuilder;
9004 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
9006 + invoke-virtual {v15, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9008 + move-result-object v15
9010 + const-string v16, "/"
9012 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9014 + move-result-object v15
9016 + invoke-virtual {v15, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9018 + move-result-object v15
9020 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
9022 + move-result-object v15
9024 + move-object/from16 v0, p0
9026 + iput-object v15, v0, Landroid/media/MediaRecorder;->pFileDescriptorPath:Ljava/lang/String;
9028 + const-string v15, "PM,MediaRecorder"
9030 + new-instance v16, Ljava/lang/StringBuilder;
9032 + invoke-direct/range {v16 .. v16}, Ljava/lang/StringBuilder;-><init>()V
9034 + const-string v17, "Returned FileDescriptor. Path: "
9036 + invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9038 + move-result-object v16
9040 + move-object/from16 v0, v16
9042 + invoke-virtual {v0, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9044 + move-result-object v16
9046 + const-string v17, "/"
9048 + invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9050 + move-result-object v16
9052 + move-object/from16 v0, v16
9054 + invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9056 + move-result-object v16
9058 + const-string v17, " . It is on SDCard!"
9060 + invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9062 + move-result-object v16
9064 + invoke-virtual/range {v16 .. v16}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
9066 + move-result-object v16
9068 + invoke-static/range {v15 .. v16}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
9069 + :try_end_228
9070 + .catch Ljava/lang/Exception; {:try_start_1be .. :try_end_228} :catch_22a
9072 + goto/16 :goto_154
9074 + :catch_22a
9075 + move-exception v5
9077 + :goto_22b
9078 + const/4 v6, 0x0
9080 + goto/16 :goto_154
9082 + :catch_22e
9083 + move-exception v5
9085 + move-object v3, v4
9087 + move-object v7, v8
9089 + goto :goto_22b
9091 + :catch_232
9092 + move-exception v5
9094 + move-object v3, v4
9096 + goto :goto_22b
9098 + :catchall_235
9099 + move-exception v15
9101 + move-object v7, v8
9103 + goto/16 :goto_160
9105 + :catchall_239
9106 + move-exception v15
9108 + move-object v3, v4
9110 + move-object v7, v8
9112 + goto/16 :goto_160
9114 + :catch_23e
9115 + move-exception v15
9117 + move-object v7, v8
9119 + goto/16 :goto_156
9121 + :catch_242
9122 + move-exception v15
9124 + move-object v3, v4
9126 + move-object v7, v8
9128 + goto/16 :goto_156
9130 + :cond_247
9131 + move-object v4, v3
9133 + move-object v8, v7
9135 + goto/16 :goto_d0
9136 +.end method
9138 +.method private getPrivacyPath()Ljava/lang/String;
9139 + .registers 16
9141 + invoke-direct {p0}, Landroid/media/MediaRecorder;->getPackageName()[Ljava/lang/String;
9143 + move-result-object v9
9145 + new-instance v11, Ljava/util/Random;
9147 + invoke-direct {v11}, Ljava/util/Random;-><init>()V
9149 + const/4 v0, 0x0
9151 + new-instance v12, Ljava/lang/StringBuilder;
9153 + invoke-direct {v12}, Ljava/lang/StringBuilder;-><init>()V
9155 + invoke-virtual {v11}, Ljava/util/Random;->nextLong()J
9157 + move-result-wide v13
9159 + invoke-virtual {v12, v13, v14}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
9161 + move-result-object v12
9163 + const-string v13, ".tmp"
9165 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9167 + move-result-object v12
9169 + invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
9171 + move-result-object v1
9173 + const/4 v5, 0x0
9175 + const/4 v2, 0x0
9177 + const/4 v8, 0x0
9179 + :goto_24
9180 + array-length v12, v9
9182 + if-ge v8, v12, :cond_1eb
9184 + :try_start_27
9185 + new-instance v7, Ljava/io/File;
9187 + new-instance v12, Ljava/lang/StringBuilder;
9189 + invoke-direct {v12}, Ljava/lang/StringBuilder;-><init>()V
9191 + const-string v13, "/data/data/"
9193 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9195 + move-result-object v12
9197 + aget-object v13, v9, v8
9199 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9201 + move-result-object v12
9203 + const-string v13, "/cache/"
9205 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9207 + move-result-object v12
9209 + invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
9211 + move-result-object v12
9213 + invoke-direct {v7, v12}, Ljava/io/File;-><init>(Ljava/lang/String;)V
9215 + invoke-virtual {v7}, Ljava/io/File;->mkdirs()Z
9217 + new-instance v6, Ljava/io/FileWriter;
9219 + new-instance v12, Ljava/lang/StringBuilder;
9221 + invoke-direct {v12}, Ljava/lang/StringBuilder;-><init>()V
9223 + const-string v13, "/data/data/"
9225 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9227 + move-result-object v12
9229 + aget-object v13, v9, v8
9231 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9233 + move-result-object v12
9235 + const-string v13, "/cache/"
9237 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9239 + move-result-object v12
9241 + invoke-virtual {v12, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9243 + move-result-object v12
9245 + invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
9247 + move-result-object v12
9249 + invoke-direct {v6, v12}, Ljava/io/FileWriter;-><init>(Ljava/lang/String;)V
9250 + :try_end_6e
9251 + .catchall {:try_start_27 .. :try_end_6e} :catchall_137
9252 + .catch Ljava/lang/Exception; {:try_start_27 .. :try_end_6e} :catch_12d
9254 + :try_start_6e
9255 + const-string/jumbo v12, "test"
9257 + invoke-virtual {v6, v12}, Ljava/io/FileWriter;->write(Ljava/lang/String;)V
9259 + invoke-virtual {v6}, Ljava/io/FileWriter;->flush()V
9261 + invoke-virtual {v6}, Ljava/io/FileWriter;->close()V
9263 + new-instance v3, Ljava/io/File;
9265 + new-instance v12, Ljava/lang/StringBuilder;
9267 + invoke-direct {v12}, Ljava/lang/StringBuilder;-><init>()V
9269 + const-string v13, "/data/data/"
9271 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9273 + move-result-object v12
9275 + aget-object v13, v9, v8
9277 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9279 + move-result-object v12
9281 + const-string v13, "/cache/"
9283 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9285 + move-result-object v12
9287 + invoke-virtual {v12, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9289 + move-result-object v12
9291 + invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
9293 + move-result-object v12
9295 + invoke-direct {v3, v12}, Ljava/io/File;-><init>(Ljava/lang/String;)V
9296 + :try_end_9e
9297 + .catchall {:try_start_6e .. :try_end_9e} :catchall_1d9
9298 + .catch Ljava/lang/Exception; {:try_start_6e .. :try_end_9e} :catch_1e2
9300 + :try_start_9e
9301 + invoke-virtual {v3}, Ljava/io/File;->delete()Z
9303 + const-string v12, "PM,MediaRecorder"
9305 + new-instance v13, Ljava/lang/StringBuilder;
9307 + invoke-direct {v13}, Ljava/lang/StringBuilder;-><init>()V
9309 + const-string v14, "found our package: "
9311 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9313 + move-result-object v13
9315 + aget-object v14, v9, v8
9317 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9319 + move-result-object v13
9321 + const-string v14, " with internal path. File: "
9323 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9325 + move-result-object v13
9327 + invoke-virtual {v13, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9329 + move-result-object v13
9331 + invoke-virtual {v13}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
9333 + move-result-object v13
9335 + invoke-static {v12, v13}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
9337 + aget-object v0, v9, v8
9338 + :try_end_c7
9339 + .catchall {:try_start_9e .. :try_end_c7} :catchall_1dd
9340 + .catch Ljava/lang/Exception; {:try_start_9e .. :try_end_c7} :catch_1e6
9342 + const/4 v5, 0x0
9344 + const/4 v2, 0x0
9346 + invoke-static {}, Ljava/lang/System;->gc()V
9348 + move-object v3, v2
9350 + move-object v6, v5
9352 + :goto_ce
9353 + if-eqz v0, :cond_13e
9355 + const-string v12, "PM,MediaRecorder"
9357 + new-instance v13, Ljava/lang/StringBuilder;
9359 + invoke-direct {v13}, Ljava/lang/StringBuilder;-><init>()V
9361 + const-string/jumbo v14, "returned file: "
9363 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9365 + move-result-object v13
9367 + invoke-virtual {v13, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9369 + move-result-object v13
9371 + const-string v14, " for package: "
9373 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9375 + move-result-object v13
9377 + invoke-virtual {v13, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9379 + move-result-object v13
9381 + const-string v14, " with internal path. Path: "
9383 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9385 + move-result-object v13
9387 + const-string v14, "/data/data/"
9389 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9391 + move-result-object v13
9393 + invoke-virtual {v13, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9395 + move-result-object v13
9397 + const-string v14, "/cache/"
9399 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9401 + move-result-object v13
9403 + invoke-virtual {v13, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9405 + move-result-object v13
9407 + invoke-virtual {v13}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
9409 + move-result-object v13
9411 + invoke-static {v12, v13}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
9413 + new-instance v12, Ljava/lang/StringBuilder;
9415 + invoke-direct {v12}, Ljava/lang/StringBuilder;-><init>()V
9417 + const-string v13, "/data/data/"
9419 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9421 + move-result-object v12
9423 + invoke-virtual {v12, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9425 + move-result-object v12
9427 + const-string v13, "/cache/"
9429 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9431 + move-result-object v12
9433 + invoke-virtual {v12, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9435 + move-result-object v12
9437 + invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
9439 + move-result-object v12
9441 + move-object v2, v3
9443 + move-object v5, v6
9445 + :goto_12c
9446 + return-object v12
9448 + :catch_12d
9449 + move-exception v12
9451 + :goto_12e
9452 + const/4 v5, 0x0
9454 + const/4 v2, 0x0
9456 + invoke-static {}, Ljava/lang/System;->gc()V
9458 + add-int/lit8 v8, v8, 0x1
9460 + goto/16 :goto_24
9462 + :catchall_137
9463 + move-exception v12
9465 + :goto_138
9466 + const/4 v5, 0x0
9468 + const/4 v2, 0x0
9470 + invoke-static {}, Ljava/lang/System;->gc()V
9472 + throw v12
9474 + :cond_13e
9475 + :try_start_13e
9476 + invoke-static {}, Landroid/os/Environment;->getExternalStorageDirectory()Ljava/io/File;
9478 + move-result-object v12
9480 + invoke-virtual {v12}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
9482 + move-result-object v10
9484 + new-instance v5, Ljava/io/FileWriter;
9486 + new-instance v12, Ljava/lang/StringBuilder;
9488 + invoke-direct {v12}, Ljava/lang/StringBuilder;-><init>()V
9490 + invoke-virtual {v12, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9492 + move-result-object v12
9494 + const-string v13, "/"
9496 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9498 + move-result-object v12
9500 + invoke-virtual {v12, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9502 + move-result-object v12
9504 + invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
9506 + move-result-object v12
9508 + invoke-direct {v5, v12}, Ljava/io/FileWriter;-><init>(Ljava/lang/String;)V
9509 + :try_end_162
9510 + .catch Ljava/lang/Exception; {:try_start_13e .. :try_end_162} :catch_1ce
9512 + :try_start_162
9513 + const-string/jumbo v12, "test"
9515 + invoke-virtual {v5, v12}, Ljava/io/FileWriter;->write(Ljava/lang/String;)V
9517 + invoke-virtual {v5}, Ljava/io/FileWriter;->flush()V
9519 + invoke-virtual {v5}, Ljava/io/FileWriter;->close()V
9521 + new-instance v2, Ljava/io/File;
9523 + new-instance v12, Ljava/lang/StringBuilder;
9525 + invoke-direct {v12}, Ljava/lang/StringBuilder;-><init>()V
9527 + invoke-virtual {v12, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9529 + move-result-object v12
9531 + const-string v13, "/"
9533 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9535 + move-result-object v12
9537 + invoke-virtual {v12, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9539 + move-result-object v12
9541 + invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
9543 + move-result-object v12
9545 + invoke-direct {v2, v12}, Ljava/io/File;-><init>(Ljava/lang/String;)V
9546 + :try_end_18a
9547 + .catch Ljava/lang/Exception; {:try_start_162 .. :try_end_18a} :catch_1d4
9549 + :try_start_18a
9550 + invoke-virtual {v2}, Ljava/io/File;->delete()Z
9552 + const-string v12, "PM,MediaRecorder"
9554 + new-instance v13, Ljava/lang/StringBuilder;
9556 + invoke-direct {v13}, Ljava/lang/StringBuilder;-><init>()V
9558 + const-string v14, "Return filePath: "
9560 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9562 + move-result-object v13
9564 + invoke-virtual {v13, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9566 + move-result-object v13
9568 + const-string v14, "/"
9570 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9572 + move-result-object v13
9574 + invoke-virtual {v13, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9576 + move-result-object v13
9578 + const-string v14, " . It is on SDCard!"
9580 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9582 + move-result-object v13
9584 + invoke-virtual {v13}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
9586 + move-result-object v13
9588 + invoke-static {v12, v13}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
9590 + new-instance v12, Ljava/lang/StringBuilder;
9592 + invoke-direct {v12}, Ljava/lang/StringBuilder;-><init>()V
9594 + invoke-virtual {v12, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9596 + move-result-object v12
9598 + const-string v13, "/"
9600 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9602 + move-result-object v12
9604 + invoke-virtual {v12, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9606 + move-result-object v12
9608 + invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
9609 + :try_end_1cb
9610 + .catch Ljava/lang/Exception; {:try_start_18a .. :try_end_1cb} :catch_1d7
9612 + move-result-object v12
9614 + goto/16 :goto_12c
9616 + :catch_1ce
9617 + move-exception v4
9619 + move-object v2, v3
9621 + move-object v5, v6
9623 + :goto_1d1
9624 + const/4 v12, 0x0
9626 + goto/16 :goto_12c
9628 + :catch_1d4
9629 + move-exception v4
9631 + move-object v2, v3
9633 + goto :goto_1d1
9635 + :catch_1d7
9636 + move-exception v4
9638 + goto :goto_1d1
9640 + :catchall_1d9
9641 + move-exception v12
9643 + move-object v5, v6
9645 + goto/16 :goto_138
9647 + :catchall_1dd
9648 + move-exception v12
9650 + move-object v2, v3
9652 + move-object v5, v6
9654 + goto/16 :goto_138
9656 + :catch_1e2
9657 + move-exception v12
9659 + move-object v5, v6
9661 + goto/16 :goto_12e
9663 + :catch_1e6
9664 + move-exception v12
9666 + move-object v2, v3
9668 + move-object v5, v6
9670 + goto/16 :goto_12e
9672 + :cond_1eb
9673 + move-object v3, v2
9675 + move-object v6, v5
9677 + goto/16 :goto_ce
9678 +.end method
9680 +.method private initiate()V
9681 + .registers 5
9683 + const/4 v1, 0x0
9685 + :try_start_1
9686 + iput-object v1, p0, Landroid/media/MediaRecorder;->context:Landroid/content/Context;
9688 + new-instance v1, Landroid/privacy/PrivacySettingsManager;
9690 + iget-object v2, p0, Landroid/media/MediaRecorder;->context:Landroid/content/Context;
9692 + const-string/jumbo v3, "privacy"
9694 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
9696 + move-result-object v3
9698 + invoke-static {v3}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
9700 + move-result-object v3
9702 + invoke-direct {v1, v2, v3}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
9704 + iput-object v1, p0, Landroid/media/MediaRecorder;->pSetMan:Landroid/privacy/PrivacySettingsManager;
9706 + const-string/jumbo v1, "package"
9708 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
9710 + move-result-object v1
9712 + invoke-static {v1}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
9714 + move-result-object v1
9716 + iput-object v1, p0, Landroid/media/MediaRecorder;->mPm:Landroid/content/pm/IPackageManager;
9718 + const/4 v1, 0x1
9720 + iput-boolean v1, p0, Landroid/media/MediaRecorder;->privacyMode:Z
9721 + :try_end_27
9722 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_27} :catch_28
9724 + :goto_27
9725 + return-void
9727 + :catch_28
9728 + move-exception v0
9730 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
9732 + const-string v1, "PM,MediaRecorder"
9734 + const-string v2, "Something went wrong with initalize variables"
9736 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
9738 + const/4 v1, 0x0
9740 - return v0
9741 + iput-boolean v1, p0, Landroid/media/MediaRecorder;->privacyMode:Z
9743 + goto :goto_27
9744 .end method
9746 .method private final native native_finalize()V
9747 @@ -240,17 +2017,104 @@
9748 goto :goto_a
9749 .end method
9751 +.method private privacyStop()V
9752 + .registers 4
9754 + :try_start_0
9755 + invoke-virtual {p0}, Landroid/media/MediaRecorder;->stop()V
9756 + :try_end_3
9757 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_3} :catch_4
9759 + :goto_3
9760 + return-void
9762 + :catch_4
9763 + move-exception v0
9765 + const-string v1, "PM,MediaRecorder"
9767 + const-string v2, "Got exception while trying to call privacyStop()"
9769 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
9771 + goto :goto_3
9772 +.end method
9774 .method private native setParameter(Ljava/lang/String;)V
9775 .end method
9778 # virtual methods
9779 .method protected finalize()V
9780 - .registers 1
9781 + .registers 4
9783 + const/4 v2, 0x1
9785 + iget-boolean v1, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9787 + if-nez v1, :cond_18
9789 + iget-object v1, p0, Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
9791 + if-eqz v1, :cond_1c
9793 + new-instance v0, Ljava/io/File;
9795 + iget-object v1, p0, Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
9797 + invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
9799 + invoke-virtual {v0}, Ljava/io/File;->delete()Z
9801 + move-result v1
9803 + if-eqz v1, :cond_18
9805 + iput-boolean v2, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9807 + :cond_18
9808 + :goto_18
9809 invoke-direct {p0}, Landroid/media/MediaRecorder;->native_finalize()V
9811 return-void
9813 + :cond_1c
9814 + iget-object v1, p0, Landroid/media/MediaRecorder;->mFd:Ljava/io/FileDescriptor;
9816 + if-eqz v1, :cond_34
9818 + iget-object v1, p0, Landroid/media/MediaRecorder;->pFileDescriptorPath:Ljava/lang/String;
9820 + if-eqz v1, :cond_34
9822 + new-instance v0, Ljava/io/File;
9824 + iget-object v1, p0, Landroid/media/MediaRecorder;->pFileDescriptorPath:Ljava/lang/String;
9826 + invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
9828 + invoke-virtual {v0}, Ljava/io/File;->delete()Z
9830 + move-result v1
9832 + if-eqz v1, :cond_18
9834 + iput-boolean v2, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9836 + goto :goto_18
9838 + :cond_34
9839 + const-string v1, "PM,MediaRecorder"
9841 + const-string v2, "Can\'t delete temporary File, because all is null?! It could be that we only want to record audio?!"
9843 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
9845 + const/4 v1, 0x0
9847 + iput-boolean v1, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9849 + goto :goto_18
9850 .end method
9852 .method public native getMaxAmplitude()I
9853 @@ -262,7 +2126,7 @@
9854 .end method
9856 .method public prepare()V
9857 - .registers 8
9858 + .registers 12
9859 .annotation system Ldalvik/annotation/Throws;
9860 value = {
9861 Ljava/lang/IllegalStateException;,
9862 @@ -270,20 +2134,80 @@
9864 .end annotation
9866 - const-wide/16 v2, 0x0
9867 + iget-boolean v0, p0, Landroid/media/MediaRecorder;->privacyMode:Z
9869 + if-nez v0, :cond_7
9871 + invoke-direct {p0}, Landroid/media/MediaRecorder;->initiate()V
9873 + :cond_7
9874 + const/4 v0, 0x0
9876 + iput-boolean v0, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9878 + const/4 v9, 0x0
9880 + iget v0, p0, Landroid/media/MediaRecorder;->ACTUAL_STATE:I
9882 + packed-switch v0, :pswitch_data_102
9884 + :cond_10
9885 + :goto_10
9886 + invoke-direct {p0}, Landroid/media/MediaRecorder;->getPackageName()[Ljava/lang/String;
9888 + move-result-object v8
9890 + if-nez v9, :cond_31
9892 + iget v0, p0, Landroid/media/MediaRecorder;->ACTUAL_STATE:I
9894 + const/4 v1, 0x1
9896 + if-ne v0, v1, :cond_cf
9898 + if-eqz v8, :cond_cf
9900 + array-length v0, v8
9902 + if-lez v0, :cond_cf
9904 + iget-object v0, p0, Landroid/media/MediaRecorder;->pSetMan:Landroid/privacy/PrivacySettingsManager;
9906 + const/4 v1, 0x0
9908 + aget-object v1, v8, v1
9910 + const/4 v2, 0x0
9912 + const/4 v3, 0x0
9914 + const-string v4, "camera"
9916 + const/4 v5, 0x0
9918 + const/4 v6, 0x0
9920 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
9922 + :cond_2e
9923 + :goto_2e
9924 + const/4 v0, 0x1
9926 + iput-boolean v0, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9928 + :cond_31
9929 iget-object v0, p0, Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
9931 - if-eqz v0, :cond_25
9932 + if-eqz v0, :cond_ea
9934 - new-instance v6, Ljava/io/FileOutputStream;
9935 + new-instance v7, Ljava/io/FileOutputStream;
9937 iget-object v0, p0, Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
9939 - invoke-direct {v6, v0}, Ljava/io/FileOutputStream;-><init>(Ljava/lang/String;)V
9940 + invoke-direct {v7, v0}, Ljava/io/FileOutputStream;-><init>(Ljava/lang/String;)V
9942 - :try_start_d
9943 - invoke-virtual {v6}, Ljava/io/FileOutputStream;->getFD()Ljava/io/FileDescriptor;
9944 + :try_start_3c
9945 + invoke-virtual {v7}, Ljava/io/FileOutputStream;->getFD()Ljava/io/FileDescriptor;
9947 move-result-object v1
9949 @@ -294,39 +2218,215 @@
9950 move-object v0, p0
9952 invoke-direct/range {v0 .. v5}, Landroid/media/MediaRecorder;->_setOutputFile(Ljava/io/FileDescriptor;JJ)V
9953 - :try_end_19
9954 - .catchall {:try_start_d .. :try_end_19} :catchall_20
9955 + :try_end_48
9956 + .catchall {:try_start_3c .. :try_end_48} :catchall_e5
9958 - invoke-virtual {v6}, Ljava/io/FileOutputStream;->close()V
9959 + invoke-virtual {v7}, Ljava/io/FileOutputStream;->close()V
9961 - :goto_1c
9962 + :goto_4b
9963 invoke-direct {p0}, Landroid/media/MediaRecorder;->_prepare()V
9965 return-void
9967 - :catchall_20
9968 + :pswitch_4f
9969 + const/4 v0, 0x2
9971 + invoke-direct {p0, v0}, Landroid/media/MediaRecorder;->checkIfPackagesAllowed(I)I
9973 + move-result v0
9975 + const/4 v1, -0x2
9977 + if-ne v0, v1, :cond_10
9979 + invoke-direct {p0}, Landroid/media/MediaRecorder;->getPackageName()[Ljava/lang/String;
9981 + move-result-object v10
9983 + if-eqz v10, :cond_6f
9985 + array-length v0, v10
9987 + if-lez v0, :cond_6f
9989 + iget-object v0, p0, Landroid/media/MediaRecorder;->pSetMan:Landroid/privacy/PrivacySettingsManager;
9991 + const/4 v1, 0x0
9993 + aget-object v1, v10, v1
9995 + const/4 v2, 0x0
9997 + const/4 v3, 0x1
9999 + const-string/jumbo v4, "recordAudio"
10001 + const/4 v5, 0x0
10003 + const/4 v6, 0x0
10005 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
10007 + :cond_6f
10008 + new-instance v0, Landroid/media/MediaRecorder$PrivacyRunner;
10010 + invoke-direct {v0, p0}, Landroid/media/MediaRecorder$PrivacyRunner;-><init>(Landroid/media/MediaRecorder;)V
10012 + iput-object v0, p0, Landroid/media/MediaRecorder;->pRunner:Landroid/media/MediaRecorder$PrivacyRunner;
10014 + iget-object v0, p0, Landroid/media/MediaRecorder;->pRunner:Landroid/media/MediaRecorder$PrivacyRunner;
10016 + const-wide/16 v1, 0x32
10018 + invoke-virtual {v0, v1, v2}, Landroid/media/MediaRecorder$PrivacyRunner;->setDelay(J)V
10020 + iget-object v0, p0, Landroid/media/MediaRecorder;->pRunner:Landroid/media/MediaRecorder$PrivacyRunner;
10022 + invoke-virtual {v0}, Landroid/media/MediaRecorder$PrivacyRunner;->start()V
10024 + const/4 v9, 0x1
10026 + goto :goto_10
10028 + :pswitch_84
10029 + const/4 v0, 0x3
10031 + invoke-direct {p0, v0}, Landroid/media/MediaRecorder;->checkIfPackagesAllowed(I)I
10033 + move-result v0
10035 + const/4 v1, -0x2
10037 + if-ne v0, v1, :cond_10
10039 + invoke-direct {p0}, Landroid/media/MediaRecorder;->getPackageName()[Ljava/lang/String;
10041 + move-result-object v10
10043 + if-eqz v10, :cond_a3
10045 + array-length v0, v10
10047 + if-lez v0, :cond_a3
10049 + iget-object v0, p0, Landroid/media/MediaRecorder;->pSetMan:Landroid/privacy/PrivacySettingsManager;
10051 + const/4 v1, 0x0
10053 + aget-object v1, v10, v1
10055 + const/4 v2, 0x0
10057 + const/4 v3, 0x1
10059 + const-string v4, "camera"
10061 + const/4 v5, 0x0
10063 + const/4 v6, 0x0
10065 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
10067 + :cond_a3
10068 + iget-object v0, p0, Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
10070 + if-eqz v0, :cond_bc
10072 + invoke-direct {p0}, Landroid/media/MediaRecorder;->getPrivacyPath()Ljava/lang/String;
10074 + move-result-object v0
10076 + iput-object v0, p0, Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
10078 + :goto_ad
10079 + new-instance v0, Landroid/media/MediaRecorder$PrivacyRunner;
10081 + invoke-direct {v0, p0}, Landroid/media/MediaRecorder$PrivacyRunner;-><init>(Landroid/media/MediaRecorder;)V
10083 + iput-object v0, p0, Landroid/media/MediaRecorder;->pRunner:Landroid/media/MediaRecorder$PrivacyRunner;
10085 + iget-object v0, p0, Landroid/media/MediaRecorder;->pRunner:Landroid/media/MediaRecorder$PrivacyRunner;
10087 + invoke-virtual {v0}, Landroid/media/MediaRecorder$PrivacyRunner;->start()V
10089 + const/4 v9, 0x1
10091 + goto/16 :goto_10
10093 + :cond_bc
10094 + iget-object v0, p0, Landroid/media/MediaRecorder;->mFd:Ljava/io/FileDescriptor;
10096 + if-eqz v0, :cond_c7
10098 + invoke-direct {p0}, Landroid/media/MediaRecorder;->getPrivacyFileDescriptor()Ljava/io/FileDescriptor;
10100 + move-result-object v0
10102 + iput-object v0, p0, Landroid/media/MediaRecorder;->mFd:Ljava/io/FileDescriptor;
10104 + goto :goto_ad
10106 + :cond_c7
10107 + new-instance v0, Ljava/io/IOException;
10109 + const-string v1, "No valid output file"
10111 + invoke-direct {v0, v1}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
10113 + throw v0
10115 + :cond_cf
10116 + if-eqz v8, :cond_2e
10118 + array-length v0, v8
10120 + if-lez v0, :cond_2e
10122 + iget-object v0, p0, Landroid/media/MediaRecorder;->pSetMan:Landroid/privacy/PrivacySettingsManager;
10124 + const/4 v1, 0x0
10126 + aget-object v1, v8, v1
10128 + const/4 v2, 0x0
10130 + const/4 v3, 0x0
10132 + const-string/jumbo v4, "recordAudio"
10134 + const/4 v5, 0x0
10136 + const/4 v6, 0x0
10138 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
10140 + goto/16 :goto_2e
10142 + :catchall_e5
10143 move-exception v0
10145 - invoke-virtual {v6}, Ljava/io/FileOutputStream;->close()V
10146 + invoke-virtual {v7}, Ljava/io/FileOutputStream;->close()V
10148 throw v0
10150 - :cond_25
10151 + :cond_ea
10152 iget-object v0, p0, Landroid/media/MediaRecorder;->mFd:Ljava/io/FileDescriptor;
10154 - if-eqz v0, :cond_31
10155 + if-eqz v0, :cond_fa
10157 iget-object v1, p0, Landroid/media/MediaRecorder;->mFd:Ljava/io/FileDescriptor;
10159 - move-object v0, p0
10160 + const-wide/16 v2, 0x0
10162 - move-wide v4, v2
10163 + const-wide/16 v4, 0x0
10165 + move-object v0, p0
10167 invoke-direct/range {v0 .. v5}, Landroid/media/MediaRecorder;->_setOutputFile(Ljava/io/FileDescriptor;JJ)V
10169 - goto :goto_1c
10170 + goto/16 :goto_4b
10172 - :cond_31
10173 + :cond_fa
10174 new-instance v0, Ljava/io/IOException;
10176 const-string v1, "No valid output file"
10177 @@ -334,23 +2434,97 @@
10178 invoke-direct {v0, v1}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
10180 throw v0
10182 + :pswitch_data_102
10183 + .packed-switch 0x0
10184 + :pswitch_4f
10185 + :pswitch_84
10186 + .end packed-switch
10187 .end method
10189 .method public native release()V
10190 .end method
10192 .method public reset()V
10193 - .registers 3
10194 + .registers 5
10196 + const/4 v3, 0x0
10198 + const/4 v2, 0x1
10200 invoke-direct {p0}, Landroid/media/MediaRecorder;->native_reset()V
10202 - iget-object v0, p0, Landroid/media/MediaRecorder;->mEventHandler:Landroid/media/MediaRecorder$EventHandler;
10203 + iget-boolean v1, p0, Landroid/media/MediaRecorder;->deletedFile:Z
10205 - const/4 v1, 0x0
10206 + if-nez v1, :cond_1c
10208 + iget-object v1, p0, Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
10210 + if-eqz v1, :cond_27
10212 + new-instance v0, Ljava/io/File;
10214 + iget-object v1, p0, Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
10216 + invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
10218 + invoke-virtual {v0}, Ljava/io/File;->delete()Z
10220 + move-result v1
10222 + if-eqz v1, :cond_1c
10224 + iput-boolean v2, p0, Landroid/media/MediaRecorder;->deletedFile:Z
10226 - invoke-virtual {v0, v1}, Landroid/media/MediaRecorder$EventHandler;->removeCallbacksAndMessages(Ljava/lang/Object;)V
10227 + :cond_1c
10228 + :goto_1c
10229 + iput-object v3, p0, Landroid/media/MediaRecorder;->pRunner:Landroid/media/MediaRecorder$PrivacyRunner;
10231 + invoke-static {}, Ljava/lang/System;->gc()V
10233 + iget-object v1, p0, Landroid/media/MediaRecorder;->mEventHandler:Landroid/media/MediaRecorder$EventHandler;
10235 + invoke-virtual {v1, v3}, Landroid/media/MediaRecorder$EventHandler;->removeCallbacksAndMessages(Ljava/lang/Object;)V
10237 return-void
10239 + :cond_27
10240 + iget-object v1, p0, Landroid/media/MediaRecorder;->mFd:Ljava/io/FileDescriptor;
10242 + if-eqz v1, :cond_3f
10244 + iget-object v1, p0, Landroid/media/MediaRecorder;->pFileDescriptorPath:Ljava/lang/String;
10246 + if-eqz v1, :cond_3f
10248 + new-instance v0, Ljava/io/File;
10250 + iget-object v1, p0, Landroid/media/MediaRecorder;->pFileDescriptorPath:Ljava/lang/String;
10252 + invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
10254 + invoke-virtual {v0}, Ljava/io/File;->delete()Z
10256 + move-result v1
10258 + if-eqz v1, :cond_1c
10260 + iput-boolean v2, p0, Landroid/media/MediaRecorder;->deletedFile:Z
10262 + goto :goto_1c
10264 + :cond_3f
10265 + const-string v1, "PM,MediaRecorder"
10267 + const-string v2, "Can\'t delete temporary File, because all is null?! It could be that we only want to record audio?!"
10269 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
10271 + const/4 v1, 0x0
10273 + iput-boolean v1, p0, Landroid/media/MediaRecorder;->deletedFile:Z
10275 + goto :goto_1c
10276 .end method
10278 .method public setAudioChannels(I)V
10279 @@ -510,6 +2684,10 @@
10280 .method public setCaptureRate(D)V
10281 .registers 8
10283 + const/4 v3, 0x1
10285 + iput v3, p0, Landroid/media/MediaRecorder;->ACTUAL_STATE:I
10287 const-string/jumbo v3, "time-lapse-enable=1"
10289 invoke-direct {p0, v3}, Landroid/media/MediaRecorder;->setParameter(Ljava/lang/String;)V
10290 @@ -804,6 +2982,10 @@
10292 iput-object p1, p0, Landroid/media/MediaRecorder;->mFd:Ljava/io/FileDescriptor;
10294 + const/4 v0, 0x0
10296 + iput-boolean v0, p0, Landroid/media/MediaRecorder;->deletedFile:Z
10298 return-void
10299 .end method
10301 @@ -821,6 +3003,10 @@
10303 iput-object p1, p0, Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
10305 + const/4 v0, 0x0
10307 + iput-boolean v0, p0, Landroid/media/MediaRecorder;->deletedFile:Z
10309 return-void
10310 .end method
10312 @@ -833,7 +3019,11 @@
10313 .end method
10315 .method public setPreviewDisplay(Landroid/view/Surface;)V
10316 - .registers 2
10317 + .registers 3
10319 + const/4 v0, 0x1
10321 + iput v0, p0, Landroid/media/MediaRecorder;->ACTUAL_STATE:I
10323 iput-object p1, p0, Landroid/media/MediaRecorder;->mSurface:Landroid/view/Surface;
10325 @@ -843,6 +3033,10 @@
10326 .method public setProfile(Landroid/media/CamcorderProfile;)V
10327 .registers 4
10329 + const/4 v0, 0x1
10331 + iput v0, p0, Landroid/media/MediaRecorder;->ACTUAL_STATE:I
10333 iget v0, p1, Landroid/media/CamcorderProfile;->fileFormat:I
10335 invoke-virtual {p0, v0}, Landroid/media/MediaRecorder;->setOutputFormat(I)V
10336 @@ -869,18 +3063,18 @@
10338 const/16 v1, 0x3e8
10340 - if-lt v0, v1, :cond_28
10341 + if-lt v0, v1, :cond_2b
10343 iget v0, p1, Landroid/media/CamcorderProfile;->quality:I
10345 const/16 v1, 0x3ef
10347 - if-gt v0, v1, :cond_28
10348 + if-gt v0, v1, :cond_2b
10350 - :goto_27
10351 + :goto_2a
10352 return-void
10354 - :cond_28
10355 + :cond_2b
10356 iget v0, p1, Landroid/media/CamcorderProfile;->audioBitRate:I
10358 invoke-virtual {p0, v0}, Landroid/media/MediaRecorder;->setAudioEncodingBitRate(I)V
10359 @@ -897,7 +3091,7 @@
10361 invoke-virtual {p0, v0}, Landroid/media/MediaRecorder;->setAudioEncoder(I)V
10363 - goto :goto_27
10364 + goto :goto_2a
10365 .end method
10367 .method public native setVideoEncoder(I)V
10368 @@ -911,7 +3105,11 @@
10369 .method public setVideoEncodingBitRate(I)V
10370 .registers 4
10372 - if-gtz p1, :cond_a
10373 + const/4 v0, 0x1
10375 + iput v0, p0, Landroid/media/MediaRecorder;->ACTUAL_STATE:I
10377 + if-gtz p1, :cond_d
10379 new-instance v0, Ljava/lang/IllegalArgumentException;
10381 @@ -921,7 +3119,7 @@
10383 throw v0
10385 - :cond_a
10386 + :cond_d
10387 new-instance v0, Ljava/lang/StringBuilder;
10389 invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
10390 diff -Npruw stock-framework/smali/android/net/NetworkInfo.smali pdroid-framework/smali/android/net/NetworkInfo.smali
10391 --- stock-framework/smali/android/net/NetworkInfo.smali 2013-08-15 23:20:16.644304519 -0500
10392 +++ pdroid-framework/smali/android/net/NetworkInfo.smali 2013-08-15 23:20:07.548304788 -0500
10393 @@ -822,6 +822,14 @@
10394 throw v0
10395 .end method
10397 +.method public setState(Landroid/net/NetworkInfo$State;)V
10398 + .registers 2
10400 + iput-object p1, p0, Landroid/net/NetworkInfo;->mState:Landroid/net/NetworkInfo$State;
10402 + return-void
10403 +.end method
10405 .method setSubtype(ILjava/lang/String;)V
10406 .registers 4
10408 diff -Npruw stock-framework/smali/android/net/wifi/WifiInfo.smali pdroid-framework/smali/android/net/wifi/WifiInfo.smali
10409 --- stock-framework/smali/android/net/wifi/WifiInfo.smali 2013-08-15 23:20:16.724304517 -0500
10410 +++ pdroid-framework/smali/android/net/wifi/WifiInfo.smali 2013-08-15 23:20:07.624304786 -0500
10411 @@ -265,6 +265,44 @@
10412 return-void
10413 .end method
10415 +.method public constructor <init>(Z)V
10416 + .registers 4
10418 + const/4 v1, -0x1
10420 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
10422 + const-string v0, ""
10424 + invoke-static {v0}, Landroid/net/wifi/WifiSsid;->createFromAsciiEncoded(Ljava/lang/String;)Landroid/net/wifi/WifiSsid;
10426 + move-result-object v0
10428 + iput-object v0, p0, Landroid/net/wifi/WifiInfo;->mWifiSsid:Landroid/net/wifi/WifiSsid;
10430 + const-string v0, ""
10432 + iput-object v0, p0, Landroid/net/wifi/WifiInfo;->mBSSID:Ljava/lang/String;
10434 + iput v1, p0, Landroid/net/wifi/WifiInfo;->mNetworkId:I
10436 + sget-object v0, Landroid/net/wifi/SupplicantState;->UNINITIALIZED:Landroid/net/wifi/SupplicantState;
10438 + iput-object v0, p0, Landroid/net/wifi/WifiInfo;->mSupplicantState:Landroid/net/wifi/SupplicantState;
10440 + const/16 v0, -0x270f
10442 + iput v0, p0, Landroid/net/wifi/WifiInfo;->mRssi:I
10444 + iput v1, p0, Landroid/net/wifi/WifiInfo;->mLinkSpeed:I
10446 + const/4 v0, 0x0
10448 + iput-boolean v0, p0, Landroid/net/wifi/WifiInfo;->mHiddenSSID:Z
10450 + return-void
10451 +.end method
10453 .method static synthetic access$002(Landroid/net/wifi/WifiInfo;Landroid/net/wifi/WifiSsid;)Landroid/net/wifi/WifiSsid;
10454 .registers 2
10456 diff -Npruw stock-framework/smali/android/net/wifi/WifiStateMachine.smali pdroid-framework/smali/android/net/wifi/WifiStateMachine.smali
10457 --- stock-framework/smali/android/net/wifi/WifiStateMachine.smali 2013-08-15 23:20:16.760304516 -0500
10458 +++ pdroid-framework/smali/android/net/wifi/WifiStateMachine.smali 2013-08-15 23:20:07.664304785 -0500
10459 @@ -6050,7 +6050,7 @@
10461 invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
10463 - const-string v1, "mLinkProperties "
10464 + const-string/jumbo v1, "mLinkProperties "
10466 invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
10468 diff -Npruw stock-framework/smali/android/net/wifi/WifiWatchdogStateMachine.smali pdroid-framework/smali/android/net/wifi/WifiWatchdogStateMachine.smali
10469 --- stock-framework/smali/android/net/wifi/WifiWatchdogStateMachine.smali 2013-08-15 23:20:16.772304516 -0500
10470 +++ pdroid-framework/smali/android/net/wifi/WifiWatchdogStateMachine.smali 2013-08-15 23:20:07.672304784 -0500
10471 @@ -1684,7 +1684,7 @@
10473 invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
10475 - const-string v1, "mLinkProperties: ["
10476 + const-string/jumbo v1, "mLinkProperties: ["
10478 invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
10480 diff -Npruw stock-framework/smali/android/os/SystemProperties.smali pdroid-framework/smali/android/os/SystemProperties.smali
10481 --- stock-framework/smali/android/os/SystemProperties.smali 2013-08-15 23:20:16.952304510 -0500
10482 +++ pdroid-framework/smali/android/os/SystemProperties.smali 2013-08-15 23:20:07.860304779 -0500
10483 @@ -4,12 +4,28 @@
10486 # static fields
10487 +.field private static final GOT_ERROR:I = -0x3
10489 +.field private static final IS_ALLOWED:I = -0x1
10491 +.field private static final IS_NOT_ALLOWED:I = -0x2
10493 +.field private static final PRIVACY_TAG:Ljava/lang/String; = "SystemProperties"
10495 .field public static final PROP_NAME_MAX:I = 0x1f
10497 .field public static final PROP_VALUE_MAX:I = 0x5b
10499 .field public static final QCOM_HARDWARE:Z
10501 +.field private static context:Landroid/content/Context;
10503 +.field private static mPm:Landroid/content/pm/IPackageManager;
10505 +.field private static pSetMan:Landroid/privacy/PrivacySettingsManager;
10507 +.field private static privacyMode:Z
10509 .field private static final sChangeCallbacks:Ljava/util/ArrayList;
10510 .annotation system Ldalvik/annotation/Signature;
10511 value = {
10512 @@ -26,10 +42,10 @@
10513 .method static constructor <clinit>()V
10514 .registers 2
10516 - const-string v0, "com.qc.hardware"
10518 const/4 v1, 0x0
10520 + const-string v0, "com.qc.hardware"
10522 invoke-static {v0, v1}, Landroid/os/SystemProperties;->native_get_boolean(Ljava/lang/String;Z)Z
10524 move-result v0
10525 @@ -42,6 +58,8 @@
10527 sput-object v0, Landroid/os/SystemProperties;->sChangeCallbacks:Ljava/util/ArrayList;
10529 + sput-boolean v1, Landroid/os/SystemProperties;->privacyMode:Z
10531 return-void
10532 .end method
10534 @@ -154,6 +172,205 @@
10535 throw v2
10536 .end method
10538 +.method private static checkIfPackagesAllowed()I
10539 + .registers 8
10541 + const/4 v5, -0x3
10543 + :try_start_1
10544 + sget-object v6, Landroid/os/SystemProperties;->pSetMan:Landroid/privacy/PrivacySettingsManager;
10546 + if-eqz v6, :cond_41
10548 + const/4 v2, 0x0
10550 + invoke-static {}, Landroid/os/SystemProperties;->getPackageName()[Ljava/lang/String;
10552 + move-result-object v3
10554 + invoke-static {}, Landroid/os/Process;->myUid()I
10556 + move-result v4
10558 + if-eqz v3, :cond_2c
10560 + const/4 v1, 0x0
10562 + :goto_11
10563 + array-length v6, v3
10565 + if-ge v1, v6, :cond_2a
10567 + sget-object v6, Landroid/os/SystemProperties;->pSetMan:Landroid/privacy/PrivacySettingsManager;
10569 + aget-object v7, v3, v1
10571 + invoke-virtual {v6, v7, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
10573 + move-result-object v2
10575 + if-eqz v2, :cond_26
10577 + invoke-virtual {v2}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
10579 + move-result v6
10581 + if-eqz v6, :cond_26
10583 + const/4 v5, -0x2
10585 + :goto_25
10586 + return v5
10588 + :cond_26
10589 + const/4 v2, 0x0
10591 + add-int/lit8 v1, v1, 0x1
10593 + goto :goto_11
10595 + :cond_2a
10596 + const/4 v5, -0x1
10598 + goto :goto_25
10600 + :cond_2c
10601 + const-string v6, "SystemProperties"
10603 + const-string/jumbo v7, "return GOT_ERROR, because package_names are NULL"
10605 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
10606 + :try_end_34
10607 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_34} :catch_35
10609 + goto :goto_25
10611 + :catch_35
10612 + move-exception v0
10614 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
10616 + const-string v6, "SystemProperties"
10618 + const-string v7, "Got exception in checkIfPackagesAllowed"
10620 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
10622 + goto :goto_25
10624 + :cond_41
10625 + :try_start_41
10626 + const-string v6, "SystemProperties"
10628 + const-string/jumbo v7, "return GOT_ERROR, because pSetMan is NULL"
10630 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
10631 + :try_end_49
10632 + .catch Ljava/lang/Exception; {:try_start_41 .. :try_end_49} :catch_35
10634 + goto :goto_25
10635 +.end method
10637 +.method private static dataAccess(Z)V
10638 + .registers 6
10640 + invoke-static {}, Landroid/os/SystemProperties;->getPackageName()[Ljava/lang/String;
10642 + move-result-object v1
10644 + if-eqz p0, :cond_2f
10646 + if-eqz v1, :cond_2f
10648 + const/4 v0, 0x0
10650 + :goto_9
10651 + array-length v2, v1
10653 + if-ge v0, v2, :cond_58
10655 + const-string v2, "SystemProperties"
10657 + new-instance v3, Ljava/lang/StringBuilder;
10659 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
10661 + const-string v4, "Allowed Package: -"
10663 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
10665 + move-result-object v3
10667 + aget-object v4, v1, v0
10669 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
10671 + move-result-object v3
10673 + const-string v4, "- accessing networkinfo."
10675 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
10677 + move-result-object v3
10679 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
10681 + move-result-object v3
10683 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
10685 + add-int/lit8 v0, v0, 0x1
10687 + goto :goto_9
10689 + :cond_2f
10690 + if-eqz v1, :cond_58
10692 + const/4 v0, 0x0
10694 + :goto_32
10695 + array-length v2, v1
10697 + if-ge v0, v2, :cond_58
10699 + const-string v2, "SystemProperties"
10701 + new-instance v3, Ljava/lang/StringBuilder;
10703 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
10705 + const-string v4, "Blocked Package: -"
10707 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
10709 + move-result-object v3
10711 + aget-object v4, v1, v0
10713 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
10715 + move-result-object v3
10717 + const-string v4, "- accessing networkinfo."
10719 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
10721 + move-result-object v3
10723 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
10725 + move-result-object v3
10727 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
10729 + add-int/lit8 v0, v0, 0x1
10731 + goto :goto_32
10733 + :cond_58
10734 + return-void
10735 +.end method
10737 .method public static get(Ljava/lang/String;)Ljava/lang/String;
10738 .registers 3
10740 @@ -174,11 +391,53 @@
10741 throw v0
10743 :cond_10
10744 + const-string v0, "gsm.operator.alpha"
10746 + invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
10748 + move-result v0
10750 + if-nez v0, :cond_20
10752 + const-string v0, "gsm.operator.numeric"
10754 + invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
10756 + move-result v0
10758 + if-eqz v0, :cond_35
10760 + :cond_20
10761 + invoke-static {}, Landroid/os/SystemProperties;->initiate()V
10763 + invoke-static {}, Landroid/os/SystemProperties;->checkIfPackagesAllowed()I
10765 + move-result v0
10767 + const/4 v1, -0x2
10769 + if-ne v0, v1, :cond_31
10771 + const/4 v0, 0x0
10773 + invoke-static {v0}, Landroid/os/SystemProperties;->dataAccess(Z)V
10775 + const-string v0, ""
10777 + :goto_30
10778 + return-object v0
10780 + :cond_31
10781 + const/4 v0, 0x1
10783 + invoke-static {v0}, Landroid/os/SystemProperties;->dataAccess(Z)V
10785 + :cond_35
10786 invoke-static {p0}, Landroid/os/SystemProperties;->native_get(Ljava/lang/String;)Ljava/lang/String;
10788 move-result-object v0
10790 - return-object v0
10791 + goto :goto_30
10792 .end method
10794 .method public static get(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
10795 @@ -201,11 +460,53 @@
10796 throw v0
10798 :cond_10
10799 + const-string v0, "gsm.operator.alpha"
10801 + invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
10803 + move-result v0
10805 + if-nez v0, :cond_20
10807 + const-string v0, "gsm.operator.numeric"
10809 + invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
10811 + move-result v0
10813 + if-eqz v0, :cond_35
10815 + :cond_20
10816 + invoke-static {}, Landroid/os/SystemProperties;->initiate()V
10818 + invoke-static {}, Landroid/os/SystemProperties;->checkIfPackagesAllowed()I
10820 + move-result v0
10822 + const/4 v1, -0x2
10824 + if-ne v0, v1, :cond_31
10826 + const/4 v0, 0x0
10828 + invoke-static {v0}, Landroid/os/SystemProperties;->dataAccess(Z)V
10830 + const-string v0, ""
10832 + :goto_30
10833 + return-object v0
10835 + :cond_31
10836 + const/4 v0, 0x1
10838 + invoke-static {v0}, Landroid/os/SystemProperties;->dataAccess(Z)V
10840 + :cond_35
10841 invoke-static {p0, p1}, Landroid/os/SystemProperties;->native_get(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
10843 move-result-object v0
10845 - return-object v0
10846 + goto :goto_30
10847 .end method
10849 .method public static getBoolean(Ljava/lang/String;Z)Z
10850 @@ -388,6 +689,135 @@
10851 goto :goto_2c
10852 .end method
10854 +.method private static getPackageName()[Ljava/lang/String;
10855 + .registers 5
10857 + :try_start_0
10858 + sget-object v3, Landroid/os/SystemProperties;->mPm:Landroid/content/pm/IPackageManager;
10860 + if-eqz v3, :cond_f
10862 + invoke-static {}, Landroid/os/Process;->myUid()I
10864 + move-result v2
10866 + sget-object v3, Landroid/os/SystemProperties;->mPm:Landroid/content/pm/IPackageManager;
10868 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
10870 + move-result-object v1
10872 + :goto_e
10873 + return-object v1
10875 + :cond_f
10876 + const-string/jumbo v3, "package"
10878 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
10880 + move-result-object v3
10882 + invoke-static {v3}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
10884 + move-result-object v3
10886 + sput-object v3, Landroid/os/SystemProperties;->mPm:Landroid/content/pm/IPackageManager;
10888 + invoke-static {}, Landroid/os/Process;->myUid()I
10890 + move-result v2
10892 + sget-object v3, Landroid/os/SystemProperties;->mPm:Landroid/content/pm/IPackageManager;
10894 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
10895 + :try_end_25
10896 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_25} :catch_27
10898 + move-result-object v1
10900 + goto :goto_e
10902 + :catch_27
10903 + move-exception v0
10905 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
10907 + const-string v3, "SystemProperties"
10909 + const-string/jumbo v4, "something went wrong with getting package name"
10911 + invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
10913 + const/4 v1, 0x0
10915 + goto :goto_e
10916 +.end method
10918 +.method private static initiate()V
10919 + .registers 4
10921 + const/4 v1, 0x0
10923 + :try_start_1
10924 + sput-object v1, Landroid/os/SystemProperties;->context:Landroid/content/Context;
10926 + new-instance v1, Landroid/privacy/PrivacySettingsManager;
10928 + sget-object v2, Landroid/os/SystemProperties;->context:Landroid/content/Context;
10930 + const-string/jumbo v3, "privacy"
10932 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
10934 + move-result-object v3
10936 + invoke-static {v3}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
10938 + move-result-object v3
10940 + invoke-direct {v1, v2, v3}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
10942 + sput-object v1, Landroid/os/SystemProperties;->pSetMan:Landroid/privacy/PrivacySettingsManager;
10944 + const-string/jumbo v1, "package"
10946 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
10948 + move-result-object v1
10950 + invoke-static {v1}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
10952 + move-result-object v1
10954 + sput-object v1, Landroid/os/SystemProperties;->mPm:Landroid/content/pm/IPackageManager;
10956 + const/4 v1, 0x1
10958 + sput-boolean v1, Landroid/os/SystemProperties;->privacyMode:Z
10959 + :try_end_27
10960 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_27} :catch_28
10962 + :goto_27
10963 + return-void
10965 + :catch_28
10966 + move-exception v0
10968 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
10970 + const-string v1, "SystemProperties"
10972 + const-string v2, "Something went wrong with initalize variables"
10974 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
10976 + const/4 v1, 0x0
10978 + sput-boolean v1, Landroid/os/SystemProperties;->privacyMode:Z
10980 + goto :goto_27
10981 +.end method
10983 .method private static native native_add_change_callback()V
10984 .end method
10986 diff -Npruw stock-framework/smali/android/privacy/IPrivacySettingsManager.smali pdroid-framework/smali/android/privacy/IPrivacySettingsManager.smali
10987 --- stock-framework/smali/android/privacy/IPrivacySettingsManager.smali 1969-12-31 18:00:00.000000000 -0600
10988 +++ pdroid-framework/smali/android/privacy/IPrivacySettingsManager.smali 2013-08-15 23:20:07.944304776 -0500
10989 @@ -0,0 +1,96 @@
10990 +.class public interface abstract Landroid/privacy/IPrivacySettingsManager;
10991 +.super Ljava/lang/Object;
10992 +.source "IPrivacySettingsManager.java"
10994 +# interfaces
10995 +.implements Landroid/os/IInterface;
10998 +# annotations
10999 +.annotation system Ldalvik/annotation/MemberClasses;
11000 + value = {
11001 + Landroid/privacy/IPrivacySettingsManager$Stub;
11003 +.end annotation
11006 +# virtual methods
11007 +.method public abstract addObserver(Ljava/lang/String;)V
11008 + .annotation system Ldalvik/annotation/Throws;
11009 + value = {
11010 + Landroid/os/RemoteException;
11012 + .end annotation
11013 +.end method
11015 +.method public abstract deleteSettings(Ljava/lang/String;)Z
11016 + .annotation system Ldalvik/annotation/Throws;
11017 + value = {
11018 + Landroid/os/RemoteException;
11020 + .end annotation
11021 +.end method
11023 +.method public abstract getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
11024 + .annotation system Ldalvik/annotation/Throws;
11025 + value = {
11026 + Landroid/os/RemoteException;
11028 + .end annotation
11029 +.end method
11031 +.method public abstract notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
11032 + .annotation system Ldalvik/annotation/Throws;
11033 + value = {
11034 + Landroid/os/RemoteException;
11036 + .end annotation
11037 +.end method
11039 +.method public abstract purgeSettings()Z
11040 + .annotation system Ldalvik/annotation/Throws;
11041 + value = {
11042 + Landroid/os/RemoteException;
11044 + .end annotation
11045 +.end method
11047 +.method public abstract registerObservers()V
11048 + .annotation system Ldalvik/annotation/Throws;
11049 + value = {
11050 + Landroid/os/RemoteException;
11052 + .end annotation
11053 +.end method
11055 +.method public abstract saveSettings(Landroid/privacy/PrivacySettings;)Z
11056 + .annotation system Ldalvik/annotation/Throws;
11057 + value = {
11058 + Landroid/os/RemoteException;
11060 + .end annotation
11061 +.end method
11063 +.method public abstract setBootCompleted()V
11064 + .annotation system Ldalvik/annotation/Throws;
11065 + value = {
11066 + Landroid/os/RemoteException;
11068 + .end annotation
11069 +.end method
11071 +.method public abstract setEnabled(Z)Z
11072 + .annotation system Ldalvik/annotation/Throws;
11073 + value = {
11074 + Landroid/os/RemoteException;
11076 + .end annotation
11077 +.end method
11079 +.method public abstract setNotificationsEnabled(Z)Z
11080 + .annotation system Ldalvik/annotation/Throws;
11081 + value = {
11082 + Landroid/os/RemoteException;
11084 + .end annotation
11085 +.end method
11086 diff -Npruw stock-framework/smali/android/privacy/IPrivacySettingsManager$Stub$Proxy.smali pdroid-framework/smali/android/privacy/IPrivacySettingsManager$Stub$Proxy.smali
11087 --- stock-framework/smali/android/privacy/IPrivacySettingsManager$Stub$Proxy.smali 1969-12-31 18:00:00.000000000 -0600
11088 +++ pdroid-framework/smali/android/privacy/IPrivacySettingsManager$Stub$Proxy.smali 2013-08-15 23:20:07.944304776 -0500
11089 @@ -0,0 +1,690 @@
11090 +.class Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;
11091 +.super Ljava/lang/Object;
11092 +.source "IPrivacySettingsManager.java"
11094 +# interfaces
11095 +.implements Landroid/privacy/IPrivacySettingsManager;
11098 +# annotations
11099 +.annotation system Ldalvik/annotation/EnclosingClass;
11100 + value = Landroid/privacy/IPrivacySettingsManager$Stub;
11101 +.end annotation
11103 +.annotation system Ldalvik/annotation/InnerClass;
11104 + accessFlags = 0xa
11105 + name = "Proxy"
11106 +.end annotation
11109 +# instance fields
11110 +.field private mRemote:Landroid/os/IBinder;
11113 +# direct methods
11114 +.method constructor <init>(Landroid/os/IBinder;)V
11115 + .registers 2
11117 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
11119 + iput-object p1, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
11121 + return-void
11122 +.end method
11125 +# virtual methods
11126 +.method public addObserver(Ljava/lang/String;)V
11127 + .registers 7
11128 + .annotation system Ldalvik/annotation/Throws;
11129 + value = {
11130 + Landroid/os/RemoteException;
11132 + .end annotation
11134 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
11136 + move-result-object v0
11138 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
11140 + move-result-object v1
11142 + :try_start_8
11143 + const-string v2, "android.privacy.IPrivacySettingsManager"
11145 + invoke-virtual {v0, v2}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
11147 + invoke-virtual {v0, p1}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
11149 + iget-object v2, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
11151 + const/4 v3, 0x6
11153 + const/4 v4, 0x0
11155 + invoke-interface {v2, v3, v0, v1, v4}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
11157 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
11158 + :try_end_1a
11159 + .catchall {:try_start_8 .. :try_end_1a} :catchall_21
11161 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
11163 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
11165 + return-void
11167 + :catchall_21
11168 + move-exception v2
11170 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
11172 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
11174 + throw v2
11175 +.end method
11177 +.method public asBinder()Landroid/os/IBinder;
11178 + .registers 2
11180 + iget-object v0, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
11182 + return-object v0
11183 +.end method
11185 +.method public deleteSettings(Ljava/lang/String;)Z
11186 + .registers 8
11187 + .annotation system Ldalvik/annotation/Throws;
11188 + value = {
11189 + Landroid/os/RemoteException;
11191 + .end annotation
11193 + const/4 v2, 0x0
11195 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
11197 + move-result-object v0
11199 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
11201 + move-result-object v1
11203 + :try_start_9
11204 + const-string v3, "android.privacy.IPrivacySettingsManager"
11206 + invoke-virtual {v0, v3}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
11208 + invoke-virtual {v0, p1}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
11210 + iget-object v3, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
11212 + const/4 v4, 0x3
11214 + const/4 v5, 0x0
11216 + invoke-interface {v3, v4, v0, v1, v5}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
11218 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
11220 + invoke-virtual {v1}, Landroid/os/Parcel;->readInt()I
11221 + :try_end_1e
11222 + .catchall {:try_start_9 .. :try_end_1e} :catchall_29
11224 + move-result v3
11226 + if-eqz v3, :cond_22
11228 + const/4 v2, 0x1
11230 + :cond_22
11231 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
11233 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
11235 + return v2
11237 + :catchall_29
11238 + move-exception v3
11240 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
11242 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
11244 + throw v3
11245 +.end method
11247 +.method public getInterfaceDescriptor()Ljava/lang/String;
11248 + .registers 2
11250 + const-string v0, "android.privacy.IPrivacySettingsManager"
11252 + return-object v0
11253 +.end method
11255 +.method public getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
11256 + .registers 8
11257 + .annotation system Ldalvik/annotation/Throws;
11258 + value = {
11259 + Landroid/os/RemoteException;
11261 + .end annotation
11263 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
11265 + move-result-object v0
11267 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
11269 + move-result-object v1
11271 + :try_start_8
11272 + const-string v3, "android.privacy.IPrivacySettingsManager"
11274 + invoke-virtual {v0, v3}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
11276 + invoke-virtual {v0, p1}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
11278 + iget-object v3, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
11280 + const/4 v4, 0x1
11282 + const/4 v5, 0x0
11284 + invoke-interface {v3, v4, v0, v1, v5}, 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
11290 + move-result v3
11292 + if-eqz v3, :cond_2f
11294 + sget-object v3, Landroid/privacy/PrivacySettings;->CREATOR:Landroid/os/Parcelable$Creator;
11296 + invoke-interface {v3, v1}, Landroid/os/Parcelable$Creator;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
11298 + move-result-object v2
11300 + check-cast v2, Landroid/privacy/PrivacySettings;
11301 + :try_end_28
11302 + .catchall {:try_start_8 .. :try_end_28} :catchall_31
11304 + :goto_28
11305 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
11307 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
11309 + return-object v2
11311 + :cond_2f
11312 + const/4 v2, 0x0
11314 + goto :goto_28
11316 + :catchall_31
11317 + move-exception v3
11319 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
11321 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
11323 + throw v3
11324 +.end method
11326 +.method public notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
11327 + .registers 10
11328 + .annotation system Ldalvik/annotation/Throws;
11329 + value = {
11330 + Landroid/os/RemoteException;
11332 + .end annotation
11334 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
11336 + move-result-object v0
11338 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
11340 + move-result-object v1
11342 + :try_start_8
11343 + const-string v2, "android.privacy.IPrivacySettingsManager"
11345 + invoke-virtual {v0, v2}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
11347 + invoke-virtual {v0, p1}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
11349 + invoke-virtual {v0, p2}, Landroid/os/Parcel;->writeByte(B)V
11351 + invoke-virtual {v0, p3}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
11353 + invoke-virtual {v0, p4}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
11355 + iget-object v2, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
11357 + const/4 v3, 0x4
11359 + const/4 v4, 0x0
11361 + invoke-interface {v2, v3, v0, v1, v4}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
11363 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
11364 + :try_end_23
11365 + .catchall {:try_start_8 .. :try_end_23} :catchall_2a
11367 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
11369 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
11371 + return-void
11373 + :catchall_2a
11374 + move-exception v2
11376 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
11378 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
11380 + throw v2
11381 +.end method
11383 +.method public purgeSettings()Z
11384 + .registers 7
11385 + .annotation system Ldalvik/annotation/Throws;
11386 + value = {
11387 + Landroid/os/RemoteException;
11389 + .end annotation
11391 + const/4 v2, 0x0
11393 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
11395 + move-result-object v0
11397 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
11399 + move-result-object v1
11401 + :try_start_9
11402 + const-string v3, "android.privacy.IPrivacySettingsManager"
11404 + invoke-virtual {v0, v3}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
11406 + iget-object v3, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
11408 + const/4 v4, 0x7
11410 + const/4 v5, 0x0
11412 + invoke-interface {v3, v4, v0, v1, v5}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
11414 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
11416 + invoke-virtual {v1}, Landroid/os/Parcel;->readInt()I
11417 + :try_end_1b
11418 + .catchall {:try_start_9 .. :try_end_1b} :catchall_26
11420 + move-result v3
11422 + if-eqz v3, :cond_1f
11424 + const/4 v2, 0x1
11426 + :cond_1f
11427 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
11429 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
11431 + return v2
11433 + :catchall_26
11434 + move-exception v3
11436 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
11438 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
11440 + throw v3
11441 +.end method
11443 +.method public registerObservers()V
11444 + .registers 6
11445 + .annotation system Ldalvik/annotation/Throws;
11446 + value = {
11447 + Landroid/os/RemoteException;
11449 + .end annotation
11451 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
11453 + move-result-object v0
11455 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
11457 + move-result-object v1
11459 + :try_start_8
11460 + const-string v2, "android.privacy.IPrivacySettingsManager"
11462 + invoke-virtual {v0, v2}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
11464 + iget-object v2, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
11466 + const/4 v3, 0x5
11468 + const/4 v4, 0x0
11470 + invoke-interface {v2, v3, v0, v1, v4}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
11472 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
11473 + :try_end_17
11474 + .catchall {:try_start_8 .. :try_end_17} :catchall_1e
11476 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
11478 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
11480 + return-void
11482 + :catchall_1e
11483 + move-exception v2
11485 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
11487 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
11489 + throw v2
11490 +.end method
11492 +.method public saveSettings(Landroid/privacy/PrivacySettings;)Z
11493 + .registers 9
11494 + .annotation system Ldalvik/annotation/Throws;
11495 + value = {
11496 + Landroid/os/RemoteException;
11498 + .end annotation
11500 + const/4 v2, 0x1
11502 + const/4 v3, 0x0
11504 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
11506 + move-result-object v0
11508 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
11510 + move-result-object v1
11512 + :try_start_a
11513 + const-string v4, "android.privacy.IPrivacySettingsManager"
11515 + invoke-virtual {v0, v4}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
11517 + if-eqz p1, :cond_30
11519 + const/4 v4, 0x1
11521 + invoke-virtual {v0, v4}, Landroid/os/Parcel;->writeInt(I)V
11523 + const/4 v4, 0x0
11525 + invoke-virtual {p1, v0, v4}, Landroid/privacy/PrivacySettings;->writeToParcel(Landroid/os/Parcel;I)V
11527 + :goto_19
11528 + iget-object v4, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
11530 + const/4 v5, 0x2
11532 + const/4 v6, 0x0
11534 + invoke-interface {v4, v5, v0, v1, v6}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
11536 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
11538 + invoke-virtual {v1}, Landroid/os/Parcel;->readInt()I
11539 + :try_end_26
11540 + .catchall {:try_start_a .. :try_end_26} :catchall_35
11542 + move-result v4
11544 + if-eqz v4, :cond_3d
11546 + :goto_29
11547 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
11549 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
11551 + return v2
11553 + :cond_30
11554 + const/4 v4, 0x0
11556 + :try_start_31
11557 + invoke-virtual {v0, v4}, Landroid/os/Parcel;->writeInt(I)V
11558 + :try_end_34
11559 + .catchall {:try_start_31 .. :try_end_34} :catchall_35
11561 + goto :goto_19
11563 + :catchall_35
11564 + move-exception v3
11566 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
11568 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
11570 + throw v3
11572 + :cond_3d
11573 + move v2, v3
11575 + goto :goto_29
11576 +.end method
11578 +.method public setBootCompleted()V
11579 + .registers 6
11580 + .annotation system Ldalvik/annotation/Throws;
11581 + value = {
11582 + Landroid/os/RemoteException;
11584 + .end annotation
11586 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
11588 + move-result-object v0
11590 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
11592 + move-result-object v1
11594 + :try_start_8
11595 + const-string v2, "android.privacy.IPrivacySettingsManager"
11597 + invoke-virtual {v0, v2}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
11599 + iget-object v2, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
11601 + const/16 v3, 0xa
11603 + const/4 v4, 0x0
11605 + invoke-interface {v2, v3, v0, v1, v4}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
11607 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
11608 + :try_end_18
11609 + .catchall {:try_start_8 .. :try_end_18} :catchall_1f
11611 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
11613 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
11615 + return-void
11617 + :catchall_1f
11618 + move-exception v2
11620 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
11622 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
11624 + throw v2
11625 +.end method
11627 +.method public setEnabled(Z)Z
11628 + .registers 9
11629 + .annotation system Ldalvik/annotation/Throws;
11630 + value = {
11631 + Landroid/os/RemoteException;
11633 + .end annotation
11635 + const/4 v2, 0x1
11637 + const/4 v3, 0x0
11639 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
11641 + move-result-object v0
11643 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
11645 + move-result-object v1
11647 + :try_start_a
11648 + const-string v4, "android.privacy.IPrivacySettingsManager"
11650 + invoke-virtual {v0, v4}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
11652 + if-eqz p1, :cond_2d
11654 + move v4, v2
11656 + :goto_12
11657 + invoke-virtual {v0, v4}, Landroid/os/Parcel;->writeInt(I)V
11659 + iget-object v4, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
11661 + const/16 v5, 0x8
11663 + const/4 v6, 0x0
11665 + invoke-interface {v4, v5, v0, v1, v6}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
11667 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
11669 + invoke-virtual {v1}, Landroid/os/Parcel;->readInt()I
11670 + :try_end_23
11671 + .catchall {:try_start_a .. :try_end_23} :catchall_31
11673 + move-result v4
11675 + if-eqz v4, :cond_2f
11677 + :goto_26
11678 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
11680 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
11682 + return v2
11684 + :cond_2d
11685 + move v4, v3
11687 + goto :goto_12
11689 + :cond_2f
11690 + move v2, v3
11692 + goto :goto_26
11694 + :catchall_31
11695 + move-exception v3
11697 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
11699 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
11701 + throw v3
11702 +.end method
11704 +.method public setNotificationsEnabled(Z)Z
11705 + .registers 9
11706 + .annotation system Ldalvik/annotation/Throws;
11707 + value = {
11708 + Landroid/os/RemoteException;
11710 + .end annotation
11712 + const/4 v2, 0x1
11714 + const/4 v3, 0x0
11716 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
11718 + move-result-object v0
11720 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
11722 + move-result-object v1
11724 + :try_start_a
11725 + const-string v4, "android.privacy.IPrivacySettingsManager"
11727 + invoke-virtual {v0, v4}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
11729 + if-eqz p1, :cond_2d
11731 + move v4, v2
11733 + :goto_12
11734 + invoke-virtual {v0, v4}, Landroid/os/Parcel;->writeInt(I)V
11736 + iget-object v4, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
11738 + const/16 v5, 0x9
11740 + const/4 v6, 0x0
11742 + invoke-interface {v4, v5, v0, v1, v6}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
11744 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
11746 + invoke-virtual {v1}, Landroid/os/Parcel;->readInt()I
11747 + :try_end_23
11748 + .catchall {:try_start_a .. :try_end_23} :catchall_31
11750 + move-result v4
11752 + if-eqz v4, :cond_2f
11754 + :goto_26
11755 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
11757 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
11759 + return v2
11761 + :cond_2d
11762 + move v4, v3
11764 + goto :goto_12
11766 + :cond_2f
11767 + move v2, v3
11769 + goto :goto_26
11771 + :catchall_31
11772 + move-exception v3
11774 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
11776 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
11778 + throw v3
11779 +.end method
11780 diff -Npruw stock-framework/smali/android/privacy/IPrivacySettingsManager$Stub.smali pdroid-framework/smali/android/privacy/IPrivacySettingsManager$Stub.smali
11781 --- stock-framework/smali/android/privacy/IPrivacySettingsManager$Stub.smali 1969-12-31 18:00:00.000000000 -0600
11782 +++ pdroid-framework/smali/android/privacy/IPrivacySettingsManager$Stub.smali 2013-08-15 23:20:07.944304776 -0500
11783 @@ -0,0 +1,392 @@
11784 +.class public abstract Landroid/privacy/IPrivacySettingsManager$Stub;
11785 +.super Landroid/os/Binder;
11786 +.source "IPrivacySettingsManager.java"
11788 +# interfaces
11789 +.implements Landroid/privacy/IPrivacySettingsManager;
11792 +# annotations
11793 +.annotation system Ldalvik/annotation/EnclosingClass;
11794 + value = Landroid/privacy/IPrivacySettingsManager;
11795 +.end annotation
11797 +.annotation system Ldalvik/annotation/InnerClass;
11798 + accessFlags = 0x409
11799 + name = "Stub"
11800 +.end annotation
11802 +.annotation system Ldalvik/annotation/MemberClasses;
11803 + value = {
11804 + Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;
11806 +.end annotation
11809 +# static fields
11810 +.field private static final DESCRIPTOR:Ljava/lang/String; = "android.privacy.IPrivacySettingsManager"
11812 +.field static final TRANSACTION_addObserver:I = 0x6
11814 +.field static final TRANSACTION_deleteSettings:I = 0x3
11816 +.field static final TRANSACTION_getSettings:I = 0x1
11818 +.field static final TRANSACTION_notification:I = 0x4
11820 +.field static final TRANSACTION_purgeSettings:I = 0x7
11822 +.field static final TRANSACTION_registerObservers:I = 0x5
11824 +.field static final TRANSACTION_saveSettings:I = 0x2
11826 +.field static final TRANSACTION_setBootCompleted:I = 0xa
11828 +.field static final TRANSACTION_setEnabled:I = 0x8
11830 +.field static final TRANSACTION_setNotificationsEnabled:I = 0x9
11833 +# direct methods
11834 +.method public constructor <init>()V
11835 + .registers 2
11837 + invoke-direct {p0}, Landroid/os/Binder;-><init>()V
11839 + const-string v0, "android.privacy.IPrivacySettingsManager"
11841 + invoke-virtual {p0, p0, v0}, Landroid/privacy/IPrivacySettingsManager$Stub;->attachInterface(Landroid/os/IInterface;Ljava/lang/String;)V
11843 + return-void
11844 +.end method
11846 +.method public static asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
11847 + .registers 3
11849 + if-nez p0, :cond_4
11851 + const/4 v0, 0x0
11853 + :goto_3
11854 + return-object v0
11856 + :cond_4
11857 + const-string v1, "android.privacy.IPrivacySettingsManager"
11859 + invoke-interface {p0, v1}, Landroid/os/IBinder;->queryLocalInterface(Ljava/lang/String;)Landroid/os/IInterface;
11861 + move-result-object v0
11863 + if-eqz v0, :cond_13
11865 + instance-of v1, v0, Landroid/privacy/IPrivacySettingsManager;
11867 + if-eqz v1, :cond_13
11869 + check-cast v0, Landroid/privacy/IPrivacySettingsManager;
11871 + goto :goto_3
11873 + :cond_13
11874 + new-instance v0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;
11876 + invoke-direct {v0, p0}, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
11878 + goto :goto_3
11879 +.end method
11882 +# virtual methods
11883 +.method public asBinder()Landroid/os/IBinder;
11884 + .registers 1
11886 + return-object p0
11887 +.end method
11889 +.method public onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
11890 + .registers 13
11891 + .annotation system Ldalvik/annotation/Throws;
11892 + value = {
11893 + Landroid/os/RemoteException;
11895 + .end annotation
11897 + const/4 v5, 0x0
11899 + const/4 v6, 0x1
11901 + sparse-switch p1, :sswitch_data_fc
11903 + invoke-super {p0, p1, p2, p3, p4}, Landroid/os/Binder;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
11905 + move-result v6
11907 + :goto_9
11908 + return v6
11910 + :sswitch_a
11911 + const-string v5, "android.privacy.IPrivacySettingsManager"
11913 + invoke-virtual {p3, v5}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
11915 + goto :goto_9
11917 + :sswitch_10
11918 + const-string v7, "android.privacy.IPrivacySettingsManager"
11920 + invoke-virtual {p2, v7}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
11922 + invoke-virtual {p2}, Landroid/os/Parcel;->readString()Ljava/lang/String;
11924 + move-result-object v0
11926 + invoke-virtual {p0, v0}, Landroid/privacy/IPrivacySettingsManager$Stub;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
11928 + move-result-object v4
11930 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
11932 + if-eqz v4, :cond_29
11934 + invoke-virtual {p3, v6}, Landroid/os/Parcel;->writeInt(I)V
11936 + invoke-virtual {v4, p3, v6}, Landroid/privacy/PrivacySettings;->writeToParcel(Landroid/os/Parcel;I)V
11938 + goto :goto_9
11940 + :cond_29
11941 + invoke-virtual {p3, v5}, Landroid/os/Parcel;->writeInt(I)V
11943 + goto :goto_9
11945 + :sswitch_2d
11946 + const-string v7, "android.privacy.IPrivacySettingsManager"
11948 + invoke-virtual {p2, v7}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
11950 + invoke-virtual {p2}, Landroid/os/Parcel;->readInt()I
11952 + move-result v7
11954 + if-eqz v7, :cond_4e
11956 + sget-object v7, Landroid/privacy/PrivacySettings;->CREATOR:Landroid/os/Parcelable$Creator;
11958 + invoke-interface {v7, p2}, Landroid/os/Parcelable$Creator;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
11960 + move-result-object v0
11962 + check-cast v0, Landroid/privacy/PrivacySettings;
11964 + :goto_40
11965 + invoke-virtual {p0, v0}, Landroid/privacy/IPrivacySettingsManager$Stub;->saveSettings(Landroid/privacy/PrivacySettings;)Z
11967 + move-result v4
11969 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
11971 + if-eqz v4, :cond_4a
11973 + move v5, v6
11975 + :cond_4a
11976 + invoke-virtual {p3, v5}, Landroid/os/Parcel;->writeInt(I)V
11978 + goto :goto_9
11980 + :cond_4e
11981 + const/4 v0, 0x0
11983 + goto :goto_40
11985 + :sswitch_50
11986 + const-string v7, "android.privacy.IPrivacySettingsManager"
11988 + invoke-virtual {p2, v7}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
11990 + invoke-virtual {p2}, Landroid/os/Parcel;->readString()Ljava/lang/String;
11992 + move-result-object v0
11994 + invoke-virtual {p0, v0}, Landroid/privacy/IPrivacySettingsManager$Stub;->deleteSettings(Ljava/lang/String;)Z
11996 + move-result v4
11998 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
12000 + if-eqz v4, :cond_63
12002 + move v5, v6
12004 + :cond_63
12005 + invoke-virtual {p3, v5}, Landroid/os/Parcel;->writeInt(I)V
12007 + goto :goto_9
12009 + :sswitch_67
12010 + const-string v5, "android.privacy.IPrivacySettingsManager"
12012 + invoke-virtual {p2, v5}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
12014 + invoke-virtual {p2}, Landroid/os/Parcel;->readString()Ljava/lang/String;
12016 + move-result-object v0
12018 + invoke-virtual {p2}, Landroid/os/Parcel;->readByte()B
12020 + move-result v1
12022 + invoke-virtual {p2}, Landroid/os/Parcel;->readString()Ljava/lang/String;
12024 + move-result-object v2
12026 + invoke-virtual {p2}, Landroid/os/Parcel;->readString()Ljava/lang/String;
12028 + move-result-object v3
12030 + invoke-virtual {p0, v0, v1, v2, v3}, Landroid/privacy/IPrivacySettingsManager$Stub;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
12032 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
12034 + goto :goto_9
12036 + :sswitch_83
12037 + const-string v5, "android.privacy.IPrivacySettingsManager"
12039 + invoke-virtual {p2, v5}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
12041 + invoke-virtual {p0}, Landroid/privacy/IPrivacySettingsManager$Stub;->registerObservers()V
12043 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
12045 + goto/16 :goto_9
12047 + :sswitch_90
12048 + const-string v5, "android.privacy.IPrivacySettingsManager"
12050 + invoke-virtual {p2, v5}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
12052 + invoke-virtual {p2}, Landroid/os/Parcel;->readString()Ljava/lang/String;
12054 + move-result-object v0
12056 + invoke-virtual {p0, v0}, Landroid/privacy/IPrivacySettingsManager$Stub;->addObserver(Ljava/lang/String;)V
12058 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
12060 + goto/16 :goto_9
12062 + :sswitch_a1
12063 + const-string v7, "android.privacy.IPrivacySettingsManager"
12065 + invoke-virtual {p2, v7}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
12067 + invoke-virtual {p0}, Landroid/privacy/IPrivacySettingsManager$Stub;->purgeSettings()Z
12069 + move-result v4
12071 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
12073 + if-eqz v4, :cond_b0
12075 + move v5, v6
12077 + :cond_b0
12078 + invoke-virtual {p3, v5}, Landroid/os/Parcel;->writeInt(I)V
12080 + goto/16 :goto_9
12082 + :sswitch_b5
12083 + const-string v7, "android.privacy.IPrivacySettingsManager"
12085 + invoke-virtual {p2, v7}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
12087 + invoke-virtual {p2}, Landroid/os/Parcel;->readInt()I
12089 + move-result v7
12091 + if-eqz v7, :cond_d0
12093 + move v0, v6
12095 + :goto_c1
12096 + invoke-virtual {p0, v0}, Landroid/privacy/IPrivacySettingsManager$Stub;->setEnabled(Z)Z
12098 + move-result v4
12100 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
12102 + if-eqz v4, :cond_cb
12104 + move v5, v6
12106 + :cond_cb
12107 + invoke-virtual {p3, v5}, Landroid/os/Parcel;->writeInt(I)V
12109 + goto/16 :goto_9
12111 + :cond_d0
12112 + move v0, v5
12114 + goto :goto_c1
12116 + :sswitch_d2
12117 + const-string v7, "android.privacy.IPrivacySettingsManager"
12119 + invoke-virtual {p2, v7}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
12121 + invoke-virtual {p2}, Landroid/os/Parcel;->readInt()I
12123 + move-result v7
12125 + if-eqz v7, :cond_ed
12127 + move v0, v6
12129 + :goto_de
12130 + invoke-virtual {p0, v0}, Landroid/privacy/IPrivacySettingsManager$Stub;->setNotificationsEnabled(Z)Z
12132 + move-result v4
12134 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
12136 + if-eqz v4, :cond_e8
12138 + move v5, v6
12140 + :cond_e8
12141 + invoke-virtual {p3, v5}, Landroid/os/Parcel;->writeInt(I)V
12143 + goto/16 :goto_9
12145 + :cond_ed
12146 + move v0, v5
12148 + goto :goto_de
12150 + :sswitch_ef
12151 + const-string v5, "android.privacy.IPrivacySettingsManager"
12153 + invoke-virtual {p2, v5}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
12155 + invoke-virtual {p0}, Landroid/privacy/IPrivacySettingsManager$Stub;->setBootCompleted()V
12157 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
12159 + goto/16 :goto_9
12161 + :sswitch_data_fc
12162 + .sparse-switch
12163 + 0x1 -> :sswitch_10
12164 + 0x2 -> :sswitch_2d
12165 + 0x3 -> :sswitch_50
12166 + 0x4 -> :sswitch_67
12167 + 0x5 -> :sswitch_83
12168 + 0x6 -> :sswitch_90
12169 + 0x7 -> :sswitch_a1
12170 + 0x8 -> :sswitch_b5
12171 + 0x9 -> :sswitch_d2
12172 + 0xa -> :sswitch_ef
12173 + 0x5f4e5446 -> :sswitch_a
12174 + .end sparse-switch
12175 +.end method
12176 diff -Npruw stock-framework/smali/android/privacy/PrivacyFileObserver.smali pdroid-framework/smali/android/privacy/PrivacyFileObserver.smali
12177 --- stock-framework/smali/android/privacy/PrivacyFileObserver.smali 1969-12-31 18:00:00.000000000 -0600
12178 +++ pdroid-framework/smali/android/privacy/PrivacyFileObserver.smali 2013-08-15 23:20:07.944304776 -0500
12179 @@ -0,0 +1,272 @@
12180 +.class public final Landroid/privacy/PrivacyFileObserver;
12181 +.super Landroid/os/FileObserver;
12182 +.source "PrivacyFileObserver.java"
12185 +# static fields
12186 +.field public static final PACKAGE_PATH_INDEX:I = 0x3
12188 +.field public static final SETTINGS_TYPE_INDEX:I = 0x4
12190 +.field public static final TAG:Ljava/lang/String; = "PrivacyFileObserver"
12193 +# instance fields
12194 +.field public absolutePath:Ljava/lang/String;
12196 +.field public children:Ljava/util/HashMap;
12197 + .annotation system Ldalvik/annotation/Signature;
12198 + value = {
12199 + "Ljava/util/HashMap",
12200 + "<",
12201 + "Ljava/lang/String;",
12202 + "Landroid/privacy/PrivacyFileObserver;",
12203 + ">;"
12205 + .end annotation
12206 +.end field
12208 +.field private pSetManServ:Landroid/privacy/PrivacySettingsManagerService;
12211 +# direct methods
12212 +.method public constructor <init>(Ljava/lang/String;Landroid/privacy/PrivacySettingsManagerService;)V
12213 + .registers 12
12215 + const/16 v8, 0xfff
12217 + invoke-direct {p0, p1, v8}, Landroid/os/FileObserver;-><init>(Ljava/lang/String;I)V
12219 + iput-object p1, p0, Landroid/privacy/PrivacyFileObserver;->absolutePath:Ljava/lang/String;
12221 + iput-object p2, p0, Landroid/privacy/PrivacyFileObserver;->pSetManServ:Landroid/privacy/PrivacySettingsManagerService;
12223 + new-instance v8, Ljava/util/HashMap;
12225 + invoke-direct {v8}, Ljava/util/HashMap;-><init>()V
12227 + iput-object v8, p0, Landroid/privacy/PrivacyFileObserver;->children:Ljava/util/HashMap;
12229 + new-instance v7, Ljava/io/File;
12231 + iget-object v8, p0, Landroid/privacy/PrivacyFileObserver;->absolutePath:Ljava/lang/String;
12233 + invoke-direct {v7, v8}, Ljava/io/File;-><init>(Ljava/lang/String;)V
12235 + invoke-virtual {v7}, Ljava/io/File;->isDirectory()Z
12237 + move-result v8
12239 + if-eqz v8, :cond_42
12241 + invoke-virtual {v7}, Ljava/io/File;->listFiles()[Ljava/io/File;
12243 + move-result-object v6
12245 + move-object v0, v6
12247 + array-length v4, v0
12249 + const/4 v3, 0x0
12251 + :goto_24
12252 + if-ge v3, v4, :cond_42
12254 + aget-object v2, v0, v3
12256 + invoke-virtual {v2}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
12258 + move-result-object v5
12260 + new-instance v1, Landroid/privacy/PrivacyFileObserver;
12262 + invoke-direct {v1, v5, p2}, Landroid/privacy/PrivacyFileObserver;-><init>(Ljava/lang/String;Landroid/privacy/PrivacySettingsManagerService;)V
12264 + iget-object v8, p0, Landroid/privacy/PrivacyFileObserver;->children:Ljava/util/HashMap;
12266 + invoke-virtual {v8, v5, v1}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
12268 + invoke-virtual {v2}, Ljava/io/File;->isFile()Z
12270 + move-result v8
12272 + if-eqz v8, :cond_3f
12274 + invoke-virtual {v1}, Landroid/privacy/PrivacyFileObserver;->startWatching()V
12276 + :cond_3f
12277 + add-int/lit8 v3, v3, 0x1
12279 + goto :goto_24
12281 + :cond_42
12282 + return-void
12283 +.end method
12286 +# virtual methods
12287 +.method public addObserver(Ljava/lang/String;)V
12288 + .registers 6
12290 + new-instance v2, Ljava/lang/StringBuilder;
12292 + invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
12294 + iget-object v3, p0, Landroid/privacy/PrivacyFileObserver;->absolutePath:Ljava/lang/String;
12296 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
12298 + move-result-object v2
12300 + const-string v3, "/"
12302 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
12304 + move-result-object v2
12306 + invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
12308 + move-result-object v2
12310 + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
12312 + move-result-object v1
12314 + iget-object v2, p0, Landroid/privacy/PrivacyFileObserver;->children:Ljava/util/HashMap;
12316 + invoke-virtual {v2, v1}, Ljava/util/HashMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;
12318 + new-instance v0, Landroid/privacy/PrivacyFileObserver;
12320 + iget-object v2, p0, Landroid/privacy/PrivacyFileObserver;->pSetManServ:Landroid/privacy/PrivacySettingsManagerService;
12322 + invoke-direct {v0, v1, v2}, Landroid/privacy/PrivacyFileObserver;-><init>(Ljava/lang/String;Landroid/privacy/PrivacySettingsManagerService;)V
12324 + iget-object v2, p0, Landroid/privacy/PrivacyFileObserver;->children:Ljava/util/HashMap;
12326 + invoke-virtual {v2, v1, v0}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
12328 + return-void
12329 +.end method
12331 +.method public onEvent(ILjava/lang/String;)V
12332 + .registers 12
12334 + and-int/lit8 v5, p1, 0x1
12336 + if-eqz v5, :cond_48
12338 + new-instance v4, Ljava/util/StringTokenizer;
12340 + iget-object v5, p0, Landroid/privacy/PrivacyFileObserver;->absolutePath:Ljava/lang/String;
12342 + const-string v6, "/"
12344 + invoke-direct {v4, v5, v6}, Ljava/util/StringTokenizer;-><init>(Ljava/lang/String;Ljava/lang/String;)V
12346 + const/4 v0, 0x0
12348 + :goto_e
12349 + const/4 v5, 0x3
12351 + if-ge v0, v5, :cond_1d
12353 + invoke-virtual {v4}, Ljava/util/StringTokenizer;->hasMoreElements()Z
12355 + move-result v5
12357 + if-eqz v5, :cond_1d
12359 + invoke-virtual {v4}, Ljava/util/StringTokenizer;->nextToken()Ljava/lang/String;
12361 + add-int/lit8 v0, v0, 0x1
12363 + goto :goto_e
12365 + :cond_1d
12366 + invoke-virtual {v4}, Ljava/util/StringTokenizer;->nextToken()Ljava/lang/String;
12368 + move-result-object v2
12370 + const/4 v3, 0x0
12372 + invoke-virtual {v4}, Ljava/util/StringTokenizer;->hasMoreElements()Z
12374 + move-result v5
12376 + if-eqz v5, :cond_2c
12378 + invoke-virtual {v4}, Ljava/util/StringTokenizer;->nextToken()Ljava/lang/String;
12380 + move-result-object v3
12382 + :cond_2c
12383 + if-eqz v3, :cond_49
12385 + :try_start_2e
12386 + const-string v5, "ipTableProtectSetting"
12388 + invoke-virtual {v3, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
12390 + move-result v5
12392 + if-eqz v5, :cond_49
12394 + iget-object v5, p0, Landroid/privacy/PrivacyFileObserver;->pSetManServ:Landroid/privacy/PrivacySettingsManagerService;
12396 + invoke-virtual {v5, v2}, Landroid/privacy/PrivacySettingsManagerService;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
12398 + move-result-object v1
12400 + iget-object v5, p0, Landroid/privacy/PrivacyFileObserver;->pSetManServ:Landroid/privacy/PrivacySettingsManagerService;
12402 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getIpTableProtectSetting()B
12404 + move-result v6
12406 + const-string v7, "iptables"
12408 + const/4 v8, 0x0
12410 + invoke-virtual {v5, v2, v6, v7, v8}, Landroid/privacy/PrivacySettingsManagerService;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
12412 + :cond_48
12413 + :goto_48
12414 + return-void
12416 + :cond_49
12417 + iget-object v5, p0, Landroid/privacy/PrivacyFileObserver;->pSetManServ:Landroid/privacy/PrivacySettingsManagerService;
12419 + invoke-virtual {v5, v2}, Landroid/privacy/PrivacySettingsManagerService;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
12421 + move-result-object v1
12423 + iget-object v5, p0, Landroid/privacy/PrivacyFileObserver;->pSetManServ:Landroid/privacy/PrivacySettingsManagerService;
12425 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getSystemLogsSetting()B
12427 + move-result v6
12429 + const-string/jumbo v7, "systemLogs"
12431 + const/4 v8, 0x0
12433 + invoke-virtual {v5, v2, v6, v7, v8}, Landroid/privacy/PrivacySettingsManagerService;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
12434 + :try_end_5c
12435 + .catch Ljava/lang/Exception; {:try_start_2e .. :try_end_5c} :catch_5d
12437 + goto :goto_48
12439 + :catch_5d
12440 + move-exception v5
12442 + goto :goto_48
12443 +.end method
12445 +.method public startWatching()V
12446 + .registers 1
12448 + invoke-super {p0}, Landroid/os/FileObserver;->startWatching()V
12450 + return-void
12451 +.end method
12452 diff -Npruw stock-framework/smali/android/privacy/PrivacyPersistenceAdapter.smali pdroid-framework/smali/android/privacy/PrivacyPersistenceAdapter.smali
12453 --- stock-framework/smali/android/privacy/PrivacyPersistenceAdapter.smali 1969-12-31 18:00:00.000000000 -0600
12454 +++ pdroid-framework/smali/android/privacy/PrivacyPersistenceAdapter.smali 2013-08-15 23:20:07.948304776 -0500
12455 @@ -0,0 +1,5140 @@
12456 +.class public final Landroid/privacy/PrivacyPersistenceAdapter;
12457 +.super Ljava/lang/Object;
12458 +.source "PrivacyPersistenceAdapter.java"
12461 +# static fields
12462 +.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) );"
12464 +.field private static final CREATE_TABLE_MAP:Ljava/lang/String; = "CREATE TABLE IF NOT EXISTS map ( name TEXT PRIMARY KEY, value TEXT );"
12466 +.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);"
12468 +.field private static final DATABASE_FIELDS:[Ljava/lang/String; = null
12470 +.field private static final DATABASE_FILE:Ljava/lang/String; = "/data/system/privacy.db"
12472 +.field private static final DATABASE_VERSION:I = 0x4
12474 +.field private static final DEFAULT_CACHE_ENTRIES:I = 0x14
12476 +.field public static final DUMMY_UID:I = -0x1
12478 +.field private static final INSERT_ENABLED:Ljava/lang/String; = "INSERT OR REPLACE INTO map (name, value) VALUES (\"enabled\", \"1\");"
12480 +.field private static final INSERT_NOTIFICATIONS_ENABLED:Ljava/lang/String; = "INSERT OR REPLACE INTO map (name, value) VALUES (\"notifications_enabled\", \"1\");"
12482 +.field private static final INSERT_VERSION:Ljava/lang/String; = "INSERT OR REPLACE INTO map (name, value) VALUES (\"db_version\", 4);"
12484 +.field private static final LOG_CACHE:Z = false
12486 +.field private static final LOG_LOCKING:Z = false
12488 +.field private static final LOG_OPEN_AND_CLOSE:Z = false
12490 +.field private static final MINIMUM_CACHE_ENTRIES:I = 0x0
12492 +.field private static final RETRY_QUERY_COUNT:I = 0x5
12494 +.field public static final SETTINGS_DIRECTORY:Ljava/lang/String; = "/data/system/privacy"
12496 +.field public static final SETTING_DB_VERSION:Ljava/lang/String; = "db_version"
12498 +.field public static final SETTING_ENABLED:Ljava/lang/String; = "enabled"
12500 +.field public static final SETTING_NOTIFICATIONS_ENABLED:Ljava/lang/String; = "notifications_enabled"
12502 +.field private static final TABLE_ALLOWED_CONTACTS:Ljava/lang/String; = "allowed_contacts"
12504 +.field private static final TABLE_MAP:Ljava/lang/String; = "map"
12506 +.field private static final TABLE_SETTINGS:Ljava/lang/String; = "settings"
12508 +.field private static final TABLE_VERSION:Ljava/lang/String; = "version"
12510 +.field private static final TAG:Ljava/lang/String; = "PrivacyPersistenceAdapter"
12512 +.field public static final VALUE_FALSE:Ljava/lang/String; = "0"
12514 +.field public static final VALUE_TRUE:Ljava/lang/String; = "1"
12516 +.field private static final autoCloseDb:Z = false
12518 +.field public static volatile sDbAccessThreads:Ljava/lang/Integer; = null
12520 +.field private static sDbLock:Ljava/util/concurrent/locks/ReadWriteLock; = null
12522 +.field public static volatile sDbVersion:I = 0x0
12524 +.field private static settingsCache:Landroid/util/LruCache; = null
12525 + .annotation system Ldalvik/annotation/Signature;
12526 + value = {
12527 + "Landroid/util/LruCache",
12528 + "<",
12529 + "Ljava/lang/String;",
12530 + "Landroid/privacy/PrivacySettingsStub;",
12531 + ">;"
12533 + .end annotation
12534 +.end field
12536 +.field private static final useCache:Z = true
12539 +# instance fields
12540 +.field private mContext:Landroid/content/Context;
12542 +.field private mDb:Landroid/database/sqlite/SQLiteDatabase;
12545 +# direct methods
12546 +.method static constructor <clinit>()V
12547 + .registers 4
12549 + const/16 v3, 0x14
12551 + const/4 v2, 0x0
12553 + invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
12555 + move-result-object v0
12557 + sput-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
12559 + new-instance v0, Ljava/util/concurrent/locks/ReentrantReadWriteLock;
12561 + invoke-direct {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;-><init>()V
12563 + sput-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
12565 + new-instance v0, Landroid/util/LruCache;
12567 + invoke-direct {v0, v3}, Landroid/util/LruCache;-><init>(I)V
12569 + sput-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->settingsCache:Landroid/util/LruCache;
12571 + const/16 v0, 0x2f
12573 + new-array v0, v0, [Ljava/lang/String;
12575 + const-string v1, "_id"
12577 + aput-object v1, v0, v2
12579 + const/4 v1, 0x1
12581 + const-string/jumbo v2, "packageName"
12583 + aput-object v2, v0, v1
12585 + const/4 v1, 0x2
12587 + const-string/jumbo v2, "uid"
12589 + aput-object v2, v0, v1
12591 + const/4 v1, 0x3
12593 + const-string v2, "deviceIdSetting"
12595 + aput-object v2, v0, v1
12597 + const/4 v1, 0x4
12599 + const-string v2, "deviceId"
12601 + aput-object v2, v0, v1
12603 + const/4 v1, 0x5
12605 + const-string v2, "line1NumberSetting"
12607 + aput-object v2, v0, v1
12609 + const/4 v1, 0x6
12611 + const-string v2, "line1Number"
12613 + aput-object v2, v0, v1
12615 + const/4 v1, 0x7
12617 + const-string v2, "locationGpsSetting"
12619 + aput-object v2, v0, v1
12621 + const/16 v1, 0x8
12623 + const-string v2, "locationGpsLat"
12625 + aput-object v2, v0, v1
12627 + const/16 v1, 0x9
12629 + const-string v2, "locationGpsLon"
12631 + aput-object v2, v0, v1
12633 + const/16 v1, 0xa
12635 + const-string v2, "locationNetworkSetting"
12637 + aput-object v2, v0, v1
12639 + const/16 v1, 0xb
12641 + const-string v2, "locationNetworkLat"
12643 + aput-object v2, v0, v1
12645 + const/16 v1, 0xc
12647 + const-string v2, "locationNetworkLon"
12649 + aput-object v2, v0, v1
12651 + const/16 v1, 0xd
12653 + const-string/jumbo v2, "networkInfoSetting"
12655 + aput-object v2, v0, v1
12657 + const/16 v1, 0xe
12659 + const-string/jumbo v2, "simInfoSetting"
12661 + aput-object v2, v0, v1
12663 + const/16 v1, 0xf
12665 + const-string/jumbo v2, "simSerialNumberSetting"
12667 + aput-object v2, v0, v1
12669 + const/16 v1, 0x10
12671 + const-string/jumbo v2, "simSerialNumber"
12673 + aput-object v2, v0, v1
12675 + const/16 v1, 0x11
12677 + const-string/jumbo v2, "subscriberIdSetting"
12679 + aput-object v2, v0, v1
12681 + const/16 v1, 0x12
12683 + const-string/jumbo v2, "subscriberId"
12685 + aput-object v2, v0, v1
12687 + const/16 v1, 0x13
12689 + const-string v2, "accountsSetting"
12691 + aput-object v2, v0, v1
12693 + const-string v1, "accountsAuthTokensSetting"
12695 + aput-object v1, v0, v3
12697 + const/16 v1, 0x15
12699 + const-string/jumbo v2, "outgoingCallsSetting"
12701 + aput-object v2, v0, v1
12703 + const/16 v1, 0x16
12705 + const-string v2, "incomingCallsSetting"
12707 + aput-object v2, v0, v1
12709 + const/16 v1, 0x17
12711 + const-string v2, "contactsSetting"
12713 + aput-object v2, v0, v1
12715 + const/16 v1, 0x18
12717 + const-string v2, "calendarSetting"
12719 + aput-object v2, v0, v1
12721 + const/16 v1, 0x19
12723 + const-string/jumbo v2, "mmsSetting"
12725 + aput-object v2, v0, v1
12727 + const/16 v1, 0x1a
12729 + const-string/jumbo v2, "smsSetting"
12731 + aput-object v2, v0, v1
12733 + const/16 v1, 0x1b
12735 + const-string v2, "callLogSetting"
12737 + aput-object v2, v0, v1
12739 + const/16 v1, 0x1c
12741 + const-string v2, "bookmarksSetting"
12743 + aput-object v2, v0, v1
12745 + const/16 v1, 0x1d
12747 + const-string/jumbo v2, "systemLogsSetting"
12749 + aput-object v2, v0, v1
12751 + const/16 v1, 0x1e
12753 + const-string v2, "externalStorageSetting"
12755 + aput-object v2, v0, v1
12757 + const/16 v1, 0x1f
12759 + const-string v2, "cameraSetting"
12761 + aput-object v2, v0, v1
12763 + const/16 v1, 0x20
12765 + const-string/jumbo v2, "recordAudioSetting"
12767 + aput-object v2, v0, v1
12769 + const/16 v1, 0x21
12771 + const-string/jumbo v2, "notificationSetting"
12773 + aput-object v2, v0, v1
12775 + const/16 v1, 0x22
12777 + const-string v2, "intentBootCompletedSetting"
12779 + aput-object v2, v0, v1
12781 + const/16 v1, 0x23
12783 + const-string/jumbo v2, "smsSendSetting"
12785 + aput-object v2, v0, v1
12787 + const/16 v1, 0x24
12789 + const-string/jumbo v2, "phoneCallSetting"
12791 + aput-object v2, v0, v1
12793 + const/16 v1, 0x25
12795 + const-string v2, "ipTableProtectSetting"
12797 + aput-object v2, v0, v1
12799 + const/16 v1, 0x26
12801 + const-string v2, "iccAccessSetting"
12803 + aput-object v2, v0, v1
12805 + const/16 v1, 0x27
12807 + const-string v2, "addOnManagementSetting"
12809 + aput-object v2, v0, v1
12811 + const/16 v1, 0x28
12813 + const-string v2, "androidIdSetting"
12815 + aput-object v2, v0, v1
12817 + const/16 v1, 0x29
12819 + const-string v2, "androidId"
12821 + aput-object v2, v0, v1
12823 + const/16 v1, 0x2a
12825 + const-string/jumbo v2, "wifiInfoSetting"
12827 + aput-object v2, v0, v1
12829 + const/16 v1, 0x2b
12831 + const-string/jumbo v2, "switchConnectivitySetting"
12833 + aput-object v2, v0, v1
12835 + const/16 v1, 0x2c
12837 + const-string/jumbo v2, "sendMmsSetting"
12839 + aput-object v2, v0, v1
12841 + const/16 v1, 0x2d
12843 + const-string v2, "forceOnlineState"
12845 + aput-object v2, v0, v1
12847 + const/16 v1, 0x2e
12849 + const-string/jumbo v2, "switchWifiStateSetting"
12851 + aput-object v2, v0, v1
12853 + sput-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->DATABASE_FIELDS:[Ljava/lang/String;
12855 + return-void
12856 +.end method
12858 +.method public constructor <init>(Landroid/content/Context;)V
12859 + .registers 4
12861 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
12863 + iput-object p1, p0, Landroid/privacy/PrivacyPersistenceAdapter;->mContext:Landroid/content/Context;
12865 + new-instance v0, Ljava/io/File;
12867 + const-string v1, "/data/system/"
12869 + invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
12871 + invoke-virtual {v0}, Ljava/io/File;->canWrite()Z
12873 + move-result v0
12875 + if-eqz v0, :cond_6c
12877 + new-instance v0, Ljava/io/File;
12879 + const-string v1, "/data/system/privacy.db"
12881 + invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
12883 + invoke-virtual {v0}, Ljava/io/File;->exists()Z
12885 + move-result v0
12887 + if-eqz v0, :cond_2c
12889 + new-instance v0, Ljava/io/File;
12891 + const-string v1, "/data/system/privacy"
12893 + invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
12895 + invoke-virtual {v0}, Ljava/io/File;->exists()Z
12897 + move-result v0
12899 + if-nez v0, :cond_5e
12901 + :cond_2c
12902 + sget-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
12904 + invoke-interface {v0}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
12906 + move-result-object v0
12908 + invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V
12910 + :try_start_35
12911 + new-instance v0, Ljava/io/File;
12913 + const-string v1, "/data/system/privacy.db"
12915 + invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
12917 + invoke-virtual {v0}, Ljava/io/File;->exists()Z
12919 + move-result v0
12921 + if-nez v0, :cond_45
12923 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->createDatabase()V
12925 + :cond_45
12926 + new-instance v0, Ljava/io/File;
12928 + const-string v1, "/data/system/privacy"
12930 + invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
12932 + invoke-virtual {v0}, Ljava/io/File;->exists()Z
12934 + move-result v0
12936 + if-nez v0, :cond_55
12938 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->createSettingsDir()V
12939 + :try_end_55
12940 + .catchall {:try_start_35 .. :try_end_55} :catchall_6d
12942 + :cond_55
12943 + sget-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
12945 + invoke-interface {v0}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
12947 + move-result-object v0
12949 + invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V
12951 + :cond_5e
12952 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->getDbVersion()I
12954 + move-result v0
12956 + sput v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbVersion:I
12958 + sget v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbVersion:I
12960 + const/4 v1, 0x4
12962 + if-ge v0, v1, :cond_6c
12964 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->upgradeDatabase()V
12966 + :cond_6c
12967 + return-void
12969 + :catchall_6d
12970 + move-exception v0
12972 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
12974 + invoke-interface {v1}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
12976 + move-result-object v1
12978 + invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V
12980 + throw v0
12981 +.end method
12983 +.method private closeIdleDatabase()V
12984 + .registers 3
12986 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
12988 + monitor-enter v1
12990 + :try_start_3
12991 + sget-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
12993 + sget-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
12995 + invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
12997 + move-result v0
12999 + add-int/lit8 v0, v0, -0x1
13001 + invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
13003 + move-result-object v0
13005 + sput-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
13007 + sget-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
13009 + invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
13011 + move-result v0
13013 + if-nez v0, :cond_27
13015 + iget-object v0, p0, Landroid/privacy/PrivacyPersistenceAdapter;->mDb:Landroid/database/sqlite/SQLiteDatabase;
13017 + if-eqz v0, :cond_27
13019 + iget-object v0, p0, Landroid/privacy/PrivacyPersistenceAdapter;->mDb:Landroid/database/sqlite/SQLiteDatabase;
13021 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z
13023 + move-result v0
13025 + if-eqz v0, :cond_27
13027 + :cond_27
13028 + monitor-exit v1
13030 + return-void
13032 + :catchall_29
13033 + move-exception v0
13035 + monitor-exit v1
13036 + :try_end_2b
13037 + .catchall {:try_start_3 .. :try_end_2b} :catchall_29
13039 + throw v0
13040 +.end method
13042 +.method private createDatabase()V
13043 + .registers 6
13045 + const-string v2, "PrivacyPersistenceAdapter"
13047 + const-string v3, "createDatabase - creating privacy database file"
13049 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
13051 + :try_start_7
13052 + const-string v2, "/data/system/privacy.db"
13054 + const/4 v3, 0x0
13056 + const/high16 v4, 0x1000
13058 + invoke-static {v2, v3, v4}, Landroid/database/sqlite/SQLiteDatabase;->openDatabase(Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;I)Landroid/database/sqlite/SQLiteDatabase;
13060 + move-result-object v0
13062 + const-string v2, "PrivacyPersistenceAdapter"
13064 + const-string v3, "createDatabase - creating privacy database"
13066 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
13068 + 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);"
13070 + invoke-virtual {v0, v2}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
13072 + const-string v2, "CREATE TABLE IF NOT EXISTS allowed_contacts ( settings_id, contact_id, PRIMARY KEY(settings_id, contact_id) );"
13074 + invoke-virtual {v0, v2}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
13076 + const-string v2, "CREATE TABLE IF NOT EXISTS map ( name TEXT PRIMARY KEY, value TEXT );"
13078 + invoke-virtual {v0, v2}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
13080 + const-string v2, "INSERT OR REPLACE INTO map (name, value) VALUES (\"db_version\", 4);"
13082 + invoke-virtual {v0, v2}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
13084 + const-string v2, "INSERT OR REPLACE INTO map (name, value) VALUES (\"enabled\", \"1\");"
13086 + invoke-virtual {v0, v2}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
13088 + const-string v2, "INSERT OR REPLACE INTO map (name, value) VALUES (\"notifications_enabled\", \"1\");"
13090 + invoke-virtual {v0, v2}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
13092 + if-eqz v0, :cond_40
13094 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z
13096 + move-result v2
13098 + if-eqz v2, :cond_40
13100 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->close()V
13101 + :try_end_40
13102 + .catch Landroid/database/SQLException; {:try_start_7 .. :try_end_40} :catch_41
13104 + :cond_40
13105 + :goto_40
13106 + return-void
13108 + :catch_41
13109 + move-exception v1
13111 + const-string v2, "PrivacyPersistenceAdapter"
13113 + const-string v3, "createDatabase - failed to create privacy database"
13115 + invoke-static {v2, v3, v1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
13117 + goto :goto_40
13118 +.end method
13120 +.method private createSettingsDir()V
13121 + .registers 5
13123 + const/4 v3, 0x1
13125 + const/4 v2, 0x0
13127 + new-instance v0, Ljava/io/File;
13129 + const-string v1, "/data/system/privacy/"
13131 + invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
13133 + invoke-virtual {v0}, Ljava/io/File;->mkdirs()Z
13135 + invoke-virtual {v0, v3, v2}, Ljava/io/File;->setReadable(ZZ)Z
13137 + invoke-virtual {v0, v3, v2}, Ljava/io/File;->setExecutable(ZZ)Z
13139 + return-void
13140 +.end method
13142 +.method private deleteRecursive(Ljava/io/File;)V
13143 + .registers 7
13145 + invoke-virtual {p1}, Ljava/io/File;->isDirectory()Z
13147 + move-result v4
13149 + if-eqz v4, :cond_16
13151 + invoke-virtual {p1}, Ljava/io/File;->listFiles()[Ljava/io/File;
13153 + move-result-object v0
13155 + array-length v3, v0
13157 + const/4 v2, 0x0
13159 + :goto_c
13160 + if-ge v2, v3, :cond_16
13162 + aget-object v1, v0, v2
13164 + invoke-direct {p0, v1}, Landroid/privacy/PrivacyPersistenceAdapter;->deleteRecursive(Ljava/io/File;)V
13166 + add-int/lit8 v2, v2, 0x1
13168 + goto :goto_c
13170 + :cond_16
13171 + invoke-virtual {p1}, Ljava/io/File;->delete()Z
13173 + return-void
13174 +.end method
13176 +.method private declared-synchronized getDatabase()Landroid/database/sqlite/SQLiteDatabase;
13177 + .registers 4
13179 + monitor-enter p0
13181 + :try_start_1
13182 + iget-object v0, p0, Landroid/privacy/PrivacyPersistenceAdapter;->mDb:Landroid/database/sqlite/SQLiteDatabase;
13184 + if-eqz v0, :cond_15
13186 + iget-object v0, p0, Landroid/privacy/PrivacyPersistenceAdapter;->mDb:Landroid/database/sqlite/SQLiteDatabase;
13188 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z
13190 + move-result v0
13192 + if-eqz v0, :cond_15
13194 + iget-object v0, p0, Landroid/privacy/PrivacyPersistenceAdapter;->mDb:Landroid/database/sqlite/SQLiteDatabase;
13196 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->isReadOnly()Z
13198 + move-result v0
13200 + if-eqz v0, :cond_1f
13202 + :cond_15
13203 + const-string v0, "/data/system/privacy.db"
13205 + const/4 v1, 0x0
13207 + const/4 v2, 0x0
13209 + invoke-static {v0, v1, v2}, Landroid/database/sqlite/SQLiteDatabase;->openDatabase(Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;I)Landroid/database/sqlite/SQLiteDatabase;
13211 + move-result-object v0
13213 + iput-object v0, p0, Landroid/privacy/PrivacyPersistenceAdapter;->mDb:Landroid/database/sqlite/SQLiteDatabase;
13215 + :cond_1f
13216 + iget-object v0, p0, Landroid/privacy/PrivacyPersistenceAdapter;->mDb:Landroid/database/sqlite/SQLiteDatabase;
13217 + :try_end_21
13218 + .catchall {:try_start_1 .. :try_end_21} :catchall_23
13220 + monitor-exit p0
13222 + return-object v0
13224 + :catchall_23
13225 + move-exception v0
13227 + monitor-exit p0
13229 + throw v0
13230 +.end method
13232 +.method private getDbVersion()I
13233 + .registers 6
13235 + const/4 v2, 0x1
13237 + const-string v3, "db_version"
13239 + invoke-virtual {p0, v3}, Landroid/privacy/PrivacyPersistenceAdapter;->getValue(Ljava/lang/String;)Ljava/lang/String;
13241 + move-result-object v1
13243 + if-nez v1, :cond_11
13245 + const-string v3, "PrivacyPersistenceAdapter"
13247 + const-string v4, "PrivacyPersistenceAdapter:getDbVersion: getValue returned null; assuming version = 1"
13249 + invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
13251 + :goto_10
13252 + return v2
13254 + :cond_11
13255 + :try_start_11
13256 + invoke-static {v1}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
13257 + :try_end_14
13258 + .catch Ljava/lang/Exception; {:try_start_11 .. :try_end_14} :catch_16
13260 + move-result v2
13262 + goto :goto_10
13264 + :catch_16
13265 + move-exception v0
13267 + const-string v3, "PrivacyPersistenceAdapter"
13269 + const-string v4, "PrivacyPersistenceAdapter:getDbVersion: failed to parse database version; returning 1"
13271 + invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
13273 + goto :goto_10
13274 +.end method
13276 +.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;
13277 + .registers 16
13278 + .annotation system Ldalvik/annotation/Throws;
13279 + value = {
13280 + Ljava/lang/Exception;
13282 + .end annotation
13284 + const/4 v0, 0x0
13286 + const/4 v3, 0x0
13288 + const/4 v2, 0x0
13290 + :goto_3
13291 + if-nez v3, :cond_27
13293 + const/4 v4, 0x5
13295 + if-ge v2, v4, :cond_27
13297 + if-eqz v0, :cond_d
13299 + :try_start_a
13300 + invoke-interface {v0}, Landroid/database/Cursor;->close()V
13302 + :cond_d
13303 + 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;
13304 + :try_end_10
13305 + .catch Ljava/lang/IllegalStateException; {:try_start_a .. :try_end_10} :catch_15
13307 + move-result-object v0
13309 + const/4 v3, 0x1
13311 + :goto_12
13312 + add-int/lit8 v2, v2, 0x1
13314 + goto :goto_3
13316 + :catch_15
13317 + move-exception v1
13319 + const/4 v3, 0x0
13321 + if-eqz p1, :cond_22
13323 + invoke-virtual {p1}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z
13325 + move-result v4
13327 + if-eqz v4, :cond_22
13329 + invoke-virtual {p1}, Landroid/database/sqlite/SQLiteDatabase;->close()V
13331 + :cond_22
13332 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->getDatabase()Landroid/database/sqlite/SQLiteDatabase;
13334 + move-result-object p1
13336 + goto :goto_12
13338 + :cond_27
13339 + if-nez v3, :cond_32
13341 + new-instance v4, Ljava/lang/Exception;
13343 + const-string/jumbo v5, "query - failed to execute query on the DB"
13345 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
13347 + throw v4
13349 + :cond_32
13350 + return-object v0
13351 +.end method
13353 +.method private rawQuery(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;)Landroid/database/Cursor;
13354 + .registers 9
13355 + .annotation system Ldalvik/annotation/Throws;
13356 + value = {
13357 + Ljava/lang/Exception;
13359 + .end annotation
13361 + const/4 v0, 0x0
13363 + const/4 v3, 0x0
13365 + const/4 v2, 0x0
13367 + :goto_3
13368 + if-nez v3, :cond_28
13370 + const/4 v4, 0x5
13372 + if-ge v2, v4, :cond_28
13374 + if-eqz v0, :cond_d
13376 + :try_start_a
13377 + invoke-interface {v0}, Landroid/database/Cursor;->close()V
13379 + :cond_d
13380 + const/4 v4, 0x0
13382 + invoke-virtual {p1, p2, v4}, Landroid/database/sqlite/SQLiteDatabase;->rawQuery(Ljava/lang/String;[Ljava/lang/String;)Landroid/database/Cursor;
13383 + :try_end_11
13384 + .catch Ljava/lang/IllegalStateException; {:try_start_a .. :try_end_11} :catch_16
13386 + move-result-object v0
13388 + const/4 v3, 0x1
13390 + :goto_13
13391 + add-int/lit8 v2, v2, 0x1
13393 + goto :goto_3
13395 + :catch_16
13396 + move-exception v1
13398 + const/4 v3, 0x0
13400 + if-eqz p1, :cond_23
13402 + invoke-virtual {p1}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z
13404 + move-result v4
13406 + if-eqz v4, :cond_23
13408 + invoke-virtual {p1}, Landroid/database/sqlite/SQLiteDatabase;->close()V
13410 + :cond_23
13411 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->getDatabase()Landroid/database/sqlite/SQLiteDatabase;
13413 + move-result-object p1
13415 + goto :goto_13
13417 + :cond_28
13418 + if-nez v3, :cond_33
13420 + new-instance v4, Ljava/lang/Exception;
13422 + const-string/jumbo v5, "query - failed to execute query on the DB"
13424 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
13426 + throw v4
13428 + :cond_33
13429 + return-object v0
13430 +.end method
13432 +.method private upgradeDatabase()V
13433 + .registers 18
13435 + sget v14, Landroid/privacy/PrivacyPersistenceAdapter;->sDbVersion:I
13437 + const/4 v15, 0x4
13439 + if-ge v14, v15, :cond_31
13441 + const-string v14, "PrivacyPersistenceAdapter"
13443 + new-instance v15, Ljava/lang/StringBuilder;
13445 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
13447 + const-string v16, "PrivacyPersistenceAdapter:upgradeDatabase - upgrading DB from version "
13449 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13451 + move-result-object v15
13453 + sget v16, Landroid/privacy/PrivacyPersistenceAdapter;->sDbVersion:I
13455 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
13457 + move-result-object v15
13459 + const-string v16, " to "
13461 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13463 + move-result-object v15
13465 + const/16 v16, 0x4
13467 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
13469 + move-result-object v15
13471 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
13473 + move-result-object v15
13475 + invoke-static {v14, v15}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
13477 + const/4 v3, 0x0
13479 + sget v14, Landroid/privacy/PrivacyPersistenceAdapter;->sDbVersion:I
13481 + packed-switch v14, :pswitch_data_12c
13483 + :cond_31
13484 + :goto_31
13485 + return-void
13487 + :pswitch_32
13488 + :try_start_32
13489 + sget-object v15, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
13491 + monitor-enter v15
13492 + :try_end_35
13493 + .catchall {:try_start_32 .. :try_end_35} :catchall_11e
13494 + .catch Landroid/database/SQLException; {:try_start_32 .. :try_end_35} :catch_e6
13496 + :try_start_35
13497 + sget-object v14, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
13499 + sget-object v14, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
13501 + invoke-virtual {v14}, Ljava/lang/Integer;->intValue()I
13503 + move-result v14
13505 + add-int/lit8 v14, v14, 0x1
13507 + invoke-static {v14}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
13509 + move-result-object v14
13511 + sput-object v14, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
13513 + monitor-exit v15
13514 + :try_end_46
13515 + .catchall {:try_start_35 .. :try_end_46} :catchall_e3
13517 + :try_start_46
13518 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->getDatabase()Landroid/database/sqlite/SQLiteDatabase;
13520 + move-result-object v3
13522 + if-eqz v3, :cond_109
13524 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z
13526 + move-result v14
13528 + if-eqz v14, :cond_109
13530 + sget-object v14, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
13532 + invoke-interface {v14}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
13534 + move-result-object v14
13536 + invoke-interface {v14}, Ljava/util/concurrent/locks/Lock;->lock()V
13537 + :try_end_5b
13538 + .catchall {:try_start_46 .. :try_end_5b} :catchall_11e
13539 + .catch Landroid/database/SQLException; {:try_start_46 .. :try_end_5b} :catch_e6
13541 + :try_start_5b
13542 + sget v14, Landroid/privacy/PrivacyPersistenceAdapter;->sDbVersion:I
13544 + const/4 v15, 0x4
13546 + if-ge v14, v15, :cond_100
13548 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->beginTransaction()V
13549 + :try_end_63
13550 + .catchall {:try_start_5b .. :try_end_63} :catchall_113
13552 + :try_start_63
13553 + const-string v14, "DROP TABLE IF EXISTS version;"
13555 + invoke-virtual {v3, v14}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
13557 + const-string v14, "CREATE TABLE IF NOT EXISTS allowed_contacts ( settings_id, contact_id, PRIMARY KEY(settings_id, contact_id) );"
13559 + invoke-virtual {v3, v14}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
13561 + const-string v14, "CREATE TABLE IF NOT EXISTS map ( name TEXT PRIMARY KEY, value TEXT );"
13563 + invoke-virtual {v3, v14}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
13565 + const-string v14, "INSERT OR REPLACE INTO map (name, value) VALUES (\"db_version\", 4);"
13567 + invoke-virtual {v3, v14}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
13569 + const-string v14, "INSERT OR REPLACE INTO map (name, value) VALUES (\"enabled\", \"1\");"
13571 + invoke-virtual {v3, v14}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
13573 + const-string v14, "INSERT OR REPLACE INTO map (name, value) VALUES (\"notifications_enabled\", \"1\");"
13575 + invoke-virtual {v3, v14}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
13577 + invoke-virtual/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->purgeSettings()Z
13579 + new-instance v11, Ljava/io/File;
13581 + const-string v14, "/data/system/privacy"
13583 + invoke-direct {v11, v14}, Ljava/io/File;-><init>(Ljava/lang/String;)V
13585 + invoke-virtual {v11}, Ljava/io/File;->listFiles()[Ljava/io/File;
13587 + move-result-object v1
13589 + array-length v7, v1
13591 + const/4 v5, 0x0
13593 + move v6, v5
13595 + :goto_92
13596 + if-ge v6, v7, :cond_f7
13598 + aget-object v10, v1, v6
13600 + invoke-virtual {v10}, Ljava/io/File;->listFiles()[Ljava/io/File;
13602 + move-result-object v2
13604 + array-length v8, v2
13606 + const/4 v5, 0x0
13608 + :goto_9c
13609 + if-ge v5, v8, :cond_f3
13611 + aget-object v13, v2, v5
13613 + invoke-virtual {v13}, Ljava/io/File;->isDirectory()Z
13615 + move-result v14
13617 + if-eqz v14, :cond_e0
13619 + invoke-virtual {v13}, Ljava/io/File;->listFiles()[Ljava/io/File;
13621 + move-result-object v12
13623 + const/4 v14, 0x0
13625 + aget-object v14, v12, v14
13627 + if-eqz v14, :cond_e0
13629 + new-instance v9, Ljava/io/File;
13631 + new-instance v14, Ljava/lang/StringBuilder;
13633 + invoke-direct {v14}, Ljava/lang/StringBuilder;-><init>()V
13635 + invoke-virtual {v14, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
13637 + move-result-object v14
13639 + const-string v15, "/"
13641 + invoke-virtual {v14, v15}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13643 + move-result-object v14
13645 + const/4 v15, 0x0
13647 + aget-object v15, v12, v15
13649 + invoke-virtual {v15}, Ljava/io/File;->getName()Ljava/lang/String;
13651 + move-result-object v15
13653 + invoke-virtual {v14, v15}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13655 + move-result-object v14
13657 + invoke-virtual {v14}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
13659 + move-result-object v14
13661 + invoke-direct {v9, v14}, Ljava/io/File;-><init>(Ljava/lang/String;)V
13663 + invoke-virtual {v9}, Ljava/io/File;->delete()Z
13665 + const/4 v14, 0x0
13667 + aget-object v14, v12, v14
13669 + invoke-virtual {v14, v9}, Ljava/io/File;->renameTo(Ljava/io/File;)Z
13671 + move-object/from16 v0, p0
13673 + invoke-direct {v0, v13}, Landroid/privacy/PrivacyPersistenceAdapter;->deleteRecursive(Ljava/io/File;)V
13674 + :try_end_e0
13675 + .catchall {:try_start_63 .. :try_end_e0} :catchall_10e
13677 + :cond_e0
13678 + add-int/lit8 v5, v5, 0x1
13680 + goto :goto_9c
13682 + :catchall_e3
13683 + move-exception v14
13685 + :try_start_e4
13686 + monitor-exit v15
13687 + :try_end_e5
13688 + .catchall {:try_start_e4 .. :try_end_e5} :catchall_e3
13690 + :try_start_e5
13691 + throw v14
13692 + :try_end_e6
13693 + .catchall {:try_start_e5 .. :try_end_e6} :catchall_11e
13694 + .catch Landroid/database/SQLException; {:try_start_e5 .. :try_end_e6} :catch_e6
13696 + :catch_e6
13697 + move-exception v4
13699 + :try_start_e7
13700 + const-string v14, "PrivacyPersistenceAdapter"
13702 + const-string v15, "PrivacyPersistenceAdapter:upgradeDatabase: SQLException occurred performing database upgrade"
13704 + invoke-static {v14, v15, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
13705 + :try_end_ee
13706 + .catchall {:try_start_e7 .. :try_end_ee} :catchall_11e
13708 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
13710 + goto/16 :goto_31
13712 + :cond_f3
13713 + add-int/lit8 v5, v6, 0x1
13715 + move v6, v5
13717 + goto :goto_92
13719 + :cond_f7
13720 + :try_start_f7
13721 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->setTransactionSuccessful()V
13723 + const/4 v14, 0x4
13725 + sput v14, Landroid/privacy/PrivacyPersistenceAdapter;->sDbVersion:I
13726 + :try_end_fd
13727 + .catchall {:try_start_f7 .. :try_end_fd} :catchall_10e
13729 + :try_start_fd
13730 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
13731 + :try_end_100
13732 + .catchall {:try_start_fd .. :try_end_100} :catchall_113
13734 + :cond_100
13735 + :try_start_100
13736 + sget-object v14, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
13738 + invoke-interface {v14}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
13740 + move-result-object v14
13742 + invoke-interface {v14}, Ljava/util/concurrent/locks/Lock;->unlock()V
13743 + :try_end_109
13744 + .catchall {:try_start_100 .. :try_end_109} :catchall_11e
13745 + .catch Landroid/database/SQLException; {:try_start_100 .. :try_end_109} :catch_e6
13747 + :cond_109
13748 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
13750 + goto/16 :goto_31
13752 + :catchall_10e
13753 + move-exception v14
13755 + :try_start_10f
13756 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
13758 + throw v14
13759 + :try_end_113
13760 + .catchall {:try_start_10f .. :try_end_113} :catchall_113
13762 + :catchall_113
13763 + move-exception v14
13765 + :try_start_114
13766 + sget-object v15, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
13768 + invoke-interface {v15}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
13770 + move-result-object v15
13772 + invoke-interface {v15}, Ljava/util/concurrent/locks/Lock;->unlock()V
13774 + throw v14
13775 + :try_end_11e
13776 + .catchall {:try_start_114 .. :try_end_11e} :catchall_11e
13777 + .catch Landroid/database/SQLException; {:try_start_114 .. :try_end_11e} :catch_e6
13779 + :catchall_11e
13780 + move-exception v14
13782 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
13784 + throw v14
13786 + :pswitch_123
13787 + const-string v14, "PrivacyPersistenceAdapter"
13789 + const-string v15, "PrivacyPersistenceAdapter:upgradeDatabase: Database is already at the most recent version"
13791 + invoke-static {v14, v15}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
13793 + goto/16 :goto_31
13795 + :pswitch_data_12c
13796 + .packed-switch 0x1
13797 + :pswitch_32
13798 + :pswitch_32
13799 + :pswitch_32
13800 + :pswitch_123
13801 + .end packed-switch
13802 +.end method
13804 +.method private writeExternalSettings(Ljava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)Z
13805 + .registers 12
13806 + .annotation system Ldalvik/annotation/Throws;
13807 + value = {
13808 + Ljava/lang/Exception;
13810 + .end annotation
13812 + const/4 v7, 0x1
13814 + new-instance v2, Ljava/io/File;
13816 + new-instance v5, Ljava/lang/StringBuilder;
13818 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
13820 + const-string v6, "/data/system/privacy/"
13822 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13824 + move-result-object v5
13826 + invoke-virtual {v5, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13828 + move-result-object v5
13830 + const-string v6, "/"
13832 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13834 + move-result-object v5
13836 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
13838 + move-result-object v5
13840 + invoke-direct {v2, v5}, Ljava/io/File;-><init>(Ljava/lang/String;)V
13842 + new-instance v3, Ljava/io/File;
13844 + new-instance v5, Ljava/lang/StringBuilder;
13846 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
13848 + const-string v6, "/data/system/privacy/"
13850 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13852 + move-result-object v5
13854 + invoke-virtual {v5, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13856 + move-result-object v5
13858 + const-string v6, "/"
13860 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13862 + move-result-object v5
13864 + const-string v6, "/"
13866 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13868 + move-result-object v5
13870 + invoke-virtual {v5, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13872 + move-result-object v5
13874 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
13876 + move-result-object v5
13878 + invoke-direct {v3, v5}, Ljava/io/File;-><init>(Ljava/lang/String;)V
13880 + const/4 v1, 0x0
13882 + sget-object v5, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
13884 + invoke-interface {v5}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
13886 + move-result-object v5
13888 + invoke-interface {v5}, Ljava/util/concurrent/locks/Lock;->lock()V
13890 + :try_start_51
13891 + invoke-virtual {v2}, Ljava/io/File;->mkdirs()Z
13893 + const/4 v5, 0x1
13895 + const/4 v6, 0x0
13897 + invoke-virtual {v2, v5, v6}, Ljava/io/File;->setReadable(ZZ)Z
13899 + const/4 v5, 0x1
13901 + const/4 v6, 0x0
13903 + invoke-virtual {v2, v5, v6}, Ljava/io/File;->setExecutable(ZZ)Z
13905 + invoke-virtual {v3}, Ljava/io/File;->createNewFile()Z
13907 + const/4 v5, 0x1
13909 + const/4 v6, 0x0
13911 + invoke-virtual {v3, v5, v6}, Ljava/io/File;->setReadable(ZZ)Z
13913 + new-instance v4, Ljava/io/OutputStreamWriter;
13915 + new-instance v5, Ljava/io/FileOutputStream;
13917 + invoke-direct {v5, v3}, Ljava/io/FileOutputStream;-><init>(Ljava/io/File;)V
13919 + invoke-direct {v4, v5}, Ljava/io/OutputStreamWriter;-><init>(Ljava/io/OutputStream;)V
13921 + const-string/jumbo v5, "systemLogsSetting"
13923 + invoke-virtual {p1, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
13925 + move-result v5
13927 + if-eqz v5, :cond_a4
13929 + new-instance v5, Ljava/lang/StringBuilder;
13931 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
13933 + invoke-virtual {p3}, Landroid/privacy/PrivacySettings;->getSystemLogsSetting()B
13935 + move-result v6
13937 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
13939 + move-result-object v5
13941 + const-string v6, ""
13943 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13945 + move-result-object v5
13947 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
13949 + move-result-object v5
13951 + invoke-virtual {v4, v5}, Ljava/io/OutputStreamWriter;->append(Ljava/lang/CharSequence;)Ljava/io/Writer;
13953 + :cond_93
13954 + :goto_93
13955 + invoke-virtual {v4}, Ljava/io/OutputStreamWriter;->flush()V
13957 + invoke-virtual {v4}, Ljava/io/OutputStreamWriter;->close()V
13958 + :try_end_99
13959 + .catchall {:try_start_51 .. :try_end_99} :catchall_d1
13960 + .catch Ljava/io/IOException; {:try_start_51 .. :try_end_99} :catch_c7
13962 + const/4 v1, 0x1
13964 + sget-object v5, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
13966 + invoke-interface {v5}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
13968 + move-result-object v5
13970 + invoke-interface {v5}, Ljava/util/concurrent/locks/Lock;->unlock()V
13972 + return v7
13974 + :cond_a4
13975 + :try_start_a4
13976 + const-string v5, "ipTableProtectSetting"
13978 + invoke-virtual {p1, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
13980 + move-result v5
13982 + if-eqz v5, :cond_93
13984 + new-instance v5, Ljava/lang/StringBuilder;
13986 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
13988 + invoke-virtual {p3}, Landroid/privacy/PrivacySettings;->getIpTableProtectSetting()B
13990 + move-result v6
13992 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
13994 + move-result-object v5
13996 + const-string v6, ""
13998 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
14000 + move-result-object v5
14002 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
14004 + move-result-object v5
14006 + invoke-virtual {v4, v5}, Ljava/io/OutputStreamWriter;->append(Ljava/lang/CharSequence;)Ljava/io/Writer;
14007 + :try_end_c6
14008 + .catchall {:try_start_a4 .. :try_end_c6} :catchall_d1
14009 + .catch Ljava/io/IOException; {:try_start_a4 .. :try_end_c6} :catch_c7
14011 + goto :goto_93
14013 + :catch_c7
14014 + move-exception v0
14016 + :try_start_c8
14017 + new-instance v5, Ljava/lang/Exception;
14019 + const-string/jumbo v6, "saveSettings - could not write settings to file"
14021 + invoke-direct {v5, v6, v0}, Ljava/lang/Exception;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
14023 + throw v5
14024 + :try_end_d1
14025 + .catchall {:try_start_c8 .. :try_end_d1} :catchall_d1
14027 + :catchall_d1
14028 + move-exception v5
14030 + sget-object v6, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
14032 + invoke-interface {v6}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
14034 + move-result-object v6
14036 + invoke-interface {v6}, Ljava/util/concurrent/locks/Lock;->unlock()V
14038 + throw v5
14039 +.end method
14042 +# virtual methods
14043 +.method public deleteSettings(Ljava/lang/String;)Z
14044 + .registers 16
14046 + const/4 v11, 0x1
14048 + const/4 v0, 0x0
14050 + :try_start_2
14051 + sget-object v2, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
14053 + monitor-enter v2
14054 + :try_end_5
14055 + .catchall {:try_start_2 .. :try_end_5} :catchall_14d
14056 + .catch Landroid/database/sqlite/SQLiteException; {:try_start_2 .. :try_end_5} :catch_103
14057 + .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_5} :catch_140
14059 + :try_start_5
14060 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
14062 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
14064 + invoke-virtual {v1}, Ljava/lang/Integer;->intValue()I
14066 + move-result v1
14068 + add-int/lit8 v1, v1, 0x1
14070 + invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
14072 + move-result-object v1
14074 + sput-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
14076 + monitor-exit v2
14077 + :try_end_16
14078 + .catchall {:try_start_5 .. :try_end_16} :catchall_100
14080 + :try_start_16
14081 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->getDatabase()Landroid/database/sqlite/SQLiteDatabase;
14083 + move-result-object v0
14085 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
14087 + invoke-interface {v1}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
14089 + move-result-object v1
14091 + invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->lock()V
14092 + :try_end_23
14093 + .catchall {:try_start_16 .. :try_end_23} :catchall_14d
14094 + .catch Landroid/database/sqlite/SQLiteException; {:try_start_16 .. :try_end_23} :catch_103
14095 + .catch Ljava/lang/Exception; {:try_start_16 .. :try_end_23} :catch_140
14097 + :try_start_23
14098 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->beginTransaction()V
14099 + :try_end_26
14100 + .catchall {:try_start_23 .. :try_end_26} :catchall_135
14102 + :try_start_26
14103 + const-string/jumbo v1, "settings"
14105 + const/4 v2, 0x1
14107 + new-array v2, v2, [Ljava/lang/String;
14109 + const/4 v3, 0x0
14111 + const-string v4, "_id"
14113 + aput-object v4, v2, v3
14115 + const-string/jumbo v3, "packageName=?"
14117 + const/4 v4, 0x1
14119 + new-array v4, v4, [Ljava/lang/String;
14121 + const/4 v5, 0x0
14123 + aput-object p1, v4, v5
14125 + const/4 v5, 0x0
14127 + const/4 v6, 0x0
14129 + const/4 v7, 0x0
14131 + 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;
14133 + move-result-object v8
14135 + if-eqz v8, :cond_110
14137 + invoke-interface {v8}, Landroid/database/Cursor;->getCount()I
14139 + move-result v1
14141 + if-lez v1, :cond_110
14143 + invoke-interface {v8}, Landroid/database/Cursor;->moveToFirst()Z
14145 + move-result v1
14147 + if-eqz v1, :cond_110
14149 + const/4 v1, 0x0
14151 + invoke-interface {v8, v1}, Landroid/database/Cursor;->getInt(I)I
14153 + move-result v10
14155 + const-string v1, "allowed_contacts"
14157 + const-string/jumbo v2, "settings_id=?"
14159 + const/4 v3, 0x1
14161 + new-array v3, v3, [Ljava/lang/String;
14163 + const/4 v4, 0x0
14165 + invoke-static {v10}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;
14167 + move-result-object v5
14169 + aput-object v5, v3, v4
14171 + invoke-virtual {v0, v1, v2, v3}, Landroid/database/sqlite/SQLiteDatabase;->delete(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)I
14173 + invoke-interface {v8}, Landroid/database/Cursor;->close()V
14175 + :goto_69
14176 + const-string/jumbo v1, "settings"
14178 + const-string/jumbo v2, "packageName=?"
14180 + const/4 v3, 0x1
14182 + new-array v3, v3, [Ljava/lang/String;
14184 + const/4 v4, 0x0
14186 + aput-object p1, v3, v4
14188 + invoke-virtual {v0, v1, v2, v3}, Landroid/database/sqlite/SQLiteDatabase;->delete(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)I
14190 + move-result v1
14192 + if-nez v1, :cond_99
14194 + const-string v1, "PrivacyPersistenceAdapter"
14196 + new-instance v2, Ljava/lang/StringBuilder;
14198 + invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
14200 + const-string v3, "deleteSettings - database entry for "
14202 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
14204 + move-result-object v2
14206 + invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
14208 + move-result-object v2
14210 + const-string v3, " not found"
14212 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
14214 + move-result-object v2
14216 + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
14218 + move-result-object v2
14220 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
14222 + :cond_99
14223 + new-instance v12, Ljava/io/File;
14225 + new-instance v1, Ljava/lang/StringBuilder;
14227 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
14229 + const-string v2, "/data/system/privacy/"
14231 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
14233 + move-result-object v1
14235 + invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
14237 + move-result-object v1
14239 + const-string v2, "/"
14241 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
14243 + move-result-object v1
14245 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
14247 + move-result-object v1
14249 + invoke-direct {v12, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
14251 + new-instance v13, Ljava/io/File;
14253 + new-instance v1, Ljava/lang/StringBuilder;
14255 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
14257 + const-string v2, "/data/system/privacy/"
14259 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
14261 + move-result-object v1
14263 + invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
14265 + move-result-object v1
14267 + const-string v2, "/systemLogsSetting"
14269 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
14271 + move-result-object v1
14273 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
14275 + move-result-object v1
14277 + invoke-direct {v13, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
14279 + invoke-virtual {v13}, Ljava/io/File;->delete()Z
14281 + invoke-virtual {v12}, Ljava/io/File;->list()[Ljava/lang/String;
14283 + move-result-object v1
14285 + if-eqz v1, :cond_e5
14287 + invoke-virtual {v12}, Ljava/io/File;->list()[Ljava/lang/String;
14289 + move-result-object v1
14291 + array-length v1, v1
14293 + if-nez v1, :cond_e8
14295 + :cond_e5
14296 + invoke-virtual {v12}, Ljava/io/File;->delete()Z
14298 + :cond_e8
14299 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->setTransactionSuccessful()V
14301 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->settingsCache:Landroid/util/LruCache;
14303 + invoke-virtual {v1, p1}, Landroid/util/LruCache;->remove(Ljava/lang/Object;)Ljava/lang/Object;
14304 + :try_end_f0
14305 + .catchall {:try_start_26 .. :try_end_f0} :catchall_130
14307 + :try_start_f0
14308 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
14309 + :try_end_f3
14310 + .catchall {:try_start_f0 .. :try_end_f3} :catchall_135
14312 + :try_start_f3
14313 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
14315 + invoke-interface {v1}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
14317 + move-result-object v1
14319 + invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V
14320 + :try_end_fc
14321 + .catchall {:try_start_f3 .. :try_end_fc} :catchall_14d
14322 + .catch Landroid/database/sqlite/SQLiteException; {:try_start_f3 .. :try_end_fc} :catch_103
14323 + .catch Ljava/lang/Exception; {:try_start_f3 .. :try_end_fc} :catch_140
14325 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
14327 + :goto_ff
14328 + return v11
14330 + :catchall_100
14331 + move-exception v1
14333 + :try_start_101
14334 + monitor-exit v2
14335 + :try_end_102
14336 + .catchall {:try_start_101 .. :try_end_102} :catchall_100
14338 + :try_start_102
14339 + throw v1
14340 + :try_end_103
14341 + .catchall {:try_start_102 .. :try_end_103} :catchall_14d
14342 + .catch Landroid/database/sqlite/SQLiteException; {:try_start_102 .. :try_end_103} :catch_103
14343 + .catch Ljava/lang/Exception; {:try_start_102 .. :try_end_103} :catch_140
14345 + :catch_103
14346 + move-exception v9
14348 + const/4 v11, 0x0
14350 + :try_start_105
14351 + const-string v1, "PrivacyPersistenceAdapter"
14353 + const-string v2, "PrivacyPersistenceAdapter:deleteSettings: failed to open the database, or open a transaction"
14355 + invoke-static {v1, v2, v9}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
14356 + :try_end_10c
14357 + .catchall {:try_start_105 .. :try_end_10c} :catchall_14d
14359 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
14361 + goto :goto_ff
14363 + :cond_110
14364 + :try_start_110
14365 + const-string v1, "PrivacyPersistenceAdapter"
14367 + new-instance v2, Ljava/lang/StringBuilder;
14369 + invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
14371 + const-string v3, "deleteSettings - database entry for "
14373 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
14375 + move-result-object v2
14377 + invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
14379 + move-result-object v2
14381 + const-string v3, " not found"
14383 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
14385 + move-result-object v2
14387 + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
14389 + move-result-object v2
14391 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
14392 + :try_end_12e
14393 + .catchall {:try_start_110 .. :try_end_12e} :catchall_130
14395 + goto/16 :goto_69
14397 + :catchall_130
14398 + move-exception v1
14400 + :try_start_131
14401 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
14403 + throw v1
14404 + :try_end_135
14405 + .catchall {:try_start_131 .. :try_end_135} :catchall_135
14407 + :catchall_135
14408 + move-exception v1
14410 + :try_start_136
14411 + sget-object v2, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
14413 + invoke-interface {v2}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
14415 + move-result-object v2
14417 + invoke-interface {v2}, Ljava/util/concurrent/locks/Lock;->unlock()V
14419 + throw v1
14420 + :try_end_140
14421 + .catchall {:try_start_136 .. :try_end_140} :catchall_14d
14422 + .catch Landroid/database/sqlite/SQLiteException; {:try_start_136 .. :try_end_140} :catch_103
14423 + .catch Ljava/lang/Exception; {:try_start_136 .. :try_end_140} :catch_140
14425 + :catch_140
14426 + move-exception v9
14428 + const/4 v11, 0x0
14430 + :try_start_142
14431 + const-string v1, "PrivacyPersistenceAdapter"
14433 + const-string v2, "PrivacyPersistenceAdapter:deleteSettings - could not delete settings"
14435 + invoke-static {v1, v2, v9}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
14436 + :try_end_149
14437 + .catchall {:try_start_142 .. :try_end_149} :catchall_14d
14439 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
14441 + goto :goto_ff
14443 + :catchall_14d
14444 + move-exception v1
14446 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
14448 + throw v1
14449 +.end method
14451 +.method public getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
14452 + .registers 59
14454 + const/16 v56, 0x0
14456 + if-nez p1, :cond_c
14458 + new-instance v1, Ljava/security/InvalidParameterException;
14460 + const-string v4, "PrivacyPersistenceAdapter:getSettings:insufficient application identifier - package name is required"
14462 + invoke-direct {v1, v4}, Ljava/security/InvalidParameterException;-><init>(Ljava/lang/String;)V
14464 + throw v1
14466 + :cond_c
14467 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->settingsCache:Landroid/util/LruCache;
14469 + move-object/from16 v0, p1
14471 + invoke-virtual {v1, v0}, Landroid/util/LruCache;->get(Ljava/lang/Object;)Ljava/lang/Object;
14473 + move-result-object v53
14475 + check-cast v53, Landroid/privacy/PrivacySettingsStub;
14477 + if-eqz v53, :cond_28
14479 + move-object/from16 v0, v53
14481 + instance-of v1, v0, Landroid/privacy/PrivacySettings;
14483 + if-eqz v1, :cond_23
14485 + check-cast v53, Landroid/privacy/PrivacySettings;
14487 + move-object/from16 v3, v56
14489 + :goto_22
14490 + return-object v53
14492 + :cond_23
14493 + const/16 v53, 0x0
14495 + move-object/from16 v3, v56
14497 + goto :goto_22
14499 + :cond_28
14500 + :try_start_28
14501 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
14503 + monitor-enter v4
14504 + :try_end_2b
14505 + .catch Landroid/database/sqlite/SQLiteException; {:try_start_28 .. :try_end_2b} :catch_a8
14507 + :try_start_2b
14508 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
14510 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
14512 + invoke-virtual {v1}, Ljava/lang/Integer;->intValue()I
14514 + move-result v1
14516 + add-int/lit8 v1, v1, 0x1
14518 + invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
14520 + move-result-object v1
14522 + sput-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
14524 + monitor-exit v4
14525 + :try_end_3c
14526 + .catchall {:try_start_2b .. :try_end_3c} :catchall_a5
14528 + :try_start_3c
14529 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->getDatabase()Landroid/database/sqlite/SQLiteDatabase;
14530 + :try_end_3f
14531 + .catch Landroid/database/sqlite/SQLiteException; {:try_start_3c .. :try_end_3f} :catch_a8
14533 + move-result-object v2
14535 + const/16 v54, 0x0
14537 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
14539 + invoke-interface {v1}, Ljava/util/concurrent/locks/ReadWriteLock;->readLock()Ljava/util/concurrent/locks/Lock;
14541 + move-result-object v1
14543 + invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->lock()V
14545 + :try_start_4b
14546 + const-string/jumbo v3, "settings"
14548 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->DATABASE_FIELDS:[Ljava/lang/String;
14550 + const-string/jumbo v5, "packageName=?"
14552 + const/4 v1, 0x1
14554 + new-array v6, v1, [Ljava/lang/String;
14556 + const/4 v1, 0x0
14558 + aput-object p1, v6, v1
14560 + const/4 v7, 0x0
14562 + const/4 v8, 0x0
14564 + const/4 v9, 0x0
14566 + const/4 v10, 0x0
14568 + move-object/from16 v1, p0
14570 + 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;
14572 + move-result-object v54
14574 + if-eqz v54, :cond_367
14576 + invoke-interface/range {v54 .. v54}, Landroid/database/Cursor;->getCount()I
14578 + move-result v1
14580 + if-nez v1, :cond_b6
14582 + const-string v1, "PrivacyPersistenceAdapter"
14584 + new-instance v4, Ljava/lang/StringBuilder;
14586 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
14588 + const-string v5, "PrivacyPersistenceAdapter:getSettingsfound for package "
14590 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
14592 + move-result-object v4
14594 + move-object/from16 v0, p1
14596 + invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
14598 + move-result-object v4
14600 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
14602 + move-result-object v4
14604 + invoke-static {v1, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
14605 + :try_end_85
14606 + .catchall {:try_start_4b .. :try_end_85} :catchall_35f
14607 + .catch Ljava/lang/Exception; {:try_start_4b .. :try_end_85} :catch_363
14609 + move-object/from16 v3, v56
14611 + :cond_87
14612 + :goto_87
14613 + if-eqz v3, :cond_351
14615 + :try_start_89
14616 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->settingsCache:Landroid/util/LruCache;
14618 + move-object/from16 v0, p1
14620 + invoke-virtual {v1, v0, v3}, Landroid/util/LruCache;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
14621 + :try_end_90
14622 + .catchall {:try_start_89 .. :try_end_90} :catchall_33e
14623 + .catch Ljava/lang/Exception; {:try_start_89 .. :try_end_90} :catch_307
14625 + :goto_90
14626 + if-eqz v54, :cond_95
14628 + invoke-interface/range {v54 .. v54}, Landroid/database/Cursor;->close()V
14630 + :cond_95
14631 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
14633 + invoke-interface {v1}, Ljava/util/concurrent/locks/ReadWriteLock;->readLock()Ljava/util/concurrent/locks/Lock;
14635 + move-result-object v1
14637 + invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V
14639 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
14641 + :goto_a1
14642 + move-object/from16 v53, v3
14644 + goto/16 :goto_22
14646 + :catchall_a5
14647 + move-exception v1
14649 + :try_start_a6
14650 + monitor-exit v4
14651 + :try_end_a7
14652 + .catchall {:try_start_a6 .. :try_end_a7} :catchall_a5
14654 + :try_start_a7
14655 + throw v1
14656 + :try_end_a8
14657 + .catch Landroid/database/sqlite/SQLiteException; {:try_start_a7 .. :try_end_a8} :catch_a8
14659 + :catch_a8
14660 + move-exception v55
14662 + const-string v1, "PrivacyPersistenceAdapter"
14664 + const-string v4, "getSettings - database could not be opened"
14666 + move-object/from16 v0, v55
14668 + invoke-static {v1, v4, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
14670 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
14672 + throw v55
14674 + :cond_b6
14675 + :try_start_b6
14676 + invoke-interface/range {v54 .. v54}, Landroid/database/Cursor;->getCount()I
14678 + move-result v1
14680 + const/4 v4, 0x1
14682 + if-le v1, v4, :cond_d7
14684 + const-string v1, "PrivacyPersistenceAdapter"
14686 + new-instance v4, Ljava/lang/StringBuilder;
14688 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
14690 + const-string v5, "Multiple privacy settings found for package "
14692 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
14694 + move-result-object v4
14696 + move-object/from16 v0, p1
14698 + invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
14700 + move-result-object v4
14702 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
14704 + move-result-object v4
14706 + invoke-static {v1, v4}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
14708 + :cond_d7
14709 + invoke-interface/range {v54 .. v54}, Landroid/database/Cursor;->moveToFirst()Z
14711 + move-result v1
14713 + if-eqz v1, :cond_367
14715 + new-instance v3, Landroid/privacy/PrivacySettings;
14717 + const/4 v1, 0x0
14719 + move-object/from16 v0, v54
14721 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getInt(I)I
14723 + move-result v1
14725 + invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
14727 + move-result-object v4
14729 + const/4 v1, 0x1
14731 + move-object/from16 v0, v54
14733 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14735 + move-result-object v5
14737 + const/4 v1, 0x2
14739 + move-object/from16 v0, v54
14741 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getInt(I)I
14743 + move-result v6
14745 + const/4 v1, 0x3
14747 + move-object/from16 v0, v54
14749 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14751 + move-result v1
14753 + int-to-byte v7, v1
14755 + const/4 v1, 0x4
14757 + move-object/from16 v0, v54
14759 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14761 + move-result-object v8
14763 + const/4 v1, 0x5
14765 + move-object/from16 v0, v54
14767 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14769 + move-result v1
14771 + int-to-byte v9, v1
14773 + const/4 v1, 0x6
14775 + move-object/from16 v0, v54
14777 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14779 + move-result-object v10
14781 + const/4 v1, 0x7
14783 + move-object/from16 v0, v54
14785 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14787 + move-result v1
14789 + int-to-byte v11, v1
14791 + const/16 v1, 0x8
14793 + move-object/from16 v0, v54
14795 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14797 + move-result-object v12
14799 + const/16 v1, 0x9
14801 + move-object/from16 v0, v54
14803 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14805 + move-result-object v13
14807 + const/16 v1, 0xa
14809 + move-object/from16 v0, v54
14811 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14813 + move-result v1
14815 + int-to-byte v14, v1
14817 + const/16 v1, 0xb
14819 + move-object/from16 v0, v54
14821 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14823 + move-result-object v15
14825 + const/16 v1, 0xc
14827 + move-object/from16 v0, v54
14829 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14831 + move-result-object v16
14833 + const/16 v1, 0xd
14835 + move-object/from16 v0, v54
14837 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14839 + move-result v1
14841 + int-to-byte v0, v1
14843 + move/from16 v17, v0
14845 + const/16 v1, 0xe
14847 + move-object/from16 v0, v54
14849 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14851 + move-result v1
14853 + int-to-byte v0, v1
14855 + move/from16 v18, v0
14857 + const/16 v1, 0xf
14859 + move-object/from16 v0, v54
14861 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14863 + move-result v1
14865 + int-to-byte v0, v1
14867 + move/from16 v19, v0
14869 + const/16 v1, 0x10
14871 + move-object/from16 v0, v54
14873 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14875 + move-result-object v20
14877 + const/16 v1, 0x11
14879 + move-object/from16 v0, v54
14881 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14883 + move-result v1
14885 + int-to-byte v0, v1
14887 + move/from16 v21, v0
14889 + const/16 v1, 0x12
14891 + move-object/from16 v0, v54
14893 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14895 + move-result-object v22
14897 + const/16 v1, 0x13
14899 + move-object/from16 v0, v54
14901 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14903 + move-result v1
14905 + int-to-byte v0, v1
14907 + move/from16 v23, v0
14909 + const/16 v1, 0x14
14911 + move-object/from16 v0, v54
14913 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14915 + move-result v1
14917 + int-to-byte v0, v1
14919 + move/from16 v24, v0
14921 + const/16 v1, 0x15
14923 + move-object/from16 v0, v54
14925 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14927 + move-result v1
14929 + int-to-byte v0, v1
14931 + move/from16 v25, v0
14933 + const/16 v1, 0x16
14935 + move-object/from16 v0, v54
14937 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14939 + move-result v1
14941 + int-to-byte v0, v1
14943 + move/from16 v26, v0
14945 + const/16 v1, 0x17
14947 + move-object/from16 v0, v54
14949 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14951 + move-result v1
14953 + int-to-byte v0, v1
14955 + move/from16 v27, v0
14957 + const/16 v1, 0x18
14959 + move-object/from16 v0, v54
14961 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14963 + move-result v1
14965 + int-to-byte v0, v1
14967 + move/from16 v28, v0
14969 + const/16 v1, 0x19
14971 + move-object/from16 v0, v54
14973 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14975 + move-result v1
14977 + int-to-byte v0, v1
14979 + move/from16 v29, v0
14981 + const/16 v1, 0x1a
14983 + move-object/from16 v0, v54
14985 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14987 + move-result v1
14989 + int-to-byte v0, v1
14991 + move/from16 v30, v0
14993 + const/16 v1, 0x1b
14995 + move-object/from16 v0, v54
14997 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14999 + move-result v1
15001 + int-to-byte v0, v1
15003 + move/from16 v31, v0
15005 + const/16 v1, 0x1c
15007 + move-object/from16 v0, v54
15009 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
15011 + move-result v1
15013 + int-to-byte v0, v1
15015 + move/from16 v32, v0
15017 + const/16 v1, 0x1d
15019 + move-object/from16 v0, v54
15021 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
15023 + move-result v1
15025 + int-to-byte v0, v1
15027 + move/from16 v33, v0
15029 + const/16 v1, 0x1e
15031 + move-object/from16 v0, v54
15033 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
15035 + move-result v1
15037 + int-to-byte v0, v1
15039 + move/from16 v34, v0
15041 + const/16 v1, 0x1f
15043 + move-object/from16 v0, v54
15045 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
15047 + move-result v1
15049 + int-to-byte v0, v1
15051 + move/from16 v35, v0
15053 + const/16 v1, 0x20
15055 + move-object/from16 v0, v54
15057 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
15059 + move-result v1
15061 + int-to-byte v0, v1
15063 + move/from16 v36, v0
15065 + const/16 v1, 0x21
15067 + move-object/from16 v0, v54
15069 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
15071 + move-result v1
15073 + int-to-byte v0, v1
15075 + move/from16 v37, v0
15077 + const/16 v1, 0x22
15079 + move-object/from16 v0, v54
15081 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
15083 + move-result v1
15085 + int-to-byte v0, v1
15087 + move/from16 v38, v0
15089 + const/16 v39, 0x0
15091 + const/16 v1, 0x23
15093 + move-object/from16 v0, v54
15095 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
15097 + move-result v1
15099 + int-to-byte v0, v1
15101 + move/from16 v40, v0
15103 + const/16 v1, 0x24
15105 + move-object/from16 v0, v54
15107 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
15109 + move-result v1
15111 + int-to-byte v0, v1
15113 + move/from16 v41, v0
15115 + const/16 v1, 0x25
15117 + move-object/from16 v0, v54
15119 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
15121 + move-result v1
15123 + int-to-byte v0, v1
15125 + move/from16 v42, v0
15127 + const/16 v1, 0x26
15129 + move-object/from16 v0, v54
15131 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
15133 + move-result v1
15135 + int-to-byte v0, v1
15137 + move/from16 v43, v0
15139 + const/16 v1, 0x27
15141 + move-object/from16 v0, v54
15143 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
15145 + move-result v1
15147 + int-to-byte v0, v1
15149 + move/from16 v44, v0
15151 + const/16 v1, 0x28
15153 + move-object/from16 v0, v54
15155 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
15157 + move-result v1
15159 + int-to-byte v0, v1
15161 + move/from16 v45, v0
15163 + const/16 v1, 0x29
15165 + move-object/from16 v0, v54
15167 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
15169 + move-result-object v46
15171 + const/16 v1, 0x2a
15173 + move-object/from16 v0, v54
15175 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
15177 + move-result v1
15179 + int-to-byte v0, v1
15181 + move/from16 v47, v0
15183 + const/16 v1, 0x2b
15185 + move-object/from16 v0, v54
15187 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
15189 + move-result v1
15191 + int-to-byte v0, v1
15193 + move/from16 v48, v0
15195 + const/16 v1, 0x2c
15197 + move-object/from16 v0, v54
15199 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
15201 + move-result v1
15203 + int-to-byte v0, v1
15205 + move/from16 v49, v0
15207 + const/16 v1, 0x2d
15209 + move-object/from16 v0, v54
15211 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
15213 + move-result v1
15215 + int-to-byte v0, v1
15217 + move/from16 v50, v0
15219 + const/16 v1, 0x2e
15221 + move-object/from16 v0, v54
15223 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
15225 + move-result v1
15227 + int-to-byte v0, v1
15229 + move/from16 v51, v0
15231 + 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
15232 + :try_end_2b9
15233 + .catchall {:try_start_b6 .. :try_end_2b9} :catchall_35f
15234 + .catch Ljava/lang/Exception; {:try_start_b6 .. :try_end_2b9} :catch_363
15236 + :try_start_2b9
15237 + const-string v6, "allowed_contacts"
15239 + const/4 v1, 0x1
15241 + new-array v7, v1, [Ljava/lang/String;
15243 + const/4 v1, 0x0
15245 + const-string v4, "contact_id"
15247 + aput-object v4, v7, v1
15249 + const-string/jumbo v8, "settings_id=?"
15251 + const/4 v1, 0x1
15253 + new-array v9, v1, [Ljava/lang/String;
15255 + const/4 v1, 0x0
15257 + invoke-virtual {v3}, Landroid/privacy/PrivacySettings;->get_id()Ljava/lang/Integer;
15259 + move-result-object v4
15261 + invoke-virtual {v4}, Ljava/lang/Integer;->intValue()I
15263 + move-result v4
15265 + invoke-static {v4}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;
15267 + move-result-object v4
15269 + aput-object v4, v9, v1
15271 + const/4 v10, 0x0
15273 + const/4 v11, 0x0
15275 + const/4 v12, 0x0
15277 + const/4 v13, 0x0
15279 + move-object/from16 v4, p0
15281 + move-object v5, v2
15283 + 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;
15285 + move-result-object v54
15287 + if-eqz v54, :cond_87
15289 + invoke-interface/range {v54 .. v54}, Landroid/database/Cursor;->getCount()I
15291 + move-result v1
15293 + if-lez v1, :cond_87
15295 + invoke-interface/range {v54 .. v54}, Landroid/database/Cursor;->getCount()I
15297 + move-result v1
15299 + new-array v0, v1, [I
15301 + move-object/from16 v52, v0
15303 + :goto_2f3
15304 + invoke-interface/range {v54 .. v54}, Landroid/database/Cursor;->moveToNext()Z
15306 + move-result v1
15308 + if-eqz v1, :cond_337
15310 + invoke-interface/range {v54 .. v54}, Landroid/database/Cursor;->getPosition()I
15312 + move-result v1
15314 + const/4 v4, 0x0
15316 + move-object/from16 v0, v54
15318 + invoke-interface {v0, v4}, Landroid/database/Cursor;->getInt(I)I
15320 + move-result v4
15322 + aput v4, v52, v1
15323 + :try_end_306
15324 + .catchall {:try_start_2b9 .. :try_end_306} :catchall_33e
15325 + .catch Ljava/lang/Exception; {:try_start_2b9 .. :try_end_306} :catch_307
15327 + goto :goto_2f3
15329 + :catch_307
15330 + move-exception v55
15332 + :goto_308
15333 + :try_start_308
15334 + const-string v1, "PrivacyPersistenceAdapter"
15336 + new-instance v4, Ljava/lang/StringBuilder;
15338 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
15340 + const-string v5, "getSettings - failed to get settings for package: "
15342 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
15344 + move-result-object v4
15346 + move-object/from16 v0, p1
15348 + invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
15350 + move-result-object v4
15352 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
15354 + move-result-object v4
15356 + move-object/from16 v0, v55
15358 + invoke-static {v1, v4, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
15359 + :try_end_324
15360 + .catchall {:try_start_308 .. :try_end_324} :catchall_33e
15362 + if-eqz v54, :cond_329
15364 + invoke-interface/range {v54 .. v54}, Landroid/database/Cursor;->close()V
15366 + :cond_329
15367 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
15369 + invoke-interface {v1}, Ljava/util/concurrent/locks/ReadWriteLock;->readLock()Ljava/util/concurrent/locks/Lock;
15371 + move-result-object v1
15373 + invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V
15375 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
15377 + goto/16 :goto_a1
15379 + :cond_337
15380 + :try_start_337
15381 + move-object/from16 v0, v52
15383 + invoke-virtual {v3, v0}, Landroid/privacy/PrivacySettings;->setAllowedContacts([I)V
15384 + :try_end_33c
15385 + .catchall {:try_start_337 .. :try_end_33c} :catchall_33e
15386 + .catch Ljava/lang/Exception; {:try_start_337 .. :try_end_33c} :catch_307
15388 + goto/16 :goto_87
15390 + :catchall_33e
15391 + move-exception v1
15393 + :goto_33f
15394 + if-eqz v54, :cond_344
15396 + invoke-interface/range {v54 .. v54}, Landroid/database/Cursor;->close()V
15398 + :cond_344
15399 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
15401 + invoke-interface {v4}, Ljava/util/concurrent/locks/ReadWriteLock;->readLock()Ljava/util/concurrent/locks/Lock;
15403 + move-result-object v4
15405 + invoke-interface {v4}, Ljava/util/concurrent/locks/Lock;->unlock()V
15407 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
15409 + throw v1
15411 + :cond_351
15412 + :try_start_351
15413 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->settingsCache:Landroid/util/LruCache;
15415 + new-instance v4, Landroid/privacy/PrivacySettingsStub;
15417 + invoke-direct {v4}, Landroid/privacy/PrivacySettingsStub;-><init>()V
15419 + move-object/from16 v0, p1
15421 + invoke-virtual {v1, v0, v4}, Landroid/util/LruCache;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
15422 + :try_end_35d
15423 + .catchall {:try_start_351 .. :try_end_35d} :catchall_33e
15424 + .catch Ljava/lang/Exception; {:try_start_351 .. :try_end_35d} :catch_307
15426 + goto/16 :goto_90
15428 + :catchall_35f
15429 + move-exception v1
15431 + move-object/from16 v3, v56
15433 + goto :goto_33f
15435 + :catch_363
15436 + move-exception v55
15438 + move-object/from16 v3, v56
15440 + goto :goto_308
15442 + :cond_367
15443 + move-object/from16 v3, v56
15445 + goto/16 :goto_87
15446 +.end method
15448 +.method public getValue(Ljava/lang/String;)Ljava/lang/String;
15449 + .registers 15
15451 + const/4 v0, 0x0
15453 + const/4 v12, 0x0
15455 + :try_start_2
15456 + sget-object v2, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
15458 + monitor-enter v2
15459 + :try_end_5
15460 + .catchall {:try_start_2 .. :try_end_5} :catchall_41
15462 + :try_start_5
15463 + sget-object v3, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
15465 + sget-object v3, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
15467 + invoke-virtual {v3}, Ljava/lang/Integer;->intValue()I
15469 + move-result v3
15471 + add-int/lit8 v3, v3, 0x1
15473 + invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
15475 + move-result-object v3
15477 + sput-object v3, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
15479 + monitor-exit v2
15480 + :try_end_16
15481 + .catchall {:try_start_5 .. :try_end_16} :catchall_3e
15483 + :try_start_16
15484 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->getDatabase()Landroid/database/sqlite/SQLiteDatabase;
15486 + move-result-object v1
15488 + if-eqz v1, :cond_22
15490 + invoke-virtual {v1}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z
15492 + move-result v2
15494 + if-nez v2, :cond_46
15496 + :cond_22
15497 + const-string v2, "PrivacyPersistenceAdapter"
15499 + new-instance v3, Ljava/lang/StringBuilder;
15501 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
15503 + const-string v4, "PrivacyPersistenceAdapter:getValue: Database not obtained while getting value for name: "
15505 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
15507 + move-result-object v3
15509 + invoke-virtual {v3, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
15511 + move-result-object v3
15513 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
15515 + move-result-object v3
15517 + invoke-static {v2, v3}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
15518 + :try_end_3a
15519 + .catchall {:try_start_16 .. :try_end_3a} :catchall_41
15521 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
15523 + :goto_3d
15524 + return-object v0
15526 + :catchall_3e
15527 + move-exception v0
15529 + :try_start_3f
15530 + monitor-exit v2
15531 + :try_end_40
15532 + .catchall {:try_start_3f .. :try_end_40} :catchall_3e
15534 + :try_start_40
15535 + throw v0
15536 + :try_end_41
15537 + .catchall {:try_start_40 .. :try_end_41} :catchall_41
15539 + :catchall_41
15540 + move-exception v0
15542 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
15544 + throw v0
15546 + :cond_46
15547 + :try_start_46
15548 + sget-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
15550 + invoke-interface {v0}, Ljava/util/concurrent/locks/ReadWriteLock;->readLock()Ljava/util/concurrent/locks/Lock;
15552 + move-result-object v0
15554 + invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V
15555 + :try_end_4f
15556 + .catchall {:try_start_46 .. :try_end_4f} :catchall_41
15558 + :try_start_4f
15559 + const-string/jumbo v2, "map"
15561 + const/4 v0, 0x1
15563 + new-array v3, v0, [Ljava/lang/String;
15565 + const/4 v0, 0x0
15567 + const-string/jumbo v4, "value"
15569 + aput-object v4, v3, v0
15571 + const-string/jumbo v4, "name=?"
15573 + const/4 v0, 0x1
15575 + new-array v5, v0, [Ljava/lang/String;
15577 + const/4 v0, 0x0
15579 + aput-object p1, v5, v0
15581 + const/4 v6, 0x0
15583 + const/4 v7, 0x0
15585 + const/4 v8, 0x0
15587 + const/4 v9, 0x0
15589 + move-object v0, p0
15591 + 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;
15593 + move-result-object v10
15595 + if-eqz v10, :cond_97
15597 + invoke-interface {v10}, Landroid/database/Cursor;->getCount()I
15599 + move-result v0
15601 + if-lez v0, :cond_97
15603 + invoke-interface {v10}, Landroid/database/Cursor;->moveToFirst()Z
15605 + move-result v0
15607 + if-eqz v0, :cond_97
15609 + const-string/jumbo v0, "value"
15611 + invoke-interface {v10, v0}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I
15613 + move-result v0
15615 + invoke-interface {v10, v0}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
15617 + move-result-object v12
15619 + invoke-interface {v10}, Landroid/database/Cursor;->close()V
15620 + :try_end_89
15621 + .catchall {:try_start_4f .. :try_end_89} :catchall_d3
15622 + .catch Ljava/lang/Exception; {:try_start_4f .. :try_end_89} :catch_b0
15624 + :goto_89
15625 + :try_start_89
15626 + sget-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
15628 + invoke-interface {v0}, Ljava/util/concurrent/locks/ReadWriteLock;->readLock()Ljava/util/concurrent/locks/Lock;
15630 + move-result-object v0
15632 + invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V
15633 + :try_end_92
15634 + .catchall {:try_start_89 .. :try_end_92} :catchall_41
15636 + :goto_92
15637 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
15639 + move-object v0, v12
15641 + goto :goto_3d
15643 + :cond_97
15644 + :try_start_97
15645 + const-string v0, "PrivacyPersistenceAdapter"
15647 + new-instance v2, Ljava/lang/StringBuilder;
15649 + invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
15651 + const-string v3, "PrivacyPersistenceAdapter:getValue: Could not get value for name: "
15653 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
15655 + move-result-object v2
15657 + invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
15659 + move-result-object v2
15661 + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
15663 + move-result-object v2
15665 + invoke-static {v0, v2}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
15666 + :try_end_af
15667 + .catchall {:try_start_97 .. :try_end_af} :catchall_d3
15668 + .catch Ljava/lang/Exception; {:try_start_97 .. :try_end_af} :catch_b0
15670 + goto :goto_89
15672 + :catch_b0
15673 + move-exception v11
15675 + :try_start_b1
15676 + const-string v0, "PrivacyPersistenceAdapter"
15678 + new-instance v2, Ljava/lang/StringBuilder;
15680 + invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
15682 + const-string v3, "PrivacyPersistenceAdapter:getValue: Exception occurred while getting value for name: "
15684 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
15686 + move-result-object v2
15688 + invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
15690 + move-result-object v2
15692 + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
15694 + move-result-object v2
15696 + invoke-static {v0, v2, v11}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
15697 + :try_end_c9
15698 + .catchall {:try_start_b1 .. :try_end_c9} :catchall_d3
15700 + :try_start_c9
15701 + sget-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
15703 + invoke-interface {v0}, Ljava/util/concurrent/locks/ReadWriteLock;->readLock()Ljava/util/concurrent/locks/Lock;
15705 + move-result-object v0
15707 + invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V
15709 + goto :goto_92
15711 + :catchall_d3
15712 + move-exception v0
15714 + sget-object v2, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
15716 + invoke-interface {v2}, Ljava/util/concurrent/locks/ReadWriteLock;->readLock()Ljava/util/concurrent/locks/Lock;
15718 + move-result-object v2
15720 + invoke-interface {v2}, Ljava/util/concurrent/locks/Lock;->unlock()V
15722 + throw v0
15723 + :try_end_de
15724 + .catchall {:try_start_c9 .. :try_end_de} :catchall_41
15725 +.end method
15727 +.method public purgeSettings()Z
15728 + .registers 26
15730 + const/16 v23, 0x1
15732 + new-instance v13, Ljava/util/HashSet;
15734 + invoke-direct {v13}, Ljava/util/HashSet;-><init>()V
15736 + move-object/from16 v0, p0
15738 + iget-object v2, v0, Landroid/privacy/PrivacyPersistenceAdapter;->mContext:Landroid/content/Context;
15740 + invoke-virtual {v2}, Landroid/content/Context;->getPackageManager()Landroid/content/pm/PackageManager;
15742 + move-result-object v20
15744 + const/4 v2, 0x0
15746 + move-object/from16 v0, v20
15748 + invoke-virtual {v0, v2}, Landroid/content/pm/PackageManager;->getInstalledApplications(I)Ljava/util/List;
15750 + move-result-object v18
15752 + invoke-interface/range {v18 .. v18}, Ljava/util/List;->iterator()Ljava/util/Iterator;
15754 + move-result-object v17
15756 + :goto_1a
15757 + invoke-interface/range {v17 .. v17}, Ljava/util/Iterator;->hasNext()Z
15759 + move-result v2
15761 + if-eqz v2, :cond_2c
15763 + invoke-interface/range {v17 .. v17}, Ljava/util/Iterator;->next()Ljava/lang/Object;
15765 + move-result-object v12
15767 + check-cast v12, Landroid/content/pm/ApplicationInfo;
15769 + iget-object v2, v12, Landroid/content/pm/ApplicationInfo;->packageName:Ljava/lang/String;
15771 + invoke-interface {v13, v2}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
15773 + goto :goto_1a
15775 + :cond_2c
15776 + const/4 v3, 0x0
15778 + :try_start_2d
15779 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
15781 + monitor-enter v4
15782 + :try_end_30
15783 + .catchall {:try_start_2d .. :try_end_30} :catchall_11b
15784 + .catch Ljava/lang/Exception; {:try_start_2d .. :try_end_30} :catch_56
15786 + :try_start_30
15787 + sget-object v2, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
15789 + sget-object v2, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
15791 + invoke-virtual {v2}, Ljava/lang/Integer;->intValue()I
15793 + move-result v2
15795 + add-int/lit8 v2, v2, 0x1
15797 + invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
15799 + move-result-object v2
15801 + sput-object v2, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
15803 + monitor-exit v4
15804 + :try_end_41
15805 + .catchall {:try_start_30 .. :try_end_41} :catchall_53
15807 + :try_start_41
15808 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->getDatabase()Landroid/database/sqlite/SQLiteDatabase;
15810 + move-result-object v3
15812 + if-nez v3, :cond_68
15814 + const-string v2, "PrivacyPersistenceAdapter"
15816 + const-string v4, "PrivacyPersistenceAdapter:purgeSettings: db could not be obtained"
15818 + invoke-static {v2, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
15819 + :try_end_4e
15820 + .catchall {:try_start_41 .. :try_end_4e} :catchall_11b
15821 + .catch Ljava/lang/Exception; {:try_start_41 .. :try_end_4e} :catch_56
15823 + const/4 v2, 0x0
15825 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
15827 + :goto_52
15828 + return v2
15830 + :catchall_53
15831 + move-exception v2
15833 + :try_start_54
15834 + monitor-exit v4
15835 + :try_end_55
15836 + .catchall {:try_start_54 .. :try_end_55} :catchall_53
15838 + :try_start_55
15839 + throw v2
15840 + :try_end_56
15841 + .catchall {:try_start_55 .. :try_end_56} :catchall_11b
15842 + .catch Ljava/lang/Exception; {:try_start_55 .. :try_end_56} :catch_56
15844 + :catch_56
15845 + move-exception v16
15847 + :try_start_57
15848 + const-string v2, "PrivacyPersistenceAdapter"
15850 + const-string v4, "PrivacyPersistenceAdapter:purgeSettings - purging DB failed"
15852 + move-object/from16 v0, v16
15854 + invoke-static {v2, v4, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
15855 + :try_end_60
15856 + .catchall {:try_start_57 .. :try_end_60} :catchall_11b
15858 + const/16 v23, 0x0
15860 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
15862 + :goto_65
15863 + move/from16 v2, v23
15865 + goto :goto_52
15867 + :cond_68
15868 + :try_start_68
15869 + sget-object v2, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
15871 + invoke-interface {v2}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
15873 + move-result-object v2
15875 + invoke-interface {v2}, Ljava/util/concurrent/locks/Lock;->lock()V
15876 + :try_end_71
15877 + .catchall {:try_start_68 .. :try_end_71} :catchall_11b
15878 + .catch Ljava/lang/Exception; {:try_start_68 .. :try_end_71} :catch_56
15880 + const/4 v15, 0x0
15882 + :try_start_72
15883 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->beginTransaction()V
15884 + :try_end_75
15885 + .catchall {:try_start_72 .. :try_end_75} :catchall_110
15887 + :try_start_75
15888 + const-string/jumbo v4, "settings"
15890 + const/4 v2, 0x1
15892 + new-array v5, v2, [Ljava/lang/String;
15894 + const/4 v2, 0x0
15896 + const-string/jumbo v6, "packageName"
15898 + aput-object v6, v5, v2
15900 + const/4 v6, 0x0
15902 + const/4 v7, 0x0
15904 + const/4 v8, 0x0
15906 + const/4 v9, 0x0
15908 + const/4 v10, 0x0
15910 + const/4 v11, 0x0
15912 + move-object/from16 v2, p0
15914 + 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;
15916 + move-result-object v15
15918 + if-eqz v15, :cond_bd
15920 + invoke-interface {v15}, Landroid/database/Cursor;->getCount()I
15922 + move-result v2
15924 + if-lez v2, :cond_bd
15926 + invoke-interface {v15}, Landroid/database/Cursor;->moveToFirst()Z
15928 + move-result v2
15930 + if-eqz v2, :cond_bd
15932 + :cond_9b
15933 + const/4 v2, 0x0
15935 + invoke-interface {v15, v2}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
15937 + move-result-object v22
15939 + move-object/from16 v0, v22
15941 + invoke-interface {v13, v0}, Ljava/util/Set;->contains(Ljava/lang/Object;)Z
15943 + move-result v2
15945 + if-nez v2, :cond_b7
15947 + const-string/jumbo v2, "settings"
15949 + const-string/jumbo v4, "packageName = ?"
15951 + const/4 v5, 0x1
15953 + new-array v5, v5, [Ljava/lang/String;
15955 + const/4 v6, 0x0
15957 + aput-object v22, v5, v6
15959 + invoke-virtual {v3, v2, v4, v5}, Landroid/database/sqlite/SQLiteDatabase;->delete(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)I
15961 + :cond_b7
15962 + invoke-interface {v15}, Landroid/database/Cursor;->moveToNext()Z
15964 + move-result v2
15966 + if-nez v2, :cond_9b
15968 + :cond_bd
15969 + new-instance v24, Ljava/io/File;
15971 + const-string v2, "/data/system/privacy"
15973 + move-object/from16 v0, v24
15975 + invoke-direct {v0, v2}, Ljava/io/File;-><init>(Ljava/lang/String;)V
15977 + invoke-virtual/range {v24 .. v24}, Ljava/io/File;->listFiles()[Ljava/io/File;
15979 + move-result-object v14
15981 + array-length v0, v14
15983 + move/from16 v19, v0
15985 + const/16 v17, 0x0
15987 + :goto_cf
15988 + move/from16 v0, v17
15990 + move/from16 v1, v19
15992 + if-ge v0, v1, :cond_ed
15994 + aget-object v21, v14, v17
15996 + invoke-virtual/range {v21 .. v21}, Ljava/io/File;->getName()Ljava/lang/String;
15998 + move-result-object v22
16000 + move-object/from16 v0, v22
16002 + invoke-interface {v13, v0}, Ljava/util/Set;->contains(Ljava/lang/Object;)Z
16004 + move-result v2
16006 + if-nez v2, :cond_ea
16008 + move-object/from16 v0, p0
16010 + move-object/from16 v1, v21
16012 + invoke-direct {v0, v1}, Landroid/privacy/PrivacyPersistenceAdapter;->deleteRecursive(Ljava/io/File;)V
16014 + :cond_ea
16015 + add-int/lit8 v17, v17, 0x1
16017 + goto :goto_cf
16019 + :cond_ed
16020 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->setTransactionSuccessful()V
16021 + :try_end_f0
16022 + .catchall {:try_start_75 .. :try_end_f0} :catchall_106
16024 + if-eqz v15, :cond_f5
16026 + :try_start_f2
16027 + invoke-interface {v15}, Landroid/database/Cursor;->close()V
16029 + :cond_f5
16030 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
16031 + :try_end_f8
16032 + .catchall {:try_start_f2 .. :try_end_f8} :catchall_110
16034 + :try_start_f8
16035 + sget-object v2, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
16037 + invoke-interface {v2}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
16039 + move-result-object v2
16041 + invoke-interface {v2}, Ljava/util/concurrent/locks/Lock;->unlock()V
16042 + :try_end_101
16043 + .catchall {:try_start_f8 .. :try_end_101} :catchall_11b
16044 + .catch Ljava/lang/Exception; {:try_start_f8 .. :try_end_101} :catch_56
16046 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
16048 + goto/16 :goto_65
16050 + :catchall_106
16051 + move-exception v2
16053 + if-eqz v15, :cond_10c
16055 + :try_start_109
16056 + invoke-interface {v15}, Landroid/database/Cursor;->close()V
16058 + :cond_10c
16059 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
16061 + throw v2
16062 + :try_end_110
16063 + .catchall {:try_start_109 .. :try_end_110} :catchall_110
16065 + :catchall_110
16066 + move-exception v2
16068 + :try_start_111
16069 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
16071 + invoke-interface {v4}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
16073 + move-result-object v4
16075 + invoke-interface {v4}, Ljava/util/concurrent/locks/Lock;->unlock()V
16077 + throw v2
16078 + :try_end_11b
16079 + .catchall {:try_start_111 .. :try_end_11b} :catchall_11b
16080 + .catch Ljava/lang/Exception; {:try_start_111 .. :try_end_11b} :catch_56
16082 + :catchall_11b
16083 + move-exception v2
16085 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
16087 + throw v2
16088 +.end method
16090 +.method public saveSettings(Landroid/privacy/PrivacySettings;)Z
16091 + .registers 25
16093 + const/16 v19, 0x0
16095 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getPackageName()Ljava/lang/String;
16097 + move-result-object v18
16099 + if-eqz v18, :cond_e
16101 + invoke-virtual/range {v18 .. v18}, Ljava/lang/String;->isEmpty()Z
16103 + move-result v4
16105 + if-eqz v4, :cond_18
16107 + :cond_e
16108 + const-string v4, "PrivacyPersistenceAdapter"
16110 + const-string/jumbo v5, "saveSettings - either package name is missing"
16112 + invoke-static {v4, v5}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
16114 + const/4 v4, 0x0
16116 + :goto_17
16117 + return v4
16119 + :cond_18
16120 + new-instance v22, Landroid/content/ContentValues;
16122 + invoke-direct/range {v22 .. v22}, Landroid/content/ContentValues;-><init>()V
16124 + const-string/jumbo v4, "packageName"
16126 + move-object/from16 v0, v22
16128 + move-object/from16 v1, v18
16130 + invoke-virtual {v0, v4, v1}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
16132 + const-string/jumbo v4, "uid"
16134 + const/4 v5, -0x1
16136 + invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
16138 + move-result-object v5
16140 + move-object/from16 v0, v22
16142 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Integer;)V
16144 + const-string v4, "deviceIdSetting"
16146 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getDeviceIdSetting()B
16148 + move-result v5
16150 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16152 + move-result-object v5
16154 + move-object/from16 v0, v22
16156 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16158 + const-string v4, "deviceId"
16160 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getDeviceId()Ljava/lang/String;
16162 + move-result-object v5
16164 + move-object/from16 v0, v22
16166 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
16168 + const-string v4, "line1NumberSetting"
16170 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getLine1NumberSetting()B
16172 + move-result v5
16174 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16176 + move-result-object v5
16178 + move-object/from16 v0, v22
16180 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16182 + const-string v4, "line1Number"
16184 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getLine1Number()Ljava/lang/String;
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/String;)V
16192 + const-string v4, "locationGpsSetting"
16194 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()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 v4, "locationGpsLat"
16208 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getLocationGpsLat()Ljava/lang/String;
16210 + move-result-object v5
16212 + move-object/from16 v0, v22
16214 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
16216 + const-string v4, "locationGpsLon"
16218 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getLocationGpsLon()Ljava/lang/String;
16220 + move-result-object v5
16222 + move-object/from16 v0, v22
16224 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
16226 + const-string v4, "locationNetworkSetting"
16228 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
16230 + move-result v5
16232 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16234 + move-result-object v5
16236 + move-object/from16 v0, v22
16238 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16240 + const-string v4, "locationNetworkLat"
16242 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getLocationNetworkLat()Ljava/lang/String;
16244 + move-result-object v5
16246 + move-object/from16 v0, v22
16248 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
16250 + const-string v4, "locationNetworkLon"
16252 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getLocationNetworkLon()Ljava/lang/String;
16254 + move-result-object v5
16256 + move-object/from16 v0, v22
16258 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
16260 + const-string/jumbo v4, "networkInfoSetting"
16262 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
16264 + move-result v5
16266 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16268 + move-result-object v5
16270 + move-object/from16 v0, v22
16272 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16274 + const-string/jumbo v4, "simInfoSetting"
16276 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSimInfoSetting()B
16278 + move-result v5
16280 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16282 + move-result-object v5
16284 + move-object/from16 v0, v22
16286 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16288 + const-string/jumbo v4, "simSerialNumberSetting"
16290 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSimSerialNumberSetting()B
16292 + move-result v5
16294 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16296 + move-result-object v5
16298 + move-object/from16 v0, v22
16300 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16302 + const-string/jumbo v4, "simSerialNumber"
16304 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSimSerialNumber()Ljava/lang/String;
16306 + move-result-object v5
16308 + move-object/from16 v0, v22
16310 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
16312 + const-string/jumbo v4, "subscriberIdSetting"
16314 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSubscriberIdSetting()B
16316 + move-result v5
16318 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16320 + move-result-object v5
16322 + move-object/from16 v0, v22
16324 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16326 + const-string/jumbo v4, "subscriberId"
16328 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSubscriberId()Ljava/lang/String;
16330 + move-result-object v5
16332 + move-object/from16 v0, v22
16334 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
16336 + const-string v4, "accountsSetting"
16338 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getAccountsSetting()B
16340 + move-result v5
16342 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16344 + move-result-object v5
16346 + move-object/from16 v0, v22
16348 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16350 + const-string v4, "accountsAuthTokensSetting"
16352 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getAccountsAuthTokensSetting()B
16354 + move-result v5
16356 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16358 + move-result-object v5
16360 + move-object/from16 v0, v22
16362 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16364 + const-string/jumbo v4, "outgoingCallsSetting"
16366 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getOutgoingCallsSetting()B
16368 + move-result v5
16370 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16372 + move-result-object v5
16374 + move-object/from16 v0, v22
16376 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16378 + const-string v4, "incomingCallsSetting"
16380 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getIncomingCallsSetting()B
16382 + move-result v5
16384 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16386 + move-result-object v5
16388 + move-object/from16 v0, v22
16390 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16392 + const-string v4, "contactsSetting"
16394 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getContactsSetting()B
16396 + move-result v5
16398 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16400 + move-result-object v5
16402 + move-object/from16 v0, v22
16404 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16406 + const-string v4, "calendarSetting"
16408 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getCalendarSetting()B
16410 + move-result v5
16412 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16414 + move-result-object v5
16416 + move-object/from16 v0, v22
16418 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16420 + const-string/jumbo v4, "mmsSetting"
16422 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getMmsSetting()B
16424 + move-result v5
16426 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16428 + move-result-object v5
16430 + move-object/from16 v0, v22
16432 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16434 + const-string/jumbo v4, "smsSetting"
16436 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSmsSetting()B
16438 + move-result v5
16440 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16442 + move-result-object v5
16444 + move-object/from16 v0, v22
16446 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16448 + const-string v4, "callLogSetting"
16450 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getCallLogSetting()B
16452 + move-result v5
16454 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16456 + move-result-object v5
16458 + move-object/from16 v0, v22
16460 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16462 + const-string v4, "bookmarksSetting"
16464 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getBookmarksSetting()B
16466 + move-result v5
16468 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16470 + move-result-object v5
16472 + move-object/from16 v0, v22
16474 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16476 + const-string/jumbo v4, "systemLogsSetting"
16478 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSystemLogsSetting()B
16480 + move-result v5
16482 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16484 + move-result-object v5
16486 + move-object/from16 v0, v22
16488 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16490 + const-string/jumbo v4, "notificationSetting"
16492 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getNotificationSetting()B
16494 + move-result v5
16496 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16498 + move-result-object v5
16500 + move-object/from16 v0, v22
16502 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16504 + const-string v4, "intentBootCompletedSetting"
16506 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getIntentBootCompletedSetting()B
16508 + move-result v5
16510 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16512 + move-result-object v5
16514 + move-object/from16 v0, v22
16516 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16518 + const-string v4, "cameraSetting"
16520 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getCameraSetting()B
16522 + move-result v5
16524 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16526 + move-result-object v5
16528 + move-object/from16 v0, v22
16530 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16532 + const-string/jumbo v4, "recordAudioSetting"
16534 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getRecordAudioSetting()B
16536 + move-result v5
16538 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16540 + move-result-object v5
16542 + move-object/from16 v0, v22
16544 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16546 + const-string/jumbo v4, "smsSendSetting"
16548 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSmsSendSetting()B
16550 + move-result v5
16552 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16554 + move-result-object v5
16556 + move-object/from16 v0, v22
16558 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16560 + const-string/jumbo v4, "phoneCallSetting"
16562 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
16564 + move-result v5
16566 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16568 + move-result-object v5
16570 + move-object/from16 v0, v22
16572 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16574 + const-string v4, "ipTableProtectSetting"
16576 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getIpTableProtectSetting()B
16578 + move-result v5
16580 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16582 + move-result-object v5
16584 + move-object/from16 v0, v22
16586 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16588 + const-string v4, "iccAccessSetting"
16590 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getIccAccessSetting()B
16592 + move-result v5
16594 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16596 + move-result-object v5
16598 + move-object/from16 v0, v22
16600 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16602 + const-string v4, "addOnManagementSetting"
16604 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getAddOnManagementSetting()B
16606 + move-result v5
16608 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16610 + move-result-object v5
16612 + move-object/from16 v0, v22
16614 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16616 + const-string v4, "androidIdSetting"
16618 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getAndroidIdSetting()B
16620 + move-result v5
16622 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16624 + move-result-object v5
16626 + move-object/from16 v0, v22
16628 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16630 + const-string v4, "androidId"
16632 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getAndroidID()Ljava/lang/String;
16634 + move-result-object v5
16636 + move-object/from16 v0, v22
16638 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
16640 + const-string/jumbo v4, "wifiInfoSetting"
16642 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
16644 + move-result v5
16646 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16648 + move-result-object v5
16650 + move-object/from16 v0, v22
16652 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16654 + const-string/jumbo v4, "switchConnectivitySetting"
16656 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSwitchConnectivitySetting()B
16658 + move-result v5
16660 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16662 + move-result-object v5
16664 + move-object/from16 v0, v22
16666 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16668 + const-string/jumbo v4, "sendMmsSetting"
16670 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSendMmsSetting()B
16672 + move-result v5
16674 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16676 + move-result-object v5
16678 + move-object/from16 v0, v22
16680 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16682 + const-string v4, "forceOnlineState"
16684 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getForceOnlineState()B
16686 + move-result v5
16688 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16690 + move-result-object v5
16692 + move-object/from16 v0, v22
16694 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16696 + const-string/jumbo v4, "switchWifiStateSetting"
16698 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSwitchWifiStateSetting()B
16700 + move-result v5
16702 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16704 + move-result-object v5
16706 + move-object/from16 v0, v22
16708 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16710 + const/4 v3, 0x0
16712 + const/4 v13, 0x0
16714 + :try_start_2a9
16715 + sget-object v5, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
16717 + monitor-enter v5
16718 + :try_end_2ac
16719 + .catchall {:try_start_2a9 .. :try_end_2ac} :catchall_33c
16720 + .catch Ljava/lang/Exception; {:try_start_2a9 .. :try_end_2ac} :catch_311
16722 + :try_start_2ac
16723 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
16725 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
16727 + invoke-virtual {v4}, Ljava/lang/Integer;->intValue()I
16729 + move-result v4
16731 + add-int/lit8 v4, v4, 0x1
16733 + invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
16735 + move-result-object v4
16737 + sput-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
16739 + monitor-exit v5
16740 + :try_end_2bd
16741 + .catchall {:try_start_2ac .. :try_end_2bd} :catchall_339
16743 + :try_start_2bd
16744 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->getDatabase()Landroid/database/sqlite/SQLiteDatabase;
16746 + move-result-object v3
16748 + if-eqz v3, :cond_4f9
16750 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z
16752 + move-result v4
16754 + if-eqz v4, :cond_4f9
16756 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
16758 + invoke-interface {v4}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
16760 + move-result-object v4
16762 + invoke-interface {v4}, Ljava/util/concurrent/locks/Lock;->lock()V
16763 + :try_end_2d2
16764 + .catchall {:try_start_2bd .. :try_end_2d2} :catchall_33c
16765 + .catch Ljava/lang/Exception; {:try_start_2bd .. :try_end_2d2} :catch_311
16767 + :try_start_2d2
16768 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->beginTransaction()V
16769 + :try_end_2d5
16770 + .catchall {:try_start_2d2 .. :try_end_2d5} :catchall_306
16772 + :try_start_2d5
16773 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->get_id()Ljava/lang/Integer;
16775 + move-result-object v16
16777 + if-eqz v16, :cond_38d
16779 + const-string/jumbo v4, "settings"
16781 + const-string v5, "_id=?"
16783 + const/4 v6, 0x1
16785 + new-array v6, v6, [Ljava/lang/String;
16787 + const/4 v7, 0x0
16789 + invoke-virtual/range {v16 .. v16}, Ljava/lang/Integer;->toString()Ljava/lang/String;
16791 + move-result-object v8
16793 + aput-object v8, v6, v7
16795 + move-object/from16 v0, v22
16797 + 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
16799 + move-result v4
16801 + const/4 v5, 0x1
16803 + if-ge v4, v5, :cond_341
16805 + new-instance v4, Ljava/lang/Exception;
16807 + const-string/jumbo v5, "saveSettings - failed to update database entry"
16809 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
16811 + throw v4
16812 + :try_end_2fc
16813 + .catchall {:try_start_2d5 .. :try_end_2fc} :catchall_2fc
16815 + :catchall_2fc
16816 + move-exception v4
16818 + :try_start_2fd
16819 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
16821 + if-eqz v13, :cond_305
16823 + invoke-interface {v13}, Landroid/database/Cursor;->close()V
16825 + :cond_305
16826 + throw v4
16827 + :try_end_306
16828 + .catchall {:try_start_2fd .. :try_end_306} :catchall_306
16830 + :catchall_306
16831 + move-exception v4
16833 + :try_start_307
16834 + sget-object v5, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
16836 + invoke-interface {v5}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
16838 + move-result-object v5
16840 + invoke-interface {v5}, Ljava/util/concurrent/locks/Lock;->unlock()V
16842 + throw v4
16843 + :try_end_311
16844 + .catchall {:try_start_307 .. :try_end_311} :catchall_33c
16845 + .catch Ljava/lang/Exception; {:try_start_307 .. :try_end_311} :catch_311
16847 + :catch_311
16848 + move-exception v14
16850 + :try_start_312
16851 + const-string v4, "PrivacyPersistenceAdapter"
16853 + new-instance v5, Ljava/lang/StringBuilder;
16855 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
16857 + const-string v6, "PrivacyPersistenceAdapter:saveSettings: saving for "
16859 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
16861 + move-result-object v5
16863 + move-object/from16 v0, v18
16865 + invoke-virtual {v5, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
16867 + move-result-object v5
16869 + const-string v6, " failed"
16871 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
16873 + move-result-object v5
16875 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
16877 + move-result-object v5
16879 + invoke-static {v4, v5, v14}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
16880 + :try_end_332
16881 + .catchall {:try_start_312 .. :try_end_332} :catchall_33c
16883 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
16885 + :goto_335
16886 + move/from16 v4, v19
16888 + goto/16 :goto_17
16890 + :catchall_339
16891 + move-exception v4
16893 + :try_start_33a
16894 + monitor-exit v5
16895 + :try_end_33b
16896 + .catchall {:try_start_33a .. :try_end_33b} :catchall_339
16898 + :try_start_33b
16899 + throw v4
16900 + :try_end_33c
16901 + .catchall {:try_start_33b .. :try_end_33c} :catchall_33c
16902 + .catch Ljava/lang/Exception; {:try_start_33b .. :try_end_33c} :catch_311
16904 + :catchall_33c
16905 + move-exception v4
16907 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
16909 + throw v4
16911 + :cond_341
16912 + :try_start_341
16913 + const-string v4, "allowed_contacts"
16915 + const-string/jumbo v5, "settings_id=?"
16917 + const/4 v6, 0x1
16919 + new-array v6, v6, [Ljava/lang/String;
16921 + const/4 v7, 0x0
16923 + invoke-virtual/range {v16 .. v16}, Ljava/lang/Integer;->toString()Ljava/lang/String;
16925 + move-result-object v8
16927 + aput-object v8, v6, v7
16929 + invoke-virtual {v3, v4, v5, v6}, Landroid/database/sqlite/SQLiteDatabase;->delete(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)I
16931 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getAllowedContacts()[I
16933 + move-result-object v11
16935 + if-eqz v11, :cond_4af
16937 + new-instance v12, Landroid/content/ContentValues;
16939 + invoke-direct {v12}, Landroid/content/ContentValues;-><init>()V
16941 + const/4 v15, 0x0
16943 + :goto_35f
16944 + array-length v4, v11
16946 + if-ge v15, v4, :cond_4af
16948 + const-string/jumbo v4, "settings_id"
16950 + move-object/from16 v0, v16
16952 + invoke-virtual {v12, v4, v0}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Integer;)V
16954 + const-string v4, "contact_id"
16956 + aget v5, v11, v15
16958 + invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
16960 + move-result-object v5
16962 + invoke-virtual {v12, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Integer;)V
16964 + const-string v4, "allowed_contacts"
16966 + const/4 v5, 0x0
16968 + invoke-virtual {v3, v4, v5, v12}, Landroid/database/sqlite/SQLiteDatabase;->insert(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J
16970 + move-result-wide v4
16972 + const-wide/16 v6, -0x1
16974 + cmp-long v4, v4, v6
16976 + if-nez v4, :cond_38a
16978 + new-instance v4, Ljava/lang/Exception;
16980 + const-string v5, "PrivacyPersistenceAdapter:saveSettings: failed to update database entry (contacts)"
16982 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
16984 + throw v4
16986 + :cond_38a
16987 + add-int/lit8 v15, v15, 0x1
16989 + goto :goto_35f
16991 + :cond_38d
16992 + const-string/jumbo v4, "settings"
16994 + const/4 v5, 0x1
16996 + new-array v5, v5, [Ljava/lang/String;
16998 + const/4 v6, 0x0
17000 + const-string v7, "_id"
17002 + aput-object v7, v5, v6
17004 + const-string/jumbo v6, "packageName=?"
17006 + const/4 v7, 0x1
17008 + new-array v7, v7, [Ljava/lang/String;
17010 + const/4 v8, 0x0
17012 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getPackageName()Ljava/lang/String;
17014 + move-result-object v9
17016 + aput-object v9, v7, v8
17018 + const/4 v8, 0x0
17020 + const/4 v9, 0x0
17022 + const/4 v10, 0x0
17024 + 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;
17026 + move-result-object v13
17028 + if-eqz v13, :cond_4a7
17030 + invoke-interface {v13}, Landroid/database/Cursor;->getCount()I
17032 + move-result v4
17034 + const/4 v5, 0x1
17036 + if-ne v4, v5, :cond_433
17038 + const-string/jumbo v4, "settings"
17040 + const-string/jumbo v5, "packageName=?"
17042 + const/4 v6, 0x1
17044 + new-array v6, v6, [Ljava/lang/String;
17046 + const/4 v7, 0x0
17048 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getPackageName()Ljava/lang/String;
17050 + move-result-object v8
17052 + aput-object v8, v6, v7
17054 + move-object/from16 v0, v22
17056 + 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
17058 + move-result v4
17060 + const/4 v5, 0x1
17062 + if-ge v4, v5, :cond_3d7
17064 + new-instance v4, Ljava/lang/Exception;
17066 + const-string/jumbo v5, "saveSettings - failed to update database entry"
17068 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
17070 + throw v4
17072 + :cond_3d7
17073 + invoke-interface {v13}, Landroid/database/Cursor;->moveToFirst()Z
17075 + move-result v4
17077 + if-eqz v4, :cond_4af
17079 + const/4 v4, 0x0
17081 + invoke-interface {v13, v4}, Landroid/database/Cursor;->getInt(I)I
17083 + move-result v4
17085 + invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
17087 + move-result-object v17
17089 + const-string v4, "allowed_contacts"
17091 + const-string/jumbo v5, "settings_id=?"
17093 + const/4 v6, 0x1
17095 + new-array v6, v6, [Ljava/lang/String;
17097 + const/4 v7, 0x0
17099 + invoke-virtual/range {v17 .. v17}, Ljava/lang/Integer;->toString()Ljava/lang/String;
17101 + move-result-object v8
17103 + aput-object v8, v6, v7
17105 + invoke-virtual {v3, v4, v5, v6}, Landroid/database/sqlite/SQLiteDatabase;->delete(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)I
17107 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getAllowedContacts()[I
17109 + move-result-object v11
17111 + if-eqz v11, :cond_4af
17113 + new-instance v12, Landroid/content/ContentValues;
17115 + invoke-direct {v12}, Landroid/content/ContentValues;-><init>()V
17117 + const/4 v15, 0x0
17119 + :goto_404
17120 + array-length v4, v11
17122 + if-ge v15, v4, :cond_4af
17124 + const-string/jumbo v4, "settings_id"
17126 + move-object/from16 v0, v17
17128 + invoke-virtual {v12, v4, v0}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Integer;)V
17130 + const-string v4, "contact_id"
17132 + aget v5, v11, v15
17134 + invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
17136 + move-result-object v5
17138 + invoke-virtual {v12, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Integer;)V
17140 + const-string v4, "allowed_contacts"
17142 + const/4 v5, 0x0
17144 + invoke-virtual {v3, v4, v5, v12}, Landroid/database/sqlite/SQLiteDatabase;->insert(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J
17146 + move-result-wide v4
17148 + const-wide/16 v6, -0x1
17150 + cmp-long v4, v4, v6
17152 + if-nez v4, :cond_430
17154 + new-instance v4, Ljava/lang/Exception;
17156 + const-string/jumbo v5, "saveSettings - failed to update database entry (contacts)"
17158 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
17160 + throw v4
17162 + :cond_430
17163 + add-int/lit8 v15, v15, 0x1
17165 + goto :goto_404
17167 + :cond_433
17168 + invoke-interface {v13}, Landroid/database/Cursor;->getCount()I
17170 + move-result v4
17172 + if-nez v4, :cond_49f
17174 + const-string/jumbo v4, "settings"
17176 + const/4 v5, 0x0
17178 + move-object/from16 v0, v22
17180 + invoke-virtual {v3, v4, v5, v0}, Landroid/database/sqlite/SQLiteDatabase;->insert(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J
17182 + move-result-wide v20
17184 + const-wide/16 v4, -0x1
17186 + cmp-long v4, v20, v4
17188 + if-nez v4, :cond_451
17190 + new-instance v4, Ljava/lang/Exception;
17192 + const-string v5, "PrivacyPersistenceAdapter:saveSettings - failed to insert new record into DB"
17194 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
17196 + throw v4
17198 + :cond_451
17199 + const-string v4, "allowed_contacts"
17201 + const-string/jumbo v5, "settings_id=?"
17203 + const/4 v6, 0x1
17205 + new-array v6, v6, [Ljava/lang/String;
17207 + const/4 v7, 0x0
17209 + invoke-static/range {v20 .. v21}, Ljava/lang/Long;->toString(J)Ljava/lang/String;
17211 + move-result-object v8
17213 + aput-object v8, v6, v7
17215 + invoke-virtual {v3, v4, v5, v6}, Landroid/database/sqlite/SQLiteDatabase;->delete(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)I
17217 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getAllowedContacts()[I
17219 + move-result-object v11
17221 + if-eqz v11, :cond_4af
17223 + new-instance v12, Landroid/content/ContentValues;
17225 + invoke-direct {v12}, Landroid/content/ContentValues;-><init>()V
17227 + const/4 v15, 0x0
17229 + :goto_46f
17230 + array-length v4, v11
17232 + if-ge v15, v4, :cond_4af
17234 + const-string/jumbo v4, "settings_id"
17236 + invoke-static/range {v20 .. v21}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
17238 + move-result-object v5
17240 + invoke-virtual {v12, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Long;)V
17242 + const-string v4, "contact_id"
17244 + aget v5, v11, v15
17246 + invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
17248 + move-result-object v5
17250 + invoke-virtual {v12, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Integer;)V
17252 + const-string v4, "allowed_contacts"
17254 + const/4 v5, 0x0
17256 + invoke-virtual {v3, v4, v5, v12}, Landroid/database/sqlite/SQLiteDatabase;->insert(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J
17258 + move-result-wide v4
17260 + const-wide/16 v6, -0x1
17262 + cmp-long v4, v4, v6
17264 + if-nez v4, :cond_49c
17266 + new-instance v4, Ljava/lang/Exception;
17268 + const-string v5, "PrivacyPersistenceAdapter:saveSettings:failed to update database entry (contacts)"
17270 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
17272 + throw v4
17274 + :cond_49c
17275 + add-int/lit8 v15, v15, 0x1
17277 + goto :goto_46f
17279 + :cond_49f
17280 + new-instance v4, Ljava/lang/Exception;
17282 + const-string v5, "PrivacyPersistenceAdapter:saveSettings:duplicate entries in the privacy.db"
17284 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
17286 + throw v4
17288 + :cond_4a7
17289 + new-instance v4, Ljava/lang/Exception;
17291 + const-string v5, "PrivacyPersistenceAdapter:saveSettings:cursor is null, database access failed"
17293 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
17295 + throw v4
17297 + :cond_4af
17298 + const-string/jumbo v4, "systemLogsSetting"
17300 + move-object/from16 v0, p0
17302 + move-object/from16 v1, v18
17304 + move-object/from16 v2, p1
17306 + invoke-direct {v0, v4, v1, v2}, Landroid/privacy/PrivacyPersistenceAdapter;->writeExternalSettings(Ljava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)Z
17308 + move-result v4
17310 + if-nez v4, :cond_4c6
17312 + new-instance v4, Ljava/lang/Exception;
17314 + const-string v5, "PrivacyPersistenceAdapter:saveSettings:failed to write systemLogsSettings file"
17316 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
17318 + throw v4
17320 + :cond_4c6
17321 + const-string v4, "ipTableProtectSetting"
17323 + move-object/from16 v0, p0
17325 + move-object/from16 v1, v18
17327 + move-object/from16 v2, p1
17329 + invoke-direct {v0, v4, v1, v2}, Landroid/privacy/PrivacyPersistenceAdapter;->writeExternalSettings(Ljava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)Z
17331 + move-result v4
17333 + if-nez v4, :cond_4dc
17335 + new-instance v4, Ljava/lang/Exception;
17337 + const-string v5, "PrivacyPersistenceAdapter:saveSettings:failed to write ipTableProtectSetting file"
17339 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
17341 + throw v4
17343 + :cond_4dc
17344 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->setTransactionSuccessful()V
17346 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->settingsCache:Landroid/util/LruCache;
17348 + move-object/from16 v0, v18
17350 + invoke-virtual {v4, v0}, Landroid/util/LruCache;->remove(Ljava/lang/Object;)Ljava/lang/Object;
17351 + :try_end_4e6
17352 + .catchall {:try_start_341 .. :try_end_4e6} :catchall_2fc
17354 + :try_start_4e6
17355 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
17357 + if-eqz v13, :cond_4ee
17359 + invoke-interface {v13}, Landroid/database/Cursor;->close()V
17360 + :try_end_4ee
17361 + .catchall {:try_start_4e6 .. :try_end_4ee} :catchall_306
17363 + :cond_4ee
17364 + :try_start_4ee
17365 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
17367 + invoke-interface {v4}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
17369 + move-result-object v4
17371 + invoke-interface {v4}, Ljava/util/concurrent/locks/Lock;->unlock()V
17372 + :try_end_4f7
17373 + .catchall {:try_start_4ee .. :try_end_4f7} :catchall_33c
17374 + .catch Ljava/lang/Exception; {:try_start_4ee .. :try_end_4f7} :catch_311
17376 + const/16 v19, 0x1
17378 + :cond_4f9
17379 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
17381 + goto/16 :goto_335
17382 +.end method
17384 +.method public setValue(Ljava/lang/String;Ljava/lang/String;)Z
17385 + .registers 11
17387 + const/4 v3, 0x0
17389 + const-string v4, "PrivacyPersistenceAdapter"
17391 + new-instance v5, Ljava/lang/StringBuilder;
17393 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
17395 + const-string/jumbo v6, "setValue - name "
17397 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
17399 + move-result-object v5
17401 + invoke-virtual {v5, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
17403 + move-result-object v5
17405 + const-string v6, " value "
17407 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
17409 + move-result-object v5
17411 + invoke-virtual {v5, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
17413 + move-result-object v5
17415 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
17417 + move-result-object v5
17419 + invoke-static {v4, v5}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
17421 + new-instance v2, Landroid/content/ContentValues;
17423 + invoke-direct {v2}, Landroid/content/ContentValues;-><init>()V
17425 + const-string/jumbo v4, "name"
17427 + invoke-virtual {v2, v4, p1}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
17429 + const-string/jumbo v4, "value"
17431 + invoke-virtual {v2, v4, p2}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
17433 + const/4 v1, 0x0
17435 + :try_start_36
17436 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
17438 + monitor-enter v4
17439 + :try_end_39
17440 + .catchall {:try_start_36 .. :try_end_39} :catchall_75
17442 + :try_start_39
17443 + sget-object v5, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
17445 + sget-object v5, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
17447 + invoke-virtual {v5}, Ljava/lang/Integer;->intValue()I
17449 + move-result v5
17451 + add-int/lit8 v5, v5, 0x1
17453 + invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
17455 + move-result-object v5
17457 + sput-object v5, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
17459 + monitor-exit v4
17460 + :try_end_4a
17461 + .catchall {:try_start_39 .. :try_end_4a} :catchall_72
17463 + :try_start_4a
17464 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->getDatabase()Landroid/database/sqlite/SQLiteDatabase;
17466 + move-result-object v0
17468 + if-eqz v0, :cond_56
17470 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z
17472 + move-result v4
17474 + if-nez v4, :cond_7a
17476 + :cond_56
17477 + const-string v4, "PrivacyPersistenceAdapter"
17479 + new-instance v5, Ljava/lang/StringBuilder;
17481 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
17483 + const-string v6, "PrivacyPersistenceAdapter:setValue: Database not obtained while setting value for name: "
17485 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
17487 + move-result-object v5
17489 + invoke-virtual {v5, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
17491 + move-result-object v5
17493 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
17495 + move-result-object v5
17497 + invoke-static {v4, v5}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
17498 + :try_end_6e
17499 + .catchall {:try_start_4a .. :try_end_6e} :catchall_75
17501 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
17503 + :goto_71
17504 + return v3
17506 + :catchall_72
17507 + move-exception v3
17509 + :try_start_73
17510 + monitor-exit v4
17511 + :try_end_74
17512 + .catchall {:try_start_73 .. :try_end_74} :catchall_72
17514 + :try_start_74
17515 + throw v3
17516 + :try_end_75
17517 + .catchall {:try_start_74 .. :try_end_75} :catchall_75
17519 + :catchall_75
17520 + move-exception v3
17522 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
17524 + throw v3
17526 + :cond_7a
17527 + :try_start_7a
17528 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
17530 + invoke-interface {v4}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
17532 + move-result-object v4
17534 + invoke-interface {v4}, Ljava/util/concurrent/locks/Lock;->lock()V
17535 + :try_end_83
17536 + .catchall {:try_start_7a .. :try_end_83} :catchall_75
17538 + :try_start_83
17539 + const-string/jumbo v4, "map"
17541 + const/4 v5, 0x0
17543 + invoke-virtual {v0, v4, v5, v2}, Landroid/database/sqlite/SQLiteDatabase;->replace(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J
17544 + :try_end_8a
17545 + .catchall {:try_start_83 .. :try_end_8a} :catchall_a2
17547 + move-result-wide v4
17549 + const-wide/16 v6, -0x1
17551 + cmp-long v4, v4, v6
17553 + if-eqz v4, :cond_a0
17555 + const/4 v1, 0x1
17557 + :goto_92
17558 + :try_start_92
17559 + sget-object v3, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
17561 + invoke-interface {v3}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
17563 + move-result-object v3
17565 + invoke-interface {v3}, Ljava/util/concurrent/locks/Lock;->unlock()V
17566 + :try_end_9b
17567 + .catchall {:try_start_92 .. :try_end_9b} :catchall_75
17569 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
17571 + move v3, v1
17573 + goto :goto_71
17575 + :cond_a0
17576 + move v1, v3
17578 + goto :goto_92
17580 + :catchall_a2
17581 + move-exception v3
17583 + :try_start_a3
17584 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
17586 + invoke-interface {v4}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
17588 + move-result-object v4
17590 + invoke-interface {v4}, Ljava/util/concurrent/locks/Lock;->unlock()V
17592 + throw v3
17593 + :try_end_ad
17594 + .catchall {:try_start_a3 .. :try_end_ad} :catchall_75
17595 +.end method
17596 diff -Npruw stock-framework/smali/android/privacy/PrivacySettings$1.smali pdroid-framework/smali/android/privacy/PrivacySettings$1.smali
17597 --- stock-framework/smali/android/privacy/PrivacySettings$1.smali 1969-12-31 18:00:00.000000000 -0600
17598 +++ pdroid-framework/smali/android/privacy/PrivacySettings$1.smali 2013-08-15 23:20:07.948304776 -0500
17599 @@ -0,0 +1,77 @@
17600 +.class final Landroid/privacy/PrivacySettings$1;
17601 +.super Ljava/lang/Object;
17602 +.source "PrivacySettings.java"
17604 +# interfaces
17605 +.implements Landroid/os/Parcelable$Creator;
17608 +# annotations
17609 +.annotation system Ldalvik/annotation/EnclosingClass;
17610 + value = Landroid/privacy/PrivacySettings;
17611 +.end annotation
17613 +.annotation system Ldalvik/annotation/InnerClass;
17614 + accessFlags = 0x8
17615 + name = null
17616 +.end annotation
17618 +.annotation system Ldalvik/annotation/Signature;
17619 + value = {
17620 + "Ljava/lang/Object;",
17621 + "Landroid/os/Parcelable$Creator",
17622 + "<",
17623 + "Landroid/privacy/PrivacySettings;",
17624 + ">;"
17626 +.end annotation
17629 +# direct methods
17630 +.method constructor <init>()V
17631 + .registers 1
17633 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
17635 + return-void
17636 +.end method
17639 +# virtual methods
17640 +.method public createFromParcel(Landroid/os/Parcel;)Landroid/privacy/PrivacySettings;
17641 + .registers 3
17643 + new-instance v0, Landroid/privacy/PrivacySettings;
17645 + invoke-direct {v0, p1}, Landroid/privacy/PrivacySettings;-><init>(Landroid/os/Parcel;)V
17647 + return-object v0
17648 +.end method
17650 +.method public bridge synthetic createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
17651 + .registers 3
17653 + invoke-virtual {p0, p1}, Landroid/privacy/PrivacySettings$1;->createFromParcel(Landroid/os/Parcel;)Landroid/privacy/PrivacySettings;
17655 + move-result-object v0
17657 + return-object v0
17658 +.end method
17660 +.method public newArray(I)[Landroid/privacy/PrivacySettings;
17661 + .registers 3
17663 + new-array v0, p1, [Landroid/privacy/PrivacySettings;
17665 + return-object v0
17666 +.end method
17668 +.method public bridge synthetic newArray(I)[Ljava/lang/Object;
17669 + .registers 3
17671 + invoke-virtual {p0, p1}, Landroid/privacy/PrivacySettings$1;->newArray(I)[Landroid/privacy/PrivacySettings;
17673 + move-result-object v0
17675 + return-object v0
17676 +.end method
17677 diff -Npruw stock-framework/smali/android/privacy/PrivacySettingsManagerService.smali pdroid-framework/smali/android/privacy/PrivacySettingsManagerService.smali
17678 --- stock-framework/smali/android/privacy/PrivacySettingsManagerService.smali 1969-12-31 18:00:00.000000000 -0600
17679 +++ pdroid-framework/smali/android/privacy/PrivacySettingsManagerService.smali 2013-08-15 23:20:07.956304776 -0500
17680 @@ -0,0 +1,677 @@
17681 +.class public final Landroid/privacy/PrivacySettingsManagerService;
17682 +.super Landroid/privacy/IPrivacySettingsManager$Stub;
17683 +.source "PrivacySettingsManagerService.java"
17686 +# static fields
17687 +.field static final API_VERSION:D = 1.51
17689 +.field static final MOD_DETAILS:Ljava/lang/String; = "OpenPDroid 1.0 by FFU5y, Mateor, wbedard; forked from PDroid 2.0\nPDroid 2.0 by CollegeDev; forked from PDroid\nPDroid by Syvat\'s\nAdditional contributions by Pastime1971"
17691 +.field static final MOD_VERSION:D = 1.0
17693 +.field private static final READ_PRIVACY_SETTINGS:Ljava/lang/String; = "android.privacy.READ_PRIVACY_SETTINGS"
17695 +.field private static final TAG:Ljava/lang/String; = "PrivacySettingsManagerService"
17697 +.field private static final WRITE_PRIVACY_SETTINGS:Ljava/lang/String; = "android.privacy.WRITE_PRIVACY_SETTINGS"
17699 +.field public static obs:Landroid/privacy/PrivacyFileObserver;
17701 +.field private static sendNotifications:Z
17704 +# instance fields
17705 +.field private bootCompleted:Z
17707 +.field private context:Landroid/content/Context;
17709 +.field private enabled:Z
17711 +.field private notificationsEnabled:Z
17713 +.field private persistenceAdapter:Landroid/privacy/PrivacyPersistenceAdapter;
17716 +# direct methods
17717 +.method static constructor <clinit>()V
17718 + .registers 1
17720 + const/4 v0, 0x1
17722 + sput-boolean v0, Landroid/privacy/PrivacySettingsManagerService;->sendNotifications:Z
17724 + return-void
17725 +.end method
17727 +.method public constructor <init>(Landroid/content/Context;)V
17728 + .registers 5
17730 + invoke-direct {p0}, Landroid/privacy/IPrivacySettingsManager$Stub;-><init>()V
17732 + const-string v0, "PrivacySettingsManagerService"
17734 + new-instance v1, Ljava/lang/StringBuilder;
17736 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
17738 + const-string v2, "PrivacySettingsManagerService - initializing for package: "
17740 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
17742 + move-result-object v1
17744 + invoke-virtual {p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
17746 + move-result-object v2
17748 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
17750 + move-result-object v1
17752 + const-string v2, " UID: "
17754 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
17756 + move-result-object v1
17758 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
17760 + move-result v2
17762 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
17764 + move-result-object v1
17766 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
17768 + move-result-object v1
17770 + invoke-static {v0, v1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
17772 + iput-object p1, p0, Landroid/privacy/PrivacySettingsManagerService;->context:Landroid/content/Context;
17774 + new-instance v0, Landroid/privacy/PrivacyPersistenceAdapter;
17776 + invoke-direct {v0, p1}, Landroid/privacy/PrivacyPersistenceAdapter;-><init>(Landroid/content/Context;)V
17778 + iput-object v0, p0, Landroid/privacy/PrivacySettingsManagerService;->persistenceAdapter:Landroid/privacy/PrivacyPersistenceAdapter;
17780 + new-instance v0, Landroid/privacy/PrivacyFileObserver;
17782 + const-string v1, "/data/system/privacy"
17784 + invoke-direct {v0, v1, p0}, Landroid/privacy/PrivacyFileObserver;-><init>(Ljava/lang/String;Landroid/privacy/PrivacySettingsManagerService;)V
17786 + sput-object v0, Landroid/privacy/PrivacySettingsManagerService;->obs:Landroid/privacy/PrivacyFileObserver;
17788 + iget-object v0, p0, Landroid/privacy/PrivacySettingsManagerService;->persistenceAdapter:Landroid/privacy/PrivacyPersistenceAdapter;
17790 + const-string v1, "enabled"
17792 + invoke-virtual {v0, v1}, Landroid/privacy/PrivacyPersistenceAdapter;->getValue(Ljava/lang/String;)Ljava/lang/String;
17794 + move-result-object v0
17796 + const-string v1, "1"
17798 + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
17800 + move-result v0
17802 + iput-boolean v0, p0, Landroid/privacy/PrivacySettingsManagerService;->enabled:Z
17804 + iget-object v0, p0, Landroid/privacy/PrivacySettingsManagerService;->persistenceAdapter:Landroid/privacy/PrivacyPersistenceAdapter;
17806 + const-string/jumbo v1, "notifications_enabled"
17808 + invoke-virtual {v0, v1}, Landroid/privacy/PrivacyPersistenceAdapter;->getValue(Ljava/lang/String;)Ljava/lang/String;
17810 + move-result-object v0
17812 + const-string v1, "1"
17814 + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
17816 + move-result v0
17818 + iput-boolean v0, p0, Landroid/privacy/PrivacySettingsManagerService;->notificationsEnabled:Z
17820 + const/4 v0, 0x0
17822 + iput-boolean v0, p0, Landroid/privacy/PrivacySettingsManagerService;->bootCompleted:Z
17824 + return-void
17825 +.end method
17827 +.method private checkCallerCanReadOrThrow()V
17828 + .registers 4
17830 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
17832 + move-result v0
17834 + const/16 v1, 0x3e8
17836 + if-ne v0, v1, :cond_9
17838 + :goto_8
17839 + return-void
17841 + :cond_9
17842 + iget-object v0, p0, Landroid/privacy/PrivacySettingsManagerService;->context:Landroid/content/Context;
17844 + const-string v1, "android.privacy.READ_PRIVACY_SETTINGS"
17846 + const-string v2, "Requires READ_PRIVACY_SETTINGS"
17848 + invoke-virtual {v0, v1, v2}, Landroid/content/Context;->enforceCallingPermission(Ljava/lang/String;Ljava/lang/String;)V
17850 + goto :goto_8
17851 +.end method
17853 +.method private checkCallerCanReadSettings()Z
17854 + .registers 3
17856 + :try_start_0
17857 + invoke-direct {p0}, Landroid/privacy/PrivacySettingsManagerService;->checkCallerCanReadOrThrow()V
17858 + :try_end_3
17859 + .catch Ljava/lang/SecurityException; {:try_start_0 .. :try_end_3} :catch_5
17861 + const/4 v1, 0x1
17863 + :goto_4
17864 + return v1
17866 + :catch_5
17867 + move-exception v0
17869 + const/4 v1, 0x0
17871 + goto :goto_4
17872 +.end method
17874 +.method private checkCallerCanWriteOrThrow()V
17875 + .registers 4
17876 + .annotation system Ldalvik/annotation/Throws;
17877 + value = {
17878 + Landroid/os/RemoteException;
17880 + .end annotation
17882 + iget-object v0, p0, Landroid/privacy/PrivacySettingsManagerService;->context:Landroid/content/Context;
17884 + const-string v1, "android.privacy.WRITE_PRIVACY_SETTINGS"
17886 + const-string v2, "Requires WRITE_PRIVACY_SETTINGS"
17888 + invoke-virtual {v0, v1, v2}, Landroid/content/Context;->enforceCallingPermission(Ljava/lang/String;Ljava/lang/String;)V
17890 + return-void
17891 +.end method
17893 +.method private checkCallerCanWriteSettings()Z
17894 + .registers 3
17895 + .annotation system Ldalvik/annotation/Throws;
17896 + value = {
17897 + Landroid/os/RemoteException;
17899 + .end annotation
17901 + :try_start_0
17902 + invoke-direct {p0}, Landroid/privacy/PrivacySettingsManagerService;->checkCallerCanWriteOrThrow()V
17903 + :try_end_3
17904 + .catch Ljava/lang/SecurityException; {:try_start_0 .. :try_end_3} :catch_5
17906 + const/4 v1, 0x1
17908 + :goto_4
17909 + return v1
17911 + :catch_5
17912 + move-exception v0
17914 + const/4 v1, 0x0
17916 + goto :goto_4
17917 +.end method
17920 +# virtual methods
17921 +.method public addObserver(Ljava/lang/String;)V
17922 + .registers 3
17923 + .annotation system Ldalvik/annotation/Throws;
17924 + value = {
17925 + Landroid/os/RemoteException;
17927 + .end annotation
17929 + invoke-direct {p0}, Landroid/privacy/PrivacySettingsManagerService;->checkCallerCanWriteOrThrow()V
17931 + sget-object v0, Landroid/privacy/PrivacySettingsManagerService;->obs:Landroid/privacy/PrivacyFileObserver;
17933 + invoke-virtual {v0, p1}, Landroid/privacy/PrivacyFileObserver;->addObserver(Ljava/lang/String;)V
17935 + return-void
17936 +.end method
17938 +.method public deleteSettings(Ljava/lang/String;)Z
17939 + .registers 7
17940 + .annotation system Ldalvik/annotation/Throws;
17941 + value = {
17942 + Landroid/os/RemoteException;
17944 + .end annotation
17946 + const/4 v4, 0x1
17948 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
17950 + move-result v2
17952 + const/16 v3, 0x3e8
17954 + if-eq v2, v3, :cond_c
17956 + invoke-direct {p0}, Landroid/privacy/PrivacySettingsManagerService;->checkCallerCanWriteOrThrow()V
17958 + :cond_c
17959 + iget-object v2, p0, Landroid/privacy/PrivacySettingsManagerService;->persistenceAdapter:Landroid/privacy/PrivacyPersistenceAdapter;
17961 + invoke-virtual {v2, p1}, Landroid/privacy/PrivacyPersistenceAdapter;->deleteSettings(Ljava/lang/String;)Z
17963 + move-result v1
17965 + new-instance v2, Ljava/lang/StringBuilder;
17967 + invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
17969 + const-string v3, "/data/system/privacy/"
17971 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
17973 + move-result-object v2
17975 + invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
17977 + move-result-object v2
17979 + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
17981 + move-result-object v0
17983 + new-instance v2, Ljava/io/File;
17985 + invoke-direct {v2, v0}, Ljava/io/File;-><init>(Ljava/lang/String;)V
17987 + invoke-virtual {v2}, Ljava/io/File;->exists()Z
17989 + move-result v2
17991 + if-eqz v2, :cond_38
17993 + if-ne v1, v4, :cond_38
17995 + sget-object v2, Landroid/privacy/PrivacySettingsManagerService;->obs:Landroid/privacy/PrivacyFileObserver;
17997 + invoke-virtual {v2, v0}, Landroid/privacy/PrivacyFileObserver;->addObserver(Ljava/lang/String;)V
17999 + :cond_37
18000 + :goto_37
18001 + return v1
18003 + :cond_38
18004 + if-ne v1, v4, :cond_37
18006 + sget-object v2, Landroid/privacy/PrivacySettingsManagerService;->obs:Landroid/privacy/PrivacyFileObserver;
18008 + iget-object v2, v2, Landroid/privacy/PrivacyFileObserver;->children:Ljava/util/HashMap;
18010 + invoke-virtual {v2, v0}, Ljava/util/HashMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;
18012 + goto :goto_37
18013 +.end method
18015 +.method public getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
18016 + .registers 4
18018 + iget-boolean v0, p0, Landroid/privacy/PrivacySettingsManagerService;->enabled:Z
18020 + if-nez v0, :cond_2e
18022 + iget-object v0, p0, Landroid/privacy/PrivacySettingsManagerService;->context:Landroid/content/Context;
18024 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
18026 + move-result-object v0
18028 + const-string v1, "com.privacy.pdroid"
18030 + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
18032 + move-result v0
18034 + if-nez v0, :cond_2e
18036 + iget-object v0, p0, Landroid/privacy/PrivacySettingsManagerService;->context:Landroid/content/Context;
18038 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
18040 + move-result-object v0
18042 + const-string v1, "com.privacy.pdroid.Addon"
18044 + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
18046 + move-result v0
18048 + if-nez v0, :cond_2e
18050 + iget-object v0, p0, Landroid/privacy/PrivacySettingsManagerService;->context:Landroid/content/Context;
18052 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
18054 + move-result-object v0
18056 + const-string v1, "com.android.privacy.pdroid.extension"
18058 + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
18060 + move-result v0
18062 + if-eqz v0, :cond_35
18064 + :cond_2e
18065 + iget-object v0, p0, Landroid/privacy/PrivacySettingsManagerService;->persistenceAdapter:Landroid/privacy/PrivacyPersistenceAdapter;
18067 + invoke-virtual {v0, p1}, Landroid/privacy/PrivacyPersistenceAdapter;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
18069 + move-result-object v0
18071 + :goto_34
18072 + return-object v0
18074 + :cond_35
18075 + const/4 v0, 0x0
18077 + goto :goto_34
18078 +.end method
18080 +.method public notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
18081 + .registers 8
18083 + iget-boolean v1, p0, Landroid/privacy/PrivacySettingsManagerService;->bootCompleted:Z
18085 + if-eqz v1, :cond_38
18087 + iget-boolean v1, p0, Landroid/privacy/PrivacySettingsManagerService;->notificationsEnabled:Z
18089 + if-eqz v1, :cond_38
18091 + sget-boolean v1, Landroid/privacy/PrivacySettingsManagerService;->sendNotifications:Z
18093 + if-eqz v1, :cond_38
18095 + new-instance v0, Landroid/content/Intent;
18097 + invoke-direct {v0}, Landroid/content/Intent;-><init>()V
18099 + const-string v1, "com.privacy.pdroid.PRIVACY_NOTIFICATION"
18101 + invoke-virtual {v0, v1}, Landroid/content/Intent;->setAction(Ljava/lang/String;)Landroid/content/Intent;
18103 + const-string/jumbo v1, "packageName"
18105 + invoke-virtual {v0, v1, p1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
18107 + const-string/jumbo v1, "uid"
18109 + const/4 v2, -0x1
18111 + invoke-virtual {v0, v1, v2}, Landroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent;
18113 + const-string v1, "accessMode"
18115 + invoke-virtual {v0, v1, p2}, Landroid/content/Intent;->putExtra(Ljava/lang/String;B)Landroid/content/Intent;
18117 + const-string v1, "dataType"
18119 + invoke-virtual {v0, v1, p3}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
18121 + const-string/jumbo v1, "output"
18123 + invoke-virtual {v0, v1, p4}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
18125 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManagerService;->context:Landroid/content/Context;
18127 + invoke-virtual {v1, v0}, Landroid/content/Context;->sendBroadcast(Landroid/content/Intent;)V
18129 + :cond_38
18130 + return-void
18131 +.end method
18133 +.method public purgeSettings()Z
18134 + .registers 2
18136 + iget-object v0, p0, Landroid/privacy/PrivacySettingsManagerService;->persistenceAdapter:Landroid/privacy/PrivacyPersistenceAdapter;
18138 + invoke-virtual {v0}, Landroid/privacy/PrivacyPersistenceAdapter;->purgeSettings()Z
18140 + move-result v0
18142 + return v0
18143 +.end method
18145 +.method public registerObservers()V
18146 + .registers 3
18147 + .annotation system Ldalvik/annotation/Throws;
18148 + value = {
18149 + Landroid/os/RemoteException;
18151 + .end annotation
18153 + invoke-direct {p0}, Landroid/privacy/PrivacySettingsManagerService;->checkCallerCanWriteOrThrow()V
18155 + new-instance v0, Landroid/privacy/PrivacyFileObserver;
18157 + const-string v1, "/data/system/privacy"
18159 + invoke-direct {v0, v1, p0}, Landroid/privacy/PrivacyFileObserver;-><init>(Ljava/lang/String;Landroid/privacy/PrivacySettingsManagerService;)V
18161 + sput-object v0, Landroid/privacy/PrivacySettingsManagerService;->obs:Landroid/privacy/PrivacyFileObserver;
18163 + return-void
18164 +.end method
18166 +.method public saveSettings(Landroid/privacy/PrivacySettings;)Z
18167 + .registers 6
18168 + .annotation system Ldalvik/annotation/Throws;
18169 + value = {
18170 + Landroid/os/RemoteException;
18172 + .end annotation
18174 + const-string v1, "PrivacySettingsManagerService"
18176 + new-instance v2, Ljava/lang/StringBuilder;
18178 + invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
18180 + const-string/jumbo v3, "saveSettings - checking if caller (UID: "
18182 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
18184 + move-result-object v2
18186 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
18188 + move-result v3
18190 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
18192 + move-result-object v2
18194 + const-string v3, ") has sufficient permissions"
18196 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
18198 + move-result-object v2
18200 + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
18202 + move-result-object v2
18204 + invoke-static {v1, v2}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
18206 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
18208 + move-result v1
18210 + const/16 v2, 0x3e8
18212 + if-eq v1, v2, :cond_2e
18214 + invoke-direct {p0}, Landroid/privacy/PrivacySettingsManagerService;->checkCallerCanWriteOrThrow()V
18216 + :cond_2e
18217 + const-string v1, "PrivacySettingsManagerService"
18219 + new-instance v2, Ljava/lang/StringBuilder;
18221 + invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
18223 + const-string/jumbo v3, "saveSettings - "
18225 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
18227 + move-result-object v2
18229 + invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
18231 + move-result-object v2
18233 + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
18235 + move-result-object v2
18237 + invoke-static {v1, v2}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
18239 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManagerService;->persistenceAdapter:Landroid/privacy/PrivacyPersistenceAdapter;
18241 + invoke-virtual {v1, p1}, Landroid/privacy/PrivacyPersistenceAdapter;->saveSettings(Landroid/privacy/PrivacySettings;)Z
18243 + move-result v0
18245 + const/4 v1, 0x1
18247 + if-ne v0, v1, :cond_59
18249 + sget-object v1, Landroid/privacy/PrivacySettingsManagerService;->obs:Landroid/privacy/PrivacyFileObserver;
18251 + invoke-virtual {p1}, Landroid/privacy/PrivacySettings;->getPackageName()Ljava/lang/String;
18253 + move-result-object v2
18255 + invoke-virtual {v1, v2}, Landroid/privacy/PrivacyFileObserver;->addObserver(Ljava/lang/String;)V
18257 + :cond_59
18258 + return v0
18259 +.end method
18261 +.method public setBootCompleted()V
18262 + .registers 2
18264 + const/4 v0, 0x1
18266 + iput-boolean v0, p0, Landroid/privacy/PrivacySettingsManagerService;->bootCompleted:Z
18268 + return-void
18269 +.end method
18271 +.method public setEnabled(Z)Z
18272 + .registers 6
18273 + .annotation system Ldalvik/annotation/Throws;
18274 + value = {
18275 + Landroid/os/RemoteException;
18277 + .end annotation
18279 + const/4 v1, 0x1
18281 + invoke-direct {p0}, Landroid/privacy/PrivacySettingsManagerService;->checkCallerCanWriteOrThrow()V
18283 + if-eqz p1, :cond_15
18285 + const-string v0, "1"
18287 + :goto_8
18288 + iget-object v2, p0, Landroid/privacy/PrivacySettingsManagerService;->persistenceAdapter:Landroid/privacy/PrivacyPersistenceAdapter;
18290 + const-string v3, "enabled"
18292 + invoke-virtual {v2, v3, v0}, Landroid/privacy/PrivacyPersistenceAdapter;->setValue(Ljava/lang/String;Ljava/lang/String;)Z
18294 + move-result v2
18296 + if-eqz v2, :cond_18
18298 + iput-boolean v1, p0, Landroid/privacy/PrivacySettingsManagerService;->enabled:Z
18300 + :goto_14
18301 + return v1
18303 + :cond_15
18304 + const-string v0, "0"
18306 + goto :goto_8
18308 + :cond_18
18309 + const/4 v1, 0x0
18311 + goto :goto_14
18312 +.end method
18314 +.method public setNotificationsEnabled(Z)Z
18315 + .registers 6
18316 + .annotation system Ldalvik/annotation/Throws;
18317 + value = {
18318 + Landroid/os/RemoteException;
18320 + .end annotation
18322 + const/4 v1, 0x1
18324 + invoke-direct {p0}, Landroid/privacy/PrivacySettingsManagerService;->checkCallerCanWriteOrThrow()V
18326 + if-eqz p1, :cond_18
18328 + const-string v0, "1"
18330 + :goto_8
18331 + iget-object v2, p0, Landroid/privacy/PrivacySettingsManagerService;->persistenceAdapter:Landroid/privacy/PrivacyPersistenceAdapter;
18333 + const-string/jumbo v3, "notifications_enabled"
18335 + invoke-virtual {v2, v3, v0}, Landroid/privacy/PrivacyPersistenceAdapter;->setValue(Ljava/lang/String;Ljava/lang/String;)Z
18337 + move-result v2
18339 + if-eqz v2, :cond_1b
18341 + iput-boolean v1, p0, Landroid/privacy/PrivacySettingsManagerService;->notificationsEnabled:Z
18343 + iput-boolean v1, p0, Landroid/privacy/PrivacySettingsManagerService;->bootCompleted:Z
18345 + :goto_17
18346 + return v1
18348 + :cond_18
18349 + const-string v0, "0"
18351 + goto :goto_8
18353 + :cond_1b
18354 + const/4 v1, 0x0
18356 + goto :goto_17
18357 +.end method
18358 diff -Npruw stock-framework/smali/android/privacy/PrivacySettingsManager.smali pdroid-framework/smali/android/privacy/PrivacySettingsManager.smali
18359 --- stock-framework/smali/android/privacy/PrivacySettingsManager.smali 1969-12-31 18:00:00.000000000 -0600
18360 +++ pdroid-framework/smali/android/privacy/PrivacySettingsManager.smali 2013-08-15 23:20:07.952304776 -0500
18361 @@ -0,0 +1,528 @@
18362 +.class public final Landroid/privacy/PrivacySettingsManager;
18363 +.super Ljava/lang/Object;
18364 +.source "PrivacySettingsManager.java"
18367 +# static fields
18368 +.field public static final ACTION_PRIVACY_NOTIFICATION:Ljava/lang/String; = "com.privacy.pdroid.PRIVACY_NOTIFICATION"
18370 +.field public static final ACTION_PRIVACY_NOTIFICATION_ADDON:Ljava/lang/String; = "com.privacy.pdroid.PRIVACY_NOTIFICATION_ADDON"
18372 +.field private static final TAG:Ljava/lang/String; = "PrivacySettingsManager"
18375 +# instance fields
18376 +.field private service:Landroid/privacy/IPrivacySettingsManager;
18379 +# direct methods
18380 +.method public constructor <init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
18381 + .registers 3
18383 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
18385 + iput-object p2, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18387 + return-void
18388 +.end method
18391 +# virtual methods
18392 +.method public addObserver(Ljava/lang/String;)V
18393 + .registers 5
18395 + :try_start_0
18396 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18398 + if-eqz v1, :cond_a
18400 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18402 + invoke-interface {v1, p1}, Landroid/privacy/IPrivacySettingsManager;->addObserver(Ljava/lang/String;)V
18404 + :goto_9
18405 + return-void
18407 + :cond_a
18408 + const-string v1, "PrivacySettingsManager"
18410 + const-string v2, "PrivacySettingsManager:addObserver: PrivacySettingsManagerService is null"
18412 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
18413 + :try_end_11
18414 + .catch Landroid/os/RemoteException; {:try_start_0 .. :try_end_11} :catch_12
18416 + goto :goto_9
18418 + :catch_12
18419 + move-exception v0
18421 + const-string v1, "PrivacySettingsManager"
18423 + const-string v2, "RemoteException in addObserver: "
18425 + invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
18427 + goto :goto_9
18428 +.end method
18430 +.method public deleteSettings(Ljava/lang/String;)Z
18431 + .registers 6
18433 + const/4 v1, 0x0
18435 + :try_start_1
18436 + iget-object v2, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18438 + if-eqz v2, :cond_c
18440 + iget-object v2, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18442 + invoke-interface {v2, p1}, Landroid/privacy/IPrivacySettingsManager;->deleteSettings(Ljava/lang/String;)Z
18444 + move-result v1
18446 + :goto_b
18447 + return v1
18449 + :cond_c
18450 + const-string v2, "PrivacySettingsManager"
18452 + const-string v3, "PrivacySettingsManager:deleteSettings: PrivacySettingsManagerService is null"
18454 + invoke-static {v2, v3}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
18455 + :try_end_13
18456 + .catch Landroid/os/RemoteException; {:try_start_1 .. :try_end_13} :catch_14
18458 + goto :goto_b
18460 + :catch_14
18461 + move-exception v0
18463 + const-string v2, "PrivacySettingsManager"
18465 + const-string v3, "RemoteException in deleteSettings: "
18467 + invoke-static {v2, v3, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
18469 + goto :goto_b
18470 +.end method
18472 +.method public deleteSettings(Ljava/lang/String;I)Z
18473 + .registers 4
18474 + .annotation runtime Ljava/lang/Deprecated;
18475 + .end annotation
18477 + invoke-virtual {p0, p1}, Landroid/privacy/PrivacySettingsManager;->deleteSettings(Ljava/lang/String;)Z
18479 + move-result v0
18481 + return v0
18482 +.end method
18484 +.method public getApiVersion()D
18485 + .registers 3
18487 + const-wide v0, 0x3ff828f5c28f5c29L
18489 + return-wide v0
18490 +.end method
18492 +.method public getModDetails()Ljava/lang/String;
18493 + .registers 2
18495 + const-string v0, "OpenPDroid 1.0 by FFU5y, Mateor, wbedard; forked from PDroid 2.0\nPDroid 2.0 by CollegeDev; forked from PDroid\nPDroid by Syvat\'s\nAdditional contributions by Pastime1971"
18497 + return-object v0
18498 +.end method
18500 +.method public getModVersion()D
18501 + .registers 3
18503 + const-wide/high16 v0, 0x3ff0
18505 + return-wide v0
18506 +.end method
18508 +.method public getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
18509 + .registers 6
18511 + const/4 v1, 0x0
18513 + :try_start_1
18514 + iget-object v2, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18516 + if-eqz v2, :cond_c
18518 + iget-object v2, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18520 + invoke-interface {v2, p1}, Landroid/privacy/IPrivacySettingsManager;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
18522 + move-result-object v1
18524 + :goto_b
18525 + return-object v1
18527 + :cond_c
18528 + const-string v2, "PrivacySettingsManager"
18530 + const-string v3, "getSettings - PrivacySettingsManagerService is null"
18532 + invoke-static {v2, v3}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
18533 + :try_end_13
18534 + .catch Landroid/os/RemoteException; {:try_start_1 .. :try_end_13} :catch_14
18536 + goto :goto_b
18538 + :catch_14
18539 + move-exception v0
18541 + invoke-virtual {v0}, Landroid/os/RemoteException;->printStackTrace()V
18543 + goto :goto_b
18544 +.end method
18546 +.method public getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
18547 + .registers 4
18548 + .annotation runtime Ljava/lang/Deprecated;
18549 + .end annotation
18551 + invoke-virtual {p0, p1}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
18553 + move-result-object v0
18555 + return-object v0
18556 +.end method
18558 +.method public getVersion()D
18559 + .registers 3
18560 + .annotation runtime Ljava/lang/Deprecated;
18561 + .end annotation
18563 + const-wide v0, 0x3ff828f5c28f5c29L
18565 + return-wide v0
18566 +.end method
18568 +.method public isServiceAvailable()Z
18569 + .registers 2
18571 + iget-object v0, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18573 + if-eqz v0, :cond_6
18575 + const/4 v0, 0x1
18577 + :goto_5
18578 + return v0
18580 + :cond_6
18581 + const/4 v0, 0x0
18583 + goto :goto_5
18584 +.end method
18586 +.method public notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
18587 + .registers 8
18589 + :try_start_0
18590 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18592 + if-eqz v1, :cond_a
18594 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18596 + invoke-interface {v1, p1, p2, p3, p4}, Landroid/privacy/IPrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
18598 + :goto_9
18599 + return-void
18601 + :cond_a
18602 + const-string v1, "PrivacySettingsManager"
18604 + const-string v2, "PrivacySettingsManager:notification: PrivacySettingsManagerService is null"
18606 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
18607 + :try_end_11
18608 + .catch Landroid/os/RemoteException; {:try_start_0 .. :try_end_11} :catch_12
18610 + goto :goto_9
18612 + :catch_12
18613 + move-exception v0
18615 + const-string v1, "PrivacySettingsManager"
18617 + const-string v2, "RemoteException in notification: "
18619 + invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
18621 + goto :goto_9
18622 +.end method
18624 +.method public notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
18625 + .registers 6
18626 + .annotation runtime Ljava/lang/Deprecated;
18627 + .end annotation
18629 + invoke-virtual {p0, p1, p2, p3, p4}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
18631 + return-void
18632 +.end method
18634 +.method public notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
18635 + .registers 7
18636 + .annotation runtime Ljava/lang/Deprecated;
18637 + .end annotation
18639 + invoke-virtual {p0, p1, p3, p4, p5}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
18641 + return-void
18642 +.end method
18644 +.method public purgeSettings()Z
18645 + .registers 4
18647 + :try_start_0
18648 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18650 + if-eqz v1, :cond_b
18652 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18654 + invoke-interface {v1}, Landroid/privacy/IPrivacySettingsManager;->purgeSettings()Z
18656 + move-result v1
18658 + :goto_a
18659 + return v1
18661 + :cond_b
18662 + const-string v1, "PrivacySettingsManager"
18664 + const-string v2, "PrivacySettingsManager:purgeSettings: PrivacySettingsManagerService is null"
18666 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
18667 + :try_end_12
18668 + .catch Landroid/os/RemoteException; {:try_start_0 .. :try_end_12} :catch_14
18670 + :goto_12
18671 + const/4 v1, 0x0
18673 + goto :goto_a
18675 + :catch_14
18676 + move-exception v0
18678 + const-string v1, "PrivacySettingsManager"
18680 + const-string v2, "RemoteException in purgeSettings: "
18682 + invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
18684 + goto :goto_12
18685 +.end method
18687 +.method public registerObservers()V
18688 + .registers 4
18690 + :try_start_0
18691 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18693 + if-eqz v1, :cond_a
18695 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18697 + invoke-interface {v1}, Landroid/privacy/IPrivacySettingsManager;->registerObservers()V
18699 + :goto_9
18700 + return-void
18702 + :cond_a
18703 + const-string v1, "PrivacySettingsManager"
18705 + const-string v2, "PrivacySettingsManager:registerObservers: PrivacySettingsManagerService is null"
18707 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
18708 + :try_end_11
18709 + .catch Landroid/os/RemoteException; {:try_start_0 .. :try_end_11} :catch_12
18711 + goto :goto_9
18713 + :catch_12
18714 + move-exception v0
18716 + const-string v1, "PrivacySettingsManager"
18718 + const-string v2, "RemoteException in registerObservers: "
18720 + invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
18722 + goto :goto_9
18723 +.end method
18725 +.method public saveSettings(Landroid/privacy/PrivacySettings;)Z
18726 + .registers 6
18728 + const/4 v1, 0x0
18730 + :try_start_1
18731 + iget-object v2, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18733 + if-eqz v2, :cond_c
18735 + iget-object v2, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18737 + invoke-interface {v2, p1}, Landroid/privacy/IPrivacySettingsManager;->saveSettings(Landroid/privacy/PrivacySettings;)Z
18739 + move-result v1
18741 + :goto_b
18742 + return v1
18744 + :cond_c
18745 + const-string v2, "PrivacySettingsManager"
18747 + const-string/jumbo v3, "saveSettings - PrivacySettingsManagerService is null"
18749 + invoke-static {v2, v3}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
18750 + :try_end_14
18751 + .catch Landroid/os/RemoteException; {:try_start_1 .. :try_end_14} :catch_15
18753 + goto :goto_b
18755 + :catch_15
18756 + move-exception v0
18758 + const-string v2, "PrivacySettingsManager"
18760 + const-string v3, "RemoteException in saveSettings: "
18762 + invoke-static {v2, v3, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
18764 + goto :goto_b
18765 +.end method
18767 +.method public setBootCompleted()V
18768 + .registers 4
18770 + :try_start_0
18771 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18773 + if-eqz v1, :cond_a
18775 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18777 + invoke-interface {v1}, Landroid/privacy/IPrivacySettingsManager;->setBootCompleted()V
18779 + :goto_9
18780 + return-void
18782 + :cond_a
18783 + const-string v1, "PrivacySettingsManager"
18785 + const-string v2, "PrivacySettingsManager:setBootCompleted: PrivacySettingsManagerService is null"
18787 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
18788 + :try_end_11
18789 + .catch Landroid/os/RemoteException; {:try_start_0 .. :try_end_11} :catch_12
18791 + goto :goto_9
18793 + :catch_12
18794 + move-exception v0
18796 + const-string v1, "PrivacySettingsManager"
18798 + const-string v2, "RemoteException in setBootCompleted: "
18800 + invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
18802 + goto :goto_9
18803 +.end method
18805 +.method public setEnabled(Z)Z
18806 + .registers 5
18808 + :try_start_0
18809 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18811 + if-eqz v1, :cond_b
18813 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18815 + invoke-interface {v1, p1}, Landroid/privacy/IPrivacySettingsManager;->setEnabled(Z)Z
18817 + move-result v1
18819 + :goto_a
18820 + return v1
18822 + :cond_b
18823 + const-string v1, "PrivacySettingsManager"
18825 + const-string v2, "PrivacySettingsManager:setEnabled: PrivacySettingsManagerService is null"
18827 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
18828 + :try_end_12
18829 + .catch Landroid/os/RemoteException; {:try_start_0 .. :try_end_12} :catch_14
18831 + :goto_12
18832 + const/4 v1, 0x0
18834 + goto :goto_a
18836 + :catch_14
18837 + move-exception v0
18839 + const-string v1, "PrivacySettingsManager"
18841 + const-string v2, "RemoteException in setEnabled: "
18843 + invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
18845 + goto :goto_12
18846 +.end method
18848 +.method public setNotificationsEnabled(Z)Z
18849 + .registers 5
18851 + :try_start_0
18852 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18854 + if-eqz v1, :cond_b
18856 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18858 + invoke-interface {v1, p1}, Landroid/privacy/IPrivacySettingsManager;->setNotificationsEnabled(Z)Z
18860 + move-result v1
18862 + :goto_a
18863 + return v1
18865 + :cond_b
18866 + const-string v1, "PrivacySettingsManager"
18868 + const-string v2, "PrivacySettingsManager:setNotificationsEnabled: PrivacySettingsManagerService is null"
18870 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
18871 + :try_end_12
18872 + .catch Landroid/os/RemoteException; {:try_start_0 .. :try_end_12} :catch_14
18874 + :goto_12
18875 + const/4 v1, 0x0
18877 + goto :goto_a
18879 + :catch_14
18880 + move-exception v0
18882 + const-string v1, "PrivacySettingsManager"
18884 + const-string v2, "RemoteException in setNotificationsEnabled: "
18886 + invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
18888 + goto :goto_12
18889 +.end method
18890 diff -Npruw stock-framework/smali/android/privacy/PrivacySettings.smali pdroid-framework/smali/android/privacy/PrivacySettings.smali
18891 --- stock-framework/smali/android/privacy/PrivacySettings.smali 1969-12-31 18:00:00.000000000 -0600
18892 +++ pdroid-framework/smali/android/privacy/PrivacySettings.smali 2013-08-15 23:20:07.952304776 -0500
18893 @@ -0,0 +1,3295 @@
18894 +.class public final Landroid/privacy/PrivacySettings;
18895 +.super Landroid/privacy/PrivacySettingsStub;
18896 +.source "PrivacySettings.java"
18898 +# interfaces
18899 +.implements Landroid/os/Parcelable;
18902 +# static fields
18903 +.field public static final CREATOR:Landroid/os/Parcelable$Creator; = null
18904 + .annotation system Ldalvik/annotation/Signature;
18905 + value = {
18906 + "Landroid/os/Parcelable$Creator",
18907 + "<",
18908 + "Landroid/privacy/PrivacySettings;",
18909 + ">;"
18911 + .end annotation
18912 +.end field
18914 +.field public static final CUSTOM:B = 0x2t
18916 +.field public static final DATA_ACCOUNTS_LIST:Ljava/lang/String; = "accountsList"
18918 +.field public static final DATA_ANDROID_ID:Ljava/lang/String; = "android_id"
18920 +.field public static final DATA_AUTH_TOKENS:Ljava/lang/String; = "authTokens"
18922 +.field public static final DATA_BOOKMARKS:Ljava/lang/String; = "bookmarks"
18924 +.field public static final DATA_CALENDAR:Ljava/lang/String; = "calendar"
18926 +.field public static final DATA_CALL_LOG:Ljava/lang/String; = "callLog"
18928 +.field public static final DATA_CAMERA:Ljava/lang/String; = "camera"
18930 +.field public static final DATA_CONTACTS:Ljava/lang/String; = "contacts"
18932 +.field public static final DATA_DEVICE_ID:Ljava/lang/String; = "deviceID"
18934 +.field public static final DATA_ICC_ACCESS:Ljava/lang/String; = "iccAccess"
18936 +.field public static final DATA_INCOMING_CALL:Ljava/lang/String; = "incomingCall"
18938 +.field public static final DATA_INTENT_BOOT_COMPLETED:Ljava/lang/String; = "intentBootCompleted"
18940 +.field public static final DATA_IP_TABLES:Ljava/lang/String; = "iptables"
18942 +.field public static final DATA_LINE_1_NUMBER:Ljava/lang/String; = "line1Number"
18944 +.field public static final DATA_LOCATION_GPS:Ljava/lang/String; = "locationGPS"
18946 +.field public static final DATA_LOCATION_NETWORK:Ljava/lang/String; = "locationNetwork"
18948 +.field public static final DATA_MMS:Ljava/lang/String; = "mms"
18950 +.field public static final DATA_MMS_SMS:Ljava/lang/String; = "mmsSms"
18952 +.field public static final DATA_NETWORK_INFO_CURRENT:Ljava/lang/String; = "networkInfoCurrent"
18954 +.field public static final DATA_NETWORK_INFO_SIM:Ljava/lang/String; = "networkInfoSIM"
18956 +.field public static final DATA_OUTGOING_CALL:Ljava/lang/String; = "outgoingCall"
18958 +.field public static final DATA_PHONE_CALL:Ljava/lang/String; = "phoneCall"
18960 +.field public static final DATA_RECORD_AUDIO:Ljava/lang/String; = "recordAudio"
18962 +.field public static final DATA_SEND_MMS:Ljava/lang/String; = "sendMms"
18964 +.field public static final DATA_SIM_SERIAL:Ljava/lang/String; = "simSerial"
18966 +.field public static final DATA_SMS:Ljava/lang/String; = "sms"
18968 +.field public static final DATA_SMS_SEND:Ljava/lang/String; = "SmsSend"
18970 +.field public static final DATA_SUBSCRIBER_ID:Ljava/lang/String; = "subscriberID"
18972 +.field public static final DATA_SWITCH_CONNECTIVITY:Ljava/lang/String; = "switchconnectivity"
18974 +.field public static final DATA_SWITCH_WIFI_STATE:Ljava/lang/String; = "switchWifiState"
18976 +.field public static final DATA_SYSTEM_LOGS:Ljava/lang/String; = "systemLogs"
18978 +.field public static final DATA_WIFI_INFO:Ljava/lang/String; = "wifiInfo"
18980 +.field public static final EMPTY:B = 0x1t
18982 +.field public static final ID_PATTERN:[Ljava/lang/String; = null
18984 +.field public static final RANDOM:B = 0x3t
18986 +.field public static final REAL:B = 0x0t
18988 +.field public static final SETTING_NOTIFY_OFF:B = 0x0t
18990 +.field public static final SETTING_NOTIFY_ON:B = 0x1t
18993 +# instance fields
18994 +.field private final _id:Ljava/lang/Integer;
18996 +.field private accountsAuthTokensSetting:B
18998 +.field private accountsSetting:B
19000 +.field private addOnManagementSetting:B
19002 +.field private allowedContacts:[I
19004 +.field private androidID:Ljava/lang/String;
19006 +.field private androidIdSetting:B
19008 +.field private bookmarksSetting:B
19010 +.field private calendarSetting:B
19012 +.field private callLogSetting:B
19014 +.field private cameraSetting:B
19016 +.field private contactsSetting:B
19018 +.field private deviceId:Ljava/lang/String;
19020 +.field private deviceIdSetting:B
19022 +.field private forceOnlineState:B
19024 +.field private iccAccessSetting:B
19026 +.field private incomingCallsSetting:B
19028 +.field private intentBootCompletedSetting:B
19030 +.field private ipTableProtectSetting:B
19032 +.field private line1Number:Ljava/lang/String;
19034 +.field private line1NumberSetting:B
19036 +.field private locationGpsLat:Ljava/lang/String;
19038 +.field private locationGpsLon:Ljava/lang/String;
19040 +.field private locationGpsSetting:B
19042 +.field private locationNetworkLat:Ljava/lang/String;
19044 +.field private locationNetworkLon:Ljava/lang/String;
19046 +.field private locationNetworkSetting:B
19048 +.field private mmsSetting:B
19050 +.field private networkInfoSetting:B
19052 +.field private notificationSetting:B
19054 +.field private outgoingCallsSetting:B
19056 +.field private packageName:Ljava/lang/String;
19058 +.field private phoneCallSetting:B
19060 +.field private recordAudioSetting:B
19062 +.field private sendMmsSetting:B
19064 +.field private simInfoSetting:B
19066 +.field private simSerialNumber:Ljava/lang/String;
19068 +.field private simSerialNumberSetting:B
19070 +.field private smsSendSetting:B
19072 +.field private smsSetting:B
19074 +.field private subscriberId:Ljava/lang/String;
19076 +.field private subscriberIdSetting:B
19078 +.field private switchConnectivitySetting:B
19080 +.field private switchWifiStateSetting:B
19082 +.field private systemLogsSetting:B
19084 +.field private uid:I
19086 +.field private wifiInfoSetting:B
19089 +# direct methods
19090 +.method static constructor <clinit>()V
19091 + .registers 3
19093 + const/16 v0, 0x10
19095 + new-array v0, v0, [Ljava/lang/String;
19097 + const/4 v1, 0x0
19099 + const-string v2, "0"
19101 + aput-object v2, v0, v1
19103 + const/4 v1, 0x1
19105 + const-string v2, "1"
19107 + aput-object v2, v0, v1
19109 + const/4 v1, 0x2
19111 + const-string v2, "2"
19113 + aput-object v2, v0, v1
19115 + const/4 v1, 0x3
19117 + const-string v2, "3"
19119 + aput-object v2, v0, v1
19121 + const/4 v1, 0x4
19123 + const-string v2, "4"
19125 + aput-object v2, v0, v1
19127 + const/4 v1, 0x5
19129 + const-string v2, "5"
19131 + aput-object v2, v0, v1
19133 + const/4 v1, 0x6
19135 + const-string v2, "6"
19137 + aput-object v2, v0, v1
19139 + const/4 v1, 0x7
19141 + const-string v2, "7"
19143 + aput-object v2, v0, v1
19145 + const/16 v1, 0x8
19147 + const-string v2, "8"
19149 + aput-object v2, v0, v1
19151 + const/16 v1, 0x9
19153 + const-string v2, "9"
19155 + aput-object v2, v0, v1
19157 + const/16 v1, 0xa
19159 + const-string v2, "a"
19161 + aput-object v2, v0, v1
19163 + const/16 v1, 0xb
19165 + const-string v2, "b"
19167 + aput-object v2, v0, v1
19169 + const/16 v1, 0xc
19171 + const-string v2, "c"
19173 + aput-object v2, v0, v1
19175 + const/16 v1, 0xd
19177 + const-string v2, "d"
19179 + aput-object v2, v0, v1
19181 + const/16 v1, 0xe
19183 + const-string v2, "e"
19185 + aput-object v2, v0, v1
19187 + const/16 v1, 0xf
19189 + const-string v2, "f"
19191 + aput-object v2, v0, v1
19193 + sput-object v0, Landroid/privacy/PrivacySettings;->ID_PATTERN:[Ljava/lang/String;
19195 + new-instance v0, Landroid/privacy/PrivacySettings$1;
19197 + invoke-direct {v0}, Landroid/privacy/PrivacySettings$1;-><init>()V
19199 + sput-object v0, Landroid/privacy/PrivacySettings;->CREATOR:Landroid/os/Parcelable$Creator;
19201 + return-void
19202 +.end method
19204 +.method public constructor <init>(Landroid/os/Parcel;)V
19205 + .registers 4
19207 + invoke-direct {p0}, Landroid/privacy/PrivacySettingsStub;-><init>()V
19209 + invoke-virtual {p1}, Landroid/os/Parcel;->readInt()I
19211 + move-result v0
19213 + const/4 v1, -0x1
19215 + if-ne v0, v1, :cond_122
19217 + const/4 v1, 0x0
19219 + :goto_b
19220 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->_id:Ljava/lang/Integer;
19222 + invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
19224 + move-result-object v1
19226 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->packageName:Ljava/lang/String;
19228 + invoke-virtual {p1}, Landroid/os/Parcel;->readInt()I
19230 + move-result v1
19232 + iput v1, p0, Landroid/privacy/PrivacySettings;->uid:I
19234 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
19236 + move-result v1
19238 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
19240 + invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
19242 + move-result-object v1
19244 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->deviceId:Ljava/lang/String;
19246 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
19248 + move-result v1
19250 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
19252 + invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
19254 + move-result-object v1
19256 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->line1Number:Ljava/lang/String;
19258 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
19260 + move-result v1
19262 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
19264 + invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
19266 + move-result-object v1
19268 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationGpsLat:Ljava/lang/String;
19270 + invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
19272 + move-result-object v1
19274 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationGpsLon:Ljava/lang/String;
19276 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
19278 + move-result v1
19280 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
19282 + invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
19284 + move-result-object v1
19286 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLat:Ljava/lang/String;
19288 + invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
19290 + move-result-object v1
19292 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLon:Ljava/lang/String;
19294 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
19296 + move-result v1
19298 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->networkInfoSetting:B
19300 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
19302 + move-result v1
19304 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->simInfoSetting:B
19306 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
19308 + move-result v1
19310 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
19312 + invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
19314 + move-result-object v1
19316 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->simSerialNumber:Ljava/lang/String;
19318 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
19320 + move-result v1
19322 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
19324 + invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
19326 + move-result-object v1
19328 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->subscriberId:Ljava/lang/String;
19330 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
19332 + move-result v1
19334 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->accountsSetting:B
19336 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
19338 + move-result v1
19340 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->accountsAuthTokensSetting:B
19342 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
19344 + move-result v1
19346 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->outgoingCallsSetting:B
19348 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
19350 + move-result v1
19352 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->incomingCallsSetting:B
19354 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
19356 + move-result v1
19358 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->contactsSetting:B
19360 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
19362 + move-result v1
19364 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->calendarSetting:B
19366 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
19368 + move-result v1
19370 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->mmsSetting:B
19372 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
19374 + move-result v1
19376 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->smsSetting:B
19378 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
19380 + move-result v1
19382 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->callLogSetting:B
19384 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
19386 + move-result v1
19388 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->bookmarksSetting:B
19390 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
19392 + move-result v1
19394 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->systemLogsSetting:B
19396 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
19398 + move-result v1
19400 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->notificationSetting:B
19402 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
19404 + move-result v1
19406 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->intentBootCompletedSetting:B
19408 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
19410 + move-result v1
19412 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->cameraSetting:B
19414 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
19416 + move-result v1
19418 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->recordAudioSetting:B
19420 + invoke-virtual {p1}, Landroid/os/Parcel;->createIntArray()[I
19422 + move-result-object v1
19424 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->allowedContacts:[I
19426 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
19428 + move-result v1
19430 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->smsSendSetting:B
19432 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
19434 + move-result v1
19436 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->phoneCallSetting:B
19438 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
19440 + move-result v1
19442 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->ipTableProtectSetting:B
19444 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
19446 + move-result v1
19448 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->iccAccessSetting:B
19450 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
19452 + move-result v1
19454 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->addOnManagementSetting:B
19456 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
19458 + move-result v1
19460 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
19462 + invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
19464 + move-result-object v1
19466 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->androidID:Ljava/lang/String;
19468 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
19470 + move-result v1
19472 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->wifiInfoSetting:B
19474 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
19476 + move-result v1
19478 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->switchConnectivitySetting:B
19480 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
19482 + move-result v1
19484 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->sendMmsSetting:B
19486 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
19488 + move-result v1
19490 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->forceOnlineState:B
19492 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
19494 + move-result v1
19496 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->switchWifiStateSetting:B
19498 + return-void
19500 + :cond_122
19501 + invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
19503 + move-result-object v1
19505 + goto/16 :goto_b
19506 +.end method
19508 +.method public constructor <init>(Ljava/lang/Integer;Ljava/lang/String;I)V
19509 + .registers 7
19511 + const/4 v2, 0x1
19513 + const/4 v1, 0x0
19515 + const/4 v0, 0x0
19517 + invoke-direct {p0}, Landroid/privacy/PrivacySettingsStub;-><init>()V
19519 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->_id:Ljava/lang/Integer;
19521 + iput-object p2, p0, Landroid/privacy/PrivacySettings;->packageName:Ljava/lang/String;
19523 + iput p3, p0, Landroid/privacy/PrivacySettings;->uid:I
19525 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
19527 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->deviceId:Ljava/lang/String;
19529 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
19531 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->line1Number:Ljava/lang/String;
19533 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
19535 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationGpsLat:Ljava/lang/String;
19537 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationGpsLon:Ljava/lang/String;
19539 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
19541 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLat:Ljava/lang/String;
19543 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLon:Ljava/lang/String;
19545 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->networkInfoSetting:B
19547 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->simInfoSetting:B
19549 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
19551 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->simSerialNumber:Ljava/lang/String;
19553 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
19555 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->subscriberId:Ljava/lang/String;
19557 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsSetting:B
19559 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsAuthTokensSetting:B
19561 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->outgoingCallsSetting:B
19563 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->incomingCallsSetting:B
19565 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->contactsSetting:B
19567 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->calendarSetting:B
19569 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->mmsSetting:B
19571 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSetting:B
19573 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->callLogSetting:B
19575 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->bookmarksSetting:B
19577 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->systemLogsSetting:B
19579 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->notificationSetting:B
19581 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->intentBootCompletedSetting:B
19583 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->cameraSetting:B
19585 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->recordAudioSetting:B
19587 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->allowedContacts:[I
19589 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSendSetting:B
19591 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->phoneCallSetting:B
19593 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->ipTableProtectSetting:B
19595 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->iccAccessSetting:B
19597 + iput-byte v2, p0, Landroid/privacy/PrivacySettings;->addOnManagementSetting:B
19599 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
19601 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->androidID:Ljava/lang/String;
19603 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->wifiInfoSetting:B
19605 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->switchConnectivitySetting:B
19607 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->sendMmsSetting:B
19609 + iput-byte v2, p0, Landroid/privacy/PrivacySettings;->forceOnlineState:B
19611 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->switchWifiStateSetting:B
19613 + return-void
19614 +.end method
19616 +.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
19617 + .registers 50
19619 + invoke-direct {p0}, Landroid/privacy/PrivacySettingsStub;-><init>()V
19621 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->_id:Ljava/lang/Integer;
19623 + iput-object p2, p0, Landroid/privacy/PrivacySettings;->packageName:Ljava/lang/String;
19625 + iput p3, p0, Landroid/privacy/PrivacySettings;->uid:I
19627 + iput-byte p4, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
19629 + iput-object p5, p0, Landroid/privacy/PrivacySettings;->deviceId:Ljava/lang/String;
19631 + iput-byte p6, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
19633 + iput-object p7, p0, Landroid/privacy/PrivacySettings;->line1Number:Ljava/lang/String;
19635 + iput-byte p8, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
19637 + iput-object p9, p0, Landroid/privacy/PrivacySettings;->locationGpsLat:Ljava/lang/String;
19639 + iput-object p10, p0, Landroid/privacy/PrivacySettings;->locationGpsLon:Ljava/lang/String;
19641 + iput-byte p11, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
19643 + iput-object p12, p0, Landroid/privacy/PrivacySettings;->locationNetworkLat:Ljava/lang/String;
19645 + iput-object p13, p0, Landroid/privacy/PrivacySettings;->locationNetworkLon:Ljava/lang/String;
19647 + iput-byte p14, p0, Landroid/privacy/PrivacySettings;->networkInfoSetting:B
19649 + move/from16 v0, p15
19651 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->simInfoSetting:B
19653 + move/from16 v0, p16
19655 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
19657 + move-object/from16 v0, p17
19659 + iput-object v0, p0, Landroid/privacy/PrivacySettings;->simSerialNumber:Ljava/lang/String;
19661 + move/from16 v0, p18
19663 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
19665 + move-object/from16 v0, p19
19667 + iput-object v0, p0, Landroid/privacy/PrivacySettings;->subscriberId:Ljava/lang/String;
19669 + move/from16 v0, p20
19671 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsSetting:B
19673 + move/from16 v0, p21
19675 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsAuthTokensSetting:B
19677 + move/from16 v0, p22
19679 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->outgoingCallsSetting:B
19681 + move/from16 v0, p23
19683 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->incomingCallsSetting:B
19685 + move/from16 v0, p24
19687 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->contactsSetting:B
19689 + move/from16 v0, p25
19691 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->calendarSetting:B
19693 + move/from16 v0, p26
19695 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->mmsSetting:B
19697 + move/from16 v0, p27
19699 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSetting:B
19701 + move/from16 v0, p28
19703 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->callLogSetting:B
19705 + move/from16 v0, p29
19707 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->bookmarksSetting:B
19709 + move/from16 v0, p30
19711 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->systemLogsSetting:B
19713 + move/from16 v0, p34
19715 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->notificationSetting:B
19717 + move/from16 v0, p35
19719 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->intentBootCompletedSetting:B
19721 + move/from16 v0, p32
19723 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->cameraSetting:B
19725 + move/from16 v0, p33
19727 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->recordAudioSetting:B
19729 + move-object/from16 v0, p36
19731 + iput-object v0, p0, Landroid/privacy/PrivacySettings;->allowedContacts:[I
19733 + move/from16 v0, p37
19735 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSendSetting:B
19737 + move/from16 v0, p38
19739 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->phoneCallSetting:B
19741 + move/from16 v0, p39
19743 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->ipTableProtectSetting:B
19745 + move/from16 v0, p40
19747 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->iccAccessSetting:B
19749 + move/from16 v0, p41
19751 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->addOnManagementSetting:B
19753 + move/from16 v0, p42
19755 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
19757 + move-object/from16 v0, p43
19759 + iput-object v0, p0, Landroid/privacy/PrivacySettings;->androidID:Ljava/lang/String;
19761 + move/from16 v0, p44
19763 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->wifiInfoSetting:B
19765 + move/from16 v0, p45
19767 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->switchConnectivitySetting:B
19769 + move/from16 v0, p46
19771 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->sendMmsSetting:B
19773 + move/from16 v0, p47
19775 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->forceOnlineState:B
19777 + move/from16 v0, p48
19779 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->switchWifiStateSetting:B
19781 + return-void
19782 +.end method
19784 +.method public constructor <init>(Ljava/lang/Integer;Ljava/lang/String;IZ)V
19785 + .registers 9
19787 + const/4 v3, 0x0
19789 + const/4 v2, 0x3
19791 + const/4 v1, 0x0
19793 + const/4 v0, 0x1
19795 + invoke-direct {p0}, Landroid/privacy/PrivacySettingsStub;-><init>()V
19797 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->_id:Ljava/lang/Integer;
19799 + iput-object p2, p0, Landroid/privacy/PrivacySettings;->packageName:Ljava/lang/String;
19801 + iput p3, p0, Landroid/privacy/PrivacySettings;->uid:I
19803 + if-eqz p4, :cond_68
19805 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
19807 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->deviceId:Ljava/lang/String;
19809 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
19811 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->line1Number:Ljava/lang/String;
19813 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
19815 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationGpsLat:Ljava/lang/String;
19817 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationGpsLon:Ljava/lang/String;
19819 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
19821 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLat:Ljava/lang/String;
19823 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLon:Ljava/lang/String;
19825 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->networkInfoSetting:B
19827 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->simInfoSetting:B
19829 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
19831 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->simSerialNumber:Ljava/lang/String;
19833 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
19835 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->subscriberId:Ljava/lang/String;
19837 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsSetting:B
19839 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsAuthTokensSetting:B
19841 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->outgoingCallsSetting:B
19843 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->incomingCallsSetting:B
19845 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->contactsSetting:B
19847 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->calendarSetting:B
19849 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->mmsSetting:B
19851 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSetting:B
19853 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->callLogSetting:B
19855 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->bookmarksSetting:B
19857 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->systemLogsSetting:B
19859 + iput-byte v3, p0, Landroid/privacy/PrivacySettings;->notificationSetting:B
19861 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->intentBootCompletedSetting:B
19863 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->cameraSetting:B
19865 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->recordAudioSetting:B
19867 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->allowedContacts:[I
19869 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSendSetting:B
19871 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->phoneCallSetting:B
19873 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->ipTableProtectSetting:B
19875 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->iccAccessSetting:B
19877 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->addOnManagementSetting:B
19879 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
19881 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->androidID:Ljava/lang/String;
19883 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->wifiInfoSetting:B
19885 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->switchConnectivitySetting:B
19887 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->sendMmsSetting:B
19889 + iput-byte v3, p0, Landroid/privacy/PrivacySettings;->forceOnlineState:B
19891 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->switchWifiStateSetting:B
19893 + :goto_67
19894 + return-void
19896 + :cond_68
19897 + iput-byte v2, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
19899 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->deviceId:Ljava/lang/String;
19901 + iput-byte v2, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
19903 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->line1Number:Ljava/lang/String;
19905 + iput-byte v2, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
19907 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationGpsLat:Ljava/lang/String;
19909 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationGpsLon:Ljava/lang/String;
19911 + iput-byte v2, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
19913 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLat:Ljava/lang/String;
19915 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLon:Ljava/lang/String;
19917 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->networkInfoSetting:B
19919 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->simInfoSetting:B
19921 + iput-byte v2, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
19923 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->simSerialNumber:Ljava/lang/String;
19925 + iput-byte v2, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
19927 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->subscriberId:Ljava/lang/String;
19929 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsSetting:B
19931 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsAuthTokensSetting:B
19933 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->outgoingCallsSetting:B
19935 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->incomingCallsSetting:B
19937 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->contactsSetting:B
19939 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->calendarSetting:B
19941 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->mmsSetting:B
19943 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSetting:B
19945 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->callLogSetting:B
19947 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->bookmarksSetting:B
19949 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->systemLogsSetting:B
19951 + iput-byte v3, p0, Landroid/privacy/PrivacySettings;->notificationSetting:B
19953 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->intentBootCompletedSetting:B
19955 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->cameraSetting:B
19957 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->recordAudioSetting:B
19959 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->allowedContacts:[I
19961 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSendSetting:B
19963 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->phoneCallSetting:B
19965 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->ipTableProtectSetting:B
19967 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->iccAccessSetting:B
19969 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->addOnManagementSetting:B
19971 + iput-byte v2, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
19973 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->androidID:Ljava/lang/String;
19975 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->wifiInfoSetting:B
19977 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->switchConnectivitySetting:B
19979 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->sendMmsSetting:B
19981 + iput-byte v3, p0, Landroid/privacy/PrivacySettings;->forceOnlineState:B
19983 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->switchWifiStateSetting:B
19985 + goto :goto_67
19986 +.end method
19988 +.method private getRandomLat()Ljava/lang/String;
19989 + .registers 10
19991 + const-wide v7, 0x4056800000000000L
19993 + invoke-static {}, Ljava/lang/Math;->random()D
19995 + move-result-wide v3
19997 + const-wide v5, 0x4066800000000000L
19999 + mul-double v0, v3, v5
20001 + cmpl-double v3, v0, v7
20003 + if-lez v3, :cond_35
20005 + new-instance v2, Ljava/math/BigDecimal;
20007 + sub-double v3, v0, v7
20009 + invoke-direct {v2, v3, v4}, Ljava/math/BigDecimal;-><init>(D)V
20011 + :goto_1b
20012 + new-instance v3, Ljava/lang/StringBuilder;
20014 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
20016 + const/4 v4, 0x6
20018 + const/4 v5, 0x4
20020 + invoke-virtual {v2, v4, v5}, Ljava/math/BigDecimal;->setScale(II)Ljava/math/BigDecimal;
20022 + move-result-object v4
20024 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
20026 + move-result-object v3
20028 + const-string v4, ""
20030 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20032 + move-result-object v3
20034 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
20036 + move-result-object v3
20038 + return-object v3
20040 + :cond_35
20041 + new-instance v2, Ljava/math/BigDecimal;
20043 + neg-double v3, v0
20045 + invoke-direct {v2, v3, v4}, Ljava/math/BigDecimal;-><init>(D)V
20047 + goto :goto_1b
20048 +.end method
20050 +.method private getRandomLon()Ljava/lang/String;
20051 + .registers 10
20053 + const-wide v7, 0x4066800000000000L
20055 + invoke-static {}, Ljava/lang/Math;->random()D
20057 + move-result-wide v3
20059 + const-wide v5, 0x4076800000000000L
20061 + mul-double v0, v3, v5
20063 + cmpl-double v3, v0, v7
20065 + if-lez v3, :cond_35
20067 + new-instance v2, Ljava/math/BigDecimal;
20069 + sub-double v3, v0, v7
20071 + invoke-direct {v2, v3, v4}, Ljava/math/BigDecimal;-><init>(D)V
20073 + :goto_1b
20074 + new-instance v3, Ljava/lang/StringBuilder;
20076 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
20078 + const/4 v4, 0x6
20080 + const/4 v5, 0x4
20082 + invoke-virtual {v2, v4, v5}, Ljava/math/BigDecimal;->setScale(II)Ljava/math/BigDecimal;
20084 + move-result-object v4
20086 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
20088 + move-result-object v3
20090 + const-string v4, ""
20092 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20094 + move-result-object v3
20096 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
20098 + move-result-object v3
20100 + return-object v3
20102 + :cond_35
20103 + new-instance v2, Ljava/math/BigDecimal;
20105 + neg-double v3, v0
20107 + invoke-direct {v2, v3, v4}, Ljava/math/BigDecimal;-><init>(D)V
20109 + goto :goto_1b
20110 +.end method
20113 +# virtual methods
20114 +.method public describeContents()I
20115 + .registers 2
20117 + const/4 v0, 0x0
20119 + return v0
20120 +.end method
20122 +.method public getAccountsAuthTokensSetting()B
20123 + .registers 2
20125 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsAuthTokensSetting:B
20127 + return v0
20128 +.end method
20130 +.method public getAccountsSetting()B
20131 + .registers 2
20133 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsSetting:B
20135 + return v0
20136 +.end method
20138 +.method public getAddOnManagementSetting()B
20139 + .registers 2
20141 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->addOnManagementSetting:B
20143 + return v0
20144 +.end method
20146 +.method public getAllowedContacts()[I
20147 + .registers 2
20149 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->allowedContacts:[I
20151 + return-object v0
20152 +.end method
20154 +.method public getAndroidID()Ljava/lang/String;
20155 + .registers 6
20157 + iget-byte v3, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
20159 + const/4 v4, 0x1
20161 + if-ne v3, v4, :cond_9
20163 + const-string/jumbo v3, "q4a5w896ay21dr46"
20165 + :goto_8
20166 + return-object v3
20168 + :cond_9
20169 + iget-byte v3, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
20171 + const/4 v4, 0x3
20173 + if-ne v3, v4, :cond_36
20175 + new-instance v2, Ljava/util/Random;
20177 + invoke-direct {v2}, Ljava/util/Random;-><init>()V
20179 + new-instance v1, Ljava/lang/StringBuilder;
20181 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
20183 + const/4 v0, 0x0
20185 + :goto_19
20186 + sget-object v3, Landroid/privacy/PrivacySettings;->ID_PATTERN:[Ljava/lang/String;
20188 + array-length v3, v3
20190 + if-ge v0, v3, :cond_31
20192 + sget-object v3, Landroid/privacy/PrivacySettings;->ID_PATTERN:[Ljava/lang/String;
20194 + sget-object v4, Landroid/privacy/PrivacySettings;->ID_PATTERN:[Ljava/lang/String;
20196 + array-length v4, v4
20198 + add-int/lit8 v4, v4, -0x1
20200 + invoke-virtual {v2, v4}, Ljava/util/Random;->nextInt(I)I
20202 + move-result v4
20204 + aget-object v3, v3, v4
20206 + invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20208 + add-int/lit8 v0, v0, 0x1
20210 + goto :goto_19
20212 + :cond_31
20213 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
20215 + move-result-object v3
20217 + goto :goto_8
20219 + :cond_36
20220 + iget-object v3, p0, Landroid/privacy/PrivacySettings;->androidID:Ljava/lang/String;
20222 + goto :goto_8
20223 +.end method
20225 +.method public getAndroidIdSetting()B
20226 + .registers 2
20228 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
20230 + return v0
20231 +.end method
20233 +.method public getBookmarksSetting()B
20234 + .registers 2
20236 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->bookmarksSetting:B
20238 + return v0
20239 +.end method
20241 +.method public getCalendarSetting()B
20242 + .registers 2
20244 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->calendarSetting:B
20246 + return v0
20247 +.end method
20249 +.method public getCallLogSetting()B
20250 + .registers 2
20252 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->callLogSetting:B
20254 + return v0
20255 +.end method
20257 +.method public getCameraSetting()B
20258 + .registers 2
20260 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->cameraSetting:B
20262 + return v0
20263 +.end method
20265 +.method public getContactsSetting()B
20266 + .registers 2
20268 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->contactsSetting:B
20270 + return v0
20271 +.end method
20273 +.method public getDeviceId()Ljava/lang/String;
20274 + .registers 9
20276 + const/4 v7, 0x0
20278 + const/16 v6, 0xf
20280 + iget-byte v3, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
20282 + const/4 v4, 0x1
20284 + if-ne v3, v4, :cond_b
20286 + const-string v3, ""
20288 + :goto_a
20289 + return-object v3
20291 + :cond_b
20292 + iget-byte v3, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
20294 + const/4 v4, 0x3
20296 + if-ne v3, v4, :cond_62
20298 + new-instance v1, Ljava/util/Random;
20300 + invoke-direct {v1}, Ljava/util/Random;-><init>()V
20302 + new-instance v3, Ljava/lang/StringBuilder;
20304 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
20306 + invoke-virtual {v1}, Ljava/util/Random;->nextLong()J
20308 + move-result-wide v4
20310 + invoke-static {v4, v5}, Ljava/lang/Math;->abs(J)J
20312 + move-result-wide v4
20314 + invoke-virtual {v3, v4, v5}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
20316 + move-result-object v3
20318 + const-string v4, ""
20320 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20322 + move-result-object v3
20324 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
20326 + move-result-object v2
20328 + invoke-virtual {v2}, Ljava/lang/String;->length()I
20330 + move-result v3
20332 + if-le v3, v6, :cond_3b
20334 + invoke-virtual {v2, v7, v6}, Ljava/lang/String;->substring(II)Ljava/lang/String;
20336 + move-result-object v3
20338 + goto :goto_a
20340 + :cond_3b
20341 + invoke-virtual {v2}, Ljava/lang/String;->length()I
20343 + move-result v0
20345 + :goto_3f
20346 + const/16 v3, 0x10
20348 + if-gt v0, v3, :cond_5d
20350 + new-instance v3, Ljava/lang/StringBuilder;
20352 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
20354 + invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20356 + move-result-object v3
20358 + const/16 v4, 0x9
20360 + invoke-virtual {v1, v4}, Ljava/util/Random;->nextInt(I)I
20362 + move-result v4
20364 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20366 + move-result-object v3
20368 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
20370 + move-result-object v2
20372 + add-int/lit8 v0, v0, 0x1
20374 + goto :goto_3f
20376 + :cond_5d
20377 + invoke-virtual {v2, v7, v6}, Ljava/lang/String;->substring(II)Ljava/lang/String;
20379 + move-result-object v3
20381 + goto :goto_a
20383 + :cond_62
20384 + iget-object v3, p0, Landroid/privacy/PrivacySettings;->deviceId:Ljava/lang/String;
20386 + goto :goto_a
20387 +.end method
20389 +.method public getDeviceIdSetting()B
20390 + .registers 2
20392 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
20394 + return v0
20395 +.end method
20397 +.method public getForceOnlineState()B
20398 + .registers 2
20400 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->forceOnlineState:B
20402 + return v0
20403 +.end method
20405 +.method public getIccAccessSetting()B
20406 + .registers 2
20408 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->iccAccessSetting:B
20410 + return v0
20411 +.end method
20413 +.method public getIncomingCallsSetting()B
20414 + .registers 2
20416 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->incomingCallsSetting:B
20418 + return v0
20419 +.end method
20421 +.method public getIntentBootCompletedSetting()B
20422 + .registers 2
20424 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->intentBootCompletedSetting:B
20426 + return v0
20427 +.end method
20429 +.method public getIpTableProtectSetting()B
20430 + .registers 2
20432 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->ipTableProtectSetting:B
20434 + return v0
20435 +.end method
20437 +.method public getLine1Number()Ljava/lang/String;
20438 + .registers 9
20440 + const/4 v7, 0x0
20442 + const/16 v6, 0xd
20444 + iget-byte v3, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
20446 + const/4 v4, 0x1
20448 + if-ne v3, v4, :cond_b
20450 + const-string v3, ""
20452 + :goto_a
20453 + return-object v3
20455 + :cond_b
20456 + iget-byte v3, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
20458 + const/4 v4, 0x3
20460 + if-ne v3, v4, :cond_68
20462 + new-instance v1, Ljava/util/Random;
20464 + invoke-direct {v1}, Ljava/util/Random;-><init>()V
20466 + new-instance v3, Ljava/lang/StringBuilder;
20468 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
20470 + const-string v4, "+"
20472 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20474 + move-result-object v3
20476 + invoke-virtual {v1}, Ljava/util/Random;->nextLong()J
20478 + move-result-wide v4
20480 + invoke-static {v4, v5}, Ljava/lang/Math;->abs(J)J
20482 + move-result-wide v4
20484 + invoke-virtual {v3, v4, v5}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
20486 + move-result-object v3
20488 + const-string v4, ""
20490 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20492 + move-result-object v3
20494 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
20496 + move-result-object v2
20498 + invoke-virtual {v2}, Ljava/lang/String;->length()I
20500 + move-result v3
20502 + if-le v3, v6, :cond_41
20504 + invoke-virtual {v2, v7, v6}, Ljava/lang/String;->substring(II)Ljava/lang/String;
20506 + move-result-object v3
20508 + goto :goto_a
20510 + :cond_41
20511 + invoke-virtual {v2}, Ljava/lang/String;->length()I
20513 + move-result v0
20515 + :goto_45
20516 + const/16 v3, 0xe
20518 + if-gt v0, v3, :cond_63
20520 + new-instance v3, Ljava/lang/StringBuilder;
20522 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
20524 + invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20526 + move-result-object v3
20528 + const/16 v4, 0x9
20530 + invoke-virtual {v1, v4}, Ljava/util/Random;->nextInt(I)I
20532 + move-result v4
20534 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20536 + move-result-object v3
20538 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
20540 + move-result-object v2
20542 + add-int/lit8 v0, v0, 0x1
20544 + goto :goto_45
20546 + :cond_63
20547 + invoke-virtual {v2, v7, v6}, Ljava/lang/String;->substring(II)Ljava/lang/String;
20549 + move-result-object v3
20551 + goto :goto_a
20553 + :cond_68
20554 + iget-object v3, p0, Landroid/privacy/PrivacySettings;->line1Number:Ljava/lang/String;
20556 + goto :goto_a
20557 +.end method
20559 +.method public getLine1NumberSetting()B
20560 + .registers 2
20562 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
20564 + return v0
20565 +.end method
20567 +.method public getLocationGpsLat()Ljava/lang/String;
20568 + .registers 3
20570 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
20572 + const/4 v1, 0x1
20574 + if-ne v0, v1, :cond_8
20576 + const-string v0, ""
20578 + :goto_7
20579 + return-object v0
20581 + :cond_8
20582 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
20584 + const/4 v1, 0x3
20586 + if-ne v0, v1, :cond_12
20588 + invoke-direct {p0}, Landroid/privacy/PrivacySettings;->getRandomLat()Ljava/lang/String;
20590 + move-result-object v0
20592 + goto :goto_7
20594 + :cond_12
20595 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->locationGpsLat:Ljava/lang/String;
20597 + goto :goto_7
20598 +.end method
20600 +.method public getLocationGpsLon()Ljava/lang/String;
20601 + .registers 3
20603 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
20605 + const/4 v1, 0x1
20607 + if-ne v0, v1, :cond_8
20609 + const-string v0, ""
20611 + :goto_7
20612 + return-object v0
20614 + :cond_8
20615 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
20617 + const/4 v1, 0x3
20619 + if-ne v0, v1, :cond_12
20621 + invoke-direct {p0}, Landroid/privacy/PrivacySettings;->getRandomLon()Ljava/lang/String;
20623 + move-result-object v0
20625 + goto :goto_7
20627 + :cond_12
20628 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->locationGpsLon:Ljava/lang/String;
20630 + goto :goto_7
20631 +.end method
20633 +.method public getLocationGpsSetting()B
20634 + .registers 2
20636 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
20638 + return v0
20639 +.end method
20641 +.method public getLocationNetworkLat()Ljava/lang/String;
20642 + .registers 3
20644 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
20646 + const/4 v1, 0x1
20648 + if-ne v0, v1, :cond_8
20650 + const-string v0, ""
20652 + :goto_7
20653 + return-object v0
20655 + :cond_8
20656 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
20658 + const/4 v1, 0x3
20660 + if-ne v0, v1, :cond_12
20662 + invoke-direct {p0}, Landroid/privacy/PrivacySettings;->getRandomLat()Ljava/lang/String;
20664 + move-result-object v0
20666 + goto :goto_7
20668 + :cond_12
20669 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkLat:Ljava/lang/String;
20671 + goto :goto_7
20672 +.end method
20674 +.method public getLocationNetworkLon()Ljava/lang/String;
20675 + .registers 3
20677 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
20679 + const/4 v1, 0x1
20681 + if-ne v0, v1, :cond_8
20683 + const-string v0, ""
20685 + :goto_7
20686 + return-object v0
20688 + :cond_8
20689 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
20691 + const/4 v1, 0x3
20693 + if-ne v0, v1, :cond_12
20695 + invoke-direct {p0}, Landroid/privacy/PrivacySettings;->getRandomLon()Ljava/lang/String;
20697 + move-result-object v0
20699 + goto :goto_7
20701 + :cond_12
20702 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkLon:Ljava/lang/String;
20704 + goto :goto_7
20705 +.end method
20707 +.method public getLocationNetworkSetting()B
20708 + .registers 2
20710 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
20712 + return v0
20713 +.end method
20715 +.method public getMmsSetting()B
20716 + .registers 2
20718 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->mmsSetting:B
20720 + return v0
20721 +.end method
20723 +.method public getNetworkInfoSetting()B
20724 + .registers 2
20726 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->networkInfoSetting:B
20728 + return v0
20729 +.end method
20731 +.method public getNotificationSetting()B
20732 + .registers 2
20734 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->notificationSetting:B
20736 + return v0
20737 +.end method
20739 +.method public getOutgoingCallsSetting()B
20740 + .registers 2
20742 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->outgoingCallsSetting:B
20744 + return v0
20745 +.end method
20747 +.method public getPackageName()Ljava/lang/String;
20748 + .registers 2
20750 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->packageName:Ljava/lang/String;
20752 + return-object v0
20753 +.end method
20755 +.method public getPhoneCallSetting()B
20756 + .registers 2
20758 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->phoneCallSetting:B
20760 + return v0
20761 +.end method
20763 +.method public getRecordAudioSetting()B
20764 + .registers 2
20766 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->recordAudioSetting:B
20768 + return v0
20769 +.end method
20771 +.method public getSendMmsSetting()B
20772 + .registers 2
20774 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->sendMmsSetting:B
20776 + return v0
20777 +.end method
20779 +.method public getSimInfoSetting()B
20780 + .registers 2
20782 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->simInfoSetting:B
20784 + return v0
20785 +.end method
20787 +.method public getSimSerialNumber()Ljava/lang/String;
20788 + .registers 5
20790 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
20792 + const/4 v2, 0x1
20794 + if-ne v1, v2, :cond_8
20796 + const-string v1, ""
20798 + :goto_7
20799 + return-object v1
20801 + :cond_8
20802 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
20804 + const/4 v2, 0x3
20806 + if-ne v1, v2, :cond_2e
20808 + new-instance v0, Ljava/util/Random;
20810 + invoke-direct {v0}, Ljava/util/Random;-><init>()V
20812 + new-instance v1, Ljava/lang/StringBuilder;
20814 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
20816 + invoke-virtual {v0}, Ljava/util/Random;->nextLong()J
20818 + move-result-wide v2
20820 + invoke-static {v2, v3}, Ljava/lang/Math;->abs(J)J
20822 + move-result-wide v2
20824 + invoke-virtual {v1, v2, v3}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
20826 + move-result-object v1
20828 + const-string v2, ""
20830 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20832 + move-result-object v1
20834 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
20836 + move-result-object v1
20838 + goto :goto_7
20840 + :cond_2e
20841 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->simSerialNumber:Ljava/lang/String;
20843 + goto :goto_7
20844 +.end method
20846 +.method public getSimSerialNumberSetting()B
20847 + .registers 2
20849 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
20851 + return v0
20852 +.end method
20854 +.method public getSmsSendSetting()B
20855 + .registers 2
20857 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSendSetting:B
20859 + return v0
20860 +.end method
20862 +.method public getSmsSetting()B
20863 + .registers 2
20865 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSetting:B
20867 + return v0
20868 +.end method
20870 +.method public getSubscriberId()Ljava/lang/String;
20871 + .registers 9
20873 + const/4 v7, 0x0
20875 + const/16 v6, 0xf
20877 + iget-byte v3, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
20879 + const/4 v4, 0x1
20881 + if-ne v3, v4, :cond_b
20883 + const-string v3, ""
20885 + :goto_a
20886 + return-object v3
20888 + :cond_b
20889 + iget-byte v3, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
20891 + const/4 v4, 0x3
20893 + if-ne v3, v4, :cond_62
20895 + new-instance v1, Ljava/util/Random;
20897 + invoke-direct {v1}, Ljava/util/Random;-><init>()V
20899 + new-instance v3, Ljava/lang/StringBuilder;
20901 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
20903 + invoke-virtual {v1}, Ljava/util/Random;->nextLong()J
20905 + move-result-wide v4
20907 + invoke-static {v4, v5}, Ljava/lang/Math;->abs(J)J
20909 + move-result-wide v4
20911 + invoke-virtual {v3, v4, v5}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
20913 + move-result-object v3
20915 + const-string v4, ""
20917 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20919 + move-result-object v3
20921 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
20923 + move-result-object v2
20925 + invoke-virtual {v2}, Ljava/lang/String;->length()I
20927 + move-result v3
20929 + if-le v3, v6, :cond_3b
20931 + invoke-virtual {v2, v7, v6}, Ljava/lang/String;->substring(II)Ljava/lang/String;
20933 + move-result-object v3
20935 + goto :goto_a
20937 + :cond_3b
20938 + invoke-virtual {v2}, Ljava/lang/String;->length()I
20940 + move-result v0
20942 + :goto_3f
20943 + const/16 v3, 0x10
20945 + if-gt v0, v3, :cond_5d
20947 + new-instance v3, Ljava/lang/StringBuilder;
20949 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
20951 + invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20953 + move-result-object v3
20955 + const/16 v4, 0x9
20957 + invoke-virtual {v1, v4}, Ljava/util/Random;->nextInt(I)I
20959 + move-result v4
20961 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20963 + move-result-object v3
20965 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
20967 + move-result-object v2
20969 + add-int/lit8 v0, v0, 0x1
20971 + goto :goto_3f
20973 + :cond_5d
20974 + invoke-virtual {v2, v7, v6}, Ljava/lang/String;->substring(II)Ljava/lang/String;
20976 + move-result-object v3
20978 + goto :goto_a
20980 + :cond_62
20981 + iget-object v3, p0, Landroid/privacy/PrivacySettings;->subscriberId:Ljava/lang/String;
20983 + goto :goto_a
20984 +.end method
20986 +.method public getSubscriberIdSetting()B
20987 + .registers 2
20989 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
20991 + return v0
20992 +.end method
20994 +.method public getSwitchConnectivitySetting()B
20995 + .registers 2
20997 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->switchConnectivitySetting:B
20999 + return v0
21000 +.end method
21002 +.method public getSwitchWifiStateSetting()B
21003 + .registers 2
21005 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->switchWifiStateSetting:B
21007 + return v0
21008 +.end method
21010 +.method public getSystemLogsSetting()B
21011 + .registers 2
21013 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->systemLogsSetting:B
21015 + return v0
21016 +.end method
21018 +.method public getUid()I
21019 + .registers 2
21021 + iget v0, p0, Landroid/privacy/PrivacySettings;->uid:I
21023 + return v0
21024 +.end method
21026 +.method public getWifiInfoSetting()B
21027 + .registers 2
21029 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->wifiInfoSetting:B
21031 + return v0
21032 +.end method
21034 +.method public get_id()Ljava/lang/Integer;
21035 + .registers 2
21037 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->_id:Ljava/lang/Integer;
21039 + return-object v0
21040 +.end method
21042 +.method public setAccountsAuthTokensSetting(B)V
21043 + .registers 2
21045 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->accountsAuthTokensSetting:B
21047 + return-void
21048 +.end method
21050 +.method public setAccountsSetting(B)V
21051 + .registers 2
21053 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->accountsSetting:B
21055 + return-void
21056 +.end method
21058 +.method public setAddOnManagementSetting(B)V
21059 + .registers 2
21061 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->addOnManagementSetting:B
21063 + return-void
21064 +.end method
21066 +.method public setAllowedContacts([I)V
21067 + .registers 2
21069 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->allowedContacts:[I
21071 + return-void
21072 +.end method
21074 +.method public setAndroidID(Ljava/lang/String;)V
21075 + .registers 2
21077 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->androidID:Ljava/lang/String;
21079 + return-void
21080 +.end method
21082 +.method public setAndroidIdSetting(B)V
21083 + .registers 2
21085 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
21087 + return-void
21088 +.end method
21090 +.method public setBookmarksSetting(B)V
21091 + .registers 2
21093 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->bookmarksSetting:B
21095 + return-void
21096 +.end method
21098 +.method public setCalendarSetting(B)V
21099 + .registers 2
21101 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->calendarSetting:B
21103 + return-void
21104 +.end method
21106 +.method public setCallLogSetting(B)V
21107 + .registers 2
21109 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->callLogSetting:B
21111 + return-void
21112 +.end method
21114 +.method public setCameraSetting(B)V
21115 + .registers 2
21117 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->cameraSetting:B
21119 + return-void
21120 +.end method
21122 +.method public setContactsSetting(B)V
21123 + .registers 2
21125 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->contactsSetting:B
21127 + return-void
21128 +.end method
21130 +.method public setDeviceId(Ljava/lang/String;)V
21131 + .registers 2
21133 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->deviceId:Ljava/lang/String;
21135 + return-void
21136 +.end method
21138 +.method public setDeviceIdSetting(B)V
21139 + .registers 2
21141 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
21143 + return-void
21144 +.end method
21146 +.method public setForceOnlineState(B)V
21147 + .registers 2
21149 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->forceOnlineState:B
21151 + return-void
21152 +.end method
21154 +.method public setIccAccessSetting(B)V
21155 + .registers 2
21157 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->iccAccessSetting:B
21159 + return-void
21160 +.end method
21162 +.method public setIncomingCallsSetting(B)V
21163 + .registers 2
21165 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->incomingCallsSetting:B
21167 + return-void
21168 +.end method
21170 +.method public setIntentBootCompletedSetting(B)V
21171 + .registers 2
21173 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->intentBootCompletedSetting:B
21175 + return-void
21176 +.end method
21178 +.method public setIpTableProtectSetting(B)V
21179 + .registers 2
21181 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->ipTableProtectSetting:B
21183 + return-void
21184 +.end method
21186 +.method public setLine1Number(Ljava/lang/String;)V
21187 + .registers 2
21189 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->line1Number:Ljava/lang/String;
21191 + return-void
21192 +.end method
21194 +.method public setLine1NumberSetting(B)V
21195 + .registers 2
21197 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
21199 + return-void
21200 +.end method
21202 +.method public setLocationGpsLat(Ljava/lang/String;)V
21203 + .registers 2
21205 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->locationGpsLat:Ljava/lang/String;
21207 + return-void
21208 +.end method
21210 +.method public setLocationGpsLon(Ljava/lang/String;)V
21211 + .registers 2
21213 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->locationGpsLon:Ljava/lang/String;
21215 + return-void
21216 +.end method
21218 +.method public setLocationGpsSetting(B)V
21219 + .registers 2
21221 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
21223 + return-void
21224 +.end method
21226 +.method public setLocationNetworkLat(Ljava/lang/String;)V
21227 + .registers 2
21229 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLat:Ljava/lang/String;
21231 + return-void
21232 +.end method
21234 +.method public setLocationNetworkLon(Ljava/lang/String;)V
21235 + .registers 2
21237 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLon:Ljava/lang/String;
21239 + return-void
21240 +.end method
21242 +.method public setLocationNetworkSetting(B)V
21243 + .registers 2
21245 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
21247 + return-void
21248 +.end method
21250 +.method public setMmsSetting(B)V
21251 + .registers 2
21253 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->mmsSetting:B
21255 + return-void
21256 +.end method
21258 +.method public setNetworkInfoSetting(B)V
21259 + .registers 2
21261 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->networkInfoSetting:B
21263 + return-void
21264 +.end method
21266 +.method public setNotificationSetting(B)V
21267 + .registers 2
21269 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->notificationSetting:B
21271 + return-void
21272 +.end method
21274 +.method public setOutgoingCallsSetting(B)V
21275 + .registers 2
21277 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->outgoingCallsSetting:B
21279 + return-void
21280 +.end method
21282 +.method public setPackageName(Ljava/lang/String;)V
21283 + .registers 2
21285 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->packageName:Ljava/lang/String;
21287 + return-void
21288 +.end method
21290 +.method public setPhoneCallSetting(B)V
21291 + .registers 2
21293 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->phoneCallSetting:B
21295 + return-void
21296 +.end method
21298 +.method public setRecordAudioSetting(B)V
21299 + .registers 2
21301 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->recordAudioSetting:B
21303 + return-void
21304 +.end method
21306 +.method public setSendMmsSetting(B)V
21307 + .registers 2
21309 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->sendMmsSetting:B
21311 + return-void
21312 +.end method
21314 +.method public setSimInfoSetting(B)V
21315 + .registers 2
21317 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->simInfoSetting:B
21319 + return-void
21320 +.end method
21322 +.method public setSimSerialNumber(Ljava/lang/String;)V
21323 + .registers 2
21325 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->simSerialNumber:Ljava/lang/String;
21327 + return-void
21328 +.end method
21330 +.method public setSimSerialNumberSetting(B)V
21331 + .registers 2
21333 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
21335 + return-void
21336 +.end method
21338 +.method public setSmsSendSetting(B)V
21339 + .registers 2
21341 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->smsSendSetting:B
21343 + return-void
21344 +.end method
21346 +.method public setSmsSetting(B)V
21347 + .registers 2
21349 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->smsSetting:B
21351 + return-void
21352 +.end method
21354 +.method public setSubscriberId(Ljava/lang/String;)V
21355 + .registers 2
21357 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->subscriberId:Ljava/lang/String;
21359 + return-void
21360 +.end method
21362 +.method public setSubscriberIdSetting(B)V
21363 + .registers 2
21365 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
21367 + return-void
21368 +.end method
21370 +.method public setSwitchConnectivitySetting(B)V
21371 + .registers 2
21373 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->switchConnectivitySetting:B
21375 + return-void
21376 +.end method
21378 +.method public setSwitchWifiStateSetting(B)V
21379 + .registers 2
21381 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->switchWifiStateSetting:B
21383 + return-void
21384 +.end method
21386 +.method public setSystemLogsSetting(B)V
21387 + .registers 2
21389 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->systemLogsSetting:B
21391 + return-void
21392 +.end method
21394 +.method public setUid(I)V
21395 + .registers 2
21397 + iput p1, p0, Landroid/privacy/PrivacySettings;->uid:I
21399 + return-void
21400 +.end method
21402 +.method public setWifiInfoSetting(B)V
21403 + .registers 2
21405 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->wifiInfoSetting:B
21407 + return-void
21408 +.end method
21410 +.method public toString()Ljava/lang/String;
21411 + .registers 3
21413 + new-instance v0, Ljava/lang/StringBuilder;
21415 + invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
21417 + const-string v1, "PrivacySettings [_id="
21419 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21421 + move-result-object v0
21423 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->_id:Ljava/lang/Integer;
21425 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
21427 + move-result-object v0
21429 + const-string v1, ", accountsAuthTokensSetting="
21431 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21433 + move-result-object v0
21435 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->accountsAuthTokensSetting:B
21437 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21439 + move-result-object v0
21441 + const-string v1, ", accountsSetting="
21443 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21445 + move-result-object v0
21447 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->accountsSetting:B
21449 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21451 + move-result-object v0
21453 + const-string v1, ", bookmarksSetting="
21455 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21457 + move-result-object v0
21459 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->bookmarksSetting:B
21461 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21463 + move-result-object v0
21465 + const-string v1, ", calendarSetting="
21467 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21469 + move-result-object v0
21471 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->calendarSetting:B
21473 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21475 + move-result-object v0
21477 + const-string v1, ", callLogSetting="
21479 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21481 + move-result-object v0
21483 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->callLogSetting:B
21485 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21487 + move-result-object v0
21489 + const-string v1, ", contactsSetting="
21491 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21493 + move-result-object v0
21495 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->contactsSetting:B
21497 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21499 + move-result-object v0
21501 + const-string v1, ", deviceId="
21503 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21505 + move-result-object v0
21507 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->deviceId:Ljava/lang/String;
21509 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21511 + move-result-object v0
21513 + const-string v1, ", deviceIdSetting="
21515 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21517 + move-result-object v0
21519 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
21521 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21523 + move-result-object v0
21525 + const-string v1, ", incomingCallsSetting="
21527 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21529 + move-result-object v0
21531 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->incomingCallsSetting:B
21533 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21535 + move-result-object v0
21537 + const-string v1, ", intentBootCompletedSetting="
21539 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21541 + move-result-object v0
21543 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->intentBootCompletedSetting:B
21545 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21547 + move-result-object v0
21549 + const-string v1, ", line1Number="
21551 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21553 + move-result-object v0
21555 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->line1Number:Ljava/lang/String;
21557 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21559 + move-result-object v0
21561 + const-string v1, ", line1NumberSetting="
21563 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21565 + move-result-object v0
21567 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
21569 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21571 + move-result-object v0
21573 + const-string v1, ", locationGpsLat="
21575 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21577 + move-result-object v0
21579 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->locationGpsLat:Ljava/lang/String;
21581 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21583 + move-result-object v0
21585 + const-string v1, ", locationGpsLon="
21587 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21589 + move-result-object v0
21591 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->locationGpsLon:Ljava/lang/String;
21593 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21595 + move-result-object v0
21597 + const-string v1, ", locationGpsSetting="
21599 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21601 + move-result-object v0
21603 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
21605 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21607 + move-result-object v0
21609 + const-string v1, ", locationNetworkLat="
21611 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21613 + move-result-object v0
21615 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLat:Ljava/lang/String;
21617 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21619 + move-result-object v0
21621 + const-string v1, ", locationNetworkLon="
21623 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21625 + move-result-object v0
21627 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLon:Ljava/lang/String;
21629 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21631 + move-result-object v0
21633 + const-string v1, ", locationNetworkSetting="
21635 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21637 + move-result-object v0
21639 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
21641 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21643 + move-result-object v0
21645 + const-string v1, ", mmsSetting="
21647 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21649 + move-result-object v0
21651 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->mmsSetting:B
21653 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21655 + move-result-object v0
21657 + const-string v1, ", networkInfoSetting="
21659 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21661 + move-result-object v0
21663 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->networkInfoSetting:B
21665 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21667 + move-result-object v0
21669 + const-string v1, ", notificationSetting="
21671 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21673 + move-result-object v0
21675 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->notificationSetting:B
21677 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21679 + move-result-object v0
21681 + const-string v1, ", outgoingCallsSetting="
21683 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21685 + move-result-object v0
21687 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->outgoingCallsSetting:B
21689 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21691 + move-result-object v0
21693 + const-string v1, ", packageName="
21695 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21697 + move-result-object v0
21699 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->packageName:Ljava/lang/String;
21701 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21703 + move-result-object v0
21705 + const-string v1, ", simInfoSetting="
21707 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21709 + move-result-object v0
21711 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->simInfoSetting:B
21713 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21715 + move-result-object v0
21717 + const-string v1, ", simSerialNumber="
21719 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21721 + move-result-object v0
21723 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->simSerialNumber:Ljava/lang/String;
21725 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21727 + move-result-object v0
21729 + const-string v1, ", simSerialNumberSetting="
21731 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21733 + move-result-object v0
21735 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
21737 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21739 + move-result-object v0
21741 + const-string v1, ", smsSetting="
21743 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21745 + move-result-object v0
21747 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->smsSetting:B
21749 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21751 + move-result-object v0
21753 + const-string v1, ", subscriberId="
21755 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21757 + move-result-object v0
21759 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->subscriberId:Ljava/lang/String;
21761 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21763 + move-result-object v0
21765 + const-string v1, ", subscriberIdSetting="
21767 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21769 + move-result-object v0
21771 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
21773 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21775 + move-result-object v0
21777 + const-string v1, ", systemLogsSetting="
21779 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21781 + move-result-object v0
21783 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->systemLogsSetting:B
21785 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21787 + move-result-object v0
21789 + const-string v1, ", uid="
21791 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21793 + move-result-object v0
21795 + iget v1, p0, Landroid/privacy/PrivacySettings;->uid:I
21797 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21799 + move-result-object v0
21801 + const-string v1, ", phoneCallSetting="
21803 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21805 + move-result-object v0
21807 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->phoneCallSetting:B
21809 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21811 + move-result-object v0
21813 + const-string v1, ", smsSendSetting="
21815 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21817 + move-result-object v0
21819 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->smsSendSetting:B
21821 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21823 + move-result-object v0
21825 + const-string v1, ", recordAudioSetting="
21827 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21829 + move-result-object v0
21831 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->recordAudioSetting:B
21833 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21835 + move-result-object v0
21837 + const-string v1, ", cameraSetting="
21839 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21841 + move-result-object v0
21843 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->cameraSetting:B
21845 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21847 + move-result-object v0
21849 + const-string v1, ", ipTableProtectSetting="
21851 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21853 + move-result-object v0
21855 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->ipTableProtectSetting:B
21857 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21859 + move-result-object v0
21861 + const-string v1, ", iccAccessSetting="
21863 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21865 + move-result-object v0
21867 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->iccAccessSetting:B
21869 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21871 + move-result-object v0
21873 + const-string v1, ", addOnManagementSetting="
21875 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21877 + move-result-object v0
21879 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->addOnManagementSetting:B
21881 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21883 + move-result-object v0
21885 + const-string v1, ", android ID="
21887 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21889 + move-result-object v0
21891 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->androidID:Ljava/lang/String;
21893 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21895 + move-result-object v0
21897 + const-string v1, ", androidIdSetting="
21899 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21901 + move-result-object v0
21903 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
21905 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21907 + move-result-object v0
21909 + const-string v1, ", wifiInfoSetting="
21911 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21913 + move-result-object v0
21915 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->wifiInfoSetting:B
21917 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21919 + move-result-object v0
21921 + const-string v1, ", switchConnectivitySetting="
21923 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21925 + move-result-object v0
21927 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->switchConnectivitySetting:B
21929 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21931 + move-result-object v0
21933 + const-string v1, ", sendMmsSetting="
21935 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21937 + move-result-object v0
21939 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->sendMmsSetting:B
21941 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21943 + move-result-object v0
21945 + const-string v1, ", forceOnlineState="
21947 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21949 + move-result-object v0
21951 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->forceOnlineState:B
21953 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21955 + move-result-object v0
21957 + const-string v1, ", switchWifiStateSetting="
21959 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21961 + move-result-object v0
21963 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->switchWifiStateSetting:B
21965 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21967 + move-result-object v0
21969 + const-string v1, "]"
21971 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21973 + move-result-object v0
21975 + invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
21977 + move-result-object v0
21979 + return-object v0
21980 +.end method
21982 +.method public writeToParcel(Landroid/os/Parcel;I)V
21983 + .registers 4
21985 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->_id:Ljava/lang/Integer;
21987 + if-nez v0, :cond_ef
21989 + const/4 v0, -0x1
21991 + :goto_5
21992 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeInt(I)V
21994 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->packageName:Ljava/lang/String;
21996 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
21998 + iget v0, p0, Landroid/privacy/PrivacySettings;->uid:I
22000 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeInt(I)V
22002 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
22004 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
22006 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->deviceId:Ljava/lang/String;
22008 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
22010 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
22012 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
22014 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->line1Number:Ljava/lang/String;
22016 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
22018 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
22020 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
22022 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->locationGpsLat:Ljava/lang/String;
22024 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
22026 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->locationGpsLon:Ljava/lang/String;
22028 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
22030 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
22032 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
22034 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkLat:Ljava/lang/String;
22036 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
22038 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkLon:Ljava/lang/String;
22040 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
22042 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->networkInfoSetting:B
22044 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
22046 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->simInfoSetting:B
22048 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
22050 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
22052 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
22054 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->simSerialNumber:Ljava/lang/String;
22056 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
22058 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
22060 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
22062 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->subscriberId:Ljava/lang/String;
22064 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
22066 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsSetting:B
22068 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
22070 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsAuthTokensSetting:B
22072 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
22074 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->outgoingCallsSetting:B
22076 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
22078 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->incomingCallsSetting:B
22080 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
22082 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->contactsSetting:B
22084 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
22086 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->calendarSetting:B
22088 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
22090 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->mmsSetting:B
22092 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
22094 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSetting:B
22096 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
22098 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->callLogSetting:B
22100 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
22102 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->bookmarksSetting:B
22104 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
22106 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->systemLogsSetting:B
22108 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
22110 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->notificationSetting:B
22112 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
22114 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->intentBootCompletedSetting:B
22116 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
22118 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->cameraSetting:B
22120 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
22122 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->recordAudioSetting:B
22124 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
22126 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->allowedContacts:[I
22128 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeIntArray([I)V
22130 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSendSetting:B
22132 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
22134 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->phoneCallSetting:B
22136 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
22138 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->ipTableProtectSetting:B
22140 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
22142 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->iccAccessSetting:B
22144 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
22146 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->addOnManagementSetting:B
22148 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
22150 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
22152 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
22154 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->androidID:Ljava/lang/String;
22156 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
22158 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->wifiInfoSetting:B
22160 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
22162 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->switchConnectivitySetting:B
22164 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
22166 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->sendMmsSetting:B
22168 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
22170 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->forceOnlineState:B
22172 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
22174 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->switchWifiStateSetting:B
22176 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
22178 + return-void
22180 + :cond_ef
22181 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->_id:Ljava/lang/Integer;
22183 + invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
22185 + move-result v0
22187 + goto/16 :goto_5
22188 +.end method
22189 diff -Npruw stock-framework/smali/android/privacy/PrivacySettingsStub.smali pdroid-framework/smali/android/privacy/PrivacySettingsStub.smali
22190 --- stock-framework/smali/android/privacy/PrivacySettingsStub.smali 1969-12-31 18:00:00.000000000 -0600
22191 +++ pdroid-framework/smali/android/privacy/PrivacySettingsStub.smali 2013-08-15 23:20:07.948304776 -0500
22192 @@ -0,0 +1,27 @@
22193 +.class Landroid/privacy/PrivacySettingsStub;
22194 +.super Ljava/lang/Object;
22195 +.source "PrivacySettingsStub.java"
22198 +# static fields
22199 +.field private static final isStub:Z = true
22202 +# direct methods
22203 +.method constructor <init>()V
22204 + .registers 1
22206 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
22208 + return-void
22209 +.end method
22212 +# virtual methods
22213 +.method isStub()Z
22214 + .registers 2
22216 + const/4 v0, 0x1
22218 + return v0
22219 +.end method
22220 diff -Npruw stock-framework/smali/android/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture.smali pdroid-framework/smali/android/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture.smali
22221 --- stock-framework/smali/android/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture.smali 1969-12-31 18:00:00.000000000 -0600
22222 +++ pdroid-framework/smali/android/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture.smali 2013-08-15 23:20:07.956304776 -0500
22223 @@ -0,0 +1,129 @@
22224 +.class Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;
22225 +.super Ljava/lang/Object;
22226 +.source "PrivacyAccountManager.java"
22228 +# interfaces
22229 +.implements Landroid/accounts/AccountManagerFuture;
22232 +# annotations
22233 +.annotation system Ldalvik/annotation/EnclosingClass;
22234 + value = Landroid/privacy/surrogate/PrivacyAccountManager;
22235 +.end annotation
22237 +.annotation system Ldalvik/annotation/InnerClass;
22238 + accessFlags = 0x2
22239 + name = "PrivacyAccountManagerFuture"
22240 +.end annotation
22242 +.annotation system Ldalvik/annotation/Signature;
22243 + value = {
22244 + "<V:",
22245 + "Ljava/lang/Object;",
22246 + ">",
22247 + "Ljava/lang/Object;",
22248 + "Landroid/accounts/AccountManagerFuture",
22249 + "<TV;>;"
22251 +.end annotation
22254 +# instance fields
22255 +.field private result:Ljava/lang/Object;
22256 + .annotation system Ldalvik/annotation/Signature;
22257 + value = {
22258 + "TV;"
22260 + .end annotation
22261 +.end field
22263 +.field final synthetic this$0:Landroid/privacy/surrogate/PrivacyAccountManager;
22266 +# direct methods
22267 +.method public constructor <init>(Landroid/privacy/surrogate/PrivacyAccountManager;Ljava/lang/Object;)V
22268 + .registers 3
22269 + .annotation system Ldalvik/annotation/Signature;
22270 + value = {
22271 + "(TV;)V"
22273 + .end annotation
22275 + iput-object p1, p0, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;->this$0:Landroid/privacy/surrogate/PrivacyAccountManager;
22277 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
22279 + iput-object p2, p0, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;->result:Ljava/lang/Object;
22281 + return-void
22282 +.end method
22285 +# virtual methods
22286 +.method public cancel(Z)Z
22287 + .registers 3
22289 + const/4 v0, 0x0
22291 + return v0
22292 +.end method
22294 +.method public getResult()Ljava/lang/Object;
22295 + .registers 2
22296 + .annotation system Ldalvik/annotation/Signature;
22297 + value = {
22298 + "()TV;"
22300 + .end annotation
22302 + .annotation system Ldalvik/annotation/Throws;
22303 + value = {
22304 + Landroid/accounts/OperationCanceledException;,
22305 + Ljava/io/IOException;,
22306 + Landroid/accounts/AuthenticatorException;
22308 + .end annotation
22310 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;->result:Ljava/lang/Object;
22312 + return-object v0
22313 +.end method
22315 +.method public getResult(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
22316 + .registers 5
22317 + .annotation system Ldalvik/annotation/Signature;
22318 + value = {
22319 + "(J",
22320 + "Ljava/util/concurrent/TimeUnit;",
22321 + ")TV;"
22323 + .end annotation
22325 + .annotation system Ldalvik/annotation/Throws;
22326 + value = {
22327 + Landroid/accounts/OperationCanceledException;,
22328 + Ljava/io/IOException;,
22329 + Landroid/accounts/AuthenticatorException;
22331 + .end annotation
22333 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;->result:Ljava/lang/Object;
22335 + return-object v0
22336 +.end method
22338 +.method public isCancelled()Z
22339 + .registers 2
22341 + const/4 v0, 0x0
22343 + return v0
22344 +.end method
22346 +.method public isDone()Z
22347 + .registers 2
22349 + const/4 v0, 0x1
22351 + return v0
22352 +.end method
22353 diff -Npruw stock-framework/smali/android/privacy/surrogate/PrivacyAccountManager.smali pdroid-framework/smali/android/privacy/surrogate/PrivacyAccountManager.smali
22354 --- stock-framework/smali/android/privacy/surrogate/PrivacyAccountManager.smali 1969-12-31 18:00:00.000000000 -0600
22355 +++ pdroid-framework/smali/android/privacy/surrogate/PrivacyAccountManager.smali 2013-08-15 23:20:07.956304776 -0500
22356 @@ -0,0 +1,701 @@
22357 +.class public final Landroid/privacy/surrogate/PrivacyAccountManager;
22358 +.super Landroid/accounts/AccountManager;
22359 +.source "PrivacyAccountManager.java"
22362 +# annotations
22363 +.annotation system Ldalvik/annotation/MemberClasses;
22364 + value = {
22365 + Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;
22367 +.end annotation
22370 +# static fields
22371 +.field private static final TAG:Ljava/lang/String; = "PrivacyAccountManager"
22374 +# instance fields
22375 +.field private context:Landroid/content/Context;
22377 +.field private pSetMan:Landroid/privacy/PrivacySettingsManager;
22380 +# direct methods
22381 +.method public constructor <init>(Landroid/content/Context;Landroid/accounts/IAccountManager;)V
22382 + .registers 5
22384 + invoke-direct {p0, p1, p2}, Landroid/accounts/AccountManager;-><init>(Landroid/content/Context;Landroid/accounts/IAccountManager;)V
22386 + iput-object p1, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->context:Landroid/content/Context;
22388 + new-instance v0, Landroid/privacy/PrivacySettingsManager;
22390 + const-string/jumbo v1, "privacy"
22392 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
22394 + move-result-object v1
22396 + invoke-static {v1}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
22398 + move-result-object v1
22400 + invoke-direct {v0, p1, v1}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
22402 + iput-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22404 + return-void
22405 +.end method
22407 +.method public constructor <init>(Landroid/content/Context;Landroid/accounts/IAccountManager;Landroid/os/Handler;)V
22408 + .registers 6
22410 + invoke-direct {p0, p1, p2, p3}, Landroid/accounts/AccountManager;-><init>(Landroid/content/Context;Landroid/accounts/IAccountManager;Landroid/os/Handler;)V
22412 + iput-object p1, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->context:Landroid/content/Context;
22414 + new-instance v0, Landroid/privacy/PrivacySettingsManager;
22416 + const-string/jumbo v1, "privacy"
22418 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
22420 + move-result-object v1
22422 + invoke-static {v1}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
22424 + move-result-object v1
22426 + invoke-direct {v0, p1, v1}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
22428 + iput-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22430 + return-void
22431 +.end method
22434 +# virtual methods
22435 +.method public blockingGetAuthToken(Landroid/accounts/Account;Ljava/lang/String;Z)Ljava/lang/String;
22436 + .registers 12
22437 + .annotation system Ldalvik/annotation/Throws;
22438 + value = {
22439 + Landroid/accounts/OperationCanceledException;,
22440 + Ljava/io/IOException;,
22441 + Landroid/accounts/AuthenticatorException;
22443 + .end annotation
22445 + const/4 v5, 0x0
22447 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->context:Landroid/content/Context;
22449 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
22451 + move-result-object v1
22453 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
22455 + move-result v2
22457 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22459 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
22461 + move-result-object v6
22463 + if-eqz v6, :cond_23
22465 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getAccountsAuthTokensSetting()B
22467 + move-result v0
22469 + if-eqz v0, :cond_23
22471 + const/4 v7, 0x0
22473 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22475 + const/4 v3, 0x1
22477 + const-string v4, "authTokens"
22479 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22481 + :goto_22
22482 + return-object v7
22484 + :cond_23
22485 + invoke-super {p0, p1, p2, p3}, Landroid/accounts/AccountManager;->blockingGetAuthToken(Landroid/accounts/Account;Ljava/lang/String;Z)Ljava/lang/String;
22487 + move-result-object v7
22489 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22491 + const/4 v3, 0x0
22493 + const-string v4, "authTokens"
22495 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22497 + goto :goto_22
22498 +.end method
22500 +.method public getAccounts()[Landroid/accounts/Account;
22501 + .registers 10
22503 + const/4 v5, 0x0
22505 + const/4 v3, 0x0
22507 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->context:Landroid/content/Context;
22509 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
22511 + move-result-object v1
22513 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
22515 + move-result v2
22517 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22519 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
22521 + move-result-object v6
22523 + if-eqz v6, :cond_27
22525 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getAccountsSetting()B
22527 + move-result v0
22529 + if-eqz v0, :cond_27
22531 + const-string v8, "[empty accounts list]"
22533 + new-array v7, v3, [Landroid/accounts/Account;
22535 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22537 + const/4 v3, 0x1
22539 + const-string v4, "accountsList"
22541 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22543 + :goto_26
22544 + return-object v7
22546 + :cond_27
22547 + const-string v8, "[real value]"
22549 + invoke-super {p0}, Landroid/accounts/AccountManager;->getAccounts()[Landroid/accounts/Account;
22551 + move-result-object v7
22553 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22555 + const-string v4, "accountsList"
22557 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22559 + goto :goto_26
22560 +.end method
22562 +.method public getAccountsByType(Ljava/lang/String;)[Landroid/accounts/Account;
22563 + .registers 11
22565 + const/4 v5, 0x0
22567 + const/4 v3, 0x0
22569 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->context:Landroid/content/Context;
22571 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
22573 + move-result-object v1
22575 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
22577 + move-result v2
22579 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22581 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
22583 + move-result-object v6
22585 + if-eqz v6, :cond_27
22587 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getAccountsSetting()B
22589 + move-result v0
22591 + if-eqz v0, :cond_27
22593 + const-string v8, "[empty accounts list]"
22595 + new-array v7, v3, [Landroid/accounts/Account;
22597 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22599 + const/4 v3, 0x1
22601 + const-string v4, "accountsList"
22603 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22605 + :goto_26
22606 + return-object v7
22608 + :cond_27
22609 + const-string v8, "[real value]"
22611 + invoke-super {p0, p1}, Landroid/accounts/AccountManager;->getAccountsByType(Ljava/lang/String;)[Landroid/accounts/Account;
22613 + move-result-object v7
22615 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22617 + const-string v4, "accountsList"
22619 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22621 + goto :goto_26
22622 +.end method
22624 +.method public getAccountsByTypeAndFeatures(Ljava/lang/String;[Ljava/lang/String;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;
22625 + .registers 14
22626 + .annotation system Ldalvik/annotation/Signature;
22627 + value = {
22628 + "(",
22629 + "Ljava/lang/String;",
22630 + "[",
22631 + "Ljava/lang/String;",
22632 + "Landroid/accounts/AccountManagerCallback",
22633 + "<[",
22634 + "Landroid/accounts/Account;",
22635 + ">;",
22636 + "Landroid/os/Handler;",
22637 + ")",
22638 + "Landroid/accounts/AccountManagerFuture",
22639 + "<[",
22640 + "Landroid/accounts/Account;",
22641 + ">;"
22643 + .end annotation
22645 + const/4 v5, 0x0
22647 + const/4 v3, 0x0
22649 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->context:Landroid/content/Context;
22651 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
22653 + move-result-object v1
22655 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
22657 + move-result v2
22659 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22661 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
22663 + move-result-object v6
22665 + if-eqz v6, :cond_2c
22667 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getAccountsSetting()B
22669 + move-result v0
22671 + if-eqz v0, :cond_2c
22673 + const-string v8, "[false]"
22675 + new-instance v7, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;
22677 + new-array v0, v3, [Landroid/accounts/Account;
22679 + invoke-direct {v7, p0, v0}, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;-><init>(Landroid/privacy/surrogate/PrivacyAccountManager;Ljava/lang/Object;)V
22681 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22683 + const/4 v3, 0x1
22685 + const-string v4, "accountsList"
22687 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22689 + :goto_2b
22690 + return-object v7
22692 + :cond_2c
22693 + const-string v8, "[real value]"
22695 + 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;
22697 + move-result-object v7
22699 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22701 + const-string v4, "accountsList"
22703 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22705 + goto :goto_2b
22706 +.end method
22708 +.method public getAuthToken(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;Landroid/app/Activity;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;
22709 + .registers 16
22710 + .annotation system Ldalvik/annotation/Signature;
22711 + value = {
22712 + "(",
22713 + "Landroid/accounts/Account;",
22714 + "Ljava/lang/String;",
22715 + "Landroid/os/Bundle;",
22716 + "Landroid/app/Activity;",
22717 + "Landroid/accounts/AccountManagerCallback",
22718 + "<",
22719 + "Landroid/os/Bundle;",
22720 + ">;",
22721 + "Landroid/os/Handler;",
22722 + ")",
22723 + "Landroid/accounts/AccountManagerFuture",
22724 + "<",
22725 + "Landroid/os/Bundle;",
22726 + ">;"
22728 + .end annotation
22730 + const/4 v5, 0x0
22732 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->context:Landroid/content/Context;
22734 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
22736 + move-result-object v1
22738 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
22740 + move-result v2
22742 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22744 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
22746 + move-result-object v6
22748 + if-eqz v6, :cond_2e
22750 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getAccountsAuthTokensSetting()B
22752 + move-result v0
22754 + if-eqz v0, :cond_2e
22756 + const-string v8, "[empty]"
22758 + new-instance v7, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;
22760 + new-instance v0, Landroid/os/Bundle;
22762 + invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
22764 + invoke-direct {v7, p0, v0}, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;-><init>(Landroid/privacy/surrogate/PrivacyAccountManager;Ljava/lang/Object;)V
22766 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22768 + const/4 v3, 0x1
22770 + const-string v4, "authTokens"
22772 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22774 + :goto_2d
22775 + return-object v7
22777 + :cond_2e
22778 + const-string v8, "[real value]"
22780 + 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;
22782 + move-result-object v7
22784 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22786 + const/4 v3, 0x0
22788 + const-string v4, "authTokens"
22790 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22792 + goto :goto_2d
22793 +.end method
22795 +.method public getAuthToken(Landroid/accounts/Account;Ljava/lang/String;ZLandroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;
22796 + .registers 15
22797 + .annotation system Ldalvik/annotation/Signature;
22798 + value = {
22799 + "(",
22800 + "Landroid/accounts/Account;",
22801 + "Ljava/lang/String;",
22802 + "Z",
22803 + "Landroid/accounts/AccountManagerCallback",
22804 + "<",
22805 + "Landroid/os/Bundle;",
22806 + ">;",
22807 + "Landroid/os/Handler;",
22808 + ")",
22809 + "Landroid/accounts/AccountManagerFuture",
22810 + "<",
22811 + "Landroid/os/Bundle;",
22812 + ">;"
22814 + .end annotation
22816 + const/4 v5, 0x0
22818 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->context:Landroid/content/Context;
22820 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
22822 + move-result-object v1
22824 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
22826 + move-result v2
22828 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22830 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
22832 + move-result-object v6
22834 + if-eqz v6, :cond_2e
22836 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getAccountsAuthTokensSetting()B
22838 + move-result v0
22840 + if-eqz v0, :cond_2e
22842 + const-string v8, "[empty]"
22844 + new-instance v7, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;
22846 + new-instance v0, Landroid/os/Bundle;
22848 + invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
22850 + invoke-direct {v7, p0, v0}, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;-><init>(Landroid/privacy/surrogate/PrivacyAccountManager;Ljava/lang/Object;)V
22852 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22854 + const/4 v3, 0x1
22856 + const-string v4, "authTokens"
22858 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22860 + :goto_2d
22861 + return-object v7
22863 + :cond_2e
22864 + const-string v8, "[real value]"
22866 + invoke-super/range {p0 .. p5}, Landroid/accounts/AccountManager;->getAuthToken(Landroid/accounts/Account;Ljava/lang/String;ZLandroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;
22868 + move-result-object v7
22870 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22872 + const/4 v3, 0x0
22874 + const-string v4, "authTokens"
22876 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22878 + goto :goto_2d
22879 +.end method
22881 +.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;
22882 + .registers 18
22883 + .annotation system Ldalvik/annotation/Signature;
22884 + value = {
22885 + "(",
22886 + "Ljava/lang/String;",
22887 + "Ljava/lang/String;",
22888 + "[",
22889 + "Ljava/lang/String;",
22890 + "Landroid/app/Activity;",
22891 + "Landroid/os/Bundle;",
22892 + "Landroid/os/Bundle;",
22893 + "Landroid/accounts/AccountManagerCallback",
22894 + "<",
22895 + "Landroid/os/Bundle;",
22896 + ">;",
22897 + "Landroid/os/Handler;",
22898 + ")",
22899 + "Landroid/accounts/AccountManagerFuture",
22900 + "<",
22901 + "Landroid/os/Bundle;",
22902 + ">;"
22904 + .end annotation
22906 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->context:Landroid/content/Context;
22908 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
22910 + move-result-object v1
22912 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
22914 + move-result v2
22916 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22918 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
22920 + move-result-object v6
22922 + if-eqz v6, :cond_2e
22924 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getAccountsAuthTokensSetting()B
22926 + move-result v0
22928 + if-eqz v0, :cond_2e
22930 + const-string v8, "[empty]"
22932 + new-instance v7, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;
22934 + new-instance v0, Landroid/os/Bundle;
22936 + invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
22938 + invoke-direct {v7, p0, v0}, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;-><init>(Landroid/privacy/surrogate/PrivacyAccountManager;Ljava/lang/Object;)V
22940 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22942 + const/4 v3, 0x1
22944 + const-string v4, "authTokens"
22946 + const/4 v5, 0x0
22948 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22950 + :goto_2d
22951 + return-object v7
22953 + :cond_2e
22954 + const-string v8, "[real value]"
22956 + 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;
22958 + move-result-object v7
22960 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22962 + const/4 v3, 0x0
22964 + const-string v4, "authTokens"
22966 + const/4 v5, 0x0
22968 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22970 + goto :goto_2d
22971 +.end method
22973 +.method public hasFeatures(Landroid/accounts/Account;[Ljava/lang/String;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;
22974 + .registers 14
22975 + .annotation system Ldalvik/annotation/Signature;
22976 + value = {
22977 + "(",
22978 + "Landroid/accounts/Account;",
22979 + "[",
22980 + "Ljava/lang/String;",
22981 + "Landroid/accounts/AccountManagerCallback",
22982 + "<",
22983 + "Ljava/lang/Boolean;",
22984 + ">;",
22985 + "Landroid/os/Handler;",
22986 + ")",
22987 + "Landroid/accounts/AccountManagerFuture",
22988 + "<",
22989 + "Ljava/lang/Boolean;",
22990 + ">;"
22992 + .end annotation
22994 + const/4 v5, 0x0
22996 + const/4 v3, 0x0
22998 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->context:Landroid/content/Context;
23000 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
23002 + move-result-object v1
23004 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
23006 + move-result v2
23008 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23010 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
23012 + move-result-object v6
23014 + if-eqz v6, :cond_2e
23016 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getAccountsSetting()B
23018 + move-result v0
23020 + if-eqz v0, :cond_2e
23022 + const-string v8, "[false]"
23024 + new-instance v7, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;
23026 + invoke-static {v3}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
23028 + move-result-object v0
23030 + invoke-direct {v7, p0, v0}, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;-><init>(Landroid/privacy/surrogate/PrivacyAccountManager;Ljava/lang/Object;)V
23032 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23034 + const/4 v3, 0x1
23036 + const-string v4, "accountsList"
23038 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23040 + :goto_2d
23041 + return-object v7
23043 + :cond_2e
23044 + const-string v8, "[real value]"
23046 + 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;
23048 + move-result-object v7
23050 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23052 + const-string v4, "accountsList"
23054 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23056 + goto :goto_2d
23057 +.end method
23058 diff -Npruw stock-framework/smali/android/privacy/surrogate/PrivacyActivityManagerService.smali pdroid-framework/smali/android/privacy/surrogate/PrivacyActivityManagerService.smali
23059 --- stock-framework/smali/android/privacy/surrogate/PrivacyActivityManagerService.smali 1969-12-31 18:00:00.000000000 -0600
23060 +++ pdroid-framework/smali/android/privacy/surrogate/PrivacyActivityManagerService.smali 2013-08-15 23:20:07.956304776 -0500
23061 @@ -0,0 +1,1223 @@
23062 +.class public final Landroid/privacy/surrogate/PrivacyActivityManagerService;
23063 +.super Ljava/lang/Object;
23064 +.source "PrivacyActivityManagerService.java"
23067 +# static fields
23068 +.field private static final DATA_SMS_RECEIVED_INTENT:Ljava/lang/String; = "android.intent.action.DATA_SMS_RECEIVED"
23070 +.field private static final SMS_RECEIVED_ACTION_INTENT:Ljava/lang/String; = "android.provider.Telephony.SMS_RECEIVED"
23072 +.field private static final TAG:Ljava/lang/String; = "PrivacyActivityManagerService"
23074 +.field private static final WAP_PUSH_RECEIVED_INTENT:Ljava/lang/String; = "android.provider.Telephony.WAP_PUSH_RECEIVED"
23076 +.field private static pSetMan:Landroid/privacy/PrivacySettingsManager;
23078 +.field private static tmpIn:Landroid/content/Intent;
23080 +.field private static tmpInHash:J
23082 +.field private static tmpInReceivers:I
23084 +.field private static tmpMms:Landroid/content/Intent;
23086 +.field private static tmpMmsHash:J
23088 +.field private static tmpMmsReceivers:I
23090 +.field private static tmpOut:Landroid/content/Intent;
23092 +.field private static tmpOutHash:J
23094 +.field private static tmpOutReceivers:I
23096 +.field private static tmpPackageAddedHash:J
23098 +.field private static tmpSms:Landroid/content/Intent;
23100 +.field private static tmpSmsHash:J
23102 +.field private static tmpSmsReceivers:I
23105 +# direct methods
23106 +.method static constructor <clinit>()V
23107 + .registers 3
23109 + const/4 v2, 0x0
23111 + const-wide/16 v0, 0x0
23113 + sput-wide v0, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpInHash:J
23115 + sput v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpInReceivers:I
23117 + sput-wide v0, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOutHash:J
23119 + sput v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOutReceivers:I
23121 + sput-wide v0, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSmsHash:J
23123 + sput v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSmsReceivers:I
23125 + sput-wide v0, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMmsHash:J
23127 + sput v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMmsReceivers:I
23129 + sput-wide v0, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpPackageAddedHash:J
23131 + return-void
23132 +.end method
23134 +.method public constructor <init>()V
23135 + .registers 1
23137 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
23139 + return-void
23140 +.end method
23142 +.method public static enforcePrivacyPermission(Ljava/lang/String;ILandroid/content/Intent;Landroid/content/Context;I)V
23143 + .registers 29
23145 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23147 + if-nez v2, :cond_13
23149 + if-eqz p3, :cond_13
23151 + const-string/jumbo v2, "privacy"
23153 + move-object/from16 v0, p3
23155 + invoke-virtual {v0, v2}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
23157 + move-result-object v2
23159 + check-cast v2, Landroid/privacy/PrivacySettingsManager;
23161 + sput-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23163 + :cond_13
23164 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23166 + if-nez v2, :cond_2c
23168 + if-nez p3, :cond_2c
23170 + new-instance v2, Landroid/privacy/PrivacySettingsManager;
23172 + const/4 v3, 0x0
23174 + const-string/jumbo v4, "privacy"
23176 + invoke-static {v4}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
23178 + move-result-object v4
23180 + invoke-static {v4}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
23182 + move-result-object v4
23184 + invoke-direct {v2, v3, v4}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
23186 + sput-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23188 + :cond_2c
23189 + invoke-virtual/range {p2 .. p2}, Landroid/content/Intent;->getAction()Ljava/lang/String;
23191 + move-result-object v16
23193 + const-string v2, "android.intent.action.NEW_OUTGOING_CALL"
23195 + move-object/from16 v0, v16
23197 + invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
23199 + move-result v2
23201 + if-eqz v2, :cond_cc
23203 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23205 + move-object/from16 v0, p0
23207 + move/from16 v1, p1
23209 + invoke-virtual {v2, v0, v1}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
23211 + move-result-object v8
23213 + const-string v2, "android.intent.extra.PHONE_NUMBER"
23215 + move-object/from16 v0, p2
23217 + invoke-virtual {v0, v2}, Landroid/content/Intent;->getStringExtra(Ljava/lang/String;)Ljava/lang/String;
23219 + move-result-object v23
23221 + sget-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOutHash:J
23223 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
23225 + move-result-wide v4
23227 + cmp-long v2, v2, v4
23229 + if-eqz v2, :cond_66
23231 + invoke-virtual/range {p2 .. p2}, Landroid/content/Intent;->clone()Ljava/lang/Object;
23233 + move-result-object v2
23235 + check-cast v2, Landroid/content/Intent;
23237 + sput-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOut:Landroid/content/Intent;
23239 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
23241 + move-result-wide v2
23243 + sput-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOutHash:J
23245 + sput p4, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOutReceivers:I
23247 + :cond_66
23248 + if-eqz v8, :cond_93
23250 + :try_start_68
23251 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getOutgoingCallsSetting()B
23253 + move-result v2
23255 + if-eqz v2, :cond_93
23257 + const-string v23, ""
23259 + const-string v2, "android.intent.extra.PHONE_NUMBER"
23261 + move-object/from16 v0, p2
23263 + move-object/from16 v1, v23
23265 + invoke-virtual {v0, v2, v1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
23267 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23269 + const/4 v5, 0x1
23271 + const-string/jumbo v6, "outgoingCall"
23273 + const/4 v7, 0x0
23275 + move-object/from16 v3, p0
23277 + move/from16 v4, p1
23279 + invoke-virtual/range {v2 .. v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23280 + :try_end_87
23281 + .catch Ljava/lang/Exception; {:try_start_68 .. :try_end_87} :catch_bd
23283 + :cond_87
23284 + :goto_87
23285 + sget v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOutReceivers:I
23287 + const/4 v3, 0x1
23289 + if-le v2, v3, :cond_c8
23291 + sget v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOutReceivers:I
23293 + add-int/lit8 v2, v2, -0x1
23295 + sput v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOutReceivers:I
23297 + :cond_92
23298 + :goto_92
23299 + return-void
23301 + :cond_93
23302 + :try_start_93
23303 + sget-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOutHash:J
23305 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
23307 + move-result-wide v4
23309 + cmp-long v2, v2, v4
23311 + if-nez v2, :cond_87
23313 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOut:Landroid/content/Intent;
23315 + const-string v3, "android.intent.extra.PHONE_NUMBER"
23317 + invoke-virtual {v2, v3}, Landroid/content/Intent;->getStringExtra(Ljava/lang/String;)Ljava/lang/String;
23319 + move-result-object v23
23321 + const-string v2, "android.intent.extra.PHONE_NUMBER"
23323 + move-object/from16 v0, p2
23325 + move-object/from16 v1, v23
23327 + invoke-virtual {v0, v2, v1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
23329 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23331 + const/4 v5, 0x0
23333 + const-string/jumbo v6, "outgoingCall"
23335 + const/4 v7, 0x0
23337 + move-object/from16 v3, p0
23339 + move/from16 v4, p1
23341 + invoke-virtual/range {v2 .. v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23342 + :try_end_bc
23343 + .catch Ljava/lang/Exception; {:try_start_93 .. :try_end_bc} :catch_bd
23345 + goto :goto_87
23347 + :catch_bd
23348 + move-exception v20
23350 + const-string v2, "PrivacyActivityManagerService"
23352 + const-string v3, "failed to enforce intent broadcast permission"
23354 + move-object/from16 v0, v20
23356 + invoke-static {v2, v3, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
23358 + goto :goto_87
23360 + :cond_c8
23361 + const/4 v2, 0x0
23363 + sput-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOut:Landroid/content/Intent;
23365 + goto :goto_92
23367 + :cond_cc
23368 + const-string v2, "android.intent.action.PHONE_STATE"
23370 + move-object/from16 v0, v16
23372 + invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
23374 + move-result v2
23376 + if-eqz v2, :cond_170
23378 + const-string v2, "incoming_number"
23380 + move-object/from16 v0, p2
23382 + invoke-virtual {v0, v2}, Landroid/content/Intent;->getStringExtra(Ljava/lang/String;)Ljava/lang/String;
23384 + move-result-object v23
23386 + if-eqz v23, :cond_92
23388 + invoke-virtual/range {v23 .. v23}, Ljava/lang/String;->isEmpty()Z
23390 + move-result v2
23392 + if-nez v2, :cond_92
23394 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23396 + move-object/from16 v0, p0
23398 + move/from16 v1, p1
23400 + invoke-virtual {v2, v0, v1}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
23402 + move-result-object v8
23404 + sget-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpInHash:J
23406 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
23408 + move-result-wide v4
23410 + cmp-long v2, v2, v4
23412 + if-eqz v2, :cond_10a
23414 + invoke-virtual/range {p2 .. p2}, Landroid/content/Intent;->clone()Ljava/lang/Object;
23416 + move-result-object v2
23418 + check-cast v2, Landroid/content/Intent;
23420 + sput-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpIn:Landroid/content/Intent;
23422 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
23424 + move-result-wide v2
23426 + sput-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpInHash:J
23428 + sput p4, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpInReceivers:I
23430 + :cond_10a
23431 + if-eqz v8, :cond_137
23433 + :try_start_10c
23434 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getIncomingCallsSetting()B
23436 + move-result v2
23438 + if-eqz v2, :cond_137
23440 + const-string v23, ""
23442 + const-string v2, "incoming_number"
23444 + move-object/from16 v0, p2
23446 + move-object/from16 v1, v23
23448 + invoke-virtual {v0, v2, v1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
23450 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23452 + const/4 v5, 0x1
23454 + const-string v6, "incomingCall"
23456 + const/4 v7, 0x0
23458 + move-object/from16 v3, p0
23460 + move/from16 v4, p1
23462 + invoke-virtual/range {v2 .. v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23463 + :try_end_12a
23464 + .catch Ljava/lang/Exception; {:try_start_10c .. :try_end_12a} :catch_160
23466 + :cond_12a
23467 + :goto_12a
23468 + sget v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpInReceivers:I
23470 + const/4 v3, 0x1
23472 + if-le v2, v3, :cond_16b
23474 + sget v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpInReceivers:I
23476 + add-int/lit8 v2, v2, -0x1
23478 + sput v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpInReceivers:I
23480 + goto/16 :goto_92
23482 + :cond_137
23483 + :try_start_137
23484 + sget-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpInHash:J
23486 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
23488 + move-result-wide v4
23490 + cmp-long v2, v2, v4
23492 + if-nez v2, :cond_12a
23494 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpIn:Landroid/content/Intent;
23496 + const-string v3, "incoming_number"
23498 + invoke-virtual {v2, v3}, Landroid/content/Intent;->getStringExtra(Ljava/lang/String;)Ljava/lang/String;
23500 + move-result-object v23
23502 + const-string v2, "incoming_number"
23504 + move-object/from16 v0, p2
23506 + move-object/from16 v1, v23
23508 + invoke-virtual {v0, v2, v1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
23510 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23512 + const/4 v5, 0x0
23514 + const-string v6, "incomingCall"
23516 + const/4 v7, 0x0
23518 + move-object/from16 v3, p0
23520 + move/from16 v4, p1
23522 + invoke-virtual/range {v2 .. v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23523 + :try_end_15f
23524 + .catch Ljava/lang/Exception; {:try_start_137 .. :try_end_15f} :catch_160
23526 + goto :goto_12a
23528 + :catch_160
23529 + move-exception v20
23531 + const-string v2, "PrivacyActivityManagerService"
23533 + const-string v3, "failed to enforce intent broadcast permission"
23535 + move-object/from16 v0, v20
23537 + invoke-static {v2, v3, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
23539 + goto :goto_12a
23541 + :cond_16b
23542 + const/4 v2, 0x0
23544 + sput-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpIn:Landroid/content/Intent;
23546 + goto/16 :goto_92
23548 + :cond_170
23549 + const-string v2, "android.provider.Telephony.SMS_RECEIVED"
23551 + move-object/from16 v0, v16
23553 + invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
23555 + move-result v2
23557 + if-eqz v2, :cond_253
23559 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23561 + move-object/from16 v0, p0
23563 + move/from16 v1, p1
23565 + invoke-virtual {v2, v0, v1}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
23567 + move-result-object v8
23569 + const-string v23, "[real]"
23571 + const-string/jumbo v2, "pdus"
23573 + move-object/from16 v0, p2
23575 + invoke-virtual {v0, v2}, Landroid/content/Intent;->getSerializableExtra(Ljava/lang/String;)Ljava/io/Serializable;
23577 + move-result-object v2
23579 + check-cast v2, [Ljava/lang/Object;
23581 + move-object/from16 v22, v2
23583 + check-cast v22, [Ljava/lang/Object;
23585 + if-eqz v22, :cond_1f8
23587 + const/4 v2, 0x0
23589 + aget-object v2, v22, v2
23591 + check-cast v2, [B
23593 + check-cast v2, [B
23595 + move-object/from16 v19, v2
23597 + :goto_1a0
23598 + sget-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSmsHash:J
23600 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
23602 + move-result-wide v4
23604 + cmp-long v2, v2, v4
23606 + if-eqz v2, :cond_1ba
23608 + invoke-virtual/range {p2 .. p2}, Landroid/content/Intent;->clone()Ljava/lang/Object;
23610 + move-result-object v2
23612 + check-cast v2, Landroid/content/Intent;
23614 + sput-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSms:Landroid/content/Intent;
23616 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
23618 + move-result-wide v2
23620 + sput-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSmsHash:J
23622 + sput p4, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSmsReceivers:I
23624 + :cond_1ba
23625 + if-eqz v8, :cond_1fb
23627 + :try_start_1bc
23628 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getSmsSetting()B
23630 + move-result v2
23632 + if-eqz v2, :cond_1fb
23634 + const-string v23, "[empty]"
23636 + const/4 v2, 0x1
23638 + new-array v0, v2, [Ljava/lang/Object;
23640 + move-object/from16 v21, v0
23642 + const/4 v2, 0x0
23644 + const/16 v3, 0x10
23646 + new-array v3, v3, [B
23648 + fill-array-data v3, :array_3da
23650 + aput-object v3, v21, v2
23652 + const-string/jumbo v2, "pdus"
23654 + move-object/from16 v0, p2
23656 + move-object/from16 v1, v21
23658 + invoke-virtual {v0, v2, v1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/io/Serializable;)Landroid/content/Intent;
23660 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23662 + const/4 v5, 0x1
23664 + const-string/jumbo v6, "sms"
23666 + const/4 v7, 0x0
23668 + move-object/from16 v3, p0
23670 + move/from16 v4, p1
23672 + invoke-virtual/range {v2 .. v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23673 + :try_end_1eb
23674 + .catch Ljava/lang/Exception; {:try_start_1bc .. :try_end_1eb} :catch_240
23676 + :cond_1eb
23677 + :goto_1eb
23678 + sget v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSmsReceivers:I
23680 + const/4 v3, 0x1
23682 + if-le v2, v3, :cond_24e
23684 + sget v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSmsReceivers:I
23686 + add-int/lit8 v2, v2, -0x1
23688 + sput v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSmsReceivers:I
23690 + goto/16 :goto_92
23692 + :cond_1f8
23693 + const/16 v19, 0x0
23695 + goto :goto_1a0
23697 + :cond_1fb
23698 + :try_start_1fb
23699 + sget-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSmsHash:J
23701 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
23703 + move-result-wide v4
23705 + cmp-long v2, v2, v4
23707 + if-nez v2, :cond_1eb
23709 + const-string/jumbo v2, "pdus"
23711 + sget-object v3, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSms:Landroid/content/Intent;
23713 + const-string/jumbo v4, "pdus"
23715 + invoke-virtual {v3, v4}, Landroid/content/Intent;->getSerializableExtra(Ljava/lang/String;)Ljava/io/Serializable;
23717 + move-result-object v3
23719 + move-object/from16 v0, p2
23721 + invoke-virtual {v0, v2, v3}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/io/Serializable;)Landroid/content/Intent;
23723 + const-string/jumbo v2, "pdus"
23725 + move-object/from16 v0, p2
23727 + invoke-virtual {v0, v2}, Landroid/content/Intent;->getSerializableExtra(Ljava/lang/String;)Ljava/io/Serializable;
23729 + move-result-object v2
23731 + check-cast v2, [Ljava/lang/Object;
23733 + move-object v0, v2
23735 + check-cast v0, [Ljava/lang/Object;
23737 + move-object/from16 v22, v0
23739 + if-eqz v22, :cond_24b
23741 + const/4 v2, 0x0
23743 + aget-object v2, v22, v2
23745 + check-cast v2, [B
23747 + check-cast v2, [B
23749 + move-object/from16 v19, v2
23751 + :goto_231
23752 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23754 + const/4 v5, 0x0
23756 + const-string/jumbo v6, "sms"
23758 + const/4 v7, 0x0
23760 + move-object/from16 v3, p0
23762 + move/from16 v4, p1
23764 + invoke-virtual/range {v2 .. v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23765 + :try_end_23f
23766 + .catch Ljava/lang/Exception; {:try_start_1fb .. :try_end_23f} :catch_240
23768 + goto :goto_1eb
23770 + :catch_240
23771 + move-exception v20
23773 + const-string v2, "PrivacyActivityManagerService"
23775 + const-string v3, "failed to enforce intent broadcast permission"
23777 + move-object/from16 v0, v20
23779 + invoke-static {v2, v3, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
23781 + goto :goto_1eb
23783 + :cond_24b
23784 + const/16 v19, 0x0
23786 + goto :goto_231
23788 + :cond_24e
23789 + const/4 v2, 0x0
23791 + sput-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSms:Landroid/content/Intent;
23793 + goto/16 :goto_92
23795 + :cond_253
23796 + const-string v2, "android.provider.Telephony.WAP_PUSH_RECEIVED"
23798 + move-object/from16 v0, v16
23800 + invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
23802 + move-result v2
23804 + if-nez v2, :cond_267
23806 + const-string v2, "android.intent.action.DATA_SMS_RECEIVED"
23808 + move-object/from16 v0, v16
23810 + invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
23812 + move-result v2
23814 + if-eqz v2, :cond_340
23816 + :cond_267
23817 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23819 + move-object/from16 v0, p0
23821 + move/from16 v1, p1
23823 + invoke-virtual {v2, v0, v1}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
23825 + move-result-object v8
23827 + const-string v23, "[real]"
23829 + const-string/jumbo v2, "pdus"
23831 + move-object/from16 v0, p2
23833 + invoke-virtual {v0, v2}, Landroid/content/Intent;->getSerializableExtra(Ljava/lang/String;)Ljava/io/Serializable;
23835 + move-result-object v2
23837 + check-cast v2, [Ljava/lang/Object;
23839 + move-object/from16 v22, v2
23841 + check-cast v22, [Ljava/lang/Object;
23843 + if-eqz v22, :cond_2e5
23845 + const/4 v2, 0x0
23847 + aget-object v2, v22, v2
23849 + check-cast v2, [B
23851 + check-cast v2, [B
23853 + move-object/from16 v19, v2
23855 + :goto_28d
23856 + sget-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMmsHash:J
23858 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
23860 + move-result-wide v4
23862 + cmp-long v2, v2, v4
23864 + if-eqz v2, :cond_2a7
23866 + invoke-virtual/range {p2 .. p2}, Landroid/content/Intent;->clone()Ljava/lang/Object;
23868 + move-result-object v2
23870 + check-cast v2, Landroid/content/Intent;
23872 + sput-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMms:Landroid/content/Intent;
23874 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
23876 + move-result-wide v2
23878 + sput-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMmsHash:J
23880 + sput p4, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMmsReceivers:I
23882 + :cond_2a7
23883 + if-eqz v8, :cond_2e8
23885 + :try_start_2a9
23886 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getMmsSetting()B
23888 + move-result v2
23890 + if-eqz v2, :cond_2e8
23892 + const-string v23, "[empty]"
23894 + const/4 v2, 0x1
23896 + new-array v0, v2, [Ljava/lang/Object;
23898 + move-object/from16 v21, v0
23900 + const/4 v2, 0x0
23902 + const/16 v3, 0x10
23904 + new-array v3, v3, [B
23906 + fill-array-data v3, :array_3e6
23908 + aput-object v3, v21, v2
23910 + const-string/jumbo v2, "pdus"
23912 + move-object/from16 v0, p2
23914 + move-object/from16 v1, v21
23916 + invoke-virtual {v0, v2, v1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/io/Serializable;)Landroid/content/Intent;
23918 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23920 + const/4 v5, 0x1
23922 + const-string/jumbo v6, "mms"
23924 + const/4 v7, 0x0
23926 + move-object/from16 v3, p0
23928 + move/from16 v4, p1
23930 + invoke-virtual/range {v2 .. v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23931 + :try_end_2d8
23932 + .catch Ljava/lang/Exception; {:try_start_2a9 .. :try_end_2d8} :catch_32d
23934 + :cond_2d8
23935 + :goto_2d8
23936 + sget v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMmsReceivers:I
23938 + const/4 v3, 0x1
23940 + if-le v2, v3, :cond_33b
23942 + sget v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMmsReceivers:I
23944 + add-int/lit8 v2, v2, -0x1
23946 + sput v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMmsReceivers:I
23948 + goto/16 :goto_92
23950 + :cond_2e5
23951 + const/16 v19, 0x0
23953 + goto :goto_28d
23955 + :cond_2e8
23956 + :try_start_2e8
23957 + sget-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMmsHash:J
23959 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
23961 + move-result-wide v4
23963 + cmp-long v2, v2, v4
23965 + if-nez v2, :cond_2d8
23967 + const-string/jumbo v2, "pdus"
23969 + sget-object v3, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMms:Landroid/content/Intent;
23971 + const-string/jumbo v4, "pdus"
23973 + invoke-virtual {v3, v4}, Landroid/content/Intent;->getSerializableExtra(Ljava/lang/String;)Ljava/io/Serializable;
23975 + move-result-object v3
23977 + move-object/from16 v0, p2
23979 + invoke-virtual {v0, v2, v3}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/io/Serializable;)Landroid/content/Intent;
23981 + const-string/jumbo v2, "pdus"
23983 + move-object/from16 v0, p2
23985 + invoke-virtual {v0, v2}, Landroid/content/Intent;->getSerializableExtra(Ljava/lang/String;)Ljava/io/Serializable;
23987 + move-result-object v2
23989 + check-cast v2, [Ljava/lang/Object;
23991 + move-object v0, v2
23993 + check-cast v0, [Ljava/lang/Object;
23995 + move-object/from16 v22, v0
23997 + if-eqz v22, :cond_338
23999 + const/4 v2, 0x0
24001 + aget-object v2, v22, v2
24003 + check-cast v2, [B
24005 + check-cast v2, [B
24007 + move-object/from16 v19, v2
24009 + :goto_31e
24010 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24012 + const/4 v5, 0x0
24014 + const-string/jumbo v6, "mms"
24016 + const/4 v7, 0x0
24018 + move-object/from16 v3, p0
24020 + move/from16 v4, p1
24022 + invoke-virtual/range {v2 .. v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24023 + :try_end_32c
24024 + .catch Ljava/lang/Exception; {:try_start_2e8 .. :try_end_32c} :catch_32d
24026 + goto :goto_2d8
24028 + :catch_32d
24029 + move-exception v20
24031 + const-string v2, "PrivacyActivityManagerService"
24033 + const-string v3, "failed to enforce intent broadcast permission"
24035 + move-object/from16 v0, v20
24037 + invoke-static {v2, v3, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
24039 + goto :goto_2d8
24041 + :cond_338
24042 + const/16 v19, 0x0
24044 + goto :goto_31e
24046 + :cond_33b
24047 + const/4 v2, 0x0
24049 + sput-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMms:Landroid/content/Intent;
24051 + goto/16 :goto_92
24053 + :cond_340
24054 + const-string v2, "android.intent.action.BOOT_COMPLETED"
24056 + move-object/from16 v0, v16
24058 + invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
24060 + move-result v2
24062 + if-eqz v2, :cond_38d
24064 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24066 + invoke-virtual {v2}, Landroid/privacy/PrivacySettingsManager;->setBootCompleted()V
24068 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24070 + move-object/from16 v0, p0
24072 + invoke-virtual {v2, v0}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
24074 + move-result-object v8
24076 + if-eqz v8, :cond_376
24078 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getIntentBootCompletedSetting()B
24080 + move-result v2
24082 + if-eqz v2, :cond_376
24084 + const-string v2, "catchBootComplete"
24086 + move-object/from16 v0, p2
24088 + invoke-virtual {v0, v2}, Landroid/content/Intent;->setAction(Ljava/lang/String;)Landroid/content/Intent;
24090 + sget-object v9, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24092 + const/4 v12, 0x1
24094 + const-string v13, "intentBootCompleted"
24096 + const/4 v14, 0x0
24098 + const/4 v15, 0x0
24100 + move-object/from16 v10, p0
24102 + move/from16 v11, p1
24104 + invoke-virtual/range {v9 .. v15}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24106 + goto/16 :goto_92
24108 + :cond_376
24109 + const-string v2, "android.intent.action.BOOT_COMPLETED"
24111 + move-object/from16 v0, p2
24113 + invoke-virtual {v0, v2}, Landroid/content/Intent;->setAction(Ljava/lang/String;)Landroid/content/Intent;
24115 + sget-object v9, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24117 + const/4 v12, 0x0
24119 + const-string v13, "intentBootCompleted"
24121 + const/4 v14, 0x0
24123 + const/4 v15, 0x0
24125 + move-object/from16 v10, p0
24127 + move/from16 v11, p1
24129 + invoke-virtual/range {v9 .. v15}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24131 + goto/16 :goto_92
24133 + :cond_38d
24134 + const-string v2, "android.intent.action.PACKAGE_ADDED"
24136 + move-object/from16 v0, v16
24138 + invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
24140 + move-result v2
24142 + if-eqz v2, :cond_92
24144 + sget-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpPackageAddedHash:J
24146 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
24148 + move-result-wide v4
24150 + cmp-long v2, v2, v4
24152 + if-eqz v2, :cond_92
24154 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
24156 + move-result-wide v2
24158 + sput-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpPackageAddedHash:J
24160 + invoke-virtual/range {p2 .. p2}, Landroid/content/Intent;->getData()Landroid/net/Uri;
24162 + move-result-object v2
24164 + invoke-virtual {v2}, Landroid/net/Uri;->getSchemeSpecificPart()Ljava/lang/String;
24166 + move-result-object v17
24168 + invoke-virtual/range {p2 .. p2}, Landroid/content/Intent;->getExtras()Landroid/os/Bundle;
24170 + move-result-object v2
24172 + const-string v3, "android.intent.extra.UID"
24174 + invoke-virtual {v2, v3}, Landroid/os/Bundle;->getInt(Ljava/lang/String;)I
24176 + move-result v18
24178 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24180 + move-object/from16 v0, v17
24182 + move/from16 v1, v18
24184 + invoke-virtual {v2, v0, v1}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
24186 + move-result-object v8
24188 + if-eqz v8, :cond_92
24190 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getUid()I
24192 + move-result v2
24194 + move/from16 v0, v18
24196 + if-eq v2, v0, :cond_92
24198 + move/from16 v0, v18
24200 + invoke-virtual {v8, v0}, Landroid/privacy/PrivacySettings;->setUid(I)V
24202 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24204 + invoke-virtual {v2, v8}, Landroid/privacy/PrivacySettingsManager;->saveSettings(Landroid/privacy/PrivacySettings;)Z
24206 + goto/16 :goto_92
24208 + nop
24210 + :array_3da
24211 + .array-data 0x1
24212 + 0x0t
24213 + 0x20t
24214 + 0x1t
24215 + 0x81t
24216 + 0xf0t
24217 + 0x0t
24218 + 0x0t
24219 + 0x11t
24220 + 0x90t
24221 + 0x1t
24222 + 0x30t
24223 + 0x22t
24224 + 0x22t
24225 + 0x80t
24226 + 0x1t
24227 + 0x20t
24228 + .end array-data
24230 + :array_3e6
24231 + .array-data 0x1
24232 + 0x0t
24233 + 0x20t
24234 + 0x1t
24235 + 0x81t
24236 + 0xf0t
24237 + 0x0t
24238 + 0x0t
24239 + 0x11t
24240 + 0x90t
24241 + 0x1t
24242 + 0x30t
24243 + 0x22t
24244 + 0x22t
24245 + 0x80t
24246 + 0x1t
24247 + 0x20t
24248 + .end array-data
24249 +.end method
24251 +.method private static hashCode(Landroid/content/Intent;)J
24252 + .registers 7
24254 + const-wide/16 v3, 0x0
24256 + const-string/jumbo v2, "privacy_hash"
24258 + invoke-virtual {p0, v2, v3, v4}, Landroid/content/Intent;->getLongExtra(Ljava/lang/String;J)J
24260 + move-result-wide v0
24262 + cmp-long v2, v0, v3
24264 + if-nez v2, :cond_1e
24266 + invoke-virtual {p0}, Landroid/content/Intent;->filterHashCode()I
24268 + move-result v2
24270 + int-to-long v2, v2
24272 + invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
24274 + move-result-wide v4
24276 + add-long v0, v2, v4
24278 + const-string/jumbo v2, "privacy_hash"
24280 + invoke-virtual {p0, v2, v0, v1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;J)Landroid/content/Intent;
24282 + :cond_1e
24283 + return-wide v0
24284 +.end method
24285 diff -Npruw stock-framework/smali/android/privacy/surrogate/PrivacyConnectivityManager.smali pdroid-framework/smali/android/privacy/surrogate/PrivacyConnectivityManager.smali
24286 --- stock-framework/smali/android/privacy/surrogate/PrivacyConnectivityManager.smali 1969-12-31 18:00:00.000000000 -0600
24287 +++ pdroid-framework/smali/android/privacy/surrogate/PrivacyConnectivityManager.smali 2013-08-15 23:20:07.956304776 -0500
24288 @@ -0,0 +1,1045 @@
24289 +.class public Landroid/privacy/surrogate/PrivacyConnectivityManager;
24290 +.super Landroid/net/ConnectivityManager;
24291 +.source "PrivacyConnectivityManager.java"
24294 +# static fields
24295 +.field private static final P_TAG:Ljava/lang/String; = "PrivacyConnectivityManager"
24298 +# instance fields
24299 +.field private context:Landroid/content/Context;
24301 +.field private pSetMan:Landroid/privacy/PrivacySettingsManager;
24304 +# direct methods
24305 +.method public constructor <init>(Landroid/net/IConnectivityManager;Landroid/content/Context;)V
24306 + .registers 6
24308 + invoke-direct {p0, p1}, Landroid/net/ConnectivityManager;-><init>(Landroid/net/IConnectivityManager;)V
24310 + iput-object p2, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24312 + new-instance v0, Landroid/privacy/PrivacySettingsManager;
24314 + const-string/jumbo v1, "privacy"
24316 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
24318 + move-result-object v1
24320 + invoke-static {v1}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
24322 + move-result-object v1
24324 + invoke-direct {v0, p2, v1}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
24326 + iput-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24328 + const-string v0, "PrivacyConnectivityManager"
24330 + new-instance v1, Ljava/lang/StringBuilder;
24332 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
24334 + const-string/jumbo v2, "now in constructor for package: "
24336 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
24338 + move-result-object v1
24340 + invoke-virtual {p2}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24342 + move-result-object v2
24344 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
24346 + move-result-object v1
24348 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
24350 + move-result-object v1
24352 + invoke-static {v0, v1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
24354 + return-void
24355 +.end method
24358 +# virtual methods
24359 +.method public getActiveLinkProperties()Landroid/net/LinkProperties;
24360 + .registers 10
24362 + const/4 v2, -0x1
24364 + const/4 v5, 0x0
24366 + new-instance v7, Landroid/net/LinkProperties;
24368 + invoke-direct {v7}, Landroid/net/LinkProperties;-><init>()V
24370 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24372 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24374 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24376 + move-result-object v1
24378 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
24380 + move-result v3
24382 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
24384 + move-result-object v8
24386 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24388 + if-eqz v0, :cond_34
24390 + if-eqz v8, :cond_34
24392 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
24394 + move-result v0
24396 + if-eqz v0, :cond_34
24398 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24400 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24402 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24404 + move-result-object v1
24406 + const/4 v3, 0x1
24408 + const-string/jumbo v4, "networkInfoCurrent"
24410 + move-object v6, v5
24412 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24414 + :goto_33
24415 + return-object v7
24417 + :cond_34
24418 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24420 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24422 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24424 + move-result-object v1
24426 + const/4 v3, 0x0
24428 + const-string/jumbo v4, "networkInfoCurrent"
24430 + move-object v6, v5
24432 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24434 + invoke-super {p0}, Landroid/net/ConnectivityManager;->getActiveLinkProperties()Landroid/net/LinkProperties;
24436 + move-result-object v7
24438 + goto :goto_33
24439 +.end method
24441 +.method public getActiveNetworkInfo()Landroid/net/NetworkInfo;
24442 + .registers 10
24444 + const/4 v3, 0x1
24446 + const/4 v2, -0x1
24448 + const/4 v6, 0x0
24450 + const/4 v5, 0x0
24452 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24454 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24456 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24458 + move-result-object v1
24460 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
24462 + move-result v4
24464 + invoke-virtual {v0, v1, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
24466 + move-result-object v8
24468 + new-instance v7, Landroid/net/NetworkInfo;
24470 + const-string v0, "MOBILE"
24472 + const-string v1, "UNKNOWN"
24474 + invoke-direct {v7, v6, v6, v0, v1}, Landroid/net/NetworkInfo;-><init>(IILjava/lang/String;Ljava/lang/String;)V
24476 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24478 + if-eqz v0, :cond_31
24480 + if-eqz v8, :cond_31
24482 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getForceOnlineState()B
24484 + move-result v0
24486 + if-nez v0, :cond_31
24488 + invoke-virtual {v7, v3}, Landroid/net/NetworkInfo;->setIsAvailable(Z)V
24490 + sget-object v0, Landroid/net/NetworkInfo$State;->CONNECTED:Landroid/net/NetworkInfo$State;
24492 + invoke-virtual {v7, v0}, Landroid/net/NetworkInfo;->setState(Landroid/net/NetworkInfo$State;)V
24494 + :cond_31
24495 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24497 + if-eqz v0, :cond_4d
24499 + if-eqz v8, :cond_4d
24501 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
24503 + move-result v0
24505 + if-eqz v0, :cond_4d
24507 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24509 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24511 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24513 + move-result-object v1
24515 + const-string/jumbo v4, "networkInfoCurrent"
24517 + move-object v6, v5
24519 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24521 + :goto_4c
24522 + return-object v7
24524 + :cond_4d
24525 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24527 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24529 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24531 + move-result-object v1
24533 + const-string/jumbo v4, "networkInfoCurrent"
24535 + move v3, v6
24537 + move-object v6, v5
24539 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24541 + invoke-super {p0}, Landroid/net/ConnectivityManager;->getActiveNetworkInfo()Landroid/net/NetworkInfo;
24543 + move-result-object v7
24545 + goto :goto_4c
24546 +.end method
24548 +.method public getActiveNetworkInfoForUid(I)Landroid/net/NetworkInfo;
24549 + .registers 11
24551 + const/4 v3, 0x1
24553 + const/4 v2, -0x1
24555 + const/4 v6, 0x0
24557 + const/4 v5, 0x0
24559 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24561 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24563 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24565 + move-result-object v1
24567 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
24569 + move-result v4
24571 + invoke-virtual {v0, v1, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
24573 + move-result-object v8
24575 + new-instance v7, Landroid/net/NetworkInfo;
24577 + const-string v0, "MOBILE"
24579 + const-string v1, "UNKNOWN"
24581 + invoke-direct {v7, v6, v6, v0, v1}, Landroid/net/NetworkInfo;-><init>(IILjava/lang/String;Ljava/lang/String;)V
24583 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24585 + if-eqz v0, :cond_31
24587 + if-eqz v8, :cond_31
24589 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getForceOnlineState()B
24591 + move-result v0
24593 + if-nez v0, :cond_31
24595 + invoke-virtual {v7, v3}, Landroid/net/NetworkInfo;->setIsAvailable(Z)V
24597 + sget-object v0, Landroid/net/NetworkInfo$State;->CONNECTED:Landroid/net/NetworkInfo$State;
24599 + invoke-virtual {v7, v0}, Landroid/net/NetworkInfo;->setState(Landroid/net/NetworkInfo$State;)V
24601 + :cond_31
24602 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24604 + if-eqz v0, :cond_4d
24606 + if-eqz v8, :cond_4d
24608 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
24610 + move-result v0
24612 + if-eqz v0, :cond_4d
24614 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24616 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24618 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24620 + move-result-object v1
24622 + const-string/jumbo v4, "networkInfoCurrent"
24624 + move-object v6, v5
24626 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24628 + :goto_4c
24629 + return-object v7
24631 + :cond_4d
24632 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24634 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24636 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24638 + move-result-object v1
24640 + const-string/jumbo v4, "networkInfoCurrent"
24642 + move v3, v6
24644 + move-object v6, v5
24646 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24648 + invoke-super {p0, p1}, Landroid/net/ConnectivityManager;->getActiveNetworkInfoForUid(I)Landroid/net/NetworkInfo;
24650 + move-result-object v7
24652 + goto :goto_4c
24653 +.end method
24655 +.method public getAllNetworkInfo()[Landroid/net/NetworkInfo;
24656 + .registers 10
24658 + const/4 v2, -0x1
24660 + const/4 v3, 0x1
24662 + const/4 v5, 0x0
24664 + const/4 v6, 0x0
24666 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24668 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24670 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24672 + move-result-object v1
24674 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
24676 + move-result v4
24678 + invoke-virtual {v0, v1, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
24680 + move-result-object v8
24682 + new-array v7, v3, [Landroid/net/NetworkInfo;
24684 + new-instance v0, Landroid/net/NetworkInfo;
24686 + const-string v1, "MOBILE"
24688 + const-string v4, "CONNECTED"
24690 + invoke-direct {v0, v6, v6, v1, v4}, Landroid/net/NetworkInfo;-><init>(IILjava/lang/String;Ljava/lang/String;)V
24692 + aput-object v0, v7, v6
24694 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24696 + if-eqz v0, :cond_39
24698 + if-eqz v8, :cond_39
24700 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getForceOnlineState()B
24702 + move-result v0
24704 + if-nez v0, :cond_39
24706 + aget-object v0, v7, v6
24708 + invoke-virtual {v0, v3}, Landroid/net/NetworkInfo;->setIsAvailable(Z)V
24710 + aget-object v0, v7, v6
24712 + sget-object v1, Landroid/net/NetworkInfo$State;->CONNECTED:Landroid/net/NetworkInfo$State;
24714 + invoke-virtual {v0, v1}, Landroid/net/NetworkInfo;->setState(Landroid/net/NetworkInfo$State;)V
24716 + :cond_39
24717 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24719 + if-eqz v0, :cond_55
24721 + if-eqz v8, :cond_55
24723 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
24725 + move-result v0
24727 + if-eqz v0, :cond_55
24729 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24731 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24733 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24735 + move-result-object v1
24737 + const-string/jumbo v4, "networkInfoCurrent"
24739 + move-object v6, v5
24741 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24743 + :goto_54
24744 + return-object v7
24746 + :cond_55
24747 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24749 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24751 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24753 + move-result-object v1
24755 + const-string/jumbo v4, "networkInfoCurrent"
24757 + move v3, v6
24759 + move-object v6, v5
24761 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24763 + invoke-super {p0}, Landroid/net/ConnectivityManager;->getAllNetworkInfo()[Landroid/net/NetworkInfo;
24765 + move-result-object v7
24767 + goto :goto_54
24768 +.end method
24770 +.method public getLinkProperties(I)Landroid/net/LinkProperties;
24771 + .registers 11
24773 + const/4 v2, -0x1
24775 + const/4 v5, 0x0
24777 + new-instance v7, Landroid/net/LinkProperties;
24779 + invoke-direct {v7}, Landroid/net/LinkProperties;-><init>()V
24781 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24783 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24785 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24787 + move-result-object v1
24789 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
24791 + move-result v3
24793 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
24795 + move-result-object v8
24797 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24799 + if-eqz v0, :cond_34
24801 + if-eqz v8, :cond_34
24803 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
24805 + move-result v0
24807 + if-eqz v0, :cond_34
24809 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24811 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24813 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24815 + move-result-object v1
24817 + const/4 v3, 0x1
24819 + const-string/jumbo v4, "networkInfoCurrent"
24821 + move-object v6, v5
24823 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24825 + :goto_33
24826 + return-object v7
24828 + :cond_34
24829 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24831 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24833 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24835 + move-result-object v1
24837 + const/4 v3, 0x0
24839 + const-string/jumbo v4, "networkInfoCurrent"
24841 + move-object v6, v5
24843 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24845 + invoke-super {p0, p1}, Landroid/net/ConnectivityManager;->getLinkProperties(I)Landroid/net/LinkProperties;
24847 + move-result-object v7
24849 + goto :goto_33
24850 +.end method
24852 +.method public getMobileDataEnabled()Z
24853 + .registers 9
24855 + const/4 v3, 0x1
24857 + const/4 v2, -0x1
24859 + const/4 v5, 0x0
24861 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24863 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24865 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24867 + move-result-object v1
24869 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
24871 + move-result v4
24873 + invoke-virtual {v0, v1, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
24875 + move-result-object v7
24877 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24879 + if-eqz v0, :cond_2f
24881 + if-eqz v7, :cond_2f
24883 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getForceOnlineState()B
24885 + move-result v0
24887 + if-nez v0, :cond_2f
24889 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24891 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24893 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24895 + move-result-object v1
24897 + const-string/jumbo v4, "networkInfoCurrent"
24899 + move-object v6, v5
24901 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24903 + :goto_2e
24904 + return v3
24906 + :cond_2f
24907 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24909 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24911 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24913 + move-result-object v1
24915 + const/4 v3, 0x0
24917 + const-string/jumbo v4, "networkInfoCurrent"
24919 + move-object v6, v5
24921 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24923 + invoke-super {p0}, Landroid/net/ConnectivityManager;->getMobileDataEnabled()Z
24925 + move-result v3
24927 + goto :goto_2e
24928 +.end method
24930 +.method public getNetworkInfo(I)Landroid/net/NetworkInfo;
24931 + .registers 11
24933 + const/4 v3, 0x1
24935 + const/4 v2, -0x1
24937 + const/4 v6, 0x0
24939 + const/4 v5, 0x0
24941 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24943 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24945 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24947 + move-result-object v1
24949 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
24951 + move-result v4
24953 + invoke-virtual {v0, v1, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
24955 + move-result-object v8
24957 + new-instance v7, Landroid/net/NetworkInfo;
24959 + const-string v0, "MOBILE"
24961 + const-string v1, "CONNECTED"
24963 + invoke-direct {v7, v6, v6, v0, v1}, Landroid/net/NetworkInfo;-><init>(IILjava/lang/String;Ljava/lang/String;)V
24965 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24967 + if-eqz v0, :cond_31
24969 + if-eqz v8, :cond_31
24971 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getForceOnlineState()B
24973 + move-result v0
24975 + if-nez v0, :cond_31
24977 + invoke-virtual {v7, v3}, Landroid/net/NetworkInfo;->setIsAvailable(Z)V
24979 + sget-object v0, Landroid/net/NetworkInfo$State;->CONNECTED:Landroid/net/NetworkInfo$State;
24981 + invoke-virtual {v7, v0}, Landroid/net/NetworkInfo;->setState(Landroid/net/NetworkInfo$State;)V
24983 + :cond_31
24984 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24986 + if-eqz v0, :cond_4d
24988 + if-eqz v8, :cond_4d
24990 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
24992 + move-result v0
24994 + if-eqz v0, :cond_4d
24996 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24998 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
25000 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
25002 + move-result-object v1
25004 + const-string/jumbo v4, "networkInfoCurrent"
25006 + move-object v6, v5
25008 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25010 + :goto_4c
25011 + return-object v7
25013 + :cond_4d
25014 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25016 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
25018 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
25020 + move-result-object v1
25022 + const-string/jumbo v4, "networkInfoCurrent"
25024 + move v3, v6
25026 + move-object v6, v5
25028 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25030 + invoke-super {p0, p1}, Landroid/net/ConnectivityManager;->getNetworkInfo(I)Landroid/net/NetworkInfo;
25032 + move-result-object v7
25034 + goto :goto_4c
25035 +.end method
25037 +.method public requestRouteToHost(II)Z
25038 + .registers 12
25040 + const/4 v8, 0x0
25042 + const/4 v3, 0x1
25044 + const/4 v2, -0x1
25046 + const/4 v5, 0x0
25048 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25050 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
25052 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
25054 + move-result-object v1
25056 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
25058 + move-result v4
25060 + invoke-virtual {v0, v1, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
25062 + move-result-object v7
25064 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25066 + if-eqz v0, :cond_30
25068 + if-eqz v7, :cond_30
25070 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getForceOnlineState()B
25072 + move-result v0
25074 + if-nez v0, :cond_30
25076 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25078 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
25080 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
25082 + move-result-object v1
25084 + const-string/jumbo v4, "networkInfoCurrent"
25086 + move-object v6, v5
25088 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25090 + :goto_2f
25091 + return v3
25093 + :cond_30
25094 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25096 + if-eqz v0, :cond_4d
25098 + if-eqz v7, :cond_4d
25100 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
25102 + move-result v0
25104 + if-eqz v0, :cond_4d
25106 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25108 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
25110 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
25112 + move-result-object v1
25114 + const-string/jumbo v4, "networkInfoCurrent"
25116 + move-object v6, v5
25118 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25120 + move v3, v8
25122 + goto :goto_2f
25124 + :cond_4d
25125 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25127 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
25129 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
25131 + move-result-object v1
25133 + const-string/jumbo v4, "networkInfoCurrent"
25135 + move v3, v8
25137 + move-object v6, v5
25139 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25141 + invoke-super {p0, p1, p2}, Landroid/net/ConnectivityManager;->requestRouteToHost(II)Z
25143 + move-result v3
25145 + goto :goto_2f
25146 +.end method
25148 +.method public requestRouteToHostAddress(ILjava/net/InetAddress;)Z
25149 + .registers 12
25151 + const/4 v8, 0x0
25153 + const/4 v3, 0x1
25155 + const/4 v2, -0x1
25157 + const/4 v5, 0x0
25159 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25161 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
25163 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
25165 + move-result-object v1
25167 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
25169 + move-result v4
25171 + invoke-virtual {v0, v1, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
25173 + move-result-object v7
25175 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25177 + if-eqz v0, :cond_30
25179 + if-eqz v7, :cond_30
25181 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getForceOnlineState()B
25183 + move-result v0
25185 + if-nez v0, :cond_30
25187 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25189 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
25191 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
25193 + move-result-object v1
25195 + const-string/jumbo v4, "networkInfoCurrent"
25197 + move-object v6, v5
25199 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25201 + :goto_2f
25202 + return v3
25204 + :cond_30
25205 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25207 + if-eqz v0, :cond_4d
25209 + if-eqz v7, :cond_4d
25211 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
25213 + move-result v0
25215 + if-eqz v0, :cond_4d
25217 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25219 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
25221 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
25223 + move-result-object v1
25225 + const-string/jumbo v4, "networkInfoCurrent"
25227 + move-object v6, v5
25229 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25231 + move v3, v8
25233 + goto :goto_2f
25235 + :cond_4d
25236 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25238 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
25240 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
25242 + move-result-object v1
25244 + const-string/jumbo v4, "networkInfoCurrent"
25246 + move v3, v8
25248 + move-object v6, v5
25250 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25252 + invoke-super {p0, p1, p2}, Landroid/net/ConnectivityManager;->requestRouteToHostAddress(ILjava/net/InetAddress;)Z
25254 + move-result v3
25256 + goto :goto_2f
25257 +.end method
25259 +.method public setMobileDataEnabled(Z)V
25260 + .registers 10
25262 + const/4 v2, -0x1
25264 + const/4 v5, 0x0
25266 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25268 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
25270 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
25272 + move-result-object v1
25274 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
25276 + move-result v3
25278 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
25280 + move-result-object v7
25282 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25284 + if-eqz v0, :cond_2f
25286 + if-eqz v7, :cond_2f
25288 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getSwitchConnectivitySetting()B
25290 + move-result v0
25292 + if-eqz v0, :cond_2f
25294 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25296 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
25298 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
25300 + move-result-object v1
25302 + const/4 v3, 0x1
25304 + const-string/jumbo v4, "switchconnectivity"
25306 + move-object v6, v5
25308 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25310 + :goto_2e
25311 + return-void
25313 + :cond_2f
25314 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25316 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
25318 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
25320 + move-result-object v1
25322 + const/4 v3, 0x0
25324 + const-string/jumbo v4, "switchconnectivity"
25326 + move-object v6, v5
25328 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25330 + invoke-super {p0, p1}, Landroid/net/ConnectivityManager;->setMobileDataEnabled(Z)V
25332 + goto :goto_2e
25333 +.end method
25334 diff -Npruw stock-framework/smali/android/privacy/surrogate/PrivacyContentResolver.smali pdroid-framework/smali/android/privacy/surrogate/PrivacyContentResolver.smali
25335 --- stock-framework/smali/android/privacy/surrogate/PrivacyContentResolver.smali 1969-12-31 18:00:00.000000000 -0600
25336 +++ pdroid-framework/smali/android/privacy/surrogate/PrivacyContentResolver.smali 2013-08-15 23:20:07.960304776 -0500
25337 @@ -0,0 +1,868 @@
25338 +.class public final Landroid/privacy/surrogate/PrivacyContentResolver;
25339 +.super Ljava/lang/Object;
25340 +.source "PrivacyContentResolver.java"
25343 +# static fields
25344 +.field private static final MMS_CONTENT_URI_AUTHORITY:Ljava/lang/String; = "mms"
25346 +.field private static final MMS_SMS_CONTENT_URI_AUTHORITY:Ljava/lang/String; = "mms-sms"
25348 +.field private static final SMS_CONTENT_URI_AUTHORITY:Ljava/lang/String; = "sms"
25350 +.field private static final TAG:Ljava/lang/String; = "PrivacyContentResolver"
25352 +.field private static pSetMan:Landroid/privacy/PrivacySettingsManager;
25355 +# direct methods
25356 +.method public constructor <init>()V
25357 + .registers 1
25359 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
25361 + return-void
25362 +.end method
25364 +.method private static arrayToString([Ljava/lang/String;)Ljava/lang/String;
25365 + .registers 8
25367 + new-instance v4, Ljava/lang/StringBuffer;
25369 + invoke-direct {v4}, Ljava/lang/StringBuffer;-><init>()V
25371 + if-eqz p0, :cond_2d
25373 + move-object v0, p0
25375 + array-length v3, v0
25377 + const/4 v2, 0x0
25379 + :goto_a
25380 + if-ge v2, v3, :cond_30
25382 + aget-object v1, v0, v2
25384 + new-instance v5, Ljava/lang/StringBuilder;
25386 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
25388 + const-string v6, "["
25390 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
25392 + move-result-object v5
25394 + invoke-virtual {v5, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
25396 + move-result-object v5
25398 + const-string v6, "]"
25400 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
25402 + move-result-object v5
25404 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
25406 + move-result-object v5
25408 + invoke-virtual {v4, v5}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
25410 + add-int/lit8 v2, v2, 0x1
25412 + goto :goto_a
25414 + :cond_2d
25415 + const-string v5, ""
25417 + :goto_2f
25418 + return-object v5
25420 + :cond_30
25421 + invoke-virtual {v4}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
25423 + move-result-object v5
25425 + goto :goto_2f
25426 +.end method
25428 +.method public static enforcePrivacyPermission(Landroid/net/Uri;[Ljava/lang/String;Landroid/content/Context;Landroid/database/Cursor;)Landroid/database/Cursor;
25429 + .registers 21
25430 + .annotation system Ldalvik/annotation/Throws;
25431 + value = {
25432 + Landroid/os/RemoteException;
25434 + .end annotation
25436 + if-eqz p0, :cond_1db
25438 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25440 + if-nez v1, :cond_13
25442 + const-string/jumbo v1, "privacy"
25444 + move-object/from16 v0, p2
25446 + invoke-virtual {v0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
25448 + move-result-object v1
25450 + check-cast v1, Landroid/privacy/PrivacySettingsManager;
25452 + sput-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25454 + :cond_13
25455 + invoke-virtual/range {p2 .. p2}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
25457 + move-result-object v2
25459 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
25461 + move-result v3
25463 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25465 + invoke-virtual {v1, v2, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
25467 + move-result-object v7
25469 + invoke-virtual/range {p0 .. p0}, Landroid/net/Uri;->getAuthority()Ljava/lang/String;
25471 + move-result-object v9
25473 + const-string v15, "[real]"
25475 + move-object/from16 v13, p3
25477 + if-eqz v9, :cond_54
25479 + const-string v1, "contacts"
25481 + invoke-virtual {v9, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
25483 + move-result v1
25485 + if-nez v1, :cond_3b
25487 + const-string v1, "com.android.contacts"
25489 + invoke-virtual {v9, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
25491 + move-result v1
25493 + if-eqz v1, :cond_ab
25495 + :cond_3b
25496 + if-eqz v7, :cond_54
25498 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getContactsSetting()B
25500 + move-result v1
25502 + const/4 v4, 0x1
25504 + if-ne v1, v4, :cond_55
25506 + const-string v15, "[empty]"
25508 + new-instance v13, Landroid/privacy/surrogate/PrivacyCursor;
25510 + invoke-direct {v13}, Landroid/privacy/surrogate/PrivacyCursor;-><init>()V
25512 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25514 + const/4 v4, 0x1
25516 + const-string v5, "contacts"
25518 + const/4 v6, 0x0
25520 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25522 + :cond_54
25523 + :goto_54
25524 + return-object v13
25526 + :cond_55
25527 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getContactsSetting()B
25529 + move-result v1
25531 + const/4 v4, 0x2
25533 + if-ne v1, v4, :cond_a1
25535 + invoke-virtual/range {p0 .. p0}, Landroid/net/Uri;->toString()Ljava/lang/String;
25537 + move-result-object v1
25539 + sget-object v4, Landroid/provider/ContactsContract$Contacts;->CONTENT_URI:Landroid/net/Uri;
25541 + invoke-virtual {v4}, Landroid/net/Uri;->toString()Ljava/lang/String;
25543 + move-result-object v4
25545 + invoke-virtual {v1, v4}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
25547 + move-result v1
25549 + if-eqz v1, :cond_a1
25551 + const/4 v11, 0x0
25553 + if-eqz p1, :cond_82
25555 + move-object/from16 v8, p1
25557 + array-length v12, v8
25559 + const/4 v10, 0x0
25561 + :goto_73
25562 + if-ge v10, v12, :cond_82
25564 + aget-object v16, v8, v10
25566 + const-string v1, "_id"
25568 + move-object/from16 v0, v16
25570 + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
25572 + move-result v1
25574 + if-eqz v1, :cond_93
25576 + const/4 v11, 0x1
25578 + :cond_82
25579 + if-nez v11, :cond_96
25581 + new-instance v13, Landroid/privacy/surrogate/PrivacyCursor;
25583 + invoke-direct {v13}, Landroid/privacy/surrogate/PrivacyCursor;-><init>()V
25585 + :goto_89
25586 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25588 + const/4 v4, 0x2
25590 + const-string v5, "contacts"
25592 + const/4 v6, 0x0
25594 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25596 + goto :goto_54
25598 + :cond_93
25599 + add-int/lit8 v10, v10, 0x1
25601 + goto :goto_73
25603 + :cond_96
25604 + new-instance v14, Landroid/privacy/surrogate/PrivacyCursor;
25606 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getAllowedContacts()[I
25608 + move-result-object v1
25610 + invoke-direct {v14, v13, v1}, Landroid/privacy/surrogate/PrivacyCursor;-><init>(Landroid/database/Cursor;[I)V
25612 + move-object v13, v14
25614 + goto :goto_89
25616 + :cond_a1
25617 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25619 + const/4 v4, 0x0
25621 + const-string v5, "contacts"
25623 + const/4 v6, 0x0
25625 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25627 + goto :goto_54
25629 + :cond_ab
25630 + const-string v1, "com.android.calendar"
25632 + invoke-virtual {v9, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
25634 + move-result v1
25636 + if-eqz v1, :cond_d8
25638 + if-eqz v7, :cond_cd
25640 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getCalendarSetting()B
25642 + move-result v1
25644 + const/4 v4, 0x1
25646 + if-ne v1, v4, :cond_cd
25648 + const-string v15, "[empty]"
25650 + new-instance v13, Landroid/privacy/surrogate/PrivacyCursor;
25652 + invoke-direct {v13}, Landroid/privacy/surrogate/PrivacyCursor;-><init>()V
25654 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25656 + const/4 v4, 0x1
25658 + const-string v5, "calendar"
25660 + const/4 v6, 0x0
25662 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25664 + goto :goto_54
25666 + :cond_cd
25667 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25669 + const/4 v4, 0x0
25671 + const-string v5, "calendar"
25673 + const/4 v6, 0x0
25675 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25677 + goto/16 :goto_54
25679 + :cond_d8
25680 + const-string/jumbo v1, "mms"
25682 + invoke-virtual {v9, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
25684 + move-result v1
25686 + if-eqz v1, :cond_109
25688 + if-eqz v7, :cond_fd
25690 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getMmsSetting()B
25692 + move-result v1
25694 + const/4 v4, 0x1
25696 + if-ne v1, v4, :cond_fd
25698 + const-string v15, "[empty]"
25700 + new-instance v13, Landroid/privacy/surrogate/PrivacyCursor;
25702 + invoke-direct {v13}, Landroid/privacy/surrogate/PrivacyCursor;-><init>()V
25704 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25706 + const/4 v4, 0x1
25708 + const-string/jumbo v5, "mms"
25710 + const/4 v6, 0x0
25712 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25714 + goto/16 :goto_54
25716 + :cond_fd
25717 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25719 + const/4 v4, 0x0
25721 + const-string/jumbo v5, "mms"
25723 + const/4 v6, 0x0
25725 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25727 + goto/16 :goto_54
25729 + :cond_109
25730 + const-string/jumbo v1, "sms"
25732 + invoke-virtual {v9, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
25734 + move-result v1
25736 + if-eqz v1, :cond_13a
25738 + if-eqz v7, :cond_12e
25740 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getSmsSetting()B
25742 + move-result v1
25744 + const/4 v4, 0x1
25746 + if-ne v1, v4, :cond_12e
25748 + const-string v15, "[empty]"
25750 + new-instance v13, Landroid/privacy/surrogate/PrivacyCursor;
25752 + invoke-direct {v13}, Landroid/privacy/surrogate/PrivacyCursor;-><init>()V
25754 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25756 + const/4 v4, 0x1
25758 + const-string/jumbo v5, "sms"
25760 + const/4 v6, 0x0
25762 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25764 + goto/16 :goto_54
25766 + :cond_12e
25767 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25769 + const/4 v4, 0x0
25771 + const-string/jumbo v5, "sms"
25773 + const/4 v6, 0x0
25775 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25777 + goto/16 :goto_54
25779 + :cond_13a
25780 + const-string/jumbo v1, "mms-sms"
25782 + invoke-virtual {v9, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
25784 + move-result v1
25786 + if-nez v1, :cond_14c
25788 + const-string/jumbo v1, "mms-sms-v2"
25790 + invoke-virtual {v9, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
25792 + move-result v1
25794 + if-eqz v1, :cond_17b
25796 + :cond_14c
25797 + if-eqz v7, :cond_16f
25799 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getMmsSetting()B
25801 + move-result v1
25803 + const/4 v4, 0x1
25805 + if-eq v1, v4, :cond_15c
25807 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getSmsSetting()B
25809 + move-result v1
25811 + const/4 v4, 0x1
25813 + if-ne v1, v4, :cond_16f
25815 + :cond_15c
25816 + const-string v15, "[empty]"
25818 + new-instance v13, Landroid/privacy/surrogate/PrivacyCursor;
25820 + invoke-direct {v13}, Landroid/privacy/surrogate/PrivacyCursor;-><init>()V
25822 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25824 + const/4 v4, 0x1
25826 + const-string/jumbo v5, "mmsSms"
25828 + const/4 v6, 0x0
25830 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25832 + goto/16 :goto_54
25834 + :cond_16f
25835 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25837 + const/4 v4, 0x0
25839 + const-string/jumbo v5, "mmsSms"
25841 + const/4 v6, 0x0
25843 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25845 + goto/16 :goto_54
25847 + :cond_17b
25848 + const-string v1, "call_log"
25850 + invoke-virtual {v9, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
25852 + move-result v1
25854 + if-eqz v1, :cond_1a9
25856 + if-eqz v7, :cond_19e
25858 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getCallLogSetting()B
25860 + move-result v1
25862 + const/4 v4, 0x1
25864 + if-ne v1, v4, :cond_19e
25866 + const-string v15, "[empty]"
25868 + new-instance v13, Landroid/privacy/surrogate/PrivacyCursor;
25870 + invoke-direct {v13}, Landroid/privacy/surrogate/PrivacyCursor;-><init>()V
25872 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25874 + const/4 v4, 0x1
25876 + const-string v5, "callLog"
25878 + const/4 v6, 0x0
25880 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25882 + goto/16 :goto_54
25884 + :cond_19e
25885 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25887 + const/4 v4, 0x0
25889 + const-string v5, "callLog"
25891 + const/4 v6, 0x0
25893 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25895 + goto/16 :goto_54
25897 + :cond_1a9
25898 + sget-object v1, Landroid/provider/Browser;->BOOKMARKS_URI:Landroid/net/Uri;
25900 + invoke-virtual {v1}, Landroid/net/Uri;->getAuthority()Ljava/lang/String;
25902 + move-result-object v1
25904 + invoke-virtual {v9, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
25906 + move-result v1
25908 + if-eqz v1, :cond_54
25910 + if-eqz v7, :cond_1d0
25912 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getBookmarksSetting()B
25914 + move-result v1
25916 + const/4 v4, 0x1
25918 + if-ne v1, v4, :cond_1d0
25920 + const-string v15, "[empty]"
25922 + new-instance v13, Landroid/privacy/surrogate/PrivacyCursor;
25924 + invoke-direct {v13}, Landroid/privacy/surrogate/PrivacyCursor;-><init>()V
25926 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25928 + const/4 v4, 0x1
25930 + const-string v5, "bookmarks"
25932 + const/4 v6, 0x0
25934 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25936 + goto/16 :goto_54
25938 + :cond_1d0
25939 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25941 + const/4 v4, 0x0
25943 + const-string v5, "bookmarks"
25945 + const/4 v6, 0x0
25947 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25949 + goto/16 :goto_54
25951 + :cond_1db
25952 + move-object/from16 v13, p3
25954 + goto/16 :goto_54
25955 +.end method
25957 +.method public static enforcePrivacyPermission(Landroid/net/Uri;[Ljava/lang/String;Landroid/content/Context;Landroid/database/Cursor;Z)Landroid/database/Cursor;
25958 + .registers 20
25959 + .annotation system Ldalvik/annotation/Throws;
25960 + value = {
25961 + Landroid/os/RemoteException;
25963 + .end annotation
25965 + if-eqz p0, :cond_dd
25967 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25969 + if-nez v1, :cond_13
25971 + const-string/jumbo v1, "privacy"
25973 + move-object/from16 v0, p2
25975 + invoke-virtual {v0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
25977 + move-result-object v1
25979 + check-cast v1, Landroid/privacy/PrivacySettingsManager;
25981 + sput-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25983 + :cond_13
25984 + invoke-virtual/range {p2 .. p2}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
25986 + move-result-object v2
25988 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
25990 + move-result v3
25992 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25994 + invoke-virtual {v1, v2, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
25996 + move-result-object v7
25998 + invoke-virtual {p0}, Landroid/net/Uri;->getAuthority()Ljava/lang/String;
26000 + move-result-object v9
26002 + const-string v14, "[real]"
26004 + move-object/from16 v13, p3
26006 + if-eqz v9, :cond_6d
26008 + const-string v1, "com.google.android.gsf.gservices"
26010 + invoke-virtual {v9, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
26012 + move-result v1
26014 + if-eqz v1, :cond_6d
26016 + if-eqz v7, :cond_cb
26018 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getSimInfoSetting()B
26020 + move-result v1
26022 + if-eqz v1, :cond_cb
26024 + invoke-interface/range {p3 .. p3}, Landroid/database/Cursor;->getPosition()I
26026 + move-result v8
26028 + const/4 v11, -0x1
26030 + const/4 v12, 0x0
26032 + :goto_41
26033 + :try_start_41
26034 + invoke-interface/range {p3 .. p3}, Landroid/database/Cursor;->getCount()I
26036 + move-result v1
26038 + if-ge v12, v1, :cond_5d
26040 + invoke-interface/range {p3 .. p3}, Landroid/database/Cursor;->moveToNext()Z
26042 + const/4 v1, 0x0
26044 + move-object/from16 v0, p3
26046 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
26048 + move-result-object v1
26050 + const-string v4, "android_id"
26052 + invoke-virtual {v1, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
26054 + move-result v1
26056 + if-eqz v1, :cond_6e
26058 + invoke-interface/range {p3 .. p3}, Landroid/database/Cursor;->getPosition()I
26059 + :try_end_5c
26060 + .catchall {:try_start_41 .. :try_end_5c} :catchall_8b
26061 + .catch Ljava/lang/Exception; {:try_start_41 .. :try_end_5c} :catch_71
26063 + move-result v11
26065 + :cond_5d
26066 + move-object/from16 v0, p3
26068 + invoke-interface {v0, v8}, Landroid/database/Cursor;->moveToPosition(I)Z
26070 + const/4 v1, -0x1
26072 + if-ne v11, v1, :cond_9e
26074 + const-string v1, "PrivacyContentResolver"
26076 + const-string/jumbo v4, "now we return real cursor, because forbidden_pos is -1"
26078 + invoke-static {v1, v4}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
26080 + :cond_6d
26081 + :goto_6d
26082 + return-object v13
26084 + :cond_6e
26085 + add-int/lit8 v12, v12, 0x1
26087 + goto :goto_41
26089 + :catch_71
26090 + move-exception v10
26092 + :try_start_72
26093 + const-string v1, "PrivacyContentResolver"
26095 + const-string/jumbo v4, "something went wrong while getting blocked permission for android id"
26097 + invoke-static {v1, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
26098 + :try_end_7a
26099 + .catchall {:try_start_72 .. :try_end_7a} :catchall_8b
26101 + move-object/from16 v0, p3
26103 + invoke-interface {v0, v8}, Landroid/database/Cursor;->moveToPosition(I)Z
26105 + const/4 v1, -0x1
26107 + if-ne v11, v1, :cond_9e
26109 + const-string v1, "PrivacyContentResolver"
26111 + const-string/jumbo v4, "now we return real cursor, because forbidden_pos is -1"
26113 + invoke-static {v1, v4}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
26115 + goto :goto_6d
26117 + :catchall_8b
26118 + move-exception v1
26120 + move-object/from16 v0, p3
26122 + invoke-interface {v0, v8}, Landroid/database/Cursor;->moveToPosition(I)Z
26124 + const/4 v4, -0x1
26126 + if-ne v11, v4, :cond_9d
26128 + const-string v1, "PrivacyContentResolver"
26130 + const-string/jumbo v4, "now we return real cursor, because forbidden_pos is -1"
26132 + invoke-static {v1, v4}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
26134 + goto :goto_6d
26136 + :cond_9d
26137 + throw v1
26139 + :cond_9e
26140 + const-string v1, "PrivacyContentResolver"
26142 + new-instance v4, Ljava/lang/StringBuilder;
26144 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
26146 + const-string/jumbo v5, "now blocking google access to android id and give fake cursor. forbidden_position: "
26148 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
26150 + move-result-object v4
26152 + invoke-virtual {v4, v11}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
26154 + move-result-object v4
26156 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
26158 + move-result-object v4
26160 + invoke-static {v1, v4}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
26162 + const-string v14, "[fake]"
26164 + new-instance v13, Landroid/privacy/surrogate/PrivacyCursor;
26166 + move-object/from16 v0, p3
26168 + invoke-direct {v13, v0, v11}, Landroid/privacy/surrogate/PrivacyCursor;-><init>(Landroid/database/Cursor;I)V
26170 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
26172 + const/4 v4, 0x1
26174 + const-string/jumbo v5, "networkInfoSIM"
26176 + const/4 v6, 0x0
26178 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
26180 + goto :goto_6d
26182 + :cond_cb
26183 + const-string v1, "PrivacyContentResolver"
26185 + const-string v4, "google is allowed to get real cursor"
26187 + invoke-static {v1, v4}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
26189 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
26191 + const/4 v4, 0x0
26193 + const-string/jumbo v5, "networkInfoSIM"
26195 + const/4 v6, 0x0
26197 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
26199 + goto :goto_6d
26201 + :cond_dd
26202 + move-object/from16 v13, p3
26204 + goto :goto_6d
26205 +.end method
26206 diff -Npruw stock-framework/smali/android/privacy/surrogate/PrivacyCursor.smali pdroid-framework/smali/android/privacy/surrogate/PrivacyCursor.smali
26207 --- stock-framework/smali/android/privacy/surrogate/PrivacyCursor.smali 1969-12-31 18:00:00.000000000 -0600
26208 +++ pdroid-framework/smali/android/privacy/surrogate/PrivacyCursor.smali 2013-08-15 23:20:07.960304776 -0500
26209 @@ -0,0 +1,1765 @@
26210 +.class public Landroid/privacy/surrogate/PrivacyCursor;
26211 +.super Ljava/lang/Object;
26212 +.source "PrivacyCursor.java"
26214 +# interfaces
26215 +.implements Landroid/database/Cursor;
26218 +# static fields
26219 +.field private static final TAG:Ljava/lang/String; = "PrivacyCursor"
26221 +.field private static final mask:[Ljava/lang/String;
26224 +# instance fields
26225 +.field private allowedIdMapping:[I
26227 +.field private allowedIds:[I
26229 +.field private blockedColumnAndroidID:I
26231 +.field private googleCursor:Z
26233 +.field private realCursor:Landroid/database/Cursor;
26236 +# direct methods
26237 +.method static constructor <clinit>()V
26238 + .registers 3
26240 + const/16 v0, 0x10
26242 + new-array v0, v0, [Ljava/lang/String;
26244 + const/4 v1, 0x0
26246 + const-string v2, "0"
26248 + aput-object v2, v0, v1
26250 + const/4 v1, 0x1
26252 + const-string v2, "1"
26254 + aput-object v2, v0, v1
26256 + const/4 v1, 0x2
26258 + const-string v2, "2"
26260 + aput-object v2, v0, v1
26262 + const/4 v1, 0x3
26264 + const-string v2, "3"
26266 + aput-object v2, v0, v1
26268 + const/4 v1, 0x4
26270 + const-string v2, "4"
26272 + aput-object v2, v0, v1
26274 + const/4 v1, 0x5
26276 + const-string v2, "5"
26278 + aput-object v2, v0, v1
26280 + const/4 v1, 0x6
26282 + const-string v2, "6"
26284 + aput-object v2, v0, v1
26286 + const/4 v1, 0x7
26288 + const-string v2, "7"
26290 + aput-object v2, v0, v1
26292 + const/16 v1, 0x8
26294 + const-string v2, "8"
26296 + aput-object v2, v0, v1
26298 + const/16 v1, 0x9
26300 + const-string v2, "9"
26302 + aput-object v2, v0, v1
26304 + const/16 v1, 0xa
26306 + const-string v2, "a"
26308 + aput-object v2, v0, v1
26310 + const/16 v1, 0xb
26312 + const-string v2, "b"
26314 + aput-object v2, v0, v1
26316 + const/16 v1, 0xc
26318 + const-string v2, "c"
26320 + aput-object v2, v0, v1
26322 + const/16 v1, 0xd
26324 + const-string v2, "d"
26326 + aput-object v2, v0, v1
26328 + const/16 v1, 0xe
26330 + const-string v2, "e"
26332 + aput-object v2, v0, v1
26334 + const/16 v1, 0xf
26336 + const-string v2, "f"
26338 + aput-object v2, v0, v1
26340 + sput-object v0, Landroid/privacy/surrogate/PrivacyCursor;->mask:[Ljava/lang/String;
26342 + return-void
26343 +.end method
26345 +.method public constructor <init>()V
26346 + .registers 1
26348 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
26350 + return-void
26351 +.end method
26353 +.method public constructor <init>(Landroid/database/Cursor;I)V
26354 + .registers 6
26356 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
26358 + const/16 v0, -0xb
26360 + if-ne p2, v0, :cond_28
26362 + const/4 v0, 0x0
26364 + iput-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26366 + :goto_a
26367 + iput p2, p0, Landroid/privacy/surrogate/PrivacyCursor;->blockedColumnAndroidID:I
26369 + const/4 v0, 0x1
26371 + iput-boolean v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
26373 + const-string v0, "PrivacyCursor"
26375 + new-instance v1, Ljava/lang/StringBuilder;
26377 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
26379 + const-string v2, "constructor is ready for google cursor! forbidden_position: "
26381 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
26383 + move-result-object v1
26385 + invoke-virtual {v1, p2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
26387 + move-result-object v1
26389 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
26391 + move-result-object v1
26393 + invoke-static {v0, v1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
26395 + return-void
26397 + :cond_28
26398 + iput-object p1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26400 + goto :goto_a
26401 +.end method
26403 +.method public constructor <init>(Landroid/database/Cursor;[I)V
26404 + .registers 7
26406 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
26408 + if-eqz p2, :cond_8
26410 + array-length v2, p2
26412 + if-nez v2, :cond_9
26414 + :cond_8
26415 + const/4 p1, 0x0
26417 + :cond_9
26418 + iput-object p1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26420 + iput-object p2, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIds:[I
26422 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26424 + if-eqz v2, :cond_3f
26426 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26428 + invoke-interface {v2}, Landroid/database/Cursor;->getPosition()I
26430 + move-result v0
26432 + array-length v2, p2
26434 + new-array v2, v2, [I
26436 + iput-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26438 + const/4 v1, 0x0
26440 + :cond_1d
26441 + :goto_1d
26442 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26444 + invoke-interface {v2}, Landroid/database/Cursor;->moveToNext()Z
26446 + move-result v2
26448 + if-eqz v2, :cond_3a
26450 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26452 + invoke-direct {p0, v2}, Landroid/privacy/surrogate/PrivacyCursor;->isAllowed(Landroid/database/Cursor;)Z
26454 + move-result v2
26456 + if-eqz v2, :cond_1d
26458 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26460 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26462 + invoke-interface {v3}, Landroid/database/Cursor;->getPosition()I
26464 + move-result v3
26466 + aput v3, v2, v1
26468 + add-int/lit8 v1, v1, 0x1
26470 + goto :goto_1d
26472 + :cond_3a
26473 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26475 + invoke-interface {v2, v0}, Landroid/database/Cursor;->moveToPosition(I)Z
26477 + :cond_3f
26478 + return-void
26479 +.end method
26481 +.method private getContactId(Landroid/database/Cursor;)I
26482 + .registers 5
26484 + const-string v2, "_id"
26486 + invoke-interface {p1, v2}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I
26488 + move-result v0
26490 + const/4 v1, -0x1
26492 + const/4 v2, -0x1
26494 + if-eq v0, v2, :cond_e
26496 + invoke-interface {p1, v0}, Landroid/database/Cursor;->getInt(I)I
26498 + move-result v1
26500 + :cond_e
26501 + return v1
26502 +.end method
26504 +.method private getFakeID()Ljava/lang/String;
26505 + .registers 8
26507 + :try_start_0
26508 + new-instance v3, Ljava/util/Random;
26510 + invoke-direct {v3}, Ljava/util/Random;-><init>()V
26512 + const-string v2, ""
26514 + const/4 v1, 0x0
26516 + :goto_8
26517 + const/16 v4, 0x10
26519 + if-ge v1, v4, :cond_34
26521 + new-instance v4, Ljava/lang/StringBuilder;
26523 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
26525 + invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
26527 + move-result-object v4
26529 + sget-object v5, Landroid/privacy/surrogate/PrivacyCursor;->mask:[Ljava/lang/String;
26531 + const/16 v6, 0xf
26533 + invoke-virtual {v3, v6}, Ljava/util/Random;->nextInt(I)I
26535 + move-result v6
26537 + aget-object v5, v5, v6
26539 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
26541 + move-result-object v4
26543 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
26544 + :try_end_26
26545 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_26} :catch_2a
26547 + move-result-object v2
26549 + add-int/lit8 v1, v1, 0x1
26551 + goto :goto_8
26553 + :catch_2a
26554 + move-exception v0
26556 + const-string v4, "PrivacyCursor"
26558 + const-string/jumbo v5, "something went wrong with creating fake ID"
26560 + invoke-static {v4, v5}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
26562 + const/4 v2, 0x0
26564 + :cond_34
26565 + return-object v2
26566 +.end method
26568 +.method private getMappedPos(I)I
26569 + .registers 4
26571 + const/4 v0, 0x0
26573 + :goto_1
26574 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26576 + array-length v1, v1
26578 + if-ge v0, v1, :cond_10
26580 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26582 + aget v1, v1, v0
26584 + if-ne v1, p1, :cond_d
26586 + :goto_c
26587 + return v0
26589 + :cond_d
26590 + add-int/lit8 v0, v0, 0x1
26592 + goto :goto_1
26594 + :cond_10
26595 + const/4 v0, -0x1
26597 + goto :goto_c
26598 +.end method
26600 +.method private isAllowed(I)Z
26601 + .registers 7
26603 + const/4 v4, 0x0
26605 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIds:[I
26607 + array-length v3, v0
26609 + const/4 v2, 0x0
26611 + :goto_5
26612 + if-ge v2, v3, :cond_c
26614 + aget v1, v0, v2
26616 + if-ne p1, v1, :cond_d
26618 + const/4 v4, 0x1
26620 + :cond_c
26621 + return v4
26623 + :cond_d
26624 + add-int/lit8 v2, v2, 0x1
26626 + goto :goto_5
26627 +.end method
26629 +.method private isAllowed(Landroid/database/Cursor;)Z
26630 + .registers 3
26632 + invoke-direct {p0, p1}, Landroid/privacy/surrogate/PrivacyCursor;->getContactId(Landroid/database/Cursor;)I
26634 + move-result v0
26636 + invoke-direct {p0, v0}, Landroid/privacy/surrogate/PrivacyCursor;->isAllowed(I)Z
26638 + move-result v0
26640 + return v0
26641 +.end method
26644 +# virtual methods
26645 +.method public close()V
26646 + .registers 2
26648 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26650 + if-eqz v0, :cond_9
26652 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26654 + invoke-interface {v0}, Landroid/database/Cursor;->close()V
26656 + :cond_9
26657 + return-void
26658 +.end method
26660 +.method public copyStringToBuffer(ILandroid/database/CharArrayBuffer;)V
26661 + .registers 4
26663 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26665 + if-eqz v0, :cond_9
26667 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26669 + invoke-interface {v0, p1, p2}, Landroid/database/Cursor;->copyStringToBuffer(ILandroid/database/CharArrayBuffer;)V
26671 + :cond_9
26672 + return-void
26673 +.end method
26675 +.method public deactivate()V
26676 + .registers 2
26678 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26680 + if-eqz v0, :cond_9
26682 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26684 + invoke-interface {v0}, Landroid/database/Cursor;->deactivate()V
26686 + :cond_9
26687 + return-void
26688 +.end method
26690 +.method public getBlob(I)[B
26691 + .registers 3
26693 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26695 + if-eqz v0, :cond_b
26697 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26699 + invoke-interface {v0, p1}, Landroid/database/Cursor;->getBlob(I)[B
26701 + move-result-object v0
26703 + :goto_a
26704 + return-object v0
26706 + :cond_b
26707 + const/4 v0, 0x0
26709 + new-array v0, v0, [B
26711 + goto :goto_a
26712 +.end method
26714 +.method public getColumnCount()I
26715 + .registers 2
26717 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26719 + if-eqz v0, :cond_b
26721 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26723 + invoke-interface {v0}, Landroid/database/Cursor;->getColumnCount()I
26725 + move-result v0
26727 + :goto_a
26728 + return v0
26730 + :cond_b
26731 + const/4 v0, 0x0
26733 + goto :goto_a
26734 +.end method
26736 +.method public getColumnIndex(Ljava/lang/String;)I
26737 + .registers 3
26739 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26741 + if-eqz v0, :cond_b
26743 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26745 + invoke-interface {v0, p1}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I
26747 + move-result v0
26749 + :goto_a
26750 + return v0
26752 + :cond_b
26753 + const/4 v0, -0x1
26755 + goto :goto_a
26756 +.end method
26758 +.method public getColumnIndexOrThrow(Ljava/lang/String;)I
26759 + .registers 3
26760 + .annotation system Ldalvik/annotation/Throws;
26761 + value = {
26762 + Ljava/lang/IllegalArgumentException;
26764 + .end annotation
26766 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26768 + if-eqz v0, :cond_b
26770 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26772 + invoke-interface {v0, p1}, Landroid/database/Cursor;->getColumnIndexOrThrow(Ljava/lang/String;)I
26774 + move-result v0
26776 + :goto_a
26777 + return v0
26779 + :cond_b
26780 + const/4 v0, -0x1
26782 + goto :goto_a
26783 +.end method
26785 +.method public getColumnName(I)Ljava/lang/String;
26786 + .registers 3
26788 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26790 + if-eqz v0, :cond_b
26792 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26794 + invoke-interface {v0, p1}, Landroid/database/Cursor;->getColumnName(I)Ljava/lang/String;
26796 + move-result-object v0
26798 + :goto_a
26799 + return-object v0
26801 + :cond_b
26802 + const-string v0, ""
26804 + goto :goto_a
26805 +.end method
26807 +.method public getColumnNames()[Ljava/lang/String;
26808 + .registers 4
26810 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26812 + if-eqz v0, :cond_b
26814 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26816 + invoke-interface {v0}, Landroid/database/Cursor;->getColumnNames()[Ljava/lang/String;
26818 + move-result-object v0
26820 + :goto_a
26821 + return-object v0
26823 + :cond_b
26824 + const/4 v0, 0x1
26826 + new-array v0, v0, [Ljava/lang/String;
26828 + const/4 v1, 0x0
26830 + const-string v2, ""
26832 + aput-object v2, v0, v1
26834 + goto :goto_a
26835 +.end method
26837 +.method public getCount()I
26838 + .registers 4
26840 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26842 + if-eqz v0, :cond_2b
26844 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26846 + if-eqz v0, :cond_2b
26848 + iget-boolean v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
26850 + if-nez v0, :cond_2b
26852 + const-string v0, "PrivacyCursor"
26854 + new-instance v1, Ljava/lang/StringBuilder;
26856 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
26858 + const-string v2, "getCount: "
26860 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
26862 + move-result-object v1
26864 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26866 + array-length v2, v2
26868 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
26870 + move-result-object v1
26872 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
26874 + move-result-object v1
26876 + invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
26878 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26880 + array-length v0, v0
26882 + :goto_2a
26883 + return v0
26885 + :cond_2b
26886 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26888 + if-eqz v0, :cond_36
26890 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26892 + invoke-interface {v0}, Landroid/database/Cursor;->getCount()I
26894 + move-result v0
26896 + goto :goto_2a
26898 + :cond_36
26899 + const/4 v0, 0x0
26901 + goto :goto_2a
26902 +.end method
26904 +.method public getDouble(I)D
26905 + .registers 4
26907 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26909 + if-eqz v0, :cond_b
26911 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26913 + invoke-interface {v0, p1}, Landroid/database/Cursor;->getDouble(I)D
26915 + move-result-wide v0
26917 + :goto_a
26918 + return-wide v0
26920 + :cond_b
26921 + const-wide/16 v0, 0x0
26923 + goto :goto_a
26924 +.end method
26926 +.method public getExtras()Landroid/os/Bundle;
26927 + .registers 2
26929 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26931 + if-eqz v0, :cond_b
26933 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26935 + invoke-interface {v0}, Landroid/database/Cursor;->getExtras()Landroid/os/Bundle;
26937 + move-result-object v0
26939 + :goto_a
26940 + return-object v0
26942 + :cond_b
26943 + new-instance v0, Landroid/os/Bundle;
26945 + invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
26947 + goto :goto_a
26948 +.end method
26950 +.method public getFloat(I)F
26951 + .registers 3
26953 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26955 + if-eqz v0, :cond_b
26957 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26959 + invoke-interface {v0, p1}, Landroid/database/Cursor;->getFloat(I)F
26961 + move-result v0
26963 + :goto_a
26964 + return v0
26966 + :cond_b
26967 + const/4 v0, 0x0
26969 + goto :goto_a
26970 +.end method
26972 +.method public getInt(I)I
26973 + .registers 4
26975 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26977 + if-eqz v1, :cond_b
26979 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26981 + invoke-interface {v1, p1}, Landroid/database/Cursor;->getInt(I)I
26983 + move-result v0
26985 + :goto_a
26986 + return v0
26988 + :cond_b
26989 + const/4 v0, 0x0
26991 + goto :goto_a
26992 +.end method
26994 +.method public getLong(I)J
26995 + .registers 4
26997 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26999 + if-eqz v0, :cond_b
27001 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27003 + invoke-interface {v0, p1}, Landroid/database/Cursor;->getLong(I)J
27005 + move-result-wide v0
27007 + :goto_a
27008 + return-wide v0
27010 + :cond_b
27011 + const-wide/16 v0, 0x0
27013 + goto :goto_a
27014 +.end method
27016 +.method public getPosition()I
27017 + .registers 5
27019 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27021 + if-eqz v1, :cond_3f
27023 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
27025 + if-eqz v1, :cond_3f
27027 + iget-boolean v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
27029 + if-nez v1, :cond_3f
27031 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27033 + invoke-interface {v1}, Landroid/database/Cursor;->getPosition()I
27035 + move-result v1
27037 + invoke-direct {p0, v1}, Landroid/privacy/surrogate/PrivacyCursor;->getMappedPos(I)I
27039 + move-result v0
27041 + const-string v1, "PrivacyCursor"
27043 + new-instance v2, Ljava/lang/StringBuilder;
27045 + invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
27047 + const-string v3, "getPosition - mapped position: "
27049 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
27051 + move-result-object v2
27053 + invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
27055 + move-result-object v2
27057 + const-string v3, " real position: "
27059 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
27061 + move-result-object v2
27063 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27065 + invoke-interface {v3}, Landroid/database/Cursor;->getPosition()I
27067 + move-result v3
27069 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
27071 + move-result-object v2
27073 + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
27075 + move-result-object v2
27077 + invoke-static {v1, v2}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
27079 + :goto_3e
27080 + return v0
27082 + :cond_3f
27083 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27085 + if-eqz v1, :cond_4a
27087 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27089 + invoke-interface {v1}, Landroid/database/Cursor;->getPosition()I
27091 + move-result v0
27093 + goto :goto_3e
27095 + :cond_4a
27096 + const/4 v0, -0x1
27098 + goto :goto_3e
27099 +.end method
27101 +.method public getShort(I)S
27102 + .registers 3
27104 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27106 + if-eqz v0, :cond_b
27108 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27110 + invoke-interface {v0, p1}, Landroid/database/Cursor;->getShort(I)S
27112 + move-result v0
27114 + :goto_a
27115 + return v0
27117 + :cond_b
27118 + const/4 v0, 0x0
27120 + goto :goto_a
27121 +.end method
27123 +.method public getString(I)Ljava/lang/String;
27124 + .registers 9
27126 + iget-boolean v4, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
27128 + if-eqz v4, :cond_63
27130 + const/4 v4, 0x1
27132 + if-ne p1, v4, :cond_63
27134 + iget-object v4, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27136 + invoke-interface {v4}, Landroid/database/Cursor;->getPosition()I
27138 + move-result v4
27140 + iget v5, p0, Landroid/privacy/surrogate/PrivacyCursor;->blockedColumnAndroidID:I
27142 + if-ne v4, v5, :cond_63
27144 + const-string v4, "PrivacyCursor"
27146 + const-string v5, "google tries to get android_id with getString()"
27148 + invoke-static {v4, v5}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
27150 + invoke-direct {p0}, Landroid/privacy/surrogate/PrivacyCursor;->getFakeID()Ljava/lang/String;
27152 + move-result-object v2
27154 + if-eqz v2, :cond_58
27156 + :try_start_1e
27157 + new-instance v3, Ljava/math/BigInteger;
27159 + const/16 v4, 0x10
27161 + invoke-direct {v3, v2, v4}, Ljava/math/BigInteger;-><init>(Ljava/lang/String;I)V
27163 + invoke-static {v3}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
27165 + move-result-object v1
27167 + const-string v4, "PrivacyCursor"
27169 + new-instance v5, Ljava/lang/StringBuilder;
27171 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
27173 + const-string/jumbo v6, "returned : "
27175 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
27177 + move-result-object v5
27179 + invoke-virtual {v5, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
27181 + move-result-object v5
27183 + const-string v6, "(String) as fake android id"
27185 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
27187 + move-result-object v5
27189 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
27191 + move-result-object v5
27193 + invoke-static {v4, v5}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
27194 + :try_end_48
27195 + .catch Ljava/lang/Exception; {:try_start_1e .. :try_end_48} :catch_49
27197 + :goto_48
27198 + return-object v1
27200 + :catch_49
27201 + move-exception v0
27203 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
27205 + const-string v4, "PrivacyCursor"
27207 + const-string/jumbo v5, "returned \"\" as android_id"
27209 + invoke-static {v4, v5}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
27211 + const-string v1, ""
27213 + goto :goto_48
27215 + :cond_58
27216 + const-string v4, "PrivacyCursor"
27218 + const-string/jumbo v5, "returned \"\" as android_id"
27220 + invoke-static {v4, v5}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
27222 + const-string v1, ""
27224 + goto :goto_48
27226 + :cond_63
27227 + iget-object v4, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27229 + if-eqz v4, :cond_6e
27231 + iget-object v4, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27233 + invoke-interface {v4, p1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
27235 + move-result-object v1
27237 + goto :goto_48
27239 + :cond_6e
27240 + const-string v1, ""
27242 + goto :goto_48
27243 +.end method
27245 +.method public getType(I)I
27246 + .registers 3
27248 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27250 + if-eqz v0, :cond_b
27252 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27254 + invoke-interface {v0, p1}, Landroid/database/Cursor;->getType(I)I
27256 + move-result v0
27258 + :goto_a
27259 + return v0
27261 + :cond_b
27262 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27264 + const/4 v0, 0x0
27266 + goto :goto_a
27267 +.end method
27269 +.method public getWantsAllOnMoveCalls()Z
27270 + .registers 2
27272 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27274 + if-eqz v0, :cond_b
27276 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27278 + invoke-interface {v0}, Landroid/database/Cursor;->getWantsAllOnMoveCalls()Z
27280 + move-result v0
27282 + :goto_a
27283 + return v0
27285 + :cond_b
27286 + const/4 v0, 0x0
27288 + goto :goto_a
27289 +.end method
27291 +.method public isAfterLast()Z
27292 + .registers 2
27294 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27296 + if-eqz v0, :cond_b
27298 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27300 + invoke-interface {v0}, Landroid/database/Cursor;->isAfterLast()Z
27302 + move-result v0
27304 + :goto_a
27305 + return v0
27307 + :cond_b
27308 + const/4 v0, 0x0
27310 + goto :goto_a
27311 +.end method
27313 +.method public isBeforeFirst()Z
27314 + .registers 2
27316 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27318 + if-eqz v0, :cond_b
27320 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27322 + invoke-interface {v0}, Landroid/database/Cursor;->isBeforeFirst()Z
27324 + move-result v0
27326 + :goto_a
27327 + return v0
27329 + :cond_b
27330 + const/4 v0, 0x0
27332 + goto :goto_a
27333 +.end method
27335 +.method public isClosed()Z
27336 + .registers 2
27338 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27340 + if-eqz v0, :cond_b
27342 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27344 + invoke-interface {v0}, Landroid/database/Cursor;->isClosed()Z
27346 + move-result v0
27348 + :goto_a
27349 + return v0
27351 + :cond_b
27352 + const/4 v0, 0x0
27354 + goto :goto_a
27355 +.end method
27357 +.method public isFirst()Z
27358 + .registers 4
27360 + const/4 v0, 0x0
27362 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27364 + if-eqz v1, :cond_1b
27366 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
27368 + if-eqz v1, :cond_1b
27370 + iget-boolean v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
27372 + if-nez v1, :cond_1b
27374 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27376 + invoke-interface {v1}, Landroid/database/Cursor;->getPosition()I
27378 + move-result v1
27380 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
27382 + aget v2, v2, v0
27384 + if-ne v1, v2, :cond_1a
27386 + const/4 v0, 0x1
27388 + :cond_1a
27389 + :goto_1a
27390 + return v0
27392 + :cond_1b
27393 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27395 + if-eqz v1, :cond_1a
27397 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27399 + invoke-interface {v0}, Landroid/database/Cursor;->isFirst()Z
27401 + move-result v0
27403 + goto :goto_1a
27404 +.end method
27406 +.method public isLast()Z
27407 + .registers 4
27409 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27411 + if-eqz v0, :cond_1f
27413 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
27415 + if-eqz v0, :cond_1f
27417 + iget-boolean v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
27419 + if-nez v0, :cond_1f
27421 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27423 + invoke-interface {v0}, Landroid/database/Cursor;->getPosition()I
27425 + move-result v0
27427 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
27429 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
27431 + array-length v2, v2
27433 + add-int/lit8 v2, v2, -0x1
27435 + aget v1, v1, v2
27437 + if-ne v0, v1, :cond_2a
27439 + const/4 v0, 0x1
27441 + :goto_1e
27442 + return v0
27444 + :cond_1f
27445 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27447 + if-eqz v0, :cond_2a
27449 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27451 + invoke-interface {v0}, Landroid/database/Cursor;->isLast()Z
27453 + move-result v0
27455 + goto :goto_1e
27457 + :cond_2a
27458 + const/4 v0, 0x0
27460 + goto :goto_1e
27461 +.end method
27463 +.method public isNull(I)Z
27464 + .registers 3
27466 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27468 + if-eqz v0, :cond_b
27470 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27472 + invoke-interface {v0, p1}, Landroid/database/Cursor;->isNull(I)Z
27474 + move-result v0
27476 + :goto_a
27477 + return v0
27479 + :cond_b
27480 + const/4 v0, 0x0
27482 + goto :goto_a
27483 +.end method
27485 +.method public move(I)Z
27486 + .registers 8
27488 + const/4 v2, 0x0
27490 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27492 + if-eqz v3, :cond_3e
27494 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
27496 + if-eqz v3, :cond_3e
27498 + iget-boolean v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
27500 + if-nez v3, :cond_3e
27502 + const-string v3, "PrivacyCursor"
27504 + new-instance v4, Ljava/lang/StringBuilder;
27506 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
27508 + const-string/jumbo v5, "move - offset: "
27510 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
27512 + move-result-object v4
27514 + invoke-virtual {v4, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
27516 + move-result-object v4
27518 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
27520 + move-result-object v4
27522 + invoke-static {v3, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
27524 + :try_start_26
27525 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
27527 + iget-object v4, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27529 + invoke-interface {v4}, Landroid/database/Cursor;->getPosition()I
27531 + move-result v4
27533 + invoke-direct {p0, v4}, Landroid/privacy/surrogate/PrivacyCursor;->getMappedPos(I)I
27535 + move-result v4
27537 + add-int/2addr v4, p1
27539 + aget v1, v3, v4
27541 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27543 + invoke-interface {v3, v1}, Landroid/database/Cursor;->moveToPosition(I)Z
27544 + :try_end_3a
27545 + .catch Ljava/lang/ArrayIndexOutOfBoundsException; {:try_start_26 .. :try_end_3a} :catch_3c
27547 + move-result v2
27549 + :cond_3b
27550 + :goto_3b
27551 + return v2
27553 + :catch_3c
27554 + move-exception v0
27556 + goto :goto_3b
27558 + :cond_3e
27559 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27561 + if-eqz v3, :cond_3b
27563 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27565 + invoke-interface {v3, p1}, Landroid/database/Cursor;->move(I)Z
27567 + goto :goto_3b
27568 +.end method
27570 +.method public moveToFirst()Z
27571 + .registers 4
27573 + const/4 v0, 0x0
27575 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27577 + if-eqz v1, :cond_18
27579 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
27581 + if-eqz v1, :cond_18
27583 + iget-boolean v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
27585 + if-nez v1, :cond_18
27587 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27589 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
27591 + aget v2, v2, v0
27593 + invoke-interface {v1, v2}, Landroid/database/Cursor;->moveToPosition(I)Z
27595 + move-result v0
27597 + :cond_17
27598 + :goto_17
27599 + return v0
27601 + :cond_18
27602 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27604 + if-eqz v1, :cond_17
27606 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27608 + invoke-interface {v1}, Landroid/database/Cursor;->moveToFirst()Z
27610 + move-result v0
27612 + goto :goto_17
27613 +.end method
27615 +.method public moveToLast()Z
27616 + .registers 5
27618 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27620 + if-eqz v1, :cond_1c
27622 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
27624 + if-eqz v1, :cond_1c
27626 + iget-boolean v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
27628 + if-nez v1, :cond_1c
27630 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27632 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
27634 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
27636 + array-length v3, v3
27638 + add-int/lit8 v3, v3, -0x1
27640 + aget v2, v2, v3
27642 + invoke-interface {v1, v2}, Landroid/database/Cursor;->moveToPosition(I)Z
27644 + move-result v0
27646 + :goto_1b
27647 + return v0
27649 + :cond_1c
27650 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27652 + if-eqz v1, :cond_27
27654 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27656 + invoke-interface {v1}, Landroid/database/Cursor;->moveToLast()Z
27658 + move-result v0
27660 + goto :goto_1b
27662 + :cond_27
27663 + const/4 v0, 0x0
27665 + goto :goto_1b
27666 +.end method
27668 +.method public moveToNext()Z
27669 + .registers 3
27671 + const/4 v0, 0x0
27673 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27675 + if-eqz v1, :cond_29
27677 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
27679 + if-eqz v1, :cond_29
27681 + iget-boolean v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
27683 + if-nez v1, :cond_29
27685 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27687 + invoke-interface {v1}, Landroid/database/Cursor;->moveToNext()Z
27689 + move-result v1
27691 + if-nez v1, :cond_16
27693 + :cond_15
27694 + :goto_15
27695 + return v0
27697 + :cond_16
27698 + const/4 v0, 0x1
27700 + :goto_17
27701 + const/4 v1, 0x1
27703 + if-ne v0, v1, :cond_15
27705 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27707 + invoke-direct {p0, v1}, Landroid/privacy/surrogate/PrivacyCursor;->isAllowed(Landroid/database/Cursor;)Z
27709 + move-result v1
27711 + if-nez v1, :cond_15
27713 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27715 + invoke-interface {v1}, Landroid/database/Cursor;->moveToNext()Z
27717 + move-result v0
27719 + goto :goto_17
27721 + :cond_29
27722 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27724 + if-eqz v1, :cond_15
27726 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27728 + invoke-interface {v1}, Landroid/database/Cursor;->moveToNext()Z
27730 + move-result v0
27732 + goto :goto_15
27733 +.end method
27735 +.method public moveToPosition(I)Z
27736 + .registers 6
27738 + const/4 v1, 0x0
27740 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27742 + if-eqz v2, :cond_1a
27744 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
27746 + if-eqz v2, :cond_1a
27748 + iget-boolean v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
27750 + if-nez v2, :cond_1a
27752 + :try_start_d
27753 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27755 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
27757 + aget v3, v3, p1
27759 + invoke-interface {v2, v3}, Landroid/database/Cursor;->moveToPosition(I)Z
27760 + :try_end_16
27761 + .catch Ljava/lang/ArrayIndexOutOfBoundsException; {:try_start_d .. :try_end_16} :catch_18
27763 + move-result v1
27765 + :cond_17
27766 + :goto_17
27767 + return v1
27769 + :catch_18
27770 + move-exception v0
27772 + goto :goto_17
27774 + :cond_1a
27775 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27777 + if-eqz v2, :cond_17
27779 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27781 + invoke-interface {v2, p1}, Landroid/database/Cursor;->moveToPosition(I)Z
27783 + move-result v1
27785 + goto :goto_17
27786 +.end method
27788 +.method public moveToPrevious()Z
27789 + .registers 3
27791 + const/4 v0, 0x0
27793 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27795 + if-eqz v1, :cond_29
27797 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
27799 + if-eqz v1, :cond_29
27801 + iget-boolean v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
27803 + if-nez v1, :cond_29
27805 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27807 + invoke-interface {v1}, Landroid/database/Cursor;->moveToPrevious()Z
27809 + move-result v1
27811 + if-nez v1, :cond_16
27813 + :cond_15
27814 + :goto_15
27815 + return v0
27817 + :cond_16
27818 + const/4 v0, 0x1
27820 + :goto_17
27821 + const/4 v1, 0x1
27823 + if-ne v0, v1, :cond_15
27825 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27827 + invoke-direct {p0, v1}, Landroid/privacy/surrogate/PrivacyCursor;->isAllowed(Landroid/database/Cursor;)Z
27829 + move-result v1
27831 + if-nez v1, :cond_15
27833 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27835 + invoke-interface {v1}, Landroid/database/Cursor;->moveToPrevious()Z
27837 + move-result v0
27839 + goto :goto_17
27841 + :cond_29
27842 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27844 + if-eqz v1, :cond_15
27846 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27848 + invoke-interface {v1}, Landroid/database/Cursor;->moveToPrevious()Z
27850 + move-result v0
27852 + goto :goto_15
27853 +.end method
27855 +.method public registerContentObserver(Landroid/database/ContentObserver;)V
27856 + .registers 3
27858 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27860 + if-eqz v0, :cond_9
27862 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27864 + invoke-interface {v0, p1}, Landroid/database/Cursor;->registerContentObserver(Landroid/database/ContentObserver;)V
27866 + :cond_9
27867 + return-void
27868 +.end method
27870 +.method public registerDataSetObserver(Landroid/database/DataSetObserver;)V
27871 + .registers 3
27873 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27875 + if-eqz v0, :cond_9
27877 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27879 + invoke-interface {v0, p1}, Landroid/database/Cursor;->registerDataSetObserver(Landroid/database/DataSetObserver;)V
27881 + :cond_9
27882 + return-void
27883 +.end method
27885 +.method public requery()Z
27886 + .registers 2
27888 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27890 + if-eqz v0, :cond_b
27892 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27894 + invoke-interface {v0}, Landroid/database/Cursor;->requery()Z
27896 + move-result v0
27898 + :goto_a
27899 + return v0
27901 + :cond_b
27902 + const/4 v0, 0x0
27904 + goto :goto_a
27905 +.end method
27907 +.method public respond(Landroid/os/Bundle;)Landroid/os/Bundle;
27908 + .registers 3
27910 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27912 + if-eqz v0, :cond_b
27914 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27916 + invoke-interface {v0, p1}, Landroid/database/Cursor;->respond(Landroid/os/Bundle;)Landroid/os/Bundle;
27918 + move-result-object v0
27920 + :goto_a
27921 + return-object v0
27923 + :cond_b
27924 + new-instance v0, Landroid/os/Bundle;
27926 + invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
27928 + goto :goto_a
27929 +.end method
27931 +.method public setNotificationUri(Landroid/content/ContentResolver;Landroid/net/Uri;)V
27932 + .registers 4
27934 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27936 + if-eqz v0, :cond_9
27938 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27940 + invoke-interface {v0, p1, p2}, Landroid/database/Cursor;->setNotificationUri(Landroid/content/ContentResolver;Landroid/net/Uri;)V
27942 + :cond_9
27943 + return-void
27944 +.end method
27946 +.method public unregisterContentObserver(Landroid/database/ContentObserver;)V
27947 + .registers 3
27949 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27951 + if-eqz v0, :cond_9
27953 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27955 + invoke-interface {v0, p1}, Landroid/database/Cursor;->unregisterContentObserver(Landroid/database/ContentObserver;)V
27957 + :cond_9
27958 + return-void
27959 +.end method
27961 +.method public unregisterDataSetObserver(Landroid/database/DataSetObserver;)V
27962 + .registers 3
27964 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27966 + if-eqz v0, :cond_9
27968 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27970 + invoke-interface {v0, p1}, Landroid/database/Cursor;->unregisterDataSetObserver(Landroid/database/DataSetObserver;)V
27972 + :cond_9
27973 + return-void
27974 +.end method
27975 diff -Npruw stock-framework/smali/android/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater.smali pdroid-framework/smali/android/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater.smali
27976 --- stock-framework/smali/android/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater.smali 1969-12-31 18:00:00.000000000 -0600
27977 +++ pdroid-framework/smali/android/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater.smali 2013-08-15 23:20:07.960304776 -0500
27978 @@ -0,0 +1,134 @@
27979 +.class Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;
27980 +.super Ljava/lang/Thread;
27981 +.source "PrivacyLocationManager.java"
27984 +# annotations
27985 +.annotation system Ldalvik/annotation/EnclosingClass;
27986 + value = Landroid/privacy/surrogate/PrivacyLocationManager;
27987 +.end annotation
27989 +.annotation system Ldalvik/annotation/InnerClass;
27990 + accessFlags = 0x2
27991 + name = "PrivacyLocationUpdater"
27992 +.end annotation
27995 +# instance fields
27996 +.field private intent:Landroid/app/PendingIntent;
27998 +.field private latitude:D
28000 +.field private listener:Landroid/location/LocationListener;
28002 +.field private longitude:D
28004 +.field private provider:Ljava/lang/String;
28006 +.field final synthetic this$0:Landroid/privacy/surrogate/PrivacyLocationManager;
28009 +# direct methods
28010 +.method public constructor <init>(Landroid/privacy/surrogate/PrivacyLocationManager;Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;DD)V
28011 + .registers 9
28013 + iput-object p1, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->this$0:Landroid/privacy/surrogate/PrivacyLocationManager;
28015 + invoke-direct {p0}, Ljava/lang/Thread;-><init>()V
28017 + iput-object p2, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->provider:Ljava/lang/String;
28019 + iput-object p3, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->listener:Landroid/location/LocationListener;
28021 + iput-object p4, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->intent:Landroid/app/PendingIntent;
28023 + iput-wide p5, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->latitude:D
28025 + iput-wide p7, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->longitude:D
28027 + return-void
28028 +.end method
28031 +# virtual methods
28032 +.method public run()V
28033 + .registers 8
28035 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->provider:Ljava/lang/String;
28037 + if-eqz v3, :cond_43
28039 + new-instance v2, Landroid/location/Location;
28041 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->provider:Ljava/lang/String;
28043 + invoke-direct {v2, v3}, Landroid/location/Location;-><init>(Ljava/lang/String;)V
28045 + iget-wide v3, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->latitude:D
28047 + invoke-virtual {v2, v3, v4}, Landroid/location/Location;->setLatitude(D)V
28049 + iget-wide v3, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->longitude:D
28051 + invoke-virtual {v2, v3, v4}, Landroid/location/Location;->setLongitude(D)V
28053 + const/4 v1, 0x0
28055 + :goto_16
28056 + const/4 v3, 0x5
28058 + if-ge v1, v3, :cond_43
28060 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->listener:Landroid/location/LocationListener;
28062 + if-eqz v3, :cond_34
28064 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->listener:Landroid/location/LocationListener;
28066 + invoke-interface {v3, v2}, Landroid/location/LocationListener;->onLocationChanged(Landroid/location/Location;)V
28068 + :cond_22
28069 + :goto_22
28070 + :try_start_22
28071 + invoke-static {}, Ljava/lang/Math;->random()D
28073 + move-result-wide v3
28075 + const-wide v5, 0x408f400000000000L
28077 + mul-double/2addr v3, v5
28079 + double-to-int v3, v3
28081 + int-to-long v3, v3
28083 + invoke-static {v3, v4}, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->sleep(J)V
28084 + :try_end_31
28085 + .catch Ljava/lang/InterruptedException; {:try_start_22 .. :try_end_31} :catch_3e
28087 + :goto_31
28088 + add-int/lit8 v1, v1, 0x1
28090 + goto :goto_16
28092 + :cond_34
28093 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->intent:Landroid/app/PendingIntent;
28095 + if-eqz v3, :cond_22
28097 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->intent:Landroid/app/PendingIntent;
28099 + invoke-virtual {v3}, Landroid/app/PendingIntent;->cancel()V
28101 + goto :goto_22
28103 + :catch_3e
28104 + move-exception v0
28106 + invoke-virtual {v0}, Ljava/lang/InterruptedException;->printStackTrace()V
28108 + goto :goto_31
28110 + :cond_43
28111 + return-void
28112 +.end method
28113 diff -Npruw stock-framework/smali/android/privacy/surrogate/PrivacyLocationManager.smali pdroid-framework/smali/android/privacy/surrogate/PrivacyLocationManager.smali
28114 --- stock-framework/smali/android/privacy/surrogate/PrivacyLocationManager.smali 1969-12-31 18:00:00.000000000 -0600
28115 +++ pdroid-framework/smali/android/privacy/surrogate/PrivacyLocationManager.smali 2013-08-15 23:20:07.964304776 -0500
28116 @@ -0,0 +1,2091 @@
28117 +.class public final Landroid/privacy/surrogate/PrivacyLocationManager;
28118 +.super Landroid/location/LocationManager;
28119 +.source "PrivacyLocationManager.java"
28122 +# annotations
28123 +.annotation system Ldalvik/annotation/MemberClasses;
28124 + value = {
28125 + Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;
28127 +.end annotation
28130 +# static fields
28131 +.field private static final CUSTOM_LOCATION_UPDATE_COUNT:I = 0x5
28133 +.field private static final TAG:Ljava/lang/String; = "PrivacyLocationManager"
28136 +# instance fields
28137 +.field private context:Landroid/content/Context;
28139 +.field private lock:Ljava/lang/Object;
28141 +.field private pSetMan:Landroid/privacy/PrivacySettingsManager;
28144 +# direct methods
28145 +.method public constructor <init>(Landroid/location/ILocationManager;Landroid/content/Context;)V
28146 + .registers 5
28148 + invoke-direct {p0, p2, p1}, Landroid/location/LocationManager;-><init>(Landroid/content/Context;Landroid/location/ILocationManager;)V
28150 + new-instance v0, Ljava/lang/Object;
28152 + invoke-direct {v0}, Ljava/lang/Object;-><init>()V
28154 + iput-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->lock:Ljava/lang/Object;
28156 + iput-object p2, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->context:Landroid/content/Context;
28158 + new-instance v0, Landroid/privacy/PrivacySettingsManager;
28160 + const-string/jumbo v1, "privacy"
28162 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
28164 + move-result-object v1
28166 + invoke-static {v1}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
28168 + move-result-object v1
28170 + invoke-direct {v0, p2, v1}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
28172 + iput-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28174 + return-void
28175 +.end method
28177 +.method private requestLocationUpdates(Landroid/location/Criteria;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
28178 + .registers 7
28180 + const/4 v2, 0x3
28182 + if-nez p1, :cond_5
28184 + const/4 v0, 0x0
28186 + :goto_4
28187 + return v0
28189 + :cond_5
28190 + invoke-virtual {p1}, Landroid/location/Criteria;->getAccuracy()I
28192 + move-result v0
28194 + const/4 v1, 0x1
28196 + if-eq v0, v1, :cond_24
28198 + invoke-virtual {p1}, Landroid/location/Criteria;->getBearingAccuracy()I
28200 + move-result v0
28202 + if-eq v0, v2, :cond_24
28204 + invoke-virtual {p1}, Landroid/location/Criteria;->getHorizontalAccuracy()I
28206 + move-result v0
28208 + if-eq v0, v2, :cond_24
28210 + invoke-virtual {p1}, Landroid/location/Criteria;->getVerticalAccuracy()I
28212 + move-result v0
28214 + if-eq v0, v2, :cond_24
28216 + invoke-virtual {p1}, Landroid/location/Criteria;->getSpeedAccuracy()I
28218 + move-result v0
28220 + if-ne v0, v2, :cond_2b
28222 + :cond_24
28223 + const-string v0, "gps"
28225 + invoke-direct {p0, v0, p2, p3}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
28227 + move-result v0
28229 + goto :goto_4
28231 + :cond_2b
28232 + const-string/jumbo v0, "network"
28234 + invoke-direct {p0, v0, p2, p3}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
28236 + move-result v0
28238 + goto :goto_4
28239 +.end method
28241 +.method private requestLocationUpdates(Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
28242 + .registers 24
28244 + move-object/from16 v0, p0
28246 + iget-object v0, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->lock:Ljava/lang/Object;
28248 + move-object/from16 v19, v0
28250 + monitor-enter v19
28252 + :try_start_7
28253 + move-object/from16 v0, p0
28255 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->context:Landroid/content/Context;
28257 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
28259 + move-result-object v2
28261 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
28263 + move-result v3
28265 + move-object/from16 v0, p0
28267 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28269 + invoke-virtual {v1, v2, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
28271 + move-result-object v7
28273 + const/16 v18, 0x0
28275 + if-eqz v7, :cond_239
28277 + const-string v1, "gps"
28279 + move-object/from16 v0, p1
28281 + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
28283 + move-result v1
28285 + if-eqz v1, :cond_111
28287 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
28289 + move-result v1
28291 + packed-switch v1, :pswitch_data_25e
28293 + :cond_30
28294 + :goto_30
28295 + monitor-exit v19
28297 + return v18
28299 + :pswitch_32
28300 + move-object/from16 v0, p0
28302 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28304 + const/4 v4, 0x0
28306 + const-string v5, "locationGPS"
28308 + const/4 v6, 0x0
28310 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28312 + goto :goto_30
28314 + :catchall_3e
28315 + move-exception v1
28317 + monitor-exit v19
28318 + :try_end_40
28319 + .catchall {:try_start_7 .. :try_end_40} :catchall_3e
28321 + throw v1
28323 + :pswitch_41
28324 + if-eqz p3, :cond_46
28326 + :try_start_43
28327 + invoke-virtual/range {p3 .. p3}, Landroid/app/PendingIntent;->cancel()V
28329 + :cond_46
28330 + const/16 v18, 0x1
28332 + move-object/from16 v0, p0
28334 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28336 + const/4 v4, 0x1
28338 + const-string v5, "locationGPS"
28340 + const/4 v6, 0x0
28342 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28343 + :try_end_53
28344 + .catchall {:try_start_43 .. :try_end_53} :catchall_3e
28346 + goto :goto_30
28348 + :pswitch_54
28349 + :try_start_54
28350 + new-instance v8, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;
28352 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationGpsLat()Ljava/lang/String;
28354 + move-result-object v1
28356 + invoke-static {v1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
28358 + move-result-wide v13
28360 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationGpsLon()Ljava/lang/String;
28362 + move-result-object v1
28364 + invoke-static {v1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
28366 + move-result-wide v15
28368 + move-object/from16 v9, p0
28370 + move-object/from16 v10, p1
28372 + move-object/from16 v11, p2
28374 + move-object/from16 v12, p3
28376 + 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
28378 + invoke-virtual {v8}, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->start()V
28379 + :try_end_74
28380 + .catchall {:try_start_54 .. :try_end_74} :catchall_3e
28381 + .catch Ljava/lang/NumberFormatException; {:try_start_54 .. :try_end_74} :catch_a6
28383 + const/16 v18, 0x1
28385 + :goto_76
28386 + :try_start_76
28387 + move-object/from16 v0, p0
28389 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28391 + const/4 v4, 0x2
28393 + const-string v5, "locationGPS"
28395 + new-instance v6, Ljava/lang/StringBuilder;
28397 + invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
28399 + const-string v8, "Lat: "
28401 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28403 + move-result-object v6
28405 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationGpsLat()Ljava/lang/String;
28407 + move-result-object v8
28409 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28411 + move-result-object v6
28413 + const-string v8, " Lon: "
28415 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28417 + move-result-object v6
28419 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationGpsLon()Ljava/lang/String;
28421 + move-result-object v8
28423 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28425 + move-result-object v6
28427 + invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
28429 + move-result-object v6
28431 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28433 + goto :goto_30
28435 + :catch_a6
28436 + move-exception v17
28438 + const-string v1, "PrivacyLocationManager"
28440 + const-string/jumbo v4, "requestLocationUpdates: invalid coordinates"
28442 + invoke-static {v1, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
28443 + :try_end_af
28444 + .catchall {:try_start_76 .. :try_end_af} :catchall_3e
28446 + const/16 v18, 0x1
28448 + goto :goto_76
28450 + :pswitch_b2
28451 + :try_start_b2
28452 + new-instance v8, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;
28454 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationGpsLat()Ljava/lang/String;
28456 + move-result-object v1
28458 + invoke-static {v1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
28460 + move-result-wide v13
28462 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationGpsLon()Ljava/lang/String;
28464 + move-result-object v1
28466 + invoke-static {v1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
28468 + move-result-wide v15
28470 + move-object/from16 v9, p0
28472 + move-object/from16 v10, p1
28474 + move-object/from16 v11, p2
28476 + move-object/from16 v12, p3
28478 + 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
28480 + invoke-virtual {v8}, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->start()V
28481 + :try_end_d2
28482 + .catchall {:try_start_b2 .. :try_end_d2} :catchall_3e
28483 + .catch Ljava/lang/NumberFormatException; {:try_start_b2 .. :try_end_d2} :catch_105
28485 + const/16 v18, 0x1
28487 + :goto_d4
28488 + :try_start_d4
28489 + move-object/from16 v0, p0
28491 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28493 + const/4 v4, 0x3
28495 + const-string v5, "locationGPS"
28497 + new-instance v6, Ljava/lang/StringBuilder;
28499 + invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
28501 + const-string v8, "Lat: "
28503 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28505 + move-result-object v6
28507 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationGpsLat()Ljava/lang/String;
28509 + move-result-object v8
28511 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28513 + move-result-object v6
28515 + const-string v8, " Lon: "
28517 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28519 + move-result-object v6
28521 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationGpsLon()Ljava/lang/String;
28523 + move-result-object v8
28525 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28527 + move-result-object v6
28529 + invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
28531 + move-result-object v6
28533 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28535 + goto/16 :goto_30
28537 + :catch_105
28538 + move-exception v17
28540 + const-string v1, "PrivacyLocationManager"
28542 + const-string/jumbo v4, "requestLocationUpdates: invalid coordinates"
28544 + invoke-static {v1, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
28546 + const/16 v18, 0x1
28548 + goto :goto_d4
28550 + :cond_111
28551 + const-string/jumbo v1, "network"
28553 + move-object/from16 v0, p1
28555 + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
28557 + move-result v1
28559 + if-eqz v1, :cond_204
28561 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
28563 + move-result v1
28565 + packed-switch v1, :pswitch_data_26a
28567 + goto/16 :goto_30
28569 + :pswitch_125
28570 + move-object/from16 v0, p0
28572 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28574 + const/4 v4, 0x0
28576 + const-string v5, "locationNetwork"
28578 + const/4 v6, 0x0
28580 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28582 + goto/16 :goto_30
28584 + :pswitch_132
28585 + if-eqz p3, :cond_137
28587 + invoke-virtual/range {p3 .. p3}, Landroid/app/PendingIntent;->cancel()V
28589 + :cond_137
28590 + const/16 v18, 0x1
28592 + move-object/from16 v0, p0
28594 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28596 + const/4 v4, 0x1
28598 + const-string v5, "locationNetwork"
28600 + const/4 v6, 0x0
28602 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28603 + :try_end_144
28604 + .catchall {:try_start_d4 .. :try_end_144} :catchall_3e
28606 + goto/16 :goto_30
28608 + :pswitch_146
28609 + :try_start_146
28610 + new-instance v8, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;
28612 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationNetworkLat()Ljava/lang/String;
28614 + move-result-object v1
28616 + invoke-static {v1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
28618 + move-result-wide v13
28620 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationNetworkLon()Ljava/lang/String;
28622 + move-result-object v1
28624 + invoke-static {v1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
28626 + move-result-wide v15
28628 + move-object/from16 v9, p0
28630 + move-object/from16 v10, p1
28632 + move-object/from16 v11, p2
28634 + move-object/from16 v12, p3
28636 + 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
28638 + invoke-virtual {v8}, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->start()V
28639 + :try_end_166
28640 + .catchall {:try_start_146 .. :try_end_166} :catchall_3e
28641 + .catch Ljava/lang/NumberFormatException; {:try_start_146 .. :try_end_166} :catch_199
28643 + const/16 v18, 0x1
28645 + :goto_168
28646 + :try_start_168
28647 + move-object/from16 v0, p0
28649 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28651 + const/4 v4, 0x2
28653 + const-string v5, "locationNetwork"
28655 + new-instance v6, Ljava/lang/StringBuilder;
28657 + invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
28659 + const-string v8, "Lat: "
28661 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28663 + move-result-object v6
28665 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationNetworkLat()Ljava/lang/String;
28667 + move-result-object v8
28669 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28671 + move-result-object v6
28673 + const-string v8, " Lon: "
28675 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28677 + move-result-object v6
28679 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationNetworkLon()Ljava/lang/String;
28681 + move-result-object v8
28683 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28685 + move-result-object v6
28687 + invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
28689 + move-result-object v6
28691 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28693 + goto/16 :goto_30
28695 + :catch_199
28696 + move-exception v17
28698 + const-string v1, "PrivacyLocationManager"
28700 + const-string/jumbo v4, "requestLocationUpdates: invalid coordinates"
28702 + invoke-static {v1, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
28703 + :try_end_1a2
28704 + .catchall {:try_start_168 .. :try_end_1a2} :catchall_3e
28706 + const/16 v18, 0x1
28708 + goto :goto_168
28710 + :pswitch_1a5
28711 + :try_start_1a5
28712 + new-instance v8, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;
28714 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationNetworkLat()Ljava/lang/String;
28716 + move-result-object v1
28718 + invoke-static {v1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
28720 + move-result-wide v13
28722 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationNetworkLon()Ljava/lang/String;
28724 + move-result-object v1
28726 + invoke-static {v1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
28728 + move-result-wide v15
28730 + move-object/from16 v9, p0
28732 + move-object/from16 v10, p1
28734 + move-object/from16 v11, p2
28736 + move-object/from16 v12, p3
28738 + 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
28740 + invoke-virtual {v8}, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->start()V
28741 + :try_end_1c5
28742 + .catchall {:try_start_1a5 .. :try_end_1c5} :catchall_3e
28743 + .catch Ljava/lang/NumberFormatException; {:try_start_1a5 .. :try_end_1c5} :catch_1f8
28745 + const/16 v18, 0x1
28747 + :goto_1c7
28748 + :try_start_1c7
28749 + move-object/from16 v0, p0
28751 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28753 + const/4 v4, 0x3
28755 + const-string v5, "locationNetwork"
28757 + new-instance v6, Ljava/lang/StringBuilder;
28759 + invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
28761 + const-string v8, "Lat: "
28763 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28765 + move-result-object v6
28767 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationNetworkLat()Ljava/lang/String;
28769 + move-result-object v8
28771 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28773 + move-result-object v6
28775 + const-string v8, " Lon: "
28777 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28779 + move-result-object v6
28781 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationNetworkLon()Ljava/lang/String;
28783 + move-result-object v8
28785 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28787 + move-result-object v6
28789 + invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
28791 + move-result-object v6
28793 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28795 + goto/16 :goto_30
28797 + :catch_1f8
28798 + move-exception v17
28800 + const-string v1, "PrivacyLocationManager"
28802 + const-string/jumbo v4, "requestLocationUpdates: invalid coordinates"
28804 + invoke-static {v1, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
28806 + const/16 v18, 0x1
28808 + goto :goto_1c7
28810 + :cond_204
28811 + const-string/jumbo v1, "passive"
28813 + move-object/from16 v0, p1
28815 + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
28817 + move-result v1
28819 + if-eqz v1, :cond_30
28821 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
28823 + move-result v1
28825 + if-nez v1, :cond_22a
28827 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
28829 + move-result v1
28831 + if-nez v1, :cond_22a
28833 + const/16 v18, 0x0
28835 + move-object/from16 v0, p0
28837 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28839 + const/4 v4, 0x0
28841 + const-string v5, "locationGPS"
28843 + const/4 v6, 0x0
28845 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28847 + goto/16 :goto_30
28849 + :cond_22a
28850 + const/16 v18, 0x1
28852 + move-object/from16 v0, p0
28854 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28856 + const/4 v4, 0x1
28858 + const-string v5, "locationGPS"
28860 + const/4 v6, 0x0
28862 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28864 + goto/16 :goto_30
28866 + :cond_239
28867 + const-string/jumbo v1, "network"
28869 + move-object/from16 v0, p1
28871 + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
28873 + move-result v1
28875 + if-eqz v1, :cond_251
28877 + move-object/from16 v0, p0
28879 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28881 + const/4 v4, 0x0
28883 + const-string v5, "locationNetwork"
28885 + const/4 v6, 0x0
28887 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28889 + goto/16 :goto_30
28891 + :cond_251
28892 + move-object/from16 v0, p0
28894 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28896 + const/4 v4, 0x0
28898 + const-string v5, "locationGPS"
28900 + const/4 v6, 0x0
28902 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28903 + :try_end_25c
28904 + .catchall {:try_start_1c7 .. :try_end_25c} :catchall_3e
28906 + goto/16 :goto_30
28908 + :pswitch_data_25e
28909 + .packed-switch 0x0
28910 + :pswitch_32
28911 + :pswitch_41
28912 + :pswitch_54
28913 + :pswitch_b2
28914 + .end packed-switch
28916 + :pswitch_data_26a
28917 + .packed-switch 0x0
28918 + :pswitch_125
28919 + :pswitch_132
28920 + :pswitch_146
28921 + :pswitch_1a5
28922 + .end packed-switch
28923 +.end method
28926 +# virtual methods
28927 +.method public addNmeaListener(Landroid/location/GpsStatus$NmeaListener;)Z
28928 + .registers 10
28930 + const/4 v5, 0x0
28932 + const/4 v7, 0x0
28934 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->context:Landroid/content/Context;
28936 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
28938 + move-result-object v1
28940 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
28942 + move-result v2
28944 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28946 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
28948 + move-result-object v6
28950 + if-eqz v6, :cond_24
28952 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
28954 + move-result v0
28956 + if-eqz v0, :cond_24
28958 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28960 + const/4 v3, 0x1
28962 + const-string v4, "locationGPS"
28964 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28966 + move v0, v7
28968 + :goto_23
28969 + return v0
28971 + :cond_24
28972 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28974 + const-string v4, "locationGPS"
28976 + move v3, v7
28978 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28980 + invoke-super {p0, p1}, Landroid/location/LocationManager;->addNmeaListener(Landroid/location/GpsStatus$NmeaListener;)Z
28982 + move-result v0
28984 + goto :goto_23
28985 +.end method
28987 +.method public getLastKnownLocation(Ljava/lang/String;)Landroid/location/Location;
28988 + .registers 14
28990 + const/4 v11, 0x3
28992 + const/4 v10, 0x2
28994 + const/4 v8, 0x1
28996 + const/4 v3, 0x0
28998 + const/4 v5, 0x0
29000 + if-nez p1, :cond_c
29002 + invoke-super {p0, p1}, Landroid/location/LocationManager;->getLastKnownLocation(Ljava/lang/String;)Landroid/location/Location;
29004 + move-result-object v7
29006 + :cond_b
29007 + :goto_b
29008 + return-object v7
29010 + :cond_c
29011 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->context:Landroid/content/Context;
29013 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
29015 + move-result-object v1
29017 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
29019 + move-result v2
29021 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29023 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
29025 + move-result-object v6
29027 + const/4 v7, 0x0
29029 + if-eqz v6, :cond_22c
29031 + const-string v0, "gps"
29033 + invoke-virtual {p1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
29035 + move-result v0
29037 + if-eqz v0, :cond_ff
29039 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
29041 + move-result v0
29043 + packed-switch v0, :pswitch_data_29a
29045 + goto :goto_b
29047 + :pswitch_2f
29048 + invoke-super {p0, p1}, Landroid/location/LocationManager;->getLastKnownLocation(Ljava/lang/String;)Landroid/location/Location;
29050 + move-result-object v7
29052 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29054 + const-string v4, "locationGPS"
29056 + if-eqz v7, :cond_5e
29058 + new-instance v5, Ljava/lang/StringBuilder;
29060 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
29062 + const-string v8, "Lat: "
29064 + invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
29066 + move-result-object v5
29068 + invoke-virtual {v7}, Landroid/location/Location;->getLatitude()D
29070 + move-result-wide v8
29072 + invoke-virtual {v5, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
29074 + move-result-object v5
29076 + const-string v8, " Lon: "
29078 + invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
29080 + move-result-object v5
29082 + invoke-virtual {v7}, Landroid/location/Location;->getLongitude()D
29084 + move-result-wide v8
29086 + invoke-virtual {v5, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
29088 + move-result-object v5
29090 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
29092 + move-result-object v5
29094 + :cond_5e
29095 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
29097 + goto :goto_b
29099 + :pswitch_62
29100 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29102 + const-string v4, "locationGPS"
29104 + move v3, v8
29106 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
29108 + goto :goto_b
29110 + :pswitch_6b
29111 + new-instance v7, Landroid/location/Location;
29113 + invoke-direct {v7, p1}, Landroid/location/Location;-><init>(Ljava/lang/String;)V
29115 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationGpsLat()Ljava/lang/String;
29117 + move-result-object v0
29119 + invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
29121 + move-result-wide v3
29123 + invoke-virtual {v7, v3, v4}, Landroid/location/Location;->setLatitude(D)V
29125 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationGpsLon()Ljava/lang/String;
29127 + move-result-object v0
29129 + invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
29131 + move-result-wide v3
29133 + invoke-virtual {v7, v3, v4}, Landroid/location/Location;->setLongitude(D)V
29135 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29137 + const-string v4, "locationGPS"
29139 + new-instance v3, Ljava/lang/StringBuilder;
29141 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
29143 + const-string v5, "Lat: "
29145 + invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
29147 + move-result-object v3
29149 + invoke-virtual {v7}, Landroid/location/Location;->getLatitude()D
29151 + move-result-wide v8
29153 + invoke-virtual {v3, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
29155 + move-result-object v3
29157 + const-string v5, " Lon: "
29159 + invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
29161 + move-result-object v3
29163 + invoke-virtual {v7}, Landroid/location/Location;->getLongitude()D
29165 + move-result-wide v8
29167 + invoke-virtual {v3, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
29169 + move-result-object v3
29171 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
29173 + move-result-object v5
29175 + move v3, v10
29177 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
29179 + goto/16 :goto_b
29181 + :pswitch_b5
29182 + new-instance v7, Landroid/location/Location;
29184 + invoke-direct {v7, p1}, Landroid/location/Location;-><init>(Ljava/lang/String;)V
29186 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationGpsLat()Ljava/lang/String;
29188 + move-result-object v0
29190 + invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
29192 + move-result-wide v3
29194 + invoke-virtual {v7, v3, v4}, Landroid/location/Location;->setLatitude(D)V
29196 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationGpsLon()Ljava/lang/String;
29198 + move-result-object v0
29200 + invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
29202 + move-result-wide v3
29204 + invoke-virtual {v7, v3, v4}, Landroid/location/Location;->setLongitude(D)V
29206 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29208 + const-string v4, "locationGPS"
29210 + new-instance v3, Ljava/lang/StringBuilder;
29212 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
29214 + const-string v5, "Lat: "
29216 + invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
29218 + move-result-object v3
29220 + invoke-virtual {v7}, Landroid/location/Location;->getLatitude()D
29222 + move-result-wide v8
29224 + invoke-virtual {v3, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
29226 + move-result-object v3
29228 + const-string v5, " Lon: "
29230 + invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
29232 + move-result-object v3
29234 + invoke-virtual {v7}, Landroid/location/Location;->getLongitude()D
29236 + move-result-wide v8
29238 + invoke-virtual {v3, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
29240 + move-result-object v3
29242 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
29244 + move-result-object v5
29246 + move v3, v11
29248 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
29250 + goto/16 :goto_b
29252 + :cond_ff
29253 + const-string/jumbo v0, "network"
29255 + invoke-virtual {p1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
29257 + move-result v0
29259 + if-eqz v0, :cond_1e3
29261 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
29263 + move-result v0
29265 + packed-switch v0, :pswitch_data_2a6
29267 + goto/16 :goto_b
29269 + :pswitch_111
29270 + invoke-super {p0, p1}, Landroid/location/LocationManager;->getLastKnownLocation(Ljava/lang/String;)Landroid/location/Location;
29272 + move-result-object v7
29274 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29276 + const-string v4, "locationNetwork"
29278 + if-eqz v7, :cond_140
29280 + new-instance v5, Ljava/lang/StringBuilder;
29282 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
29284 + const-string v8, "Lat: "
29286 + invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
29288 + move-result-object v5
29290 + invoke-virtual {v7}, Landroid/location/Location;->getLatitude()D
29292 + move-result-wide v8
29294 + invoke-virtual {v5, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
29296 + move-result-object v5
29298 + const-string v8, " Lon: "
29300 + invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
29302 + move-result-object v5
29304 + invoke-virtual {v7}, Landroid/location/Location;->getLongitude()D
29306 + move-result-wide v8
29308 + invoke-virtual {v5, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
29310 + move-result-object v5
29312 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
29314 + move-result-object v5
29316 + :cond_140
29317 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
29319 + goto/16 :goto_b
29321 + :pswitch_145
29322 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29324 + const-string v4, "locationNetwork"
29326 + move v3, v8
29328 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
29330 + goto/16 :goto_b
29332 + :pswitch_14f
29333 + new-instance v7, Landroid/location/Location;
29335 + invoke-direct {v7, p1}, Landroid/location/Location;-><init>(Ljava/lang/String;)V
29337 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkLat()Ljava/lang/String;
29339 + move-result-object v0
29341 + invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
29343 + move-result-wide v3
29345 + invoke-virtual {v7, v3, v4}, Landroid/location/Location;->setLatitude(D)V
29347 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkLon()Ljava/lang/String;
29349 + move-result-object v0
29351 + invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
29353 + move-result-wide v3
29355 + invoke-virtual {v7, v3, v4}, Landroid/location/Location;->setLongitude(D)V
29357 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29359 + const-string v4, "locationNetwork"
29361 + new-instance v3, Ljava/lang/StringBuilder;
29363 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
29365 + const-string v5, "Lat: "
29367 + invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
29369 + move-result-object v3
29371 + invoke-virtual {v7}, Landroid/location/Location;->getLatitude()D
29373 + move-result-wide v8
29375 + invoke-virtual {v3, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
29377 + move-result-object v3
29379 + const-string v5, " Lon: "
29381 + invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
29383 + move-result-object v3
29385 + invoke-virtual {v7}, Landroid/location/Location;->getLongitude()D
29387 + move-result-wide v8
29389 + invoke-virtual {v3, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
29391 + move-result-object v3
29393 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
29395 + move-result-object v5
29397 + move v3, v10
29399 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
29401 + goto/16 :goto_b
29403 + :pswitch_199
29404 + new-instance v7, Landroid/location/Location;
29406 + invoke-direct {v7, p1}, Landroid/location/Location;-><init>(Ljava/lang/String;)V
29408 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkLat()Ljava/lang/String;
29410 + move-result-object v0
29412 + invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
29414 + move-result-wide v3
29416 + invoke-virtual {v7, v3, v4}, Landroid/location/Location;->setLatitude(D)V
29418 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkLon()Ljava/lang/String;
29420 + move-result-object v0
29422 + invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
29424 + move-result-wide v3
29426 + invoke-virtual {v7, v3, v4}, Landroid/location/Location;->setLongitude(D)V
29428 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29430 + const-string v4, "locationNetwork"
29432 + new-instance v3, Ljava/lang/StringBuilder;
29434 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
29436 + const-string v5, "Lat: "
29438 + invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
29440 + move-result-object v3
29442 + invoke-virtual {v7}, Landroid/location/Location;->getLatitude()D
29444 + move-result-wide v8
29446 + invoke-virtual {v3, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
29448 + move-result-object v3
29450 + const-string v5, " Lon: "
29452 + invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
29454 + move-result-object v3
29456 + invoke-virtual {v7}, Landroid/location/Location;->getLongitude()D
29458 + move-result-wide v8
29460 + invoke-virtual {v3, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
29462 + move-result-object v3
29464 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
29466 + move-result-object v5
29468 + move v3, v11
29470 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
29472 + goto/16 :goto_b
29474 + :cond_1e3
29475 + const-string/jumbo v0, "passive"
29477 + invoke-virtual {p1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
29479 + move-result v0
29481 + if-eqz v0, :cond_b
29483 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
29485 + move-result v0
29487 + if-nez v0, :cond_b
29489 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
29491 + move-result v0
29493 + if-nez v0, :cond_b
29495 + invoke-super {p0, p1}, Landroid/location/LocationManager;->getLastKnownLocation(Ljava/lang/String;)Landroid/location/Location;
29497 + move-result-object v7
29499 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29501 + const-string v4, "locationGPS"
29503 + if-eqz v7, :cond_227
29505 + new-instance v5, Ljava/lang/StringBuilder;
29507 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
29509 + const-string v8, "Lat: "
29511 + invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
29513 + move-result-object v5
29515 + invoke-virtual {v7}, Landroid/location/Location;->getLatitude()D
29517 + move-result-wide v8
29519 + invoke-virtual {v5, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
29521 + move-result-object v5
29523 + const-string v8, " Lon: "
29525 + invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
29527 + move-result-object v5
29529 + invoke-virtual {v7}, Landroid/location/Location;->getLongitude()D
29531 + move-result-wide v8
29533 + invoke-virtual {v5, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
29535 + move-result-object v5
29537 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
29539 + move-result-object v5
29541 + :cond_227
29542 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
29544 + goto/16 :goto_b
29546 + :cond_22c
29547 + invoke-super {p0, p1}, Landroid/location/LocationManager;->getLastKnownLocation(Ljava/lang/String;)Landroid/location/Location;
29549 + move-result-object v7
29551 + const-string/jumbo v0, "network"
29553 + invoke-virtual {p1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
29555 + move-result v0
29557 + if-eqz v0, :cond_269
29559 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29561 + const-string v4, "locationNetwork"
29563 + if-eqz v7, :cond_264
29565 + new-instance v5, Ljava/lang/StringBuilder;
29567 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
29569 + const-string v8, "Lat: "
29571 + invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
29573 + move-result-object v5
29575 + invoke-virtual {v7}, Landroid/location/Location;->getLatitude()D
29577 + move-result-wide v8
29579 + invoke-virtual {v5, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
29581 + move-result-object v5
29583 + const-string v8, " Lon: "
29585 + invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
29587 + move-result-object v5
29589 + invoke-virtual {v7}, Landroid/location/Location;->getLongitude()D
29591 + move-result-wide v8
29593 + invoke-virtual {v5, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
29595 + move-result-object v5
29597 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
29599 + move-result-object v5
29601 + :cond_264
29602 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
29604 + goto/16 :goto_b
29606 + :cond_269
29607 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29609 + const-string v4, "locationGPS"
29611 + if-eqz v7, :cond_294
29613 + new-instance v5, Ljava/lang/StringBuilder;
29615 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
29617 + const-string v8, "Lat: "
29619 + invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
29621 + move-result-object v5
29623 + invoke-virtual {v7}, Landroid/location/Location;->getLatitude()D
29625 + move-result-wide v8
29627 + invoke-virtual {v5, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
29629 + move-result-object v5
29631 + const-string v8, " Lon: "
29633 + invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
29635 + move-result-object v5
29637 + invoke-virtual {v7}, Landroid/location/Location;->getLongitude()D
29639 + move-result-wide v8
29641 + invoke-virtual {v5, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
29643 + move-result-object v5
29645 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
29647 + move-result-object v5
29649 + :cond_294
29650 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
29652 + goto/16 :goto_b
29654 + nop
29656 + :pswitch_data_29a
29657 + .packed-switch 0x0
29658 + :pswitch_2f
29659 + :pswitch_62
29660 + :pswitch_6b
29661 + :pswitch_b5
29662 + .end packed-switch
29664 + :pswitch_data_2a6
29665 + .packed-switch 0x0
29666 + :pswitch_111
29667 + :pswitch_145
29668 + :pswitch_14f
29669 + :pswitch_199
29670 + .end packed-switch
29671 +.end method
29673 +.method public getProvider(Ljava/lang/String;)Landroid/location/LocationProvider;
29674 + .registers 7
29676 + if-nez p1, :cond_7
29678 + invoke-super {p0, p1}, Landroid/location/LocationManager;->getProvider(Ljava/lang/String;)Landroid/location/LocationProvider;
29680 + move-result-object v0
29682 + :cond_6
29683 + :goto_6
29684 + return-object v0
29686 + :cond_7
29687 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29689 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->context:Landroid/content/Context;
29691 + invoke-virtual {v3}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
29693 + move-result-object v3
29695 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
29697 + move-result v4
29699 + invoke-virtual {v2, v3, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
29701 + move-result-object v1
29703 + const/4 v0, 0x0
29705 + if-eqz v1, :cond_5f
29707 + const-string v2, "gps"
29709 + invoke-virtual {p1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
29711 + move-result v2
29713 + if-eqz v2, :cond_2f
29715 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
29717 + move-result v2
29719 + packed-switch v2, :pswitch_data_64
29721 + :pswitch_29
29722 + goto :goto_6
29724 + :pswitch_2a
29725 + invoke-super {p0, p1}, Landroid/location/LocationManager;->getProvider(Ljava/lang/String;)Landroid/location/LocationProvider;
29727 + move-result-object v0
29729 + goto :goto_6
29731 + :cond_2f
29732 + const-string/jumbo v2, "network"
29734 + invoke-virtual {p1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
29736 + move-result v2
29738 + if-eqz v2, :cond_45
29740 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
29742 + move-result v2
29744 + packed-switch v2, :pswitch_data_70
29746 + :pswitch_3f
29747 + goto :goto_6
29749 + :pswitch_40
29750 + invoke-super {p0, p1}, Landroid/location/LocationManager;->getProvider(Ljava/lang/String;)Landroid/location/LocationProvider;
29752 + move-result-object v0
29754 + goto :goto_6
29756 + :cond_45
29757 + const-string/jumbo v2, "passive"
29759 + invoke-virtual {p1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
29761 + move-result v2
29763 + if-eqz v2, :cond_6
29765 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
29767 + move-result v2
29769 + if-eqz v2, :cond_5a
29771 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
29773 + move-result v2
29775 + if-nez v2, :cond_6
29777 + :cond_5a
29778 + invoke-super {p0, p1}, Landroid/location/LocationManager;->getProvider(Ljava/lang/String;)Landroid/location/LocationProvider;
29780 + move-result-object v0
29782 + goto :goto_6
29784 + :cond_5f
29785 + invoke-super {p0, p1}, Landroid/location/LocationManager;->getProvider(Ljava/lang/String;)Landroid/location/LocationProvider;
29787 + move-result-object v0
29789 + goto :goto_6
29791 + :pswitch_data_64
29792 + .packed-switch 0x0
29793 + :pswitch_2a
29794 + :pswitch_29
29795 + :pswitch_2a
29796 + :pswitch_2a
29797 + .end packed-switch
29799 + :pswitch_data_70
29800 + .packed-switch 0x0
29801 + :pswitch_40
29802 + :pswitch_3f
29803 + :pswitch_40
29804 + :pswitch_40
29805 + .end packed-switch
29806 +.end method
29808 +.method public isProviderEnabled(Ljava/lang/String;)Z
29809 + .registers 7
29811 + if-nez p1, :cond_7
29813 + invoke-super {p0, p1}, Landroid/location/LocationManager;->isProviderEnabled(Ljava/lang/String;)Z
29815 + move-result v0
29817 + :cond_6
29818 + :goto_6
29819 + :pswitch_6
29820 + return v0
29822 + :cond_7
29823 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29825 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->context:Landroid/content/Context;
29827 + invoke-virtual {v3}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
29829 + move-result-object v3
29831 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
29833 + move-result v4
29835 + invoke-virtual {v2, v3, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
29837 + move-result-object v1
29839 + const/4 v0, 0x0
29841 + if-eqz v1, :cond_65
29843 + const-string v2, "gps"
29845 + invoke-virtual {p1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
29847 + move-result v2
29849 + if-eqz v2, :cond_31
29851 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
29853 + move-result v2
29855 + packed-switch v2, :pswitch_data_6a
29857 + goto :goto_6
29859 + :pswitch_2a
29860 + invoke-super {p0, p1}, Landroid/location/LocationManager;->isProviderEnabled(Ljava/lang/String;)Z
29862 + move-result v0
29864 + goto :goto_6
29866 + :pswitch_2f
29867 + const/4 v0, 0x1
29869 + goto :goto_6
29871 + :cond_31
29872 + const-string/jumbo v2, "network"
29874 + invoke-virtual {p1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
29876 + move-result v2
29878 + if-eqz v2, :cond_49
29880 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
29882 + move-result v2
29884 + packed-switch v2, :pswitch_data_76
29886 + goto :goto_6
29888 + :pswitch_42
29889 + invoke-super {p0, p1}, Landroid/location/LocationManager;->isProviderEnabled(Ljava/lang/String;)Z
29891 + move-result v0
29893 + goto :goto_6
29895 + :pswitch_47
29896 + const/4 v0, 0x1
29898 + goto :goto_6
29900 + :cond_49
29901 + const-string/jumbo v2, "passive"
29903 + invoke-virtual {p1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
29905 + move-result v2
29907 + if-eqz v2, :cond_6
29909 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
29911 + move-result v2
29913 + if-eqz v2, :cond_5e
29915 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
29917 + move-result v2
29919 + if-nez v2, :cond_63
29921 + :cond_5e
29922 + invoke-super {p0, p1}, Landroid/location/LocationManager;->isProviderEnabled(Ljava/lang/String;)Z
29924 + move-result v0
29926 + goto :goto_6
29928 + :cond_63
29929 + const/4 v0, 0x0
29931 + goto :goto_6
29933 + :cond_65
29934 + invoke-super {p0, p1}, Landroid/location/LocationManager;->isProviderEnabled(Ljava/lang/String;)Z
29936 + move-result v0
29938 + goto :goto_6
29940 + :pswitch_data_6a
29941 + .packed-switch 0x0
29942 + :pswitch_2a
29943 + :pswitch_6
29944 + :pswitch_2f
29945 + :pswitch_2f
29946 + .end packed-switch
29948 + :pswitch_data_76
29949 + .packed-switch 0x0
29950 + :pswitch_42
29951 + :pswitch_6
29952 + :pswitch_47
29953 + :pswitch_47
29954 + .end packed-switch
29955 +.end method
29957 +.method public requestLocationUpdates(JFLandroid/location/Criteria;Landroid/app/PendingIntent;)V
29958 + .registers 7
29960 + if-eqz p4, :cond_4
29962 + if-nez p5, :cond_8
29964 + :cond_4
29965 + invoke-super/range {p0 .. p5}, Landroid/location/LocationManager;->requestLocationUpdates(JFLandroid/location/Criteria;Landroid/app/PendingIntent;)V
29967 + :cond_7
29968 + :goto_7
29969 + return-void
29971 + :cond_8
29972 + const/4 v0, 0x0
29974 + invoke-direct {p0, p4, v0, p5}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Landroid/location/Criteria;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
29976 + move-result v0
29978 + if-nez v0, :cond_7
29980 + invoke-super/range {p0 .. p5}, Landroid/location/LocationManager;->requestLocationUpdates(JFLandroid/location/Criteria;Landroid/app/PendingIntent;)V
29982 + goto :goto_7
29983 +.end method
29985 +.method public requestLocationUpdates(JFLandroid/location/Criteria;Landroid/location/LocationListener;Landroid/os/Looper;)V
29986 + .registers 8
29988 + if-eqz p4, :cond_4
29990 + if-nez p5, :cond_8
29992 + :cond_4
29993 + invoke-super/range {p0 .. p6}, Landroid/location/LocationManager;->requestLocationUpdates(JFLandroid/location/Criteria;Landroid/location/LocationListener;Landroid/os/Looper;)V
29995 + :cond_7
29996 + :goto_7
29997 + return-void
29999 + :cond_8
30000 + const/4 v0, 0x0
30002 + invoke-direct {p0, p4, p5, v0}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Landroid/location/Criteria;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
30004 + move-result v0
30006 + if-nez v0, :cond_7
30008 + invoke-super/range {p0 .. p6}, Landroid/location/LocationManager;->requestLocationUpdates(JFLandroid/location/Criteria;Landroid/location/LocationListener;Landroid/os/Looper;)V
30010 + goto :goto_7
30011 +.end method
30013 +.method public requestLocationUpdates(Ljava/lang/String;JFLandroid/app/PendingIntent;)V
30014 + .registers 7
30016 + if-eqz p1, :cond_4
30018 + if-nez p5, :cond_8
30020 + :cond_4
30021 + invoke-super/range {p0 .. p5}, Landroid/location/LocationManager;->requestLocationUpdates(Ljava/lang/String;JFLandroid/app/PendingIntent;)V
30023 + :cond_7
30024 + :goto_7
30025 + return-void
30027 + :cond_8
30028 + const/4 v0, 0x0
30030 + invoke-direct {p0, p1, v0, p5}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
30032 + move-result v0
30034 + if-nez v0, :cond_7
30036 + invoke-super/range {p0 .. p5}, Landroid/location/LocationManager;->requestLocationUpdates(Ljava/lang/String;JFLandroid/app/PendingIntent;)V
30038 + goto :goto_7
30039 +.end method
30041 +.method public requestLocationUpdates(Ljava/lang/String;JFLandroid/location/LocationListener;)V
30042 + .registers 7
30044 + if-eqz p1, :cond_4
30046 + if-nez p5, :cond_8
30048 + :cond_4
30049 + invoke-super/range {p0 .. p5}, Landroid/location/LocationManager;->requestLocationUpdates(Ljava/lang/String;JFLandroid/location/LocationListener;)V
30051 + :cond_7
30052 + :goto_7
30053 + return-void
30055 + :cond_8
30056 + const/4 v0, 0x0
30058 + invoke-direct {p0, p1, p5, v0}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
30060 + move-result v0
30062 + if-nez v0, :cond_7
30064 + invoke-super/range {p0 .. p5}, Landroid/location/LocationManager;->requestLocationUpdates(Ljava/lang/String;JFLandroid/location/LocationListener;)V
30066 + goto :goto_7
30067 +.end method
30069 +.method public requestLocationUpdates(Ljava/lang/String;JFLandroid/location/LocationListener;Landroid/os/Looper;)V
30070 + .registers 8
30072 + if-eqz p1, :cond_4
30074 + if-nez p5, :cond_8
30076 + :cond_4
30077 + invoke-super/range {p0 .. p6}, Landroid/location/LocationManager;->requestLocationUpdates(Ljava/lang/String;JFLandroid/location/LocationListener;Landroid/os/Looper;)V
30079 + :cond_7
30080 + :goto_7
30081 + return-void
30083 + :cond_8
30084 + const/4 v0, 0x0
30086 + invoke-direct {p0, p1, p5, v0}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
30088 + move-result v0
30090 + if-nez v0, :cond_7
30092 + invoke-super/range {p0 .. p6}, Landroid/location/LocationManager;->requestLocationUpdates(Ljava/lang/String;JFLandroid/location/LocationListener;Landroid/os/Looper;)V
30094 + goto :goto_7
30095 +.end method
30097 +.method public requestSingleUpdate(Landroid/location/Criteria;Landroid/app/PendingIntent;)V
30098 + .registers 4
30100 + if-eqz p1, :cond_4
30102 + if-nez p2, :cond_8
30104 + :cond_4
30105 + invoke-super {p0, p1, p2}, Landroid/location/LocationManager;->requestSingleUpdate(Landroid/location/Criteria;Landroid/app/PendingIntent;)V
30107 + :cond_7
30108 + :goto_7
30109 + return-void
30111 + :cond_8
30112 + const/4 v0, 0x0
30114 + invoke-direct {p0, p1, v0, p2}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Landroid/location/Criteria;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
30116 + move-result v0
30118 + if-nez v0, :cond_7
30120 + invoke-super {p0, p1, p2}, Landroid/location/LocationManager;->requestSingleUpdate(Landroid/location/Criteria;Landroid/app/PendingIntent;)V
30122 + goto :goto_7
30123 +.end method
30125 +.method public requestSingleUpdate(Landroid/location/Criteria;Landroid/location/LocationListener;Landroid/os/Looper;)V
30126 + .registers 5
30128 + if-eqz p1, :cond_4
30130 + if-nez p2, :cond_8
30132 + :cond_4
30133 + invoke-super {p0, p1, p2, p3}, Landroid/location/LocationManager;->requestSingleUpdate(Landroid/location/Criteria;Landroid/location/LocationListener;Landroid/os/Looper;)V
30135 + :cond_7
30136 + :goto_7
30137 + return-void
30139 + :cond_8
30140 + const/4 v0, 0x0
30142 + invoke-direct {p0, p1, p2, v0}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Landroid/location/Criteria;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
30144 + move-result v0
30146 + if-nez v0, :cond_7
30148 + invoke-super {p0, p1, p2, p3}, Landroid/location/LocationManager;->requestSingleUpdate(Landroid/location/Criteria;Landroid/location/LocationListener;Landroid/os/Looper;)V
30150 + goto :goto_7
30151 +.end method
30153 +.method public requestSingleUpdate(Ljava/lang/String;Landroid/app/PendingIntent;)V
30154 + .registers 4
30156 + if-eqz p1, :cond_4
30158 + if-nez p2, :cond_8
30160 + :cond_4
30161 + invoke-super {p0, p1, p2}, Landroid/location/LocationManager;->requestSingleUpdate(Ljava/lang/String;Landroid/app/PendingIntent;)V
30163 + :cond_7
30164 + :goto_7
30165 + return-void
30167 + :cond_8
30168 + const/4 v0, 0x0
30170 + invoke-direct {p0, p1, v0, p2}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
30172 + move-result v0
30174 + if-nez v0, :cond_7
30176 + invoke-super {p0, p1, p2}, Landroid/location/LocationManager;->requestSingleUpdate(Ljava/lang/String;Landroid/app/PendingIntent;)V
30178 + goto :goto_7
30179 +.end method
30181 +.method public requestSingleUpdate(Ljava/lang/String;Landroid/location/LocationListener;Landroid/os/Looper;)V
30182 + .registers 5
30184 + if-eqz p1, :cond_4
30186 + if-nez p2, :cond_8
30188 + :cond_4
30189 + invoke-super {p0, p1, p2, p3}, Landroid/location/LocationManager;->requestSingleUpdate(Ljava/lang/String;Landroid/location/LocationListener;Landroid/os/Looper;)V
30191 + :cond_7
30192 + :goto_7
30193 + return-void
30195 + :cond_8
30196 + const/4 v0, 0x0
30198 + invoke-direct {p0, p1, p2, v0}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
30200 + move-result v0
30202 + if-nez v0, :cond_7
30204 + invoke-super {p0, p1, p2, p3}, Landroid/location/LocationManager;->requestSingleUpdate(Ljava/lang/String;Landroid/location/LocationListener;Landroid/os/Looper;)V
30206 + goto :goto_7
30207 +.end method
30208 diff -Npruw stock-framework/smali/android/privacy/surrogate/PrivacyTelephonyManager.smali pdroid-framework/smali/android/privacy/surrogate/PrivacyTelephonyManager.smali
30209 --- stock-framework/smali/android/privacy/surrogate/PrivacyTelephonyManager.smali 1969-12-31 18:00:00.000000000 -0600
30210 +++ pdroid-framework/smali/android/privacy/surrogate/PrivacyTelephonyManager.smali 2013-08-15 23:20:07.964304776 -0500
30211 @@ -0,0 +1,1385 @@
30212 +.class public final Landroid/privacy/surrogate/PrivacyTelephonyManager;
30213 +.super Landroid/telephony/TelephonyManager;
30214 +.source "PrivacyTelephonyManager.java"
30217 +# static fields
30218 +.field private static final NETWORK_TYPES:[I = null
30220 +.field private static final PHONE_TYPES:[I = null
30222 +.field private static final TAG:Ljava/lang/String; = "PrivacyTelephonyManager"
30225 +# instance fields
30226 +.field private context:Landroid/content/Context;
30228 +.field private pSetMan:Landroid/privacy/PrivacySettingsManager;
30231 +# direct methods
30232 +.method static constructor <clinit>()V
30233 + .registers 1
30235 + const/4 v0, 0x4
30237 + new-array v0, v0, [I
30239 + fill-array-data v0, :array_12
30241 + sput-object v0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->PHONE_TYPES:[I
30243 + const/16 v0, 0x10
30245 + new-array v0, v0, [I
30247 + fill-array-data v0, :array_1e
30249 + sput-object v0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->NETWORK_TYPES:[I
30251 + return-void
30253 + :array_12
30254 + .array-data 0x4
30255 + 0x0t 0x0t 0x0t 0x0t
30256 + 0x1t 0x0t 0x0t 0x0t
30257 + 0x2t 0x0t 0x0t 0x0t
30258 + 0x3t 0x0t 0x0t 0x0t
30259 + .end array-data
30261 + :array_1e
30262 + .array-data 0x4
30263 + 0x0t 0x0t 0x0t 0x0t
30264 + 0x1t 0x0t 0x0t 0x0t
30265 + 0x2t 0x0t 0x0t 0x0t
30266 + 0x3t 0x0t 0x0t 0x0t
30267 + 0x4t 0x0t 0x0t 0x0t
30268 + 0x5t 0x0t 0x0t 0x0t
30269 + 0x6t 0x0t 0x0t 0x0t
30270 + 0x7t 0x0t 0x0t 0x0t
30271 + 0x8t 0x0t 0x0t 0x0t
30272 + 0x9t 0x0t 0x0t 0x0t
30273 + 0xat 0x0t 0x0t 0x0t
30274 + 0xbt 0x0t 0x0t 0x0t
30275 + 0xct 0x0t 0x0t 0x0t
30276 + 0xdt 0x0t 0x0t 0x0t
30277 + 0xet 0x0t 0x0t 0x0t
30278 + 0xft 0x0t 0x0t 0x0t
30279 + .end array-data
30280 +.end method
30282 +.method public constructor <init>(Landroid/content/Context;)V
30283 + .registers 4
30285 + invoke-direct {p0, p1}, Landroid/telephony/TelephonyManager;-><init>(Landroid/content/Context;)V
30287 + iput-object p1, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30289 + new-instance v0, Landroid/privacy/PrivacySettingsManager;
30291 + const-string/jumbo v1, "privacy"
30293 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
30295 + move-result-object v1
30297 + invoke-static {v1}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
30299 + move-result-object v1
30301 + invoke-direct {v0, p1, v1}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
30303 + iput-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30305 + return-void
30306 +.end method
30308 +.method private getNetworkInfo()Ljava/lang/String;
30309 + .registers 8
30311 + const/4 v5, 0x0
30313 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30315 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30317 + move-result-object v1
30319 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
30321 + move-result v2
30323 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30325 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
30327 + move-result-object v6
30329 + if-eqz v6, :cond_25
30331 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
30333 + move-result v0
30335 + if-eqz v0, :cond_25
30337 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30339 + const/4 v3, 0x1
30341 + const-string/jumbo v4, "networkInfoCurrent"
30343 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30345 + const-string v5, ""
30347 + :goto_24
30348 + return-object v5
30350 + :cond_25
30351 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30353 + const/4 v3, 0x0
30355 + const-string/jumbo v4, "networkInfoCurrent"
30357 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30359 + goto :goto_24
30360 +.end method
30362 +.method private getSimInfo()Ljava/lang/String;
30363 + .registers 8
30365 + const/4 v5, 0x0
30367 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30369 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30371 + move-result-object v1
30373 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
30375 + move-result v2
30377 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30379 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
30381 + move-result-object v6
30383 + if-eqz v6, :cond_25
30385 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getSimInfoSetting()B
30387 + move-result v0
30389 + if-eqz v0, :cond_25
30391 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30393 + const/4 v3, 0x1
30395 + const-string/jumbo v4, "networkInfoSIM"
30397 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30399 + const-string v5, ""
30401 + :goto_24
30402 + return-object v5
30404 + :cond_25
30405 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30407 + const/4 v3, 0x0
30409 + const-string/jumbo v4, "networkInfoSIM"
30411 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30413 + goto :goto_24
30414 +.end method
30417 +# virtual methods
30418 +.method public getAllCellInfo()Ljava/util/List;
30419 + .registers 6
30420 + .annotation system Ldalvik/annotation/Signature;
30421 + value = {
30422 + "()",
30423 + "Ljava/util/List",
30424 + "<",
30425 + "Landroid/telephony/CellInfo;",
30426 + ">;"
30428 + .end annotation
30430 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30432 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30434 + invoke-virtual {v3}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30436 + move-result-object v3
30438 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
30440 + move-result v4
30442 + invoke-virtual {v2, v3, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
30444 + move-result-object v1
30446 + const/4 v0, 0x0
30448 + if-eqz v1, :cond_1f
30450 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
30452 + move-result v2
30454 + const/4 v3, 0x1
30456 + if-ne v2, v3, :cond_20
30458 + new-instance v0, Ljava/util/ArrayList;
30460 + invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
30462 + :cond_1f
30463 + :goto_1f
30464 + return-object v0
30466 + :cond_20
30467 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
30469 + move-result v2
30471 + if-eqz v2, :cond_2c
30473 + new-instance v0, Ljava/util/ArrayList;
30475 + invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
30477 + goto :goto_1f
30479 + :cond_2c
30480 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getAllCellInfo()Ljava/util/List;
30482 + move-result-object v0
30484 + goto :goto_1f
30485 +.end method
30487 +.method public getCellLocation()Landroid/telephony/CellLocation;
30488 + .registers 10
30490 + const/4 v7, 0x0
30492 + :try_start_1
30493 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30495 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30497 + move-result-object v1
30499 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
30501 + move-result v2
30503 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30505 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
30507 + move-result-object v6
30509 + if-eqz v6, :cond_2c
30511 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
30513 + move-result v0
30515 + if-nez v0, :cond_1f
30517 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
30519 + move-result v0
30521 + if-eqz v0, :cond_2c
30523 + :cond_1f
30524 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30526 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
30528 + move-result v3
30530 + const-string v4, "locationNetwork"
30532 + const/4 v5, 0x0
30534 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30536 + :goto_2b
30537 + return-object v7
30539 + :cond_2c
30540 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30542 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
30544 + move-result v3
30546 + const-string v4, "locationNetwork"
30548 + const/4 v5, 0x0
30550 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30552 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getCellLocation()Landroid/telephony/CellLocation;
30553 + :try_end_3b
30554 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_3b} :catch_3d
30556 + move-result-object v7
30558 + goto :goto_2b
30560 + :catch_3d
30561 + move-exception v8
30563 + goto :goto_2b
30564 +.end method
30566 +.method public getCompleteVoiceMailNumber()Ljava/lang/String;
30567 + .registers 9
30569 + :try_start_0
30570 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30572 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30574 + move-result-object v1
30576 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
30578 + move-result v2
30580 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30582 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
30584 + move-result-object v6
30586 + const-string v5, ""
30588 + if-eqz v6, :cond_2a
30590 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLine1NumberSetting()B
30592 + move-result v0
30594 + if-eqz v0, :cond_2a
30596 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLine1Number()Ljava/lang/String;
30598 + move-result-object v5
30600 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30602 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLine1NumberSetting()B
30604 + move-result v3
30606 + const-string v4, "line1Number"
30608 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30610 + :goto_29
30611 + return-object v5
30613 + :cond_2a
30614 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getCompleteVoiceMailNumber()Ljava/lang/String;
30616 + move-result-object v5
30618 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30620 + const/4 v3, 0x0
30622 + const-string v4, "line1Number"
30624 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30625 + :try_end_36
30626 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_36} :catch_37
30628 + goto :goto_29
30630 + :catch_37
30631 + move-exception v7
30633 + const/4 v5, 0x0
30635 + goto :goto_29
30636 +.end method
30638 +.method public getDeviceId()Ljava/lang/String;
30639 + .registers 8
30641 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30643 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30645 + move-result-object v1
30647 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
30649 + move-result v2
30651 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30653 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
30655 + move-result-object v6
30657 + if-eqz v6, :cond_28
30659 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getDeviceIdSetting()B
30661 + move-result v0
30663 + if-eqz v0, :cond_28
30665 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getDeviceId()Ljava/lang/String;
30667 + move-result-object v5
30669 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30671 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getDeviceIdSetting()B
30673 + move-result v3
30675 + const-string v4, "deviceID"
30677 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30679 + :goto_27
30680 + return-object v5
30682 + :cond_28
30683 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getDeviceId()Ljava/lang/String;
30685 + move-result-object v5
30687 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30689 + const/4 v3, 0x0
30691 + const-string v4, "deviceID"
30693 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30695 + goto :goto_27
30696 +.end method
30698 +.method public getDeviceSoftwareVersion()Ljava/lang/String;
30699 + .registers 9
30701 + :try_start_0
30702 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30704 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30706 + move-result-object v1
30708 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
30710 + move-result v2
30712 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30714 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
30716 + move-result-object v6
30718 + const-string v5, ""
30720 + if-eqz v6, :cond_2a
30722 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getDeviceIdSetting()B
30724 + move-result v0
30726 + if-eqz v0, :cond_2a
30728 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getDeviceId()Ljava/lang/String;
30730 + move-result-object v5
30732 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30734 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getDeviceIdSetting()B
30736 + move-result v3
30738 + const-string v4, "deviceID"
30740 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30742 + :goto_29
30743 + return-object v5
30745 + :cond_2a
30746 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getDeviceSoftwareVersion()Ljava/lang/String;
30748 + move-result-object v5
30750 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30752 + const/4 v3, 0x0
30754 + const-string v4, "deviceID"
30756 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30757 + :try_end_36
30758 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_36} :catch_37
30760 + goto :goto_29
30762 + :catch_37
30763 + move-exception v7
30765 + const/4 v5, 0x0
30767 + goto :goto_29
30768 +.end method
30770 +.method public getIsimDomain()Ljava/lang/String;
30771 + .registers 2
30773 + invoke-virtual {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getNetworkOperatorName()Ljava/lang/String;
30775 + move-result-object v0
30777 + return-object v0
30778 +.end method
30780 +.method public getIsimImpi()Ljava/lang/String;
30781 + .registers 4
30783 + const-string v0, "PrivacyTelephonyManager"
30785 + new-instance v1, Ljava/lang/StringBuilder;
30787 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
30789 + const-string v2, "getIsimImpi - "
30791 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30793 + move-result-object v1
30795 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30797 + invoke-virtual {v2}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30799 + move-result-object v2
30801 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30803 + move-result-object v1
30805 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
30807 + move-result-object v1
30809 + invoke-static {v0, v1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
30811 + invoke-virtual {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getSubscriberId()Ljava/lang/String;
30813 + move-result-object v0
30815 + return-object v0
30816 +.end method
30818 +.method public getIsimImpu()[Ljava/lang/String;
30819 + .registers 10
30821 + const/4 v8, 0x0
30823 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30825 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30827 + move-result-object v1
30829 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
30831 + move-result v2
30833 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30835 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
30837 + move-result-object v6
30839 + const-string v0, "PrivacyTelephonyManager"
30841 + new-instance v3, Ljava/lang/StringBuilder;
30843 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
30845 + const-string v4, "getIsimImpu() - "
30847 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30849 + move-result-object v3
30851 + iget-object v4, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30853 + invoke-virtual {v4}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30855 + move-result-object v4
30857 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30859 + move-result-object v3
30861 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
30863 + move-result-object v3
30865 + invoke-static {v0, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
30867 + const/4 v0, 0x1
30869 + new-array v7, v0, [Ljava/lang/String;
30871 + if-eqz v6, :cond_4f
30873 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getSubscriberIdSetting()B
30875 + move-result v0
30877 + if-eqz v0, :cond_4f
30879 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getSubscriberId()Ljava/lang/String;
30881 + move-result-object v0
30883 + aput-object v0, v7, v8
30885 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30887 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getSubscriberIdSetting()B
30889 + move-result v3
30891 + const-string/jumbo v4, "subscriberID"
30893 + aget-object v5, v7, v8
30895 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30897 + :goto_4e
30898 + return-object v7
30900 + :cond_4f
30901 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getIsimImpu()[Ljava/lang/String;
30903 + move-result-object v7
30905 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30907 + const-string/jumbo v4, "subscriberID"
30909 + aget-object v5, v7, v8
30911 + move v3, v8
30913 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30915 + goto :goto_4e
30916 +.end method
30918 +.method public getLine1AlphaTag()Ljava/lang/String;
30919 + .registers 2
30921 + invoke-virtual {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getLine1Number()Ljava/lang/String;
30923 + move-result-object v0
30925 + return-object v0
30926 +.end method
30928 +.method public getLine1Number()Ljava/lang/String;
30929 + .registers 8
30931 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30933 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30935 + move-result-object v1
30937 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
30939 + move-result v2
30941 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30943 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
30945 + move-result-object v6
30947 + if-eqz v6, :cond_28
30949 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLine1NumberSetting()B
30951 + move-result v0
30953 + if-eqz v0, :cond_28
30955 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLine1Number()Ljava/lang/String;
30957 + move-result-object v5
30959 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30961 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLine1NumberSetting()B
30963 + move-result v3
30965 + const-string v4, "line1Number"
30967 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30969 + :goto_27
30970 + return-object v5
30972 + :cond_28
30973 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getLine1Number()Ljava/lang/String;
30975 + move-result-object v5
30977 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30979 + const/4 v3, 0x0
30981 + const-string v4, "line1Number"
30983 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30985 + goto :goto_27
30986 +.end method
30988 +.method public getMsisdn()Ljava/lang/String;
30989 + .registers 4
30991 + const-string v0, "PrivacyTelephonyManager"
30993 + new-instance v1, Ljava/lang/StringBuilder;
30995 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
30997 + const-string v2, "getMsisdn() - "
30999 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
31001 + move-result-object v1
31003 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
31005 + invoke-virtual {v2}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31007 + move-result-object v2
31009 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
31011 + move-result-object v1
31013 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
31015 + move-result-object v1
31017 + invoke-static {v0, v1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
31019 + invoke-virtual {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getSubscriberId()Ljava/lang/String;
31021 + move-result-object v0
31023 + return-object v0
31024 +.end method
31026 +.method public getNeighboringCellInfo()Ljava/util/List;
31027 + .registers 10
31028 + .annotation system Ldalvik/annotation/Signature;
31029 + value = {
31030 + "()",
31031 + "Ljava/util/List",
31032 + "<",
31033 + "Landroid/telephony/NeighboringCellInfo;",
31034 + ">;"
31036 + .end annotation
31038 + iget-object v6, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31040 + iget-object v7, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
31042 + invoke-virtual {v7}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31044 + move-result-object v7
31046 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31048 + move-result v8
31050 + invoke-virtual {v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31052 + move-result-object v5
31054 + const/4 v3, 0x0
31056 + const-string v4, "[null]"
31058 + if-eqz v5, :cond_1c
31060 + invoke-virtual {v5}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
31062 + move-result v6
31064 + const/4 v7, 0x1
31066 + if-ne v6, v7, :cond_1d
31068 + :cond_1c
31069 + :goto_1c
31070 + return-object v3
31072 + :cond_1d
31073 + invoke-virtual {v5}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
31075 + move-result v6
31077 + if-eqz v6, :cond_2b
31079 + new-instance v3, Ljava/util/ArrayList;
31081 + invoke-direct {v3}, Ljava/util/ArrayList;-><init>()V
31083 + const-string v4, "[empty list of cells]"
31085 + goto :goto_1c
31087 + :cond_2b
31088 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getNeighboringCellInfo()Ljava/util/List;
31090 + move-result-object v3
31092 + const-string v0, ""
31094 + invoke-interface {v3}, Ljava/util/List;->iterator()Ljava/util/Iterator;
31096 + move-result-object v2
31098 + :goto_35
31099 + invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z
31101 + move-result v6
31103 + if-eqz v6, :cond_5f
31105 + invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;
31107 + move-result-object v1
31109 + check-cast v1, Landroid/telephony/NeighboringCellInfo;
31111 + new-instance v6, Ljava/lang/StringBuilder;
31113 + invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
31115 + invoke-virtual {v6, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
31117 + move-result-object v6
31119 + const-string v7, "\t"
31121 + invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
31123 + move-result-object v6
31125 + invoke-virtual {v6, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
31127 + move-result-object v6
31129 + const-string v7, "\n"
31131 + invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
31133 + move-result-object v6
31135 + invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
31137 + move-result-object v0
31139 + goto :goto_35
31141 + :cond_5f
31142 + new-instance v6, Ljava/lang/StringBuilder;
31144 + invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
31146 + const-string v7, "[real value]:\n"
31148 + invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
31150 + move-result-object v6
31152 + invoke-virtual {v6, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
31154 + move-result-object v6
31156 + invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
31158 + move-result-object v4
31160 + goto :goto_1c
31161 +.end method
31163 +.method public getNetworkCountryIso()Ljava/lang/String;
31164 + .registers 2
31166 + invoke-direct {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getNetworkInfo()Ljava/lang/String;
31168 + move-result-object v0
31170 + if-nez v0, :cond_a
31172 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getNetworkCountryIso()Ljava/lang/String;
31174 + move-result-object v0
31176 + :cond_a
31177 + return-object v0
31178 +.end method
31180 +.method public getNetworkOperator()Ljava/lang/String;
31181 + .registers 2
31183 + invoke-direct {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getNetworkInfo()Ljava/lang/String;
31185 + move-result-object v0
31187 + if-nez v0, :cond_a
31189 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getNetworkOperator()Ljava/lang/String;
31191 + move-result-object v0
31193 + :cond_a
31194 + return-object v0
31195 +.end method
31197 +.method public getNetworkOperatorName()Ljava/lang/String;
31198 + .registers 2
31200 + invoke-direct {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getNetworkInfo()Ljava/lang/String;
31202 + move-result-object v0
31204 + if-nez v0, :cond_a
31206 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getNetworkOperatorName()Ljava/lang/String;
31208 + move-result-object v0
31210 + :cond_a
31211 + return-object v0
31212 +.end method
31214 +.method public getNetworkType()I
31215 + .registers 7
31217 + const/4 v5, 0x0
31219 + :try_start_1
31220 + invoke-direct {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getNetworkInfo()Ljava/lang/String;
31222 + move-result-object v1
31224 + sget-object v3, Landroid/privacy/surrogate/PrivacyTelephonyManager;->NETWORK_TYPES:[I
31226 + const/4 v4, 0x0
31228 + aget v2, v3, v4
31230 + if-nez v1, :cond_10
31232 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getNetworkType()I
31233 + :try_end_f
31234 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_f} :catch_11
31236 + move-result v2
31238 + :cond_10
31239 + :goto_10
31240 + return v2
31242 + :catch_11
31243 + move-exception v0
31245 + sget-object v3, Landroid/privacy/surrogate/PrivacyTelephonyManager;->NETWORK_TYPES:[I
31247 + aget v2, v3, v5
31249 + goto :goto_10
31250 +.end method
31252 +.method public getPhoneType()I
31253 + .registers 5
31255 + invoke-direct {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getNetworkInfo()Ljava/lang/String;
31257 + move-result-object v0
31259 + sget-object v2, Landroid/privacy/surrogate/PrivacyTelephonyManager;->PHONE_TYPES:[I
31261 + const/4 v3, 0x0
31263 + aget v1, v2, v3
31265 + if-nez v0, :cond_f
31267 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getPhoneType()I
31269 + move-result v1
31271 + :cond_f
31272 + return v1
31273 +.end method
31275 +.method public getSimCountryIso()Ljava/lang/String;
31276 + .registers 2
31278 + invoke-direct {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getSimInfo()Ljava/lang/String;
31280 + move-result-object v0
31282 + if-nez v0, :cond_a
31284 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getSimCountryIso()Ljava/lang/String;
31286 + move-result-object v0
31288 + :cond_a
31289 + return-object v0
31290 +.end method
31292 +.method public getSimOperator()Ljava/lang/String;
31293 + .registers 2
31295 + invoke-direct {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getSimInfo()Ljava/lang/String;
31297 + move-result-object v0
31299 + if-nez v0, :cond_a
31301 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getSimOperator()Ljava/lang/String;
31303 + move-result-object v0
31305 + :cond_a
31306 + return-object v0
31307 +.end method
31309 +.method public getSimOperatorName()Ljava/lang/String;
31310 + .registers 2
31312 + invoke-direct {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getSimInfo()Ljava/lang/String;
31314 + move-result-object v0
31316 + if-nez v0, :cond_a
31318 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getSimOperatorName()Ljava/lang/String;
31320 + move-result-object v0
31322 + :cond_a
31323 + return-object v0
31324 +.end method
31326 +.method public getSimSerialNumber()Ljava/lang/String;
31327 + .registers 8
31329 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
31331 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31333 + move-result-object v1
31335 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31337 + move-result v2
31339 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31341 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31343 + move-result-object v6
31345 + if-eqz v6, :cond_29
31347 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getSimSerialNumberSetting()B
31349 + move-result v0
31351 + if-eqz v0, :cond_29
31353 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getSimSerialNumber()Ljava/lang/String;
31355 + move-result-object v5
31357 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31359 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getSimSerialNumberSetting()B
31361 + move-result v3
31363 + const-string/jumbo v4, "simSerial"
31365 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31367 + :goto_28
31368 + return-object v5
31370 + :cond_29
31371 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getSimSerialNumber()Ljava/lang/String;
31373 + move-result-object v5
31375 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31377 + const/4 v3, 0x0
31379 + const-string/jumbo v4, "simSerial"
31381 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31383 + goto :goto_28
31384 +.end method
31386 +.method public getSubscriberId()Ljava/lang/String;
31387 + .registers 8
31389 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
31391 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31393 + move-result-object v1
31395 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31397 + move-result v2
31399 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31401 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31403 + move-result-object v6
31405 + const-string v0, "PrivacyTelephonyManager"
31407 + new-instance v3, Ljava/lang/StringBuilder;
31409 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
31411 + const-string v4, "getSubscriberId() - "
31413 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
31415 + move-result-object v3
31417 + iget-object v4, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
31419 + invoke-virtual {v4}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31421 + move-result-object v4
31423 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
31425 + move-result-object v3
31427 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
31429 + move-result-object v3
31431 + invoke-static {v0, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
31433 + if-eqz v6, :cond_47
31435 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getSubscriberIdSetting()B
31437 + move-result v0
31439 + if-eqz v0, :cond_47
31441 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getSubscriberId()Ljava/lang/String;
31443 + move-result-object v5
31445 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31447 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getSubscriberIdSetting()B
31449 + move-result v3
31451 + const-string/jumbo v4, "subscriberID"
31453 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31455 + :goto_46
31456 + return-object v5
31458 + :cond_47
31459 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getSubscriberId()Ljava/lang/String;
31461 + move-result-object v5
31463 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31465 + const/4 v3, 0x0
31467 + const-string/jumbo v4, "subscriberID"
31469 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31471 + goto :goto_46
31472 +.end method
31474 +.method public getVoiceMailAlphaTag()Ljava/lang/String;
31475 + .registers 2
31477 + invoke-virtual {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getVoiceMailNumber()Ljava/lang/String;
31479 + move-result-object v0
31481 + return-object v0
31482 +.end method
31484 +.method public getVoiceMailNumber()Ljava/lang/String;
31485 + .registers 8
31487 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
31489 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31491 + move-result-object v1
31493 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31495 + move-result v2
31497 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31499 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31501 + move-result-object v6
31503 + if-eqz v6, :cond_28
31505 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLine1NumberSetting()B
31507 + move-result v0
31509 + if-eqz v0, :cond_28
31511 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLine1Number()Ljava/lang/String;
31513 + move-result-object v5
31515 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31517 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLine1NumberSetting()B
31519 + move-result v3
31521 + const-string v4, "line1Number"
31523 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31525 + :goto_27
31526 + return-object v5
31528 + :cond_28
31529 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getVoiceMailNumber()Ljava/lang/String;
31531 + move-result-object v5
31533 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31535 + const/4 v3, 0x0
31537 + const-string v4, "line1Number"
31539 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31541 + goto :goto_27
31542 +.end method
31544 +.method public listen(Landroid/telephony/PhoneStateListener;I)V
31545 + .registers 5
31547 + and-int/lit8 v1, p2, 0x10
31549 + if-nez v1, :cond_8
31551 + and-int/lit8 v1, p2, 0x20
31553 + if-eqz v1, :cond_29
31555 + :cond_8
31556 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
31558 + if-eqz v1, :cond_27
31560 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
31562 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31564 + move-result-object v0
31566 + :goto_12
31567 + if-eqz v0, :cond_1c
31569 + invoke-virtual {p1, v0}, Landroid/telephony/PhoneStateListener;->setPackageName(Ljava/lang/String;)V
31571 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
31573 + invoke-virtual {p1, v1}, Landroid/telephony/PhoneStateListener;->setContext(Landroid/content/Context;)V
31575 + :cond_1c
31576 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31578 + move-result v1
31580 + invoke-virtual {p1, v1}, Landroid/telephony/PhoneStateListener;->setUid(I)V
31582 + invoke-super {p0, p1, p2}, Landroid/telephony/TelephonyManager;->listen(Landroid/telephony/PhoneStateListener;I)V
31584 + :goto_26
31585 + return-void
31587 + :cond_27
31588 + const/4 v0, 0x0
31590 + goto :goto_12
31592 + :cond_29
31593 + invoke-super {p0, p1, p2}, Landroid/telephony/TelephonyManager;->listen(Landroid/telephony/PhoneStateListener;I)V
31595 + goto :goto_26
31596 +.end method
31597 diff -Npruw stock-framework/smali/android/privacy/surrogate/PrivacyWifiManager.smali pdroid-framework/smali/android/privacy/surrogate/PrivacyWifiManager.smali
31598 --- stock-framework/smali/android/privacy/surrogate/PrivacyWifiManager.smali 1969-12-31 18:00:00.000000000 -0600
31599 +++ pdroid-framework/smali/android/privacy/surrogate/PrivacyWifiManager.smali 2013-08-15 23:20:07.968304776 -0500
31600 @@ -0,0 +1,1015 @@
31601 +.class public Landroid/privacy/surrogate/PrivacyWifiManager;
31602 +.super Landroid/net/wifi/WifiManager;
31603 +.source "PrivacyWifiManager.java"
31606 +# static fields
31607 +.field private static final P_TAG:Ljava/lang/String; = "PrivacyWifiManager"
31610 +# instance fields
31611 +.field private context:Landroid/content/Context;
31613 +.field private pSetMan:Landroid/privacy/PrivacySettingsManager;
31616 +# direct methods
31617 +.method public constructor <init>(Landroid/content/Context;Landroid/net/wifi/IWifiManager;)V
31618 + .registers 5
31620 + invoke-direct {p0, p1, p2}, Landroid/net/wifi/WifiManager;-><init>(Landroid/content/Context;Landroid/net/wifi/IWifiManager;)V
31622 + iput-object p1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31624 + new-instance v0, Landroid/privacy/PrivacySettingsManager;
31626 + const-string/jumbo v1, "privacy"
31628 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
31630 + move-result-object v1
31632 + invoke-static {v1}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
31634 + move-result-object v1
31636 + invoke-direct {v0, p1, v1}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
31638 + iput-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31640 + return-void
31641 +.end method
31644 +# virtual methods
31645 +.method public getConfigFile()Ljava/lang/String;
31646 + .registers 9
31648 + const/4 v2, -0x1
31650 + const/4 v5, 0x0
31652 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31654 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31656 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31658 + move-result-object v1
31660 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31662 + move-result v3
31664 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31666 + move-result-object v7
31668 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31670 + if-eqz v0, :cond_31
31672 + if-eqz v7, :cond_31
31674 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
31676 + move-result v0
31678 + if-eqz v0, :cond_31
31680 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31682 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31684 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31686 + move-result-object v1
31688 + const/4 v3, 0x1
31690 + const-string/jumbo v4, "wifiInfo"
31692 + move-object v6, v5
31694 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31696 + const-string v0, ""
31698 + :goto_30
31699 + return-object v0
31701 + :cond_31
31702 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31704 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31706 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31708 + move-result-object v1
31710 + const/4 v3, 0x0
31712 + const-string/jumbo v4, "wifiInfo"
31714 + move-object v6, v5
31716 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31718 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->getConfigFile()Ljava/lang/String;
31720 + move-result-object v0
31722 + goto :goto_30
31723 +.end method
31725 +.method public getConfiguredNetworks()Ljava/util/List;
31726 + .registers 10
31727 + .annotation system Ldalvik/annotation/Signature;
31728 + value = {
31729 + "()",
31730 + "Ljava/util/List",
31731 + "<",
31732 + "Landroid/net/wifi/WifiConfiguration;",
31733 + ">;"
31735 + .end annotation
31737 + const/4 v2, -0x1
31739 + const/4 v5, 0x0
31741 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31743 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31745 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31747 + move-result-object v1
31749 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31751 + move-result v3
31753 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31755 + move-result-object v8
31757 + new-instance v7, Ljava/util/ArrayList;
31759 + invoke-direct {v7}, Ljava/util/ArrayList;-><init>()V
31761 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31763 + if-eqz v0, :cond_34
31765 + if-eqz v8, :cond_34
31767 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
31769 + move-result v0
31771 + if-eqz v0, :cond_34
31773 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31775 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31777 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31779 + move-result-object v1
31781 + const/4 v3, 0x1
31783 + const-string/jumbo v4, "wifiInfo"
31785 + move-object v6, v5
31787 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31789 + :goto_33
31790 + return-object v7
31792 + :cond_34
31793 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31795 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31797 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31799 + move-result-object v1
31801 + const/4 v3, 0x0
31803 + const-string/jumbo v4, "wifiInfo"
31805 + move-object v6, v5
31807 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31809 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->getConfiguredNetworks()Ljava/util/List;
31811 + move-result-object v7
31813 + goto :goto_33
31814 +.end method
31816 +.method public getConnectionInfo()Landroid/net/wifi/WifiInfo;
31817 + .registers 10
31819 + const/4 v3, 0x1
31821 + const/4 v2, -0x1
31823 + const/4 v5, 0x0
31825 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31827 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31829 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31831 + move-result-object v1
31833 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31835 + move-result v4
31837 + invoke-virtual {v0, v1, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31839 + move-result-object v8
31841 + new-instance v7, Landroid/net/wifi/WifiInfo;
31843 + invoke-direct {v7, v3}, Landroid/net/wifi/WifiInfo;-><init>(Z)V
31845 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31847 + if-eqz v0, :cond_34
31849 + if-eqz v8, :cond_34
31851 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
31853 + move-result v0
31855 + if-eqz v0, :cond_34
31857 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31859 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31861 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31863 + move-result-object v1
31865 + const-string/jumbo v4, "wifiInfo"
31867 + move-object v6, v5
31869 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31871 + :goto_33
31872 + return-object v7
31874 + :cond_34
31875 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31877 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31879 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31881 + move-result-object v1
31883 + const/4 v3, 0x0
31885 + const-string/jumbo v4, "wifiInfo"
31887 + move-object v6, v5
31889 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31891 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->getConnectionInfo()Landroid/net/wifi/WifiInfo;
31893 + move-result-object v7
31895 + goto :goto_33
31896 +.end method
31898 +.method public getDhcpInfo()Landroid/net/DhcpInfo;
31899 + .registers 9
31901 + const/4 v2, -0x1
31903 + const/4 v5, 0x0
31905 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31907 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31909 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31911 + move-result-object v1
31913 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31915 + move-result v3
31917 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31919 + move-result-object v7
31921 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31923 + if-eqz v0, :cond_34
31925 + if-eqz v7, :cond_34
31927 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
31929 + move-result v0
31931 + if-eqz v0, :cond_34
31933 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31935 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31937 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31939 + move-result-object v1
31941 + const/4 v3, 0x1
31943 + const-string/jumbo v4, "wifiInfo"
31945 + move-object v6, v5
31947 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31949 + new-instance v0, Landroid/net/DhcpInfo;
31951 + invoke-direct {v0}, Landroid/net/DhcpInfo;-><init>()V
31953 + :goto_33
31954 + return-object v0
31956 + :cond_34
31957 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31959 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31961 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31963 + move-result-object v1
31965 + const/4 v3, 0x0
31967 + const-string/jumbo v4, "wifiInfo"
31969 + move-object v6, v5
31971 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31973 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->getDhcpInfo()Landroid/net/DhcpInfo;
31975 + move-result-object v0
31977 + goto :goto_33
31978 +.end method
31980 +.method public getFrequencyBand()I
31981 + .registers 9
31983 + const/4 v2, -0x1
31985 + const/4 v5, 0x0
31987 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31989 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31991 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31993 + move-result-object v1
31995 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31997 + move-result v3
31999 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
32001 + move-result-object v7
32003 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32005 + if-eqz v0, :cond_2f
32007 + if-eqz v7, :cond_2f
32009 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
32011 + move-result v0
32013 + if-eqz v0, :cond_2f
32015 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32017 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
32019 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
32021 + move-result-object v1
32023 + const/4 v3, 0x1
32025 + const-string/jumbo v4, "wifiInfo"
32027 + move-object v6, v5
32029 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
32031 + :goto_2e
32032 + return v2
32034 + :cond_2f
32035 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32037 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
32039 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
32041 + move-result-object v1
32043 + const/4 v3, 0x0
32045 + const-string/jumbo v4, "wifiInfo"
32047 + move-object v6, v5
32049 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
32051 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->getFrequencyBand()I
32053 + move-result v2
32055 + goto :goto_2e
32056 +.end method
32058 +.method public getScanResults()Ljava/util/List;
32059 + .registers 10
32060 + .annotation system Ldalvik/annotation/Signature;
32061 + value = {
32062 + "()",
32063 + "Ljava/util/List",
32064 + "<",
32065 + "Landroid/net/wifi/ScanResult;",
32066 + ">;"
32068 + .end annotation
32070 + const/4 v2, -0x1
32072 + const/4 v5, 0x0
32074 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32076 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
32078 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
32080 + move-result-object v1
32082 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
32084 + move-result v3
32086 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
32088 + move-result-object v8
32090 + new-instance v7, Ljava/util/ArrayList;
32092 + invoke-direct {v7}, Ljava/util/ArrayList;-><init>()V
32094 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32096 + if-eqz v0, :cond_34
32098 + if-eqz v8, :cond_34
32100 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
32102 + move-result v0
32104 + if-eqz v0, :cond_34
32106 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32108 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
32110 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
32112 + move-result-object v1
32114 + const/4 v3, 0x1
32116 + const-string/jumbo v4, "wifiInfo"
32118 + move-object v6, v5
32120 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
32122 + :goto_33
32123 + return-object v7
32125 + :cond_34
32126 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32128 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
32130 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
32132 + move-result-object v1
32134 + const/4 v3, 0x0
32136 + const-string/jumbo v4, "wifiInfo"
32138 + move-object v6, v5
32140 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
32142 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->getScanResults()Ljava/util/List;
32144 + move-result-object v7
32146 + goto :goto_33
32147 +.end method
32149 +.method public getWifiApConfiguration()Landroid/net/wifi/WifiConfiguration;
32150 + .registers 9
32152 + const/4 v2, -0x1
32154 + const/4 v5, 0x0
32156 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32158 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
32160 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
32162 + move-result-object v1
32164 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
32166 + move-result v3
32168 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
32170 + move-result-object v7
32172 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32174 + if-eqz v0, :cond_34
32176 + if-eqz v7, :cond_34
32178 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
32180 + move-result v0
32182 + if-eqz v0, :cond_34
32184 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32186 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
32188 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
32190 + move-result-object v1
32192 + const/4 v3, 0x1
32194 + const-string/jumbo v4, "wifiInfo"
32196 + move-object v6, v5
32198 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
32200 + new-instance v0, Landroid/net/wifi/WifiConfiguration;
32202 + invoke-direct {v0}, Landroid/net/wifi/WifiConfiguration;-><init>()V
32204 + :goto_33
32205 + return-object v0
32207 + :cond_34
32208 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32210 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
32212 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
32214 + move-result-object v1
32216 + const/4 v3, 0x0
32218 + const-string/jumbo v4, "wifiInfo"
32220 + move-object v6, v5
32222 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
32224 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->getWifiApConfiguration()Landroid/net/wifi/WifiConfiguration;
32226 + move-result-object v0
32228 + goto :goto_33
32229 +.end method
32231 +.method public getWifiState()I
32232 + .registers 9
32234 + const/4 v3, 0x1
32236 + const/4 v2, -0x1
32238 + const/4 v5, 0x0
32240 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32242 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
32244 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
32246 + move-result-object v1
32248 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
32250 + move-result v4
32252 + invoke-virtual {v0, v1, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
32254 + move-result-object v7
32256 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32258 + if-eqz v0, :cond_30
32260 + if-eqz v7, :cond_30
32262 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getForceOnlineState()B
32264 + move-result v0
32266 + if-nez v0, :cond_30
32268 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32270 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
32272 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
32274 + move-result-object v1
32276 + const-string/jumbo v4, "wifiInfo"
32278 + move-object v6, v5
32280 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
32282 + const/4 v0, 0x3
32284 + :goto_2f
32285 + return v0
32287 + :cond_30
32288 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32290 + if-eqz v0, :cond_4d
32292 + if-eqz v7, :cond_4d
32294 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
32296 + move-result v0
32298 + if-eqz v0, :cond_4d
32300 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32302 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
32304 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
32306 + move-result-object v1
32308 + const-string/jumbo v4, "wifiInfo"
32310 + move-object v6, v5
32312 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
32314 + const/4 v0, 0x4
32316 + goto :goto_2f
32318 + :cond_4d
32319 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32321 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
32323 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
32325 + move-result-object v1
32327 + const/4 v3, 0x0
32329 + const-string/jumbo v4, "wifiInfo"
32331 + move-object v6, v5
32333 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
32335 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->getWifiState()I
32337 + move-result v0
32339 + goto :goto_2f
32340 +.end method
32342 +.method public isWifiEnabled()Z
32343 + .registers 10
32345 + const/4 v8, 0x0
32347 + const/4 v3, 0x1
32349 + const/4 v2, -0x1
32351 + const/4 v5, 0x0
32353 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32355 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
32357 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
32359 + move-result-object v1
32361 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
32363 + move-result v4
32365 + invoke-virtual {v0, v1, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
32367 + move-result-object v7
32369 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32371 + if-eqz v0, :cond_30
32373 + if-eqz v7, :cond_30
32375 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getForceOnlineState()B
32377 + move-result v0
32379 + if-nez v0, :cond_30
32381 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32383 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
32385 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
32387 + move-result-object v1
32389 + const-string/jumbo v4, "wifiInfo"
32391 + move-object v6, v5
32393 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
32395 + :goto_2f
32396 + return v3
32398 + :cond_30
32399 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32401 + if-eqz v0, :cond_4d
32403 + if-eqz v7, :cond_4d
32405 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
32407 + move-result v0
32409 + if-eqz v0, :cond_4d
32411 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32413 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
32415 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
32417 + move-result-object v1
32419 + const-string/jumbo v4, "wifiInfo"
32421 + move-object v6, v5
32423 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
32425 + move v3, v8
32427 + goto :goto_2f
32429 + :cond_4d
32430 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32432 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
32434 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
32436 + move-result-object v1
32438 + const-string/jumbo v4, "wifiInfo"
32440 + move v3, v8
32442 + move-object v6, v5
32444 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
32446 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->isWifiEnabled()Z
32448 + move-result v3
32450 + goto :goto_2f
32451 +.end method
32453 +.method public setWifiEnabled(Z)Z
32454 + .registers 11
32456 + const/4 v8, 0x0
32458 + const/4 v2, -0x1
32460 + const/4 v5, 0x0
32462 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32464 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
32466 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
32468 + move-result-object v1
32470 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
32472 + move-result v3
32474 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
32476 + move-result-object v7
32478 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32480 + if-eqz v0, :cond_31
32482 + if-eqz v7, :cond_31
32484 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getSwitchWifiStateSetting()B
32486 + move-result v0
32488 + if-eqz v0, :cond_31
32490 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32492 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
32494 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
32496 + move-result-object v1
32498 + const/4 v3, 0x1
32500 + const-string/jumbo v4, "switchWifiState"
32502 + move-object v6, v5
32504 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
32506 + move v0, v8
32508 + :goto_30
32509 + return v0
32511 + :cond_31
32512 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32514 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
32516 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
32518 + move-result-object v1
32520 + const-string/jumbo v4, "switchWifiState"
32522 + move v3, v8
32524 + move-object v6, v5
32526 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
32528 + invoke-super {p0, p1}, Landroid/net/wifi/WifiManager;->setWifiEnabled(Z)Z
32530 + move-result v0
32532 + goto :goto_30
32533 +.end method
32535 +.method public startScan()Z
32536 + .registers 10
32538 + const/4 v8, 0x0
32540 + const/4 v2, -0x1
32542 + const/4 v5, 0x0
32544 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32546 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
32548 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
32550 + move-result-object v1
32552 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
32554 + move-result v3
32556 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
32558 + move-result-object v7
32560 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32562 + if-eqz v0, :cond_31
32564 + if-eqz v7, :cond_31
32566 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
32568 + move-result v0
32570 + if-eqz v0, :cond_31
32572 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32574 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
32576 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
32578 + move-result-object v1
32580 + const/4 v3, 0x1
32582 + const-string/jumbo v4, "wifiInfo"
32584 + move-object v6, v5
32586 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
32588 + move v0, v8
32590 + :goto_30
32591 + return v0
32593 + :cond_31
32594 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32596 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
32598 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
32600 + move-result-object v1
32602 + const-string/jumbo v4, "wifiInfo"
32604 + move v3, v8
32606 + move-object v6, v5
32608 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
32610 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->startScan()Z
32612 + move-result v0
32614 + goto :goto_30
32615 +.end method
32616 diff -Npruw stock-framework/smali/android/provider/Settings$Secure.smali pdroid-framework/smali/android/provider/Settings$Secure.smali
32617 --- stock-framework/smali/android/provider/Settings$Secure.smali 2013-08-15 23:20:17.088304506 -0500
32618 +++ pdroid-framework/smali/android/provider/Settings$Secure.smali 2013-08-15 23:20:08.028304774 -0500
32619 @@ -223,6 +223,8 @@
32621 .field public static final PRIVACY_GUARD_DEFAULT:Ljava/lang/String; = "privacy_guard_default"
32623 +.field private static final PRIVACY_TAG:Ljava/lang/String; = "PM,SecureSettings"
32625 .field public static final RING_HOME_BUTTON_BEHAVIOR:Ljava/lang/String; = "ring_home_button_behavior"
32627 .field public static final RING_HOME_BUTTON_BEHAVIOR_ANSWER:I = 0x2
32628 @@ -448,6 +450,14 @@
32630 .field public static final WIMAX_ON:Ljava/lang/String; = "wimax_on"
32632 +.field private static context:Landroid/content/Context;
32634 +.field private static mPm:Landroid/content/pm/IPackageManager;
32636 +.field private static pSetMan:Landroid/privacy/PrivacySettingsManager;
32638 +.field private static privacyMode:Z
32640 .field private static sIsSystemProcess:Z
32642 .field private static sLockSettings:Lcom/android/internal/widget/ILockSettings;
32643 @@ -457,9 +467,11 @@
32645 # direct methods
32646 .method static constructor <clinit>()V
32647 - .registers 6
32648 + .registers 7
32650 + const/4 v6, 0x3
32652 - const/4 v5, 0x3
32653 + const/4 v5, 0x0
32655 const-string v0, "content://settings/secure"
32657 @@ -489,7 +501,7 @@
32659 new-instance v0, Ljava/util/HashSet;
32661 - invoke-direct {v0, v5}, Ljava/util/HashSet;-><init>(I)V
32662 + invoke-direct {v0, v6}, Ljava/util/HashSet;-><init>(I)V
32664 sput-object v0, Landroid/provider/Settings$Secure;->MOVED_TO_LOCK_SETTINGS:Ljava/util/HashSet;
32666 @@ -1219,15 +1231,15 @@
32668 invoke-virtual {v0, v1}, Ljava/util/HashSet;->add(Ljava/lang/Object;)Z
32670 + sput-boolean v5, Landroid/provider/Settings$Secure;->privacyMode:Z
32672 const/16 v0, 0x27
32674 new-array v0, v0, [Ljava/lang/String;
32676 - const/4 v1, 0x0
32678 - const-string v2, "bugreport_in_power_menu"
32679 + const-string v1, "bugreport_in_power_menu"
32681 - aput-object v2, v0, v1
32682 + aput-object v1, v0, v5
32684 const/4 v1, 0x1
32686 @@ -1243,7 +1255,7 @@
32688 const-string/jumbo v1, "parental_control_redirect_url"
32690 - aput-object v1, v0, v5
32691 + aput-object v1, v0, v6
32693 const/4 v1, 0x4
32695 @@ -1772,6 +1784,70 @@
32696 return-void
32697 .end method
32699 +.method private static getPackageName()[Ljava/lang/String;
32700 + .registers 5
32702 + :try_start_0
32703 + sget-object v3, Landroid/provider/Settings$Secure;->mPm:Landroid/content/pm/IPackageManager;
32705 + if-eqz v3, :cond_f
32707 + invoke-static {}, Landroid/os/Process;->myUid()I
32709 + move-result v2
32711 + sget-object v3, Landroid/provider/Settings$Secure;->mPm:Landroid/content/pm/IPackageManager;
32713 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
32715 + move-result-object v1
32717 + :goto_e
32718 + return-object v1
32720 + :cond_f
32721 + const-string/jumbo v3, "package"
32723 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
32725 + move-result-object v3
32727 + invoke-static {v3}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
32729 + move-result-object v3
32731 + sput-object v3, Landroid/provider/Settings$Secure;->mPm:Landroid/content/pm/IPackageManager;
32733 + invoke-static {}, Landroid/os/Process;->myUid()I
32735 + move-result v2
32737 + sget-object v3, Landroid/provider/Settings$Secure;->mPm:Landroid/content/pm/IPackageManager;
32739 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
32740 + :try_end_25
32741 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_25} :catch_27
32743 + move-result-object v1
32745 + goto :goto_e
32747 + :catch_27
32748 + move-exception v0
32750 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
32752 + const-string v3, "PM,SecureSettings"
32754 + const-string/jumbo v4, "something went wrong with getting package name"
32756 + invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
32758 + const/4 v1, 0x0
32760 + goto :goto_e
32761 +.end method
32763 .method public static getString(Landroid/content/ContentResolver;Ljava/lang/String;)Ljava/lang/String;
32764 .registers 3
32766 @@ -1787,152 +1863,392 @@
32767 .end method
32769 .method public static getStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)Ljava/lang/String;
32770 - .registers 6
32771 + .registers 23
32773 - sget-object v0, Landroid/provider/Settings$Secure;->MOVED_TO_GLOBAL:Ljava/util/HashSet;
32774 + sget-object v3, Landroid/provider/Settings$Secure;->MOVED_TO_GLOBAL:Ljava/util/HashSet;
32776 - invoke-virtual {v0, p1}, Ljava/util/HashSet;->contains(Ljava/lang/Object;)Z
32777 + move-object/from16 v0, p1
32779 - move-result v0
32780 + invoke-virtual {v3, v0}, Ljava/util/HashSet;->contains(Ljava/lang/Object;)Z
32782 - if-eqz v0, :cond_31
32783 + move-result v3
32785 - const-string v0, "Settings"
32786 + if-eqz v3, :cond_35
32788 - new-instance v1, Ljava/lang/StringBuilder;
32789 + const-string v3, "Settings"
32791 - invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
32792 + new-instance v4, Ljava/lang/StringBuilder;
32794 - const-string v2, "Setting "
32795 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
32797 - invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
32798 + const-string v5, "Setting "
32800 - move-result-object v1
32801 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
32803 - invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
32804 + move-result-object v4
32806 - move-result-object v1
32807 + move-object/from16 v0, p1
32809 - const-string v2, " has moved from android.provider.Settings.Secure"
32810 + invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
32812 - invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
32813 + move-result-object v4
32815 - move-result-object v1
32816 + const-string v5, " has moved from android.provider.Settings.Secure"
32818 - const-string v2, " to android.provider.Settings.Global."
32819 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
32821 - invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
32822 + move-result-object v4
32824 - move-result-object v1
32825 + const-string v5, " to android.provider.Settings.Global."
32827 - invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
32828 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
32830 - move-result-object v1
32831 + move-result-object v4
32833 - invoke-static {v0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
32834 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
32836 - invoke-static {p0, p1, p2}, Landroid/provider/Settings$Global;->getStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)Ljava/lang/String;
32837 + move-result-object v4
32839 - move-result-object v0
32840 + invoke-static {v3, v4}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
32842 - :goto_30
32843 - return-object v0
32844 + invoke-static/range {p0 .. p2}, Landroid/provider/Settings$Global;->getStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)Ljava/lang/String;
32846 - :cond_31
32847 - sget-object v0, Landroid/provider/Settings$Secure;->MOVED_TO_LOCK_SETTINGS:Ljava/util/HashSet;
32848 + move-result-object v8
32850 - invoke-virtual {v0, p1}, Ljava/util/HashSet;->contains(Ljava/lang/Object;)Z
32851 + :goto_34
32852 + return-object v8
32854 - move-result v0
32855 + :cond_35
32856 + sget-object v3, Landroid/provider/Settings$Secure;->MOVED_TO_LOCK_SETTINGS:Ljava/util/HashSet;
32858 - if-eqz v0, :cond_6f
32859 + move-object/from16 v0, p1
32861 - const-class v1, Landroid/provider/Settings$Secure;
32862 + invoke-virtual {v3, v0}, Ljava/util/HashSet;->contains(Ljava/lang/Object;)Z
32864 - monitor-enter v1
32865 + move-result v3
32867 - :try_start_3c
32868 - sget-object v0, Landroid/provider/Settings$Secure;->sLockSettings:Lcom/android/internal/widget/ILockSettings;
32869 + if-eqz v3, :cond_79
32871 - if-nez v0, :cond_57
32872 + const-class v4, Landroid/provider/Settings$Secure;
32874 - const-string v0, "lock_settings"
32875 + monitor-enter v4
32877 - invoke-static {v0}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
32878 + :try_start_42
32879 + sget-object v3, Landroid/provider/Settings$Secure;->sLockSettings:Lcom/android/internal/widget/ILockSettings;
32881 - move-result-object v0
32882 + if-nez v3, :cond_5d
32884 - invoke-static {v0}, Lcom/android/internal/widget/ILockSettings$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/widget/ILockSettings;
32885 + const-string v3, "lock_settings"
32887 - move-result-object v0
32888 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
32890 - sput-object v0, Landroid/provider/Settings$Secure;->sLockSettings:Lcom/android/internal/widget/ILockSettings;
32891 + move-result-object v3
32893 + invoke-static {v3}, Lcom/android/internal/widget/ILockSettings$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/widget/ILockSettings;
32895 + move-result-object v3
32897 + sput-object v3, Landroid/provider/Settings$Secure;->sLockSettings:Lcom/android/internal/widget/ILockSettings;
32899 invoke-static {}, Landroid/os/Process;->myUid()I
32901 - move-result v0
32902 + move-result v3
32904 - const/16 v2, 0x3e8
32905 + const/16 v5, 0x3e8
32907 - if-ne v0, v2, :cond_69
32908 + if-ne v3, v5, :cond_73
32910 - const/4 v0, 0x1
32911 + const/4 v3, 0x1
32913 - :goto_55
32914 - sput-boolean v0, Landroid/provider/Settings$Secure;->sIsSystemProcess:Z
32915 + :goto_5b
32916 + sput-boolean v3, Landroid/provider/Settings$Secure;->sIsSystemProcess:Z
32918 - :cond_57
32919 - monitor-exit v1
32920 - :try_end_58
32921 - .catchall {:try_start_3c .. :try_end_58} :catchall_6b
32922 + :cond_5d
32923 + monitor-exit v4
32924 + :try_end_5e
32925 + .catchall {:try_start_42 .. :try_end_5e} :catchall_75
32927 - sget-object v0, Landroid/provider/Settings$Secure;->sLockSettings:Lcom/android/internal/widget/ILockSettings;
32928 + sget-object v3, Landroid/provider/Settings$Secure;->sLockSettings:Lcom/android/internal/widget/ILockSettings;
32930 - if-eqz v0, :cond_6f
32931 + if-eqz v3, :cond_79
32933 - sget-boolean v0, Landroid/provider/Settings$Secure;->sIsSystemProcess:Z
32934 + sget-boolean v3, Landroid/provider/Settings$Secure;->sIsSystemProcess:Z
32936 - if-nez v0, :cond_6f
32937 + if-nez v3, :cond_79
32939 - :try_start_60
32940 - sget-object v0, Landroid/provider/Settings$Secure;->sLockSettings:Lcom/android/internal/widget/ILockSettings;
32941 + :try_start_66
32942 + sget-object v3, Landroid/provider/Settings$Secure;->sLockSettings:Lcom/android/internal/widget/ILockSettings;
32944 - const-string v1, "0"
32945 + const-string v4, "0"
32947 - invoke-interface {v0, p1, v1, p2}, Lcom/android/internal/widget/ILockSettings;->getString(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;
32948 - :try_end_67
32949 - .catch Landroid/os/RemoteException; {:try_start_60 .. :try_end_67} :catch_6e
32950 + move-object/from16 v0, p1
32952 - move-result-object v0
32953 + move/from16 v1, p2
32955 - goto :goto_30
32956 + invoke-interface {v3, v0, v4, v1}, Lcom/android/internal/widget/ILockSettings;->getString(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;
32957 + :try_end_71
32958 + .catch Landroid/os/RemoteException; {:try_start_66 .. :try_end_71} :catch_78
32960 - :cond_69
32961 - const/4 v0, 0x0
32962 + move-result-object v8
32964 - goto :goto_55
32965 + goto :goto_34
32967 - :catchall_6b
32968 - move-exception v0
32969 + :cond_73
32970 + const/4 v3, 0x0
32972 - :try_start_6c
32973 - monitor-exit v1
32974 - :try_end_6d
32975 - .catchall {:try_start_6c .. :try_end_6d} :catchall_6b
32976 + goto :goto_5b
32978 - throw v0
32979 + :catchall_75
32980 + move-exception v3
32982 - :catch_6e
32983 - move-exception v0
32984 + :try_start_76
32985 + monitor-exit v4
32986 + :try_end_77
32987 + .catchall {:try_start_76 .. :try_end_77} :catchall_75
32989 - :cond_6f
32990 - sget-object v0, Landroid/provider/Settings$Secure;->sNameValueCache:Landroid/provider/Settings$NameValueCache;
32991 + throw v3
32993 - invoke-virtual {v0, p0, p1, p2}, Landroid/provider/Settings$NameValueCache;->getStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)Ljava/lang/String;
32994 + :catch_78
32995 + move-exception v3
32997 - move-result-object v0
32998 + :cond_79
32999 + const-string v3, "android_id"
33001 + move-object/from16 v0, p1
33003 + invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
33005 + move-result v3
33007 + if-eqz v3, :cond_f7
33009 + invoke-static {}, Landroid/provider/Settings$Secure;->initiate()V
33011 + :try_start_86
33012 + sget-object v3, Landroid/provider/Settings$Secure;->pSetMan:Landroid/privacy/PrivacySettingsManager;
33014 + if-nez v3, :cond_9e
33016 + new-instance v3, Landroid/privacy/PrivacySettingsManager;
33018 + sget-object v4, Landroid/provider/Settings$Secure;->context:Landroid/content/Context;
33020 + const-string/jumbo v5, "privacy"
33022 + invoke-static {v5}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
33024 + move-result-object v5
33026 + invoke-static {v5}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
33028 + move-result-object v5
33030 + invoke-direct {v3, v4, v5}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
33032 + sput-object v3, Landroid/provider/Settings$Secure;->pSetMan:Landroid/privacy/PrivacySettingsManager;
33034 + :cond_9e
33035 + sget-object v3, Landroid/provider/Settings$Secure;->mPm:Landroid/content/pm/IPackageManager;
33037 + if-nez v3, :cond_af
33039 + const-string/jumbo v3, "package"
33041 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
33043 + move-result-object v3
33045 + invoke-static {v3}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
33047 + move-result-object v3
33049 + sput-object v3, Landroid/provider/Settings$Secure;->mPm:Landroid/content/pm/IPackageManager;
33051 + :cond_af
33052 + const/16 v19, 0x0
33054 + invoke-static {}, Landroid/provider/Settings$Secure;->getPackageName()[Ljava/lang/String;
33056 + move-result-object v18
33058 + if-eqz v18, :cond_13c
33060 + move-object/from16 v0, v18
33062 + array-length v3, v0
33064 + if-lez v3, :cond_13c
33066 - goto :goto_30
33067 + const/16 v17, 0x0
33069 + :goto_be
33070 + move-object/from16 v0, v18
33072 + array-length v3, v0
33074 + move/from16 v0, v17
33076 + if-ge v0, v3, :cond_f7
33078 + sget-object v3, Landroid/provider/Settings$Secure;->pSetMan:Landroid/privacy/PrivacySettingsManager;
33080 + aget-object v4, v18, v17
33082 + invoke-virtual {v3, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
33084 + move-result-object v19
33086 + if-eqz v19, :cond_11c
33088 + invoke-virtual/range {v19 .. v19}, Landroid/privacy/PrivacySettings;->getAndroidIdSetting()B
33090 + move-result v3
33092 + if-eqz v3, :cond_11c
33094 + invoke-virtual/range {v19 .. v19}, Landroid/privacy/PrivacySettings;->getAndroidID()Ljava/lang/String;
33096 + move-result-object v8
33098 + if-eqz v8, :cond_105
33100 + sget-object v3, Landroid/provider/Settings$Secure;->pSetMan:Landroid/privacy/PrivacySettingsManager;
33102 + aget-object v4, v18, v17
33104 + const/4 v5, 0x0
33106 + invoke-virtual/range {v19 .. v19}, Landroid/privacy/PrivacySettings;->getAndroidIdSetting()B
33108 + move-result v6
33110 + const-string v7, "android_id"
33112 + const/4 v9, 0x0
33114 + invoke-virtual/range {v3 .. v9}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
33115 + :try_end_ea
33116 + .catch Ljava/lang/Exception; {:try_start_86 .. :try_end_ea} :catch_ec
33118 + goto/16 :goto_34
33120 + :catch_ec
33121 + move-exception v16
33123 + invoke-virtual/range {v16 .. v16}, Ljava/lang/Exception;->printStackTrace()V
33125 + const-string v3, "PM,SecureSettings"
33127 + const-string v4, "Got exception in getString()"
33129 + invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
33131 + :cond_f7
33132 + :goto_f7
33133 + sget-object v3, Landroid/provider/Settings$Secure;->sNameValueCache:Landroid/provider/Settings$NameValueCache;
33135 + move-object/from16 v0, p0
33137 + move-object/from16 v1, p1
33139 + move/from16 v2, p2
33141 + invoke-virtual {v3, v0, v1, v2}, Landroid/provider/Settings$NameValueCache;->getStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)Ljava/lang/String;
33143 + move-result-object v8
33145 + goto/16 :goto_34
33147 + :cond_105
33148 + :try_start_105
33149 + sget-object v9, Landroid/provider/Settings$Secure;->pSetMan:Landroid/privacy/PrivacySettingsManager;
33151 + aget-object v10, v18, v17
33153 + const/4 v11, 0x0
33155 + invoke-virtual/range {v19 .. v19}, Landroid/privacy/PrivacySettings;->getAndroidIdSetting()B
33157 + move-result v12
33159 + const-string v13, "android_id"
33161 + const-string/jumbo v14, "q4a5w896ay21dr46"
33163 + const/4 v15, 0x0
33165 + invoke-virtual/range {v9 .. v15}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
33167 + const-string/jumbo v8, "q4a5w896ay21dr46"
33169 + goto/16 :goto_34
33171 + :cond_11c
33172 + move-object/from16 v0, v18
33174 + array-length v3, v0
33176 + add-int/lit8 v3, v3, -0x1
33178 + move/from16 v0, v17
33180 + if-ne v0, v3, :cond_137
33182 + sget-object v9, Landroid/provider/Settings$Secure;->pSetMan:Landroid/privacy/PrivacySettingsManager;
33184 + move-object/from16 v0, v18
33186 + array-length v3, v0
33188 + add-int/lit8 v3, v3, -0x1
33190 + aget-object v10, v18, v3
33192 + const/4 v11, 0x0
33194 + const/4 v12, 0x0
33196 + const-string v13, "android_id"
33198 + const/4 v14, 0x0
33200 + const/4 v15, 0x0
33202 + invoke-virtual/range {v9 .. v15}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
33204 + :cond_137
33205 + const/16 v19, 0x0
33207 + add-int/lit8 v17, v17, 0x1
33209 + goto :goto_be
33211 + :cond_13c
33212 + sget-object v9, Landroid/provider/Settings$Secure;->pSetMan:Landroid/privacy/PrivacySettingsManager;
33214 + move-object/from16 v0, v18
33216 + array-length v3, v0
33218 + add-int/lit8 v3, v3, -0x1
33220 + aget-object v10, v18, v3
33222 + const/4 v11, 0x0
33224 + const/4 v12, 0x0
33226 + const-string v13, "android_id"
33228 + const/4 v14, 0x0
33230 + const/4 v15, 0x0
33232 + invoke-virtual/range {v9 .. v15}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
33233 + :try_end_14e
33234 + .catch Ljava/lang/Exception; {:try_start_105 .. :try_end_14e} :catch_ec
33236 + goto :goto_f7
33237 .end method
33239 .method public static getUriFor(Ljava/lang/String;)Landroid/net/Uri;
33240 @@ -1999,6 +2315,71 @@
33241 goto :goto_32
33242 .end method
33244 +.method private static initiate()V
33245 + .registers 4
33247 + const/4 v1, 0x0
33249 + :try_start_1
33250 + sput-object v1, Landroid/provider/Settings$Secure;->context:Landroid/content/Context;
33252 + new-instance v1, Landroid/privacy/PrivacySettingsManager;
33254 + sget-object v2, Landroid/provider/Settings$Secure;->context:Landroid/content/Context;
33256 + const-string/jumbo v3, "privacy"
33258 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
33260 + move-result-object v3
33262 + invoke-static {v3}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
33264 + move-result-object v3
33266 + invoke-direct {v1, v2, v3}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
33268 + sput-object v1, Landroid/provider/Settings$Secure;->pSetMan:Landroid/privacy/PrivacySettingsManager;
33270 + const-string/jumbo v1, "package"
33272 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
33274 + move-result-object v1
33276 + invoke-static {v1}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
33278 + move-result-object v1
33280 + sput-object v1, Landroid/provider/Settings$Secure;->mPm:Landroid/content/pm/IPackageManager;
33282 + const/4 v1, 0x1
33284 + sput-boolean v1, Landroid/provider/Settings$Secure;->privacyMode:Z
33285 + :try_end_27
33286 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_27} :catch_28
33288 + :goto_27
33289 + return-void
33291 + :catch_28
33292 + move-exception v0
33294 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
33296 + const-string v1, "PM,SecureSettings"
33298 + const-string v2, "Something went wrong with initalize variables"
33300 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
33302 + const/4 v1, 0x0
33304 + sput-boolean v1, Landroid/provider/Settings$Secure;->privacyMode:Z
33306 + goto :goto_27
33307 +.end method
33309 .method public static final isLocationProviderEnabled(Landroid/content/ContentResolver;Ljava/lang/String;)Z
33310 .registers 3
33312 diff -Npruw stock-framework/smali/android/speech/srec/MicrophoneInputStream.smali pdroid-framework/smali/android/speech/srec/MicrophoneInputStream.smali
33313 --- stock-framework/smali/android/speech/srec/MicrophoneInputStream.smali 2013-08-15 23:20:17.184304503 -0500
33314 +++ pdroid-framework/smali/android/speech/srec/MicrophoneInputStream.smali 2013-08-15 23:20:08.156304770 -0500
33315 @@ -4,14 +4,30 @@
33318 # static fields
33319 +.field private static final GOT_ERROR:I = -0x3
33321 +.field private static final IS_ALLOWED:I = -0x1
33323 +.field private static final IS_NOT_ALLOWED:I = -0x2
33325 +.field private static final PRIVACY_TAG:Ljava/lang/String; = "PM,MicrophoneInputStream"
33327 .field private static final TAG:Ljava/lang/String; = "MicrophoneInputStream"
33330 # instance fields
33331 +.field private context:Landroid/content/Context;
33333 .field private mAudioRecord:I
33335 .field private mOneByte:[B
33337 +.field private mPm:Landroid/content/pm/IPackageManager;
33339 +.field private pSetMan:Landroid/privacy/PrivacySettingsManager;
33341 +.field private privacyMode:Z
33344 # direct methods
33345 .method static constructor <clinit>()V
33346 @@ -25,79 +41,167 @@
33347 .end method
33349 .method public constructor <init>(II)V
33350 - .registers 7
33351 + .registers 14
33352 .annotation system Ldalvik/annotation/Throws;
33353 value = {
33354 Ljava/io/IOException;
33356 .end annotation
33358 + const/4 v5, 0x0
33360 + const/4 v3, 0x1
33362 + const/4 v2, 0x0
33364 invoke-direct {p0}, Ljava/io/InputStream;-><init>()V
33366 - const/4 v1, 0x0
33367 + iput-boolean v2, p0, Landroid/speech/srec/MicrophoneInputStream;->privacyMode:Z
33369 - iput v1, p0, Landroid/speech/srec/MicrophoneInputStream;->mAudioRecord:I
33370 + iput v2, p0, Landroid/speech/srec/MicrophoneInputStream;->mAudioRecord:I
33372 - const/4 v1, 0x1
33373 + new-array v0, v3, [B
33375 - new-array v1, v1, [B
33376 + iput-object v0, p0, Landroid/speech/srec/MicrophoneInputStream;->mOneByte:[B
33378 - iput-object v1, p0, Landroid/speech/srec/MicrophoneInputStream;->mOneByte:[B
33379 + iget-boolean v0, p0, Landroid/speech/srec/MicrophoneInputStream;->privacyMode:Z
33381 - invoke-static {p1, p2}, Landroid/speech/srec/MicrophoneInputStream;->AudioRecordNew(II)I
33382 + if-nez v0, :cond_15
33384 + invoke-direct {p0}, Landroid/speech/srec/MicrophoneInputStream;->initiate()V
33386 + :cond_15
33387 + invoke-direct {p0}, Landroid/speech/srec/MicrophoneInputStream;->checkIfPackagesAllowed()I
33389 + move-result v0
33391 + const/4 v1, -0x2
33393 + if-ne v0, v1, :cond_43
33395 + invoke-direct {p0, v2}, Landroid/speech/srec/MicrophoneInputStream;->dataAccess(Z)V
33397 + invoke-direct {p0}, Landroid/speech/srec/MicrophoneInputStream;->getPackageName()[Ljava/lang/String;
33399 + move-result-object v7
33401 + if-eqz v7, :cond_3b
33403 + iget-object v0, p0, Landroid/speech/srec/MicrophoneInputStream;->pSetMan:Landroid/privacy/PrivacySettingsManager;
33405 + aget-object v1, v7, v2
33407 + const-string/jumbo v4, "recordAudio"
33409 - move-result v1
33410 + iget-object v6, p0, Landroid/speech/srec/MicrophoneInputStream;->pSetMan:Landroid/privacy/PrivacySettingsManager;
33412 - iput v1, p0, Landroid/speech/srec/MicrophoneInputStream;->mAudioRecord:I
33413 + aget-object v9, v7, v2
33415 - iget v1, p0, Landroid/speech/srec/MicrophoneInputStream;->mAudioRecord:I
33416 + invoke-static {}, Landroid/os/Process;->myUid()I
33418 - if-nez v1, :cond_1d
33419 + move-result v10
33421 - new-instance v1, Ljava/io/IOException;
33422 + invoke-virtual {v6, v9, v10}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
33424 - const-string v2, "AudioRecord constructor failed - busy?"
33425 + move-result-object v6
33427 - invoke-direct {v1, v2}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
33428 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
33430 - throw v1
33431 + :cond_3b
33432 + new-instance v0, Ljava/io/IOException;
33434 - :cond_1d
33435 - iget v1, p0, Landroid/speech/srec/MicrophoneInputStream;->mAudioRecord:I
33436 + const-string v1, "AudioRecord constructor failed - busy?"
33438 - invoke-static {v1}, Landroid/speech/srec/MicrophoneInputStream;->AudioRecordStart(I)I
33439 + invoke-direct {v0, v1}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
33441 + throw v0
33443 + :cond_43
33444 + invoke-direct {p0, v3}, Landroid/speech/srec/MicrophoneInputStream;->dataAccess(Z)V
33446 + invoke-direct {p0}, Landroid/speech/srec/MicrophoneInputStream;->getPackageName()[Ljava/lang/String;
33448 + move-result-object v7
33450 + if-eqz v7, :cond_63
33452 + iget-object v0, p0, Landroid/speech/srec/MicrophoneInputStream;->pSetMan:Landroid/privacy/PrivacySettingsManager;
33454 + aget-object v1, v7, v2
33456 + const-string/jumbo v4, "recordAudio"
33458 + iget-object v3, p0, Landroid/speech/srec/MicrophoneInputStream;->pSetMan:Landroid/privacy/PrivacySettingsManager;
33460 + aget-object v6, v7, v2
33462 + invoke-static {}, Landroid/os/Process;->myUid()I
33464 + move-result v9
33466 + invoke-virtual {v3, v6, v9}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
33468 + move-result-object v6
33470 + move v3, v2
33472 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
33474 + :cond_63
33475 + invoke-static {p1, p2}, Landroid/speech/srec/MicrophoneInputStream;->AudioRecordNew(II)I
33477 move-result v0
33479 - if-eqz v0, :cond_41
33480 + iput v0, p0, Landroid/speech/srec/MicrophoneInputStream;->mAudioRecord:I
33482 + iget v0, p0, Landroid/speech/srec/MicrophoneInputStream;->mAudioRecord:I
33484 + if-nez v0, :cond_75
33486 + new-instance v0, Ljava/io/IOException;
33488 + const-string v1, "AudioRecord constructor failed - busy?"
33490 + invoke-direct {v0, v1}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
33492 + throw v0
33494 + :cond_75
33495 + iget v0, p0, Landroid/speech/srec/MicrophoneInputStream;->mAudioRecord:I
33497 + invoke-static {v0}, Landroid/speech/srec/MicrophoneInputStream;->AudioRecordStart(I)I
33499 + move-result v8
33501 + if-eqz v8, :cond_99
33503 invoke-virtual {p0}, Landroid/speech/srec/MicrophoneInputStream;->close()V
33505 - new-instance v1, Ljava/io/IOException;
33506 + new-instance v0, Ljava/io/IOException;
33508 - new-instance v2, Ljava/lang/StringBuilder;
33509 + new-instance v1, Ljava/lang/StringBuilder;
33511 - invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
33512 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
33514 - const-string v3, "AudioRecord start failed: "
33515 + const-string v2, "AudioRecord start failed: "
33517 - invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
33518 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
33520 - move-result-object v2
33521 + move-result-object v1
33523 - invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
33524 + invoke-virtual {v1, v8}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
33526 - move-result-object v2
33527 + move-result-object v1
33529 - invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
33530 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
33532 - move-result-object v2
33533 + move-result-object v1
33535 - invoke-direct {v1, v2}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
33536 + invoke-direct {v0, v1}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
33538 - throw v1
33539 + throw v0
33541 - :cond_41
33542 + :cond_99
33543 return-void
33544 .end method
33546 @@ -131,6 +235,334 @@
33547 .end annotation
33548 .end method
33550 +.method private checkIfPackagesAllowed()I
33551 + .registers 9
33553 + const/4 v5, -0x3
33555 + :try_start_1
33556 + iget-object v6, p0, Landroid/speech/srec/MicrophoneInputStream;->pSetMan:Landroid/privacy/PrivacySettingsManager;
33558 + if-eqz v6, :cond_41
33560 + const/4 v2, 0x0
33562 + invoke-direct {p0}, Landroid/speech/srec/MicrophoneInputStream;->getPackageName()[Ljava/lang/String;
33564 + move-result-object v3
33566 + invoke-static {}, Landroid/os/Process;->myUid()I
33568 + move-result v4
33570 + if-eqz v3, :cond_2c
33572 + const/4 v1, 0x0
33574 + :goto_11
33575 + array-length v6, v3
33577 + if-ge v1, v6, :cond_2a
33579 + iget-object v6, p0, Landroid/speech/srec/MicrophoneInputStream;->pSetMan:Landroid/privacy/PrivacySettingsManager;
33581 + aget-object v7, v3, v1
33583 + invoke-virtual {v6, v7, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
33585 + move-result-object v2
33587 + if-eqz v2, :cond_26
33589 + invoke-virtual {v2}, Landroid/privacy/PrivacySettings;->getRecordAudioSetting()B
33591 + move-result v6
33593 + if-eqz v6, :cond_26
33595 + const/4 v5, -0x2
33597 + :goto_25
33598 + return v5
33600 + :cond_26
33601 + const/4 v2, 0x0
33603 + add-int/lit8 v1, v1, 0x1
33605 + goto :goto_11
33607 + :cond_2a
33608 + const/4 v5, -0x1
33610 + goto :goto_25
33612 + :cond_2c
33613 + const-string v6, "PM,MicrophoneInputStream"
33615 + const-string/jumbo v7, "return GOT_ERROR, because package_names are NULL"
33617 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
33618 + :try_end_34
33619 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_34} :catch_35
33621 + goto :goto_25
33623 + :catch_35
33624 + move-exception v0
33626 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
33628 + const-string v6, "PM,MicrophoneInputStream"
33630 + const-string v7, "Got exception in checkIfPackagesAllowed"
33632 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
33634 + goto :goto_25
33636 + :cond_41
33637 + :try_start_41
33638 + const-string v6, "PM,MicrophoneInputStream"
33640 + const-string/jumbo v7, "return GOT_ERROR, because pSetMan is NULL"
33642 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
33643 + :try_end_49
33644 + .catch Ljava/lang/Exception; {:try_start_41 .. :try_end_49} :catch_35
33646 + goto :goto_25
33647 +.end method
33649 +.method private dataAccess(Z)V
33650 + .registers 7
33652 + invoke-direct {p0}, Landroid/speech/srec/MicrophoneInputStream;->getPackageName()[Ljava/lang/String;
33654 + move-result-object v1
33656 + if-eqz p1, :cond_2f
33658 + if-eqz v1, :cond_2f
33660 + const/4 v0, 0x0
33662 + :goto_9
33663 + array-length v2, v1
33665 + if-ge v0, v2, :cond_58
33667 + const-string v2, "PM,MicrophoneInputStream"
33669 + new-instance v3, Ljava/lang/StringBuilder;
33671 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
33673 + const-string v4, "Allowed Package: -"
33675 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
33677 + move-result-object v3
33679 + aget-object v4, v1, v0
33681 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
33683 + move-result-object v3
33685 + const-string v4, "- accessing microphone."
33687 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
33689 + move-result-object v3
33691 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
33693 + move-result-object v3
33695 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
33697 + add-int/lit8 v0, v0, 0x1
33699 + goto :goto_9
33701 + :cond_2f
33702 + if-eqz v1, :cond_58
33704 + const/4 v0, 0x0
33706 + :goto_32
33707 + array-length v2, v1
33709 + if-ge v0, v2, :cond_58
33711 + const-string v2, "PM,MicrophoneInputStream"
33713 + new-instance v3, Ljava/lang/StringBuilder;
33715 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
33717 + const-string v4, "Blocked Package: -"
33719 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
33721 + move-result-object v3
33723 + aget-object v4, v1, v0
33725 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
33727 + move-result-object v3
33729 + const-string v4, "- accessing microphone."
33731 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
33733 + move-result-object v3
33735 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
33737 + move-result-object v3
33739 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
33741 + add-int/lit8 v0, v0, 0x1
33743 + goto :goto_32
33745 + :cond_58
33746 + return-void
33747 +.end method
33749 +.method private getPackageName()[Ljava/lang/String;
33750 + .registers 6
33752 + :try_start_0
33753 + iget-object v3, p0, Landroid/speech/srec/MicrophoneInputStream;->mPm:Landroid/content/pm/IPackageManager;
33755 + if-eqz v3, :cond_f
33757 + invoke-static {}, Landroid/os/Process;->myUid()I
33759 + move-result v2
33761 + iget-object v3, p0, Landroid/speech/srec/MicrophoneInputStream;->mPm:Landroid/content/pm/IPackageManager;
33763 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
33765 + move-result-object v1
33767 + :goto_e
33768 + return-object v1
33770 + :cond_f
33771 + const-string/jumbo v3, "package"
33773 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
33775 + move-result-object v3
33777 + invoke-static {v3}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
33779 + move-result-object v3
33781 + iput-object v3, p0, Landroid/speech/srec/MicrophoneInputStream;->mPm:Landroid/content/pm/IPackageManager;
33783 + invoke-static {}, Landroid/os/Process;->myUid()I
33785 + move-result v2
33787 + iget-object v3, p0, Landroid/speech/srec/MicrophoneInputStream;->mPm:Landroid/content/pm/IPackageManager;
33789 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
33790 + :try_end_25
33791 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_25} :catch_27
33793 + move-result-object v1
33795 + goto :goto_e
33797 + :catch_27
33798 + move-exception v0
33800 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
33802 + const-string v3, "PM,MicrophoneInputStream"
33804 + const-string/jumbo v4, "something went wrong with getting package name"
33806 + invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
33808 + const/4 v1, 0x0
33810 + goto :goto_e
33811 +.end method
33813 +.method private initiate()V
33814 + .registers 5
33816 + const/4 v1, 0x0
33818 + :try_start_1
33819 + iput-object v1, p0, Landroid/speech/srec/MicrophoneInputStream;->context:Landroid/content/Context;
33821 + new-instance v1, Landroid/privacy/PrivacySettingsManager;
33823 + iget-object v2, p0, Landroid/speech/srec/MicrophoneInputStream;->context:Landroid/content/Context;
33825 + const-string/jumbo v3, "privacy"
33827 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
33829 + move-result-object v3
33831 + invoke-static {v3}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
33833 + move-result-object v3
33835 + invoke-direct {v1, v2, v3}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
33837 + iput-object v1, p0, Landroid/speech/srec/MicrophoneInputStream;->pSetMan:Landroid/privacy/PrivacySettingsManager;
33839 + const-string/jumbo v1, "package"
33841 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
33843 + move-result-object v1
33845 + invoke-static {v1}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
33847 + move-result-object v1
33849 + iput-object v1, p0, Landroid/speech/srec/MicrophoneInputStream;->mPm:Landroid/content/pm/IPackageManager;
33851 + const/4 v1, 0x1
33853 + iput-boolean v1, p0, Landroid/speech/srec/MicrophoneInputStream;->privacyMode:Z
33854 + :try_end_27
33855 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_27} :catch_28
33857 + :goto_27
33858 + return-void
33860 + :catch_28
33861 + move-exception v0
33863 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
33865 + const-string v1, "PM,MicrophoneInputStream"
33867 + const-string v2, "Something went wrong with initalize variables"
33869 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
33871 + const/4 v1, 0x0
33873 + iput-boolean v1, p0, Landroid/speech/srec/MicrophoneInputStream;->privacyMode:Z
33875 + goto :goto_27
33876 +.end method
33879 # virtual methods
33880 .method public close()V
33881 diff -Npruw stock-framework/smali/android/telephony/PhoneStateListener$1.smali pdroid-framework/smali/android/telephony/PhoneStateListener$1.smali
33882 --- stock-framework/smali/android/telephony/PhoneStateListener$1.smali 2013-08-15 23:20:17.224304502 -0500
33883 +++ pdroid-framework/smali/android/telephony/PhoneStateListener$1.smali 2013-08-15 23:20:08.200304769 -0500
33884 @@ -64,23 +64,196 @@
33885 .end method
33887 .method public onCallStateChanged(ILjava/lang/String;)V
33888 - .registers 6
33889 + .registers 19
33891 - iget-object v0, p0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33892 + move-object/from16 v0, p0
33894 - iget-object v0, v0, Landroid/telephony/PhoneStateListener;->mHandler:Landroid/os/Handler;
33895 + iget-object v3, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33897 - const/16 v1, 0x20
33898 + #getter for: Landroid/telephony/PhoneStateListener;->context:Landroid/content/Context;
33899 + invoke-static {v3}, Landroid/telephony/PhoneStateListener;->access$000(Landroid/telephony/PhoneStateListener;)Landroid/content/Context;
33901 - const/4 v2, 0x0
33902 + move-result-object v3
33904 - invoke-static {v0, v1, p1, v2, p2}, Landroid/os/Message;->obtain(Landroid/os/Handler;IIILjava/lang/Object;)Landroid/os/Message;
33905 + if-eqz v3, :cond_99
33907 - move-result-object v0
33908 + if-eqz p2, :cond_99
33910 - invoke-virtual {v0}, Landroid/os/Message;->sendToTarget()V
33911 + invoke-virtual/range {p2 .. p2}, Ljava/lang/String;->isEmpty()Z
33913 + move-result v3
33915 + if-nez v3, :cond_99
33917 + move-object/from16 v0, p0
33919 + iget-object v3, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33921 + #getter for: Landroid/telephony/PhoneStateListener;->context:Landroid/content/Context;
33922 + invoke-static {v3}, Landroid/telephony/PhoneStateListener;->access$000(Landroid/telephony/PhoneStateListener;)Landroid/content/Context;
33924 + move-result-object v3
33926 + const-string/jumbo v4, "privacy"
33928 + invoke-virtual {v3, v4}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
33930 + move-result-object v2
33932 + check-cast v2, Landroid/privacy/PrivacySettingsManager;
33934 + move-object/from16 v0, p0
33936 + iget-object v3, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33938 + #getter for: Landroid/telephony/PhoneStateListener;->packageName:Ljava/lang/String;
33939 + invoke-static {v3}, Landroid/telephony/PhoneStateListener;->access$100(Landroid/telephony/PhoneStateListener;)Ljava/lang/String;
33941 + move-result-object v3
33943 + move-object/from16 v0, p0
33945 + iget-object v4, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33947 + #getter for: Landroid/telephony/PhoneStateListener;->uid:I
33948 + invoke-static {v4}, Landroid/telephony/PhoneStateListener;->access$200(Landroid/telephony/PhoneStateListener;)I
33950 + move-result v4
33952 + invoke-virtual {v2, v3, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
33954 + move-result-object v8
33956 + if-eqz v8, :cond_6a
33958 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getIncomingCallsSetting()B
33960 + move-result v3
33962 + if-eqz v3, :cond_6a
33964 + const-string v7, ""
33966 + move-object/from16 v0, p0
33968 + iget-object v3, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33970 + iget-object v3, v3, Landroid/telephony/PhoneStateListener;->mHandler:Landroid/os/Handler;
33972 + const/16 v4, 0x20
33974 + const/4 v5, 0x0
33976 + move/from16 v0, p1
33978 + invoke-static {v3, v4, v0, v5, v7}, Landroid/os/Message;->obtain(Landroid/os/Handler;IIILjava/lang/Object;)Landroid/os/Message;
33980 + move-result-object v3
33982 + invoke-virtual {v3}, Landroid/os/Message;->sendToTarget()V
33984 + move-object/from16 v0, p0
33986 + iget-object v3, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33988 + #getter for: Landroid/telephony/PhoneStateListener;->packageName:Ljava/lang/String;
33989 + invoke-static {v3}, Landroid/telephony/PhoneStateListener;->access$100(Landroid/telephony/PhoneStateListener;)Ljava/lang/String;
33991 + move-result-object v3
33993 + move-object/from16 v0, p0
33995 + iget-object v4, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33997 + #getter for: Landroid/telephony/PhoneStateListener;->uid:I
33998 + invoke-static {v4}, Landroid/telephony/PhoneStateListener;->access$200(Landroid/telephony/PhoneStateListener;)I
34000 + move-result v4
34002 + const/4 v5, 0x1
34004 + const-string v6, "incomingCall"
34006 + invoke-virtual/range {v2 .. v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
34008 + :goto_69
34009 return-void
34011 + :cond_6a
34012 + move-object/from16 v0, p0
34014 + iget-object v3, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
34016 + iget-object v3, v3, Landroid/telephony/PhoneStateListener;->mHandler:Landroid/os/Handler;
34018 + const/16 v4, 0x20
34020 + const/4 v5, 0x0
34022 + move/from16 v0, p1
34024 + move-object/from16 v1, p2
34026 + invoke-static {v3, v4, v0, v5, v1}, Landroid/os/Message;->obtain(Landroid/os/Handler;IIILjava/lang/Object;)Landroid/os/Message;
34028 + move-result-object v3
34030 + invoke-virtual {v3}, Landroid/os/Message;->sendToTarget()V
34032 + move-object/from16 v0, p0
34034 + iget-object v3, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
34036 + #getter for: Landroid/telephony/PhoneStateListener;->packageName:Ljava/lang/String;
34037 + invoke-static {v3}, Landroid/telephony/PhoneStateListener;->access$100(Landroid/telephony/PhoneStateListener;)Ljava/lang/String;
34039 + move-result-object v10
34041 + move-object/from16 v0, p0
34043 + iget-object v3, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
34045 + #getter for: Landroid/telephony/PhoneStateListener;->uid:I
34046 + invoke-static {v3}, Landroid/telephony/PhoneStateListener;->access$200(Landroid/telephony/PhoneStateListener;)I
34048 + move-result v11
34050 + const/4 v12, 0x0
34052 + const-string v13, "incomingCall"
34054 + move-object v9, v2
34056 + move-object/from16 v14, p2
34058 + move-object v15, v8
34060 + invoke-virtual/range {v9 .. v15}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
34062 + goto :goto_69
34064 + :cond_99
34065 + move-object/from16 v0, p0
34067 + iget-object v3, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
34069 + iget-object v3, v3, Landroid/telephony/PhoneStateListener;->mHandler:Landroid/os/Handler;
34071 + const/16 v4, 0x20
34073 + const/4 v5, 0x0
34075 + move/from16 v0, p1
34077 + move-object/from16 v1, p2
34079 + invoke-static {v3, v4, v0, v5, v1}, Landroid/os/Message;->obtain(Landroid/os/Handler;IIILjava/lang/Object;)Landroid/os/Message;
34081 + move-result-object v3
34083 + invoke-virtual {v3}, Landroid/os/Message;->sendToTarget()V
34085 + goto :goto_69
34086 .end method
34088 .method public onCellInfoChanged(Ljava/util/List;)V
34089 @@ -113,27 +286,124 @@
34090 .end method
34092 .method public onCellLocationChanged(Landroid/os/Bundle;)V
34093 - .registers 6
34094 + .registers 10
34096 + const/4 v5, 0x0
34098 const/4 v3, 0x0
34100 invoke-static {p1}, Landroid/telephony/CellLocation;->newFromBundle(Landroid/os/Bundle;)Landroid/telephony/CellLocation;
34102 + move-result-object v7
34104 + iget-object v1, p0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
34106 + #getter for: Landroid/telephony/PhoneStateListener;->context:Landroid/content/Context;
34107 + invoke-static {v1}, Landroid/telephony/PhoneStateListener;->access$000(Landroid/telephony/PhoneStateListener;)Landroid/content/Context;
34109 + move-result-object v1
34111 + if-eqz v1, :cond_4a
34113 + iget-object v1, p0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
34115 + #getter for: Landroid/telephony/PhoneStateListener;->context:Landroid/content/Context;
34116 + invoke-static {v1}, Landroid/telephony/PhoneStateListener;->access$000(Landroid/telephony/PhoneStateListener;)Landroid/content/Context;
34118 + move-result-object v1
34120 + const-string/jumbo v2, "privacy"
34122 + invoke-virtual {v1, v2}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
34124 move-result-object v0
34126 + check-cast v0, Landroid/privacy/PrivacySettingsManager;
34128 + iget-object v1, p0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
34130 + #getter for: Landroid/telephony/PhoneStateListener;->packageName:Ljava/lang/String;
34131 + invoke-static {v1}, Landroid/telephony/PhoneStateListener;->access$100(Landroid/telephony/PhoneStateListener;)Ljava/lang/String;
34133 + move-result-object v1
34135 + iget-object v2, p0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
34137 + #getter for: Landroid/telephony/PhoneStateListener;->uid:I
34138 + invoke-static {v2}, Landroid/telephony/PhoneStateListener;->access$200(Landroid/telephony/PhoneStateListener;)I
34140 + move-result v2
34142 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
34144 + move-result-object v6
34146 + if-eqz v6, :cond_4b
34148 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
34150 + move-result v1
34152 + if-eqz v1, :cond_4b
34154 + iget-object v1, p0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
34156 + #getter for: Landroid/telephony/PhoneStateListener;->packageName:Ljava/lang/String;
34157 + invoke-static {v1}, Landroid/telephony/PhoneStateListener;->access$100(Landroid/telephony/PhoneStateListener;)Ljava/lang/String;
34159 + move-result-object v1
34161 + iget-object v2, p0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
34163 + #getter for: Landroid/telephony/PhoneStateListener;->uid:I
34164 + invoke-static {v2}, Landroid/telephony/PhoneStateListener;->access$200(Landroid/telephony/PhoneStateListener;)I
34166 + move-result v2
34168 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
34170 + move-result v3
34172 + const-string v4, "locationNetwork"
34174 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
34176 + :cond_4a
34177 + :goto_4a
34178 + return-void
34180 + :cond_4b
34181 iget-object v1, p0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
34183 iget-object v1, v1, Landroid/telephony/PhoneStateListener;->mHandler:Landroid/os/Handler;
34185 const/16 v2, 0x10
34187 - invoke-static {v1, v2, v3, v3, v0}, Landroid/os/Message;->obtain(Landroid/os/Handler;IIILjava/lang/Object;)Landroid/os/Message;
34188 + invoke-static {v1, v2, v3, v3, v7}, Landroid/os/Message;->obtain(Landroid/os/Handler;IIILjava/lang/Object;)Landroid/os/Message;
34190 move-result-object v1
34192 invoke-virtual {v1}, Landroid/os/Message;->sendToTarget()V
34194 - return-void
34195 + iget-object v1, p0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
34197 + #getter for: Landroid/telephony/PhoneStateListener;->packageName:Ljava/lang/String;
34198 + invoke-static {v1}, Landroid/telephony/PhoneStateListener;->access$100(Landroid/telephony/PhoneStateListener;)Ljava/lang/String;
34200 + move-result-object v1
34202 + iget-object v2, p0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
34204 + #getter for: Landroid/telephony/PhoneStateListener;->uid:I
34205 + invoke-static {v2}, Landroid/telephony/PhoneStateListener;->access$200(Landroid/telephony/PhoneStateListener;)I
34207 + move-result v2
34209 + const-string v4, "locationNetwork"
34211 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
34213 + goto :goto_4a
34214 .end method
34216 .method public onDataActivity(I)V
34217 diff -Npruw stock-framework/smali/android/telephony/PhoneStateListener.smali pdroid-framework/smali/android/telephony/PhoneStateListener.smali
34218 --- stock-framework/smali/android/telephony/PhoneStateListener.smali 2013-08-15 23:20:16.408304526 -0500
34219 +++ pdroid-framework/smali/android/telephony/PhoneStateListener.smali 2013-08-15 23:20:07.316304795 -0500
34220 @@ -31,12 +31,20 @@
34222 .field public static final LISTEN_SIGNAL_STRENGTHS:I = 0x100
34224 +.field private static final TAG:Ljava/lang/String; = "PhoneStateListener"
34227 # instance fields
34228 .field callback:Lcom/android/internal/telephony/IPhoneStateListener;
34230 +.field private context:Landroid/content/Context;
34232 .field mHandler:Landroid/os/Handler;
34234 +.field private packageName:Ljava/lang/String;
34236 +.field private uid:I
34239 # direct methods
34240 .method public constructor <init>()V
34241 @@ -59,6 +67,30 @@
34242 return-void
34243 .end method
34245 +.method static synthetic access$000(Landroid/telephony/PhoneStateListener;)Landroid/content/Context;
34246 + .registers 2
34248 + iget-object v0, p0, Landroid/telephony/PhoneStateListener;->context:Landroid/content/Context;
34250 + return-object v0
34251 +.end method
34253 +.method static synthetic access$100(Landroid/telephony/PhoneStateListener;)Ljava/lang/String;
34254 + .registers 2
34256 + iget-object v0, p0, Landroid/telephony/PhoneStateListener;->packageName:Ljava/lang/String;
34258 + return-object v0
34259 +.end method
34261 +.method static synthetic access$200(Landroid/telephony/PhoneStateListener;)I
34262 + .registers 2
34264 + iget v0, p0, Landroid/telephony/PhoneStateListener;->uid:I
34266 + return v0
34267 +.end method
34270 # virtual methods
34271 .method public onCallForwardingIndicatorChanged(Z)V
34272 @@ -143,3 +175,27 @@
34274 return-void
34275 .end method
34277 +.method public setContext(Landroid/content/Context;)V
34278 + .registers 2
34280 + iput-object p1, p0, Landroid/telephony/PhoneStateListener;->context:Landroid/content/Context;
34282 + return-void
34283 +.end method
34285 +.method public setPackageName(Ljava/lang/String;)V
34286 + .registers 2
34288 + iput-object p1, p0, Landroid/telephony/PhoneStateListener;->packageName:Ljava/lang/String;
34290 + return-void
34291 +.end method
34293 +.method public setUid(I)V
34294 + .registers 2
34296 + iput p1, p0, Landroid/telephony/PhoneStateListener;->uid:I
34298 + return-void
34299 +.end method
34300 diff -Npruw stock-framework/smali/android/telephony/ServiceState.smali pdroid-framework/smali/android/telephony/ServiceState.smali
34301 --- stock-framework/smali/android/telephony/ServiceState.smali 2013-08-15 23:20:17.224304502 -0500
34302 +++ pdroid-framework/smali/android/telephony/ServiceState.smali 2013-08-15 23:20:08.204304769 -0500
34303 @@ -875,74 +875,6 @@
34304 return-void
34305 .end method
34307 -.method private setNullState(I)V
34308 - .registers 8
34310 - const/4 v5, 0x0
34312 - const/4 v4, 0x0
34314 - const/4 v3, -0x1
34316 - const-string v0, "PHONE"
34318 - new-instance v1, Ljava/lang/StringBuilder;
34320 - invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
34322 - const-string v2, "[ServiceState] setNullState="
34324 - invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
34326 - move-result-object v1
34328 - invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
34330 - move-result-object v1
34332 - invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
34334 - move-result-object v1
34336 - invoke-static {v0, v1}, Landroid/telephony/Rlog;->d(Ljava/lang/String;Ljava/lang/String;)I
34338 - iput p1, p0, Landroid/telephony/ServiceState;->mVoiceRegState:I
34340 - iput p1, p0, Landroid/telephony/ServiceState;->mDataRegState:I
34342 - iput-boolean v4, p0, Landroid/telephony/ServiceState;->mRoaming:Z
34344 - iput-object v5, p0, Landroid/telephony/ServiceState;->mOperatorAlphaLong:Ljava/lang/String;
34346 - iput-object v5, p0, Landroid/telephony/ServiceState;->mOperatorAlphaShort:Ljava/lang/String;
34348 - iput-object v5, p0, Landroid/telephony/ServiceState;->mOperatorNumeric:Ljava/lang/String;
34350 - iput-boolean v4, p0, Landroid/telephony/ServiceState;->mIsManualNetworkSelection:Z
34352 - iput v4, p0, Landroid/telephony/ServiceState;->mRilVoiceRadioTechnology:I
34354 - iput v4, p0, Landroid/telephony/ServiceState;->mRilDataRadioTechnology:I
34356 - iput-boolean v4, p0, Landroid/telephony/ServiceState;->mCssIndicator:Z
34358 - iput v3, p0, Landroid/telephony/ServiceState;->mNetworkId:I
34360 - iput v3, p0, Landroid/telephony/ServiceState;->mSystemId:I
34362 - iput v3, p0, Landroid/telephony/ServiceState;->mCdmaRoamingIndicator:I
34364 - iput v3, p0, Landroid/telephony/ServiceState;->mCdmaDefaultRoamingIndicator:I
34366 - iput v3, p0, Landroid/telephony/ServiceState;->mCdmaEriIconIndex:I
34368 - iput v3, p0, Landroid/telephony/ServiceState;->mCdmaEriIconMode:I
34370 - iput-boolean v4, p0, Landroid/telephony/ServiceState;->mIsEmergencyOnly:Z
34372 - return-void
34373 -.end method
34376 # virtual methods
34377 .method protected copyFrom(Landroid/telephony/ServiceState;)V
34378 @@ -1798,6 +1730,74 @@
34379 return-void
34380 .end method
34382 +.method setNullState(I)V
34383 + .registers 8
34385 + const/4 v5, 0x0
34387 + const/4 v4, 0x0
34389 + const/4 v3, -0x1
34391 + const-string v0, "PHONE"
34393 + new-instance v1, Ljava/lang/StringBuilder;
34395 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
34397 + const-string v2, "[ServiceState] setNullState="
34399 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
34401 + move-result-object v1
34403 + invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
34405 + move-result-object v1
34407 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
34409 + move-result-object v1
34411 + invoke-static {v0, v1}, Landroid/telephony/Rlog;->d(Ljava/lang/String;Ljava/lang/String;)I
34413 + iput p1, p0, Landroid/telephony/ServiceState;->mVoiceRegState:I
34415 + iput p1, p0, Landroid/telephony/ServiceState;->mDataRegState:I
34417 + iput-boolean v4, p0, Landroid/telephony/ServiceState;->mRoaming:Z
34419 + iput-object v5, p0, Landroid/telephony/ServiceState;->mOperatorAlphaLong:Ljava/lang/String;
34421 + iput-object v5, p0, Landroid/telephony/ServiceState;->mOperatorAlphaShort:Ljava/lang/String;
34423 + iput-object v5, p0, Landroid/telephony/ServiceState;->mOperatorNumeric:Ljava/lang/String;
34425 + iput-boolean v4, p0, Landroid/telephony/ServiceState;->mIsManualNetworkSelection:Z
34427 + iput v4, p0, Landroid/telephony/ServiceState;->mRilVoiceRadioTechnology:I
34429 + iput v4, p0, Landroid/telephony/ServiceState;->mRilDataRadioTechnology:I
34431 + iput-boolean v4, p0, Landroid/telephony/ServiceState;->mCssIndicator:Z
34433 + iput v3, p0, Landroid/telephony/ServiceState;->mNetworkId:I
34435 + iput v3, p0, Landroid/telephony/ServiceState;->mSystemId:I
34437 + iput v3, p0, Landroid/telephony/ServiceState;->mCdmaRoamingIndicator:I
34439 + iput v3, p0, Landroid/telephony/ServiceState;->mCdmaDefaultRoamingIndicator:I
34441 + iput v3, p0, Landroid/telephony/ServiceState;->mCdmaEriIconIndex:I
34443 + iput v3, p0, Landroid/telephony/ServiceState;->mCdmaEriIconMode:I
34445 + iput-boolean v4, p0, Landroid/telephony/ServiceState;->mIsEmergencyOnly:Z
34447 + return-void
34448 +.end method
34450 .method public setOperatorAlphaLong(Ljava/lang/String;)V
34451 .registers 2
34453 @@ -1885,7 +1885,7 @@
34455 const/4 v0, 0x3
34457 - invoke-direct {p0, v0}, Landroid/telephony/ServiceState;->setNullState(I)V
34458 + invoke-virtual {p0, v0}, Landroid/telephony/ServiceState;->setNullState(I)V
34460 return-void
34461 .end method
34462 @@ -1895,7 +1895,7 @@
34464 const/4 v0, 0x1
34466 - invoke-direct {p0, v0}, Landroid/telephony/ServiceState;->setNullState(I)V
34467 + invoke-virtual {p0, v0}, Landroid/telephony/ServiceState;->setNullState(I)V
34469 return-void
34470 .end method
34471 diff -Npruw stock-framework/smali/android/view/SurfaceControl.smali pdroid-framework/smali/android/view/SurfaceControl.smali
34472 --- stock-framework/smali/android/view/SurfaceControl.smali 2013-08-15 23:20:17.424304496 -0500
34473 +++ pdroid-framework/smali/android/view/SurfaceControl.smali 2013-08-15 23:20:08.356304764 -0500
34474 @@ -216,17 +216,17 @@
34476 iget v0, p0, Landroid/view/SurfaceControl;->mNativeObject:I
34478 - if-nez v0, :cond_c
34479 + if-nez v0, :cond_d
34481 new-instance v0, Ljava/lang/NullPointerException;
34483 - const-string v1, "mNativeObject is null. Have you called release() already?"
34484 + const-string/jumbo v1, "mNativeObject is null. Have you called release() already?"
34486 invoke-direct {v0, v1}, Ljava/lang/NullPointerException;-><init>(Ljava/lang/String;)V
34488 throw v0
34490 - :cond_c
34491 + :cond_d
34492 return-void
34493 .end method
34495 diff -Npruw stock-framework/smali/android/view/View.smali pdroid-framework/smali/android/view/View.smali
34496 --- stock-framework/smali/android/view/View.smali 2013-08-15 23:20:15.480304554 -0500
34497 +++ pdroid-framework/smali/android/view/View.smali 2013-08-15 23:20:06.260304826 -0500
34498 @@ -9478,7 +9478,7 @@
34500 move-result-object v3
34502 - const-string v4, "mMeasureWidth="
34503 + const-string/jumbo v4, "mMeasureWidth="
34505 invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
34507 @@ -9516,7 +9516,7 @@
34509 iget-object v3, p0, Landroid/view/View;->mLayoutParams:Landroid/view/ViewGroup$LayoutParams;
34511 - if-nez v3, :cond_22d
34512 + if-nez v3, :cond_22e
34514 new-instance v3, Ljava/lang/StringBuilder;
34516 @@ -9536,7 +9536,7 @@
34518 move-result-object v1
34520 - :goto_198
34521 + :goto_199
34522 const-string v3, "View"
34524 invoke-static {v3, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
34525 @@ -9675,14 +9675,14 @@
34527 return-void
34529 - :cond_22d
34530 + :cond_22e
34531 iget-object v3, p0, Landroid/view/View;->mLayoutParams:Landroid/view/ViewGroup$LayoutParams;
34533 invoke-virtual {v3, v1}, Landroid/view/ViewGroup$LayoutParams;->debug(Ljava/lang/String;)Ljava/lang/String;
34535 move-result-object v1
34537 - goto/16 :goto_198
34538 + goto/16 :goto_199
34539 .end method
34541 .method public destroyDrawingCache()V
34542 diff -Npruw stock-framework/smali/android/webkit/ZoomManager.smali pdroid-framework/smali/android/webkit/ZoomManager.smali
34543 --- stock-framework/smali/android/webkit/ZoomManager.smali 2013-08-15 23:20:17.648304490 -0500
34544 +++ pdroid-framework/smali/android/webkit/ZoomManager.smali 2013-08-15 23:20:08.536304759 -0500
34545 @@ -452,7 +452,7 @@
34547 cmpl-float v0, v0, v1
34549 - if-lez v0, :cond_38
34550 + if-lez v0, :cond_39
34552 const-string/jumbo v0, "webviewZoom"
34554 @@ -460,7 +460,7 @@
34556 invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
34558 - const-string v2, "mMinZoom > mMaxZoom!!! "
34559 + const-string/jumbo v2, "mMinZoom > mMaxZoom!!! "
34561 invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
34563 @@ -498,7 +498,7 @@
34565 iput v0, p0, Landroid/webkit/ZoomManager;->mMaxZoomScale:F
34567 - :cond_38
34568 + :cond_39
34569 return-void
34570 .end method