TEST
[auto-patcher.git] / patches / openpdroid / 4.3 / .aosp-ever / 20130810 / framework.patch
blobdb0ad96597f9240d859bd78dbe1cfa0766372a12
1 diff -Npru stock-framework/smali/android/app/ContextImpl$10.smali pdroid-framework/smali/android/app/ContextImpl$10.smali
2 --- stock-framework/smali/android/app/ContextImpl$10.smali 2013-08-10 20:37:46.151213593 -0700
3 +++ pdroid-framework/smali/android/app/ContextImpl$10.smali 2013-08-10 20:37:40.607213363 -0700
4 @@ -26,21 +26,31 @@
6 # virtual methods
7 .method public createStaticService()Ljava/lang/Object;
8 - .registers 4
9 + .registers 5
11 - const-string v1, "connectivity"
12 + const-string v2, "connectivity"
14 - invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
15 + invoke-static {v2}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
17 move-result-object v0
19 - new-instance v1, Landroid/net/ConnectivityManager;
20 + const-string v2, "ContextImpl"
22 + const-string v3, "PDroid:ContextImpl: returning PrivacyConnectivityManager"
24 + invoke-static {v2, v3}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
26 invoke-static {v0}, Landroid/net/IConnectivityManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/IConnectivityManager;
28 - move-result-object v2
29 + move-result-object v1
31 + new-instance v2, Landroid/privacy/surrogate/PrivacyConnectivityManager;
33 + invoke-static {}, Landroid/app/ContextImpl;->getStaticOuterContext()Landroid/content/Context;
35 + move-result-object v3
37 - invoke-direct {v1, v2}, Landroid/net/ConnectivityManager;-><init>(Landroid/net/IConnectivityManager;)V
38 + invoke-direct {v2, v1, v3}, Landroid/privacy/surrogate/PrivacyConnectivityManager;-><init>(Landroid/net/IConnectivityManager;Landroid/content/Context;)V
40 - return-object v1
41 + return-object v2
42 .end method
43 diff -Npru stock-framework/smali/android/app/ContextImpl$22.smali pdroid-framework/smali/android/app/ContextImpl$22.smali
44 --- stock-framework/smali/android/app/ContextImpl$22.smali 2013-08-10 20:37:46.159213593 -0700
45 +++ pdroid-framework/smali/android/app/ContextImpl$22.smali 2013-08-10 20:37:40.611213364 -0700
46 @@ -26,7 +26,7 @@
48 # virtual methods
49 .method public createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
50 - .registers 5
51 + .registers 6
53 const-string v1, "location"
55 @@ -34,13 +34,23 @@
57 move-result-object v0
59 - new-instance v1, Landroid/location/LocationManager;
60 + const-string v1, "ContextImpl"
62 + const-string v2, "PDroid:ContextImpl: returning PrivacyLocationManager"
64 + invoke-static {v1, v2}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
66 + new-instance v1, Landroid/privacy/surrogate/PrivacyLocationManager;
68 invoke-static {v0}, Landroid/location/ILocationManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/location/ILocationManager;
70 move-result-object v2
72 - invoke-direct {v1, p1, v2}, Landroid/location/LocationManager;-><init>(Landroid/content/Context;Landroid/location/ILocationManager;)V
73 + invoke-static {}, Landroid/app/ContextImpl;->getStaticOuterContext()Landroid/content/Context;
75 + move-result-object v3
77 + invoke-direct {v1, v2, v3}, Landroid/privacy/surrogate/PrivacyLocationManager;-><init>(Landroid/location/ILocationManager;Landroid/content/Context;)V
79 return-object v1
80 .end method
81 diff -Npru stock-framework/smali/android/app/ContextImpl$31.smali pdroid-framework/smali/android/app/ContextImpl$31.smali
82 --- stock-framework/smali/android/app/ContextImpl$31.smali 2013-08-10 20:37:46.163213594 -0700
83 +++ pdroid-framework/smali/android/app/ContextImpl$31.smali 2013-08-10 20:37:40.615213364 -0700
84 @@ -28,13 +28,19 @@
85 .method public createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
86 .registers 4
88 - new-instance v0, Landroid/telephony/TelephonyManager;
89 + const-string v0, "ContextImpl"
91 + const-string v1, "PDroid:ContextImpl: returning PrivacyTelephonyManager"
93 + invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
95 + new-instance v0, Landroid/privacy/surrogate/PrivacyTelephonyManager;
97 invoke-virtual {p1}, Landroid/app/ContextImpl;->getOuterContext()Landroid/content/Context;
99 move-result-object v1
101 - invoke-direct {v0, v1}, Landroid/telephony/TelephonyManager;-><init>(Landroid/content/Context;)V
102 + invoke-direct {v0, v1}, Landroid/privacy/surrogate/PrivacyTelephonyManager;-><init>(Landroid/content/Context;)V
104 return-object v0
105 .end method
106 diff -Npru stock-framework/smali/android/app/ContextImpl$36.smali pdroid-framework/smali/android/app/ContextImpl$36.smali
107 --- stock-framework/smali/android/app/ContextImpl$36.smali 2013-08-10 20:37:46.163213594 -0700
108 +++ pdroid-framework/smali/android/app/ContextImpl$36.smali 2013-08-10 20:37:40.619213363 -0700
109 @@ -38,13 +38,19 @@
111 move-result-object v1
113 - new-instance v2, Landroid/net/wifi/WifiManager;
114 + const-string v2, "ContextImpl"
116 + const-string v3, "PDroid:ContextImpl: returning PrivacyWifiManager"
118 + invoke-static {v2, v3}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
120 + new-instance v2, Landroid/privacy/surrogate/PrivacyWifiManager;
122 invoke-virtual {p1}, Landroid/app/ContextImpl;->getOuterContext()Landroid/content/Context;
124 move-result-object v3
126 - invoke-direct {v2, v3, v1}, Landroid/net/wifi/WifiManager;-><init>(Landroid/content/Context;Landroid/net/wifi/IWifiManager;)V
127 + invoke-direct {v2, v3, v1}, Landroid/privacy/surrogate/PrivacyWifiManager;-><init>(Landroid/content/Context;Landroid/net/wifi/IWifiManager;)V
129 return-object v2
130 .end method
131 diff -Npru stock-framework/smali/android/app/ContextImpl$38.smali pdroid-framework/smali/android/app/ContextImpl$38.smali
132 --- stock-framework/smali/android/app/ContextImpl$38.smali 2013-08-10 20:37:46.163213594 -0700
133 +++ pdroid-framework/smali/android/app/ContextImpl$38.smali 2013-08-10 20:37:40.619213363 -0700
134 @@ -1,5 +1,5 @@
135 .class final Landroid/app/ContextImpl$38;
136 -.super Landroid/app/ContextImpl$ServiceFetcher;
137 +.super Landroid/app/ContextImpl$StaticServiceFetcher;
138 .source "ContextImpl.java"
141 @@ -18,45 +18,39 @@
142 .method constructor <init>()V
143 .registers 1
145 - invoke-direct {p0}, Landroid/app/ContextImpl$ServiceFetcher;-><init>()V
146 + invoke-direct {p0}, Landroid/app/ContextImpl$StaticServiceFetcher;-><init>()V
148 return-void
149 .end method
152 # virtual methods
153 -.method public getService(Landroid/app/ContextImpl;)Ljava/lang/Object;
154 - .registers 6
155 +.method public createStaticService()Ljava/lang/Object;
156 + .registers 5
158 - #getter for: Landroid/app/ContextImpl;->mDisplay:Landroid/view/Display;
159 - invoke-static {p1}, Landroid/app/ContextImpl;->access$100(Landroid/app/ContextImpl;)Landroid/view/Display;
160 + const-string v2, "ContextImpl"
162 - move-result-object v0
163 + const-string v3, "PDroid:ContextImpl: Creating static privacy service"
165 - if-nez v0, :cond_17
166 + invoke-static {v2, v3}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
168 - invoke-virtual {p1}, Landroid/app/ContextImpl;->getOuterContext()Landroid/content/Context;
169 + const-string/jumbo v2, "privacy"
171 - move-result-object v2
172 + invoke-static {v2}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
174 - const-string v3, "display"
175 + move-result-object v0
177 - invoke-virtual {v2, v3}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
178 + invoke-static {v0}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
180 move-result-object v1
182 - check-cast v1, Landroid/hardware/display/DisplayManager;
184 - const/4 v2, 0x0
185 + new-instance v2, Landroid/privacy/PrivacySettingsManager;
187 - invoke-virtual {v1, v2}, Landroid/hardware/display/DisplayManager;->getDisplay(I)Landroid/view/Display;
189 - move-result-object v0
190 + invoke-static {}, Landroid/app/ContextImpl;->getStaticOuterContext()Landroid/content/Context;
192 - :cond_17
193 - new-instance v2, Landroid/view/WindowManagerImpl;
194 + move-result-object v3
196 - invoke-direct {v2, v0}, Landroid/view/WindowManagerImpl;-><init>(Landroid/view/Display;)V
197 + invoke-direct {v2, v3, v1}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
199 return-object v2
200 .end method
201 diff -Npru stock-framework/smali/android/app/ContextImpl$39.smali pdroid-framework/smali/android/app/ContextImpl$39.smali
202 --- stock-framework/smali/android/app/ContextImpl$39.smali 2013-08-10 20:37:46.163213594 -0700
203 +++ pdroid-framework/smali/android/app/ContextImpl$39.smali 2013-08-10 20:37:40.619213363 -0700
204 @@ -25,22 +25,38 @@
207 # virtual methods
208 -.method public createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
209 - .registers 5
210 +.method public getService(Landroid/app/ContextImpl;)Ljava/lang/Object;
211 + .registers 6
213 - const-string/jumbo v2, "user"
215 - invoke-static {v2}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
216 + #getter for: Landroid/app/ContextImpl;->mDisplay:Landroid/view/Display;
217 + invoke-static {p1}, Landroid/app/ContextImpl;->access$100(Landroid/app/ContextImpl;)Landroid/view/Display;
219 move-result-object v0
221 - invoke-static {v0}, Landroid/os/IUserManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IUserManager;
222 + if-nez v0, :cond_17
224 + invoke-virtual {p1}, Landroid/app/ContextImpl;->getOuterContext()Landroid/content/Context;
226 + move-result-object v2
228 + const-string v3, "display"
230 + invoke-virtual {v2, v3}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
232 move-result-object v1
234 - new-instance v2, Landroid/os/UserManager;
235 + check-cast v1, Landroid/hardware/display/DisplayManager;
237 + const/4 v2, 0x0
239 + invoke-virtual {v1, v2}, Landroid/hardware/display/DisplayManager;->getDisplay(I)Landroid/view/Display;
241 + move-result-object v0
243 + :cond_17
244 + new-instance v2, Landroid/view/WindowManagerImpl;
246 - invoke-direct {v2, p1, v1}, Landroid/os/UserManager;-><init>(Landroid/content/Context;Landroid/os/IUserManager;)V
247 + invoke-direct {v2, v0}, Landroid/view/WindowManagerImpl;-><init>(Landroid/view/Display;)V
249 return-object v2
250 .end method
251 diff -Npru stock-framework/smali/android/app/ContextImpl$3.smali pdroid-framework/smali/android/app/ContextImpl$3.smali
252 --- stock-framework/smali/android/app/ContextImpl$3.smali 2013-08-10 20:37:46.163213594 -0700
253 +++ pdroid-framework/smali/android/app/ContextImpl$3.smali 2013-08-10 20:37:40.619213363 -0700
254 @@ -26,7 +26,7 @@
256 # virtual methods
257 .method public createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
258 - .registers 5
259 + .registers 6
261 const-string v2, "account"
263 @@ -38,9 +38,15 @@
265 move-result-object v1
267 - new-instance v2, Landroid/accounts/AccountManager;
268 + const-string v2, "ContextImpl"
270 - invoke-direct {v2, p1, v1}, Landroid/accounts/AccountManager;-><init>(Landroid/content/Context;Landroid/accounts/IAccountManager;)V
271 + const-string v3, "PDroid:ContextImpl: returning PrivacyAccountManager rather than AccountManager"
273 + invoke-static {v2, v3}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
275 + new-instance v2, Landroid/privacy/surrogate/PrivacyAccountManager;
277 + invoke-direct {v2, p1, v1}, Landroid/privacy/surrogate/PrivacyAccountManager;-><init>(Landroid/content/Context;Landroid/accounts/IAccountManager;)V
279 return-object v2
280 .end method
281 diff -Npru stock-framework/smali/android/app/ContextImpl$40.smali pdroid-framework/smali/android/app/ContextImpl$40.smali
282 --- stock-framework/smali/android/app/ContextImpl$40.smali 2013-08-10 20:37:46.163213594 -0700
283 +++ pdroid-framework/smali/android/app/ContextImpl$40.smali 2013-08-10 20:37:40.619213363 -0700
284 @@ -28,19 +28,19 @@
285 .method public createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
286 .registers 5
288 - const-string v2, "appops"
289 + const-string/jumbo v2, "user"
291 invoke-static {v2}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
293 move-result-object v0
295 - invoke-static {v0}, Lcom/android/internal/app/IAppOpsService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/app/IAppOpsService;
296 + invoke-static {v0}, Landroid/os/IUserManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IUserManager;
298 move-result-object v1
300 - new-instance v2, Landroid/app/AppOpsManager;
301 + new-instance v2, Landroid/os/UserManager;
303 - invoke-direct {v2, p1, v1}, Landroid/app/AppOpsManager;-><init>(Landroid/content/Context;Lcom/android/internal/app/IAppOpsService;)V
304 + invoke-direct {v2, p1, v1}, Landroid/os/UserManager;-><init>(Landroid/content/Context;Landroid/os/IUserManager;)V
306 return-object v2
307 .end method
308 diff -Npru stock-framework/smali/android/app/ContextImpl$41.smali pdroid-framework/smali/android/app/ContextImpl$41.smali
309 --- stock-framework/smali/android/app/ContextImpl$41.smali 2013-08-10 20:37:46.163213594 -0700
310 +++ pdroid-framework/smali/android/app/ContextImpl$41.smali 2013-08-10 20:37:40.619213363 -0700
311 @@ -26,17 +26,21 @@
313 # virtual methods
314 .method public createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
315 - .registers 3
316 + .registers 5
318 - iget-object v0, p1, Landroid/app/ContextImpl;->mMainThread:Landroid/app/ActivityThread;
319 + const-string v2, "appops"
321 - invoke-virtual {v0}, Landroid/app/ActivityThread;->getHandler()Landroid/os/Handler;
322 + invoke-static {v2}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
324 move-result-object v0
326 - invoke-static {p1, v0}, Landroid/net/wimax/WimaxHelper;->createWimaxService(Landroid/content/Context;Landroid/os/Handler;)Ljava/lang/Object;
327 + invoke-static {v0}, Lcom/android/internal/app/IAppOpsService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/app/IAppOpsService;
329 - move-result-object v0
330 + move-result-object v1
332 + new-instance v2, Landroid/app/AppOpsManager;
334 + invoke-direct {v2, p1, v1}, Landroid/app/AppOpsManager;-><init>(Landroid/content/Context;Lcom/android/internal/app/IAppOpsService;)V
336 - return-object v0
337 + return-object v2
338 .end method
339 diff -Npru stock-framework/smali/android/app/ContextImpl$42.smali pdroid-framework/smali/android/app/ContextImpl$42.smali
340 --- stock-framework/smali/android/app/ContextImpl$42.smali 1969-12-31 16:00:00.000000000 -0800
341 +++ pdroid-framework/smali/android/app/ContextImpl$42.smali 2013-08-10 20:37:40.619213363 -0700
342 @@ -0,0 +1,42 @@
343 +.class final Landroid/app/ContextImpl$42;
344 +.super Landroid/app/ContextImpl$ServiceFetcher;
345 +.source "ContextImpl.java"
348 +# annotations
349 +.annotation system Ldalvik/annotation/EnclosingClass;
350 + value = Landroid/app/ContextImpl;
351 +.end annotation
353 +.annotation system Ldalvik/annotation/InnerClass;
354 + accessFlags = 0x8
355 + name = null
356 +.end annotation
359 +# direct methods
360 +.method constructor <init>()V
361 + .registers 1
363 + invoke-direct {p0}, Landroid/app/ContextImpl$ServiceFetcher;-><init>()V
365 + return-void
366 +.end method
369 +# virtual methods
370 +.method public createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
371 + .registers 3
373 + iget-object v0, p1, Landroid/app/ContextImpl;->mMainThread:Landroid/app/ActivityThread;
375 + invoke-virtual {v0}, Landroid/app/ActivityThread;->getHandler()Landroid/os/Handler;
377 + move-result-object v0
379 + invoke-static {p1, v0}, Landroid/net/wimax/WimaxHelper;->createWimaxService(Landroid/content/Context;Landroid/os/Handler;)Ljava/lang/Object;
381 + move-result-object v0
383 + return-object v0
384 +.end method
385 diff -Npru stock-framework/smali/android/app/ContextImpl.smali pdroid-framework/smali/android/app/ContextImpl.smali
386 --- stock-framework/smali/android/app/ContextImpl.smali 2013-08-10 20:37:46.183213595 -0700
387 +++ pdroid-framework/smali/android/app/ContextImpl.smali 2013-08-10 20:37:40.647213365 -0700
388 @@ -36,6 +36,8 @@
390 .field private static sNextPerContextServiceCacheIndex:I
392 +.field private static sOuterContext:Landroid/content/Context;
394 .field private static final sSharedPrefs:Ljava/util/HashMap;
395 .annotation system Ldalvik/annotation/Signature;
396 value = {
397 @@ -118,6 +120,10 @@
399 sput-object v0, Landroid/app/ContextImpl;->sSharedPrefs:Ljava/util/HashMap;
401 + const/4 v0, 0x0
403 + sput-object v0, Landroid/app/ContextImpl;->sOuterContext:Landroid/content/Context;
405 new-array v0, v1, [Ljava/lang/String;
407 sput-object v0, Landroid/app/ContextImpl;->EMPTY_FILE_LIST:[Ljava/lang/String;
408 @@ -430,7 +436,7 @@
410 invoke-static {v0, v1}, Landroid/app/ContextImpl;->registerService(Ljava/lang/String;Landroid/app/ContextImpl$ServiceFetcher;)V
412 - const-string/jumbo v0, "window"
413 + const-string/jumbo v0, "privacy"
415 new-instance v1, Landroid/app/ContextImpl$38;
417 @@ -438,7 +444,7 @@
419 invoke-static {v0, v1}, Landroid/app/ContextImpl;->registerService(Ljava/lang/String;Landroid/app/ContextImpl$ServiceFetcher;)V
421 - const-string/jumbo v0, "user"
422 + const-string/jumbo v0, "window"
424 new-instance v1, Landroid/app/ContextImpl$39;
426 @@ -446,7 +452,7 @@
428 invoke-static {v0, v1}, Landroid/app/ContextImpl;->registerService(Ljava/lang/String;Landroid/app/ContextImpl$ServiceFetcher;)V
430 - const-string v0, "appops"
431 + const-string/jumbo v0, "user"
433 new-instance v1, Landroid/app/ContextImpl$40;
435 @@ -454,7 +460,7 @@
437 invoke-static {v0, v1}, Landroid/app/ContextImpl;->registerService(Ljava/lang/String;Landroid/app/ContextImpl$ServiceFetcher;)V
439 - const-string v0, "WiMax"
440 + const-string v0, "appops"
442 new-instance v1, Landroid/app/ContextImpl$41;
444 @@ -462,6 +468,14 @@
446 invoke-static {v0, v1}, Landroid/app/ContextImpl;->registerService(Ljava/lang/String;Landroid/app/ContextImpl$ServiceFetcher;)V
448 + const-string v0, "WiMax"
450 + new-instance v1, Landroid/app/ContextImpl$42;
452 + invoke-direct {v1}, Landroid/app/ContextImpl$42;-><init>()V
454 + invoke-static {v0, v1}, Landroid/app/ContextImpl;->registerService(Ljava/lang/String;Landroid/app/ContextImpl$ServiceFetcher;)V
456 return-void
457 .end method
459 @@ -494,8 +508,21 @@
461 iput-object v0, p0, Landroid/app/ContextImpl;->mServiceCache:Ljava/util/ArrayList;
463 + sget-object v0, Landroid/app/ContextImpl;->sOuterContext:Landroid/content/Context;
465 + if-eqz v0, :cond_26
467 + const-string v0, "ContextImpl"
469 + const-string v1, "PDroid:ContextImpl: ContextImpl being created but already has sOuterContext"
471 + invoke-static {v0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
473 + :cond_26
474 iput-object p0, p0, Landroid/app/ContextImpl;->mOuterContext:Landroid/content/Context;
476 + sput-object p0, Landroid/app/ContextImpl;->sOuterContext:Landroid/content/Context;
478 return-void
479 .end method
481 @@ -556,8 +583,21 @@
483 iput-object v0, p0, Landroid/app/ContextImpl;->mDisplay:Landroid/view/Display;
485 + sget-object v0, Landroid/app/ContextImpl;->sOuterContext:Landroid/content/Context;
487 + if-eqz v0, :cond_42
489 + const-string v0, "ContextImpl"
491 + const-string v1, "PDroid:ContextImpl: ContextImpl being created but already has sOuterContext"
493 + invoke-static {v0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
495 + :cond_42
496 iput-object p0, p0, Landroid/app/ContextImpl;->mOuterContext:Landroid/content/Context;
498 + sput-object p0, Landroid/app/ContextImpl;->sOuterContext:Landroid/content/Context;
500 return-void
501 .end method
503 @@ -1061,6 +1101,14 @@
504 throw v0
505 .end method
507 +.method static final getStaticOuterContext()Landroid/content/Context;
508 + .registers 1
510 + sget-object v0, Landroid/app/ContextImpl;->sOuterContext:Landroid/content/Context;
512 + return-object v0
513 +.end method
515 .method private getWallpaperManager()Landroid/app/WallpaperManager;
516 .registers 2
518 @@ -5198,10 +5246,23 @@
519 .end method
521 .method final setOuterContext(Landroid/content/Context;)V
522 - .registers 2
523 + .registers 4
525 + sget-object v0, Landroid/app/ContextImpl;->sOuterContext:Landroid/content/Context;
527 + if-eqz v0, :cond_b
529 + const-string v0, "ContextImpl"
531 + const-string v1, "PDroid:ContextImpl: ContextImpl being created but already has sOuterContext"
533 + invoke-static {v0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
535 + :cond_b
536 iput-object p1, p0, Landroid/app/ContextImpl;->mOuterContext:Landroid/content/Context;
538 + sput-object p1, Landroid/app/ContextImpl;->sOuterContext:Landroid/content/Context;
540 return-void
541 .end method
543 diff -Npru stock-framework/smali/android/app/Fragment.smali pdroid-framework/smali/android/app/Fragment.smali
544 --- stock-framework/smali/android/app/Fragment.smali 2013-08-10 20:37:46.191213594 -0700
545 +++ pdroid-framework/smali/android/app/Fragment.smali 2013-08-10 20:37:40.655213366 -0700
546 @@ -593,11 +593,11 @@
547 :cond_11a
548 iget-object v0, p0, Landroid/app/Fragment;->mSavedFragmentState:Landroid/os/Bundle;
550 - if-eqz v0, :cond_12b
551 + if-eqz v0, :cond_12c
553 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
555 - const-string v0, "mSavedFragmentState="
556 + const-string/jumbo v0, "mSavedFragmentState="
558 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
560 @@ -605,14 +605,14 @@
562 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->println(Ljava/lang/Object;)V
564 - :cond_12b
565 + :cond_12c
566 iget-object v0, p0, Landroid/app/Fragment;->mSavedViewState:Landroid/util/SparseArray;
568 - if-eqz v0, :cond_13c
569 + if-eqz v0, :cond_13e
571 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
573 - const-string v0, "mSavedViewState="
574 + const-string/jumbo v0, "mSavedViewState="
576 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
578 @@ -620,10 +620,10 @@
580 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->println(Ljava/lang/Object;)V
582 - :cond_13c
583 + :cond_13e
584 iget-object v0, p0, Landroid/app/Fragment;->mTarget:Landroid/app/Fragment;
586 - if-eqz v0, :cond_158
587 + if-eqz v0, :cond_15a
589 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
591 @@ -643,10 +643,10 @@
593 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->println(I)V
595 - :cond_158
596 + :cond_15a
597 iget v0, p0, Landroid/app/Fragment;->mNextAnim:I
599 - if-eqz v0, :cond_169
600 + if-eqz v0, :cond_16b
602 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
604 @@ -658,10 +658,10 @@
606 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->println(I)V
608 - :cond_169
609 + :cond_16b
610 iget-object v0, p0, Landroid/app/Fragment;->mContainer:Landroid/view/ViewGroup;
612 - if-eqz v0, :cond_17a
613 + if-eqz v0, :cond_17c
615 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
617 @@ -673,10 +673,10 @@
619 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->println(Ljava/lang/Object;)V
621 - :cond_17a
622 + :cond_17c
623 iget-object v0, p0, Landroid/app/Fragment;->mView:Landroid/view/View;
625 - if-eqz v0, :cond_18c
626 + if-eqz v0, :cond_18e
628 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
630 @@ -688,10 +688,10 @@
632 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->println(Ljava/lang/Object;)V
634 - :cond_18c
635 + :cond_18e
636 iget-object v0, p0, Landroid/app/Fragment;->mAnimatingAway:Landroid/animation/Animator;
638 - if-eqz v0, :cond_1ab
639 + if-eqz v0, :cond_1ad
641 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
643 @@ -713,10 +713,10 @@
645 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->println(I)V
647 - :cond_1ab
648 + :cond_1ad
649 iget-object v0, p0, Landroid/app/Fragment;->mLoaderManager:Landroid/app/LoaderManagerImpl;
651 - if-eqz v0, :cond_1cf
652 + if-eqz v0, :cond_1d1
654 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
656 @@ -746,10 +746,10 @@
658 invoke-virtual {v0, v1, p2, p3, p4}, Landroid/app/LoaderManagerImpl;->dump(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
660 - :cond_1cf
661 + :cond_1d1
662 iget-object v0, p0, Landroid/app/Fragment;->mChildFragmentManager:Landroid/app/FragmentManagerImpl;
664 - if-eqz v0, :cond_20c
665 + if-eqz v0, :cond_20e
667 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
669 @@ -803,7 +803,7 @@
671 invoke-virtual {v0, v1, p2, p3, p4}, Landroid/app/FragmentManagerImpl;->dump(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
673 - :cond_20c
674 + :cond_20e
675 return-void
676 .end method
678 diff -Npru stock-framework/smali/android/app/Instrumentation$1.smali pdroid-framework/smali/android/app/Instrumentation$1.smali
679 --- stock-framework/smali/android/app/Instrumentation$1.smali 2013-08-10 20:37:46.331213600 -0700
680 +++ pdroid-framework/smali/android/app/Instrumentation$1.smali 2013-08-10 20:37:40.867213374 -0700
681 @@ -1,14 +1,96 @@
682 -.class synthetic Landroid/app/Instrumentation$1;
683 +.class Landroid/app/Instrumentation$1;
684 .super Ljava/lang/Object;
685 .source "Instrumentation.java"
687 +# interfaces
688 +.implements Ljava/lang/Runnable;
691 # annotations
692 -.annotation system Ldalvik/annotation/EnclosingClass;
693 - value = Landroid/app/Instrumentation;
694 +.annotation system Ldalvik/annotation/EnclosingMethod;
695 + 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;
696 .end annotation
698 .annotation system Ldalvik/annotation/InnerClass;
699 - accessFlags = 0x1008
700 + accessFlags = 0x0
701 name = null
702 .end annotation
705 +# instance fields
706 +.field final synthetic this$0:Landroid/app/Instrumentation;
708 +.field final synthetic val$tmp:Landroid/content/Context;
711 +# direct methods
712 +.method constructor <init>(Landroid/app/Instrumentation;Landroid/content/Context;)V
713 + .registers 3
715 + iput-object p1, p0, Landroid/app/Instrumentation$1;->this$0:Landroid/app/Instrumentation;
717 + iput-object p2, p0, Landroid/app/Instrumentation$1;->val$tmp:Landroid/content/Context;
719 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
721 + return-void
722 +.end method
725 +# virtual methods
726 +.method public run()V
727 + .registers 5
729 + const-wide/16 v2, 0x3e8
731 + :try_start_2
732 + invoke-static {v2, v3}, Ljava/lang/Thread;->sleep(J)V
733 + :try_end_5
734 + .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_5} :catch_35
736 + :goto_5
737 + new-instance v1, Landroid/content/Intent;
739 + const-string v2, "android.privacy.BLOCKED_PHONE_CALL"
741 + invoke-direct {v1, v2}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
743 + new-instance v0, Landroid/os/Bundle;
745 + invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
747 + const-string/jumbo v2, "packageName"
749 + iget-object v3, p0, Landroid/app/Instrumentation$1;->val$tmp:Landroid/content/Context;
751 + invoke-virtual {v3}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
753 + move-result-object v3
755 + invoke-virtual {v0, v2, v3}, Landroid/os/Bundle;->putString(Ljava/lang/String;Ljava/lang/String;)V
757 + const-string/jumbo v2, "phoneState"
759 + const/4 v3, 0x0
761 + invoke-virtual {v0, v2, v3}, Landroid/os/Bundle;->putInt(Ljava/lang/String;I)V
763 + invoke-virtual {v1, v0}, Landroid/content/Intent;->putExtras(Landroid/os/Bundle;)Landroid/content/Intent;
765 + iget-object v2, p0, Landroid/app/Instrumentation$1;->val$tmp:Landroid/content/Context;
767 + invoke-virtual {v2, v1}, Landroid/content/Context;->sendBroadcast(Landroid/content/Intent;)V
769 + const-string v2, "PrivacyContext"
771 + const-string/jumbo v3, "sent privacy intent"
773 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
775 + return-void
777 + :catch_35
778 + move-exception v2
780 + goto :goto_5
781 +.end method
782 diff -Npru stock-framework/smali/android/app/Instrumentation$2.smali pdroid-framework/smali/android/app/Instrumentation$2.smali
783 --- stock-framework/smali/android/app/Instrumentation$2.smali 1969-12-31 16:00:00.000000000 -0800
784 +++ pdroid-framework/smali/android/app/Instrumentation$2.smali 2013-08-10 20:37:40.867213374 -0700
785 @@ -0,0 +1,96 @@
786 +.class Landroid/app/Instrumentation$2;
787 +.super Ljava/lang/Object;
788 +.source "Instrumentation.java"
790 +# interfaces
791 +.implements Ljava/lang/Runnable;
794 +# annotations
795 +.annotation system Ldalvik/annotation/EnclosingMethod;
796 + 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
797 +.end annotation
799 +.annotation system Ldalvik/annotation/InnerClass;
800 + accessFlags = 0x0
801 + name = null
802 +.end annotation
805 +# instance fields
806 +.field final synthetic this$0:Landroid/app/Instrumentation;
808 +.field final synthetic val$tmp:Landroid/content/Context;
811 +# direct methods
812 +.method constructor <init>(Landroid/app/Instrumentation;Landroid/content/Context;)V
813 + .registers 3
815 + iput-object p1, p0, Landroid/app/Instrumentation$2;->this$0:Landroid/app/Instrumentation;
817 + iput-object p2, p0, Landroid/app/Instrumentation$2;->val$tmp:Landroid/content/Context;
819 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
821 + return-void
822 +.end method
825 +# virtual methods
826 +.method public run()V
827 + .registers 5
829 + const-wide/16 v2, 0x3e8
831 + :try_start_2
832 + invoke-static {v2, v3}, Ljava/lang/Thread;->sleep(J)V
833 + :try_end_5
834 + .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_5} :catch_35
836 + :goto_5
837 + new-instance v1, Landroid/content/Intent;
839 + const-string v2, "android.privacy.BLOCKED_PHONE_CALL"
841 + invoke-direct {v1, v2}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
843 + new-instance v0, Landroid/os/Bundle;
845 + invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
847 + const-string/jumbo v2, "packageName"
849 + iget-object v3, p0, Landroid/app/Instrumentation$2;->val$tmp:Landroid/content/Context;
851 + invoke-virtual {v3}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
853 + move-result-object v3
855 + invoke-virtual {v0, v2, v3}, Landroid/os/Bundle;->putString(Ljava/lang/String;Ljava/lang/String;)V
857 + const-string/jumbo v2, "phoneState"
859 + const/4 v3, 0x0
861 + invoke-virtual {v0, v2, v3}, Landroid/os/Bundle;->putInt(Ljava/lang/String;I)V
863 + invoke-virtual {v1, v0}, Landroid/content/Intent;->putExtras(Landroid/os/Bundle;)Landroid/content/Intent;
865 + iget-object v2, p0, Landroid/app/Instrumentation$2;->val$tmp:Landroid/content/Context;
867 + invoke-virtual {v2, v1}, Landroid/content/Context;->sendBroadcast(Landroid/content/Intent;)V
869 + const-string v2, "PrivacyContext"
871 + const-string/jumbo v3, "sent privacy intent"
873 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
875 + return-void
877 + :catch_35
878 + move-exception v2
880 + goto :goto_5
881 +.end method
882 diff -Npru stock-framework/smali/android/app/Instrumentation$3.smali pdroid-framework/smali/android/app/Instrumentation$3.smali
883 --- stock-framework/smali/android/app/Instrumentation$3.smali 1969-12-31 16:00:00.000000000 -0800
884 +++ pdroid-framework/smali/android/app/Instrumentation$3.smali 2013-08-10 20:37:40.867213374 -0700
885 @@ -0,0 +1,96 @@
886 +.class Landroid/app/Instrumentation$3;
887 +.super Ljava/lang/Object;
888 +.source "Instrumentation.java"
890 +# interfaces
891 +.implements Ljava/lang/Runnable;
894 +# annotations
895 +.annotation system Ldalvik/annotation/EnclosingMethod;
896 + 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;
897 +.end annotation
899 +.annotation system Ldalvik/annotation/InnerClass;
900 + accessFlags = 0x0
901 + name = null
902 +.end annotation
905 +# instance fields
906 +.field final synthetic this$0:Landroid/app/Instrumentation;
908 +.field final synthetic val$tmp:Landroid/content/Context;
911 +# direct methods
912 +.method constructor <init>(Landroid/app/Instrumentation;Landroid/content/Context;)V
913 + .registers 3
915 + iput-object p1, p0, Landroid/app/Instrumentation$3;->this$0:Landroid/app/Instrumentation;
917 + iput-object p2, p0, Landroid/app/Instrumentation$3;->val$tmp:Landroid/content/Context;
919 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
921 + return-void
922 +.end method
925 +# virtual methods
926 +.method public run()V
927 + .registers 5
929 + const-wide/16 v2, 0x3e8
931 + :try_start_2
932 + invoke-static {v2, v3}, Ljava/lang/Thread;->sleep(J)V
933 + :try_end_5
934 + .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_5} :catch_35
936 + :goto_5
937 + new-instance v1, Landroid/content/Intent;
939 + const-string v2, "android.privacy.BLOCKED_PHONE_CALL"
941 + invoke-direct {v1, v2}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
943 + new-instance v0, Landroid/os/Bundle;
945 + invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
947 + const-string/jumbo v2, "packageName"
949 + iget-object v3, p0, Landroid/app/Instrumentation$3;->val$tmp:Landroid/content/Context;
951 + invoke-virtual {v3}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
953 + move-result-object v3
955 + invoke-virtual {v0, v2, v3}, Landroid/os/Bundle;->putString(Ljava/lang/String;Ljava/lang/String;)V
957 + const-string/jumbo v2, "phoneState"
959 + const/4 v3, 0x0
961 + invoke-virtual {v0, v2, v3}, Landroid/os/Bundle;->putInt(Ljava/lang/String;I)V
963 + invoke-virtual {v1, v0}, Landroid/content/Intent;->putExtras(Landroid/os/Bundle;)Landroid/content/Intent;
965 + iget-object v2, p0, Landroid/app/Instrumentation$3;->val$tmp:Landroid/content/Context;
967 + invoke-virtual {v2, v1}, Landroid/content/Context;->sendBroadcast(Landroid/content/Intent;)V
969 + const-string v2, "PrivacyContext"
971 + const-string/jumbo v3, "sent privacy intent"
973 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
975 + return-void
977 + :catch_35
978 + move-exception v2
980 + goto :goto_5
981 +.end method
982 diff -Npru stock-framework/smali/android/app/Instrumentation$4.smali pdroid-framework/smali/android/app/Instrumentation$4.smali
983 --- stock-framework/smali/android/app/Instrumentation$4.smali 1969-12-31 16:00:00.000000000 -0800
984 +++ pdroid-framework/smali/android/app/Instrumentation$4.smali 2013-08-10 20:37:40.867213374 -0700
985 @@ -0,0 +1,96 @@
986 +.class Landroid/app/Instrumentation$4;
987 +.super Ljava/lang/Object;
988 +.source "Instrumentation.java"
990 +# interfaces
991 +.implements Ljava/lang/Runnable;
994 +# annotations
995 +.annotation system Ldalvik/annotation/EnclosingMethod;
996 + 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;
997 +.end annotation
999 +.annotation system Ldalvik/annotation/InnerClass;
1000 + accessFlags = 0x0
1001 + name = null
1002 +.end annotation
1005 +# instance fields
1006 +.field final synthetic this$0:Landroid/app/Instrumentation;
1008 +.field final synthetic val$tmp:Landroid/content/Context;
1011 +# direct methods
1012 +.method constructor <init>(Landroid/app/Instrumentation;Landroid/content/Context;)V
1013 + .registers 3
1015 + iput-object p1, p0, Landroid/app/Instrumentation$4;->this$0:Landroid/app/Instrumentation;
1017 + iput-object p2, p0, Landroid/app/Instrumentation$4;->val$tmp:Landroid/content/Context;
1019 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
1021 + return-void
1022 +.end method
1025 +# virtual methods
1026 +.method public run()V
1027 + .registers 5
1029 + const-wide/16 v2, 0x3e8
1031 + :try_start_2
1032 + invoke-static {v2, v3}, Ljava/lang/Thread;->sleep(J)V
1033 + :try_end_5
1034 + .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_5} :catch_35
1036 + :goto_5
1037 + new-instance v1, Landroid/content/Intent;
1039 + const-string v2, "android.privacy.BLOCKED_PHONE_CALL"
1041 + invoke-direct {v1, v2}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
1043 + new-instance v0, Landroid/os/Bundle;
1045 + invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
1047 + const-string/jumbo v2, "packageName"
1049 + iget-object v3, p0, Landroid/app/Instrumentation$4;->val$tmp:Landroid/content/Context;
1051 + invoke-virtual {v3}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
1053 + move-result-object v3
1055 + invoke-virtual {v0, v2, v3}, Landroid/os/Bundle;->putString(Ljava/lang/String;Ljava/lang/String;)V
1057 + const-string/jumbo v2, "phoneState"
1059 + const/4 v3, 0x0
1061 + invoke-virtual {v0, v2, v3}, Landroid/os/Bundle;->putInt(Ljava/lang/String;I)V
1063 + invoke-virtual {v1, v0}, Landroid/content/Intent;->putExtras(Landroid/os/Bundle;)Landroid/content/Intent;
1065 + iget-object v2, p0, Landroid/app/Instrumentation$4;->val$tmp:Landroid/content/Context;
1067 + invoke-virtual {v2, v1}, Landroid/content/Context;->sendBroadcast(Landroid/content/Intent;)V
1069 + const-string v2, "PrivacyContext"
1071 + const-string/jumbo v3, "sent privacy intent"
1073 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
1075 + return-void
1077 + :catch_35
1078 + move-exception v2
1080 + goto :goto_5
1081 +.end method
1082 diff -Npru stock-framework/smali/android/app/Instrumentation.smali pdroid-framework/smali/android/app/Instrumentation.smali
1083 --- stock-framework/smali/android/app/Instrumentation.smali 2013-08-10 20:37:46.335213601 -0700
1084 +++ pdroid-framework/smali/android/app/Instrumentation.smali 2013-08-10 20:37:40.883213374 -0700
1085 @@ -6,7 +6,6 @@
1086 # annotations
1087 .annotation system Ldalvik/annotation/MemberClasses;
1088 value = {
1089 - Landroid/app/Instrumentation$1;,
1090 Landroid/app/Instrumentation$Idler;,
1091 Landroid/app/Instrumentation$ActivityGoing;,
1092 Landroid/app/Instrumentation$ActivityWaiter;,
1093 @@ -53,6 +52,8 @@
1095 .field private mPerformanceCollector:Landroid/os/PerformanceCollector;
1097 +.field private mPrvSvc:Landroid/privacy/PrivacySettingsManager;
1099 .field private mRunner:Ljava/lang/Thread;
1101 .field private final mSync:Ljava/lang/Object;
1102 @@ -899,182 +900,131 @@
1103 .end method
1105 .method public execStartActivitiesAsUser(Landroid/content/Context;Landroid/os/IBinder;Landroid/os/IBinder;Landroid/app/Activity;[Landroid/content/Intent;Landroid/os/Bundle;I)V
1106 - .registers 21
1108 - move-object v2, p2
1110 - check-cast v2, Landroid/app/IApplicationThread;
1112 - iget-object v1, p0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1114 - if-eqz v1, :cond_37
1116 - iget-object v3, p0, Landroid/app/Instrumentation;->mSync:Ljava/lang/Object;
1118 - monitor-enter v3
1120 - :try_start_a
1121 - iget-object v1, p0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1123 - invoke-interface {v1}, Ljava/util/List;->size()I
1125 - move-result v9
1127 - const/4 v11, 0x0
1129 - :goto_11
1130 - if-ge v11, v9, :cond_36
1131 + .registers 32
1133 - iget-object v1, p0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1135 - invoke-interface {v1, v11}, Ljava/util/List;->get(I)Ljava/lang/Object;
1137 - move-result-object v10
1139 - check-cast v10, Landroid/app/Instrumentation$ActivityMonitor;
1141 - const/4 v1, 0x0
1143 - const/4 v4, 0x0
1145 - aget-object v4, p5, v4
1147 - invoke-virtual {v10, p1, v1, v4}, Landroid/app/Instrumentation$ActivityMonitor;->match(Landroid/content/Context;Landroid/app/Activity;Landroid/content/Intent;)Z
1148 + move-object/from16 v3, p2
1150 - move-result v1
1151 + check-cast v3, Landroid/app/IApplicationThread;
1153 - if-eqz v1, :cond_33
1154 + const-string v2, "Instrumentation"
1156 - iget v1, v10, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
1157 + new-instance v4, Ljava/lang/StringBuilder;
1159 - add-int/lit8 v1, v1, 0x1
1160 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
1162 - iput v1, v10, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
1163 + const-string v5, "PDroid:Instrumentation:execStartActivitiesAsUser: execStartActivitiesAsUser for "
1165 - invoke-virtual {v10}, Landroid/app/Instrumentation$ActivityMonitor;->isBlocking()Z
1166 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1168 - move-result v1
1169 + move-result-object v4
1171 - if-eqz v1, :cond_36
1172 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
1174 - monitor-exit v3
1175 + move-result-object v5
1177 - :goto_32
1178 - return-void
1179 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1181 - :cond_33
1182 - add-int/lit8 v11, v11, 0x1
1183 + move-result-object v4
1185 - goto :goto_11
1186 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
1188 - :cond_36
1189 - monitor-exit v3
1190 - :try_end_37
1191 - .catchall {:try_start_a .. :try_end_37} :catchall_5b
1192 + move-result-object v4
1194 - :cond_37
1195 - :try_start_37
1196 - move-object/from16 v0, p5
1197 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
1199 - array-length v1, v0
1200 + if-eqz p5, :cond_6f
1202 - new-array v5, v1, [Ljava/lang/String;
1203 + const/4 v14, 0x0
1205 - const/4 v11, 0x0
1206 + move-object/from16 v13, p5
1208 - :goto_3d
1209 - move-object/from16 v0, p5
1210 + array-length v0, v13
1212 - array-length v1, v0
1213 + move/from16 v20, v0
1215 - if-ge v11, v1, :cond_5e
1216 + const/16 v18, 0x0
1218 - aget-object v1, p5, v11
1219 + :goto_2a
1220 + move/from16 v0, v18
1222 - invoke-virtual {v1}, Landroid/content/Intent;->migrateExtraStreamToClipData()Z
1223 + move/from16 v1, v20
1225 - aget-object v1, p5, v11
1226 + if-ge v0, v1, :cond_51
1228 - invoke-virtual {v1}, Landroid/content/Intent;->prepareToLeaveProcess()V
1229 + aget-object v19, v13, v18
1231 - aget-object v1, p5, v11
1232 + :try_start_32
1233 + invoke-virtual/range {v19 .. v19}, Landroid/content/Intent;->getAction()Ljava/lang/String;
1235 - invoke-virtual {p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
1236 + move-result-object v2
1238 - move-result-object v3
1239 + if-eqz v2, :cond_cc
1241 - invoke-virtual {v1, v3}, Landroid/content/Intent;->resolveTypeIfNeeded(Landroid/content/ContentResolver;)Ljava/lang/String;
1242 + invoke-virtual/range {v19 .. v19}, Landroid/content/Intent;->getAction()Ljava/lang/String;
1244 - move-result-object v1
1245 + move-result-object v2
1247 - aput-object v1, v5, v11
1248 - :try_end_58
1249 - .catch Landroid/os/RemoteException; {:try_start_37 .. :try_end_58} :catch_79
1250 + const-string v4, "android.intent.action.CALL"
1252 - add-int/lit8 v11, v11, 0x1
1253 + invoke-virtual {v2, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
1255 - goto :goto_3d
1256 + move-result v2
1258 - :catchall_5b
1259 - move-exception v1
1260 + if-nez v2, :cond_50
1262 - :try_start_5c
1263 - monitor-exit v3
1264 - :try_end_5d
1265 - .catchall {:try_start_5c .. :try_end_5d} :catchall_5b
1266 + invoke-virtual/range {v19 .. v19}, Landroid/content/Intent;->getAction()Ljava/lang/String;
1268 - throw v1
1269 + move-result-object v2
1271 - :cond_5e
1272 - :try_start_5e
1273 - invoke-static {}, Landroid/app/ActivityManagerNative;->getDefault()Landroid/app/IActivityManager;
1274 + const-string v4, "android.intent.action.DIAL"
1276 - move-result-object v1
1277 + invoke-virtual {v2, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
1278 + :try_end_4d
1279 + .catch Ljava/lang/Exception; {:try_start_32 .. :try_end_4d} :catch_ae
1281 - invoke-virtual {p1}, Landroid/content/Context;->getBasePackageName()Ljava/lang/String;
1282 + move-result v2
1284 - move-result-object v3
1285 + if-eqz v2, :cond_cc
1287 - move-object/from16 v4, p5
1288 + :cond_50
1289 + const/4 v14, 0x1
1291 - move-object/from16 v6, p3
1292 + :cond_51
1293 + if-nez v14, :cond_d0
1295 - move-object/from16 v7, p6
1296 + const-string v2, "Instrumentation"
1298 - move/from16 v8, p7
1299 + new-instance v4, Ljava/lang/StringBuilder;
1301 - 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
1302 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
1304 - move-result v12
1305 + const-string v5, "PDroid:Instrumentation:execStartActivitiesAsUser: No provided intents triggered checking for "
1307 - const/4 v1, 0x0
1308 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1310 - aget-object v1, p5, v1
1311 + move-result-object v4
1313 - invoke-static {v12, v1}, Landroid/app/Instrumentation;->checkStartActivityResult(ILjava/lang/Object;)V
1314 - :try_end_78
1315 - .catch Landroid/os/RemoteException; {:try_start_5e .. :try_end_78} :catch_79
1316 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
1318 - goto :goto_32
1319 + move-result-object v5
1321 - :catch_79
1322 - move-exception v1
1323 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1325 - goto :goto_32
1326 -.end method
1327 + move-result-object v4
1329 -.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;
1330 - .registers 26
1331 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
1333 - move-object/from16 v3, p2
1334 + move-result-object v4
1336 - check-cast v3, Landroid/app/IApplicationThread;
1337 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
1339 + :cond_6f
1340 + :goto_6f
1341 move-object/from16 v0, p0
1343 iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1345 - if-eqz v2, :cond_4e
1346 + if-eqz v2, :cond_289
1348 move-object/from16 v0, p0
1350 @@ -1082,540 +1032,2621 @@
1352 monitor-enter v4
1354 - :try_start_f
1355 + :try_start_7a
1356 move-object/from16 v0, p0
1358 iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1360 invoke-interface {v2}, Ljava/util/List;->size()I
1362 - move-result v14
1363 + move-result v10
1365 - const/16 v16, 0x0
1366 + const/16 v17, 0x0
1368 - :goto_19
1369 - move/from16 v0, v16
1370 + :goto_84
1371 + move/from16 v0, v17
1373 - if-ge v0, v14, :cond_4d
1374 + if-ge v0, v10, :cond_288
1376 move-object/from16 v0, p0
1378 iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1380 - move/from16 v0, v16
1381 + move/from16 v0, v17
1383 invoke-interface {v2, v0}, Ljava/util/List;->get(I)Ljava/lang/Object;
1385 - move-result-object v15
1386 + move-result-object v12
1388 - check-cast v15, Landroid/app/Instrumentation$ActivityMonitor;
1389 + check-cast v12, Landroid/app/Instrumentation$ActivityMonitor;
1391 const/4 v2, 0x0
1393 - move-object/from16 v0, p1
1394 + const/4 v5, 0x0
1396 - move-object/from16 v1, p5
1397 + aget-object v5, p5, v5
1399 - invoke-virtual {v15, v0, v2, v1}, Landroid/app/Instrumentation$ActivityMonitor;->match(Landroid/content/Context;Landroid/app/Activity;Landroid/content/Intent;)Z
1400 + move-object/from16 v0, p1
1402 + invoke-virtual {v12, v0, v2, v5}, Landroid/app/Instrumentation$ActivityMonitor;->match(Landroid/content/Context;Landroid/app/Activity;Landroid/content/Intent;)Z
1404 move-result v2
1406 - if-eqz v2, :cond_4a
1407 + if-eqz v2, :cond_284
1409 - iget v2, v15, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
1410 + iget v2, v12, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
1412 add-int/lit8 v2, v2, 0x1
1414 - iput v2, v15, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
1415 + iput v2, v12, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
1417 - invoke-virtual {v15}, Landroid/app/Instrumentation$ActivityMonitor;->isBlocking()Z
1418 + invoke-virtual {v12}, Landroid/app/Instrumentation$ActivityMonitor;->isBlocking()Z
1420 move-result v2
1422 - if-eqz v2, :cond_4d
1424 - if-ltz p6, :cond_48
1426 - invoke-virtual {v15}, Landroid/app/Instrumentation$ActivityMonitor;->getResult()Landroid/app/Instrumentation$ActivityResult;
1427 + if-eqz v2, :cond_288
1429 - move-result-object v2
1431 - :goto_46
1432 monitor-exit v4
1433 + :try_end_ad
1434 + .catchall {:try_start_7a .. :try_end_ad} :catchall_2b0
1436 - :goto_47
1437 - return-object v2
1438 + :goto_ad
1439 + return-void
1441 - :cond_48
1442 - const/4 v2, 0x0
1443 + :catch_ae
1444 + move-exception v15
1446 - goto :goto_46
1447 + const-string v2, "Instrumentation"
1449 - :cond_4a
1450 - add-int/lit8 v16, v16, 0x1
1451 + new-instance v4, Ljava/lang/StringBuilder;
1453 - goto :goto_19
1454 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
1456 - :cond_4d
1457 - monitor-exit v4
1458 - :try_end_4e
1459 - .catchall {:try_start_f .. :try_end_4e} :catchall_84
1460 + const-string v5, "PDroid:Instrumentation:execStartActivitiesAsUser: Exception occurred when checking intents for "
1462 - :cond_4e
1463 - :try_start_4e
1464 - invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->migrateExtraStreamToClipData()Z
1465 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1467 - invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->prepareToLeaveProcess()V
1468 + move-result-object v4
1470 - invoke-static {}, Landroid/app/ActivityManagerNative;->getDefault()Landroid/app/IActivityManager;
1471 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
1473 - move-result-object v2
1474 + move-result-object v5
1476 - invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getBasePackageName()Ljava/lang/String;
1477 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1479 move-result-object v4
1481 - invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
1482 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
1484 - move-result-object v5
1485 + move-result-object v4
1487 - move-object/from16 v0, p5
1488 + invoke-static {v2, v4, v15}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
1490 - invoke-virtual {v0, v5}, Landroid/content/Intent;->resolveTypeIfNeeded(Landroid/content/ContentResolver;)Ljava/lang/String;
1491 + const/4 v14, 0x1
1493 - move-result-object v6
1494 + :cond_cc
1495 + add-int/lit8 v18, v18, 0x1
1497 - if-eqz p4, :cond_87
1498 + goto/16 :goto_2a
1500 - move-object/from16 v0, p4
1501 + :cond_d0
1502 + const-string v2, "Instrumentation"
1504 - iget-object v8, v0, Landroid/app/Activity;->mEmbeddedID:Ljava/lang/String;
1505 + new-instance v4, Ljava/lang/StringBuilder;
1507 - :goto_6c
1508 - const/4 v10, 0x0
1509 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
1511 - const/4 v11, 0x0
1512 + const-string v5, "PDroid:Instrumentation:execStartActivitiesAsUser: One or more intents triggered checking for "
1514 - const/4 v12, 0x0
1515 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1517 - move-object/from16 v5, p5
1518 + move-result-object v4
1520 - move-object/from16 v7, p3
1521 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
1523 - move/from16 v9, p6
1524 + move-result-object v5
1526 - move-object/from16 v13, p7
1527 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1529 - 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
1530 + move-result-object v4
1532 - move-result v17
1533 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
1535 - move/from16 v0, v17
1536 + move-result-object v4
1538 - move-object/from16 v1, p5
1539 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
1541 - invoke-static {v0, v1}, Landroid/app/Instrumentation;->checkStartActivityResult(ILjava/lang/Object;)V
1542 - :try_end_82
1543 - .catch Landroid/os/RemoteException; {:try_start_4e .. :try_end_82} :catch_89
1544 + move-object/from16 v0, p0
1546 - :goto_82
1547 - const/4 v2, 0x0
1548 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
1550 - goto :goto_47
1551 + if-eqz v2, :cond_fc
1553 - :catchall_84
1554 - move-exception v2
1555 + move-object/from16 v0, p0
1557 - :try_start_85
1558 - monitor-exit v4
1559 - :try_end_86
1560 - .catchall {:try_start_85 .. :try_end_86} :catchall_84
1561 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
1563 - throw v2
1564 + invoke-virtual {v2}, Landroid/privacy/PrivacySettingsManager;->isServiceAvailable()Z
1566 - :cond_87
1567 - const/4 v8, 0x0
1568 + move-result v2
1570 - goto :goto_6c
1571 + if-nez v2, :cond_193
1573 - :catch_89
1574 - move-exception v2
1575 + :cond_fc
1576 + new-instance v2, Landroid/privacy/PrivacySettingsManager;
1578 - goto :goto_82
1579 -.end method
1580 + const-string/jumbo v4, "privacy"
1582 -.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;
1583 - .registers 29
1584 + invoke-static {v4}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
1586 - move-object/from16 v4, p2
1587 + move-result-object v4
1589 - check-cast v4, Landroid/app/IApplicationThread;
1590 + invoke-static {v4}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
1592 - move-object/from16 v0, p0
1593 + move-result-object v4
1595 - iget-object v3, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1596 + move-object/from16 v0, p1
1598 - if-eqz v3, :cond_56
1599 + invoke-direct {v2, v0, v4}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
1601 move-object/from16 v0, p0
1603 - iget-object v5, v0, Landroid/app/Instrumentation;->mSync:Ljava/lang/Object;
1605 - monitor-enter v5
1606 + iput-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
1608 - :try_start_f
1609 move-object/from16 v0, p0
1611 - iget-object v3, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1613 - invoke-interface {v3}, Ljava/util/List;->size()I
1614 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
1616 - move-result v16
1617 + if-eqz v2, :cond_18b
1619 - const/16 v18, 0x0
1620 + const-string v2, "Instrumentation"
1622 - :goto_19
1623 - move/from16 v0, v18
1624 + const-string v4, "PDroid:Instrumentation:execStartActivitiesAsUser: Obtained privacy service"
1626 - move/from16 v1, v16
1627 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
1629 - if-ge v0, v1, :cond_55
1630 + :goto_11f
1631 + const/4 v11, 0x0
1633 move-object/from16 v0, p0
1635 - iget-object v3, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1637 - move/from16 v0, v18
1638 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
1640 - invoke-interface {v3, v0}, Ljava/util/List;->get(I)Ljava/lang/Object;
1641 + if-eqz v2, :cond_130
1643 - move-result-object v17
1644 + move-object/from16 v0, p0
1646 - check-cast v17, Landroid/app/Instrumentation$ActivityMonitor;
1647 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
1649 - const/4 v3, 0x0
1650 + invoke-virtual {v2}, Landroid/privacy/PrivacySettingsManager;->isServiceAvailable()Z
1652 - move-object/from16 v0, v17
1653 + move-result v2
1655 - move-object/from16 v1, p1
1656 + if-nez v2, :cond_19b
1658 - move-object/from16 v2, p5
1659 + :cond_130
1660 + const-string v2, "Instrumentation"
1662 - invoke-virtual {v0, v1, v3, v2}, Landroid/app/Instrumentation$ActivityMonitor;->match(Landroid/content/Context;Landroid/app/Activity;Landroid/content/Intent;)Z
1663 + const-string v4, "PDroid:Instrumentation:execStartActivitiesAsUser: Privacy service not available - assuming permission denied"
1665 - move-result v3
1666 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
1668 - if-eqz v3, :cond_52
1669 + const/4 v11, 0x0
1671 - move-object/from16 v0, v17
1672 + move-object/from16 v0, p0
1674 - iget v3, v0, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
1675 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
1677 - add-int/lit8 v3, v3, 0x1
1678 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
1680 - move-object/from16 v0, v17
1681 + move-result-object v4
1683 - iput v3, v0, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
1684 + const/4 v5, 0x1
1686 - invoke-virtual/range {v17 .. v17}, Landroid/app/Instrumentation$ActivityMonitor;->isBlocking()Z
1687 + const-string/jumbo v7, "phoneCall"
1689 - move-result v3
1690 + const/4 v8, 0x0
1692 - if-eqz v3, :cond_55
1693 + invoke-virtual {v2, v4, v5, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
1695 - if-ltz p6, :cond_50
1696 + :goto_148
1697 + if-nez v11, :cond_6f
1699 - invoke-virtual/range {v17 .. v17}, Landroid/app/Instrumentation$ActivityMonitor;->getResult()Landroid/app/Instrumentation$ActivityResult;
1700 + new-instance v16, Ljava/util/ArrayList;
1702 - move-result-object v3
1703 + move-object/from16 v0, p5
1705 - :goto_4e
1706 - monitor-exit v5
1707 + array-length v2, v0
1709 - :goto_4f
1710 - return-object v3
1711 + move-object/from16 v0, v16
1713 - :cond_50
1714 - const/4 v3, 0x0
1715 + invoke-direct {v0, v2}, Ljava/util/ArrayList;-><init>(I)V
1717 - goto :goto_4e
1718 + move-object/from16 v13, p5
1720 - :cond_52
1721 - add-int/lit8 v18, v18, 0x1
1722 + array-length v0, v13
1724 - goto :goto_19
1725 + move/from16 v20, v0
1727 - :cond_55
1728 - monitor-exit v5
1729 - :try_end_56
1730 - .catchall {:try_start_f .. :try_end_56} :catchall_90
1731 + const/16 v18, 0x0
1733 - :cond_56
1734 - :try_start_56
1735 - invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->migrateExtraStreamToClipData()Z
1736 + :goto_15b
1737 + move/from16 v0, v18
1739 - invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->prepareToLeaveProcess()V
1740 + move/from16 v1, v20
1742 - invoke-static {}, Landroid/app/ActivityManagerNative;->getDefault()Landroid/app/IActivityManager;
1743 + if-ge v0, v1, :cond_261
1745 - move-result-object v3
1746 + aget-object v19, v13, v18
1748 - invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getBasePackageName()Ljava/lang/String;
1749 + :try_start_163
1750 + invoke-virtual/range {v19 .. v19}, Landroid/content/Intent;->getAction()Ljava/lang/String;
1752 - move-result-object v5
1753 + move-result-object v2
1755 - invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
1756 + if-eqz v2, :cond_181
1758 - move-result-object v6
1759 + invoke-virtual/range {v19 .. v19}, Landroid/content/Intent;->getAction()Ljava/lang/String;
1761 - move-object/from16 v0, p5
1762 + move-result-object v2
1764 - invoke-virtual {v0, v6}, Landroid/content/Intent;->resolveTypeIfNeeded(Landroid/content/ContentResolver;)Ljava/lang/String;
1765 + const-string v4, "android.intent.action.CALL"
1767 - move-result-object v7
1768 + invoke-virtual {v2, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
1770 - if-eqz p4, :cond_93
1771 + move-result v2
1773 - move-object/from16 v0, p4
1774 + if-nez v2, :cond_188
1776 - iget-object v9, v0, Landroid/app/Activity;->mEmbeddedID:Ljava/lang/String;
1777 + invoke-virtual/range {v19 .. v19}, Landroid/content/Intent;->getAction()Ljava/lang/String;
1779 - :goto_74
1780 - const/4 v11, 0x0
1781 + move-result-object v2
1783 - const/4 v12, 0x0
1784 + const-string v4, "android.intent.action.DIAL"
1786 - const/4 v13, 0x0
1787 + invoke-virtual {v2, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
1789 - invoke-virtual/range {p8 .. p8}, Landroid/os/UserHandle;->getIdentifier()I
1790 + move-result v2
1792 - move-result v15
1793 + if-nez v2, :cond_188
1795 - move-object/from16 v6, p5
1796 + :cond_181
1797 + move-object/from16 v0, v16
1799 - move-object/from16 v8, p3
1800 + move-object/from16 v1, v19
1802 - move/from16 v10, p6
1803 + invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
1804 + :try_end_188
1805 + .catch Ljava/lang/Exception; {:try_start_163 .. :try_end_188} :catch_242
1807 - move-object/from16 v14, p7
1808 + :cond_188
1809 + :goto_188
1810 + add-int/lit8 v18, v18, 0x1
1812 - 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
1813 + goto :goto_15b
1815 - move-result v19
1816 + :cond_18b
1817 + const-string v2, "Instrumentation"
1819 - move/from16 v0, v19
1820 + const-string v4, "PDroid:Instrumentation:execStartActivitiesAsUser: Privacy service not obtained"
1822 - move-object/from16 v1, p5
1823 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
1825 - invoke-static {v0, v1}, Landroid/app/Instrumentation;->checkStartActivityResult(ILjava/lang/Object;)V
1826 - :try_end_8e
1827 - .catch Landroid/os/RemoteException; {:try_start_56 .. :try_end_8e} :catch_95
1828 + goto :goto_11f
1830 - :goto_8e
1831 - const/4 v3, 0x0
1832 + :cond_193
1833 + const-string v2, "Instrumentation"
1835 - goto :goto_4f
1836 + const-string v4, "PDroid:Instrumentation:execStartActivitiesAsUser: Already had privacy service"
1838 - :catchall_90
1839 - move-exception v3
1840 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
1842 - :try_start_91
1843 - monitor-exit v5
1844 - :try_end_92
1845 - .catchall {:try_start_91 .. :try_end_92} :catchall_90
1846 + goto :goto_11f
1848 - throw v3
1849 + :cond_19b
1850 + move-object/from16 v0, p0
1852 - :cond_93
1853 - const/4 v9, 0x0
1854 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
1856 - goto :goto_74
1857 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
1859 - :catch_95
1860 - move-exception v3
1861 + move-result-object v4
1863 - goto :goto_8e
1864 -.end method
1865 + invoke-virtual {v2, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
1867 -.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;
1868 - .registers 26
1869 + move-result-object v21
1871 - move-object/from16 v3, p2
1872 + if-nez v21, :cond_1d8
1874 - check-cast v3, Landroid/app/IApplicationThread;
1875 + const-string v2, "Instrumentation"
1877 - move-object/from16 v0, p0
1878 + new-instance v4, Ljava/lang/StringBuilder;
1880 - iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1881 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
1883 - if-eqz v2, :cond_4e
1884 + const-string v5, "PDroid:Instrumentation:execStartActivitiesAsUser: Call intents allowed: No settings for package: "
1886 - move-object/from16 v0, p0
1887 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1889 - iget-object v4, v0, Landroid/app/Instrumentation;->mSync:Ljava/lang/Object;
1890 + move-result-object v4
1892 - monitor-enter v4
1893 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
1895 - :try_start_f
1896 - move-object/from16 v0, p0
1897 + move-result-object v5
1899 - iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1900 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1902 - invoke-interface {v2}, Ljava/util/List;->size()I
1903 + move-result-object v4
1905 - move-result v14
1906 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
1908 - const/16 v16, 0x0
1909 + move-result-object v4
1911 - :goto_19
1912 - move/from16 v0, v16
1913 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
1915 - if-ge v0, v14, :cond_4d
1916 + const/4 v11, 0x1
1918 move-object/from16 v0, p0
1920 - iget-object v2, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
1921 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
1923 - move/from16 v0, v16
1924 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
1926 - invoke-interface {v2, v0}, Ljava/util/List;->get(I)Ljava/lang/Object;
1927 + move-result-object v4
1929 - move-result-object v15
1930 + const/4 v5, 0x1
1932 - check-cast v15, Landroid/app/Instrumentation$ActivityMonitor;
1933 + const-string/jumbo v7, "phoneCall"
1935 - const/4 v2, 0x0
1936 + const/4 v8, 0x0
1938 - move-object/from16 v0, p1
1939 + invoke-virtual {v2, v4, v5, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
1941 - move-object/from16 v1, p5
1942 + goto/16 :goto_148
1944 - invoke-virtual {v15, v0, v2, v1}, Landroid/app/Instrumentation$ActivityMonitor;->match(Landroid/content/Context;Landroid/app/Activity;Landroid/content/Intent;)Z
1945 + :cond_1d8
1946 + invoke-virtual/range {v21 .. v21}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
1948 move-result v2
1950 - if-eqz v2, :cond_4a
1951 + if-nez v2, :cond_210
1953 - iget v2, v15, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
1954 + const-string v2, "Instrumentation"
1956 - add-int/lit8 v2, v2, 0x1
1957 + new-instance v4, Ljava/lang/StringBuilder;
1959 - iput v2, v15, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
1960 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
1962 - invoke-virtual {v15}, Landroid/app/Instrumentation$ActivityMonitor;->isBlocking()Z
1963 + const-string v5, "PDroid:Instrumentation:execStartActivitiesAsUser: Call intents allowed: Settings permit "
1965 - move-result v2
1966 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1968 - if-eqz v2, :cond_4d
1969 + move-result-object v4
1971 - if-ltz p6, :cond_48
1972 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
1974 - invoke-virtual {v15}, Landroid/app/Instrumentation$ActivityMonitor;->getResult()Landroid/app/Instrumentation$ActivityResult;
1975 + move-result-object v5
1977 - move-result-object v2
1978 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1980 - :goto_46
1981 - monitor-exit v4
1982 + move-result-object v4
1984 - :goto_47
1985 - return-object v2
1986 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
1988 - :cond_48
1989 - const/4 v2, 0x0
1990 + move-result-object v4
1992 - goto :goto_46
1993 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
1995 - :cond_4a
1996 - add-int/lit8 v16, v16, 0x1
1997 + const/4 v11, 0x1
1999 - goto :goto_19
2000 + move-object/from16 v0, p0
2002 - :cond_4d
2003 - monitor-exit v4
2004 - :try_end_4e
2005 - .catchall {:try_start_f .. :try_end_4e} :catchall_84
2006 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2008 - :cond_4e
2009 - :try_start_4e
2010 - invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->migrateExtraStreamToClipData()Z
2011 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2013 - invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->prepareToLeaveProcess()V
2014 + move-result-object v4
2016 - invoke-static {}, Landroid/app/ActivityManagerNative;->getDefault()Landroid/app/IActivityManager;
2017 + invoke-virtual/range {v21 .. v21}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
2019 - move-result-object v2
2020 + move-result v5
2022 - invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getBasePackageName()Ljava/lang/String;
2023 + const-string/jumbo v7, "phoneCall"
2025 - move-result-object v4
2026 + const/4 v8, 0x0
2028 - invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
2029 + invoke-virtual {v2, v4, v5, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
2031 - move-result-object v5
2032 + goto/16 :goto_148
2034 - move-object/from16 v0, p5
2035 + :cond_210
2036 + const-string v2, "Instrumentation"
2038 - invoke-virtual {v0, v5}, Landroid/content/Intent;->resolveTypeIfNeeded(Landroid/content/ContentResolver;)Ljava/lang/String;
2039 + new-instance v4, Ljava/lang/StringBuilder;
2041 - move-result-object v6
2042 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
2044 - if-eqz p4, :cond_87
2045 + const-string v5, "PDroid:Instrumentation:execStartActivitiesAsUser: Call intents denied: Settings deny "
2047 - move-object/from16 v0, p4
2048 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2050 - iget-object v8, v0, Landroid/app/Fragment;->mWho:Ljava/lang/String;
2051 + move-result-object v4
2053 - :goto_6c
2054 - const/4 v10, 0x0
2055 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2057 - const/4 v11, 0x0
2058 + move-result-object v5
2060 - const/4 v12, 0x0
2061 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2063 - move-object/from16 v5, p5
2064 + move-result-object v4
2066 - move-object/from16 v7, p3
2067 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2069 + move-result-object v4
2071 + invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2073 + const/4 v11, 0x0
2075 + move-object/from16 v0, p0
2077 + iget-object v2, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2079 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2081 + move-result-object v4
2083 + invoke-virtual/range {v21 .. v21}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
2085 + move-result v5
2087 + const-string/jumbo v7, "phoneCall"
2089 + const/4 v8, 0x0
2091 + invoke-virtual {v2, v4, v5, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
2093 + goto/16 :goto_148
2095 + :catch_242
2096 + move-exception v15
2098 + const-string v2, "Instrumentation"
2100 + new-instance v4, Ljava/lang/StringBuilder;
2102 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
2104 + const-string v5, "PDroid:Instrumentation:execStartActivitiesAsUser: Exception occurred when checking intent for "
2106 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2108 + move-result-object v4
2110 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2112 + move-result-object v5
2114 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2116 + move-result-object v4
2118 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2120 + move-result-object v4
2122 + invoke-static {v2, v4, v15}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
2124 + goto/16 :goto_188
2126 + :cond_261
2127 + invoke-interface/range {v16 .. v16}, Ljava/util/List;->size()I
2129 + move-result v2
2131 + new-array v2, v2, [Landroid/content/Intent;
2133 + move-object/from16 v0, v16
2135 + invoke-interface {v0, v2}, Ljava/util/List;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
2137 + move-result-object p5
2139 + check-cast p5, [Landroid/content/Intent;
2141 + move-object/from16 v23, p1
2143 + new-instance v2, Ljava/lang/Thread;
2145 + new-instance v4, Landroid/app/Instrumentation$2;
2147 + move-object/from16 v0, p0
2149 + move-object/from16 v1, v23
2151 + invoke-direct {v4, v0, v1}, Landroid/app/Instrumentation$2;-><init>(Landroid/app/Instrumentation;Landroid/content/Context;)V
2153 + invoke-direct {v2, v4}, Ljava/lang/Thread;-><init>(Ljava/lang/Runnable;)V
2155 + invoke-virtual {v2}, Ljava/lang/Thread;->start()V
2157 + goto/16 :goto_6f
2159 + :cond_284
2160 + add-int/lit8 v17, v17, 0x1
2162 + goto/16 :goto_84
2164 + :cond_288
2165 + :try_start_288
2166 + monitor-exit v4
2167 + :try_end_289
2168 + .catchall {:try_start_288 .. :try_end_289} :catchall_2b0
2170 - move/from16 v9, p6
2171 + :cond_289
2172 + :try_start_289
2173 + move-object/from16 v0, p5
2175 + array-length v2, v0
2177 - move-object/from16 v13, p7
2178 + new-array v6, v2, [Ljava/lang/String;
2180 - 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
2181 + const/16 v17, 0x0
2183 + :goto_290
2184 + move-object/from16 v0, p5
2186 - move-result v17
2187 + array-length v2, v0
2189 move/from16 v0, v17
2191 - move-object/from16 v1, p5
2192 + if-ge v0, v2, :cond_2b3
2194 - invoke-static {v0, v1}, Landroid/app/Instrumentation;->checkStartActivityResult(ILjava/lang/Object;)V
2195 - :try_end_82
2196 - .catch Landroid/os/RemoteException; {:try_start_4e .. :try_end_82} :catch_89
2197 + aget-object v2, p5, v17
2199 - :goto_82
2200 - const/4 v2, 0x0
2201 + invoke-virtual {v2}, Landroid/content/Intent;->migrateExtraStreamToClipData()Z
2203 + aget-object v2, p5, v17
2205 + invoke-virtual {v2}, Landroid/content/Intent;->prepareToLeaveProcess()V
2207 + aget-object v2, p5, v17
2209 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
2211 + move-result-object v4
2213 + invoke-virtual {v2, v4}, Landroid/content/Intent;->resolveTypeIfNeeded(Landroid/content/ContentResolver;)Ljava/lang/String;
2215 + move-result-object v2
2217 + aput-object v2, v6, v17
2218 + :try_end_2ad
2219 + .catch Landroid/os/RemoteException; {:try_start_289 .. :try_end_2ad} :catch_2d1
2221 - goto :goto_47
2222 + add-int/lit8 v17, v17, 0x1
2224 - :catchall_84
2225 + goto :goto_290
2227 + :catchall_2b0
2228 move-exception v2
2230 - :try_start_85
2231 + :try_start_2b1
2232 monitor-exit v4
2233 - :try_end_86
2234 - .catchall {:try_start_85 .. :try_end_86} :catchall_84
2235 + :try_end_2b2
2236 + .catchall {:try_start_2b1 .. :try_end_2b2} :catchall_2b0
2238 throw v2
2240 - :cond_87
2241 - const/4 v8, 0x0
2242 + :cond_2b3
2243 + :try_start_2b3
2244 + invoke-static {}, Landroid/app/ActivityManagerNative;->getDefault()Landroid/app/IActivityManager;
2246 + move-result-object v2
2248 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getBasePackageName()Ljava/lang/String;
2250 + move-result-object v4
2252 + move-object/from16 v5, p5
2254 + move-object/from16 v7, p3
2256 + move-object/from16 v8, p6
2258 - goto :goto_6c
2259 + move/from16 v9, p7
2261 - :catch_89
2262 + 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
2264 + move-result v22
2266 + const/4 v2, 0x0
2268 + aget-object v2, p5, v2
2270 + move/from16 v0, v22
2272 + invoke-static {v0, v2}, Landroid/app/Instrumentation;->checkStartActivityResult(ILjava/lang/Object;)V
2273 + :try_end_2cf
2274 + .catch Landroid/os/RemoteException; {:try_start_2b3 .. :try_end_2cf} :catch_2d1
2276 + goto/16 :goto_ad
2278 + :catch_2d1
2279 move-exception v2
2281 - goto :goto_82
2282 + goto/16 :goto_ad
2283 +.end method
2285 +.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;
2286 + .registers 31
2288 + move-object/from16 v4, p2
2290 + check-cast v4, Landroid/app/IApplicationThread;
2292 + const/16 v16, 0x1
2294 + :try_start_6
2295 + const-string v3, "Instrumentation"
2297 + new-instance v5, Ljava/lang/StringBuilder;
2299 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
2301 + const-string v6, "PDroid:Instrumentation:execStartActivity: execStartActivity for "
2303 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2305 + move-result-object v5
2307 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2309 + move-result-object v6
2311 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2313 + move-result-object v5
2315 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2317 + move-result-object v5
2319 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2321 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->getAction()Ljava/lang/String;
2323 + move-result-object v3
2325 + if-eqz v3, :cond_ba
2327 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->getAction()Ljava/lang/String;
2329 + move-result-object v3
2331 + const-string v5, "android.intent.action.CALL"
2333 + invoke-virtual {v3, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
2335 + move-result v3
2337 + if-nez v3, :cond_40
2339 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->getAction()Ljava/lang/String;
2341 + move-result-object v3
2343 + const-string v5, "android.intent.action.DIAL"
2345 + invoke-virtual {v3, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
2347 + move-result v3
2349 + if-eqz v3, :cond_ba
2351 + :cond_40
2352 + const/16 v16, 0x0
2354 + const-string v3, "Instrumentation"
2356 + new-instance v5, Ljava/lang/StringBuilder;
2358 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
2360 + const-string v6, "PDroid:Instrumentation:execStartActivity: Intent action = Intent.ACTION_CALL or Intent.ACTION_DIAL for "
2362 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2364 + move-result-object v5
2366 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2368 + move-result-object v6
2370 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2372 + move-result-object v5
2374 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2376 + move-result-object v5
2378 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2380 + move-object/from16 v0, p0
2382 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2384 + if-eqz v3, :cond_6e
2386 + move-object/from16 v0, p0
2388 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2390 + invoke-virtual {v3}, Landroid/privacy/PrivacySettingsManager;->isServiceAvailable()Z
2392 + move-result v3
2394 + if-nez v3, :cond_12e
2396 + :cond_6e
2397 + new-instance v3, Landroid/privacy/PrivacySettingsManager;
2399 + const-string/jumbo v5, "privacy"
2401 + invoke-static {v5}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
2403 + move-result-object v5
2405 + invoke-static {v5}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
2407 + move-result-object v5
2409 + move-object/from16 v0, p1
2411 + invoke-direct {v3, v0, v5}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
2413 + move-object/from16 v0, p0
2415 + iput-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2417 + move-object/from16 v0, p0
2419 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2421 + if-eqz v3, :cond_104
2423 + const-string v3, "Instrumentation"
2425 + const-string v5, "PDroid:Instrumentation:execStartActivity: Obtained privacy service"
2427 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2429 + :goto_91
2430 + move-object/from16 v0, p0
2432 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2434 + if-eqz v3, :cond_a1
2436 + move-object/from16 v0, p0
2438 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2440 + invoke-virtual {v3}, Landroid/privacy/PrivacySettingsManager;->isServiceAvailable()Z
2442 + move-result v3
2444 + if-nez v3, :cond_137
2446 + :cond_a1
2447 + const-string v3, "Instrumentation"
2449 + const-string v5, "PDroid:Instrumentation:execStartActivity: Privacy service not available: rejecting call attempt"
2451 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2453 + const/16 v16, 0x0
2455 + move-object/from16 v0, p0
2457 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2459 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2461 + move-result-object v5
2463 + const/4 v6, 0x1
2465 + const-string/jumbo v7, "phoneCall"
2467 + const/4 v8, 0x0
2469 + invoke-virtual {v3, v5, v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
2470 + :try_end_ba
2471 + .catch Ljava/lang/Exception; {:try_start_6 .. :try_end_ba} :catch_10c
2473 + :cond_ba
2474 + :goto_ba
2475 + move-object/from16 v0, p0
2477 + iget-object v3, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
2479 + if-eqz v3, :cond_207
2481 + move-object/from16 v0, p0
2483 + iget-object v5, v0, Landroid/app/Instrumentation;->mSync:Ljava/lang/Object;
2485 + monitor-enter v5
2487 + :try_start_c5
2488 + move-object/from16 v0, p0
2490 + iget-object v3, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
2492 + invoke-interface {v3}, Ljava/util/List;->size()I
2494 + move-result v15
2496 + const/16 v19, 0x0
2498 + :goto_cf
2499 + move/from16 v0, v19
2501 + if-ge v0, v15, :cond_206
2503 + move-object/from16 v0, p0
2505 + iget-object v3, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
2507 + move/from16 v0, v19
2509 + invoke-interface {v3, v0}, Ljava/util/List;->get(I)Ljava/lang/Object;
2511 + move-result-object v17
2513 + check-cast v17, Landroid/app/Instrumentation$ActivityMonitor;
2515 + const/4 v3, 0x0
2517 + move-object/from16 v0, v17
2519 + move-object/from16 v1, p1
2521 + move-object/from16 v2, p5
2523 + invoke-virtual {v0, v1, v3, v2}, Landroid/app/Instrumentation$ActivityMonitor;->match(Landroid/content/Context;Landroid/app/Activity;Landroid/content/Intent;)Z
2525 + move-result v3
2527 + if-eqz v3, :cond_202
2529 + move-object/from16 v0, v17
2531 + iget v3, v0, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
2533 + add-int/lit8 v3, v3, 0x1
2535 + move-object/from16 v0, v17
2537 + iput v3, v0, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
2539 + invoke-virtual/range {v17 .. v17}, Landroid/app/Instrumentation$ActivityMonitor;->isBlocking()Z
2541 + move-result v3
2543 + if-eqz v3, :cond_206
2545 + if-ltz p6, :cond_1ff
2547 + invoke-virtual/range {v17 .. v17}, Landroid/app/Instrumentation$ActivityMonitor;->getResult()Landroid/app/Instrumentation$ActivityResult;
2549 + move-result-object v3
2551 + :goto_102
2552 + monitor-exit v5
2553 + :try_end_103
2554 + .catchall {:try_start_c5 .. :try_end_103} :catchall_221
2556 + :goto_103
2557 + return-object v3
2559 + :cond_104
2560 + :try_start_104
2561 + const-string v3, "Instrumentation"
2563 + const-string v5, "PDroid:Instrumentation:execStartActivity: Privacy service not obtained"
2565 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2566 + :try_end_10b
2567 + .catch Ljava/lang/Exception; {:try_start_104 .. :try_end_10b} :catch_10c
2569 + goto :goto_91
2571 + :catch_10c
2572 + move-exception v18
2574 + if-eqz p1, :cond_1f4
2576 + const-string v3, "Instrumentation"
2578 + new-instance v5, Ljava/lang/StringBuilder;
2580 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
2582 + const-string v6, "PDroid:Instrumentation:execStartActivity: Exception occurred handling intent for "
2584 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2586 + move-result-object v5
2588 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2590 + move-result-object v6
2592 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2594 + move-result-object v5
2596 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2598 + move-result-object v5
2600 + move-object/from16 v0, v18
2602 + invoke-static {v3, v5, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
2604 + goto :goto_ba
2606 + :cond_12e
2607 + :try_start_12e
2608 + const-string v3, "Instrumentation"
2610 + const-string v5, "PDroid:Instrumentation:execStartActivity: Already had privacy service"
2612 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2614 + goto/16 :goto_91
2616 + :cond_137
2617 + move-object/from16 v0, p0
2619 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2621 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2623 + move-result-object v5
2625 + invoke-virtual {v3, v5}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
2627 + move-result-object v20
2629 + if-nez v20, :cond_175
2631 + const-string v3, "Instrumentation"
2633 + new-instance v5, Ljava/lang/StringBuilder;
2635 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
2637 + const-string v6, "PDroid:Instrumentation:execStartActivity: Call allowed: No settings for package: "
2639 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2641 + move-result-object v5
2643 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2645 + move-result-object v6
2647 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2649 + move-result-object v5
2651 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2653 + move-result-object v5
2655 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2657 + const/16 v16, 0x1
2659 + move-object/from16 v0, p0
2661 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2663 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2665 + move-result-object v5
2667 + const/4 v6, 0x0
2669 + const-string/jumbo v7, "phoneCall"
2671 + const/4 v8, 0x0
2673 + invoke-virtual {v3, v5, v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
2675 + goto/16 :goto_ba
2677 + :cond_175
2678 + invoke-virtual/range {v20 .. v20}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
2680 + move-result v3
2682 + if-nez v3, :cond_1ae
2684 + const-string v3, "Instrumentation"
2686 + new-instance v5, Ljava/lang/StringBuilder;
2688 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
2690 + const-string v6, "PDroid:Instrumentation:execStartActivity: Call allowed: Settings permit "
2692 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2694 + move-result-object v5
2696 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2698 + move-result-object v6
2700 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2702 + move-result-object v5
2704 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2706 + move-result-object v5
2708 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2710 + const/16 v16, 0x1
2712 + move-object/from16 v0, p0
2714 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2716 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2718 + move-result-object v5
2720 + invoke-virtual/range {v20 .. v20}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
2722 + move-result v6
2724 + const-string/jumbo v7, "phoneCall"
2726 + const/4 v8, 0x0
2728 + invoke-virtual {v3, v5, v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
2730 + goto/16 :goto_ba
2732 + :cond_1ae
2733 + const-string v3, "Instrumentation"
2735 + new-instance v5, Ljava/lang/StringBuilder;
2737 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
2739 + const-string v6, "PDroid:Instrumentation:execStartActivity: Call denied: Settings deny "
2741 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2743 + move-result-object v5
2745 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2747 + move-result-object v6
2749 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2751 + move-result-object v5
2753 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2755 + move-result-object v5
2757 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2759 + const/16 v16, 0x0
2761 + move-object/from16 v22, p1
2763 + new-instance v3, Ljava/lang/Thread;
2765 + new-instance v5, Landroid/app/Instrumentation$1;
2767 + move-object/from16 v0, p0
2769 + move-object/from16 v1, v22
2771 + invoke-direct {v5, v0, v1}, Landroid/app/Instrumentation$1;-><init>(Landroid/app/Instrumentation;Landroid/content/Context;)V
2773 + invoke-direct {v3, v5}, Ljava/lang/Thread;-><init>(Ljava/lang/Runnable;)V
2775 + invoke-virtual {v3}, Ljava/lang/Thread;->start()V
2777 + move-object/from16 v0, p0
2779 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
2781 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2783 + move-result-object v5
2785 + invoke-virtual/range {v20 .. v20}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
2787 + move-result v6
2789 + const-string/jumbo v7, "phoneCall"
2791 + const/4 v8, 0x0
2793 + invoke-virtual {v3, v5, v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
2794 + :try_end_1f2
2795 + .catch Ljava/lang/Exception; {:try_start_12e .. :try_end_1f2} :catch_10c
2797 + goto/16 :goto_ba
2799 + :cond_1f4
2800 + const-string v3, "Instrumentation"
2802 + const-string v5, "PDroid:Instrumentation:execStartActivity: Exception occurred handling intent for unknown package"
2804 + move-object/from16 v0, v18
2806 + invoke-static {v3, v5, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
2808 + goto/16 :goto_ba
2810 + :cond_1ff
2811 + const/4 v3, 0x0
2813 + goto/16 :goto_102
2815 + :cond_202
2816 + add-int/lit8 v19, v19, 0x1
2818 + goto/16 :goto_cf
2820 + :cond_206
2821 + :try_start_206
2822 + monitor-exit v5
2823 + :try_end_207
2824 + .catchall {:try_start_206 .. :try_end_207} :catchall_221
2826 + :cond_207
2827 + if-nez v16, :cond_224
2829 + :try_start_209
2830 + new-instance v3, Landroid/app/Instrumentation$ActivityResult;
2832 + move/from16 v0, p6
2834 + move-object/from16 v1, p5
2836 + invoke-direct {v3, v0, v1}, Landroid/app/Instrumentation$ActivityResult;-><init>(ILandroid/content/Intent;)V
2837 + :try_end_212
2838 + .catch Ljava/lang/Exception; {:try_start_209 .. :try_end_212} :catch_214
2840 + goto/16 :goto_103
2842 + :catch_214
2843 + move-exception v18
2845 + const-string v3, "Instrumentation"
2847 + const-string v5, "PDroid:Instrumentation:execStartActivity: Exception occurred while trying to create ActivityResult"
2849 + move-object/from16 v0, v18
2851 + invoke-static {v3, v5, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
2853 + const/4 v3, 0x0
2855 + goto/16 :goto_103
2857 + :catchall_221
2858 + move-exception v3
2860 + :try_start_222
2861 + monitor-exit v5
2862 + :try_end_223
2863 + .catchall {:try_start_222 .. :try_end_223} :catchall_221
2865 + throw v3
2867 + :cond_224
2868 + :try_start_224
2869 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->migrateExtraStreamToClipData()Z
2871 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->prepareToLeaveProcess()V
2873 + invoke-static {}, Landroid/app/ActivityManagerNative;->getDefault()Landroid/app/IActivityManager;
2875 + move-result-object v3
2877 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getBasePackageName()Ljava/lang/String;
2879 + move-result-object v5
2881 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
2883 + move-result-object v6
2885 + move-object/from16 v0, p5
2887 + invoke-virtual {v0, v6}, Landroid/content/Intent;->resolveTypeIfNeeded(Landroid/content/ContentResolver;)Ljava/lang/String;
2889 + move-result-object v7
2891 + if-eqz p4, :cond_25b
2893 + move-object/from16 v0, p4
2895 + iget-object v9, v0, Landroid/app/Activity;->mEmbeddedID:Ljava/lang/String;
2897 + :goto_242
2898 + const/4 v11, 0x0
2900 + const/4 v12, 0x0
2902 + const/4 v13, 0x0
2904 + move-object/from16 v6, p5
2906 + move-object/from16 v8, p3
2908 + move/from16 v10, p6
2910 + move-object/from16 v14, p7
2912 + 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
2914 + move-result v21
2916 + move/from16 v0, v21
2918 + move-object/from16 v1, p5
2920 + invoke-static {v0, v1}, Landroid/app/Instrumentation;->checkStartActivityResult(ILjava/lang/Object;)V
2921 + :try_end_258
2922 + .catch Landroid/os/RemoteException; {:try_start_224 .. :try_end_258} :catch_25d
2924 + :goto_258
2925 + const/4 v3, 0x0
2927 + goto/16 :goto_103
2929 + :cond_25b
2930 + const/4 v9, 0x0
2932 + goto :goto_242
2934 + :catch_25d
2935 + move-exception v3
2937 + goto :goto_258
2938 +.end method
2940 +.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;
2941 + .registers 33
2943 + move-object/from16 v4, p2
2945 + check-cast v4, Landroid/app/IApplicationThread;
2947 + const/16 v17, 0x1
2949 + :try_start_6
2950 + const-string v3, "Instrumentation"
2952 + new-instance v5, Ljava/lang/StringBuilder;
2954 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
2956 + const-string v6, "PDroid:Instrumentation:execStartActivity (with UserHandle): execStartActivity for "
2958 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2960 + move-result-object v5
2962 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
2964 + move-result-object v6
2966 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2968 + move-result-object v5
2970 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2972 + move-result-object v5
2974 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
2976 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->getAction()Ljava/lang/String;
2978 + move-result-object v3
2980 + if-eqz v3, :cond_ba
2982 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->getAction()Ljava/lang/String;
2984 + move-result-object v3
2986 + const-string v5, "android.intent.action.CALL"
2988 + invoke-virtual {v3, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
2990 + move-result v3
2992 + if-nez v3, :cond_40
2994 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->getAction()Ljava/lang/String;
2996 + move-result-object v3
2998 + const-string v5, "android.intent.action.DIAL"
3000 + invoke-virtual {v3, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
3002 + move-result v3
3004 + if-eqz v3, :cond_ba
3006 + :cond_40
3007 + const/16 v17, 0x0
3009 + const-string v3, "Instrumentation"
3011 + new-instance v5, Ljava/lang/StringBuilder;
3013 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
3015 + const-string v6, "PDroid:Instrumentation:execStartActivity (with UserHandle): Intent action = Intent.ACTION_CALL or Intent.ACTION_DIAL for "
3017 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3019 + move-result-object v5
3021 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3023 + move-result-object v6
3025 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3027 + move-result-object v5
3029 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3031 + move-result-object v5
3033 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3035 + move-object/from16 v0, p0
3037 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3039 + if-eqz v3, :cond_6e
3041 + move-object/from16 v0, p0
3043 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3045 + invoke-virtual {v3}, Landroid/privacy/PrivacySettingsManager;->isServiceAvailable()Z
3047 + move-result v3
3049 + if-nez v3, :cond_130
3051 + :cond_6e
3052 + new-instance v3, Landroid/privacy/PrivacySettingsManager;
3054 + const-string/jumbo v5, "privacy"
3056 + invoke-static {v5}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
3058 + move-result-object v5
3060 + invoke-static {v5}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
3062 + move-result-object v5
3064 + move-object/from16 v0, p1
3066 + invoke-direct {v3, v0, v5}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
3068 + move-object/from16 v0, p0
3070 + iput-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3072 + move-object/from16 v0, p0
3074 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3076 + if-eqz v3, :cond_106
3078 + const-string v3, "Instrumentation"
3080 + const-string v5, "PDroid:Instrumentation:execStartActivity (with UserHandle): Obtained privacy service"
3082 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3084 + :goto_91
3085 + move-object/from16 v0, p0
3087 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3089 + if-eqz v3, :cond_a1
3091 + move-object/from16 v0, p0
3093 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3095 + invoke-virtual {v3}, Landroid/privacy/PrivacySettingsManager;->isServiceAvailable()Z
3097 + move-result v3
3099 + if-nez v3, :cond_139
3101 + :cond_a1
3102 + const-string v3, "Instrumentation"
3104 + const-string v5, "PDroid:Instrumentation:execStartActivity (with UserHandle): Privacy service not available: rejecting call attempt"
3106 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3108 + const/16 v17, 0x0
3110 + move-object/from16 v0, p0
3112 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3114 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3116 + move-result-object v5
3118 + const/4 v6, 0x1
3120 + const-string/jumbo v7, "phoneCall"
3122 + const/4 v8, 0x0
3124 + invoke-virtual {v3, v5, v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
3125 + :try_end_ba
3126 + .catch Ljava/lang/Exception; {:try_start_6 .. :try_end_ba} :catch_10e
3128 + :cond_ba
3129 + :goto_ba
3130 + move-object/from16 v0, p0
3132 + iget-object v3, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
3134 + if-eqz v3, :cond_209
3136 + move-object/from16 v0, p0
3138 + iget-object v5, v0, Landroid/app/Instrumentation;->mSync:Ljava/lang/Object;
3140 + monitor-enter v5
3142 + :try_start_c5
3143 + move-object/from16 v0, p0
3145 + iget-object v3, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
3147 + invoke-interface {v3}, Ljava/util/List;->size()I
3149 + move-result v16
3151 + const/16 v20, 0x0
3153 + :goto_cf
3154 + move/from16 v0, v20
3156 + move/from16 v1, v16
3158 + if-ge v0, v1, :cond_208
3160 + move-object/from16 v0, p0
3162 + iget-object v3, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
3164 + move/from16 v0, v20
3166 + invoke-interface {v3, v0}, Ljava/util/List;->get(I)Ljava/lang/Object;
3168 + move-result-object v18
3170 + check-cast v18, Landroid/app/Instrumentation$ActivityMonitor;
3172 + const/4 v3, 0x0
3174 + move-object/from16 v0, v18
3176 + move-object/from16 v1, p1
3178 + move-object/from16 v2, p5
3180 + invoke-virtual {v0, v1, v3, v2}, Landroid/app/Instrumentation$ActivityMonitor;->match(Landroid/content/Context;Landroid/app/Activity;Landroid/content/Intent;)Z
3182 + move-result v3
3184 + if-eqz v3, :cond_204
3186 + move-object/from16 v0, v18
3188 + iget v3, v0, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
3190 + add-int/lit8 v3, v3, 0x1
3192 + move-object/from16 v0, v18
3194 + iput v3, v0, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
3196 + invoke-virtual/range {v18 .. v18}, Landroid/app/Instrumentation$ActivityMonitor;->isBlocking()Z
3198 + move-result v3
3200 + if-eqz v3, :cond_208
3202 + if-ltz p6, :cond_201
3204 + invoke-virtual/range {v18 .. v18}, Landroid/app/Instrumentation$ActivityMonitor;->getResult()Landroid/app/Instrumentation$ActivityResult;
3206 + move-result-object v3
3208 + :goto_104
3209 + monitor-exit v5
3210 + :try_end_105
3211 + .catchall {:try_start_c5 .. :try_end_105} :catchall_223
3213 + :goto_105
3214 + return-object v3
3216 + :cond_106
3217 + :try_start_106
3218 + const-string v3, "Instrumentation"
3220 + const-string v5, "PDroid:Instrumentation:execStartActivity (with UserHandle): Privacy service not obtained"
3222 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3223 + :try_end_10d
3224 + .catch Ljava/lang/Exception; {:try_start_106 .. :try_end_10d} :catch_10e
3226 + goto :goto_91
3228 + :catch_10e
3229 + move-exception v19
3231 + if-eqz p1, :cond_1f6
3233 + const-string v3, "Instrumentation"
3235 + new-instance v5, Ljava/lang/StringBuilder;
3237 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
3239 + const-string v6, "PDroid:Instrumentation:execStartActivity (with UserHandle): Exception occurred handling intent for "
3241 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3243 + move-result-object v5
3245 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3247 + move-result-object v6
3249 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3251 + move-result-object v5
3253 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3255 + move-result-object v5
3257 + move-object/from16 v0, v19
3259 + invoke-static {v3, v5, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
3261 + goto :goto_ba
3263 + :cond_130
3264 + :try_start_130
3265 + const-string v3, "Instrumentation"
3267 + const-string v5, "PDroid:Instrumentation:execStartActivity (with UserHandle): Already had privacy service"
3269 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3271 + goto/16 :goto_91
3273 + :cond_139
3274 + move-object/from16 v0, p0
3276 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3278 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3280 + move-result-object v5
3282 + invoke-virtual {v3, v5}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
3284 + move-result-object v21
3286 + if-nez v21, :cond_177
3288 + const-string v3, "Instrumentation"
3290 + new-instance v5, Ljava/lang/StringBuilder;
3292 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
3294 + const-string v6, "PDroid:Instrumentation:execStartActivity (with UserHandle): Call allowed: No settings for package: "
3296 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3298 + move-result-object v5
3300 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3302 + move-result-object v6
3304 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3306 + move-result-object v5
3308 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3310 + move-result-object v5
3312 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3314 + const/16 v17, 0x1
3316 + move-object/from16 v0, p0
3318 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3320 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3322 + move-result-object v5
3324 + const/4 v6, 0x0
3326 + const-string/jumbo v7, "phoneCall"
3328 + const/4 v8, 0x0
3330 + invoke-virtual {v3, v5, v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
3332 + goto/16 :goto_ba
3334 + :cond_177
3335 + invoke-virtual/range {v21 .. v21}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
3337 + move-result v3
3339 + if-nez v3, :cond_1b0
3341 + const-string v3, "Instrumentation"
3343 + new-instance v5, Ljava/lang/StringBuilder;
3345 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
3347 + const-string v6, "PDroid:Instrumentation:execStartActivity (with UserHandle): Call allowed: Settings permit "
3349 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3351 + move-result-object v5
3353 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3355 + move-result-object v6
3357 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3359 + move-result-object v5
3361 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3363 + move-result-object v5
3365 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3367 + const/16 v17, 0x1
3369 + move-object/from16 v0, p0
3371 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3373 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3375 + move-result-object v5
3377 + invoke-virtual/range {v21 .. v21}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
3379 + move-result v6
3381 + const-string/jumbo v7, "phoneCall"
3383 + const/4 v8, 0x0
3385 + invoke-virtual {v3, v5, v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
3387 + goto/16 :goto_ba
3389 + :cond_1b0
3390 + const-string v3, "Instrumentation"
3392 + new-instance v5, Ljava/lang/StringBuilder;
3394 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
3396 + const-string v6, "PDroid:Instrumentation:execStartActivity (with UserHandle): Call denied: Settings deny "
3398 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3400 + move-result-object v5
3402 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3404 + move-result-object v6
3406 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3408 + move-result-object v5
3410 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3412 + move-result-object v5
3414 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3416 + move-object/from16 v23, p1
3418 + const/16 v17, 0x0
3420 + new-instance v3, Ljava/lang/Thread;
3422 + new-instance v5, Landroid/app/Instrumentation$4;
3424 + move-object/from16 v0, p0
3426 + move-object/from16 v1, v23
3428 + invoke-direct {v5, v0, v1}, Landroid/app/Instrumentation$4;-><init>(Landroid/app/Instrumentation;Landroid/content/Context;)V
3430 + invoke-direct {v3, v5}, Ljava/lang/Thread;-><init>(Ljava/lang/Runnable;)V
3432 + invoke-virtual {v3}, Ljava/lang/Thread;->start()V
3434 + move-object/from16 v0, p0
3436 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3438 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3440 + move-result-object v5
3442 + invoke-virtual/range {v21 .. v21}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
3444 + move-result v6
3446 + const-string/jumbo v7, "phoneCall"
3448 + const/4 v8, 0x0
3450 + invoke-virtual {v3, v5, v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
3451 + :try_end_1f4
3452 + .catch Ljava/lang/Exception; {:try_start_130 .. :try_end_1f4} :catch_10e
3454 + goto/16 :goto_ba
3456 + :cond_1f6
3457 + const-string v3, "Instrumentation"
3459 + const-string v5, "PDroid:Instrumentation:execStartActivity (with UserHandle): Exception occurred handling intent for unknown package"
3461 + move-object/from16 v0, v19
3463 + invoke-static {v3, v5, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
3465 + goto/16 :goto_ba
3467 + :cond_201
3468 + const/4 v3, 0x0
3470 + goto/16 :goto_104
3472 + :cond_204
3473 + add-int/lit8 v20, v20, 0x1
3475 + goto/16 :goto_cf
3477 + :cond_208
3478 + :try_start_208
3479 + monitor-exit v5
3480 + :try_end_209
3481 + .catchall {:try_start_208 .. :try_end_209} :catchall_223
3483 + :cond_209
3484 + if-nez v17, :cond_226
3486 + :try_start_20b
3487 + new-instance v3, Landroid/app/Instrumentation$ActivityResult;
3489 + move/from16 v0, p6
3491 + move-object/from16 v1, p5
3493 + invoke-direct {v3, v0, v1}, Landroid/app/Instrumentation$ActivityResult;-><init>(ILandroid/content/Intent;)V
3494 + :try_end_214
3495 + .catch Ljava/lang/Exception; {:try_start_20b .. :try_end_214} :catch_216
3497 + goto/16 :goto_105
3499 + :catch_216
3500 + move-exception v19
3502 + const-string v3, "Instrumentation"
3504 + const-string v5, "PDroid:Instrumentation:execStartActivity (with UserHandle): Exception occurred while trying to create ActivityResult"
3506 + move-object/from16 v0, v19
3508 + invoke-static {v3, v5, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
3510 + const/4 v3, 0x0
3512 + goto/16 :goto_105
3514 + :catchall_223
3515 + move-exception v3
3517 + :try_start_224
3518 + monitor-exit v5
3519 + :try_end_225
3520 + .catchall {:try_start_224 .. :try_end_225} :catchall_223
3522 + throw v3
3524 + :cond_226
3525 + :try_start_226
3526 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->migrateExtraStreamToClipData()Z
3528 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->prepareToLeaveProcess()V
3530 + invoke-static {}, Landroid/app/ActivityManagerNative;->getDefault()Landroid/app/IActivityManager;
3532 + move-result-object v3
3534 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getBasePackageName()Ljava/lang/String;
3536 + move-result-object v5
3538 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
3540 + move-result-object v6
3542 + move-object/from16 v0, p5
3544 + invoke-virtual {v0, v6}, Landroid/content/Intent;->resolveTypeIfNeeded(Landroid/content/ContentResolver;)Ljava/lang/String;
3546 + move-result-object v7
3548 + if-eqz p4, :cond_261
3550 + move-object/from16 v0, p4
3552 + iget-object v9, v0, Landroid/app/Activity;->mEmbeddedID:Ljava/lang/String;
3554 + :goto_244
3555 + const/4 v11, 0x0
3557 + const/4 v12, 0x0
3559 + const/4 v13, 0x0
3561 + invoke-virtual/range {p8 .. p8}, Landroid/os/UserHandle;->getIdentifier()I
3563 + move-result v15
3565 + move-object/from16 v6, p5
3567 + move-object/from16 v8, p3
3569 + move/from16 v10, p6
3571 + move-object/from16 v14, p7
3573 + 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
3575 + move-result v22
3577 + move/from16 v0, v22
3579 + move-object/from16 v1, p5
3581 + invoke-static {v0, v1}, Landroid/app/Instrumentation;->checkStartActivityResult(ILjava/lang/Object;)V
3582 + :try_end_25e
3583 + .catch Landroid/os/RemoteException; {:try_start_226 .. :try_end_25e} :catch_263
3585 + :goto_25e
3586 + const/4 v3, 0x0
3588 + goto/16 :goto_105
3590 + :cond_261
3591 + const/4 v9, 0x0
3593 + goto :goto_244
3595 + :catch_263
3596 + move-exception v3
3598 + goto :goto_25e
3599 +.end method
3601 +.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;
3602 + .registers 31
3604 + move-object/from16 v4, p2
3606 + check-cast v4, Landroid/app/IApplicationThread;
3608 + const/16 v16, 0x1
3610 + :try_start_6
3611 + const-string v3, "Instrumentation"
3613 + new-instance v5, Ljava/lang/StringBuilder;
3615 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
3617 + const-string v6, "PDroid:Instrumentation:execStartActivity (with Fragments): execStartActivity for "
3619 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3621 + move-result-object v5
3623 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3625 + move-result-object v6
3627 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3629 + move-result-object v5
3631 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3633 + move-result-object v5
3635 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3637 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->getAction()Ljava/lang/String;
3639 + move-result-object v3
3641 + if-eqz v3, :cond_ba
3643 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->getAction()Ljava/lang/String;
3645 + move-result-object v3
3647 + const-string v5, "android.intent.action.CALL"
3649 + invoke-virtual {v3, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
3651 + move-result v3
3653 + if-nez v3, :cond_40
3655 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->getAction()Ljava/lang/String;
3657 + move-result-object v3
3659 + const-string v5, "android.intent.action.DIAL"
3661 + invoke-virtual {v3, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
3663 + move-result v3
3665 + if-eqz v3, :cond_ba
3667 + :cond_40
3668 + const/16 v16, 0x0
3670 + const-string v3, "Instrumentation"
3672 + new-instance v5, Ljava/lang/StringBuilder;
3674 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
3676 + const-string v6, "PDroid:Instrumentation:execStartActivity (with Fragments): Intent action = Intent.ACTION_CALL or Intent.ACTION_DIAL for "
3678 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3680 + move-result-object v5
3682 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3684 + move-result-object v6
3686 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3688 + move-result-object v5
3690 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3692 + move-result-object v5
3694 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3696 + move-object/from16 v0, p0
3698 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3700 + if-eqz v3, :cond_6e
3702 + move-object/from16 v0, p0
3704 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3706 + invoke-virtual {v3}, Landroid/privacy/PrivacySettingsManager;->isServiceAvailable()Z
3708 + move-result v3
3710 + if-nez v3, :cond_12e
3712 + :cond_6e
3713 + new-instance v3, Landroid/privacy/PrivacySettingsManager;
3715 + const-string/jumbo v5, "privacy"
3717 + invoke-static {v5}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
3719 + move-result-object v5
3721 + invoke-static {v5}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
3723 + move-result-object v5
3725 + move-object/from16 v0, p1
3727 + invoke-direct {v3, v0, v5}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
3729 + move-object/from16 v0, p0
3731 + iput-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3733 + move-object/from16 v0, p0
3735 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3737 + if-eqz v3, :cond_104
3739 + const-string v3, "Instrumentation"
3741 + const-string v5, "PDroid:Instrumentation:execStartActivity (with Fragments): Obtained privacy service"
3743 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3745 + :goto_91
3746 + move-object/from16 v0, p0
3748 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3750 + if-eqz v3, :cond_a1
3752 + move-object/from16 v0, p0
3754 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3756 + invoke-virtual {v3}, Landroid/privacy/PrivacySettingsManager;->isServiceAvailable()Z
3758 + move-result v3
3760 + if-nez v3, :cond_137
3762 + :cond_a1
3763 + const-string v3, "Instrumentation"
3765 + const-string v5, "PDroid:Instrumentation:execStartActivity (with Fragments): Privacy service not available: rejecting call attempt"
3767 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3769 + const/16 v16, 0x0
3771 + move-object/from16 v0, p0
3773 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3775 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3777 + move-result-object v5
3779 + const/4 v6, 0x1
3781 + const-string/jumbo v7, "phoneCall"
3783 + const/4 v8, 0x0
3785 + invoke-virtual {v3, v5, v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
3786 + :try_end_ba
3787 + .catch Ljava/lang/Exception; {:try_start_6 .. :try_end_ba} :catch_10c
3789 + :cond_ba
3790 + :goto_ba
3791 + move-object/from16 v0, p0
3793 + iget-object v3, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
3795 + if-eqz v3, :cond_207
3797 + move-object/from16 v0, p0
3799 + iget-object v5, v0, Landroid/app/Instrumentation;->mSync:Ljava/lang/Object;
3801 + monitor-enter v5
3803 + :try_start_c5
3804 + move-object/from16 v0, p0
3806 + iget-object v3, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
3808 + invoke-interface {v3}, Ljava/util/List;->size()I
3810 + move-result v15
3812 + const/16 v19, 0x0
3814 + :goto_cf
3815 + move/from16 v0, v19
3817 + if-ge v0, v15, :cond_206
3819 + move-object/from16 v0, p0
3821 + iget-object v3, v0, Landroid/app/Instrumentation;->mActivityMonitors:Ljava/util/List;
3823 + move/from16 v0, v19
3825 + invoke-interface {v3, v0}, Ljava/util/List;->get(I)Ljava/lang/Object;
3827 + move-result-object v17
3829 + check-cast v17, Landroid/app/Instrumentation$ActivityMonitor;
3831 + const/4 v3, 0x0
3833 + move-object/from16 v0, v17
3835 + move-object/from16 v1, p1
3837 + move-object/from16 v2, p5
3839 + invoke-virtual {v0, v1, v3, v2}, Landroid/app/Instrumentation$ActivityMonitor;->match(Landroid/content/Context;Landroid/app/Activity;Landroid/content/Intent;)Z
3841 + move-result v3
3843 + if-eqz v3, :cond_202
3845 + move-object/from16 v0, v17
3847 + iget v3, v0, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
3849 + add-int/lit8 v3, v3, 0x1
3851 + move-object/from16 v0, v17
3853 + iput v3, v0, Landroid/app/Instrumentation$ActivityMonitor;->mHits:I
3855 + invoke-virtual/range {v17 .. v17}, Landroid/app/Instrumentation$ActivityMonitor;->isBlocking()Z
3857 + move-result v3
3859 + if-eqz v3, :cond_206
3861 + if-ltz p6, :cond_1ff
3863 + invoke-virtual/range {v17 .. v17}, Landroid/app/Instrumentation$ActivityMonitor;->getResult()Landroid/app/Instrumentation$ActivityResult;
3865 + move-result-object v3
3867 + :goto_102
3868 + monitor-exit v5
3869 + :try_end_103
3870 + .catchall {:try_start_c5 .. :try_end_103} :catchall_221
3872 + :goto_103
3873 + return-object v3
3875 + :cond_104
3876 + :try_start_104
3877 + const-string v3, "Instrumentation"
3879 + const-string v5, "PDroid:Instrumentation:execStartActivity (with Fragments): Privacy service not obtained"
3881 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3882 + :try_end_10b
3883 + .catch Ljava/lang/Exception; {:try_start_104 .. :try_end_10b} :catch_10c
3885 + goto :goto_91
3887 + :catch_10c
3888 + move-exception v18
3890 + if-eqz p1, :cond_1f4
3892 + const-string v3, "Instrumentation"
3894 + new-instance v5, Ljava/lang/StringBuilder;
3896 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
3898 + const-string v6, "PDroid:Instrumentation:execStartActivity (with Fragments): Exception occurred handling intent for "
3900 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3902 + move-result-object v5
3904 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3906 + move-result-object v6
3908 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3910 + move-result-object v5
3912 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3914 + move-result-object v5
3916 + move-object/from16 v0, v18
3918 + invoke-static {v3, v5, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
3920 + goto :goto_ba
3922 + :cond_12e
3923 + :try_start_12e
3924 + const-string v3, "Instrumentation"
3926 + const-string v5, "PDroid:Instrumentation:execStartActivity (with Fragments): Already had privacy service"
3928 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3930 + goto/16 :goto_91
3932 + :cond_137
3933 + move-object/from16 v0, p0
3935 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3937 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3939 + move-result-object v5
3941 + invoke-virtual {v3, v5}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
3943 + move-result-object v20
3945 + if-nez v20, :cond_175
3947 + const-string v3, "Instrumentation"
3949 + new-instance v5, Ljava/lang/StringBuilder;
3951 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
3953 + const-string v6, "PDroid:Instrumentation:execStartActivity (with Fragments): Call allowed: No settings for package: "
3955 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3957 + move-result-object v5
3959 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3961 + move-result-object v6
3963 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3965 + move-result-object v5
3967 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3969 + move-result-object v5
3971 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
3973 + const/16 v16, 0x1
3975 + move-object/from16 v0, p0
3977 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
3979 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
3981 + move-result-object v5
3983 + const/4 v6, 0x0
3985 + const-string/jumbo v7, "phoneCall"
3987 + const/4 v8, 0x0
3989 + invoke-virtual {v3, v5, v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
3991 + goto/16 :goto_ba
3993 + :cond_175
3994 + invoke-virtual/range {v20 .. v20}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
3996 + move-result v3
3998 + if-nez v3, :cond_1ae
4000 + const-string v3, "Instrumentation"
4002 + new-instance v5, Ljava/lang/StringBuilder;
4004 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
4006 + const-string v6, "PDroid:Instrumentation:execStartActivity (with Fragments): Call allowed: Settings permit "
4008 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4010 + move-result-object v5
4012 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
4014 + move-result-object v6
4016 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4018 + move-result-object v5
4020 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
4022 + move-result-object v5
4024 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
4026 + const/16 v16, 0x1
4028 + move-object/from16 v0, p0
4030 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
4032 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
4034 + move-result-object v5
4036 + invoke-virtual/range {v20 .. v20}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
4038 + move-result v6
4040 + const-string/jumbo v7, "phoneCall"
4042 + const/4 v8, 0x0
4044 + invoke-virtual {v3, v5, v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
4046 + goto/16 :goto_ba
4048 + :cond_1ae
4049 + const-string v3, "Instrumentation"
4051 + new-instance v5, Ljava/lang/StringBuilder;
4053 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
4055 + const-string v6, "PDroid:Instrumentation:execStartActivity (with Fragments): Call denied: Settings deny "
4057 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4059 + move-result-object v5
4061 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
4063 + move-result-object v6
4065 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4067 + move-result-object v5
4069 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
4071 + move-result-object v5
4073 + invoke-static {v3, v5}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
4075 + move-object/from16 v22, p1
4077 + const/16 v16, 0x0
4079 + new-instance v3, Ljava/lang/Thread;
4081 + new-instance v5, Landroid/app/Instrumentation$3;
4083 + move-object/from16 v0, p0
4085 + move-object/from16 v1, v22
4087 + invoke-direct {v5, v0, v1}, Landroid/app/Instrumentation$3;-><init>(Landroid/app/Instrumentation;Landroid/content/Context;)V
4089 + invoke-direct {v3, v5}, Ljava/lang/Thread;-><init>(Ljava/lang/Runnable;)V
4091 + invoke-virtual {v3}, Ljava/lang/Thread;->start()V
4093 + move-object/from16 v0, p0
4095 + iget-object v3, v0, Landroid/app/Instrumentation;->mPrvSvc:Landroid/privacy/PrivacySettingsManager;
4097 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
4099 + move-result-object v5
4101 + invoke-virtual/range {v20 .. v20}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
4103 + move-result v6
4105 + const-string/jumbo v7, "phoneCall"
4107 + const/4 v8, 0x0
4109 + invoke-virtual {v3, v5, v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
4110 + :try_end_1f2
4111 + .catch Ljava/lang/Exception; {:try_start_12e .. :try_end_1f2} :catch_10c
4113 + goto/16 :goto_ba
4115 + :cond_1f4
4116 + const-string v3, "Instrumentation"
4118 + const-string v5, "PDroid:Instrumentation:execStartActivity (with Fragments): Exception occurred handling intent for unknown package"
4120 + move-object/from16 v0, v18
4122 + invoke-static {v3, v5, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
4124 + goto/16 :goto_ba
4126 + :cond_1ff
4127 + const/4 v3, 0x0
4129 + goto/16 :goto_102
4131 + :cond_202
4132 + add-int/lit8 v19, v19, 0x1
4134 + goto/16 :goto_cf
4136 + :cond_206
4137 + :try_start_206
4138 + monitor-exit v5
4139 + :try_end_207
4140 + .catchall {:try_start_206 .. :try_end_207} :catchall_221
4142 + :cond_207
4143 + if-nez v16, :cond_224
4145 + :try_start_209
4146 + new-instance v3, Landroid/app/Instrumentation$ActivityResult;
4148 + move/from16 v0, p6
4150 + move-object/from16 v1, p5
4152 + invoke-direct {v3, v0, v1}, Landroid/app/Instrumentation$ActivityResult;-><init>(ILandroid/content/Intent;)V
4153 + :try_end_212
4154 + .catch Ljava/lang/Exception; {:try_start_209 .. :try_end_212} :catch_214
4156 + goto/16 :goto_103
4158 + :catch_214
4159 + move-exception v18
4161 + const-string v3, "Instrumentation"
4163 + const-string v5, "PDroid:Instrumentation:execStartActivity (with Fragments): Exception occurred while trying to create ActivityResult"
4165 + move-object/from16 v0, v18
4167 + invoke-static {v3, v5, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
4169 + const/4 v3, 0x0
4171 + goto/16 :goto_103
4173 + :catchall_221
4174 + move-exception v3
4176 + :try_start_222
4177 + monitor-exit v5
4178 + :try_end_223
4179 + .catchall {:try_start_222 .. :try_end_223} :catchall_221
4181 + throw v3
4183 + :cond_224
4184 + :try_start_224
4185 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->migrateExtraStreamToClipData()Z
4187 + invoke-virtual/range {p5 .. p5}, Landroid/content/Intent;->prepareToLeaveProcess()V
4189 + invoke-static {}, Landroid/app/ActivityManagerNative;->getDefault()Landroid/app/IActivityManager;
4191 + move-result-object v3
4193 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getBasePackageName()Ljava/lang/String;
4195 + move-result-object v5
4197 + invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
4199 + move-result-object v6
4201 + move-object/from16 v0, p5
4203 + invoke-virtual {v0, v6}, Landroid/content/Intent;->resolveTypeIfNeeded(Landroid/content/ContentResolver;)Ljava/lang/String;
4205 + move-result-object v7
4207 + if-eqz p4, :cond_25b
4209 + move-object/from16 v0, p4
4211 + iget-object v9, v0, Landroid/app/Fragment;->mWho:Ljava/lang/String;
4213 + :goto_242
4214 + const/4 v11, 0x0
4216 + const/4 v12, 0x0
4218 + const/4 v13, 0x0
4220 + move-object/from16 v6, p5
4222 + move-object/from16 v8, p3
4224 + move/from16 v10, p6
4226 + move-object/from16 v14, p7
4228 + 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
4230 + move-result v21
4232 + move/from16 v0, v21
4234 + move-object/from16 v1, p5
4236 + invoke-static {v0, v1}, Landroid/app/Instrumentation;->checkStartActivityResult(ILjava/lang/Object;)V
4237 + :try_end_258
4238 + .catch Landroid/os/RemoteException; {:try_start_224 .. :try_end_258} :catch_25d
4240 + :goto_258
4241 + const/4 v3, 0x0
4243 + goto/16 :goto_103
4245 + :cond_25b
4246 + const/4 v9, 0x0
4248 + goto :goto_242
4250 + :catch_25d
4251 + move-exception v3
4253 + goto :goto_258
4254 .end method
4256 .method public finish(ILandroid/os/Bundle;)V
4257 diff -Npru stock-framework/smali/android/app/WallpaperInfo.smali pdroid-framework/smali/android/app/WallpaperInfo.smali
4258 --- stock-framework/smali/android/app/WallpaperInfo.smali 2013-08-10 20:37:46.419213604 -0700
4259 +++ pdroid-framework/smali/android/app/WallpaperInfo.smali 2013-08-10 20:37:40.995213379 -0700
4260 @@ -368,7 +368,7 @@
4262 move-result-object v0
4264 - const-string v1, "mSettingsActivityName="
4265 + const-string/jumbo v1, "mSettingsActivityName="
4267 invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4269 diff -Npru stock-framework/smali/android/content/ContentResolver.smali pdroid-framework/smali/android/content/ContentResolver.smali
4270 --- stock-framework/smali/android/content/ContentResolver.smali 2013-08-10 20:37:46.171213593 -0700
4271 +++ pdroid-framework/smali/android/content/ContentResolver.smali 2013-08-10 20:37:40.631213365 -0700
4272 @@ -3757,8 +3757,8 @@
4274 invoke-virtual {v0, v10}, Landroid/os/CancellationSignal;->setRemote(Landroid/os/ICancellationSignal;)V
4275 :try_end_1f
4276 - .catchall {:try_start_c .. :try_end_1f} :catchall_d9
4277 - .catch Landroid/os/RemoteException; {:try_start_c .. :try_end_1f} :catch_c1
4278 + .catchall {:try_start_c .. :try_end_1f} :catchall_f5
4279 + .catch Landroid/os/RemoteException; {:try_start_c .. :try_end_1f} :catch_dd
4281 :cond_1f
4282 :try_start_1f
4283 @@ -3777,30 +3777,44 @@
4284 move-object/from16 v9, p5
4286 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;
4287 - :try_end_30
4288 - .catchall {:try_start_1f .. :try_end_30} :catchall_d9
4289 - .catch Landroid/os/DeadObjectException; {:try_start_1f .. :try_end_30} :catch_49
4290 - .catch Landroid/os/RemoteException; {:try_start_1f .. :try_end_30} :catch_c1
4292 move-result-object v20
4294 - :goto_31
4295 - if-nez v20, :cond_80
4296 + move-object/from16 v0, p0
4298 + iget-object v4, v0, Landroid/content/ContentResolver;->mContext:Landroid/content/Context;
4300 + move-object/from16 v0, p1
4302 + move-object/from16 v1, p2
4304 + move-object/from16 v2, v20
4306 + 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;
4307 + :try_end_3e
4308 + .catchall {:try_start_1f .. :try_end_3e} :catchall_f5
4309 + .catch Landroid/os/DeadObjectException; {:try_start_1f .. :try_end_3e} :catch_57
4310 + .catch Landroid/os/RemoteException; {:try_start_1f .. :try_end_3e} :catch_dd
4312 + move-result-object v20
4314 + :goto_3f
4315 + if-nez v20, :cond_9c
4317 const/16 v23, 0x0
4319 - if-eqz v20, :cond_3a
4320 + if-eqz v20, :cond_48
4322 invoke-interface/range {v20 .. v20}, Landroid/database/Cursor;->close()V
4324 - :cond_3a
4325 - if-eqz v3, :cond_41
4326 + :cond_48
4327 + if-eqz v3, :cond_4f
4329 move-object/from16 v0, p0
4331 invoke-virtual {v0, v3}, Landroid/content/ContentResolver;->releaseUnstableProvider(Landroid/content/IContentProvider;)Z
4333 - :cond_41
4334 + :cond_4f
4335 if-eqz v11, :cond_8
4337 move-object/from16 v0, p0
4338 @@ -3809,37 +3823,37 @@
4340 goto :goto_8
4342 - :catch_49
4343 + :catch_57
4344 move-exception v19
4346 - :try_start_4a
4347 + :try_start_58
4348 move-object/from16 v0, p0
4350 invoke-virtual {v0, v3}, Landroid/content/ContentResolver;->unstableProviderDied(Landroid/content/IContentProvider;)V
4352 invoke-virtual/range {p0 .. p1}, Landroid/content/ContentResolver;->acquireProvider(Landroid/net/Uri;)Landroid/content/IContentProvider;
4353 - :try_end_52
4354 - .catchall {:try_start_4a .. :try_end_52} :catchall_d9
4355 - .catch Landroid/os/RemoteException; {:try_start_4a .. :try_end_52} :catch_c1
4356 + :try_end_60
4357 + .catchall {:try_start_58 .. :try_end_60} :catchall_f5
4358 + .catch Landroid/os/RemoteException; {:try_start_58 .. :try_end_60} :catch_dd
4360 move-result-object v11
4362 - if-nez v11, :cond_6b
4363 + if-nez v11, :cond_79
4365 const/16 v23, 0x0
4367 - if-eqz v20, :cond_5c
4368 + if-eqz v20, :cond_6a
4370 invoke-interface/range {v20 .. v20}, Landroid/database/Cursor;->close()V
4372 - :cond_5c
4373 - if-eqz v3, :cond_63
4374 + :cond_6a
4375 + if-eqz v3, :cond_71
4377 move-object/from16 v0, p0
4379 invoke-virtual {v0, v3}, Landroid/content/ContentResolver;->releaseUnstableProvider(Landroid/content/IContentProvider;)Z
4381 - :cond_63
4382 + :cond_71
4383 if-eqz v11, :cond_8
4385 move-object/from16 v0, p0
4386 @@ -3848,8 +3862,8 @@
4388 goto :goto_8
4390 - :cond_6b
4391 - :try_start_6b
4392 + :cond_79
4393 + :try_start_79
4394 move-object/from16 v0, p0
4396 iget-object v12, v0, Landroid/content/ContentResolver;->mPackageName:Ljava/lang/String;
4397 @@ -3870,9 +3884,23 @@
4399 move-result-object v20
4401 - goto :goto_31
4402 + move-object/from16 v0, p0
4404 + iget-object v4, v0, Landroid/content/ContentResolver;->mContext:Landroid/content/Context;
4406 + move-object/from16 v0, p1
4408 + move-object/from16 v1, p2
4410 + move-object/from16 v2, v20
4412 + 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;
4414 + move-result-object v20
4416 + goto :goto_3f
4418 - :cond_80
4419 + :cond_9c
4420 invoke-interface/range {v20 .. v20}, Landroid/database/Cursor;->getCount()I
4422 invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J
4423 @@ -3895,11 +3923,11 @@
4425 new-instance v23, Landroid/content/ContentResolver$CursorWrapperInner;
4427 - if-eqz v11, :cond_bc
4428 + if-eqz v11, :cond_d8
4430 move-object v4, v11
4432 - :goto_9b
4433 + :goto_b7
4434 move-object/from16 v0, v23
4436 move-object/from16 v1, p0
4437 @@ -3907,26 +3935,26 @@
4438 move-object/from16 v2, v20
4440 invoke-direct {v0, v1, v2, v4}, Landroid/content/ContentResolver$CursorWrapperInner;-><init>(Landroid/content/ContentResolver;Landroid/database/Cursor;Landroid/content/IContentProvider;)V
4441 - :try_end_a4
4442 - .catchall {:try_start_6b .. :try_end_a4} :catchall_d9
4443 - .catch Landroid/os/RemoteException; {:try_start_6b .. :try_end_a4} :catch_c1
4444 + :try_end_c0
4445 + .catchall {:try_start_79 .. :try_end_c0} :catchall_f5
4446 + .catch Landroid/os/RemoteException; {:try_start_79 .. :try_end_c0} :catch_dd
4448 const/4 v11, 0x0
4450 const/16 v20, 0x0
4452 - if-eqz v20, :cond_ac
4453 + if-eqz v20, :cond_c8
4455 invoke-interface/range {v20 .. v20}, Landroid/database/Cursor;->close()V
4457 - :cond_ac
4458 - if-eqz v3, :cond_b3
4459 + :cond_c8
4460 + if-eqz v3, :cond_cf
4462 move-object/from16 v0, p0
4464 invoke-virtual {v0, v3}, Landroid/content/ContentResolver;->releaseUnstableProvider(Landroid/content/IContentProvider;)Z
4466 - :cond_b3
4467 + :cond_cf
4468 if-eqz v11, :cond_8
4470 move-object/from16 v0, p0
4471 @@ -3935,34 +3963,34 @@
4473 goto/16 :goto_8
4475 - :cond_bc
4476 - :try_start_bc
4477 + :cond_d8
4478 + :try_start_d8
4479 invoke-virtual/range {p0 .. p1}, Landroid/content/ContentResolver;->acquireProvider(Landroid/net/Uri;)Landroid/content/IContentProvider;
4480 - :try_end_bf
4481 - .catchall {:try_start_bc .. :try_end_bf} :catchall_d9
4482 - .catch Landroid/os/RemoteException; {:try_start_bc .. :try_end_bf} :catch_c1
4483 + :try_end_db
4484 + .catchall {:try_start_d8 .. :try_end_db} :catchall_f5
4485 + .catch Landroid/os/RemoteException; {:try_start_d8 .. :try_end_db} :catch_dd
4487 move-result-object v4
4489 - goto :goto_9b
4490 + goto :goto_b7
4492 - :catch_c1
4493 + :catch_dd
4494 move-exception v19
4496 const/16 v23, 0x0
4498 - if-eqz v20, :cond_c9
4499 + if-eqz v20, :cond_e5
4501 invoke-interface/range {v20 .. v20}, Landroid/database/Cursor;->close()V
4503 - :cond_c9
4504 - if-eqz v3, :cond_d0
4505 + :cond_e5
4506 + if-eqz v3, :cond_ec
4508 move-object/from16 v0, p0
4510 invoke-virtual {v0, v3}, Landroid/content/ContentResolver;->releaseUnstableProvider(Landroid/content/IContentProvider;)Z
4512 - :cond_d0
4513 + :cond_ec
4514 if-eqz v11, :cond_8
4516 move-object/from16 v0, p0
4517 @@ -3971,28 +3999,28 @@
4519 goto/16 :goto_8
4521 - :catchall_d9
4522 + :catchall_f5
4523 move-exception v4
4525 - if-eqz v20, :cond_df
4526 + if-eqz v20, :cond_fb
4528 invoke-interface/range {v20 .. v20}, Landroid/database/Cursor;->close()V
4530 - :cond_df
4531 - if-eqz v3, :cond_e6
4532 + :cond_fb
4533 + if-eqz v3, :cond_102
4535 move-object/from16 v0, p0
4537 invoke-virtual {v0, v3}, Landroid/content/ContentResolver;->releaseUnstableProvider(Landroid/content/IContentProvider;)Z
4539 - :cond_e6
4540 - if-eqz v11, :cond_ed
4541 + :cond_102
4542 + if-eqz v11, :cond_109
4544 move-object/from16 v0, p0
4546 invoke-virtual {v0, v11}, Landroid/content/ContentResolver;->releaseProvider(Landroid/content/IContentProvider;)Z
4548 - :cond_ed
4549 + :cond_109
4550 throw v4
4551 .end method
4553 diff -Npru stock-framework/smali/android/content/CursorLoader.smali pdroid-framework/smali/android/content/CursorLoader.smali
4554 --- stock-framework/smali/android/content/CursorLoader.smali 2013-08-10 20:37:46.635213613 -0700
4555 +++ pdroid-framework/smali/android/content/CursorLoader.smali 2013-08-10 20:37:41.231213389 -0700
4556 @@ -201,7 +201,7 @@
4558 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
4560 - const-string v0, "mSelection="
4561 + const-string/jumbo v0, "mSelection="
4563 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
4565 @@ -211,7 +211,7 @@
4567 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
4569 - const-string v0, "mSelectionArgs="
4570 + const-string/jumbo v0, "mSelectionArgs="
4572 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
4574 @@ -225,7 +225,7 @@
4576 invoke-virtual {p3, p1}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
4578 - const-string v0, "mSortOrder="
4579 + const-string/jumbo v0, "mSortOrder="
4581 invoke-virtual {p3, v0}, Ljava/io/PrintWriter;->print(Ljava/lang/String;)V
4583 diff -Npru stock-framework/smali/android/hardware/Camera$EventHandler.smali pdroid-framework/smali/android/hardware/Camera$EventHandler.smali
4584 --- stock-framework/smali/android/hardware/Camera$EventHandler.smali 2013-08-10 20:37:47.191213637 -0700
4585 +++ pdroid-framework/smali/android/hardware/Camera$EventHandler.smali 2013-08-10 20:37:41.743213411 -0700
4586 @@ -36,418 +36,644 @@
4588 # virtual methods
4589 .method public handleMessage(Landroid/os/Message;)V
4590 - .registers 9
4591 + .registers 16
4593 - const/4 v3, 0x1
4594 + const/4 v7, 0x1
4596 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4598 + #getter for: Landroid/hardware/Camera;->privacyMode:Z
4599 + invoke-static {v0}, Landroid/hardware/Camera;->access$000(Landroid/hardware/Camera;)Z
4601 + move-result v0
4603 + if-nez v0, :cond_e
4605 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4607 + #calls: Landroid/hardware/Camera;->initiate()V
4608 + invoke-static {v0}, Landroid/hardware/Camera;->access$100(Landroid/hardware/Camera;)V
4610 + :cond_e
4611 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4613 + #calls: Landroid/hardware/Camera;->getPackageName()[Ljava/lang/String;
4614 + invoke-static {v0}, Landroid/hardware/Camera;->access$200(Landroid/hardware/Camera;)[Ljava/lang/String;
4616 + move-result-object v10
4618 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4620 + #calls: Landroid/hardware/Camera;->checkIfPackagesAllowed()I
4621 + invoke-static {v0}, Landroid/hardware/Camera;->access$300(Landroid/hardware/Camera;)I
4623 + move-result v0
4625 + const/4 v1, -0x2
4627 + if-ne v0, v1, :cond_68
4629 + const/4 v7, 0x0
4631 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4633 + const/4 v1, 0x0
4635 + #calls: Landroid/hardware/Camera;->dataAccess(Z)V
4636 + invoke-static {v0, v1}, Landroid/hardware/Camera;->access$400(Landroid/hardware/Camera;Z)V
4638 + if-eqz v10, :cond_48
4640 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4642 + #getter for: Landroid/hardware/Camera;->pSetMan:Landroid/privacy/PrivacySettingsManager;
4643 + invoke-static {v0}, Landroid/hardware/Camera;->access$500(Landroid/hardware/Camera;)Landroid/privacy/PrivacySettingsManager;
4645 + move-result-object v0
4647 + const/4 v1, 0x0
4649 + aget-object v1, v10, v1
4651 const/4 v2, 0x0
4653 - iget v4, p1, Landroid/os/Message;->what:I
4654 + const/4 v3, 0x1
4656 + const-string v4, "camera"
4658 + const/4 v5, 0x0
4660 + iget-object v6, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4662 + #getter for: Landroid/hardware/Camera;->pSetMan:Landroid/privacy/PrivacySettingsManager;
4663 + invoke-static {v6}, Landroid/hardware/Camera;->access$500(Landroid/hardware/Camera;)Landroid/privacy/PrivacySettingsManager;
4665 + move-result-object v6
4667 + const/4 v12, 0x0
4669 + aget-object v12, v10, v12
4671 + invoke-static {}, Landroid/os/Process;->myUid()I
4673 + move-result v13
4675 + invoke-virtual {v6, v12, v13}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
4677 - sparse-switch v4, :sswitch_data_158
4678 + move-result-object v6
4680 - const-string v3, "Camera"
4681 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
4683 - new-instance v4, Ljava/lang/StringBuilder;
4684 + :cond_48
4685 + :goto_48
4686 + iget v0, p1, Landroid/os/Message;->what:I
4688 - invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
4689 + sparse-switch v0, :sswitch_data_218
4691 - const-string v5, "Unknown message type "
4692 + const-string v0, "Camera"
4694 - invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4695 + new-instance v1, Ljava/lang/StringBuilder;
4697 - move-result-object v4
4698 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
4700 - iget v5, p1, Landroid/os/Message;->what:I
4701 + const-string v2, "Unknown message type "
4703 - invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
4704 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4706 - move-result-object v4
4707 + move-result-object v1
4709 + iget v2, p1, Landroid/os/Message;->what:I
4711 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
4713 + move-result-object v1
4715 - invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
4716 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
4718 - move-result-object v4
4719 + move-result-object v1
4721 - invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
4722 + invoke-static {v0, v1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
4724 - :cond_21
4725 - :goto_21
4726 + :cond_67
4727 + :goto_67
4728 return-void
4730 - :sswitch_22
4731 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4732 + :cond_68
4733 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4735 + const/4 v1, 0x1
4737 + #calls: Landroid/hardware/Camera;->dataAccess(Z)V
4738 + invoke-static {v0, v1}, Landroid/hardware/Camera;->access$400(Landroid/hardware/Camera;Z)V
4740 + if-eqz v10, :cond_48
4742 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4744 + #getter for: Landroid/hardware/Camera;->pSetMan:Landroid/privacy/PrivacySettingsManager;
4745 + invoke-static {v0}, Landroid/hardware/Camera;->access$500(Landroid/hardware/Camera;)Landroid/privacy/PrivacySettingsManager;
4747 + move-result-object v0
4749 + const/4 v1, 0x0
4751 + aget-object v1, v10, v1
4753 + const/4 v2, 0x0
4755 + const/4 v3, 0x0
4757 + const-string v4, "camera"
4759 + const/4 v5, 0x0
4761 + iget-object v6, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4763 + #getter for: Landroid/hardware/Camera;->pSetMan:Landroid/privacy/PrivacySettingsManager;
4764 + invoke-static {v6}, Landroid/hardware/Camera;->access$500(Landroid/hardware/Camera;)Landroid/privacy/PrivacySettingsManager;
4766 + move-result-object v6
4768 + const/4 v12, 0x0
4770 + aget-object v12, v10, v12
4772 + invoke-static {}, Landroid/os/Process;->myUid()I
4774 + move-result v13
4776 + invoke-virtual {v6, v12, v13}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
4778 + move-result-object v6
4780 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
4782 + goto :goto_48
4784 + :sswitch_93
4785 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4787 #getter for: Landroid/hardware/Camera;->mShutterCallback:Landroid/hardware/Camera$ShutterCallback;
4788 - invoke-static {v3}, Landroid/hardware/Camera;->access$000(Landroid/hardware/Camera;)Landroid/hardware/Camera$ShutterCallback;
4789 + invoke-static {v0}, Landroid/hardware/Camera;->access$600(Landroid/hardware/Camera;)Landroid/hardware/Camera$ShutterCallback;
4791 - move-result-object v3
4792 + move-result-object v0
4794 - if-eqz v3, :cond_21
4795 + if-eqz v0, :cond_67
4797 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4798 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4800 #getter for: Landroid/hardware/Camera;->mShutterCallback:Landroid/hardware/Camera$ShutterCallback;
4801 - invoke-static {v3}, Landroid/hardware/Camera;->access$000(Landroid/hardware/Camera;)Landroid/hardware/Camera$ShutterCallback;
4802 + invoke-static {v0}, Landroid/hardware/Camera;->access$600(Landroid/hardware/Camera;)Landroid/hardware/Camera$ShutterCallback;
4804 - move-result-object v3
4805 + move-result-object v0
4807 - invoke-interface {v3}, Landroid/hardware/Camera$ShutterCallback;->onShutter()V
4808 + invoke-interface {v0}, Landroid/hardware/Camera$ShutterCallback;->onShutter()V
4810 - goto :goto_21
4811 + goto :goto_67
4813 - :sswitch_34
4814 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4815 + :sswitch_a5
4816 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4818 #getter for: Landroid/hardware/Camera;->mRawImageCallback:Landroid/hardware/Camera$PictureCallback;
4819 - invoke-static {v3}, Landroid/hardware/Camera;->access$100(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
4820 + invoke-static {v0}, Landroid/hardware/Camera;->access$700(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
4822 + move-result-object v0
4824 - move-result-object v3
4825 + if-eqz v0, :cond_67
4827 - if-eqz v3, :cond_21
4828 + if-eqz v7, :cond_c1
4830 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4831 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4833 #getter for: Landroid/hardware/Camera;->mRawImageCallback:Landroid/hardware/Camera$PictureCallback;
4834 - invoke-static {v3}, Landroid/hardware/Camera;->access$100(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
4835 + invoke-static {v0}, Landroid/hardware/Camera;->access$700(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
4837 - move-result-object v4
4838 + move-result-object v1
4840 - iget-object v3, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
4841 + iget-object v0, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
4843 - check-cast v3, [B
4844 + check-cast v0, [B
4846 - check-cast v3, [B
4847 + check-cast v0, [B
4849 - iget-object v5, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
4850 + iget-object v2, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
4852 - invoke-interface {v4, v3, v5}, Landroid/hardware/Camera$PictureCallback;->onPictureTaken([BLandroid/hardware/Camera;)V
4853 + invoke-interface {v1, v0, v2}, Landroid/hardware/Camera$PictureCallback;->onPictureTaken([BLandroid/hardware/Camera;)V
4855 - goto :goto_21
4856 + goto :goto_67
4858 - :sswitch_4e
4859 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4860 + :cond_c1
4861 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4863 + #getter for: Landroid/hardware/Camera;->mRawImageCallback:Landroid/hardware/Camera$PictureCallback;
4864 + invoke-static {v0}, Landroid/hardware/Camera;->access$700(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
4866 + move-result-object v0
4868 + const/4 v1, 0x0
4870 + iget-object v2, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
4872 + invoke-interface {v0, v1, v2}, Landroid/hardware/Camera$PictureCallback;->onPictureTaken([BLandroid/hardware/Camera;)V
4874 + goto :goto_67
4876 + :sswitch_ce
4877 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4879 #getter for: Landroid/hardware/Camera;->mJpegCallback:Landroid/hardware/Camera$PictureCallback;
4880 - invoke-static {v3}, Landroid/hardware/Camera;->access$200(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
4881 + invoke-static {v0}, Landroid/hardware/Camera;->access$800(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
4883 - move-result-object v3
4884 + move-result-object v0
4886 - if-eqz v3, :cond_21
4887 + if-eqz v0, :cond_67
4889 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4890 + if-eqz v7, :cond_eb
4892 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4894 #getter for: Landroid/hardware/Camera;->mJpegCallback:Landroid/hardware/Camera$PictureCallback;
4895 - invoke-static {v3}, Landroid/hardware/Camera;->access$200(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
4896 + invoke-static {v0}, Landroid/hardware/Camera;->access$800(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
4898 - move-result-object v4
4899 + move-result-object v1
4901 - iget-object v3, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
4902 + iget-object v0, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
4904 - check-cast v3, [B
4905 + check-cast v0, [B
4907 - check-cast v3, [B
4908 + check-cast v0, [B
4910 - iget-object v5, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
4911 + iget-object v2, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
4913 - invoke-interface {v4, v3, v5}, Landroid/hardware/Camera$PictureCallback;->onPictureTaken([BLandroid/hardware/Camera;)V
4914 + invoke-interface {v1, v0, v2}, Landroid/hardware/Camera$PictureCallback;->onPictureTaken([BLandroid/hardware/Camera;)V
4916 - goto :goto_21
4917 + goto/16 :goto_67
4919 - :sswitch_68
4920 - iget-object v4, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4921 + :cond_eb
4922 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4924 - #getter for: Landroid/hardware/Camera;->mPreviewCallback:Landroid/hardware/Camera$PreviewCallback;
4925 - invoke-static {v4}, Landroid/hardware/Camera;->access$300(Landroid/hardware/Camera;)Landroid/hardware/Camera$PreviewCallback;
4926 + #getter for: Landroid/hardware/Camera;->mJpegCallback:Landroid/hardware/Camera$PictureCallback;
4927 + invoke-static {v0}, Landroid/hardware/Camera;->access$800(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
4929 + move-result-object v0
4931 + iget-object v1, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4933 + #calls: Landroid/hardware/Camera;->getFakeImage()[B
4934 + invoke-static {v1}, Landroid/hardware/Camera;->access$900(Landroid/hardware/Camera;)[B
4936 move-result-object v1
4938 - if-eqz v1, :cond_21
4939 + iget-object v2, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
4941 + invoke-interface {v0, v1, v2}, Landroid/hardware/Camera$PictureCallback;->onPictureTaken([BLandroid/hardware/Camera;)V
4943 - iget-object v4, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4944 + goto/16 :goto_67
4946 + :sswitch_fe
4947 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4949 + #getter for: Landroid/hardware/Camera;->mPreviewCallback:Landroid/hardware/Camera$PreviewCallback;
4950 + invoke-static {v0}, Landroid/hardware/Camera;->access$1000(Landroid/hardware/Camera;)Landroid/hardware/Camera$PreviewCallback;
4952 + move-result-object v9
4954 + if-eqz v9, :cond_67
4956 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4958 #getter for: Landroid/hardware/Camera;->mOneShot:Z
4959 - invoke-static {v4}, Landroid/hardware/Camera;->access$400(Landroid/hardware/Camera;)Z
4960 + invoke-static {v0}, Landroid/hardware/Camera;->access$1100(Landroid/hardware/Camera;)Z
4962 - move-result v4
4963 + move-result v0
4965 - if-eqz v4, :cond_8a
4966 + if-eqz v0, :cond_123
4968 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4969 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
4971 - const/4 v4, 0x0
4972 + const/4 v1, 0x0
4974 #setter for: Landroid/hardware/Camera;->mPreviewCallback:Landroid/hardware/Camera$PreviewCallback;
4975 - invoke-static {v3, v4}, Landroid/hardware/Camera;->access$302(Landroid/hardware/Camera;Landroid/hardware/Camera$PreviewCallback;)Landroid/hardware/Camera$PreviewCallback;
4976 + invoke-static {v0, v1}, Landroid/hardware/Camera;->access$1002(Landroid/hardware/Camera;Landroid/hardware/Camera$PreviewCallback;)Landroid/hardware/Camera$PreviewCallback;
4978 + :cond_114
4979 + :goto_114
4980 + if-eqz v7, :cond_133
4982 - :cond_7e
4983 - :goto_7e
4984 - iget-object v3, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
4985 + iget-object v0, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
4987 - check-cast v3, [B
4988 + check-cast v0, [B
4990 - check-cast v3, [B
4991 + check-cast v0, [B
4993 - iget-object v4, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
4994 + iget-object v1, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
4996 - invoke-interface {v1, v3, v4}, Landroid/hardware/Camera$PreviewCallback;->onPreviewFrame([BLandroid/hardware/Camera;)V
4997 + invoke-interface {v9, v0, v1}, Landroid/hardware/Camera$PreviewCallback;->onPreviewFrame([BLandroid/hardware/Camera;)V
4999 - goto :goto_21
5000 + goto/16 :goto_67
5002 - :cond_8a
5003 - iget-object v4, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5004 + :cond_123
5005 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5007 #getter for: Landroid/hardware/Camera;->mWithBuffer:Z
5008 - invoke-static {v4}, Landroid/hardware/Camera;->access$500(Landroid/hardware/Camera;)Z
5009 + invoke-static {v0}, Landroid/hardware/Camera;->access$1200(Landroid/hardware/Camera;)Z
5011 + move-result v0
5013 + if-nez v0, :cond_114
5015 - move-result v4
5016 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5018 - if-nez v4, :cond_7e
5019 + const/4 v1, 0x1
5021 - iget-object v4, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5022 + const/4 v2, 0x0
5024 #calls: Landroid/hardware/Camera;->setHasPreviewCallback(ZZ)V
5025 - invoke-static {v4, v3, v2}, Landroid/hardware/Camera;->access$600(Landroid/hardware/Camera;ZZ)V
5026 + invoke-static {v0, v1, v2}, Landroid/hardware/Camera;->access$1300(Landroid/hardware/Camera;ZZ)V
5028 + goto :goto_114
5030 + :cond_133
5031 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5033 - goto :goto_7e
5034 + #calls: Landroid/hardware/Camera;->getFakeImage()[B
5035 + invoke-static {v0}, Landroid/hardware/Camera;->access$900(Landroid/hardware/Camera;)[B
5037 + move-result-object v0
5039 - :sswitch_98
5040 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5041 + iget-object v1, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5043 + invoke-interface {v9, v0, v1}, Landroid/hardware/Camera$PreviewCallback;->onPreviewFrame([BLandroid/hardware/Camera;)V
5045 + goto/16 :goto_67
5047 + :sswitch_140
5048 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5050 #getter for: Landroid/hardware/Camera;->mPostviewCallback:Landroid/hardware/Camera$PictureCallback;
5051 - invoke-static {v3}, Landroid/hardware/Camera;->access$700(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5052 + invoke-static {v0}, Landroid/hardware/Camera;->access$1400(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5054 - move-result-object v3
5055 + move-result-object v0
5057 - if-eqz v3, :cond_21
5058 + if-eqz v0, :cond_67
5060 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5061 + if-eqz v7, :cond_15d
5063 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5065 #getter for: Landroid/hardware/Camera;->mPostviewCallback:Landroid/hardware/Camera$PictureCallback;
5066 - invoke-static {v3}, Landroid/hardware/Camera;->access$700(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5067 + invoke-static {v0}, Landroid/hardware/Camera;->access$1400(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5069 - move-result-object v4
5070 + move-result-object v1
5072 - iget-object v3, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
5073 + iget-object v0, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
5075 - check-cast v3, [B
5076 + check-cast v0, [B
5078 - check-cast v3, [B
5079 + check-cast v0, [B
5081 - iget-object v5, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5082 + iget-object v2, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5084 - invoke-interface {v4, v3, v5}, Landroid/hardware/Camera$PictureCallback;->onPictureTaken([BLandroid/hardware/Camera;)V
5085 + invoke-interface {v1, v0, v2}, Landroid/hardware/Camera$PictureCallback;->onPictureTaken([BLandroid/hardware/Camera;)V
5087 - goto/16 :goto_21
5088 + goto/16 :goto_67
5090 - :sswitch_b3
5091 - const/4 v0, 0x0
5092 + :cond_15d
5093 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5095 + #getter for: Landroid/hardware/Camera;->mPostviewCallback:Landroid/hardware/Camera$PictureCallback;
5096 + invoke-static {v0}, Landroid/hardware/Camera;->access$1400(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5098 + move-result-object v0
5100 + iget-object v1, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5102 + #calls: Landroid/hardware/Camera;->getFakeImage()[B
5103 + invoke-static {v1}, Landroid/hardware/Camera;->access$900(Landroid/hardware/Camera;)[B
5105 - iget-object v4, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5106 + move-result-object v1
5108 + iget-object v2, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5110 + invoke-interface {v0, v1, v2}, Landroid/hardware/Camera$PictureCallback;->onPictureTaken([BLandroid/hardware/Camera;)V
5112 + goto/16 :goto_67
5114 + :sswitch_170
5115 + const/4 v8, 0x0
5117 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5119 #getter for: Landroid/hardware/Camera;->mAutoFocusCallbackLock:Ljava/lang/Object;
5120 - invoke-static {v4}, Landroid/hardware/Camera;->access$800(Landroid/hardware/Camera;)Ljava/lang/Object;
5121 + invoke-static {v0}, Landroid/hardware/Camera;->access$1500(Landroid/hardware/Camera;)Ljava/lang/Object;
5123 - move-result-object v4
5124 + move-result-object v1
5126 - monitor-enter v4
5127 + monitor-enter v1
5129 - :try_start_bb
5130 - iget-object v5, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5131 + :try_start_178
5132 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5134 #getter for: Landroid/hardware/Camera;->mAutoFocusCallback:Landroid/hardware/Camera$AutoFocusCallback;
5135 - invoke-static {v5}, Landroid/hardware/Camera;->access$900(Landroid/hardware/Camera;)Landroid/hardware/Camera$AutoFocusCallback;
5136 + invoke-static {v0}, Landroid/hardware/Camera;->access$1600(Landroid/hardware/Camera;)Landroid/hardware/Camera$AutoFocusCallback;
5138 - move-result-object v0
5139 + move-result-object v8
5141 - monitor-exit v4
5142 - :try_end_c2
5143 - .catchall {:try_start_bb .. :try_end_c2} :catchall_cf
5144 + monitor-exit v1
5145 + :try_end_17f
5146 + .catchall {:try_start_178 .. :try_end_17f} :catchall_18d
5148 - if-eqz v0, :cond_21
5149 + if-eqz v8, :cond_67
5151 - iget v4, p1, Landroid/os/Message;->arg1:I
5152 + iget v0, p1, Landroid/os/Message;->arg1:I
5154 - if-nez v4, :cond_d2
5155 + if-nez v0, :cond_190
5157 - :goto_c8
5158 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5159 + const/4 v11, 0x0
5161 - invoke-interface {v0, v2, v3}, Landroid/hardware/Camera$AutoFocusCallback;->onAutoFocus(ZLandroid/hardware/Camera;)V
5162 + :goto_186
5163 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5165 - goto/16 :goto_21
5166 + invoke-interface {v8, v11, v0}, Landroid/hardware/Camera$AutoFocusCallback;->onAutoFocus(ZLandroid/hardware/Camera;)V
5168 - :catchall_cf
5169 - move-exception v3
5170 + goto/16 :goto_67
5172 - :try_start_d0
5173 - monitor-exit v4
5174 - :try_end_d1
5175 - .catchall {:try_start_d0 .. :try_end_d1} :catchall_cf
5176 + :catchall_18d
5177 + move-exception v0
5179 - throw v3
5180 + :try_start_18e
5181 + monitor-exit v1
5182 + :try_end_18f
5183 + .catchall {:try_start_18e .. :try_end_18f} :catchall_18d
5185 - :cond_d2
5186 - move v2, v3
5187 + throw v0
5189 - goto :goto_c8
5190 + :cond_190
5191 + const/4 v11, 0x1
5193 - :sswitch_d4
5194 - iget-object v4, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5195 + goto :goto_186
5197 + :sswitch_192
5198 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5200 #getter for: Landroid/hardware/Camera;->mZoomListener:Landroid/hardware/Camera$OnZoomChangeListener;
5201 - invoke-static {v4}, Landroid/hardware/Camera;->access$1000(Landroid/hardware/Camera;)Landroid/hardware/Camera$OnZoomChangeListener;
5202 + invoke-static {v0}, Landroid/hardware/Camera;->access$1700(Landroid/hardware/Camera;)Landroid/hardware/Camera$OnZoomChangeListener;
5204 - move-result-object v4
5205 + move-result-object v0
5207 - if-eqz v4, :cond_21
5208 + if-eqz v0, :cond_67
5210 - iget-object v4, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5211 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5213 #getter for: Landroid/hardware/Camera;->mZoomListener:Landroid/hardware/Camera$OnZoomChangeListener;
5214 - invoke-static {v4}, Landroid/hardware/Camera;->access$1000(Landroid/hardware/Camera;)Landroid/hardware/Camera$OnZoomChangeListener;
5215 + invoke-static {v0}, Landroid/hardware/Camera;->access$1700(Landroid/hardware/Camera;)Landroid/hardware/Camera$OnZoomChangeListener;
5217 - move-result-object v4
5218 + move-result-object v1
5220 - iget v5, p1, Landroid/os/Message;->arg1:I
5221 + iget v2, p1, Landroid/os/Message;->arg1:I
5223 - iget v6, p1, Landroid/os/Message;->arg2:I
5224 + iget v0, p1, Landroid/os/Message;->arg2:I
5226 - if-eqz v6, :cond_ef
5227 + if-eqz v0, :cond_1ae
5229 - :goto_e8
5230 - iget-object v6, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5231 + const/4 v0, 0x1
5233 - invoke-interface {v4, v5, v3, v6}, Landroid/hardware/Camera$OnZoomChangeListener;->onZoomChange(IZLandroid/hardware/Camera;)V
5234 + :goto_1a7
5235 + iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5237 - goto/16 :goto_21
5238 + invoke-interface {v1, v2, v0, v3}, Landroid/hardware/Camera$OnZoomChangeListener;->onZoomChange(IZLandroid/hardware/Camera;)V
5240 - :cond_ef
5241 - move v3, v2
5242 + goto/16 :goto_67
5244 - goto :goto_e8
5245 + :cond_1ae
5246 + const/4 v0, 0x0
5248 - :sswitch_f1
5249 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5250 + goto :goto_1a7
5252 + :sswitch_1b0
5253 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5255 #getter for: Landroid/hardware/Camera;->mFaceListener:Landroid/hardware/Camera$FaceDetectionListener;
5256 - invoke-static {v3}, Landroid/hardware/Camera;->access$1100(Landroid/hardware/Camera;)Landroid/hardware/Camera$FaceDetectionListener;
5257 + invoke-static {v0}, Landroid/hardware/Camera;->access$1800(Landroid/hardware/Camera;)Landroid/hardware/Camera$FaceDetectionListener;
5259 - move-result-object v3
5260 + move-result-object v0
5262 - if-eqz v3, :cond_21
5263 + if-eqz v0, :cond_67
5265 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5266 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5268 #getter for: Landroid/hardware/Camera;->mFaceListener:Landroid/hardware/Camera$FaceDetectionListener;
5269 - invoke-static {v3}, Landroid/hardware/Camera;->access$1100(Landroid/hardware/Camera;)Landroid/hardware/Camera$FaceDetectionListener;
5270 + invoke-static {v0}, Landroid/hardware/Camera;->access$1800(Landroid/hardware/Camera;)Landroid/hardware/Camera$FaceDetectionListener;
5272 - move-result-object v4
5273 + move-result-object v1
5275 - iget-object v3, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
5276 + iget-object v0, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
5278 - check-cast v3, [Landroid/hardware/Camera$Face;
5279 + check-cast v0, [Landroid/hardware/Camera$Face;
5281 - check-cast v3, [Landroid/hardware/Camera$Face;
5282 + check-cast v0, [Landroid/hardware/Camera$Face;
5284 - iget-object v5, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5285 + iget-object v2, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5287 - invoke-interface {v4, v3, v5}, Landroid/hardware/Camera$FaceDetectionListener;->onFaceDetection([Landroid/hardware/Camera$Face;Landroid/hardware/Camera;)V
5288 + invoke-interface {v1, v0, v2}, Landroid/hardware/Camera$FaceDetectionListener;->onFaceDetection([Landroid/hardware/Camera$Face;Landroid/hardware/Camera;)V
5290 - goto/16 :goto_21
5291 + goto/16 :goto_67
5293 - :sswitch_10c
5294 - const-string v3, "Camera"
5295 + :sswitch_1cb
5296 + const-string v0, "Camera"
5298 - new-instance v4, Ljava/lang/StringBuilder;
5299 + new-instance v1, Ljava/lang/StringBuilder;
5301 - invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
5302 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
5304 - const-string v5, "Error "
5305 + const-string v2, "Error "
5307 - invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
5308 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
5310 - move-result-object v4
5311 + move-result-object v1
5313 - iget v5, p1, Landroid/os/Message;->arg1:I
5314 + iget v2, p1, Landroid/os/Message;->arg1:I
5316 - invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
5317 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
5319 - move-result-object v4
5320 + move-result-object v1
5322 - invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
5323 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
5325 - move-result-object v4
5326 + move-result-object v1
5328 - invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
5329 + invoke-static {v0, v1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
5331 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5332 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5334 #getter for: Landroid/hardware/Camera;->mErrorCallback:Landroid/hardware/Camera$ErrorCallback;
5335 - invoke-static {v3}, Landroid/hardware/Camera;->access$1200(Landroid/hardware/Camera;)Landroid/hardware/Camera$ErrorCallback;
5336 + invoke-static {v0}, Landroid/hardware/Camera;->access$1900(Landroid/hardware/Camera;)Landroid/hardware/Camera$ErrorCallback;
5338 - move-result-object v3
5339 + move-result-object v0
5341 - if-eqz v3, :cond_21
5342 + if-eqz v0, :cond_67
5344 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5345 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5347 #getter for: Landroid/hardware/Camera;->mErrorCallback:Landroid/hardware/Camera$ErrorCallback;
5348 - invoke-static {v3}, Landroid/hardware/Camera;->access$1200(Landroid/hardware/Camera;)Landroid/hardware/Camera$ErrorCallback;
5349 + invoke-static {v0}, Landroid/hardware/Camera;->access$1900(Landroid/hardware/Camera;)Landroid/hardware/Camera$ErrorCallback;
5351 - move-result-object v3
5352 + move-result-object v0
5354 - iget v4, p1, Landroid/os/Message;->arg1:I
5355 + iget v1, p1, Landroid/os/Message;->arg1:I
5357 - iget-object v5, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5358 + iget-object v2, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5360 - invoke-interface {v3, v4, v5}, Landroid/hardware/Camera$ErrorCallback;->onError(ILandroid/hardware/Camera;)V
5361 + invoke-interface {v0, v1, v2}, Landroid/hardware/Camera$ErrorCallback;->onError(ILandroid/hardware/Camera;)V
5363 - goto/16 :goto_21
5364 + goto/16 :goto_67
5366 - :sswitch_13d
5367 - iget-object v4, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5368 + :sswitch_1fc
5369 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5371 #getter for: Landroid/hardware/Camera;->mAutoFocusMoveCallback:Landroid/hardware/Camera$AutoFocusMoveCallback;
5372 - invoke-static {v4}, Landroid/hardware/Camera;->access$1300(Landroid/hardware/Camera;)Landroid/hardware/Camera$AutoFocusMoveCallback;
5373 + invoke-static {v0}, Landroid/hardware/Camera;->access$2000(Landroid/hardware/Camera;)Landroid/hardware/Camera$AutoFocusMoveCallback;
5375 - move-result-object v4
5376 + move-result-object v0
5378 - if-eqz v4, :cond_21
5379 + if-eqz v0, :cond_67
5381 - iget-object v4, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5382 + iget-object v0, p0, Landroid/hardware/Camera$EventHandler;->this$0:Landroid/hardware/Camera;
5384 #getter for: Landroid/hardware/Camera;->mAutoFocusMoveCallback:Landroid/hardware/Camera$AutoFocusMoveCallback;
5385 - invoke-static {v4}, Landroid/hardware/Camera;->access$1300(Landroid/hardware/Camera;)Landroid/hardware/Camera$AutoFocusMoveCallback;
5386 + invoke-static {v0}, Landroid/hardware/Camera;->access$2000(Landroid/hardware/Camera;)Landroid/hardware/Camera$AutoFocusMoveCallback;
5388 - move-result-object v4
5389 + move-result-object v1
5391 - iget v5, p1, Landroid/os/Message;->arg1:I
5392 + iget v0, p1, Landroid/os/Message;->arg1:I
5394 - if-nez v5, :cond_156
5395 + if-nez v0, :cond_216
5397 - :goto_14f
5398 - iget-object v3, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5399 + const/4 v0, 0x0
5401 + :goto_20f
5402 + iget-object v2, p0, Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
5404 - invoke-interface {v4, v2, v3}, Landroid/hardware/Camera$AutoFocusMoveCallback;->onAutoFocusMoving(ZLandroid/hardware/Camera;)V
5405 + invoke-interface {v1, v0, v2}, Landroid/hardware/Camera$AutoFocusMoveCallback;->onAutoFocusMoving(ZLandroid/hardware/Camera;)V
5407 - goto/16 :goto_21
5408 + goto/16 :goto_67
5410 - :cond_156
5411 - move v2, v3
5412 + :cond_216
5413 + const/4 v0, 0x1
5415 - goto :goto_14f
5416 + goto :goto_20f
5418 - :sswitch_data_158
5419 + :sswitch_data_218
5420 .sparse-switch
5421 - 0x1 -> :sswitch_10c
5422 - 0x2 -> :sswitch_22
5423 - 0x4 -> :sswitch_b3
5424 - 0x8 -> :sswitch_d4
5425 - 0x10 -> :sswitch_68
5426 - 0x40 -> :sswitch_98
5427 - 0x80 -> :sswitch_34
5428 - 0x100 -> :sswitch_4e
5429 - 0x400 -> :sswitch_f1
5430 - 0x800 -> :sswitch_13d
5431 + 0x1 -> :sswitch_1cb
5432 + 0x2 -> :sswitch_93
5433 + 0x4 -> :sswitch_170
5434 + 0x8 -> :sswitch_192
5435 + 0x10 -> :sswitch_fe
5436 + 0x40 -> :sswitch_140
5437 + 0x80 -> :sswitch_a5
5438 + 0x100 -> :sswitch_ce
5439 + 0x400 -> :sswitch_1b0
5440 + 0x800 -> :sswitch_1fc
5441 .end sparse-switch
5442 .end method
5443 diff -Npru stock-framework/smali/android/hardware/Camera.smali pdroid-framework/smali/android/hardware/Camera.smali
5444 --- stock-framework/smali/android/hardware/Camera.smali 2013-08-10 20:37:47.199213636 -0700
5445 +++ pdroid-framework/smali/android/hardware/Camera.smali 2013-08-10 20:37:41.751213410 -0700
5446 @@ -62,10 +62,20 @@
5448 .field private static final CAMERA_MSG_ZOOM:I = 0x8
5450 +.field private static final GOT_ERROR:I = -0x3
5452 +.field private static final IS_ALLOWED:I = -0x1
5454 +.field private static final IS_NOT_ALLOWED:I = -0x2
5456 +.field private static final PRIVACY_TAG:Ljava/lang/String; = "PM,Camera"
5458 .field private static final TAG:Ljava/lang/String; = "Camera"
5461 # instance fields
5462 +.field private context:Landroid/content/Context;
5464 .field private mAutoFocusCallback:Landroid/hardware/Camera$AutoFocusCallback;
5466 .field private mAutoFocusCallbackLock:Ljava/lang/Object;
5467 @@ -86,6 +96,8 @@
5469 .field private mOneShot:Z
5471 +.field private mPm:Landroid/content/pm/IPackageManager;
5473 .field private mPostviewCallback:Landroid/hardware/Camera$PictureCallback;
5475 .field private mPreviewCallback:Landroid/hardware/Camera$PreviewCallback;
5476 @@ -98,16 +110,20 @@
5478 .field private mZoomListener:Landroid/hardware/Camera$OnZoomChangeListener;
5480 +.field private pSetMan:Landroid/privacy/PrivacySettingsManager;
5482 +.field private privacyMode:Z
5485 # direct methods
5486 .method constructor <init>()V
5487 - .registers 2
5488 + .registers 3
5490 - invoke-direct {p0}, Ljava/lang/Object;-><init>()V
5491 + const/4 v1, 0x0
5493 - const/4 v0, 0x0
5494 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
5496 - iput-boolean v0, p0, Landroid/hardware/Camera;->mFaceDetectionRunning:Z
5497 + iput-boolean v1, p0, Landroid/hardware/Camera;->mFaceDetectionRunning:Z
5499 new-instance v0, Ljava/lang/Object;
5501 @@ -115,19 +131,21 @@
5503 iput-object v0, p0, Landroid/hardware/Camera;->mAutoFocusCallbackLock:Ljava/lang/Object;
5505 + iput-boolean v1, p0, Landroid/hardware/Camera;->privacyMode:Z
5507 return-void
5508 .end method
5510 .method constructor <init>(I)V
5511 - .registers 6
5512 + .registers 7
5514 + const/4 v4, 0x0
5516 const/4 v3, 0x0
5518 invoke-direct {p0}, Ljava/lang/Object;-><init>()V
5520 - const/4 v2, 0x0
5522 - iput-boolean v2, p0, Landroid/hardware/Camera;->mFaceDetectionRunning:Z
5523 + iput-boolean v4, p0, Landroid/hardware/Camera;->mFaceDetectionRunning:Z
5525 new-instance v2, Ljava/lang/Object;
5527 @@ -135,6 +153,8 @@
5529 iput-object v2, p0, Landroid/hardware/Camera;->mAutoFocusCallbackLock:Ljava/lang/Object;
5531 + iput-boolean v4, p0, Landroid/hardware/Camera;->privacyMode:Z
5533 iput-object v3, p0, Landroid/hardware/Camera;->mShutterCallback:Landroid/hardware/Camera$ShutterCallback;
5535 iput-object v3, p0, Landroid/hardware/Camera;->mRawImageCallback:Landroid/hardware/Camera$PictureCallback;
5536 @@ -147,11 +167,13 @@
5538 iput-object v3, p0, Landroid/hardware/Camera;->mZoomListener:Landroid/hardware/Camera$OnZoomChangeListener;
5540 + invoke-direct {p0}, Landroid/hardware/Camera;->initiate()V
5542 invoke-static {}, Landroid/os/Looper;->myLooper()Landroid/os/Looper;
5544 move-result-object v0
5546 - if-eqz v0, :cond_34
5547 + if-eqz v0, :cond_39
5549 new-instance v2, Landroid/hardware/Camera$EventHandler;
5551 @@ -159,7 +181,7 @@
5553 iput-object v2, p0, Landroid/hardware/Camera;->mEventHandler:Landroid/hardware/Camera$EventHandler;
5555 - :goto_27
5556 + :goto_2c
5557 invoke-static {}, Landroid/app/ActivityThread;->currentPackageName()Ljava/lang/String;
5559 move-result-object v1
5560 @@ -172,12 +194,12 @@
5562 return-void
5564 - :cond_34
5565 + :cond_39
5566 invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper;
5568 move-result-object v0
5570 - if-eqz v0, :cond_42
5571 + if-eqz v0, :cond_47
5573 new-instance v2, Landroid/hardware/Camera$EventHandler;
5575 @@ -185,12 +207,12 @@
5577 iput-object v2, p0, Landroid/hardware/Camera;->mEventHandler:Landroid/hardware/Camera$EventHandler;
5579 - goto :goto_27
5580 + goto :goto_2c
5582 - :cond_42
5583 + :cond_47
5584 iput-object v3, p0, Landroid/hardware/Camera;->mEventHandler:Landroid/hardware/Camera$EventHandler;
5586 - goto :goto_27
5587 + goto :goto_2c
5588 .end method
5590 .method private final native _addCallbackBuffer([BI)V
5591 @@ -211,122 +233,184 @@
5592 .method private final native _stopPreview()V
5593 .end method
5595 -.method static synthetic access$000(Landroid/hardware/Camera;)Landroid/hardware/Camera$ShutterCallback;
5596 +.method static synthetic access$000(Landroid/hardware/Camera;)Z
5597 .registers 2
5599 - iget-object v0, p0, Landroid/hardware/Camera;->mShutterCallback:Landroid/hardware/Camera$ShutterCallback;
5600 + iget-boolean v0, p0, Landroid/hardware/Camera;->privacyMode:Z
5602 - return-object v0
5603 + return v0
5604 .end method
5606 -.method static synthetic access$100(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5607 +.method static synthetic access$100(Landroid/hardware/Camera;)V
5608 + .registers 1
5610 + invoke-direct {p0}, Landroid/hardware/Camera;->initiate()V
5612 + return-void
5613 +.end method
5615 +.method static synthetic access$1000(Landroid/hardware/Camera;)Landroid/hardware/Camera$PreviewCallback;
5616 .registers 2
5618 - iget-object v0, p0, Landroid/hardware/Camera;->mRawImageCallback:Landroid/hardware/Camera$PictureCallback;
5619 + iget-object v0, p0, Landroid/hardware/Camera;->mPreviewCallback:Landroid/hardware/Camera$PreviewCallback;
5621 return-object v0
5622 .end method
5624 -.method static synthetic access$1000(Landroid/hardware/Camera;)Landroid/hardware/Camera$OnZoomChangeListener;
5625 +.method static synthetic access$1002(Landroid/hardware/Camera;Landroid/hardware/Camera$PreviewCallback;)Landroid/hardware/Camera$PreviewCallback;
5626 .registers 2
5628 - iget-object v0, p0, Landroid/hardware/Camera;->mZoomListener:Landroid/hardware/Camera$OnZoomChangeListener;
5629 + iput-object p1, p0, Landroid/hardware/Camera;->mPreviewCallback:Landroid/hardware/Camera$PreviewCallback;
5631 + return-object p1
5632 +.end method
5634 +.method static synthetic access$1100(Landroid/hardware/Camera;)Z
5635 + .registers 2
5637 + iget-boolean v0, p0, Landroid/hardware/Camera;->mOneShot:Z
5639 + return v0
5640 +.end method
5642 +.method static synthetic access$1200(Landroid/hardware/Camera;)Z
5643 + .registers 2
5645 + iget-boolean v0, p0, Landroid/hardware/Camera;->mWithBuffer:Z
5647 + return v0
5648 +.end method
5650 +.method static synthetic access$1300(Landroid/hardware/Camera;ZZ)V
5651 + .registers 3
5653 + invoke-direct {p0, p1, p2}, Landroid/hardware/Camera;->setHasPreviewCallback(ZZ)V
5655 + return-void
5656 +.end method
5658 +.method static synthetic access$1400(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5659 + .registers 2
5661 + iget-object v0, p0, Landroid/hardware/Camera;->mPostviewCallback:Landroid/hardware/Camera$PictureCallback;
5663 return-object v0
5664 .end method
5666 -.method static synthetic access$1100(Landroid/hardware/Camera;)Landroid/hardware/Camera$FaceDetectionListener;
5667 +.method static synthetic access$1500(Landroid/hardware/Camera;)Ljava/lang/Object;
5668 .registers 2
5670 - iget-object v0, p0, Landroid/hardware/Camera;->mFaceListener:Landroid/hardware/Camera$FaceDetectionListener;
5671 + iget-object v0, p0, Landroid/hardware/Camera;->mAutoFocusCallbackLock:Ljava/lang/Object;
5673 return-object v0
5674 .end method
5676 -.method static synthetic access$1200(Landroid/hardware/Camera;)Landroid/hardware/Camera$ErrorCallback;
5677 +.method static synthetic access$1600(Landroid/hardware/Camera;)Landroid/hardware/Camera$AutoFocusCallback;
5678 .registers 2
5680 - iget-object v0, p0, Landroid/hardware/Camera;->mErrorCallback:Landroid/hardware/Camera$ErrorCallback;
5681 + iget-object v0, p0, Landroid/hardware/Camera;->mAutoFocusCallback:Landroid/hardware/Camera$AutoFocusCallback;
5683 return-object v0
5684 .end method
5686 -.method static synthetic access$1300(Landroid/hardware/Camera;)Landroid/hardware/Camera$AutoFocusMoveCallback;
5687 +.method static synthetic access$1700(Landroid/hardware/Camera;)Landroid/hardware/Camera$OnZoomChangeListener;
5688 .registers 2
5690 - iget-object v0, p0, Landroid/hardware/Camera;->mAutoFocusMoveCallback:Landroid/hardware/Camera$AutoFocusMoveCallback;
5691 + iget-object v0, p0, Landroid/hardware/Camera;->mZoomListener:Landroid/hardware/Camera$OnZoomChangeListener;
5693 return-object v0
5694 .end method
5696 -.method static synthetic access$200(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5697 +.method static synthetic access$1800(Landroid/hardware/Camera;)Landroid/hardware/Camera$FaceDetectionListener;
5698 .registers 2
5700 - iget-object v0, p0, Landroid/hardware/Camera;->mJpegCallback:Landroid/hardware/Camera$PictureCallback;
5701 + iget-object v0, p0, Landroid/hardware/Camera;->mFaceListener:Landroid/hardware/Camera$FaceDetectionListener;
5703 return-object v0
5704 .end method
5706 -.method static synthetic access$300(Landroid/hardware/Camera;)Landroid/hardware/Camera$PreviewCallback;
5707 +.method static synthetic access$1900(Landroid/hardware/Camera;)Landroid/hardware/Camera$ErrorCallback;
5708 .registers 2
5710 - iget-object v0, p0, Landroid/hardware/Camera;->mPreviewCallback:Landroid/hardware/Camera$PreviewCallback;
5711 + iget-object v0, p0, Landroid/hardware/Camera;->mErrorCallback:Landroid/hardware/Camera$ErrorCallback;
5713 return-object v0
5714 .end method
5716 -.method static synthetic access$302(Landroid/hardware/Camera;Landroid/hardware/Camera$PreviewCallback;)Landroid/hardware/Camera$PreviewCallback;
5717 +.method static synthetic access$200(Landroid/hardware/Camera;)[Ljava/lang/String;
5718 .registers 2
5720 - iput-object p1, p0, Landroid/hardware/Camera;->mPreviewCallback:Landroid/hardware/Camera$PreviewCallback;
5721 + invoke-direct {p0}, Landroid/hardware/Camera;->getPackageName()[Ljava/lang/String;
5723 - return-object p1
5724 + move-result-object v0
5726 + return-object v0
5727 .end method
5729 -.method static synthetic access$400(Landroid/hardware/Camera;)Z
5730 +.method static synthetic access$2000(Landroid/hardware/Camera;)Landroid/hardware/Camera$AutoFocusMoveCallback;
5731 .registers 2
5733 - iget-boolean v0, p0, Landroid/hardware/Camera;->mOneShot:Z
5734 + iget-object v0, p0, Landroid/hardware/Camera;->mAutoFocusMoveCallback:Landroid/hardware/Camera$AutoFocusMoveCallback;
5736 - return v0
5737 + return-object v0
5738 .end method
5740 -.method static synthetic access$500(Landroid/hardware/Camera;)Z
5741 +.method static synthetic access$300(Landroid/hardware/Camera;)I
5742 .registers 2
5744 - iget-boolean v0, p0, Landroid/hardware/Camera;->mWithBuffer:Z
5745 + invoke-direct {p0}, Landroid/hardware/Camera;->checkIfPackagesAllowed()I
5747 + move-result v0
5749 return v0
5750 .end method
5752 -.method static synthetic access$600(Landroid/hardware/Camera;ZZ)V
5753 - .registers 3
5754 +.method static synthetic access$400(Landroid/hardware/Camera;Z)V
5755 + .registers 2
5757 - invoke-direct {p0, p1, p2}, Landroid/hardware/Camera;->setHasPreviewCallback(ZZ)V
5758 + invoke-direct {p0, p1}, Landroid/hardware/Camera;->dataAccess(Z)V
5760 return-void
5761 .end method
5763 +.method static synthetic access$500(Landroid/hardware/Camera;)Landroid/privacy/PrivacySettingsManager;
5764 + .registers 2
5766 + iget-object v0, p0, Landroid/hardware/Camera;->pSetMan:Landroid/privacy/PrivacySettingsManager;
5768 + return-object v0
5769 +.end method
5771 +.method static synthetic access$600(Landroid/hardware/Camera;)Landroid/hardware/Camera$ShutterCallback;
5772 + .registers 2
5774 + iget-object v0, p0, Landroid/hardware/Camera;->mShutterCallback:Landroid/hardware/Camera$ShutterCallback;
5776 + return-object v0
5777 +.end method
5779 .method static synthetic access$700(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5780 .registers 2
5782 - iget-object v0, p0, Landroid/hardware/Camera;->mPostviewCallback:Landroid/hardware/Camera$PictureCallback;
5783 + iget-object v0, p0, Landroid/hardware/Camera;->mRawImageCallback:Landroid/hardware/Camera$PictureCallback;
5785 return-object v0
5786 .end method
5788 -.method static synthetic access$800(Landroid/hardware/Camera;)Ljava/lang/Object;
5789 +.method static synthetic access$800(Landroid/hardware/Camera;)Landroid/hardware/Camera$PictureCallback;
5790 .registers 2
5792 - iget-object v0, p0, Landroid/hardware/Camera;->mAutoFocusCallbackLock:Ljava/lang/Object;
5793 + iget-object v0, p0, Landroid/hardware/Camera;->mJpegCallback:Landroid/hardware/Camera$PictureCallback;
5795 return-object v0
5796 .end method
5798 -.method static synthetic access$900(Landroid/hardware/Camera;)Landroid/hardware/Camera$AutoFocusCallback;
5799 +.method static synthetic access$900(Landroid/hardware/Camera;)[B
5800 .registers 2
5802 - iget-object v0, p0, Landroid/hardware/Camera;->mAutoFocusCallback:Landroid/hardware/Camera$AutoFocusCallback;
5803 + invoke-direct {p0}, Landroid/hardware/Camera;->getFakeImage()[B
5805 + move-result-object v0
5807 return-object v0
5808 .end method
5809 @@ -372,6 +456,205 @@
5810 return-void
5811 .end method
5813 +.method private checkIfPackagesAllowed()I
5814 + .registers 9
5816 + const/4 v5, -0x3
5818 + :try_start_1
5819 + iget-object v6, p0, Landroid/hardware/Camera;->pSetMan:Landroid/privacy/PrivacySettingsManager;
5821 + if-eqz v6, :cond_41
5823 + const/4 v2, 0x0
5825 + invoke-direct {p0}, Landroid/hardware/Camera;->getPackageName()[Ljava/lang/String;
5827 + move-result-object v3
5829 + invoke-static {}, Landroid/os/Process;->myUid()I
5831 + move-result v4
5833 + if-eqz v3, :cond_2c
5835 + const/4 v1, 0x0
5837 + :goto_11
5838 + array-length v6, v3
5840 + if-ge v1, v6, :cond_2a
5842 + iget-object v6, p0, Landroid/hardware/Camera;->pSetMan:Landroid/privacy/PrivacySettingsManager;
5844 + aget-object v7, v3, v1
5846 + invoke-virtual {v6, v7, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
5848 + move-result-object v2
5850 + if-eqz v2, :cond_26
5852 + invoke-virtual {v2}, Landroid/privacy/PrivacySettings;->getCameraSetting()B
5854 + move-result v6
5856 + if-eqz v6, :cond_26
5858 + const/4 v5, -0x2
5860 + :goto_25
5861 + return v5
5863 + :cond_26
5864 + const/4 v2, 0x0
5866 + add-int/lit8 v1, v1, 0x1
5868 + goto :goto_11
5870 + :cond_2a
5871 + const/4 v5, -0x1
5873 + goto :goto_25
5875 + :cond_2c
5876 + const-string v6, "PM,Camera"
5878 + const-string/jumbo v7, "return GOT_ERROR, because package_names are NULL"
5880 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
5881 + :try_end_34
5882 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_34} :catch_35
5884 + goto :goto_25
5886 + :catch_35
5887 + move-exception v0
5889 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
5891 + const-string v6, "PM,Camera"
5893 + const-string v7, "Got exception in checkIfPackagesAllowed"
5895 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
5897 + goto :goto_25
5899 + :cond_41
5900 + :try_start_41
5901 + const-string v6, "PM,Camera"
5903 + const-string/jumbo v7, "return GOT_ERROR, because pSetMan is NULL"
5905 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
5906 + :try_end_49
5907 + .catch Ljava/lang/Exception; {:try_start_41 .. :try_end_49} :catch_35
5909 + goto :goto_25
5910 +.end method
5912 +.method private dataAccess(Z)V
5913 + .registers 7
5915 + invoke-direct {p0}, Landroid/hardware/Camera;->getPackageName()[Ljava/lang/String;
5917 + move-result-object v1
5919 + if-eqz p1, :cond_2f
5921 + if-eqz v1, :cond_2f
5923 + const/4 v0, 0x0
5925 + :goto_9
5926 + array-length v2, v1
5928 + if-ge v0, v2, :cond_58
5930 + const-string v2, "PM,Camera"
5932 + new-instance v3, Ljava/lang/StringBuilder;
5934 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
5936 + const-string v4, "Allowed Package: -"
5938 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
5940 + move-result-object v3
5942 + aget-object v4, v1, v0
5944 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
5946 + move-result-object v3
5948 + const-string v4, "- accessing camera."
5950 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
5952 + move-result-object v3
5954 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
5956 + move-result-object v3
5958 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
5960 + add-int/lit8 v0, v0, 0x1
5962 + goto :goto_9
5964 + :cond_2f
5965 + if-eqz v1, :cond_58
5967 + const/4 v0, 0x0
5969 + :goto_32
5970 + array-length v2, v1
5972 + if-ge v0, v2, :cond_58
5974 + const-string v2, "PM,Camera"
5976 + new-instance v3, Ljava/lang/StringBuilder;
5978 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
5980 + const-string v4, "Blocked Package: -"
5982 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
5984 + move-result-object v3
5986 + aget-object v4, v1, v0
5988 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
5990 + move-result-object v3
5992 + const-string v4, "- accessing camera."
5994 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
5996 + move-result-object v3
5998 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
6000 + move-result-object v3
6002 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
6004 + add-int/lit8 v0, v0, 0x1
6006 + goto :goto_32
6008 + :cond_58
6009 + return-void
6010 +.end method
6012 .method private native enableFocusMoveCallback(I)V
6013 .end method
6015 @@ -437,9 +720,193 @@
6016 return-object v1
6017 .end method
6019 +.method private getFakeImage()[B
6020 + .registers 9
6022 + :try_start_0
6023 + const-string v2, "/system/media/PDroid.jpeg"
6025 + new-instance v5, Ljava/io/File;
6027 + invoke-direct {v5, v2}, Ljava/io/File;-><init>(Ljava/lang/String;)V
6029 + const/4 v3, 0x0
6031 + new-instance v3, Ljava/io/FileInputStream;
6033 + invoke-direct {v3, v5}, Ljava/io/FileInputStream;-><init>(Ljava/io/File;)V
6035 + invoke-static {v3}, Landroid/graphics/BitmapFactory;->decodeStream(Ljava/io/InputStream;)Landroid/graphics/Bitmap;
6037 + move-result-object v0
6039 + new-instance v4, Ljava/io/ByteArrayOutputStream;
6041 + invoke-direct {v4}, Ljava/io/ByteArrayOutputStream;-><init>()V
6043 + sget-object v6, Landroid/graphics/Bitmap$CompressFormat;->JPEG:Landroid/graphics/Bitmap$CompressFormat;
6045 + const/16 v7, 0x64
6047 + invoke-virtual {v0, v6, v7, v4}, Landroid/graphics/Bitmap;->compress(Landroid/graphics/Bitmap$CompressFormat;ILjava/io/OutputStream;)Z
6049 + invoke-virtual {v4}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B
6050 + :try_end_20
6051 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_20} :catch_22
6053 + move-result-object v6
6055 + :goto_21
6056 + return-object v6
6058 + :catch_22
6059 + move-exception v1
6061 + const-string v6, "PM,Camera"
6063 + const-string/jumbo v7, "something went wrong with getting the picture!"
6065 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
6067 + invoke-virtual {v1}, Ljava/lang/Exception;->printStackTrace()V
6069 + const/4 v6, 0x0
6071 + goto :goto_21
6072 +.end method
6074 .method public static native getNumberOfCameras()I
6075 .end method
6077 +.method private getPackageName()[Ljava/lang/String;
6078 + .registers 6
6080 + :try_start_0
6081 + iget-object v3, p0, Landroid/hardware/Camera;->mPm:Landroid/content/pm/IPackageManager;
6083 + if-eqz v3, :cond_f
6085 + invoke-static {}, Landroid/os/Process;->myUid()I
6087 + move-result v2
6089 + iget-object v3, p0, Landroid/hardware/Camera;->mPm:Landroid/content/pm/IPackageManager;
6091 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
6093 + move-result-object v1
6095 + :goto_e
6096 + return-object v1
6098 + :cond_f
6099 + const-string/jumbo v3, "package"
6101 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
6103 + move-result-object v3
6105 + invoke-static {v3}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
6107 + move-result-object v3
6109 + iput-object v3, p0, Landroid/hardware/Camera;->mPm:Landroid/content/pm/IPackageManager;
6111 + invoke-static {}, Landroid/os/Process;->myUid()I
6113 + move-result v2
6115 + iget-object v3, p0, Landroid/hardware/Camera;->mPm:Landroid/content/pm/IPackageManager;
6117 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
6118 + :try_end_25
6119 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_25} :catch_27
6121 + move-result-object v1
6123 + goto :goto_e
6125 + :catch_27
6126 + move-exception v0
6128 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
6130 + const-string v3, "PM,Camera"
6132 + const-string/jumbo v4, "something went wrong with getting package name"
6134 + invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
6136 + const/4 v1, 0x0
6138 + goto :goto_e
6139 +.end method
6141 +.method private initiate()V
6142 + .registers 5
6144 + const/4 v1, 0x0
6146 + :try_start_1
6147 + iput-object v1, p0, Landroid/hardware/Camera;->context:Landroid/content/Context;
6149 + new-instance v1, Landroid/privacy/PrivacySettingsManager;
6151 + iget-object v2, p0, Landroid/hardware/Camera;->context:Landroid/content/Context;
6153 + const-string/jumbo v3, "privacy"
6155 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
6157 + move-result-object v3
6159 + invoke-static {v3}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
6161 + move-result-object v3
6163 + invoke-direct {v1, v2, v3}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
6165 + iput-object v1, p0, Landroid/hardware/Camera;->pSetMan:Landroid/privacy/PrivacySettingsManager;
6167 + const-string/jumbo v1, "package"
6169 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
6171 + move-result-object v1
6173 + invoke-static {v1}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
6175 + move-result-object v1
6177 + iput-object v1, p0, Landroid/hardware/Camera;->mPm:Landroid/content/pm/IPackageManager;
6179 + const/4 v1, 0x1
6181 + iput-boolean v1, p0, Landroid/hardware/Camera;->privacyMode:Z
6182 + :try_end_27
6183 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_27} :catch_28
6185 + :goto_27
6186 + return-void
6188 + :catch_28
6189 + move-exception v0
6191 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
6193 + const-string v1, "PM,Camera"
6195 + const-string v2, "Something went wrong with initalize variables"
6197 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
6199 + const/4 v1, 0x0
6201 + iput-boolean v1, p0, Landroid/hardware/Camera;->privacyMode:Z
6203 + goto :goto_27
6204 +.end method
6206 .method private final native native_autoFocus()V
6207 .end method
6209 @@ -1022,7 +1489,7 @@
6210 .end method
6212 .method public final takePicture(Landroid/hardware/Camera$ShutterCallback;Landroid/hardware/Camera$PictureCallback;Landroid/hardware/Camera$PictureCallback;Landroid/hardware/Camera$PictureCallback;)V
6213 - .registers 7
6214 + .registers 8
6216 iput-object p1, p0, Landroid/hardware/Camera;->mShutterCallback:Landroid/hardware/Camera$ShutterCallback;
6218 @@ -1032,36 +1499,62 @@
6220 iput-object p4, p0, Landroid/hardware/Camera;->mJpegCallback:Landroid/hardware/Camera$PictureCallback;
6222 + iget-boolean v1, p0, Landroid/hardware/Camera;->privacyMode:Z
6224 + if-nez v1, :cond_f
6226 + invoke-direct {p0}, Landroid/hardware/Camera;->initiate()V
6228 + :cond_f
6229 + invoke-direct {p0}, Landroid/hardware/Camera;->checkIfPackagesAllowed()I
6231 + move-result v1
6233 + const/4 v2, -0x2
6235 + if-ne v1, v2, :cond_20
6237 + const/4 v1, 0x0
6239 + iput-object v1, p0, Landroid/hardware/Camera;->mRawImageCallback:Landroid/hardware/Camera$PictureCallback;
6241 + const-string v1, "PM,Camera"
6243 + const-string v2, "blocked rawImageCallback -> it will never be called!"
6245 + invoke-static {v1, v2}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
6247 + :cond_20
6248 const/4 v0, 0x0
6250 iget-object v1, p0, Landroid/hardware/Camera;->mShutterCallback:Landroid/hardware/Camera$ShutterCallback;
6252 - if-eqz v1, :cond_f
6253 + if-eqz v1, :cond_27
6255 or-int/lit8 v0, v0, 0x2
6257 - :cond_f
6258 + :cond_27
6259 iget-object v1, p0, Landroid/hardware/Camera;->mRawImageCallback:Landroid/hardware/Camera$PictureCallback;
6261 - if-eqz v1, :cond_15
6262 + if-eqz v1, :cond_2d
6264 or-int/lit16 v0, v0, 0x80
6266 - :cond_15
6267 + :cond_2d
6268 iget-object v1, p0, Landroid/hardware/Camera;->mPostviewCallback:Landroid/hardware/Camera$PictureCallback;
6270 - if-eqz v1, :cond_1b
6271 + if-eqz v1, :cond_33
6273 or-int/lit8 v0, v0, 0x40
6275 - :cond_1b
6276 + :cond_33
6277 iget-object v1, p0, Landroid/hardware/Camera;->mJpegCallback:Landroid/hardware/Camera$PictureCallback;
6279 - if-eqz v1, :cond_21
6280 + if-eqz v1, :cond_39
6282 or-int/lit16 v0, v0, 0x100
6284 - :cond_21
6285 + :cond_39
6286 invoke-direct {p0, v0}, Landroid/hardware/Camera;->native_takePicture(I)V
6288 const/4 v1, 0x0
6289 diff -Npru stock-framework/smali/android/media/AudioRecord.smali pdroid-framework/smali/android/media/AudioRecord.smali
6290 --- stock-framework/smali/android/media/AudioRecord.smali 2013-08-10 20:37:47.351213643 -0700
6291 +++ pdroid-framework/smali/android/media/AudioRecord.smali 2013-08-10 20:37:41.899213417 -0700
6292 @@ -29,10 +29,18 @@
6294 .field public static final ERROR_INVALID_OPERATION:I = -0x3
6296 +.field private static final GOT_ERROR:I = -0x3
6298 +.field private static final IS_ALLOWED:I = -0x1
6300 +.field private static final IS_NOT_ALLOWED:I = -0x2
6302 .field private static final NATIVE_EVENT_MARKER:I = 0x2
6304 .field private static final NATIVE_EVENT_NEW_POS:I = 0x3
6306 +.field private static final PRIVACY_TAG:Ljava/lang/String; = "PM,AudioRecord"
6308 .field public static final RECORDSTATE_RECORDING:I = 0x3
6310 .field public static final RECORDSTATE_STOPPED:I = 0x1
6311 @@ -47,6 +55,8 @@
6314 # instance fields
6315 +.field private context:Landroid/content/Context;
6317 .field private mAudioFormat:I
6319 .field private mChannelConfiguration:I
6320 @@ -65,6 +75,8 @@
6322 .field private mNativeRecorderInJavaObj:I
6324 +.field private mPm:Landroid/content/pm/IPackageManager;
6326 .field private mPositionListener:Landroid/media/AudioRecord$OnRecordPositionUpdateListener;
6328 .field private final mPositionListenerLock:Ljava/lang/Object;
6329 @@ -81,6 +93,10 @@
6331 .field private mState:I
6333 +.field private pSetMan:Landroid/privacy/PrivacySettingsManager;
6335 +.field private privacyMode:Z
6338 # direct methods
6339 .method public constructor <init>(IIIII)V
6340 @@ -159,6 +175,10 @@
6342 const/4 v0, 0x0
6344 + iput-boolean v0, p0, Landroid/media/AudioRecord;->privacyMode:Z
6346 + const/4 v0, 0x0
6348 iput v0, p0, Landroid/media/AudioRecord;->mState:I
6350 const/4 v0, 0x1
6351 @@ -171,7 +191,7 @@
6353 iput-object v0, p0, Landroid/media/AudioRecord;->mInitializationLooper:Landroid/os/Looper;
6355 - if-nez v0, :cond_4f
6356 + if-nez v0, :cond_52
6358 invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper;
6360 @@ -179,7 +199,7 @@
6362 iput-object v0, p0, Landroid/media/AudioRecord;->mInitializationLooper:Landroid/os/Looper;
6364 - :cond_4f
6365 + :cond_52
6366 invoke-direct {p0, p1, p2, p3, p4}, Landroid/media/AudioRecord;->audioParamCheck(IIII)V
6368 invoke-direct {p0, p5}, Landroid/media/AudioRecord;->audioBuffSizeCheck(I)V
6369 @@ -214,7 +234,7 @@
6371 move-result v8
6373 - if-eqz v8, :cond_8f
6374 + if-eqz v8, :cond_92
6376 new-instance v0, Ljava/lang/StringBuilder;
6378 @@ -242,10 +262,12 @@
6380 invoke-static {v0}, Landroid/media/AudioRecord;->loge(Ljava/lang/String;)V
6382 - :goto_8e
6383 + :goto_91
6384 return-void
6386 - :cond_8f
6387 + :cond_92
6388 + invoke-direct {p0}, Landroid/media/AudioRecord;->initiate()V
6390 const/4 v0, 0x0
6392 aget v0, v7, v0
6393 @@ -256,7 +278,7 @@
6395 iput v0, p0, Landroid/media/AudioRecord;->mState:I
6397 - goto :goto_8e
6398 + goto :goto_91
6399 .end method
6401 .method static synthetic access$000(Landroid/media/AudioRecord;)Ljava/lang/Object;
6402 @@ -469,6 +491,205 @@
6403 .end packed-switch
6404 .end method
6406 +.method private checkIfPackagesAllowed()I
6407 + .registers 9
6409 + const/4 v5, -0x3
6411 + :try_start_1
6412 + iget-object v6, p0, Landroid/media/AudioRecord;->pSetMan:Landroid/privacy/PrivacySettingsManager;
6414 + if-eqz v6, :cond_41
6416 + const/4 v2, 0x0
6418 + invoke-direct {p0}, Landroid/media/AudioRecord;->getPackageName()[Ljava/lang/String;
6420 + move-result-object v3
6422 + invoke-static {}, Landroid/os/Process;->myUid()I
6424 + move-result v4
6426 + if-eqz v3, :cond_2c
6428 + const/4 v1, 0x0
6430 + :goto_11
6431 + array-length v6, v3
6433 + if-ge v1, v6, :cond_2a
6435 + iget-object v6, p0, Landroid/media/AudioRecord;->pSetMan:Landroid/privacy/PrivacySettingsManager;
6437 + aget-object v7, v3, v1
6439 + invoke-virtual {v6, v7, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
6441 + move-result-object v2
6443 + if-eqz v2, :cond_26
6445 + invoke-virtual {v2}, Landroid/privacy/PrivacySettings;->getRecordAudioSetting()B
6447 + move-result v6
6449 + if-eqz v6, :cond_26
6451 + const/4 v5, -0x2
6453 + :goto_25
6454 + return v5
6456 + :cond_26
6457 + const/4 v2, 0x0
6459 + add-int/lit8 v1, v1, 0x1
6461 + goto :goto_11
6463 + :cond_2a
6464 + const/4 v5, -0x1
6466 + goto :goto_25
6468 + :cond_2c
6469 + const-string v6, "PM,AudioRecord"
6471 + const-string/jumbo v7, "return GOT_ERROR, because package_names are NULL"
6473 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
6474 + :try_end_34
6475 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_34} :catch_35
6477 + goto :goto_25
6479 + :catch_35
6480 + move-exception v0
6482 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
6484 + const-string v6, "PM,AudioRecord"
6486 + const-string v7, "Got exception in checkIfPackagesAllowed"
6488 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
6490 + goto :goto_25
6492 + :cond_41
6493 + :try_start_41
6494 + const-string v6, "PM,AudioRecord"
6496 + const-string/jumbo v7, "return GOT_ERROR, because pSetMan is NULL"
6498 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
6499 + :try_end_49
6500 + .catch Ljava/lang/Exception; {:try_start_41 .. :try_end_49} :catch_35
6502 + goto :goto_25
6503 +.end method
6505 +.method private dataAccess(Z)V
6506 + .registers 7
6508 + invoke-direct {p0}, Landroid/media/AudioRecord;->getPackageName()[Ljava/lang/String;
6510 + move-result-object v1
6512 + if-eqz p1, :cond_2f
6514 + if-eqz v1, :cond_2f
6516 + const/4 v0, 0x0
6518 + :goto_9
6519 + array-length v2, v1
6521 + if-ge v0, v2, :cond_58
6523 + const-string v2, "PM,AudioRecord"
6525 + new-instance v3, Ljava/lang/StringBuilder;
6527 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
6529 + const-string v4, "Allowed Package: -"
6531 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
6533 + move-result-object v3
6535 + aget-object v4, v1, v0
6537 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
6539 + move-result-object v3
6541 + const-string v4, "- accessing microphone."
6543 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
6545 + move-result-object v3
6547 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
6549 + move-result-object v3
6551 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
6553 + add-int/lit8 v0, v0, 0x1
6555 + goto :goto_9
6557 + :cond_2f
6558 + if-eqz v1, :cond_58
6560 + const/4 v0, 0x0
6562 + :goto_32
6563 + array-length v2, v1
6565 + if-ge v0, v2, :cond_58
6567 + const-string v2, "PM,AudioRecord"
6569 + new-instance v3, Ljava/lang/StringBuilder;
6571 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
6573 + const-string v4, "Blocked Package: -"
6575 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
6577 + move-result-object v3
6579 + aget-object v4, v1, v0
6581 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
6583 + move-result-object v3
6585 + const-string v4, "- accessing microphone."
6587 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
6589 + move-result-object v3
6591 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
6593 + move-result-object v3
6595 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
6597 + add-int/lit8 v0, v0, 0x1
6599 + goto :goto_32
6601 + :cond_58
6602 + return-void
6603 +.end method
6605 .method public static getMinBufferSize(III)I
6606 .registers 8
6608 @@ -540,6 +761,135 @@
6609 .end sparse-switch
6610 .end method
6612 +.method private getPackageName()[Ljava/lang/String;
6613 + .registers 6
6615 + :try_start_0
6616 + iget-object v3, p0, Landroid/media/AudioRecord;->mPm:Landroid/content/pm/IPackageManager;
6618 + if-eqz v3, :cond_f
6620 + invoke-static {}, Landroid/os/Process;->myUid()I
6622 + move-result v2
6624 + iget-object v3, p0, Landroid/media/AudioRecord;->mPm:Landroid/content/pm/IPackageManager;
6626 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
6628 + move-result-object v1
6630 + :goto_e
6631 + return-object v1
6633 + :cond_f
6634 + const-string/jumbo v3, "package"
6636 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
6638 + move-result-object v3
6640 + invoke-static {v3}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
6642 + move-result-object v3
6644 + iput-object v3, p0, Landroid/media/AudioRecord;->mPm:Landroid/content/pm/IPackageManager;
6646 + invoke-static {}, Landroid/os/Process;->myUid()I
6648 + move-result v2
6650 + iget-object v3, p0, Landroid/media/AudioRecord;->mPm:Landroid/content/pm/IPackageManager;
6652 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
6653 + :try_end_25
6654 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_25} :catch_27
6656 + move-result-object v1
6658 + goto :goto_e
6660 + :catch_27
6661 + move-exception v0
6663 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
6665 + const-string v3, "PM,AudioRecord"
6667 + const-string/jumbo v4, "something went wrong with getting package name"
6669 + invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
6671 + const/4 v1, 0x0
6673 + goto :goto_e
6674 +.end method
6676 +.method private initiate()V
6677 + .registers 5
6679 + const/4 v1, 0x0
6681 + :try_start_1
6682 + iput-object v1, p0, Landroid/media/AudioRecord;->context:Landroid/content/Context;
6684 + new-instance v1, Landroid/privacy/PrivacySettingsManager;
6686 + iget-object v2, p0, Landroid/media/AudioRecord;->context:Landroid/content/Context;
6688 + const-string/jumbo v3, "privacy"
6690 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
6692 + move-result-object v3
6694 + invoke-static {v3}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
6696 + move-result-object v3
6698 + invoke-direct {v1, v2, v3}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
6700 + iput-object v1, p0, Landroid/media/AudioRecord;->pSetMan:Landroid/privacy/PrivacySettingsManager;
6702 + const-string/jumbo v1, "package"
6704 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
6706 + move-result-object v1
6708 + invoke-static {v1}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
6710 + move-result-object v1
6712 + iput-object v1, p0, Landroid/media/AudioRecord;->mPm:Landroid/content/pm/IPackageManager;
6714 + const/4 v1, 0x1
6716 + iput-boolean v1, p0, Landroid/media/AudioRecord;->privacyMode:Z
6717 + :try_end_27
6718 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_27} :catch_28
6720 + :goto_27
6721 + return-void
6723 + :catch_28
6724 + move-exception v0
6726 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
6728 + const-string v1, "PM,AudioRecord"
6730 + const-string v2, "Something went wrong with initalize variables"
6732 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
6734 + const/4 v1, 0x0
6736 + iput-boolean v1, p0, Landroid/media/AudioRecord;->privacyMode:Z
6738 + goto :goto_27
6739 +.end method
6741 .method private static logd(Ljava/lang/String;)V
6742 .registers 4
6744 @@ -990,19 +1340,68 @@
6745 .end method
6747 .method public startRecording()V
6748 - .registers 4
6749 + .registers 11
6750 .annotation system Ldalvik/annotation/Throws;
6751 value = {
6752 Ljava/lang/IllegalStateException;
6754 .end annotation
6756 + const/4 v5, 0x0
6758 + const/4 v3, 0x1
6760 + const/4 v2, 0x0
6762 + iget-boolean v0, p0, Landroid/media/AudioRecord;->privacyMode:Z
6764 + if-nez v0, :cond_a
6766 + invoke-direct {p0}, Landroid/media/AudioRecord;->initiate()V
6768 + :cond_a
6769 iget v0, p0, Landroid/media/AudioRecord;->mState:I
6771 - const/4 v1, 0x1
6772 + if-ne v0, v3, :cond_15
6774 + invoke-direct {p0}, Landroid/media/AudioRecord;->checkIfPackagesAllowed()I
6776 + move-result v0
6778 + const/4 v1, -0x2
6780 + if-ne v0, v1, :cond_3d
6782 - if-eq v0, v1, :cond_e
6783 + :cond_15
6784 + invoke-direct {p0, v2}, Landroid/media/AudioRecord;->dataAccess(Z)V
6786 + invoke-direct {p0}, Landroid/media/AudioRecord;->getPackageName()[Ljava/lang/String;
6788 + move-result-object v7
6790 + if-eqz v7, :cond_34
6792 + iget-object v0, p0, Landroid/media/AudioRecord;->pSetMan:Landroid/privacy/PrivacySettingsManager;
6794 + aget-object v1, v7, v2
6796 + const-string/jumbo v4, "recordAudio"
6798 + iget-object v6, p0, Landroid/media/AudioRecord;->pSetMan:Landroid/privacy/PrivacySettingsManager;
6800 + aget-object v8, v7, v2
6802 + invoke-static {}, Landroid/os/Process;->myUid()I
6804 + move-result v9
6806 + invoke-virtual {v6, v8, v9}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
6808 + move-result-object v6
6810 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
6812 + :cond_34
6813 new-instance v0, Ljava/lang/IllegalStateException;
6815 const-string/jumbo v1, "startRecording() called on an uninitialized AudioRecord."
6816 @@ -1011,7 +1410,38 @@
6818 throw v0
6820 - :cond_e
6821 + :cond_3d
6822 + invoke-direct {p0, v3}, Landroid/media/AudioRecord;->dataAccess(Z)V
6824 + invoke-direct {p0}, Landroid/media/AudioRecord;->getPackageName()[Ljava/lang/String;
6826 + move-result-object v7
6828 + if-eqz v7, :cond_5d
6830 + iget-object v0, p0, Landroid/media/AudioRecord;->pSetMan:Landroid/privacy/PrivacySettingsManager;
6832 + aget-object v1, v7, v2
6834 + const-string/jumbo v4, "recordAudio"
6836 + iget-object v3, p0, Landroid/media/AudioRecord;->pSetMan:Landroid/privacy/PrivacySettingsManager;
6838 + aget-object v6, v7, v2
6840 + invoke-static {}, Landroid/os/Process;->myUid()I
6842 + move-result v8
6844 + invoke-virtual {v3, v6, v8}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
6846 + move-result-object v6
6848 + move v3, v2
6850 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
6852 + :cond_5d
6853 iget-object v1, p0, Landroid/media/AudioRecord;->mRecordingStateLock:Ljava/lang/Object;
6855 monitor-enter v1
6856 @@ -1020,28 +1450,28 @@
6858 const/4 v2, 0x0
6860 - :try_start_13
6861 + :try_start_62
6862 invoke-direct {p0, v0, v2}, Landroid/media/AudioRecord;->native_start(II)I
6864 move-result v0
6866 - if-nez v0, :cond_1c
6867 + if-nez v0, :cond_6b
6869 const/4 v0, 0x3
6871 iput v0, p0, Landroid/media/AudioRecord;->mRecordingState:I
6873 - :cond_1c
6874 + :cond_6b
6875 monitor-exit v1
6877 return-void
6879 - :catchall_1e
6880 + :catchall_6d
6881 move-exception v0
6883 monitor-exit v1
6884 - :try_end_20
6885 - .catchall {:try_start_13 .. :try_end_20} :catchall_1e
6886 + :try_end_6f
6887 + .catchall {:try_start_62 .. :try_end_6f} :catchall_6d
6889 throw v0
6890 .end method
6891 diff -Npru stock-framework/smali/android/media/MediaRecorder$PrivacyRunner.smali pdroid-framework/smali/android/media/MediaRecorder$PrivacyRunner.smali
6892 --- stock-framework/smali/android/media/MediaRecorder$PrivacyRunner.smali 1969-12-31 16:00:00.000000000 -0800
6893 +++ pdroid-framework/smali/android/media/MediaRecorder$PrivacyRunner.smali 2013-08-10 20:37:41.975213420 -0700
6894 @@ -0,0 +1,218 @@
6895 +.class Landroid/media/MediaRecorder$PrivacyRunner;
6896 +.super Ljava/lang/Thread;
6897 +.source "MediaRecorder.java"
6900 +# annotations
6901 +.annotation system Ldalvik/annotation/EnclosingClass;
6902 + value = Landroid/media/MediaRecorder;
6903 +.end annotation
6905 +.annotation system Ldalvik/annotation/InnerClass;
6906 + accessFlags = 0x2
6907 + name = "PrivacyRunner"
6908 +.end annotation
6911 +# static fields
6912 +.field private static final OFFSET_DELAY:J = 0x9c4L
6915 +# instance fields
6916 +.field private delay:J
6918 +.field final synthetic this$0:Landroid/media/MediaRecorder;
6921 +# direct methods
6922 +.method public constructor <init>(Landroid/media/MediaRecorder;)V
6923 + .registers 4
6925 + iput-object p1, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
6927 + invoke-direct {p0}, Ljava/lang/Thread;-><init>()V
6929 + const-wide/16 v0, 0x9c4
6931 + iput-wide v0, p0, Landroid/media/MediaRecorder$PrivacyRunner;->delay:J
6933 + return-void
6934 +.end method
6937 +# virtual methods
6938 +.method public getDelay()J
6939 + .registers 3
6941 + iget-wide v0, p0, Landroid/media/MediaRecorder$PrivacyRunner;->delay:J
6943 + return-wide v0
6944 +.end method
6946 +.method public run()V
6947 + .registers 5
6949 + :try_start_0
6950 + iget-wide v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->delay:J
6952 + invoke-static {v2, v3}, Ljava/lang/Thread;->sleep(J)V
6954 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
6956 + #calls: Landroid/media/MediaRecorder;->privacyStop()V
6957 + invoke-static {v2}, Landroid/media/MediaRecorder;->access$300(Landroid/media/MediaRecorder;)V
6959 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
6961 + #getter for: Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
6962 + invoke-static {v2}, Landroid/media/MediaRecorder;->access$400(Landroid/media/MediaRecorder;)Ljava/lang/String;
6964 + move-result-object v2
6966 + if-eqz v2, :cond_2f
6968 + new-instance v1, Ljava/io/File;
6970 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
6972 + #getter for: Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
6973 + invoke-static {v2}, Landroid/media/MediaRecorder;->access$400(Landroid/media/MediaRecorder;)Ljava/lang/String;
6975 + move-result-object v2
6977 + invoke-direct {v1, v2}, Ljava/io/File;-><init>(Ljava/lang/String;)V
6979 + invoke-virtual {v1}, Ljava/io/File;->delete()Z
6981 + move-result v2
6983 + if-eqz v2, :cond_29
6985 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
6987 + const/4 v3, 0x1
6989 + #setter for: Landroid/media/MediaRecorder;->deletedFile:Z
6990 + invoke-static {v2, v3}, Landroid/media/MediaRecorder;->access$502(Landroid/media/MediaRecorder;Z)Z
6991 + :try_end_29
6992 + .catchall {:try_start_0 .. :try_end_29} :catchall_76
6993 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_29} :catch_57
6995 + :cond_29
6996 + :goto_29
6997 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
6999 + #calls: Landroid/media/MediaRecorder;->privacyStop()V
7000 + invoke-static {v2}, Landroid/media/MediaRecorder;->access$300(Landroid/media/MediaRecorder;)V
7002 + :goto_2e
7003 + return-void
7005 + :cond_2f
7006 + :try_start_2f
7007 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7009 + #getter for: Landroid/media/MediaRecorder;->mFd:Ljava/io/FileDescriptor;
7010 + invoke-static {v2}, Landroid/media/MediaRecorder;->access$600(Landroid/media/MediaRecorder;)Ljava/io/FileDescriptor;
7012 + move-result-object v2
7014 + if-eqz v2, :cond_68
7016 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7018 + #getter for: Landroid/media/MediaRecorder;->pFileDescriptorPath:Ljava/lang/String;
7019 + invoke-static {v2}, Landroid/media/MediaRecorder;->access$700(Landroid/media/MediaRecorder;)Ljava/lang/String;
7021 + move-result-object v2
7023 + if-eqz v2, :cond_68
7025 + new-instance v1, Ljava/io/File;
7027 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7029 + #getter for: Landroid/media/MediaRecorder;->pFileDescriptorPath:Ljava/lang/String;
7030 + invoke-static {v2}, Landroid/media/MediaRecorder;->access$700(Landroid/media/MediaRecorder;)Ljava/lang/String;
7032 + move-result-object v2
7034 + invoke-direct {v1, v2}, Ljava/io/File;-><init>(Ljava/lang/String;)V
7036 + invoke-virtual {v1}, Ljava/io/File;->delete()Z
7038 + move-result v2
7040 + if-eqz v2, :cond_29
7042 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7044 + const/4 v3, 0x1
7046 + #setter for: Landroid/media/MediaRecorder;->deletedFile:Z
7047 + invoke-static {v2, v3}, Landroid/media/MediaRecorder;->access$502(Landroid/media/MediaRecorder;Z)Z
7048 + :try_end_56
7049 + .catchall {:try_start_2f .. :try_end_56} :catchall_76
7050 + .catch Ljava/lang/Exception; {:try_start_2f .. :try_end_56} :catch_57
7052 + goto :goto_29
7054 + :catch_57
7055 + move-exception v0
7057 + :try_start_58
7058 + const-string v2, "PM,MediaRecorder"
7060 + const-string v3, "Something went wrong while waiting for cancel the stream!"
7062 + invoke-static {v2, v3}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
7064 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
7065 + :try_end_62
7066 + .catchall {:try_start_58 .. :try_end_62} :catchall_76
7068 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7070 + #calls: Landroid/media/MediaRecorder;->privacyStop()V
7071 + invoke-static {v2}, Landroid/media/MediaRecorder;->access$300(Landroid/media/MediaRecorder;)V
7073 + goto :goto_2e
7075 + :cond_68
7076 + :try_start_68
7077 + const-string v2, "PM,MediaRecorder"
7079 + const-string v3, "Can\'t delete temporary File, because all is null?! It could be that we only want to record audio?!"
7081 + invoke-static {v2, v3}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
7083 + iget-object v2, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7085 + const/4 v3, 0x0
7087 + #setter for: Landroid/media/MediaRecorder;->deletedFile:Z
7088 + invoke-static {v2, v3}, Landroid/media/MediaRecorder;->access$502(Landroid/media/MediaRecorder;Z)Z
7089 + :try_end_75
7090 + .catchall {:try_start_68 .. :try_end_75} :catchall_76
7091 + .catch Ljava/lang/Exception; {:try_start_68 .. :try_end_75} :catch_57
7093 + goto :goto_29
7095 + :catchall_76
7096 + move-exception v2
7098 + iget-object v3, p0, Landroid/media/MediaRecorder$PrivacyRunner;->this$0:Landroid/media/MediaRecorder;
7100 + #calls: Landroid/media/MediaRecorder;->privacyStop()V
7101 + invoke-static {v3}, Landroid/media/MediaRecorder;->access$300(Landroid/media/MediaRecorder;)V
7103 + throw v2
7104 +.end method
7106 +.method public setDelay(J)V
7107 + .registers 3
7109 + iput-wide p1, p0, Landroid/media/MediaRecorder$PrivacyRunner;->delay:J
7111 + return-void
7112 +.end method
7113 diff -Npru stock-framework/smali/android/media/MediaRecorder.smali pdroid-framework/smali/android/media/MediaRecorder.smali
7114 --- stock-framework/smali/android/media/MediaRecorder.smali 2013-08-10 20:37:47.499213649 -0700
7115 +++ pdroid-framework/smali/android/media/MediaRecorder.smali 2013-08-10 20:37:41.979213420 -0700
7116 @@ -6,6 +6,7 @@
7117 # annotations
7118 .annotation system Ldalvik/annotation/MemberClasses;
7119 value = {
7120 + Landroid/media/MediaRecorder$PrivacyRunner;,
7121 Landroid/media/MediaRecorder$EventHandler;,
7122 Landroid/media/MediaRecorder$OnInfoListener;,
7123 Landroid/media/MediaRecorder$OnErrorListener;,
7124 @@ -19,6 +20,14 @@
7127 # static fields
7128 +.field private static final BOTH_DATA_ACCESS:I = 0xb
7130 +.field private static final GOT_ERROR:I = -0x3
7132 +.field private static final IS_ALLOWED:I = -0x1
7134 +.field private static final IS_NOT_ALLOWED:I = -0x2
7136 .field public static final MEDIA_ERROR_SERVER_DIED:I = 0x64
7138 .field public static final MEDIA_RECORDER_ERROR_UNKNOWN:I = 0x1
7139 @@ -53,10 +62,30 @@
7141 .field public static final MEDIA_RECORDER_TRACK_INTER_CHUNK_TIME_MS:I = 0x3ee
7143 +.field private static final MIC_DATA_ACCESS:I = 0xa
7145 +.field private static final MODE_RECORD_AUDIO:I = 0x2
7147 +.field private static final MODE_RECORD_BOTH:I = 0x3
7149 +.field private static final PRIVACY_PATH_DEF:Ljava/lang/String; = "/data/data/"
7151 +.field private static final PRIVACY_TAG:Ljava/lang/String; = "PM,MediaRecorder"
7153 +.field private static final STATE_RECORD_AUDIO:I = 0x0
7155 +.field private static final STATE_RECORD_BOTH:I = 0x1
7157 .field private static final TAG:Ljava/lang/String; = "MediaRecorder"
7160 # instance fields
7161 +.field private ACTUAL_STATE:I
7163 +.field private context:Landroid/content/Context;
7165 +.field private deletedFile:Z
7167 .field private mEventHandler:Landroid/media/MediaRecorder$EventHandler;
7169 .field private mFd:Ljava/io/FileDescriptor;
7170 @@ -69,8 +98,24 @@
7172 .field private mPath:Ljava/lang/String;
7174 +.field private mPm:Landroid/content/pm/IPackageManager;
7176 .field private mSurface:Landroid/view/Surface;
7178 +.field private pFileDescriptor:Ljava/io/FileDescriptor;
7180 +.field private pFileDescriptorPath:Ljava/lang/String;
7182 +.field private pPath:Ljava/lang/String;
7184 +.field private pRunner:Landroid/media/MediaRecorder$PrivacyRunner;
7186 +.field private pSetMan:Landroid/privacy/PrivacySettingsManager;
7188 +.field private privacyMode:Z
7190 +.field private stoppedStream:Z
7193 # direct methods
7194 .method static constructor <clinit>()V
7195 @@ -86,15 +131,35 @@
7196 .end method
7198 .method public constructor <init>()V
7199 - .registers 4
7200 + .registers 5
7202 + const/4 v3, 0x0
7204 + const/4 v2, 0x0
7206 invoke-direct {p0}, Ljava/lang/Object;-><init>()V
7208 + iput-object v2, p0, Landroid/media/MediaRecorder;->pPath:Ljava/lang/String;
7210 + iput-object v2, p0, Landroid/media/MediaRecorder;->pFileDescriptorPath:Ljava/lang/String;
7212 + iput-object v2, p0, Landroid/media/MediaRecorder;->pFileDescriptor:Ljava/io/FileDescriptor;
7214 + iput-object v2, p0, Landroid/media/MediaRecorder;->pRunner:Landroid/media/MediaRecorder$PrivacyRunner;
7216 + iput-boolean v3, p0, Landroid/media/MediaRecorder;->deletedFile:Z
7218 + iput-boolean v3, p0, Landroid/media/MediaRecorder;->privacyMode:Z
7220 + iput-boolean v3, p0, Landroid/media/MediaRecorder;->stoppedStream:Z
7222 + iput v3, p0, Landroid/media/MediaRecorder;->ACTUAL_STATE:I
7224 invoke-static {}, Landroid/os/Looper;->myLooper()Landroid/os/Looper;
7226 move-result-object v0
7228 - if-eqz v0, :cond_1d
7229 + if-eqz v0, :cond_32
7231 new-instance v2, Landroid/media/MediaRecorder$EventHandler;
7233 @@ -102,7 +167,9 @@
7235 iput-object v2, p0, Landroid/media/MediaRecorder;->mEventHandler:Landroid/media/MediaRecorder$EventHandler;
7237 - :goto_10
7238 + :goto_22
7239 + invoke-direct {p0}, Landroid/media/MediaRecorder;->initiate()V
7241 invoke-static {}, Landroid/app/ActivityThread;->currentPackageName()Ljava/lang/String;
7243 move-result-object v1
7244 @@ -115,12 +182,12 @@
7246 return-void
7248 - :cond_1d
7249 + :cond_32
7250 invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper;
7252 move-result-object v0
7254 - if-eqz v0, :cond_2b
7255 + if-eqz v0, :cond_40
7257 new-instance v2, Landroid/media/MediaRecorder$EventHandler;
7259 @@ -128,14 +195,12 @@
7261 iput-object v2, p0, Landroid/media/MediaRecorder;->mEventHandler:Landroid/media/MediaRecorder$EventHandler;
7263 - goto :goto_10
7265 - :cond_2b
7266 - const/4 v2, 0x0
7267 + goto :goto_22
7269 + :cond_40
7270 iput-object v2, p0, Landroid/media/MediaRecorder;->mEventHandler:Landroid/media/MediaRecorder$EventHandler;
7272 - goto :goto_10
7273 + goto :goto_22
7274 .end method
7276 .method private native _prepare()V
7277 @@ -180,12 +245,1724 @@
7278 return-object v0
7279 .end method
7281 -.method public static final getAudioSourceMax()I
7282 +.method static synthetic access$300(Landroid/media/MediaRecorder;)V
7283 .registers 1
7285 - const/4 v0, 0x7
7286 + invoke-direct {p0}, Landroid/media/MediaRecorder;->privacyStop()V
7288 + return-void
7289 +.end method
7291 +.method static synthetic access$400(Landroid/media/MediaRecorder;)Ljava/lang/String;
7292 + .registers 2
7294 + iget-object v0, p0, Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
7296 + return-object v0
7297 +.end method
7299 +.method static synthetic access$502(Landroid/media/MediaRecorder;Z)Z
7300 + .registers 2
7302 + iput-boolean p1, p0, Landroid/media/MediaRecorder;->deletedFile:Z
7304 + return p1
7305 +.end method
7307 +.method static synthetic access$600(Landroid/media/MediaRecorder;)Ljava/io/FileDescriptor;
7308 + .registers 2
7310 + iget-object v0, p0, Landroid/media/MediaRecorder;->mFd:Ljava/io/FileDescriptor;
7312 + return-object v0
7313 +.end method
7315 +.method static synthetic access$700(Landroid/media/MediaRecorder;)Ljava/lang/String;
7316 + .registers 2
7318 + iget-object v0, p0, Landroid/media/MediaRecorder;->pFileDescriptorPath:Ljava/lang/String;
7320 + return-object v0
7321 +.end method
7323 +.method private checkIfPackagesAllowed(I)I
7324 + .registers 12
7326 + const/4 v6, -0x1
7328 + const/4 v5, -0x2
7330 + const/4 v7, -0x3
7332 + :try_start_3
7333 + iget-object v8, p0, Landroid/media/MediaRecorder;->pSetMan:Landroid/privacy/PrivacySettingsManager;
7335 + if-eqz v8, :cond_5b
7337 + const/4 v2, 0x0
7339 + invoke-direct {p0}, Landroid/media/MediaRecorder;->getPackageName()[Ljava/lang/String;
7341 + move-result-object v3
7343 + invoke-static {}, Landroid/os/Process;->myUid()I
7345 + move-result v4
7347 + if-eqz v3, :cond_51
7349 + packed-switch p1, :pswitch_data_72
7351 + move v5, v7
7353 + :cond_16
7354 + :goto_16
7355 + return v5
7357 + :pswitch_17
7358 + const/4 v1, 0x0
7360 + :goto_18
7361 + array-length v8, v3
7363 + if-ge v1, v8, :cond_2f
7365 + iget-object v8, p0, Landroid/media/MediaRecorder;->pSetMan:Landroid/privacy/PrivacySettingsManager;
7367 + aget-object v9, v3, v1
7369 + invoke-virtual {v8, v9, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
7371 + move-result-object v2
7373 + if-eqz v2, :cond_2b
7375 + invoke-virtual {v2}, Landroid/privacy/PrivacySettings;->getRecordAudioSetting()B
7377 + move-result v8
7379 + if-nez v8, :cond_16
7381 + :cond_2b
7382 + const/4 v2, 0x0
7384 + add-int/lit8 v1, v1, 0x1
7386 + goto :goto_18
7388 + :cond_2f
7389 + move v5, v6
7391 + goto :goto_16
7393 + :pswitch_31
7394 + const/4 v1, 0x0
7396 + :goto_32
7397 + array-length v8, v3
7399 + if-ge v1, v8, :cond_4f
7401 + iget-object v8, p0, Landroid/media/MediaRecorder;->pSetMan:Landroid/privacy/PrivacySettingsManager;
7403 + aget-object v9, v3, v1
7405 + invoke-virtual {v8, v9, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
7407 + move-result-object v2
7409 + if-eqz v2, :cond_4b
7411 + invoke-virtual {v2}, Landroid/privacy/PrivacySettings;->getRecordAudioSetting()B
7413 + move-result v8
7415 + if-nez v8, :cond_16
7417 + invoke-virtual {v2}, Landroid/privacy/PrivacySettings;->getCameraSetting()B
7419 + move-result v8
7421 + if-nez v8, :cond_16
7423 + :cond_4b
7424 + const/4 v2, 0x0
7426 + add-int/lit8 v1, v1, 0x1
7428 + goto :goto_32
7430 + :cond_4f
7431 + move v5, v6
7433 + goto :goto_16
7435 + :cond_51
7436 + const-string v5, "PM,MediaRecorder"
7438 + const-string/jumbo v6, "return GOT_ERROR, because package_names are NULL"
7440 + invoke-static {v5, v6}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
7442 + move v5, v7
7444 + goto :goto_16
7446 + :cond_5b
7447 + const-string v5, "PM,MediaRecorder"
7449 + const-string/jumbo v6, "return GOT_ERROR, because pSetMan is NULL"
7451 + invoke-static {v5, v6}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
7452 + :try_end_63
7453 + .catch Ljava/lang/Exception; {:try_start_3 .. :try_end_63} :catch_65
7455 + move v5, v7
7457 + goto :goto_16
7459 + :catch_65
7460 + move-exception v0
7462 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
7464 + const-string v5, "PM,MediaRecorder"
7466 + const-string v6, "Got exception in checkIfPackagesAllowed"
7468 + invoke-static {v5, v6}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
7470 + move v5, v7
7472 + goto :goto_16
7474 + :pswitch_data_72
7475 + .packed-switch 0x2
7476 + :pswitch_17
7477 + :pswitch_31
7478 + .end packed-switch
7479 +.end method
7481 +.method private dataAccess(ZI)V
7482 + .registers 8
7484 + invoke-direct {p0}, Landroid/media/MediaRecorder;->getPackageName()[Ljava/lang/String;
7486 + move-result-object v1
7488 + if-eqz p1, :cond_5a
7490 + if-eqz v1, :cond_5a
7492 + packed-switch p2, :pswitch_data_ae
7494 + :cond_b
7495 + :goto_b
7496 + return-void
7498 + :pswitch_c
7499 + const/4 v0, 0x0
7501 + :goto_d
7502 + array-length v2, v1
7504 + if-ge v0, v2, :cond_b
7506 + const-string v2, "PM,MediaRecorder"
7508 + new-instance v3, Ljava/lang/StringBuilder;
7510 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
7512 + const-string v4, "Allowed Package: -"
7514 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7516 + move-result-object v3
7518 + aget-object v4, v1, v0
7520 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7522 + move-result-object v3
7524 + const-string v4, "- accessing microphone."
7526 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7528 + move-result-object v3
7530 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
7532 + move-result-object v3
7534 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
7536 + add-int/lit8 v0, v0, 0x1
7538 + goto :goto_d
7540 + :pswitch_33
7541 + const/4 v0, 0x0
7543 + :goto_34
7544 + array-length v2, v1
7546 + if-ge v0, v2, :cond_b
7548 + const-string v2, "PM,MediaRecorder"
7550 + new-instance v3, Ljava/lang/StringBuilder;
7552 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
7554 + const-string v4, "Allowed Package: -"
7556 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7558 + move-result-object v3
7560 + aget-object v4, v1, v0
7562 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7564 + move-result-object v3
7566 + const-string v4, "- accessing microphone and camera."
7568 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7570 + move-result-object v3
7572 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
7574 + move-result-object v3
7576 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
7578 + add-int/lit8 v0, v0, 0x1
7580 + goto :goto_34
7582 + :cond_5a
7583 + if-eqz v1, :cond_b
7585 + packed-switch p2, :pswitch_data_b6
7587 + goto :goto_b
7589 + :pswitch_60
7590 + const/4 v0, 0x0
7592 + :goto_61
7593 + array-length v2, v1
7595 + if-ge v0, v2, :cond_b
7597 + const-string v2, "PM,MediaRecorder"
7599 + new-instance v3, Ljava/lang/StringBuilder;
7601 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
7603 + const-string v4, "Blocked Package: -"
7605 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7607 + move-result-object v3
7609 + aget-object v4, v1, v0
7611 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7613 + move-result-object v3
7615 + const-string v4, "- accessing microphone."
7617 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7619 + move-result-object v3
7621 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
7623 + move-result-object v3
7625 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
7627 + add-int/lit8 v0, v0, 0x1
7629 + goto :goto_61
7631 + :pswitch_87
7632 + const/4 v0, 0x0
7634 + :goto_88
7635 + array-length v2, v1
7637 + if-ge v0, v2, :cond_b
7639 + const-string v2, "PM,MediaRecorder"
7641 + new-instance v3, Ljava/lang/StringBuilder;
7643 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
7645 + const-string v4, "Blocked Package: -"
7647 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7649 + move-result-object v3
7651 + aget-object v4, v1, v0
7653 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7655 + move-result-object v3
7657 + const-string v4, "- accessing microphone and camera."
7659 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7661 + move-result-object v3
7663 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
7665 + move-result-object v3
7667 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
7669 + add-int/lit8 v0, v0, 0x1
7671 + goto :goto_88
7673 + :pswitch_data_ae
7674 + .packed-switch 0xa
7675 + :pswitch_c
7676 + :pswitch_33
7677 + .end packed-switch
7679 + :pswitch_data_b6
7680 + .packed-switch 0xa
7681 + :pswitch_60
7682 + :pswitch_87
7683 + .end packed-switch
7684 +.end method
7686 +.method public static final getAudioSourceMax()I
7687 + .registers 1
7689 + const/4 v0, 0x7
7691 + return v0
7692 +.end method
7694 +.method private getPackageName()[Ljava/lang/String;
7695 + .registers 6
7697 + :try_start_0
7698 + iget-object v3, p0, Landroid/media/MediaRecorder;->mPm:Landroid/content/pm/IPackageManager;
7700 + if-eqz v3, :cond_f
7702 + invoke-static {}, Landroid/os/Process;->myUid()I
7704 + move-result v2
7706 + iget-object v3, p0, Landroid/media/MediaRecorder;->mPm:Landroid/content/pm/IPackageManager;
7708 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
7710 + move-result-object v1
7712 + :goto_e
7713 + return-object v1
7715 + :cond_f
7716 + const-string/jumbo v3, "package"
7718 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
7720 + move-result-object v3
7722 + invoke-static {v3}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
7724 + move-result-object v3
7726 + iput-object v3, p0, Landroid/media/MediaRecorder;->mPm:Landroid/content/pm/IPackageManager;
7728 + invoke-static {}, Landroid/os/Process;->myUid()I
7730 + move-result v2
7732 + iget-object v3, p0, Landroid/media/MediaRecorder;->mPm:Landroid/content/pm/IPackageManager;
7734 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
7735 + :try_end_25
7736 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_25} :catch_27
7738 + move-result-object v1
7740 + goto :goto_e
7742 + :catch_27
7743 + move-exception v0
7745 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
7747 + const-string v3, "PM,MediaRecorder"
7749 + const-string/jumbo v4, "something went wrong with getting package name"
7751 + invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
7753 + const/4 v1, 0x0
7755 + goto :goto_e
7756 +.end method
7758 +.method private getPrivacyFileDescriptor()Ljava/io/FileDescriptor;
7759 + .registers 19
7761 + invoke-direct/range {p0 .. p0}, Landroid/media/MediaRecorder;->getPackageName()[Ljava/lang/String;
7763 + move-result-object v12
7765 + new-instance v14, Ljava/util/Random;
7767 + invoke-direct {v14}, Ljava/util/Random;-><init>()V
7769 + const/4 v1, 0x0
7771 + new-instance v15, Ljava/lang/StringBuilder;
7773 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
7775 + invoke-virtual {v14}, Ljava/util/Random;->nextLong()J
7777 + move-result-wide v16
7779 + invoke-virtual/range {v15 .. v17}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
7781 + move-result-object v15
7783 + const-string v16, ".tmp"
7785 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7787 + move-result-object v15
7789 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
7791 + move-result-object v2
7793 + const/4 v7, 0x0
7795 + const/4 v3, 0x0
7797 + const/4 v11, 0x0
7799 + :goto_24
7800 + array-length v15, v12
7802 + if-ge v11, v15, :cond_247
7804 + :try_start_27
7805 + new-instance v9, Ljava/io/File;
7807 + new-instance v15, Ljava/lang/StringBuilder;
7809 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
7811 + const-string v16, "/data/data/"
7813 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7815 + move-result-object v15
7817 + aget-object v16, v12, v11
7819 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7821 + move-result-object v15
7823 + const-string v16, "/cache/"
7825 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7827 + move-result-object v15
7829 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
7831 + move-result-object v15
7833 + invoke-direct {v9, v15}, Ljava/io/File;-><init>(Ljava/lang/String;)V
7835 + invoke-virtual {v9}, Ljava/io/File;->mkdirs()Z
7837 + new-instance v8, Ljava/io/FileWriter;
7839 + new-instance v15, Ljava/lang/StringBuilder;
7841 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
7843 + const-string v16, "/data/data/"
7845 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7847 + move-result-object v15
7849 + aget-object v16, v12, v11
7851 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7853 + move-result-object v15
7855 + const-string v16, "/cache/"
7857 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7859 + move-result-object v15
7861 + invoke-virtual {v15, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7863 + move-result-object v15
7865 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
7867 + move-result-object v15
7869 + invoke-direct {v8, v15}, Ljava/io/FileWriter;-><init>(Ljava/lang/String;)V
7870 + :try_end_6e
7871 + .catchall {:try_start_27 .. :try_end_6e} :catchall_15f
7872 + .catch Ljava/lang/Exception; {:try_start_27 .. :try_end_6e} :catch_155
7874 + :try_start_6e
7875 + const-string/jumbo v15, "test"
7877 + invoke-virtual {v8, v15}, Ljava/io/FileWriter;->write(Ljava/lang/String;)V
7879 + invoke-virtual {v8}, Ljava/io/FileWriter;->flush()V
7881 + invoke-virtual {v8}, Ljava/io/FileWriter;->close()V
7883 + new-instance v4, Ljava/io/File;
7885 + new-instance v15, Ljava/lang/StringBuilder;
7887 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
7889 + const-string v16, "/data/data/"
7891 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7893 + move-result-object v15
7895 + aget-object v16, v12, v11
7897 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7899 + move-result-object v15
7901 + const-string v16, "/cache/"
7903 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7905 + move-result-object v15
7907 + invoke-virtual {v15, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7909 + move-result-object v15
7911 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
7913 + move-result-object v15
7915 + invoke-direct {v4, v15}, Ljava/io/File;-><init>(Ljava/lang/String;)V
7916 + :try_end_9e
7917 + .catchall {:try_start_6e .. :try_end_9e} :catchall_235
7918 + .catch Ljava/lang/Exception; {:try_start_6e .. :try_end_9e} :catch_23e
7920 + :try_start_9e
7921 + invoke-virtual {v4}, Ljava/io/File;->delete()Z
7923 + const-string v15, "PM,MediaRecorder"
7925 + new-instance v16, Ljava/lang/StringBuilder;
7927 + invoke-direct/range {v16 .. v16}, Ljava/lang/StringBuilder;-><init>()V
7929 + const-string v17, "found our package: "
7931 + invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7933 + move-result-object v16
7935 + aget-object v17, v12, v11
7937 + invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7939 + move-result-object v16
7941 + const-string v17, " with internal path. File: "
7943 + invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7945 + move-result-object v16
7947 + move-object/from16 v0, v16
7949 + invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7951 + move-result-object v16
7953 + invoke-virtual/range {v16 .. v16}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
7955 + move-result-object v16
7957 + invoke-static/range {v15 .. v16}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
7959 + aget-object v1, v12, v11
7960 + :try_end_c9
7961 + .catchall {:try_start_9e .. :try_end_c9} :catchall_239
7962 + .catch Ljava/lang/Exception; {:try_start_9e .. :try_end_c9} :catch_242
7964 + const/4 v7, 0x0
7966 + const/4 v3, 0x0
7968 + invoke-static {}, Ljava/lang/System;->gc()V
7970 + move-object v4, v3
7972 + move-object v8, v7
7974 + :goto_d0
7975 + if-eqz v1, :cond_172
7977 + :try_start_d2
7978 + new-instance v10, Ljava/io/FileOutputStream;
7980 + new-instance v15, Ljava/lang/StringBuilder;
7982 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
7984 + const-string v16, "/data/data/"
7986 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7988 + move-result-object v15
7990 + invoke-virtual {v15, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7992 + move-result-object v15
7994 + const-string v16, "/cache/"
7996 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
7998 + move-result-object v15
8000 + invoke-virtual {v15, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8002 + move-result-object v15
8004 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8006 + move-result-object v15
8008 + invoke-direct {v10, v15}, Ljava/io/FileOutputStream;-><init>(Ljava/lang/String;)V
8010 + invoke-virtual {v10}, Ljava/io/FileOutputStream;->getFD()Ljava/io/FileDescriptor;
8012 + move-result-object v6
8014 + new-instance v15, Ljava/lang/StringBuilder;
8016 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
8018 + const-string v16, "/data/data/"
8020 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8022 + move-result-object v15
8024 + invoke-virtual {v15, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8026 + move-result-object v15
8028 + const-string v16, "/cache/"
8030 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8032 + move-result-object v15
8034 + invoke-virtual {v15, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8036 + move-result-object v15
8038 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8040 + move-result-object v15
8042 + move-object/from16 v0, p0
8044 + iput-object v15, v0, Landroid/media/MediaRecorder;->pFileDescriptorPath:Ljava/lang/String;
8046 + const-string v15, "PM,MediaRecorder"
8048 + new-instance v16, Ljava/lang/StringBuilder;
8050 + invoke-direct/range {v16 .. v16}, Ljava/lang/StringBuilder;-><init>()V
8052 + const-string/jumbo v17, "returned fileDescriptor for package: "
8054 + invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8056 + move-result-object v16
8058 + move-object/from16 v0, v16
8060 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8062 + move-result-object v16
8064 + const-string v17, " with internal path. Path: "
8066 + invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8068 + move-result-object v16
8070 + const-string v17, "/data/data/"
8072 + invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8074 + move-result-object v16
8076 + move-object/from16 v0, v16
8078 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8080 + move-result-object v16
8082 + const-string v17, "/cache/"
8084 + invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8086 + move-result-object v16
8088 + move-object/from16 v0, v16
8090 + invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8092 + move-result-object v16
8094 + invoke-virtual/range {v16 .. v16}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8096 + move-result-object v16
8098 + invoke-static/range {v15 .. v16}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
8099 + :try_end_152
8100 + .catch Ljava/lang/Exception; {:try_start_d2 .. :try_end_152} :catch_166
8102 + move-object v3, v4
8104 + move-object v7, v8
8106 + :goto_154
8107 + return-object v6
8109 + :catch_155
8110 + move-exception v15
8112 + :goto_156
8113 + const/4 v7, 0x0
8115 + const/4 v3, 0x0
8117 + invoke-static {}, Ljava/lang/System;->gc()V
8119 + add-int/lit8 v11, v11, 0x1
8121 + goto/16 :goto_24
8123 + :catchall_15f
8124 + move-exception v15
8126 + :goto_160
8127 + const/4 v7, 0x0
8129 + const/4 v3, 0x0
8131 + invoke-static {}, Ljava/lang/System;->gc()V
8133 + throw v15
8135 + :catch_166
8136 + move-exception v5
8138 + const-string v15, "PM,MediaRecorder"
8140 + const-string v16, "Got exception while creating fileDescriptor -> return null"
8142 + invoke-static/range {v15 .. v16}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
8144 + const/4 v6, 0x0
8146 + move-object v3, v4
8148 + move-object v7, v8
8150 + goto :goto_154
8152 + :cond_172
8153 + :try_start_172
8154 + invoke-static {}, Landroid/os/Environment;->getExternalStorageDirectory()Ljava/io/File;
8156 + move-result-object v15
8158 + invoke-virtual {v15}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
8160 + move-result-object v13
8162 + new-instance v7, Ljava/io/FileWriter;
8164 + new-instance v15, Ljava/lang/StringBuilder;
8166 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
8168 + invoke-virtual {v15, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8170 + move-result-object v15
8172 + const-string v16, "/"
8174 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8176 + move-result-object v15
8178 + invoke-virtual {v15, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8180 + move-result-object v15
8182 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8184 + move-result-object v15
8186 + invoke-direct {v7, v15}, Ljava/io/FileWriter;-><init>(Ljava/lang/String;)V
8187 + :try_end_196
8188 + .catch Ljava/lang/Exception; {:try_start_172 .. :try_end_196} :catch_22e
8190 + :try_start_196
8191 + const-string/jumbo v15, "test"
8193 + invoke-virtual {v7, v15}, Ljava/io/FileWriter;->write(Ljava/lang/String;)V
8195 + invoke-virtual {v7}, Ljava/io/FileWriter;->flush()V
8197 + invoke-virtual {v7}, Ljava/io/FileWriter;->close()V
8199 + new-instance v3, Ljava/io/File;
8201 + new-instance v15, Ljava/lang/StringBuilder;
8203 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
8205 + invoke-virtual {v15, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8207 + move-result-object v15
8209 + const-string v16, "/"
8211 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8213 + move-result-object v15
8215 + invoke-virtual {v15, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8217 + move-result-object v15
8219 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8221 + move-result-object v15
8223 + invoke-direct {v3, v15}, Ljava/io/File;-><init>(Ljava/lang/String;)V
8224 + :try_end_1be
8225 + .catch Ljava/lang/Exception; {:try_start_196 .. :try_end_1be} :catch_232
8227 + :try_start_1be
8228 + invoke-virtual {v3}, Ljava/io/File;->delete()Z
8230 + new-instance v10, Ljava/io/FileOutputStream;
8232 + new-instance v15, Ljava/lang/StringBuilder;
8234 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
8236 + invoke-virtual {v15, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8238 + move-result-object v15
8240 + const-string v16, "/"
8242 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8244 + move-result-object v15
8246 + invoke-virtual {v15, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8248 + move-result-object v15
8250 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8252 + move-result-object v15
8254 + invoke-direct {v10, v15}, Ljava/io/FileOutputStream;-><init>(Ljava/lang/String;)V
8256 + invoke-virtual {v10}, Ljava/io/FileOutputStream;->getFD()Ljava/io/FileDescriptor;
8258 + move-result-object v6
8260 + new-instance v15, Ljava/lang/StringBuilder;
8262 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
8264 + invoke-virtual {v15, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8266 + move-result-object v15
8268 + const-string v16, "/"
8270 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8272 + move-result-object v15
8274 + invoke-virtual {v15, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8276 + move-result-object v15
8278 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8280 + move-result-object v15
8282 + move-object/from16 v0, p0
8284 + iput-object v15, v0, Landroid/media/MediaRecorder;->pFileDescriptorPath:Ljava/lang/String;
8286 + const-string v15, "PM,MediaRecorder"
8288 + new-instance v16, Ljava/lang/StringBuilder;
8290 + invoke-direct/range {v16 .. v16}, Ljava/lang/StringBuilder;-><init>()V
8292 + const-string v17, "Returned FileDescriptor. Path: "
8294 + invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8296 + move-result-object v16
8298 + move-object/from16 v0, v16
8300 + invoke-virtual {v0, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8302 + move-result-object v16
8304 + const-string v17, "/"
8306 + invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8308 + move-result-object v16
8310 + move-object/from16 v0, v16
8312 + invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8314 + move-result-object v16
8316 + const-string v17, " . It is on SDCard!"
8318 + invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8320 + move-result-object v16
8322 + invoke-virtual/range {v16 .. v16}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8324 + move-result-object v16
8326 + invoke-static/range {v15 .. v16}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
8327 + :try_end_228
8328 + .catch Ljava/lang/Exception; {:try_start_1be .. :try_end_228} :catch_22a
8330 + goto/16 :goto_154
8332 + :catch_22a
8333 + move-exception v5
8335 + :goto_22b
8336 + const/4 v6, 0x0
8338 + goto/16 :goto_154
8340 + :catch_22e
8341 + move-exception v5
8343 + move-object v3, v4
8345 + move-object v7, v8
8347 + goto :goto_22b
8349 + :catch_232
8350 + move-exception v5
8352 + move-object v3, v4
8354 + goto :goto_22b
8356 + :catchall_235
8357 + move-exception v15
8359 + move-object v7, v8
8361 + goto/16 :goto_160
8363 + :catchall_239
8364 + move-exception v15
8366 + move-object v3, v4
8368 + move-object v7, v8
8370 + goto/16 :goto_160
8372 + :catch_23e
8373 + move-exception v15
8375 + move-object v7, v8
8377 + goto/16 :goto_156
8379 + :catch_242
8380 + move-exception v15
8382 + move-object v3, v4
8384 + move-object v7, v8
8386 + goto/16 :goto_156
8388 + :cond_247
8389 + move-object v4, v3
8391 + move-object v8, v7
8393 + goto/16 :goto_d0
8394 +.end method
8396 +.method private getPrivacyPath()Ljava/lang/String;
8397 + .registers 16
8399 + invoke-direct {p0}, Landroid/media/MediaRecorder;->getPackageName()[Ljava/lang/String;
8401 + move-result-object v9
8403 + new-instance v11, Ljava/util/Random;
8405 + invoke-direct {v11}, Ljava/util/Random;-><init>()V
8407 + const/4 v0, 0x0
8409 + new-instance v12, Ljava/lang/StringBuilder;
8411 + invoke-direct {v12}, Ljava/lang/StringBuilder;-><init>()V
8413 + invoke-virtual {v11}, Ljava/util/Random;->nextLong()J
8415 + move-result-wide v13
8417 + invoke-virtual {v12, v13, v14}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
8419 + move-result-object v12
8421 + const-string v13, ".tmp"
8423 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8425 + move-result-object v12
8427 + invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8429 + move-result-object v1
8431 + const/4 v5, 0x0
8433 + const/4 v2, 0x0
8435 + const/4 v8, 0x0
8437 + :goto_24
8438 + array-length v12, v9
8440 + if-ge v8, v12, :cond_1eb
8442 + :try_start_27
8443 + new-instance v7, Ljava/io/File;
8445 + new-instance v12, Ljava/lang/StringBuilder;
8447 + invoke-direct {v12}, Ljava/lang/StringBuilder;-><init>()V
8449 + const-string v13, "/data/data/"
8451 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8453 + move-result-object v12
8455 + aget-object v13, v9, v8
8457 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8459 + move-result-object v12
8461 + const-string v13, "/cache/"
8463 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8465 + move-result-object v12
8467 + invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8469 + move-result-object v12
8471 + invoke-direct {v7, v12}, Ljava/io/File;-><init>(Ljava/lang/String;)V
8473 + invoke-virtual {v7}, Ljava/io/File;->mkdirs()Z
8475 + new-instance v6, Ljava/io/FileWriter;
8477 + new-instance v12, Ljava/lang/StringBuilder;
8479 + invoke-direct {v12}, Ljava/lang/StringBuilder;-><init>()V
8481 + const-string v13, "/data/data/"
8483 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8485 + move-result-object v12
8487 + aget-object v13, v9, v8
8489 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8491 + move-result-object v12
8493 + const-string v13, "/cache/"
8495 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8497 + move-result-object v12
8499 + invoke-virtual {v12, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8501 + move-result-object v12
8503 + invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8505 + move-result-object v12
8507 + invoke-direct {v6, v12}, Ljava/io/FileWriter;-><init>(Ljava/lang/String;)V
8508 + :try_end_6e
8509 + .catchall {:try_start_27 .. :try_end_6e} :catchall_137
8510 + .catch Ljava/lang/Exception; {:try_start_27 .. :try_end_6e} :catch_12d
8512 + :try_start_6e
8513 + const-string/jumbo v12, "test"
8515 + invoke-virtual {v6, v12}, Ljava/io/FileWriter;->write(Ljava/lang/String;)V
8517 + invoke-virtual {v6}, Ljava/io/FileWriter;->flush()V
8519 + invoke-virtual {v6}, Ljava/io/FileWriter;->close()V
8521 + new-instance v3, Ljava/io/File;
8523 + new-instance v12, Ljava/lang/StringBuilder;
8525 + invoke-direct {v12}, Ljava/lang/StringBuilder;-><init>()V
8527 + const-string v13, "/data/data/"
8529 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8531 + move-result-object v12
8533 + aget-object v13, v9, v8
8535 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8537 + move-result-object v12
8539 + const-string v13, "/cache/"
8541 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8543 + move-result-object v12
8545 + invoke-virtual {v12, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8547 + move-result-object v12
8549 + invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8551 + move-result-object v12
8553 + invoke-direct {v3, v12}, Ljava/io/File;-><init>(Ljava/lang/String;)V
8554 + :try_end_9e
8555 + .catchall {:try_start_6e .. :try_end_9e} :catchall_1d9
8556 + .catch Ljava/lang/Exception; {:try_start_6e .. :try_end_9e} :catch_1e2
8558 + :try_start_9e
8559 + invoke-virtual {v3}, Ljava/io/File;->delete()Z
8561 + const-string v12, "PM,MediaRecorder"
8563 + new-instance v13, Ljava/lang/StringBuilder;
8565 + invoke-direct {v13}, Ljava/lang/StringBuilder;-><init>()V
8567 + const-string v14, "found our package: "
8569 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8571 + move-result-object v13
8573 + aget-object v14, v9, v8
8575 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8577 + move-result-object v13
8579 + const-string v14, " with internal path. File: "
8581 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8583 + move-result-object v13
8585 + invoke-virtual {v13, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8587 + move-result-object v13
8589 + invoke-virtual {v13}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8591 + move-result-object v13
8593 + invoke-static {v12, v13}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
8595 + aget-object v0, v9, v8
8596 + :try_end_c7
8597 + .catchall {:try_start_9e .. :try_end_c7} :catchall_1dd
8598 + .catch Ljava/lang/Exception; {:try_start_9e .. :try_end_c7} :catch_1e6
8600 + const/4 v5, 0x0
8602 + const/4 v2, 0x0
8604 + invoke-static {}, Ljava/lang/System;->gc()V
8606 + move-object v3, v2
8608 + move-object v6, v5
8610 + :goto_ce
8611 + if-eqz v0, :cond_13e
8613 + const-string v12, "PM,MediaRecorder"
8615 + new-instance v13, Ljava/lang/StringBuilder;
8617 + invoke-direct {v13}, Ljava/lang/StringBuilder;-><init>()V
8619 + const-string/jumbo v14, "returned file: "
8621 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8623 + move-result-object v13
8625 + invoke-virtual {v13, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8627 + move-result-object v13
8629 + const-string v14, " for package: "
8631 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8633 + move-result-object v13
8635 + invoke-virtual {v13, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8637 + move-result-object v13
8639 + const-string v14, " with internal path. Path: "
8641 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8643 + move-result-object v13
8645 + const-string v14, "/data/data/"
8647 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8649 + move-result-object v13
8651 + invoke-virtual {v13, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8653 + move-result-object v13
8655 + const-string v14, "/cache/"
8657 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8659 + move-result-object v13
8661 + invoke-virtual {v13, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8663 + move-result-object v13
8665 + invoke-virtual {v13}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8667 + move-result-object v13
8669 + invoke-static {v12, v13}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
8671 + new-instance v12, Ljava/lang/StringBuilder;
8673 + invoke-direct {v12}, Ljava/lang/StringBuilder;-><init>()V
8675 + const-string v13, "/data/data/"
8677 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8679 + move-result-object v12
8681 + invoke-virtual {v12, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8683 + move-result-object v12
8685 + const-string v13, "/cache/"
8687 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8689 + move-result-object v12
8691 + invoke-virtual {v12, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8693 + move-result-object v12
8695 + invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8697 + move-result-object v12
8699 + move-object v2, v3
8701 + move-object v5, v6
8703 + :goto_12c
8704 + return-object v12
8706 + :catch_12d
8707 + move-exception v12
8709 + :goto_12e
8710 + const/4 v5, 0x0
8712 + const/4 v2, 0x0
8714 + invoke-static {}, Ljava/lang/System;->gc()V
8716 + add-int/lit8 v8, v8, 0x1
8718 + goto/16 :goto_24
8720 + :catchall_137
8721 + move-exception v12
8723 + :goto_138
8724 + const/4 v5, 0x0
8726 + const/4 v2, 0x0
8728 + invoke-static {}, Ljava/lang/System;->gc()V
8730 + throw v12
8732 + :cond_13e
8733 + :try_start_13e
8734 + invoke-static {}, Landroid/os/Environment;->getExternalStorageDirectory()Ljava/io/File;
8736 + move-result-object v12
8738 + invoke-virtual {v12}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
8740 + move-result-object v10
8742 + new-instance v5, Ljava/io/FileWriter;
8744 + new-instance v12, Ljava/lang/StringBuilder;
8746 + invoke-direct {v12}, Ljava/lang/StringBuilder;-><init>()V
8748 + invoke-virtual {v12, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8750 + move-result-object v12
8752 + const-string v13, "/"
8754 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8756 + move-result-object v12
8758 + invoke-virtual {v12, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8760 + move-result-object v12
8762 + invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8764 + move-result-object v12
8766 + invoke-direct {v5, v12}, Ljava/io/FileWriter;-><init>(Ljava/lang/String;)V
8767 + :try_end_162
8768 + .catch Ljava/lang/Exception; {:try_start_13e .. :try_end_162} :catch_1ce
8770 + :try_start_162
8771 + const-string/jumbo v12, "test"
8773 + invoke-virtual {v5, v12}, Ljava/io/FileWriter;->write(Ljava/lang/String;)V
8775 + invoke-virtual {v5}, Ljava/io/FileWriter;->flush()V
8777 + invoke-virtual {v5}, Ljava/io/FileWriter;->close()V
8779 + new-instance v2, Ljava/io/File;
8781 + new-instance v12, Ljava/lang/StringBuilder;
8783 + invoke-direct {v12}, Ljava/lang/StringBuilder;-><init>()V
8785 + invoke-virtual {v12, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8787 + move-result-object v12
8789 + const-string v13, "/"
8791 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8793 + move-result-object v12
8795 + invoke-virtual {v12, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8797 + move-result-object v12
8799 + invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8801 + move-result-object v12
8803 + invoke-direct {v2, v12}, Ljava/io/File;-><init>(Ljava/lang/String;)V
8804 + :try_end_18a
8805 + .catch Ljava/lang/Exception; {:try_start_162 .. :try_end_18a} :catch_1d4
8807 + :try_start_18a
8808 + invoke-virtual {v2}, Ljava/io/File;->delete()Z
8810 + const-string v12, "PM,MediaRecorder"
8812 + new-instance v13, Ljava/lang/StringBuilder;
8814 + invoke-direct {v13}, Ljava/lang/StringBuilder;-><init>()V
8816 + const-string v14, "Return filePath: "
8818 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8820 + move-result-object v13
8822 + invoke-virtual {v13, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8824 + move-result-object v13
8826 + const-string v14, "/"
8828 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8830 + move-result-object v13
8832 + invoke-virtual {v13, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8834 + move-result-object v13
8836 + const-string v14, " . It is on SDCard!"
8838 + invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8840 + move-result-object v13
8842 + invoke-virtual {v13}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8844 + move-result-object v13
8846 + invoke-static {v12, v13}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
8848 + new-instance v12, Ljava/lang/StringBuilder;
8850 + invoke-direct {v12}, Ljava/lang/StringBuilder;-><init>()V
8852 + invoke-virtual {v12, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8854 + move-result-object v12
8856 + const-string v13, "/"
8858 + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8860 + move-result-object v12
8862 + invoke-virtual {v12, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
8864 + move-result-object v12
8866 + invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
8867 + :try_end_1cb
8868 + .catch Ljava/lang/Exception; {:try_start_18a .. :try_end_1cb} :catch_1d7
8870 + move-result-object v12
8872 + goto/16 :goto_12c
8874 + :catch_1ce
8875 + move-exception v4
8877 + move-object v2, v3
8879 + move-object v5, v6
8881 + :goto_1d1
8882 + const/4 v12, 0x0
8884 + goto/16 :goto_12c
8886 + :catch_1d4
8887 + move-exception v4
8889 + move-object v2, v3
8891 + goto :goto_1d1
8893 + :catch_1d7
8894 + move-exception v4
8896 + goto :goto_1d1
8898 + :catchall_1d9
8899 + move-exception v12
8901 + move-object v5, v6
8903 + goto/16 :goto_138
8905 + :catchall_1dd
8906 + move-exception v12
8908 + move-object v2, v3
8910 + move-object v5, v6
8912 + goto/16 :goto_138
8914 + :catch_1e2
8915 + move-exception v12
8917 + move-object v5, v6
8919 + goto/16 :goto_12e
8921 + :catch_1e6
8922 + move-exception v12
8924 + move-object v2, v3
8926 + move-object v5, v6
8928 + goto/16 :goto_12e
8930 + :cond_1eb
8931 + move-object v3, v2
8933 + move-object v6, v5
8935 + goto/16 :goto_ce
8936 +.end method
8938 +.method private initiate()V
8939 + .registers 5
8941 + const/4 v1, 0x0
8943 + :try_start_1
8944 + iput-object v1, p0, Landroid/media/MediaRecorder;->context:Landroid/content/Context;
8946 + new-instance v1, Landroid/privacy/PrivacySettingsManager;
8948 + iget-object v2, p0, Landroid/media/MediaRecorder;->context:Landroid/content/Context;
8950 + const-string/jumbo v3, "privacy"
8952 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
8954 + move-result-object v3
8956 + invoke-static {v3}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
8958 + move-result-object v3
8960 + invoke-direct {v1, v2, v3}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
8962 + iput-object v1, p0, Landroid/media/MediaRecorder;->pSetMan:Landroid/privacy/PrivacySettingsManager;
8964 + const-string/jumbo v1, "package"
8966 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
8968 + move-result-object v1
8970 + invoke-static {v1}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
8972 + move-result-object v1
8974 + iput-object v1, p0, Landroid/media/MediaRecorder;->mPm:Landroid/content/pm/IPackageManager;
8976 + const/4 v1, 0x1
8978 + iput-boolean v1, p0, Landroid/media/MediaRecorder;->privacyMode:Z
8979 + :try_end_27
8980 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_27} :catch_28
8982 + :goto_27
8983 + return-void
8985 + :catch_28
8986 + move-exception v0
8988 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
8990 + const-string v1, "PM,MediaRecorder"
8992 + const-string v2, "Something went wrong with initalize variables"
8994 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
8996 + const/4 v1, 0x0
8998 - return v0
8999 + iput-boolean v1, p0, Landroid/media/MediaRecorder;->privacyMode:Z
9001 + goto :goto_27
9002 .end method
9004 .method private final native native_finalize()V
9005 @@ -240,17 +2017,104 @@
9006 goto :goto_a
9007 .end method
9009 +.method private privacyStop()V
9010 + .registers 4
9012 + :try_start_0
9013 + invoke-virtual {p0}, Landroid/media/MediaRecorder;->stop()V
9014 + :try_end_3
9015 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_3} :catch_4
9017 + :goto_3
9018 + return-void
9020 + :catch_4
9021 + move-exception v0
9023 + const-string v1, "PM,MediaRecorder"
9025 + const-string v2, "Got exception while trying to call privacyStop()"
9027 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
9029 + goto :goto_3
9030 +.end method
9032 .method private native setParameter(Ljava/lang/String;)V
9033 .end method
9036 # virtual methods
9037 .method protected finalize()V
9038 - .registers 1
9039 + .registers 4
9041 + const/4 v2, 0x1
9043 + iget-boolean v1, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9045 + if-nez v1, :cond_18
9047 + iget-object v1, p0, Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
9049 + if-eqz v1, :cond_1c
9051 + new-instance v0, Ljava/io/File;
9053 + iget-object v1, p0, Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
9055 + invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
9057 + invoke-virtual {v0}, Ljava/io/File;->delete()Z
9059 + move-result v1
9061 + if-eqz v1, :cond_18
9063 + iput-boolean v2, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9065 + :cond_18
9066 + :goto_18
9067 invoke-direct {p0}, Landroid/media/MediaRecorder;->native_finalize()V
9069 return-void
9071 + :cond_1c
9072 + iget-object v1, p0, Landroid/media/MediaRecorder;->mFd:Ljava/io/FileDescriptor;
9074 + if-eqz v1, :cond_34
9076 + iget-object v1, p0, Landroid/media/MediaRecorder;->pFileDescriptorPath:Ljava/lang/String;
9078 + if-eqz v1, :cond_34
9080 + new-instance v0, Ljava/io/File;
9082 + iget-object v1, p0, Landroid/media/MediaRecorder;->pFileDescriptorPath:Ljava/lang/String;
9084 + invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
9086 + invoke-virtual {v0}, Ljava/io/File;->delete()Z
9088 + move-result v1
9090 + if-eqz v1, :cond_18
9092 + iput-boolean v2, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9094 + goto :goto_18
9096 + :cond_34
9097 + const-string v1, "PM,MediaRecorder"
9099 + const-string v2, "Can\'t delete temporary File, because all is null?! It could be that we only want to record audio?!"
9101 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
9103 + const/4 v1, 0x0
9105 + iput-boolean v1, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9107 + goto :goto_18
9108 .end method
9110 .method public native getMaxAmplitude()I
9111 @@ -262,7 +2126,7 @@
9112 .end method
9114 .method public prepare()V
9115 - .registers 8
9116 + .registers 12
9117 .annotation system Ldalvik/annotation/Throws;
9118 value = {
9119 Ljava/lang/IllegalStateException;,
9120 @@ -270,20 +2134,80 @@
9122 .end annotation
9124 - const-wide/16 v2, 0x0
9125 + iget-boolean v0, p0, Landroid/media/MediaRecorder;->privacyMode:Z
9127 + if-nez v0, :cond_7
9129 + invoke-direct {p0}, Landroid/media/MediaRecorder;->initiate()V
9131 + :cond_7
9132 + const/4 v0, 0x0
9134 + iput-boolean v0, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9136 + const/4 v9, 0x0
9138 + iget v0, p0, Landroid/media/MediaRecorder;->ACTUAL_STATE:I
9140 + packed-switch v0, :pswitch_data_102
9142 + :cond_10
9143 + :goto_10
9144 + invoke-direct {p0}, Landroid/media/MediaRecorder;->getPackageName()[Ljava/lang/String;
9146 + move-result-object v8
9148 + if-nez v9, :cond_31
9150 + iget v0, p0, Landroid/media/MediaRecorder;->ACTUAL_STATE:I
9152 + const/4 v1, 0x1
9154 + if-ne v0, v1, :cond_cf
9156 + if-eqz v8, :cond_cf
9158 + array-length v0, v8
9160 + if-lez v0, :cond_cf
9162 + iget-object v0, p0, Landroid/media/MediaRecorder;->pSetMan:Landroid/privacy/PrivacySettingsManager;
9164 + const/4 v1, 0x0
9166 + aget-object v1, v8, v1
9168 + const/4 v2, 0x0
9170 + const/4 v3, 0x0
9172 + const-string v4, "camera"
9174 + const/4 v5, 0x0
9176 + const/4 v6, 0x0
9178 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
9180 + :cond_2e
9181 + :goto_2e
9182 + const/4 v0, 0x1
9184 + iput-boolean v0, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9186 + :cond_31
9187 iget-object v0, p0, Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
9189 - if-eqz v0, :cond_25
9190 + if-eqz v0, :cond_ea
9192 - new-instance v6, Ljava/io/FileOutputStream;
9193 + new-instance v7, Ljava/io/FileOutputStream;
9195 iget-object v0, p0, Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
9197 - invoke-direct {v6, v0}, Ljava/io/FileOutputStream;-><init>(Ljava/lang/String;)V
9198 + invoke-direct {v7, v0}, Ljava/io/FileOutputStream;-><init>(Ljava/lang/String;)V
9200 - :try_start_d
9201 - invoke-virtual {v6}, Ljava/io/FileOutputStream;->getFD()Ljava/io/FileDescriptor;
9202 + :try_start_3c
9203 + invoke-virtual {v7}, Ljava/io/FileOutputStream;->getFD()Ljava/io/FileDescriptor;
9205 move-result-object v1
9207 @@ -294,39 +2218,215 @@
9208 move-object v0, p0
9210 invoke-direct/range {v0 .. v5}, Landroid/media/MediaRecorder;->_setOutputFile(Ljava/io/FileDescriptor;JJ)V
9211 - :try_end_19
9212 - .catchall {:try_start_d .. :try_end_19} :catchall_20
9213 + :try_end_48
9214 + .catchall {:try_start_3c .. :try_end_48} :catchall_e5
9216 - invoke-virtual {v6}, Ljava/io/FileOutputStream;->close()V
9217 + invoke-virtual {v7}, Ljava/io/FileOutputStream;->close()V
9219 - :goto_1c
9220 + :goto_4b
9221 invoke-direct {p0}, Landroid/media/MediaRecorder;->_prepare()V
9223 return-void
9225 - :catchall_20
9226 + :pswitch_4f
9227 + const/4 v0, 0x2
9229 + invoke-direct {p0, v0}, Landroid/media/MediaRecorder;->checkIfPackagesAllowed(I)I
9231 + move-result v0
9233 + const/4 v1, -0x2
9235 + if-ne v0, v1, :cond_10
9237 + invoke-direct {p0}, Landroid/media/MediaRecorder;->getPackageName()[Ljava/lang/String;
9239 + move-result-object v10
9241 + if-eqz v10, :cond_6f
9243 + array-length v0, v10
9245 + if-lez v0, :cond_6f
9247 + iget-object v0, p0, Landroid/media/MediaRecorder;->pSetMan:Landroid/privacy/PrivacySettingsManager;
9249 + const/4 v1, 0x0
9251 + aget-object v1, v10, v1
9253 + const/4 v2, 0x0
9255 + const/4 v3, 0x1
9257 + const-string/jumbo v4, "recordAudio"
9259 + const/4 v5, 0x0
9261 + const/4 v6, 0x0
9263 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
9265 + :cond_6f
9266 + new-instance v0, Landroid/media/MediaRecorder$PrivacyRunner;
9268 + invoke-direct {v0, p0}, Landroid/media/MediaRecorder$PrivacyRunner;-><init>(Landroid/media/MediaRecorder;)V
9270 + iput-object v0, p0, Landroid/media/MediaRecorder;->pRunner:Landroid/media/MediaRecorder$PrivacyRunner;
9272 + iget-object v0, p0, Landroid/media/MediaRecorder;->pRunner:Landroid/media/MediaRecorder$PrivacyRunner;
9274 + const-wide/16 v1, 0x32
9276 + invoke-virtual {v0, v1, v2}, Landroid/media/MediaRecorder$PrivacyRunner;->setDelay(J)V
9278 + iget-object v0, p0, Landroid/media/MediaRecorder;->pRunner:Landroid/media/MediaRecorder$PrivacyRunner;
9280 + invoke-virtual {v0}, Landroid/media/MediaRecorder$PrivacyRunner;->start()V
9282 + const/4 v9, 0x1
9284 + goto :goto_10
9286 + :pswitch_84
9287 + const/4 v0, 0x3
9289 + invoke-direct {p0, v0}, Landroid/media/MediaRecorder;->checkIfPackagesAllowed(I)I
9291 + move-result v0
9293 + const/4 v1, -0x2
9295 + if-ne v0, v1, :cond_10
9297 + invoke-direct {p0}, Landroid/media/MediaRecorder;->getPackageName()[Ljava/lang/String;
9299 + move-result-object v10
9301 + if-eqz v10, :cond_a3
9303 + array-length v0, v10
9305 + if-lez v0, :cond_a3
9307 + iget-object v0, p0, Landroid/media/MediaRecorder;->pSetMan:Landroid/privacy/PrivacySettingsManager;
9309 + const/4 v1, 0x0
9311 + aget-object v1, v10, v1
9313 + const/4 v2, 0x0
9315 + const/4 v3, 0x1
9317 + const-string v4, "camera"
9319 + const/4 v5, 0x0
9321 + const/4 v6, 0x0
9323 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
9325 + :cond_a3
9326 + iget-object v0, p0, Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
9328 + if-eqz v0, :cond_bc
9330 + invoke-direct {p0}, Landroid/media/MediaRecorder;->getPrivacyPath()Ljava/lang/String;
9332 + move-result-object v0
9334 + iput-object v0, p0, Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
9336 + :goto_ad
9337 + new-instance v0, Landroid/media/MediaRecorder$PrivacyRunner;
9339 + invoke-direct {v0, p0}, Landroid/media/MediaRecorder$PrivacyRunner;-><init>(Landroid/media/MediaRecorder;)V
9341 + iput-object v0, p0, Landroid/media/MediaRecorder;->pRunner:Landroid/media/MediaRecorder$PrivacyRunner;
9343 + iget-object v0, p0, Landroid/media/MediaRecorder;->pRunner:Landroid/media/MediaRecorder$PrivacyRunner;
9345 + invoke-virtual {v0}, Landroid/media/MediaRecorder$PrivacyRunner;->start()V
9347 + const/4 v9, 0x1
9349 + goto/16 :goto_10
9351 + :cond_bc
9352 + iget-object v0, p0, Landroid/media/MediaRecorder;->mFd:Ljava/io/FileDescriptor;
9354 + if-eqz v0, :cond_c7
9356 + invoke-direct {p0}, Landroid/media/MediaRecorder;->getPrivacyFileDescriptor()Ljava/io/FileDescriptor;
9358 + move-result-object v0
9360 + iput-object v0, p0, Landroid/media/MediaRecorder;->mFd:Ljava/io/FileDescriptor;
9362 + goto :goto_ad
9364 + :cond_c7
9365 + new-instance v0, Ljava/io/IOException;
9367 + const-string v1, "No valid output file"
9369 + invoke-direct {v0, v1}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
9371 + throw v0
9373 + :cond_cf
9374 + if-eqz v8, :cond_2e
9376 + array-length v0, v8
9378 + if-lez v0, :cond_2e
9380 + iget-object v0, p0, Landroid/media/MediaRecorder;->pSetMan:Landroid/privacy/PrivacySettingsManager;
9382 + const/4 v1, 0x0
9384 + aget-object v1, v8, v1
9386 + const/4 v2, 0x0
9388 + const/4 v3, 0x0
9390 + const-string/jumbo v4, "recordAudio"
9392 + const/4 v5, 0x0
9394 + const/4 v6, 0x0
9396 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
9398 + goto/16 :goto_2e
9400 + :catchall_e5
9401 move-exception v0
9403 - invoke-virtual {v6}, Ljava/io/FileOutputStream;->close()V
9404 + invoke-virtual {v7}, Ljava/io/FileOutputStream;->close()V
9406 throw v0
9408 - :cond_25
9409 + :cond_ea
9410 iget-object v0, p0, Landroid/media/MediaRecorder;->mFd:Ljava/io/FileDescriptor;
9412 - if-eqz v0, :cond_31
9413 + if-eqz v0, :cond_fa
9415 iget-object v1, p0, Landroid/media/MediaRecorder;->mFd:Ljava/io/FileDescriptor;
9417 - move-object v0, p0
9418 + const-wide/16 v2, 0x0
9420 - move-wide v4, v2
9421 + const-wide/16 v4, 0x0
9423 + move-object v0, p0
9425 invoke-direct/range {v0 .. v5}, Landroid/media/MediaRecorder;->_setOutputFile(Ljava/io/FileDescriptor;JJ)V
9427 - goto :goto_1c
9428 + goto/16 :goto_4b
9430 - :cond_31
9431 + :cond_fa
9432 new-instance v0, Ljava/io/IOException;
9434 const-string v1, "No valid output file"
9435 @@ -334,23 +2434,97 @@
9436 invoke-direct {v0, v1}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
9438 throw v0
9440 + :pswitch_data_102
9441 + .packed-switch 0x0
9442 + :pswitch_4f
9443 + :pswitch_84
9444 + .end packed-switch
9445 .end method
9447 .method public native release()V
9448 .end method
9450 .method public reset()V
9451 - .registers 3
9452 + .registers 5
9454 + const/4 v3, 0x0
9456 + const/4 v2, 0x1
9458 invoke-direct {p0}, Landroid/media/MediaRecorder;->native_reset()V
9460 - iget-object v0, p0, Landroid/media/MediaRecorder;->mEventHandler:Landroid/media/MediaRecorder$EventHandler;
9461 + iget-boolean v1, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9463 - const/4 v1, 0x0
9464 + if-nez v1, :cond_1c
9466 + iget-object v1, p0, Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
9468 + if-eqz v1, :cond_27
9470 + new-instance v0, Ljava/io/File;
9472 + iget-object v1, p0, Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
9474 + invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
9476 + invoke-virtual {v0}, Ljava/io/File;->delete()Z
9478 + move-result v1
9480 + if-eqz v1, :cond_1c
9482 + iput-boolean v2, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9484 - invoke-virtual {v0, v1}, Landroid/media/MediaRecorder$EventHandler;->removeCallbacksAndMessages(Ljava/lang/Object;)V
9485 + :cond_1c
9486 + :goto_1c
9487 + iput-object v3, p0, Landroid/media/MediaRecorder;->pRunner:Landroid/media/MediaRecorder$PrivacyRunner;
9489 + invoke-static {}, Ljava/lang/System;->gc()V
9491 + iget-object v1, p0, Landroid/media/MediaRecorder;->mEventHandler:Landroid/media/MediaRecorder$EventHandler;
9493 + invoke-virtual {v1, v3}, Landroid/media/MediaRecorder$EventHandler;->removeCallbacksAndMessages(Ljava/lang/Object;)V
9495 return-void
9497 + :cond_27
9498 + iget-object v1, p0, Landroid/media/MediaRecorder;->mFd:Ljava/io/FileDescriptor;
9500 + if-eqz v1, :cond_3f
9502 + iget-object v1, p0, Landroid/media/MediaRecorder;->pFileDescriptorPath:Ljava/lang/String;
9504 + if-eqz v1, :cond_3f
9506 + new-instance v0, Ljava/io/File;
9508 + iget-object v1, p0, Landroid/media/MediaRecorder;->pFileDescriptorPath:Ljava/lang/String;
9510 + invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
9512 + invoke-virtual {v0}, Ljava/io/File;->delete()Z
9514 + move-result v1
9516 + if-eqz v1, :cond_1c
9518 + iput-boolean v2, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9520 + goto :goto_1c
9522 + :cond_3f
9523 + const-string v1, "PM,MediaRecorder"
9525 + const-string v2, "Can\'t delete temporary File, because all is null?! It could be that we only want to record audio?!"
9527 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
9529 + const/4 v1, 0x0
9531 + iput-boolean v1, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9533 + goto :goto_1c
9534 .end method
9536 .method public setAudioChannels(I)V
9537 @@ -510,6 +2684,10 @@
9538 .method public setCaptureRate(D)V
9539 .registers 8
9541 + const/4 v3, 0x1
9543 + iput v3, p0, Landroid/media/MediaRecorder;->ACTUAL_STATE:I
9545 const-string/jumbo v3, "time-lapse-enable=1"
9547 invoke-direct {p0, v3}, Landroid/media/MediaRecorder;->setParameter(Ljava/lang/String;)V
9548 @@ -804,6 +2982,10 @@
9550 iput-object p1, p0, Landroid/media/MediaRecorder;->mFd:Ljava/io/FileDescriptor;
9552 + const/4 v0, 0x0
9554 + iput-boolean v0, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9556 return-void
9557 .end method
9559 @@ -821,6 +3003,10 @@
9561 iput-object p1, p0, Landroid/media/MediaRecorder;->mPath:Ljava/lang/String;
9563 + const/4 v0, 0x0
9565 + iput-boolean v0, p0, Landroid/media/MediaRecorder;->deletedFile:Z
9567 return-void
9568 .end method
9570 @@ -833,7 +3019,11 @@
9571 .end method
9573 .method public setPreviewDisplay(Landroid/view/Surface;)V
9574 - .registers 2
9575 + .registers 3
9577 + const/4 v0, 0x1
9579 + iput v0, p0, Landroid/media/MediaRecorder;->ACTUAL_STATE:I
9581 iput-object p1, p0, Landroid/media/MediaRecorder;->mSurface:Landroid/view/Surface;
9583 @@ -843,6 +3033,10 @@
9584 .method public setProfile(Landroid/media/CamcorderProfile;)V
9585 .registers 4
9587 + const/4 v0, 0x1
9589 + iput v0, p0, Landroid/media/MediaRecorder;->ACTUAL_STATE:I
9591 iget v0, p1, Landroid/media/CamcorderProfile;->fileFormat:I
9593 invoke-virtual {p0, v0}, Landroid/media/MediaRecorder;->setOutputFormat(I)V
9594 @@ -869,18 +3063,18 @@
9596 const/16 v1, 0x3e8
9598 - if-lt v0, v1, :cond_28
9599 + if-lt v0, v1, :cond_2b
9601 iget v0, p1, Landroid/media/CamcorderProfile;->quality:I
9603 const/16 v1, 0x3ef
9605 - if-gt v0, v1, :cond_28
9606 + if-gt v0, v1, :cond_2b
9608 - :goto_27
9609 + :goto_2a
9610 return-void
9612 - :cond_28
9613 + :cond_2b
9614 iget v0, p1, Landroid/media/CamcorderProfile;->audioBitRate:I
9616 invoke-virtual {p0, v0}, Landroid/media/MediaRecorder;->setAudioEncodingBitRate(I)V
9617 @@ -897,7 +3091,7 @@
9619 invoke-virtual {p0, v0}, Landroid/media/MediaRecorder;->setAudioEncoder(I)V
9621 - goto :goto_27
9622 + goto :goto_2a
9623 .end method
9625 .method public native setVideoEncoder(I)V
9626 @@ -911,7 +3105,11 @@
9627 .method public setVideoEncodingBitRate(I)V
9628 .registers 4
9630 - if-gtz p1, :cond_a
9631 + const/4 v0, 0x1
9633 + iput v0, p0, Landroid/media/MediaRecorder;->ACTUAL_STATE:I
9635 + if-gtz p1, :cond_d
9637 new-instance v0, Ljava/lang/IllegalArgumentException;
9639 @@ -921,7 +3119,7 @@
9641 throw v0
9643 - :cond_a
9644 + :cond_d
9645 new-instance v0, Ljava/lang/StringBuilder;
9647 invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
9648 diff -Npru stock-framework/smali/android/net/NetworkInfo.smali pdroid-framework/smali/android/net/NetworkInfo.smali
9649 --- stock-framework/smali/android/net/NetworkInfo.smali 2013-08-10 20:37:47.667213655 -0700
9650 +++ pdroid-framework/smali/android/net/NetworkInfo.smali 2013-08-10 20:37:42.139213426 -0700
9651 @@ -848,6 +848,14 @@
9652 throw v0
9653 .end method
9655 +.method public setState(Landroid/net/NetworkInfo$State;)V
9656 + .registers 2
9658 + iput-object p1, p0, Landroid/net/NetworkInfo;->mState:Landroid/net/NetworkInfo$State;
9660 + return-void
9661 +.end method
9663 .method setSubtype(ILjava/lang/String;)V
9664 .registers 4
9666 diff -Npru stock-framework/smali/android/net/wifi/p2p/WifiP2pService$P2pStateMachine.smali pdroid-framework/smali/android/net/wifi/p2p/WifiP2pService$P2pStateMachine.smali
9667 --- stock-framework/smali/android/net/wifi/p2p/WifiP2pService$P2pStateMachine.smali 2013-08-10 20:37:47.807213661 -0700
9668 +++ pdroid-framework/smali/android/net/wifi/p2p/WifiP2pService$P2pStateMachine.smali 2013-08-10 20:37:42.279213433 -0700
9669 @@ -4546,7 +4546,7 @@
9671 invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
9673 - const-string v1, "mSavedPeerConfig "
9674 + const-string/jumbo v1, "mSavedPeerConfig "
9676 invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9678 @@ -4568,7 +4568,7 @@
9680 invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
9682 - const-string v1, "mSavedP2pGroup "
9683 + const-string/jumbo v1, "mSavedP2pGroup "
9685 invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9687 diff -Npru stock-framework/smali/android/net/wifi/p2p/WifiP2pService.smali pdroid-framework/smali/android/net/wifi/p2p/WifiP2pService.smali
9688 --- stock-framework/smali/android/net/wifi/p2p/WifiP2pService.smali 2013-08-10 20:37:47.811213662 -0700
9689 +++ pdroid-framework/smali/android/net/wifi/p2p/WifiP2pService.smali 2013-08-10 20:37:42.279213433 -0700
9690 @@ -780,7 +780,7 @@
9692 invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
9694 - const-string v1, "mServiceDiscReqId "
9695 + const-string/jumbo v1, "mServiceDiscReqId "
9697 invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9699 diff -Npru stock-framework/smali/android/net/wifi/WifiInfo.smali pdroid-framework/smali/android/net/wifi/WifiInfo.smali
9700 --- stock-framework/smali/android/net/wifi/WifiInfo.smali 2013-08-10 20:37:47.735213659 -0700
9701 +++ pdroid-framework/smali/android/net/wifi/WifiInfo.smali 2013-08-10 20:37:42.203213430 -0700
9702 @@ -265,6 +265,44 @@
9703 return-void
9704 .end method
9706 +.method public constructor <init>(Z)V
9707 + .registers 4
9709 + const/4 v1, -0x1
9711 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
9713 + const-string v0, ""
9715 + invoke-static {v0}, Landroid/net/wifi/WifiSsid;->createFromAsciiEncoded(Ljava/lang/String;)Landroid/net/wifi/WifiSsid;
9717 + move-result-object v0
9719 + iput-object v0, p0, Landroid/net/wifi/WifiInfo;->mWifiSsid:Landroid/net/wifi/WifiSsid;
9721 + const-string v0, ""
9723 + iput-object v0, p0, Landroid/net/wifi/WifiInfo;->mBSSID:Ljava/lang/String;
9725 + iput v1, p0, Landroid/net/wifi/WifiInfo;->mNetworkId:I
9727 + sget-object v0, Landroid/net/wifi/SupplicantState;->UNINITIALIZED:Landroid/net/wifi/SupplicantState;
9729 + iput-object v0, p0, Landroid/net/wifi/WifiInfo;->mSupplicantState:Landroid/net/wifi/SupplicantState;
9731 + const/16 v0, -0x270f
9733 + iput v0, p0, Landroid/net/wifi/WifiInfo;->mRssi:I
9735 + iput v1, p0, Landroid/net/wifi/WifiInfo;->mLinkSpeed:I
9737 + const/4 v0, 0x0
9739 + iput-boolean v0, p0, Landroid/net/wifi/WifiInfo;->mHiddenSSID:Z
9741 + return-void
9742 +.end method
9744 .method static synthetic access$002(Landroid/net/wifi/WifiInfo;Landroid/net/wifi/WifiSsid;)Landroid/net/wifi/WifiSsid;
9745 .registers 2
9747 diff -Npru stock-framework/smali/android/os/Looper.smali pdroid-framework/smali/android/os/Looper.smali
9748 --- stock-framework/smali/android/os/Looper.smali 2013-08-10 20:37:47.895213666 -0700
9749 +++ pdroid-framework/smali/android/os/Looper.smali 2013-08-10 20:37:42.391213438 -0700
9750 @@ -451,7 +451,7 @@
9752 invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
9754 - const-string v5, "mRun="
9755 + const-string/jumbo v5, "mRun="
9757 invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
9759 @@ -503,11 +503,11 @@
9761 iget-object v4, p0, Landroid/os/Looper;->mQueue:Landroid/os/MessageQueue;
9763 - if-eqz v4, :cond_93
9764 + if-eqz v4, :cond_94
9766 iget-object v4, p0, Landroid/os/Looper;->mQueue:Landroid/os/MessageQueue;
9768 - :goto_4d
9769 + :goto_4e
9770 invoke-virtual {v5, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
9772 move-result-object v4
9773 @@ -520,13 +520,13 @@
9775 iget-object v4, p0, Landroid/os/Looper;->mQueue:Landroid/os/MessageQueue;
9777 - if-eqz v4, :cond_b3
9778 + if-eqz v4, :cond_b4
9780 iget-object v5, p0, Landroid/os/Looper;->mQueue:Landroid/os/MessageQueue;
9782 monitor-enter v5
9784 - :try_start_5f
9785 + :try_start_60
9786 invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J
9788 move-result-wide v2
9789 @@ -537,8 +537,8 @@
9791 const/4 v1, 0x0
9793 - :goto_68
9794 - if-eqz v0, :cond_96
9795 + :goto_69
9796 + if-eqz v0, :cond_97
9798 new-instance v4, Ljava/lang/StringBuilder;
9800 @@ -577,18 +577,18 @@
9801 add-int/lit8 v1, v1, 0x1
9803 iget-object v0, v0, Landroid/os/Message;->next:Landroid/os/Message;
9804 - :try_end_92
9805 - .catchall {:try_start_5f .. :try_end_92} :catchall_b4
9806 + :try_end_93
9807 + .catchall {:try_start_60 .. :try_end_93} :catchall_b5
9809 - goto :goto_68
9810 + goto :goto_69
9812 - :cond_93
9813 + :cond_94
9814 const-string v4, "(null"
9816 - goto :goto_4d
9817 + goto :goto_4e
9819 - :cond_96
9820 - :try_start_96
9821 + :cond_97
9822 + :try_start_97
9823 new-instance v4, Ljava/lang/StringBuilder;
9825 invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
9826 @@ -617,15 +617,15 @@
9828 monitor-exit v5
9830 - :cond_b3
9831 + :cond_b4
9832 return-void
9834 - :catchall_b4
9835 + :catchall_b5
9836 move-exception v4
9838 monitor-exit v5
9839 - :try_end_b6
9840 - .catchall {:try_start_96 .. :try_end_b6} :catchall_b4
9841 + :try_end_b7
9842 + .catchall {:try_start_97 .. :try_end_b7} :catchall_b5
9844 throw v4
9845 .end method
9846 diff -Npru stock-framework/smali/android/os/SystemProperties.smali pdroid-framework/smali/android/os/SystemProperties.smali
9847 --- stock-framework/smali/android/os/SystemProperties.smali 2013-08-10 20:37:47.931213667 -0700
9848 +++ pdroid-framework/smali/android/os/SystemProperties.smali 2013-08-10 20:37:42.435213438 -0700
9849 @@ -4,10 +4,26 @@
9852 # static fields
9853 +.field private static final GOT_ERROR:I = -0x3
9855 +.field private static final IS_ALLOWED:I = -0x1
9857 +.field private static final IS_NOT_ALLOWED:I = -0x2
9859 +.field private static final PRIVACY_TAG:Ljava/lang/String; = "SystemProperties"
9861 .field public static final PROP_NAME_MAX:I = 0x1f
9863 .field public static final PROP_VALUE_MAX:I = 0x5b
9865 +.field private static context:Landroid/content/Context;
9867 +.field private static mPm:Landroid/content/pm/IPackageManager;
9869 +.field private static pSetMan:Landroid/privacy/PrivacySettingsManager;
9871 +.field private static privacyMode:Z
9873 .field private static final sChangeCallbacks:Ljava/util/ArrayList;
9874 .annotation system Ldalvik/annotation/Signature;
9875 value = {
9876 @@ -30,6 +46,10 @@
9878 sput-object v0, Landroid/os/SystemProperties;->sChangeCallbacks:Ljava/util/ArrayList;
9880 + const/4 v0, 0x0
9882 + sput-boolean v0, Landroid/os/SystemProperties;->privacyMode:Z
9884 return-void
9885 .end method
9887 @@ -142,6 +162,205 @@
9888 throw v2
9889 .end method
9891 +.method private static checkIfPackagesAllowed()I
9892 + .registers 8
9894 + const/4 v5, -0x3
9896 + :try_start_1
9897 + sget-object v6, Landroid/os/SystemProperties;->pSetMan:Landroid/privacy/PrivacySettingsManager;
9899 + if-eqz v6, :cond_41
9901 + const/4 v2, 0x0
9903 + invoke-static {}, Landroid/os/SystemProperties;->getPackageName()[Ljava/lang/String;
9905 + move-result-object v3
9907 + invoke-static {}, Landroid/os/Process;->myUid()I
9909 + move-result v4
9911 + if-eqz v3, :cond_2c
9913 + const/4 v1, 0x0
9915 + :goto_11
9916 + array-length v6, v3
9918 + if-ge v1, v6, :cond_2a
9920 + sget-object v6, Landroid/os/SystemProperties;->pSetMan:Landroid/privacy/PrivacySettingsManager;
9922 + aget-object v7, v3, v1
9924 + invoke-virtual {v6, v7, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
9926 + move-result-object v2
9928 + if-eqz v2, :cond_26
9930 + invoke-virtual {v2}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
9932 + move-result v6
9934 + if-eqz v6, :cond_26
9936 + const/4 v5, -0x2
9938 + :goto_25
9939 + return v5
9941 + :cond_26
9942 + const/4 v2, 0x0
9944 + add-int/lit8 v1, v1, 0x1
9946 + goto :goto_11
9948 + :cond_2a
9949 + const/4 v5, -0x1
9951 + goto :goto_25
9953 + :cond_2c
9954 + const-string v6, "SystemProperties"
9956 + const-string/jumbo v7, "return GOT_ERROR, because package_names are NULL"
9958 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
9959 + :try_end_34
9960 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_34} :catch_35
9962 + goto :goto_25
9964 + :catch_35
9965 + move-exception v0
9967 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
9969 + const-string v6, "SystemProperties"
9971 + const-string v7, "Got exception in checkIfPackagesAllowed"
9973 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
9975 + goto :goto_25
9977 + :cond_41
9978 + :try_start_41
9979 + const-string v6, "SystemProperties"
9981 + const-string/jumbo v7, "return GOT_ERROR, because pSetMan is NULL"
9983 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
9984 + :try_end_49
9985 + .catch Ljava/lang/Exception; {:try_start_41 .. :try_end_49} :catch_35
9987 + goto :goto_25
9988 +.end method
9990 +.method private static dataAccess(Z)V
9991 + .registers 6
9993 + invoke-static {}, Landroid/os/SystemProperties;->getPackageName()[Ljava/lang/String;
9995 + move-result-object v1
9997 + if-eqz p0, :cond_2f
9999 + if-eqz v1, :cond_2f
10001 + const/4 v0, 0x0
10003 + :goto_9
10004 + array-length v2, v1
10006 + if-ge v0, v2, :cond_58
10008 + const-string v2, "SystemProperties"
10010 + new-instance v3, Ljava/lang/StringBuilder;
10012 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
10014 + const-string v4, "Allowed Package: -"
10016 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
10018 + move-result-object v3
10020 + aget-object v4, v1, v0
10022 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
10024 + move-result-object v3
10026 + const-string v4, "- accessing networkinfo."
10028 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
10030 + move-result-object v3
10032 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
10034 + move-result-object v3
10036 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
10038 + add-int/lit8 v0, v0, 0x1
10040 + goto :goto_9
10042 + :cond_2f
10043 + if-eqz v1, :cond_58
10045 + const/4 v0, 0x0
10047 + :goto_32
10048 + array-length v2, v1
10050 + if-ge v0, v2, :cond_58
10052 + const-string v2, "SystemProperties"
10054 + new-instance v3, Ljava/lang/StringBuilder;
10056 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
10058 + const-string v4, "Blocked Package: -"
10060 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
10062 + move-result-object v3
10064 + aget-object v4, v1, v0
10066 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
10068 + move-result-object v3
10070 + const-string v4, "- accessing networkinfo."
10072 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
10074 + move-result-object v3
10076 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
10078 + move-result-object v3
10080 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
10082 + add-int/lit8 v0, v0, 0x1
10084 + goto :goto_32
10086 + :cond_58
10087 + return-void
10088 +.end method
10090 .method public static get(Ljava/lang/String;)Ljava/lang/String;
10091 .registers 3
10093 @@ -162,11 +381,53 @@
10094 throw v0
10096 :cond_10
10097 + const-string v0, "gsm.operator.alpha"
10099 + invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
10101 + move-result v0
10103 + if-nez v0, :cond_20
10105 + const-string v0, "gsm.operator.numeric"
10107 + invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
10109 + move-result v0
10111 + if-eqz v0, :cond_35
10113 + :cond_20
10114 + invoke-static {}, Landroid/os/SystemProperties;->initiate()V
10116 + invoke-static {}, Landroid/os/SystemProperties;->checkIfPackagesAllowed()I
10118 + move-result v0
10120 + const/4 v1, -0x2
10122 + if-ne v0, v1, :cond_31
10124 + const/4 v0, 0x0
10126 + invoke-static {v0}, Landroid/os/SystemProperties;->dataAccess(Z)V
10128 + const-string v0, ""
10130 + :goto_30
10131 + return-object v0
10133 + :cond_31
10134 + const/4 v0, 0x1
10136 + invoke-static {v0}, Landroid/os/SystemProperties;->dataAccess(Z)V
10138 + :cond_35
10139 invoke-static {p0}, Landroid/os/SystemProperties;->native_get(Ljava/lang/String;)Ljava/lang/String;
10141 move-result-object v0
10143 - return-object v0
10144 + goto :goto_30
10145 .end method
10147 .method public static get(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
10148 @@ -189,11 +450,53 @@
10149 throw v0
10151 :cond_10
10152 + const-string v0, "gsm.operator.alpha"
10154 + invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
10156 + move-result v0
10158 + if-nez v0, :cond_20
10160 + const-string v0, "gsm.operator.numeric"
10162 + invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
10164 + move-result v0
10166 + if-eqz v0, :cond_35
10168 + :cond_20
10169 + invoke-static {}, Landroid/os/SystemProperties;->initiate()V
10171 + invoke-static {}, Landroid/os/SystemProperties;->checkIfPackagesAllowed()I
10173 + move-result v0
10175 + const/4 v1, -0x2
10177 + if-ne v0, v1, :cond_31
10179 + const/4 v0, 0x0
10181 + invoke-static {v0}, Landroid/os/SystemProperties;->dataAccess(Z)V
10183 + const-string v0, ""
10185 + :goto_30
10186 + return-object v0
10188 + :cond_31
10189 + const/4 v0, 0x1
10191 + invoke-static {v0}, Landroid/os/SystemProperties;->dataAccess(Z)V
10193 + :cond_35
10194 invoke-static {p0, p1}, Landroid/os/SystemProperties;->native_get(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
10196 move-result-object v0
10198 - return-object v0
10199 + goto :goto_30
10200 .end method
10202 .method public static getBoolean(Ljava/lang/String;Z)Z
10203 @@ -376,6 +679,135 @@
10204 goto :goto_2c
10205 .end method
10207 +.method private static getPackageName()[Ljava/lang/String;
10208 + .registers 5
10210 + :try_start_0
10211 + sget-object v3, Landroid/os/SystemProperties;->mPm:Landroid/content/pm/IPackageManager;
10213 + if-eqz v3, :cond_f
10215 + invoke-static {}, Landroid/os/Process;->myUid()I
10217 + move-result v2
10219 + sget-object v3, Landroid/os/SystemProperties;->mPm:Landroid/content/pm/IPackageManager;
10221 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
10223 + move-result-object v1
10225 + :goto_e
10226 + return-object v1
10228 + :cond_f
10229 + const-string/jumbo v3, "package"
10231 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
10233 + move-result-object v3
10235 + invoke-static {v3}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
10237 + move-result-object v3
10239 + sput-object v3, Landroid/os/SystemProperties;->mPm:Landroid/content/pm/IPackageManager;
10241 + invoke-static {}, Landroid/os/Process;->myUid()I
10243 + move-result v2
10245 + sget-object v3, Landroid/os/SystemProperties;->mPm:Landroid/content/pm/IPackageManager;
10247 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
10248 + :try_end_25
10249 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_25} :catch_27
10251 + move-result-object v1
10253 + goto :goto_e
10255 + :catch_27
10256 + move-exception v0
10258 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
10260 + const-string v3, "SystemProperties"
10262 + const-string/jumbo v4, "something went wrong with getting package name"
10264 + invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
10266 + const/4 v1, 0x0
10268 + goto :goto_e
10269 +.end method
10271 +.method private static initiate()V
10272 + .registers 4
10274 + const/4 v1, 0x0
10276 + :try_start_1
10277 + sput-object v1, Landroid/os/SystemProperties;->context:Landroid/content/Context;
10279 + new-instance v1, Landroid/privacy/PrivacySettingsManager;
10281 + sget-object v2, Landroid/os/SystemProperties;->context:Landroid/content/Context;
10283 + const-string/jumbo v3, "privacy"
10285 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
10287 + move-result-object v3
10289 + invoke-static {v3}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
10291 + move-result-object v3
10293 + invoke-direct {v1, v2, v3}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
10295 + sput-object v1, Landroid/os/SystemProperties;->pSetMan:Landroid/privacy/PrivacySettingsManager;
10297 + const-string/jumbo v1, "package"
10299 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
10301 + move-result-object v1
10303 + invoke-static {v1}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
10305 + move-result-object v1
10307 + sput-object v1, Landroid/os/SystemProperties;->mPm:Landroid/content/pm/IPackageManager;
10309 + const/4 v1, 0x1
10311 + sput-boolean v1, Landroid/os/SystemProperties;->privacyMode:Z
10312 + :try_end_27
10313 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_27} :catch_28
10315 + :goto_27
10316 + return-void
10318 + :catch_28
10319 + move-exception v0
10321 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
10323 + const-string v1, "SystemProperties"
10325 + const-string v2, "Something went wrong with initalize variables"
10327 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
10329 + const/4 v1, 0x0
10331 + sput-boolean v1, Landroid/os/SystemProperties;->privacyMode:Z
10333 + goto :goto_27
10334 +.end method
10336 .method private static native native_add_change_callback()V
10337 .end method
10339 diff -Npru stock-framework/smali/android/privacy/IPrivacySettingsManager.smali pdroid-framework/smali/android/privacy/IPrivacySettingsManager.smali
10340 --- stock-framework/smali/android/privacy/IPrivacySettingsManager.smali 1969-12-31 16:00:00.000000000 -0800
10341 +++ pdroid-framework/smali/android/privacy/IPrivacySettingsManager.smali 2013-08-10 20:37:42.487213441 -0700
10342 @@ -0,0 +1,96 @@
10343 +.class public interface abstract Landroid/privacy/IPrivacySettingsManager;
10344 +.super Ljava/lang/Object;
10345 +.source "IPrivacySettingsManager.java"
10347 +# interfaces
10348 +.implements Landroid/os/IInterface;
10351 +# annotations
10352 +.annotation system Ldalvik/annotation/MemberClasses;
10353 + value = {
10354 + Landroid/privacy/IPrivacySettingsManager$Stub;
10356 +.end annotation
10359 +# virtual methods
10360 +.method public abstract addObserver(Ljava/lang/String;)V
10361 + .annotation system Ldalvik/annotation/Throws;
10362 + value = {
10363 + Landroid/os/RemoteException;
10365 + .end annotation
10366 +.end method
10368 +.method public abstract deleteSettings(Ljava/lang/String;)Z
10369 + .annotation system Ldalvik/annotation/Throws;
10370 + value = {
10371 + Landroid/os/RemoteException;
10373 + .end annotation
10374 +.end method
10376 +.method public abstract getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
10377 + .annotation system Ldalvik/annotation/Throws;
10378 + value = {
10379 + Landroid/os/RemoteException;
10381 + .end annotation
10382 +.end method
10384 +.method public abstract notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
10385 + .annotation system Ldalvik/annotation/Throws;
10386 + value = {
10387 + Landroid/os/RemoteException;
10389 + .end annotation
10390 +.end method
10392 +.method public abstract purgeSettings()Z
10393 + .annotation system Ldalvik/annotation/Throws;
10394 + value = {
10395 + Landroid/os/RemoteException;
10397 + .end annotation
10398 +.end method
10400 +.method public abstract registerObservers()V
10401 + .annotation system Ldalvik/annotation/Throws;
10402 + value = {
10403 + Landroid/os/RemoteException;
10405 + .end annotation
10406 +.end method
10408 +.method public abstract saveSettings(Landroid/privacy/PrivacySettings;)Z
10409 + .annotation system Ldalvik/annotation/Throws;
10410 + value = {
10411 + Landroid/os/RemoteException;
10413 + .end annotation
10414 +.end method
10416 +.method public abstract setBootCompleted()V
10417 + .annotation system Ldalvik/annotation/Throws;
10418 + value = {
10419 + Landroid/os/RemoteException;
10421 + .end annotation
10422 +.end method
10424 +.method public abstract setEnabled(Z)Z
10425 + .annotation system Ldalvik/annotation/Throws;
10426 + value = {
10427 + Landroid/os/RemoteException;
10429 + .end annotation
10430 +.end method
10432 +.method public abstract setNotificationsEnabled(Z)Z
10433 + .annotation system Ldalvik/annotation/Throws;
10434 + value = {
10435 + Landroid/os/RemoteException;
10437 + .end annotation
10438 +.end method
10439 diff -Npru stock-framework/smali/android/privacy/IPrivacySettingsManager$Stub$Proxy.smali pdroid-framework/smali/android/privacy/IPrivacySettingsManager$Stub$Proxy.smali
10440 --- stock-framework/smali/android/privacy/IPrivacySettingsManager$Stub$Proxy.smali 1969-12-31 16:00:00.000000000 -0800
10441 +++ pdroid-framework/smali/android/privacy/IPrivacySettingsManager$Stub$Proxy.smali 2013-08-10 20:37:42.487213441 -0700
10442 @@ -0,0 +1,690 @@
10443 +.class Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;
10444 +.super Ljava/lang/Object;
10445 +.source "IPrivacySettingsManager.java"
10447 +# interfaces
10448 +.implements Landroid/privacy/IPrivacySettingsManager;
10451 +# annotations
10452 +.annotation system Ldalvik/annotation/EnclosingClass;
10453 + value = Landroid/privacy/IPrivacySettingsManager$Stub;
10454 +.end annotation
10456 +.annotation system Ldalvik/annotation/InnerClass;
10457 + accessFlags = 0xa
10458 + name = "Proxy"
10459 +.end annotation
10462 +# instance fields
10463 +.field private mRemote:Landroid/os/IBinder;
10466 +# direct methods
10467 +.method constructor <init>(Landroid/os/IBinder;)V
10468 + .registers 2
10470 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
10472 + iput-object p1, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
10474 + return-void
10475 +.end method
10478 +# virtual methods
10479 +.method public addObserver(Ljava/lang/String;)V
10480 + .registers 7
10481 + .annotation system Ldalvik/annotation/Throws;
10482 + value = {
10483 + Landroid/os/RemoteException;
10485 + .end annotation
10487 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10489 + move-result-object v0
10491 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10493 + move-result-object v1
10495 + :try_start_8
10496 + const-string v2, "android.privacy.IPrivacySettingsManager"
10498 + invoke-virtual {v0, v2}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
10500 + invoke-virtual {v0, p1}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
10502 + iget-object v2, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
10504 + const/4 v3, 0x6
10506 + const/4 v4, 0x0
10508 + invoke-interface {v2, v3, v0, v1, v4}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
10510 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
10511 + :try_end_1a
10512 + .catchall {:try_start_8 .. :try_end_1a} :catchall_21
10514 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10516 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10518 + return-void
10520 + :catchall_21
10521 + move-exception v2
10523 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10525 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10527 + throw v2
10528 +.end method
10530 +.method public asBinder()Landroid/os/IBinder;
10531 + .registers 2
10533 + iget-object v0, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
10535 + return-object v0
10536 +.end method
10538 +.method public deleteSettings(Ljava/lang/String;)Z
10539 + .registers 8
10540 + .annotation system Ldalvik/annotation/Throws;
10541 + value = {
10542 + Landroid/os/RemoteException;
10544 + .end annotation
10546 + const/4 v2, 0x0
10548 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10550 + move-result-object v0
10552 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10554 + move-result-object v1
10556 + :try_start_9
10557 + const-string v3, "android.privacy.IPrivacySettingsManager"
10559 + invoke-virtual {v0, v3}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
10561 + invoke-virtual {v0, p1}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
10563 + iget-object v3, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
10565 + const/4 v4, 0x3
10567 + const/4 v5, 0x0
10569 + invoke-interface {v3, v4, v0, v1, v5}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
10571 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
10573 + invoke-virtual {v1}, Landroid/os/Parcel;->readInt()I
10574 + :try_end_1e
10575 + .catchall {:try_start_9 .. :try_end_1e} :catchall_29
10577 + move-result v3
10579 + if-eqz v3, :cond_22
10581 + const/4 v2, 0x1
10583 + :cond_22
10584 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10586 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10588 + return v2
10590 + :catchall_29
10591 + move-exception v3
10593 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10595 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10597 + throw v3
10598 +.end method
10600 +.method public getInterfaceDescriptor()Ljava/lang/String;
10601 + .registers 2
10603 + const-string v0, "android.privacy.IPrivacySettingsManager"
10605 + return-object v0
10606 +.end method
10608 +.method public getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
10609 + .registers 8
10610 + .annotation system Ldalvik/annotation/Throws;
10611 + value = {
10612 + Landroid/os/RemoteException;
10614 + .end annotation
10616 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10618 + move-result-object v0
10620 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10622 + move-result-object v1
10624 + :try_start_8
10625 + const-string v3, "android.privacy.IPrivacySettingsManager"
10627 + invoke-virtual {v0, v3}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
10629 + invoke-virtual {v0, p1}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
10631 + iget-object v3, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
10633 + const/4 v4, 0x1
10635 + const/4 v5, 0x0
10637 + invoke-interface {v3, v4, v0, v1, v5}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
10639 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
10641 + invoke-virtual {v1}, Landroid/os/Parcel;->readInt()I
10643 + move-result v3
10645 + if-eqz v3, :cond_2f
10647 + sget-object v3, Landroid/privacy/PrivacySettings;->CREATOR:Landroid/os/Parcelable$Creator;
10649 + invoke-interface {v3, v1}, Landroid/os/Parcelable$Creator;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
10651 + move-result-object v2
10653 + check-cast v2, Landroid/privacy/PrivacySettings;
10654 + :try_end_28
10655 + .catchall {:try_start_8 .. :try_end_28} :catchall_31
10657 + :goto_28
10658 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10660 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10662 + return-object v2
10664 + :cond_2f
10665 + const/4 v2, 0x0
10667 + goto :goto_28
10669 + :catchall_31
10670 + move-exception v3
10672 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10674 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10676 + throw v3
10677 +.end method
10679 +.method public notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
10680 + .registers 10
10681 + .annotation system Ldalvik/annotation/Throws;
10682 + value = {
10683 + Landroid/os/RemoteException;
10685 + .end annotation
10687 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10689 + move-result-object v0
10691 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10693 + move-result-object v1
10695 + :try_start_8
10696 + const-string v2, "android.privacy.IPrivacySettingsManager"
10698 + invoke-virtual {v0, v2}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
10700 + invoke-virtual {v0, p1}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
10702 + invoke-virtual {v0, p2}, Landroid/os/Parcel;->writeByte(B)V
10704 + invoke-virtual {v0, p3}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
10706 + invoke-virtual {v0, p4}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
10708 + iget-object v2, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
10710 + const/4 v3, 0x4
10712 + const/4 v4, 0x0
10714 + invoke-interface {v2, v3, v0, v1, v4}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
10716 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
10717 + :try_end_23
10718 + .catchall {:try_start_8 .. :try_end_23} :catchall_2a
10720 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10722 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10724 + return-void
10726 + :catchall_2a
10727 + move-exception v2
10729 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10731 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10733 + throw v2
10734 +.end method
10736 +.method public purgeSettings()Z
10737 + .registers 7
10738 + .annotation system Ldalvik/annotation/Throws;
10739 + value = {
10740 + Landroid/os/RemoteException;
10742 + .end annotation
10744 + const/4 v2, 0x0
10746 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10748 + move-result-object v0
10750 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10752 + move-result-object v1
10754 + :try_start_9
10755 + const-string v3, "android.privacy.IPrivacySettingsManager"
10757 + invoke-virtual {v0, v3}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
10759 + iget-object v3, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
10761 + const/4 v4, 0x7
10763 + const/4 v5, 0x0
10765 + invoke-interface {v3, v4, v0, v1, v5}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
10767 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
10769 + invoke-virtual {v1}, Landroid/os/Parcel;->readInt()I
10770 + :try_end_1b
10771 + .catchall {:try_start_9 .. :try_end_1b} :catchall_26
10773 + move-result v3
10775 + if-eqz v3, :cond_1f
10777 + const/4 v2, 0x1
10779 + :cond_1f
10780 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10782 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10784 + return v2
10786 + :catchall_26
10787 + move-exception v3
10789 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10791 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10793 + throw v3
10794 +.end method
10796 +.method public registerObservers()V
10797 + .registers 6
10798 + .annotation system Ldalvik/annotation/Throws;
10799 + value = {
10800 + Landroid/os/RemoteException;
10802 + .end annotation
10804 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10806 + move-result-object v0
10808 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10810 + move-result-object v1
10812 + :try_start_8
10813 + const-string v2, "android.privacy.IPrivacySettingsManager"
10815 + invoke-virtual {v0, v2}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
10817 + iget-object v2, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
10819 + const/4 v3, 0x5
10821 + const/4 v4, 0x0
10823 + invoke-interface {v2, v3, v0, v1, v4}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
10825 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
10826 + :try_end_17
10827 + .catchall {:try_start_8 .. :try_end_17} :catchall_1e
10829 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10831 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10833 + return-void
10835 + :catchall_1e
10836 + move-exception v2
10838 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10840 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10842 + throw v2
10843 +.end method
10845 +.method public saveSettings(Landroid/privacy/PrivacySettings;)Z
10846 + .registers 9
10847 + .annotation system Ldalvik/annotation/Throws;
10848 + value = {
10849 + Landroid/os/RemoteException;
10851 + .end annotation
10853 + const/4 v2, 0x1
10855 + const/4 v3, 0x0
10857 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10859 + move-result-object v0
10861 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10863 + move-result-object v1
10865 + :try_start_a
10866 + const-string v4, "android.privacy.IPrivacySettingsManager"
10868 + invoke-virtual {v0, v4}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
10870 + if-eqz p1, :cond_30
10872 + const/4 v4, 0x1
10874 + invoke-virtual {v0, v4}, Landroid/os/Parcel;->writeInt(I)V
10876 + const/4 v4, 0x0
10878 + invoke-virtual {p1, v0, v4}, Landroid/privacy/PrivacySettings;->writeToParcel(Landroid/os/Parcel;I)V
10880 + :goto_19
10881 + iget-object v4, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
10883 + const/4 v5, 0x2
10885 + const/4 v6, 0x0
10887 + invoke-interface {v4, v5, v0, v1, v6}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
10889 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
10891 + invoke-virtual {v1}, Landroid/os/Parcel;->readInt()I
10892 + :try_end_26
10893 + .catchall {:try_start_a .. :try_end_26} :catchall_35
10895 + move-result v4
10897 + if-eqz v4, :cond_3d
10899 + :goto_29
10900 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10902 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10904 + return v2
10906 + :cond_30
10907 + const/4 v4, 0x0
10909 + :try_start_31
10910 + invoke-virtual {v0, v4}, Landroid/os/Parcel;->writeInt(I)V
10911 + :try_end_34
10912 + .catchall {:try_start_31 .. :try_end_34} :catchall_35
10914 + goto :goto_19
10916 + :catchall_35
10917 + move-exception v3
10919 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10921 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10923 + throw v3
10925 + :cond_3d
10926 + move v2, v3
10928 + goto :goto_29
10929 +.end method
10931 +.method public setBootCompleted()V
10932 + .registers 6
10933 + .annotation system Ldalvik/annotation/Throws;
10934 + value = {
10935 + Landroid/os/RemoteException;
10937 + .end annotation
10939 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10941 + move-result-object v0
10943 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10945 + move-result-object v1
10947 + :try_start_8
10948 + const-string v2, "android.privacy.IPrivacySettingsManager"
10950 + invoke-virtual {v0, v2}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
10952 + iget-object v2, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
10954 + const/16 v3, 0xa
10956 + const/4 v4, 0x0
10958 + invoke-interface {v2, v3, v0, v1, v4}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
10960 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
10961 + :try_end_18
10962 + .catchall {:try_start_8 .. :try_end_18} :catchall_1f
10964 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10966 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10968 + return-void
10970 + :catchall_1f
10971 + move-exception v2
10973 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
10975 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
10977 + throw v2
10978 +.end method
10980 +.method public setEnabled(Z)Z
10981 + .registers 9
10982 + .annotation system Ldalvik/annotation/Throws;
10983 + value = {
10984 + Landroid/os/RemoteException;
10986 + .end annotation
10988 + const/4 v2, 0x1
10990 + const/4 v3, 0x0
10992 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10994 + move-result-object v0
10996 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
10998 + move-result-object v1
11000 + :try_start_a
11001 + const-string v4, "android.privacy.IPrivacySettingsManager"
11003 + invoke-virtual {v0, v4}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
11005 + if-eqz p1, :cond_2d
11007 + move v4, v2
11009 + :goto_12
11010 + invoke-virtual {v0, v4}, Landroid/os/Parcel;->writeInt(I)V
11012 + iget-object v4, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
11014 + const/16 v5, 0x8
11016 + const/4 v6, 0x0
11018 + invoke-interface {v4, v5, v0, v1, v6}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
11020 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
11022 + invoke-virtual {v1}, Landroid/os/Parcel;->readInt()I
11023 + :try_end_23
11024 + .catchall {:try_start_a .. :try_end_23} :catchall_31
11026 + move-result v4
11028 + if-eqz v4, :cond_2f
11030 + :goto_26
11031 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
11033 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
11035 + return v2
11037 + :cond_2d
11038 + move v4, v3
11040 + goto :goto_12
11042 + :cond_2f
11043 + move v2, v3
11045 + goto :goto_26
11047 + :catchall_31
11048 + move-exception v3
11050 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
11052 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
11054 + throw v3
11055 +.end method
11057 +.method public setNotificationsEnabled(Z)Z
11058 + .registers 9
11059 + .annotation system Ldalvik/annotation/Throws;
11060 + value = {
11061 + Landroid/os/RemoteException;
11063 + .end annotation
11065 + const/4 v2, 0x1
11067 + const/4 v3, 0x0
11069 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
11071 + move-result-object v0
11073 + invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
11075 + move-result-object v1
11077 + :try_start_a
11078 + const-string v4, "android.privacy.IPrivacySettingsManager"
11080 + invoke-virtual {v0, v4}, Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
11082 + if-eqz p1, :cond_2d
11084 + move v4, v2
11086 + :goto_12
11087 + invoke-virtual {v0, v4}, Landroid/os/Parcel;->writeInt(I)V
11089 + iget-object v4, p0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
11091 + const/16 v5, 0x9
11093 + const/4 v6, 0x0
11095 + invoke-interface {v4, v5, v0, v1, v6}, Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
11097 + invoke-virtual {v1}, Landroid/os/Parcel;->readException()V
11099 + invoke-virtual {v1}, Landroid/os/Parcel;->readInt()I
11100 + :try_end_23
11101 + .catchall {:try_start_a .. :try_end_23} :catchall_31
11103 + move-result v4
11105 + if-eqz v4, :cond_2f
11107 + :goto_26
11108 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
11110 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
11112 + return v2
11114 + :cond_2d
11115 + move v4, v3
11117 + goto :goto_12
11119 + :cond_2f
11120 + move v2, v3
11122 + goto :goto_26
11124 + :catchall_31
11125 + move-exception v3
11127 + invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
11129 + invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
11131 + throw v3
11132 +.end method
11133 diff -Npru stock-framework/smali/android/privacy/IPrivacySettingsManager$Stub.smali pdroid-framework/smali/android/privacy/IPrivacySettingsManager$Stub.smali
11134 --- stock-framework/smali/android/privacy/IPrivacySettingsManager$Stub.smali 1969-12-31 16:00:00.000000000 -0800
11135 +++ pdroid-framework/smali/android/privacy/IPrivacySettingsManager$Stub.smali 2013-08-10 20:37:42.491213441 -0700
11136 @@ -0,0 +1,392 @@
11137 +.class public abstract Landroid/privacy/IPrivacySettingsManager$Stub;
11138 +.super Landroid/os/Binder;
11139 +.source "IPrivacySettingsManager.java"
11141 +# interfaces
11142 +.implements Landroid/privacy/IPrivacySettingsManager;
11145 +# annotations
11146 +.annotation system Ldalvik/annotation/EnclosingClass;
11147 + value = Landroid/privacy/IPrivacySettingsManager;
11148 +.end annotation
11150 +.annotation system Ldalvik/annotation/InnerClass;
11151 + accessFlags = 0x409
11152 + name = "Stub"
11153 +.end annotation
11155 +.annotation system Ldalvik/annotation/MemberClasses;
11156 + value = {
11157 + Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;
11159 +.end annotation
11162 +# static fields
11163 +.field private static final DESCRIPTOR:Ljava/lang/String; = "android.privacy.IPrivacySettingsManager"
11165 +.field static final TRANSACTION_addObserver:I = 0x6
11167 +.field static final TRANSACTION_deleteSettings:I = 0x3
11169 +.field static final TRANSACTION_getSettings:I = 0x1
11171 +.field static final TRANSACTION_notification:I = 0x4
11173 +.field static final TRANSACTION_purgeSettings:I = 0x7
11175 +.field static final TRANSACTION_registerObservers:I = 0x5
11177 +.field static final TRANSACTION_saveSettings:I = 0x2
11179 +.field static final TRANSACTION_setBootCompleted:I = 0xa
11181 +.field static final TRANSACTION_setEnabled:I = 0x8
11183 +.field static final TRANSACTION_setNotificationsEnabled:I = 0x9
11186 +# direct methods
11187 +.method public constructor <init>()V
11188 + .registers 2
11190 + invoke-direct {p0}, Landroid/os/Binder;-><init>()V
11192 + const-string v0, "android.privacy.IPrivacySettingsManager"
11194 + invoke-virtual {p0, p0, v0}, Landroid/privacy/IPrivacySettingsManager$Stub;->attachInterface(Landroid/os/IInterface;Ljava/lang/String;)V
11196 + return-void
11197 +.end method
11199 +.method public static asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
11200 + .registers 3
11202 + if-nez p0, :cond_4
11204 + const/4 v0, 0x0
11206 + :goto_3
11207 + return-object v0
11209 + :cond_4
11210 + const-string v1, "android.privacy.IPrivacySettingsManager"
11212 + invoke-interface {p0, v1}, Landroid/os/IBinder;->queryLocalInterface(Ljava/lang/String;)Landroid/os/IInterface;
11214 + move-result-object v0
11216 + if-eqz v0, :cond_13
11218 + instance-of v1, v0, Landroid/privacy/IPrivacySettingsManager;
11220 + if-eqz v1, :cond_13
11222 + check-cast v0, Landroid/privacy/IPrivacySettingsManager;
11224 + goto :goto_3
11226 + :cond_13
11227 + new-instance v0, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;
11229 + invoke-direct {v0, p0}, Landroid/privacy/IPrivacySettingsManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
11231 + goto :goto_3
11232 +.end method
11235 +# virtual methods
11236 +.method public asBinder()Landroid/os/IBinder;
11237 + .registers 1
11239 + return-object p0
11240 +.end method
11242 +.method public onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
11243 + .registers 13
11244 + .annotation system Ldalvik/annotation/Throws;
11245 + value = {
11246 + Landroid/os/RemoteException;
11248 + .end annotation
11250 + const/4 v5, 0x0
11252 + const/4 v6, 0x1
11254 + sparse-switch p1, :sswitch_data_fc
11256 + invoke-super {p0, p1, p2, p3, p4}, Landroid/os/Binder;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
11258 + move-result v6
11260 + :goto_9
11261 + return v6
11263 + :sswitch_a
11264 + const-string v5, "android.privacy.IPrivacySettingsManager"
11266 + invoke-virtual {p3, v5}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
11268 + goto :goto_9
11270 + :sswitch_10
11271 + const-string v7, "android.privacy.IPrivacySettingsManager"
11273 + invoke-virtual {p2, v7}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
11275 + invoke-virtual {p2}, Landroid/os/Parcel;->readString()Ljava/lang/String;
11277 + move-result-object v0
11279 + invoke-virtual {p0, v0}, Landroid/privacy/IPrivacySettingsManager$Stub;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
11281 + move-result-object v4
11283 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
11285 + if-eqz v4, :cond_29
11287 + invoke-virtual {p3, v6}, Landroid/os/Parcel;->writeInt(I)V
11289 + invoke-virtual {v4, p3, v6}, Landroid/privacy/PrivacySettings;->writeToParcel(Landroid/os/Parcel;I)V
11291 + goto :goto_9
11293 + :cond_29
11294 + invoke-virtual {p3, v5}, Landroid/os/Parcel;->writeInt(I)V
11296 + goto :goto_9
11298 + :sswitch_2d
11299 + const-string v7, "android.privacy.IPrivacySettingsManager"
11301 + invoke-virtual {p2, v7}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
11303 + invoke-virtual {p2}, Landroid/os/Parcel;->readInt()I
11305 + move-result v7
11307 + if-eqz v7, :cond_4e
11309 + sget-object v7, Landroid/privacy/PrivacySettings;->CREATOR:Landroid/os/Parcelable$Creator;
11311 + invoke-interface {v7, p2}, Landroid/os/Parcelable$Creator;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
11313 + move-result-object v0
11315 + check-cast v0, Landroid/privacy/PrivacySettings;
11317 + :goto_40
11318 + invoke-virtual {p0, v0}, Landroid/privacy/IPrivacySettingsManager$Stub;->saveSettings(Landroid/privacy/PrivacySettings;)Z
11320 + move-result v4
11322 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
11324 + if-eqz v4, :cond_4a
11326 + move v5, v6
11328 + :cond_4a
11329 + invoke-virtual {p3, v5}, Landroid/os/Parcel;->writeInt(I)V
11331 + goto :goto_9
11333 + :cond_4e
11334 + const/4 v0, 0x0
11336 + goto :goto_40
11338 + :sswitch_50
11339 + const-string v7, "android.privacy.IPrivacySettingsManager"
11341 + invoke-virtual {p2, v7}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
11343 + invoke-virtual {p2}, Landroid/os/Parcel;->readString()Ljava/lang/String;
11345 + move-result-object v0
11347 + invoke-virtual {p0, v0}, Landroid/privacy/IPrivacySettingsManager$Stub;->deleteSettings(Ljava/lang/String;)Z
11349 + move-result v4
11351 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
11353 + if-eqz v4, :cond_63
11355 + move v5, v6
11357 + :cond_63
11358 + invoke-virtual {p3, v5}, Landroid/os/Parcel;->writeInt(I)V
11360 + goto :goto_9
11362 + :sswitch_67
11363 + const-string v5, "android.privacy.IPrivacySettingsManager"
11365 + invoke-virtual {p2, v5}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
11367 + invoke-virtual {p2}, Landroid/os/Parcel;->readString()Ljava/lang/String;
11369 + move-result-object v0
11371 + invoke-virtual {p2}, Landroid/os/Parcel;->readByte()B
11373 + move-result v1
11375 + invoke-virtual {p2}, Landroid/os/Parcel;->readString()Ljava/lang/String;
11377 + move-result-object v2
11379 + invoke-virtual {p2}, Landroid/os/Parcel;->readString()Ljava/lang/String;
11381 + move-result-object v3
11383 + invoke-virtual {p0, v0, v1, v2, v3}, Landroid/privacy/IPrivacySettingsManager$Stub;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
11385 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
11387 + goto :goto_9
11389 + :sswitch_83
11390 + const-string v5, "android.privacy.IPrivacySettingsManager"
11392 + invoke-virtual {p2, v5}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
11394 + invoke-virtual {p0}, Landroid/privacy/IPrivacySettingsManager$Stub;->registerObservers()V
11396 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
11398 + goto/16 :goto_9
11400 + :sswitch_90
11401 + const-string v5, "android.privacy.IPrivacySettingsManager"
11403 + invoke-virtual {p2, v5}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
11405 + invoke-virtual {p2}, Landroid/os/Parcel;->readString()Ljava/lang/String;
11407 + move-result-object v0
11409 + invoke-virtual {p0, v0}, Landroid/privacy/IPrivacySettingsManager$Stub;->addObserver(Ljava/lang/String;)V
11411 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
11413 + goto/16 :goto_9
11415 + :sswitch_a1
11416 + const-string v7, "android.privacy.IPrivacySettingsManager"
11418 + invoke-virtual {p2, v7}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
11420 + invoke-virtual {p0}, Landroid/privacy/IPrivacySettingsManager$Stub;->purgeSettings()Z
11422 + move-result v4
11424 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
11426 + if-eqz v4, :cond_b0
11428 + move v5, v6
11430 + :cond_b0
11431 + invoke-virtual {p3, v5}, Landroid/os/Parcel;->writeInt(I)V
11433 + goto/16 :goto_9
11435 + :sswitch_b5
11436 + const-string v7, "android.privacy.IPrivacySettingsManager"
11438 + invoke-virtual {p2, v7}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
11440 + invoke-virtual {p2}, Landroid/os/Parcel;->readInt()I
11442 + move-result v7
11444 + if-eqz v7, :cond_d0
11446 + move v0, v6
11448 + :goto_c1
11449 + invoke-virtual {p0, v0}, Landroid/privacy/IPrivacySettingsManager$Stub;->setEnabled(Z)Z
11451 + move-result v4
11453 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
11455 + if-eqz v4, :cond_cb
11457 + move v5, v6
11459 + :cond_cb
11460 + invoke-virtual {p3, v5}, Landroid/os/Parcel;->writeInt(I)V
11462 + goto/16 :goto_9
11464 + :cond_d0
11465 + move v0, v5
11467 + goto :goto_c1
11469 + :sswitch_d2
11470 + const-string v7, "android.privacy.IPrivacySettingsManager"
11472 + invoke-virtual {p2, v7}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
11474 + invoke-virtual {p2}, Landroid/os/Parcel;->readInt()I
11476 + move-result v7
11478 + if-eqz v7, :cond_ed
11480 + move v0, v6
11482 + :goto_de
11483 + invoke-virtual {p0, v0}, Landroid/privacy/IPrivacySettingsManager$Stub;->setNotificationsEnabled(Z)Z
11485 + move-result v4
11487 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
11489 + if-eqz v4, :cond_e8
11491 + move v5, v6
11493 + :cond_e8
11494 + invoke-virtual {p3, v5}, Landroid/os/Parcel;->writeInt(I)V
11496 + goto/16 :goto_9
11498 + :cond_ed
11499 + move v0, v5
11501 + goto :goto_de
11503 + :sswitch_ef
11504 + const-string v5, "android.privacy.IPrivacySettingsManager"
11506 + invoke-virtual {p2, v5}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
11508 + invoke-virtual {p0}, Landroid/privacy/IPrivacySettingsManager$Stub;->setBootCompleted()V
11510 + invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
11512 + goto/16 :goto_9
11514 + :sswitch_data_fc
11515 + .sparse-switch
11516 + 0x1 -> :sswitch_10
11517 + 0x2 -> :sswitch_2d
11518 + 0x3 -> :sswitch_50
11519 + 0x4 -> :sswitch_67
11520 + 0x5 -> :sswitch_83
11521 + 0x6 -> :sswitch_90
11522 + 0x7 -> :sswitch_a1
11523 + 0x8 -> :sswitch_b5
11524 + 0x9 -> :sswitch_d2
11525 + 0xa -> :sswitch_ef
11526 + 0x5f4e5446 -> :sswitch_a
11527 + .end sparse-switch
11528 +.end method
11529 diff -Npru stock-framework/smali/android/privacy/PrivacyFileObserver.smali pdroid-framework/smali/android/privacy/PrivacyFileObserver.smali
11530 --- stock-framework/smali/android/privacy/PrivacyFileObserver.smali 1969-12-31 16:00:00.000000000 -0800
11531 +++ pdroid-framework/smali/android/privacy/PrivacyFileObserver.smali 2013-08-10 20:37:42.491213441 -0700
11532 @@ -0,0 +1,272 @@
11533 +.class public final Landroid/privacy/PrivacyFileObserver;
11534 +.super Landroid/os/FileObserver;
11535 +.source "PrivacyFileObserver.java"
11538 +# static fields
11539 +.field public static final PACKAGE_PATH_INDEX:I = 0x3
11541 +.field public static final SETTINGS_TYPE_INDEX:I = 0x4
11543 +.field public static final TAG:Ljava/lang/String; = "PrivacyFileObserver"
11546 +# instance fields
11547 +.field public absolutePath:Ljava/lang/String;
11549 +.field public children:Ljava/util/HashMap;
11550 + .annotation system Ldalvik/annotation/Signature;
11551 + value = {
11552 + "Ljava/util/HashMap",
11553 + "<",
11554 + "Ljava/lang/String;",
11555 + "Landroid/privacy/PrivacyFileObserver;",
11556 + ">;"
11558 + .end annotation
11559 +.end field
11561 +.field private pSetManServ:Landroid/privacy/PrivacySettingsManagerService;
11564 +# direct methods
11565 +.method public constructor <init>(Ljava/lang/String;Landroid/privacy/PrivacySettingsManagerService;)V
11566 + .registers 12
11568 + const/16 v8, 0xfff
11570 + invoke-direct {p0, p1, v8}, Landroid/os/FileObserver;-><init>(Ljava/lang/String;I)V
11572 + iput-object p1, p0, Landroid/privacy/PrivacyFileObserver;->absolutePath:Ljava/lang/String;
11574 + iput-object p2, p0, Landroid/privacy/PrivacyFileObserver;->pSetManServ:Landroid/privacy/PrivacySettingsManagerService;
11576 + new-instance v8, Ljava/util/HashMap;
11578 + invoke-direct {v8}, Ljava/util/HashMap;-><init>()V
11580 + iput-object v8, p0, Landroid/privacy/PrivacyFileObserver;->children:Ljava/util/HashMap;
11582 + new-instance v7, Ljava/io/File;
11584 + iget-object v8, p0, Landroid/privacy/PrivacyFileObserver;->absolutePath:Ljava/lang/String;
11586 + invoke-direct {v7, v8}, Ljava/io/File;-><init>(Ljava/lang/String;)V
11588 + invoke-virtual {v7}, Ljava/io/File;->isDirectory()Z
11590 + move-result v8
11592 + if-eqz v8, :cond_42
11594 + invoke-virtual {v7}, Ljava/io/File;->listFiles()[Ljava/io/File;
11596 + move-result-object v6
11598 + move-object v0, v6
11600 + array-length v4, v0
11602 + const/4 v3, 0x0
11604 + :goto_24
11605 + if-ge v3, v4, :cond_42
11607 + aget-object v2, v0, v3
11609 + invoke-virtual {v2}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
11611 + move-result-object v5
11613 + new-instance v1, Landroid/privacy/PrivacyFileObserver;
11615 + invoke-direct {v1, v5, p2}, Landroid/privacy/PrivacyFileObserver;-><init>(Ljava/lang/String;Landroid/privacy/PrivacySettingsManagerService;)V
11617 + iget-object v8, p0, Landroid/privacy/PrivacyFileObserver;->children:Ljava/util/HashMap;
11619 + invoke-virtual {v8, v5, v1}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
11621 + invoke-virtual {v2}, Ljava/io/File;->isFile()Z
11623 + move-result v8
11625 + if-eqz v8, :cond_3f
11627 + invoke-virtual {v1}, Landroid/privacy/PrivacyFileObserver;->startWatching()V
11629 + :cond_3f
11630 + add-int/lit8 v3, v3, 0x1
11632 + goto :goto_24
11634 + :cond_42
11635 + return-void
11636 +.end method
11639 +# virtual methods
11640 +.method public addObserver(Ljava/lang/String;)V
11641 + .registers 6
11643 + new-instance v2, Ljava/lang/StringBuilder;
11645 + invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
11647 + iget-object v3, p0, Landroid/privacy/PrivacyFileObserver;->absolutePath:Ljava/lang/String;
11649 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
11651 + move-result-object v2
11653 + const-string v3, "/"
11655 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
11657 + move-result-object v2
11659 + invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
11661 + move-result-object v2
11663 + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
11665 + move-result-object v1
11667 + iget-object v2, p0, Landroid/privacy/PrivacyFileObserver;->children:Ljava/util/HashMap;
11669 + invoke-virtual {v2, v1}, Ljava/util/HashMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;
11671 + new-instance v0, Landroid/privacy/PrivacyFileObserver;
11673 + iget-object v2, p0, Landroid/privacy/PrivacyFileObserver;->pSetManServ:Landroid/privacy/PrivacySettingsManagerService;
11675 + invoke-direct {v0, v1, v2}, Landroid/privacy/PrivacyFileObserver;-><init>(Ljava/lang/String;Landroid/privacy/PrivacySettingsManagerService;)V
11677 + iget-object v2, p0, Landroid/privacy/PrivacyFileObserver;->children:Ljava/util/HashMap;
11679 + invoke-virtual {v2, v1, v0}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
11681 + return-void
11682 +.end method
11684 +.method public onEvent(ILjava/lang/String;)V
11685 + .registers 12
11687 + and-int/lit8 v5, p1, 0x1
11689 + if-eqz v5, :cond_48
11691 + new-instance v4, Ljava/util/StringTokenizer;
11693 + iget-object v5, p0, Landroid/privacy/PrivacyFileObserver;->absolutePath:Ljava/lang/String;
11695 + const-string v6, "/"
11697 + invoke-direct {v4, v5, v6}, Ljava/util/StringTokenizer;-><init>(Ljava/lang/String;Ljava/lang/String;)V
11699 + const/4 v0, 0x0
11701 + :goto_e
11702 + const/4 v5, 0x3
11704 + if-ge v0, v5, :cond_1d
11706 + invoke-virtual {v4}, Ljava/util/StringTokenizer;->hasMoreElements()Z
11708 + move-result v5
11710 + if-eqz v5, :cond_1d
11712 + invoke-virtual {v4}, Ljava/util/StringTokenizer;->nextToken()Ljava/lang/String;
11714 + add-int/lit8 v0, v0, 0x1
11716 + goto :goto_e
11718 + :cond_1d
11719 + invoke-virtual {v4}, Ljava/util/StringTokenizer;->nextToken()Ljava/lang/String;
11721 + move-result-object v2
11723 + const/4 v3, 0x0
11725 + invoke-virtual {v4}, Ljava/util/StringTokenizer;->hasMoreElements()Z
11727 + move-result v5
11729 + if-eqz v5, :cond_2c
11731 + invoke-virtual {v4}, Ljava/util/StringTokenizer;->nextToken()Ljava/lang/String;
11733 + move-result-object v3
11735 + :cond_2c
11736 + if-eqz v3, :cond_49
11738 + :try_start_2e
11739 + const-string v5, "ipTableProtectSetting"
11741 + invoke-virtual {v3, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
11743 + move-result v5
11745 + if-eqz v5, :cond_49
11747 + iget-object v5, p0, Landroid/privacy/PrivacyFileObserver;->pSetManServ:Landroid/privacy/PrivacySettingsManagerService;
11749 + invoke-virtual {v5, v2}, Landroid/privacy/PrivacySettingsManagerService;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
11751 + move-result-object v1
11753 + iget-object v5, p0, Landroid/privacy/PrivacyFileObserver;->pSetManServ:Landroid/privacy/PrivacySettingsManagerService;
11755 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getIpTableProtectSetting()B
11757 + move-result v6
11759 + const-string v7, "iptables"
11761 + const/4 v8, 0x0
11763 + invoke-virtual {v5, v2, v6, v7, v8}, Landroid/privacy/PrivacySettingsManagerService;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
11765 + :cond_48
11766 + :goto_48
11767 + return-void
11769 + :cond_49
11770 + iget-object v5, p0, Landroid/privacy/PrivacyFileObserver;->pSetManServ:Landroid/privacy/PrivacySettingsManagerService;
11772 + invoke-virtual {v5, v2}, Landroid/privacy/PrivacySettingsManagerService;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
11774 + move-result-object v1
11776 + iget-object v5, p0, Landroid/privacy/PrivacyFileObserver;->pSetManServ:Landroid/privacy/PrivacySettingsManagerService;
11778 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getSystemLogsSetting()B
11780 + move-result v6
11782 + const-string/jumbo v7, "systemLogs"
11784 + const/4 v8, 0x0
11786 + invoke-virtual {v5, v2, v6, v7, v8}, Landroid/privacy/PrivacySettingsManagerService;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
11787 + :try_end_5c
11788 + .catch Ljava/lang/Exception; {:try_start_2e .. :try_end_5c} :catch_5d
11790 + goto :goto_48
11792 + :catch_5d
11793 + move-exception v5
11795 + goto :goto_48
11796 +.end method
11798 +.method public startWatching()V
11799 + .registers 1
11801 + invoke-super {p0}, Landroid/os/FileObserver;->startWatching()V
11803 + return-void
11804 +.end method
11805 diff -Npru stock-framework/smali/android/privacy/PrivacyPersistenceAdapter.smali pdroid-framework/smali/android/privacy/PrivacyPersistenceAdapter.smali
11806 --- stock-framework/smali/android/privacy/PrivacyPersistenceAdapter.smali 1969-12-31 16:00:00.000000000 -0800
11807 +++ pdroid-framework/smali/android/privacy/PrivacyPersistenceAdapter.smali 2013-08-10 20:37:42.495213442 -0700
11808 @@ -0,0 +1,5140 @@
11809 +.class public final Landroid/privacy/PrivacyPersistenceAdapter;
11810 +.super Ljava/lang/Object;
11811 +.source "PrivacyPersistenceAdapter.java"
11814 +# static fields
11815 +.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) );"
11817 +.field private static final CREATE_TABLE_MAP:Ljava/lang/String; = "CREATE TABLE IF NOT EXISTS map ( name TEXT PRIMARY KEY, value TEXT );"
11819 +.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);"
11821 +.field private static final DATABASE_FIELDS:[Ljava/lang/String; = null
11823 +.field private static final DATABASE_FILE:Ljava/lang/String; = "/data/system/privacy.db"
11825 +.field private static final DATABASE_VERSION:I = 0x4
11827 +.field private static final DEFAULT_CACHE_ENTRIES:I = 0x14
11829 +.field public static final DUMMY_UID:I = -0x1
11831 +.field private static final INSERT_ENABLED:Ljava/lang/String; = "INSERT OR REPLACE INTO map (name, value) VALUES (\"enabled\", \"1\");"
11833 +.field private static final INSERT_NOTIFICATIONS_ENABLED:Ljava/lang/String; = "INSERT OR REPLACE INTO map (name, value) VALUES (\"notifications_enabled\", \"1\");"
11835 +.field private static final INSERT_VERSION:Ljava/lang/String; = "INSERT OR REPLACE INTO map (name, value) VALUES (\"db_version\", 4);"
11837 +.field private static final LOG_CACHE:Z = false
11839 +.field private static final LOG_LOCKING:Z = false
11841 +.field private static final LOG_OPEN_AND_CLOSE:Z = false
11843 +.field private static final MINIMUM_CACHE_ENTRIES:I = 0x0
11845 +.field private static final RETRY_QUERY_COUNT:I = 0x5
11847 +.field public static final SETTINGS_DIRECTORY:Ljava/lang/String; = "/data/system/privacy"
11849 +.field public static final SETTING_DB_VERSION:Ljava/lang/String; = "db_version"
11851 +.field public static final SETTING_ENABLED:Ljava/lang/String; = "enabled"
11853 +.field public static final SETTING_NOTIFICATIONS_ENABLED:Ljava/lang/String; = "notifications_enabled"
11855 +.field private static final TABLE_ALLOWED_CONTACTS:Ljava/lang/String; = "allowed_contacts"
11857 +.field private static final TABLE_MAP:Ljava/lang/String; = "map"
11859 +.field private static final TABLE_SETTINGS:Ljava/lang/String; = "settings"
11861 +.field private static final TABLE_VERSION:Ljava/lang/String; = "version"
11863 +.field private static final TAG:Ljava/lang/String; = "PrivacyPersistenceAdapter"
11865 +.field public static final VALUE_FALSE:Ljava/lang/String; = "0"
11867 +.field public static final VALUE_TRUE:Ljava/lang/String; = "1"
11869 +.field private static final autoCloseDb:Z = false
11871 +.field public static volatile sDbAccessThreads:Ljava/lang/Integer; = null
11873 +.field private static sDbLock:Ljava/util/concurrent/locks/ReadWriteLock; = null
11875 +.field public static volatile sDbVersion:I = 0x0
11877 +.field private static settingsCache:Landroid/util/LruCache; = null
11878 + .annotation system Ldalvik/annotation/Signature;
11879 + value = {
11880 + "Landroid/util/LruCache",
11881 + "<",
11882 + "Ljava/lang/String;",
11883 + "Landroid/privacy/PrivacySettingsStub;",
11884 + ">;"
11886 + .end annotation
11887 +.end field
11889 +.field private static final useCache:Z = true
11892 +# instance fields
11893 +.field private mContext:Landroid/content/Context;
11895 +.field private mDb:Landroid/database/sqlite/SQLiteDatabase;
11898 +# direct methods
11899 +.method static constructor <clinit>()V
11900 + .registers 4
11902 + const/16 v3, 0x14
11904 + const/4 v2, 0x0
11906 + invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
11908 + move-result-object v0
11910 + sput-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
11912 + new-instance v0, Ljava/util/concurrent/locks/ReentrantReadWriteLock;
11914 + invoke-direct {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;-><init>()V
11916 + sput-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
11918 + new-instance v0, Landroid/util/LruCache;
11920 + invoke-direct {v0, v3}, Landroid/util/LruCache;-><init>(I)V
11922 + sput-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->settingsCache:Landroid/util/LruCache;
11924 + const/16 v0, 0x2f
11926 + new-array v0, v0, [Ljava/lang/String;
11928 + const-string v1, "_id"
11930 + aput-object v1, v0, v2
11932 + const/4 v1, 0x1
11934 + const-string/jumbo v2, "packageName"
11936 + aput-object v2, v0, v1
11938 + const/4 v1, 0x2
11940 + const-string/jumbo v2, "uid"
11942 + aput-object v2, v0, v1
11944 + const/4 v1, 0x3
11946 + const-string v2, "deviceIdSetting"
11948 + aput-object v2, v0, v1
11950 + const/4 v1, 0x4
11952 + const-string v2, "deviceId"
11954 + aput-object v2, v0, v1
11956 + const/4 v1, 0x5
11958 + const-string v2, "line1NumberSetting"
11960 + aput-object v2, v0, v1
11962 + const/4 v1, 0x6
11964 + const-string v2, "line1Number"
11966 + aput-object v2, v0, v1
11968 + const/4 v1, 0x7
11970 + const-string v2, "locationGpsSetting"
11972 + aput-object v2, v0, v1
11974 + const/16 v1, 0x8
11976 + const-string v2, "locationGpsLat"
11978 + aput-object v2, v0, v1
11980 + const/16 v1, 0x9
11982 + const-string v2, "locationGpsLon"
11984 + aput-object v2, v0, v1
11986 + const/16 v1, 0xa
11988 + const-string v2, "locationNetworkSetting"
11990 + aput-object v2, v0, v1
11992 + const/16 v1, 0xb
11994 + const-string v2, "locationNetworkLat"
11996 + aput-object v2, v0, v1
11998 + const/16 v1, 0xc
12000 + const-string v2, "locationNetworkLon"
12002 + aput-object v2, v0, v1
12004 + const/16 v1, 0xd
12006 + const-string/jumbo v2, "networkInfoSetting"
12008 + aput-object v2, v0, v1
12010 + const/16 v1, 0xe
12012 + const-string/jumbo v2, "simInfoSetting"
12014 + aput-object v2, v0, v1
12016 + const/16 v1, 0xf
12018 + const-string/jumbo v2, "simSerialNumberSetting"
12020 + aput-object v2, v0, v1
12022 + const/16 v1, 0x10
12024 + const-string/jumbo v2, "simSerialNumber"
12026 + aput-object v2, v0, v1
12028 + const/16 v1, 0x11
12030 + const-string/jumbo v2, "subscriberIdSetting"
12032 + aput-object v2, v0, v1
12034 + const/16 v1, 0x12
12036 + const-string/jumbo v2, "subscriberId"
12038 + aput-object v2, v0, v1
12040 + const/16 v1, 0x13
12042 + const-string v2, "accountsSetting"
12044 + aput-object v2, v0, v1
12046 + const-string v1, "accountsAuthTokensSetting"
12048 + aput-object v1, v0, v3
12050 + const/16 v1, 0x15
12052 + const-string/jumbo v2, "outgoingCallsSetting"
12054 + aput-object v2, v0, v1
12056 + const/16 v1, 0x16
12058 + const-string v2, "incomingCallsSetting"
12060 + aput-object v2, v0, v1
12062 + const/16 v1, 0x17
12064 + const-string v2, "contactsSetting"
12066 + aput-object v2, v0, v1
12068 + const/16 v1, 0x18
12070 + const-string v2, "calendarSetting"
12072 + aput-object v2, v0, v1
12074 + const/16 v1, 0x19
12076 + const-string/jumbo v2, "mmsSetting"
12078 + aput-object v2, v0, v1
12080 + const/16 v1, 0x1a
12082 + const-string/jumbo v2, "smsSetting"
12084 + aput-object v2, v0, v1
12086 + const/16 v1, 0x1b
12088 + const-string v2, "callLogSetting"
12090 + aput-object v2, v0, v1
12092 + const/16 v1, 0x1c
12094 + const-string v2, "bookmarksSetting"
12096 + aput-object v2, v0, v1
12098 + const/16 v1, 0x1d
12100 + const-string/jumbo v2, "systemLogsSetting"
12102 + aput-object v2, v0, v1
12104 + const/16 v1, 0x1e
12106 + const-string v2, "externalStorageSetting"
12108 + aput-object v2, v0, v1
12110 + const/16 v1, 0x1f
12112 + const-string v2, "cameraSetting"
12114 + aput-object v2, v0, v1
12116 + const/16 v1, 0x20
12118 + const-string/jumbo v2, "recordAudioSetting"
12120 + aput-object v2, v0, v1
12122 + const/16 v1, 0x21
12124 + const-string/jumbo v2, "notificationSetting"
12126 + aput-object v2, v0, v1
12128 + const/16 v1, 0x22
12130 + const-string v2, "intentBootCompletedSetting"
12132 + aput-object v2, v0, v1
12134 + const/16 v1, 0x23
12136 + const-string/jumbo v2, "smsSendSetting"
12138 + aput-object v2, v0, v1
12140 + const/16 v1, 0x24
12142 + const-string/jumbo v2, "phoneCallSetting"
12144 + aput-object v2, v0, v1
12146 + const/16 v1, 0x25
12148 + const-string v2, "ipTableProtectSetting"
12150 + aput-object v2, v0, v1
12152 + const/16 v1, 0x26
12154 + const-string v2, "iccAccessSetting"
12156 + aput-object v2, v0, v1
12158 + const/16 v1, 0x27
12160 + const-string v2, "addOnManagementSetting"
12162 + aput-object v2, v0, v1
12164 + const/16 v1, 0x28
12166 + const-string v2, "androidIdSetting"
12168 + aput-object v2, v0, v1
12170 + const/16 v1, 0x29
12172 + const-string v2, "androidId"
12174 + aput-object v2, v0, v1
12176 + const/16 v1, 0x2a
12178 + const-string/jumbo v2, "wifiInfoSetting"
12180 + aput-object v2, v0, v1
12182 + const/16 v1, 0x2b
12184 + const-string/jumbo v2, "switchConnectivitySetting"
12186 + aput-object v2, v0, v1
12188 + const/16 v1, 0x2c
12190 + const-string/jumbo v2, "sendMmsSetting"
12192 + aput-object v2, v0, v1
12194 + const/16 v1, 0x2d
12196 + const-string v2, "forceOnlineState"
12198 + aput-object v2, v0, v1
12200 + const/16 v1, 0x2e
12202 + const-string/jumbo v2, "switchWifiStateSetting"
12204 + aput-object v2, v0, v1
12206 + sput-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->DATABASE_FIELDS:[Ljava/lang/String;
12208 + return-void
12209 +.end method
12211 +.method public constructor <init>(Landroid/content/Context;)V
12212 + .registers 4
12214 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
12216 + iput-object p1, p0, Landroid/privacy/PrivacyPersistenceAdapter;->mContext:Landroid/content/Context;
12218 + new-instance v0, Ljava/io/File;
12220 + const-string v1, "/data/system/"
12222 + invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
12224 + invoke-virtual {v0}, Ljava/io/File;->canWrite()Z
12226 + move-result v0
12228 + if-eqz v0, :cond_6c
12230 + new-instance v0, Ljava/io/File;
12232 + const-string v1, "/data/system/privacy.db"
12234 + invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
12236 + invoke-virtual {v0}, Ljava/io/File;->exists()Z
12238 + move-result v0
12240 + if-eqz v0, :cond_2c
12242 + new-instance v0, Ljava/io/File;
12244 + const-string v1, "/data/system/privacy"
12246 + invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
12248 + invoke-virtual {v0}, Ljava/io/File;->exists()Z
12250 + move-result v0
12252 + if-nez v0, :cond_5e
12254 + :cond_2c
12255 + sget-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
12257 + invoke-interface {v0}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
12259 + move-result-object v0
12261 + invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V
12263 + :try_start_35
12264 + new-instance v0, Ljava/io/File;
12266 + const-string v1, "/data/system/privacy.db"
12268 + invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
12270 + invoke-virtual {v0}, Ljava/io/File;->exists()Z
12272 + move-result v0
12274 + if-nez v0, :cond_45
12276 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->createDatabase()V
12278 + :cond_45
12279 + new-instance v0, Ljava/io/File;
12281 + const-string v1, "/data/system/privacy"
12283 + invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
12285 + invoke-virtual {v0}, Ljava/io/File;->exists()Z
12287 + move-result v0
12289 + if-nez v0, :cond_55
12291 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->createSettingsDir()V
12292 + :try_end_55
12293 + .catchall {:try_start_35 .. :try_end_55} :catchall_6d
12295 + :cond_55
12296 + sget-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
12298 + invoke-interface {v0}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
12300 + move-result-object v0
12302 + invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V
12304 + :cond_5e
12305 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->getDbVersion()I
12307 + move-result v0
12309 + sput v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbVersion:I
12311 + sget v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbVersion:I
12313 + const/4 v1, 0x4
12315 + if-ge v0, v1, :cond_6c
12317 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->upgradeDatabase()V
12319 + :cond_6c
12320 + return-void
12322 + :catchall_6d
12323 + move-exception v0
12325 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
12327 + invoke-interface {v1}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
12329 + move-result-object v1
12331 + invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V
12333 + throw v0
12334 +.end method
12336 +.method private closeIdleDatabase()V
12337 + .registers 3
12339 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
12341 + monitor-enter v1
12343 + :try_start_3
12344 + sget-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
12346 + sget-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
12348 + invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
12350 + move-result v0
12352 + add-int/lit8 v0, v0, -0x1
12354 + invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
12356 + move-result-object v0
12358 + sput-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
12360 + sget-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
12362 + invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
12364 + move-result v0
12366 + if-nez v0, :cond_27
12368 + iget-object v0, p0, Landroid/privacy/PrivacyPersistenceAdapter;->mDb:Landroid/database/sqlite/SQLiteDatabase;
12370 + if-eqz v0, :cond_27
12372 + iget-object v0, p0, Landroid/privacy/PrivacyPersistenceAdapter;->mDb:Landroid/database/sqlite/SQLiteDatabase;
12374 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z
12376 + move-result v0
12378 + if-eqz v0, :cond_27
12380 + :cond_27
12381 + monitor-exit v1
12383 + return-void
12385 + :catchall_29
12386 + move-exception v0
12388 + monitor-exit v1
12389 + :try_end_2b
12390 + .catchall {:try_start_3 .. :try_end_2b} :catchall_29
12392 + throw v0
12393 +.end method
12395 +.method private createDatabase()V
12396 + .registers 6
12398 + const-string v2, "PrivacyPersistenceAdapter"
12400 + const-string v3, "createDatabase - creating privacy database file"
12402 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
12404 + :try_start_7
12405 + const-string v2, "/data/system/privacy.db"
12407 + const/4 v3, 0x0
12409 + const/high16 v4, 0x1000
12411 + invoke-static {v2, v3, v4}, Landroid/database/sqlite/SQLiteDatabase;->openDatabase(Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;I)Landroid/database/sqlite/SQLiteDatabase;
12413 + move-result-object v0
12415 + const-string v2, "PrivacyPersistenceAdapter"
12417 + const-string v3, "createDatabase - creating privacy database"
12419 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
12421 + 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);"
12423 + invoke-virtual {v0, v2}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
12425 + const-string v2, "CREATE TABLE IF NOT EXISTS allowed_contacts ( settings_id, contact_id, PRIMARY KEY(settings_id, contact_id) );"
12427 + invoke-virtual {v0, v2}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
12429 + const-string v2, "CREATE TABLE IF NOT EXISTS map ( name TEXT PRIMARY KEY, value TEXT );"
12431 + invoke-virtual {v0, v2}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
12433 + const-string v2, "INSERT OR REPLACE INTO map (name, value) VALUES (\"db_version\", 4);"
12435 + invoke-virtual {v0, v2}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
12437 + const-string v2, "INSERT OR REPLACE INTO map (name, value) VALUES (\"enabled\", \"1\");"
12439 + invoke-virtual {v0, v2}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
12441 + const-string v2, "INSERT OR REPLACE INTO map (name, value) VALUES (\"notifications_enabled\", \"1\");"
12443 + invoke-virtual {v0, v2}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
12445 + if-eqz v0, :cond_40
12447 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z
12449 + move-result v2
12451 + if-eqz v2, :cond_40
12453 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->close()V
12454 + :try_end_40
12455 + .catch Landroid/database/SQLException; {:try_start_7 .. :try_end_40} :catch_41
12457 + :cond_40
12458 + :goto_40
12459 + return-void
12461 + :catch_41
12462 + move-exception v1
12464 + const-string v2, "PrivacyPersistenceAdapter"
12466 + const-string v3, "createDatabase - failed to create privacy database"
12468 + invoke-static {v2, v3, v1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
12470 + goto :goto_40
12471 +.end method
12473 +.method private createSettingsDir()V
12474 + .registers 5
12476 + const/4 v3, 0x1
12478 + const/4 v2, 0x0
12480 + new-instance v0, Ljava/io/File;
12482 + const-string v1, "/data/system/privacy/"
12484 + invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
12486 + invoke-virtual {v0}, Ljava/io/File;->mkdirs()Z
12488 + invoke-virtual {v0, v3, v2}, Ljava/io/File;->setReadable(ZZ)Z
12490 + invoke-virtual {v0, v3, v2}, Ljava/io/File;->setExecutable(ZZ)Z
12492 + return-void
12493 +.end method
12495 +.method private deleteRecursive(Ljava/io/File;)V
12496 + .registers 7
12498 + invoke-virtual {p1}, Ljava/io/File;->isDirectory()Z
12500 + move-result v4
12502 + if-eqz v4, :cond_16
12504 + invoke-virtual {p1}, Ljava/io/File;->listFiles()[Ljava/io/File;
12506 + move-result-object v0
12508 + array-length v3, v0
12510 + const/4 v2, 0x0
12512 + :goto_c
12513 + if-ge v2, v3, :cond_16
12515 + aget-object v1, v0, v2
12517 + invoke-direct {p0, v1}, Landroid/privacy/PrivacyPersistenceAdapter;->deleteRecursive(Ljava/io/File;)V
12519 + add-int/lit8 v2, v2, 0x1
12521 + goto :goto_c
12523 + :cond_16
12524 + invoke-virtual {p1}, Ljava/io/File;->delete()Z
12526 + return-void
12527 +.end method
12529 +.method private declared-synchronized getDatabase()Landroid/database/sqlite/SQLiteDatabase;
12530 + .registers 4
12532 + monitor-enter p0
12534 + :try_start_1
12535 + iget-object v0, p0, Landroid/privacy/PrivacyPersistenceAdapter;->mDb:Landroid/database/sqlite/SQLiteDatabase;
12537 + if-eqz v0, :cond_15
12539 + iget-object v0, p0, Landroid/privacy/PrivacyPersistenceAdapter;->mDb:Landroid/database/sqlite/SQLiteDatabase;
12541 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z
12543 + move-result v0
12545 + if-eqz v0, :cond_15
12547 + iget-object v0, p0, Landroid/privacy/PrivacyPersistenceAdapter;->mDb:Landroid/database/sqlite/SQLiteDatabase;
12549 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->isReadOnly()Z
12551 + move-result v0
12553 + if-eqz v0, :cond_1f
12555 + :cond_15
12556 + const-string v0, "/data/system/privacy.db"
12558 + const/4 v1, 0x0
12560 + const/4 v2, 0x0
12562 + invoke-static {v0, v1, v2}, Landroid/database/sqlite/SQLiteDatabase;->openDatabase(Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;I)Landroid/database/sqlite/SQLiteDatabase;
12564 + move-result-object v0
12566 + iput-object v0, p0, Landroid/privacy/PrivacyPersistenceAdapter;->mDb:Landroid/database/sqlite/SQLiteDatabase;
12568 + :cond_1f
12569 + iget-object v0, p0, Landroid/privacy/PrivacyPersistenceAdapter;->mDb:Landroid/database/sqlite/SQLiteDatabase;
12570 + :try_end_21
12571 + .catchall {:try_start_1 .. :try_end_21} :catchall_23
12573 + monitor-exit p0
12575 + return-object v0
12577 + :catchall_23
12578 + move-exception v0
12580 + monitor-exit p0
12582 + throw v0
12583 +.end method
12585 +.method private getDbVersion()I
12586 + .registers 6
12588 + const/4 v2, 0x1
12590 + const-string v3, "db_version"
12592 + invoke-virtual {p0, v3}, Landroid/privacy/PrivacyPersistenceAdapter;->getValue(Ljava/lang/String;)Ljava/lang/String;
12594 + move-result-object v1
12596 + if-nez v1, :cond_11
12598 + const-string v3, "PrivacyPersistenceAdapter"
12600 + const-string v4, "PrivacyPersistenceAdapter:getDbVersion: getValue returned null; assuming version = 1"
12602 + invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
12604 + :goto_10
12605 + return v2
12607 + :cond_11
12608 + :try_start_11
12609 + invoke-static {v1}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
12610 + :try_end_14
12611 + .catch Ljava/lang/Exception; {:try_start_11 .. :try_end_14} :catch_16
12613 + move-result v2
12615 + goto :goto_10
12617 + :catch_16
12618 + move-exception v0
12620 + const-string v3, "PrivacyPersistenceAdapter"
12622 + const-string v4, "PrivacyPersistenceAdapter:getDbVersion: failed to parse database version; returning 1"
12624 + invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
12626 + goto :goto_10
12627 +.end method
12629 +.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;
12630 + .registers 16
12631 + .annotation system Ldalvik/annotation/Throws;
12632 + value = {
12633 + Ljava/lang/Exception;
12635 + .end annotation
12637 + const/4 v0, 0x0
12639 + const/4 v3, 0x0
12641 + const/4 v2, 0x0
12643 + :goto_3
12644 + if-nez v3, :cond_27
12646 + const/4 v4, 0x5
12648 + if-ge v2, v4, :cond_27
12650 + if-eqz v0, :cond_d
12652 + :try_start_a
12653 + invoke-interface {v0}, Landroid/database/Cursor;->close()V
12655 + :cond_d
12656 + 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;
12657 + :try_end_10
12658 + .catch Ljava/lang/IllegalStateException; {:try_start_a .. :try_end_10} :catch_15
12660 + move-result-object v0
12662 + const/4 v3, 0x1
12664 + :goto_12
12665 + add-int/lit8 v2, v2, 0x1
12667 + goto :goto_3
12669 + :catch_15
12670 + move-exception v1
12672 + const/4 v3, 0x0
12674 + if-eqz p1, :cond_22
12676 + invoke-virtual {p1}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z
12678 + move-result v4
12680 + if-eqz v4, :cond_22
12682 + invoke-virtual {p1}, Landroid/database/sqlite/SQLiteDatabase;->close()V
12684 + :cond_22
12685 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->getDatabase()Landroid/database/sqlite/SQLiteDatabase;
12687 + move-result-object p1
12689 + goto :goto_12
12691 + :cond_27
12692 + if-nez v3, :cond_32
12694 + new-instance v4, Ljava/lang/Exception;
12696 + const-string/jumbo v5, "query - failed to execute query on the DB"
12698 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
12700 + throw v4
12702 + :cond_32
12703 + return-object v0
12704 +.end method
12706 +.method private rawQuery(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;)Landroid/database/Cursor;
12707 + .registers 9
12708 + .annotation system Ldalvik/annotation/Throws;
12709 + value = {
12710 + Ljava/lang/Exception;
12712 + .end annotation
12714 + const/4 v0, 0x0
12716 + const/4 v3, 0x0
12718 + const/4 v2, 0x0
12720 + :goto_3
12721 + if-nez v3, :cond_28
12723 + const/4 v4, 0x5
12725 + if-ge v2, v4, :cond_28
12727 + if-eqz v0, :cond_d
12729 + :try_start_a
12730 + invoke-interface {v0}, Landroid/database/Cursor;->close()V
12732 + :cond_d
12733 + const/4 v4, 0x0
12735 + invoke-virtual {p1, p2, v4}, Landroid/database/sqlite/SQLiteDatabase;->rawQuery(Ljava/lang/String;[Ljava/lang/String;)Landroid/database/Cursor;
12736 + :try_end_11
12737 + .catch Ljava/lang/IllegalStateException; {:try_start_a .. :try_end_11} :catch_16
12739 + move-result-object v0
12741 + const/4 v3, 0x1
12743 + :goto_13
12744 + add-int/lit8 v2, v2, 0x1
12746 + goto :goto_3
12748 + :catch_16
12749 + move-exception v1
12751 + const/4 v3, 0x0
12753 + if-eqz p1, :cond_23
12755 + invoke-virtual {p1}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z
12757 + move-result v4
12759 + if-eqz v4, :cond_23
12761 + invoke-virtual {p1}, Landroid/database/sqlite/SQLiteDatabase;->close()V
12763 + :cond_23
12764 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->getDatabase()Landroid/database/sqlite/SQLiteDatabase;
12766 + move-result-object p1
12768 + goto :goto_13
12770 + :cond_28
12771 + if-nez v3, :cond_33
12773 + new-instance v4, Ljava/lang/Exception;
12775 + const-string/jumbo v5, "query - failed to execute query on the DB"
12777 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
12779 + throw v4
12781 + :cond_33
12782 + return-object v0
12783 +.end method
12785 +.method private upgradeDatabase()V
12786 + .registers 18
12788 + sget v14, Landroid/privacy/PrivacyPersistenceAdapter;->sDbVersion:I
12790 + const/4 v15, 0x4
12792 + if-ge v14, v15, :cond_31
12794 + const-string v14, "PrivacyPersistenceAdapter"
12796 + new-instance v15, Ljava/lang/StringBuilder;
12798 + invoke-direct {v15}, Ljava/lang/StringBuilder;-><init>()V
12800 + const-string v16, "PrivacyPersistenceAdapter:upgradeDatabase - upgrading DB from version "
12802 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
12804 + move-result-object v15
12806 + sget v16, Landroid/privacy/PrivacyPersistenceAdapter;->sDbVersion:I
12808 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
12810 + move-result-object v15
12812 + const-string v16, " to "
12814 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
12816 + move-result-object v15
12818 + const/16 v16, 0x4
12820 + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
12822 + move-result-object v15
12824 + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
12826 + move-result-object v15
12828 + invoke-static {v14, v15}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
12830 + const/4 v3, 0x0
12832 + sget v14, Landroid/privacy/PrivacyPersistenceAdapter;->sDbVersion:I
12834 + packed-switch v14, :pswitch_data_12c
12836 + :cond_31
12837 + :goto_31
12838 + return-void
12840 + :pswitch_32
12841 + :try_start_32
12842 + sget-object v15, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
12844 + monitor-enter v15
12845 + :try_end_35
12846 + .catchall {:try_start_32 .. :try_end_35} :catchall_11e
12847 + .catch Landroid/database/SQLException; {:try_start_32 .. :try_end_35} :catch_e6
12849 + :try_start_35
12850 + sget-object v14, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
12852 + sget-object v14, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
12854 + invoke-virtual {v14}, Ljava/lang/Integer;->intValue()I
12856 + move-result v14
12858 + add-int/lit8 v14, v14, 0x1
12860 + invoke-static {v14}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
12862 + move-result-object v14
12864 + sput-object v14, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
12866 + monitor-exit v15
12867 + :try_end_46
12868 + .catchall {:try_start_35 .. :try_end_46} :catchall_e3
12870 + :try_start_46
12871 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->getDatabase()Landroid/database/sqlite/SQLiteDatabase;
12873 + move-result-object v3
12875 + if-eqz v3, :cond_109
12877 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z
12879 + move-result v14
12881 + if-eqz v14, :cond_109
12883 + sget-object v14, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
12885 + invoke-interface {v14}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
12887 + move-result-object v14
12889 + invoke-interface {v14}, Ljava/util/concurrent/locks/Lock;->lock()V
12890 + :try_end_5b
12891 + .catchall {:try_start_46 .. :try_end_5b} :catchall_11e
12892 + .catch Landroid/database/SQLException; {:try_start_46 .. :try_end_5b} :catch_e6
12894 + :try_start_5b
12895 + sget v14, Landroid/privacy/PrivacyPersistenceAdapter;->sDbVersion:I
12897 + const/4 v15, 0x4
12899 + if-ge v14, v15, :cond_100
12901 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->beginTransaction()V
12902 + :try_end_63
12903 + .catchall {:try_start_5b .. :try_end_63} :catchall_113
12905 + :try_start_63
12906 + const-string v14, "DROP TABLE IF EXISTS version;"
12908 + invoke-virtual {v3, v14}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
12910 + const-string v14, "CREATE TABLE IF NOT EXISTS allowed_contacts ( settings_id, contact_id, PRIMARY KEY(settings_id, contact_id) );"
12912 + invoke-virtual {v3, v14}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
12914 + const-string v14, "CREATE TABLE IF NOT EXISTS map ( name TEXT PRIMARY KEY, value TEXT );"
12916 + invoke-virtual {v3, v14}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
12918 + const-string v14, "INSERT OR REPLACE INTO map (name, value) VALUES (\"db_version\", 4);"
12920 + invoke-virtual {v3, v14}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
12922 + const-string v14, "INSERT OR REPLACE INTO map (name, value) VALUES (\"enabled\", \"1\");"
12924 + invoke-virtual {v3, v14}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
12926 + const-string v14, "INSERT OR REPLACE INTO map (name, value) VALUES (\"notifications_enabled\", \"1\");"
12928 + invoke-virtual {v3, v14}, Landroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
12930 + invoke-virtual/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->purgeSettings()Z
12932 + new-instance v11, Ljava/io/File;
12934 + const-string v14, "/data/system/privacy"
12936 + invoke-direct {v11, v14}, Ljava/io/File;-><init>(Ljava/lang/String;)V
12938 + invoke-virtual {v11}, Ljava/io/File;->listFiles()[Ljava/io/File;
12940 + move-result-object v1
12942 + array-length v7, v1
12944 + const/4 v5, 0x0
12946 + move v6, v5
12948 + :goto_92
12949 + if-ge v6, v7, :cond_f7
12951 + aget-object v10, v1, v6
12953 + invoke-virtual {v10}, Ljava/io/File;->listFiles()[Ljava/io/File;
12955 + move-result-object v2
12957 + array-length v8, v2
12959 + const/4 v5, 0x0
12961 + :goto_9c
12962 + if-ge v5, v8, :cond_f3
12964 + aget-object v13, v2, v5
12966 + invoke-virtual {v13}, Ljava/io/File;->isDirectory()Z
12968 + move-result v14
12970 + if-eqz v14, :cond_e0
12972 + invoke-virtual {v13}, Ljava/io/File;->listFiles()[Ljava/io/File;
12974 + move-result-object v12
12976 + const/4 v14, 0x0
12978 + aget-object v14, v12, v14
12980 + if-eqz v14, :cond_e0
12982 + new-instance v9, Ljava/io/File;
12984 + new-instance v14, Ljava/lang/StringBuilder;
12986 + invoke-direct {v14}, Ljava/lang/StringBuilder;-><init>()V
12988 + invoke-virtual {v14, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
12990 + move-result-object v14
12992 + const-string v15, "/"
12994 + invoke-virtual {v14, v15}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
12996 + move-result-object v14
12998 + const/4 v15, 0x0
13000 + aget-object v15, v12, v15
13002 + invoke-virtual {v15}, Ljava/io/File;->getName()Ljava/lang/String;
13004 + move-result-object v15
13006 + invoke-virtual {v14, v15}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13008 + move-result-object v14
13010 + invoke-virtual {v14}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
13012 + move-result-object v14
13014 + invoke-direct {v9, v14}, Ljava/io/File;-><init>(Ljava/lang/String;)V
13016 + invoke-virtual {v9}, Ljava/io/File;->delete()Z
13018 + const/4 v14, 0x0
13020 + aget-object v14, v12, v14
13022 + invoke-virtual {v14, v9}, Ljava/io/File;->renameTo(Ljava/io/File;)Z
13024 + move-object/from16 v0, p0
13026 + invoke-direct {v0, v13}, Landroid/privacy/PrivacyPersistenceAdapter;->deleteRecursive(Ljava/io/File;)V
13027 + :try_end_e0
13028 + .catchall {:try_start_63 .. :try_end_e0} :catchall_10e
13030 + :cond_e0
13031 + add-int/lit8 v5, v5, 0x1
13033 + goto :goto_9c
13035 + :catchall_e3
13036 + move-exception v14
13038 + :try_start_e4
13039 + monitor-exit v15
13040 + :try_end_e5
13041 + .catchall {:try_start_e4 .. :try_end_e5} :catchall_e3
13043 + :try_start_e5
13044 + throw v14
13045 + :try_end_e6
13046 + .catchall {:try_start_e5 .. :try_end_e6} :catchall_11e
13047 + .catch Landroid/database/SQLException; {:try_start_e5 .. :try_end_e6} :catch_e6
13049 + :catch_e6
13050 + move-exception v4
13052 + :try_start_e7
13053 + const-string v14, "PrivacyPersistenceAdapter"
13055 + const-string v15, "PrivacyPersistenceAdapter:upgradeDatabase: SQLException occurred performing database upgrade"
13057 + invoke-static {v14, v15, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
13058 + :try_end_ee
13059 + .catchall {:try_start_e7 .. :try_end_ee} :catchall_11e
13061 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
13063 + goto/16 :goto_31
13065 + :cond_f3
13066 + add-int/lit8 v5, v6, 0x1
13068 + move v6, v5
13070 + goto :goto_92
13072 + :cond_f7
13073 + :try_start_f7
13074 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->setTransactionSuccessful()V
13076 + const/4 v14, 0x4
13078 + sput v14, Landroid/privacy/PrivacyPersistenceAdapter;->sDbVersion:I
13079 + :try_end_fd
13080 + .catchall {:try_start_f7 .. :try_end_fd} :catchall_10e
13082 + :try_start_fd
13083 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
13084 + :try_end_100
13085 + .catchall {:try_start_fd .. :try_end_100} :catchall_113
13087 + :cond_100
13088 + :try_start_100
13089 + sget-object v14, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
13091 + invoke-interface {v14}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
13093 + move-result-object v14
13095 + invoke-interface {v14}, Ljava/util/concurrent/locks/Lock;->unlock()V
13096 + :try_end_109
13097 + .catchall {:try_start_100 .. :try_end_109} :catchall_11e
13098 + .catch Landroid/database/SQLException; {:try_start_100 .. :try_end_109} :catch_e6
13100 + :cond_109
13101 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
13103 + goto/16 :goto_31
13105 + :catchall_10e
13106 + move-exception v14
13108 + :try_start_10f
13109 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
13111 + throw v14
13112 + :try_end_113
13113 + .catchall {:try_start_10f .. :try_end_113} :catchall_113
13115 + :catchall_113
13116 + move-exception v14
13118 + :try_start_114
13119 + sget-object v15, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
13121 + invoke-interface {v15}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
13123 + move-result-object v15
13125 + invoke-interface {v15}, Ljava/util/concurrent/locks/Lock;->unlock()V
13127 + throw v14
13128 + :try_end_11e
13129 + .catchall {:try_start_114 .. :try_end_11e} :catchall_11e
13130 + .catch Landroid/database/SQLException; {:try_start_114 .. :try_end_11e} :catch_e6
13132 + :catchall_11e
13133 + move-exception v14
13135 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
13137 + throw v14
13139 + :pswitch_123
13140 + const-string v14, "PrivacyPersistenceAdapter"
13142 + const-string v15, "PrivacyPersistenceAdapter:upgradeDatabase: Database is already at the most recent version"
13144 + invoke-static {v14, v15}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
13146 + goto/16 :goto_31
13148 + :pswitch_data_12c
13149 + .packed-switch 0x1
13150 + :pswitch_32
13151 + :pswitch_32
13152 + :pswitch_32
13153 + :pswitch_123
13154 + .end packed-switch
13155 +.end method
13157 +.method private writeExternalSettings(Ljava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)Z
13158 + .registers 12
13159 + .annotation system Ldalvik/annotation/Throws;
13160 + value = {
13161 + Ljava/lang/Exception;
13163 + .end annotation
13165 + const/4 v7, 0x1
13167 + new-instance v2, Ljava/io/File;
13169 + new-instance v5, Ljava/lang/StringBuilder;
13171 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
13173 + const-string v6, "/data/system/privacy/"
13175 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13177 + move-result-object v5
13179 + invoke-virtual {v5, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13181 + move-result-object v5
13183 + const-string v6, "/"
13185 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13187 + move-result-object v5
13189 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
13191 + move-result-object v5
13193 + invoke-direct {v2, v5}, Ljava/io/File;-><init>(Ljava/lang/String;)V
13195 + new-instance v3, Ljava/io/File;
13197 + new-instance v5, Ljava/lang/StringBuilder;
13199 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
13201 + const-string v6, "/data/system/privacy/"
13203 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13205 + move-result-object v5
13207 + invoke-virtual {v5, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13209 + move-result-object v5
13211 + const-string v6, "/"
13213 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13215 + move-result-object v5
13217 + const-string v6, "/"
13219 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13221 + move-result-object v5
13223 + invoke-virtual {v5, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13225 + move-result-object v5
13227 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
13229 + move-result-object v5
13231 + invoke-direct {v3, v5}, Ljava/io/File;-><init>(Ljava/lang/String;)V
13233 + const/4 v1, 0x0
13235 + sget-object v5, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
13237 + invoke-interface {v5}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
13239 + move-result-object v5
13241 + invoke-interface {v5}, Ljava/util/concurrent/locks/Lock;->lock()V
13243 + :try_start_51
13244 + invoke-virtual {v2}, Ljava/io/File;->mkdirs()Z
13246 + const/4 v5, 0x1
13248 + const/4 v6, 0x0
13250 + invoke-virtual {v2, v5, v6}, Ljava/io/File;->setReadable(ZZ)Z
13252 + const/4 v5, 0x1
13254 + const/4 v6, 0x0
13256 + invoke-virtual {v2, v5, v6}, Ljava/io/File;->setExecutable(ZZ)Z
13258 + invoke-virtual {v3}, Ljava/io/File;->createNewFile()Z
13260 + const/4 v5, 0x1
13262 + const/4 v6, 0x0
13264 + invoke-virtual {v3, v5, v6}, Ljava/io/File;->setReadable(ZZ)Z
13266 + new-instance v4, Ljava/io/OutputStreamWriter;
13268 + new-instance v5, Ljava/io/FileOutputStream;
13270 + invoke-direct {v5, v3}, Ljava/io/FileOutputStream;-><init>(Ljava/io/File;)V
13272 + invoke-direct {v4, v5}, Ljava/io/OutputStreamWriter;-><init>(Ljava/io/OutputStream;)V
13274 + const-string/jumbo v5, "systemLogsSetting"
13276 + invoke-virtual {p1, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
13278 + move-result v5
13280 + if-eqz v5, :cond_a4
13282 + new-instance v5, Ljava/lang/StringBuilder;
13284 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
13286 + invoke-virtual {p3}, Landroid/privacy/PrivacySettings;->getSystemLogsSetting()B
13288 + move-result v6
13290 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
13292 + move-result-object v5
13294 + const-string v6, ""
13296 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13298 + move-result-object v5
13300 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
13302 + move-result-object v5
13304 + invoke-virtual {v4, v5}, Ljava/io/OutputStreamWriter;->append(Ljava/lang/CharSequence;)Ljava/io/Writer;
13306 + :cond_93
13307 + :goto_93
13308 + invoke-virtual {v4}, Ljava/io/OutputStreamWriter;->flush()V
13310 + invoke-virtual {v4}, Ljava/io/OutputStreamWriter;->close()V
13311 + :try_end_99
13312 + .catchall {:try_start_51 .. :try_end_99} :catchall_d1
13313 + .catch Ljava/io/IOException; {:try_start_51 .. :try_end_99} :catch_c7
13315 + const/4 v1, 0x1
13317 + sget-object v5, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
13319 + invoke-interface {v5}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
13321 + move-result-object v5
13323 + invoke-interface {v5}, Ljava/util/concurrent/locks/Lock;->unlock()V
13325 + return v7
13327 + :cond_a4
13328 + :try_start_a4
13329 + const-string v5, "ipTableProtectSetting"
13331 + invoke-virtual {p1, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
13333 + move-result v5
13335 + if-eqz v5, :cond_93
13337 + new-instance v5, Ljava/lang/StringBuilder;
13339 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
13341 + invoke-virtual {p3}, Landroid/privacy/PrivacySettings;->getIpTableProtectSetting()B
13343 + move-result v6
13345 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
13347 + move-result-object v5
13349 + const-string v6, ""
13351 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13353 + move-result-object v5
13355 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
13357 + move-result-object v5
13359 + invoke-virtual {v4, v5}, Ljava/io/OutputStreamWriter;->append(Ljava/lang/CharSequence;)Ljava/io/Writer;
13360 + :try_end_c6
13361 + .catchall {:try_start_a4 .. :try_end_c6} :catchall_d1
13362 + .catch Ljava/io/IOException; {:try_start_a4 .. :try_end_c6} :catch_c7
13364 + goto :goto_93
13366 + :catch_c7
13367 + move-exception v0
13369 + :try_start_c8
13370 + new-instance v5, Ljava/lang/Exception;
13372 + const-string/jumbo v6, "saveSettings - could not write settings to file"
13374 + invoke-direct {v5, v6, v0}, Ljava/lang/Exception;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
13376 + throw v5
13377 + :try_end_d1
13378 + .catchall {:try_start_c8 .. :try_end_d1} :catchall_d1
13380 + :catchall_d1
13381 + move-exception v5
13383 + sget-object v6, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
13385 + invoke-interface {v6}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
13387 + move-result-object v6
13389 + invoke-interface {v6}, Ljava/util/concurrent/locks/Lock;->unlock()V
13391 + throw v5
13392 +.end method
13395 +# virtual methods
13396 +.method public deleteSettings(Ljava/lang/String;)Z
13397 + .registers 16
13399 + const/4 v11, 0x1
13401 + const/4 v0, 0x0
13403 + :try_start_2
13404 + sget-object v2, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
13406 + monitor-enter v2
13407 + :try_end_5
13408 + .catchall {:try_start_2 .. :try_end_5} :catchall_14d
13409 + .catch Landroid/database/sqlite/SQLiteException; {:try_start_2 .. :try_end_5} :catch_103
13410 + .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_5} :catch_140
13412 + :try_start_5
13413 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
13415 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
13417 + invoke-virtual {v1}, Ljava/lang/Integer;->intValue()I
13419 + move-result v1
13421 + add-int/lit8 v1, v1, 0x1
13423 + invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
13425 + move-result-object v1
13427 + sput-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
13429 + monitor-exit v2
13430 + :try_end_16
13431 + .catchall {:try_start_5 .. :try_end_16} :catchall_100
13433 + :try_start_16
13434 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->getDatabase()Landroid/database/sqlite/SQLiteDatabase;
13436 + move-result-object v0
13438 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
13440 + invoke-interface {v1}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
13442 + move-result-object v1
13444 + invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->lock()V
13445 + :try_end_23
13446 + .catchall {:try_start_16 .. :try_end_23} :catchall_14d
13447 + .catch Landroid/database/sqlite/SQLiteException; {:try_start_16 .. :try_end_23} :catch_103
13448 + .catch Ljava/lang/Exception; {:try_start_16 .. :try_end_23} :catch_140
13450 + :try_start_23
13451 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->beginTransaction()V
13452 + :try_end_26
13453 + .catchall {:try_start_23 .. :try_end_26} :catchall_135
13455 + :try_start_26
13456 + const-string/jumbo v1, "settings"
13458 + const/4 v2, 0x1
13460 + new-array v2, v2, [Ljava/lang/String;
13462 + const/4 v3, 0x0
13464 + const-string v4, "_id"
13466 + aput-object v4, v2, v3
13468 + const-string/jumbo v3, "packageName=?"
13470 + const/4 v4, 0x1
13472 + new-array v4, v4, [Ljava/lang/String;
13474 + const/4 v5, 0x0
13476 + aput-object p1, v4, v5
13478 + const/4 v5, 0x0
13480 + const/4 v6, 0x0
13482 + const/4 v7, 0x0
13484 + 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;
13486 + move-result-object v8
13488 + if-eqz v8, :cond_110
13490 + invoke-interface {v8}, Landroid/database/Cursor;->getCount()I
13492 + move-result v1
13494 + if-lez v1, :cond_110
13496 + invoke-interface {v8}, Landroid/database/Cursor;->moveToFirst()Z
13498 + move-result v1
13500 + if-eqz v1, :cond_110
13502 + const/4 v1, 0x0
13504 + invoke-interface {v8, v1}, Landroid/database/Cursor;->getInt(I)I
13506 + move-result v10
13508 + const-string v1, "allowed_contacts"
13510 + const-string/jumbo v2, "settings_id=?"
13512 + const/4 v3, 0x1
13514 + new-array v3, v3, [Ljava/lang/String;
13516 + const/4 v4, 0x0
13518 + invoke-static {v10}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;
13520 + move-result-object v5
13522 + aput-object v5, v3, v4
13524 + invoke-virtual {v0, v1, v2, v3}, Landroid/database/sqlite/SQLiteDatabase;->delete(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)I
13526 + invoke-interface {v8}, Landroid/database/Cursor;->close()V
13528 + :goto_69
13529 + const-string/jumbo v1, "settings"
13531 + const-string/jumbo v2, "packageName=?"
13533 + const/4 v3, 0x1
13535 + new-array v3, v3, [Ljava/lang/String;
13537 + const/4 v4, 0x0
13539 + aput-object p1, v3, v4
13541 + invoke-virtual {v0, v1, v2, v3}, Landroid/database/sqlite/SQLiteDatabase;->delete(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)I
13543 + move-result v1
13545 + if-nez v1, :cond_99
13547 + const-string v1, "PrivacyPersistenceAdapter"
13549 + new-instance v2, Ljava/lang/StringBuilder;
13551 + invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
13553 + const-string v3, "deleteSettings - database entry for "
13555 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13557 + move-result-object v2
13559 + invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13561 + move-result-object v2
13563 + const-string v3, " not found"
13565 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13567 + move-result-object v2
13569 + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
13571 + move-result-object v2
13573 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
13575 + :cond_99
13576 + new-instance v12, Ljava/io/File;
13578 + new-instance v1, Ljava/lang/StringBuilder;
13580 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
13582 + const-string v2, "/data/system/privacy/"
13584 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13586 + move-result-object v1
13588 + invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13590 + move-result-object v1
13592 + const-string v2, "/"
13594 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13596 + move-result-object v1
13598 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
13600 + move-result-object v1
13602 + invoke-direct {v12, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
13604 + new-instance v13, Ljava/io/File;
13606 + new-instance v1, Ljava/lang/StringBuilder;
13608 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
13610 + const-string v2, "/data/system/privacy/"
13612 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13614 + move-result-object v1
13616 + invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13618 + move-result-object v1
13620 + const-string v2, "/systemLogsSetting"
13622 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13624 + move-result-object v1
13626 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
13628 + move-result-object v1
13630 + invoke-direct {v13, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
13632 + invoke-virtual {v13}, Ljava/io/File;->delete()Z
13634 + invoke-virtual {v12}, Ljava/io/File;->list()[Ljava/lang/String;
13636 + move-result-object v1
13638 + if-eqz v1, :cond_e5
13640 + invoke-virtual {v12}, Ljava/io/File;->list()[Ljava/lang/String;
13642 + move-result-object v1
13644 + array-length v1, v1
13646 + if-nez v1, :cond_e8
13648 + :cond_e5
13649 + invoke-virtual {v12}, Ljava/io/File;->delete()Z
13651 + :cond_e8
13652 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->setTransactionSuccessful()V
13654 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->settingsCache:Landroid/util/LruCache;
13656 + invoke-virtual {v1, p1}, Landroid/util/LruCache;->remove(Ljava/lang/Object;)Ljava/lang/Object;
13657 + :try_end_f0
13658 + .catchall {:try_start_26 .. :try_end_f0} :catchall_130
13660 + :try_start_f0
13661 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
13662 + :try_end_f3
13663 + .catchall {:try_start_f0 .. :try_end_f3} :catchall_135
13665 + :try_start_f3
13666 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
13668 + invoke-interface {v1}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
13670 + move-result-object v1
13672 + invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V
13673 + :try_end_fc
13674 + .catchall {:try_start_f3 .. :try_end_fc} :catchall_14d
13675 + .catch Landroid/database/sqlite/SQLiteException; {:try_start_f3 .. :try_end_fc} :catch_103
13676 + .catch Ljava/lang/Exception; {:try_start_f3 .. :try_end_fc} :catch_140
13678 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
13680 + :goto_ff
13681 + return v11
13683 + :catchall_100
13684 + move-exception v1
13686 + :try_start_101
13687 + monitor-exit v2
13688 + :try_end_102
13689 + .catchall {:try_start_101 .. :try_end_102} :catchall_100
13691 + :try_start_102
13692 + throw v1
13693 + :try_end_103
13694 + .catchall {:try_start_102 .. :try_end_103} :catchall_14d
13695 + .catch Landroid/database/sqlite/SQLiteException; {:try_start_102 .. :try_end_103} :catch_103
13696 + .catch Ljava/lang/Exception; {:try_start_102 .. :try_end_103} :catch_140
13698 + :catch_103
13699 + move-exception v9
13701 + const/4 v11, 0x0
13703 + :try_start_105
13704 + const-string v1, "PrivacyPersistenceAdapter"
13706 + const-string v2, "PrivacyPersistenceAdapter:deleteSettings: failed to open the database, or open a transaction"
13708 + invoke-static {v1, v2, v9}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
13709 + :try_end_10c
13710 + .catchall {:try_start_105 .. :try_end_10c} :catchall_14d
13712 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
13714 + goto :goto_ff
13716 + :cond_110
13717 + :try_start_110
13718 + const-string v1, "PrivacyPersistenceAdapter"
13720 + new-instance v2, Ljava/lang/StringBuilder;
13722 + invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
13724 + const-string v3, "deleteSettings - database entry for "
13726 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13728 + move-result-object v2
13730 + invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13732 + move-result-object v2
13734 + const-string v3, " not found"
13736 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13738 + move-result-object v2
13740 + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
13742 + move-result-object v2
13744 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
13745 + :try_end_12e
13746 + .catchall {:try_start_110 .. :try_end_12e} :catchall_130
13748 + goto/16 :goto_69
13750 + :catchall_130
13751 + move-exception v1
13753 + :try_start_131
13754 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
13756 + throw v1
13757 + :try_end_135
13758 + .catchall {:try_start_131 .. :try_end_135} :catchall_135
13760 + :catchall_135
13761 + move-exception v1
13763 + :try_start_136
13764 + sget-object v2, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
13766 + invoke-interface {v2}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
13768 + move-result-object v2
13770 + invoke-interface {v2}, Ljava/util/concurrent/locks/Lock;->unlock()V
13772 + throw v1
13773 + :try_end_140
13774 + .catchall {:try_start_136 .. :try_end_140} :catchall_14d
13775 + .catch Landroid/database/sqlite/SQLiteException; {:try_start_136 .. :try_end_140} :catch_103
13776 + .catch Ljava/lang/Exception; {:try_start_136 .. :try_end_140} :catch_140
13778 + :catch_140
13779 + move-exception v9
13781 + const/4 v11, 0x0
13783 + :try_start_142
13784 + const-string v1, "PrivacyPersistenceAdapter"
13786 + const-string v2, "PrivacyPersistenceAdapter:deleteSettings - could not delete settings"
13788 + invoke-static {v1, v2, v9}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
13789 + :try_end_149
13790 + .catchall {:try_start_142 .. :try_end_149} :catchall_14d
13792 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
13794 + goto :goto_ff
13796 + :catchall_14d
13797 + move-exception v1
13799 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
13801 + throw v1
13802 +.end method
13804 +.method public getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
13805 + .registers 59
13807 + const/16 v56, 0x0
13809 + if-nez p1, :cond_c
13811 + new-instance v1, Ljava/security/InvalidParameterException;
13813 + const-string v4, "PrivacyPersistenceAdapter:getSettings:insufficient application identifier - package name is required"
13815 + invoke-direct {v1, v4}, Ljava/security/InvalidParameterException;-><init>(Ljava/lang/String;)V
13817 + throw v1
13819 + :cond_c
13820 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->settingsCache:Landroid/util/LruCache;
13822 + move-object/from16 v0, p1
13824 + invoke-virtual {v1, v0}, Landroid/util/LruCache;->get(Ljava/lang/Object;)Ljava/lang/Object;
13826 + move-result-object v53
13828 + check-cast v53, Landroid/privacy/PrivacySettingsStub;
13830 + if-eqz v53, :cond_28
13832 + move-object/from16 v0, v53
13834 + instance-of v1, v0, Landroid/privacy/PrivacySettings;
13836 + if-eqz v1, :cond_23
13838 + check-cast v53, Landroid/privacy/PrivacySettings;
13840 + move-object/from16 v3, v56
13842 + :goto_22
13843 + return-object v53
13845 + :cond_23
13846 + const/16 v53, 0x0
13848 + move-object/from16 v3, v56
13850 + goto :goto_22
13852 + :cond_28
13853 + :try_start_28
13854 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
13856 + monitor-enter v4
13857 + :try_end_2b
13858 + .catch Landroid/database/sqlite/SQLiteException; {:try_start_28 .. :try_end_2b} :catch_a8
13860 + :try_start_2b
13861 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
13863 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
13865 + invoke-virtual {v1}, Ljava/lang/Integer;->intValue()I
13867 + move-result v1
13869 + add-int/lit8 v1, v1, 0x1
13871 + invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
13873 + move-result-object v1
13875 + sput-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
13877 + monitor-exit v4
13878 + :try_end_3c
13879 + .catchall {:try_start_2b .. :try_end_3c} :catchall_a5
13881 + :try_start_3c
13882 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->getDatabase()Landroid/database/sqlite/SQLiteDatabase;
13883 + :try_end_3f
13884 + .catch Landroid/database/sqlite/SQLiteException; {:try_start_3c .. :try_end_3f} :catch_a8
13886 + move-result-object v2
13888 + const/16 v54, 0x0
13890 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
13892 + invoke-interface {v1}, Ljava/util/concurrent/locks/ReadWriteLock;->readLock()Ljava/util/concurrent/locks/Lock;
13894 + move-result-object v1
13896 + invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->lock()V
13898 + :try_start_4b
13899 + const-string/jumbo v3, "settings"
13901 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->DATABASE_FIELDS:[Ljava/lang/String;
13903 + const-string/jumbo v5, "packageName=?"
13905 + const/4 v1, 0x1
13907 + new-array v6, v1, [Ljava/lang/String;
13909 + const/4 v1, 0x0
13911 + aput-object p1, v6, v1
13913 + const/4 v7, 0x0
13915 + const/4 v8, 0x0
13917 + const/4 v9, 0x0
13919 + const/4 v10, 0x0
13921 + move-object/from16 v1, p0
13923 + 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;
13925 + move-result-object v54
13927 + if-eqz v54, :cond_367
13929 + invoke-interface/range {v54 .. v54}, Landroid/database/Cursor;->getCount()I
13931 + move-result v1
13933 + if-nez v1, :cond_b6
13935 + const-string v1, "PrivacyPersistenceAdapter"
13937 + new-instance v4, Ljava/lang/StringBuilder;
13939 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
13941 + const-string v5, "PrivacyPersistenceAdapter:getSettingsfound for package "
13943 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13945 + move-result-object v4
13947 + move-object/from16 v0, p1
13949 + invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
13951 + move-result-object v4
13953 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
13955 + move-result-object v4
13957 + invoke-static {v1, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
13958 + :try_end_85
13959 + .catchall {:try_start_4b .. :try_end_85} :catchall_35f
13960 + .catch Ljava/lang/Exception; {:try_start_4b .. :try_end_85} :catch_363
13962 + move-object/from16 v3, v56
13964 + :cond_87
13965 + :goto_87
13966 + if-eqz v3, :cond_351
13968 + :try_start_89
13969 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->settingsCache:Landroid/util/LruCache;
13971 + move-object/from16 v0, p1
13973 + invoke-virtual {v1, v0, v3}, Landroid/util/LruCache;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
13974 + :try_end_90
13975 + .catchall {:try_start_89 .. :try_end_90} :catchall_33e
13976 + .catch Ljava/lang/Exception; {:try_start_89 .. :try_end_90} :catch_307
13978 + :goto_90
13979 + if-eqz v54, :cond_95
13981 + invoke-interface/range {v54 .. v54}, Landroid/database/Cursor;->close()V
13983 + :cond_95
13984 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
13986 + invoke-interface {v1}, Ljava/util/concurrent/locks/ReadWriteLock;->readLock()Ljava/util/concurrent/locks/Lock;
13988 + move-result-object v1
13990 + invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V
13992 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
13994 + :goto_a1
13995 + move-object/from16 v53, v3
13997 + goto/16 :goto_22
13999 + :catchall_a5
14000 + move-exception v1
14002 + :try_start_a6
14003 + monitor-exit v4
14004 + :try_end_a7
14005 + .catchall {:try_start_a6 .. :try_end_a7} :catchall_a5
14007 + :try_start_a7
14008 + throw v1
14009 + :try_end_a8
14010 + .catch Landroid/database/sqlite/SQLiteException; {:try_start_a7 .. :try_end_a8} :catch_a8
14012 + :catch_a8
14013 + move-exception v55
14015 + const-string v1, "PrivacyPersistenceAdapter"
14017 + const-string v4, "getSettings - database could not be opened"
14019 + move-object/from16 v0, v55
14021 + invoke-static {v1, v4, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
14023 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
14025 + throw v55
14027 + :cond_b6
14028 + :try_start_b6
14029 + invoke-interface/range {v54 .. v54}, Landroid/database/Cursor;->getCount()I
14031 + move-result v1
14033 + const/4 v4, 0x1
14035 + if-le v1, v4, :cond_d7
14037 + const-string v1, "PrivacyPersistenceAdapter"
14039 + new-instance v4, Ljava/lang/StringBuilder;
14041 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
14043 + const-string v5, "Multiple privacy settings found for package "
14045 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
14047 + move-result-object v4
14049 + move-object/from16 v0, p1
14051 + invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
14053 + move-result-object v4
14055 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
14057 + move-result-object v4
14059 + invoke-static {v1, v4}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
14061 + :cond_d7
14062 + invoke-interface/range {v54 .. v54}, Landroid/database/Cursor;->moveToFirst()Z
14064 + move-result v1
14066 + if-eqz v1, :cond_367
14068 + new-instance v3, Landroid/privacy/PrivacySettings;
14070 + const/4 v1, 0x0
14072 + move-object/from16 v0, v54
14074 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getInt(I)I
14076 + move-result v1
14078 + invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
14080 + move-result-object v4
14082 + const/4 v1, 0x1
14084 + move-object/from16 v0, v54
14086 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14088 + move-result-object v5
14090 + const/4 v1, 0x2
14092 + move-object/from16 v0, v54
14094 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getInt(I)I
14096 + move-result v6
14098 + const/4 v1, 0x3
14100 + move-object/from16 v0, v54
14102 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14104 + move-result v1
14106 + int-to-byte v7, v1
14108 + const/4 v1, 0x4
14110 + move-object/from16 v0, v54
14112 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14114 + move-result-object v8
14116 + const/4 v1, 0x5
14118 + move-object/from16 v0, v54
14120 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14122 + move-result v1
14124 + int-to-byte v9, v1
14126 + const/4 v1, 0x6
14128 + move-object/from16 v0, v54
14130 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14132 + move-result-object v10
14134 + const/4 v1, 0x7
14136 + move-object/from16 v0, v54
14138 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14140 + move-result v1
14142 + int-to-byte v11, v1
14144 + const/16 v1, 0x8
14146 + move-object/from16 v0, v54
14148 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14150 + move-result-object v12
14152 + const/16 v1, 0x9
14154 + move-object/from16 v0, v54
14156 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14158 + move-result-object v13
14160 + const/16 v1, 0xa
14162 + move-object/from16 v0, v54
14164 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14166 + move-result v1
14168 + int-to-byte v14, v1
14170 + const/16 v1, 0xb
14172 + move-object/from16 v0, v54
14174 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14176 + move-result-object v15
14178 + const/16 v1, 0xc
14180 + move-object/from16 v0, v54
14182 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14184 + move-result-object v16
14186 + const/16 v1, 0xd
14188 + move-object/from16 v0, v54
14190 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14192 + move-result v1
14194 + int-to-byte v0, v1
14196 + move/from16 v17, v0
14198 + const/16 v1, 0xe
14200 + move-object/from16 v0, v54
14202 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14204 + move-result v1
14206 + int-to-byte v0, v1
14208 + move/from16 v18, v0
14210 + const/16 v1, 0xf
14212 + move-object/from16 v0, v54
14214 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14216 + move-result v1
14218 + int-to-byte v0, v1
14220 + move/from16 v19, v0
14222 + const/16 v1, 0x10
14224 + move-object/from16 v0, v54
14226 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14228 + move-result-object v20
14230 + const/16 v1, 0x11
14232 + move-object/from16 v0, v54
14234 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14236 + move-result v1
14238 + int-to-byte v0, v1
14240 + move/from16 v21, v0
14242 + const/16 v1, 0x12
14244 + move-object/from16 v0, v54
14246 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14248 + move-result-object v22
14250 + const/16 v1, 0x13
14252 + move-object/from16 v0, v54
14254 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14256 + move-result v1
14258 + int-to-byte v0, v1
14260 + move/from16 v23, v0
14262 + const/16 v1, 0x14
14264 + move-object/from16 v0, v54
14266 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14268 + move-result v1
14270 + int-to-byte v0, v1
14272 + move/from16 v24, v0
14274 + const/16 v1, 0x15
14276 + move-object/from16 v0, v54
14278 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14280 + move-result v1
14282 + int-to-byte v0, v1
14284 + move/from16 v25, v0
14286 + const/16 v1, 0x16
14288 + move-object/from16 v0, v54
14290 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14292 + move-result v1
14294 + int-to-byte v0, v1
14296 + move/from16 v26, v0
14298 + const/16 v1, 0x17
14300 + move-object/from16 v0, v54
14302 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14304 + move-result v1
14306 + int-to-byte v0, v1
14308 + move/from16 v27, v0
14310 + const/16 v1, 0x18
14312 + move-object/from16 v0, v54
14314 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14316 + move-result v1
14318 + int-to-byte v0, v1
14320 + move/from16 v28, v0
14322 + const/16 v1, 0x19
14324 + move-object/from16 v0, v54
14326 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14328 + move-result v1
14330 + int-to-byte v0, v1
14332 + move/from16 v29, v0
14334 + const/16 v1, 0x1a
14336 + move-object/from16 v0, v54
14338 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14340 + move-result v1
14342 + int-to-byte v0, v1
14344 + move/from16 v30, v0
14346 + const/16 v1, 0x1b
14348 + move-object/from16 v0, v54
14350 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14352 + move-result v1
14354 + int-to-byte v0, v1
14356 + move/from16 v31, v0
14358 + const/16 v1, 0x1c
14360 + move-object/from16 v0, v54
14362 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14364 + move-result v1
14366 + int-to-byte v0, v1
14368 + move/from16 v32, v0
14370 + const/16 v1, 0x1d
14372 + move-object/from16 v0, v54
14374 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14376 + move-result v1
14378 + int-to-byte v0, v1
14380 + move/from16 v33, v0
14382 + const/16 v1, 0x1e
14384 + move-object/from16 v0, v54
14386 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14388 + move-result v1
14390 + int-to-byte v0, v1
14392 + move/from16 v34, v0
14394 + const/16 v1, 0x1f
14396 + move-object/from16 v0, v54
14398 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14400 + move-result v1
14402 + int-to-byte v0, v1
14404 + move/from16 v35, v0
14406 + const/16 v1, 0x20
14408 + move-object/from16 v0, v54
14410 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14412 + move-result v1
14414 + int-to-byte v0, v1
14416 + move/from16 v36, v0
14418 + const/16 v1, 0x21
14420 + move-object/from16 v0, v54
14422 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14424 + move-result v1
14426 + int-to-byte v0, v1
14428 + move/from16 v37, v0
14430 + const/16 v1, 0x22
14432 + move-object/from16 v0, v54
14434 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14436 + move-result v1
14438 + int-to-byte v0, v1
14440 + move/from16 v38, v0
14442 + const/16 v39, 0x0
14444 + const/16 v1, 0x23
14446 + move-object/from16 v0, v54
14448 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14450 + move-result v1
14452 + int-to-byte v0, v1
14454 + move/from16 v40, v0
14456 + const/16 v1, 0x24
14458 + move-object/from16 v0, v54
14460 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14462 + move-result v1
14464 + int-to-byte v0, v1
14466 + move/from16 v41, v0
14468 + const/16 v1, 0x25
14470 + move-object/from16 v0, v54
14472 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14474 + move-result v1
14476 + int-to-byte v0, v1
14478 + move/from16 v42, v0
14480 + const/16 v1, 0x26
14482 + move-object/from16 v0, v54
14484 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14486 + move-result v1
14488 + int-to-byte v0, v1
14490 + move/from16 v43, v0
14492 + const/16 v1, 0x27
14494 + move-object/from16 v0, v54
14496 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14498 + move-result v1
14500 + int-to-byte v0, v1
14502 + move/from16 v44, v0
14504 + const/16 v1, 0x28
14506 + move-object/from16 v0, v54
14508 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14510 + move-result v1
14512 + int-to-byte v0, v1
14514 + move/from16 v45, v0
14516 + const/16 v1, 0x29
14518 + move-object/from16 v0, v54
14520 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14522 + move-result-object v46
14524 + const/16 v1, 0x2a
14526 + move-object/from16 v0, v54
14528 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14530 + move-result v1
14532 + int-to-byte v0, v1
14534 + move/from16 v47, v0
14536 + const/16 v1, 0x2b
14538 + move-object/from16 v0, v54
14540 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14542 + move-result v1
14544 + int-to-byte v0, v1
14546 + move/from16 v48, v0
14548 + const/16 v1, 0x2c
14550 + move-object/from16 v0, v54
14552 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14554 + move-result v1
14556 + int-to-byte v0, v1
14558 + move/from16 v49, v0
14560 + const/16 v1, 0x2d
14562 + move-object/from16 v0, v54
14564 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14566 + move-result v1
14568 + int-to-byte v0, v1
14570 + move/from16 v50, v0
14572 + const/16 v1, 0x2e
14574 + move-object/from16 v0, v54
14576 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getShort(I)S
14578 + move-result v1
14580 + int-to-byte v0, v1
14582 + move/from16 v51, v0
14584 + 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
14585 + :try_end_2b9
14586 + .catchall {:try_start_b6 .. :try_end_2b9} :catchall_35f
14587 + .catch Ljava/lang/Exception; {:try_start_b6 .. :try_end_2b9} :catch_363
14589 + :try_start_2b9
14590 + const-string v6, "allowed_contacts"
14592 + const/4 v1, 0x1
14594 + new-array v7, v1, [Ljava/lang/String;
14596 + const/4 v1, 0x0
14598 + const-string v4, "contact_id"
14600 + aput-object v4, v7, v1
14602 + const-string/jumbo v8, "settings_id=?"
14604 + const/4 v1, 0x1
14606 + new-array v9, v1, [Ljava/lang/String;
14608 + const/4 v1, 0x0
14610 + invoke-virtual {v3}, Landroid/privacy/PrivacySettings;->get_id()Ljava/lang/Integer;
14612 + move-result-object v4
14614 + invoke-virtual {v4}, Ljava/lang/Integer;->intValue()I
14616 + move-result v4
14618 + invoke-static {v4}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;
14620 + move-result-object v4
14622 + aput-object v4, v9, v1
14624 + const/4 v10, 0x0
14626 + const/4 v11, 0x0
14628 + const/4 v12, 0x0
14630 + const/4 v13, 0x0
14632 + move-object/from16 v4, p0
14634 + move-object v5, v2
14636 + 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;
14638 + move-result-object v54
14640 + if-eqz v54, :cond_87
14642 + invoke-interface/range {v54 .. v54}, Landroid/database/Cursor;->getCount()I
14644 + move-result v1
14646 + if-lez v1, :cond_87
14648 + invoke-interface/range {v54 .. v54}, Landroid/database/Cursor;->getCount()I
14650 + move-result v1
14652 + new-array v0, v1, [I
14654 + move-object/from16 v52, v0
14656 + :goto_2f3
14657 + invoke-interface/range {v54 .. v54}, Landroid/database/Cursor;->moveToNext()Z
14659 + move-result v1
14661 + if-eqz v1, :cond_337
14663 + invoke-interface/range {v54 .. v54}, Landroid/database/Cursor;->getPosition()I
14665 + move-result v1
14667 + const/4 v4, 0x0
14669 + move-object/from16 v0, v54
14671 + invoke-interface {v0, v4}, Landroid/database/Cursor;->getInt(I)I
14673 + move-result v4
14675 + aput v4, v52, v1
14676 + :try_end_306
14677 + .catchall {:try_start_2b9 .. :try_end_306} :catchall_33e
14678 + .catch Ljava/lang/Exception; {:try_start_2b9 .. :try_end_306} :catch_307
14680 + goto :goto_2f3
14682 + :catch_307
14683 + move-exception v55
14685 + :goto_308
14686 + :try_start_308
14687 + const-string v1, "PrivacyPersistenceAdapter"
14689 + new-instance v4, Ljava/lang/StringBuilder;
14691 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
14693 + const-string v5, "getSettings - failed to get settings for package: "
14695 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
14697 + move-result-object v4
14699 + move-object/from16 v0, p1
14701 + invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
14703 + move-result-object v4
14705 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
14707 + move-result-object v4
14709 + move-object/from16 v0, v55
14711 + invoke-static {v1, v4, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
14712 + :try_end_324
14713 + .catchall {:try_start_308 .. :try_end_324} :catchall_33e
14715 + if-eqz v54, :cond_329
14717 + invoke-interface/range {v54 .. v54}, Landroid/database/Cursor;->close()V
14719 + :cond_329
14720 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
14722 + invoke-interface {v1}, Ljava/util/concurrent/locks/ReadWriteLock;->readLock()Ljava/util/concurrent/locks/Lock;
14724 + move-result-object v1
14726 + invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V
14728 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
14730 + goto/16 :goto_a1
14732 + :cond_337
14733 + :try_start_337
14734 + move-object/from16 v0, v52
14736 + invoke-virtual {v3, v0}, Landroid/privacy/PrivacySettings;->setAllowedContacts([I)V
14737 + :try_end_33c
14738 + .catchall {:try_start_337 .. :try_end_33c} :catchall_33e
14739 + .catch Ljava/lang/Exception; {:try_start_337 .. :try_end_33c} :catch_307
14741 + goto/16 :goto_87
14743 + :catchall_33e
14744 + move-exception v1
14746 + :goto_33f
14747 + if-eqz v54, :cond_344
14749 + invoke-interface/range {v54 .. v54}, Landroid/database/Cursor;->close()V
14751 + :cond_344
14752 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
14754 + invoke-interface {v4}, Ljava/util/concurrent/locks/ReadWriteLock;->readLock()Ljava/util/concurrent/locks/Lock;
14756 + move-result-object v4
14758 + invoke-interface {v4}, Ljava/util/concurrent/locks/Lock;->unlock()V
14760 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
14762 + throw v1
14764 + :cond_351
14765 + :try_start_351
14766 + sget-object v1, Landroid/privacy/PrivacyPersistenceAdapter;->settingsCache:Landroid/util/LruCache;
14768 + new-instance v4, Landroid/privacy/PrivacySettingsStub;
14770 + invoke-direct {v4}, Landroid/privacy/PrivacySettingsStub;-><init>()V
14772 + move-object/from16 v0, p1
14774 + invoke-virtual {v1, v0, v4}, Landroid/util/LruCache;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
14775 + :try_end_35d
14776 + .catchall {:try_start_351 .. :try_end_35d} :catchall_33e
14777 + .catch Ljava/lang/Exception; {:try_start_351 .. :try_end_35d} :catch_307
14779 + goto/16 :goto_90
14781 + :catchall_35f
14782 + move-exception v1
14784 + move-object/from16 v3, v56
14786 + goto :goto_33f
14788 + :catch_363
14789 + move-exception v55
14791 + move-object/from16 v3, v56
14793 + goto :goto_308
14795 + :cond_367
14796 + move-object/from16 v3, v56
14798 + goto/16 :goto_87
14799 +.end method
14801 +.method public getValue(Ljava/lang/String;)Ljava/lang/String;
14802 + .registers 15
14804 + const/4 v0, 0x0
14806 + const/4 v12, 0x0
14808 + :try_start_2
14809 + sget-object v2, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
14811 + monitor-enter v2
14812 + :try_end_5
14813 + .catchall {:try_start_2 .. :try_end_5} :catchall_41
14815 + :try_start_5
14816 + sget-object v3, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
14818 + sget-object v3, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
14820 + invoke-virtual {v3}, Ljava/lang/Integer;->intValue()I
14822 + move-result v3
14824 + add-int/lit8 v3, v3, 0x1
14826 + invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
14828 + move-result-object v3
14830 + sput-object v3, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
14832 + monitor-exit v2
14833 + :try_end_16
14834 + .catchall {:try_start_5 .. :try_end_16} :catchall_3e
14836 + :try_start_16
14837 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->getDatabase()Landroid/database/sqlite/SQLiteDatabase;
14839 + move-result-object v1
14841 + if-eqz v1, :cond_22
14843 + invoke-virtual {v1}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z
14845 + move-result v2
14847 + if-nez v2, :cond_46
14849 + :cond_22
14850 + const-string v2, "PrivacyPersistenceAdapter"
14852 + new-instance v3, Ljava/lang/StringBuilder;
14854 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
14856 + const-string v4, "PrivacyPersistenceAdapter:getValue: Database not obtained while getting value for name: "
14858 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
14860 + move-result-object v3
14862 + invoke-virtual {v3, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
14864 + move-result-object v3
14866 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
14868 + move-result-object v3
14870 + invoke-static {v2, v3}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
14871 + :try_end_3a
14872 + .catchall {:try_start_16 .. :try_end_3a} :catchall_41
14874 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
14876 + :goto_3d
14877 + return-object v0
14879 + :catchall_3e
14880 + move-exception v0
14882 + :try_start_3f
14883 + monitor-exit v2
14884 + :try_end_40
14885 + .catchall {:try_start_3f .. :try_end_40} :catchall_3e
14887 + :try_start_40
14888 + throw v0
14889 + :try_end_41
14890 + .catchall {:try_start_40 .. :try_end_41} :catchall_41
14892 + :catchall_41
14893 + move-exception v0
14895 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
14897 + throw v0
14899 + :cond_46
14900 + :try_start_46
14901 + sget-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
14903 + invoke-interface {v0}, Ljava/util/concurrent/locks/ReadWriteLock;->readLock()Ljava/util/concurrent/locks/Lock;
14905 + move-result-object v0
14907 + invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V
14908 + :try_end_4f
14909 + .catchall {:try_start_46 .. :try_end_4f} :catchall_41
14911 + :try_start_4f
14912 + const-string/jumbo v2, "map"
14914 + const/4 v0, 0x1
14916 + new-array v3, v0, [Ljava/lang/String;
14918 + const/4 v0, 0x0
14920 + const-string/jumbo v4, "value"
14922 + aput-object v4, v3, v0
14924 + const-string/jumbo v4, "name=?"
14926 + const/4 v0, 0x1
14928 + new-array v5, v0, [Ljava/lang/String;
14930 + const/4 v0, 0x0
14932 + aput-object p1, v5, v0
14934 + const/4 v6, 0x0
14936 + const/4 v7, 0x0
14938 + const/4 v8, 0x0
14940 + const/4 v9, 0x0
14942 + move-object v0, p0
14944 + 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;
14946 + move-result-object v10
14948 + if-eqz v10, :cond_97
14950 + invoke-interface {v10}, Landroid/database/Cursor;->getCount()I
14952 + move-result v0
14954 + if-lez v0, :cond_97
14956 + invoke-interface {v10}, Landroid/database/Cursor;->moveToFirst()Z
14958 + move-result v0
14960 + if-eqz v0, :cond_97
14962 + const-string/jumbo v0, "value"
14964 + invoke-interface {v10, v0}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I
14966 + move-result v0
14968 + invoke-interface {v10, v0}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
14970 + move-result-object v12
14972 + invoke-interface {v10}, Landroid/database/Cursor;->close()V
14973 + :try_end_89
14974 + .catchall {:try_start_4f .. :try_end_89} :catchall_d3
14975 + .catch Ljava/lang/Exception; {:try_start_4f .. :try_end_89} :catch_b0
14977 + :goto_89
14978 + :try_start_89
14979 + sget-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
14981 + invoke-interface {v0}, Ljava/util/concurrent/locks/ReadWriteLock;->readLock()Ljava/util/concurrent/locks/Lock;
14983 + move-result-object v0
14985 + invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V
14986 + :try_end_92
14987 + .catchall {:try_start_89 .. :try_end_92} :catchall_41
14989 + :goto_92
14990 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
14992 + move-object v0, v12
14994 + goto :goto_3d
14996 + :cond_97
14997 + :try_start_97
14998 + const-string v0, "PrivacyPersistenceAdapter"
15000 + new-instance v2, Ljava/lang/StringBuilder;
15002 + invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
15004 + const-string v3, "PrivacyPersistenceAdapter:getValue: Could not get value for name: "
15006 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
15008 + move-result-object v2
15010 + invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
15012 + move-result-object v2
15014 + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
15016 + move-result-object v2
15018 + invoke-static {v0, v2}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
15019 + :try_end_af
15020 + .catchall {:try_start_97 .. :try_end_af} :catchall_d3
15021 + .catch Ljava/lang/Exception; {:try_start_97 .. :try_end_af} :catch_b0
15023 + goto :goto_89
15025 + :catch_b0
15026 + move-exception v11
15028 + :try_start_b1
15029 + const-string v0, "PrivacyPersistenceAdapter"
15031 + new-instance v2, Ljava/lang/StringBuilder;
15033 + invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
15035 + const-string v3, "PrivacyPersistenceAdapter:getValue: Exception occurred while getting value for name: "
15037 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
15039 + move-result-object v2
15041 + invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
15043 + move-result-object v2
15045 + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
15047 + move-result-object v2
15049 + invoke-static {v0, v2, v11}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
15050 + :try_end_c9
15051 + .catchall {:try_start_b1 .. :try_end_c9} :catchall_d3
15053 + :try_start_c9
15054 + sget-object v0, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
15056 + invoke-interface {v0}, Ljava/util/concurrent/locks/ReadWriteLock;->readLock()Ljava/util/concurrent/locks/Lock;
15058 + move-result-object v0
15060 + invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V
15062 + goto :goto_92
15064 + :catchall_d3
15065 + move-exception v0
15067 + sget-object v2, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
15069 + invoke-interface {v2}, Ljava/util/concurrent/locks/ReadWriteLock;->readLock()Ljava/util/concurrent/locks/Lock;
15071 + move-result-object v2
15073 + invoke-interface {v2}, Ljava/util/concurrent/locks/Lock;->unlock()V
15075 + throw v0
15076 + :try_end_de
15077 + .catchall {:try_start_c9 .. :try_end_de} :catchall_41
15078 +.end method
15080 +.method public purgeSettings()Z
15081 + .registers 26
15083 + const/16 v23, 0x1
15085 + new-instance v13, Ljava/util/HashSet;
15087 + invoke-direct {v13}, Ljava/util/HashSet;-><init>()V
15089 + move-object/from16 v0, p0
15091 + iget-object v2, v0, Landroid/privacy/PrivacyPersistenceAdapter;->mContext:Landroid/content/Context;
15093 + invoke-virtual {v2}, Landroid/content/Context;->getPackageManager()Landroid/content/pm/PackageManager;
15095 + move-result-object v20
15097 + const/4 v2, 0x0
15099 + move-object/from16 v0, v20
15101 + invoke-virtual {v0, v2}, Landroid/content/pm/PackageManager;->getInstalledApplications(I)Ljava/util/List;
15103 + move-result-object v18
15105 + invoke-interface/range {v18 .. v18}, Ljava/util/List;->iterator()Ljava/util/Iterator;
15107 + move-result-object v17
15109 + :goto_1a
15110 + invoke-interface/range {v17 .. v17}, Ljava/util/Iterator;->hasNext()Z
15112 + move-result v2
15114 + if-eqz v2, :cond_2c
15116 + invoke-interface/range {v17 .. v17}, Ljava/util/Iterator;->next()Ljava/lang/Object;
15118 + move-result-object v12
15120 + check-cast v12, Landroid/content/pm/ApplicationInfo;
15122 + iget-object v2, v12, Landroid/content/pm/ApplicationInfo;->packageName:Ljava/lang/String;
15124 + invoke-interface {v13, v2}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
15126 + goto :goto_1a
15128 + :cond_2c
15129 + const/4 v3, 0x0
15131 + :try_start_2d
15132 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
15134 + monitor-enter v4
15135 + :try_end_30
15136 + .catchall {:try_start_2d .. :try_end_30} :catchall_11b
15137 + .catch Ljava/lang/Exception; {:try_start_2d .. :try_end_30} :catch_56
15139 + :try_start_30
15140 + sget-object v2, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
15142 + sget-object v2, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
15144 + invoke-virtual {v2}, Ljava/lang/Integer;->intValue()I
15146 + move-result v2
15148 + add-int/lit8 v2, v2, 0x1
15150 + invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
15152 + move-result-object v2
15154 + sput-object v2, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
15156 + monitor-exit v4
15157 + :try_end_41
15158 + .catchall {:try_start_30 .. :try_end_41} :catchall_53
15160 + :try_start_41
15161 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->getDatabase()Landroid/database/sqlite/SQLiteDatabase;
15163 + move-result-object v3
15165 + if-nez v3, :cond_68
15167 + const-string v2, "PrivacyPersistenceAdapter"
15169 + const-string v4, "PrivacyPersistenceAdapter:purgeSettings: db could not be obtained"
15171 + invoke-static {v2, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
15172 + :try_end_4e
15173 + .catchall {:try_start_41 .. :try_end_4e} :catchall_11b
15174 + .catch Ljava/lang/Exception; {:try_start_41 .. :try_end_4e} :catch_56
15176 + const/4 v2, 0x0
15178 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
15180 + :goto_52
15181 + return v2
15183 + :catchall_53
15184 + move-exception v2
15186 + :try_start_54
15187 + monitor-exit v4
15188 + :try_end_55
15189 + .catchall {:try_start_54 .. :try_end_55} :catchall_53
15191 + :try_start_55
15192 + throw v2
15193 + :try_end_56
15194 + .catchall {:try_start_55 .. :try_end_56} :catchall_11b
15195 + .catch Ljava/lang/Exception; {:try_start_55 .. :try_end_56} :catch_56
15197 + :catch_56
15198 + move-exception v16
15200 + :try_start_57
15201 + const-string v2, "PrivacyPersistenceAdapter"
15203 + const-string v4, "PrivacyPersistenceAdapter:purgeSettings - purging DB failed"
15205 + move-object/from16 v0, v16
15207 + invoke-static {v2, v4, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
15208 + :try_end_60
15209 + .catchall {:try_start_57 .. :try_end_60} :catchall_11b
15211 + const/16 v23, 0x0
15213 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
15215 + :goto_65
15216 + move/from16 v2, v23
15218 + goto :goto_52
15220 + :cond_68
15221 + :try_start_68
15222 + sget-object v2, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
15224 + invoke-interface {v2}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
15226 + move-result-object v2
15228 + invoke-interface {v2}, Ljava/util/concurrent/locks/Lock;->lock()V
15229 + :try_end_71
15230 + .catchall {:try_start_68 .. :try_end_71} :catchall_11b
15231 + .catch Ljava/lang/Exception; {:try_start_68 .. :try_end_71} :catch_56
15233 + const/4 v15, 0x0
15235 + :try_start_72
15236 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->beginTransaction()V
15237 + :try_end_75
15238 + .catchall {:try_start_72 .. :try_end_75} :catchall_110
15240 + :try_start_75
15241 + const-string/jumbo v4, "settings"
15243 + const/4 v2, 0x1
15245 + new-array v5, v2, [Ljava/lang/String;
15247 + const/4 v2, 0x0
15249 + const-string/jumbo v6, "packageName"
15251 + aput-object v6, v5, v2
15253 + const/4 v6, 0x0
15255 + const/4 v7, 0x0
15257 + const/4 v8, 0x0
15259 + const/4 v9, 0x0
15261 + const/4 v10, 0x0
15263 + const/4 v11, 0x0
15265 + move-object/from16 v2, p0
15267 + 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;
15269 + move-result-object v15
15271 + if-eqz v15, :cond_bd
15273 + invoke-interface {v15}, Landroid/database/Cursor;->getCount()I
15275 + move-result v2
15277 + if-lez v2, :cond_bd
15279 + invoke-interface {v15}, Landroid/database/Cursor;->moveToFirst()Z
15281 + move-result v2
15283 + if-eqz v2, :cond_bd
15285 + :cond_9b
15286 + const/4 v2, 0x0
15288 + invoke-interface {v15, v2}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
15290 + move-result-object v22
15292 + move-object/from16 v0, v22
15294 + invoke-interface {v13, v0}, Ljava/util/Set;->contains(Ljava/lang/Object;)Z
15296 + move-result v2
15298 + if-nez v2, :cond_b7
15300 + const-string/jumbo v2, "settings"
15302 + const-string/jumbo v4, "packageName = ?"
15304 + const/4 v5, 0x1
15306 + new-array v5, v5, [Ljava/lang/String;
15308 + const/4 v6, 0x0
15310 + aput-object v22, v5, v6
15312 + invoke-virtual {v3, v2, v4, v5}, Landroid/database/sqlite/SQLiteDatabase;->delete(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)I
15314 + :cond_b7
15315 + invoke-interface {v15}, Landroid/database/Cursor;->moveToNext()Z
15317 + move-result v2
15319 + if-nez v2, :cond_9b
15321 + :cond_bd
15322 + new-instance v24, Ljava/io/File;
15324 + const-string v2, "/data/system/privacy"
15326 + move-object/from16 v0, v24
15328 + invoke-direct {v0, v2}, Ljava/io/File;-><init>(Ljava/lang/String;)V
15330 + invoke-virtual/range {v24 .. v24}, Ljava/io/File;->listFiles()[Ljava/io/File;
15332 + move-result-object v14
15334 + array-length v0, v14
15336 + move/from16 v19, v0
15338 + const/16 v17, 0x0
15340 + :goto_cf
15341 + move/from16 v0, v17
15343 + move/from16 v1, v19
15345 + if-ge v0, v1, :cond_ed
15347 + aget-object v21, v14, v17
15349 + invoke-virtual/range {v21 .. v21}, Ljava/io/File;->getName()Ljava/lang/String;
15351 + move-result-object v22
15353 + move-object/from16 v0, v22
15355 + invoke-interface {v13, v0}, Ljava/util/Set;->contains(Ljava/lang/Object;)Z
15357 + move-result v2
15359 + if-nez v2, :cond_ea
15361 + move-object/from16 v0, p0
15363 + move-object/from16 v1, v21
15365 + invoke-direct {v0, v1}, Landroid/privacy/PrivacyPersistenceAdapter;->deleteRecursive(Ljava/io/File;)V
15367 + :cond_ea
15368 + add-int/lit8 v17, v17, 0x1
15370 + goto :goto_cf
15372 + :cond_ed
15373 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->setTransactionSuccessful()V
15374 + :try_end_f0
15375 + .catchall {:try_start_75 .. :try_end_f0} :catchall_106
15377 + if-eqz v15, :cond_f5
15379 + :try_start_f2
15380 + invoke-interface {v15}, Landroid/database/Cursor;->close()V
15382 + :cond_f5
15383 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
15384 + :try_end_f8
15385 + .catchall {:try_start_f2 .. :try_end_f8} :catchall_110
15387 + :try_start_f8
15388 + sget-object v2, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
15390 + invoke-interface {v2}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
15392 + move-result-object v2
15394 + invoke-interface {v2}, Ljava/util/concurrent/locks/Lock;->unlock()V
15395 + :try_end_101
15396 + .catchall {:try_start_f8 .. :try_end_101} :catchall_11b
15397 + .catch Ljava/lang/Exception; {:try_start_f8 .. :try_end_101} :catch_56
15399 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
15401 + goto/16 :goto_65
15403 + :catchall_106
15404 + move-exception v2
15406 + if-eqz v15, :cond_10c
15408 + :try_start_109
15409 + invoke-interface {v15}, Landroid/database/Cursor;->close()V
15411 + :cond_10c
15412 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
15414 + throw v2
15415 + :try_end_110
15416 + .catchall {:try_start_109 .. :try_end_110} :catchall_110
15418 + :catchall_110
15419 + move-exception v2
15421 + :try_start_111
15422 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
15424 + invoke-interface {v4}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
15426 + move-result-object v4
15428 + invoke-interface {v4}, Ljava/util/concurrent/locks/Lock;->unlock()V
15430 + throw v2
15431 + :try_end_11b
15432 + .catchall {:try_start_111 .. :try_end_11b} :catchall_11b
15433 + .catch Ljava/lang/Exception; {:try_start_111 .. :try_end_11b} :catch_56
15435 + :catchall_11b
15436 + move-exception v2
15438 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
15440 + throw v2
15441 +.end method
15443 +.method public saveSettings(Landroid/privacy/PrivacySettings;)Z
15444 + .registers 25
15446 + const/16 v19, 0x0
15448 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getPackageName()Ljava/lang/String;
15450 + move-result-object v18
15452 + if-eqz v18, :cond_e
15454 + invoke-virtual/range {v18 .. v18}, Ljava/lang/String;->isEmpty()Z
15456 + move-result v4
15458 + if-eqz v4, :cond_18
15460 + :cond_e
15461 + const-string v4, "PrivacyPersistenceAdapter"
15463 + const-string/jumbo v5, "saveSettings - either package name is missing"
15465 + invoke-static {v4, v5}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
15467 + const/4 v4, 0x0
15469 + :goto_17
15470 + return v4
15472 + :cond_18
15473 + new-instance v22, Landroid/content/ContentValues;
15475 + invoke-direct/range {v22 .. v22}, Landroid/content/ContentValues;-><init>()V
15477 + const-string/jumbo v4, "packageName"
15479 + move-object/from16 v0, v22
15481 + move-object/from16 v1, v18
15483 + invoke-virtual {v0, v4, v1}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
15485 + const-string/jumbo v4, "uid"
15487 + const/4 v5, -0x1
15489 + invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
15491 + move-result-object v5
15493 + move-object/from16 v0, v22
15495 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Integer;)V
15497 + const-string v4, "deviceIdSetting"
15499 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getDeviceIdSetting()B
15501 + move-result v5
15503 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15505 + move-result-object v5
15507 + move-object/from16 v0, v22
15509 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15511 + const-string v4, "deviceId"
15513 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getDeviceId()Ljava/lang/String;
15515 + move-result-object v5
15517 + move-object/from16 v0, v22
15519 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
15521 + const-string v4, "line1NumberSetting"
15523 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getLine1NumberSetting()B
15525 + move-result v5
15527 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15529 + move-result-object v5
15531 + move-object/from16 v0, v22
15533 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15535 + const-string v4, "line1Number"
15537 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getLine1Number()Ljava/lang/String;
15539 + move-result-object v5
15541 + move-object/from16 v0, v22
15543 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
15545 + const-string v4, "locationGpsSetting"
15547 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
15549 + move-result v5
15551 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15553 + move-result-object v5
15555 + move-object/from16 v0, v22
15557 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15559 + const-string v4, "locationGpsLat"
15561 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getLocationGpsLat()Ljava/lang/String;
15563 + move-result-object v5
15565 + move-object/from16 v0, v22
15567 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
15569 + const-string v4, "locationGpsLon"
15571 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getLocationGpsLon()Ljava/lang/String;
15573 + move-result-object v5
15575 + move-object/from16 v0, v22
15577 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
15579 + const-string v4, "locationNetworkSetting"
15581 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
15583 + move-result v5
15585 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15587 + move-result-object v5
15589 + move-object/from16 v0, v22
15591 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15593 + const-string v4, "locationNetworkLat"
15595 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getLocationNetworkLat()Ljava/lang/String;
15597 + move-result-object v5
15599 + move-object/from16 v0, v22
15601 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
15603 + const-string v4, "locationNetworkLon"
15605 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getLocationNetworkLon()Ljava/lang/String;
15607 + move-result-object v5
15609 + move-object/from16 v0, v22
15611 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
15613 + const-string/jumbo v4, "networkInfoSetting"
15615 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
15617 + move-result v5
15619 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15621 + move-result-object v5
15623 + move-object/from16 v0, v22
15625 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15627 + const-string/jumbo v4, "simInfoSetting"
15629 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSimInfoSetting()B
15631 + move-result v5
15633 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15635 + move-result-object v5
15637 + move-object/from16 v0, v22
15639 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15641 + const-string/jumbo v4, "simSerialNumberSetting"
15643 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSimSerialNumberSetting()B
15645 + move-result v5
15647 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15649 + move-result-object v5
15651 + move-object/from16 v0, v22
15653 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15655 + const-string/jumbo v4, "simSerialNumber"
15657 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSimSerialNumber()Ljava/lang/String;
15659 + move-result-object v5
15661 + move-object/from16 v0, v22
15663 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
15665 + const-string/jumbo v4, "subscriberIdSetting"
15667 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSubscriberIdSetting()B
15669 + move-result v5
15671 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15673 + move-result-object v5
15675 + move-object/from16 v0, v22
15677 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15679 + const-string/jumbo v4, "subscriberId"
15681 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSubscriberId()Ljava/lang/String;
15683 + move-result-object v5
15685 + move-object/from16 v0, v22
15687 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
15689 + const-string v4, "accountsSetting"
15691 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getAccountsSetting()B
15693 + move-result v5
15695 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15697 + move-result-object v5
15699 + move-object/from16 v0, v22
15701 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15703 + const-string v4, "accountsAuthTokensSetting"
15705 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getAccountsAuthTokensSetting()B
15707 + move-result v5
15709 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15711 + move-result-object v5
15713 + move-object/from16 v0, v22
15715 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15717 + const-string/jumbo v4, "outgoingCallsSetting"
15719 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getOutgoingCallsSetting()B
15721 + move-result v5
15723 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15725 + move-result-object v5
15727 + move-object/from16 v0, v22
15729 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15731 + const-string v4, "incomingCallsSetting"
15733 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getIncomingCallsSetting()B
15735 + move-result v5
15737 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15739 + move-result-object v5
15741 + move-object/from16 v0, v22
15743 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15745 + const-string v4, "contactsSetting"
15747 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getContactsSetting()B
15749 + move-result v5
15751 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15753 + move-result-object v5
15755 + move-object/from16 v0, v22
15757 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15759 + const-string v4, "calendarSetting"
15761 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getCalendarSetting()B
15763 + move-result v5
15765 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15767 + move-result-object v5
15769 + move-object/from16 v0, v22
15771 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15773 + const-string/jumbo v4, "mmsSetting"
15775 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getMmsSetting()B
15777 + move-result v5
15779 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15781 + move-result-object v5
15783 + move-object/from16 v0, v22
15785 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15787 + const-string/jumbo v4, "smsSetting"
15789 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSmsSetting()B
15791 + move-result v5
15793 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15795 + move-result-object v5
15797 + move-object/from16 v0, v22
15799 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15801 + const-string v4, "callLogSetting"
15803 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getCallLogSetting()B
15805 + move-result v5
15807 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15809 + move-result-object v5
15811 + move-object/from16 v0, v22
15813 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15815 + const-string v4, "bookmarksSetting"
15817 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getBookmarksSetting()B
15819 + move-result v5
15821 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15823 + move-result-object v5
15825 + move-object/from16 v0, v22
15827 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15829 + const-string/jumbo v4, "systemLogsSetting"
15831 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSystemLogsSetting()B
15833 + move-result v5
15835 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15837 + move-result-object v5
15839 + move-object/from16 v0, v22
15841 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15843 + const-string/jumbo v4, "notificationSetting"
15845 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getNotificationSetting()B
15847 + move-result v5
15849 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15851 + move-result-object v5
15853 + move-object/from16 v0, v22
15855 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15857 + const-string v4, "intentBootCompletedSetting"
15859 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getIntentBootCompletedSetting()B
15861 + move-result v5
15863 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15865 + move-result-object v5
15867 + move-object/from16 v0, v22
15869 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15871 + const-string v4, "cameraSetting"
15873 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getCameraSetting()B
15875 + move-result v5
15877 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15879 + move-result-object v5
15881 + move-object/from16 v0, v22
15883 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15885 + const-string/jumbo v4, "recordAudioSetting"
15887 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getRecordAudioSetting()B
15889 + move-result v5
15891 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15893 + move-result-object v5
15895 + move-object/from16 v0, v22
15897 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15899 + const-string/jumbo v4, "smsSendSetting"
15901 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSmsSendSetting()B
15903 + move-result v5
15905 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15907 + move-result-object v5
15909 + move-object/from16 v0, v22
15911 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15913 + const-string/jumbo v4, "phoneCallSetting"
15915 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getPhoneCallSetting()B
15917 + move-result v5
15919 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15921 + move-result-object v5
15923 + move-object/from16 v0, v22
15925 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15927 + const-string v4, "ipTableProtectSetting"
15929 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getIpTableProtectSetting()B
15931 + move-result v5
15933 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15935 + move-result-object v5
15937 + move-object/from16 v0, v22
15939 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15941 + const-string v4, "iccAccessSetting"
15943 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getIccAccessSetting()B
15945 + move-result v5
15947 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15949 + move-result-object v5
15951 + move-object/from16 v0, v22
15953 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15955 + const-string v4, "addOnManagementSetting"
15957 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getAddOnManagementSetting()B
15959 + move-result v5
15961 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15963 + move-result-object v5
15965 + move-object/from16 v0, v22
15967 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15969 + const-string v4, "androidIdSetting"
15971 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getAndroidIdSetting()B
15973 + move-result v5
15975 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
15977 + move-result-object v5
15979 + move-object/from16 v0, v22
15981 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
15983 + const-string v4, "androidId"
15985 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getAndroidID()Ljava/lang/String;
15987 + move-result-object v5
15989 + move-object/from16 v0, v22
15991 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
15993 + const-string/jumbo v4, "wifiInfoSetting"
15995 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
15997 + move-result v5
15999 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16001 + move-result-object v5
16003 + move-object/from16 v0, v22
16005 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16007 + const-string/jumbo v4, "switchConnectivitySetting"
16009 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSwitchConnectivitySetting()B
16011 + move-result v5
16013 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16015 + move-result-object v5
16017 + move-object/from16 v0, v22
16019 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16021 + const-string/jumbo v4, "sendMmsSetting"
16023 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSendMmsSetting()B
16025 + move-result v5
16027 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16029 + move-result-object v5
16031 + move-object/from16 v0, v22
16033 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16035 + const-string v4, "forceOnlineState"
16037 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getForceOnlineState()B
16039 + move-result v5
16041 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16043 + move-result-object v5
16045 + move-object/from16 v0, v22
16047 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16049 + const-string/jumbo v4, "switchWifiStateSetting"
16051 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getSwitchWifiStateSetting()B
16053 + move-result v5
16055 + invoke-static {v5}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
16057 + move-result-object v5
16059 + move-object/from16 v0, v22
16061 + invoke-virtual {v0, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
16063 + const/4 v3, 0x0
16065 + const/4 v13, 0x0
16067 + :try_start_2a9
16068 + sget-object v5, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
16070 + monitor-enter v5
16071 + :try_end_2ac
16072 + .catchall {:try_start_2a9 .. :try_end_2ac} :catchall_33c
16073 + .catch Ljava/lang/Exception; {:try_start_2a9 .. :try_end_2ac} :catch_311
16075 + :try_start_2ac
16076 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
16078 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
16080 + invoke-virtual {v4}, Ljava/lang/Integer;->intValue()I
16082 + move-result v4
16084 + add-int/lit8 v4, v4, 0x1
16086 + invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
16088 + move-result-object v4
16090 + sput-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
16092 + monitor-exit v5
16093 + :try_end_2bd
16094 + .catchall {:try_start_2ac .. :try_end_2bd} :catchall_339
16096 + :try_start_2bd
16097 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->getDatabase()Landroid/database/sqlite/SQLiteDatabase;
16099 + move-result-object v3
16101 + if-eqz v3, :cond_4f9
16103 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z
16105 + move-result v4
16107 + if-eqz v4, :cond_4f9
16109 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
16111 + invoke-interface {v4}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
16113 + move-result-object v4
16115 + invoke-interface {v4}, Ljava/util/concurrent/locks/Lock;->lock()V
16116 + :try_end_2d2
16117 + .catchall {:try_start_2bd .. :try_end_2d2} :catchall_33c
16118 + .catch Ljava/lang/Exception; {:try_start_2bd .. :try_end_2d2} :catch_311
16120 + :try_start_2d2
16121 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->beginTransaction()V
16122 + :try_end_2d5
16123 + .catchall {:try_start_2d2 .. :try_end_2d5} :catchall_306
16125 + :try_start_2d5
16126 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->get_id()Ljava/lang/Integer;
16128 + move-result-object v16
16130 + if-eqz v16, :cond_38d
16132 + const-string/jumbo v4, "settings"
16134 + const-string v5, "_id=?"
16136 + const/4 v6, 0x1
16138 + new-array v6, v6, [Ljava/lang/String;
16140 + const/4 v7, 0x0
16142 + invoke-virtual/range {v16 .. v16}, Ljava/lang/Integer;->toString()Ljava/lang/String;
16144 + move-result-object v8
16146 + aput-object v8, v6, v7
16148 + move-object/from16 v0, v22
16150 + 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
16152 + move-result v4
16154 + const/4 v5, 0x1
16156 + if-ge v4, v5, :cond_341
16158 + new-instance v4, Ljava/lang/Exception;
16160 + const-string/jumbo v5, "saveSettings - failed to update database entry"
16162 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
16164 + throw v4
16165 + :try_end_2fc
16166 + .catchall {:try_start_2d5 .. :try_end_2fc} :catchall_2fc
16168 + :catchall_2fc
16169 + move-exception v4
16171 + :try_start_2fd
16172 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
16174 + if-eqz v13, :cond_305
16176 + invoke-interface {v13}, Landroid/database/Cursor;->close()V
16178 + :cond_305
16179 + throw v4
16180 + :try_end_306
16181 + .catchall {:try_start_2fd .. :try_end_306} :catchall_306
16183 + :catchall_306
16184 + move-exception v4
16186 + :try_start_307
16187 + sget-object v5, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
16189 + invoke-interface {v5}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
16191 + move-result-object v5
16193 + invoke-interface {v5}, Ljava/util/concurrent/locks/Lock;->unlock()V
16195 + throw v4
16196 + :try_end_311
16197 + .catchall {:try_start_307 .. :try_end_311} :catchall_33c
16198 + .catch Ljava/lang/Exception; {:try_start_307 .. :try_end_311} :catch_311
16200 + :catch_311
16201 + move-exception v14
16203 + :try_start_312
16204 + const-string v4, "PrivacyPersistenceAdapter"
16206 + new-instance v5, Ljava/lang/StringBuilder;
16208 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
16210 + const-string v6, "PrivacyPersistenceAdapter:saveSettings: saving for "
16212 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
16214 + move-result-object v5
16216 + move-object/from16 v0, v18
16218 + invoke-virtual {v5, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
16220 + move-result-object v5
16222 + const-string v6, " failed"
16224 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
16226 + move-result-object v5
16228 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
16230 + move-result-object v5
16232 + invoke-static {v4, v5, v14}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
16233 + :try_end_332
16234 + .catchall {:try_start_312 .. :try_end_332} :catchall_33c
16236 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
16238 + :goto_335
16239 + move/from16 v4, v19
16241 + goto/16 :goto_17
16243 + :catchall_339
16244 + move-exception v4
16246 + :try_start_33a
16247 + monitor-exit v5
16248 + :try_end_33b
16249 + .catchall {:try_start_33a .. :try_end_33b} :catchall_339
16251 + :try_start_33b
16252 + throw v4
16253 + :try_end_33c
16254 + .catchall {:try_start_33b .. :try_end_33c} :catchall_33c
16255 + .catch Ljava/lang/Exception; {:try_start_33b .. :try_end_33c} :catch_311
16257 + :catchall_33c
16258 + move-exception v4
16260 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
16262 + throw v4
16264 + :cond_341
16265 + :try_start_341
16266 + const-string v4, "allowed_contacts"
16268 + const-string/jumbo v5, "settings_id=?"
16270 + const/4 v6, 0x1
16272 + new-array v6, v6, [Ljava/lang/String;
16274 + const/4 v7, 0x0
16276 + invoke-virtual/range {v16 .. v16}, Ljava/lang/Integer;->toString()Ljava/lang/String;
16278 + move-result-object v8
16280 + aput-object v8, v6, v7
16282 + invoke-virtual {v3, v4, v5, v6}, Landroid/database/sqlite/SQLiteDatabase;->delete(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)I
16284 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getAllowedContacts()[I
16286 + move-result-object v11
16288 + if-eqz v11, :cond_4af
16290 + new-instance v12, Landroid/content/ContentValues;
16292 + invoke-direct {v12}, Landroid/content/ContentValues;-><init>()V
16294 + const/4 v15, 0x0
16296 + :goto_35f
16297 + array-length v4, v11
16299 + if-ge v15, v4, :cond_4af
16301 + const-string/jumbo v4, "settings_id"
16303 + move-object/from16 v0, v16
16305 + invoke-virtual {v12, v4, v0}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Integer;)V
16307 + const-string v4, "contact_id"
16309 + aget v5, v11, v15
16311 + invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
16313 + move-result-object v5
16315 + invoke-virtual {v12, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Integer;)V
16317 + const-string v4, "allowed_contacts"
16319 + const/4 v5, 0x0
16321 + invoke-virtual {v3, v4, v5, v12}, Landroid/database/sqlite/SQLiteDatabase;->insert(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J
16323 + move-result-wide v4
16325 + const-wide/16 v6, -0x1
16327 + cmp-long v4, v4, v6
16329 + if-nez v4, :cond_38a
16331 + new-instance v4, Ljava/lang/Exception;
16333 + const-string v5, "PrivacyPersistenceAdapter:saveSettings: failed to update database entry (contacts)"
16335 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
16337 + throw v4
16339 + :cond_38a
16340 + add-int/lit8 v15, v15, 0x1
16342 + goto :goto_35f
16344 + :cond_38d
16345 + const-string/jumbo v4, "settings"
16347 + const/4 v5, 0x1
16349 + new-array v5, v5, [Ljava/lang/String;
16351 + const/4 v6, 0x0
16353 + const-string v7, "_id"
16355 + aput-object v7, v5, v6
16357 + const-string/jumbo v6, "packageName=?"
16359 + const/4 v7, 0x1
16361 + new-array v7, v7, [Ljava/lang/String;
16363 + const/4 v8, 0x0
16365 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getPackageName()Ljava/lang/String;
16367 + move-result-object v9
16369 + aput-object v9, v7, v8
16371 + const/4 v8, 0x0
16373 + const/4 v9, 0x0
16375 + const/4 v10, 0x0
16377 + 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;
16379 + move-result-object v13
16381 + if-eqz v13, :cond_4a7
16383 + invoke-interface {v13}, Landroid/database/Cursor;->getCount()I
16385 + move-result v4
16387 + const/4 v5, 0x1
16389 + if-ne v4, v5, :cond_433
16391 + const-string/jumbo v4, "settings"
16393 + const-string/jumbo v5, "packageName=?"
16395 + const/4 v6, 0x1
16397 + new-array v6, v6, [Ljava/lang/String;
16399 + const/4 v7, 0x0
16401 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getPackageName()Ljava/lang/String;
16403 + move-result-object v8
16405 + aput-object v8, v6, v7
16407 + move-object/from16 v0, v22
16409 + 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
16411 + move-result v4
16413 + const/4 v5, 0x1
16415 + if-ge v4, v5, :cond_3d7
16417 + new-instance v4, Ljava/lang/Exception;
16419 + const-string/jumbo v5, "saveSettings - failed to update database entry"
16421 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
16423 + throw v4
16425 + :cond_3d7
16426 + invoke-interface {v13}, Landroid/database/Cursor;->moveToFirst()Z
16428 + move-result v4
16430 + if-eqz v4, :cond_4af
16432 + const/4 v4, 0x0
16434 + invoke-interface {v13, v4}, Landroid/database/Cursor;->getInt(I)I
16436 + move-result v4
16438 + invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
16440 + move-result-object v17
16442 + const-string v4, "allowed_contacts"
16444 + const-string/jumbo v5, "settings_id=?"
16446 + const/4 v6, 0x1
16448 + new-array v6, v6, [Ljava/lang/String;
16450 + const/4 v7, 0x0
16452 + invoke-virtual/range {v17 .. v17}, Ljava/lang/Integer;->toString()Ljava/lang/String;
16454 + move-result-object v8
16456 + aput-object v8, v6, v7
16458 + invoke-virtual {v3, v4, v5, v6}, Landroid/database/sqlite/SQLiteDatabase;->delete(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)I
16460 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getAllowedContacts()[I
16462 + move-result-object v11
16464 + if-eqz v11, :cond_4af
16466 + new-instance v12, Landroid/content/ContentValues;
16468 + invoke-direct {v12}, Landroid/content/ContentValues;-><init>()V
16470 + const/4 v15, 0x0
16472 + :goto_404
16473 + array-length v4, v11
16475 + if-ge v15, v4, :cond_4af
16477 + const-string/jumbo v4, "settings_id"
16479 + move-object/from16 v0, v17
16481 + invoke-virtual {v12, v4, v0}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Integer;)V
16483 + const-string v4, "contact_id"
16485 + aget v5, v11, v15
16487 + invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
16489 + move-result-object v5
16491 + invoke-virtual {v12, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Integer;)V
16493 + const-string v4, "allowed_contacts"
16495 + const/4 v5, 0x0
16497 + invoke-virtual {v3, v4, v5, v12}, Landroid/database/sqlite/SQLiteDatabase;->insert(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J
16499 + move-result-wide v4
16501 + const-wide/16 v6, -0x1
16503 + cmp-long v4, v4, v6
16505 + if-nez v4, :cond_430
16507 + new-instance v4, Ljava/lang/Exception;
16509 + const-string/jumbo v5, "saveSettings - failed to update database entry (contacts)"
16511 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
16513 + throw v4
16515 + :cond_430
16516 + add-int/lit8 v15, v15, 0x1
16518 + goto :goto_404
16520 + :cond_433
16521 + invoke-interface {v13}, Landroid/database/Cursor;->getCount()I
16523 + move-result v4
16525 + if-nez v4, :cond_49f
16527 + const-string/jumbo v4, "settings"
16529 + const/4 v5, 0x0
16531 + move-object/from16 v0, v22
16533 + invoke-virtual {v3, v4, v5, v0}, Landroid/database/sqlite/SQLiteDatabase;->insert(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J
16535 + move-result-wide v20
16537 + const-wide/16 v4, -0x1
16539 + cmp-long v4, v20, v4
16541 + if-nez v4, :cond_451
16543 + new-instance v4, Ljava/lang/Exception;
16545 + const-string v5, "PrivacyPersistenceAdapter:saveSettings - failed to insert new record into DB"
16547 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
16549 + throw v4
16551 + :cond_451
16552 + const-string v4, "allowed_contacts"
16554 + const-string/jumbo v5, "settings_id=?"
16556 + const/4 v6, 0x1
16558 + new-array v6, v6, [Ljava/lang/String;
16560 + const/4 v7, 0x0
16562 + invoke-static/range {v20 .. v21}, Ljava/lang/Long;->toString(J)Ljava/lang/String;
16564 + move-result-object v8
16566 + aput-object v8, v6, v7
16568 + invoke-virtual {v3, v4, v5, v6}, Landroid/database/sqlite/SQLiteDatabase;->delete(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)I
16570 + invoke-virtual/range {p1 .. p1}, Landroid/privacy/PrivacySettings;->getAllowedContacts()[I
16572 + move-result-object v11
16574 + if-eqz v11, :cond_4af
16576 + new-instance v12, Landroid/content/ContentValues;
16578 + invoke-direct {v12}, Landroid/content/ContentValues;-><init>()V
16580 + const/4 v15, 0x0
16582 + :goto_46f
16583 + array-length v4, v11
16585 + if-ge v15, v4, :cond_4af
16587 + const-string/jumbo v4, "settings_id"
16589 + invoke-static/range {v20 .. v21}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
16591 + move-result-object v5
16593 + invoke-virtual {v12, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Long;)V
16595 + const-string v4, "contact_id"
16597 + aget v5, v11, v15
16599 + invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
16601 + move-result-object v5
16603 + invoke-virtual {v12, v4, v5}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Integer;)V
16605 + const-string v4, "allowed_contacts"
16607 + const/4 v5, 0x0
16609 + invoke-virtual {v3, v4, v5, v12}, Landroid/database/sqlite/SQLiteDatabase;->insert(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J
16611 + move-result-wide v4
16613 + const-wide/16 v6, -0x1
16615 + cmp-long v4, v4, v6
16617 + if-nez v4, :cond_49c
16619 + new-instance v4, Ljava/lang/Exception;
16621 + const-string v5, "PrivacyPersistenceAdapter:saveSettings:failed to update database entry (contacts)"
16623 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
16625 + throw v4
16627 + :cond_49c
16628 + add-int/lit8 v15, v15, 0x1
16630 + goto :goto_46f
16632 + :cond_49f
16633 + new-instance v4, Ljava/lang/Exception;
16635 + const-string v5, "PrivacyPersistenceAdapter:saveSettings:duplicate entries in the privacy.db"
16637 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
16639 + throw v4
16641 + :cond_4a7
16642 + new-instance v4, Ljava/lang/Exception;
16644 + const-string v5, "PrivacyPersistenceAdapter:saveSettings:cursor is null, database access failed"
16646 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
16648 + throw v4
16650 + :cond_4af
16651 + const-string/jumbo v4, "systemLogsSetting"
16653 + move-object/from16 v0, p0
16655 + move-object/from16 v1, v18
16657 + move-object/from16 v2, p1
16659 + invoke-direct {v0, v4, v1, v2}, Landroid/privacy/PrivacyPersistenceAdapter;->writeExternalSettings(Ljava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)Z
16661 + move-result v4
16663 + if-nez v4, :cond_4c6
16665 + new-instance v4, Ljava/lang/Exception;
16667 + const-string v5, "PrivacyPersistenceAdapter:saveSettings:failed to write systemLogsSettings file"
16669 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
16671 + throw v4
16673 + :cond_4c6
16674 + const-string v4, "ipTableProtectSetting"
16676 + move-object/from16 v0, p0
16678 + move-object/from16 v1, v18
16680 + move-object/from16 v2, p1
16682 + invoke-direct {v0, v4, v1, v2}, Landroid/privacy/PrivacyPersistenceAdapter;->writeExternalSettings(Ljava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)Z
16684 + move-result v4
16686 + if-nez v4, :cond_4dc
16688 + new-instance v4, Ljava/lang/Exception;
16690 + const-string v5, "PrivacyPersistenceAdapter:saveSettings:failed to write ipTableProtectSetting file"
16692 + invoke-direct {v4, v5}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
16694 + throw v4
16696 + :cond_4dc
16697 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->setTransactionSuccessful()V
16699 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->settingsCache:Landroid/util/LruCache;
16701 + move-object/from16 v0, v18
16703 + invoke-virtual {v4, v0}, Landroid/util/LruCache;->remove(Ljava/lang/Object;)Ljava/lang/Object;
16704 + :try_end_4e6
16705 + .catchall {:try_start_341 .. :try_end_4e6} :catchall_2fc
16707 + :try_start_4e6
16708 + invoke-virtual {v3}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V
16710 + if-eqz v13, :cond_4ee
16712 + invoke-interface {v13}, Landroid/database/Cursor;->close()V
16713 + :try_end_4ee
16714 + .catchall {:try_start_4e6 .. :try_end_4ee} :catchall_306
16716 + :cond_4ee
16717 + :try_start_4ee
16718 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
16720 + invoke-interface {v4}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
16722 + move-result-object v4
16724 + invoke-interface {v4}, Ljava/util/concurrent/locks/Lock;->unlock()V
16725 + :try_end_4f7
16726 + .catchall {:try_start_4ee .. :try_end_4f7} :catchall_33c
16727 + .catch Ljava/lang/Exception; {:try_start_4ee .. :try_end_4f7} :catch_311
16729 + const/16 v19, 0x1
16731 + :cond_4f9
16732 + invoke-direct/range {p0 .. p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
16734 + goto/16 :goto_335
16735 +.end method
16737 +.method public setValue(Ljava/lang/String;Ljava/lang/String;)Z
16738 + .registers 11
16740 + const/4 v3, 0x0
16742 + const-string v4, "PrivacyPersistenceAdapter"
16744 + new-instance v5, Ljava/lang/StringBuilder;
16746 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
16748 + const-string/jumbo v6, "setValue - name "
16750 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
16752 + move-result-object v5
16754 + invoke-virtual {v5, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
16756 + move-result-object v5
16758 + const-string v6, " value "
16760 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
16762 + move-result-object v5
16764 + invoke-virtual {v5, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
16766 + move-result-object v5
16768 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
16770 + move-result-object v5
16772 + invoke-static {v4, v5}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
16774 + new-instance v2, Landroid/content/ContentValues;
16776 + invoke-direct {v2}, Landroid/content/ContentValues;-><init>()V
16778 + const-string/jumbo v4, "name"
16780 + invoke-virtual {v2, v4, p1}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
16782 + const-string/jumbo v4, "value"
16784 + invoke-virtual {v2, v4, p2}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
16786 + const/4 v1, 0x0
16788 + :try_start_36
16789 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
16791 + monitor-enter v4
16792 + :try_end_39
16793 + .catchall {:try_start_36 .. :try_end_39} :catchall_75
16795 + :try_start_39
16796 + sget-object v5, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
16798 + sget-object v5, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
16800 + invoke-virtual {v5}, Ljava/lang/Integer;->intValue()I
16802 + move-result v5
16804 + add-int/lit8 v5, v5, 0x1
16806 + invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
16808 + move-result-object v5
16810 + sput-object v5, Landroid/privacy/PrivacyPersistenceAdapter;->sDbAccessThreads:Ljava/lang/Integer;
16812 + monitor-exit v4
16813 + :try_end_4a
16814 + .catchall {:try_start_39 .. :try_end_4a} :catchall_72
16816 + :try_start_4a
16817 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->getDatabase()Landroid/database/sqlite/SQLiteDatabase;
16819 + move-result-object v0
16821 + if-eqz v0, :cond_56
16823 + invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabase;->isOpen()Z
16825 + move-result v4
16827 + if-nez v4, :cond_7a
16829 + :cond_56
16830 + const-string v4, "PrivacyPersistenceAdapter"
16832 + new-instance v5, Ljava/lang/StringBuilder;
16834 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
16836 + const-string v6, "PrivacyPersistenceAdapter:setValue: Database not obtained while setting value for name: "
16838 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
16840 + move-result-object v5
16842 + invoke-virtual {v5, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
16844 + move-result-object v5
16846 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
16848 + move-result-object v5
16850 + invoke-static {v4, v5}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
16851 + :try_end_6e
16852 + .catchall {:try_start_4a .. :try_end_6e} :catchall_75
16854 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
16856 + :goto_71
16857 + return v3
16859 + :catchall_72
16860 + move-exception v3
16862 + :try_start_73
16863 + monitor-exit v4
16864 + :try_end_74
16865 + .catchall {:try_start_73 .. :try_end_74} :catchall_72
16867 + :try_start_74
16868 + throw v3
16869 + :try_end_75
16870 + .catchall {:try_start_74 .. :try_end_75} :catchall_75
16872 + :catchall_75
16873 + move-exception v3
16875 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
16877 + throw v3
16879 + :cond_7a
16880 + :try_start_7a
16881 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
16883 + invoke-interface {v4}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
16885 + move-result-object v4
16887 + invoke-interface {v4}, Ljava/util/concurrent/locks/Lock;->lock()V
16888 + :try_end_83
16889 + .catchall {:try_start_7a .. :try_end_83} :catchall_75
16891 + :try_start_83
16892 + const-string/jumbo v4, "map"
16894 + const/4 v5, 0x0
16896 + invoke-virtual {v0, v4, v5, v2}, Landroid/database/sqlite/SQLiteDatabase;->replace(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J
16897 + :try_end_8a
16898 + .catchall {:try_start_83 .. :try_end_8a} :catchall_a2
16900 + move-result-wide v4
16902 + const-wide/16 v6, -0x1
16904 + cmp-long v4, v4, v6
16906 + if-eqz v4, :cond_a0
16908 + const/4 v1, 0x1
16910 + :goto_92
16911 + :try_start_92
16912 + sget-object v3, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
16914 + invoke-interface {v3}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
16916 + move-result-object v3
16918 + invoke-interface {v3}, Ljava/util/concurrent/locks/Lock;->unlock()V
16919 + :try_end_9b
16920 + .catchall {:try_start_92 .. :try_end_9b} :catchall_75
16922 + invoke-direct {p0}, Landroid/privacy/PrivacyPersistenceAdapter;->closeIdleDatabase()V
16924 + move v3, v1
16926 + goto :goto_71
16928 + :cond_a0
16929 + move v1, v3
16931 + goto :goto_92
16933 + :catchall_a2
16934 + move-exception v3
16936 + :try_start_a3
16937 + sget-object v4, Landroid/privacy/PrivacyPersistenceAdapter;->sDbLock:Ljava/util/concurrent/locks/ReadWriteLock;
16939 + invoke-interface {v4}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
16941 + move-result-object v4
16943 + invoke-interface {v4}, Ljava/util/concurrent/locks/Lock;->unlock()V
16945 + throw v3
16946 + :try_end_ad
16947 + .catchall {:try_start_a3 .. :try_end_ad} :catchall_75
16948 +.end method
16949 diff -Npru stock-framework/smali/android/privacy/PrivacySettings$1.smali pdroid-framework/smali/android/privacy/PrivacySettings$1.smali
16950 --- stock-framework/smali/android/privacy/PrivacySettings$1.smali 1969-12-31 16:00:00.000000000 -0800
16951 +++ pdroid-framework/smali/android/privacy/PrivacySettings$1.smali 2013-08-10 20:37:42.495213442 -0700
16952 @@ -0,0 +1,77 @@
16953 +.class final Landroid/privacy/PrivacySettings$1;
16954 +.super Ljava/lang/Object;
16955 +.source "PrivacySettings.java"
16957 +# interfaces
16958 +.implements Landroid/os/Parcelable$Creator;
16961 +# annotations
16962 +.annotation system Ldalvik/annotation/EnclosingClass;
16963 + value = Landroid/privacy/PrivacySettings;
16964 +.end annotation
16966 +.annotation system Ldalvik/annotation/InnerClass;
16967 + accessFlags = 0x8
16968 + name = null
16969 +.end annotation
16971 +.annotation system Ldalvik/annotation/Signature;
16972 + value = {
16973 + "Ljava/lang/Object;",
16974 + "Landroid/os/Parcelable$Creator",
16975 + "<",
16976 + "Landroid/privacy/PrivacySettings;",
16977 + ">;"
16979 +.end annotation
16982 +# direct methods
16983 +.method constructor <init>()V
16984 + .registers 1
16986 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
16988 + return-void
16989 +.end method
16992 +# virtual methods
16993 +.method public createFromParcel(Landroid/os/Parcel;)Landroid/privacy/PrivacySettings;
16994 + .registers 3
16996 + new-instance v0, Landroid/privacy/PrivacySettings;
16998 + invoke-direct {v0, p1}, Landroid/privacy/PrivacySettings;-><init>(Landroid/os/Parcel;)V
17000 + return-object v0
17001 +.end method
17003 +.method public bridge synthetic createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
17004 + .registers 3
17006 + invoke-virtual {p0, p1}, Landroid/privacy/PrivacySettings$1;->createFromParcel(Landroid/os/Parcel;)Landroid/privacy/PrivacySettings;
17008 + move-result-object v0
17010 + return-object v0
17011 +.end method
17013 +.method public newArray(I)[Landroid/privacy/PrivacySettings;
17014 + .registers 3
17016 + new-array v0, p1, [Landroid/privacy/PrivacySettings;
17018 + return-object v0
17019 +.end method
17021 +.method public bridge synthetic newArray(I)[Ljava/lang/Object;
17022 + .registers 3
17024 + invoke-virtual {p0, p1}, Landroid/privacy/PrivacySettings$1;->newArray(I)[Landroid/privacy/PrivacySettings;
17026 + move-result-object v0
17028 + return-object v0
17029 +.end method
17030 diff -Npru stock-framework/smali/android/privacy/PrivacySettingsManagerService.smali pdroid-framework/smali/android/privacy/PrivacySettingsManagerService.smali
17031 --- stock-framework/smali/android/privacy/PrivacySettingsManagerService.smali 1969-12-31 16:00:00.000000000 -0800
17032 +++ pdroid-framework/smali/android/privacy/PrivacySettingsManagerService.smali 2013-08-10 20:37:42.499213442 -0700
17033 @@ -0,0 +1,677 @@
17034 +.class public final Landroid/privacy/PrivacySettingsManagerService;
17035 +.super Landroid/privacy/IPrivacySettingsManager$Stub;
17036 +.source "PrivacySettingsManagerService.java"
17039 +# static fields
17040 +.field static final API_VERSION:D = 1.51
17042 +.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"
17044 +.field static final MOD_VERSION:D = 1.0
17046 +.field private static final READ_PRIVACY_SETTINGS:Ljava/lang/String; = "android.privacy.READ_PRIVACY_SETTINGS"
17048 +.field private static final TAG:Ljava/lang/String; = "PrivacySettingsManagerService"
17050 +.field private static final WRITE_PRIVACY_SETTINGS:Ljava/lang/String; = "android.privacy.WRITE_PRIVACY_SETTINGS"
17052 +.field public static obs:Landroid/privacy/PrivacyFileObserver;
17054 +.field private static sendNotifications:Z
17057 +# instance fields
17058 +.field private bootCompleted:Z
17060 +.field private context:Landroid/content/Context;
17062 +.field private enabled:Z
17064 +.field private notificationsEnabled:Z
17066 +.field private persistenceAdapter:Landroid/privacy/PrivacyPersistenceAdapter;
17069 +# direct methods
17070 +.method static constructor <clinit>()V
17071 + .registers 1
17073 + const/4 v0, 0x1
17075 + sput-boolean v0, Landroid/privacy/PrivacySettingsManagerService;->sendNotifications:Z
17077 + return-void
17078 +.end method
17080 +.method public constructor <init>(Landroid/content/Context;)V
17081 + .registers 5
17083 + invoke-direct {p0}, Landroid/privacy/IPrivacySettingsManager$Stub;-><init>()V
17085 + const-string v0, "PrivacySettingsManagerService"
17087 + new-instance v1, Ljava/lang/StringBuilder;
17089 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
17091 + const-string v2, "PrivacySettingsManagerService - initializing for package: "
17093 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
17095 + move-result-object v1
17097 + invoke-virtual {p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
17099 + move-result-object v2
17101 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
17103 + move-result-object v1
17105 + const-string v2, " UID: "
17107 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
17109 + move-result-object v1
17111 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
17113 + move-result v2
17115 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
17117 + move-result-object v1
17119 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
17121 + move-result-object v1
17123 + invoke-static {v0, v1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
17125 + iput-object p1, p0, Landroid/privacy/PrivacySettingsManagerService;->context:Landroid/content/Context;
17127 + new-instance v0, Landroid/privacy/PrivacyPersistenceAdapter;
17129 + invoke-direct {v0, p1}, Landroid/privacy/PrivacyPersistenceAdapter;-><init>(Landroid/content/Context;)V
17131 + iput-object v0, p0, Landroid/privacy/PrivacySettingsManagerService;->persistenceAdapter:Landroid/privacy/PrivacyPersistenceAdapter;
17133 + new-instance v0, Landroid/privacy/PrivacyFileObserver;
17135 + const-string v1, "/data/system/privacy"
17137 + invoke-direct {v0, v1, p0}, Landroid/privacy/PrivacyFileObserver;-><init>(Ljava/lang/String;Landroid/privacy/PrivacySettingsManagerService;)V
17139 + sput-object v0, Landroid/privacy/PrivacySettingsManagerService;->obs:Landroid/privacy/PrivacyFileObserver;
17141 + iget-object v0, p0, Landroid/privacy/PrivacySettingsManagerService;->persistenceAdapter:Landroid/privacy/PrivacyPersistenceAdapter;
17143 + const-string v1, "enabled"
17145 + invoke-virtual {v0, v1}, Landroid/privacy/PrivacyPersistenceAdapter;->getValue(Ljava/lang/String;)Ljava/lang/String;
17147 + move-result-object v0
17149 + const-string v1, "1"
17151 + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
17153 + move-result v0
17155 + iput-boolean v0, p0, Landroid/privacy/PrivacySettingsManagerService;->enabled:Z
17157 + iget-object v0, p0, Landroid/privacy/PrivacySettingsManagerService;->persistenceAdapter:Landroid/privacy/PrivacyPersistenceAdapter;
17159 + const-string/jumbo v1, "notifications_enabled"
17161 + invoke-virtual {v0, v1}, Landroid/privacy/PrivacyPersistenceAdapter;->getValue(Ljava/lang/String;)Ljava/lang/String;
17163 + move-result-object v0
17165 + const-string v1, "1"
17167 + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
17169 + move-result v0
17171 + iput-boolean v0, p0, Landroid/privacy/PrivacySettingsManagerService;->notificationsEnabled:Z
17173 + const/4 v0, 0x0
17175 + iput-boolean v0, p0, Landroid/privacy/PrivacySettingsManagerService;->bootCompleted:Z
17177 + return-void
17178 +.end method
17180 +.method private checkCallerCanReadOrThrow()V
17181 + .registers 4
17183 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
17185 + move-result v0
17187 + const/16 v1, 0x3e8
17189 + if-ne v0, v1, :cond_9
17191 + :goto_8
17192 + return-void
17194 + :cond_9
17195 + iget-object v0, p0, Landroid/privacy/PrivacySettingsManagerService;->context:Landroid/content/Context;
17197 + const-string v1, "android.privacy.READ_PRIVACY_SETTINGS"
17199 + const-string v2, "Requires READ_PRIVACY_SETTINGS"
17201 + invoke-virtual {v0, v1, v2}, Landroid/content/Context;->enforceCallingPermission(Ljava/lang/String;Ljava/lang/String;)V
17203 + goto :goto_8
17204 +.end method
17206 +.method private checkCallerCanReadSettings()Z
17207 + .registers 3
17209 + :try_start_0
17210 + invoke-direct {p0}, Landroid/privacy/PrivacySettingsManagerService;->checkCallerCanReadOrThrow()V
17211 + :try_end_3
17212 + .catch Ljava/lang/SecurityException; {:try_start_0 .. :try_end_3} :catch_5
17214 + const/4 v1, 0x1
17216 + :goto_4
17217 + return v1
17219 + :catch_5
17220 + move-exception v0
17222 + const/4 v1, 0x0
17224 + goto :goto_4
17225 +.end method
17227 +.method private checkCallerCanWriteOrThrow()V
17228 + .registers 4
17229 + .annotation system Ldalvik/annotation/Throws;
17230 + value = {
17231 + Landroid/os/RemoteException;
17233 + .end annotation
17235 + iget-object v0, p0, Landroid/privacy/PrivacySettingsManagerService;->context:Landroid/content/Context;
17237 + const-string v1, "android.privacy.WRITE_PRIVACY_SETTINGS"
17239 + const-string v2, "Requires WRITE_PRIVACY_SETTINGS"
17241 + invoke-virtual {v0, v1, v2}, Landroid/content/Context;->enforceCallingPermission(Ljava/lang/String;Ljava/lang/String;)V
17243 + return-void
17244 +.end method
17246 +.method private checkCallerCanWriteSettings()Z
17247 + .registers 3
17248 + .annotation system Ldalvik/annotation/Throws;
17249 + value = {
17250 + Landroid/os/RemoteException;
17252 + .end annotation
17254 + :try_start_0
17255 + invoke-direct {p0}, Landroid/privacy/PrivacySettingsManagerService;->checkCallerCanWriteOrThrow()V
17256 + :try_end_3
17257 + .catch Ljava/lang/SecurityException; {:try_start_0 .. :try_end_3} :catch_5
17259 + const/4 v1, 0x1
17261 + :goto_4
17262 + return v1
17264 + :catch_5
17265 + move-exception v0
17267 + const/4 v1, 0x0
17269 + goto :goto_4
17270 +.end method
17273 +# virtual methods
17274 +.method public addObserver(Ljava/lang/String;)V
17275 + .registers 3
17276 + .annotation system Ldalvik/annotation/Throws;
17277 + value = {
17278 + Landroid/os/RemoteException;
17280 + .end annotation
17282 + invoke-direct {p0}, Landroid/privacy/PrivacySettingsManagerService;->checkCallerCanWriteOrThrow()V
17284 + sget-object v0, Landroid/privacy/PrivacySettingsManagerService;->obs:Landroid/privacy/PrivacyFileObserver;
17286 + invoke-virtual {v0, p1}, Landroid/privacy/PrivacyFileObserver;->addObserver(Ljava/lang/String;)V
17288 + return-void
17289 +.end method
17291 +.method public deleteSettings(Ljava/lang/String;)Z
17292 + .registers 7
17293 + .annotation system Ldalvik/annotation/Throws;
17294 + value = {
17295 + Landroid/os/RemoteException;
17297 + .end annotation
17299 + const/4 v4, 0x1
17301 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
17303 + move-result v2
17305 + const/16 v3, 0x3e8
17307 + if-eq v2, v3, :cond_c
17309 + invoke-direct {p0}, Landroid/privacy/PrivacySettingsManagerService;->checkCallerCanWriteOrThrow()V
17311 + :cond_c
17312 + iget-object v2, p0, Landroid/privacy/PrivacySettingsManagerService;->persistenceAdapter:Landroid/privacy/PrivacyPersistenceAdapter;
17314 + invoke-virtual {v2, p1}, Landroid/privacy/PrivacyPersistenceAdapter;->deleteSettings(Ljava/lang/String;)Z
17316 + move-result v1
17318 + new-instance v2, Ljava/lang/StringBuilder;
17320 + invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
17322 + const-string v3, "/data/system/privacy/"
17324 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
17326 + move-result-object v2
17328 + invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
17330 + move-result-object v2
17332 + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
17334 + move-result-object v0
17336 + new-instance v2, Ljava/io/File;
17338 + invoke-direct {v2, v0}, Ljava/io/File;-><init>(Ljava/lang/String;)V
17340 + invoke-virtual {v2}, Ljava/io/File;->exists()Z
17342 + move-result v2
17344 + if-eqz v2, :cond_38
17346 + if-ne v1, v4, :cond_38
17348 + sget-object v2, Landroid/privacy/PrivacySettingsManagerService;->obs:Landroid/privacy/PrivacyFileObserver;
17350 + invoke-virtual {v2, v0}, Landroid/privacy/PrivacyFileObserver;->addObserver(Ljava/lang/String;)V
17352 + :cond_37
17353 + :goto_37
17354 + return v1
17356 + :cond_38
17357 + if-ne v1, v4, :cond_37
17359 + sget-object v2, Landroid/privacy/PrivacySettingsManagerService;->obs:Landroid/privacy/PrivacyFileObserver;
17361 + iget-object v2, v2, Landroid/privacy/PrivacyFileObserver;->children:Ljava/util/HashMap;
17363 + invoke-virtual {v2, v0}, Ljava/util/HashMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;
17365 + goto :goto_37
17366 +.end method
17368 +.method public getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
17369 + .registers 4
17371 + iget-boolean v0, p0, Landroid/privacy/PrivacySettingsManagerService;->enabled:Z
17373 + if-nez v0, :cond_2e
17375 + iget-object v0, p0, Landroid/privacy/PrivacySettingsManagerService;->context:Landroid/content/Context;
17377 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
17379 + move-result-object v0
17381 + const-string v1, "com.privacy.pdroid"
17383 + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
17385 + move-result v0
17387 + if-nez v0, :cond_2e
17389 + iget-object v0, p0, Landroid/privacy/PrivacySettingsManagerService;->context:Landroid/content/Context;
17391 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
17393 + move-result-object v0
17395 + const-string v1, "com.privacy.pdroid.Addon"
17397 + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
17399 + move-result v0
17401 + if-nez v0, :cond_2e
17403 + iget-object v0, p0, Landroid/privacy/PrivacySettingsManagerService;->context:Landroid/content/Context;
17405 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
17407 + move-result-object v0
17409 + const-string v1, "com.android.privacy.pdroid.extension"
17411 + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
17413 + move-result v0
17415 + if-eqz v0, :cond_35
17417 + :cond_2e
17418 + iget-object v0, p0, Landroid/privacy/PrivacySettingsManagerService;->persistenceAdapter:Landroid/privacy/PrivacyPersistenceAdapter;
17420 + invoke-virtual {v0, p1}, Landroid/privacy/PrivacyPersistenceAdapter;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
17422 + move-result-object v0
17424 + :goto_34
17425 + return-object v0
17427 + :cond_35
17428 + const/4 v0, 0x0
17430 + goto :goto_34
17431 +.end method
17433 +.method public notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
17434 + .registers 8
17436 + iget-boolean v1, p0, Landroid/privacy/PrivacySettingsManagerService;->bootCompleted:Z
17438 + if-eqz v1, :cond_38
17440 + iget-boolean v1, p0, Landroid/privacy/PrivacySettingsManagerService;->notificationsEnabled:Z
17442 + if-eqz v1, :cond_38
17444 + sget-boolean v1, Landroid/privacy/PrivacySettingsManagerService;->sendNotifications:Z
17446 + if-eqz v1, :cond_38
17448 + new-instance v0, Landroid/content/Intent;
17450 + invoke-direct {v0}, Landroid/content/Intent;-><init>()V
17452 + const-string v1, "com.privacy.pdroid.PRIVACY_NOTIFICATION"
17454 + invoke-virtual {v0, v1}, Landroid/content/Intent;->setAction(Ljava/lang/String;)Landroid/content/Intent;
17456 + const-string/jumbo v1, "packageName"
17458 + invoke-virtual {v0, v1, p1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
17460 + const-string/jumbo v1, "uid"
17462 + const/4 v2, -0x1
17464 + invoke-virtual {v0, v1, v2}, Landroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent;
17466 + const-string v1, "accessMode"
17468 + invoke-virtual {v0, v1, p2}, Landroid/content/Intent;->putExtra(Ljava/lang/String;B)Landroid/content/Intent;
17470 + const-string v1, "dataType"
17472 + invoke-virtual {v0, v1, p3}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
17474 + const-string/jumbo v1, "output"
17476 + invoke-virtual {v0, v1, p4}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
17478 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManagerService;->context:Landroid/content/Context;
17480 + invoke-virtual {v1, v0}, Landroid/content/Context;->sendBroadcast(Landroid/content/Intent;)V
17482 + :cond_38
17483 + return-void
17484 +.end method
17486 +.method public purgeSettings()Z
17487 + .registers 2
17489 + iget-object v0, p0, Landroid/privacy/PrivacySettingsManagerService;->persistenceAdapter:Landroid/privacy/PrivacyPersistenceAdapter;
17491 + invoke-virtual {v0}, Landroid/privacy/PrivacyPersistenceAdapter;->purgeSettings()Z
17493 + move-result v0
17495 + return v0
17496 +.end method
17498 +.method public registerObservers()V
17499 + .registers 3
17500 + .annotation system Ldalvik/annotation/Throws;
17501 + value = {
17502 + Landroid/os/RemoteException;
17504 + .end annotation
17506 + invoke-direct {p0}, Landroid/privacy/PrivacySettingsManagerService;->checkCallerCanWriteOrThrow()V
17508 + new-instance v0, Landroid/privacy/PrivacyFileObserver;
17510 + const-string v1, "/data/system/privacy"
17512 + invoke-direct {v0, v1, p0}, Landroid/privacy/PrivacyFileObserver;-><init>(Ljava/lang/String;Landroid/privacy/PrivacySettingsManagerService;)V
17514 + sput-object v0, Landroid/privacy/PrivacySettingsManagerService;->obs:Landroid/privacy/PrivacyFileObserver;
17516 + return-void
17517 +.end method
17519 +.method public saveSettings(Landroid/privacy/PrivacySettings;)Z
17520 + .registers 6
17521 + .annotation system Ldalvik/annotation/Throws;
17522 + value = {
17523 + Landroid/os/RemoteException;
17525 + .end annotation
17527 + const-string v1, "PrivacySettingsManagerService"
17529 + new-instance v2, Ljava/lang/StringBuilder;
17531 + invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
17533 + const-string/jumbo v3, "saveSettings - checking if caller (UID: "
17535 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
17537 + move-result-object v2
17539 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
17541 + move-result v3
17543 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
17545 + move-result-object v2
17547 + const-string v3, ") has sufficient permissions"
17549 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
17551 + move-result-object v2
17553 + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
17555 + move-result-object v2
17557 + invoke-static {v1, v2}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
17559 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
17561 + move-result v1
17563 + const/16 v2, 0x3e8
17565 + if-eq v1, v2, :cond_2e
17567 + invoke-direct {p0}, Landroid/privacy/PrivacySettingsManagerService;->checkCallerCanWriteOrThrow()V
17569 + :cond_2e
17570 + const-string v1, "PrivacySettingsManagerService"
17572 + new-instance v2, Ljava/lang/StringBuilder;
17574 + invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
17576 + const-string/jumbo v3, "saveSettings - "
17578 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
17580 + move-result-object v2
17582 + invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
17584 + move-result-object v2
17586 + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
17588 + move-result-object v2
17590 + invoke-static {v1, v2}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
17592 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManagerService;->persistenceAdapter:Landroid/privacy/PrivacyPersistenceAdapter;
17594 + invoke-virtual {v1, p1}, Landroid/privacy/PrivacyPersistenceAdapter;->saveSettings(Landroid/privacy/PrivacySettings;)Z
17596 + move-result v0
17598 + const/4 v1, 0x1
17600 + if-ne v0, v1, :cond_59
17602 + sget-object v1, Landroid/privacy/PrivacySettingsManagerService;->obs:Landroid/privacy/PrivacyFileObserver;
17604 + invoke-virtual {p1}, Landroid/privacy/PrivacySettings;->getPackageName()Ljava/lang/String;
17606 + move-result-object v2
17608 + invoke-virtual {v1, v2}, Landroid/privacy/PrivacyFileObserver;->addObserver(Ljava/lang/String;)V
17610 + :cond_59
17611 + return v0
17612 +.end method
17614 +.method public setBootCompleted()V
17615 + .registers 2
17617 + const/4 v0, 0x1
17619 + iput-boolean v0, p0, Landroid/privacy/PrivacySettingsManagerService;->bootCompleted:Z
17621 + return-void
17622 +.end method
17624 +.method public setEnabled(Z)Z
17625 + .registers 6
17626 + .annotation system Ldalvik/annotation/Throws;
17627 + value = {
17628 + Landroid/os/RemoteException;
17630 + .end annotation
17632 + const/4 v1, 0x1
17634 + invoke-direct {p0}, Landroid/privacy/PrivacySettingsManagerService;->checkCallerCanWriteOrThrow()V
17636 + if-eqz p1, :cond_15
17638 + const-string v0, "1"
17640 + :goto_8
17641 + iget-object v2, p0, Landroid/privacy/PrivacySettingsManagerService;->persistenceAdapter:Landroid/privacy/PrivacyPersistenceAdapter;
17643 + const-string v3, "enabled"
17645 + invoke-virtual {v2, v3, v0}, Landroid/privacy/PrivacyPersistenceAdapter;->setValue(Ljava/lang/String;Ljava/lang/String;)Z
17647 + move-result v2
17649 + if-eqz v2, :cond_18
17651 + iput-boolean v1, p0, Landroid/privacy/PrivacySettingsManagerService;->enabled:Z
17653 + :goto_14
17654 + return v1
17656 + :cond_15
17657 + const-string v0, "0"
17659 + goto :goto_8
17661 + :cond_18
17662 + const/4 v1, 0x0
17664 + goto :goto_14
17665 +.end method
17667 +.method public setNotificationsEnabled(Z)Z
17668 + .registers 6
17669 + .annotation system Ldalvik/annotation/Throws;
17670 + value = {
17671 + Landroid/os/RemoteException;
17673 + .end annotation
17675 + const/4 v1, 0x1
17677 + invoke-direct {p0}, Landroid/privacy/PrivacySettingsManagerService;->checkCallerCanWriteOrThrow()V
17679 + if-eqz p1, :cond_18
17681 + const-string v0, "1"
17683 + :goto_8
17684 + iget-object v2, p0, Landroid/privacy/PrivacySettingsManagerService;->persistenceAdapter:Landroid/privacy/PrivacyPersistenceAdapter;
17686 + const-string/jumbo v3, "notifications_enabled"
17688 + invoke-virtual {v2, v3, v0}, Landroid/privacy/PrivacyPersistenceAdapter;->setValue(Ljava/lang/String;Ljava/lang/String;)Z
17690 + move-result v2
17692 + if-eqz v2, :cond_1b
17694 + iput-boolean v1, p0, Landroid/privacy/PrivacySettingsManagerService;->notificationsEnabled:Z
17696 + iput-boolean v1, p0, Landroid/privacy/PrivacySettingsManagerService;->bootCompleted:Z
17698 + :goto_17
17699 + return v1
17701 + :cond_18
17702 + const-string v0, "0"
17704 + goto :goto_8
17706 + :cond_1b
17707 + const/4 v1, 0x0
17709 + goto :goto_17
17710 +.end method
17711 diff -Npru stock-framework/smali/android/privacy/PrivacySettingsManager.smali pdroid-framework/smali/android/privacy/PrivacySettingsManager.smali
17712 --- stock-framework/smali/android/privacy/PrivacySettingsManager.smali 1969-12-31 16:00:00.000000000 -0800
17713 +++ pdroid-framework/smali/android/privacy/PrivacySettingsManager.smali 2013-08-10 20:37:42.499213442 -0700
17714 @@ -0,0 +1,528 @@
17715 +.class public final Landroid/privacy/PrivacySettingsManager;
17716 +.super Ljava/lang/Object;
17717 +.source "PrivacySettingsManager.java"
17720 +# static fields
17721 +.field public static final ACTION_PRIVACY_NOTIFICATION:Ljava/lang/String; = "com.privacy.pdroid.PRIVACY_NOTIFICATION"
17723 +.field public static final ACTION_PRIVACY_NOTIFICATION_ADDON:Ljava/lang/String; = "com.privacy.pdroid.PRIVACY_NOTIFICATION_ADDON"
17725 +.field private static final TAG:Ljava/lang/String; = "PrivacySettingsManager"
17728 +# instance fields
17729 +.field private service:Landroid/privacy/IPrivacySettingsManager;
17732 +# direct methods
17733 +.method public constructor <init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
17734 + .registers 3
17736 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
17738 + iput-object p2, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
17740 + return-void
17741 +.end method
17744 +# virtual methods
17745 +.method public addObserver(Ljava/lang/String;)V
17746 + .registers 5
17748 + :try_start_0
17749 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
17751 + if-eqz v1, :cond_a
17753 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
17755 + invoke-interface {v1, p1}, Landroid/privacy/IPrivacySettingsManager;->addObserver(Ljava/lang/String;)V
17757 + :goto_9
17758 + return-void
17760 + :cond_a
17761 + const-string v1, "PrivacySettingsManager"
17763 + const-string v2, "PrivacySettingsManager:addObserver: PrivacySettingsManagerService is null"
17765 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
17766 + :try_end_11
17767 + .catch Landroid/os/RemoteException; {:try_start_0 .. :try_end_11} :catch_12
17769 + goto :goto_9
17771 + :catch_12
17772 + move-exception v0
17774 + const-string v1, "PrivacySettingsManager"
17776 + const-string v2, "RemoteException in addObserver: "
17778 + invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
17780 + goto :goto_9
17781 +.end method
17783 +.method public deleteSettings(Ljava/lang/String;)Z
17784 + .registers 6
17786 + const/4 v1, 0x0
17788 + :try_start_1
17789 + iget-object v2, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
17791 + if-eqz v2, :cond_c
17793 + iget-object v2, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
17795 + invoke-interface {v2, p1}, Landroid/privacy/IPrivacySettingsManager;->deleteSettings(Ljava/lang/String;)Z
17797 + move-result v1
17799 + :goto_b
17800 + return v1
17802 + :cond_c
17803 + const-string v2, "PrivacySettingsManager"
17805 + const-string v3, "PrivacySettingsManager:deleteSettings: PrivacySettingsManagerService is null"
17807 + invoke-static {v2, v3}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
17808 + :try_end_13
17809 + .catch Landroid/os/RemoteException; {:try_start_1 .. :try_end_13} :catch_14
17811 + goto :goto_b
17813 + :catch_14
17814 + move-exception v0
17816 + const-string v2, "PrivacySettingsManager"
17818 + const-string v3, "RemoteException in deleteSettings: "
17820 + invoke-static {v2, v3, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
17822 + goto :goto_b
17823 +.end method
17825 +.method public deleteSettings(Ljava/lang/String;I)Z
17826 + .registers 4
17827 + .annotation runtime Ljava/lang/Deprecated;
17828 + .end annotation
17830 + invoke-virtual {p0, p1}, Landroid/privacy/PrivacySettingsManager;->deleteSettings(Ljava/lang/String;)Z
17832 + move-result v0
17834 + return v0
17835 +.end method
17837 +.method public getApiVersion()D
17838 + .registers 3
17840 + const-wide v0, 0x3ff828f5c28f5c29L
17842 + return-wide v0
17843 +.end method
17845 +.method public getModDetails()Ljava/lang/String;
17846 + .registers 2
17848 + 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"
17850 + return-object v0
17851 +.end method
17853 +.method public getModVersion()D
17854 + .registers 3
17856 + const-wide/high16 v0, 0x3ff0
17858 + return-wide v0
17859 +.end method
17861 +.method public getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
17862 + .registers 6
17864 + const/4 v1, 0x0
17866 + :try_start_1
17867 + iget-object v2, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
17869 + if-eqz v2, :cond_c
17871 + iget-object v2, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
17873 + invoke-interface {v2, p1}, Landroid/privacy/IPrivacySettingsManager;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
17875 + move-result-object v1
17877 + :goto_b
17878 + return-object v1
17880 + :cond_c
17881 + const-string v2, "PrivacySettingsManager"
17883 + const-string v3, "getSettings - PrivacySettingsManagerService is null"
17885 + invoke-static {v2, v3}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
17886 + :try_end_13
17887 + .catch Landroid/os/RemoteException; {:try_start_1 .. :try_end_13} :catch_14
17889 + goto :goto_b
17891 + :catch_14
17892 + move-exception v0
17894 + invoke-virtual {v0}, Landroid/os/RemoteException;->printStackTrace()V
17896 + goto :goto_b
17897 +.end method
17899 +.method public getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
17900 + .registers 4
17901 + .annotation runtime Ljava/lang/Deprecated;
17902 + .end annotation
17904 + invoke-virtual {p0, p1}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
17906 + move-result-object v0
17908 + return-object v0
17909 +.end method
17911 +.method public getVersion()D
17912 + .registers 3
17913 + .annotation runtime Ljava/lang/Deprecated;
17914 + .end annotation
17916 + const-wide v0, 0x3ff828f5c28f5c29L
17918 + return-wide v0
17919 +.end method
17921 +.method public isServiceAvailable()Z
17922 + .registers 2
17924 + iget-object v0, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
17926 + if-eqz v0, :cond_6
17928 + const/4 v0, 0x1
17930 + :goto_5
17931 + return v0
17933 + :cond_6
17934 + const/4 v0, 0x0
17936 + goto :goto_5
17937 +.end method
17939 +.method public notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
17940 + .registers 8
17942 + :try_start_0
17943 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
17945 + if-eqz v1, :cond_a
17947 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
17949 + invoke-interface {v1, p1, p2, p3, p4}, Landroid/privacy/IPrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
17951 + :goto_9
17952 + return-void
17954 + :cond_a
17955 + const-string v1, "PrivacySettingsManager"
17957 + const-string v2, "PrivacySettingsManager:notification: PrivacySettingsManagerService is null"
17959 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
17960 + :try_end_11
17961 + .catch Landroid/os/RemoteException; {:try_start_0 .. :try_end_11} :catch_12
17963 + goto :goto_9
17965 + :catch_12
17966 + move-exception v0
17968 + const-string v1, "PrivacySettingsManager"
17970 + const-string v2, "RemoteException in notification: "
17972 + invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
17974 + goto :goto_9
17975 +.end method
17977 +.method public notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
17978 + .registers 6
17979 + .annotation runtime Ljava/lang/Deprecated;
17980 + .end annotation
17982 + invoke-virtual {p0, p1, p2, p3, p4}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
17984 + return-void
17985 +.end method
17987 +.method public notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
17988 + .registers 7
17989 + .annotation runtime Ljava/lang/Deprecated;
17990 + .end annotation
17992 + invoke-virtual {p0, p1, p3, p4, p5}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;BLjava/lang/String;Ljava/lang/String;)V
17994 + return-void
17995 +.end method
17997 +.method public purgeSettings()Z
17998 + .registers 4
18000 + :try_start_0
18001 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18003 + if-eqz v1, :cond_b
18005 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18007 + invoke-interface {v1}, Landroid/privacy/IPrivacySettingsManager;->purgeSettings()Z
18009 + move-result v1
18011 + :goto_a
18012 + return v1
18014 + :cond_b
18015 + const-string v1, "PrivacySettingsManager"
18017 + const-string v2, "PrivacySettingsManager:purgeSettings: PrivacySettingsManagerService is null"
18019 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
18020 + :try_end_12
18021 + .catch Landroid/os/RemoteException; {:try_start_0 .. :try_end_12} :catch_14
18023 + :goto_12
18024 + const/4 v1, 0x0
18026 + goto :goto_a
18028 + :catch_14
18029 + move-exception v0
18031 + const-string v1, "PrivacySettingsManager"
18033 + const-string v2, "RemoteException in purgeSettings: "
18035 + invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
18037 + goto :goto_12
18038 +.end method
18040 +.method public registerObservers()V
18041 + .registers 4
18043 + :try_start_0
18044 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18046 + if-eqz v1, :cond_a
18048 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18050 + invoke-interface {v1}, Landroid/privacy/IPrivacySettingsManager;->registerObservers()V
18052 + :goto_9
18053 + return-void
18055 + :cond_a
18056 + const-string v1, "PrivacySettingsManager"
18058 + const-string v2, "PrivacySettingsManager:registerObservers: PrivacySettingsManagerService is null"
18060 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
18061 + :try_end_11
18062 + .catch Landroid/os/RemoteException; {:try_start_0 .. :try_end_11} :catch_12
18064 + goto :goto_9
18066 + :catch_12
18067 + move-exception v0
18069 + const-string v1, "PrivacySettingsManager"
18071 + const-string v2, "RemoteException in registerObservers: "
18073 + invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
18075 + goto :goto_9
18076 +.end method
18078 +.method public saveSettings(Landroid/privacy/PrivacySettings;)Z
18079 + .registers 6
18081 + const/4 v1, 0x0
18083 + :try_start_1
18084 + iget-object v2, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18086 + if-eqz v2, :cond_c
18088 + iget-object v2, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18090 + invoke-interface {v2, p1}, Landroid/privacy/IPrivacySettingsManager;->saveSettings(Landroid/privacy/PrivacySettings;)Z
18092 + move-result v1
18094 + :goto_b
18095 + return v1
18097 + :cond_c
18098 + const-string v2, "PrivacySettingsManager"
18100 + const-string/jumbo v3, "saveSettings - PrivacySettingsManagerService is null"
18102 + invoke-static {v2, v3}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
18103 + :try_end_14
18104 + .catch Landroid/os/RemoteException; {:try_start_1 .. :try_end_14} :catch_15
18106 + goto :goto_b
18108 + :catch_15
18109 + move-exception v0
18111 + const-string v2, "PrivacySettingsManager"
18113 + const-string v3, "RemoteException in saveSettings: "
18115 + invoke-static {v2, v3, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
18117 + goto :goto_b
18118 +.end method
18120 +.method public setBootCompleted()V
18121 + .registers 4
18123 + :try_start_0
18124 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18126 + if-eqz v1, :cond_a
18128 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18130 + invoke-interface {v1}, Landroid/privacy/IPrivacySettingsManager;->setBootCompleted()V
18132 + :goto_9
18133 + return-void
18135 + :cond_a
18136 + const-string v1, "PrivacySettingsManager"
18138 + const-string v2, "PrivacySettingsManager:setBootCompleted: PrivacySettingsManagerService is null"
18140 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
18141 + :try_end_11
18142 + .catch Landroid/os/RemoteException; {:try_start_0 .. :try_end_11} :catch_12
18144 + goto :goto_9
18146 + :catch_12
18147 + move-exception v0
18149 + const-string v1, "PrivacySettingsManager"
18151 + const-string v2, "RemoteException in setBootCompleted: "
18153 + invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
18155 + goto :goto_9
18156 +.end method
18158 +.method public setEnabled(Z)Z
18159 + .registers 5
18161 + :try_start_0
18162 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18164 + if-eqz v1, :cond_b
18166 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18168 + invoke-interface {v1, p1}, Landroid/privacy/IPrivacySettingsManager;->setEnabled(Z)Z
18170 + move-result v1
18172 + :goto_a
18173 + return v1
18175 + :cond_b
18176 + const-string v1, "PrivacySettingsManager"
18178 + const-string v2, "PrivacySettingsManager:setEnabled: PrivacySettingsManagerService is null"
18180 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
18181 + :try_end_12
18182 + .catch Landroid/os/RemoteException; {:try_start_0 .. :try_end_12} :catch_14
18184 + :goto_12
18185 + const/4 v1, 0x0
18187 + goto :goto_a
18189 + :catch_14
18190 + move-exception v0
18192 + const-string v1, "PrivacySettingsManager"
18194 + const-string v2, "RemoteException in setEnabled: "
18196 + invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
18198 + goto :goto_12
18199 +.end method
18201 +.method public setNotificationsEnabled(Z)Z
18202 + .registers 5
18204 + :try_start_0
18205 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18207 + if-eqz v1, :cond_b
18209 + iget-object v1, p0, Landroid/privacy/PrivacySettingsManager;->service:Landroid/privacy/IPrivacySettingsManager;
18211 + invoke-interface {v1, p1}, Landroid/privacy/IPrivacySettingsManager;->setNotificationsEnabled(Z)Z
18213 + move-result v1
18215 + :goto_a
18216 + return v1
18218 + :cond_b
18219 + const-string v1, "PrivacySettingsManager"
18221 + const-string v2, "PrivacySettingsManager:setNotificationsEnabled: PrivacySettingsManagerService is null"
18223 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
18224 + :try_end_12
18225 + .catch Landroid/os/RemoteException; {:try_start_0 .. :try_end_12} :catch_14
18227 + :goto_12
18228 + const/4 v1, 0x0
18230 + goto :goto_a
18232 + :catch_14
18233 + move-exception v0
18235 + const-string v1, "PrivacySettingsManager"
18237 + const-string v2, "RemoteException in setNotificationsEnabled: "
18239 + invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
18241 + goto :goto_12
18242 +.end method
18243 diff -Npru stock-framework/smali/android/privacy/PrivacySettings.smali pdroid-framework/smali/android/privacy/PrivacySettings.smali
18244 --- stock-framework/smali/android/privacy/PrivacySettings.smali 1969-12-31 16:00:00.000000000 -0800
18245 +++ pdroid-framework/smali/android/privacy/PrivacySettings.smali 2013-08-10 20:37:42.499213442 -0700
18246 @@ -0,0 +1,3295 @@
18247 +.class public final Landroid/privacy/PrivacySettings;
18248 +.super Landroid/privacy/PrivacySettingsStub;
18249 +.source "PrivacySettings.java"
18251 +# interfaces
18252 +.implements Landroid/os/Parcelable;
18255 +# static fields
18256 +.field public static final CREATOR:Landroid/os/Parcelable$Creator; = null
18257 + .annotation system Ldalvik/annotation/Signature;
18258 + value = {
18259 + "Landroid/os/Parcelable$Creator",
18260 + "<",
18261 + "Landroid/privacy/PrivacySettings;",
18262 + ">;"
18264 + .end annotation
18265 +.end field
18267 +.field public static final CUSTOM:B = 0x2t
18269 +.field public static final DATA_ACCOUNTS_LIST:Ljava/lang/String; = "accountsList"
18271 +.field public static final DATA_ANDROID_ID:Ljava/lang/String; = "android_id"
18273 +.field public static final DATA_AUTH_TOKENS:Ljava/lang/String; = "authTokens"
18275 +.field public static final DATA_BOOKMARKS:Ljava/lang/String; = "bookmarks"
18277 +.field public static final DATA_CALENDAR:Ljava/lang/String; = "calendar"
18279 +.field public static final DATA_CALL_LOG:Ljava/lang/String; = "callLog"
18281 +.field public static final DATA_CAMERA:Ljava/lang/String; = "camera"
18283 +.field public static final DATA_CONTACTS:Ljava/lang/String; = "contacts"
18285 +.field public static final DATA_DEVICE_ID:Ljava/lang/String; = "deviceID"
18287 +.field public static final DATA_ICC_ACCESS:Ljava/lang/String; = "iccAccess"
18289 +.field public static final DATA_INCOMING_CALL:Ljava/lang/String; = "incomingCall"
18291 +.field public static final DATA_INTENT_BOOT_COMPLETED:Ljava/lang/String; = "intentBootCompleted"
18293 +.field public static final DATA_IP_TABLES:Ljava/lang/String; = "iptables"
18295 +.field public static final DATA_LINE_1_NUMBER:Ljava/lang/String; = "line1Number"
18297 +.field public static final DATA_LOCATION_GPS:Ljava/lang/String; = "locationGPS"
18299 +.field public static final DATA_LOCATION_NETWORK:Ljava/lang/String; = "locationNetwork"
18301 +.field public static final DATA_MMS:Ljava/lang/String; = "mms"
18303 +.field public static final DATA_MMS_SMS:Ljava/lang/String; = "mmsSms"
18305 +.field public static final DATA_NETWORK_INFO_CURRENT:Ljava/lang/String; = "networkInfoCurrent"
18307 +.field public static final DATA_NETWORK_INFO_SIM:Ljava/lang/String; = "networkInfoSIM"
18309 +.field public static final DATA_OUTGOING_CALL:Ljava/lang/String; = "outgoingCall"
18311 +.field public static final DATA_PHONE_CALL:Ljava/lang/String; = "phoneCall"
18313 +.field public static final DATA_RECORD_AUDIO:Ljava/lang/String; = "recordAudio"
18315 +.field public static final DATA_SEND_MMS:Ljava/lang/String; = "sendMms"
18317 +.field public static final DATA_SIM_SERIAL:Ljava/lang/String; = "simSerial"
18319 +.field public static final DATA_SMS:Ljava/lang/String; = "sms"
18321 +.field public static final DATA_SMS_SEND:Ljava/lang/String; = "SmsSend"
18323 +.field public static final DATA_SUBSCRIBER_ID:Ljava/lang/String; = "subscriberID"
18325 +.field public static final DATA_SWITCH_CONNECTIVITY:Ljava/lang/String; = "switchconnectivity"
18327 +.field public static final DATA_SWITCH_WIFI_STATE:Ljava/lang/String; = "switchWifiState"
18329 +.field public static final DATA_SYSTEM_LOGS:Ljava/lang/String; = "systemLogs"
18331 +.field public static final DATA_WIFI_INFO:Ljava/lang/String; = "wifiInfo"
18333 +.field public static final EMPTY:B = 0x1t
18335 +.field public static final ID_PATTERN:[Ljava/lang/String; = null
18337 +.field public static final RANDOM:B = 0x3t
18339 +.field public static final REAL:B = 0x0t
18341 +.field public static final SETTING_NOTIFY_OFF:B = 0x0t
18343 +.field public static final SETTING_NOTIFY_ON:B = 0x1t
18346 +# instance fields
18347 +.field private final _id:Ljava/lang/Integer;
18349 +.field private accountsAuthTokensSetting:B
18351 +.field private accountsSetting:B
18353 +.field private addOnManagementSetting:B
18355 +.field private allowedContacts:[I
18357 +.field private androidID:Ljava/lang/String;
18359 +.field private androidIdSetting:B
18361 +.field private bookmarksSetting:B
18363 +.field private calendarSetting:B
18365 +.field private callLogSetting:B
18367 +.field private cameraSetting:B
18369 +.field private contactsSetting:B
18371 +.field private deviceId:Ljava/lang/String;
18373 +.field private deviceIdSetting:B
18375 +.field private forceOnlineState:B
18377 +.field private iccAccessSetting:B
18379 +.field private incomingCallsSetting:B
18381 +.field private intentBootCompletedSetting:B
18383 +.field private ipTableProtectSetting:B
18385 +.field private line1Number:Ljava/lang/String;
18387 +.field private line1NumberSetting:B
18389 +.field private locationGpsLat:Ljava/lang/String;
18391 +.field private locationGpsLon:Ljava/lang/String;
18393 +.field private locationGpsSetting:B
18395 +.field private locationNetworkLat:Ljava/lang/String;
18397 +.field private locationNetworkLon:Ljava/lang/String;
18399 +.field private locationNetworkSetting:B
18401 +.field private mmsSetting:B
18403 +.field private networkInfoSetting:B
18405 +.field private notificationSetting:B
18407 +.field private outgoingCallsSetting:B
18409 +.field private packageName:Ljava/lang/String;
18411 +.field private phoneCallSetting:B
18413 +.field private recordAudioSetting:B
18415 +.field private sendMmsSetting:B
18417 +.field private simInfoSetting:B
18419 +.field private simSerialNumber:Ljava/lang/String;
18421 +.field private simSerialNumberSetting:B
18423 +.field private smsSendSetting:B
18425 +.field private smsSetting:B
18427 +.field private subscriberId:Ljava/lang/String;
18429 +.field private subscriberIdSetting:B
18431 +.field private switchConnectivitySetting:B
18433 +.field private switchWifiStateSetting:B
18435 +.field private systemLogsSetting:B
18437 +.field private uid:I
18439 +.field private wifiInfoSetting:B
18442 +# direct methods
18443 +.method static constructor <clinit>()V
18444 + .registers 3
18446 + const/16 v0, 0x10
18448 + new-array v0, v0, [Ljava/lang/String;
18450 + const/4 v1, 0x0
18452 + const-string v2, "0"
18454 + aput-object v2, v0, v1
18456 + const/4 v1, 0x1
18458 + const-string v2, "1"
18460 + aput-object v2, v0, v1
18462 + const/4 v1, 0x2
18464 + const-string v2, "2"
18466 + aput-object v2, v0, v1
18468 + const/4 v1, 0x3
18470 + const-string v2, "3"
18472 + aput-object v2, v0, v1
18474 + const/4 v1, 0x4
18476 + const-string v2, "4"
18478 + aput-object v2, v0, v1
18480 + const/4 v1, 0x5
18482 + const-string v2, "5"
18484 + aput-object v2, v0, v1
18486 + const/4 v1, 0x6
18488 + const-string v2, "6"
18490 + aput-object v2, v0, v1
18492 + const/4 v1, 0x7
18494 + const-string v2, "7"
18496 + aput-object v2, v0, v1
18498 + const/16 v1, 0x8
18500 + const-string v2, "8"
18502 + aput-object v2, v0, v1
18504 + const/16 v1, 0x9
18506 + const-string v2, "9"
18508 + aput-object v2, v0, v1
18510 + const/16 v1, 0xa
18512 + const-string v2, "a"
18514 + aput-object v2, v0, v1
18516 + const/16 v1, 0xb
18518 + const-string v2, "b"
18520 + aput-object v2, v0, v1
18522 + const/16 v1, 0xc
18524 + const-string v2, "c"
18526 + aput-object v2, v0, v1
18528 + const/16 v1, 0xd
18530 + const-string v2, "d"
18532 + aput-object v2, v0, v1
18534 + const/16 v1, 0xe
18536 + const-string v2, "e"
18538 + aput-object v2, v0, v1
18540 + const/16 v1, 0xf
18542 + const-string v2, "f"
18544 + aput-object v2, v0, v1
18546 + sput-object v0, Landroid/privacy/PrivacySettings;->ID_PATTERN:[Ljava/lang/String;
18548 + new-instance v0, Landroid/privacy/PrivacySettings$1;
18550 + invoke-direct {v0}, Landroid/privacy/PrivacySettings$1;-><init>()V
18552 + sput-object v0, Landroid/privacy/PrivacySettings;->CREATOR:Landroid/os/Parcelable$Creator;
18554 + return-void
18555 +.end method
18557 +.method public constructor <init>(Landroid/os/Parcel;)V
18558 + .registers 4
18560 + invoke-direct {p0}, Landroid/privacy/PrivacySettingsStub;-><init>()V
18562 + invoke-virtual {p1}, Landroid/os/Parcel;->readInt()I
18564 + move-result v0
18566 + const/4 v1, -0x1
18568 + if-ne v0, v1, :cond_122
18570 + const/4 v1, 0x0
18572 + :goto_b
18573 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->_id:Ljava/lang/Integer;
18575 + invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
18577 + move-result-object v1
18579 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->packageName:Ljava/lang/String;
18581 + invoke-virtual {p1}, Landroid/os/Parcel;->readInt()I
18583 + move-result v1
18585 + iput v1, p0, Landroid/privacy/PrivacySettings;->uid:I
18587 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18589 + move-result v1
18591 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
18593 + invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
18595 + move-result-object v1
18597 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->deviceId:Ljava/lang/String;
18599 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18601 + move-result v1
18603 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
18605 + invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
18607 + move-result-object v1
18609 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->line1Number:Ljava/lang/String;
18611 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18613 + move-result v1
18615 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
18617 + invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
18619 + move-result-object v1
18621 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationGpsLat:Ljava/lang/String;
18623 + invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
18625 + move-result-object v1
18627 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationGpsLon:Ljava/lang/String;
18629 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18631 + move-result v1
18633 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
18635 + invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
18637 + move-result-object v1
18639 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLat:Ljava/lang/String;
18641 + invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
18643 + move-result-object v1
18645 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLon:Ljava/lang/String;
18647 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18649 + move-result v1
18651 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->networkInfoSetting:B
18653 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18655 + move-result v1
18657 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->simInfoSetting:B
18659 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18661 + move-result v1
18663 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
18665 + invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
18667 + move-result-object v1
18669 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->simSerialNumber:Ljava/lang/String;
18671 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18673 + move-result v1
18675 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
18677 + invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
18679 + move-result-object v1
18681 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->subscriberId:Ljava/lang/String;
18683 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18685 + move-result v1
18687 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->accountsSetting:B
18689 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18691 + move-result v1
18693 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->accountsAuthTokensSetting:B
18695 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18697 + move-result v1
18699 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->outgoingCallsSetting:B
18701 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18703 + move-result v1
18705 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->incomingCallsSetting:B
18707 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18709 + move-result v1
18711 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->contactsSetting:B
18713 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18715 + move-result v1
18717 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->calendarSetting:B
18719 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18721 + move-result v1
18723 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->mmsSetting:B
18725 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18727 + move-result v1
18729 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->smsSetting:B
18731 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18733 + move-result v1
18735 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->callLogSetting:B
18737 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18739 + move-result v1
18741 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->bookmarksSetting:B
18743 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18745 + move-result v1
18747 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->systemLogsSetting:B
18749 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18751 + move-result v1
18753 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->notificationSetting:B
18755 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18757 + move-result v1
18759 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->intentBootCompletedSetting:B
18761 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18763 + move-result v1
18765 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->cameraSetting:B
18767 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18769 + move-result v1
18771 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->recordAudioSetting:B
18773 + invoke-virtual {p1}, Landroid/os/Parcel;->createIntArray()[I
18775 + move-result-object v1
18777 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->allowedContacts:[I
18779 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18781 + move-result v1
18783 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->smsSendSetting:B
18785 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18787 + move-result v1
18789 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->phoneCallSetting:B
18791 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18793 + move-result v1
18795 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->ipTableProtectSetting:B
18797 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18799 + move-result v1
18801 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->iccAccessSetting:B
18803 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18805 + move-result v1
18807 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->addOnManagementSetting:B
18809 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18811 + move-result v1
18813 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
18815 + invoke-virtual {p1}, Landroid/os/Parcel;->readString()Ljava/lang/String;
18817 + move-result-object v1
18819 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->androidID:Ljava/lang/String;
18821 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18823 + move-result v1
18825 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->wifiInfoSetting:B
18827 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18829 + move-result v1
18831 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->switchConnectivitySetting:B
18833 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18835 + move-result v1
18837 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->sendMmsSetting:B
18839 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18841 + move-result v1
18843 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->forceOnlineState:B
18845 + invoke-virtual {p1}, Landroid/os/Parcel;->readByte()B
18847 + move-result v1
18849 + iput-byte v1, p0, Landroid/privacy/PrivacySettings;->switchWifiStateSetting:B
18851 + return-void
18853 + :cond_122
18854 + invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
18856 + move-result-object v1
18858 + goto/16 :goto_b
18859 +.end method
18861 +.method public constructor <init>(Ljava/lang/Integer;Ljava/lang/String;I)V
18862 + .registers 7
18864 + const/4 v2, 0x1
18866 + const/4 v1, 0x0
18868 + const/4 v0, 0x0
18870 + invoke-direct {p0}, Landroid/privacy/PrivacySettingsStub;-><init>()V
18872 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->_id:Ljava/lang/Integer;
18874 + iput-object p2, p0, Landroid/privacy/PrivacySettings;->packageName:Ljava/lang/String;
18876 + iput p3, p0, Landroid/privacy/PrivacySettings;->uid:I
18878 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
18880 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->deviceId:Ljava/lang/String;
18882 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
18884 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->line1Number:Ljava/lang/String;
18886 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
18888 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationGpsLat:Ljava/lang/String;
18890 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationGpsLon:Ljava/lang/String;
18892 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
18894 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLat:Ljava/lang/String;
18896 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLon:Ljava/lang/String;
18898 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->networkInfoSetting:B
18900 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->simInfoSetting:B
18902 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
18904 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->simSerialNumber:Ljava/lang/String;
18906 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
18908 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->subscriberId:Ljava/lang/String;
18910 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsSetting:B
18912 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsAuthTokensSetting:B
18914 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->outgoingCallsSetting:B
18916 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->incomingCallsSetting:B
18918 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->contactsSetting:B
18920 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->calendarSetting:B
18922 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->mmsSetting:B
18924 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSetting:B
18926 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->callLogSetting:B
18928 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->bookmarksSetting:B
18930 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->systemLogsSetting:B
18932 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->notificationSetting:B
18934 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->intentBootCompletedSetting:B
18936 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->cameraSetting:B
18938 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->recordAudioSetting:B
18940 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->allowedContacts:[I
18942 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSendSetting:B
18944 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->phoneCallSetting:B
18946 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->ipTableProtectSetting:B
18948 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->iccAccessSetting:B
18950 + iput-byte v2, p0, Landroid/privacy/PrivacySettings;->addOnManagementSetting:B
18952 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
18954 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->androidID:Ljava/lang/String;
18956 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->wifiInfoSetting:B
18958 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->switchConnectivitySetting:B
18960 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->sendMmsSetting:B
18962 + iput-byte v2, p0, Landroid/privacy/PrivacySettings;->forceOnlineState:B
18964 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->switchWifiStateSetting:B
18966 + return-void
18967 +.end method
18969 +.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
18970 + .registers 50
18972 + invoke-direct {p0}, Landroid/privacy/PrivacySettingsStub;-><init>()V
18974 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->_id:Ljava/lang/Integer;
18976 + iput-object p2, p0, Landroid/privacy/PrivacySettings;->packageName:Ljava/lang/String;
18978 + iput p3, p0, Landroid/privacy/PrivacySettings;->uid:I
18980 + iput-byte p4, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
18982 + iput-object p5, p0, Landroid/privacy/PrivacySettings;->deviceId:Ljava/lang/String;
18984 + iput-byte p6, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
18986 + iput-object p7, p0, Landroid/privacy/PrivacySettings;->line1Number:Ljava/lang/String;
18988 + iput-byte p8, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
18990 + iput-object p9, p0, Landroid/privacy/PrivacySettings;->locationGpsLat:Ljava/lang/String;
18992 + iput-object p10, p0, Landroid/privacy/PrivacySettings;->locationGpsLon:Ljava/lang/String;
18994 + iput-byte p11, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
18996 + iput-object p12, p0, Landroid/privacy/PrivacySettings;->locationNetworkLat:Ljava/lang/String;
18998 + iput-object p13, p0, Landroid/privacy/PrivacySettings;->locationNetworkLon:Ljava/lang/String;
19000 + iput-byte p14, p0, Landroid/privacy/PrivacySettings;->networkInfoSetting:B
19002 + move/from16 v0, p15
19004 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->simInfoSetting:B
19006 + move/from16 v0, p16
19008 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
19010 + move-object/from16 v0, p17
19012 + iput-object v0, p0, Landroid/privacy/PrivacySettings;->simSerialNumber:Ljava/lang/String;
19014 + move/from16 v0, p18
19016 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
19018 + move-object/from16 v0, p19
19020 + iput-object v0, p0, Landroid/privacy/PrivacySettings;->subscriberId:Ljava/lang/String;
19022 + move/from16 v0, p20
19024 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsSetting:B
19026 + move/from16 v0, p21
19028 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsAuthTokensSetting:B
19030 + move/from16 v0, p22
19032 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->outgoingCallsSetting:B
19034 + move/from16 v0, p23
19036 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->incomingCallsSetting:B
19038 + move/from16 v0, p24
19040 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->contactsSetting:B
19042 + move/from16 v0, p25
19044 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->calendarSetting:B
19046 + move/from16 v0, p26
19048 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->mmsSetting:B
19050 + move/from16 v0, p27
19052 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSetting:B
19054 + move/from16 v0, p28
19056 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->callLogSetting:B
19058 + move/from16 v0, p29
19060 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->bookmarksSetting:B
19062 + move/from16 v0, p30
19064 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->systemLogsSetting:B
19066 + move/from16 v0, p34
19068 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->notificationSetting:B
19070 + move/from16 v0, p35
19072 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->intentBootCompletedSetting:B
19074 + move/from16 v0, p32
19076 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->cameraSetting:B
19078 + move/from16 v0, p33
19080 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->recordAudioSetting:B
19082 + move-object/from16 v0, p36
19084 + iput-object v0, p0, Landroid/privacy/PrivacySettings;->allowedContacts:[I
19086 + move/from16 v0, p37
19088 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSendSetting:B
19090 + move/from16 v0, p38
19092 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->phoneCallSetting:B
19094 + move/from16 v0, p39
19096 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->ipTableProtectSetting:B
19098 + move/from16 v0, p40
19100 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->iccAccessSetting:B
19102 + move/from16 v0, p41
19104 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->addOnManagementSetting:B
19106 + move/from16 v0, p42
19108 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
19110 + move-object/from16 v0, p43
19112 + iput-object v0, p0, Landroid/privacy/PrivacySettings;->androidID:Ljava/lang/String;
19114 + move/from16 v0, p44
19116 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->wifiInfoSetting:B
19118 + move/from16 v0, p45
19120 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->switchConnectivitySetting:B
19122 + move/from16 v0, p46
19124 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->sendMmsSetting:B
19126 + move/from16 v0, p47
19128 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->forceOnlineState:B
19130 + move/from16 v0, p48
19132 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->switchWifiStateSetting:B
19134 + return-void
19135 +.end method
19137 +.method public constructor <init>(Ljava/lang/Integer;Ljava/lang/String;IZ)V
19138 + .registers 9
19140 + const/4 v3, 0x0
19142 + const/4 v2, 0x3
19144 + const/4 v1, 0x0
19146 + const/4 v0, 0x1
19148 + invoke-direct {p0}, Landroid/privacy/PrivacySettingsStub;-><init>()V
19150 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->_id:Ljava/lang/Integer;
19152 + iput-object p2, p0, Landroid/privacy/PrivacySettings;->packageName:Ljava/lang/String;
19154 + iput p3, p0, Landroid/privacy/PrivacySettings;->uid:I
19156 + if-eqz p4, :cond_68
19158 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
19160 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->deviceId:Ljava/lang/String;
19162 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
19164 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->line1Number:Ljava/lang/String;
19166 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
19168 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationGpsLat:Ljava/lang/String;
19170 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationGpsLon:Ljava/lang/String;
19172 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
19174 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLat:Ljava/lang/String;
19176 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLon:Ljava/lang/String;
19178 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->networkInfoSetting:B
19180 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->simInfoSetting:B
19182 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
19184 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->simSerialNumber:Ljava/lang/String;
19186 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
19188 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->subscriberId:Ljava/lang/String;
19190 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsSetting:B
19192 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsAuthTokensSetting:B
19194 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->outgoingCallsSetting:B
19196 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->incomingCallsSetting:B
19198 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->contactsSetting:B
19200 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->calendarSetting:B
19202 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->mmsSetting:B
19204 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSetting:B
19206 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->callLogSetting:B
19208 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->bookmarksSetting:B
19210 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->systemLogsSetting:B
19212 + iput-byte v3, p0, Landroid/privacy/PrivacySettings;->notificationSetting:B
19214 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->intentBootCompletedSetting:B
19216 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->cameraSetting:B
19218 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->recordAudioSetting:B
19220 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->allowedContacts:[I
19222 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSendSetting:B
19224 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->phoneCallSetting:B
19226 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->ipTableProtectSetting:B
19228 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->iccAccessSetting:B
19230 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->addOnManagementSetting:B
19232 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
19234 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->androidID:Ljava/lang/String;
19236 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->wifiInfoSetting:B
19238 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->switchConnectivitySetting:B
19240 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->sendMmsSetting:B
19242 + iput-byte v3, p0, Landroid/privacy/PrivacySettings;->forceOnlineState:B
19244 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->switchWifiStateSetting:B
19246 + :goto_67
19247 + return-void
19249 + :cond_68
19250 + iput-byte v2, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
19252 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->deviceId:Ljava/lang/String;
19254 + iput-byte v2, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
19256 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->line1Number:Ljava/lang/String;
19258 + iput-byte v2, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
19260 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationGpsLat:Ljava/lang/String;
19262 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationGpsLon:Ljava/lang/String;
19264 + iput-byte v2, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
19266 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLat:Ljava/lang/String;
19268 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLon:Ljava/lang/String;
19270 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->networkInfoSetting:B
19272 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->simInfoSetting:B
19274 + iput-byte v2, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
19276 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->simSerialNumber:Ljava/lang/String;
19278 + iput-byte v2, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
19280 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->subscriberId:Ljava/lang/String;
19282 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsSetting:B
19284 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsAuthTokensSetting:B
19286 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->outgoingCallsSetting:B
19288 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->incomingCallsSetting:B
19290 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->contactsSetting:B
19292 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->calendarSetting:B
19294 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->mmsSetting:B
19296 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSetting:B
19298 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->callLogSetting:B
19300 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->bookmarksSetting:B
19302 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->systemLogsSetting:B
19304 + iput-byte v3, p0, Landroid/privacy/PrivacySettings;->notificationSetting:B
19306 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->intentBootCompletedSetting:B
19308 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->cameraSetting:B
19310 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->recordAudioSetting:B
19312 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->allowedContacts:[I
19314 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSendSetting:B
19316 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->phoneCallSetting:B
19318 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->ipTableProtectSetting:B
19320 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->iccAccessSetting:B
19322 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->addOnManagementSetting:B
19324 + iput-byte v2, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
19326 + iput-object v1, p0, Landroid/privacy/PrivacySettings;->androidID:Ljava/lang/String;
19328 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->wifiInfoSetting:B
19330 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->switchConnectivitySetting:B
19332 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->sendMmsSetting:B
19334 + iput-byte v3, p0, Landroid/privacy/PrivacySettings;->forceOnlineState:B
19336 + iput-byte v0, p0, Landroid/privacy/PrivacySettings;->switchWifiStateSetting:B
19338 + goto :goto_67
19339 +.end method
19341 +.method private getRandomLat()Ljava/lang/String;
19342 + .registers 10
19344 + const-wide v7, 0x4056800000000000L
19346 + invoke-static {}, Ljava/lang/Math;->random()D
19348 + move-result-wide v3
19350 + const-wide v5, 0x4066800000000000L
19352 + mul-double v0, v3, v5
19354 + cmpl-double v3, v0, v7
19356 + if-lez v3, :cond_35
19358 + new-instance v2, Ljava/math/BigDecimal;
19360 + sub-double v3, v0, v7
19362 + invoke-direct {v2, v3, v4}, Ljava/math/BigDecimal;-><init>(D)V
19364 + :goto_1b
19365 + new-instance v3, Ljava/lang/StringBuilder;
19367 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
19369 + const/4 v4, 0x6
19371 + const/4 v5, 0x4
19373 + invoke-virtual {v2, v4, v5}, Ljava/math/BigDecimal;->setScale(II)Ljava/math/BigDecimal;
19375 + move-result-object v4
19377 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
19379 + move-result-object v3
19381 + const-string v4, ""
19383 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
19385 + move-result-object v3
19387 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
19389 + move-result-object v3
19391 + return-object v3
19393 + :cond_35
19394 + new-instance v2, Ljava/math/BigDecimal;
19396 + neg-double v3, v0
19398 + invoke-direct {v2, v3, v4}, Ljava/math/BigDecimal;-><init>(D)V
19400 + goto :goto_1b
19401 +.end method
19403 +.method private getRandomLon()Ljava/lang/String;
19404 + .registers 10
19406 + const-wide v7, 0x4066800000000000L
19408 + invoke-static {}, Ljava/lang/Math;->random()D
19410 + move-result-wide v3
19412 + const-wide v5, 0x4076800000000000L
19414 + mul-double v0, v3, v5
19416 + cmpl-double v3, v0, v7
19418 + if-lez v3, :cond_35
19420 + new-instance v2, Ljava/math/BigDecimal;
19422 + sub-double v3, v0, v7
19424 + invoke-direct {v2, v3, v4}, Ljava/math/BigDecimal;-><init>(D)V
19426 + :goto_1b
19427 + new-instance v3, Ljava/lang/StringBuilder;
19429 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
19431 + const/4 v4, 0x6
19433 + const/4 v5, 0x4
19435 + invoke-virtual {v2, v4, v5}, Ljava/math/BigDecimal;->setScale(II)Ljava/math/BigDecimal;
19437 + move-result-object v4
19439 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
19441 + move-result-object v3
19443 + const-string v4, ""
19445 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
19447 + move-result-object v3
19449 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
19451 + move-result-object v3
19453 + return-object v3
19455 + :cond_35
19456 + new-instance v2, Ljava/math/BigDecimal;
19458 + neg-double v3, v0
19460 + invoke-direct {v2, v3, v4}, Ljava/math/BigDecimal;-><init>(D)V
19462 + goto :goto_1b
19463 +.end method
19466 +# virtual methods
19467 +.method public describeContents()I
19468 + .registers 2
19470 + const/4 v0, 0x0
19472 + return v0
19473 +.end method
19475 +.method public getAccountsAuthTokensSetting()B
19476 + .registers 2
19478 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsAuthTokensSetting:B
19480 + return v0
19481 +.end method
19483 +.method public getAccountsSetting()B
19484 + .registers 2
19486 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsSetting:B
19488 + return v0
19489 +.end method
19491 +.method public getAddOnManagementSetting()B
19492 + .registers 2
19494 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->addOnManagementSetting:B
19496 + return v0
19497 +.end method
19499 +.method public getAllowedContacts()[I
19500 + .registers 2
19502 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->allowedContacts:[I
19504 + return-object v0
19505 +.end method
19507 +.method public getAndroidID()Ljava/lang/String;
19508 + .registers 6
19510 + iget-byte v3, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
19512 + const/4 v4, 0x1
19514 + if-ne v3, v4, :cond_9
19516 + const-string/jumbo v3, "q4a5w896ay21dr46"
19518 + :goto_8
19519 + return-object v3
19521 + :cond_9
19522 + iget-byte v3, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
19524 + const/4 v4, 0x3
19526 + if-ne v3, v4, :cond_36
19528 + new-instance v2, Ljava/util/Random;
19530 + invoke-direct {v2}, Ljava/util/Random;-><init>()V
19532 + new-instance v1, Ljava/lang/StringBuilder;
19534 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
19536 + const/4 v0, 0x0
19538 + :goto_19
19539 + sget-object v3, Landroid/privacy/PrivacySettings;->ID_PATTERN:[Ljava/lang/String;
19541 + array-length v3, v3
19543 + if-ge v0, v3, :cond_31
19545 + sget-object v3, Landroid/privacy/PrivacySettings;->ID_PATTERN:[Ljava/lang/String;
19547 + sget-object v4, Landroid/privacy/PrivacySettings;->ID_PATTERN:[Ljava/lang/String;
19549 + array-length v4, v4
19551 + add-int/lit8 v4, v4, -0x1
19553 + invoke-virtual {v2, v4}, Ljava/util/Random;->nextInt(I)I
19555 + move-result v4
19557 + aget-object v3, v3, v4
19559 + invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
19561 + add-int/lit8 v0, v0, 0x1
19563 + goto :goto_19
19565 + :cond_31
19566 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
19568 + move-result-object v3
19570 + goto :goto_8
19572 + :cond_36
19573 + iget-object v3, p0, Landroid/privacy/PrivacySettings;->androidID:Ljava/lang/String;
19575 + goto :goto_8
19576 +.end method
19578 +.method public getAndroidIdSetting()B
19579 + .registers 2
19581 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
19583 + return v0
19584 +.end method
19586 +.method public getBookmarksSetting()B
19587 + .registers 2
19589 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->bookmarksSetting:B
19591 + return v0
19592 +.end method
19594 +.method public getCalendarSetting()B
19595 + .registers 2
19597 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->calendarSetting:B
19599 + return v0
19600 +.end method
19602 +.method public getCallLogSetting()B
19603 + .registers 2
19605 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->callLogSetting:B
19607 + return v0
19608 +.end method
19610 +.method public getCameraSetting()B
19611 + .registers 2
19613 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->cameraSetting:B
19615 + return v0
19616 +.end method
19618 +.method public getContactsSetting()B
19619 + .registers 2
19621 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->contactsSetting:B
19623 + return v0
19624 +.end method
19626 +.method public getDeviceId()Ljava/lang/String;
19627 + .registers 9
19629 + const/4 v7, 0x0
19631 + const/16 v6, 0xf
19633 + iget-byte v3, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
19635 + const/4 v4, 0x1
19637 + if-ne v3, v4, :cond_b
19639 + const-string v3, ""
19641 + :goto_a
19642 + return-object v3
19644 + :cond_b
19645 + iget-byte v3, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
19647 + const/4 v4, 0x3
19649 + if-ne v3, v4, :cond_62
19651 + new-instance v1, Ljava/util/Random;
19653 + invoke-direct {v1}, Ljava/util/Random;-><init>()V
19655 + new-instance v3, Ljava/lang/StringBuilder;
19657 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
19659 + invoke-virtual {v1}, Ljava/util/Random;->nextLong()J
19661 + move-result-wide v4
19663 + invoke-static {v4, v5}, Ljava/lang/Math;->abs(J)J
19665 + move-result-wide v4
19667 + invoke-virtual {v3, v4, v5}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
19669 + move-result-object v3
19671 + const-string v4, ""
19673 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
19675 + move-result-object v3
19677 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
19679 + move-result-object v2
19681 + invoke-virtual {v2}, Ljava/lang/String;->length()I
19683 + move-result v3
19685 + if-le v3, v6, :cond_3b
19687 + invoke-virtual {v2, v7, v6}, Ljava/lang/String;->substring(II)Ljava/lang/String;
19689 + move-result-object v3
19691 + goto :goto_a
19693 + :cond_3b
19694 + invoke-virtual {v2}, Ljava/lang/String;->length()I
19696 + move-result v0
19698 + :goto_3f
19699 + const/16 v3, 0x10
19701 + if-gt v0, v3, :cond_5d
19703 + new-instance v3, Ljava/lang/StringBuilder;
19705 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
19707 + invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
19709 + move-result-object v3
19711 + const/16 v4, 0x9
19713 + invoke-virtual {v1, v4}, Ljava/util/Random;->nextInt(I)I
19715 + move-result v4
19717 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
19719 + move-result-object v3
19721 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
19723 + move-result-object v2
19725 + add-int/lit8 v0, v0, 0x1
19727 + goto :goto_3f
19729 + :cond_5d
19730 + invoke-virtual {v2, v7, v6}, Ljava/lang/String;->substring(II)Ljava/lang/String;
19732 + move-result-object v3
19734 + goto :goto_a
19736 + :cond_62
19737 + iget-object v3, p0, Landroid/privacy/PrivacySettings;->deviceId:Ljava/lang/String;
19739 + goto :goto_a
19740 +.end method
19742 +.method public getDeviceIdSetting()B
19743 + .registers 2
19745 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
19747 + return v0
19748 +.end method
19750 +.method public getForceOnlineState()B
19751 + .registers 2
19753 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->forceOnlineState:B
19755 + return v0
19756 +.end method
19758 +.method public getIccAccessSetting()B
19759 + .registers 2
19761 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->iccAccessSetting:B
19763 + return v0
19764 +.end method
19766 +.method public getIncomingCallsSetting()B
19767 + .registers 2
19769 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->incomingCallsSetting:B
19771 + return v0
19772 +.end method
19774 +.method public getIntentBootCompletedSetting()B
19775 + .registers 2
19777 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->intentBootCompletedSetting:B
19779 + return v0
19780 +.end method
19782 +.method public getIpTableProtectSetting()B
19783 + .registers 2
19785 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->ipTableProtectSetting:B
19787 + return v0
19788 +.end method
19790 +.method public getLine1Number()Ljava/lang/String;
19791 + .registers 9
19793 + const/4 v7, 0x0
19795 + const/16 v6, 0xd
19797 + iget-byte v3, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
19799 + const/4 v4, 0x1
19801 + if-ne v3, v4, :cond_b
19803 + const-string v3, ""
19805 + :goto_a
19806 + return-object v3
19808 + :cond_b
19809 + iget-byte v3, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
19811 + const/4 v4, 0x3
19813 + if-ne v3, v4, :cond_68
19815 + new-instance v1, Ljava/util/Random;
19817 + invoke-direct {v1}, Ljava/util/Random;-><init>()V
19819 + new-instance v3, Ljava/lang/StringBuilder;
19821 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
19823 + const-string v4, "+"
19825 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
19827 + move-result-object v3
19829 + invoke-virtual {v1}, Ljava/util/Random;->nextLong()J
19831 + move-result-wide v4
19833 + invoke-static {v4, v5}, Ljava/lang/Math;->abs(J)J
19835 + move-result-wide v4
19837 + invoke-virtual {v3, v4, v5}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
19839 + move-result-object v3
19841 + const-string v4, ""
19843 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
19845 + move-result-object v3
19847 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
19849 + move-result-object v2
19851 + invoke-virtual {v2}, Ljava/lang/String;->length()I
19853 + move-result v3
19855 + if-le v3, v6, :cond_41
19857 + invoke-virtual {v2, v7, v6}, Ljava/lang/String;->substring(II)Ljava/lang/String;
19859 + move-result-object v3
19861 + goto :goto_a
19863 + :cond_41
19864 + invoke-virtual {v2}, Ljava/lang/String;->length()I
19866 + move-result v0
19868 + :goto_45
19869 + const/16 v3, 0xe
19871 + if-gt v0, v3, :cond_63
19873 + new-instance v3, Ljava/lang/StringBuilder;
19875 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
19877 + invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
19879 + move-result-object v3
19881 + const/16 v4, 0x9
19883 + invoke-virtual {v1, v4}, Ljava/util/Random;->nextInt(I)I
19885 + move-result v4
19887 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
19889 + move-result-object v3
19891 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
19893 + move-result-object v2
19895 + add-int/lit8 v0, v0, 0x1
19897 + goto :goto_45
19899 + :cond_63
19900 + invoke-virtual {v2, v7, v6}, Ljava/lang/String;->substring(II)Ljava/lang/String;
19902 + move-result-object v3
19904 + goto :goto_a
19906 + :cond_68
19907 + iget-object v3, p0, Landroid/privacy/PrivacySettings;->line1Number:Ljava/lang/String;
19909 + goto :goto_a
19910 +.end method
19912 +.method public getLine1NumberSetting()B
19913 + .registers 2
19915 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
19917 + return v0
19918 +.end method
19920 +.method public getLocationGpsLat()Ljava/lang/String;
19921 + .registers 3
19923 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
19925 + const/4 v1, 0x1
19927 + if-ne v0, v1, :cond_8
19929 + const-string v0, ""
19931 + :goto_7
19932 + return-object v0
19934 + :cond_8
19935 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
19937 + const/4 v1, 0x3
19939 + if-ne v0, v1, :cond_12
19941 + invoke-direct {p0}, Landroid/privacy/PrivacySettings;->getRandomLat()Ljava/lang/String;
19943 + move-result-object v0
19945 + goto :goto_7
19947 + :cond_12
19948 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->locationGpsLat:Ljava/lang/String;
19950 + goto :goto_7
19951 +.end method
19953 +.method public getLocationGpsLon()Ljava/lang/String;
19954 + .registers 3
19956 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
19958 + const/4 v1, 0x1
19960 + if-ne v0, v1, :cond_8
19962 + const-string v0, ""
19964 + :goto_7
19965 + return-object v0
19967 + :cond_8
19968 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
19970 + const/4 v1, 0x3
19972 + if-ne v0, v1, :cond_12
19974 + invoke-direct {p0}, Landroid/privacy/PrivacySettings;->getRandomLon()Ljava/lang/String;
19976 + move-result-object v0
19978 + goto :goto_7
19980 + :cond_12
19981 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->locationGpsLon:Ljava/lang/String;
19983 + goto :goto_7
19984 +.end method
19986 +.method public getLocationGpsSetting()B
19987 + .registers 2
19989 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
19991 + return v0
19992 +.end method
19994 +.method public getLocationNetworkLat()Ljava/lang/String;
19995 + .registers 3
19997 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
19999 + const/4 v1, 0x1
20001 + if-ne v0, v1, :cond_8
20003 + const-string v0, ""
20005 + :goto_7
20006 + return-object v0
20008 + :cond_8
20009 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
20011 + const/4 v1, 0x3
20013 + if-ne v0, v1, :cond_12
20015 + invoke-direct {p0}, Landroid/privacy/PrivacySettings;->getRandomLat()Ljava/lang/String;
20017 + move-result-object v0
20019 + goto :goto_7
20021 + :cond_12
20022 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkLat:Ljava/lang/String;
20024 + goto :goto_7
20025 +.end method
20027 +.method public getLocationNetworkLon()Ljava/lang/String;
20028 + .registers 3
20030 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
20032 + const/4 v1, 0x1
20034 + if-ne v0, v1, :cond_8
20036 + const-string v0, ""
20038 + :goto_7
20039 + return-object v0
20041 + :cond_8
20042 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
20044 + const/4 v1, 0x3
20046 + if-ne v0, v1, :cond_12
20048 + invoke-direct {p0}, Landroid/privacy/PrivacySettings;->getRandomLon()Ljava/lang/String;
20050 + move-result-object v0
20052 + goto :goto_7
20054 + :cond_12
20055 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkLon:Ljava/lang/String;
20057 + goto :goto_7
20058 +.end method
20060 +.method public getLocationNetworkSetting()B
20061 + .registers 2
20063 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
20065 + return v0
20066 +.end method
20068 +.method public getMmsSetting()B
20069 + .registers 2
20071 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->mmsSetting:B
20073 + return v0
20074 +.end method
20076 +.method public getNetworkInfoSetting()B
20077 + .registers 2
20079 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->networkInfoSetting:B
20081 + return v0
20082 +.end method
20084 +.method public getNotificationSetting()B
20085 + .registers 2
20087 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->notificationSetting:B
20089 + return v0
20090 +.end method
20092 +.method public getOutgoingCallsSetting()B
20093 + .registers 2
20095 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->outgoingCallsSetting:B
20097 + return v0
20098 +.end method
20100 +.method public getPackageName()Ljava/lang/String;
20101 + .registers 2
20103 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->packageName:Ljava/lang/String;
20105 + return-object v0
20106 +.end method
20108 +.method public getPhoneCallSetting()B
20109 + .registers 2
20111 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->phoneCallSetting:B
20113 + return v0
20114 +.end method
20116 +.method public getRecordAudioSetting()B
20117 + .registers 2
20119 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->recordAudioSetting:B
20121 + return v0
20122 +.end method
20124 +.method public getSendMmsSetting()B
20125 + .registers 2
20127 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->sendMmsSetting:B
20129 + return v0
20130 +.end method
20132 +.method public getSimInfoSetting()B
20133 + .registers 2
20135 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->simInfoSetting:B
20137 + return v0
20138 +.end method
20140 +.method public getSimSerialNumber()Ljava/lang/String;
20141 + .registers 5
20143 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
20145 + const/4 v2, 0x1
20147 + if-ne v1, v2, :cond_8
20149 + const-string v1, ""
20151 + :goto_7
20152 + return-object v1
20154 + :cond_8
20155 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
20157 + const/4 v2, 0x3
20159 + if-ne v1, v2, :cond_2e
20161 + new-instance v0, Ljava/util/Random;
20163 + invoke-direct {v0}, Ljava/util/Random;-><init>()V
20165 + new-instance v1, Ljava/lang/StringBuilder;
20167 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
20169 + invoke-virtual {v0}, Ljava/util/Random;->nextLong()J
20171 + move-result-wide v2
20173 + invoke-static {v2, v3}, Ljava/lang/Math;->abs(J)J
20175 + move-result-wide v2
20177 + invoke-virtual {v1, v2, v3}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
20179 + move-result-object v1
20181 + const-string v2, ""
20183 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20185 + move-result-object v1
20187 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
20189 + move-result-object v1
20191 + goto :goto_7
20193 + :cond_2e
20194 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->simSerialNumber:Ljava/lang/String;
20196 + goto :goto_7
20197 +.end method
20199 +.method public getSimSerialNumberSetting()B
20200 + .registers 2
20202 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
20204 + return v0
20205 +.end method
20207 +.method public getSmsSendSetting()B
20208 + .registers 2
20210 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSendSetting:B
20212 + return v0
20213 +.end method
20215 +.method public getSmsSetting()B
20216 + .registers 2
20218 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSetting:B
20220 + return v0
20221 +.end method
20223 +.method public getSubscriberId()Ljava/lang/String;
20224 + .registers 9
20226 + const/4 v7, 0x0
20228 + const/16 v6, 0xf
20230 + iget-byte v3, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
20232 + const/4 v4, 0x1
20234 + if-ne v3, v4, :cond_b
20236 + const-string v3, ""
20238 + :goto_a
20239 + return-object v3
20241 + :cond_b
20242 + iget-byte v3, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
20244 + const/4 v4, 0x3
20246 + if-ne v3, v4, :cond_62
20248 + new-instance v1, Ljava/util/Random;
20250 + invoke-direct {v1}, Ljava/util/Random;-><init>()V
20252 + new-instance v3, Ljava/lang/StringBuilder;
20254 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
20256 + invoke-virtual {v1}, Ljava/util/Random;->nextLong()J
20258 + move-result-wide v4
20260 + invoke-static {v4, v5}, Ljava/lang/Math;->abs(J)J
20262 + move-result-wide v4
20264 + invoke-virtual {v3, v4, v5}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
20266 + move-result-object v3
20268 + const-string v4, ""
20270 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20272 + move-result-object v3
20274 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
20276 + move-result-object v2
20278 + invoke-virtual {v2}, Ljava/lang/String;->length()I
20280 + move-result v3
20282 + if-le v3, v6, :cond_3b
20284 + invoke-virtual {v2, v7, v6}, Ljava/lang/String;->substring(II)Ljava/lang/String;
20286 + move-result-object v3
20288 + goto :goto_a
20290 + :cond_3b
20291 + invoke-virtual {v2}, Ljava/lang/String;->length()I
20293 + move-result v0
20295 + :goto_3f
20296 + const/16 v3, 0x10
20298 + if-gt v0, v3, :cond_5d
20300 + new-instance v3, Ljava/lang/StringBuilder;
20302 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
20304 + invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20306 + move-result-object v3
20308 + const/16 v4, 0x9
20310 + invoke-virtual {v1, v4}, Ljava/util/Random;->nextInt(I)I
20312 + move-result v4
20314 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20316 + move-result-object v3
20318 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
20320 + move-result-object v2
20322 + add-int/lit8 v0, v0, 0x1
20324 + goto :goto_3f
20326 + :cond_5d
20327 + invoke-virtual {v2, v7, v6}, Ljava/lang/String;->substring(II)Ljava/lang/String;
20329 + move-result-object v3
20331 + goto :goto_a
20333 + :cond_62
20334 + iget-object v3, p0, Landroid/privacy/PrivacySettings;->subscriberId:Ljava/lang/String;
20336 + goto :goto_a
20337 +.end method
20339 +.method public getSubscriberIdSetting()B
20340 + .registers 2
20342 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
20344 + return v0
20345 +.end method
20347 +.method public getSwitchConnectivitySetting()B
20348 + .registers 2
20350 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->switchConnectivitySetting:B
20352 + return v0
20353 +.end method
20355 +.method public getSwitchWifiStateSetting()B
20356 + .registers 2
20358 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->switchWifiStateSetting:B
20360 + return v0
20361 +.end method
20363 +.method public getSystemLogsSetting()B
20364 + .registers 2
20366 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->systemLogsSetting:B
20368 + return v0
20369 +.end method
20371 +.method public getUid()I
20372 + .registers 2
20374 + iget v0, p0, Landroid/privacy/PrivacySettings;->uid:I
20376 + return v0
20377 +.end method
20379 +.method public getWifiInfoSetting()B
20380 + .registers 2
20382 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->wifiInfoSetting:B
20384 + return v0
20385 +.end method
20387 +.method public get_id()Ljava/lang/Integer;
20388 + .registers 2
20390 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->_id:Ljava/lang/Integer;
20392 + return-object v0
20393 +.end method
20395 +.method public setAccountsAuthTokensSetting(B)V
20396 + .registers 2
20398 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->accountsAuthTokensSetting:B
20400 + return-void
20401 +.end method
20403 +.method public setAccountsSetting(B)V
20404 + .registers 2
20406 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->accountsSetting:B
20408 + return-void
20409 +.end method
20411 +.method public setAddOnManagementSetting(B)V
20412 + .registers 2
20414 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->addOnManagementSetting:B
20416 + return-void
20417 +.end method
20419 +.method public setAllowedContacts([I)V
20420 + .registers 2
20422 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->allowedContacts:[I
20424 + return-void
20425 +.end method
20427 +.method public setAndroidID(Ljava/lang/String;)V
20428 + .registers 2
20430 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->androidID:Ljava/lang/String;
20432 + return-void
20433 +.end method
20435 +.method public setAndroidIdSetting(B)V
20436 + .registers 2
20438 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
20440 + return-void
20441 +.end method
20443 +.method public setBookmarksSetting(B)V
20444 + .registers 2
20446 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->bookmarksSetting:B
20448 + return-void
20449 +.end method
20451 +.method public setCalendarSetting(B)V
20452 + .registers 2
20454 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->calendarSetting:B
20456 + return-void
20457 +.end method
20459 +.method public setCallLogSetting(B)V
20460 + .registers 2
20462 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->callLogSetting:B
20464 + return-void
20465 +.end method
20467 +.method public setCameraSetting(B)V
20468 + .registers 2
20470 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->cameraSetting:B
20472 + return-void
20473 +.end method
20475 +.method public setContactsSetting(B)V
20476 + .registers 2
20478 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->contactsSetting:B
20480 + return-void
20481 +.end method
20483 +.method public setDeviceId(Ljava/lang/String;)V
20484 + .registers 2
20486 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->deviceId:Ljava/lang/String;
20488 + return-void
20489 +.end method
20491 +.method public setDeviceIdSetting(B)V
20492 + .registers 2
20494 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
20496 + return-void
20497 +.end method
20499 +.method public setForceOnlineState(B)V
20500 + .registers 2
20502 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->forceOnlineState:B
20504 + return-void
20505 +.end method
20507 +.method public setIccAccessSetting(B)V
20508 + .registers 2
20510 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->iccAccessSetting:B
20512 + return-void
20513 +.end method
20515 +.method public setIncomingCallsSetting(B)V
20516 + .registers 2
20518 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->incomingCallsSetting:B
20520 + return-void
20521 +.end method
20523 +.method public setIntentBootCompletedSetting(B)V
20524 + .registers 2
20526 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->intentBootCompletedSetting:B
20528 + return-void
20529 +.end method
20531 +.method public setIpTableProtectSetting(B)V
20532 + .registers 2
20534 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->ipTableProtectSetting:B
20536 + return-void
20537 +.end method
20539 +.method public setLine1Number(Ljava/lang/String;)V
20540 + .registers 2
20542 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->line1Number:Ljava/lang/String;
20544 + return-void
20545 +.end method
20547 +.method public setLine1NumberSetting(B)V
20548 + .registers 2
20550 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
20552 + return-void
20553 +.end method
20555 +.method public setLocationGpsLat(Ljava/lang/String;)V
20556 + .registers 2
20558 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->locationGpsLat:Ljava/lang/String;
20560 + return-void
20561 +.end method
20563 +.method public setLocationGpsLon(Ljava/lang/String;)V
20564 + .registers 2
20566 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->locationGpsLon:Ljava/lang/String;
20568 + return-void
20569 +.end method
20571 +.method public setLocationGpsSetting(B)V
20572 + .registers 2
20574 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
20576 + return-void
20577 +.end method
20579 +.method public setLocationNetworkLat(Ljava/lang/String;)V
20580 + .registers 2
20582 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLat:Ljava/lang/String;
20584 + return-void
20585 +.end method
20587 +.method public setLocationNetworkLon(Ljava/lang/String;)V
20588 + .registers 2
20590 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLon:Ljava/lang/String;
20592 + return-void
20593 +.end method
20595 +.method public setLocationNetworkSetting(B)V
20596 + .registers 2
20598 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
20600 + return-void
20601 +.end method
20603 +.method public setMmsSetting(B)V
20604 + .registers 2
20606 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->mmsSetting:B
20608 + return-void
20609 +.end method
20611 +.method public setNetworkInfoSetting(B)V
20612 + .registers 2
20614 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->networkInfoSetting:B
20616 + return-void
20617 +.end method
20619 +.method public setNotificationSetting(B)V
20620 + .registers 2
20622 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->notificationSetting:B
20624 + return-void
20625 +.end method
20627 +.method public setOutgoingCallsSetting(B)V
20628 + .registers 2
20630 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->outgoingCallsSetting:B
20632 + return-void
20633 +.end method
20635 +.method public setPackageName(Ljava/lang/String;)V
20636 + .registers 2
20638 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->packageName:Ljava/lang/String;
20640 + return-void
20641 +.end method
20643 +.method public setPhoneCallSetting(B)V
20644 + .registers 2
20646 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->phoneCallSetting:B
20648 + return-void
20649 +.end method
20651 +.method public setRecordAudioSetting(B)V
20652 + .registers 2
20654 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->recordAudioSetting:B
20656 + return-void
20657 +.end method
20659 +.method public setSendMmsSetting(B)V
20660 + .registers 2
20662 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->sendMmsSetting:B
20664 + return-void
20665 +.end method
20667 +.method public setSimInfoSetting(B)V
20668 + .registers 2
20670 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->simInfoSetting:B
20672 + return-void
20673 +.end method
20675 +.method public setSimSerialNumber(Ljava/lang/String;)V
20676 + .registers 2
20678 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->simSerialNumber:Ljava/lang/String;
20680 + return-void
20681 +.end method
20683 +.method public setSimSerialNumberSetting(B)V
20684 + .registers 2
20686 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
20688 + return-void
20689 +.end method
20691 +.method public setSmsSendSetting(B)V
20692 + .registers 2
20694 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->smsSendSetting:B
20696 + return-void
20697 +.end method
20699 +.method public setSmsSetting(B)V
20700 + .registers 2
20702 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->smsSetting:B
20704 + return-void
20705 +.end method
20707 +.method public setSubscriberId(Ljava/lang/String;)V
20708 + .registers 2
20710 + iput-object p1, p0, Landroid/privacy/PrivacySettings;->subscriberId:Ljava/lang/String;
20712 + return-void
20713 +.end method
20715 +.method public setSubscriberIdSetting(B)V
20716 + .registers 2
20718 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
20720 + return-void
20721 +.end method
20723 +.method public setSwitchConnectivitySetting(B)V
20724 + .registers 2
20726 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->switchConnectivitySetting:B
20728 + return-void
20729 +.end method
20731 +.method public setSwitchWifiStateSetting(B)V
20732 + .registers 2
20734 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->switchWifiStateSetting:B
20736 + return-void
20737 +.end method
20739 +.method public setSystemLogsSetting(B)V
20740 + .registers 2
20742 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->systemLogsSetting:B
20744 + return-void
20745 +.end method
20747 +.method public setUid(I)V
20748 + .registers 2
20750 + iput p1, p0, Landroid/privacy/PrivacySettings;->uid:I
20752 + return-void
20753 +.end method
20755 +.method public setWifiInfoSetting(B)V
20756 + .registers 2
20758 + iput-byte p1, p0, Landroid/privacy/PrivacySettings;->wifiInfoSetting:B
20760 + return-void
20761 +.end method
20763 +.method public toString()Ljava/lang/String;
20764 + .registers 3
20766 + new-instance v0, Ljava/lang/StringBuilder;
20768 + invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
20770 + const-string v1, "PrivacySettings [_id="
20772 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20774 + move-result-object v0
20776 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->_id:Ljava/lang/Integer;
20778 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
20780 + move-result-object v0
20782 + const-string v1, ", accountsAuthTokensSetting="
20784 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20786 + move-result-object v0
20788 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->accountsAuthTokensSetting:B
20790 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20792 + move-result-object v0
20794 + const-string v1, ", accountsSetting="
20796 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20798 + move-result-object v0
20800 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->accountsSetting:B
20802 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20804 + move-result-object v0
20806 + const-string v1, ", bookmarksSetting="
20808 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20810 + move-result-object v0
20812 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->bookmarksSetting:B
20814 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20816 + move-result-object v0
20818 + const-string v1, ", calendarSetting="
20820 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20822 + move-result-object v0
20824 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->calendarSetting:B
20826 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20828 + move-result-object v0
20830 + const-string v1, ", callLogSetting="
20832 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20834 + move-result-object v0
20836 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->callLogSetting:B
20838 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20840 + move-result-object v0
20842 + const-string v1, ", contactsSetting="
20844 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20846 + move-result-object v0
20848 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->contactsSetting:B
20850 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20852 + move-result-object v0
20854 + const-string v1, ", deviceId="
20856 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20858 + move-result-object v0
20860 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->deviceId:Ljava/lang/String;
20862 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20864 + move-result-object v0
20866 + const-string v1, ", deviceIdSetting="
20868 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20870 + move-result-object v0
20872 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
20874 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20876 + move-result-object v0
20878 + const-string v1, ", incomingCallsSetting="
20880 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20882 + move-result-object v0
20884 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->incomingCallsSetting:B
20886 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20888 + move-result-object v0
20890 + const-string v1, ", intentBootCompletedSetting="
20892 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20894 + move-result-object v0
20896 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->intentBootCompletedSetting:B
20898 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20900 + move-result-object v0
20902 + const-string v1, ", line1Number="
20904 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20906 + move-result-object v0
20908 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->line1Number:Ljava/lang/String;
20910 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20912 + move-result-object v0
20914 + const-string v1, ", line1NumberSetting="
20916 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20918 + move-result-object v0
20920 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
20922 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20924 + move-result-object v0
20926 + const-string v1, ", locationGpsLat="
20928 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20930 + move-result-object v0
20932 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->locationGpsLat:Ljava/lang/String;
20934 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20936 + move-result-object v0
20938 + const-string v1, ", locationGpsLon="
20940 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20942 + move-result-object v0
20944 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->locationGpsLon:Ljava/lang/String;
20946 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20948 + move-result-object v0
20950 + const-string v1, ", locationGpsSetting="
20952 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20954 + move-result-object v0
20956 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
20958 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20960 + move-result-object v0
20962 + const-string v1, ", locationNetworkLat="
20964 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20966 + move-result-object v0
20968 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLat:Ljava/lang/String;
20970 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20972 + move-result-object v0
20974 + const-string v1, ", locationNetworkLon="
20976 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20978 + move-result-object v0
20980 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkLon:Ljava/lang/String;
20982 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20984 + move-result-object v0
20986 + const-string v1, ", locationNetworkSetting="
20988 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
20990 + move-result-object v0
20992 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
20994 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
20996 + move-result-object v0
20998 + const-string v1, ", mmsSetting="
21000 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21002 + move-result-object v0
21004 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->mmsSetting:B
21006 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21008 + move-result-object v0
21010 + const-string v1, ", networkInfoSetting="
21012 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21014 + move-result-object v0
21016 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->networkInfoSetting:B
21018 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21020 + move-result-object v0
21022 + const-string v1, ", notificationSetting="
21024 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21026 + move-result-object v0
21028 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->notificationSetting:B
21030 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21032 + move-result-object v0
21034 + const-string v1, ", outgoingCallsSetting="
21036 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21038 + move-result-object v0
21040 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->outgoingCallsSetting:B
21042 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21044 + move-result-object v0
21046 + const-string v1, ", packageName="
21048 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21050 + move-result-object v0
21052 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->packageName:Ljava/lang/String;
21054 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21056 + move-result-object v0
21058 + const-string v1, ", simInfoSetting="
21060 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21062 + move-result-object v0
21064 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->simInfoSetting:B
21066 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21068 + move-result-object v0
21070 + const-string v1, ", simSerialNumber="
21072 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21074 + move-result-object v0
21076 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->simSerialNumber:Ljava/lang/String;
21078 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21080 + move-result-object v0
21082 + const-string v1, ", simSerialNumberSetting="
21084 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21086 + move-result-object v0
21088 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
21090 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21092 + move-result-object v0
21094 + const-string v1, ", smsSetting="
21096 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21098 + move-result-object v0
21100 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->smsSetting:B
21102 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21104 + move-result-object v0
21106 + const-string v1, ", subscriberId="
21108 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21110 + move-result-object v0
21112 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->subscriberId:Ljava/lang/String;
21114 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21116 + move-result-object v0
21118 + const-string v1, ", subscriberIdSetting="
21120 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21122 + move-result-object v0
21124 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
21126 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21128 + move-result-object v0
21130 + const-string v1, ", systemLogsSetting="
21132 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21134 + move-result-object v0
21136 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->systemLogsSetting:B
21138 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21140 + move-result-object v0
21142 + const-string v1, ", uid="
21144 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21146 + move-result-object v0
21148 + iget v1, p0, Landroid/privacy/PrivacySettings;->uid:I
21150 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21152 + move-result-object v0
21154 + const-string v1, ", phoneCallSetting="
21156 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21158 + move-result-object v0
21160 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->phoneCallSetting:B
21162 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21164 + move-result-object v0
21166 + const-string v1, ", smsSendSetting="
21168 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21170 + move-result-object v0
21172 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->smsSendSetting:B
21174 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21176 + move-result-object v0
21178 + const-string v1, ", recordAudioSetting="
21180 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21182 + move-result-object v0
21184 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->recordAudioSetting:B
21186 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21188 + move-result-object v0
21190 + const-string v1, ", cameraSetting="
21192 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21194 + move-result-object v0
21196 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->cameraSetting:B
21198 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21200 + move-result-object v0
21202 + const-string v1, ", ipTableProtectSetting="
21204 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21206 + move-result-object v0
21208 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->ipTableProtectSetting:B
21210 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21212 + move-result-object v0
21214 + const-string v1, ", iccAccessSetting="
21216 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21218 + move-result-object v0
21220 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->iccAccessSetting:B
21222 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21224 + move-result-object v0
21226 + const-string v1, ", addOnManagementSetting="
21228 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21230 + move-result-object v0
21232 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->addOnManagementSetting:B
21234 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21236 + move-result-object v0
21238 + const-string v1, ", android ID="
21240 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21242 + move-result-object v0
21244 + iget-object v1, p0, Landroid/privacy/PrivacySettings;->androidID:Ljava/lang/String;
21246 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21248 + move-result-object v0
21250 + const-string v1, ", androidIdSetting="
21252 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21254 + move-result-object v0
21256 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
21258 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21260 + move-result-object v0
21262 + const-string v1, ", wifiInfoSetting="
21264 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21266 + move-result-object v0
21268 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->wifiInfoSetting:B
21270 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21272 + move-result-object v0
21274 + const-string v1, ", switchConnectivitySetting="
21276 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21278 + move-result-object v0
21280 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->switchConnectivitySetting:B
21282 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21284 + move-result-object v0
21286 + const-string v1, ", sendMmsSetting="
21288 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21290 + move-result-object v0
21292 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->sendMmsSetting:B
21294 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21296 + move-result-object v0
21298 + const-string v1, ", forceOnlineState="
21300 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21302 + move-result-object v0
21304 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->forceOnlineState:B
21306 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21308 + move-result-object v0
21310 + const-string v1, ", switchWifiStateSetting="
21312 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21314 + move-result-object v0
21316 + iget-byte v1, p0, Landroid/privacy/PrivacySettings;->switchWifiStateSetting:B
21318 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
21320 + move-result-object v0
21322 + const-string v1, "]"
21324 + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
21326 + move-result-object v0
21328 + invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
21330 + move-result-object v0
21332 + return-object v0
21333 +.end method
21335 +.method public writeToParcel(Landroid/os/Parcel;I)V
21336 + .registers 4
21338 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->_id:Ljava/lang/Integer;
21340 + if-nez v0, :cond_ef
21342 + const/4 v0, -0x1
21344 + :goto_5
21345 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeInt(I)V
21347 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->packageName:Ljava/lang/String;
21349 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
21351 + iget v0, p0, Landroid/privacy/PrivacySettings;->uid:I
21353 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeInt(I)V
21355 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->deviceIdSetting:B
21357 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21359 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->deviceId:Ljava/lang/String;
21361 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
21363 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->line1NumberSetting:B
21365 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21367 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->line1Number:Ljava/lang/String;
21369 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
21371 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationGpsSetting:B
21373 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21375 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->locationGpsLat:Ljava/lang/String;
21377 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
21379 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->locationGpsLon:Ljava/lang/String;
21381 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
21383 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkSetting:B
21385 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21387 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkLat:Ljava/lang/String;
21389 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
21391 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->locationNetworkLon:Ljava/lang/String;
21393 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
21395 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->networkInfoSetting:B
21397 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21399 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->simInfoSetting:B
21401 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21403 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->simSerialNumberSetting:B
21405 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21407 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->simSerialNumber:Ljava/lang/String;
21409 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
21411 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->subscriberIdSetting:B
21413 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21415 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->subscriberId:Ljava/lang/String;
21417 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
21419 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsSetting:B
21421 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21423 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->accountsAuthTokensSetting:B
21425 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21427 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->outgoingCallsSetting:B
21429 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21431 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->incomingCallsSetting:B
21433 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21435 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->contactsSetting:B
21437 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21439 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->calendarSetting:B
21441 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21443 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->mmsSetting:B
21445 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21447 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSetting:B
21449 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21451 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->callLogSetting:B
21453 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21455 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->bookmarksSetting:B
21457 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21459 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->systemLogsSetting:B
21461 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21463 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->notificationSetting:B
21465 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21467 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->intentBootCompletedSetting:B
21469 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21471 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->cameraSetting:B
21473 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21475 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->recordAudioSetting:B
21477 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21479 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->allowedContacts:[I
21481 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeIntArray([I)V
21483 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->smsSendSetting:B
21485 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21487 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->phoneCallSetting:B
21489 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21491 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->ipTableProtectSetting:B
21493 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21495 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->iccAccessSetting:B
21497 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21499 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->addOnManagementSetting:B
21501 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21503 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->androidIdSetting:B
21505 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21507 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->androidID:Ljava/lang/String;
21509 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
21511 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->wifiInfoSetting:B
21513 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21515 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->switchConnectivitySetting:B
21517 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21519 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->sendMmsSetting:B
21521 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21523 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->forceOnlineState:B
21525 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21527 + iget-byte v0, p0, Landroid/privacy/PrivacySettings;->switchWifiStateSetting:B
21529 + invoke-virtual {p1, v0}, Landroid/os/Parcel;->writeByte(B)V
21531 + return-void
21533 + :cond_ef
21534 + iget-object v0, p0, Landroid/privacy/PrivacySettings;->_id:Ljava/lang/Integer;
21536 + invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
21538 + move-result v0
21540 + goto/16 :goto_5
21541 +.end method
21542 diff -Npru stock-framework/smali/android/privacy/PrivacySettingsStub.smali pdroid-framework/smali/android/privacy/PrivacySettingsStub.smali
21543 --- stock-framework/smali/android/privacy/PrivacySettingsStub.smali 1969-12-31 16:00:00.000000000 -0800
21544 +++ pdroid-framework/smali/android/privacy/PrivacySettingsStub.smali 2013-08-10 20:37:42.495213442 -0700
21545 @@ -0,0 +1,27 @@
21546 +.class Landroid/privacy/PrivacySettingsStub;
21547 +.super Ljava/lang/Object;
21548 +.source "PrivacySettingsStub.java"
21551 +# static fields
21552 +.field private static final isStub:Z = true
21555 +# direct methods
21556 +.method constructor <init>()V
21557 + .registers 1
21559 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
21561 + return-void
21562 +.end method
21565 +# virtual methods
21566 +.method isStub()Z
21567 + .registers 2
21569 + const/4 v0, 0x1
21571 + return v0
21572 +.end method
21573 diff -Npru stock-framework/smali/android/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture.smali pdroid-framework/smali/android/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture.smali
21574 --- stock-framework/smali/android/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture.smali 1969-12-31 16:00:00.000000000 -0800
21575 +++ pdroid-framework/smali/android/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture.smali 2013-08-10 20:37:42.499213442 -0700
21576 @@ -0,0 +1,129 @@
21577 +.class Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;
21578 +.super Ljava/lang/Object;
21579 +.source "PrivacyAccountManager.java"
21581 +# interfaces
21582 +.implements Landroid/accounts/AccountManagerFuture;
21585 +# annotations
21586 +.annotation system Ldalvik/annotation/EnclosingClass;
21587 + value = Landroid/privacy/surrogate/PrivacyAccountManager;
21588 +.end annotation
21590 +.annotation system Ldalvik/annotation/InnerClass;
21591 + accessFlags = 0x2
21592 + name = "PrivacyAccountManagerFuture"
21593 +.end annotation
21595 +.annotation system Ldalvik/annotation/Signature;
21596 + value = {
21597 + "<V:",
21598 + "Ljava/lang/Object;",
21599 + ">",
21600 + "Ljava/lang/Object;",
21601 + "Landroid/accounts/AccountManagerFuture",
21602 + "<TV;>;"
21604 +.end annotation
21607 +# instance fields
21608 +.field private result:Ljava/lang/Object;
21609 + .annotation system Ldalvik/annotation/Signature;
21610 + value = {
21611 + "TV;"
21613 + .end annotation
21614 +.end field
21616 +.field final synthetic this$0:Landroid/privacy/surrogate/PrivacyAccountManager;
21619 +# direct methods
21620 +.method public constructor <init>(Landroid/privacy/surrogate/PrivacyAccountManager;Ljava/lang/Object;)V
21621 + .registers 3
21622 + .annotation system Ldalvik/annotation/Signature;
21623 + value = {
21624 + "(TV;)V"
21626 + .end annotation
21628 + iput-object p1, p0, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;->this$0:Landroid/privacy/surrogate/PrivacyAccountManager;
21630 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
21632 + iput-object p2, p0, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;->result:Ljava/lang/Object;
21634 + return-void
21635 +.end method
21638 +# virtual methods
21639 +.method public cancel(Z)Z
21640 + .registers 3
21642 + const/4 v0, 0x0
21644 + return v0
21645 +.end method
21647 +.method public getResult()Ljava/lang/Object;
21648 + .registers 2
21649 + .annotation system Ldalvik/annotation/Signature;
21650 + value = {
21651 + "()TV;"
21653 + .end annotation
21655 + .annotation system Ldalvik/annotation/Throws;
21656 + value = {
21657 + Landroid/accounts/OperationCanceledException;,
21658 + Ljava/io/IOException;,
21659 + Landroid/accounts/AuthenticatorException;
21661 + .end annotation
21663 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;->result:Ljava/lang/Object;
21665 + return-object v0
21666 +.end method
21668 +.method public getResult(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
21669 + .registers 5
21670 + .annotation system Ldalvik/annotation/Signature;
21671 + value = {
21672 + "(J",
21673 + "Ljava/util/concurrent/TimeUnit;",
21674 + ")TV;"
21676 + .end annotation
21678 + .annotation system Ldalvik/annotation/Throws;
21679 + value = {
21680 + Landroid/accounts/OperationCanceledException;,
21681 + Ljava/io/IOException;,
21682 + Landroid/accounts/AuthenticatorException;
21684 + .end annotation
21686 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;->result:Ljava/lang/Object;
21688 + return-object v0
21689 +.end method
21691 +.method public isCancelled()Z
21692 + .registers 2
21694 + const/4 v0, 0x0
21696 + return v0
21697 +.end method
21699 +.method public isDone()Z
21700 + .registers 2
21702 + const/4 v0, 0x1
21704 + return v0
21705 +.end method
21706 diff -Npru stock-framework/smali/android/privacy/surrogate/PrivacyAccountManager.smali pdroid-framework/smali/android/privacy/surrogate/PrivacyAccountManager.smali
21707 --- stock-framework/smali/android/privacy/surrogate/PrivacyAccountManager.smali 1969-12-31 16:00:00.000000000 -0800
21708 +++ pdroid-framework/smali/android/privacy/surrogate/PrivacyAccountManager.smali 2013-08-10 20:37:42.499213442 -0700
21709 @@ -0,0 +1,701 @@
21710 +.class public final Landroid/privacy/surrogate/PrivacyAccountManager;
21711 +.super Landroid/accounts/AccountManager;
21712 +.source "PrivacyAccountManager.java"
21715 +# annotations
21716 +.annotation system Ldalvik/annotation/MemberClasses;
21717 + value = {
21718 + Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;
21720 +.end annotation
21723 +# static fields
21724 +.field private static final TAG:Ljava/lang/String; = "PrivacyAccountManager"
21727 +# instance fields
21728 +.field private context:Landroid/content/Context;
21730 +.field private pSetMan:Landroid/privacy/PrivacySettingsManager;
21733 +# direct methods
21734 +.method public constructor <init>(Landroid/content/Context;Landroid/accounts/IAccountManager;)V
21735 + .registers 5
21737 + invoke-direct {p0, p1, p2}, Landroid/accounts/AccountManager;-><init>(Landroid/content/Context;Landroid/accounts/IAccountManager;)V
21739 + iput-object p1, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->context:Landroid/content/Context;
21741 + new-instance v0, Landroid/privacy/PrivacySettingsManager;
21743 + const-string/jumbo v1, "privacy"
21745 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
21747 + move-result-object v1
21749 + invoke-static {v1}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
21751 + move-result-object v1
21753 + invoke-direct {v0, p1, v1}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
21755 + iput-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
21757 + return-void
21758 +.end method
21760 +.method public constructor <init>(Landroid/content/Context;Landroid/accounts/IAccountManager;Landroid/os/Handler;)V
21761 + .registers 6
21763 + invoke-direct {p0, p1, p2, p3}, Landroid/accounts/AccountManager;-><init>(Landroid/content/Context;Landroid/accounts/IAccountManager;Landroid/os/Handler;)V
21765 + iput-object p1, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->context:Landroid/content/Context;
21767 + new-instance v0, Landroid/privacy/PrivacySettingsManager;
21769 + const-string/jumbo v1, "privacy"
21771 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
21773 + move-result-object v1
21775 + invoke-static {v1}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
21777 + move-result-object v1
21779 + invoke-direct {v0, p1, v1}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
21781 + iput-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
21783 + return-void
21784 +.end method
21787 +# virtual methods
21788 +.method public blockingGetAuthToken(Landroid/accounts/Account;Ljava/lang/String;Z)Ljava/lang/String;
21789 + .registers 12
21790 + .annotation system Ldalvik/annotation/Throws;
21791 + value = {
21792 + Landroid/accounts/OperationCanceledException;,
21793 + Ljava/io/IOException;,
21794 + Landroid/accounts/AuthenticatorException;
21796 + .end annotation
21798 + const/4 v5, 0x0
21800 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->context:Landroid/content/Context;
21802 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
21804 + move-result-object v1
21806 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
21808 + move-result v2
21810 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
21812 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
21814 + move-result-object v6
21816 + if-eqz v6, :cond_23
21818 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getAccountsAuthTokensSetting()B
21820 + move-result v0
21822 + if-eqz v0, :cond_23
21824 + const/4 v7, 0x0
21826 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
21828 + const/4 v3, 0x1
21830 + const-string v4, "authTokens"
21832 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
21834 + :goto_22
21835 + return-object v7
21837 + :cond_23
21838 + invoke-super {p0, p1, p2, p3}, Landroid/accounts/AccountManager;->blockingGetAuthToken(Landroid/accounts/Account;Ljava/lang/String;Z)Ljava/lang/String;
21840 + move-result-object v7
21842 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
21844 + const/4 v3, 0x0
21846 + const-string v4, "authTokens"
21848 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
21850 + goto :goto_22
21851 +.end method
21853 +.method public getAccounts()[Landroid/accounts/Account;
21854 + .registers 10
21856 + const/4 v5, 0x0
21858 + const/4 v3, 0x0
21860 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->context:Landroid/content/Context;
21862 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
21864 + move-result-object v1
21866 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
21868 + move-result v2
21870 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
21872 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
21874 + move-result-object v6
21876 + if-eqz v6, :cond_27
21878 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getAccountsSetting()B
21880 + move-result v0
21882 + if-eqz v0, :cond_27
21884 + const-string v8, "[empty accounts list]"
21886 + new-array v7, v3, [Landroid/accounts/Account;
21888 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
21890 + const/4 v3, 0x1
21892 + const-string v4, "accountsList"
21894 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
21896 + :goto_26
21897 + return-object v7
21899 + :cond_27
21900 + const-string v8, "[real value]"
21902 + invoke-super {p0}, Landroid/accounts/AccountManager;->getAccounts()[Landroid/accounts/Account;
21904 + move-result-object v7
21906 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
21908 + const-string v4, "accountsList"
21910 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
21912 + goto :goto_26
21913 +.end method
21915 +.method public getAccountsByType(Ljava/lang/String;)[Landroid/accounts/Account;
21916 + .registers 11
21918 + const/4 v5, 0x0
21920 + const/4 v3, 0x0
21922 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->context:Landroid/content/Context;
21924 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
21926 + move-result-object v1
21928 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
21930 + move-result v2
21932 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
21934 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
21936 + move-result-object v6
21938 + if-eqz v6, :cond_27
21940 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getAccountsSetting()B
21942 + move-result v0
21944 + if-eqz v0, :cond_27
21946 + const-string v8, "[empty accounts list]"
21948 + new-array v7, v3, [Landroid/accounts/Account;
21950 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
21952 + const/4 v3, 0x1
21954 + const-string v4, "accountsList"
21956 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
21958 + :goto_26
21959 + return-object v7
21961 + :cond_27
21962 + const-string v8, "[real value]"
21964 + invoke-super {p0, p1}, Landroid/accounts/AccountManager;->getAccountsByType(Ljava/lang/String;)[Landroid/accounts/Account;
21966 + move-result-object v7
21968 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
21970 + const-string v4, "accountsList"
21972 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
21974 + goto :goto_26
21975 +.end method
21977 +.method public getAccountsByTypeAndFeatures(Ljava/lang/String;[Ljava/lang/String;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;
21978 + .registers 14
21979 + .annotation system Ldalvik/annotation/Signature;
21980 + value = {
21981 + "(",
21982 + "Ljava/lang/String;",
21983 + "[",
21984 + "Ljava/lang/String;",
21985 + "Landroid/accounts/AccountManagerCallback",
21986 + "<[",
21987 + "Landroid/accounts/Account;",
21988 + ">;",
21989 + "Landroid/os/Handler;",
21990 + ")",
21991 + "Landroid/accounts/AccountManagerFuture",
21992 + "<[",
21993 + "Landroid/accounts/Account;",
21994 + ">;"
21996 + .end annotation
21998 + const/4 v5, 0x0
22000 + const/4 v3, 0x0
22002 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->context:Landroid/content/Context;
22004 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
22006 + move-result-object v1
22008 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
22010 + move-result v2
22012 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22014 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
22016 + move-result-object v6
22018 + if-eqz v6, :cond_2c
22020 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getAccountsSetting()B
22022 + move-result v0
22024 + if-eqz v0, :cond_2c
22026 + const-string v8, "[false]"
22028 + new-instance v7, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;
22030 + new-array v0, v3, [Landroid/accounts/Account;
22032 + invoke-direct {v7, p0, v0}, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;-><init>(Landroid/privacy/surrogate/PrivacyAccountManager;Ljava/lang/Object;)V
22034 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22036 + const/4 v3, 0x1
22038 + const-string v4, "accountsList"
22040 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22042 + :goto_2b
22043 + return-object v7
22045 + :cond_2c
22046 + const-string v8, "[real value]"
22048 + 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;
22050 + move-result-object v7
22052 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22054 + const-string v4, "accountsList"
22056 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22058 + goto :goto_2b
22059 +.end method
22061 +.method public getAuthToken(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;Landroid/app/Activity;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;
22062 + .registers 16
22063 + .annotation system Ldalvik/annotation/Signature;
22064 + value = {
22065 + "(",
22066 + "Landroid/accounts/Account;",
22067 + "Ljava/lang/String;",
22068 + "Landroid/os/Bundle;",
22069 + "Landroid/app/Activity;",
22070 + "Landroid/accounts/AccountManagerCallback",
22071 + "<",
22072 + "Landroid/os/Bundle;",
22073 + ">;",
22074 + "Landroid/os/Handler;",
22075 + ")",
22076 + "Landroid/accounts/AccountManagerFuture",
22077 + "<",
22078 + "Landroid/os/Bundle;",
22079 + ">;"
22081 + .end annotation
22083 + const/4 v5, 0x0
22085 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->context:Landroid/content/Context;
22087 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
22089 + move-result-object v1
22091 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
22093 + move-result v2
22095 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22097 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
22099 + move-result-object v6
22101 + if-eqz v6, :cond_2e
22103 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getAccountsAuthTokensSetting()B
22105 + move-result v0
22107 + if-eqz v0, :cond_2e
22109 + const-string v8, "[empty]"
22111 + new-instance v7, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;
22113 + new-instance v0, Landroid/os/Bundle;
22115 + invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
22117 + invoke-direct {v7, p0, v0}, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;-><init>(Landroid/privacy/surrogate/PrivacyAccountManager;Ljava/lang/Object;)V
22119 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22121 + const/4 v3, 0x1
22123 + const-string v4, "authTokens"
22125 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22127 + :goto_2d
22128 + return-object v7
22130 + :cond_2e
22131 + const-string v8, "[real value]"
22133 + 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;
22135 + move-result-object v7
22137 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22139 + const/4 v3, 0x0
22141 + const-string v4, "authTokens"
22143 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22145 + goto :goto_2d
22146 +.end method
22148 +.method public getAuthToken(Landroid/accounts/Account;Ljava/lang/String;ZLandroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;
22149 + .registers 15
22150 + .annotation system Ldalvik/annotation/Signature;
22151 + value = {
22152 + "(",
22153 + "Landroid/accounts/Account;",
22154 + "Ljava/lang/String;",
22155 + "Z",
22156 + "Landroid/accounts/AccountManagerCallback",
22157 + "<",
22158 + "Landroid/os/Bundle;",
22159 + ">;",
22160 + "Landroid/os/Handler;",
22161 + ")",
22162 + "Landroid/accounts/AccountManagerFuture",
22163 + "<",
22164 + "Landroid/os/Bundle;",
22165 + ">;"
22167 + .end annotation
22169 + const/4 v5, 0x0
22171 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->context:Landroid/content/Context;
22173 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
22175 + move-result-object v1
22177 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
22179 + move-result v2
22181 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22183 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
22185 + move-result-object v6
22187 + if-eqz v6, :cond_2e
22189 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getAccountsAuthTokensSetting()B
22191 + move-result v0
22193 + if-eqz v0, :cond_2e
22195 + const-string v8, "[empty]"
22197 + new-instance v7, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;
22199 + new-instance v0, Landroid/os/Bundle;
22201 + invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
22203 + invoke-direct {v7, p0, v0}, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;-><init>(Landroid/privacy/surrogate/PrivacyAccountManager;Ljava/lang/Object;)V
22205 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22207 + const/4 v3, 0x1
22209 + const-string v4, "authTokens"
22211 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22213 + :goto_2d
22214 + return-object v7
22216 + :cond_2e
22217 + const-string v8, "[real value]"
22219 + invoke-super/range {p0 .. p5}, Landroid/accounts/AccountManager;->getAuthToken(Landroid/accounts/Account;Ljava/lang/String;ZLandroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;
22221 + move-result-object v7
22223 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22225 + const/4 v3, 0x0
22227 + const-string v4, "authTokens"
22229 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22231 + goto :goto_2d
22232 +.end method
22234 +.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;
22235 + .registers 18
22236 + .annotation system Ldalvik/annotation/Signature;
22237 + value = {
22238 + "(",
22239 + "Ljava/lang/String;",
22240 + "Ljava/lang/String;",
22241 + "[",
22242 + "Ljava/lang/String;",
22243 + "Landroid/app/Activity;",
22244 + "Landroid/os/Bundle;",
22245 + "Landroid/os/Bundle;",
22246 + "Landroid/accounts/AccountManagerCallback",
22247 + "<",
22248 + "Landroid/os/Bundle;",
22249 + ">;",
22250 + "Landroid/os/Handler;",
22251 + ")",
22252 + "Landroid/accounts/AccountManagerFuture",
22253 + "<",
22254 + "Landroid/os/Bundle;",
22255 + ">;"
22257 + .end annotation
22259 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->context:Landroid/content/Context;
22261 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
22263 + move-result-object v1
22265 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
22267 + move-result v2
22269 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22271 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
22273 + move-result-object v6
22275 + if-eqz v6, :cond_2e
22277 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getAccountsAuthTokensSetting()B
22279 + move-result v0
22281 + if-eqz v0, :cond_2e
22283 + const-string v8, "[empty]"
22285 + new-instance v7, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;
22287 + new-instance v0, Landroid/os/Bundle;
22289 + invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
22291 + invoke-direct {v7, p0, v0}, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;-><init>(Landroid/privacy/surrogate/PrivacyAccountManager;Ljava/lang/Object;)V
22293 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22295 + const/4 v3, 0x1
22297 + const-string v4, "authTokens"
22299 + const/4 v5, 0x0
22301 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22303 + :goto_2d
22304 + return-object v7
22306 + :cond_2e
22307 + const-string v8, "[real value]"
22309 + 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;
22311 + move-result-object v7
22313 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22315 + const/4 v3, 0x0
22317 + const-string v4, "authTokens"
22319 + const/4 v5, 0x0
22321 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22323 + goto :goto_2d
22324 +.end method
22326 +.method public hasFeatures(Landroid/accounts/Account;[Ljava/lang/String;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;
22327 + .registers 14
22328 + .annotation system Ldalvik/annotation/Signature;
22329 + value = {
22330 + "(",
22331 + "Landroid/accounts/Account;",
22332 + "[",
22333 + "Ljava/lang/String;",
22334 + "Landroid/accounts/AccountManagerCallback",
22335 + "<",
22336 + "Ljava/lang/Boolean;",
22337 + ">;",
22338 + "Landroid/os/Handler;",
22339 + ")",
22340 + "Landroid/accounts/AccountManagerFuture",
22341 + "<",
22342 + "Ljava/lang/Boolean;",
22343 + ">;"
22345 + .end annotation
22347 + const/4 v5, 0x0
22349 + const/4 v3, 0x0
22351 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->context:Landroid/content/Context;
22353 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
22355 + move-result-object v1
22357 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
22359 + move-result v2
22361 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22363 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
22365 + move-result-object v6
22367 + if-eqz v6, :cond_2e
22369 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getAccountsSetting()B
22371 + move-result v0
22373 + if-eqz v0, :cond_2e
22375 + const-string v8, "[false]"
22377 + new-instance v7, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;
22379 + invoke-static {v3}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
22381 + move-result-object v0
22383 + invoke-direct {v7, p0, v0}, Landroid/privacy/surrogate/PrivacyAccountManager$PrivacyAccountManagerFuture;-><init>(Landroid/privacy/surrogate/PrivacyAccountManager;Ljava/lang/Object;)V
22385 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22387 + const/4 v3, 0x1
22389 + const-string v4, "accountsList"
22391 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22393 + :goto_2d
22394 + return-object v7
22396 + :cond_2e
22397 + const-string v8, "[real value]"
22399 + 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;
22401 + move-result-object v7
22403 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyAccountManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22405 + const-string v4, "accountsList"
22407 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22409 + goto :goto_2d
22410 +.end method
22411 diff -Npru stock-framework/smali/android/privacy/surrogate/PrivacyActivityManagerService.smali pdroid-framework/smali/android/privacy/surrogate/PrivacyActivityManagerService.smali
22412 --- stock-framework/smali/android/privacy/surrogate/PrivacyActivityManagerService.smali 1969-12-31 16:00:00.000000000 -0800
22413 +++ pdroid-framework/smali/android/privacy/surrogate/PrivacyActivityManagerService.smali 2013-08-10 20:37:42.503213441 -0700
22414 @@ -0,0 +1,1223 @@
22415 +.class public final Landroid/privacy/surrogate/PrivacyActivityManagerService;
22416 +.super Ljava/lang/Object;
22417 +.source "PrivacyActivityManagerService.java"
22420 +# static fields
22421 +.field private static final DATA_SMS_RECEIVED_INTENT:Ljava/lang/String; = "android.intent.action.DATA_SMS_RECEIVED"
22423 +.field private static final SMS_RECEIVED_ACTION_INTENT:Ljava/lang/String; = "android.provider.Telephony.SMS_RECEIVED"
22425 +.field private static final TAG:Ljava/lang/String; = "PrivacyActivityManagerService"
22427 +.field private static final WAP_PUSH_RECEIVED_INTENT:Ljava/lang/String; = "android.provider.Telephony.WAP_PUSH_RECEIVED"
22429 +.field private static pSetMan:Landroid/privacy/PrivacySettingsManager;
22431 +.field private static tmpIn:Landroid/content/Intent;
22433 +.field private static tmpInHash:J
22435 +.field private static tmpInReceivers:I
22437 +.field private static tmpMms:Landroid/content/Intent;
22439 +.field private static tmpMmsHash:J
22441 +.field private static tmpMmsReceivers:I
22443 +.field private static tmpOut:Landroid/content/Intent;
22445 +.field private static tmpOutHash:J
22447 +.field private static tmpOutReceivers:I
22449 +.field private static tmpPackageAddedHash:J
22451 +.field private static tmpSms:Landroid/content/Intent;
22453 +.field private static tmpSmsHash:J
22455 +.field private static tmpSmsReceivers:I
22458 +# direct methods
22459 +.method static constructor <clinit>()V
22460 + .registers 3
22462 + const/4 v2, 0x0
22464 + const-wide/16 v0, 0x0
22466 + sput-wide v0, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpInHash:J
22468 + sput v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpInReceivers:I
22470 + sput-wide v0, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOutHash:J
22472 + sput v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOutReceivers:I
22474 + sput-wide v0, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSmsHash:J
22476 + sput v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSmsReceivers:I
22478 + sput-wide v0, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMmsHash:J
22480 + sput v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMmsReceivers:I
22482 + sput-wide v0, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpPackageAddedHash:J
22484 + return-void
22485 +.end method
22487 +.method public constructor <init>()V
22488 + .registers 1
22490 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
22492 + return-void
22493 +.end method
22495 +.method public static enforcePrivacyPermission(Ljava/lang/String;ILandroid/content/Intent;Landroid/content/Context;I)V
22496 + .registers 29
22498 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22500 + if-nez v2, :cond_13
22502 + if-eqz p3, :cond_13
22504 + const-string/jumbo v2, "privacy"
22506 + move-object/from16 v0, p3
22508 + invoke-virtual {v0, v2}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
22510 + move-result-object v2
22512 + check-cast v2, Landroid/privacy/PrivacySettingsManager;
22514 + sput-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22516 + :cond_13
22517 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22519 + if-nez v2, :cond_2c
22521 + if-nez p3, :cond_2c
22523 + new-instance v2, Landroid/privacy/PrivacySettingsManager;
22525 + const/4 v3, 0x0
22527 + const-string/jumbo v4, "privacy"
22529 + invoke-static {v4}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
22531 + move-result-object v4
22533 + invoke-static {v4}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
22535 + move-result-object v4
22537 + invoke-direct {v2, v3, v4}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
22539 + sput-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22541 + :cond_2c
22542 + invoke-virtual/range {p2 .. p2}, Landroid/content/Intent;->getAction()Ljava/lang/String;
22544 + move-result-object v16
22546 + const-string v2, "android.intent.action.NEW_OUTGOING_CALL"
22548 + move-object/from16 v0, v16
22550 + invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
22552 + move-result v2
22554 + if-eqz v2, :cond_cc
22556 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22558 + move-object/from16 v0, p0
22560 + move/from16 v1, p1
22562 + invoke-virtual {v2, v0, v1}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
22564 + move-result-object v8
22566 + const-string v2, "android.intent.extra.PHONE_NUMBER"
22568 + move-object/from16 v0, p2
22570 + invoke-virtual {v0, v2}, Landroid/content/Intent;->getStringExtra(Ljava/lang/String;)Ljava/lang/String;
22572 + move-result-object v23
22574 + sget-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOutHash:J
22576 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
22578 + move-result-wide v4
22580 + cmp-long v2, v2, v4
22582 + if-eqz v2, :cond_66
22584 + invoke-virtual/range {p2 .. p2}, Landroid/content/Intent;->clone()Ljava/lang/Object;
22586 + move-result-object v2
22588 + check-cast v2, Landroid/content/Intent;
22590 + sput-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOut:Landroid/content/Intent;
22592 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
22594 + move-result-wide v2
22596 + sput-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOutHash:J
22598 + sput p4, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOutReceivers:I
22600 + :cond_66
22601 + if-eqz v8, :cond_93
22603 + :try_start_68
22604 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getOutgoingCallsSetting()B
22606 + move-result v2
22608 + if-eqz v2, :cond_93
22610 + const-string v23, ""
22612 + const-string v2, "android.intent.extra.PHONE_NUMBER"
22614 + move-object/from16 v0, p2
22616 + move-object/from16 v1, v23
22618 + invoke-virtual {v0, v2, v1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
22620 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22622 + const/4 v5, 0x1
22624 + const-string/jumbo v6, "outgoingCall"
22626 + const/4 v7, 0x0
22628 + move-object/from16 v3, p0
22630 + move/from16 v4, p1
22632 + invoke-virtual/range {v2 .. v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22633 + :try_end_87
22634 + .catch Ljava/lang/Exception; {:try_start_68 .. :try_end_87} :catch_bd
22636 + :cond_87
22637 + :goto_87
22638 + sget v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOutReceivers:I
22640 + const/4 v3, 0x1
22642 + if-le v2, v3, :cond_c8
22644 + sget v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOutReceivers:I
22646 + add-int/lit8 v2, v2, -0x1
22648 + sput v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOutReceivers:I
22650 + :cond_92
22651 + :goto_92
22652 + return-void
22654 + :cond_93
22655 + :try_start_93
22656 + sget-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOutHash:J
22658 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
22660 + move-result-wide v4
22662 + cmp-long v2, v2, v4
22664 + if-nez v2, :cond_87
22666 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOut:Landroid/content/Intent;
22668 + const-string v3, "android.intent.extra.PHONE_NUMBER"
22670 + invoke-virtual {v2, v3}, Landroid/content/Intent;->getStringExtra(Ljava/lang/String;)Ljava/lang/String;
22672 + move-result-object v23
22674 + const-string v2, "android.intent.extra.PHONE_NUMBER"
22676 + move-object/from16 v0, p2
22678 + move-object/from16 v1, v23
22680 + invoke-virtual {v0, v2, v1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
22682 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22684 + const/4 v5, 0x0
22686 + const-string/jumbo v6, "outgoingCall"
22688 + const/4 v7, 0x0
22690 + move-object/from16 v3, p0
22692 + move/from16 v4, p1
22694 + invoke-virtual/range {v2 .. v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22695 + :try_end_bc
22696 + .catch Ljava/lang/Exception; {:try_start_93 .. :try_end_bc} :catch_bd
22698 + goto :goto_87
22700 + :catch_bd
22701 + move-exception v20
22703 + const-string v2, "PrivacyActivityManagerService"
22705 + const-string v3, "failed to enforce intent broadcast permission"
22707 + move-object/from16 v0, v20
22709 + invoke-static {v2, v3, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
22711 + goto :goto_87
22713 + :cond_c8
22714 + const/4 v2, 0x0
22716 + sput-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpOut:Landroid/content/Intent;
22718 + goto :goto_92
22720 + :cond_cc
22721 + const-string v2, "android.intent.action.PHONE_STATE"
22723 + move-object/from16 v0, v16
22725 + invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
22727 + move-result v2
22729 + if-eqz v2, :cond_170
22731 + const-string v2, "incoming_number"
22733 + move-object/from16 v0, p2
22735 + invoke-virtual {v0, v2}, Landroid/content/Intent;->getStringExtra(Ljava/lang/String;)Ljava/lang/String;
22737 + move-result-object v23
22739 + if-eqz v23, :cond_92
22741 + invoke-virtual/range {v23 .. v23}, Ljava/lang/String;->isEmpty()Z
22743 + move-result v2
22745 + if-nez v2, :cond_92
22747 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22749 + move-object/from16 v0, p0
22751 + move/from16 v1, p1
22753 + invoke-virtual {v2, v0, v1}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
22755 + move-result-object v8
22757 + sget-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpInHash:J
22759 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
22761 + move-result-wide v4
22763 + cmp-long v2, v2, v4
22765 + if-eqz v2, :cond_10a
22767 + invoke-virtual/range {p2 .. p2}, Landroid/content/Intent;->clone()Ljava/lang/Object;
22769 + move-result-object v2
22771 + check-cast v2, Landroid/content/Intent;
22773 + sput-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpIn:Landroid/content/Intent;
22775 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
22777 + move-result-wide v2
22779 + sput-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpInHash:J
22781 + sput p4, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpInReceivers:I
22783 + :cond_10a
22784 + if-eqz v8, :cond_137
22786 + :try_start_10c
22787 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getIncomingCallsSetting()B
22789 + move-result v2
22791 + if-eqz v2, :cond_137
22793 + const-string v23, ""
22795 + const-string v2, "incoming_number"
22797 + move-object/from16 v0, p2
22799 + move-object/from16 v1, v23
22801 + invoke-virtual {v0, v2, v1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
22803 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22805 + const/4 v5, 0x1
22807 + const-string v6, "incomingCall"
22809 + const/4 v7, 0x0
22811 + move-object/from16 v3, p0
22813 + move/from16 v4, p1
22815 + invoke-virtual/range {v2 .. v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22816 + :try_end_12a
22817 + .catch Ljava/lang/Exception; {:try_start_10c .. :try_end_12a} :catch_160
22819 + :cond_12a
22820 + :goto_12a
22821 + sget v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpInReceivers:I
22823 + const/4 v3, 0x1
22825 + if-le v2, v3, :cond_16b
22827 + sget v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpInReceivers:I
22829 + add-int/lit8 v2, v2, -0x1
22831 + sput v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpInReceivers:I
22833 + goto/16 :goto_92
22835 + :cond_137
22836 + :try_start_137
22837 + sget-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpInHash:J
22839 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
22841 + move-result-wide v4
22843 + cmp-long v2, v2, v4
22845 + if-nez v2, :cond_12a
22847 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpIn:Landroid/content/Intent;
22849 + const-string v3, "incoming_number"
22851 + invoke-virtual {v2, v3}, Landroid/content/Intent;->getStringExtra(Ljava/lang/String;)Ljava/lang/String;
22853 + move-result-object v23
22855 + const-string v2, "incoming_number"
22857 + move-object/from16 v0, p2
22859 + move-object/from16 v1, v23
22861 + invoke-virtual {v0, v2, v1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
22863 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22865 + const/4 v5, 0x0
22867 + const-string v6, "incomingCall"
22869 + const/4 v7, 0x0
22871 + move-object/from16 v3, p0
22873 + move/from16 v4, p1
22875 + invoke-virtual/range {v2 .. v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
22876 + :try_end_15f
22877 + .catch Ljava/lang/Exception; {:try_start_137 .. :try_end_15f} :catch_160
22879 + goto :goto_12a
22881 + :catch_160
22882 + move-exception v20
22884 + const-string v2, "PrivacyActivityManagerService"
22886 + const-string v3, "failed to enforce intent broadcast permission"
22888 + move-object/from16 v0, v20
22890 + invoke-static {v2, v3, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
22892 + goto :goto_12a
22894 + :cond_16b
22895 + const/4 v2, 0x0
22897 + sput-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpIn:Landroid/content/Intent;
22899 + goto/16 :goto_92
22901 + :cond_170
22902 + const-string v2, "android.provider.Telephony.SMS_RECEIVED"
22904 + move-object/from16 v0, v16
22906 + invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
22908 + move-result v2
22910 + if-eqz v2, :cond_253
22912 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
22914 + move-object/from16 v0, p0
22916 + move/from16 v1, p1
22918 + invoke-virtual {v2, v0, v1}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
22920 + move-result-object v8
22922 + const-string v23, "[real]"
22924 + const-string/jumbo v2, "pdus"
22926 + move-object/from16 v0, p2
22928 + invoke-virtual {v0, v2}, Landroid/content/Intent;->getSerializableExtra(Ljava/lang/String;)Ljava/io/Serializable;
22930 + move-result-object v2
22932 + check-cast v2, [Ljava/lang/Object;
22934 + move-object/from16 v22, v2
22936 + check-cast v22, [Ljava/lang/Object;
22938 + if-eqz v22, :cond_1f8
22940 + const/4 v2, 0x0
22942 + aget-object v2, v22, v2
22944 + check-cast v2, [B
22946 + check-cast v2, [B
22948 + move-object/from16 v19, v2
22950 + :goto_1a0
22951 + sget-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSmsHash:J
22953 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
22955 + move-result-wide v4
22957 + cmp-long v2, v2, v4
22959 + if-eqz v2, :cond_1ba
22961 + invoke-virtual/range {p2 .. p2}, Landroid/content/Intent;->clone()Ljava/lang/Object;
22963 + move-result-object v2
22965 + check-cast v2, Landroid/content/Intent;
22967 + sput-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSms:Landroid/content/Intent;
22969 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
22971 + move-result-wide v2
22973 + sput-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSmsHash:J
22975 + sput p4, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSmsReceivers:I
22977 + :cond_1ba
22978 + if-eqz v8, :cond_1fb
22980 + :try_start_1bc
22981 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getSmsSetting()B
22983 + move-result v2
22985 + if-eqz v2, :cond_1fb
22987 + const-string v23, "[empty]"
22989 + const/4 v2, 0x1
22991 + new-array v0, v2, [Ljava/lang/Object;
22993 + move-object/from16 v21, v0
22995 + const/4 v2, 0x0
22997 + const/16 v3, 0x10
22999 + new-array v3, v3, [B
23001 + fill-array-data v3, :array_3da
23003 + aput-object v3, v21, v2
23005 + const-string/jumbo v2, "pdus"
23007 + move-object/from16 v0, p2
23009 + move-object/from16 v1, v21
23011 + invoke-virtual {v0, v2, v1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/io/Serializable;)Landroid/content/Intent;
23013 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23015 + const/4 v5, 0x1
23017 + const-string/jumbo v6, "sms"
23019 + const/4 v7, 0x0
23021 + move-object/from16 v3, p0
23023 + move/from16 v4, p1
23025 + invoke-virtual/range {v2 .. v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23026 + :try_end_1eb
23027 + .catch Ljava/lang/Exception; {:try_start_1bc .. :try_end_1eb} :catch_240
23029 + :cond_1eb
23030 + :goto_1eb
23031 + sget v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSmsReceivers:I
23033 + const/4 v3, 0x1
23035 + if-le v2, v3, :cond_24e
23037 + sget v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSmsReceivers:I
23039 + add-int/lit8 v2, v2, -0x1
23041 + sput v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSmsReceivers:I
23043 + goto/16 :goto_92
23045 + :cond_1f8
23046 + const/16 v19, 0x0
23048 + goto :goto_1a0
23050 + :cond_1fb
23051 + :try_start_1fb
23052 + sget-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSmsHash:J
23054 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
23056 + move-result-wide v4
23058 + cmp-long v2, v2, v4
23060 + if-nez v2, :cond_1eb
23062 + const-string/jumbo v2, "pdus"
23064 + sget-object v3, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSms:Landroid/content/Intent;
23066 + const-string/jumbo v4, "pdus"
23068 + invoke-virtual {v3, v4}, Landroid/content/Intent;->getSerializableExtra(Ljava/lang/String;)Ljava/io/Serializable;
23070 + move-result-object v3
23072 + move-object/from16 v0, p2
23074 + invoke-virtual {v0, v2, v3}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/io/Serializable;)Landroid/content/Intent;
23076 + const-string/jumbo v2, "pdus"
23078 + move-object/from16 v0, p2
23080 + invoke-virtual {v0, v2}, Landroid/content/Intent;->getSerializableExtra(Ljava/lang/String;)Ljava/io/Serializable;
23082 + move-result-object v2
23084 + check-cast v2, [Ljava/lang/Object;
23086 + move-object v0, v2
23088 + check-cast v0, [Ljava/lang/Object;
23090 + move-object/from16 v22, v0
23092 + if-eqz v22, :cond_24b
23094 + const/4 v2, 0x0
23096 + aget-object v2, v22, v2
23098 + check-cast v2, [B
23100 + check-cast v2, [B
23102 + move-object/from16 v19, v2
23104 + :goto_231
23105 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23107 + const/4 v5, 0x0
23109 + const-string/jumbo v6, "sms"
23111 + const/4 v7, 0x0
23113 + move-object/from16 v3, p0
23115 + move/from16 v4, p1
23117 + invoke-virtual/range {v2 .. v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23118 + :try_end_23f
23119 + .catch Ljava/lang/Exception; {:try_start_1fb .. :try_end_23f} :catch_240
23121 + goto :goto_1eb
23123 + :catch_240
23124 + move-exception v20
23126 + const-string v2, "PrivacyActivityManagerService"
23128 + const-string v3, "failed to enforce intent broadcast permission"
23130 + move-object/from16 v0, v20
23132 + invoke-static {v2, v3, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
23134 + goto :goto_1eb
23136 + :cond_24b
23137 + const/16 v19, 0x0
23139 + goto :goto_231
23141 + :cond_24e
23142 + const/4 v2, 0x0
23144 + sput-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpSms:Landroid/content/Intent;
23146 + goto/16 :goto_92
23148 + :cond_253
23149 + const-string v2, "android.provider.Telephony.WAP_PUSH_RECEIVED"
23151 + move-object/from16 v0, v16
23153 + invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
23155 + move-result v2
23157 + if-nez v2, :cond_267
23159 + const-string v2, "android.intent.action.DATA_SMS_RECEIVED"
23161 + move-object/from16 v0, v16
23163 + invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
23165 + move-result v2
23167 + if-eqz v2, :cond_340
23169 + :cond_267
23170 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23172 + move-object/from16 v0, p0
23174 + move/from16 v1, p1
23176 + invoke-virtual {v2, v0, v1}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
23178 + move-result-object v8
23180 + const-string v23, "[real]"
23182 + const-string/jumbo v2, "pdus"
23184 + move-object/from16 v0, p2
23186 + invoke-virtual {v0, v2}, Landroid/content/Intent;->getSerializableExtra(Ljava/lang/String;)Ljava/io/Serializable;
23188 + move-result-object v2
23190 + check-cast v2, [Ljava/lang/Object;
23192 + move-object/from16 v22, v2
23194 + check-cast v22, [Ljava/lang/Object;
23196 + if-eqz v22, :cond_2e5
23198 + const/4 v2, 0x0
23200 + aget-object v2, v22, v2
23202 + check-cast v2, [B
23204 + check-cast v2, [B
23206 + move-object/from16 v19, v2
23208 + :goto_28d
23209 + sget-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMmsHash:J
23211 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
23213 + move-result-wide v4
23215 + cmp-long v2, v2, v4
23217 + if-eqz v2, :cond_2a7
23219 + invoke-virtual/range {p2 .. p2}, Landroid/content/Intent;->clone()Ljava/lang/Object;
23221 + move-result-object v2
23223 + check-cast v2, Landroid/content/Intent;
23225 + sput-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMms:Landroid/content/Intent;
23227 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
23229 + move-result-wide v2
23231 + sput-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMmsHash:J
23233 + sput p4, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMmsReceivers:I
23235 + :cond_2a7
23236 + if-eqz v8, :cond_2e8
23238 + :try_start_2a9
23239 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getMmsSetting()B
23241 + move-result v2
23243 + if-eqz v2, :cond_2e8
23245 + const-string v23, "[empty]"
23247 + const/4 v2, 0x1
23249 + new-array v0, v2, [Ljava/lang/Object;
23251 + move-object/from16 v21, v0
23253 + const/4 v2, 0x0
23255 + const/16 v3, 0x10
23257 + new-array v3, v3, [B
23259 + fill-array-data v3, :array_3e6
23261 + aput-object v3, v21, v2
23263 + const-string/jumbo v2, "pdus"
23265 + move-object/from16 v0, p2
23267 + move-object/from16 v1, v21
23269 + invoke-virtual {v0, v2, v1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/io/Serializable;)Landroid/content/Intent;
23271 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23273 + const/4 v5, 0x1
23275 + const-string/jumbo v6, "mms"
23277 + const/4 v7, 0x0
23279 + move-object/from16 v3, p0
23281 + move/from16 v4, p1
23283 + invoke-virtual/range {v2 .. v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23284 + :try_end_2d8
23285 + .catch Ljava/lang/Exception; {:try_start_2a9 .. :try_end_2d8} :catch_32d
23287 + :cond_2d8
23288 + :goto_2d8
23289 + sget v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMmsReceivers:I
23291 + const/4 v3, 0x1
23293 + if-le v2, v3, :cond_33b
23295 + sget v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMmsReceivers:I
23297 + add-int/lit8 v2, v2, -0x1
23299 + sput v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMmsReceivers:I
23301 + goto/16 :goto_92
23303 + :cond_2e5
23304 + const/16 v19, 0x0
23306 + goto :goto_28d
23308 + :cond_2e8
23309 + :try_start_2e8
23310 + sget-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMmsHash:J
23312 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
23314 + move-result-wide v4
23316 + cmp-long v2, v2, v4
23318 + if-nez v2, :cond_2d8
23320 + const-string/jumbo v2, "pdus"
23322 + sget-object v3, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMms:Landroid/content/Intent;
23324 + const-string/jumbo v4, "pdus"
23326 + invoke-virtual {v3, v4}, Landroid/content/Intent;->getSerializableExtra(Ljava/lang/String;)Ljava/io/Serializable;
23328 + move-result-object v3
23330 + move-object/from16 v0, p2
23332 + invoke-virtual {v0, v2, v3}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/io/Serializable;)Landroid/content/Intent;
23334 + const-string/jumbo v2, "pdus"
23336 + move-object/from16 v0, p2
23338 + invoke-virtual {v0, v2}, Landroid/content/Intent;->getSerializableExtra(Ljava/lang/String;)Ljava/io/Serializable;
23340 + move-result-object v2
23342 + check-cast v2, [Ljava/lang/Object;
23344 + move-object v0, v2
23346 + check-cast v0, [Ljava/lang/Object;
23348 + move-object/from16 v22, v0
23350 + if-eqz v22, :cond_338
23352 + const/4 v2, 0x0
23354 + aget-object v2, v22, v2
23356 + check-cast v2, [B
23358 + check-cast v2, [B
23360 + move-object/from16 v19, v2
23362 + :goto_31e
23363 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23365 + const/4 v5, 0x0
23367 + const-string/jumbo v6, "mms"
23369 + const/4 v7, 0x0
23371 + move-object/from16 v3, p0
23373 + move/from16 v4, p1
23375 + invoke-virtual/range {v2 .. v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23376 + :try_end_32c
23377 + .catch Ljava/lang/Exception; {:try_start_2e8 .. :try_end_32c} :catch_32d
23379 + goto :goto_2d8
23381 + :catch_32d
23382 + move-exception v20
23384 + const-string v2, "PrivacyActivityManagerService"
23386 + const-string v3, "failed to enforce intent broadcast permission"
23388 + move-object/from16 v0, v20
23390 + invoke-static {v2, v3, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
23392 + goto :goto_2d8
23394 + :cond_338
23395 + const/16 v19, 0x0
23397 + goto :goto_31e
23399 + :cond_33b
23400 + const/4 v2, 0x0
23402 + sput-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpMms:Landroid/content/Intent;
23404 + goto/16 :goto_92
23406 + :cond_340
23407 + const-string v2, "android.intent.action.BOOT_COMPLETED"
23409 + move-object/from16 v0, v16
23411 + invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
23413 + move-result v2
23415 + if-eqz v2, :cond_38d
23417 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23419 + invoke-virtual {v2}, Landroid/privacy/PrivacySettingsManager;->setBootCompleted()V
23421 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23423 + move-object/from16 v0, p0
23425 + invoke-virtual {v2, v0}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
23427 + move-result-object v8
23429 + if-eqz v8, :cond_376
23431 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getIntentBootCompletedSetting()B
23433 + move-result v2
23435 + if-eqz v2, :cond_376
23437 + const-string v2, "catchBootComplete"
23439 + move-object/from16 v0, p2
23441 + invoke-virtual {v0, v2}, Landroid/content/Intent;->setAction(Ljava/lang/String;)Landroid/content/Intent;
23443 + sget-object v9, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23445 + const/4 v12, 0x1
23447 + const-string v13, "intentBootCompleted"
23449 + const/4 v14, 0x0
23451 + const/4 v15, 0x0
23453 + move-object/from16 v10, p0
23455 + move/from16 v11, p1
23457 + invoke-virtual/range {v9 .. v15}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23459 + goto/16 :goto_92
23461 + :cond_376
23462 + const-string v2, "android.intent.action.BOOT_COMPLETED"
23464 + move-object/from16 v0, p2
23466 + invoke-virtual {v0, v2}, Landroid/content/Intent;->setAction(Ljava/lang/String;)Landroid/content/Intent;
23468 + sget-object v9, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23470 + const/4 v12, 0x0
23472 + const-string v13, "intentBootCompleted"
23474 + const/4 v14, 0x0
23476 + const/4 v15, 0x0
23478 + move-object/from16 v10, p0
23480 + move/from16 v11, p1
23482 + invoke-virtual/range {v9 .. v15}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23484 + goto/16 :goto_92
23486 + :cond_38d
23487 + const-string v2, "android.intent.action.PACKAGE_ADDED"
23489 + move-object/from16 v0, v16
23491 + invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
23493 + move-result v2
23495 + if-eqz v2, :cond_92
23497 + sget-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpPackageAddedHash:J
23499 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
23501 + move-result-wide v4
23503 + cmp-long v2, v2, v4
23505 + if-eqz v2, :cond_92
23507 + invoke-static/range {p2 .. p2}, Landroid/privacy/surrogate/PrivacyActivityManagerService;->hashCode(Landroid/content/Intent;)J
23509 + move-result-wide v2
23511 + sput-wide v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->tmpPackageAddedHash:J
23513 + invoke-virtual/range {p2 .. p2}, Landroid/content/Intent;->getData()Landroid/net/Uri;
23515 + move-result-object v2
23517 + invoke-virtual {v2}, Landroid/net/Uri;->getSchemeSpecificPart()Ljava/lang/String;
23519 + move-result-object v17
23521 + invoke-virtual/range {p2 .. p2}, Landroid/content/Intent;->getExtras()Landroid/os/Bundle;
23523 + move-result-object v2
23525 + const-string v3, "android.intent.extra.UID"
23527 + invoke-virtual {v2, v3}, Landroid/os/Bundle;->getInt(Ljava/lang/String;)I
23529 + move-result v18
23531 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23533 + move-object/from16 v0, v17
23535 + move/from16 v1, v18
23537 + invoke-virtual {v2, v0, v1}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
23539 + move-result-object v8
23541 + if-eqz v8, :cond_92
23543 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getUid()I
23545 + move-result v2
23547 + move/from16 v0, v18
23549 + if-eq v2, v0, :cond_92
23551 + move/from16 v0, v18
23553 + invoke-virtual {v8, v0}, Landroid/privacy/PrivacySettings;->setUid(I)V
23555 + sget-object v2, Landroid/privacy/surrogate/PrivacyActivityManagerService;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23557 + invoke-virtual {v2, v8}, Landroid/privacy/PrivacySettingsManager;->saveSettings(Landroid/privacy/PrivacySettings;)Z
23559 + goto/16 :goto_92
23561 + nop
23563 + :array_3da
23564 + .array-data 0x1
23565 + 0x0t
23566 + 0x20t
23567 + 0x1t
23568 + 0x81t
23569 + 0xf0t
23570 + 0x0t
23571 + 0x0t
23572 + 0x11t
23573 + 0x90t
23574 + 0x1t
23575 + 0x30t
23576 + 0x22t
23577 + 0x22t
23578 + 0x80t
23579 + 0x1t
23580 + 0x20t
23581 + .end array-data
23583 + :array_3e6
23584 + .array-data 0x1
23585 + 0x0t
23586 + 0x20t
23587 + 0x1t
23588 + 0x81t
23589 + 0xf0t
23590 + 0x0t
23591 + 0x0t
23592 + 0x11t
23593 + 0x90t
23594 + 0x1t
23595 + 0x30t
23596 + 0x22t
23597 + 0x22t
23598 + 0x80t
23599 + 0x1t
23600 + 0x20t
23601 + .end array-data
23602 +.end method
23604 +.method private static hashCode(Landroid/content/Intent;)J
23605 + .registers 7
23607 + const-wide/16 v3, 0x0
23609 + const-string/jumbo v2, "privacy_hash"
23611 + invoke-virtual {p0, v2, v3, v4}, Landroid/content/Intent;->getLongExtra(Ljava/lang/String;J)J
23613 + move-result-wide v0
23615 + cmp-long v2, v0, v3
23617 + if-nez v2, :cond_1e
23619 + invoke-virtual {p0}, Landroid/content/Intent;->filterHashCode()I
23621 + move-result v2
23623 + int-to-long v2, v2
23625 + invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
23627 + move-result-wide v4
23629 + add-long v0, v2, v4
23631 + const-string/jumbo v2, "privacy_hash"
23633 + invoke-virtual {p0, v2, v0, v1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;J)Landroid/content/Intent;
23635 + :cond_1e
23636 + return-wide v0
23637 +.end method
23638 diff -Npru stock-framework/smali/android/privacy/surrogate/PrivacyConnectivityManager.smali pdroid-framework/smali/android/privacy/surrogate/PrivacyConnectivityManager.smali
23639 --- stock-framework/smali/android/privacy/surrogate/PrivacyConnectivityManager.smali 1969-12-31 16:00:00.000000000 -0800
23640 +++ pdroid-framework/smali/android/privacy/surrogate/PrivacyConnectivityManager.smali 2013-08-10 20:37:42.503213441 -0700
23641 @@ -0,0 +1,1045 @@
23642 +.class public Landroid/privacy/surrogate/PrivacyConnectivityManager;
23643 +.super Landroid/net/ConnectivityManager;
23644 +.source "PrivacyConnectivityManager.java"
23647 +# static fields
23648 +.field private static final P_TAG:Ljava/lang/String; = "PrivacyConnectivityManager"
23651 +# instance fields
23652 +.field private context:Landroid/content/Context;
23654 +.field private pSetMan:Landroid/privacy/PrivacySettingsManager;
23657 +# direct methods
23658 +.method public constructor <init>(Landroid/net/IConnectivityManager;Landroid/content/Context;)V
23659 + .registers 6
23661 + invoke-direct {p0, p1}, Landroid/net/ConnectivityManager;-><init>(Landroid/net/IConnectivityManager;)V
23663 + iput-object p2, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
23665 + new-instance v0, Landroid/privacy/PrivacySettingsManager;
23667 + const-string/jumbo v1, "privacy"
23669 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
23671 + move-result-object v1
23673 + invoke-static {v1}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
23675 + move-result-object v1
23677 + invoke-direct {v0, p2, v1}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
23679 + iput-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23681 + const-string v0, "PrivacyConnectivityManager"
23683 + new-instance v1, Ljava/lang/StringBuilder;
23685 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
23687 + const-string/jumbo v2, "now in constructor for package: "
23689 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
23691 + move-result-object v1
23693 + invoke-virtual {p2}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
23695 + move-result-object v2
23697 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
23699 + move-result-object v1
23701 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
23703 + move-result-object v1
23705 + invoke-static {v0, v1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
23707 + return-void
23708 +.end method
23711 +# virtual methods
23712 +.method public getActiveLinkProperties()Landroid/net/LinkProperties;
23713 + .registers 10
23715 + const/4 v2, -0x1
23717 + const/4 v5, 0x0
23719 + new-instance v7, Landroid/net/LinkProperties;
23721 + invoke-direct {v7}, Landroid/net/LinkProperties;-><init>()V
23723 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23725 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
23727 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
23729 + move-result-object v1
23731 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
23733 + move-result v3
23735 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
23737 + move-result-object v8
23739 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23741 + if-eqz v0, :cond_34
23743 + if-eqz v8, :cond_34
23745 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
23747 + move-result v0
23749 + if-eqz v0, :cond_34
23751 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23753 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
23755 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
23757 + move-result-object v1
23759 + const/4 v3, 0x1
23761 + const-string/jumbo v4, "networkInfoCurrent"
23763 + move-object v6, v5
23765 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23767 + :goto_33
23768 + return-object v7
23770 + :cond_34
23771 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23773 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
23775 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
23777 + move-result-object v1
23779 + const/4 v3, 0x0
23781 + const-string/jumbo v4, "networkInfoCurrent"
23783 + move-object v6, v5
23785 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23787 + invoke-super {p0}, Landroid/net/ConnectivityManager;->getActiveLinkProperties()Landroid/net/LinkProperties;
23789 + move-result-object v7
23791 + goto :goto_33
23792 +.end method
23794 +.method public getActiveNetworkInfo()Landroid/net/NetworkInfo;
23795 + .registers 10
23797 + const/4 v3, 0x1
23799 + const/4 v2, -0x1
23801 + const/4 v6, 0x0
23803 + const/4 v5, 0x0
23805 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23807 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
23809 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
23811 + move-result-object v1
23813 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
23815 + move-result v4
23817 + invoke-virtual {v0, v1, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
23819 + move-result-object v8
23821 + new-instance v7, Landroid/net/NetworkInfo;
23823 + const-string v0, "MOBILE"
23825 + const-string v1, "UNKNOWN"
23827 + invoke-direct {v7, v6, v6, v0, v1}, Landroid/net/NetworkInfo;-><init>(IILjava/lang/String;Ljava/lang/String;)V
23829 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23831 + if-eqz v0, :cond_31
23833 + if-eqz v8, :cond_31
23835 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getForceOnlineState()B
23837 + move-result v0
23839 + if-nez v0, :cond_31
23841 + invoke-virtual {v7, v3}, Landroid/net/NetworkInfo;->setIsAvailable(Z)V
23843 + sget-object v0, Landroid/net/NetworkInfo$State;->CONNECTED:Landroid/net/NetworkInfo$State;
23845 + invoke-virtual {v7, v0}, Landroid/net/NetworkInfo;->setState(Landroid/net/NetworkInfo$State;)V
23847 + :cond_31
23848 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23850 + if-eqz v0, :cond_4d
23852 + if-eqz v8, :cond_4d
23854 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
23856 + move-result v0
23858 + if-eqz v0, :cond_4d
23860 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23862 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
23864 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
23866 + move-result-object v1
23868 + const-string/jumbo v4, "networkInfoCurrent"
23870 + move-object v6, v5
23872 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23874 + :goto_4c
23875 + return-object v7
23877 + :cond_4d
23878 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23880 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
23882 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
23884 + move-result-object v1
23886 + const-string/jumbo v4, "networkInfoCurrent"
23888 + move v3, v6
23890 + move-object v6, v5
23892 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23894 + invoke-super {p0}, Landroid/net/ConnectivityManager;->getActiveNetworkInfo()Landroid/net/NetworkInfo;
23896 + move-result-object v7
23898 + goto :goto_4c
23899 +.end method
23901 +.method public getActiveNetworkInfoForUid(I)Landroid/net/NetworkInfo;
23902 + .registers 11
23904 + const/4 v3, 0x1
23906 + const/4 v2, -0x1
23908 + const/4 v6, 0x0
23910 + const/4 v5, 0x0
23912 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23914 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
23916 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
23918 + move-result-object v1
23920 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
23922 + move-result v4
23924 + invoke-virtual {v0, v1, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
23926 + move-result-object v8
23928 + new-instance v7, Landroid/net/NetworkInfo;
23930 + const-string v0, "MOBILE"
23932 + const-string v1, "UNKNOWN"
23934 + invoke-direct {v7, v6, v6, v0, v1}, Landroid/net/NetworkInfo;-><init>(IILjava/lang/String;Ljava/lang/String;)V
23936 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23938 + if-eqz v0, :cond_31
23940 + if-eqz v8, :cond_31
23942 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getForceOnlineState()B
23944 + move-result v0
23946 + if-nez v0, :cond_31
23948 + invoke-virtual {v7, v3}, Landroid/net/NetworkInfo;->setIsAvailable(Z)V
23950 + sget-object v0, Landroid/net/NetworkInfo$State;->CONNECTED:Landroid/net/NetworkInfo$State;
23952 + invoke-virtual {v7, v0}, Landroid/net/NetworkInfo;->setState(Landroid/net/NetworkInfo$State;)V
23954 + :cond_31
23955 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23957 + if-eqz v0, :cond_4d
23959 + if-eqz v8, :cond_4d
23961 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
23963 + move-result v0
23965 + if-eqz v0, :cond_4d
23967 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23969 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
23971 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
23973 + move-result-object v1
23975 + const-string/jumbo v4, "networkInfoCurrent"
23977 + move-object v6, v5
23979 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
23981 + :goto_4c
23982 + return-object v7
23984 + :cond_4d
23985 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
23987 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
23989 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
23991 + move-result-object v1
23993 + const-string/jumbo v4, "networkInfoCurrent"
23995 + move v3, v6
23997 + move-object v6, v5
23999 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24001 + invoke-super {p0, p1}, Landroid/net/ConnectivityManager;->getActiveNetworkInfoForUid(I)Landroid/net/NetworkInfo;
24003 + move-result-object v7
24005 + goto :goto_4c
24006 +.end method
24008 +.method public getAllNetworkInfo()[Landroid/net/NetworkInfo;
24009 + .registers 10
24011 + const/4 v2, -0x1
24013 + const/4 v3, 0x1
24015 + const/4 v5, 0x0
24017 + const/4 v6, 0x0
24019 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24021 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24023 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24025 + move-result-object v1
24027 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
24029 + move-result v4
24031 + invoke-virtual {v0, v1, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
24033 + move-result-object v8
24035 + new-array v7, v3, [Landroid/net/NetworkInfo;
24037 + new-instance v0, Landroid/net/NetworkInfo;
24039 + const-string v1, "MOBILE"
24041 + const-string v4, "CONNECTED"
24043 + invoke-direct {v0, v6, v6, v1, v4}, Landroid/net/NetworkInfo;-><init>(IILjava/lang/String;Ljava/lang/String;)V
24045 + aput-object v0, v7, v6
24047 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24049 + if-eqz v0, :cond_39
24051 + if-eqz v8, :cond_39
24053 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getForceOnlineState()B
24055 + move-result v0
24057 + if-nez v0, :cond_39
24059 + aget-object v0, v7, v6
24061 + invoke-virtual {v0, v3}, Landroid/net/NetworkInfo;->setIsAvailable(Z)V
24063 + aget-object v0, v7, v6
24065 + sget-object v1, Landroid/net/NetworkInfo$State;->CONNECTED:Landroid/net/NetworkInfo$State;
24067 + invoke-virtual {v0, v1}, Landroid/net/NetworkInfo;->setState(Landroid/net/NetworkInfo$State;)V
24069 + :cond_39
24070 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24072 + if-eqz v0, :cond_55
24074 + if-eqz v8, :cond_55
24076 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
24078 + move-result v0
24080 + if-eqz v0, :cond_55
24082 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24084 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24086 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24088 + move-result-object v1
24090 + const-string/jumbo v4, "networkInfoCurrent"
24092 + move-object v6, v5
24094 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24096 + :goto_54
24097 + return-object v7
24099 + :cond_55
24100 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24102 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24104 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24106 + move-result-object v1
24108 + const-string/jumbo v4, "networkInfoCurrent"
24110 + move v3, v6
24112 + move-object v6, v5
24114 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24116 + invoke-super {p0}, Landroid/net/ConnectivityManager;->getAllNetworkInfo()[Landroid/net/NetworkInfo;
24118 + move-result-object v7
24120 + goto :goto_54
24121 +.end method
24123 +.method public getLinkProperties(I)Landroid/net/LinkProperties;
24124 + .registers 11
24126 + const/4 v2, -0x1
24128 + const/4 v5, 0x0
24130 + new-instance v7, Landroid/net/LinkProperties;
24132 + invoke-direct {v7}, Landroid/net/LinkProperties;-><init>()V
24134 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24136 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24138 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24140 + move-result-object v1
24142 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
24144 + move-result v3
24146 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
24148 + move-result-object v8
24150 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24152 + if-eqz v0, :cond_34
24154 + if-eqz v8, :cond_34
24156 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
24158 + move-result v0
24160 + if-eqz v0, :cond_34
24162 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24164 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24166 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24168 + move-result-object v1
24170 + const/4 v3, 0x1
24172 + const-string/jumbo v4, "networkInfoCurrent"
24174 + move-object v6, v5
24176 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24178 + :goto_33
24179 + return-object v7
24181 + :cond_34
24182 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24184 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24186 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24188 + move-result-object v1
24190 + const/4 v3, 0x0
24192 + const-string/jumbo v4, "networkInfoCurrent"
24194 + move-object v6, v5
24196 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24198 + invoke-super {p0, p1}, Landroid/net/ConnectivityManager;->getLinkProperties(I)Landroid/net/LinkProperties;
24200 + move-result-object v7
24202 + goto :goto_33
24203 +.end method
24205 +.method public getMobileDataEnabled()Z
24206 + .registers 9
24208 + const/4 v3, 0x1
24210 + const/4 v2, -0x1
24212 + const/4 v5, 0x0
24214 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24216 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24218 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24220 + move-result-object v1
24222 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
24224 + move-result v4
24226 + invoke-virtual {v0, v1, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
24228 + move-result-object v7
24230 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24232 + if-eqz v0, :cond_2f
24234 + if-eqz v7, :cond_2f
24236 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getForceOnlineState()B
24238 + move-result v0
24240 + if-nez v0, :cond_2f
24242 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24244 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24246 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24248 + move-result-object v1
24250 + const-string/jumbo v4, "networkInfoCurrent"
24252 + move-object v6, v5
24254 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24256 + :goto_2e
24257 + return v3
24259 + :cond_2f
24260 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24262 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24264 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24266 + move-result-object v1
24268 + const/4 v3, 0x0
24270 + const-string/jumbo v4, "networkInfoCurrent"
24272 + move-object v6, v5
24274 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24276 + invoke-super {p0}, Landroid/net/ConnectivityManager;->getMobileDataEnabled()Z
24278 + move-result v3
24280 + goto :goto_2e
24281 +.end method
24283 +.method public getNetworkInfo(I)Landroid/net/NetworkInfo;
24284 + .registers 11
24286 + const/4 v3, 0x1
24288 + const/4 v2, -0x1
24290 + const/4 v6, 0x0
24292 + const/4 v5, 0x0
24294 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24296 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24298 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24300 + move-result-object v1
24302 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
24304 + move-result v4
24306 + invoke-virtual {v0, v1, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
24308 + move-result-object v8
24310 + new-instance v7, Landroid/net/NetworkInfo;
24312 + const-string v0, "MOBILE"
24314 + const-string v1, "CONNECTED"
24316 + invoke-direct {v7, v6, v6, v0, v1}, Landroid/net/NetworkInfo;-><init>(IILjava/lang/String;Ljava/lang/String;)V
24318 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24320 + if-eqz v0, :cond_31
24322 + if-eqz v8, :cond_31
24324 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getForceOnlineState()B
24326 + move-result v0
24328 + if-nez v0, :cond_31
24330 + invoke-virtual {v7, v3}, Landroid/net/NetworkInfo;->setIsAvailable(Z)V
24332 + sget-object v0, Landroid/net/NetworkInfo$State;->CONNECTED:Landroid/net/NetworkInfo$State;
24334 + invoke-virtual {v7, v0}, Landroid/net/NetworkInfo;->setState(Landroid/net/NetworkInfo$State;)V
24336 + :cond_31
24337 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24339 + if-eqz v0, :cond_4d
24341 + if-eqz v8, :cond_4d
24343 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
24345 + move-result v0
24347 + if-eqz v0, :cond_4d
24349 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24351 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24353 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24355 + move-result-object v1
24357 + const-string/jumbo v4, "networkInfoCurrent"
24359 + move-object v6, v5
24361 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24363 + :goto_4c
24364 + return-object v7
24366 + :cond_4d
24367 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24369 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24371 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24373 + move-result-object v1
24375 + const-string/jumbo v4, "networkInfoCurrent"
24377 + move v3, v6
24379 + move-object v6, v5
24381 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24383 + invoke-super {p0, p1}, Landroid/net/ConnectivityManager;->getNetworkInfo(I)Landroid/net/NetworkInfo;
24385 + move-result-object v7
24387 + goto :goto_4c
24388 +.end method
24390 +.method public requestRouteToHost(II)Z
24391 + .registers 12
24393 + const/4 v8, 0x0
24395 + const/4 v3, 0x1
24397 + const/4 v2, -0x1
24399 + const/4 v5, 0x0
24401 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24403 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24405 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24407 + move-result-object v1
24409 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
24411 + move-result v4
24413 + invoke-virtual {v0, v1, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
24415 + move-result-object v7
24417 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24419 + if-eqz v0, :cond_30
24421 + if-eqz v7, :cond_30
24423 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getForceOnlineState()B
24425 + move-result v0
24427 + if-nez v0, :cond_30
24429 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24431 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24433 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24435 + move-result-object v1
24437 + const-string/jumbo v4, "networkInfoCurrent"
24439 + move-object v6, v5
24441 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24443 + :goto_2f
24444 + return v3
24446 + :cond_30
24447 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24449 + if-eqz v0, :cond_4d
24451 + if-eqz v7, :cond_4d
24453 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
24455 + move-result v0
24457 + if-eqz v0, :cond_4d
24459 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24461 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24463 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24465 + move-result-object v1
24467 + const-string/jumbo v4, "networkInfoCurrent"
24469 + move-object v6, v5
24471 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24473 + move v3, v8
24475 + goto :goto_2f
24477 + :cond_4d
24478 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24480 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24482 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24484 + move-result-object v1
24486 + const-string/jumbo v4, "networkInfoCurrent"
24488 + move v3, v8
24490 + move-object v6, v5
24492 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24494 + invoke-super {p0, p1, p2}, Landroid/net/ConnectivityManager;->requestRouteToHost(II)Z
24496 + move-result v3
24498 + goto :goto_2f
24499 +.end method
24501 +.method public requestRouteToHostAddress(ILjava/net/InetAddress;)Z
24502 + .registers 12
24504 + const/4 v8, 0x0
24506 + const/4 v3, 0x1
24508 + const/4 v2, -0x1
24510 + const/4 v5, 0x0
24512 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24514 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24516 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24518 + move-result-object v1
24520 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
24522 + move-result v4
24524 + invoke-virtual {v0, v1, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
24526 + move-result-object v7
24528 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24530 + if-eqz v0, :cond_30
24532 + if-eqz v7, :cond_30
24534 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getForceOnlineState()B
24536 + move-result v0
24538 + if-nez v0, :cond_30
24540 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24542 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24544 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24546 + move-result-object v1
24548 + const-string/jumbo v4, "networkInfoCurrent"
24550 + move-object v6, v5
24552 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24554 + :goto_2f
24555 + return v3
24557 + :cond_30
24558 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24560 + if-eqz v0, :cond_4d
24562 + if-eqz v7, :cond_4d
24564 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
24566 + move-result v0
24568 + if-eqz v0, :cond_4d
24570 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24572 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24574 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24576 + move-result-object v1
24578 + const-string/jumbo v4, "networkInfoCurrent"
24580 + move-object v6, v5
24582 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24584 + move v3, v8
24586 + goto :goto_2f
24588 + :cond_4d
24589 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24591 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24593 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24595 + move-result-object v1
24597 + const-string/jumbo v4, "networkInfoCurrent"
24599 + move v3, v8
24601 + move-object v6, v5
24603 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24605 + invoke-super {p0, p1, p2}, Landroid/net/ConnectivityManager;->requestRouteToHostAddress(ILjava/net/InetAddress;)Z
24607 + move-result v3
24609 + goto :goto_2f
24610 +.end method
24612 +.method public setMobileDataEnabled(Z)V
24613 + .registers 10
24615 + const/4 v2, -0x1
24617 + const/4 v5, 0x0
24619 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24621 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24623 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24625 + move-result-object v1
24627 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
24629 + move-result v3
24631 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
24633 + move-result-object v7
24635 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24637 + if-eqz v0, :cond_2f
24639 + if-eqz v7, :cond_2f
24641 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getSwitchConnectivitySetting()B
24643 + move-result v0
24645 + if-eqz v0, :cond_2f
24647 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24649 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24651 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24653 + move-result-object v1
24655 + const/4 v3, 0x1
24657 + const-string/jumbo v4, "switchconnectivity"
24659 + move-object v6, v5
24661 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24663 + :goto_2e
24664 + return-void
24666 + :cond_2f
24667 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24669 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyConnectivityManager;->context:Landroid/content/Context;
24671 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24673 + move-result-object v1
24675 + const/4 v3, 0x0
24677 + const-string/jumbo v4, "switchconnectivity"
24679 + move-object v6, v5
24681 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24683 + invoke-super {p0, p1}, Landroid/net/ConnectivityManager;->setMobileDataEnabled(Z)V
24685 + goto :goto_2e
24686 +.end method
24687 diff -Npru stock-framework/smali/android/privacy/surrogate/PrivacyContentResolver.smali pdroid-framework/smali/android/privacy/surrogate/PrivacyContentResolver.smali
24688 --- stock-framework/smali/android/privacy/surrogate/PrivacyContentResolver.smali 1969-12-31 16:00:00.000000000 -0800
24689 +++ pdroid-framework/smali/android/privacy/surrogate/PrivacyContentResolver.smali 2013-08-10 20:37:42.503213441 -0700
24690 @@ -0,0 +1,868 @@
24691 +.class public final Landroid/privacy/surrogate/PrivacyContentResolver;
24692 +.super Ljava/lang/Object;
24693 +.source "PrivacyContentResolver.java"
24696 +# static fields
24697 +.field private static final MMS_CONTENT_URI_AUTHORITY:Ljava/lang/String; = "mms"
24699 +.field private static final MMS_SMS_CONTENT_URI_AUTHORITY:Ljava/lang/String; = "mms-sms"
24701 +.field private static final SMS_CONTENT_URI_AUTHORITY:Ljava/lang/String; = "sms"
24703 +.field private static final TAG:Ljava/lang/String; = "PrivacyContentResolver"
24705 +.field private static pSetMan:Landroid/privacy/PrivacySettingsManager;
24708 +# direct methods
24709 +.method public constructor <init>()V
24710 + .registers 1
24712 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
24714 + return-void
24715 +.end method
24717 +.method private static arrayToString([Ljava/lang/String;)Ljava/lang/String;
24718 + .registers 8
24720 + new-instance v4, Ljava/lang/StringBuffer;
24722 + invoke-direct {v4}, Ljava/lang/StringBuffer;-><init>()V
24724 + if-eqz p0, :cond_2d
24726 + move-object v0, p0
24728 + array-length v3, v0
24730 + const/4 v2, 0x0
24732 + :goto_a
24733 + if-ge v2, v3, :cond_30
24735 + aget-object v1, v0, v2
24737 + new-instance v5, Ljava/lang/StringBuilder;
24739 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
24741 + const-string v6, "["
24743 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
24745 + move-result-object v5
24747 + invoke-virtual {v5, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
24749 + move-result-object v5
24751 + const-string v6, "]"
24753 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
24755 + move-result-object v5
24757 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
24759 + move-result-object v5
24761 + invoke-virtual {v4, v5}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
24763 + add-int/lit8 v2, v2, 0x1
24765 + goto :goto_a
24767 + :cond_2d
24768 + const-string v5, ""
24770 + :goto_2f
24771 + return-object v5
24773 + :cond_30
24774 + invoke-virtual {v4}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
24776 + move-result-object v5
24778 + goto :goto_2f
24779 +.end method
24781 +.method public static enforcePrivacyPermission(Landroid/net/Uri;[Ljava/lang/String;Landroid/content/Context;Landroid/database/Cursor;)Landroid/database/Cursor;
24782 + .registers 21
24783 + .annotation system Ldalvik/annotation/Throws;
24784 + value = {
24785 + Landroid/os/RemoteException;
24787 + .end annotation
24789 + if-eqz p0, :cond_1db
24791 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24793 + if-nez v1, :cond_13
24795 + const-string/jumbo v1, "privacy"
24797 + move-object/from16 v0, p2
24799 + invoke-virtual {v0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
24801 + move-result-object v1
24803 + check-cast v1, Landroid/privacy/PrivacySettingsManager;
24805 + sput-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24807 + :cond_13
24808 + invoke-virtual/range {p2 .. p2}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
24810 + move-result-object v2
24812 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
24814 + move-result v3
24816 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24818 + invoke-virtual {v1, v2, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
24820 + move-result-object v7
24822 + invoke-virtual/range {p0 .. p0}, Landroid/net/Uri;->getAuthority()Ljava/lang/String;
24824 + move-result-object v9
24826 + const-string v15, "[real]"
24828 + move-object/from16 v13, p3
24830 + if-eqz v9, :cond_54
24832 + const-string v1, "contacts"
24834 + invoke-virtual {v9, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
24836 + move-result v1
24838 + if-nez v1, :cond_3b
24840 + const-string v1, "com.android.contacts"
24842 + invoke-virtual {v9, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
24844 + move-result v1
24846 + if-eqz v1, :cond_ab
24848 + :cond_3b
24849 + if-eqz v7, :cond_54
24851 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getContactsSetting()B
24853 + move-result v1
24855 + const/4 v4, 0x1
24857 + if-ne v1, v4, :cond_55
24859 + const-string v15, "[empty]"
24861 + new-instance v13, Landroid/privacy/surrogate/PrivacyCursor;
24863 + invoke-direct {v13}, Landroid/privacy/surrogate/PrivacyCursor;-><init>()V
24865 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24867 + const/4 v4, 0x1
24869 + const-string v5, "contacts"
24871 + const/4 v6, 0x0
24873 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24875 + :cond_54
24876 + :goto_54
24877 + return-object v13
24879 + :cond_55
24880 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getContactsSetting()B
24882 + move-result v1
24884 + const/4 v4, 0x2
24886 + if-ne v1, v4, :cond_a1
24888 + invoke-virtual/range {p0 .. p0}, Landroid/net/Uri;->toString()Ljava/lang/String;
24890 + move-result-object v1
24892 + sget-object v4, Landroid/provider/ContactsContract$Contacts;->CONTENT_URI:Landroid/net/Uri;
24894 + invoke-virtual {v4}, Landroid/net/Uri;->toString()Ljava/lang/String;
24896 + move-result-object v4
24898 + invoke-virtual {v1, v4}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
24900 + move-result v1
24902 + if-eqz v1, :cond_a1
24904 + const/4 v11, 0x0
24906 + if-eqz p1, :cond_82
24908 + move-object/from16 v8, p1
24910 + array-length v12, v8
24912 + const/4 v10, 0x0
24914 + :goto_73
24915 + if-ge v10, v12, :cond_82
24917 + aget-object v16, v8, v10
24919 + const-string v1, "_id"
24921 + move-object/from16 v0, v16
24923 + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
24925 + move-result v1
24927 + if-eqz v1, :cond_93
24929 + const/4 v11, 0x1
24931 + :cond_82
24932 + if-nez v11, :cond_96
24934 + new-instance v13, Landroid/privacy/surrogate/PrivacyCursor;
24936 + invoke-direct {v13}, Landroid/privacy/surrogate/PrivacyCursor;-><init>()V
24938 + :goto_89
24939 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24941 + const/4 v4, 0x2
24943 + const-string v5, "contacts"
24945 + const/4 v6, 0x0
24947 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24949 + goto :goto_54
24951 + :cond_93
24952 + add-int/lit8 v10, v10, 0x1
24954 + goto :goto_73
24956 + :cond_96
24957 + new-instance v14, Landroid/privacy/surrogate/PrivacyCursor;
24959 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getAllowedContacts()[I
24961 + move-result-object v1
24963 + invoke-direct {v14, v13, v1}, Landroid/privacy/surrogate/PrivacyCursor;-><init>(Landroid/database/Cursor;[I)V
24965 + move-object v13, v14
24967 + goto :goto_89
24969 + :cond_a1
24970 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
24972 + const/4 v4, 0x0
24974 + const-string v5, "contacts"
24976 + const/4 v6, 0x0
24978 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
24980 + goto :goto_54
24982 + :cond_ab
24983 + const-string v1, "com.android.calendar"
24985 + invoke-virtual {v9, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
24987 + move-result v1
24989 + if-eqz v1, :cond_d8
24991 + if-eqz v7, :cond_cd
24993 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getCalendarSetting()B
24995 + move-result v1
24997 + const/4 v4, 0x1
24999 + if-ne v1, v4, :cond_cd
25001 + const-string v15, "[empty]"
25003 + new-instance v13, Landroid/privacy/surrogate/PrivacyCursor;
25005 + invoke-direct {v13}, Landroid/privacy/surrogate/PrivacyCursor;-><init>()V
25007 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25009 + const/4 v4, 0x1
25011 + const-string v5, "calendar"
25013 + const/4 v6, 0x0
25015 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25017 + goto :goto_54
25019 + :cond_cd
25020 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25022 + const/4 v4, 0x0
25024 + const-string v5, "calendar"
25026 + const/4 v6, 0x0
25028 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25030 + goto/16 :goto_54
25032 + :cond_d8
25033 + const-string/jumbo v1, "mms"
25035 + invoke-virtual {v9, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
25037 + move-result v1
25039 + if-eqz v1, :cond_109
25041 + if-eqz v7, :cond_fd
25043 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getMmsSetting()B
25045 + move-result v1
25047 + const/4 v4, 0x1
25049 + if-ne v1, v4, :cond_fd
25051 + const-string v15, "[empty]"
25053 + new-instance v13, Landroid/privacy/surrogate/PrivacyCursor;
25055 + invoke-direct {v13}, Landroid/privacy/surrogate/PrivacyCursor;-><init>()V
25057 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25059 + const/4 v4, 0x1
25061 + const-string/jumbo v5, "mms"
25063 + const/4 v6, 0x0
25065 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25067 + goto/16 :goto_54
25069 + :cond_fd
25070 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25072 + const/4 v4, 0x0
25074 + const-string/jumbo v5, "mms"
25076 + const/4 v6, 0x0
25078 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25080 + goto/16 :goto_54
25082 + :cond_109
25083 + const-string/jumbo v1, "sms"
25085 + invoke-virtual {v9, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
25087 + move-result v1
25089 + if-eqz v1, :cond_13a
25091 + if-eqz v7, :cond_12e
25093 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getSmsSetting()B
25095 + move-result v1
25097 + const/4 v4, 0x1
25099 + if-ne v1, v4, :cond_12e
25101 + const-string v15, "[empty]"
25103 + new-instance v13, Landroid/privacy/surrogate/PrivacyCursor;
25105 + invoke-direct {v13}, Landroid/privacy/surrogate/PrivacyCursor;-><init>()V
25107 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25109 + const/4 v4, 0x1
25111 + const-string/jumbo v5, "sms"
25113 + const/4 v6, 0x0
25115 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25117 + goto/16 :goto_54
25119 + :cond_12e
25120 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25122 + const/4 v4, 0x0
25124 + const-string/jumbo v5, "sms"
25126 + const/4 v6, 0x0
25128 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25130 + goto/16 :goto_54
25132 + :cond_13a
25133 + const-string/jumbo v1, "mms-sms"
25135 + invoke-virtual {v9, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
25137 + move-result v1
25139 + if-nez v1, :cond_14c
25141 + const-string/jumbo v1, "mms-sms-v2"
25143 + invoke-virtual {v9, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
25145 + move-result v1
25147 + if-eqz v1, :cond_17b
25149 + :cond_14c
25150 + if-eqz v7, :cond_16f
25152 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getMmsSetting()B
25154 + move-result v1
25156 + const/4 v4, 0x1
25158 + if-eq v1, v4, :cond_15c
25160 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getSmsSetting()B
25162 + move-result v1
25164 + const/4 v4, 0x1
25166 + if-ne v1, v4, :cond_16f
25168 + :cond_15c
25169 + const-string v15, "[empty]"
25171 + new-instance v13, Landroid/privacy/surrogate/PrivacyCursor;
25173 + invoke-direct {v13}, Landroid/privacy/surrogate/PrivacyCursor;-><init>()V
25175 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25177 + const/4 v4, 0x1
25179 + const-string/jumbo v5, "mmsSms"
25181 + const/4 v6, 0x0
25183 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25185 + goto/16 :goto_54
25187 + :cond_16f
25188 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25190 + const/4 v4, 0x0
25192 + const-string/jumbo v5, "mmsSms"
25194 + const/4 v6, 0x0
25196 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25198 + goto/16 :goto_54
25200 + :cond_17b
25201 + const-string v1, "call_log"
25203 + invoke-virtual {v9, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
25205 + move-result v1
25207 + if-eqz v1, :cond_1a9
25209 + if-eqz v7, :cond_19e
25211 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getCallLogSetting()B
25213 + move-result v1
25215 + const/4 v4, 0x1
25217 + if-ne v1, v4, :cond_19e
25219 + const-string v15, "[empty]"
25221 + new-instance v13, Landroid/privacy/surrogate/PrivacyCursor;
25223 + invoke-direct {v13}, Landroid/privacy/surrogate/PrivacyCursor;-><init>()V
25225 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25227 + const/4 v4, 0x1
25229 + const-string v5, "callLog"
25231 + const/4 v6, 0x0
25233 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25235 + goto/16 :goto_54
25237 + :cond_19e
25238 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25240 + const/4 v4, 0x0
25242 + const-string v5, "callLog"
25244 + const/4 v6, 0x0
25246 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25248 + goto/16 :goto_54
25250 + :cond_1a9
25251 + sget-object v1, Landroid/provider/Browser;->BOOKMARKS_URI:Landroid/net/Uri;
25253 + invoke-virtual {v1}, Landroid/net/Uri;->getAuthority()Ljava/lang/String;
25255 + move-result-object v1
25257 + invoke-virtual {v9, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
25259 + move-result v1
25261 + if-eqz v1, :cond_54
25263 + if-eqz v7, :cond_1d0
25265 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getBookmarksSetting()B
25267 + move-result v1
25269 + const/4 v4, 0x1
25271 + if-ne v1, v4, :cond_1d0
25273 + const-string v15, "[empty]"
25275 + new-instance v13, Landroid/privacy/surrogate/PrivacyCursor;
25277 + invoke-direct {v13}, Landroid/privacy/surrogate/PrivacyCursor;-><init>()V
25279 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25281 + const/4 v4, 0x1
25283 + const-string v5, "bookmarks"
25285 + const/4 v6, 0x0
25287 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25289 + goto/16 :goto_54
25291 + :cond_1d0
25292 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25294 + const/4 v4, 0x0
25296 + const-string v5, "bookmarks"
25298 + const/4 v6, 0x0
25300 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25302 + goto/16 :goto_54
25304 + :cond_1db
25305 + move-object/from16 v13, p3
25307 + goto/16 :goto_54
25308 +.end method
25310 +.method public static enforcePrivacyPermission(Landroid/net/Uri;[Ljava/lang/String;Landroid/content/Context;Landroid/database/Cursor;Z)Landroid/database/Cursor;
25311 + .registers 20
25312 + .annotation system Ldalvik/annotation/Throws;
25313 + value = {
25314 + Landroid/os/RemoteException;
25316 + .end annotation
25318 + if-eqz p0, :cond_dd
25320 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25322 + if-nez v1, :cond_13
25324 + const-string/jumbo v1, "privacy"
25326 + move-object/from16 v0, p2
25328 + invoke-virtual {v0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
25330 + move-result-object v1
25332 + check-cast v1, Landroid/privacy/PrivacySettingsManager;
25334 + sput-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25336 + :cond_13
25337 + invoke-virtual/range {p2 .. p2}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
25339 + move-result-object v2
25341 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
25343 + move-result v3
25345 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25347 + invoke-virtual {v1, v2, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
25349 + move-result-object v7
25351 + invoke-virtual {p0}, Landroid/net/Uri;->getAuthority()Ljava/lang/String;
25353 + move-result-object v9
25355 + const-string v14, "[real]"
25357 + move-object/from16 v13, p3
25359 + if-eqz v9, :cond_6d
25361 + const-string v1, "com.google.android.gsf.gservices"
25363 + invoke-virtual {v9, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
25365 + move-result v1
25367 + if-eqz v1, :cond_6d
25369 + if-eqz v7, :cond_cb
25371 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getSimInfoSetting()B
25373 + move-result v1
25375 + if-eqz v1, :cond_cb
25377 + invoke-interface/range {p3 .. p3}, Landroid/database/Cursor;->getPosition()I
25379 + move-result v8
25381 + const/4 v11, -0x1
25383 + const/4 v12, 0x0
25385 + :goto_41
25386 + :try_start_41
25387 + invoke-interface/range {p3 .. p3}, Landroid/database/Cursor;->getCount()I
25389 + move-result v1
25391 + if-ge v12, v1, :cond_5d
25393 + invoke-interface/range {p3 .. p3}, Landroid/database/Cursor;->moveToNext()Z
25395 + const/4 v1, 0x0
25397 + move-object/from16 v0, p3
25399 + invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
25401 + move-result-object v1
25403 + const-string v4, "android_id"
25405 + invoke-virtual {v1, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
25407 + move-result v1
25409 + if-eqz v1, :cond_6e
25411 + invoke-interface/range {p3 .. p3}, Landroid/database/Cursor;->getPosition()I
25412 + :try_end_5c
25413 + .catchall {:try_start_41 .. :try_end_5c} :catchall_8b
25414 + .catch Ljava/lang/Exception; {:try_start_41 .. :try_end_5c} :catch_71
25416 + move-result v11
25418 + :cond_5d
25419 + move-object/from16 v0, p3
25421 + invoke-interface {v0, v8}, Landroid/database/Cursor;->moveToPosition(I)Z
25423 + const/4 v1, -0x1
25425 + if-ne v11, v1, :cond_9e
25427 + const-string v1, "PrivacyContentResolver"
25429 + const-string/jumbo v4, "now we return real cursor, because forbidden_pos is -1"
25431 + invoke-static {v1, v4}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
25433 + :cond_6d
25434 + :goto_6d
25435 + return-object v13
25437 + :cond_6e
25438 + add-int/lit8 v12, v12, 0x1
25440 + goto :goto_41
25442 + :catch_71
25443 + move-exception v10
25445 + :try_start_72
25446 + const-string v1, "PrivacyContentResolver"
25448 + const-string/jumbo v4, "something went wrong while getting blocked permission for android id"
25450 + invoke-static {v1, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
25451 + :try_end_7a
25452 + .catchall {:try_start_72 .. :try_end_7a} :catchall_8b
25454 + move-object/from16 v0, p3
25456 + invoke-interface {v0, v8}, Landroid/database/Cursor;->moveToPosition(I)Z
25458 + const/4 v1, -0x1
25460 + if-ne v11, v1, :cond_9e
25462 + const-string v1, "PrivacyContentResolver"
25464 + const-string/jumbo v4, "now we return real cursor, because forbidden_pos is -1"
25466 + invoke-static {v1, v4}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
25468 + goto :goto_6d
25470 + :catchall_8b
25471 + move-exception v1
25473 + move-object/from16 v0, p3
25475 + invoke-interface {v0, v8}, Landroid/database/Cursor;->moveToPosition(I)Z
25477 + const/4 v4, -0x1
25479 + if-ne v11, v4, :cond_9d
25481 + const-string v1, "PrivacyContentResolver"
25483 + const-string/jumbo v4, "now we return real cursor, because forbidden_pos is -1"
25485 + invoke-static {v1, v4}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
25487 + goto :goto_6d
25489 + :cond_9d
25490 + throw v1
25492 + :cond_9e
25493 + const-string v1, "PrivacyContentResolver"
25495 + new-instance v4, Ljava/lang/StringBuilder;
25497 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
25499 + const-string/jumbo v5, "now blocking google access to android id and give fake cursor. forbidden_position: "
25501 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
25503 + move-result-object v4
25505 + invoke-virtual {v4, v11}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
25507 + move-result-object v4
25509 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
25511 + move-result-object v4
25513 + invoke-static {v1, v4}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
25515 + const-string v14, "[fake]"
25517 + new-instance v13, Landroid/privacy/surrogate/PrivacyCursor;
25519 + move-object/from16 v0, p3
25521 + invoke-direct {v13, v0, v11}, Landroid/privacy/surrogate/PrivacyCursor;-><init>(Landroid/database/Cursor;I)V
25523 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25525 + const/4 v4, 0x1
25527 + const-string/jumbo v5, "networkInfoSIM"
25529 + const/4 v6, 0x0
25531 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25533 + goto :goto_6d
25535 + :cond_cb
25536 + const-string v1, "PrivacyContentResolver"
25538 + const-string v4, "google is allowed to get real cursor"
25540 + invoke-static {v1, v4}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
25542 + sget-object v1, Landroid/privacy/surrogate/PrivacyContentResolver;->pSetMan:Landroid/privacy/PrivacySettingsManager;
25544 + const/4 v4, 0x0
25546 + const-string/jumbo v5, "networkInfoSIM"
25548 + const/4 v6, 0x0
25550 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
25552 + goto :goto_6d
25554 + :cond_dd
25555 + move-object/from16 v13, p3
25557 + goto :goto_6d
25558 +.end method
25559 diff -Npru stock-framework/smali/android/privacy/surrogate/PrivacyCursor.smali pdroid-framework/smali/android/privacy/surrogate/PrivacyCursor.smali
25560 --- stock-framework/smali/android/privacy/surrogate/PrivacyCursor.smali 1969-12-31 16:00:00.000000000 -0800
25561 +++ pdroid-framework/smali/android/privacy/surrogate/PrivacyCursor.smali 2013-08-10 20:37:42.503213441 -0700
25562 @@ -0,0 +1,1765 @@
25563 +.class public Landroid/privacy/surrogate/PrivacyCursor;
25564 +.super Ljava/lang/Object;
25565 +.source "PrivacyCursor.java"
25567 +# interfaces
25568 +.implements Landroid/database/Cursor;
25571 +# static fields
25572 +.field private static final TAG:Ljava/lang/String; = "PrivacyCursor"
25574 +.field private static final mask:[Ljava/lang/String;
25577 +# instance fields
25578 +.field private allowedIdMapping:[I
25580 +.field private allowedIds:[I
25582 +.field private blockedColumnAndroidID:I
25584 +.field private googleCursor:Z
25586 +.field private realCursor:Landroid/database/Cursor;
25589 +# direct methods
25590 +.method static constructor <clinit>()V
25591 + .registers 3
25593 + const/16 v0, 0x10
25595 + new-array v0, v0, [Ljava/lang/String;
25597 + const/4 v1, 0x0
25599 + const-string v2, "0"
25601 + aput-object v2, v0, v1
25603 + const/4 v1, 0x1
25605 + const-string v2, "1"
25607 + aput-object v2, v0, v1
25609 + const/4 v1, 0x2
25611 + const-string v2, "2"
25613 + aput-object v2, v0, v1
25615 + const/4 v1, 0x3
25617 + const-string v2, "3"
25619 + aput-object v2, v0, v1
25621 + const/4 v1, 0x4
25623 + const-string v2, "4"
25625 + aput-object v2, v0, v1
25627 + const/4 v1, 0x5
25629 + const-string v2, "5"
25631 + aput-object v2, v0, v1
25633 + const/4 v1, 0x6
25635 + const-string v2, "6"
25637 + aput-object v2, v0, v1
25639 + const/4 v1, 0x7
25641 + const-string v2, "7"
25643 + aput-object v2, v0, v1
25645 + const/16 v1, 0x8
25647 + const-string v2, "8"
25649 + aput-object v2, v0, v1
25651 + const/16 v1, 0x9
25653 + const-string v2, "9"
25655 + aput-object v2, v0, v1
25657 + const/16 v1, 0xa
25659 + const-string v2, "a"
25661 + aput-object v2, v0, v1
25663 + const/16 v1, 0xb
25665 + const-string v2, "b"
25667 + aput-object v2, v0, v1
25669 + const/16 v1, 0xc
25671 + const-string v2, "c"
25673 + aput-object v2, v0, v1
25675 + const/16 v1, 0xd
25677 + const-string v2, "d"
25679 + aput-object v2, v0, v1
25681 + const/16 v1, 0xe
25683 + const-string v2, "e"
25685 + aput-object v2, v0, v1
25687 + const/16 v1, 0xf
25689 + const-string v2, "f"
25691 + aput-object v2, v0, v1
25693 + sput-object v0, Landroid/privacy/surrogate/PrivacyCursor;->mask:[Ljava/lang/String;
25695 + return-void
25696 +.end method
25698 +.method public constructor <init>()V
25699 + .registers 1
25701 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
25703 + return-void
25704 +.end method
25706 +.method public constructor <init>(Landroid/database/Cursor;I)V
25707 + .registers 6
25709 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
25711 + const/16 v0, -0xb
25713 + if-ne p2, v0, :cond_28
25715 + const/4 v0, 0x0
25717 + iput-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
25719 + :goto_a
25720 + iput p2, p0, Landroid/privacy/surrogate/PrivacyCursor;->blockedColumnAndroidID:I
25722 + const/4 v0, 0x1
25724 + iput-boolean v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
25726 + const-string v0, "PrivacyCursor"
25728 + new-instance v1, Ljava/lang/StringBuilder;
25730 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
25732 + const-string v2, "constructor is ready for google cursor! forbidden_position: "
25734 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
25736 + move-result-object v1
25738 + invoke-virtual {v1, p2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
25740 + move-result-object v1
25742 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
25744 + move-result-object v1
25746 + invoke-static {v0, v1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
25748 + return-void
25750 + :cond_28
25751 + iput-object p1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
25753 + goto :goto_a
25754 +.end method
25756 +.method public constructor <init>(Landroid/database/Cursor;[I)V
25757 + .registers 7
25759 + invoke-direct {p0}, Ljava/lang/Object;-><init>()V
25761 + if-eqz p2, :cond_8
25763 + array-length v2, p2
25765 + if-nez v2, :cond_9
25767 + :cond_8
25768 + const/4 p1, 0x0
25770 + :cond_9
25771 + iput-object p1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
25773 + iput-object p2, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIds:[I
25775 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
25777 + if-eqz v2, :cond_3f
25779 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
25781 + invoke-interface {v2}, Landroid/database/Cursor;->getPosition()I
25783 + move-result v0
25785 + array-length v2, p2
25787 + new-array v2, v2, [I
25789 + iput-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
25791 + const/4 v1, 0x0
25793 + :cond_1d
25794 + :goto_1d
25795 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
25797 + invoke-interface {v2}, Landroid/database/Cursor;->moveToNext()Z
25799 + move-result v2
25801 + if-eqz v2, :cond_3a
25803 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
25805 + invoke-direct {p0, v2}, Landroid/privacy/surrogate/PrivacyCursor;->isAllowed(Landroid/database/Cursor;)Z
25807 + move-result v2
25809 + if-eqz v2, :cond_1d
25811 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
25813 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
25815 + invoke-interface {v3}, Landroid/database/Cursor;->getPosition()I
25817 + move-result v3
25819 + aput v3, v2, v1
25821 + add-int/lit8 v1, v1, 0x1
25823 + goto :goto_1d
25825 + :cond_3a
25826 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
25828 + invoke-interface {v2, v0}, Landroid/database/Cursor;->moveToPosition(I)Z
25830 + :cond_3f
25831 + return-void
25832 +.end method
25834 +.method private getContactId(Landroid/database/Cursor;)I
25835 + .registers 5
25837 + const-string v2, "_id"
25839 + invoke-interface {p1, v2}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I
25841 + move-result v0
25843 + const/4 v1, -0x1
25845 + const/4 v2, -0x1
25847 + if-eq v0, v2, :cond_e
25849 + invoke-interface {p1, v0}, Landroid/database/Cursor;->getInt(I)I
25851 + move-result v1
25853 + :cond_e
25854 + return v1
25855 +.end method
25857 +.method private getFakeID()Ljava/lang/String;
25858 + .registers 8
25860 + :try_start_0
25861 + new-instance v3, Ljava/util/Random;
25863 + invoke-direct {v3}, Ljava/util/Random;-><init>()V
25865 + const-string v2, ""
25867 + const/4 v1, 0x0
25869 + :goto_8
25870 + const/16 v4, 0x10
25872 + if-ge v1, v4, :cond_34
25874 + new-instance v4, Ljava/lang/StringBuilder;
25876 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
25878 + invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
25880 + move-result-object v4
25882 + sget-object v5, Landroid/privacy/surrogate/PrivacyCursor;->mask:[Ljava/lang/String;
25884 + const/16 v6, 0xf
25886 + invoke-virtual {v3, v6}, Ljava/util/Random;->nextInt(I)I
25888 + move-result v6
25890 + aget-object v5, v5, v6
25892 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
25894 + move-result-object v4
25896 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
25897 + :try_end_26
25898 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_26} :catch_2a
25900 + move-result-object v2
25902 + add-int/lit8 v1, v1, 0x1
25904 + goto :goto_8
25906 + :catch_2a
25907 + move-exception v0
25909 + const-string v4, "PrivacyCursor"
25911 + const-string/jumbo v5, "something went wrong with creating fake ID"
25913 + invoke-static {v4, v5}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
25915 + const/4 v2, 0x0
25917 + :cond_34
25918 + return-object v2
25919 +.end method
25921 +.method private getMappedPos(I)I
25922 + .registers 4
25924 + const/4 v0, 0x0
25926 + :goto_1
25927 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
25929 + array-length v1, v1
25931 + if-ge v0, v1, :cond_10
25933 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
25935 + aget v1, v1, v0
25937 + if-ne v1, p1, :cond_d
25939 + :goto_c
25940 + return v0
25942 + :cond_d
25943 + add-int/lit8 v0, v0, 0x1
25945 + goto :goto_1
25947 + :cond_10
25948 + const/4 v0, -0x1
25950 + goto :goto_c
25951 +.end method
25953 +.method private isAllowed(I)Z
25954 + .registers 7
25956 + const/4 v4, 0x0
25958 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIds:[I
25960 + array-length v3, v0
25962 + const/4 v2, 0x0
25964 + :goto_5
25965 + if-ge v2, v3, :cond_c
25967 + aget v1, v0, v2
25969 + if-ne p1, v1, :cond_d
25971 + const/4 v4, 0x1
25973 + :cond_c
25974 + return v4
25976 + :cond_d
25977 + add-int/lit8 v2, v2, 0x1
25979 + goto :goto_5
25980 +.end method
25982 +.method private isAllowed(Landroid/database/Cursor;)Z
25983 + .registers 3
25985 + invoke-direct {p0, p1}, Landroid/privacy/surrogate/PrivacyCursor;->getContactId(Landroid/database/Cursor;)I
25987 + move-result v0
25989 + invoke-direct {p0, v0}, Landroid/privacy/surrogate/PrivacyCursor;->isAllowed(I)Z
25991 + move-result v0
25993 + return v0
25994 +.end method
25997 +# virtual methods
25998 +.method public close()V
25999 + .registers 2
26001 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26003 + if-eqz v0, :cond_9
26005 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26007 + invoke-interface {v0}, Landroid/database/Cursor;->close()V
26009 + :cond_9
26010 + return-void
26011 +.end method
26013 +.method public copyStringToBuffer(ILandroid/database/CharArrayBuffer;)V
26014 + .registers 4
26016 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26018 + if-eqz v0, :cond_9
26020 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26022 + invoke-interface {v0, p1, p2}, Landroid/database/Cursor;->copyStringToBuffer(ILandroid/database/CharArrayBuffer;)V
26024 + :cond_9
26025 + return-void
26026 +.end method
26028 +.method public deactivate()V
26029 + .registers 2
26031 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26033 + if-eqz v0, :cond_9
26035 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26037 + invoke-interface {v0}, Landroid/database/Cursor;->deactivate()V
26039 + :cond_9
26040 + return-void
26041 +.end method
26043 +.method public getBlob(I)[B
26044 + .registers 3
26046 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26048 + if-eqz v0, :cond_b
26050 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26052 + invoke-interface {v0, p1}, Landroid/database/Cursor;->getBlob(I)[B
26054 + move-result-object v0
26056 + :goto_a
26057 + return-object v0
26059 + :cond_b
26060 + const/4 v0, 0x0
26062 + new-array v0, v0, [B
26064 + goto :goto_a
26065 +.end method
26067 +.method public getColumnCount()I
26068 + .registers 2
26070 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26072 + if-eqz v0, :cond_b
26074 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26076 + invoke-interface {v0}, Landroid/database/Cursor;->getColumnCount()I
26078 + move-result v0
26080 + :goto_a
26081 + return v0
26083 + :cond_b
26084 + const/4 v0, 0x0
26086 + goto :goto_a
26087 +.end method
26089 +.method public getColumnIndex(Ljava/lang/String;)I
26090 + .registers 3
26092 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26094 + if-eqz v0, :cond_b
26096 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26098 + invoke-interface {v0, p1}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I
26100 + move-result v0
26102 + :goto_a
26103 + return v0
26105 + :cond_b
26106 + const/4 v0, -0x1
26108 + goto :goto_a
26109 +.end method
26111 +.method public getColumnIndexOrThrow(Ljava/lang/String;)I
26112 + .registers 3
26113 + .annotation system Ldalvik/annotation/Throws;
26114 + value = {
26115 + Ljava/lang/IllegalArgumentException;
26117 + .end annotation
26119 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26121 + if-eqz v0, :cond_b
26123 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26125 + invoke-interface {v0, p1}, Landroid/database/Cursor;->getColumnIndexOrThrow(Ljava/lang/String;)I
26127 + move-result v0
26129 + :goto_a
26130 + return v0
26132 + :cond_b
26133 + const/4 v0, -0x1
26135 + goto :goto_a
26136 +.end method
26138 +.method public getColumnName(I)Ljava/lang/String;
26139 + .registers 3
26141 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26143 + if-eqz v0, :cond_b
26145 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26147 + invoke-interface {v0, p1}, Landroid/database/Cursor;->getColumnName(I)Ljava/lang/String;
26149 + move-result-object v0
26151 + :goto_a
26152 + return-object v0
26154 + :cond_b
26155 + const-string v0, ""
26157 + goto :goto_a
26158 +.end method
26160 +.method public getColumnNames()[Ljava/lang/String;
26161 + .registers 4
26163 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26165 + if-eqz v0, :cond_b
26167 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26169 + invoke-interface {v0}, Landroid/database/Cursor;->getColumnNames()[Ljava/lang/String;
26171 + move-result-object v0
26173 + :goto_a
26174 + return-object v0
26176 + :cond_b
26177 + const/4 v0, 0x1
26179 + new-array v0, v0, [Ljava/lang/String;
26181 + const/4 v1, 0x0
26183 + const-string v2, ""
26185 + aput-object v2, v0, v1
26187 + goto :goto_a
26188 +.end method
26190 +.method public getCount()I
26191 + .registers 4
26193 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26195 + if-eqz v0, :cond_2b
26197 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26199 + if-eqz v0, :cond_2b
26201 + iget-boolean v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
26203 + if-nez v0, :cond_2b
26205 + const-string v0, "PrivacyCursor"
26207 + new-instance v1, Ljava/lang/StringBuilder;
26209 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
26211 + const-string v2, "getCount: "
26213 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
26215 + move-result-object v1
26217 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26219 + array-length v2, v2
26221 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
26223 + move-result-object v1
26225 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
26227 + move-result-object v1
26229 + invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
26231 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26233 + array-length v0, v0
26235 + :goto_2a
26236 + return v0
26238 + :cond_2b
26239 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26241 + if-eqz v0, :cond_36
26243 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26245 + invoke-interface {v0}, Landroid/database/Cursor;->getCount()I
26247 + move-result v0
26249 + goto :goto_2a
26251 + :cond_36
26252 + const/4 v0, 0x0
26254 + goto :goto_2a
26255 +.end method
26257 +.method public getDouble(I)D
26258 + .registers 4
26260 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26262 + if-eqz v0, :cond_b
26264 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26266 + invoke-interface {v0, p1}, Landroid/database/Cursor;->getDouble(I)D
26268 + move-result-wide v0
26270 + :goto_a
26271 + return-wide v0
26273 + :cond_b
26274 + const-wide/16 v0, 0x0
26276 + goto :goto_a
26277 +.end method
26279 +.method public getExtras()Landroid/os/Bundle;
26280 + .registers 2
26282 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26284 + if-eqz v0, :cond_b
26286 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26288 + invoke-interface {v0}, Landroid/database/Cursor;->getExtras()Landroid/os/Bundle;
26290 + move-result-object v0
26292 + :goto_a
26293 + return-object v0
26295 + :cond_b
26296 + new-instance v0, Landroid/os/Bundle;
26298 + invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
26300 + goto :goto_a
26301 +.end method
26303 +.method public getFloat(I)F
26304 + .registers 3
26306 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26308 + if-eqz v0, :cond_b
26310 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26312 + invoke-interface {v0, p1}, Landroid/database/Cursor;->getFloat(I)F
26314 + move-result v0
26316 + :goto_a
26317 + return v0
26319 + :cond_b
26320 + const/4 v0, 0x0
26322 + goto :goto_a
26323 +.end method
26325 +.method public getInt(I)I
26326 + .registers 4
26328 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26330 + if-eqz v1, :cond_b
26332 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26334 + invoke-interface {v1, p1}, Landroid/database/Cursor;->getInt(I)I
26336 + move-result v0
26338 + :goto_a
26339 + return v0
26341 + :cond_b
26342 + const/4 v0, 0x0
26344 + goto :goto_a
26345 +.end method
26347 +.method public getLong(I)J
26348 + .registers 4
26350 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26352 + if-eqz v0, :cond_b
26354 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26356 + invoke-interface {v0, p1}, Landroid/database/Cursor;->getLong(I)J
26358 + move-result-wide v0
26360 + :goto_a
26361 + return-wide v0
26363 + :cond_b
26364 + const-wide/16 v0, 0x0
26366 + goto :goto_a
26367 +.end method
26369 +.method public getPosition()I
26370 + .registers 5
26372 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26374 + if-eqz v1, :cond_3f
26376 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26378 + if-eqz v1, :cond_3f
26380 + iget-boolean v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
26382 + if-nez v1, :cond_3f
26384 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26386 + invoke-interface {v1}, Landroid/database/Cursor;->getPosition()I
26388 + move-result v1
26390 + invoke-direct {p0, v1}, Landroid/privacy/surrogate/PrivacyCursor;->getMappedPos(I)I
26392 + move-result v0
26394 + const-string v1, "PrivacyCursor"
26396 + new-instance v2, Ljava/lang/StringBuilder;
26398 + invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
26400 + const-string v3, "getPosition - mapped position: "
26402 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
26404 + move-result-object v2
26406 + invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
26408 + move-result-object v2
26410 + const-string v3, " real position: "
26412 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
26414 + move-result-object v2
26416 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26418 + invoke-interface {v3}, Landroid/database/Cursor;->getPosition()I
26420 + move-result v3
26422 + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
26424 + move-result-object v2
26426 + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
26428 + move-result-object v2
26430 + invoke-static {v1, v2}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
26432 + :goto_3e
26433 + return v0
26435 + :cond_3f
26436 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26438 + if-eqz v1, :cond_4a
26440 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26442 + invoke-interface {v1}, Landroid/database/Cursor;->getPosition()I
26444 + move-result v0
26446 + goto :goto_3e
26448 + :cond_4a
26449 + const/4 v0, -0x1
26451 + goto :goto_3e
26452 +.end method
26454 +.method public getShort(I)S
26455 + .registers 3
26457 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26459 + if-eqz v0, :cond_b
26461 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26463 + invoke-interface {v0, p1}, Landroid/database/Cursor;->getShort(I)S
26465 + move-result v0
26467 + :goto_a
26468 + return v0
26470 + :cond_b
26471 + const/4 v0, 0x0
26473 + goto :goto_a
26474 +.end method
26476 +.method public getString(I)Ljava/lang/String;
26477 + .registers 9
26479 + iget-boolean v4, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
26481 + if-eqz v4, :cond_63
26483 + const/4 v4, 0x1
26485 + if-ne p1, v4, :cond_63
26487 + iget-object v4, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26489 + invoke-interface {v4}, Landroid/database/Cursor;->getPosition()I
26491 + move-result v4
26493 + iget v5, p0, Landroid/privacy/surrogate/PrivacyCursor;->blockedColumnAndroidID:I
26495 + if-ne v4, v5, :cond_63
26497 + const-string v4, "PrivacyCursor"
26499 + const-string v5, "google tries to get android_id with getString()"
26501 + invoke-static {v4, v5}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
26503 + invoke-direct {p0}, Landroid/privacy/surrogate/PrivacyCursor;->getFakeID()Ljava/lang/String;
26505 + move-result-object v2
26507 + if-eqz v2, :cond_58
26509 + :try_start_1e
26510 + new-instance v3, Ljava/math/BigInteger;
26512 + const/16 v4, 0x10
26514 + invoke-direct {v3, v2, v4}, Ljava/math/BigInteger;-><init>(Ljava/lang/String;I)V
26516 + invoke-static {v3}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
26518 + move-result-object v1
26520 + const-string v4, "PrivacyCursor"
26522 + new-instance v5, Ljava/lang/StringBuilder;
26524 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
26526 + const-string/jumbo v6, "returned : "
26528 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
26530 + move-result-object v5
26532 + invoke-virtual {v5, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
26534 + move-result-object v5
26536 + const-string v6, "(String) as fake android id"
26538 + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
26540 + move-result-object v5
26542 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
26544 + move-result-object v5
26546 + invoke-static {v4, v5}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
26547 + :try_end_48
26548 + .catch Ljava/lang/Exception; {:try_start_1e .. :try_end_48} :catch_49
26550 + :goto_48
26551 + return-object v1
26553 + :catch_49
26554 + move-exception v0
26556 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
26558 + const-string v4, "PrivacyCursor"
26560 + const-string/jumbo v5, "returned \"\" as android_id"
26562 + invoke-static {v4, v5}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
26564 + const-string v1, ""
26566 + goto :goto_48
26568 + :cond_58
26569 + const-string v4, "PrivacyCursor"
26571 + const-string/jumbo v5, "returned \"\" as android_id"
26573 + invoke-static {v4, v5}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
26575 + const-string v1, ""
26577 + goto :goto_48
26579 + :cond_63
26580 + iget-object v4, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26582 + if-eqz v4, :cond_6e
26584 + iget-object v4, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26586 + invoke-interface {v4, p1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
26588 + move-result-object v1
26590 + goto :goto_48
26592 + :cond_6e
26593 + const-string v1, ""
26595 + goto :goto_48
26596 +.end method
26598 +.method public getType(I)I
26599 + .registers 3
26601 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26603 + if-eqz v0, :cond_b
26605 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26607 + invoke-interface {v0, p1}, Landroid/database/Cursor;->getType(I)I
26609 + move-result v0
26611 + :goto_a
26612 + return v0
26614 + :cond_b
26615 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26617 + const/4 v0, 0x0
26619 + goto :goto_a
26620 +.end method
26622 +.method public getWantsAllOnMoveCalls()Z
26623 + .registers 2
26625 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26627 + if-eqz v0, :cond_b
26629 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26631 + invoke-interface {v0}, Landroid/database/Cursor;->getWantsAllOnMoveCalls()Z
26633 + move-result v0
26635 + :goto_a
26636 + return v0
26638 + :cond_b
26639 + const/4 v0, 0x0
26641 + goto :goto_a
26642 +.end method
26644 +.method public isAfterLast()Z
26645 + .registers 2
26647 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26649 + if-eqz v0, :cond_b
26651 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26653 + invoke-interface {v0}, Landroid/database/Cursor;->isAfterLast()Z
26655 + move-result v0
26657 + :goto_a
26658 + return v0
26660 + :cond_b
26661 + const/4 v0, 0x0
26663 + goto :goto_a
26664 +.end method
26666 +.method public isBeforeFirst()Z
26667 + .registers 2
26669 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26671 + if-eqz v0, :cond_b
26673 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26675 + invoke-interface {v0}, Landroid/database/Cursor;->isBeforeFirst()Z
26677 + move-result v0
26679 + :goto_a
26680 + return v0
26682 + :cond_b
26683 + const/4 v0, 0x0
26685 + goto :goto_a
26686 +.end method
26688 +.method public isClosed()Z
26689 + .registers 2
26691 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26693 + if-eqz v0, :cond_b
26695 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26697 + invoke-interface {v0}, Landroid/database/Cursor;->isClosed()Z
26699 + move-result v0
26701 + :goto_a
26702 + return v0
26704 + :cond_b
26705 + const/4 v0, 0x0
26707 + goto :goto_a
26708 +.end method
26710 +.method public isFirst()Z
26711 + .registers 4
26713 + const/4 v0, 0x0
26715 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26717 + if-eqz v1, :cond_1b
26719 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26721 + if-eqz v1, :cond_1b
26723 + iget-boolean v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
26725 + if-nez v1, :cond_1b
26727 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26729 + invoke-interface {v1}, Landroid/database/Cursor;->getPosition()I
26731 + move-result v1
26733 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26735 + aget v2, v2, v0
26737 + if-ne v1, v2, :cond_1a
26739 + const/4 v0, 0x1
26741 + :cond_1a
26742 + :goto_1a
26743 + return v0
26745 + :cond_1b
26746 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26748 + if-eqz v1, :cond_1a
26750 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26752 + invoke-interface {v0}, Landroid/database/Cursor;->isFirst()Z
26754 + move-result v0
26756 + goto :goto_1a
26757 +.end method
26759 +.method public isLast()Z
26760 + .registers 4
26762 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26764 + if-eqz v0, :cond_1f
26766 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26768 + if-eqz v0, :cond_1f
26770 + iget-boolean v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
26772 + if-nez v0, :cond_1f
26774 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26776 + invoke-interface {v0}, Landroid/database/Cursor;->getPosition()I
26778 + move-result v0
26780 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26782 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26784 + array-length v2, v2
26786 + add-int/lit8 v2, v2, -0x1
26788 + aget v1, v1, v2
26790 + if-ne v0, v1, :cond_2a
26792 + const/4 v0, 0x1
26794 + :goto_1e
26795 + return v0
26797 + :cond_1f
26798 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26800 + if-eqz v0, :cond_2a
26802 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26804 + invoke-interface {v0}, Landroid/database/Cursor;->isLast()Z
26806 + move-result v0
26808 + goto :goto_1e
26810 + :cond_2a
26811 + const/4 v0, 0x0
26813 + goto :goto_1e
26814 +.end method
26816 +.method public isNull(I)Z
26817 + .registers 3
26819 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26821 + if-eqz v0, :cond_b
26823 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26825 + invoke-interface {v0, p1}, Landroid/database/Cursor;->isNull(I)Z
26827 + move-result v0
26829 + :goto_a
26830 + return v0
26832 + :cond_b
26833 + const/4 v0, 0x0
26835 + goto :goto_a
26836 +.end method
26838 +.method public move(I)Z
26839 + .registers 8
26841 + const/4 v2, 0x0
26843 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26845 + if-eqz v3, :cond_3e
26847 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26849 + if-eqz v3, :cond_3e
26851 + iget-boolean v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
26853 + if-nez v3, :cond_3e
26855 + const-string v3, "PrivacyCursor"
26857 + new-instance v4, Ljava/lang/StringBuilder;
26859 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
26861 + const-string/jumbo v5, "move - offset: "
26863 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
26865 + move-result-object v4
26867 + invoke-virtual {v4, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
26869 + move-result-object v4
26871 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
26873 + move-result-object v4
26875 + invoke-static {v3, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
26877 + :try_start_26
26878 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26880 + iget-object v4, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26882 + invoke-interface {v4}, Landroid/database/Cursor;->getPosition()I
26884 + move-result v4
26886 + invoke-direct {p0, v4}, Landroid/privacy/surrogate/PrivacyCursor;->getMappedPos(I)I
26888 + move-result v4
26890 + add-int/2addr v4, p1
26892 + aget v1, v3, v4
26894 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26896 + invoke-interface {v3, v1}, Landroid/database/Cursor;->moveToPosition(I)Z
26897 + :try_end_3a
26898 + .catch Ljava/lang/ArrayIndexOutOfBoundsException; {:try_start_26 .. :try_end_3a} :catch_3c
26900 + move-result v2
26902 + :cond_3b
26903 + :goto_3b
26904 + return v2
26906 + :catch_3c
26907 + move-exception v0
26909 + goto :goto_3b
26911 + :cond_3e
26912 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26914 + if-eqz v3, :cond_3b
26916 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26918 + invoke-interface {v3, p1}, Landroid/database/Cursor;->move(I)Z
26920 + goto :goto_3b
26921 +.end method
26923 +.method public moveToFirst()Z
26924 + .registers 4
26926 + const/4 v0, 0x0
26928 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26930 + if-eqz v1, :cond_18
26932 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26934 + if-eqz v1, :cond_18
26936 + iget-boolean v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
26938 + if-nez v1, :cond_18
26940 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26942 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26944 + aget v2, v2, v0
26946 + invoke-interface {v1, v2}, Landroid/database/Cursor;->moveToPosition(I)Z
26948 + move-result v0
26950 + :cond_17
26951 + :goto_17
26952 + return v0
26954 + :cond_18
26955 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26957 + if-eqz v1, :cond_17
26959 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26961 + invoke-interface {v1}, Landroid/database/Cursor;->moveToFirst()Z
26963 + move-result v0
26965 + goto :goto_17
26966 +.end method
26968 +.method public moveToLast()Z
26969 + .registers 5
26971 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26973 + if-eqz v1, :cond_1c
26975 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26977 + if-eqz v1, :cond_1c
26979 + iget-boolean v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
26981 + if-nez v1, :cond_1c
26983 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
26985 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26987 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
26989 + array-length v3, v3
26991 + add-int/lit8 v3, v3, -0x1
26993 + aget v2, v2, v3
26995 + invoke-interface {v1, v2}, Landroid/database/Cursor;->moveToPosition(I)Z
26997 + move-result v0
26999 + :goto_1b
27000 + return v0
27002 + :cond_1c
27003 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27005 + if-eqz v1, :cond_27
27007 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27009 + invoke-interface {v1}, Landroid/database/Cursor;->moveToLast()Z
27011 + move-result v0
27013 + goto :goto_1b
27015 + :cond_27
27016 + const/4 v0, 0x0
27018 + goto :goto_1b
27019 +.end method
27021 +.method public moveToNext()Z
27022 + .registers 3
27024 + const/4 v0, 0x0
27026 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27028 + if-eqz v1, :cond_29
27030 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
27032 + if-eqz v1, :cond_29
27034 + iget-boolean v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
27036 + if-nez v1, :cond_29
27038 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27040 + invoke-interface {v1}, Landroid/database/Cursor;->moveToNext()Z
27042 + move-result v1
27044 + if-nez v1, :cond_16
27046 + :cond_15
27047 + :goto_15
27048 + return v0
27050 + :cond_16
27051 + const/4 v0, 0x1
27053 + :goto_17
27054 + const/4 v1, 0x1
27056 + if-ne v0, v1, :cond_15
27058 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27060 + invoke-direct {p0, v1}, Landroid/privacy/surrogate/PrivacyCursor;->isAllowed(Landroid/database/Cursor;)Z
27062 + move-result v1
27064 + if-nez v1, :cond_15
27066 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27068 + invoke-interface {v1}, Landroid/database/Cursor;->moveToNext()Z
27070 + move-result v0
27072 + goto :goto_17
27074 + :cond_29
27075 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27077 + if-eqz v1, :cond_15
27079 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27081 + invoke-interface {v1}, Landroid/database/Cursor;->moveToNext()Z
27083 + move-result v0
27085 + goto :goto_15
27086 +.end method
27088 +.method public moveToPosition(I)Z
27089 + .registers 6
27091 + const/4 v1, 0x0
27093 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27095 + if-eqz v2, :cond_1a
27097 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
27099 + if-eqz v2, :cond_1a
27101 + iget-boolean v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
27103 + if-nez v2, :cond_1a
27105 + :try_start_d
27106 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27108 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
27110 + aget v3, v3, p1
27112 + invoke-interface {v2, v3}, Landroid/database/Cursor;->moveToPosition(I)Z
27113 + :try_end_16
27114 + .catch Ljava/lang/ArrayIndexOutOfBoundsException; {:try_start_d .. :try_end_16} :catch_18
27116 + move-result v1
27118 + :cond_17
27119 + :goto_17
27120 + return v1
27122 + :catch_18
27123 + move-exception v0
27125 + goto :goto_17
27127 + :cond_1a
27128 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27130 + if-eqz v2, :cond_17
27132 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27134 + invoke-interface {v2, p1}, Landroid/database/Cursor;->moveToPosition(I)Z
27136 + move-result v1
27138 + goto :goto_17
27139 +.end method
27141 +.method public moveToPrevious()Z
27142 + .registers 3
27144 + const/4 v0, 0x0
27146 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27148 + if-eqz v1, :cond_29
27150 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->allowedIdMapping:[I
27152 + if-eqz v1, :cond_29
27154 + iget-boolean v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->googleCursor:Z
27156 + if-nez v1, :cond_29
27158 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27160 + invoke-interface {v1}, Landroid/database/Cursor;->moveToPrevious()Z
27162 + move-result v1
27164 + if-nez v1, :cond_16
27166 + :cond_15
27167 + :goto_15
27168 + return v0
27170 + :cond_16
27171 + const/4 v0, 0x1
27173 + :goto_17
27174 + const/4 v1, 0x1
27176 + if-ne v0, v1, :cond_15
27178 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27180 + invoke-direct {p0, v1}, Landroid/privacy/surrogate/PrivacyCursor;->isAllowed(Landroid/database/Cursor;)Z
27182 + move-result v1
27184 + if-nez v1, :cond_15
27186 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27188 + invoke-interface {v1}, Landroid/database/Cursor;->moveToPrevious()Z
27190 + move-result v0
27192 + goto :goto_17
27194 + :cond_29
27195 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27197 + if-eqz v1, :cond_15
27199 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27201 + invoke-interface {v1}, Landroid/database/Cursor;->moveToPrevious()Z
27203 + move-result v0
27205 + goto :goto_15
27206 +.end method
27208 +.method public registerContentObserver(Landroid/database/ContentObserver;)V
27209 + .registers 3
27211 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27213 + if-eqz v0, :cond_9
27215 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27217 + invoke-interface {v0, p1}, Landroid/database/Cursor;->registerContentObserver(Landroid/database/ContentObserver;)V
27219 + :cond_9
27220 + return-void
27221 +.end method
27223 +.method public registerDataSetObserver(Landroid/database/DataSetObserver;)V
27224 + .registers 3
27226 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27228 + if-eqz v0, :cond_9
27230 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27232 + invoke-interface {v0, p1}, Landroid/database/Cursor;->registerDataSetObserver(Landroid/database/DataSetObserver;)V
27234 + :cond_9
27235 + return-void
27236 +.end method
27238 +.method public requery()Z
27239 + .registers 2
27241 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27243 + if-eqz v0, :cond_b
27245 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27247 + invoke-interface {v0}, Landroid/database/Cursor;->requery()Z
27249 + move-result v0
27251 + :goto_a
27252 + return v0
27254 + :cond_b
27255 + const/4 v0, 0x0
27257 + goto :goto_a
27258 +.end method
27260 +.method public respond(Landroid/os/Bundle;)Landroid/os/Bundle;
27261 + .registers 3
27263 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27265 + if-eqz v0, :cond_b
27267 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27269 + invoke-interface {v0, p1}, Landroid/database/Cursor;->respond(Landroid/os/Bundle;)Landroid/os/Bundle;
27271 + move-result-object v0
27273 + :goto_a
27274 + return-object v0
27276 + :cond_b
27277 + new-instance v0, Landroid/os/Bundle;
27279 + invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
27281 + goto :goto_a
27282 +.end method
27284 +.method public setNotificationUri(Landroid/content/ContentResolver;Landroid/net/Uri;)V
27285 + .registers 4
27287 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27289 + if-eqz v0, :cond_9
27291 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27293 + invoke-interface {v0, p1, p2}, Landroid/database/Cursor;->setNotificationUri(Landroid/content/ContentResolver;Landroid/net/Uri;)V
27295 + :cond_9
27296 + return-void
27297 +.end method
27299 +.method public unregisterContentObserver(Landroid/database/ContentObserver;)V
27300 + .registers 3
27302 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27304 + if-eqz v0, :cond_9
27306 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27308 + invoke-interface {v0, p1}, Landroid/database/Cursor;->unregisterContentObserver(Landroid/database/ContentObserver;)V
27310 + :cond_9
27311 + return-void
27312 +.end method
27314 +.method public unregisterDataSetObserver(Landroid/database/DataSetObserver;)V
27315 + .registers 3
27317 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27319 + if-eqz v0, :cond_9
27321 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyCursor;->realCursor:Landroid/database/Cursor;
27323 + invoke-interface {v0, p1}, Landroid/database/Cursor;->unregisterDataSetObserver(Landroid/database/DataSetObserver;)V
27325 + :cond_9
27326 + return-void
27327 +.end method
27328 diff -Npru stock-framework/smali/android/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater.smali pdroid-framework/smali/android/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater.smali
27329 --- stock-framework/smali/android/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater.smali 1969-12-31 16:00:00.000000000 -0800
27330 +++ pdroid-framework/smali/android/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater.smali 2013-08-10 20:37:42.503213441 -0700
27331 @@ -0,0 +1,134 @@
27332 +.class Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;
27333 +.super Ljava/lang/Thread;
27334 +.source "PrivacyLocationManager.java"
27337 +# annotations
27338 +.annotation system Ldalvik/annotation/EnclosingClass;
27339 + value = Landroid/privacy/surrogate/PrivacyLocationManager;
27340 +.end annotation
27342 +.annotation system Ldalvik/annotation/InnerClass;
27343 + accessFlags = 0x2
27344 + name = "PrivacyLocationUpdater"
27345 +.end annotation
27348 +# instance fields
27349 +.field private intent:Landroid/app/PendingIntent;
27351 +.field private latitude:D
27353 +.field private listener:Landroid/location/LocationListener;
27355 +.field private longitude:D
27357 +.field private provider:Ljava/lang/String;
27359 +.field final synthetic this$0:Landroid/privacy/surrogate/PrivacyLocationManager;
27362 +# direct methods
27363 +.method public constructor <init>(Landroid/privacy/surrogate/PrivacyLocationManager;Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;DD)V
27364 + .registers 9
27366 + iput-object p1, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->this$0:Landroid/privacy/surrogate/PrivacyLocationManager;
27368 + invoke-direct {p0}, Ljava/lang/Thread;-><init>()V
27370 + iput-object p2, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->provider:Ljava/lang/String;
27372 + iput-object p3, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->listener:Landroid/location/LocationListener;
27374 + iput-object p4, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->intent:Landroid/app/PendingIntent;
27376 + iput-wide p5, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->latitude:D
27378 + iput-wide p7, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->longitude:D
27380 + return-void
27381 +.end method
27384 +# virtual methods
27385 +.method public run()V
27386 + .registers 8
27388 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->provider:Ljava/lang/String;
27390 + if-eqz v3, :cond_43
27392 + new-instance v2, Landroid/location/Location;
27394 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->provider:Ljava/lang/String;
27396 + invoke-direct {v2, v3}, Landroid/location/Location;-><init>(Ljava/lang/String;)V
27398 + iget-wide v3, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->latitude:D
27400 + invoke-virtual {v2, v3, v4}, Landroid/location/Location;->setLatitude(D)V
27402 + iget-wide v3, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->longitude:D
27404 + invoke-virtual {v2, v3, v4}, Landroid/location/Location;->setLongitude(D)V
27406 + const/4 v1, 0x0
27408 + :goto_16
27409 + const/4 v3, 0x5
27411 + if-ge v1, v3, :cond_43
27413 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->listener:Landroid/location/LocationListener;
27415 + if-eqz v3, :cond_34
27417 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->listener:Landroid/location/LocationListener;
27419 + invoke-interface {v3, v2}, Landroid/location/LocationListener;->onLocationChanged(Landroid/location/Location;)V
27421 + :cond_22
27422 + :goto_22
27423 + :try_start_22
27424 + invoke-static {}, Ljava/lang/Math;->random()D
27426 + move-result-wide v3
27428 + const-wide v5, 0x408f400000000000L
27430 + mul-double/2addr v3, v5
27432 + double-to-int v3, v3
27434 + int-to-long v3, v3
27436 + invoke-static {v3, v4}, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->sleep(J)V
27437 + :try_end_31
27438 + .catch Ljava/lang/InterruptedException; {:try_start_22 .. :try_end_31} :catch_3e
27440 + :goto_31
27441 + add-int/lit8 v1, v1, 0x1
27443 + goto :goto_16
27445 + :cond_34
27446 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->intent:Landroid/app/PendingIntent;
27448 + if-eqz v3, :cond_22
27450 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->intent:Landroid/app/PendingIntent;
27452 + invoke-virtual {v3}, Landroid/app/PendingIntent;->cancel()V
27454 + goto :goto_22
27456 + :catch_3e
27457 + move-exception v0
27459 + invoke-virtual {v0}, Ljava/lang/InterruptedException;->printStackTrace()V
27461 + goto :goto_31
27463 + :cond_43
27464 + return-void
27465 +.end method
27466 diff -Npru stock-framework/smali/android/privacy/surrogate/PrivacyLocationManager.smali pdroid-framework/smali/android/privacy/surrogate/PrivacyLocationManager.smali
27467 --- stock-framework/smali/android/privacy/surrogate/PrivacyLocationManager.smali 1969-12-31 16:00:00.000000000 -0800
27468 +++ pdroid-framework/smali/android/privacy/surrogate/PrivacyLocationManager.smali 2013-08-10 20:37:42.507213441 -0700
27469 @@ -0,0 +1,2091 @@
27470 +.class public final Landroid/privacy/surrogate/PrivacyLocationManager;
27471 +.super Landroid/location/LocationManager;
27472 +.source "PrivacyLocationManager.java"
27475 +# annotations
27476 +.annotation system Ldalvik/annotation/MemberClasses;
27477 + value = {
27478 + Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;
27480 +.end annotation
27483 +# static fields
27484 +.field private static final CUSTOM_LOCATION_UPDATE_COUNT:I = 0x5
27486 +.field private static final TAG:Ljava/lang/String; = "PrivacyLocationManager"
27489 +# instance fields
27490 +.field private context:Landroid/content/Context;
27492 +.field private lock:Ljava/lang/Object;
27494 +.field private pSetMan:Landroid/privacy/PrivacySettingsManager;
27497 +# direct methods
27498 +.method public constructor <init>(Landroid/location/ILocationManager;Landroid/content/Context;)V
27499 + .registers 5
27501 + invoke-direct {p0, p2, p1}, Landroid/location/LocationManager;-><init>(Landroid/content/Context;Landroid/location/ILocationManager;)V
27503 + new-instance v0, Ljava/lang/Object;
27505 + invoke-direct {v0}, Ljava/lang/Object;-><init>()V
27507 + iput-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->lock:Ljava/lang/Object;
27509 + iput-object p2, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->context:Landroid/content/Context;
27511 + new-instance v0, Landroid/privacy/PrivacySettingsManager;
27513 + const-string/jumbo v1, "privacy"
27515 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
27517 + move-result-object v1
27519 + invoke-static {v1}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
27521 + move-result-object v1
27523 + invoke-direct {v0, p2, v1}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
27525 + iput-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
27527 + return-void
27528 +.end method
27530 +.method private requestLocationUpdates(Landroid/location/Criteria;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
27531 + .registers 7
27533 + const/4 v2, 0x3
27535 + if-nez p1, :cond_5
27537 + const/4 v0, 0x0
27539 + :goto_4
27540 + return v0
27542 + :cond_5
27543 + invoke-virtual {p1}, Landroid/location/Criteria;->getAccuracy()I
27545 + move-result v0
27547 + const/4 v1, 0x1
27549 + if-eq v0, v1, :cond_24
27551 + invoke-virtual {p1}, Landroid/location/Criteria;->getBearingAccuracy()I
27553 + move-result v0
27555 + if-eq v0, v2, :cond_24
27557 + invoke-virtual {p1}, Landroid/location/Criteria;->getHorizontalAccuracy()I
27559 + move-result v0
27561 + if-eq v0, v2, :cond_24
27563 + invoke-virtual {p1}, Landroid/location/Criteria;->getVerticalAccuracy()I
27565 + move-result v0
27567 + if-eq v0, v2, :cond_24
27569 + invoke-virtual {p1}, Landroid/location/Criteria;->getSpeedAccuracy()I
27571 + move-result v0
27573 + if-ne v0, v2, :cond_2b
27575 + :cond_24
27576 + const-string v0, "gps"
27578 + invoke-direct {p0, v0, p2, p3}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
27580 + move-result v0
27582 + goto :goto_4
27584 + :cond_2b
27585 + const-string/jumbo v0, "network"
27587 + invoke-direct {p0, v0, p2, p3}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
27589 + move-result v0
27591 + goto :goto_4
27592 +.end method
27594 +.method private requestLocationUpdates(Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
27595 + .registers 24
27597 + move-object/from16 v0, p0
27599 + iget-object v0, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->lock:Ljava/lang/Object;
27601 + move-object/from16 v19, v0
27603 + monitor-enter v19
27605 + :try_start_7
27606 + move-object/from16 v0, p0
27608 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->context:Landroid/content/Context;
27610 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
27612 + move-result-object v2
27614 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
27616 + move-result v3
27618 + move-object/from16 v0, p0
27620 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
27622 + invoke-virtual {v1, v2, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
27624 + move-result-object v7
27626 + const/16 v18, 0x0
27628 + if-eqz v7, :cond_239
27630 + const-string v1, "gps"
27632 + move-object/from16 v0, p1
27634 + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
27636 + move-result v1
27638 + if-eqz v1, :cond_111
27640 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
27642 + move-result v1
27644 + packed-switch v1, :pswitch_data_25e
27646 + :cond_30
27647 + :goto_30
27648 + monitor-exit v19
27650 + return v18
27652 + :pswitch_32
27653 + move-object/from16 v0, p0
27655 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
27657 + const/4 v4, 0x0
27659 + const-string v5, "locationGPS"
27661 + const/4 v6, 0x0
27663 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
27665 + goto :goto_30
27667 + :catchall_3e
27668 + move-exception v1
27670 + monitor-exit v19
27671 + :try_end_40
27672 + .catchall {:try_start_7 .. :try_end_40} :catchall_3e
27674 + throw v1
27676 + :pswitch_41
27677 + if-eqz p3, :cond_46
27679 + :try_start_43
27680 + invoke-virtual/range {p3 .. p3}, Landroid/app/PendingIntent;->cancel()V
27682 + :cond_46
27683 + const/16 v18, 0x1
27685 + move-object/from16 v0, p0
27687 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
27689 + const/4 v4, 0x1
27691 + const-string v5, "locationGPS"
27693 + const/4 v6, 0x0
27695 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
27696 + :try_end_53
27697 + .catchall {:try_start_43 .. :try_end_53} :catchall_3e
27699 + goto :goto_30
27701 + :pswitch_54
27702 + :try_start_54
27703 + new-instance v8, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;
27705 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationGpsLat()Ljava/lang/String;
27707 + move-result-object v1
27709 + invoke-static {v1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
27711 + move-result-wide v13
27713 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationGpsLon()Ljava/lang/String;
27715 + move-result-object v1
27717 + invoke-static {v1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
27719 + move-result-wide v15
27721 + move-object/from16 v9, p0
27723 + move-object/from16 v10, p1
27725 + move-object/from16 v11, p2
27727 + move-object/from16 v12, p3
27729 + 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
27731 + invoke-virtual {v8}, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->start()V
27732 + :try_end_74
27733 + .catchall {:try_start_54 .. :try_end_74} :catchall_3e
27734 + .catch Ljava/lang/NumberFormatException; {:try_start_54 .. :try_end_74} :catch_a6
27736 + const/16 v18, 0x1
27738 + :goto_76
27739 + :try_start_76
27740 + move-object/from16 v0, p0
27742 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
27744 + const/4 v4, 0x2
27746 + const-string v5, "locationGPS"
27748 + new-instance v6, Ljava/lang/StringBuilder;
27750 + invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
27752 + const-string v8, "Lat: "
27754 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
27756 + move-result-object v6
27758 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationGpsLat()Ljava/lang/String;
27760 + move-result-object v8
27762 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
27764 + move-result-object v6
27766 + const-string v8, " Lon: "
27768 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
27770 + move-result-object v6
27772 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationGpsLon()Ljava/lang/String;
27774 + move-result-object v8
27776 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
27778 + move-result-object v6
27780 + invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
27782 + move-result-object v6
27784 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
27786 + goto :goto_30
27788 + :catch_a6
27789 + move-exception v17
27791 + const-string v1, "PrivacyLocationManager"
27793 + const-string/jumbo v4, "requestLocationUpdates: invalid coordinates"
27795 + invoke-static {v1, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
27796 + :try_end_af
27797 + .catchall {:try_start_76 .. :try_end_af} :catchall_3e
27799 + const/16 v18, 0x1
27801 + goto :goto_76
27803 + :pswitch_b2
27804 + :try_start_b2
27805 + new-instance v8, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;
27807 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationGpsLat()Ljava/lang/String;
27809 + move-result-object v1
27811 + invoke-static {v1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
27813 + move-result-wide v13
27815 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationGpsLon()Ljava/lang/String;
27817 + move-result-object v1
27819 + invoke-static {v1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
27821 + move-result-wide v15
27823 + move-object/from16 v9, p0
27825 + move-object/from16 v10, p1
27827 + move-object/from16 v11, p2
27829 + move-object/from16 v12, p3
27831 + 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
27833 + invoke-virtual {v8}, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->start()V
27834 + :try_end_d2
27835 + .catchall {:try_start_b2 .. :try_end_d2} :catchall_3e
27836 + .catch Ljava/lang/NumberFormatException; {:try_start_b2 .. :try_end_d2} :catch_105
27838 + const/16 v18, 0x1
27840 + :goto_d4
27841 + :try_start_d4
27842 + move-object/from16 v0, p0
27844 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
27846 + const/4 v4, 0x3
27848 + const-string v5, "locationGPS"
27850 + new-instance v6, Ljava/lang/StringBuilder;
27852 + invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
27854 + const-string v8, "Lat: "
27856 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
27858 + move-result-object v6
27860 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationGpsLat()Ljava/lang/String;
27862 + move-result-object v8
27864 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
27866 + move-result-object v6
27868 + const-string v8, " Lon: "
27870 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
27872 + move-result-object v6
27874 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationGpsLon()Ljava/lang/String;
27876 + move-result-object v8
27878 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
27880 + move-result-object v6
27882 + invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
27884 + move-result-object v6
27886 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
27888 + goto/16 :goto_30
27890 + :catch_105
27891 + move-exception v17
27893 + const-string v1, "PrivacyLocationManager"
27895 + const-string/jumbo v4, "requestLocationUpdates: invalid coordinates"
27897 + invoke-static {v1, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
27899 + const/16 v18, 0x1
27901 + goto :goto_d4
27903 + :cond_111
27904 + const-string/jumbo v1, "network"
27906 + move-object/from16 v0, p1
27908 + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
27910 + move-result v1
27912 + if-eqz v1, :cond_204
27914 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
27916 + move-result v1
27918 + packed-switch v1, :pswitch_data_26a
27920 + goto/16 :goto_30
27922 + :pswitch_125
27923 + move-object/from16 v0, p0
27925 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
27927 + const/4 v4, 0x0
27929 + const-string v5, "locationNetwork"
27931 + const/4 v6, 0x0
27933 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
27935 + goto/16 :goto_30
27937 + :pswitch_132
27938 + if-eqz p3, :cond_137
27940 + invoke-virtual/range {p3 .. p3}, Landroid/app/PendingIntent;->cancel()V
27942 + :cond_137
27943 + const/16 v18, 0x1
27945 + move-object/from16 v0, p0
27947 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
27949 + const/4 v4, 0x1
27951 + const-string v5, "locationNetwork"
27953 + const/4 v6, 0x0
27955 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
27956 + :try_end_144
27957 + .catchall {:try_start_d4 .. :try_end_144} :catchall_3e
27959 + goto/16 :goto_30
27961 + :pswitch_146
27962 + :try_start_146
27963 + new-instance v8, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;
27965 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationNetworkLat()Ljava/lang/String;
27967 + move-result-object v1
27969 + invoke-static {v1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
27971 + move-result-wide v13
27973 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationNetworkLon()Ljava/lang/String;
27975 + move-result-object v1
27977 + invoke-static {v1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
27979 + move-result-wide v15
27981 + move-object/from16 v9, p0
27983 + move-object/from16 v10, p1
27985 + move-object/from16 v11, p2
27987 + move-object/from16 v12, p3
27989 + 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
27991 + invoke-virtual {v8}, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->start()V
27992 + :try_end_166
27993 + .catchall {:try_start_146 .. :try_end_166} :catchall_3e
27994 + .catch Ljava/lang/NumberFormatException; {:try_start_146 .. :try_end_166} :catch_199
27996 + const/16 v18, 0x1
27998 + :goto_168
27999 + :try_start_168
28000 + move-object/from16 v0, p0
28002 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28004 + const/4 v4, 0x2
28006 + const-string v5, "locationNetwork"
28008 + new-instance v6, Ljava/lang/StringBuilder;
28010 + invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
28012 + const-string v8, "Lat: "
28014 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28016 + move-result-object v6
28018 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationNetworkLat()Ljava/lang/String;
28020 + move-result-object v8
28022 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28024 + move-result-object v6
28026 + const-string v8, " Lon: "
28028 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28030 + move-result-object v6
28032 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationNetworkLon()Ljava/lang/String;
28034 + move-result-object v8
28036 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28038 + move-result-object v6
28040 + invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
28042 + move-result-object v6
28044 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28046 + goto/16 :goto_30
28048 + :catch_199
28049 + move-exception v17
28051 + const-string v1, "PrivacyLocationManager"
28053 + const-string/jumbo v4, "requestLocationUpdates: invalid coordinates"
28055 + invoke-static {v1, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
28056 + :try_end_1a2
28057 + .catchall {:try_start_168 .. :try_end_1a2} :catchall_3e
28059 + const/16 v18, 0x1
28061 + goto :goto_168
28063 + :pswitch_1a5
28064 + :try_start_1a5
28065 + new-instance v8, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;
28067 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationNetworkLat()Ljava/lang/String;
28069 + move-result-object v1
28071 + invoke-static {v1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
28073 + move-result-wide v13
28075 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationNetworkLon()Ljava/lang/String;
28077 + move-result-object v1
28079 + invoke-static {v1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
28081 + move-result-wide v15
28083 + move-object/from16 v9, p0
28085 + move-object/from16 v10, p1
28087 + move-object/from16 v11, p2
28089 + move-object/from16 v12, p3
28091 + 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
28093 + invoke-virtual {v8}, Landroid/privacy/surrogate/PrivacyLocationManager$PrivacyLocationUpdater;->start()V
28094 + :try_end_1c5
28095 + .catchall {:try_start_1a5 .. :try_end_1c5} :catchall_3e
28096 + .catch Ljava/lang/NumberFormatException; {:try_start_1a5 .. :try_end_1c5} :catch_1f8
28098 + const/16 v18, 0x1
28100 + :goto_1c7
28101 + :try_start_1c7
28102 + move-object/from16 v0, p0
28104 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28106 + const/4 v4, 0x3
28108 + const-string v5, "locationNetwork"
28110 + new-instance v6, Ljava/lang/StringBuilder;
28112 + invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
28114 + const-string v8, "Lat: "
28116 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28118 + move-result-object v6
28120 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationNetworkLat()Ljava/lang/String;
28122 + move-result-object v8
28124 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28126 + move-result-object v6
28128 + const-string v8, " Lon: "
28130 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28132 + move-result-object v6
28134 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationNetworkLon()Ljava/lang/String;
28136 + move-result-object v8
28138 + invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28140 + move-result-object v6
28142 + invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
28144 + move-result-object v6
28146 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28148 + goto/16 :goto_30
28150 + :catch_1f8
28151 + move-exception v17
28153 + const-string v1, "PrivacyLocationManager"
28155 + const-string/jumbo v4, "requestLocationUpdates: invalid coordinates"
28157 + invoke-static {v1, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
28159 + const/16 v18, 0x1
28161 + goto :goto_1c7
28163 + :cond_204
28164 + const-string/jumbo v1, "passive"
28166 + move-object/from16 v0, p1
28168 + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
28170 + move-result v1
28172 + if-eqz v1, :cond_30
28174 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
28176 + move-result v1
28178 + if-nez v1, :cond_22a
28180 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
28182 + move-result v1
28184 + if-nez v1, :cond_22a
28186 + const/16 v18, 0x0
28188 + move-object/from16 v0, p0
28190 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28192 + const/4 v4, 0x0
28194 + const-string v5, "locationGPS"
28196 + const/4 v6, 0x0
28198 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28200 + goto/16 :goto_30
28202 + :cond_22a
28203 + const/16 v18, 0x1
28205 + move-object/from16 v0, p0
28207 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28209 + const/4 v4, 0x1
28211 + const-string v5, "locationGPS"
28213 + const/4 v6, 0x0
28215 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28217 + goto/16 :goto_30
28219 + :cond_239
28220 + const-string/jumbo v1, "network"
28222 + move-object/from16 v0, p1
28224 + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
28226 + move-result v1
28228 + if-eqz v1, :cond_251
28230 + move-object/from16 v0, p0
28232 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28234 + const/4 v4, 0x0
28236 + const-string v5, "locationNetwork"
28238 + const/4 v6, 0x0
28240 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28242 + goto/16 :goto_30
28244 + :cond_251
28245 + move-object/from16 v0, p0
28247 + iget-object v1, v0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28249 + const/4 v4, 0x0
28251 + const-string v5, "locationGPS"
28253 + const/4 v6, 0x0
28255 + invoke-virtual/range {v1 .. v7}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28256 + :try_end_25c
28257 + .catchall {:try_start_1c7 .. :try_end_25c} :catchall_3e
28259 + goto/16 :goto_30
28261 + :pswitch_data_25e
28262 + .packed-switch 0x0
28263 + :pswitch_32
28264 + :pswitch_41
28265 + :pswitch_54
28266 + :pswitch_b2
28267 + .end packed-switch
28269 + :pswitch_data_26a
28270 + .packed-switch 0x0
28271 + :pswitch_125
28272 + :pswitch_132
28273 + :pswitch_146
28274 + :pswitch_1a5
28275 + .end packed-switch
28276 +.end method
28279 +# virtual methods
28280 +.method public addNmeaListener(Landroid/location/GpsStatus$NmeaListener;)Z
28281 + .registers 10
28283 + const/4 v5, 0x0
28285 + const/4 v7, 0x0
28287 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->context:Landroid/content/Context;
28289 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
28291 + move-result-object v1
28293 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
28295 + move-result v2
28297 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28299 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
28301 + move-result-object v6
28303 + if-eqz v6, :cond_24
28305 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
28307 + move-result v0
28309 + if-eqz v0, :cond_24
28311 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28313 + const/4 v3, 0x1
28315 + const-string v4, "locationGPS"
28317 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28319 + move v0, v7
28321 + :goto_23
28322 + return v0
28324 + :cond_24
28325 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28327 + const-string v4, "locationGPS"
28329 + move v3, v7
28331 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28333 + invoke-super {p0, p1}, Landroid/location/LocationManager;->addNmeaListener(Landroid/location/GpsStatus$NmeaListener;)Z
28335 + move-result v0
28337 + goto :goto_23
28338 +.end method
28340 +.method public getLastKnownLocation(Ljava/lang/String;)Landroid/location/Location;
28341 + .registers 14
28343 + const/4 v11, 0x3
28345 + const/4 v10, 0x2
28347 + const/4 v8, 0x1
28349 + const/4 v3, 0x0
28351 + const/4 v5, 0x0
28353 + if-nez p1, :cond_c
28355 + invoke-super {p0, p1}, Landroid/location/LocationManager;->getLastKnownLocation(Ljava/lang/String;)Landroid/location/Location;
28357 + move-result-object v7
28359 + :cond_b
28360 + :goto_b
28361 + return-object v7
28363 + :cond_c
28364 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->context:Landroid/content/Context;
28366 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
28368 + move-result-object v1
28370 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
28372 + move-result v2
28374 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28376 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
28378 + move-result-object v6
28380 + const/4 v7, 0x0
28382 + if-eqz v6, :cond_22c
28384 + const-string v0, "gps"
28386 + invoke-virtual {p1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
28388 + move-result v0
28390 + if-eqz v0, :cond_ff
28392 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
28394 + move-result v0
28396 + packed-switch v0, :pswitch_data_29a
28398 + goto :goto_b
28400 + :pswitch_2f
28401 + invoke-super {p0, p1}, Landroid/location/LocationManager;->getLastKnownLocation(Ljava/lang/String;)Landroid/location/Location;
28403 + move-result-object v7
28405 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28407 + const-string v4, "locationGPS"
28409 + if-eqz v7, :cond_5e
28411 + new-instance v5, Ljava/lang/StringBuilder;
28413 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
28415 + const-string v8, "Lat: "
28417 + invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28419 + move-result-object v5
28421 + invoke-virtual {v7}, Landroid/location/Location;->getLatitude()D
28423 + move-result-wide v8
28425 + invoke-virtual {v5, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28427 + move-result-object v5
28429 + const-string v8, " Lon: "
28431 + invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28433 + move-result-object v5
28435 + invoke-virtual {v7}, Landroid/location/Location;->getLongitude()D
28437 + move-result-wide v8
28439 + invoke-virtual {v5, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28441 + move-result-object v5
28443 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
28445 + move-result-object v5
28447 + :cond_5e
28448 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28450 + goto :goto_b
28452 + :pswitch_62
28453 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28455 + const-string v4, "locationGPS"
28457 + move v3, v8
28459 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28461 + goto :goto_b
28463 + :pswitch_6b
28464 + new-instance v7, Landroid/location/Location;
28466 + invoke-direct {v7, p1}, Landroid/location/Location;-><init>(Ljava/lang/String;)V
28468 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationGpsLat()Ljava/lang/String;
28470 + move-result-object v0
28472 + invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
28474 + move-result-wide v3
28476 + invoke-virtual {v7, v3, v4}, Landroid/location/Location;->setLatitude(D)V
28478 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationGpsLon()Ljava/lang/String;
28480 + move-result-object v0
28482 + invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
28484 + move-result-wide v3
28486 + invoke-virtual {v7, v3, v4}, Landroid/location/Location;->setLongitude(D)V
28488 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28490 + const-string v4, "locationGPS"
28492 + new-instance v3, Ljava/lang/StringBuilder;
28494 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
28496 + const-string v5, "Lat: "
28498 + invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28500 + move-result-object v3
28502 + invoke-virtual {v7}, Landroid/location/Location;->getLatitude()D
28504 + move-result-wide v8
28506 + invoke-virtual {v3, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28508 + move-result-object v3
28510 + const-string v5, " Lon: "
28512 + invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28514 + move-result-object v3
28516 + invoke-virtual {v7}, Landroid/location/Location;->getLongitude()D
28518 + move-result-wide v8
28520 + invoke-virtual {v3, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28522 + move-result-object v3
28524 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
28526 + move-result-object v5
28528 + move v3, v10
28530 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28532 + goto/16 :goto_b
28534 + :pswitch_b5
28535 + new-instance v7, Landroid/location/Location;
28537 + invoke-direct {v7, p1}, Landroid/location/Location;-><init>(Ljava/lang/String;)V
28539 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationGpsLat()Ljava/lang/String;
28541 + move-result-object v0
28543 + invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
28545 + move-result-wide v3
28547 + invoke-virtual {v7, v3, v4}, Landroid/location/Location;->setLatitude(D)V
28549 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationGpsLon()Ljava/lang/String;
28551 + move-result-object v0
28553 + invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
28555 + move-result-wide v3
28557 + invoke-virtual {v7, v3, v4}, Landroid/location/Location;->setLongitude(D)V
28559 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28561 + const-string v4, "locationGPS"
28563 + new-instance v3, Ljava/lang/StringBuilder;
28565 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
28567 + const-string v5, "Lat: "
28569 + invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28571 + move-result-object v3
28573 + invoke-virtual {v7}, Landroid/location/Location;->getLatitude()D
28575 + move-result-wide v8
28577 + invoke-virtual {v3, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28579 + move-result-object v3
28581 + const-string v5, " Lon: "
28583 + invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28585 + move-result-object v3
28587 + invoke-virtual {v7}, Landroid/location/Location;->getLongitude()D
28589 + move-result-wide v8
28591 + invoke-virtual {v3, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28593 + move-result-object v3
28595 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
28597 + move-result-object v5
28599 + move v3, v11
28601 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28603 + goto/16 :goto_b
28605 + :cond_ff
28606 + const-string/jumbo v0, "network"
28608 + invoke-virtual {p1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
28610 + move-result v0
28612 + if-eqz v0, :cond_1e3
28614 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
28616 + move-result v0
28618 + packed-switch v0, :pswitch_data_2a6
28620 + goto/16 :goto_b
28622 + :pswitch_111
28623 + invoke-super {p0, p1}, Landroid/location/LocationManager;->getLastKnownLocation(Ljava/lang/String;)Landroid/location/Location;
28625 + move-result-object v7
28627 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28629 + const-string v4, "locationNetwork"
28631 + if-eqz v7, :cond_140
28633 + new-instance v5, Ljava/lang/StringBuilder;
28635 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
28637 + const-string v8, "Lat: "
28639 + invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28641 + move-result-object v5
28643 + invoke-virtual {v7}, Landroid/location/Location;->getLatitude()D
28645 + move-result-wide v8
28647 + invoke-virtual {v5, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28649 + move-result-object v5
28651 + const-string v8, " Lon: "
28653 + invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28655 + move-result-object v5
28657 + invoke-virtual {v7}, Landroid/location/Location;->getLongitude()D
28659 + move-result-wide v8
28661 + invoke-virtual {v5, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28663 + move-result-object v5
28665 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
28667 + move-result-object v5
28669 + :cond_140
28670 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28672 + goto/16 :goto_b
28674 + :pswitch_145
28675 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28677 + const-string v4, "locationNetwork"
28679 + move v3, v8
28681 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28683 + goto/16 :goto_b
28685 + :pswitch_14f
28686 + new-instance v7, Landroid/location/Location;
28688 + invoke-direct {v7, p1}, Landroid/location/Location;-><init>(Ljava/lang/String;)V
28690 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkLat()Ljava/lang/String;
28692 + move-result-object v0
28694 + invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
28696 + move-result-wide v3
28698 + invoke-virtual {v7, v3, v4}, Landroid/location/Location;->setLatitude(D)V
28700 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkLon()Ljava/lang/String;
28702 + move-result-object v0
28704 + invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
28706 + move-result-wide v3
28708 + invoke-virtual {v7, v3, v4}, Landroid/location/Location;->setLongitude(D)V
28710 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28712 + const-string v4, "locationNetwork"
28714 + new-instance v3, Ljava/lang/StringBuilder;
28716 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
28718 + const-string v5, "Lat: "
28720 + invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28722 + move-result-object v3
28724 + invoke-virtual {v7}, Landroid/location/Location;->getLatitude()D
28726 + move-result-wide v8
28728 + invoke-virtual {v3, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28730 + move-result-object v3
28732 + const-string v5, " Lon: "
28734 + invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28736 + move-result-object v3
28738 + invoke-virtual {v7}, Landroid/location/Location;->getLongitude()D
28740 + move-result-wide v8
28742 + invoke-virtual {v3, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28744 + move-result-object v3
28746 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
28748 + move-result-object v5
28750 + move v3, v10
28752 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28754 + goto/16 :goto_b
28756 + :pswitch_199
28757 + new-instance v7, Landroid/location/Location;
28759 + invoke-direct {v7, p1}, Landroid/location/Location;-><init>(Ljava/lang/String;)V
28761 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkLat()Ljava/lang/String;
28763 + move-result-object v0
28765 + invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
28767 + move-result-wide v3
28769 + invoke-virtual {v7, v3, v4}, Landroid/location/Location;->setLatitude(D)V
28771 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkLon()Ljava/lang/String;
28773 + move-result-object v0
28775 + invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
28777 + move-result-wide v3
28779 + invoke-virtual {v7, v3, v4}, Landroid/location/Location;->setLongitude(D)V
28781 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28783 + const-string v4, "locationNetwork"
28785 + new-instance v3, Ljava/lang/StringBuilder;
28787 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
28789 + const-string v5, "Lat: "
28791 + invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28793 + move-result-object v3
28795 + invoke-virtual {v7}, Landroid/location/Location;->getLatitude()D
28797 + move-result-wide v8
28799 + invoke-virtual {v3, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28801 + move-result-object v3
28803 + const-string v5, " Lon: "
28805 + invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28807 + move-result-object v3
28809 + invoke-virtual {v7}, Landroid/location/Location;->getLongitude()D
28811 + move-result-wide v8
28813 + invoke-virtual {v3, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28815 + move-result-object v3
28817 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
28819 + move-result-object v5
28821 + move v3, v11
28823 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28825 + goto/16 :goto_b
28827 + :cond_1e3
28828 + const-string/jumbo v0, "passive"
28830 + invoke-virtual {p1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
28832 + move-result v0
28834 + if-eqz v0, :cond_b
28836 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
28838 + move-result v0
28840 + if-nez v0, :cond_b
28842 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
28844 + move-result v0
28846 + if-nez v0, :cond_b
28848 + invoke-super {p0, p1}, Landroid/location/LocationManager;->getLastKnownLocation(Ljava/lang/String;)Landroid/location/Location;
28850 + move-result-object v7
28852 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28854 + const-string v4, "locationGPS"
28856 + if-eqz v7, :cond_227
28858 + new-instance v5, Ljava/lang/StringBuilder;
28860 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
28862 + const-string v8, "Lat: "
28864 + invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28866 + move-result-object v5
28868 + invoke-virtual {v7}, Landroid/location/Location;->getLatitude()D
28870 + move-result-wide v8
28872 + invoke-virtual {v5, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28874 + move-result-object v5
28876 + const-string v8, " Lon: "
28878 + invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28880 + move-result-object v5
28882 + invoke-virtual {v7}, Landroid/location/Location;->getLongitude()D
28884 + move-result-wide v8
28886 + invoke-virtual {v5, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28888 + move-result-object v5
28890 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
28892 + move-result-object v5
28894 + :cond_227
28895 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28897 + goto/16 :goto_b
28899 + :cond_22c
28900 + invoke-super {p0, p1}, Landroid/location/LocationManager;->getLastKnownLocation(Ljava/lang/String;)Landroid/location/Location;
28902 + move-result-object v7
28904 + const-string/jumbo v0, "network"
28906 + invoke-virtual {p1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
28908 + move-result v0
28910 + if-eqz v0, :cond_269
28912 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28914 + const-string v4, "locationNetwork"
28916 + if-eqz v7, :cond_264
28918 + new-instance v5, Ljava/lang/StringBuilder;
28920 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
28922 + const-string v8, "Lat: "
28924 + invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28926 + move-result-object v5
28928 + invoke-virtual {v7}, Landroid/location/Location;->getLatitude()D
28930 + move-result-wide v8
28932 + invoke-virtual {v5, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28934 + move-result-object v5
28936 + const-string v8, " Lon: "
28938 + invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28940 + move-result-object v5
28942 + invoke-virtual {v7}, Landroid/location/Location;->getLongitude()D
28944 + move-result-wide v8
28946 + invoke-virtual {v5, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28948 + move-result-object v5
28950 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
28952 + move-result-object v5
28954 + :cond_264
28955 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
28957 + goto/16 :goto_b
28959 + :cond_269
28960 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
28962 + const-string v4, "locationGPS"
28964 + if-eqz v7, :cond_294
28966 + new-instance v5, Ljava/lang/StringBuilder;
28968 + invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
28970 + const-string v8, "Lat: "
28972 + invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28974 + move-result-object v5
28976 + invoke-virtual {v7}, Landroid/location/Location;->getLatitude()D
28978 + move-result-wide v8
28980 + invoke-virtual {v5, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28982 + move-result-object v5
28984 + const-string v8, " Lon: "
28986 + invoke-virtual {v5, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
28988 + move-result-object v5
28990 + invoke-virtual {v7}, Landroid/location/Location;->getLongitude()D
28992 + move-result-wide v8
28994 + invoke-virtual {v5, v8, v9}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
28996 + move-result-object v5
28998 + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
29000 + move-result-object v5
29002 + :cond_294
29003 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
29005 + goto/16 :goto_b
29007 + nop
29009 + :pswitch_data_29a
29010 + .packed-switch 0x0
29011 + :pswitch_2f
29012 + :pswitch_62
29013 + :pswitch_6b
29014 + :pswitch_b5
29015 + .end packed-switch
29017 + :pswitch_data_2a6
29018 + .packed-switch 0x0
29019 + :pswitch_111
29020 + :pswitch_145
29021 + :pswitch_14f
29022 + :pswitch_199
29023 + .end packed-switch
29024 +.end method
29026 +.method public getProvider(Ljava/lang/String;)Landroid/location/LocationProvider;
29027 + .registers 7
29029 + if-nez p1, :cond_7
29031 + invoke-super {p0, p1}, Landroid/location/LocationManager;->getProvider(Ljava/lang/String;)Landroid/location/LocationProvider;
29033 + move-result-object v0
29035 + :cond_6
29036 + :goto_6
29037 + return-object v0
29039 + :cond_7
29040 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29042 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->context:Landroid/content/Context;
29044 + invoke-virtual {v3}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
29046 + move-result-object v3
29048 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
29050 + move-result v4
29052 + invoke-virtual {v2, v3, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
29054 + move-result-object v1
29056 + const/4 v0, 0x0
29058 + if-eqz v1, :cond_5f
29060 + const-string v2, "gps"
29062 + invoke-virtual {p1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
29064 + move-result v2
29066 + if-eqz v2, :cond_2f
29068 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
29070 + move-result v2
29072 + packed-switch v2, :pswitch_data_64
29074 + :pswitch_29
29075 + goto :goto_6
29077 + :pswitch_2a
29078 + invoke-super {p0, p1}, Landroid/location/LocationManager;->getProvider(Ljava/lang/String;)Landroid/location/LocationProvider;
29080 + move-result-object v0
29082 + goto :goto_6
29084 + :cond_2f
29085 + const-string/jumbo v2, "network"
29087 + invoke-virtual {p1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
29089 + move-result v2
29091 + if-eqz v2, :cond_45
29093 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
29095 + move-result v2
29097 + packed-switch v2, :pswitch_data_70
29099 + :pswitch_3f
29100 + goto :goto_6
29102 + :pswitch_40
29103 + invoke-super {p0, p1}, Landroid/location/LocationManager;->getProvider(Ljava/lang/String;)Landroid/location/LocationProvider;
29105 + move-result-object v0
29107 + goto :goto_6
29109 + :cond_45
29110 + const-string/jumbo v2, "passive"
29112 + invoke-virtual {p1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
29114 + move-result v2
29116 + if-eqz v2, :cond_6
29118 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
29120 + move-result v2
29122 + if-eqz v2, :cond_5a
29124 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
29126 + move-result v2
29128 + if-nez v2, :cond_6
29130 + :cond_5a
29131 + invoke-super {p0, p1}, Landroid/location/LocationManager;->getProvider(Ljava/lang/String;)Landroid/location/LocationProvider;
29133 + move-result-object v0
29135 + goto :goto_6
29137 + :cond_5f
29138 + invoke-super {p0, p1}, Landroid/location/LocationManager;->getProvider(Ljava/lang/String;)Landroid/location/LocationProvider;
29140 + move-result-object v0
29142 + goto :goto_6
29144 + :pswitch_data_64
29145 + .packed-switch 0x0
29146 + :pswitch_2a
29147 + :pswitch_29
29148 + :pswitch_2a
29149 + :pswitch_2a
29150 + .end packed-switch
29152 + :pswitch_data_70
29153 + .packed-switch 0x0
29154 + :pswitch_40
29155 + :pswitch_3f
29156 + :pswitch_40
29157 + :pswitch_40
29158 + .end packed-switch
29159 +.end method
29161 +.method public isProviderEnabled(Ljava/lang/String;)Z
29162 + .registers 7
29164 + if-nez p1, :cond_7
29166 + invoke-super {p0, p1}, Landroid/location/LocationManager;->isProviderEnabled(Ljava/lang/String;)Z
29168 + move-result v0
29170 + :cond_6
29171 + :goto_6
29172 + :pswitch_6
29173 + return v0
29175 + :cond_7
29176 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29178 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyLocationManager;->context:Landroid/content/Context;
29180 + invoke-virtual {v3}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
29182 + move-result-object v3
29184 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
29186 + move-result v4
29188 + invoke-virtual {v2, v3, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
29190 + move-result-object v1
29192 + const/4 v0, 0x0
29194 + if-eqz v1, :cond_65
29196 + const-string v2, "gps"
29198 + invoke-virtual {p1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
29200 + move-result v2
29202 + if-eqz v2, :cond_31
29204 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
29206 + move-result v2
29208 + packed-switch v2, :pswitch_data_6a
29210 + goto :goto_6
29212 + :pswitch_2a
29213 + invoke-super {p0, p1}, Landroid/location/LocationManager;->isProviderEnabled(Ljava/lang/String;)Z
29215 + move-result v0
29217 + goto :goto_6
29219 + :pswitch_2f
29220 + const/4 v0, 0x1
29222 + goto :goto_6
29224 + :cond_31
29225 + const-string/jumbo v2, "network"
29227 + invoke-virtual {p1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
29229 + move-result v2
29231 + if-eqz v2, :cond_49
29233 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
29235 + move-result v2
29237 + packed-switch v2, :pswitch_data_76
29239 + goto :goto_6
29241 + :pswitch_42
29242 + invoke-super {p0, p1}, Landroid/location/LocationManager;->isProviderEnabled(Ljava/lang/String;)Z
29244 + move-result v0
29246 + goto :goto_6
29248 + :pswitch_47
29249 + const/4 v0, 0x1
29251 + goto :goto_6
29253 + :cond_49
29254 + const-string/jumbo v2, "passive"
29256 + invoke-virtual {p1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
29258 + move-result v2
29260 + if-eqz v2, :cond_6
29262 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
29264 + move-result v2
29266 + if-eqz v2, :cond_5e
29268 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
29270 + move-result v2
29272 + if-nez v2, :cond_63
29274 + :cond_5e
29275 + invoke-super {p0, p1}, Landroid/location/LocationManager;->isProviderEnabled(Ljava/lang/String;)Z
29277 + move-result v0
29279 + goto :goto_6
29281 + :cond_63
29282 + const/4 v0, 0x0
29284 + goto :goto_6
29286 + :cond_65
29287 + invoke-super {p0, p1}, Landroid/location/LocationManager;->isProviderEnabled(Ljava/lang/String;)Z
29289 + move-result v0
29291 + goto :goto_6
29293 + :pswitch_data_6a
29294 + .packed-switch 0x0
29295 + :pswitch_2a
29296 + :pswitch_6
29297 + :pswitch_2f
29298 + :pswitch_2f
29299 + .end packed-switch
29301 + :pswitch_data_76
29302 + .packed-switch 0x0
29303 + :pswitch_42
29304 + :pswitch_6
29305 + :pswitch_47
29306 + :pswitch_47
29307 + .end packed-switch
29308 +.end method
29310 +.method public requestLocationUpdates(JFLandroid/location/Criteria;Landroid/app/PendingIntent;)V
29311 + .registers 7
29313 + if-eqz p4, :cond_4
29315 + if-nez p5, :cond_8
29317 + :cond_4
29318 + invoke-super/range {p0 .. p5}, Landroid/location/LocationManager;->requestLocationUpdates(JFLandroid/location/Criteria;Landroid/app/PendingIntent;)V
29320 + :cond_7
29321 + :goto_7
29322 + return-void
29324 + :cond_8
29325 + const/4 v0, 0x0
29327 + invoke-direct {p0, p4, v0, p5}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Landroid/location/Criteria;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
29329 + move-result v0
29331 + if-nez v0, :cond_7
29333 + invoke-super/range {p0 .. p5}, Landroid/location/LocationManager;->requestLocationUpdates(JFLandroid/location/Criteria;Landroid/app/PendingIntent;)V
29335 + goto :goto_7
29336 +.end method
29338 +.method public requestLocationUpdates(JFLandroid/location/Criteria;Landroid/location/LocationListener;Landroid/os/Looper;)V
29339 + .registers 8
29341 + if-eqz p4, :cond_4
29343 + if-nez p5, :cond_8
29345 + :cond_4
29346 + invoke-super/range {p0 .. p6}, Landroid/location/LocationManager;->requestLocationUpdates(JFLandroid/location/Criteria;Landroid/location/LocationListener;Landroid/os/Looper;)V
29348 + :cond_7
29349 + :goto_7
29350 + return-void
29352 + :cond_8
29353 + const/4 v0, 0x0
29355 + invoke-direct {p0, p4, p5, v0}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Landroid/location/Criteria;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
29357 + move-result v0
29359 + if-nez v0, :cond_7
29361 + invoke-super/range {p0 .. p6}, Landroid/location/LocationManager;->requestLocationUpdates(JFLandroid/location/Criteria;Landroid/location/LocationListener;Landroid/os/Looper;)V
29363 + goto :goto_7
29364 +.end method
29366 +.method public requestLocationUpdates(Ljava/lang/String;JFLandroid/app/PendingIntent;)V
29367 + .registers 7
29369 + if-eqz p1, :cond_4
29371 + if-nez p5, :cond_8
29373 + :cond_4
29374 + invoke-super/range {p0 .. p5}, Landroid/location/LocationManager;->requestLocationUpdates(Ljava/lang/String;JFLandroid/app/PendingIntent;)V
29376 + :cond_7
29377 + :goto_7
29378 + return-void
29380 + :cond_8
29381 + const/4 v0, 0x0
29383 + invoke-direct {p0, p1, v0, p5}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
29385 + move-result v0
29387 + if-nez v0, :cond_7
29389 + invoke-super/range {p0 .. p5}, Landroid/location/LocationManager;->requestLocationUpdates(Ljava/lang/String;JFLandroid/app/PendingIntent;)V
29391 + goto :goto_7
29392 +.end method
29394 +.method public requestLocationUpdates(Ljava/lang/String;JFLandroid/location/LocationListener;)V
29395 + .registers 7
29397 + if-eqz p1, :cond_4
29399 + if-nez p5, :cond_8
29401 + :cond_4
29402 + invoke-super/range {p0 .. p5}, Landroid/location/LocationManager;->requestLocationUpdates(Ljava/lang/String;JFLandroid/location/LocationListener;)V
29404 + :cond_7
29405 + :goto_7
29406 + return-void
29408 + :cond_8
29409 + const/4 v0, 0x0
29411 + invoke-direct {p0, p1, p5, v0}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
29413 + move-result v0
29415 + if-nez v0, :cond_7
29417 + invoke-super/range {p0 .. p5}, Landroid/location/LocationManager;->requestLocationUpdates(Ljava/lang/String;JFLandroid/location/LocationListener;)V
29419 + goto :goto_7
29420 +.end method
29422 +.method public requestLocationUpdates(Ljava/lang/String;JFLandroid/location/LocationListener;Landroid/os/Looper;)V
29423 + .registers 8
29425 + if-eqz p1, :cond_4
29427 + if-nez p5, :cond_8
29429 + :cond_4
29430 + invoke-super/range {p0 .. p6}, Landroid/location/LocationManager;->requestLocationUpdates(Ljava/lang/String;JFLandroid/location/LocationListener;Landroid/os/Looper;)V
29432 + :cond_7
29433 + :goto_7
29434 + return-void
29436 + :cond_8
29437 + const/4 v0, 0x0
29439 + invoke-direct {p0, p1, p5, v0}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
29441 + move-result v0
29443 + if-nez v0, :cond_7
29445 + invoke-super/range {p0 .. p6}, Landroid/location/LocationManager;->requestLocationUpdates(Ljava/lang/String;JFLandroid/location/LocationListener;Landroid/os/Looper;)V
29447 + goto :goto_7
29448 +.end method
29450 +.method public requestSingleUpdate(Landroid/location/Criteria;Landroid/app/PendingIntent;)V
29451 + .registers 4
29453 + if-eqz p1, :cond_4
29455 + if-nez p2, :cond_8
29457 + :cond_4
29458 + invoke-super {p0, p1, p2}, Landroid/location/LocationManager;->requestSingleUpdate(Landroid/location/Criteria;Landroid/app/PendingIntent;)V
29460 + :cond_7
29461 + :goto_7
29462 + return-void
29464 + :cond_8
29465 + const/4 v0, 0x0
29467 + invoke-direct {p0, p1, v0, p2}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Landroid/location/Criteria;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
29469 + move-result v0
29471 + if-nez v0, :cond_7
29473 + invoke-super {p0, p1, p2}, Landroid/location/LocationManager;->requestSingleUpdate(Landroid/location/Criteria;Landroid/app/PendingIntent;)V
29475 + goto :goto_7
29476 +.end method
29478 +.method public requestSingleUpdate(Landroid/location/Criteria;Landroid/location/LocationListener;Landroid/os/Looper;)V
29479 + .registers 5
29481 + if-eqz p1, :cond_4
29483 + if-nez p2, :cond_8
29485 + :cond_4
29486 + invoke-super {p0, p1, p2, p3}, Landroid/location/LocationManager;->requestSingleUpdate(Landroid/location/Criteria;Landroid/location/LocationListener;Landroid/os/Looper;)V
29488 + :cond_7
29489 + :goto_7
29490 + return-void
29492 + :cond_8
29493 + const/4 v0, 0x0
29495 + invoke-direct {p0, p1, p2, v0}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Landroid/location/Criteria;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
29497 + move-result v0
29499 + if-nez v0, :cond_7
29501 + invoke-super {p0, p1, p2, p3}, Landroid/location/LocationManager;->requestSingleUpdate(Landroid/location/Criteria;Landroid/location/LocationListener;Landroid/os/Looper;)V
29503 + goto :goto_7
29504 +.end method
29506 +.method public requestSingleUpdate(Ljava/lang/String;Landroid/app/PendingIntent;)V
29507 + .registers 4
29509 + if-eqz p1, :cond_4
29511 + if-nez p2, :cond_8
29513 + :cond_4
29514 + invoke-super {p0, p1, p2}, Landroid/location/LocationManager;->requestSingleUpdate(Ljava/lang/String;Landroid/app/PendingIntent;)V
29516 + :cond_7
29517 + :goto_7
29518 + return-void
29520 + :cond_8
29521 + const/4 v0, 0x0
29523 + invoke-direct {p0, p1, v0, p2}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
29525 + move-result v0
29527 + if-nez v0, :cond_7
29529 + invoke-super {p0, p1, p2}, Landroid/location/LocationManager;->requestSingleUpdate(Ljava/lang/String;Landroid/app/PendingIntent;)V
29531 + goto :goto_7
29532 +.end method
29534 +.method public requestSingleUpdate(Ljava/lang/String;Landroid/location/LocationListener;Landroid/os/Looper;)V
29535 + .registers 5
29537 + if-eqz p1, :cond_4
29539 + if-nez p2, :cond_8
29541 + :cond_4
29542 + invoke-super {p0, p1, p2, p3}, Landroid/location/LocationManager;->requestSingleUpdate(Ljava/lang/String;Landroid/location/LocationListener;Landroid/os/Looper;)V
29544 + :cond_7
29545 + :goto_7
29546 + return-void
29548 + :cond_8
29549 + const/4 v0, 0x0
29551 + invoke-direct {p0, p1, p2, v0}, Landroid/privacy/surrogate/PrivacyLocationManager;->requestLocationUpdates(Ljava/lang/String;Landroid/location/LocationListener;Landroid/app/PendingIntent;)Z
29553 + move-result v0
29555 + if-nez v0, :cond_7
29557 + invoke-super {p0, p1, p2, p3}, Landroid/location/LocationManager;->requestSingleUpdate(Ljava/lang/String;Landroid/location/LocationListener;Landroid/os/Looper;)V
29559 + goto :goto_7
29560 +.end method
29561 diff -Npru stock-framework/smali/android/privacy/surrogate/PrivacyTelephonyManager.smali pdroid-framework/smali/android/privacy/surrogate/PrivacyTelephonyManager.smali
29562 --- stock-framework/smali/android/privacy/surrogate/PrivacyTelephonyManager.smali 1969-12-31 16:00:00.000000000 -0800
29563 +++ pdroid-framework/smali/android/privacy/surrogate/PrivacyTelephonyManager.smali 2013-08-10 20:37:42.511213442 -0700
29564 @@ -0,0 +1,1385 @@
29565 +.class public final Landroid/privacy/surrogate/PrivacyTelephonyManager;
29566 +.super Landroid/telephony/TelephonyManager;
29567 +.source "PrivacyTelephonyManager.java"
29570 +# static fields
29571 +.field private static final NETWORK_TYPES:[I = null
29573 +.field private static final PHONE_TYPES:[I = null
29575 +.field private static final TAG:Ljava/lang/String; = "PrivacyTelephonyManager"
29578 +# instance fields
29579 +.field private context:Landroid/content/Context;
29581 +.field private pSetMan:Landroid/privacy/PrivacySettingsManager;
29584 +# direct methods
29585 +.method static constructor <clinit>()V
29586 + .registers 1
29588 + const/4 v0, 0x4
29590 + new-array v0, v0, [I
29592 + fill-array-data v0, :array_12
29594 + sput-object v0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->PHONE_TYPES:[I
29596 + const/16 v0, 0x10
29598 + new-array v0, v0, [I
29600 + fill-array-data v0, :array_1e
29602 + sput-object v0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->NETWORK_TYPES:[I
29604 + return-void
29606 + :array_12
29607 + .array-data 0x4
29608 + 0x0t 0x0t 0x0t 0x0t
29609 + 0x1t 0x0t 0x0t 0x0t
29610 + 0x2t 0x0t 0x0t 0x0t
29611 + 0x3t 0x0t 0x0t 0x0t
29612 + .end array-data
29614 + :array_1e
29615 + .array-data 0x4
29616 + 0x0t 0x0t 0x0t 0x0t
29617 + 0x1t 0x0t 0x0t 0x0t
29618 + 0x2t 0x0t 0x0t 0x0t
29619 + 0x3t 0x0t 0x0t 0x0t
29620 + 0x4t 0x0t 0x0t 0x0t
29621 + 0x5t 0x0t 0x0t 0x0t
29622 + 0x6t 0x0t 0x0t 0x0t
29623 + 0x7t 0x0t 0x0t 0x0t
29624 + 0x8t 0x0t 0x0t 0x0t
29625 + 0x9t 0x0t 0x0t 0x0t
29626 + 0xat 0x0t 0x0t 0x0t
29627 + 0xbt 0x0t 0x0t 0x0t
29628 + 0xct 0x0t 0x0t 0x0t
29629 + 0xdt 0x0t 0x0t 0x0t
29630 + 0xet 0x0t 0x0t 0x0t
29631 + 0xft 0x0t 0x0t 0x0t
29632 + .end array-data
29633 +.end method
29635 +.method public constructor <init>(Landroid/content/Context;)V
29636 + .registers 4
29638 + invoke-direct {p0, p1}, Landroid/telephony/TelephonyManager;-><init>(Landroid/content/Context;)V
29640 + iput-object p1, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
29642 + new-instance v0, Landroid/privacy/PrivacySettingsManager;
29644 + const-string/jumbo v1, "privacy"
29646 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
29648 + move-result-object v1
29650 + invoke-static {v1}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
29652 + move-result-object v1
29654 + invoke-direct {v0, p1, v1}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
29656 + iput-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29658 + return-void
29659 +.end method
29661 +.method private getNetworkInfo()Ljava/lang/String;
29662 + .registers 8
29664 + const/4 v5, 0x0
29666 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
29668 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
29670 + move-result-object v1
29672 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
29674 + move-result v2
29676 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29678 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
29680 + move-result-object v6
29682 + if-eqz v6, :cond_25
29684 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getNetworkInfoSetting()B
29686 + move-result v0
29688 + if-eqz v0, :cond_25
29690 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29692 + const/4 v3, 0x1
29694 + const-string/jumbo v4, "networkInfoCurrent"
29696 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
29698 + const-string v5, ""
29700 + :goto_24
29701 + return-object v5
29703 + :cond_25
29704 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29706 + const/4 v3, 0x0
29708 + const-string/jumbo v4, "networkInfoCurrent"
29710 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
29712 + goto :goto_24
29713 +.end method
29715 +.method private getSimInfo()Ljava/lang/String;
29716 + .registers 8
29718 + const/4 v5, 0x0
29720 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
29722 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
29724 + move-result-object v1
29726 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
29728 + move-result v2
29730 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29732 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
29734 + move-result-object v6
29736 + if-eqz v6, :cond_25
29738 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getSimInfoSetting()B
29740 + move-result v0
29742 + if-eqz v0, :cond_25
29744 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29746 + const/4 v3, 0x1
29748 + const-string/jumbo v4, "networkInfoSIM"
29750 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
29752 + const-string v5, ""
29754 + :goto_24
29755 + return-object v5
29757 + :cond_25
29758 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29760 + const/4 v3, 0x0
29762 + const-string/jumbo v4, "networkInfoSIM"
29764 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
29766 + goto :goto_24
29767 +.end method
29770 +# virtual methods
29771 +.method public getAllCellInfo()Ljava/util/List;
29772 + .registers 6
29773 + .annotation system Ldalvik/annotation/Signature;
29774 + value = {
29775 + "()",
29776 + "Ljava/util/List",
29777 + "<",
29778 + "Landroid/telephony/CellInfo;",
29779 + ">;"
29781 + .end annotation
29783 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29785 + iget-object v3, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
29787 + invoke-virtual {v3}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
29789 + move-result-object v3
29791 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
29793 + move-result v4
29795 + invoke-virtual {v2, v3, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
29797 + move-result-object v1
29799 + const/4 v0, 0x0
29801 + if-eqz v1, :cond_1f
29803 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
29805 + move-result v2
29807 + const/4 v3, 0x1
29809 + if-ne v2, v3, :cond_20
29811 + new-instance v0, Ljava/util/ArrayList;
29813 + invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
29815 + :cond_1f
29816 + :goto_1f
29817 + return-object v0
29819 + :cond_20
29820 + invoke-virtual {v1}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
29822 + move-result v2
29824 + if-eqz v2, :cond_2c
29826 + new-instance v0, Ljava/util/ArrayList;
29828 + invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
29830 + goto :goto_1f
29832 + :cond_2c
29833 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getAllCellInfo()Ljava/util/List;
29835 + move-result-object v0
29837 + goto :goto_1f
29838 +.end method
29840 +.method public getCellLocation()Landroid/telephony/CellLocation;
29841 + .registers 10
29843 + const/4 v7, 0x0
29845 + :try_start_1
29846 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
29848 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
29850 + move-result-object v1
29852 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
29854 + move-result v2
29856 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29858 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
29860 + move-result-object v6
29862 + if-eqz v6, :cond_2c
29864 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
29866 + move-result v0
29868 + if-nez v0, :cond_1f
29870 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationGpsSetting()B
29872 + move-result v0
29874 + if-eqz v0, :cond_2c
29876 + :cond_1f
29877 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29879 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
29881 + move-result v3
29883 + const-string v4, "locationNetwork"
29885 + const/4 v5, 0x0
29887 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
29889 + :goto_2b
29890 + return-object v7
29892 + :cond_2c
29893 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29895 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
29897 + move-result v3
29899 + const-string v4, "locationNetwork"
29901 + const/4 v5, 0x0
29903 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
29905 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getCellLocation()Landroid/telephony/CellLocation;
29906 + :try_end_3b
29907 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_3b} :catch_3d
29909 + move-result-object v7
29911 + goto :goto_2b
29913 + :catch_3d
29914 + move-exception v8
29916 + goto :goto_2b
29917 +.end method
29919 +.method public getCompleteVoiceMailNumber()Ljava/lang/String;
29920 + .registers 9
29922 + :try_start_0
29923 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
29925 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
29927 + move-result-object v1
29929 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
29931 + move-result v2
29933 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29935 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
29937 + move-result-object v6
29939 + const-string v5, ""
29941 + if-eqz v6, :cond_2a
29943 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLine1NumberSetting()B
29945 + move-result v0
29947 + if-eqz v0, :cond_2a
29949 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLine1Number()Ljava/lang/String;
29951 + move-result-object v5
29953 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29955 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLine1NumberSetting()B
29957 + move-result v3
29959 + const-string v4, "line1Number"
29961 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
29963 + :goto_29
29964 + return-object v5
29966 + :cond_2a
29967 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getCompleteVoiceMailNumber()Ljava/lang/String;
29969 + move-result-object v5
29971 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
29973 + const/4 v3, 0x0
29975 + const-string v4, "line1Number"
29977 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
29978 + :try_end_36
29979 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_36} :catch_37
29981 + goto :goto_29
29983 + :catch_37
29984 + move-exception v7
29986 + const/4 v5, 0x0
29988 + goto :goto_29
29989 +.end method
29991 +.method public getDeviceId()Ljava/lang/String;
29992 + .registers 8
29994 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
29996 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
29998 + move-result-object v1
30000 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
30002 + move-result v2
30004 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30006 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
30008 + move-result-object v6
30010 + if-eqz v6, :cond_28
30012 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getDeviceIdSetting()B
30014 + move-result v0
30016 + if-eqz v0, :cond_28
30018 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getDeviceId()Ljava/lang/String;
30020 + move-result-object v5
30022 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30024 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getDeviceIdSetting()B
30026 + move-result v3
30028 + const-string v4, "deviceID"
30030 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30032 + :goto_27
30033 + return-object v5
30035 + :cond_28
30036 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getDeviceId()Ljava/lang/String;
30038 + move-result-object v5
30040 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30042 + const/4 v3, 0x0
30044 + const-string v4, "deviceID"
30046 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30048 + goto :goto_27
30049 +.end method
30051 +.method public getDeviceSoftwareVersion()Ljava/lang/String;
30052 + .registers 9
30054 + :try_start_0
30055 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30057 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30059 + move-result-object v1
30061 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
30063 + move-result v2
30065 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30067 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
30069 + move-result-object v6
30071 + const-string v5, ""
30073 + if-eqz v6, :cond_2a
30075 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getDeviceIdSetting()B
30077 + move-result v0
30079 + if-eqz v0, :cond_2a
30081 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getDeviceId()Ljava/lang/String;
30083 + move-result-object v5
30085 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30087 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getDeviceIdSetting()B
30089 + move-result v3
30091 + const-string v4, "deviceID"
30093 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30095 + :goto_29
30096 + return-object v5
30098 + :cond_2a
30099 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getDeviceSoftwareVersion()Ljava/lang/String;
30101 + move-result-object v5
30103 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30105 + const/4 v3, 0x0
30107 + const-string v4, "deviceID"
30109 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30110 + :try_end_36
30111 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_36} :catch_37
30113 + goto :goto_29
30115 + :catch_37
30116 + move-exception v7
30118 + const/4 v5, 0x0
30120 + goto :goto_29
30121 +.end method
30123 +.method public getIsimDomain()Ljava/lang/String;
30124 + .registers 2
30126 + invoke-virtual {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getNetworkOperatorName()Ljava/lang/String;
30128 + move-result-object v0
30130 + return-object v0
30131 +.end method
30133 +.method public getIsimImpi()Ljava/lang/String;
30134 + .registers 4
30136 + const-string v0, "PrivacyTelephonyManager"
30138 + new-instance v1, Ljava/lang/StringBuilder;
30140 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
30142 + const-string v2, "getIsimImpi - "
30144 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30146 + move-result-object v1
30148 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30150 + invoke-virtual {v2}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30152 + move-result-object v2
30154 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30156 + move-result-object v1
30158 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
30160 + move-result-object v1
30162 + invoke-static {v0, v1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
30164 + invoke-virtual {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getSubscriberId()Ljava/lang/String;
30166 + move-result-object v0
30168 + return-object v0
30169 +.end method
30171 +.method public getIsimImpu()[Ljava/lang/String;
30172 + .registers 10
30174 + const/4 v8, 0x0
30176 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30178 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30180 + move-result-object v1
30182 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
30184 + move-result v2
30186 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30188 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
30190 + move-result-object v6
30192 + const-string v0, "PrivacyTelephonyManager"
30194 + new-instance v3, Ljava/lang/StringBuilder;
30196 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
30198 + const-string v4, "getIsimImpu() - "
30200 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30202 + move-result-object v3
30204 + iget-object v4, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30206 + invoke-virtual {v4}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30208 + move-result-object v4
30210 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30212 + move-result-object v3
30214 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
30216 + move-result-object v3
30218 + invoke-static {v0, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
30220 + const/4 v0, 0x1
30222 + new-array v7, v0, [Ljava/lang/String;
30224 + if-eqz v6, :cond_4f
30226 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getSubscriberIdSetting()B
30228 + move-result v0
30230 + if-eqz v0, :cond_4f
30232 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getSubscriberId()Ljava/lang/String;
30234 + move-result-object v0
30236 + aput-object v0, v7, v8
30238 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30240 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getSubscriberIdSetting()B
30242 + move-result v3
30244 + const-string/jumbo v4, "subscriberID"
30246 + aget-object v5, v7, v8
30248 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30250 + :goto_4e
30251 + return-object v7
30253 + :cond_4f
30254 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getIsimImpu()[Ljava/lang/String;
30256 + move-result-object v7
30258 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30260 + const-string/jumbo v4, "subscriberID"
30262 + aget-object v5, v7, v8
30264 + move v3, v8
30266 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30268 + goto :goto_4e
30269 +.end method
30271 +.method public getLine1AlphaTag()Ljava/lang/String;
30272 + .registers 2
30274 + invoke-virtual {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getLine1Number()Ljava/lang/String;
30276 + move-result-object v0
30278 + return-object v0
30279 +.end method
30281 +.method public getLine1Number()Ljava/lang/String;
30282 + .registers 8
30284 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30286 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30288 + move-result-object v1
30290 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
30292 + move-result v2
30294 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30296 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
30298 + move-result-object v6
30300 + if-eqz v6, :cond_28
30302 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLine1NumberSetting()B
30304 + move-result v0
30306 + if-eqz v0, :cond_28
30308 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLine1Number()Ljava/lang/String;
30310 + move-result-object v5
30312 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30314 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLine1NumberSetting()B
30316 + move-result v3
30318 + const-string v4, "line1Number"
30320 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30322 + :goto_27
30323 + return-object v5
30325 + :cond_28
30326 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getLine1Number()Ljava/lang/String;
30328 + move-result-object v5
30330 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30332 + const/4 v3, 0x0
30334 + const-string v4, "line1Number"
30336 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30338 + goto :goto_27
30339 +.end method
30341 +.method public getMsisdn()Ljava/lang/String;
30342 + .registers 4
30344 + const-string v0, "PrivacyTelephonyManager"
30346 + new-instance v1, Ljava/lang/StringBuilder;
30348 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
30350 + const-string v2, "getMsisdn() - "
30352 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30354 + move-result-object v1
30356 + iget-object v2, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30358 + invoke-virtual {v2}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30360 + move-result-object v2
30362 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30364 + move-result-object v1
30366 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
30368 + move-result-object v1
30370 + invoke-static {v0, v1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
30372 + invoke-virtual {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getSubscriberId()Ljava/lang/String;
30374 + move-result-object v0
30376 + return-object v0
30377 +.end method
30379 +.method public getNeighboringCellInfo()Ljava/util/List;
30380 + .registers 10
30381 + .annotation system Ldalvik/annotation/Signature;
30382 + value = {
30383 + "()",
30384 + "Ljava/util/List",
30385 + "<",
30386 + "Landroid/telephony/NeighboringCellInfo;",
30387 + ">;"
30389 + .end annotation
30391 + iget-object v6, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30393 + iget-object v7, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30395 + invoke-virtual {v7}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30397 + move-result-object v7
30399 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
30401 + move-result v8
30403 + invoke-virtual {v6, v7, v8}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
30405 + move-result-object v5
30407 + const/4 v3, 0x0
30409 + const-string v4, "[null]"
30411 + if-eqz v5, :cond_1c
30413 + invoke-virtual {v5}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
30415 + move-result v6
30417 + const/4 v7, 0x1
30419 + if-ne v6, v7, :cond_1d
30421 + :cond_1c
30422 + :goto_1c
30423 + return-object v3
30425 + :cond_1d
30426 + invoke-virtual {v5}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
30428 + move-result v6
30430 + if-eqz v6, :cond_2b
30432 + new-instance v3, Ljava/util/ArrayList;
30434 + invoke-direct {v3}, Ljava/util/ArrayList;-><init>()V
30436 + const-string v4, "[empty list of cells]"
30438 + goto :goto_1c
30440 + :cond_2b
30441 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getNeighboringCellInfo()Ljava/util/List;
30443 + move-result-object v3
30445 + const-string v0, ""
30447 + invoke-interface {v3}, Ljava/util/List;->iterator()Ljava/util/Iterator;
30449 + move-result-object v2
30451 + :goto_35
30452 + invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z
30454 + move-result v6
30456 + if-eqz v6, :cond_5f
30458 + invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;
30460 + move-result-object v1
30462 + check-cast v1, Landroid/telephony/NeighboringCellInfo;
30464 + new-instance v6, Ljava/lang/StringBuilder;
30466 + invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
30468 + invoke-virtual {v6, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30470 + move-result-object v6
30472 + const-string v7, "\t"
30474 + invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30476 + move-result-object v6
30478 + invoke-virtual {v6, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
30480 + move-result-object v6
30482 + const-string v7, "\n"
30484 + invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30486 + move-result-object v6
30488 + invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
30490 + move-result-object v0
30492 + goto :goto_35
30494 + :cond_5f
30495 + new-instance v6, Ljava/lang/StringBuilder;
30497 + invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
30499 + const-string v7, "[real value]:\n"
30501 + invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30503 + move-result-object v6
30505 + invoke-virtual {v6, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30507 + move-result-object v6
30509 + invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
30511 + move-result-object v4
30513 + goto :goto_1c
30514 +.end method
30516 +.method public getNetworkCountryIso()Ljava/lang/String;
30517 + .registers 2
30519 + invoke-direct {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getNetworkInfo()Ljava/lang/String;
30521 + move-result-object v0
30523 + if-nez v0, :cond_a
30525 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getNetworkCountryIso()Ljava/lang/String;
30527 + move-result-object v0
30529 + :cond_a
30530 + return-object v0
30531 +.end method
30533 +.method public getNetworkOperator()Ljava/lang/String;
30534 + .registers 2
30536 + invoke-direct {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getNetworkInfo()Ljava/lang/String;
30538 + move-result-object v0
30540 + if-nez v0, :cond_a
30542 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getNetworkOperator()Ljava/lang/String;
30544 + move-result-object v0
30546 + :cond_a
30547 + return-object v0
30548 +.end method
30550 +.method public getNetworkOperatorName()Ljava/lang/String;
30551 + .registers 2
30553 + invoke-direct {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getNetworkInfo()Ljava/lang/String;
30555 + move-result-object v0
30557 + if-nez v0, :cond_a
30559 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getNetworkOperatorName()Ljava/lang/String;
30561 + move-result-object v0
30563 + :cond_a
30564 + return-object v0
30565 +.end method
30567 +.method public getNetworkType()I
30568 + .registers 7
30570 + const/4 v5, 0x0
30572 + :try_start_1
30573 + invoke-direct {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getNetworkInfo()Ljava/lang/String;
30575 + move-result-object v1
30577 + sget-object v3, Landroid/privacy/surrogate/PrivacyTelephonyManager;->NETWORK_TYPES:[I
30579 + const/4 v4, 0x0
30581 + aget v2, v3, v4
30583 + if-nez v1, :cond_10
30585 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getNetworkType()I
30586 + :try_end_f
30587 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_f} :catch_11
30589 + move-result v2
30591 + :cond_10
30592 + :goto_10
30593 + return v2
30595 + :catch_11
30596 + move-exception v0
30598 + sget-object v3, Landroid/privacy/surrogate/PrivacyTelephonyManager;->NETWORK_TYPES:[I
30600 + aget v2, v3, v5
30602 + goto :goto_10
30603 +.end method
30605 +.method public getPhoneType()I
30606 + .registers 5
30608 + invoke-direct {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getNetworkInfo()Ljava/lang/String;
30610 + move-result-object v0
30612 + sget-object v2, Landroid/privacy/surrogate/PrivacyTelephonyManager;->PHONE_TYPES:[I
30614 + const/4 v3, 0x0
30616 + aget v1, v2, v3
30618 + if-nez v0, :cond_f
30620 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getPhoneType()I
30622 + move-result v1
30624 + :cond_f
30625 + return v1
30626 +.end method
30628 +.method public getSimCountryIso()Ljava/lang/String;
30629 + .registers 2
30631 + invoke-direct {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getSimInfo()Ljava/lang/String;
30633 + move-result-object v0
30635 + if-nez v0, :cond_a
30637 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getSimCountryIso()Ljava/lang/String;
30639 + move-result-object v0
30641 + :cond_a
30642 + return-object v0
30643 +.end method
30645 +.method public getSimOperator()Ljava/lang/String;
30646 + .registers 2
30648 + invoke-direct {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getSimInfo()Ljava/lang/String;
30650 + move-result-object v0
30652 + if-nez v0, :cond_a
30654 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getSimOperator()Ljava/lang/String;
30656 + move-result-object v0
30658 + :cond_a
30659 + return-object v0
30660 +.end method
30662 +.method public getSimOperatorName()Ljava/lang/String;
30663 + .registers 2
30665 + invoke-direct {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getSimInfo()Ljava/lang/String;
30667 + move-result-object v0
30669 + if-nez v0, :cond_a
30671 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getSimOperatorName()Ljava/lang/String;
30673 + move-result-object v0
30675 + :cond_a
30676 + return-object v0
30677 +.end method
30679 +.method public getSimSerialNumber()Ljava/lang/String;
30680 + .registers 8
30682 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30684 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30686 + move-result-object v1
30688 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
30690 + move-result v2
30692 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30694 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
30696 + move-result-object v6
30698 + if-eqz v6, :cond_29
30700 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getSimSerialNumberSetting()B
30702 + move-result v0
30704 + if-eqz v0, :cond_29
30706 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getSimSerialNumber()Ljava/lang/String;
30708 + move-result-object v5
30710 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30712 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getSimSerialNumberSetting()B
30714 + move-result v3
30716 + const-string/jumbo v4, "simSerial"
30718 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30720 + :goto_28
30721 + return-object v5
30723 + :cond_29
30724 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getSimSerialNumber()Ljava/lang/String;
30726 + move-result-object v5
30728 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30730 + const/4 v3, 0x0
30732 + const-string/jumbo v4, "simSerial"
30734 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30736 + goto :goto_28
30737 +.end method
30739 +.method public getSubscriberId()Ljava/lang/String;
30740 + .registers 8
30742 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30744 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30746 + move-result-object v1
30748 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
30750 + move-result v2
30752 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30754 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
30756 + move-result-object v6
30758 + const-string v0, "PrivacyTelephonyManager"
30760 + new-instance v3, Ljava/lang/StringBuilder;
30762 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
30764 + const-string v4, "getSubscriberId() - "
30766 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30768 + move-result-object v3
30770 + iget-object v4, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30772 + invoke-virtual {v4}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30774 + move-result-object v4
30776 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
30778 + move-result-object v3
30780 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
30782 + move-result-object v3
30784 + invoke-static {v0, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
30786 + if-eqz v6, :cond_47
30788 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getSubscriberIdSetting()B
30790 + move-result v0
30792 + if-eqz v0, :cond_47
30794 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getSubscriberId()Ljava/lang/String;
30796 + move-result-object v5
30798 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30800 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getSubscriberIdSetting()B
30802 + move-result v3
30804 + const-string/jumbo v4, "subscriberID"
30806 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30808 + :goto_46
30809 + return-object v5
30811 + :cond_47
30812 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getSubscriberId()Ljava/lang/String;
30814 + move-result-object v5
30816 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30818 + const/4 v3, 0x0
30820 + const-string/jumbo v4, "subscriberID"
30822 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30824 + goto :goto_46
30825 +.end method
30827 +.method public getVoiceMailAlphaTag()Ljava/lang/String;
30828 + .registers 2
30830 + invoke-virtual {p0}, Landroid/privacy/surrogate/PrivacyTelephonyManager;->getVoiceMailNumber()Ljava/lang/String;
30832 + move-result-object v0
30834 + return-object v0
30835 +.end method
30837 +.method public getVoiceMailNumber()Ljava/lang/String;
30838 + .registers 8
30840 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30842 + invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30844 + move-result-object v1
30846 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
30848 + move-result v2
30850 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30852 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
30854 + move-result-object v6
30856 + if-eqz v6, :cond_28
30858 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLine1NumberSetting()B
30860 + move-result v0
30862 + if-eqz v0, :cond_28
30864 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLine1Number()Ljava/lang/String;
30866 + move-result-object v5
30868 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30870 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLine1NumberSetting()B
30872 + move-result v3
30874 + const-string v4, "line1Number"
30876 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30878 + :goto_27
30879 + return-object v5
30881 + :cond_28
30882 + invoke-super {p0}, Landroid/telephony/TelephonyManager;->getVoiceMailNumber()Ljava/lang/String;
30884 + move-result-object v5
30886 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30888 + const/4 v3, 0x0
30890 + const-string v4, "line1Number"
30892 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
30894 + goto :goto_27
30895 +.end method
30897 +.method public listen(Landroid/telephony/PhoneStateListener;I)V
30898 + .registers 5
30900 + and-int/lit8 v1, p2, 0x10
30902 + if-nez v1, :cond_8
30904 + and-int/lit8 v1, p2, 0x20
30906 + if-eqz v1, :cond_29
30908 + :cond_8
30909 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30911 + if-eqz v1, :cond_27
30913 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30915 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
30917 + move-result-object v0
30919 + :goto_12
30920 + if-eqz v0, :cond_1c
30922 + invoke-virtual {p1, v0}, Landroid/telephony/PhoneStateListener;->setPackageName(Ljava/lang/String;)V
30924 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyTelephonyManager;->context:Landroid/content/Context;
30926 + invoke-virtual {p1, v1}, Landroid/telephony/PhoneStateListener;->setContext(Landroid/content/Context;)V
30928 + :cond_1c
30929 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
30931 + move-result v1
30933 + invoke-virtual {p1, v1}, Landroid/telephony/PhoneStateListener;->setUid(I)V
30935 + invoke-super {p0, p1, p2}, Landroid/telephony/TelephonyManager;->listen(Landroid/telephony/PhoneStateListener;I)V
30937 + :goto_26
30938 + return-void
30940 + :cond_27
30941 + const/4 v0, 0x0
30943 + goto :goto_12
30945 + :cond_29
30946 + invoke-super {p0, p1, p2}, Landroid/telephony/TelephonyManager;->listen(Landroid/telephony/PhoneStateListener;I)V
30948 + goto :goto_26
30949 +.end method
30950 diff -Npru stock-framework/smali/android/privacy/surrogate/PrivacyWifiManager.smali pdroid-framework/smali/android/privacy/surrogate/PrivacyWifiManager.smali
30951 --- stock-framework/smali/android/privacy/surrogate/PrivacyWifiManager.smali 1969-12-31 16:00:00.000000000 -0800
30952 +++ pdroid-framework/smali/android/privacy/surrogate/PrivacyWifiManager.smali 2013-08-10 20:37:42.511213442 -0700
30953 @@ -0,0 +1,1015 @@
30954 +.class public Landroid/privacy/surrogate/PrivacyWifiManager;
30955 +.super Landroid/net/wifi/WifiManager;
30956 +.source "PrivacyWifiManager.java"
30959 +# static fields
30960 +.field private static final P_TAG:Ljava/lang/String; = "PrivacyWifiManager"
30963 +# instance fields
30964 +.field private context:Landroid/content/Context;
30966 +.field private pSetMan:Landroid/privacy/PrivacySettingsManager;
30969 +# direct methods
30970 +.method public constructor <init>(Landroid/content/Context;Landroid/net/wifi/IWifiManager;)V
30971 + .registers 5
30973 + invoke-direct {p0, p1, p2}, Landroid/net/wifi/WifiManager;-><init>(Landroid/content/Context;Landroid/net/wifi/IWifiManager;)V
30975 + iput-object p1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
30977 + new-instance v0, Landroid/privacy/PrivacySettingsManager;
30979 + const-string/jumbo v1, "privacy"
30981 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
30983 + move-result-object v1
30985 + invoke-static {v1}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
30987 + move-result-object v1
30989 + invoke-direct {v0, p1, v1}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
30991 + iput-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
30993 + return-void
30994 +.end method
30997 +# virtual methods
30998 +.method public getConfigFile()Ljava/lang/String;
30999 + .registers 9
31001 + const/4 v2, -0x1
31003 + const/4 v5, 0x0
31005 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31007 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31009 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31011 + move-result-object v1
31013 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31015 + move-result v3
31017 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31019 + move-result-object v7
31021 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31023 + if-eqz v0, :cond_31
31025 + if-eqz v7, :cond_31
31027 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
31029 + move-result v0
31031 + if-eqz v0, :cond_31
31033 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31035 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31037 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31039 + move-result-object v1
31041 + const/4 v3, 0x1
31043 + const-string/jumbo v4, "wifiInfo"
31045 + move-object v6, v5
31047 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31049 + const-string v0, ""
31051 + :goto_30
31052 + return-object v0
31054 + :cond_31
31055 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31057 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31059 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31061 + move-result-object v1
31063 + const/4 v3, 0x0
31065 + const-string/jumbo v4, "wifiInfo"
31067 + move-object v6, v5
31069 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31071 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->getConfigFile()Ljava/lang/String;
31073 + move-result-object v0
31075 + goto :goto_30
31076 +.end method
31078 +.method public getConfiguredNetworks()Ljava/util/List;
31079 + .registers 10
31080 + .annotation system Ldalvik/annotation/Signature;
31081 + value = {
31082 + "()",
31083 + "Ljava/util/List",
31084 + "<",
31085 + "Landroid/net/wifi/WifiConfiguration;",
31086 + ">;"
31088 + .end annotation
31090 + const/4 v2, -0x1
31092 + const/4 v5, 0x0
31094 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31096 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31098 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31100 + move-result-object v1
31102 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31104 + move-result v3
31106 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31108 + move-result-object v8
31110 + new-instance v7, Ljava/util/ArrayList;
31112 + invoke-direct {v7}, Ljava/util/ArrayList;-><init>()V
31114 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31116 + if-eqz v0, :cond_34
31118 + if-eqz v8, :cond_34
31120 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
31122 + move-result v0
31124 + if-eqz v0, :cond_34
31126 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31128 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31130 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31132 + move-result-object v1
31134 + const/4 v3, 0x1
31136 + const-string/jumbo v4, "wifiInfo"
31138 + move-object v6, v5
31140 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31142 + :goto_33
31143 + return-object v7
31145 + :cond_34
31146 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31148 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31150 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31152 + move-result-object v1
31154 + const/4 v3, 0x0
31156 + const-string/jumbo v4, "wifiInfo"
31158 + move-object v6, v5
31160 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31162 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->getConfiguredNetworks()Ljava/util/List;
31164 + move-result-object v7
31166 + goto :goto_33
31167 +.end method
31169 +.method public getConnectionInfo()Landroid/net/wifi/WifiInfo;
31170 + .registers 10
31172 + const/4 v3, 0x1
31174 + const/4 v2, -0x1
31176 + const/4 v5, 0x0
31178 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31180 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31182 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31184 + move-result-object v1
31186 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31188 + move-result v4
31190 + invoke-virtual {v0, v1, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31192 + move-result-object v8
31194 + new-instance v7, Landroid/net/wifi/WifiInfo;
31196 + invoke-direct {v7, v3}, Landroid/net/wifi/WifiInfo;-><init>(Z)V
31198 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31200 + if-eqz v0, :cond_34
31202 + if-eqz v8, :cond_34
31204 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
31206 + move-result v0
31208 + if-eqz v0, :cond_34
31210 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31212 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31214 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31216 + move-result-object v1
31218 + const-string/jumbo v4, "wifiInfo"
31220 + move-object v6, v5
31222 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31224 + :goto_33
31225 + return-object v7
31227 + :cond_34
31228 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31230 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31232 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31234 + move-result-object v1
31236 + const/4 v3, 0x0
31238 + const-string/jumbo v4, "wifiInfo"
31240 + move-object v6, v5
31242 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31244 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->getConnectionInfo()Landroid/net/wifi/WifiInfo;
31246 + move-result-object v7
31248 + goto :goto_33
31249 +.end method
31251 +.method public getDhcpInfo()Landroid/net/DhcpInfo;
31252 + .registers 9
31254 + const/4 v2, -0x1
31256 + const/4 v5, 0x0
31258 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31260 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31262 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31264 + move-result-object v1
31266 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31268 + move-result v3
31270 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31272 + move-result-object v7
31274 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31276 + if-eqz v0, :cond_34
31278 + if-eqz v7, :cond_34
31280 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
31282 + move-result v0
31284 + if-eqz v0, :cond_34
31286 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31288 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31290 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31292 + move-result-object v1
31294 + const/4 v3, 0x1
31296 + const-string/jumbo v4, "wifiInfo"
31298 + move-object v6, v5
31300 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31302 + new-instance v0, Landroid/net/DhcpInfo;
31304 + invoke-direct {v0}, Landroid/net/DhcpInfo;-><init>()V
31306 + :goto_33
31307 + return-object v0
31309 + :cond_34
31310 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31312 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31314 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31316 + move-result-object v1
31318 + const/4 v3, 0x0
31320 + const-string/jumbo v4, "wifiInfo"
31322 + move-object v6, v5
31324 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31326 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->getDhcpInfo()Landroid/net/DhcpInfo;
31328 + move-result-object v0
31330 + goto :goto_33
31331 +.end method
31333 +.method public getFrequencyBand()I
31334 + .registers 9
31336 + const/4 v2, -0x1
31338 + const/4 v5, 0x0
31340 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31342 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31344 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31346 + move-result-object v1
31348 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31350 + move-result v3
31352 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31354 + move-result-object v7
31356 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31358 + if-eqz v0, :cond_2f
31360 + if-eqz v7, :cond_2f
31362 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
31364 + move-result v0
31366 + if-eqz v0, :cond_2f
31368 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31370 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31372 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31374 + move-result-object v1
31376 + const/4 v3, 0x1
31378 + const-string/jumbo v4, "wifiInfo"
31380 + move-object v6, v5
31382 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31384 + :goto_2e
31385 + return v2
31387 + :cond_2f
31388 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31390 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31392 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31394 + move-result-object v1
31396 + const/4 v3, 0x0
31398 + const-string/jumbo v4, "wifiInfo"
31400 + move-object v6, v5
31402 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31404 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->getFrequencyBand()I
31406 + move-result v2
31408 + goto :goto_2e
31409 +.end method
31411 +.method public getScanResults()Ljava/util/List;
31412 + .registers 10
31413 + .annotation system Ldalvik/annotation/Signature;
31414 + value = {
31415 + "()",
31416 + "Ljava/util/List",
31417 + "<",
31418 + "Landroid/net/wifi/ScanResult;",
31419 + ">;"
31421 + .end annotation
31423 + const/4 v2, -0x1
31425 + const/4 v5, 0x0
31427 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31429 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31431 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31433 + move-result-object v1
31435 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31437 + move-result v3
31439 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31441 + move-result-object v8
31443 + new-instance v7, Ljava/util/ArrayList;
31445 + invoke-direct {v7}, Ljava/util/ArrayList;-><init>()V
31447 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31449 + if-eqz v0, :cond_34
31451 + if-eqz v8, :cond_34
31453 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
31455 + move-result v0
31457 + if-eqz v0, :cond_34
31459 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31461 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31463 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31465 + move-result-object v1
31467 + const/4 v3, 0x1
31469 + const-string/jumbo v4, "wifiInfo"
31471 + move-object v6, v5
31473 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31475 + :goto_33
31476 + return-object v7
31478 + :cond_34
31479 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31481 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31483 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31485 + move-result-object v1
31487 + const/4 v3, 0x0
31489 + const-string/jumbo v4, "wifiInfo"
31491 + move-object v6, v5
31493 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31495 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->getScanResults()Ljava/util/List;
31497 + move-result-object v7
31499 + goto :goto_33
31500 +.end method
31502 +.method public getWifiApConfiguration()Landroid/net/wifi/WifiConfiguration;
31503 + .registers 9
31505 + const/4 v2, -0x1
31507 + const/4 v5, 0x0
31509 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31511 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31513 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31515 + move-result-object v1
31517 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31519 + move-result v3
31521 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31523 + move-result-object v7
31525 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31527 + if-eqz v0, :cond_34
31529 + if-eqz v7, :cond_34
31531 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
31533 + move-result v0
31535 + if-eqz v0, :cond_34
31537 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31539 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31541 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31543 + move-result-object v1
31545 + const/4 v3, 0x1
31547 + const-string/jumbo v4, "wifiInfo"
31549 + move-object v6, v5
31551 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31553 + new-instance v0, Landroid/net/wifi/WifiConfiguration;
31555 + invoke-direct {v0}, Landroid/net/wifi/WifiConfiguration;-><init>()V
31557 + :goto_33
31558 + return-object v0
31560 + :cond_34
31561 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31563 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31565 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31567 + move-result-object v1
31569 + const/4 v3, 0x0
31571 + const-string/jumbo v4, "wifiInfo"
31573 + move-object v6, v5
31575 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31577 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->getWifiApConfiguration()Landroid/net/wifi/WifiConfiguration;
31579 + move-result-object v0
31581 + goto :goto_33
31582 +.end method
31584 +.method public getWifiState()I
31585 + .registers 9
31587 + const/4 v3, 0x1
31589 + const/4 v2, -0x1
31591 + const/4 v5, 0x0
31593 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31595 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31597 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31599 + move-result-object v1
31601 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31603 + move-result v4
31605 + invoke-virtual {v0, v1, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31607 + move-result-object v7
31609 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31611 + if-eqz v0, :cond_30
31613 + if-eqz v7, :cond_30
31615 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getForceOnlineState()B
31617 + move-result v0
31619 + if-nez v0, :cond_30
31621 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31623 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31625 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31627 + move-result-object v1
31629 + const-string/jumbo v4, "wifiInfo"
31631 + move-object v6, v5
31633 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31635 + const/4 v0, 0x3
31637 + :goto_2f
31638 + return v0
31640 + :cond_30
31641 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31643 + if-eqz v0, :cond_4d
31645 + if-eqz v7, :cond_4d
31647 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
31649 + move-result v0
31651 + if-eqz v0, :cond_4d
31653 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31655 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31657 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31659 + move-result-object v1
31661 + const-string/jumbo v4, "wifiInfo"
31663 + move-object v6, v5
31665 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31667 + const/4 v0, 0x4
31669 + goto :goto_2f
31671 + :cond_4d
31672 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31674 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31676 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31678 + move-result-object v1
31680 + const/4 v3, 0x0
31682 + const-string/jumbo v4, "wifiInfo"
31684 + move-object v6, v5
31686 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31688 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->getWifiState()I
31690 + move-result v0
31692 + goto :goto_2f
31693 +.end method
31695 +.method public isWifiEnabled()Z
31696 + .registers 10
31698 + const/4 v8, 0x0
31700 + const/4 v3, 0x1
31702 + const/4 v2, -0x1
31704 + const/4 v5, 0x0
31706 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31708 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31710 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31712 + move-result-object v1
31714 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31716 + move-result v4
31718 + invoke-virtual {v0, v1, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31720 + move-result-object v7
31722 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31724 + if-eqz v0, :cond_30
31726 + if-eqz v7, :cond_30
31728 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getForceOnlineState()B
31730 + move-result v0
31732 + if-nez v0, :cond_30
31734 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31736 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31738 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31740 + move-result-object v1
31742 + const-string/jumbo v4, "wifiInfo"
31744 + move-object v6, v5
31746 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31748 + :goto_2f
31749 + return v3
31751 + :cond_30
31752 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31754 + if-eqz v0, :cond_4d
31756 + if-eqz v7, :cond_4d
31758 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
31760 + move-result v0
31762 + if-eqz v0, :cond_4d
31764 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31766 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31768 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31770 + move-result-object v1
31772 + const-string/jumbo v4, "wifiInfo"
31774 + move-object v6, v5
31776 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31778 + move v3, v8
31780 + goto :goto_2f
31782 + :cond_4d
31783 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31785 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31787 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31789 + move-result-object v1
31791 + const-string/jumbo v4, "wifiInfo"
31793 + move v3, v8
31795 + move-object v6, v5
31797 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31799 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->isWifiEnabled()Z
31801 + move-result v3
31803 + goto :goto_2f
31804 +.end method
31806 +.method public setWifiEnabled(Z)Z
31807 + .registers 11
31809 + const/4 v8, 0x0
31811 + const/4 v2, -0x1
31813 + const/4 v5, 0x0
31815 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31817 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31819 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31821 + move-result-object v1
31823 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31825 + move-result v3
31827 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31829 + move-result-object v7
31831 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31833 + if-eqz v0, :cond_31
31835 + if-eqz v7, :cond_31
31837 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getSwitchWifiStateSetting()B
31839 + move-result v0
31841 + if-eqz v0, :cond_31
31843 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31845 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31847 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31849 + move-result-object v1
31851 + const/4 v3, 0x1
31853 + const-string/jumbo v4, "switchWifiState"
31855 + move-object v6, v5
31857 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31859 + move v0, v8
31861 + :goto_30
31862 + return v0
31864 + :cond_31
31865 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31867 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31869 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31871 + move-result-object v1
31873 + const-string/jumbo v4, "switchWifiState"
31875 + move v3, v8
31877 + move-object v6, v5
31879 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31881 + invoke-super {p0, p1}, Landroid/net/wifi/WifiManager;->setWifiEnabled(Z)Z
31883 + move-result v0
31885 + goto :goto_30
31886 +.end method
31888 +.method public startScan()Z
31889 + .registers 10
31891 + const/4 v8, 0x0
31893 + const/4 v2, -0x1
31895 + const/4 v5, 0x0
31897 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31899 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31901 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31903 + move-result-object v1
31905 + invoke-static {}, Landroid/os/Binder;->getCallingUid()I
31907 + move-result v3
31909 + invoke-virtual {v0, v1, v3}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
31911 + move-result-object v7
31913 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31915 + if-eqz v0, :cond_31
31917 + if-eqz v7, :cond_31
31919 + invoke-virtual {v7}, Landroid/privacy/PrivacySettings;->getWifiInfoSetting()B
31921 + move-result v0
31923 + if-eqz v0, :cond_31
31925 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31927 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31929 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31931 + move-result-object v1
31933 + const/4 v3, 0x1
31935 + const-string/jumbo v4, "wifiInfo"
31937 + move-object v6, v5
31939 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31941 + move v0, v8
31943 + :goto_30
31944 + return v0
31946 + :cond_31
31947 + iget-object v0, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->pSetMan:Landroid/privacy/PrivacySettingsManager;
31949 + iget-object v1, p0, Landroid/privacy/surrogate/PrivacyWifiManager;->context:Landroid/content/Context;
31951 + invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
31953 + move-result-object v1
31955 + const-string/jumbo v4, "wifiInfo"
31957 + move v3, v8
31959 + move-object v6, v5
31961 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
31963 + invoke-super {p0}, Landroid/net/wifi/WifiManager;->startScan()Z
31965 + move-result v0
31967 + goto :goto_30
31968 +.end method
31969 diff -Npru stock-framework/smali/android/provider/Settings$Secure.smali pdroid-framework/smali/android/provider/Settings$Secure.smali
31970 --- stock-framework/smali/android/provider/Settings$Secure.smali 2013-08-10 20:37:48.023213671 -0700
31971 +++ pdroid-framework/smali/android/provider/Settings$Secure.smali 2013-08-10 20:37:42.567213444 -0700
31972 @@ -199,6 +199,8 @@
31974 .field public static final PREFERRED_TTY_MODE:Ljava/lang/String; = "preferred_tty_mode"
31976 +.field private static final PRIVACY_TAG:Ljava/lang/String; = "PM,SecureSettings"
31978 .field public static final SCREENSAVER_ACTIVATE_ON_DOCK:Ljava/lang/String; = "screensaver_activate_on_dock"
31980 .field public static final SCREENSAVER_ACTIVATE_ON_SLEEP:Ljava/lang/String; = "screensaver_activate_on_sleep"
31981 @@ -410,6 +412,14 @@
31983 .field public static final WIMAX_ON:Ljava/lang/String; = "wimax_on"
31985 +.field private static context:Landroid/content/Context;
31987 +.field private static mPm:Landroid/content/pm/IPackageManager;
31989 +.field private static pSetMan:Landroid/privacy/PrivacySettingsManager;
31991 +.field private static privacyMode:Z
31993 .field private static sIsSystemProcess:Z
31995 .field private static sLockSettings:Lcom/android/internal/widget/ILockSettings;
31996 @@ -419,9 +429,11 @@
31998 # direct methods
31999 .method static constructor <clinit>()V
32000 - .registers 6
32001 + .registers 7
32003 + const/4 v6, 0x3
32005 - const/4 v5, 0x3
32006 + const/4 v5, 0x0
32008 const-string v0, "content://settings/secure"
32010 @@ -451,7 +463,7 @@
32012 new-instance v0, Ljava/util/HashSet;
32014 - invoke-direct {v0, v5}, Ljava/util/HashSet;-><init>(I)V
32015 + invoke-direct {v0, v6}, Ljava/util/HashSet;-><init>(I)V
32017 sput-object v0, Landroid/provider/Settings$Secure;->MOVED_TO_LOCK_SETTINGS:Ljava/util/HashSet;
32019 @@ -1157,15 +1169,15 @@
32021 invoke-virtual {v0, v1}, Ljava/util/HashSet;->add(Ljava/lang/Object;)Z
32023 + sput-boolean v5, Landroid/provider/Settings$Secure;->privacyMode:Z
32025 const/16 v0, 0x20
32027 new-array v0, v0, [Ljava/lang/String;
32029 - const/4 v1, 0x0
32031 - const-string v2, "bugreport_in_power_menu"
32032 + const-string v1, "bugreport_in_power_menu"
32034 - aput-object v2, v0, v1
32035 + aput-object v1, v0, v5
32037 const/4 v1, 0x1
32039 @@ -1181,7 +1193,7 @@
32041 const-string/jumbo v1, "parental_control_redirect_url"
32043 - aput-object v1, v0, v5
32044 + aput-object v1, v0, v6
32046 const/4 v1, 0x4
32048 @@ -1668,6 +1680,70 @@
32049 return-void
32050 .end method
32052 +.method private static getPackageName()[Ljava/lang/String;
32053 + .registers 5
32055 + :try_start_0
32056 + sget-object v3, Landroid/provider/Settings$Secure;->mPm:Landroid/content/pm/IPackageManager;
32058 + if-eqz v3, :cond_f
32060 + invoke-static {}, Landroid/os/Process;->myUid()I
32062 + move-result v2
32064 + sget-object v3, Landroid/provider/Settings$Secure;->mPm:Landroid/content/pm/IPackageManager;
32066 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
32068 + move-result-object v1
32070 + :goto_e
32071 + return-object v1
32073 + :cond_f
32074 + const-string/jumbo v3, "package"
32076 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
32078 + move-result-object v3
32080 + invoke-static {v3}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
32082 + move-result-object v3
32084 + sput-object v3, Landroid/provider/Settings$Secure;->mPm:Landroid/content/pm/IPackageManager;
32086 + invoke-static {}, Landroid/os/Process;->myUid()I
32088 + move-result v2
32090 + sget-object v3, Landroid/provider/Settings$Secure;->mPm:Landroid/content/pm/IPackageManager;
32092 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
32093 + :try_end_25
32094 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_25} :catch_27
32096 + move-result-object v1
32098 + goto :goto_e
32100 + :catch_27
32101 + move-exception v0
32103 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
32105 + const-string v3, "PM,SecureSettings"
32107 + const-string/jumbo v4, "something went wrong with getting package name"
32109 + invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
32111 + const/4 v1, 0x0
32113 + goto :goto_e
32114 +.end method
32116 .method public static getString(Landroid/content/ContentResolver;Ljava/lang/String;)Ljava/lang/String;
32117 .registers 3
32119 @@ -1683,152 +1759,392 @@
32120 .end method
32122 .method public static getStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)Ljava/lang/String;
32123 - .registers 6
32124 + .registers 23
32126 - sget-object v0, Landroid/provider/Settings$Secure;->MOVED_TO_GLOBAL:Ljava/util/HashSet;
32127 + sget-object v3, Landroid/provider/Settings$Secure;->MOVED_TO_GLOBAL:Ljava/util/HashSet;
32129 - invoke-virtual {v0, p1}, Ljava/util/HashSet;->contains(Ljava/lang/Object;)Z
32130 + move-object/from16 v0, p1
32132 - move-result v0
32133 + invoke-virtual {v3, v0}, Ljava/util/HashSet;->contains(Ljava/lang/Object;)Z
32135 - if-eqz v0, :cond_31
32136 + move-result v3
32138 - const-string v0, "Settings"
32139 + if-eqz v3, :cond_35
32141 - new-instance v1, Ljava/lang/StringBuilder;
32142 + const-string v3, "Settings"
32144 - invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
32145 + new-instance v4, Ljava/lang/StringBuilder;
32147 - const-string v2, "Setting "
32148 + invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
32150 - invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
32151 + const-string v5, "Setting "
32153 - move-result-object v1
32154 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
32156 - invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
32157 + move-result-object v4
32159 - move-result-object v1
32160 + move-object/from16 v0, p1
32162 - const-string v2, " has moved from android.provider.Settings.Secure"
32163 + invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
32165 - invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
32166 + move-result-object v4
32168 - move-result-object v1
32169 + const-string v5, " has moved from android.provider.Settings.Secure"
32171 - const-string v2, " to android.provider.Settings.Global."
32172 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
32174 - invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
32175 + move-result-object v4
32177 - move-result-object v1
32178 + const-string v5, " to android.provider.Settings.Global."
32180 - invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
32181 + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
32183 - move-result-object v1
32184 + move-result-object v4
32186 - invoke-static {v0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
32187 + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
32189 - invoke-static {p0, p1, p2}, Landroid/provider/Settings$Global;->getStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)Ljava/lang/String;
32190 + move-result-object v4
32192 - move-result-object v0
32193 + invoke-static {v3, v4}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
32195 - :goto_30
32196 - return-object v0
32197 + invoke-static/range {p0 .. p2}, Landroid/provider/Settings$Global;->getStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)Ljava/lang/String;
32199 - :cond_31
32200 - sget-object v0, Landroid/provider/Settings$Secure;->MOVED_TO_LOCK_SETTINGS:Ljava/util/HashSet;
32201 + move-result-object v8
32203 - invoke-virtual {v0, p1}, Ljava/util/HashSet;->contains(Ljava/lang/Object;)Z
32204 + :goto_34
32205 + return-object v8
32207 - move-result v0
32208 + :cond_35
32209 + sget-object v3, Landroid/provider/Settings$Secure;->MOVED_TO_LOCK_SETTINGS:Ljava/util/HashSet;
32211 - if-eqz v0, :cond_6f
32212 + move-object/from16 v0, p1
32214 - const-class v1, Landroid/provider/Settings$Secure;
32215 + invoke-virtual {v3, v0}, Ljava/util/HashSet;->contains(Ljava/lang/Object;)Z
32217 - monitor-enter v1
32218 + move-result v3
32220 - :try_start_3c
32221 - sget-object v0, Landroid/provider/Settings$Secure;->sLockSettings:Lcom/android/internal/widget/ILockSettings;
32222 + if-eqz v3, :cond_79
32224 - if-nez v0, :cond_57
32225 + const-class v4, Landroid/provider/Settings$Secure;
32227 - const-string v0, "lock_settings"
32228 + monitor-enter v4
32230 - invoke-static {v0}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
32231 + :try_start_42
32232 + sget-object v3, Landroid/provider/Settings$Secure;->sLockSettings:Lcom/android/internal/widget/ILockSettings;
32234 - move-result-object v0
32235 + if-nez v3, :cond_5d
32237 - invoke-static {v0}, Lcom/android/internal/widget/ILockSettings$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/widget/ILockSettings;
32238 + const-string v3, "lock_settings"
32240 - move-result-object v0
32241 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
32243 - sput-object v0, Landroid/provider/Settings$Secure;->sLockSettings:Lcom/android/internal/widget/ILockSettings;
32244 + move-result-object v3
32246 + invoke-static {v3}, Lcom/android/internal/widget/ILockSettings$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/widget/ILockSettings;
32248 + move-result-object v3
32250 + sput-object v3, Landroid/provider/Settings$Secure;->sLockSettings:Lcom/android/internal/widget/ILockSettings;
32252 invoke-static {}, Landroid/os/Process;->myUid()I
32254 - move-result v0
32255 + move-result v3
32257 - const/16 v2, 0x3e8
32258 + const/16 v5, 0x3e8
32260 - if-ne v0, v2, :cond_69
32261 + if-ne v3, v5, :cond_73
32263 - const/4 v0, 0x1
32264 + const/4 v3, 0x1
32266 - :goto_55
32267 - sput-boolean v0, Landroid/provider/Settings$Secure;->sIsSystemProcess:Z
32268 + :goto_5b
32269 + sput-boolean v3, Landroid/provider/Settings$Secure;->sIsSystemProcess:Z
32271 - :cond_57
32272 - monitor-exit v1
32273 - :try_end_58
32274 - .catchall {:try_start_3c .. :try_end_58} :catchall_6b
32275 + :cond_5d
32276 + monitor-exit v4
32277 + :try_end_5e
32278 + .catchall {:try_start_42 .. :try_end_5e} :catchall_75
32280 - sget-object v0, Landroid/provider/Settings$Secure;->sLockSettings:Lcom/android/internal/widget/ILockSettings;
32281 + sget-object v3, Landroid/provider/Settings$Secure;->sLockSettings:Lcom/android/internal/widget/ILockSettings;
32283 - if-eqz v0, :cond_6f
32284 + if-eqz v3, :cond_79
32286 - sget-boolean v0, Landroid/provider/Settings$Secure;->sIsSystemProcess:Z
32287 + sget-boolean v3, Landroid/provider/Settings$Secure;->sIsSystemProcess:Z
32289 - if-nez v0, :cond_6f
32290 + if-nez v3, :cond_79
32292 - :try_start_60
32293 - sget-object v0, Landroid/provider/Settings$Secure;->sLockSettings:Lcom/android/internal/widget/ILockSettings;
32294 + :try_start_66
32295 + sget-object v3, Landroid/provider/Settings$Secure;->sLockSettings:Lcom/android/internal/widget/ILockSettings;
32297 - const-string v1, "0"
32298 + const-string v4, "0"
32300 - invoke-interface {v0, p1, v1, p2}, Lcom/android/internal/widget/ILockSettings;->getString(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;
32301 - :try_end_67
32302 - .catch Landroid/os/RemoteException; {:try_start_60 .. :try_end_67} :catch_6e
32303 + move-object/from16 v0, p1
32305 - move-result-object v0
32306 + move/from16 v1, p2
32308 - goto :goto_30
32309 + invoke-interface {v3, v0, v4, v1}, Lcom/android/internal/widget/ILockSettings;->getString(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;
32310 + :try_end_71
32311 + .catch Landroid/os/RemoteException; {:try_start_66 .. :try_end_71} :catch_78
32313 - :cond_69
32314 - const/4 v0, 0x0
32315 + move-result-object v8
32317 - goto :goto_55
32318 + goto :goto_34
32320 - :catchall_6b
32321 - move-exception v0
32322 + :cond_73
32323 + const/4 v3, 0x0
32325 - :try_start_6c
32326 - monitor-exit v1
32327 - :try_end_6d
32328 - .catchall {:try_start_6c .. :try_end_6d} :catchall_6b
32329 + goto :goto_5b
32331 - throw v0
32332 + :catchall_75
32333 + move-exception v3
32335 - :catch_6e
32336 - move-exception v0
32337 + :try_start_76
32338 + monitor-exit v4
32339 + :try_end_77
32340 + .catchall {:try_start_76 .. :try_end_77} :catchall_75
32342 - :cond_6f
32343 - sget-object v0, Landroid/provider/Settings$Secure;->sNameValueCache:Landroid/provider/Settings$NameValueCache;
32344 + throw v3
32346 - invoke-virtual {v0, p0, p1, p2}, Landroid/provider/Settings$NameValueCache;->getStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)Ljava/lang/String;
32347 + :catch_78
32348 + move-exception v3
32350 - move-result-object v0
32351 + :cond_79
32352 + const-string v3, "android_id"
32354 + move-object/from16 v0, p1
32356 + invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
32358 + move-result v3
32360 + if-eqz v3, :cond_f7
32362 + invoke-static {}, Landroid/provider/Settings$Secure;->initiate()V
32364 + :try_start_86
32365 + sget-object v3, Landroid/provider/Settings$Secure;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32367 + if-nez v3, :cond_9e
32369 + new-instance v3, Landroid/privacy/PrivacySettingsManager;
32371 + sget-object v4, Landroid/provider/Settings$Secure;->context:Landroid/content/Context;
32373 + const-string/jumbo v5, "privacy"
32375 + invoke-static {v5}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
32377 + move-result-object v5
32379 + invoke-static {v5}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
32381 + move-result-object v5
32383 + invoke-direct {v3, v4, v5}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
32385 + sput-object v3, Landroid/provider/Settings$Secure;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32387 + :cond_9e
32388 + sget-object v3, Landroid/provider/Settings$Secure;->mPm:Landroid/content/pm/IPackageManager;
32390 + if-nez v3, :cond_af
32392 + const-string/jumbo v3, "package"
32394 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
32396 + move-result-object v3
32398 + invoke-static {v3}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
32400 + move-result-object v3
32402 + sput-object v3, Landroid/provider/Settings$Secure;->mPm:Landroid/content/pm/IPackageManager;
32404 + :cond_af
32405 + const/16 v19, 0x0
32407 + invoke-static {}, Landroid/provider/Settings$Secure;->getPackageName()[Ljava/lang/String;
32409 + move-result-object v18
32411 + if-eqz v18, :cond_13c
32413 + move-object/from16 v0, v18
32415 + array-length v3, v0
32417 + if-lez v3, :cond_13c
32419 - goto :goto_30
32420 + const/16 v17, 0x0
32422 + :goto_be
32423 + move-object/from16 v0, v18
32425 + array-length v3, v0
32427 + move/from16 v0, v17
32429 + if-ge v0, v3, :cond_f7
32431 + sget-object v3, Landroid/provider/Settings$Secure;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32433 + aget-object v4, v18, v17
32435 + invoke-virtual {v3, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;)Landroid/privacy/PrivacySettings;
32437 + move-result-object v19
32439 + if-eqz v19, :cond_11c
32441 + invoke-virtual/range {v19 .. v19}, Landroid/privacy/PrivacySettings;->getAndroidIdSetting()B
32443 + move-result v3
32445 + if-eqz v3, :cond_11c
32447 + invoke-virtual/range {v19 .. v19}, Landroid/privacy/PrivacySettings;->getAndroidID()Ljava/lang/String;
32449 + move-result-object v8
32451 + if-eqz v8, :cond_105
32453 + sget-object v3, Landroid/provider/Settings$Secure;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32455 + aget-object v4, v18, v17
32457 + const/4 v5, 0x0
32459 + invoke-virtual/range {v19 .. v19}, Landroid/privacy/PrivacySettings;->getAndroidIdSetting()B
32461 + move-result v6
32463 + const-string v7, "android_id"
32465 + const/4 v9, 0x0
32467 + invoke-virtual/range {v3 .. v9}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
32468 + :try_end_ea
32469 + .catch Ljava/lang/Exception; {:try_start_86 .. :try_end_ea} :catch_ec
32471 + goto/16 :goto_34
32473 + :catch_ec
32474 + move-exception v16
32476 + invoke-virtual/range {v16 .. v16}, Ljava/lang/Exception;->printStackTrace()V
32478 + const-string v3, "PM,SecureSettings"
32480 + const-string v4, "Got exception in getString()"
32482 + invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
32484 + :cond_f7
32485 + :goto_f7
32486 + sget-object v3, Landroid/provider/Settings$Secure;->sNameValueCache:Landroid/provider/Settings$NameValueCache;
32488 + move-object/from16 v0, p0
32490 + move-object/from16 v1, p1
32492 + move/from16 v2, p2
32494 + invoke-virtual {v3, v0, v1, v2}, Landroid/provider/Settings$NameValueCache;->getStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)Ljava/lang/String;
32496 + move-result-object v8
32498 + goto/16 :goto_34
32500 + :cond_105
32501 + :try_start_105
32502 + sget-object v9, Landroid/provider/Settings$Secure;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32504 + aget-object v10, v18, v17
32506 + const/4 v11, 0x0
32508 + invoke-virtual/range {v19 .. v19}, Landroid/privacy/PrivacySettings;->getAndroidIdSetting()B
32510 + move-result v12
32512 + const-string v13, "android_id"
32514 + const-string/jumbo v14, "q4a5w896ay21dr46"
32516 + const/4 v15, 0x0
32518 + invoke-virtual/range {v9 .. v15}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
32520 + const-string/jumbo v8, "q4a5w896ay21dr46"
32522 + goto/16 :goto_34
32524 + :cond_11c
32525 + move-object/from16 v0, v18
32527 + array-length v3, v0
32529 + add-int/lit8 v3, v3, -0x1
32531 + move/from16 v0, v17
32533 + if-ne v0, v3, :cond_137
32535 + sget-object v9, Landroid/provider/Settings$Secure;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32537 + move-object/from16 v0, v18
32539 + array-length v3, v0
32541 + add-int/lit8 v3, v3, -0x1
32543 + aget-object v10, v18, v3
32545 + const/4 v11, 0x0
32547 + const/4 v12, 0x0
32549 + const-string v13, "android_id"
32551 + const/4 v14, 0x0
32553 + const/4 v15, 0x0
32555 + invoke-virtual/range {v9 .. v15}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
32557 + :cond_137
32558 + const/16 v19, 0x0
32560 + add-int/lit8 v17, v17, 0x1
32562 + goto :goto_be
32564 + :cond_13c
32565 + sget-object v9, Landroid/provider/Settings$Secure;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32567 + move-object/from16 v0, v18
32569 + array-length v3, v0
32571 + add-int/lit8 v3, v3, -0x1
32573 + aget-object v10, v18, v3
32575 + const/4 v11, 0x0
32577 + const/4 v12, 0x0
32579 + const-string v13, "android_id"
32581 + const/4 v14, 0x0
32583 + const/4 v15, 0x0
32585 + invoke-virtual/range {v9 .. v15}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
32586 + :try_end_14e
32587 + .catch Ljava/lang/Exception; {:try_start_105 .. :try_end_14e} :catch_ec
32589 + goto :goto_f7
32590 .end method
32592 .method public static getUriFor(Ljava/lang/String;)Landroid/net/Uri;
32593 @@ -1895,6 +2211,71 @@
32594 goto :goto_32
32595 .end method
32597 +.method private static initiate()V
32598 + .registers 4
32600 + const/4 v1, 0x0
32602 + :try_start_1
32603 + sput-object v1, Landroid/provider/Settings$Secure;->context:Landroid/content/Context;
32605 + new-instance v1, Landroid/privacy/PrivacySettingsManager;
32607 + sget-object v2, Landroid/provider/Settings$Secure;->context:Landroid/content/Context;
32609 + const-string/jumbo v3, "privacy"
32611 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
32613 + move-result-object v3
32615 + invoke-static {v3}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
32617 + move-result-object v3
32619 + invoke-direct {v1, v2, v3}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
32621 + sput-object v1, Landroid/provider/Settings$Secure;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32623 + const-string/jumbo v1, "package"
32625 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
32627 + move-result-object v1
32629 + invoke-static {v1}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
32631 + move-result-object v1
32633 + sput-object v1, Landroid/provider/Settings$Secure;->mPm:Landroid/content/pm/IPackageManager;
32635 + const/4 v1, 0x1
32637 + sput-boolean v1, Landroid/provider/Settings$Secure;->privacyMode:Z
32638 + :try_end_27
32639 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_27} :catch_28
32641 + :goto_27
32642 + return-void
32644 + :catch_28
32645 + move-exception v0
32647 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
32649 + const-string v1, "PM,SecureSettings"
32651 + const-string v2, "Something went wrong with initalize variables"
32653 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
32655 + const/4 v1, 0x0
32657 + sput-boolean v1, Landroid/provider/Settings$Secure;->privacyMode:Z
32659 + goto :goto_27
32660 +.end method
32662 .method public static final isLocationProviderEnabled(Landroid/content/ContentResolver;Ljava/lang/String;)Z
32663 .registers 3
32665 diff -Npru stock-framework/smali/android/speech/srec/MicrophoneInputStream.smali pdroid-framework/smali/android/speech/srec/MicrophoneInputStream.smali
32666 --- stock-framework/smali/android/speech/srec/MicrophoneInputStream.smali 2013-08-10 20:37:48.127213675 -0700
32667 +++ pdroid-framework/smali/android/speech/srec/MicrophoneInputStream.smali 2013-08-10 20:37:42.635213447 -0700
32668 @@ -4,14 +4,30 @@
32671 # static fields
32672 +.field private static final GOT_ERROR:I = -0x3
32674 +.field private static final IS_ALLOWED:I = -0x1
32676 +.field private static final IS_NOT_ALLOWED:I = -0x2
32678 +.field private static final PRIVACY_TAG:Ljava/lang/String; = "PM,MicrophoneInputStream"
32680 .field private static final TAG:Ljava/lang/String; = "MicrophoneInputStream"
32683 # instance fields
32684 +.field private context:Landroid/content/Context;
32686 .field private mAudioRecord:I
32688 .field private mOneByte:[B
32690 +.field private mPm:Landroid/content/pm/IPackageManager;
32692 +.field private pSetMan:Landroid/privacy/PrivacySettingsManager;
32694 +.field private privacyMode:Z
32697 # direct methods
32698 .method static constructor <clinit>()V
32699 @@ -25,79 +41,167 @@
32700 .end method
32702 .method public constructor <init>(II)V
32703 - .registers 7
32704 + .registers 14
32705 .annotation system Ldalvik/annotation/Throws;
32706 value = {
32707 Ljava/io/IOException;
32709 .end annotation
32711 + const/4 v5, 0x0
32713 + const/4 v3, 0x1
32715 + const/4 v2, 0x0
32717 invoke-direct {p0}, Ljava/io/InputStream;-><init>()V
32719 - const/4 v1, 0x0
32720 + iput-boolean v2, p0, Landroid/speech/srec/MicrophoneInputStream;->privacyMode:Z
32722 - iput v1, p0, Landroid/speech/srec/MicrophoneInputStream;->mAudioRecord:I
32723 + iput v2, p0, Landroid/speech/srec/MicrophoneInputStream;->mAudioRecord:I
32725 - const/4 v1, 0x1
32726 + new-array v0, v3, [B
32728 - new-array v1, v1, [B
32729 + iput-object v0, p0, Landroid/speech/srec/MicrophoneInputStream;->mOneByte:[B
32731 - iput-object v1, p0, Landroid/speech/srec/MicrophoneInputStream;->mOneByte:[B
32732 + iget-boolean v0, p0, Landroid/speech/srec/MicrophoneInputStream;->privacyMode:Z
32734 - invoke-static {p1, p2}, Landroid/speech/srec/MicrophoneInputStream;->AudioRecordNew(II)I
32735 + if-nez v0, :cond_15
32737 + invoke-direct {p0}, Landroid/speech/srec/MicrophoneInputStream;->initiate()V
32739 + :cond_15
32740 + invoke-direct {p0}, Landroid/speech/srec/MicrophoneInputStream;->checkIfPackagesAllowed()I
32742 + move-result v0
32744 + const/4 v1, -0x2
32746 + if-ne v0, v1, :cond_43
32748 + invoke-direct {p0, v2}, Landroid/speech/srec/MicrophoneInputStream;->dataAccess(Z)V
32750 + invoke-direct {p0}, Landroid/speech/srec/MicrophoneInputStream;->getPackageName()[Ljava/lang/String;
32752 + move-result-object v7
32754 + if-eqz v7, :cond_3b
32756 + iget-object v0, p0, Landroid/speech/srec/MicrophoneInputStream;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32758 + aget-object v1, v7, v2
32760 + const-string/jumbo v4, "recordAudio"
32762 - move-result v1
32763 + iget-object v6, p0, Landroid/speech/srec/MicrophoneInputStream;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32765 - iput v1, p0, Landroid/speech/srec/MicrophoneInputStream;->mAudioRecord:I
32766 + aget-object v9, v7, v2
32768 - iget v1, p0, Landroid/speech/srec/MicrophoneInputStream;->mAudioRecord:I
32769 + invoke-static {}, Landroid/os/Process;->myUid()I
32771 - if-nez v1, :cond_1d
32772 + move-result v10
32774 - new-instance v1, Ljava/io/IOException;
32775 + invoke-virtual {v6, v9, v10}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
32777 - const-string v2, "AudioRecord constructor failed - busy?"
32778 + move-result-object v6
32780 - invoke-direct {v1, v2}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
32781 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
32783 - throw v1
32784 + :cond_3b
32785 + new-instance v0, Ljava/io/IOException;
32787 - :cond_1d
32788 - iget v1, p0, Landroid/speech/srec/MicrophoneInputStream;->mAudioRecord:I
32789 + const-string v1, "AudioRecord constructor failed - busy?"
32791 - invoke-static {v1}, Landroid/speech/srec/MicrophoneInputStream;->AudioRecordStart(I)I
32792 + invoke-direct {v0, v1}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
32794 + throw v0
32796 + :cond_43
32797 + invoke-direct {p0, v3}, Landroid/speech/srec/MicrophoneInputStream;->dataAccess(Z)V
32799 + invoke-direct {p0}, Landroid/speech/srec/MicrophoneInputStream;->getPackageName()[Ljava/lang/String;
32801 + move-result-object v7
32803 + if-eqz v7, :cond_63
32805 + iget-object v0, p0, Landroid/speech/srec/MicrophoneInputStream;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32807 + aget-object v1, v7, v2
32809 + const-string/jumbo v4, "recordAudio"
32811 + iget-object v3, p0, Landroid/speech/srec/MicrophoneInputStream;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32813 + aget-object v6, v7, v2
32815 + invoke-static {}, Landroid/os/Process;->myUid()I
32817 + move-result v9
32819 + invoke-virtual {v3, v6, v9}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
32821 + move-result-object v6
32823 + move v3, v2
32825 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
32827 + :cond_63
32828 + invoke-static {p1, p2}, Landroid/speech/srec/MicrophoneInputStream;->AudioRecordNew(II)I
32830 move-result v0
32832 - if-eqz v0, :cond_41
32833 + iput v0, p0, Landroid/speech/srec/MicrophoneInputStream;->mAudioRecord:I
32835 + iget v0, p0, Landroid/speech/srec/MicrophoneInputStream;->mAudioRecord:I
32837 + if-nez v0, :cond_75
32839 + new-instance v0, Ljava/io/IOException;
32841 + const-string v1, "AudioRecord constructor failed - busy?"
32843 + invoke-direct {v0, v1}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
32845 + throw v0
32847 + :cond_75
32848 + iget v0, p0, Landroid/speech/srec/MicrophoneInputStream;->mAudioRecord:I
32850 + invoke-static {v0}, Landroid/speech/srec/MicrophoneInputStream;->AudioRecordStart(I)I
32852 + move-result v8
32854 + if-eqz v8, :cond_99
32856 invoke-virtual {p0}, Landroid/speech/srec/MicrophoneInputStream;->close()V
32858 - new-instance v1, Ljava/io/IOException;
32859 + new-instance v0, Ljava/io/IOException;
32861 - new-instance v2, Ljava/lang/StringBuilder;
32862 + new-instance v1, Ljava/lang/StringBuilder;
32864 - invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
32865 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
32867 - const-string v3, "AudioRecord start failed: "
32868 + const-string v2, "AudioRecord start failed: "
32870 - invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
32871 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
32873 - move-result-object v2
32874 + move-result-object v1
32876 - invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
32877 + invoke-virtual {v1, v8}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
32879 - move-result-object v2
32880 + move-result-object v1
32882 - invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
32883 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
32885 - move-result-object v2
32886 + move-result-object v1
32888 - invoke-direct {v1, v2}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
32889 + invoke-direct {v0, v1}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
32891 - throw v1
32892 + throw v0
32894 - :cond_41
32895 + :cond_99
32896 return-void
32897 .end method
32899 @@ -131,6 +235,334 @@
32900 .end annotation
32901 .end method
32903 +.method private checkIfPackagesAllowed()I
32904 + .registers 9
32906 + const/4 v5, -0x3
32908 + :try_start_1
32909 + iget-object v6, p0, Landroid/speech/srec/MicrophoneInputStream;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32911 + if-eqz v6, :cond_41
32913 + const/4 v2, 0x0
32915 + invoke-direct {p0}, Landroid/speech/srec/MicrophoneInputStream;->getPackageName()[Ljava/lang/String;
32917 + move-result-object v3
32919 + invoke-static {}, Landroid/os/Process;->myUid()I
32921 + move-result v4
32923 + if-eqz v3, :cond_2c
32925 + const/4 v1, 0x0
32927 + :goto_11
32928 + array-length v6, v3
32930 + if-ge v1, v6, :cond_2a
32932 + iget-object v6, p0, Landroid/speech/srec/MicrophoneInputStream;->pSetMan:Landroid/privacy/PrivacySettingsManager;
32934 + aget-object v7, v3, v1
32936 + invoke-virtual {v6, v7, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
32938 + move-result-object v2
32940 + if-eqz v2, :cond_26
32942 + invoke-virtual {v2}, Landroid/privacy/PrivacySettings;->getRecordAudioSetting()B
32944 + move-result v6
32946 + if-eqz v6, :cond_26
32948 + const/4 v5, -0x2
32950 + :goto_25
32951 + return v5
32953 + :cond_26
32954 + const/4 v2, 0x0
32956 + add-int/lit8 v1, v1, 0x1
32958 + goto :goto_11
32960 + :cond_2a
32961 + const/4 v5, -0x1
32963 + goto :goto_25
32965 + :cond_2c
32966 + const-string v6, "PM,MicrophoneInputStream"
32968 + const-string/jumbo v7, "return GOT_ERROR, because package_names are NULL"
32970 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
32971 + :try_end_34
32972 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_34} :catch_35
32974 + goto :goto_25
32976 + :catch_35
32977 + move-exception v0
32979 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
32981 + const-string v6, "PM,MicrophoneInputStream"
32983 + const-string v7, "Got exception in checkIfPackagesAllowed"
32985 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
32987 + goto :goto_25
32989 + :cond_41
32990 + :try_start_41
32991 + const-string v6, "PM,MicrophoneInputStream"
32993 + const-string/jumbo v7, "return GOT_ERROR, because pSetMan is NULL"
32995 + invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
32996 + :try_end_49
32997 + .catch Ljava/lang/Exception; {:try_start_41 .. :try_end_49} :catch_35
32999 + goto :goto_25
33000 +.end method
33002 +.method private dataAccess(Z)V
33003 + .registers 7
33005 + invoke-direct {p0}, Landroid/speech/srec/MicrophoneInputStream;->getPackageName()[Ljava/lang/String;
33007 + move-result-object v1
33009 + if-eqz p1, :cond_2f
33011 + if-eqz v1, :cond_2f
33013 + const/4 v0, 0x0
33015 + :goto_9
33016 + array-length v2, v1
33018 + if-ge v0, v2, :cond_58
33020 + const-string v2, "PM,MicrophoneInputStream"
33022 + new-instance v3, Ljava/lang/StringBuilder;
33024 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
33026 + const-string v4, "Allowed Package: -"
33028 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
33030 + move-result-object v3
33032 + aget-object v4, v1, v0
33034 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
33036 + move-result-object v3
33038 + const-string v4, "- accessing microphone."
33040 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
33042 + move-result-object v3
33044 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
33046 + move-result-object v3
33048 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
33050 + add-int/lit8 v0, v0, 0x1
33052 + goto :goto_9
33054 + :cond_2f
33055 + if-eqz v1, :cond_58
33057 + const/4 v0, 0x0
33059 + :goto_32
33060 + array-length v2, v1
33062 + if-ge v0, v2, :cond_58
33064 + const-string v2, "PM,MicrophoneInputStream"
33066 + new-instance v3, Ljava/lang/StringBuilder;
33068 + invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
33070 + const-string v4, "Blocked Package: -"
33072 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
33074 + move-result-object v3
33076 + aget-object v4, v1, v0
33078 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
33080 + move-result-object v3
33082 + const-string v4, "- accessing microphone."
33084 + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
33086 + move-result-object v3
33088 + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
33090 + move-result-object v3
33092 + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
33094 + add-int/lit8 v0, v0, 0x1
33096 + goto :goto_32
33098 + :cond_58
33099 + return-void
33100 +.end method
33102 +.method private getPackageName()[Ljava/lang/String;
33103 + .registers 6
33105 + :try_start_0
33106 + iget-object v3, p0, Landroid/speech/srec/MicrophoneInputStream;->mPm:Landroid/content/pm/IPackageManager;
33108 + if-eqz v3, :cond_f
33110 + invoke-static {}, Landroid/os/Process;->myUid()I
33112 + move-result v2
33114 + iget-object v3, p0, Landroid/speech/srec/MicrophoneInputStream;->mPm:Landroid/content/pm/IPackageManager;
33116 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
33118 + move-result-object v1
33120 + :goto_e
33121 + return-object v1
33123 + :cond_f
33124 + const-string/jumbo v3, "package"
33126 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
33128 + move-result-object v3
33130 + invoke-static {v3}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
33132 + move-result-object v3
33134 + iput-object v3, p0, Landroid/speech/srec/MicrophoneInputStream;->mPm:Landroid/content/pm/IPackageManager;
33136 + invoke-static {}, Landroid/os/Process;->myUid()I
33138 + move-result v2
33140 + iget-object v3, p0, Landroid/speech/srec/MicrophoneInputStream;->mPm:Landroid/content/pm/IPackageManager;
33142 + invoke-interface {v3, v2}, Landroid/content/pm/IPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
33143 + :try_end_25
33144 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_25} :catch_27
33146 + move-result-object v1
33148 + goto :goto_e
33150 + :catch_27
33151 + move-exception v0
33153 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
33155 + const-string v3, "PM,MicrophoneInputStream"
33157 + const-string/jumbo v4, "something went wrong with getting package name"
33159 + invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
33161 + const/4 v1, 0x0
33163 + goto :goto_e
33164 +.end method
33166 +.method private initiate()V
33167 + .registers 5
33169 + const/4 v1, 0x0
33171 + :try_start_1
33172 + iput-object v1, p0, Landroid/speech/srec/MicrophoneInputStream;->context:Landroid/content/Context;
33174 + new-instance v1, Landroid/privacy/PrivacySettingsManager;
33176 + iget-object v2, p0, Landroid/speech/srec/MicrophoneInputStream;->context:Landroid/content/Context;
33178 + const-string/jumbo v3, "privacy"
33180 + invoke-static {v3}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
33182 + move-result-object v3
33184 + invoke-static {v3}, Landroid/privacy/IPrivacySettingsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/privacy/IPrivacySettingsManager;
33186 + move-result-object v3
33188 + invoke-direct {v1, v2, v3}, Landroid/privacy/PrivacySettingsManager;-><init>(Landroid/content/Context;Landroid/privacy/IPrivacySettingsManager;)V
33190 + iput-object v1, p0, Landroid/speech/srec/MicrophoneInputStream;->pSetMan:Landroid/privacy/PrivacySettingsManager;
33192 + const-string/jumbo v1, "package"
33194 + invoke-static {v1}, Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
33196 + move-result-object v1
33198 + invoke-static {v1}, Landroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
33200 + move-result-object v1
33202 + iput-object v1, p0, Landroid/speech/srec/MicrophoneInputStream;->mPm:Landroid/content/pm/IPackageManager;
33204 + const/4 v1, 0x1
33206 + iput-boolean v1, p0, Landroid/speech/srec/MicrophoneInputStream;->privacyMode:Z
33207 + :try_end_27
33208 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_27} :catch_28
33210 + :goto_27
33211 + return-void
33213 + :catch_28
33214 + move-exception v0
33216 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
33218 + const-string v1, "PM,MicrophoneInputStream"
33220 + const-string v2, "Something went wrong with initalize variables"
33222 + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
33224 + const/4 v1, 0x0
33226 + iput-boolean v1, p0, Landroid/speech/srec/MicrophoneInputStream;->privacyMode:Z
33228 + goto :goto_27
33229 +.end method
33232 # virtual methods
33233 .method public close()V
33234 diff -Npru stock-framework/smali/android/telephony/PhoneStateListener$1.smali pdroid-framework/smali/android/telephony/PhoneStateListener$1.smali
33235 --- stock-framework/smali/android/telephony/PhoneStateListener$1.smali 2013-08-10 20:37:48.159213676 -0700
33236 +++ pdroid-framework/smali/android/telephony/PhoneStateListener$1.smali 2013-08-10 20:37:42.667213449 -0700
33237 @@ -64,23 +64,196 @@
33238 .end method
33240 .method public onCallStateChanged(ILjava/lang/String;)V
33241 - .registers 6
33242 + .registers 19
33244 - iget-object v0, p0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33245 + move-object/from16 v0, p0
33247 - iget-object v0, v0, Landroid/telephony/PhoneStateListener;->mHandler:Landroid/os/Handler;
33248 + iget-object v3, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33250 - const/16 v1, 0x20
33251 + #getter for: Landroid/telephony/PhoneStateListener;->context:Landroid/content/Context;
33252 + invoke-static {v3}, Landroid/telephony/PhoneStateListener;->access$000(Landroid/telephony/PhoneStateListener;)Landroid/content/Context;
33254 - const/4 v2, 0x0
33255 + move-result-object v3
33257 - invoke-static {v0, v1, p1, v2, p2}, Landroid/os/Message;->obtain(Landroid/os/Handler;IIILjava/lang/Object;)Landroid/os/Message;
33258 + if-eqz v3, :cond_99
33260 - move-result-object v0
33261 + if-eqz p2, :cond_99
33263 - invoke-virtual {v0}, Landroid/os/Message;->sendToTarget()V
33264 + invoke-virtual/range {p2 .. p2}, Ljava/lang/String;->isEmpty()Z
33266 + move-result v3
33268 + if-nez v3, :cond_99
33270 + move-object/from16 v0, p0
33272 + iget-object v3, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33274 + #getter for: Landroid/telephony/PhoneStateListener;->context:Landroid/content/Context;
33275 + invoke-static {v3}, Landroid/telephony/PhoneStateListener;->access$000(Landroid/telephony/PhoneStateListener;)Landroid/content/Context;
33277 + move-result-object v3
33279 + const-string/jumbo v4, "privacy"
33281 + invoke-virtual {v3, v4}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
33283 + move-result-object v2
33285 + check-cast v2, Landroid/privacy/PrivacySettingsManager;
33287 + move-object/from16 v0, p0
33289 + iget-object v3, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33291 + #getter for: Landroid/telephony/PhoneStateListener;->packageName:Ljava/lang/String;
33292 + invoke-static {v3}, Landroid/telephony/PhoneStateListener;->access$100(Landroid/telephony/PhoneStateListener;)Ljava/lang/String;
33294 + move-result-object v3
33296 + move-object/from16 v0, p0
33298 + iget-object v4, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33300 + #getter for: Landroid/telephony/PhoneStateListener;->uid:I
33301 + invoke-static {v4}, Landroid/telephony/PhoneStateListener;->access$200(Landroid/telephony/PhoneStateListener;)I
33303 + move-result v4
33305 + invoke-virtual {v2, v3, v4}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
33307 + move-result-object v8
33309 + if-eqz v8, :cond_6a
33311 + invoke-virtual {v8}, Landroid/privacy/PrivacySettings;->getIncomingCallsSetting()B
33313 + move-result v3
33315 + if-eqz v3, :cond_6a
33317 + const-string v7, ""
33319 + move-object/from16 v0, p0
33321 + iget-object v3, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33323 + iget-object v3, v3, Landroid/telephony/PhoneStateListener;->mHandler:Landroid/os/Handler;
33325 + const/16 v4, 0x20
33327 + const/4 v5, 0x0
33329 + move/from16 v0, p1
33331 + invoke-static {v3, v4, v0, v5, v7}, Landroid/os/Message;->obtain(Landroid/os/Handler;IIILjava/lang/Object;)Landroid/os/Message;
33333 + move-result-object v3
33335 + invoke-virtual {v3}, Landroid/os/Message;->sendToTarget()V
33337 + move-object/from16 v0, p0
33339 + iget-object v3, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33341 + #getter for: Landroid/telephony/PhoneStateListener;->packageName:Ljava/lang/String;
33342 + invoke-static {v3}, Landroid/telephony/PhoneStateListener;->access$100(Landroid/telephony/PhoneStateListener;)Ljava/lang/String;
33344 + move-result-object v3
33346 + move-object/from16 v0, p0
33348 + iget-object v4, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33350 + #getter for: Landroid/telephony/PhoneStateListener;->uid:I
33351 + invoke-static {v4}, Landroid/telephony/PhoneStateListener;->access$200(Landroid/telephony/PhoneStateListener;)I
33353 + move-result v4
33355 + const/4 v5, 0x1
33357 + const-string v6, "incomingCall"
33359 + invoke-virtual/range {v2 .. v8}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
33361 + :goto_69
33362 return-void
33364 + :cond_6a
33365 + move-object/from16 v0, p0
33367 + iget-object v3, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33369 + iget-object v3, v3, Landroid/telephony/PhoneStateListener;->mHandler:Landroid/os/Handler;
33371 + const/16 v4, 0x20
33373 + const/4 v5, 0x0
33375 + move/from16 v0, p1
33377 + move-object/from16 v1, p2
33379 + invoke-static {v3, v4, v0, v5, v1}, Landroid/os/Message;->obtain(Landroid/os/Handler;IIILjava/lang/Object;)Landroid/os/Message;
33381 + move-result-object v3
33383 + invoke-virtual {v3}, Landroid/os/Message;->sendToTarget()V
33385 + move-object/from16 v0, p0
33387 + iget-object v3, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33389 + #getter for: Landroid/telephony/PhoneStateListener;->packageName:Ljava/lang/String;
33390 + invoke-static {v3}, Landroid/telephony/PhoneStateListener;->access$100(Landroid/telephony/PhoneStateListener;)Ljava/lang/String;
33392 + move-result-object v10
33394 + move-object/from16 v0, p0
33396 + iget-object v3, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33398 + #getter for: Landroid/telephony/PhoneStateListener;->uid:I
33399 + invoke-static {v3}, Landroid/telephony/PhoneStateListener;->access$200(Landroid/telephony/PhoneStateListener;)I
33401 + move-result v11
33403 + const/4 v12, 0x0
33405 + const-string v13, "incomingCall"
33407 + move-object v9, v2
33409 + move-object/from16 v14, p2
33411 + move-object v15, v8
33413 + invoke-virtual/range {v9 .. v15}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
33415 + goto :goto_69
33417 + :cond_99
33418 + move-object/from16 v0, p0
33420 + iget-object v3, v0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33422 + iget-object v3, v3, Landroid/telephony/PhoneStateListener;->mHandler:Landroid/os/Handler;
33424 + const/16 v4, 0x20
33426 + const/4 v5, 0x0
33428 + move/from16 v0, p1
33430 + move-object/from16 v1, p2
33432 + invoke-static {v3, v4, v0, v5, v1}, Landroid/os/Message;->obtain(Landroid/os/Handler;IIILjava/lang/Object;)Landroid/os/Message;
33434 + move-result-object v3
33436 + invoke-virtual {v3}, Landroid/os/Message;->sendToTarget()V
33438 + goto :goto_69
33439 .end method
33441 .method public onCellInfoChanged(Ljava/util/List;)V
33442 @@ -113,27 +286,124 @@
33443 .end method
33445 .method public onCellLocationChanged(Landroid/os/Bundle;)V
33446 - .registers 6
33447 + .registers 10
33449 + const/4 v5, 0x0
33451 const/4 v3, 0x0
33453 invoke-static {p1}, Landroid/telephony/CellLocation;->newFromBundle(Landroid/os/Bundle;)Landroid/telephony/CellLocation;
33455 + move-result-object v7
33457 + iget-object v1, p0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33459 + #getter for: Landroid/telephony/PhoneStateListener;->context:Landroid/content/Context;
33460 + invoke-static {v1}, Landroid/telephony/PhoneStateListener;->access$000(Landroid/telephony/PhoneStateListener;)Landroid/content/Context;
33462 + move-result-object v1
33464 + if-eqz v1, :cond_4a
33466 + iget-object v1, p0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33468 + #getter for: Landroid/telephony/PhoneStateListener;->context:Landroid/content/Context;
33469 + invoke-static {v1}, Landroid/telephony/PhoneStateListener;->access$000(Landroid/telephony/PhoneStateListener;)Landroid/content/Context;
33471 + move-result-object v1
33473 + const-string/jumbo v2, "privacy"
33475 + invoke-virtual {v1, v2}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
33477 move-result-object v0
33479 + check-cast v0, Landroid/privacy/PrivacySettingsManager;
33481 + iget-object v1, p0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33483 + #getter for: Landroid/telephony/PhoneStateListener;->packageName:Ljava/lang/String;
33484 + invoke-static {v1}, Landroid/telephony/PhoneStateListener;->access$100(Landroid/telephony/PhoneStateListener;)Ljava/lang/String;
33486 + move-result-object v1
33488 + iget-object v2, p0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33490 + #getter for: Landroid/telephony/PhoneStateListener;->uid:I
33491 + invoke-static {v2}, Landroid/telephony/PhoneStateListener;->access$200(Landroid/telephony/PhoneStateListener;)I
33493 + move-result v2
33495 + invoke-virtual {v0, v1, v2}, Landroid/privacy/PrivacySettingsManager;->getSettings(Ljava/lang/String;I)Landroid/privacy/PrivacySettings;
33497 + move-result-object v6
33499 + if-eqz v6, :cond_4b
33501 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
33503 + move-result v1
33505 + if-eqz v1, :cond_4b
33507 + iget-object v1, p0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33509 + #getter for: Landroid/telephony/PhoneStateListener;->packageName:Ljava/lang/String;
33510 + invoke-static {v1}, Landroid/telephony/PhoneStateListener;->access$100(Landroid/telephony/PhoneStateListener;)Ljava/lang/String;
33512 + move-result-object v1
33514 + iget-object v2, p0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33516 + #getter for: Landroid/telephony/PhoneStateListener;->uid:I
33517 + invoke-static {v2}, Landroid/telephony/PhoneStateListener;->access$200(Landroid/telephony/PhoneStateListener;)I
33519 + move-result v2
33521 + invoke-virtual {v6}, Landroid/privacy/PrivacySettings;->getLocationNetworkSetting()B
33523 + move-result v3
33525 + const-string v4, "locationNetwork"
33527 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
33529 + :cond_4a
33530 + :goto_4a
33531 + return-void
33533 + :cond_4b
33534 iget-object v1, p0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33536 iget-object v1, v1, Landroid/telephony/PhoneStateListener;->mHandler:Landroid/os/Handler;
33538 const/16 v2, 0x10
33540 - invoke-static {v1, v2, v3, v3, v0}, Landroid/os/Message;->obtain(Landroid/os/Handler;IIILjava/lang/Object;)Landroid/os/Message;
33541 + invoke-static {v1, v2, v3, v3, v7}, Landroid/os/Message;->obtain(Landroid/os/Handler;IIILjava/lang/Object;)Landroid/os/Message;
33543 move-result-object v1
33545 invoke-virtual {v1}, Landroid/os/Message;->sendToTarget()V
33547 - return-void
33548 + iget-object v1, p0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33550 + #getter for: Landroid/telephony/PhoneStateListener;->packageName:Ljava/lang/String;
33551 + invoke-static {v1}, Landroid/telephony/PhoneStateListener;->access$100(Landroid/telephony/PhoneStateListener;)Ljava/lang/String;
33553 + move-result-object v1
33555 + iget-object v2, p0, Landroid/telephony/PhoneStateListener$1;->this$0:Landroid/telephony/PhoneStateListener;
33557 + #getter for: Landroid/telephony/PhoneStateListener;->uid:I
33558 + invoke-static {v2}, Landroid/telephony/PhoneStateListener;->access$200(Landroid/telephony/PhoneStateListener;)I
33560 + move-result v2
33562 + const-string v4, "locationNetwork"
33564 + invoke-virtual/range {v0 .. v6}, Landroid/privacy/PrivacySettingsManager;->notification(Ljava/lang/String;IBLjava/lang/String;Ljava/lang/String;Landroid/privacy/PrivacySettings;)V
33566 + goto :goto_4a
33567 .end method
33569 .method public onDataActivity(I)V
33570 diff -Npru stock-framework/smali/android/telephony/PhoneStateListener.smali pdroid-framework/smali/android/telephony/PhoneStateListener.smali
33571 --- stock-framework/smali/android/telephony/PhoneStateListener.smali 2013-08-10 20:37:47.355213643 -0700
33572 +++ pdroid-framework/smali/android/telephony/PhoneStateListener.smali 2013-08-10 20:37:41.899213417 -0700
33573 @@ -31,12 +31,20 @@
33575 .field public static final LISTEN_SIGNAL_STRENGTHS:I = 0x100
33577 +.field private static final TAG:Ljava/lang/String; = "PhoneStateListener"
33580 # instance fields
33581 .field callback:Lcom/android/internal/telephony/IPhoneStateListener;
33583 +.field private context:Landroid/content/Context;
33585 .field mHandler:Landroid/os/Handler;
33587 +.field private packageName:Ljava/lang/String;
33589 +.field private uid:I
33592 # direct methods
33593 .method public constructor <init>()V
33594 @@ -59,6 +67,30 @@
33595 return-void
33596 .end method
33598 +.method static synthetic access$000(Landroid/telephony/PhoneStateListener;)Landroid/content/Context;
33599 + .registers 2
33601 + iget-object v0, p0, Landroid/telephony/PhoneStateListener;->context:Landroid/content/Context;
33603 + return-object v0
33604 +.end method
33606 +.method static synthetic access$100(Landroid/telephony/PhoneStateListener;)Ljava/lang/String;
33607 + .registers 2
33609 + iget-object v0, p0, Landroid/telephony/PhoneStateListener;->packageName:Ljava/lang/String;
33611 + return-object v0
33612 +.end method
33614 +.method static synthetic access$200(Landroid/telephony/PhoneStateListener;)I
33615 + .registers 2
33617 + iget v0, p0, Landroid/telephony/PhoneStateListener;->uid:I
33619 + return v0
33620 +.end method
33623 # virtual methods
33624 .method public onCallForwardingIndicatorChanged(Z)V
33625 @@ -143,3 +175,27 @@
33627 return-void
33628 .end method
33630 +.method public setContext(Landroid/content/Context;)V
33631 + .registers 2
33633 + iput-object p1, p0, Landroid/telephony/PhoneStateListener;->context:Landroid/content/Context;
33635 + return-void
33636 +.end method
33638 +.method public setPackageName(Ljava/lang/String;)V
33639 + .registers 2
33641 + iput-object p1, p0, Landroid/telephony/PhoneStateListener;->packageName:Ljava/lang/String;
33643 + return-void
33644 +.end method
33646 +.method public setUid(I)V
33647 + .registers 2
33649 + iput p1, p0, Landroid/telephony/PhoneStateListener;->uid:I
33651 + return-void
33652 +.end method
33653 diff -Npru stock-framework/smali/android/telephony/ServiceState.smali pdroid-framework/smali/android/telephony/ServiceState.smali
33654 --- stock-framework/smali/android/telephony/ServiceState.smali 2013-08-10 20:37:48.159213676 -0700
33655 +++ pdroid-framework/smali/android/telephony/ServiceState.smali 2013-08-10 20:37:42.667213449 -0700
33656 @@ -875,74 +875,6 @@
33657 return-void
33658 .end method
33660 -.method private setNullState(I)V
33661 - .registers 8
33663 - const/4 v5, 0x0
33665 - const/4 v4, 0x0
33667 - const/4 v3, -0x1
33669 - const-string v0, "PHONE"
33671 - new-instance v1, Ljava/lang/StringBuilder;
33673 - invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
33675 - const-string v2, "[ServiceState] setNullState="
33677 - invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
33679 - move-result-object v1
33681 - invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
33683 - move-result-object v1
33685 - invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
33687 - move-result-object v1
33689 - invoke-static {v0, v1}, Landroid/telephony/Rlog;->d(Ljava/lang/String;Ljava/lang/String;)I
33691 - iput p1, p0, Landroid/telephony/ServiceState;->mVoiceRegState:I
33693 - iput p1, p0, Landroid/telephony/ServiceState;->mDataRegState:I
33695 - iput-boolean v4, p0, Landroid/telephony/ServiceState;->mRoaming:Z
33697 - iput-object v5, p0, Landroid/telephony/ServiceState;->mOperatorAlphaLong:Ljava/lang/String;
33699 - iput-object v5, p0, Landroid/telephony/ServiceState;->mOperatorAlphaShort:Ljava/lang/String;
33701 - iput-object v5, p0, Landroid/telephony/ServiceState;->mOperatorNumeric:Ljava/lang/String;
33703 - iput-boolean v4, p0, Landroid/telephony/ServiceState;->mIsManualNetworkSelection:Z
33705 - iput v4, p0, Landroid/telephony/ServiceState;->mRilVoiceRadioTechnology:I
33707 - iput v4, p0, Landroid/telephony/ServiceState;->mRilDataRadioTechnology:I
33709 - iput-boolean v4, p0, Landroid/telephony/ServiceState;->mCssIndicator:Z
33711 - iput v3, p0, Landroid/telephony/ServiceState;->mNetworkId:I
33713 - iput v3, p0, Landroid/telephony/ServiceState;->mSystemId:I
33715 - iput v3, p0, Landroid/telephony/ServiceState;->mCdmaRoamingIndicator:I
33717 - iput v3, p0, Landroid/telephony/ServiceState;->mCdmaDefaultRoamingIndicator:I
33719 - iput v3, p0, Landroid/telephony/ServiceState;->mCdmaEriIconIndex:I
33721 - iput v3, p0, Landroid/telephony/ServiceState;->mCdmaEriIconMode:I
33723 - iput-boolean v4, p0, Landroid/telephony/ServiceState;->mIsEmergencyOnly:Z
33725 - return-void
33726 -.end method
33729 # virtual methods
33730 .method protected copyFrom(Landroid/telephony/ServiceState;)V
33731 @@ -1798,6 +1730,74 @@
33732 return-void
33733 .end method
33735 +.method setNullState(I)V
33736 + .registers 8
33738 + const/4 v5, 0x0
33740 + const/4 v4, 0x0
33742 + const/4 v3, -0x1
33744 + const-string v0, "PHONE"
33746 + new-instance v1, Ljava/lang/StringBuilder;
33748 + invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
33750 + const-string v2, "[ServiceState] setNullState="
33752 + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
33754 + move-result-object v1
33756 + invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
33758 + move-result-object v1
33760 + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
33762 + move-result-object v1
33764 + invoke-static {v0, v1}, Landroid/telephony/Rlog;->d(Ljava/lang/String;Ljava/lang/String;)I
33766 + iput p1, p0, Landroid/telephony/ServiceState;->mVoiceRegState:I
33768 + iput p1, p0, Landroid/telephony/ServiceState;->mDataRegState:I
33770 + iput-boolean v4, p0, Landroid/telephony/ServiceState;->mRoaming:Z
33772 + iput-object v5, p0, Landroid/telephony/ServiceState;->mOperatorAlphaLong:Ljava/lang/String;
33774 + iput-object v5, p0, Landroid/telephony/ServiceState;->mOperatorAlphaShort:Ljava/lang/String;
33776 + iput-object v5, p0, Landroid/telephony/ServiceState;->mOperatorNumeric:Ljava/lang/String;
33778 + iput-boolean v4, p0, Landroid/telephony/ServiceState;->mIsManualNetworkSelection:Z
33780 + iput v4, p0, Landroid/telephony/ServiceState;->mRilVoiceRadioTechnology:I
33782 + iput v4, p0, Landroid/telephony/ServiceState;->mRilDataRadioTechnology:I
33784 + iput-boolean v4, p0, Landroid/telephony/ServiceState;->mCssIndicator:Z
33786 + iput v3, p0, Landroid/telephony/ServiceState;->mNetworkId:I
33788 + iput v3, p0, Landroid/telephony/ServiceState;->mSystemId:I
33790 + iput v3, p0, Landroid/telephony/ServiceState;->mCdmaRoamingIndicator:I
33792 + iput v3, p0, Landroid/telephony/ServiceState;->mCdmaDefaultRoamingIndicator:I
33794 + iput v3, p0, Landroid/telephony/ServiceState;->mCdmaEriIconIndex:I
33796 + iput v3, p0, Landroid/telephony/ServiceState;->mCdmaEriIconMode:I
33798 + iput-boolean v4, p0, Landroid/telephony/ServiceState;->mIsEmergencyOnly:Z
33800 + return-void
33801 +.end method
33803 .method public setOperatorAlphaLong(Ljava/lang/String;)V
33804 .registers 2
33806 @@ -1885,7 +1885,7 @@
33808 const/4 v0, 0x3
33810 - invoke-direct {p0, v0}, Landroid/telephony/ServiceState;->setNullState(I)V
33811 + invoke-virtual {p0, v0}, Landroid/telephony/ServiceState;->setNullState(I)V
33813 return-void
33814 .end method
33815 @@ -1895,7 +1895,7 @@
33817 const/4 v0, 0x1
33819 - invoke-direct {p0, v0}, Landroid/telephony/ServiceState;->setNullState(I)V
33820 + invoke-virtual {p0, v0}, Landroid/telephony/ServiceState;->setNullState(I)V
33822 return-void
33823 .end method